@duetds/components 8.2.0 → 8.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (625) hide show
  1. package/hydrate/index.js +99 -40
  2. package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-banner.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumb.cjs.entry.js +5 -4
  7. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +7 -3
  8. package/lib/cjs/duet-button_2.cjs.entry.js +7 -4
  9. package/lib/cjs/duet-callout.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-caption_4.cjs.entry.js +4 -2
  11. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-chip.cjs.entry.js +12 -3
  15. package/lib/cjs/duet-choice_2.cjs.entry.js +4 -3
  16. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-date-picker.cjs.entry.js +4 -2
  21. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-editable-table_3.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-fieldset.cjs.entry.js +2 -2
  25. package/lib/cjs/duet-file-chooser.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-footer.cjs.entry.js +3 -3
  27. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-input_2.cjs.entry.js +4 -3
  32. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +2 -2
  37. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-menu-bar.cjs.entry.js +2 -2
  39. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  40. package/lib/cjs/duet-multiselect.cjs.entry.js +4 -3
  41. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-number-input.cjs.entry.js +3 -2
  44. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-pagination_2.cjs.entry.js +1 -1
  46. package/lib/cjs/duet-popup-menu-item.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-popup-menu.cjs.entry.js +2 -2
  48. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  49. package/lib/cjs/duet-promo-card.cjs.entry.js +11 -3
  50. package/lib/cjs/duet-radio_2.cjs.entry.js +3 -2
  51. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  52. package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
  53. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  54. package/lib/cjs/duet-select.cjs.entry.js +4 -3
  55. package/lib/cjs/duet-shaped-image.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-show-more.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  59. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-slideout-panel.cjs.entry.js +2 -2
  61. package/lib/cjs/duet-slideout.cjs.entry.js +16 -8
  62. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  63. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +3 -3
  64. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +1 -1
  65. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +2 -2
  66. package/lib/cjs/duet-submenu-bar.cjs.entry.js +2 -2
  67. package/lib/cjs/duet-textarea.cjs.entry.js +4 -3
  68. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  69. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
  70. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +2 -2
  71. package/lib/cjs/duet-toolbar-link.cjs.entry.js +1 -1
  72. package/lib/cjs/duet-toolbar.cjs.entry.js +2 -2
  73. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +2 -2
  74. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  75. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  76. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  77. package/lib/cjs/duet-upload-item.cjs.entry.js +1 -1
  78. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  79. package/lib/cjs/duet.cjs.js +2 -2
  80. package/lib/cjs/{focus-utils-1780ee53.js → focus-utils-cb2699e7.js} +1 -1
  81. package/lib/cjs/{index-8595e0c1.js → index-c51398ac.js} +1 -1
  82. package/lib/cjs/loader.cjs.js +2 -2
  83. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +5 -4
  84. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.css +15 -0
  85. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +30 -3
  86. package/lib/collection/components/duet-button/duet-button.css +14 -8
  87. package/lib/collection/components/duet-button/duet-button.js +5 -2
  88. package/lib/collection/components/duet-chip/duet-chip.css +19 -10
  89. package/lib/collection/components/duet-chip/duet-chip.e2e.js +12 -2
  90. package/lib/collection/components/duet-chip/duet-chip.js +34 -1
  91. package/lib/collection/components/duet-choice-group/duet-choice-group.js +5 -1
  92. package/lib/collection/components/duet-date-picker/date-picker-input.js +2 -1
  93. package/lib/collection/components/duet-date-picker/duet-date-picker.js +3 -0
  94. package/lib/collection/components/duet-fieldset/duet-fieldset.js +1 -1
  95. package/lib/collection/components/duet-footer/duet-footer.css +1 -0
  96. package/lib/collection/components/duet-footer/duet-footer.js +1 -1
  97. package/lib/collection/components/duet-heading/duet-heading.css +18 -0
  98. package/lib/collection/components/duet-heading/duet-heading.js +20 -0
  99. package/lib/collection/components/duet-input/duet-input.css +4 -2
  100. package/lib/collection/components/duet-input/duet-input.js +5 -1
  101. package/lib/collection/components/duet-menu-bar/duet-menu-bar.css +1 -1
  102. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.css +1 -1
  103. package/lib/collection/components/duet-multiselect/duet-multiselect.css +4 -2
  104. package/lib/collection/components/duet-multiselect/duet-multiselect.js +5 -1
  105. package/lib/collection/components/duet-number-input/duet-number-input.js +5 -1
  106. package/lib/collection/components/duet-promo-card/duet-promo-card.css +8 -0
  107. package/lib/collection/components/duet-promo-card/duet-promo-card.js +38 -1
  108. package/lib/collection/components/duet-radio-group/duet-radio-group.js +5 -1
  109. package/lib/collection/components/duet-select/duet-select.css +4 -2
  110. package/lib/collection/components/duet-select/duet-select.js +5 -1
  111. package/lib/collection/components/duet-slideout/duet-slideout.js +14 -6
  112. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.css +1 -0
  113. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.css +13 -0
  114. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +1 -1
  115. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.css +7 -4
  116. package/lib/collection/components/duet-textarea/duet-textarea.css +4 -2
  117. package/lib/collection/components/duet-textarea/duet-textarea.js +5 -1
  118. package/lib/collection/components/duet-toolbar/duet-toolbar.css +1 -1
  119. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.css +1 -1
  120. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  121. package/lib/dist-custom-elements/duet-alert.js +1 -1
  122. package/lib/dist-custom-elements/duet-badge.js +1 -1
  123. package/lib/dist-custom-elements/duet-banner.js +3 -3
  124. package/lib/dist-custom-elements/duet-breadcrumb.js +7 -6
  125. package/lib/dist-custom-elements/duet-breadcrumbs.js +7 -3
  126. package/lib/dist-custom-elements/duet-button.js +1 -1
  127. package/lib/dist-custom-elements/duet-callout.js +2 -2
  128. package/lib/dist-custom-elements/duet-caption.js +1 -1
  129. package/lib/dist-custom-elements/duet-card.js +3 -3
  130. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  131. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  132. package/lib/dist-custom-elements/duet-chip.js +14 -4
  133. package/lib/dist-custom-elements/duet-choice-group.js +10 -9
  134. package/lib/dist-custom-elements/duet-choice.js +5 -5
  135. package/lib/dist-custom-elements/duet-collapsible.js +2 -2
  136. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  137. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  138. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  139. package/lib/dist-custom-elements/duet-date-picker.js +15 -13
  140. package/lib/dist-custom-elements/duet-divider.js +1 -1
  141. package/lib/dist-custom-elements/duet-editable-table.js +7 -7
  142. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  143. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  144. package/lib/dist-custom-elements/duet-file-chooser.js +2 -2
  145. package/lib/dist-custom-elements/duet-footer.js +6 -6
  146. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  147. package/lib/dist-custom-elements/duet-grid.js +1 -1
  148. package/lib/dist-custom-elements/duet-header.js +8 -8
  149. package/lib/dist-custom-elements/duet-heading.js +1 -1
  150. package/lib/dist-custom-elements/duet-hero.js +9 -9
  151. package/lib/dist-custom-elements/duet-icon.js +1 -1
  152. package/lib/dist-custom-elements/duet-input.js +1 -1
  153. package/lib/dist-custom-elements/duet-label.js +1 -1
  154. package/lib/dist-custom-elements/duet-layout.js +1 -1
  155. package/lib/dist-custom-elements/duet-link.js +1 -1
  156. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  157. package/lib/dist-custom-elements/duet-list.js +1 -1
  158. package/lib/dist-custom-elements/duet-logo.js +1 -1
  159. package/lib/dist-custom-elements/duet-menu-bar-button.js +2 -2
  160. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
  161. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +3 -3
  162. package/lib/dist-custom-elements/duet-menu-bar-link.js +2 -2
  163. package/lib/dist-custom-elements/duet-menu-bar.js +3 -3
  164. package/lib/dist-custom-elements/duet-modal.js +7 -7
  165. package/lib/dist-custom-elements/duet-multiselect.js +12 -11
  166. package/lib/dist-custom-elements/duet-nav.js +1 -1
  167. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  168. package/lib/dist-custom-elements/duet-notification.js +2 -2
  169. package/lib/dist-custom-elements/duet-number-input.js +14 -13
  170. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  171. package/lib/dist-custom-elements/duet-pagination.js +13 -13
  172. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  173. package/lib/dist-custom-elements/duet-popup-menu-item.js +2 -2
  174. package/lib/dist-custom-elements/duet-popup-menu.js +1 -1
  175. package/lib/dist-custom-elements/duet-progress.js +1 -1
  176. package/lib/dist-custom-elements/duet-promo-card.js +15 -6
  177. package/lib/dist-custom-elements/duet-radio-group.js +10 -9
  178. package/lib/dist-custom-elements/duet-radio.js +1 -1
  179. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  180. package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
  181. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  182. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  183. package/lib/dist-custom-elements/duet-select.js +1 -1
  184. package/lib/dist-custom-elements/duet-shaped-image.js +1 -1
  185. package/lib/dist-custom-elements/duet-show-more.js +5 -5
  186. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  187. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  188. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  189. package/lib/dist-custom-elements/duet-slideout-panel.js +2 -2
  190. package/lib/dist-custom-elements/duet-slideout.js +16 -8
  191. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  192. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  193. package/lib/dist-custom-elements/duet-step.js +4 -4
  194. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  195. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +4 -4
  196. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +2 -2
  197. package/lib/dist-custom-elements/duet-submenu-bar-link.js +3 -3
  198. package/lib/dist-custom-elements/duet-submenu-bar.js +3 -3
  199. package/lib/dist-custom-elements/duet-tab-group.js +13 -13
  200. package/lib/dist-custom-elements/duet-tab.js +1 -1
  201. package/lib/dist-custom-elements/duet-table.js +1 -1
  202. package/lib/dist-custom-elements/duet-textarea.js +14 -13
  203. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  204. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  205. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +3 -3
  206. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  207. package/lib/dist-custom-elements/duet-toolbar.js +2 -2
  208. package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
  209. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  210. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  211. package/lib/dist-custom-elements/duet-tray.js +3 -3
  212. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  213. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  214. package/lib/dist-custom-elements/duet-upload.js +18 -18
  215. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  216. package/lib/dist-custom-elements/index.js +1 -1
  217. package/lib/dist-custom-elements/{p-8aeece22.js → p-029fba28.js} +3 -3
  218. package/lib/dist-custom-elements/{p-9e103db0.js → p-046d07ed.js} +1 -1
  219. package/lib/dist-custom-elements/{p-5c8435c6.js → p-09d8f6b5.js} +5 -5
  220. package/lib/dist-custom-elements/{p-6a6a112e.js → p-0fcede3e.js} +1 -1
  221. package/lib/dist-custom-elements/{p-a5057e42.js → p-14821771.js} +1 -1
  222. package/lib/dist-custom-elements/{p-e5e0a9d5.js → p-178bd8b5.js} +1 -1
  223. package/lib/dist-custom-elements/{p-679f9f84.js → p-1f650bb2.js} +1 -1
  224. package/lib/dist-custom-elements/{p-13916d96.js → p-275c9f06.js} +2 -2
  225. package/lib/dist-custom-elements/{p-8313084c.js → p-284885b1.js} +1 -1
  226. package/lib/dist-custom-elements/{p-4086f5d7.js → p-32b58440.js} +1 -1
  227. package/lib/dist-custom-elements/{p-1b55b8aa.js → p-3c266b7f.js} +1 -1
  228. package/lib/dist-custom-elements/{p-30fe9f1c.js → p-4207df32.js} +12 -11
  229. package/lib/dist-custom-elements/{p-e93fe17b.js → p-48fe3f3e.js} +2 -2
  230. package/lib/dist-custom-elements/{p-3bb00966.js → p-501109c4.js} +13 -12
  231. package/lib/dist-custom-elements/{p-8371f4c9.js → p-5b940d4e.js} +3 -3
  232. package/lib/dist-custom-elements/{p-929cc9d5.js → p-69f3125f.js} +1 -1
  233. package/lib/dist-custom-elements/{p-0297efef.js → p-6db359de.js} +10 -10
  234. package/lib/dist-custom-elements/{p-0aef3ad3.js → p-6f02cea5.js} +6 -3
  235. package/lib/dist-custom-elements/{p-63997028.js → p-78ce0ce1.js} +5 -5
  236. package/lib/dist-custom-elements/{p-27efc5ff.js → p-a7f2d134.js} +3 -3
  237. package/lib/dist-custom-elements/{p-7b59279f.js → p-ab998a0f.js} +1 -1
  238. package/lib/dist-custom-elements/{p-dbaac77a.js → p-bbff917c.js} +5 -5
  239. package/lib/dist-custom-elements/{p-811f6b14.js → p-bdade4f6.js} +1 -1
  240. package/lib/dist-custom-elements/{p-98aea896.js → p-c2ee0b56.js} +1 -1
  241. package/lib/dist-custom-elements/{p-188d76d4.js → p-c3d0fd5f.js} +1 -1
  242. package/lib/dist-custom-elements/{p-d07f9fcc.js → p-d1db33b3.js} +1 -1
  243. package/lib/dist-custom-elements/{p-ee518783.js → p-d4a52c78.js} +1 -1
  244. package/lib/dist-custom-elements/{p-15d5aa46.js → p-d82ca991.js} +1 -1
  245. package/lib/dist-custom-elements/{p-80cc1a6e.js → p-ded7900f.js} +2 -2
  246. package/lib/dist-custom-elements/{p-d87fd2f0.js → p-dfbd66be.js} +1 -1
  247. package/lib/dist-custom-elements/{p-9f454015.js → p-e9b96f04.js} +2 -2
  248. package/lib/dist-custom-elements/{p-f992d96f.js → p-ea75dc3b.js} +1 -1
  249. package/lib/dist-custom-elements/{p-8f9c9ce8.js → p-f26cc3be.js} +2 -2
  250. package/lib/dist-custom-elements/{p-d072d3f7.js → p-f37bade9.js} +10 -7
  251. package/lib/duet/duet.esm.js +1 -1
  252. package/lib/duet/duet.js +1 -1
  253. package/lib/duet/p-00b69a62.system.entry.js +4 -0
  254. package/lib/duet/{p-a871d5b1.system.entry.js → p-00c58945.system.entry.js} +1 -1
  255. package/lib/duet/{p-b4ebdbc3.entry.js → p-03043dae.entry.js} +1 -1
  256. package/lib/duet/{p-46bc086c.system.entry.js → p-03380a61.system.entry.js} +1 -1
  257. package/lib/duet/{p-5ed4cad9.system.entry.js → p-04dc3f5f.system.entry.js} +1 -1
  258. package/lib/duet/{p-5983c4c1.system.entry.js → p-0667f70f.system.entry.js} +1 -1
  259. package/lib/duet/{p-7ceb2a64.entry.js → p-076b9333.entry.js} +1 -1
  260. package/lib/duet/{p-fd8935c8.system.entry.js → p-0906d9df.system.entry.js} +1 -1
  261. package/lib/duet/{p-a658fd46.system.entry.js → p-0b5a8f35.system.entry.js} +1 -1
  262. package/lib/duet/{p-414cc15d.entry.js → p-0c61244e.entry.js} +1 -1
  263. package/lib/duet/{p-7b57105a.system.entry.js → p-0d7d648a.system.entry.js} +1 -1
  264. package/lib/duet/p-0dd40c9c.entry.js +4 -0
  265. package/lib/duet/{p-73ec169a.system.entry.js → p-0fd839a0.system.entry.js} +1 -1
  266. package/lib/duet/{p-9fd8cf3b.system.entry.js → p-10a2a9c1.system.entry.js} +1 -1
  267. package/lib/duet/p-111e21bb.system.entry.js +4 -0
  268. package/lib/duet/{p-a71dfbc3.entry.js → p-11481bd0.entry.js} +1 -1
  269. package/lib/duet/{p-5a5fb62b.system.entry.js → p-127dcd36.system.entry.js} +1 -1
  270. package/lib/duet/p-133bd9d0.system.entry.js +4 -0
  271. package/lib/duet/{p-6073f3e6.system.entry.js → p-1420bc81.system.entry.js} +1 -1
  272. package/lib/duet/p-1abfbe28.system.entry.js +4 -0
  273. package/lib/duet/{p-10e05065.entry.js → p-1bbf5af6.entry.js} +1 -1
  274. package/lib/duet/{p-4350eaaa.system.entry.js → p-1bdd4caa.system.entry.js} +1 -1
  275. package/lib/duet/{p-e4cec0cd.system.entry.js → p-1c9a6018.system.entry.js} +1 -1
  276. package/lib/duet/{p-529b0ef8.entry.js → p-202208dc.entry.js} +1 -1
  277. package/lib/duet/p-2395f607.system.entry.js +4 -0
  278. package/lib/duet/{p-81c39b69.js → p-27bdda1e.js} +1 -1
  279. package/lib/duet/{p-13241469.system.entry.js → p-280b2ecc.system.entry.js} +1 -1
  280. package/lib/duet/p-295179c8.system.entry.js +4 -0
  281. package/lib/duet/{p-145de3e0.entry.js → p-2c02c786.entry.js} +1 -1
  282. package/lib/duet/p-2d9cdfdb.entry.js +4 -0
  283. package/lib/duet/p-2db24634.entry.js +4 -0
  284. package/lib/duet/{p-a904b928.entry.js → p-35811c5b.entry.js} +1 -1
  285. package/lib/duet/p-36c95931.system.entry.js +4 -0
  286. package/lib/duet/{p-9a5fd97c.system.entry.js → p-371692de.system.entry.js} +1 -1
  287. package/lib/duet/{p-7bced88e.entry.js → p-37be8296.entry.js} +1 -1
  288. package/lib/duet/{p-07639744.system.entry.js → p-37d69db5.system.entry.js} +1 -1
  289. package/lib/duet/{p-3120a193.system.entry.js → p-3a63ecd6.system.entry.js} +1 -1
  290. package/lib/duet/p-3ca93619.system.entry.js +4 -0
  291. package/lib/duet/{p-ac10c490.system.entry.js → p-3ccb1ee3.system.entry.js} +1 -1
  292. package/lib/duet/{p-e55b0091.entry.js → p-3e03e275.entry.js} +1 -1
  293. package/lib/duet/{p-0fb3d28c.system.entry.js → p-3ecd388c.system.entry.js} +1 -1
  294. package/lib/duet/p-3fab3c3d.entry.js +4 -0
  295. package/lib/duet/p-42cfad67.system.entry.js +4 -0
  296. package/lib/duet/{p-2073966b.system.entry.js → p-42e4ee86.system.entry.js} +1 -1
  297. package/lib/duet/p-4921ff47.entry.js +4 -0
  298. package/lib/duet/{p-d577a8d9.entry.js → p-4a397383.entry.js} +1 -1
  299. package/lib/duet/{p-508c6401.system.entry.js → p-4d9e4286.system.entry.js} +1 -1
  300. package/lib/duet/{p-c233d99d.entry.js → p-4dd4b992.entry.js} +1 -1
  301. package/lib/duet/{p-39aac14c.entry.js → p-52091e26.entry.js} +1 -1
  302. package/lib/duet/{p-95eca09b.system.js → p-52737afc.system.js} +1 -1
  303. package/lib/duet/{p-b1afb239.system.entry.js → p-52c59c2c.system.entry.js} +1 -1
  304. package/lib/duet/{p-fef7a17b.system.entry.js → p-534e202a.system.entry.js} +1 -1
  305. package/lib/duet/{p-b61c49de.entry.js → p-550162dd.entry.js} +1 -1
  306. package/lib/duet/{p-d6b7c83c.system.entry.js → p-551ecb84.system.entry.js} +1 -1
  307. package/lib/duet/p-579d7632.entry.js +4 -0
  308. package/lib/duet/{p-8b7288e6.system.entry.js → p-59eeaac0.system.entry.js} +1 -1
  309. package/lib/duet/{p-7694b9fa.system.entry.js → p-5d8d866f.system.entry.js} +2 -2
  310. package/lib/duet/{p-9ad8c8d4.system.entry.js → p-5f54e38a.system.entry.js} +1 -1
  311. package/lib/duet/{p-aefc858d.entry.js → p-5f71c6eb.entry.js} +1 -1
  312. package/lib/duet/{p-6374b7ea.entry.js → p-61d46f06.entry.js} +1 -1
  313. package/lib/duet/{p-0ee8f124.entry.js → p-65316fb3.entry.js} +1 -1
  314. package/lib/duet/p-660bc31f.entry.js +4 -0
  315. package/lib/duet/{p-0f6f152d.entry.js → p-6720adb2.entry.js} +1 -1
  316. package/lib/duet/{p-9fffb1b4.entry.js → p-6d186557.entry.js} +1 -1
  317. package/lib/duet/{p-2f2a6fbf.system.entry.js → p-6edbe47c.system.entry.js} +1 -1
  318. package/lib/duet/{p-def2db15.system.entry.js → p-6fdbd448.system.entry.js} +1 -1
  319. package/lib/duet/p-7023e868.system.entry.js +4 -0
  320. package/lib/duet/{p-31215119.system.entry.js → p-723172a8.system.entry.js} +1 -1
  321. package/lib/duet/{p-b2744aa5.entry.js → p-7308b57e.entry.js} +1 -1
  322. package/lib/duet/p-74553378.system.entry.js +4 -0
  323. package/lib/duet/{p-8c8752c1.system.entry.js → p-74591e44.system.entry.js} +1 -1
  324. package/lib/duet/{p-6484d791.entry.js → p-75ceea2b.entry.js} +1 -1
  325. package/lib/duet/{p-5bd11cd6.system.entry.js → p-78a54e54.system.entry.js} +1 -1
  326. package/lib/duet/{p-9d328100.system.entry.js → p-78a7f821.system.entry.js} +1 -1
  327. package/lib/duet/{p-7fed706e.entry.js → p-7b6abc82.entry.js} +1 -1
  328. package/lib/duet/{p-e108f77f.entry.js → p-7bb37b2e.entry.js} +1 -1
  329. package/lib/duet/p-7e1fe8b7.entry.js +4 -0
  330. package/lib/duet/{p-d20b8b82.entry.js → p-7ef64069.entry.js} +1 -1
  331. package/lib/duet/{p-530dc869.system.entry.js → p-7fd43c03.system.entry.js} +1 -1
  332. package/lib/duet/{p-b3a4cb83.system.entry.js → p-831c1f80.system.entry.js} +1 -1
  333. package/lib/duet/{p-1fcccba8.entry.js → p-86285221.entry.js} +1 -1
  334. package/lib/duet/p-87565d7d.system.entry.js +4 -0
  335. package/lib/duet/{p-692d016e.system.entry.js → p-88378c4b.system.entry.js} +1 -1
  336. package/lib/duet/{p-9a43d193.entry.js → p-88d19807.entry.js} +1 -1
  337. package/lib/duet/{p-af4af7bb.system.entry.js → p-89db0472.system.entry.js} +1 -1
  338. package/lib/duet/p-8b9c411d.entry.js +4 -0
  339. package/lib/duet/{p-9a7c25f2.entry.js → p-8dbbed25.entry.js} +1 -1
  340. package/lib/duet/{p-a6a7278c.entry.js → p-9090cf21.entry.js} +1 -1
  341. package/lib/duet/{p-57a29655.entry.js → p-932d0abe.entry.js} +1 -1
  342. package/lib/duet/{p-59d78e4a.entry.js → p-9418d9ff.entry.js} +1 -1
  343. package/lib/duet/{p-89aa11c5.system.entry.js → p-94c3e67c.system.entry.js} +1 -1
  344. package/lib/duet/{p-90f13f5e.entry.js → p-956c677f.entry.js} +1 -1
  345. package/lib/duet/{p-0c4251d2.system.entry.js → p-9699d4f1.system.entry.js} +1 -1
  346. package/lib/duet/p-9a352bf1.entry.js +4 -0
  347. package/lib/duet/p-9ab87585.system.entry.js +4 -0
  348. package/lib/duet/{p-52bcdf36.js → p-9f931d57.js} +1 -1
  349. package/lib/duet/{p-62a1697f.system.entry.js → p-a014d5d9.system.entry.js} +1 -1
  350. package/lib/duet/p-a1093ef2.entry.js +4 -0
  351. package/lib/duet/{p-e634de62.system.entry.js → p-a2fb2ad9.system.entry.js} +1 -1
  352. package/lib/duet/p-a5e3febc.system.entry.js +4 -0
  353. package/lib/duet/{p-697addd1.entry.js → p-a70e6c6f.entry.js} +1 -1
  354. package/lib/duet/{p-3e7d63ff.system.entry.js → p-a75e499e.system.entry.js} +1 -1
  355. package/lib/duet/{p-87653f71.entry.js → p-aa38094c.entry.js} +1 -1
  356. package/lib/duet/{p-c2552968.system.entry.js → p-aab87987.system.entry.js} +1 -1
  357. package/lib/duet/{p-7ff65dc0.system.entry.js → p-ad200bf7.system.entry.js} +1 -1
  358. package/lib/duet/{p-50ebc951.system.entry.js → p-b17fc03d.system.entry.js} +1 -1
  359. package/lib/duet/{p-0b1e9389.system.entry.js → p-b230e70f.system.entry.js} +1 -1
  360. package/lib/duet/{p-f603773e.entry.js → p-b3ee2fd3.entry.js} +1 -1
  361. package/lib/duet/{p-aad8ab06.entry.js → p-b57852d2.entry.js} +1 -1
  362. package/lib/duet/{p-26a30f41.system.entry.js → p-b83e0014.system.entry.js} +1 -1
  363. package/lib/duet/{p-52811ee4.entry.js → p-b84be662.entry.js} +1 -1
  364. package/lib/duet/{p-62d30a58.entry.js → p-ba9103db.entry.js} +1 -1
  365. package/lib/duet/p-bbd9ecae.entry.js +4 -0
  366. package/lib/duet/{p-9de27a8f.system.entry.js → p-bd9e5b2b.system.entry.js} +1 -1
  367. package/lib/duet/{p-9f939b40.entry.js → p-c0397a25.entry.js} +1 -1
  368. package/lib/duet/p-c1175891.entry.js +4 -0
  369. package/lib/duet/{p-f52a6fc5.system.entry.js → p-c3722531.system.entry.js} +1 -1
  370. package/lib/duet/{p-d9af65c8.system.entry.js → p-c3832cba.system.entry.js} +1 -1
  371. package/lib/duet/{p-0d546b56.entry.js → p-c3be7176.entry.js} +1 -1
  372. package/lib/duet/{p-7576d859.system.entry.js → p-c641c3b4.system.entry.js} +1 -1
  373. package/lib/duet/{p-5224b8e7.entry.js → p-c75daf42.entry.js} +1 -1
  374. package/lib/duet/{p-1069a865.entry.js → p-c8a02bae.entry.js} +1 -1
  375. package/lib/duet/{p-62cd7e30.entry.js → p-c90bc08e.entry.js} +1 -1
  376. package/lib/duet/p-cc4683e0.system.entry.js +4 -0
  377. package/lib/duet/p-ccd19d96.entry.js +4 -0
  378. package/lib/duet/{p-0b2e2097.system.entry.js → p-cd1d3fe8.system.entry.js} +1 -1
  379. package/lib/duet/p-cdc6b261.entry.js +4 -0
  380. package/lib/duet/{p-f4551b33.entry.js → p-ce96df8c.entry.js} +1 -1
  381. package/lib/duet/{p-8214bafd.entry.js → p-cee353f7.entry.js} +1 -1
  382. package/lib/duet/{p-f041d166.entry.js → p-d1d036d5.entry.js} +1 -1
  383. package/lib/duet/p-d1deec62.system.js +4 -0
  384. package/lib/duet/p-d6154923.entry.js +4 -0
  385. package/lib/duet/{p-b2608fe2.system.entry.js → p-d69aa4c2.system.entry.js} +1 -1
  386. package/lib/duet/{p-462326bc.entry.js → p-d840ef25.entry.js} +1 -1
  387. package/lib/duet/p-daf4b399.entry.js +4 -0
  388. package/lib/duet/{p-bb507da0.system.entry.js → p-db48c8ed.system.entry.js} +1 -1
  389. package/lib/duet/{p-531c259f.entry.js → p-de652eff.entry.js} +1 -1
  390. package/lib/duet/{p-877c5c97.entry.js → p-e00f28fc.entry.js} +1 -1
  391. package/lib/duet/{p-e006f206.entry.js → p-e2347276.entry.js} +1 -1
  392. package/lib/duet/{p-1d3f4925.entry.js → p-e4bd0d7b.entry.js} +1 -1
  393. package/lib/duet/{p-af1bc725.entry.js → p-e6949dbe.entry.js} +1 -1
  394. package/lib/duet/{p-8ca7b2fa.system.entry.js → p-e7b955f6.system.entry.js} +1 -1
  395. package/lib/duet/p-ea4fda73.entry.js +4 -0
  396. package/lib/duet/{p-61ab4c50.system.entry.js → p-ebc2f8fc.system.entry.js} +1 -1
  397. package/lib/duet/{p-5b2d1616.system.entry.js → p-ecef885c.system.entry.js} +1 -1
  398. package/lib/duet/{p-efa1441d.entry.js → p-eddc7880.entry.js} +1 -1
  399. package/lib/duet/p-eed152d0.system.js +4 -0
  400. package/lib/duet/{p-342a250d.entry.js → p-efa9e31e.entry.js} +1 -1
  401. package/lib/duet/{p-189f31b8.entry.js → p-efe336c5.entry.js} +1 -1
  402. package/lib/duet/{p-57b54fc2.entry.js → p-f08d659e.entry.js} +1 -1
  403. package/lib/duet/{p-ac607868.entry.js → p-f237623c.entry.js} +1 -1
  404. package/lib/duet/{p-5a8c6db7.system.entry.js → p-f2f0f553.system.entry.js} +1 -1
  405. package/lib/duet/p-f54f5ef3.system.entry.js +4 -0
  406. package/lib/duet/{p-8a08dc1c.system.entry.js → p-f637700c.system.entry.js} +1 -1
  407. package/lib/duet/{p-1ebb5d23.entry.js → p-f64ba41c.entry.js} +1 -1
  408. package/lib/duet/{p-7f06df0d.entry.js → p-f65559ab.entry.js} +1 -1
  409. package/lib/duet/{p-a7788ac6.entry.js → p-f7c03d05.entry.js} +1 -1
  410. package/lib/duet/{p-2975e980.system.entry.js → p-f8ddd215.system.entry.js} +1 -1
  411. package/lib/duet/{p-26e6c296.system.entry.js → p-fd153ee7.system.entry.js} +1 -1
  412. package/lib/esm/duet-action-button.entry.js +1 -1
  413. package/lib/esm/duet-alert.entry.js +1 -1
  414. package/lib/esm/duet-badge.entry.js +1 -1
  415. package/lib/esm/duet-banner.entry.js +1 -1
  416. package/lib/esm/duet-breadcrumb.entry.js +5 -4
  417. package/lib/esm/duet-breadcrumbs.entry.js +7 -3
  418. package/lib/esm/duet-button_2.entry.js +7 -4
  419. package/lib/esm/duet-callout.entry.js +1 -1
  420. package/lib/esm/duet-caption_4.entry.js +4 -2
  421. package/lib/esm/duet-card.entry.js +1 -1
  422. package/lib/esm/duet-checkbox.entry.js +1 -1
  423. package/lib/esm/duet-checkmark.entry.js +1 -1
  424. package/lib/esm/duet-chip.entry.js +12 -3
  425. package/lib/esm/duet-choice_2.entry.js +4 -3
  426. package/lib/esm/duet-collapsible.entry.js +1 -1
  427. package/lib/esm/duet-combobox.entry.js +1 -1
  428. package/lib/esm/duet-contact-card.entry.js +1 -1
  429. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  430. package/lib/esm/duet-date-picker.entry.js +4 -2
  431. package/lib/esm/duet-divider_2.entry.js +1 -1
  432. package/lib/esm/duet-editable-table_3.entry.js +1 -1
  433. package/lib/esm/duet-empty-state.entry.js +1 -1
  434. package/lib/esm/duet-fieldset.entry.js +2 -2
  435. package/lib/esm/duet-file-chooser.entry.js +1 -1
  436. package/lib/esm/duet-footer.entry.js +3 -3
  437. package/lib/esm/duet-grid_2.entry.js +1 -1
  438. package/lib/esm/duet-header_2.entry.js +1 -1
  439. package/lib/esm/duet-hero.entry.js +1 -1
  440. package/lib/esm/duet-icon.entry.js +1 -1
  441. package/lib/esm/duet-input_2.entry.js +4 -3
  442. package/lib/esm/duet-layout.entry.js +1 -1
  443. package/lib/esm/duet-list_2.entry.js +1 -1
  444. package/lib/esm/duet-menu-bar-button.entry.js +1 -1
  445. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
  446. package/lib/esm/duet-menu-bar-dropdown.entry.js +2 -2
  447. package/lib/esm/duet-menu-bar-link.entry.js +1 -1
  448. package/lib/esm/duet-menu-bar.entry.js +2 -2
  449. package/lib/esm/duet-modal.entry.js +2 -2
  450. package/lib/esm/duet-multiselect.entry.js +4 -3
  451. package/lib/esm/duet-nav.entry.js +1 -1
  452. package/lib/esm/duet-notification_2.entry.js +1 -1
  453. package/lib/esm/duet-number-input.entry.js +3 -2
  454. package/lib/esm/duet-page-heading.entry.js +1 -1
  455. package/lib/esm/duet-pagination_2.entry.js +1 -1
  456. package/lib/esm/duet-popup-menu-item.entry.js +1 -1
  457. package/lib/esm/duet-popup-menu.entry.js +2 -2
  458. package/lib/esm/duet-progress.entry.js +1 -1
  459. package/lib/esm/duet-promo-card.entry.js +11 -3
  460. package/lib/esm/duet-radio_2.entry.js +3 -2
  461. package/lib/esm/duet-range-slider.entry.js +1 -1
  462. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  463. package/lib/esm/duet-section-layout.entry.js +1 -1
  464. package/lib/esm/duet-select.entry.js +4 -3
  465. package/lib/esm/duet-shaped-image.entry.js +1 -1
  466. package/lib/esm/duet-show-more.entry.js +1 -1
  467. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  468. package/lib/esm/duet-slideout-link.entry.js +1 -1
  469. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  470. package/lib/esm/duet-slideout-panel.entry.js +2 -2
  471. package/lib/esm/duet-slideout.entry.js +16 -8
  472. package/lib/esm/duet-step_2.entry.js +1 -1
  473. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +3 -3
  474. package/lib/esm/duet-submenu-bar-dropdown.entry.js +1 -1
  475. package/lib/esm/duet-submenu-bar-link.entry.js +2 -2
  476. package/lib/esm/duet-submenu-bar.entry.js +2 -2
  477. package/lib/esm/duet-textarea.entry.js +4 -3
  478. package/lib/esm/duet-toggle.entry.js +1 -1
  479. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  480. package/lib/esm/duet-toolbar-dropdown.entry.js +2 -2
  481. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  482. package/lib/esm/duet-toolbar.entry.js +2 -2
  483. package/lib/esm/duet-tooltip-button_2.entry.js +2 -2
  484. package/lib/esm/duet-tooltip.entry.js +1 -1
  485. package/lib/esm/duet-tray.entry.js +1 -1
  486. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  487. package/lib/esm/duet-upload-item.entry.js +1 -1
  488. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  489. package/lib/esm/duet.js +3 -3
  490. package/lib/esm/{focus-utils-d168d36c.js → focus-utils-6bb7f477.js} +1 -1
  491. package/lib/esm/{index-5c989c52.js → index-eeb87403.js} +1 -1
  492. package/lib/esm/loader.js +3 -3
  493. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  494. package/lib/esm-es5/duet-alert.entry.js +1 -1
  495. package/lib/esm-es5/duet-badge.entry.js +1 -1
  496. package/lib/esm-es5/duet-banner.entry.js +1 -1
  497. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  498. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  499. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  500. package/lib/esm-es5/duet-callout.entry.js +1 -1
  501. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  502. package/lib/esm-es5/duet-card.entry.js +1 -1
  503. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  504. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  505. package/lib/esm-es5/duet-chip.entry.js +2 -2
  506. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  507. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  508. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  509. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  510. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  511. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  512. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  513. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  514. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  515. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  516. package/lib/esm-es5/duet-file-chooser.entry.js +2 -2
  517. package/lib/esm-es5/duet-footer.entry.js +1 -1
  518. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  519. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  520. package/lib/esm-es5/duet-hero.entry.js +1 -1
  521. package/lib/esm-es5/duet-icon.entry.js +1 -1
  522. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  523. package/lib/esm-es5/duet-layout.entry.js +1 -1
  524. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  525. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  526. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  527. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +2 -2
  528. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  529. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  530. package/lib/esm-es5/duet-modal.entry.js +1 -1
  531. package/lib/esm-es5/duet-multiselect.entry.js +2 -2
  532. package/lib/esm-es5/duet-nav.entry.js +1 -1
  533. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  534. package/lib/esm-es5/duet-number-input.entry.js +2 -2
  535. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  536. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  537. package/lib/esm-es5/duet-popup-menu-item.entry.js +1 -1
  538. package/lib/esm-es5/duet-popup-menu.entry.js +1 -1
  539. package/lib/esm-es5/duet-progress.entry.js +1 -1
  540. package/lib/esm-es5/duet-promo-card.entry.js +2 -2
  541. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  542. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  543. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  544. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  545. package/lib/esm-es5/duet-select.entry.js +1 -1
  546. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  547. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  548. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  549. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  550. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  551. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  552. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  553. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  554. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  555. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  556. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  557. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  558. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  559. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  560. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  561. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  562. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  563. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  564. package/lib/esm-es5/duet-tooltip-button_2.entry.js +1 -1
  565. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  566. package/lib/esm-es5/duet-tray.entry.js +1 -1
  567. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  568. package/lib/esm-es5/duet-upload-item.entry.js +1 -1
  569. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  570. package/lib/esm-es5/duet.js +1 -1
  571. package/lib/esm-es5/focus-utils-6bb7f477.js +4 -0
  572. package/lib/esm-es5/{index-5c989c52.js → index-eeb87403.js} +1 -1
  573. package/lib/esm-es5/loader.js +1 -1
  574. package/lib/types/components/duet-breadcrumbs/duet-breadcrumbs.d.ts +7 -2
  575. package/lib/types/components/duet-chip/duet-chip.d.ts +6 -0
  576. package/lib/types/components/duet-choice-group/duet-choice-group.d.ts +3 -0
  577. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +3 -0
  578. package/lib/types/components/duet-heading/duet-heading.d.ts +4 -0
  579. package/lib/types/components/duet-input/duet-input.d.ts +3 -0
  580. package/lib/types/components/duet-multiselect/duet-multiselect.d.ts +3 -0
  581. package/lib/types/components/duet-number-input/duet-number-input.d.ts +3 -0
  582. package/lib/types/components/duet-promo-card/duet-promo-card.d.ts +5 -0
  583. package/lib/types/components/duet-radio-group/duet-radio-group.d.ts +3 -0
  584. package/lib/types/components/duet-select/duet-select.d.ts +3 -0
  585. package/lib/types/components/duet-slideout/duet-slideout.d.ts +1 -1
  586. package/lib/types/components/duet-textarea/duet-textarea.d.ts +3 -0
  587. package/lib/types/components.d.ts +32 -4
  588. package/package.json +5 -5
  589. package/lib/duet/p-00af1839.entry.js +0 -4
  590. package/lib/duet/p-03504efc.entry.js +0 -4
  591. package/lib/duet/p-204a1ab8.entry.js +0 -4
  592. package/lib/duet/p-22df3386.system.entry.js +0 -4
  593. package/lib/duet/p-23043e9e.system.entry.js +0 -4
  594. package/lib/duet/p-3809955c.system.entry.js +0 -4
  595. package/lib/duet/p-485f3748.system.entry.js +0 -4
  596. package/lib/duet/p-51b802fe.system.entry.js +0 -4
  597. package/lib/duet/p-5b8477c2.system.js +0 -4
  598. package/lib/duet/p-600af4ae.entry.js +0 -4
  599. package/lib/duet/p-61a76b2b.system.js +0 -4
  600. package/lib/duet/p-641be297.entry.js +0 -4
  601. package/lib/duet/p-64737ee3.entry.js +0 -4
  602. package/lib/duet/p-6e53e390.system.entry.js +0 -4
  603. package/lib/duet/p-7d4f3ee9.entry.js +0 -4
  604. package/lib/duet/p-802d6f86.system.entry.js +0 -4
  605. package/lib/duet/p-876456fd.entry.js +0 -4
  606. package/lib/duet/p-8c9f4ffd.entry.js +0 -4
  607. package/lib/duet/p-8dbc03c1.system.entry.js +0 -4
  608. package/lib/duet/p-9333f3f2.entry.js +0 -4
  609. package/lib/duet/p-97c30079.entry.js +0 -4
  610. package/lib/duet/p-a13bb243.entry.js +0 -4
  611. package/lib/duet/p-a37947f2.entry.js +0 -4
  612. package/lib/duet/p-a9fb2dad.entry.js +0 -4
  613. package/lib/duet/p-a9fee462.entry.js +0 -4
  614. package/lib/duet/p-acad0f72.system.entry.js +0 -4
  615. package/lib/duet/p-b099522e.system.entry.js +0 -4
  616. package/lib/duet/p-b1e84ea2.system.entry.js +0 -4
  617. package/lib/duet/p-c521eae3.system.entry.js +0 -4
  618. package/lib/duet/p-d241457a.system.entry.js +0 -4
  619. package/lib/duet/p-db73a673.system.entry.js +0 -4
  620. package/lib/duet/p-e87e976f.system.entry.js +0 -4
  621. package/lib/duet/p-e9dc6d6c.entry.js +0 -4
  622. package/lib/duet/p-ebc55747.system.entry.js +0 -4
  623. package/lib/duet/p-ecb2cbbf.entry.js +0 -4
  624. package/lib/duet/p-f5909e7f.entry.js +0 -4
  625. package/lib/esm-es5/focus-utils-d168d36c.js +0 -4
