@duetds/components 8.2.1 → 8.3.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 (642) hide show
  1. package/hydrate/index.js +190 -49
  2. package/lib/cjs/duet-action-button.cjs.entry.js +3 -3
  3. package/lib/cjs/duet-alert.cjs.entry.js +2 -2
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-banner.cjs.entry.js +2 -2
  6. package/lib/cjs/duet-breadcrumb.cjs.entry.js +2 -2
  7. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +2 -2
  8. package/lib/cjs/duet-button_2.cjs.entry.js +5 -4
  9. package/lib/cjs/duet-callout.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-caption_4.cjs.entry.js +5 -3
  11. package/lib/cjs/duet-card.cjs.entry.js +3 -3
  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 +2 -2
  15. package/lib/cjs/duet-choice_2.cjs.entry.js +5 -4
  16. package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-combobox.cjs.entry.js +2 -2
  18. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  20. package/lib/cjs/duet-date-picker.cjs.entry.js +4 -2
  21. package/lib/cjs/duet-divider_2.cjs.entry.js +2 -2
  22. package/lib/cjs/duet-editable-table_3.cjs.entry.js +3 -3
  23. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-fieldset.cjs.entry.js +2 -2
  25. package/lib/cjs/duet-file-chooser.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-footer.cjs.entry.js +2 -2
  27. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-header_2.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-hero.cjs.entry.js +2 -2
  30. package/lib/cjs/duet-icon.cjs.entry.js +2 -2
  31. package/lib/cjs/duet-input_2.cjs.entry.js +6 -5
  32. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +2 -2
  36. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +2 -2
  37. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-menu-bar.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-modal.cjs.entry.js +3 -3
  40. package/lib/cjs/duet-multiselect.cjs.entry.js +5 -4
  41. package/lib/cjs/duet-nav.cjs.entry.js +3 -3
  42. package/lib/cjs/duet-notification_2.cjs.entry.js +2 -2
  43. package/lib/cjs/duet-number-input.cjs.entry.js +4 -3
  44. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-pagination_2.cjs.entry.js +3 -3
  46. package/lib/cjs/duet-popup-menu-item.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-popup-menu.cjs.entry.js +3 -3
  48. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  49. package/lib/cjs/duet-promo-card.cjs.entry.js +2 -2
  50. package/lib/cjs/duet-radio_2.cjs.entry.js +3 -2
  51. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  52. package/lib/cjs/duet-scrollable_3.cjs.entry.js +89 -6
  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 +2 -2
  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 +2 -2
  60. package/lib/cjs/duet-slideout-panel.cjs.entry.js +10 -7
  61. package/lib/cjs/duet-slideout.cjs.entry.js +25 -10
  62. package/lib/cjs/duet-step_2.cjs.entry.js +2 -2
  63. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +2 -2
  64. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +2 -2
  65. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +2 -2
  66. package/lib/cjs/duet-submenu-bar.cjs.entry.js +1 -1
  67. package/lib/cjs/duet-textarea.cjs.entry.js +4 -3
  68. package/lib/cjs/duet-toggle.cjs.entry.js +2 -2
  69. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +2 -2
  70. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +3 -3
  71. package/lib/cjs/duet-toolbar-link.cjs.entry.js +1 -1
  72. package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
  73. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +3 -3
  74. package/lib/cjs/duet-tooltip.cjs.entry.js +15 -18
  75. package/lib/cjs/duet-tray.cjs.entry.js +2 -2
  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-da71e7a7.js → focus-utils-da780025.js} +1 -1
  81. package/lib/cjs/{index-476807e3.js → index-34b8e765.js} +1 -1
  82. package/lib/cjs/{keyboard-utils-7248dd0a.js → keyboard-utils-66010749.js} +2 -0
  83. package/lib/cjs/loader.cjs.js +2 -2
  84. package/lib/cjs/{token-utils-c672402d.js → token-utils-7a618677.js} +22 -0
  85. package/lib/collection/components/duet-button/duet-button.css +14 -8
  86. package/lib/collection/components/duet-button/duet-button.js +2 -1
  87. package/lib/collection/components/duet-choice-group/duet-choice-group.js +5 -1
  88. package/lib/collection/components/duet-date-picker/date-picker-input.js +2 -1
  89. package/lib/collection/components/duet-date-picker/duet-date-picker.js +3 -0
  90. package/lib/collection/components/duet-fieldset/duet-fieldset.js +1 -1
  91. package/lib/collection/components/duet-heading/duet-heading.css +18 -0
  92. package/lib/collection/components/duet-heading/duet-heading.js +20 -0
  93. package/lib/collection/components/duet-hero/duet-hero.js +1 -1
  94. package/lib/collection/components/duet-input/duet-input.css +4 -2
  95. package/lib/collection/components/duet-input/duet-input.js +5 -1
  96. package/lib/collection/components/duet-multiselect/duet-multiselect.css +4 -2
  97. package/lib/collection/components/duet-multiselect/duet-multiselect.js +5 -1
  98. package/lib/collection/components/duet-nav/duet-nav.css +5 -0
  99. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  100. package/lib/collection/components/duet-number-input/duet-number-input.js +5 -1
  101. package/lib/collection/components/duet-radio-group/duet-radio-group.js +5 -1
  102. package/lib/collection/components/duet-select/duet-select.css +4 -2
  103. package/lib/collection/components/duet-select/duet-select.js +5 -1
  104. package/lib/collection/components/duet-slideout/duet-slideout.css +1 -1
  105. package/lib/collection/components/duet-slideout/duet-slideout.js +20 -5
  106. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.css +27 -0
  107. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +9 -3
  108. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +1 -1
  109. package/lib/collection/components/duet-tab/duet-tab.css +10 -0
  110. package/lib/collection/components/duet-tab/duet-tab.js +155 -1
  111. package/lib/collection/components/duet-tab-group/duet-tab-group.js +12 -5
  112. package/lib/collection/components/duet-textarea/duet-textarea.css +4 -2
  113. package/lib/collection/components/duet-textarea/duet-textarea.js +5 -1
  114. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +1 -1
  115. package/lib/collection/components/duet-tooltip/duet-tooltip.e2e.js +5 -0
  116. package/lib/collection/components/duet-tooltip/duet-tooltip.js +15 -17
  117. package/lib/collection/utils/keyboard-utils.js +1 -0
  118. package/lib/collection/utils/token-utils.js +3 -0
  119. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  120. package/lib/dist-custom-elements/duet-alert.js +1 -1
  121. package/lib/dist-custom-elements/duet-badge.js +1 -1
  122. package/lib/dist-custom-elements/duet-banner.js +4 -4
  123. package/lib/dist-custom-elements/duet-breadcrumb.js +4 -4
  124. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  125. package/lib/dist-custom-elements/duet-button.js +1 -1
  126. package/lib/dist-custom-elements/duet-callout.js +2 -2
  127. package/lib/dist-custom-elements/duet-caption.js +1 -1
  128. package/lib/dist-custom-elements/duet-card.js +5 -5
  129. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  130. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  131. package/lib/dist-custom-elements/duet-chip.js +3 -3
  132. package/lib/dist-custom-elements/duet-choice-group.js +10 -9
  133. package/lib/dist-custom-elements/duet-choice.js +6 -6
  134. package/lib/dist-custom-elements/duet-collapsible.js +3 -3
  135. package/lib/dist-custom-elements/duet-combobox.js +3 -3
  136. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  137. package/lib/dist-custom-elements/duet-cookie-consent.js +7 -7
  138. package/lib/dist-custom-elements/duet-date-picker.js +15 -13
  139. package/lib/dist-custom-elements/duet-divider.js +1 -1
  140. package/lib/dist-custom-elements/duet-editable-table.js +8 -8
  141. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  142. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  143. package/lib/dist-custom-elements/duet-file-chooser.js +2 -2
  144. package/lib/dist-custom-elements/duet-footer.js +5 -5
  145. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  146. package/lib/dist-custom-elements/duet-grid.js +1 -1
  147. package/lib/dist-custom-elements/duet-header.js +9 -9
  148. package/lib/dist-custom-elements/duet-heading.js +1 -1
  149. package/lib/dist-custom-elements/duet-hero.js +10 -10
  150. package/lib/dist-custom-elements/duet-icon.js +1 -1
  151. package/lib/dist-custom-elements/duet-input.js +1 -1
  152. package/lib/dist-custom-elements/duet-label.js +1 -1
  153. package/lib/dist-custom-elements/duet-layout.js +1 -1
  154. package/lib/dist-custom-elements/duet-link.js +1 -1
  155. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  156. package/lib/dist-custom-elements/duet-list.js +1 -1
  157. package/lib/dist-custom-elements/duet-logo.js +1 -1
  158. package/lib/dist-custom-elements/duet-menu-bar-button.js +2 -2
  159. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +3 -3
  160. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +3 -3
  161. package/lib/dist-custom-elements/duet-menu-bar-link.js +2 -2
  162. package/lib/dist-custom-elements/duet-menu-bar.js +2 -2
  163. package/lib/dist-custom-elements/duet-modal.js +8 -8
  164. package/lib/dist-custom-elements/duet-multiselect.js +13 -12
  165. package/lib/dist-custom-elements/duet-nav.js +3 -3
  166. package/lib/dist-custom-elements/duet-notification-drawer.js +5 -5
  167. package/lib/dist-custom-elements/duet-notification.js +3 -3
  168. package/lib/dist-custom-elements/duet-number-input.js +15 -14
  169. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  170. package/lib/dist-custom-elements/duet-pagination.js +15 -15
  171. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  172. package/lib/dist-custom-elements/duet-popup-menu-item.js +2 -2
  173. package/lib/dist-custom-elements/duet-popup-menu.js +2 -2
  174. package/lib/dist-custom-elements/duet-progress.js +1 -1
  175. package/lib/dist-custom-elements/duet-promo-card.js +4 -4
  176. package/lib/dist-custom-elements/duet-radio-group.js +10 -9
  177. package/lib/dist-custom-elements/duet-radio.js +1 -1
  178. package/lib/dist-custom-elements/duet-range-slider.js +3 -3
  179. package/lib/dist-custom-elements/duet-range-stepper.js +5 -5
  180. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  181. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  182. package/lib/dist-custom-elements/duet-select.js +1 -1
  183. package/lib/dist-custom-elements/duet-shaped-image.js +1 -1
  184. package/lib/dist-custom-elements/duet-show-more.js +6 -6
  185. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  186. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  187. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +3 -3
  188. package/lib/dist-custom-elements/duet-slideout-panel.js +10 -7
  189. package/lib/dist-custom-elements/duet-slideout.js +25 -10
  190. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  191. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  192. package/lib/dist-custom-elements/duet-step.js +5 -5
  193. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  194. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +3 -3
  195. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +3 -3
  196. package/lib/dist-custom-elements/duet-submenu-bar-link.js +3 -3
  197. package/lib/dist-custom-elements/duet-submenu-bar.js +2 -2
  198. package/lib/dist-custom-elements/duet-tab-group.js +20 -16
  199. package/lib/dist-custom-elements/duet-tab.js +89 -4
  200. package/lib/dist-custom-elements/duet-table.js +1 -1
  201. package/lib/dist-custom-elements/duet-textarea.js +14 -13
  202. package/lib/dist-custom-elements/duet-toggle.js +3 -3
  203. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +3 -3
  204. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +4 -4
  205. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  206. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  207. package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
  208. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  209. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  210. package/lib/dist-custom-elements/duet-tray.js +4 -4
  211. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  212. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  213. package/lib/dist-custom-elements/duet-upload.js +18 -18
  214. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  215. package/lib/dist-custom-elements/index.js +1 -1
  216. package/lib/dist-custom-elements/{p-b9582cd5.js → p-0233383b.js} +1 -1
  217. package/lib/dist-custom-elements/{p-02c14895.js → p-0d6e1f1b.js} +1 -1
  218. package/lib/dist-custom-elements/{p-f58b3efe.js → p-10c1d640.js} +2 -2
  219. package/lib/dist-custom-elements/{p-fa713963.js → p-2718851e.js} +2 -2
  220. package/lib/dist-custom-elements/{p-d91f6a50.js → p-2bc31f8b.js} +1 -1
  221. package/lib/dist-custom-elements/{p-60bba731.js → p-2c44fafc.js} +2 -2
  222. package/lib/dist-custom-elements/{p-cf11c857.js → p-34fe2adb.js} +2 -2
  223. package/lib/dist-custom-elements/{p-7765439c.js → p-363d74c3.js} +4 -4
  224. package/lib/dist-custom-elements/{p-7ce0e8cb.js → p-3bcad21a.js} +3 -3
  225. package/lib/dist-custom-elements/{p-92d1b647.js → p-41c5df58.js} +2 -2
  226. package/lib/dist-custom-elements/{p-21a6a70e.js → p-42da65d1.js} +3 -3
  227. package/lib/dist-custom-elements/{p-8f253845.js → p-55634a0b.js} +2 -1
  228. package/lib/dist-custom-elements/{p-6f1d95ff.js → p-5b8774b6.js} +6 -6
  229. package/lib/dist-custom-elements/{p-92471963.js → p-5ccb7f41.js} +21 -23
  230. package/lib/dist-custom-elements/{p-90b6ffe0.js → p-5df55152.js} +1 -1
  231. package/lib/dist-custom-elements/{p-fa61d4fa.js → p-60dcae4f.js} +1 -1
  232. package/lib/dist-custom-elements/{p-98996152.js → p-7183d0e7.js} +10 -10
  233. package/lib/dist-custom-elements/{p-ef876cc5.js → p-73904865.js} +2 -2
  234. package/lib/dist-custom-elements/{p-8bbf3e55.js → p-7c44c302.js} +1 -1
  235. package/lib/dist-custom-elements/{p-1361c08f.js → p-8a5c7cdf.js} +5 -5
  236. package/lib/dist-custom-elements/{p-53d82662.js → p-8cd82767.js} +1 -1
  237. package/lib/dist-custom-elements/{p-62ee9ce2.js → p-96a8a294.js} +5 -5
  238. package/lib/dist-custom-elements/{p-4daba3d3.js → p-98ca74e0.js} +1 -1
  239. package/lib/dist-custom-elements/{p-9d8b2fae.js → p-997c1c72.js} +7 -4
  240. package/lib/dist-custom-elements/{p-3ddc40a1.js → p-a13cbd71.js} +1 -1
  241. package/lib/dist-custom-elements/{p-fb75af05.js → p-a73804b7.js} +1 -1
  242. package/lib/dist-custom-elements/{p-c5aebc44.js → p-ac4ee6ea.js} +2 -2
  243. package/lib/dist-custom-elements/{p-ac901c78.js → p-afe568e9.js} +1 -1
  244. package/lib/dist-custom-elements/{p-7e52554a.js → p-b24c3dc4.js} +3 -3
  245. package/lib/dist-custom-elements/{p-d19bb914.js → p-b443af91.js} +12 -11
  246. package/lib/dist-custom-elements/{p-def0c88d.js → p-c7e3638d.js} +1 -1
  247. package/lib/dist-custom-elements/{p-ef9c200e.js → p-cbac9ed5.js} +22 -1
  248. package/lib/dist-custom-elements/{p-dfd971b5.js → p-cf2212cc.js} +14 -13
  249. package/lib/dist-custom-elements/{p-fb2961bc.js → p-d27e5b0d.js} +2 -2
  250. package/lib/dist-custom-elements/{p-62198405.js → p-e3d866c6.js} +8 -7
  251. package/lib/dist-custom-elements/{p-eeb33e81.js → p-e445c96b.js} +2 -2
  252. package/lib/duet/duet.esm.js +1 -1
  253. package/lib/duet/duet.js +1 -1
  254. package/lib/duet/{p-242a4d9e.system.entry.js → p-004f5593.system.entry.js} +1 -1
  255. package/lib/duet/{p-a7936672.system.entry.js → p-0296a34a.system.entry.js} +1 -1
  256. package/lib/duet/{p-369303cc.entry.js → p-0322bace.entry.js} +1 -1
  257. package/lib/duet/p-05cfffb1.entry.js +4 -0
  258. package/lib/duet/{p-c8f93bef.system.entry.js → p-079710fa.system.entry.js} +1 -1
  259. package/lib/duet/p-09c54c8e.system.js +4 -0
  260. package/lib/duet/p-0abf8fe1.system.entry.js +4 -0
  261. package/lib/duet/{p-f3fe9cd3.system.entry.js → p-0c2cf3a5.system.entry.js} +1 -1
  262. package/lib/duet/{p-9d0c29ad.system.entry.js → p-0c416590.system.entry.js} +1 -1
  263. package/lib/duet/{p-519053d9.entry.js → p-0d0867ae.entry.js} +1 -1
  264. package/lib/duet/p-0f35fce0.system.entry.js +4 -0
  265. package/lib/duet/{p-bd4ae595.system.entry.js → p-11be6924.system.entry.js} +1 -1
  266. package/lib/duet/{p-3990d92d.entry.js → p-15c9c4cb.entry.js} +1 -1
  267. package/lib/duet/{p-41bf8f79.system.entry.js → p-193fcf1c.system.entry.js} +1 -1
  268. package/lib/duet/{p-bc51e56f.entry.js → p-1953edbe.entry.js} +1 -1
  269. package/lib/duet/{p-f55b70ae.system.entry.js → p-19fc4ff9.system.entry.js} +1 -1
  270. package/lib/duet/{p-1bca2d80.entry.js → p-1c7ca800.entry.js} +1 -1
  271. package/lib/duet/p-1cb624dd.entry.js +4 -0
  272. package/lib/duet/{p-718c8ee1.entry.js → p-1d91fb5d.entry.js} +1 -1
  273. package/lib/duet/p-1f6ad797.system.entry.js +4 -0
  274. package/lib/duet/p-2054dad2.entry.js +4 -0
  275. package/lib/duet/{p-3c394198.entry.js → p-213dab77.entry.js} +1 -1
  276. package/lib/duet/{p-4f114158.system.entry.js → p-240c3f03.system.entry.js} +1 -1
  277. package/lib/duet/p-25e0cbc3.entry.js +4 -0
  278. package/lib/duet/{p-aab68cd0.system.entry.js → p-27485e15.system.entry.js} +1 -1
  279. package/lib/duet/{p-176660e8.system.entry.js → p-2888bff8.system.entry.js} +1 -1
  280. package/lib/duet/p-294b9ccf.system.entry.js +4 -0
  281. package/lib/duet/{p-ca4a28ae.entry.js → p-2de5d10d.entry.js} +1 -1
  282. package/lib/duet/{p-ca0b364e.system.entry.js → p-2e3254e1.system.entry.js} +1 -1
  283. package/lib/duet/{p-81b98ab3.system.entry.js → p-2eb5153f.system.entry.js} +1 -1
  284. package/lib/duet/{p-c564ed20.system.entry.js → p-2f22f4cc.system.entry.js} +1 -1
  285. package/lib/duet/{p-e4fed586.system.entry.js → p-310fd85a.system.entry.js} +1 -1
  286. package/lib/duet/p-32f3d9e9.entry.js +4 -0
  287. package/lib/duet/{p-d8d7858c.system.entry.js → p-33771b10.system.entry.js} +1 -1
  288. package/lib/duet/{p-4a357ae7.system.entry.js → p-34b96e8d.system.entry.js} +1 -1
  289. package/lib/duet/p-38bab76d.entry.js +4 -0
  290. package/lib/duet/{p-59648317.entry.js → p-39730ce5.entry.js} +1 -1
  291. package/lib/duet/p-3ac0c888.system.entry.js +4 -0
  292. package/lib/duet/{p-9d17d1e2.entry.js → p-3ddc5b9d.entry.js} +1 -1
  293. package/lib/duet/p-3f9bb231.entry.js +4 -0
  294. package/lib/duet/p-43ee1368.entry.js +4 -0
  295. package/lib/duet/{p-ad80b81c.entry.js → p-447943eb.entry.js} +1 -1
  296. package/lib/duet/{p-5cdab2eb.entry.js → p-45464aa5.entry.js} +1 -1
  297. package/lib/duet/{p-06806757.system.entry.js → p-45e26ba0.system.entry.js} +1 -1
  298. package/lib/duet/{p-cab83f17.entry.js → p-48f4acef.entry.js} +1 -1
  299. package/lib/duet/{p-67717c78.system.entry.js → p-4a4317af.system.entry.js} +1 -1
  300. package/lib/duet/p-4ca1be7a.system.entry.js +4 -0
  301. package/lib/duet/{p-e8fdc3d1.system.entry.js → p-505375e1.system.entry.js} +1 -1
  302. package/lib/duet/{p-170a5c9e.entry.js → p-52a756fe.entry.js} +1 -1
  303. package/lib/duet/p-53e192de.system.entry.js +4 -0
  304. package/lib/duet/{p-8fed0e13.entry.js → p-560f26a5.entry.js} +1 -1
  305. package/lib/duet/{p-60aecb64.system.entry.js → p-56be87c9.system.entry.js} +1 -1
  306. package/lib/duet/{p-3e613ecb.system.entry.js → p-573ce757.system.entry.js} +1 -1
  307. package/lib/duet/p-578de372.entry.js +4 -0
  308. package/lib/duet/p-58a8254d.entry.js +4 -0
  309. package/lib/duet/{p-1b63c721.entry.js → p-5add7da0.entry.js} +1 -1
  310. package/lib/duet/{p-778a8d70.entry.js → p-5bf6660a.entry.js} +1 -1
  311. package/lib/duet/p-5c42b7f0.system.entry.js +4 -0
  312. package/lib/duet/{p-d491fdf1.entry.js → p-5d74e505.entry.js} +1 -1
  313. package/lib/duet/{p-5dee116e.system.js → p-5eb9efcf.system.js} +1 -1
  314. package/lib/duet/p-5f87ea3d.js +4 -0
  315. package/lib/duet/{p-aafc24b8.system.entry.js → p-604aab16.system.entry.js} +1 -1
  316. package/lib/duet/{p-f59d22b9.system.entry.js → p-618cc2c7.system.entry.js} +1 -1
  317. package/lib/duet/{p-ceef02de.entry.js → p-65dcf9ed.entry.js} +1 -1
  318. package/lib/duet/{p-52643881.entry.js → p-6626a173.entry.js} +1 -1
  319. package/lib/duet/p-690d8509.system.entry.js +4 -0
  320. package/lib/duet/p-6a9f8b30.entry.js +4 -0
  321. package/lib/duet/{p-cdabe32b.entry.js → p-6ab9f8ce.entry.js} +1 -1
  322. package/lib/duet/p-700eb8d9.system.entry.js +4 -0
  323. package/lib/duet/{p-5d924446.system.entry.js → p-7083fb38.system.entry.js} +1 -1
  324. package/lib/duet/{p-6aaaf3d3.entry.js → p-71568bfa.entry.js} +1 -1
  325. package/lib/duet/{p-45e34e81.system.entry.js → p-73f87dff.system.entry.js} +1 -1
  326. package/lib/duet/{p-d4948057.system.entry.js → p-7479da8d.system.entry.js} +1 -1
  327. package/lib/duet/p-74fef701.system.entry.js +4 -0
  328. package/lib/duet/p-753d1ca4.system.js +4 -0
  329. package/lib/duet/{p-7df079f9.system.entry.js → p-755f5cf0.system.entry.js} +1 -1
  330. package/lib/duet/{p-8ec80833.system.js → p-769b7d3c.system.js} +1 -1
  331. package/lib/duet/{p-9072403e.entry.js → p-777fbef3.entry.js} +1 -1
  332. package/lib/duet/{p-0fe8a9ab.system.entry.js → p-77b95466.system.entry.js} +1 -1
  333. package/lib/duet/{p-0630aa90.system.entry.js → p-7cdcc3f9.system.entry.js} +1 -1
  334. package/lib/duet/{p-23fa9346.system.entry.js → p-7fd03652.system.entry.js} +1 -1
  335. package/lib/duet/{p-91dd51f0.system.entry.js → p-82bef678.system.entry.js} +1 -1
  336. package/lib/duet/{p-fdb8dfcc.entry.js → p-82cd0795.entry.js} +1 -1
  337. package/lib/duet/{p-aaf90349.entry.js → p-859754bb.entry.js} +1 -1
  338. package/lib/duet/p-85b08ff2.system.entry.js +4 -0
  339. package/lib/duet/{p-ce25c1c7.entry.js → p-85c6a112.entry.js} +1 -1
  340. package/lib/duet/{p-1c9be86d.entry.js → p-85e98030.entry.js} +1 -1
  341. package/lib/duet/{p-f203d34a.system.entry.js → p-87112f7c.system.entry.js} +1 -1
  342. package/lib/duet/{p-f75db096.system.entry.js → p-8726889d.system.entry.js} +1 -1
  343. package/lib/duet/{p-c35fd74a.entry.js → p-8a2f8d7d.entry.js} +1 -1
  344. package/lib/duet/{p-77d702b7.system.entry.js → p-8a90810c.system.entry.js} +1 -1
  345. package/lib/duet/p-8b25f04b.system.entry.js +4 -0
  346. package/lib/duet/{p-f7a1f763.system.entry.js → p-8c08f362.system.entry.js} +1 -1
  347. package/lib/duet/{p-ec831316.system.entry.js → p-90847ed0.system.entry.js} +2 -2
  348. package/lib/duet/{p-4d7c105a.entry.js → p-91e776e5.entry.js} +1 -1
  349. package/lib/duet/p-93037a0a.entry.js +4 -0
  350. package/lib/duet/{p-a8559573.system.entry.js → p-9686aa88.system.entry.js} +1 -1
  351. package/lib/duet/{p-64bb15cb.system.entry.js → p-97cf5b01.system.entry.js} +1 -1
  352. package/lib/duet/{p-64b33796.entry.js → p-98a822e3.entry.js} +1 -1
  353. package/lib/duet/{p-a8eba5d8.entry.js → p-9ba3d633.entry.js} +1 -1
  354. package/lib/duet/{p-111837dd.entry.js → p-9bba389f.entry.js} +1 -1
  355. package/lib/duet/{p-ab2b432f.entry.js → p-9bfaaf32.entry.js} +1 -1
  356. package/lib/duet/{p-48eaa47f.entry.js → p-9d841e0f.entry.js} +1 -1
  357. package/lib/duet/{p-4ef9dde8.entry.js → p-9e8772d1.entry.js} +1 -1
  358. package/lib/duet/{p-373772b4.entry.js → p-a01d2fdb.entry.js} +1 -1
  359. package/lib/duet/{p-f16eb916.entry.js → p-a3351207.entry.js} +1 -1
  360. package/lib/duet/p-a3b8bb87.entry.js +4 -0
  361. package/lib/duet/{p-73537a10.entry.js → p-a5ebbe3e.entry.js} +1 -1
  362. package/lib/duet/{p-c0b9535b.system.entry.js → p-a9a0f040.system.entry.js} +1 -1
  363. package/lib/duet/p-abdbce02.system.js +4 -0
  364. package/lib/duet/{p-fb4a0c88.system.entry.js → p-abe6350b.system.entry.js} +1 -1
  365. package/lib/duet/{p-6cf47679.entry.js → p-afa0c531.entry.js} +1 -1
  366. package/lib/duet/{p-876e256a.js → p-b263e985.js} +1 -1
  367. package/lib/duet/{p-7f1ffc72.system.entry.js → p-b2ccffd1.system.entry.js} +1 -1
  368. package/lib/duet/{p-e171d23b.entry.js → p-b3e26504.entry.js} +1 -1
  369. package/lib/duet/{p-e34b15a6.system.entry.js → p-b507f27d.system.entry.js} +1 -1
  370. package/lib/duet/{p-551b5f11.entry.js → p-b9140794.entry.js} +1 -1
  371. package/lib/duet/{p-aa752b66.entry.js → p-b9c1d172.entry.js} +1 -1
  372. package/lib/duet/{p-3108add4.entry.js → p-ba89aaf0.entry.js} +1 -1
  373. package/lib/duet/{p-a9a76005.system.entry.js → p-ba92e7b1.system.entry.js} +1 -1
  374. package/lib/duet/{p-ee38290b.entry.js → p-c03920c0.entry.js} +1 -1
  375. package/lib/duet/{p-b283d96a.entry.js → p-c16515e0.entry.js} +1 -1
  376. package/lib/duet/{p-9bdd5e77.entry.js → p-c28792a8.entry.js} +1 -1
  377. package/lib/duet/{p-cb139257.system.entry.js → p-c8466623.system.entry.js} +1 -1
  378. package/lib/duet/{p-94cc7d1b.system.entry.js → p-c9221359.system.entry.js} +1 -1
  379. package/lib/duet/{p-794089ad.entry.js → p-c9c43026.entry.js} +1 -1
  380. package/lib/duet/{p-cc73b676.system.entry.js → p-ca5cd66a.system.entry.js} +1 -1
  381. package/lib/duet/p-ccb58dd2.entry.js +4 -0
  382. package/lib/duet/{p-e19b5fc8.entry.js → p-cea6ffda.entry.js} +1 -1
  383. package/lib/duet/{p-01bcca95.system.entry.js → p-cfdea256.system.entry.js} +1 -1
  384. package/lib/duet/p-cff7873f.entry.js +4 -0
  385. package/lib/duet/{p-291b0ada.system.entry.js → p-d36935fa.system.entry.js} +1 -1
  386. package/lib/duet/{p-90626a7c.system.entry.js → p-d3aed7d8.system.entry.js} +1 -1
  387. package/lib/duet/{p-aeb8e304.entry.js → p-d7175aea.entry.js} +1 -1
  388. package/lib/duet/{p-b26b5e62.system.entry.js → p-d7f9ea61.system.entry.js} +1 -1
  389. package/lib/duet/{p-0db9f9d3.system.entry.js → p-d8144268.system.entry.js} +1 -1
  390. package/lib/duet/{p-9dfe770b.entry.js → p-d84be985.entry.js} +1 -1
  391. package/lib/duet/{p-464c06a5.system.entry.js → p-d864a0e3.system.entry.js} +1 -1
  392. package/lib/duet/{p-f61f51f8.entry.js → p-da0e04fa.entry.js} +1 -1
  393. package/lib/duet/{p-00519b3f.entry.js → p-dcaed1b0.entry.js} +1 -1
  394. package/lib/duet/{p-b0810e57.system.entry.js → p-e0db152c.system.entry.js} +1 -1
  395. package/lib/duet/p-e19067f1.js +4 -0
  396. package/lib/duet/p-e276fee0.js +4 -0
  397. package/lib/duet/{p-5915fe9e.system.entry.js → p-e27a4bf4.system.entry.js} +1 -1
  398. package/lib/duet/{p-0722dab6.system.entry.js → p-e3c31f72.system.entry.js} +1 -1
  399. package/lib/duet/{p-e1d67353.system.entry.js → p-e72a7aa6.system.entry.js} +1 -1
  400. package/lib/duet/p-e79d2de2.system.entry.js +4 -0
  401. package/lib/duet/p-e7b6657c.system.entry.js +4 -0
  402. package/lib/duet/p-e7ffb722.entry.js +4 -0
  403. package/lib/duet/{p-8d4bc222.system.entry.js → p-ed8efd4d.system.entry.js} +1 -1
  404. package/lib/duet/{p-3adf25ca.entry.js → p-f1843c31.entry.js} +1 -1
  405. package/lib/duet/{p-1824a282.system.entry.js → p-f43327c2.system.entry.js} +1 -1
  406. package/lib/duet/{p-03151e84.entry.js → p-f61c00e3.entry.js} +1 -1
  407. package/lib/duet/p-f7e13990.entry.js +4 -0
  408. package/lib/duet/{p-6e4a159f.entry.js → p-f801f2a7.entry.js} +1 -1
  409. package/lib/duet/{p-062c3e81.entry.js → p-fa6061c9.entry.js} +1 -1
  410. package/lib/duet/{p-e486de80.system.entry.js → p-fbbfcc2d.system.entry.js} +1 -1
  411. package/lib/duet/p-fcb84038.entry.js +4 -0
  412. package/lib/duet/{p-794782cd.entry.js → p-fdeb4f7d.entry.js} +1 -1
  413. package/lib/duet/{p-ed0a66cb.system.entry.js → p-fe79a10c.system.entry.js} +1 -1
  414. package/lib/duet/p-fea9215a.entry.js +4 -0
  415. package/lib/duet/{p-299c3869.entry.js → p-fefcaeb4.entry.js} +1 -1
  416. package/lib/duet/{p-1fa8902f.system.entry.js → p-ffdb9d3f.system.entry.js} +1 -1
  417. package/lib/esm/duet-action-button.entry.js +3 -3
  418. package/lib/esm/duet-alert.entry.js +2 -2
  419. package/lib/esm/duet-badge.entry.js +1 -1
  420. package/lib/esm/duet-banner.entry.js +2 -2
  421. package/lib/esm/duet-breadcrumb.entry.js +2 -2
  422. package/lib/esm/duet-breadcrumbs.entry.js +2 -2
  423. package/lib/esm/duet-button_2.entry.js +5 -4
  424. package/lib/esm/duet-callout.entry.js +1 -1
  425. package/lib/esm/duet-caption_4.entry.js +5 -3
  426. package/lib/esm/duet-card.entry.js +3 -3
  427. package/lib/esm/duet-checkbox.entry.js +1 -1
  428. package/lib/esm/duet-checkmark.entry.js +1 -1
  429. package/lib/esm/duet-chip.entry.js +2 -2
  430. package/lib/esm/duet-choice_2.entry.js +5 -4
  431. package/lib/esm/duet-collapsible.entry.js +2 -2
  432. package/lib/esm/duet-combobox.entry.js +2 -2
  433. package/lib/esm/duet-contact-card.entry.js +1 -1
  434. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  435. package/lib/esm/duet-date-picker.entry.js +4 -2
  436. package/lib/esm/duet-divider_2.entry.js +2 -2
  437. package/lib/esm/duet-editable-table_3.entry.js +3 -3
  438. package/lib/esm/duet-empty-state.entry.js +1 -1
  439. package/lib/esm/duet-fieldset.entry.js +2 -2
  440. package/lib/esm/duet-file-chooser.entry.js +1 -1
  441. package/lib/esm/duet-footer.entry.js +2 -2
  442. package/lib/esm/duet-grid_2.entry.js +1 -1
  443. package/lib/esm/duet-header_2.entry.js +2 -2
  444. package/lib/esm/duet-hero.entry.js +2 -2
  445. package/lib/esm/duet-icon.entry.js +2 -2
  446. package/lib/esm/duet-input_2.entry.js +6 -5
  447. package/lib/esm/duet-layout.entry.js +1 -1
  448. package/lib/esm/duet-list_2.entry.js +1 -1
  449. package/lib/esm/duet-menu-bar-button.entry.js +1 -1
  450. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +2 -2
  451. package/lib/esm/duet-menu-bar-dropdown.entry.js +2 -2
  452. package/lib/esm/duet-menu-bar-link.entry.js +1 -1
  453. package/lib/esm/duet-menu-bar.entry.js +1 -1
  454. package/lib/esm/duet-modal.entry.js +3 -3
  455. package/lib/esm/duet-multiselect.entry.js +5 -4
  456. package/lib/esm/duet-nav.entry.js +3 -3
  457. package/lib/esm/duet-notification_2.entry.js +2 -2
  458. package/lib/esm/duet-number-input.entry.js +4 -3
  459. package/lib/esm/duet-page-heading.entry.js +1 -1
  460. package/lib/esm/duet-pagination_2.entry.js +3 -3
  461. package/lib/esm/duet-popup-menu-item.entry.js +1 -1
  462. package/lib/esm/duet-popup-menu.entry.js +3 -3
  463. package/lib/esm/duet-progress.entry.js +1 -1
  464. package/lib/esm/duet-promo-card.entry.js +2 -2
  465. package/lib/esm/duet-radio_2.entry.js +3 -2
  466. package/lib/esm/duet-range-slider.entry.js +2 -2
  467. package/lib/esm/duet-scrollable_3.entry.js +89 -6
  468. package/lib/esm/duet-section-layout.entry.js +1 -1
  469. package/lib/esm/duet-select.entry.js +4 -3
  470. package/lib/esm/duet-shaped-image.entry.js +1 -1
  471. package/lib/esm/duet-show-more.entry.js +2 -2
  472. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  473. package/lib/esm/duet-slideout-link.entry.js +1 -1
  474. package/lib/esm/duet-slideout-panel-dropdown.entry.js +2 -2
  475. package/lib/esm/duet-slideout-panel.entry.js +10 -7
  476. package/lib/esm/duet-slideout.entry.js +25 -10
  477. package/lib/esm/duet-step_2.entry.js +2 -2
  478. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +2 -2
  479. package/lib/esm/duet-submenu-bar-dropdown.entry.js +2 -2
  480. package/lib/esm/duet-submenu-bar-link.entry.js +2 -2
  481. package/lib/esm/duet-submenu-bar.entry.js +1 -1
  482. package/lib/esm/duet-textarea.entry.js +4 -3
  483. package/lib/esm/duet-toggle.entry.js +2 -2
  484. package/lib/esm/duet-toolbar-dropdown-link.entry.js +2 -2
  485. package/lib/esm/duet-toolbar-dropdown.entry.js +3 -3
  486. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  487. package/lib/esm/duet-toolbar.entry.js +1 -1
  488. package/lib/esm/duet-tooltip-button_2.entry.js +3 -3
  489. package/lib/esm/duet-tooltip.entry.js +15 -18
  490. package/lib/esm/duet-tray.entry.js +2 -2
  491. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  492. package/lib/esm/duet-upload-item.entry.js +1 -1
  493. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  494. package/lib/esm/duet.js +3 -3
  495. package/lib/esm/{focus-utils-447570ba.js → focus-utils-a9110b59.js} +1 -1
  496. package/lib/esm/{index-bb1fb3bf.js → index-ad0e5e61.js} +1 -1
  497. package/lib/esm/{keyboard-utils-eba88365.js → keyboard-utils-c472d19d.js} +2 -1
  498. package/lib/esm/loader.js +3 -3
  499. package/lib/esm/{token-utils-d09165bc.js → token-utils-0c77cb3c.js} +23 -2
  500. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  501. package/lib/esm-es5/duet-alert.entry.js +1 -1
  502. package/lib/esm-es5/duet-badge.entry.js +1 -1
  503. package/lib/esm-es5/duet-banner.entry.js +1 -1
  504. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  505. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  506. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  507. package/lib/esm-es5/duet-callout.entry.js +1 -1
  508. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  509. package/lib/esm-es5/duet-card.entry.js +1 -1
  510. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  511. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  512. package/lib/esm-es5/duet-chip.entry.js +1 -1
  513. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  514. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  515. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  516. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  517. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  518. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  519. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  520. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  521. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  522. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  523. package/lib/esm-es5/duet-file-chooser.entry.js +1 -1
  524. package/lib/esm-es5/duet-footer.entry.js +1 -1
  525. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  526. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  527. package/lib/esm-es5/duet-hero.entry.js +1 -1
  528. package/lib/esm-es5/duet-icon.entry.js +1 -1
  529. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  530. package/lib/esm-es5/duet-layout.entry.js +1 -1
  531. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  532. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  533. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  534. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +2 -2
  535. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  536. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  537. package/lib/esm-es5/duet-modal.entry.js +1 -1
  538. package/lib/esm-es5/duet-multiselect.entry.js +2 -2
  539. package/lib/esm-es5/duet-nav.entry.js +1 -1
  540. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  541. package/lib/esm-es5/duet-number-input.entry.js +2 -2
  542. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  543. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  544. package/lib/esm-es5/duet-popup-menu-item.entry.js +1 -1
  545. package/lib/esm-es5/duet-popup-menu.entry.js +1 -1
  546. package/lib/esm-es5/duet-progress.entry.js +1 -1
  547. package/lib/esm-es5/duet-promo-card.entry.js +1 -1
  548. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  549. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  550. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  551. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  552. package/lib/esm-es5/duet-select.entry.js +1 -1
  553. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  554. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  555. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  556. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  557. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  558. package/lib/esm-es5/duet-slideout-panel.entry.js +2 -2
  559. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  560. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  561. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  562. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  563. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  564. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  565. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  566. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  567. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  568. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  569. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  570. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  571. package/lib/esm-es5/duet-tooltip-button_2.entry.js +1 -1
  572. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  573. package/lib/esm-es5/duet-tray.entry.js +1 -1
  574. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  575. package/lib/esm-es5/duet-upload-item.entry.js +1 -1
  576. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  577. package/lib/esm-es5/duet.js +1 -1
  578. package/lib/esm-es5/focus-utils-a9110b59.js +4 -0
  579. package/lib/esm-es5/{index-bb1fb3bf.js → index-ad0e5e61.js} +1 -1
  580. package/lib/esm-es5/{keyboard-utils-eba88365.js → keyboard-utils-c472d19d.js} +1 -1
  581. package/lib/esm-es5/loader.js +1 -1
  582. package/lib/esm-es5/token-utils-0c77cb3c.js +4 -0
  583. package/lib/types/components/duet-choice-group/duet-choice-group.d.ts +3 -0
  584. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +3 -0
  585. package/lib/types/components/duet-heading/duet-heading.d.ts +4 -0
  586. package/lib/types/components/duet-input/duet-input.d.ts +3 -0
  587. package/lib/types/components/duet-multiselect/duet-multiselect.d.ts +3 -0
  588. package/lib/types/components/duet-number-input/duet-number-input.d.ts +3 -0
  589. package/lib/types/components/duet-radio-group/duet-radio-group.d.ts +3 -0
  590. package/lib/types/components/duet-select/duet-select.d.ts +3 -0
  591. package/lib/types/components/duet-slideout/duet-slideout.d.ts +2 -1
  592. package/lib/types/components/duet-slideout-panel/duet-slideout-panel.d.ts +4 -0
  593. package/lib/types/components/duet-tab/duet-tab.d.ts +22 -2
  594. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +2 -1
  595. package/lib/types/components/duet-textarea/duet-textarea.d.ts +3 -0
  596. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +1 -2
  597. package/lib/types/components.d.ts +30 -2
  598. package/lib/types/utils/keyboard-utils.d.ts +1 -0
  599. package/lib/types/utils/token-utils.d.ts +1 -0
  600. package/package.json +5 -5
  601. package/lib/duet/p-21d28d14.system.entry.js +0 -4
  602. package/lib/duet/p-21d4584d.system.entry.js +0 -4
  603. package/lib/duet/p-23354cf7.system.js +0 -4
  604. package/lib/duet/p-249b4cfc.entry.js +0 -4
  605. package/lib/duet/p-28f9bfa5.entry.js +0 -4
  606. package/lib/duet/p-2bb2b022.js +0 -4
  607. package/lib/duet/p-2d344151.entry.js +0 -4
  608. package/lib/duet/p-4974ac97.entry.js +0 -4
  609. package/lib/duet/p-4fd91269.entry.js +0 -4
  610. package/lib/duet/p-5795b0d9.system.js +0 -4
  611. package/lib/duet/p-5a2a0090.entry.js +0 -4
  612. package/lib/duet/p-5c7f3468.system.entry.js +0 -4
  613. package/lib/duet/p-5d5735ef.entry.js +0 -4
  614. package/lib/duet/p-64ea72f4.js +0 -4
  615. package/lib/duet/p-6e2a24de.system.entry.js +0 -4
  616. package/lib/duet/p-744d37b4.entry.js +0 -4
  617. package/lib/duet/p-7cb0d9f9.system.entry.js +0 -4
  618. package/lib/duet/p-89d51951.system.entry.js +0 -4
  619. package/lib/duet/p-8a4f3512.entry.js +0 -4
  620. package/lib/duet/p-8ce26cd2.system.entry.js +0 -4
  621. package/lib/duet/p-996d0515.system.entry.js +0 -4
  622. package/lib/duet/p-9dff8650.js +0 -4
  623. package/lib/duet/p-9e0d085e.entry.js +0 -4
  624. package/lib/duet/p-aa72c276.system.entry.js +0 -4
  625. package/lib/duet/p-afa204da.entry.js +0 -4
  626. package/lib/duet/p-b612619b.system.entry.js +0 -4
  627. package/lib/duet/p-bbebfd1d.entry.js +0 -4
  628. package/lib/duet/p-bd0bd000.system.entry.js +0 -4
  629. package/lib/duet/p-c00ee143.system.entry.js +0 -4
  630. package/lib/duet/p-c8995aac.entry.js +0 -4
  631. package/lib/duet/p-ce215826.system.js +0 -4
  632. package/lib/duet/p-d2b39891.system.entry.js +0 -4
  633. package/lib/duet/p-d5d42770.entry.js +0 -4
  634. package/lib/duet/p-d9ffac40.entry.js +0 -4
  635. package/lib/duet/p-ef1e2a76.system.entry.js +0 -4
  636. package/lib/duet/p-f2946931.entry.js +0 -4
  637. package/lib/duet/p-f3a6b182.entry.js +0 -4
  638. package/lib/duet/p-f3cbbc74.entry.js +0 -4
  639. package/lib/duet/p-f9c7c607.entry.js +0 -4
  640. package/lib/duet/p-faffedeb.system.entry.js +0 -4
  641. package/lib/esm-es5/focus-utils-447570ba.js +0 -4
  642. package/lib/esm-es5/token-utils-d09165bc.js +0 -4