@@ -11,6 +11,12 @@ export class DuetChip {
11
11
  * Own Properties.
12
12
  */
13
13
  this.chipId = createID("DuetChip");
14
+ this.enforceNoDisabledSelected = () => {
15
+ if (this.disabled && this.checked) {
16
+ console.error("Duet error: pre-selected chip may not be disabled");
17
+ this.disabled = false;
18
+ }
19
+ };
14
20
  this.popupSetUp = () => {
15
21
  const popup = document.querySelector(`duet-popup-menu#${this.popup}`);
16
22
  if (popup) {
@@ -132,6 +138,7 @@ export class DuetChip {
132
138
  this.popupOpen = undefined;
133
139
  this.accessibleLabel = undefined;
134
140
  this.variation = "button";
141
+ this.size = "medium";
135
142
  this.popup = undefined;
136
143
  this.icon = "";
137
144
  this.theme = "";
@@ -159,6 +166,7 @@ export class DuetChip {
159
166
  componentWillLoad() {
160
167
  inheritGlobalTheme(this);
161
168
  this.popupSetUp();
169
+ this.enforceNoDisabledSelected();
162
170
  }
163
171
  connectedCallback() {
164
172
  subscribeTabbingChange(this);
@@ -203,13 +211,14 @@ export class DuetChip {
203
211
  "duet-chip-radio-checked": this.variation === "radio" && this.checked,
204
212
  "duet-chip-filter-popup-open": this.popupOpen,
205
213
  "duet-chip-disabled": this.disabled,
214
+ [this.size]: true,
206
215
  };
207
216
  const focusHandlers = {
208
217
  onFocus: this.onFocus,
209
218
  onBlur: this.onBlur,
210
219
  ref: el => (this.focusableElement = el),
211
220
  };
212
- return (h(Host, null, this.variation === "button" && (h("span", { class: classes }, h("button", Object.assign({ id: identifier, "aria-label": this.accessibleLabel, "aria-disabled": this.disabled ? "true" : undefined, name: this.name, value: this.value, onClick: this.disabled ? evt => evt.stopPropagation() : undefined }, focusHandlers), h("span", { class: "duet-chip-icon-container" }, this.icon && (h("duet-icon", { name: this.icon, size: "x-small", margin: "none", color: "currentColor" }))), h("slot", null)))), this.variation === "input" && (h("span", { class: classes }, h("button", Object.assign({ id: identifier, class: "duet-chip-input-button", "aria-label": this.accessibleLabel }, focusHandlers), h("span", { class: "duet-chip-icon-container" }, this.icon && (h("duet-icon", { name: this.icon, size: "x-small", margin: "none", color: "currentColor" }))), h("slot", null)), h("button", { class: "duet-chip-remove-button", onClick: this.onRemoveClick }, h("duet-icon", { name: "activity-close", size: "xx-small", margin: "none", color: "currentColor" })))), this.variation === "filter" && (h("span", { class: classes }, h("input", Object.assign({ "aria-haspopup": this.getAccessiblePopup(), "aria-controls": (_a = this.popupElement) === null || _a === void 0 ? void 0 : _a.id, "aria-expanded": this.getAccessibleExpanded(), "aria-disabled": this.disabled ? "true" : undefined, id: identifier, type: "checkbox", name: this.name, value: this.value, checked: this.checked, onClick: this.onFilterClick, onChange: this.onFilterChange }, focusHandlers)), h("label", { htmlFor: identifier }, h("span", { class: "duet-chip-icon-container" }, this.icon && (h("duet-icon", { name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), h("duet-icon", { name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor", class: "check-mark" })), h("slot", null), this.popupElement && (h("span", { class: "duet-chip-popup-disclosure" }, h("duet-icon", { name: "action-arrow-down-small", size: "xxx-small", margin: "none", color: "currentColor" })))))), this.variation === "radio" && (h("span", { class: classes }, h("input", Object.assign({ "aria-disabled": this.disabled ? "true" : undefined, id: identifier, type: "radio", name: this.name, value: this.value, checked: this.checked, onChange: this.onRadioChange, onClick: this.disabled ? evt => evt.preventDefault() : undefined }, focusHandlers)), h("label", { htmlFor: identifier }, h("span", { class: "duet-chip-icon-container" }, this.icon && (h("duet-icon", { name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), h("duet-icon", { name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor", class: "check-mark" })), h("slot", null))))));
221
+ return (h(Host, null, this.variation === "button" && (h("span", { class: classes }, h("button", Object.assign({ id: identifier, "aria-label": this.accessibleLabel, "aria-disabled": this.disabled ? "true" : undefined, name: this.name, value: this.value, onClick: this.disabled ? evt => evt.stopPropagation() : undefined }, focusHandlers), h("span", { class: "duet-chip-icon-container" }, this.icon && (h("duet-icon", { name: this.icon, size: "x-small", margin: "none", color: "currentColor" }))), h("slot", null)))), this.variation === "input" && (h("span", { class: classes }, h("button", Object.assign({ id: identifier, class: "duet-chip-input-button", "aria-label": this.accessibleLabel }, focusHandlers), h("span", { class: "duet-chip-icon-container" }, this.icon && (h("duet-icon", { name: this.icon, size: "x-small", margin: "none", color: "currentColor" }))), h("slot", null)), h("button", { class: "duet-chip-remove-button", onClick: this.onRemoveClick }, h("duet-icon", { name: "activity-close", size: "xx-small", margin: "none", color: "currentColor" })))), this.variation === "filter" && (h("span", { class: classes }, h("input", Object.assign({ "aria-haspopup": this.getAccessiblePopup(), "aria-controls": (_a = this.popupElement) === null || _a === void 0 ? void 0 : _a.id, "aria-expanded": this.getAccessibleExpanded(), "aria-disabled": this.disabled ? "true" : undefined, id: identifier, type: "checkbox", name: this.name, value: this.value, checked: this.checked, onClick: this.onFilterClick, onChange: this.onFilterChange }, focusHandlers)), h("label", { htmlFor: identifier }, this.icon && (h("span", { class: "duet-chip-icon-container" }, h("duet-icon", { name: this.icon, size: "x-small", margin: "none", color: "currentColor" }), h("duet-icon", { name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor", class: "check-mark" }))), h("slot", null), this.popupElement && (h("span", { class: "duet-chip-popup-disclosure" }, h("duet-icon", { name: "action-arrow-down-small", size: "xxx-small", margin: "none", color: "currentColor" })))))), this.variation === "radio" && (h("span", { class: classes }, h("input", Object.assign({ "aria-disabled": this.disabled ? "true" : undefined, id: identifier, type: "radio", name: this.name, value: this.value, checked: this.checked, onChange: this.onRadioChange, onClick: this.disabled ? evt => evt.preventDefault() : undefined }, focusHandlers)), h("label", { htmlFor: identifier }, this.icon && (h("span", { class: "duet-chip-icon-container" }, h("duet-icon", { name: this.icon, size: "x-small", margin: "none", color: "currentColor" }), h("duet-icon", { name: "messaging-checked-small", size: "xx-small", margin: "none", color: "currentColor", class: "check-mark" }))), h("slot", null))))));
213
222
  }
214
223
  static get is() { return "duet-chip"; }
215
224
  static get encapsulation() { return "shadow"; }
@@ -266,6 +275,30 @@ export class DuetChip {
266
275
  "reflect": false,
267
276
  "defaultValue": "\"button\""
268
277
  },
278
+ "size": {
279
+ "type": "string",
280
+ "mutable": false,
281
+ "complexType": {
282
+ "original": "DuetChipSize",
283
+ "resolved": "\"large\" | \"medium\"",
284
+ "references": {
285
+ "DuetChipSize": {
286
+ "location": "local",
287
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-chip/duet-chip.tsx",
288
+ "id": "src/components/duet-chip/duet-chip.tsx::DuetChipSize"
289
+ }
290
+ }
291
+ },
292
+ "required": false,
293
+ "optional": false,
294
+ "docs": {
295
+ "tags": [],
296
+ "text": "Size of the chip. Use \"large\" for a chip that has the same height as default duet-input and duet-button."
297
+ },
298
+ "attribute": "size",
299
+ "reflect": false,
300
+ "defaultValue": "\"medium\""
301
+ },
269
302
  "popup": {
270
303
  "type": "string",
271
304
  "mutable": false,
@@ -3,6 +3,10 @@
3
3
  */
4
4
  import { Build, h, Host } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
+ import { slotElementCheck } from "../../utils/slot-utils";
7
+ /**
8
+ * @slot tooltip - Use to place a tooltip alongside the label.
9
+ */
6
10
  export class DuetChoiceGroup {
7
11
  constructor() {
8
12
  this.choiceGroupName = "duet-choice-group";
@@ -118,7 +122,7 @@ export class DuetChoiceGroup {
118
122
  "duet-choice-group-breakpoint-medium": this.responsive && this.breakpoint === "medium",
119
123
  "duet-choice-group-breakpoint-large": this.responsive && this.breakpoint === "large",
120
124
  "duet-choice-group-breakpoint-x-large": this.responsive && this.breakpoint === "x-large",
121
- } }, h("duet-fieldset", { label: this.label, labelHidden: this.labelHidden, compactLabel: true, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (h("duet-tooltip", { slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("div", { class: { [this.choiceGroupName]: true, "duet-no-stacking": !this.responsive } }, h("slot", null)))));
125
+ } }, h("duet-fieldset", { label: this.label, labelHidden: this.labelHidden, compactLabel: true, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (h("duet-tooltip", { slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { name: "tooltip", onSlotchange: ev => slotElementCheck(ev, this, "duet-tooltip") }), h("div", { class: { [this.choiceGroupName]: true, "duet-no-stacking": !this.responsive } }, h("slot", null)))));
122
126
  }
123
127
  static get is() { return "duet-choice-group"; }
124
128
  static get encapsulation() { return "scoped"; }
@@ -3,11 +3,12 @@
3
3
  */
4
4
  import formDateIcon from "@duetds/icons/lib/assets/form-date";
5
5
  import { h } from "@stencil/core";
6
+ import { slotElementCheck } from "../../utils/slot-utils";
6
7
  import i18n from "./date-i18n";
7
8
  export const DatePickerInput = ({ onClick, placeholder, name, inputLabel, value, valueAsDate, formattedValue, language, identifier, theme, disabled, error, role, required, tooltip, tooltipDirection, labelHidden, buttonRef, inputRef, onInput, onBlur, onFocus, accessibleActiveDescendant, accessibleControls, accessibleOwns, accessibleDescribedBy, echoPlaceholder, caption, }) => {
8
9
  const { buttonLabel, selected, formatterLong } = i18n[language];
9
10
  return (h("div", { class: {
10
11
  "duet-theme-turva": theme === "turva",
11
12
  "duet-date-input": true,
12
- } }, h("duet-input", { label: inputLabel, value: formattedValue, placeholder: placeholder, id: identifier, disabled: disabled, theme: theme, error: error, role: role, required: required, tooltip: tooltip, tooltipDirection: tooltipDirection, margin: "none", component: "date", labelHidden: labelHidden, accessibleAutocomplete: "none", onDuetInput: onInput, onDuetFocus: onFocus, onDuetBlur: onBlur, autoComplete: "off", disallowPattern: "[^0-9\\.\\-\\/]", expand: true, ref: inputRef, accessibleActiveDescendant: accessibleActiveDescendant, accessibleControls: accessibleControls, accessibleOwns: accessibleOwns, accessibleDescribedBy: accessibleDescribedBy, echoPlaceholder: echoPlaceholder, caption: caption }, h("button", { class: { "duet-date-button": true, "duet-no-label": labelHidden }, onClick: onClick, disabled: disabled, ref: buttonRef, type: "button" }, h("duet-icon", { icon: formDateIcon.svg, margin: "none", size: "small", color: "currentColor" }), h("duet-visually-hidden", null, buttonLabel, valueAsDate && (h("span", null, ", ", selected, " ", formatterLong.format(valueAsDate)))))), h("input", { type: "hidden", name: name, value: value })));
13
+ } }, h("duet-input", { label: inputLabel, value: formattedValue, placeholder: placeholder, id: identifier, disabled: disabled, theme: theme, error: error, role: role, required: required, tooltip: tooltip, tooltipDirection: tooltipDirection, margin: "none", component: "date", labelHidden: labelHidden, accessibleAutocomplete: "none", onDuetInput: onInput, onDuetFocus: onFocus, onDuetBlur: onBlur, autoComplete: "off", disallowPattern: "[^0-9\\.\\-\\/]", expand: true, ref: inputRef, accessibleActiveDescendant: accessibleActiveDescendant, accessibleControls: accessibleControls, accessibleOwns: accessibleOwns, accessibleDescribedBy: accessibleDescribedBy, echoPlaceholder: echoPlaceholder, caption: caption }, h("slot", { name: "tooltip", onSlotchange: ev => slotElementCheck(ev, this, "duet-tooltip") }), h("button", { class: { "duet-date-button": true, "duet-no-label": labelHidden }, onClick: onClick, disabled: disabled, ref: buttonRef, type: "button" }, h("duet-icon", { icon: formDateIcon.svg, margin: "none", size: "small", color: "currentColor" }), h("duet-visually-hidden", null, buttonLabel, valueAsDate && (h("span", null, ", ", selected, " ", formatterLong.format(valueAsDate)))))), h("input", { type: "hidden", name: name, value: value })));
13
14
  };
@@ -11,6 +11,9 @@ import { DatePickerInput } from "./date-picker-input";
11
11
  import { DatePickerMonth } from "./date-picker-month";
12
12
  import { addDays, clamp, endOfMonth, endOfWeek, inRange, isEqual, parseDate, parseISODate, printDate, printISODate, setMonth, setYear, startOfMonth, startOfWeek, } from "./date-utils";
13
13
  import { createShortcuts, range } from "./utils";
14
+ /**
15
+ * @slot tooltip - Use to place a tooltip alongside the label.
16
+ */
14
17
  export class DuetDatePicker {
15
18
  constructor() {
16
19
  this.monthSelectId = createID("DuetDatePicker");
@@ -52,7 +52,7 @@ export class DuetFieldset {
52
52
  "duet-legend-has-tooltip": this.hasTooltip,
53
53
  "duet-legend-hidden": this.labelHidden,
54
54
  "duet-legend-compact": this.compactLabel,
55
- } }, h("div", { class: "duet-fieldset-label" }, h("span", { "aria-hidden": "true" }, this.label), h("slot", { onSlotchange: this.checkHasTooltip, name: "tooltip" })), this.caption && (h("div", { class: "duet-fieldset-caption", "aria-hidden": "true" }, h("duet-caption", { margin: "none" }, this.caption)))), h("slot", null), h("span", { class: "duet-fieldset-help", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && h("span", null, this.error)))));
55
+ } }, h("div", { class: "duet-fieldset-label" }, h("span", { "aria-hidden": "true" }, this.label), h("slot", { onSlotchange: this.checkHasTooltip, name: "tooltip" })), this.caption && (h("div", { class: "duet-fieldset-caption", "aria-hidden": "true" }, h("duet-caption", { theme: this.theme, margin: "none" }, this.caption)))), h("slot", null), h("span", { class: "duet-fieldset-help", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && h("span", null, this.error)))));
56
56
  }
57
57
  static get is() { return "duet-fieldset"; }
58
58
  static get encapsulation() { return "shadow"; }
@@ -295,6 +295,7 @@ a:hover .duet-footer-arrow {
295
295
  display: none;
296
296
  }
297
297
  .duet-footer-menu .duet-footer-menu-links {
298
+ display: block;
298
299
  flex: 1;
299
300
  }
300
301
  @media (min-width: 62em) {
@@ -128,7 +128,7 @@ export class DuetFooter {
128
128
  "duet-m-0": this.margin === "none",
129
129
  "duet-theme-turva": this.theme === "turva",
130
130
  "duet-footer-simple": this.variation === "simple",
131
- }, "aria-label": this.accessibleLabel }, h("div", { class: "duet-footer-wrapper" }, h("div", { class: "duet-footer-top", part: "top" }, this.renderFooterTop()), h("slot", { name: "extra" }), h("p", { class: "duet-footer-menu", part: "menu" }, h("span", { class: "duet-footer-copyright" }, `${copyrightLabel} ${new Date().getFullYear()}`), h("div", { class: "duet-footer-menu-links" }, this.processedMenu && (h(Fragment, null, this.processedMenu.map(item => (h("a", { href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleMenuClick(event, item), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item) }, item.label, item.external && (h(Fragment, null, h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), h("div", { class: "duet-footer-external" }, h("duet-icon", { icon: newWindowIconSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))), h("span", { class: "duet-footer-divider", role: "presentation", "aria-hidden": "true" }, "/")))))))), h("p", { class: "duet-footer-copyright duet-footer-copyright-mobile" }, `${copyrightLabel} ${new Date().getFullYear()}`))));
131
+ }, "aria-label": this.accessibleLabel }, h("div", { class: "duet-footer-wrapper" }, h("div", { class: "duet-footer-top", part: "top" }, this.renderFooterTop()), h("slot", { name: "extra" }), h("p", { class: "duet-footer-menu", part: "menu" }, h("span", { class: "duet-footer-copyright" }, `${copyrightLabel} ${new Date().getFullYear()}`), h("span", { class: "duet-footer-menu-links" }, this.processedMenu && (h(Fragment, null, this.processedMenu.map(item => (h("a", { href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleMenuClick(event, item), onMouseEnter: event => this.emitDuetEvent(event, item), onTouchStart: event => this.emitDuetEvent(event, item) }, item.label, item.external && (h(Fragment, null, h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), h("span", { class: "duet-footer-external" }, h("duet-icon", { icon: newWindowIconSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))), h("span", { class: "duet-footer-divider", role: "presentation", "aria-hidden": "true" }, "/")))))))), h("p", { class: "duet-footer-copyright duet-footer-copyright-mobile" }, `${copyrightLabel} ${new Date().getFullYear()}`))));
132
132
  }