@@ -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",
@@ -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 &&
@@ -23,6 +23,11 @@
23
23
  width: 100%;
24
24
  }
25
25
 
26
+ .container {
27
+ position: relative;
28
+ z-index: 400;
29
+ }
30
+
26
31
  slot[name=mobile] {
27
32
  display: inherit;
28
33
  }
@@ -23,7 +23,7 @@ export class DuetNav {
23
23
  * Always the last one in the class.
24
24
  */
25
25
  render() {
26
- return (h(Host, null, h("div", null, h("slot", null), h("slot", { name: "mobile" }), h("slot", { name: "desktop" }))));
26
+ return (h(Host, null, h("div", { class: "container" }, h("slot", null), h("slot", { name: "mobile" }), h("slot", { name: "desktop" }))));
27
27
  }
28
28
  static get is() { return "duet-nav"; }
29
29
  static get encapsulation() { return "shadow"; }
@@ -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"; }
@@ -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,
@@ -31,7 +31,7 @@
31
31
  opacity: 0;
32
32
  }
33
33
 
34
- :host([open]) ::slotted(*) {
34
+ :host([open]:not([open=false])) ::slotted(*) {
35
35
  visibility: visible;
36
36
  opacity: 1;
37
37
  }
@@ -39,6 +39,13 @@ export class DuetSlideout {
39
39
  }
40
40
  catch (_e) { }
41
41
  };
42
+ this.setStickHeaderStyleMutations = (clean = false) => {
43
+ const stickyHeaderTabGroups = this.element.querySelectorAll('[slot="sticky-header"] duet-tab-group');
44
+ stickyHeaderTabGroups.forEach(tabGroup => {
45
+ tabGroup.style.position = clean ? null : "relative";
46
+ tabGroup.style.top = clean ? null : "1px";
47
+ });
48
+ };
42
49
  this.openButtonEventListener = (e) => {
43
50
  e.stopPropagation();
44
51
  e.preventDefault();
@@ -91,6 +98,7 @@ export class DuetSlideout {
91
98
  this.openButton.addEventListener("click", this.openButtonEventListener);
92
99
  }
93
100
  }
101
+ this.setStickHeaderStyleMutations();
94
102
  this.mutationObserver = new MutationObserver(() => {
95
103
  this.openPanel = !!this.getOpenPanel();
96
104
  });
@@ -105,12 +113,16 @@ export class DuetSlideout {
105
113
  if (this.openButton) {
106
114
  this.openButton.removeEventListener("click", this.openButtonEventListener);
107
115
  }
116
+ this.setStickHeaderStyleMutations(true);
108
117
  }
109
- handleOpenChange() {
110
- if (this.openButton) {
111
- this.openButton.accessibleExpanded = this.open;
118
+ handleOpenChange(newValue, oldValue) {
119
+ if (!!newValue === !!oldValue) {
120
+ return;
112
121
  }
113
- if (this.open) {
122
+ if (this.open && !oldValue) {
123
+ if (this.openButton) {
124
+ this.openButton.accessibleExpanded = true;
125
+ }
114
126
  const openPanel = this.getOpenPanel();
115
127
  this.teleport.go(true);
116
128
  disableBodyScroll(this.dialog, { reserveScrollBarGap: true });
@@ -123,7 +135,10 @@ export class DuetSlideout {
123
135
  }, 200);
124
136
  }
125
137
  }
126
- else {
138
+ else if (!this.open && oldValue) {
139
+ if (this.openButton) {
140
+ this.openButton.accessibleExpanded = false;
141
+ }
127
142
  setTimeout(() => {
128
143
  focusElement(this.openButton);
129
144
  enableBodyScroll(this.dialog);
@@ -116,6 +116,18 @@
116
116
  .duet-slideout-panel .dialog.hidden .top span {
117
117
  opacity: 0;
118
118
  }
119
+ .duet-slideout-panel .top-container.has-sticky-header-slot {
120
+ position: sticky;
121
+ top: 0;
122
+ z-index: 200;
123
+ }
124
+ .duet-slideout-panel .top-container.has-sticky-header-slot .top {
125
+ background: rgb(243, 249, 252);
126
+ }
127
+ .duet-slideout-panel .top-container.has-sticky-header-slot .sticky-header {
128
+ display: block;
129
+ padding: 0 16px;
130
+ }
119
131
  .duet-slideout-panel .top {
120
132
  display: flex;
121
133
  align-items: center;
@@ -143,6 +155,14 @@
143
155
  opacity: 1;
144
156
  transition: top 0.3s ease-in, opacity 0.3s ease-in;
145
157
  }
158
+ .duet-slideout-panel .sticky-header {
159
+ display: none;
160
+ width: 100%;
161
+ padding: 0 1.5rem;
162
+ margin-bottom: 20px;
163
+ background: rgb(243, 249, 252);
164
+ border-bottom: 1px solid rgb(225, 227, 230);
165
+ }
146
166
  .duet-slideout-panel .items {
147
167
  display: flex;
148
168
  flex-direction: column;
@@ -162,6 +182,13 @@
162
182
  .duet-slideout-panel.duet-theme-turva .link.active .label-text::after {
163
183
  background: rgb(198, 12, 48);
164
184
  }
185
+ .duet-slideout-panel.duet-theme-turva .has-sticky-header-slot .top {
186
+ background: rgb(245, 245, 247);
187
+ }
188
+ .duet-slideout-panel.duet-theme-turva .has-sticky-header-slot .sticky-header {
189
+ background: rgb(245, 245, 247);
190
+ border-bottom: 1px solid rgb(228, 228, 230);
191
+ }
165
192
  .duet-slideout-panel.duet-theme-turva .top .back:focus,
166
193
  .duet-slideout-panel.duet-theme-turva .top .close:focus {
167
194
  box-shadow: 0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a;
@@ -2,10 +2,14 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  import { h, Host } from "@stencil/core";
5
+ import { hasSlot } from "../../common";
5
6
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
7
  import { FocusGuard } from "../../utils/focus-utils";
7
8
  import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
8
9
  import { getColorByName } from "../../utils/token-utils";
10
+ /**
11
+ * @slot sticky-header - Content will be fixed to the top of the modal when scrolling.
12
+ */
9
13
  export class DuetSlideoutPanel {
10
14
  constructor() {
11
15
  this.exitLangObject = {
@@ -18,6 +22,7 @@ export class DuetSlideoutPanel {
18
22
  fi: "Takaisin päävalikkoon",
19
23
  sv: "Tillbaka till huvudmenyn",
20
24
  };
25
+ this.hasStickyHeaderSlot = false;
21
26
  this.updateLabel = () => {
22
27
  const labelSlotElement = this.element.querySelector("[slot='label']");
23
28
  this.label = labelSlotElement;
@@ -69,6 +74,7 @@ export class DuetSlideoutPanel {
69
74
  componentWillLoad() {
70
75
  inheritGlobalTheme(this);
71
76
  this.updateLabel();
77
+ this.hasStickyHeaderSlot = hasSlot(this.element, "sticky-header");
72
78
  }
73
79
  connectedCallback() {
74
80
  connectLanguageChangeObserver(this);
@@ -113,12 +119,12 @@ export class DuetSlideoutPanel {
113
119
  } }, h("button", { ref: element => (this.openButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
114
120
  link: true,
115
121
  active: this.active,
116
- }, onClick: this.onToggleClick, inert: this.open }, this.icon && h("duet-icon", { name: this.icon, size: "medium", margin: "none", color: "secondary" }), h("div", { class: "label" }, h("span", { class: { "label-text": true, [this.labelSize]: true } }, h("slot", { name: "label" })), h("duet-icon", { class: "caret", name: "action-arrow-right", margin: "none", size: "x-small", color: "secondary" }))), h("div", { class: {
122
+ }, onClick: this.onToggleClick, inert: this.open }, this.icon && h("duet-icon", { name: this.icon, size: "medium", margin: "none", color: "secondary" }), h("span", { class: "label" }, h("span", { class: { "label-text": true, [this.labelSize]: true } }, h("slot", { name: "label" })), h("duet-icon", { class: "caret", name: "action-arrow-right", margin: "none", size: "x-small", color: "secondary" }))), h("div", { class: {
117
123
  dialog: true,
118
124
  hidden: !this.open,
119
- }, style: styles }, h(FocusGuard, { moveFocusTo: this.closeButton }), h("div", { class: "top" }, h("button", { ref: element => (this.closeButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-label": `${backTranslation}`, type: "button", class: {
125
+ }, style: styles }, h(FocusGuard, { moveFocusTo: this.closeButton }), h("div", { class: { "top-container": true, "has-sticky-header-slot": this.hasStickyHeaderSlot } }, h("div", { class: "top" }, h("button", { ref: element => (this.closeButton = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-label": `${backTranslation}`, type: "button", class: {
120
126
  back: true,
121
- }, onClick: this.onToggleClick }, h("duet-icon", { class: "caret", name: "action-arrow-left", margin: "none", size: "small", color: "secondary" })), h("span", null, this.label.innerHTML), h("button", { class: "close", type: "button", onClick: this.onCloseClick, "aria-label": `${exitTranslation}` }, h("duet-icon", { name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), h("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
127
+ }, onClick: this.onToggleClick }, h("duet-icon", { class: "caret", name: "action-arrow-left", margin: "none", size: "small", color: "secondary" })), h("span", null, this.label.innerHTML), h("button", { class: "close", type: "button", onClick: this.onCloseClick, "aria-label": `${exitTranslation}` }, h("duet-icon", { name: "navigation-close", size: "small", margin: "none", color: "secondary" }))), h("div", { class: "sticky-header" }, h("slot", { name: "sticky-header" }))), h("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
122
128
  items: true,
123
129
  } }, h("slot", null)), h(FocusGuard, { moveFocusTo: this.closeButton })))));
124
130
  }
@@ -46,7 +46,7 @@ export class DuetSlideoutPanelDropdown {
46
46
  active: this.open,
47
47
  } }, h("button", { ref: element => (this.button = element), "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", "aria-current": this.active ? "true" : "false", id: "button", type: "button", class: {
48
48
  active: this.active,
49
- }, onClick: this.onClick }, this.icon && h("duet-icon", { name: this.icon, size: "medium", margin: "none", color: "secondary" }), h("div", { class: "label" }, h("slot", { name: "label" }), h("duet-icon", { class: "caret", name: "action-arrow-down-small", margin: "none", size: "xx-small", color: "secondary" }))), h("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
49
+ }, onClick: this.onClick }, this.icon && h("duet-icon", { name: this.icon, size: "medium", margin: "none", color: "secondary" }), h("span", { class: "label" }, h("slot", { name: "label" }), h("duet-icon", { class: "caret", name: "action-arrow-down-small", margin: "none", size: "xx-small", color: "secondary" }))), h("div", { tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
50
50
  items: true,
51
51
  hidden: !this.open,
52
52
  } }, h("slot", null)))));
@@ -25,4 +25,14 @@
25
25
  }
26
26
  .duet-tab.selected {
27
27
  display: block;
28
+ }
29
+ .duet-tab.has-content-id, .duet-tab.has-content-id.selected {
30
+ display: none;
31
+ }
32
+ :host(.user-is-tabbing) .duet-tab:focus {
33
+ outline: 0;
34
+ box-shadow: 0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3;
35
+ }
36
+ :host(.user-is-tabbing) .duet-tab.duet-theme-turva:focus {
37
+ box-shadow: 0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a;
28
38
  }
@@ -2,9 +2,48 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  import { Build, h } from "@stencil/core";
5
+ import { inheritGlobalTheme } from "../../common";
6
+ import { subscribeTabbingChange, unsubscribeTabbingChange } from "../../utils/keyboard-utils";
5
7
  import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLocaleString, } from "../../utils/language-utils";