133
133
  static get is() { return "duet-footer"; }
134
134
  static get encapsulation() { return "shadow"; }
@@ -85,6 +85,9 @@
85
85
  font-size: 2.25rem;
86
86
  }
87
87
  }
88
+ .duet-heading.h0.fixed-size {
89
+ font-size: 4.5rem;
90
+ }
88
91
  .duet-heading.h1 {
89
92
  font-size: 7vw;
90
93
  line-height: 1.1;
@@ -110,6 +113,9 @@
110
113
  font-size: 1.5rem;
111
114
  }
112
115
  }
116
+ .duet-heading.h1.fixed-size {
117
+ font-size: 3rem;
118
+ }
113
119
  .duet-heading.h2 {
114
120
  font-size: 5.8vw;
115
121
  line-height: 1.1;
@@ -138,6 +144,9 @@
138
144
  font-size: 1.375rem;
139
145
  }
140
146
  }
147
+ .duet-heading.h2.fixed-size {
148
+ font-size: 2.25rem;
149
+ }
141
150
  .duet-heading.h3 {
142
151
  margin-bottom: 12px !important;
143
152
  font-size: 4.2vw;
@@ -164,6 +173,9 @@
164
173
  .duet-heading.h3.duet-heading-border {
165
174
  padding-bottom: 20px;
166
175
  }
176
+ .duet-heading.h3.fixed-size {
177
+ font-size: 1.5rem;
178
+ }
167
179
  .duet-heading.h4 {
168
180
  margin-bottom: 8px !important;
169
181
  font-size: 4vw;
@@ -192,6 +204,9 @@
192
204
  .duet-heading.h4.duet-heading-border {
193
205
  padding-bottom: 20px;
194
206
  }
207
+ .duet-heading.h4.fixed-size {
208
+ font-size: 1.25rem;
209
+ }
195
210
  .duet-heading.h5 {
196
211
  margin-bottom: 8px !important;
197
212
  font-size: 4vw;
@@ -221,6 +236,9 @@
221
236
  .duet-heading.h5.duet-heading-border {
222
237
  padding-bottom: 16px;
223
238
  }
239
+ .duet-heading.h5.fixed-size {
240
+ font-size: 1.25rem;
241
+ }
224
242
  .duet-heading.h6 {
225
243
  margin-bottom: 8px !important;
226
244
  font-size: 1rem;
@@ -18,6 +18,7 @@ export class DuetHeading {
18
18
  this.color = "";
19
19
  this.theme = "";
20
20
  this.hyphenate = false;
21
+ this.fixedSize = false;
21
22
  }
22
23
  /**
23
24
  * Component lifecycle events.
@@ -42,6 +43,7 @@ export class DuetHeading {
42
43
  "duet-m-0": this.margin === "none",
43
44
  [this.visualLevel ? this.visualLevel : this.level]: true,
44
45
  "duet-theme-turva": this.theme === "turva",
46
+ "fixed-size": this.fixedSize,
45
47
  }, style: { color }, part: "duet-heading" }, h("slot", null)));
46
48
  }
47
49
  static get is() { return "duet-heading"; }
@@ -236,6 +238,24 @@ export class DuetHeading {
236
238
  "attribute": "hyphenate",
237
239
  "reflect": false,
238
240
  "defaultValue": "false"
241
+ },
242
+ "fixedSize": {
243
+ "type": "boolean",
244
+ "mutable": false,
245
+ "complexType": {
246
+ "original": "boolean",
247
+ "resolved": "boolean",
248
+ "references": {}
249
+ },
250
+ "required": false,
251
+ "optional": false,
252
+ "docs": {
253
+ "tags": [],
254
+ "text": "Disable responsive font scaling."
255
+ },
256
+ "attribute": "fixed-size",
257
+ "reflect": false,
258
+ "defaultValue": "false"
239
259
  }
240
260
  };
241
261
  }
@@ -50,13 +50,15 @@ input[type=search]::-webkit-search-cancel-button {
50
50
  -webkit-appearance: none;
51
51
  }
52
52
 
53
- duet-tooltip {
53
+ duet-tooltip,
54
+ ::slotted(duet-tooltip) {
54
55
  position: relative;
55
56
  top: 12px;
56
57
  right: 0;
57
58
  }
58
59
  @media (min-width: 48em) {
59
- duet-tooltip {
60
+ duet-tooltip,
61
+ ::slotted(duet-tooltip) {
60
62
  right: auto;
61
63
  }
62
64
  }
@@ -9,10 +9,14 @@ import { createID } from "../../utils/create-id";
9
9
  import { cleanValue, resetCursor } from "../../utils/input-utils";
10
10
  import { isEnterKey, isEscapeKey } from "../../utils/keyboard-utils";
11
11
  import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, } from "../../utils/language-utils";
12
+ import { slotElementCheck } from "../../utils/slot-utils";
12
13
  const icons = {
13
14
  search: searchIcon,
14
15
  email: emailIcon,
15
16
  };
17
+ /**
18
+ * @slot tooltip - Use to place a tooltip alongside the label.
19
+ */
16
20
  export class DuetInput {
17
21
  constructor() {
18
22
  /**
@@ -315,7 +319,7 @@ export class DuetInput {
315
319
  "has-clear": this.clear,
316
320
  "has-focus": this.isFocused,
317
321
  disabled: this.disabled,
318
- } }, h("div", { class: "duet-input-label-container" }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", margin: this.isCaptionVisible ? "small" : "auto", color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-tooltip", { class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip))), this.caption && (h("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { class: "duet-input-relative" }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (h("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), h("input", Object.assign({ ref: input => (this.nativeInput = input), onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, type: this.getInputType(), class: {
322
+ } }, h("div", { class: "duet-input-label-container" }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", margin: this.isCaptionVisible ? "small" : "auto", color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-tooltip", { class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), h("slot", { name: "tooltip", onSlotchange: ev => slotElementCheck(ev, this, "duet-tooltip") })), this.caption && (h("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { class: "duet-input-relative" }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (h("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), h("input", Object.assign({ ref: input => (this.nativeInput = input), onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, type: this.getInputType(), class: {
319
323
  "duet-input": true,
320
324
  disabled: this.disabled,
321
325
  "is-number": this.component === "number",
@@ -25,7 +25,7 @@
25
25
 
26
26
  .duet-menu-bar {
27
27
  position: relative;
28
- z-index: 1;
28
+ z-index: 2;
29
29
  display: flex;
30
30
  align-items: center;
31
31
  justify-content: center;
@@ -140,5 +140,5 @@
140
140
  background: rgb(198, 12, 48);
141
141
  }
142
142
  .duet-menu-bar-dropdown.duet-theme-turva .items {
143
- background: rgb(245, 245, 247);
143
+ background: rgb(255, 255, 255);
144
144
  }
@@ -43,13 +43,15 @@
43
43
  margin: 0 !important;
44
44
  }
45
45
 
46
- .duet-multiselect-tooltip {
46
+ .duet-multiselect-tooltip,
47
+ ::slotted(duet-tooltip) {
47
48
  position: absolute;
48
49
  top: 12px;
49
50
  right: 0;
50
51
  }
51
52
  @media (min-width: 48em) {
52
- .duet-multiselect-tooltip {
53
+ .duet-multiselect-tooltip,
54
+ ::slotted(duet-tooltip) {
53
55
  position: relative;
54
56
  top: 4px;
55
57
  right: auto;
@@ -6,10 +6,14 @@ import { inheritGlobalTheme } from "../../common/themeable-component";
6
6
  import { createID } from "../../utils/create-id";
7
7
  import { isArrowDownKey, isArrowLeftKey, isArrowRightKey, isArrowUpKey, isEnterKey, isEscapeKey, isTabKey, } from "../../utils/keyboard-utils";
8
8
  import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, } from "../../utils/language-utils";
9
+ import { slotElementCheck } from "../../utils/slot-utils";
9
10
  import { parsePossibleJSON } from "../../utils/string-utils";
10
11
  function toggleInArray(arr, item) {
11
12
  return arr.includes(item) ? arr.filter(i => i !== item) : [...arr, item];
12
13
  }
14
+ /**
15
+ * @slot tooltip - Use to place a tooltip alongside the label.
16
+ */
13
17
  export class DuetMultiselect {
14
18
  constructor() {
15
19
  /**
@@ -203,7 +207,7 @@ export class DuetMultiselect {
203
207
  "duet-theme-turva": this.theme === "turva",
204
208
  "duet-input-top-caption-shown": this.isCaptionVisible,
205
209
  "has-error": !!this.error,
206
- }, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: this.identifier }, this.label), this.tooltip && (h("duet-tooltip", { class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (h("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { class: "duet-multiselect-wrapper" }, h("button", { id: this.identifier, ref: el => (this.multiselectElement = el), class: { "duet-multiselect": true, "duet-multiselect-active": this.checkboxesVisible }, tabindex: "0", onClick: () => this.toggleCheckboxes(), onFocus: e => this.onFocus(e), onBlur: e => this.onBlur(e), role: "combobox", "aria-expanded": this.checkboxesVisible ? "true" : "false", "aria-haspopup": "listbox", "aria-labelledby": this.labelId, "aria-describedby": this.getDescribedBy(), "aria-owns": `${this.identifier}-checkboxes`, onKeyDown: (e) => this.onMultiselectInputKeyDown(e), disabled: this.disabled }, h("span", { role: "textbox", "aria-readonly": "true", "aria-multiline": "false", "aria-autocomplete": "none", "aria-controls": `${this.identifier}-checkboxes`, "aria-label": this.placeholderLabel[this.language], class: "duet-multiselect-label" }, this.placeholder), this.value && this.value.length > 0 && (h("span", { class: "duet-multiselect-badge" }, this.value.length, h("duet-visually-hidden", null, this.selectedLangObject[this.language], ", ", this.value.map(item => item.label).join(", ")))), h("svg", { class: { "duet-multiselect-icon": true, "duet-multiselect-icon--rotate": this.checkboxesVisible }, fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "m12 18.999c-.4 0-.776-.156-1.059-.438l-10.721-10.72c-.142-.142-.22-.33-.22-.531 0-.2.078-.389.22-.53.142-.142.33-.22.53-.22s.389.078.53.22l10.72 10.719 10.72-10.719c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.33.22.53s-.078.389-.22.53l-10.72 10.72c-.282.283-.659.439-1.06.439z" }))), h("div", { id: `${this.identifier}-checkboxes`, role: "listbox", class: {
210
+ }, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: this.identifier }, this.label), this.tooltip && (h("duet-tooltip", { class: "duet-multiselect-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { name: "tooltip", onSlotchange: ev => slotElementCheck(ev, this, "duet-tooltip") }), this.caption && (h("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { class: "duet-multiselect-wrapper" }, h("button", { id: this.identifier, ref: el => (this.multiselectElement = el), class: { "duet-multiselect": true, "duet-multiselect-active": this.checkboxesVisible }, tabindex: "0", onClick: () => this.toggleCheckboxes(), onFocus: e => this.onFocus(e), onBlur: e => this.onBlur(e), role: "combobox", "aria-expanded": this.checkboxesVisible ? "true" : "false", "aria-haspopup": "listbox", "aria-labelledby": this.labelId, "aria-describedby": this.getDescribedBy(), "aria-owns": `${this.identifier}-checkboxes`, onKeyDown: (e) => this.onMultiselectInputKeyDown(e), disabled: this.disabled }, h("span", { role: "textbox", "aria-readonly": "true", "aria-multiline": "false", "aria-autocomplete": "none", "aria-controls": `${this.identifier}-checkboxes`, "aria-label": this.placeholderLabel[this.language], class: "duet-multiselect-label" }, this.placeholder), this.value && this.value.length > 0 && (h("span", { class: "duet-multiselect-badge" }, this.value.length, h("duet-visually-hidden", null, this.selectedLangObject[this.language], ", ", this.value.map(item => item.label).join(", ")))), h("svg", { class: { "duet-multiselect-icon": true, "duet-multiselect-icon--rotate": this.checkboxesVisible }, fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "m12 18.999c-.4 0-.776-.156-1.059-.438l-10.721-10.72c-.142-.142-.22-.33-.22-.531 0-.2.078-.389.22-.53.142-.142.33-.22.53-.22s.389.078.53.22l10.72 10.719 10.72-10.719c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.33.22.53s-.078.389-.22.53l-10.72 10.72c-.282.283-.659.439-1.06.439z" }))), h("div", { id: `${this.identifier}-checkboxes`, role: "listbox", class: {
207
211
  "duet-multiselect-checkboxes": true,
208
212
  "duet-multiselect-checkboxes-active": this.checkboxesVisible,
209
213
  }, "aria-activedescendant": this.activeDescendant, "aria-multiselectable": "true" }, this.processedItems && this.allControls && (h("div", { class: "duet-multiselect-all-control-buttons" }, h("button", { class: "duet-multiselect-select-all", onClick: this.handleSelectAllClick, id: this.getOptionIdentifier(-2), onKeyDown: (e) => this.onCheckboxKeyDown(e, -2) }, this.selectAllLabel[this.language]), h("button", { class: "duet-multiselect-clear-all", onClick: this.handleClearAllClick, id: this.getOptionIdentifier(-1), onKeyDown: (e) => this.onCheckboxKeyDown(e, -1) }, this.clearAllLabel[this.language]))), this.processedItems &&
@@ -9,6 +9,10 @@ import { createID } from "../../utils/create-id";
9
9
  import { isArrowDownKey, isArrowLeftKey, isArrowRightKey, isArrowUpKey, isBackspaceKey, subscribeTabbingChange, unsubscribeTabbingChange, } from "../../utils/keyboard-utils";
10
10
  import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocale, getLocaleString, } from "../../utils/language-utils";
11
11
  import { clamp, roundTo, SafeParseFloat } from "../../utils/math.utils";
12
+ import { slotElementCheck } from "../../utils/slot-utils";
13
+ /**
14
+ * @slot tooltip - Use to place a tooltip alongside the label.
15
+ */
12
16
  export class DuetNumberInput {
13
17
  constructor() {
14
18
  this.inputId = createID("DuetInput");
@@ -287,7 +291,7 @@ export class DuetNumberInput {
287
291
  "duet-theme-turva": this.theme === "turva",
288
292
  "duet-expand": this.expand,
289
293
  "duet-m-0": this.margin === "none",
290
- } }, h("div", { class: "duet-number-container" }, h("duet-input", { ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value} ${this.unit}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, h("div", { class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, h("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, h("duet-visually-hidden", null, this.accessibleSubtract, " ", this.step), h("duet-icon", { icon: subtractIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), h("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, h("duet-visually-hidden", null, this.accessibleAdd, " ", this.step), h("duet-icon", { icon: addIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (h("duet-visually-hidden", { "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
294
+ } }, h("div", { class: "duet-number-container" }, h("duet-input", { ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value} ${this.unit}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, h("slot", { name: "tooltip", onSlotchange: ev => slotElementCheck(ev, this, "duet-tooltip") }), h("div", { class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, h("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, h("duet-visually-hidden", null, this.accessibleSubtract, " ", this.step), h("duet-icon", { icon: subtractIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), h("button", { "aria-controls": identifier, disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, h("duet-visually-hidden", null, this.accessibleAdd, " ", this.step), h("duet-icon", { icon: addIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (h("duet-visually-hidden", { "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
291
295
  }
292
296
  static get is() { return "duet-number-input"; }
293
297
  static get encapsulation() { return "scoped"; }
@@ -57,6 +57,11 @@
57
57
  color: inherit;
58
58
  text-decoration: none;
59
59
  }
60
+ .duet-promo-card .content-wrapper:focus {
61
+ border-radius: 20px;
62
+ outline: 0;
63
+ box-shadow: 0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3;
64
+ }
60
65
  .duet-promo-card .image {
61
66
  position: relative;
62
67
  width: 100%;
@@ -91,4 +96,7 @@
91
96
  }
92
97
  .duet-promo-card.duet-theme-turva {
93
98
  font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
99
+ }
100
+ .duet-promo-card.duet-theme-turva .content-wrapper:focus {
101
+ box-shadow: 0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a;
94
102
  }
@@ -31,6 +31,14 @@ export class DuetPromoCard {
31
31
  this.hasDescriptionSlot = !!this.element.querySelector('[slot="description"]');
32
32
  this.hasActionSlot = !!this.element.querySelector('[slot="action"]');
33
33
  }
34
+ /**
35
+ * Sets focus on underlying a element when url attribute is used.
36
+ */
37
+ async setFocus(options) {
38
+ if (this.url && this.aOrDivElement) {
39
+ this.aOrDivElement.focus(options);
40
+ }
41
+ }
34
42
  /**
35
43
  * render() function
36
44
  * Always the last one of the class.
@@ -45,7 +53,7 @@ export class DuetPromoCard {
45
53
  "duet-promo-card": true,
46
54
  "duet-theme-turva": this.theme === "turva",
47
55
  "no-bg-color": !this.backgroundColor,
48
- }, style: bannerStyles }, h(TagName, { href: this.url, class: "content-wrapper" }, h("img", { class: "image", src: this.image, alt: "", role: "presentation" }), h("div", { class: "content" }, this.hasPreHeadingSlot && (h("div", { class: "pre-heading" }, h("slot", { name: "pre-heading" }))), this.hasHeadingSlot && (h("div", { class: "heading" }, h("duet-heading", { theme: this.theme, level: this.headingLevel, "visual-level": "h3", margin: "none", color: this.textColor }, h("span", null, h("slot", { name: "heading", onSlotchange: ev => slotElementCheck(ev, this, "span") }))))), this.hasDescriptionSlot && (h("div", { class: "description" }, h("duet-paragraph", { theme: this.theme, margin: "none", color: this.textColor }, h("span", null, h("slot", { name: "description", onSlotchange: ev => slotElementCheck(ev, this, "span") }))))), this.hasActionSlot && (h("div", { class: "action" }, h("slot", { name: "action" }))))))));
56
+ }, style: bannerStyles }, h(TagName, { href: this.url, class: "content-wrapper", ref: element => (this.aOrDivElement = element) }, h("img", { class: "image", src: this.image, alt: "", role: "presentation" }), h("div", { class: "content" }, this.hasPreHeadingSlot && (h("div", { class: "pre-heading" }, h("slot", { name: "pre-heading" }))), this.hasHeadingSlot && (h("div", { class: "heading" }, h("duet-heading", { theme: this.theme, level: this.headingLevel, "visual-level": "h3", margin: "none", color: this.textColor }, h("span", null, h("slot", { name: "heading", onSlotchange: ev => slotElementCheck(ev, this, "span") }))))), this.hasDescriptionSlot && (h("div", { class: "description" }, h("duet-paragraph", { theme: this.theme, margin: "none", color: this.textColor }, h("span", null, h("slot", { name: "description", onSlotchange: ev => slotElementCheck(ev, this, "span") }))))), this.hasActionSlot && (h("div", { class: "action" }, h("slot", { name: "action" }))))))));
49
57
  }
50
58
  static get is() { return "duet-promo-card"; }
51
59
  static get encapsulation() { return "shadow"; }
@@ -218,5 +226,34 @@ export class DuetPromoCard {
218
226
  }
219
227
  };
220
228
  }
229
+ static get methods() {
230
+ return {
231
+ "setFocus": {
232
+ "complexType": {
233
+ "signature": "(options?: FocusOptions) => Promise<void>",
234
+ "parameters": [{
235
+ "name": "options",
236
+ "type": "FocusOptions",
237
+ "docs": ""
238
+ }],
239
+ "references": {
240
+ "Promise": {
241
+ "location": "global",
242
+ "id": "global::Promise"
243
+ },
244
+ "FocusOptions": {
245
+ "location": "global",
246
+ "id": "global::FocusOptions"
247
+ }
248
+ },
249
+ "return": "Promise<void>"
250
+ },
251
+ "docs": {
252
+ "text": "Sets focus on underlying a element when url attribute is used.",
253
+ "tags": []
254
+ }
255
+ }
256
+ };
257
+ }
221
258
  static get elementRef() { return "element"; }
222
259
  }
@@ -3,7 +3,11 @@
3
3
  */
4
4
  import { Build, h, Host } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
+ import { slotElementCheck } from "../../utils/slot-utils";
6
7
  import { findCheckedOption, watchForOptions } from "../../utils/watch-options";
8
+ /**
9
+ * @slot tooltip - Use to place a tooltip alongside the label.
10
+ */
7
11
  export class DuetRadioGroup {
8
12
  constructor() {
9
13
  /**
@@ -111,7 +115,7 @@ export class DuetRadioGroup {
111
115
  if (Build.isServer) {
112
116
  return;
113
117
  }
114
- return (h(Host, { onDuetChange: this.onSelect, class: { horizontal: this.direction === "horizontal" } }, h("duet-fieldset", { label: this.label, labelHidden: this.labelHidden, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (h("duet-tooltip", { slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("div", { class: { "duet-radio-group": true, "duet-no-stacking": !this.responsive } }, h("slot", null)))));
118
+ return (h(Host, { onDuetChange: this.onSelect, class: { horizontal: this.direction === "horizontal" } }, h("duet-fieldset", { label: this.label, labelHidden: this.labelHidden, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme, "accessible-live-error": this.accessibleLiveError }, this.tooltip && (h("duet-tooltip", { slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { name: "tooltip", onSlotchange: ev => slotElementCheck(ev, this, "duet-tooltip") }), h("div", { class: { "duet-radio-group": true, "duet-no-stacking": !this.responsive } }, h("slot", null)))));
115
119
  }
116
120
  static get is() { return "duet-radio-group"; }
117
121
  static get encapsulation() { return "scoped"; }
@@ -53,13 +53,15 @@
53
53
  margin: 0 !important;
54
54
  }
55
55
 
56
- duet-tooltip {
56
+ duet-tooltip,
57
+ ::slotted(duet-tooltip) {
57
58
  position: absolute;
58
59
  top: 12px;
59
60
  right: 0;
60
61
  }
61
62
  @media (min-width: 48em) {
62
- duet-tooltip {
63
+ duet-tooltip,
64
+ ::slotted(duet-tooltip) {
63
65
  position: relative;
64
66
  top: 4px;
65
67
  right: auto;
@@ -4,6 +4,7 @@
4
4
  import { Build, h, Host } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
6
  import { createID } from "../../utils/create-id";
7
+ import { slotElementCheck } from "../../utils/slot-utils";
7
8
  import { parsePossibleJSON } from "../../utils/string-utils";
8
9
  function isOptionGroup(item) {
9
10
  return "options" in item;
@@ -19,6 +20,9 @@ function findOptionByValue(items, value) {
19
20
  }
20
21
  }
21
22
  }
23
+ /**
24
+ * @slot tooltip - Use to place a tooltip alongside the label.
25
+ */
22
26
  export class DuetSelect {
23
27
  constructor() {
24
28
  /**
@@ -159,7 +163,7 @@ export class DuetSelect {
159
163
  [`duet-select-variation-${this.variation}`]: true,
160
164
  "duet-input-top-caption-shown": this.isCaptionVisible,
161
165
  "has-error": !!this.error,
162
- } }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (h("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { class: "duet-select-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (h("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-select-placeholder", size: "small" }, this.placeholder)), h("select", { ref: select => (this.nativeSelect = select), disabled: this.disabled, name: this.name, id: identifier, role: this.role, "aria-labelledby": this.labelId, "aria-describedby": this.getDescribedBy(), "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, required: this.required }, this.placeholder && (h("option", { disabled: true, selected: true, value: "" }, this.placeholder)), !this.processedItems ? (h("option", null, "Virhe valintoja ladattaessa. P\u00E4ivit\u00E4 sivu ja kokeile uusiksi.")) : (this.processedItems.map(item => {
166
+ } }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("slot", { name: "tooltip", onSlotchange: ev => slotElementCheck(ev, this, "duet-tooltip") }), this.caption && (h("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { class: "duet-select-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (h("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-select-placeholder", size: "small" }, this.placeholder)), h("select", { ref: select => (this.nativeSelect = select), disabled: this.disabled, name: this.name, id: identifier, role: this.role, "aria-labelledby": this.labelId, "aria-describedby": this.getDescribedBy(), "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, required: this.required }, this.placeholder && (h("option", { disabled: true, selected: true, value: "" }, this.placeholder)), !this.processedItems ? (h("option", null, "Virhe valintoja ladattaessa. P\u00E4ivit\u00E4 sivu ja kokeile uusiksi.")) : (this.processedItems.map(item => {
163
167
  return isOptionGroup(item) ? this.renderOptionGroup(item) : this.renderOption(item);
164
168
  }))), h("div", { class: {
165
169
  "duet-select": true,
@@ -87,7 +87,9 @@ export class DuetSlideout {
87
87
  }
88
88
  if (this.opener) {
89
89
  this.setOpenButton(document.getElementById(this.opener));
90
- this.openButton.addEventListener("click", this.openButtonEventListener);
90
+ if (this.openButton) {
91
+ this.openButton.addEventListener("click", this.openButtonEventListener);
92
+ }
91
93
  }
92
94
  this.mutationObserver = new MutationObserver(() => {
93
95
  this.openPanel = !!this.getOpenPanel();
@@ -104,11 +106,14 @@ export class DuetSlideout {
104
106
  this.openButton.removeEventListener("click", this.openButtonEventListener);
105
107
  }
106
108
  }
107
- handleOpenChange() {
108
- if (this.openButton) {
109
- this.openButton.accessibleExpanded = this.open;
109
+ handleOpenChange(newValue, oldValue) {
110
+ if (!!newValue === !!oldValue) {
111
+ return;
110
112
  }
111
- if (this.open) {
113
+ if (this.open && !oldValue) {
114
+ if (this.openButton) {
115
+ this.openButton.accessibleExpanded = true;
116
+ }
112
117
  const openPanel = this.getOpenPanel();
113
118
  this.teleport.go(true);
114
119
  disableBodyScroll(this.dialog, { reserveScrollBarGap: true });
@@ -121,7 +126,10 @@ export class DuetSlideout {
121
126
  }, 200);
122
127
  }
123
128
  }
124
- else {
129
+ else if (!this.open && oldValue) {
130
+ if (this.openButton) {
131
+ this.openButton.accessibleExpanded = false;
132
+ }
125
133
  setTimeout(() => {
126
134
  focusElement(this.openButton);
127
135
  enableBodyScroll(this.dialog);