8
+ import { getShadowByName } from "../../utils/token-utils";
6
9
  export class DuetTab {
7
10
  constructor() {
11
+ this.setupContentElement = () => {
12
+ if (this.contentId) {
13
+ this.tabpanelElement = document.getElementById(this.contentId);
14
+ if (this.tabpanelElement) {
15
+ this.tabpanelElement.setAttribute("role", "tabpanel");
16
+ this.tabpanelElement.setAttribute("tabindex", "-1");
17
+ this.tabpanelElement.removeEventListener("focus", this.tabpanelElementFocusListener);
18
+ this.tabpanelElement.removeEventListener("blur", this.tabpanelElementBlurListener);
19
+ this.tabpanelElement.addEventListener("focus", this.tabpanelElementFocusListener);
20
+ this.tabpanelElement.addEventListener("blur", this.tabpanelElementBlurListener);
21
+ if (this.accessibleDescription) {
22
+ this.tabpanelElement.setAttribute("aria-description", this.accessibleDescription);
23
+ }
24
+ if (this.accessibleLabelledBy) {
25
+ this.tabpanelElement.setAttribute("aria-labelledby", this.accessibleLabelledBy);
26
+ }
27
+ if (this.selected) {
28
+ this.tabpanelElement.toggleAttribute("hidden", false);
29
+ }
30
+ else {
31
+ this.tabpanelElement.toggleAttribute("hidden", true);
32
+ }
33
+ }
34
+ }
35
+ };
36
+ this.tabpanelElementFocusListener = () => {
37
+ if (this.element.classList.contains("user-is-tabbing")) {
38
+ this.tabpanelElement.style.outline = "0";
39
+ this.tabpanelElement.style.boxShadow = getShadowByName(this.theme === "turva" ? "focus-turva" : "focus");
40
+ }
41
+ };
42
+ this.tabpanelElementBlurListener = () => {
43
+ this.tabpanelElement.style.outline = null;
44
+ this.tabpanelElement.style.boxShadow = null;
45
+ };
46
+ this.theme = "";
8
47
  this.label = undefined;
9
48
  this.caption = undefined;
10
49
  this.selected = undefined;
@@ -14,15 +53,44 @@ export class DuetTab {
14
53
  ? getLocaleString(this.accessibleDescriptionDefault)
15
54
  : null;
16
55
  this.accessibleLabelledBy = undefined;
56
+ this.contentId = undefined;
57
+ }
58
+ componentWillLoad() {
59
+ inheritGlobalTheme(this);
17
60
  }
18
61
  /**
19
62
  * Component lifecycle events.
20
63
  */
21
64
  connectedCallback() {
22
65
  connectLanguageChangeObserver(this, { prop: "accessibleDescription", defaults: "accessibleDescriptionDefault" });
66
+ subscribeTabbingChange(this);
67
+ this.setupContentElement();
23
68
  }
24
69
  disconnectedCallback() {
25
70
  disconnectLanguageChangeObserver(this);
71
+ unsubscribeTabbingChange(this);
72
+ if (this.tabpanelElement) {
73
+ this.tabpanelElement.removeAttribute("role");
74
+ this.tabpanelElement.removeAttribute("tabindex");
75
+ this.tabpanelElement.removeAttribute("aria-description");
76
+ this.tabpanelElement.removeAttribute("aria-labelledby");
77
+ this.tabpanelElement.removeAttribute("hidden");
78
+ this.tabpanelElement.removeEventListener("focus", this.tabpanelElementFocusListener.bind(this));
79
+ this.tabpanelElement.removeEventListener("blur", this.tabpanelElementBlurListener.bind(this));
80
+ this.tabpanelElement = undefined;
81
+ }
82
+ }
83
+ setupSelected(newValue, oldValue) {
84
+ if (!!newValue === !!oldValue) {
85
+ return;
86
+ }
87
+ this.setupContentElement();
88
+ }
89
+ /**
90
+ * Sets focus on the tab panel.
91
+ */
92
+ async setFocus(options) {
93
+ this.tabpanelElement.focus(options);
26
94
  }
27
95
  /**
28
96
  * render() function
@@ -32,7 +100,16 @@ export class DuetTab {
32
100
  if (Build.isServer) {
33
101
  return;
34
102
  }
35
- return (h("div", { role: "tabpanel", class: { "duet-tab": true, selected: this.selected }, "aria-description": this.accessibleDescription, "aria-labelledby": this.accessibleLabelledBy }, h("slot", null)));
103
+ return (h("div", { ref: element => {
104
+ if (!this.contentId) {
105
+ this.tabpanelElement = element;
106
+ }
107
+ }, role: "tabpanel", class: {
108
+ "duet-theme-turva": this.theme === "turva",
109
+ "duet-tab": true,
110
+ selected: this.selected,
111
+ "has-content-id": !!this.contentId,
112
+ }, "aria-description": this.accessibleDescription, "aria-labelledby": this.accessibleLabelledBy, tabindex: "-1" }, h("slot", null)));
36
113
  }
37
114
  static get is() { return "duet-tab"; }
38
115
  static get encapsulation() { return "scoped"; }
@@ -48,6 +125,30 @@ export class DuetTab {
48
125
  }
49
126
  static get properties() {
50
127
  return {
128
+ "theme": {
129
+ "type": "string",
130
+ "mutable": true,
131
+ "complexType": {
132
+ "original": "DuetTheme",
133
+ "resolved": "\"\" | \"default\" | \"turva\"",
134
+ "references": {
135
+ "DuetTheme": {
136
+ "location": "import",
137
+ "path": "../../common-types",
138
+ "id": "src/common-types.d.ts::DuetTheme"
139
+ }
140
+ }
141
+ },
142
+ "required": false,
143
+ "optional": false,
144
+ "docs": {
145
+ "tags": [],
146
+ "text": "Theme of the component."
147
+ },
148
+ "attribute": "theme",
149
+ "reflect": false,
150
+ "defaultValue": "\"\""
151
+ },
51
152
  "label": {
52
153
  "type": "string",
53
154
  "mutable": false,
@@ -164,8 +265,61 @@ export class DuetTab {
164
265
  "attribute": "accessible-labelled-by",
165
266
  "reflect": false,
166
267
  "defaultValue": "undefined"
268
+ },
269
+ "contentId": {
270
+ "type": "string",
271
+ "mutable": false,
272
+ "complexType": {
273
+ "original": "string",
274
+ "resolved": "string",
275
+ "references": {}
276
+ },
277
+ "required": false,
278
+ "optional": false,
279
+ "docs": {
280
+ "tags": [],
281
+ "text": "HTML id of element that is to be used when opening this tab.\nThis enables decoupling the content from the tab buttons."
282
+ },
283
+ "attribute": "content-id",
284
+ "reflect": false,
285
+ "defaultValue": "undefined"
286
+ }
287
+ };
288
+ }
289
+ static get methods() {
290
+ return {
291
+ "setFocus": {
292
+ "complexType": {
293
+ "signature": "(options?: FocusOptions) => Promise<void>",
294
+ "parameters": [{
295
+ "name": "options",
296
+ "type": "FocusOptions",
297
+ "docs": ""
298
+ }],
299
+ "references": {
300
+ "Promise": {
301
+ "location": "global",
302
+ "id": "global::Promise"
303
+ },
304
+ "FocusOptions": {
305
+ "location": "global",
306
+ "id": "global::FocusOptions"
307
+ }
308
+ },
309
+ "return": "Promise<void>"
310
+ },
311
+ "docs": {
312
+ "text": "Sets focus on the tab panel.",
313
+ "tags": []
314
+ }
167
315
  }
168
316
  };
169
317
  }
170
318
  static get elementRef() { return "element"; }
319
+ static get watchers() {
320
+ return [{
321
+ "propName": "selected",
322
+ "methodName": "setupSelected"
323
+ }];
324
+ }
171
325
  }