@duetds/components 6.9.1 → 6.9.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 (513) hide show
  1. package/hydrate/index.js +112 -46
  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-breadcrumb.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-button_2.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +3 -3
  9. package/lib/cjs/duet-card.cjs.entry.js +9 -13
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  13. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  18. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-editable-table_3.cjs.entry.js +5 -5
  20. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-fieldset.cjs.entry.js +6 -2
  22. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-hero.cjs.entry.js +2 -2
  26. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-input_2.cjs.entry.js +9 -14
  28. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +3 -2
  32. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +3 -2
  34. package/lib/cjs/duet-menu-bar.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  36. package/lib/cjs/duet-multiselect.cjs.entry.js +16 -2
  37. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-pagination_2.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-scrollable_3.cjs.entry.js +19 -3
  46. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-select.cjs.entry.js +15 -2
  48. package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
  49. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  50. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  51. package/lib/cjs/duet-slideout-panel.cjs.entry.js +2 -2
  52. package/lib/cjs/duet-slideout.cjs.entry.js +2 -2
  53. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  54. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +1 -1
  55. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-submenu-bar.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-textarea.cjs.entry.js +15 -4
  59. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
  61. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +1 -1
  62. package/lib/cjs/duet-toolbar-link.cjs.entry.js +3 -2
  63. package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
  64. package/lib/cjs/duet-tooltip.cjs.entry.js +7 -1
  65. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  66. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  67. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  68. package/lib/cjs/duet.cjs.js +2 -2
  69. package/lib/cjs/{focus-utils-46e27452.js → focus-utils-76896ff7.js} +1 -1
  70. package/lib/cjs/{index-8512a70b.js → index-0000eab8.js} +1 -1
  71. package/lib/cjs/loader.cjs.js +2 -2
  72. package/lib/collection/components/duet-card/duet-card.css +13 -10
  73. package/lib/collection/components/duet-card/duet-card.js +7 -11
  74. package/lib/collection/components/duet-fieldset/duet-fieldset.js +5 -1
  75. package/lib/collection/components/duet-heading/duet-heading.js +4 -1
  76. package/lib/collection/components/duet-hero/duet-hero.css +16 -3
  77. package/lib/collection/components/duet-input/duet-input.js +8 -13
  78. package/lib/collection/components/duet-link/duet-link.css +3 -0
  79. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +19 -1
  80. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +19 -1
  81. package/lib/collection/components/duet-multiselect/duet-multiselect.js +32 -1
  82. package/lib/collection/components/duet-select/duet-select.js +14 -1
  83. package/lib/collection/components/duet-tab-group/duet-tab-group.js +55 -2
  84. package/lib/collection/components/duet-textarea/duet-textarea.js +14 -3
  85. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +19 -1
  86. package/lib/collection/components/duet-tooltip/duet-tooltip.js +12 -0
  87. package/lib/collection/components/duet-upload/duet-upload.css +6 -3
  88. package/lib/collection/components/duet-upload/duet-upload.js +1 -1
  89. package/lib/collection/components/duet-upload/upload-item-header.js +1 -1
  90. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  91. package/lib/dist-custom-elements/duet-alert.js +1 -1
  92. package/lib/dist-custom-elements/duet-badge.js +1 -1
  93. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  94. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  95. package/lib/dist-custom-elements/duet-button.js +1 -1
  96. package/lib/dist-custom-elements/duet-caption.js +1 -1
  97. package/lib/dist-custom-elements/duet-card.js +11 -15
  98. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  99. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  100. package/lib/dist-custom-elements/duet-choice-group.js +6 -6
  101. package/lib/dist-custom-elements/duet-choice.js +5 -5
  102. package/lib/dist-custom-elements/duet-collapsible.js +2 -2
  103. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  104. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  105. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  106. package/lib/dist-custom-elements/duet-date-picker.js +10 -10
  107. package/lib/dist-custom-elements/duet-divider.js +1 -1
  108. package/lib/dist-custom-elements/duet-editable-table.js +7 -7
  109. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  110. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  111. package/lib/dist-custom-elements/duet-footer.js +4 -4
  112. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  113. package/lib/dist-custom-elements/duet-grid.js +1 -1
  114. package/lib/dist-custom-elements/duet-header.js +8 -8
  115. package/lib/dist-custom-elements/duet-heading.js +1 -1
  116. package/lib/dist-custom-elements/duet-hero.js +10 -10
  117. package/lib/dist-custom-elements/duet-icon.js +1 -1
  118. package/lib/dist-custom-elements/duet-input.js +1 -1
  119. package/lib/dist-custom-elements/duet-label.js +1 -1
  120. package/lib/dist-custom-elements/duet-layout.js +1 -1
  121. package/lib/dist-custom-elements/duet-link.js +1 -1
  122. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  123. package/lib/dist-custom-elements/duet-list.js +1 -1
  124. package/lib/dist-custom-elements/duet-logo.js +1 -1
  125. package/lib/dist-custom-elements/duet-menu-bar-button.js +2 -2
  126. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +6 -4
  127. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +2 -2
  128. package/lib/dist-custom-elements/duet-menu-bar-link.js +5 -3
  129. package/lib/dist-custom-elements/duet-menu-bar.js +2 -2
  130. package/lib/dist-custom-elements/duet-modal.js +7 -7
  131. package/lib/dist-custom-elements/duet-multiselect.js +24 -9
  132. package/lib/dist-custom-elements/duet-nav.js +1 -1
  133. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  134. package/lib/dist-custom-elements/duet-notification.js +2 -2
  135. package/lib/dist-custom-elements/duet-number-input.js +9 -9
  136. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  137. package/lib/dist-custom-elements/duet-pagination.js +7 -7
  138. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  139. package/lib/dist-custom-elements/duet-progress.js +1 -1
  140. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  141. package/lib/dist-custom-elements/duet-radio.js +1 -1
  142. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  143. package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
  144. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  145. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  146. package/lib/dist-custom-elements/duet-select.js +1 -1
  147. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  148. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  149. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  150. package/lib/dist-custom-elements/duet-slideout-panel.js +2 -2
  151. package/lib/dist-custom-elements/duet-slideout.js +2 -2
  152. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  153. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  154. package/lib/dist-custom-elements/duet-step.js +4 -4
  155. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  156. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  157. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +2 -2
  158. package/lib/dist-custom-elements/duet-submenu-bar-link.js +2 -2
  159. package/lib/dist-custom-elements/duet-submenu-bar.js +2 -2
  160. package/lib/dist-custom-elements/duet-tab-group.js +28 -11
  161. package/lib/dist-custom-elements/duet-tab.js +1 -1
  162. package/lib/dist-custom-elements/duet-table.js +1 -1
  163. package/lib/dist-custom-elements/duet-textarea.js +22 -11
  164. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  165. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  166. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  167. package/lib/dist-custom-elements/duet-toolbar-link.js +6 -4
  168. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  169. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  170. package/lib/dist-custom-elements/duet-tray.js +3 -3
  171. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  172. package/lib/dist-custom-elements/duet-upload.js +21 -21
  173. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  174. package/lib/dist-custom-elements/index.js +1 -1
  175. package/lib/dist-custom-elements/{p-2a919c81.js → p-0dee6e51.js} +10 -4
  176. package/lib/dist-custom-elements/{p-84d75d9d.js → p-148a04af.js} +4 -4
  177. package/lib/dist-custom-elements/{p-bbf48894.js → p-14d7b7b1.js} +1 -1
  178. package/lib/dist-custom-elements/{p-414fdb0c.js → p-16da1a85.js} +2 -2
  179. package/lib/dist-custom-elements/{p-6f661b09.js → p-1b34ed71.js} +1 -1
  180. package/lib/dist-custom-elements/{p-c57eccd3.js → p-29b0c53d.js} +3 -3
  181. package/lib/dist-custom-elements/{p-43bbb094.js → p-2a7fe62b.js} +7 -3
  182. package/lib/dist-custom-elements/{p-98b0f345.js → p-3ee0a1f0.js} +1 -1
  183. package/lib/dist-custom-elements/{p-cefb33f9.js → p-427c3c85.js} +1 -1
  184. package/lib/dist-custom-elements/{p-57d6495c.js → p-4672c5f9.js} +1 -1
  185. package/lib/dist-custom-elements/{p-7392a942.js → p-61d6063e.js} +2 -2
  186. package/lib/dist-custom-elements/{p-69fa1743.js → p-685671d3.js} +20 -7
  187. package/lib/dist-custom-elements/{p-94df5d2c.js → p-6b75d471.js} +1 -1
  188. package/lib/dist-custom-elements/{p-5e60f757.js → p-74eab201.js} +16 -21
  189. package/lib/dist-custom-elements/{p-8d12a863.js → p-773afd9d.js} +1 -1
  190. package/lib/dist-custom-elements/{p-117109e4.js → p-80c873a7.js} +1 -1
  191. package/lib/dist-custom-elements/{p-9f027a93.js → p-81ad703b.js} +1 -1
  192. package/lib/dist-custom-elements/{p-528cdd3e.js → p-8810d94c.js} +4 -4
  193. package/lib/dist-custom-elements/{p-bdc087cb.js → p-a2640cf0.js} +1 -1
  194. package/lib/dist-custom-elements/{p-b7b7c63b.js → p-a98f3c53.js} +1 -1
  195. package/lib/dist-custom-elements/{p-f1b800f0.js → p-aa856cf3.js} +1 -1
  196. package/lib/dist-custom-elements/{p-7c4c8cf0.js → p-b1c2d128.js} +1 -1
  197. package/lib/dist-custom-elements/{p-b51fbd15.js → p-b8590b9e.js} +2 -2
  198. package/lib/dist-custom-elements/{p-00afad07.js → p-b8bdb756.js} +1 -1
  199. package/lib/dist-custom-elements/{p-9175529e.js → p-b9713025.js} +2 -2
  200. package/lib/dist-custom-elements/{p-afc65a24.js → p-c06566bd.js} +2 -2
  201. package/lib/dist-custom-elements/{p-c272c5d5.js → p-cf8e064c.js} +5 -5
  202. package/lib/dist-custom-elements/{p-11fbe397.js → p-d0a476fa.js} +1 -1
  203. package/lib/dist-custom-elements/{p-c8659d75.js → p-d6ebe136.js} +1 -1
  204. package/lib/dist-custom-elements/{p-72635656.js → p-d9374d44.js} +1 -1
  205. package/lib/dist-custom-elements/{p-51307fda.js → p-fb9ea1e2.js} +1 -1
  206. package/lib/duet/duet.esm.js +1 -1
  207. package/lib/duet/duet.js +1 -1
  208. package/lib/duet/p-00492553.entry.js +4 -0
  209. package/lib/duet/{p-51160aa4.entry.js → p-00a6021a.entry.js} +1 -1
  210. package/lib/duet/{p-c141d219.system.entry.js → p-04b466d9.system.entry.js} +1 -1
  211. package/lib/duet/{p-5abf961b.system.entry.js → p-0956191f.system.entry.js} +1 -1
  212. package/lib/duet/{p-64b14d85.system.entry.js → p-0b99b63a.system.entry.js} +1 -1
  213. package/lib/duet/{p-dc566220.entry.js → p-0c7ba24e.entry.js} +1 -1
  214. package/lib/duet/{p-75a307e4.entry.js → p-0fd03676.entry.js} +1 -1
  215. package/lib/duet/{p-376ec229.entry.js → p-0febc106.entry.js} +1 -1
  216. package/lib/duet/{p-f28d27a4.system.entry.js → p-10c8dcce.system.entry.js} +1 -1
  217. package/lib/duet/{p-736eb6f6.system.entry.js → p-18417d31.system.entry.js} +1 -1
  218. package/lib/duet/{p-e9fb2c3b.system.entry.js → p-1a494e83.system.entry.js} +1 -1
  219. package/lib/duet/{p-bf37cb60.system.entry.js → p-1af260c2.system.entry.js} +1 -1
  220. package/lib/duet/{p-7743d05c.entry.js → p-1b53a027.entry.js} +1 -1
  221. package/lib/duet/{p-3a28cf58.entry.js → p-1d4d1191.entry.js} +1 -1
  222. package/lib/duet/p-1d6d12db.entry.js +4 -0
  223. package/lib/duet/{p-bc0ce7e7.entry.js → p-1f782abb.entry.js} +1 -1
  224. package/lib/duet/{p-22caa775.entry.js → p-255e7c67.entry.js} +1 -1
  225. package/lib/duet/p-25608db1.entry.js +4 -0
  226. package/lib/duet/{p-84881c84.system.entry.js → p-2578566b.system.entry.js} +1 -1
  227. package/lib/duet/{p-a190f8b9.system.js → p-2852d734.system.js} +1 -1
  228. package/lib/duet/{p-7dd4e3f6.entry.js → p-2ee96e3b.entry.js} +1 -1
  229. package/lib/duet/{p-c213c2f2.system.entry.js → p-30574b01.system.entry.js} +1 -1
  230. package/lib/duet/{p-00c11b87.entry.js → p-3337b7b5.entry.js} +1 -1
  231. package/lib/duet/{p-bb536ec4.entry.js → p-335ce078.entry.js} +1 -1
  232. package/lib/duet/{p-d51ed3e2.system.entry.js → p-39311463.system.entry.js} +1 -1
  233. package/lib/duet/{p-5c2dd50b.system.entry.js → p-3eb4385b.system.entry.js} +1 -1
  234. package/lib/duet/{p-981b43c2.entry.js → p-3f823f65.entry.js} +1 -1
  235. package/lib/duet/{p-9616579e.entry.js → p-40c8612e.entry.js} +1 -1
  236. package/lib/duet/{p-d8422099.system.js → p-473e553e.system.js} +1 -1
  237. package/lib/duet/{p-7cbc8aa1.system.entry.js → p-4cf4097a.system.entry.js} +1 -1
  238. package/lib/duet/{p-90fece55.entry.js → p-4f054589.entry.js} +1 -1
  239. package/lib/duet/{p-2f936baf.system.entry.js → p-51b95a0b.system.entry.js} +1 -1
  240. package/lib/duet/{p-a4e42811.system.entry.js → p-5368ccf3.system.entry.js} +1 -1
  241. package/lib/duet/{p-1254c99a.entry.js → p-57a480c6.entry.js} +1 -1
  242. package/lib/duet/{p-cb5771c5.entry.js → p-5925af50.entry.js} +1 -1
  243. package/lib/duet/p-59dbe033.system.entry.js +4 -0
  244. package/lib/duet/{p-1666fed9.system.entry.js → p-5a0a47c5.system.entry.js} +1 -1
  245. package/lib/duet/{p-8b7b4c46.entry.js → p-5dc301ad.entry.js} +1 -1
  246. package/lib/duet/{p-9fc991c2.system.entry.js → p-612c5794.system.entry.js} +1 -1
  247. package/lib/duet/{p-b1abb582.system.entry.js → p-619129a1.system.entry.js} +1 -1
  248. package/lib/duet/{p-b3f12c59.entry.js → p-6288a8f7.entry.js} +1 -1
  249. package/lib/duet/{p-539034b3.system.entry.js → p-62e5eda4.system.entry.js} +1 -1
  250. package/lib/duet/{p-9cd3ea60.system.entry.js → p-62ee8769.system.entry.js} +1 -1
  251. package/lib/duet/{p-76bac602.system.entry.js → p-64a97121.system.entry.js} +1 -1
  252. package/lib/duet/{p-db9f9e24.entry.js → p-65c666a0.entry.js} +1 -1
  253. package/lib/duet/p-66d17a50.entry.js +4 -0
  254. package/lib/duet/{p-58833aca.entry.js → p-68436d9b.entry.js} +1 -1
  255. package/lib/duet/{p-d2d14d3b.system.entry.js → p-6a23db40.system.entry.js} +1 -1
  256. package/lib/duet/{p-05f30291.entry.js → p-6b3d47fc.entry.js} +1 -1
  257. package/lib/duet/{p-d22e694c.entry.js → p-6bec8453.entry.js} +1 -1
  258. package/lib/duet/{p-abbcf5dc.entry.js → p-6cccad3a.entry.js} +1 -1
  259. package/lib/duet/{p-45a939b3.entry.js → p-6dd7d693.entry.js} +1 -1
  260. package/lib/duet/{p-78973e79.entry.js → p-71012a41.entry.js} +1 -1
  261. package/lib/duet/{p-6a8341c1.entry.js → p-711128a1.entry.js} +1 -1
  262. package/lib/duet/{p-1263323e.system.entry.js → p-71da4ed1.system.entry.js} +1 -1
  263. package/lib/duet/{p-dc1f60cd.system.entry.js → p-74d84deb.system.entry.js} +1 -1
  264. package/lib/duet/{p-a3f23363.entry.js → p-754a1a94.entry.js} +1 -1
  265. package/lib/duet/{p-04ccc444.entry.js → p-779234b0.entry.js} +1 -1
  266. package/lib/duet/p-78ce7a07.entry.js +4 -0
  267. package/lib/duet/{p-2078d7cd.entry.js → p-79f6c24a.entry.js} +1 -1
  268. package/lib/duet/{p-361ce072.system.entry.js → p-7e739548.system.entry.js} +1 -1
  269. package/lib/duet/{p-4bdd34bc.system.entry.js → p-7e96a306.system.entry.js} +1 -1
  270. package/lib/duet/{p-faeed6cf.entry.js → p-7f9cc019.entry.js} +1 -1
  271. package/lib/duet/{p-825c4e47.system.entry.js → p-81236c93.system.entry.js} +1 -1
  272. package/lib/duet/{p-99ccb2c2.system.entry.js → p-815cbab7.system.entry.js} +1 -1
  273. package/lib/duet/{p-3d3e5e9e.entry.js → p-82398d82.entry.js} +1 -1
  274. package/lib/duet/{p-e920e34f.system.entry.js → p-840cdccb.system.entry.js} +1 -1
  275. package/lib/duet/{p-a29118e6.entry.js → p-86fede3f.entry.js} +1 -1
  276. package/lib/duet/{p-71e63186.system.entry.js → p-8d1ccbc2.system.entry.js} +1 -1
  277. package/lib/duet/{p-a0bcc46c.system.entry.js → p-8d482808.system.entry.js} +1 -1
  278. package/lib/duet/p-8ef91f59.entry.js +4 -0
  279. package/lib/duet/{p-b308ce5d.system.entry.js → p-8efc476e.system.entry.js} +1 -1
  280. package/lib/duet/{p-50b51053.entry.js → p-8f2834ae.entry.js} +1 -1
  281. package/lib/duet/{p-6a1f0973.system.entry.js → p-8f3d5e14.system.entry.js} +1 -1
  282. package/lib/duet/{p-eb4393ed.entry.js → p-905d2cc8.entry.js} +1 -1
  283. package/lib/duet/{p-4c286dee.system.entry.js → p-911c761b.system.entry.js} +1 -1
  284. package/lib/duet/{p-64297b4d.system.entry.js → p-93562bf8.system.entry.js} +1 -1
  285. package/lib/duet/{p-a4a9705f.entry.js → p-93da242f.entry.js} +1 -1
  286. package/lib/duet/{p-c19d32af.system.entry.js → p-9446df5b.system.entry.js} +1 -1
  287. package/lib/duet/p-94760aea.entry.js +4 -0
  288. package/lib/duet/{p-14e3383d.system.entry.js → p-97d314bb.system.entry.js} +1 -1
  289. package/lib/duet/{p-56b4f6e5.system.entry.js → p-9885878c.system.entry.js} +1 -1
  290. package/lib/duet/{p-2c28eb80.entry.js → p-98d99400.entry.js} +1 -1
  291. package/lib/duet/{p-187c9ec6.system.entry.js → p-9b75cec2.system.entry.js} +1 -1
  292. package/lib/duet/{p-3856f3a8.entry.js → p-9e1585bd.entry.js} +1 -1
  293. package/lib/duet/{p-aee38b4a.system.entry.js → p-9e3c843a.system.entry.js} +1 -1
  294. package/lib/duet/p-9fb2e28a.js +4 -0
  295. package/lib/duet/{p-01ca2f64.system.entry.js → p-a2728f08.system.entry.js} +1 -1
  296. package/lib/duet/{p-80973cda.system.entry.js → p-a8c9268c.system.entry.js} +1 -1
  297. package/lib/duet/{p-340bef19.system.entry.js → p-ac25aad5.system.entry.js} +1 -1
  298. package/lib/duet/{p-a7d9728a.entry.js → p-b12261bb.entry.js} +1 -1
  299. package/lib/duet/{p-c16de43f.system.entry.js → p-b31e663e.system.entry.js} +1 -1
  300. package/lib/duet/{p-154c0d34.entry.js → p-b44b12af.entry.js} +1 -1
  301. package/lib/duet/{p-57f981bd.entry.js → p-b78eeeff.entry.js} +1 -1
  302. package/lib/duet/{p-8a517f70.system.entry.js → p-b8c2b5f2.system.entry.js} +1 -1
  303. package/lib/duet/{p-9d36613e.system.entry.js → p-b92f06ff.system.entry.js} +2 -2
  304. package/lib/duet/{p-71779b62.entry.js → p-bc169783.entry.js} +1 -1
  305. package/lib/duet/{p-ed222f86.entry.js → p-bed02d40.entry.js} +1 -1
  306. package/lib/duet/p-bf097e1b.entry.js +4 -0
  307. package/lib/duet/{p-94f2509c.system.entry.js → p-c19e2d81.system.entry.js} +1 -1
  308. package/lib/duet/{p-c3c98ddf.entry.js → p-c2d2a2d2.entry.js} +1 -1
  309. package/lib/duet/{p-018b0ffe.entry.js → p-c3164a3c.entry.js} +1 -1
  310. package/lib/duet/p-c4266675.entry.js +4 -0
  311. package/lib/duet/{p-35907d51.system.entry.js → p-c919efff.system.entry.js} +1 -1
  312. package/lib/duet/{p-e13d0460.system.entry.js → p-c9dcf840.system.entry.js} +1 -1
  313. package/lib/duet/{p-618615d1.system.entry.js → p-cf3c27e4.system.entry.js} +1 -1
  314. package/lib/duet/p-cf5f89af.entry.js +4 -0
  315. package/lib/duet/{p-fb352dcf.system.entry.js → p-cf8b0da5.system.entry.js} +1 -1
  316. package/lib/duet/{p-33bf6eed.system.entry.js → p-cfcfd3fd.system.entry.js} +1 -1
  317. package/lib/duet/{p-5c83e833.entry.js → p-d225444d.entry.js} +1 -1
  318. package/lib/duet/{p-2e1e2d3d.entry.js → p-d2abe34b.entry.js} +1 -1
  319. package/lib/duet/p-d5ac7213.entry.js +4 -0
  320. package/lib/duet/{p-7e9e10ab.entry.js → p-d658b29d.entry.js} +1 -1
  321. package/lib/duet/{p-0e8dab5b.system.entry.js → p-da2b07eb.system.entry.js} +1 -1
  322. package/lib/duet/p-db8ef99d.entry.js +4 -0
  323. package/lib/duet/{p-cfebc130.system.entry.js → p-dbd0293b.system.entry.js} +1 -1
  324. package/lib/duet/{p-46ca69cf.system.entry.js → p-dbff88b5.system.entry.js} +1 -1
  325. package/lib/duet/{p-b656b461.entry.js → p-dcc18bd4.entry.js} +1 -1
  326. package/lib/duet/{p-133d2ee1.system.entry.js → p-e0ea4e90.system.entry.js} +1 -1
  327. package/lib/duet/{p-f25db9b8.entry.js → p-e27bd167.entry.js} +1 -1
  328. package/lib/duet/{p-fa0896f4.system.entry.js → p-e6c16681.system.entry.js} +1 -1
  329. package/lib/duet/p-e741b72a.entry.js +4 -0
  330. package/lib/duet/{p-417c1eca.system.entry.js → p-e7ba7e64.system.entry.js} +1 -1
  331. package/lib/duet/{p-54a44e1e.system.entry.js → p-e94fb66d.system.entry.js} +1 -1
  332. package/lib/duet/p-ea68c9e4.system.entry.js +4 -0
  333. package/lib/duet/{p-3a21d43b.system.entry.js → p-eb6ec3b0.system.entry.js} +1 -1
  334. package/lib/duet/{p-08b03779.system.entry.js → p-ebf82712.system.entry.js} +1 -1
  335. package/lib/duet/{p-27cc2332.entry.js → p-eefb5300.entry.js} +1 -1
  336. package/lib/duet/{p-4879ffe9.js → p-f235b6ff.js} +1 -1
  337. package/lib/duet/{p-b2be54b5.system.entry.js → p-f61cf0d1.system.entry.js} +1 -1
  338. package/lib/duet/{p-c70da05a.system.entry.js → p-f7393070.system.entry.js} +1 -1
  339. package/lib/duet/p-f96bb9f9.system.js +4 -0
  340. package/lib/duet/{p-960503a3.entry.js → p-fb021333.entry.js} +1 -1
  341. package/lib/duet/{p-2d6e3927.system.entry.js → p-fb8a741c.system.entry.js} +1 -1
  342. package/lib/duet/{p-2695e6c6.entry.js → p-fd377d28.entry.js} +1 -1
  343. package/lib/duet/{p-fec9ec39.entry.js → p-feac6e72.entry.js} +1 -1
  344. package/lib/duet/{p-df1531b7.system.entry.js → p-ffdc54ad.system.entry.js} +1 -1
  345. package/lib/esm/duet-action-button.entry.js +1 -1
  346. package/lib/esm/duet-alert.entry.js +1 -1
  347. package/lib/esm/duet-badge.entry.js +1 -1
  348. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  349. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  350. package/lib/esm/duet-button_2.entry.js +1 -1
  351. package/lib/esm/duet-caption_4.entry.js +3 -3
  352. package/lib/esm/duet-card.entry.js +9 -13
  353. package/lib/esm/duet-checkbox.entry.js +1 -1
  354. package/lib/esm/duet-checkmark.entry.js +1 -1
  355. package/lib/esm/duet-choice_2.entry.js +2 -2
  356. package/lib/esm/duet-collapsible.entry.js +1 -1
  357. package/lib/esm/duet-combobox.entry.js +1 -1
  358. package/lib/esm/duet-contact-card.entry.js +1 -1
  359. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  360. package/lib/esm/duet-date-picker.entry.js +2 -2
  361. package/lib/esm/duet-divider_2.entry.js +1 -1
  362. package/lib/esm/duet-editable-table_3.entry.js +5 -5
  363. package/lib/esm/duet-empty-state.entry.js +1 -1
  364. package/lib/esm/duet-fieldset.entry.js +6 -2
  365. package/lib/esm/duet-footer.entry.js +1 -1
  366. package/lib/esm/duet-grid_2.entry.js +1 -1
  367. package/lib/esm/duet-header_2.entry.js +1 -1
  368. package/lib/esm/duet-hero.entry.js +2 -2
  369. package/lib/esm/duet-icon.entry.js +1 -1
  370. package/lib/esm/duet-input_2.entry.js +9 -14
  371. package/lib/esm/duet-layout.entry.js +1 -1
  372. package/lib/esm/duet-list_2.entry.js +1 -1
  373. package/lib/esm/duet-menu-bar-button.entry.js +1 -1
  374. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +3 -2
  375. package/lib/esm/duet-menu-bar-dropdown.entry.js +1 -1
  376. package/lib/esm/duet-menu-bar-link.entry.js +3 -2
  377. package/lib/esm/duet-menu-bar.entry.js +1 -1
  378. package/lib/esm/duet-modal.entry.js +2 -2
  379. package/lib/esm/duet-multiselect.entry.js +16 -2
  380. package/lib/esm/duet-nav.entry.js +1 -1
  381. package/lib/esm/duet-notification_2.entry.js +1 -1
  382. package/lib/esm/duet-number-input.entry.js +1 -1
  383. package/lib/esm/duet-page-heading.entry.js +1 -1
  384. package/lib/esm/duet-pagination_2.entry.js +1 -1
  385. package/lib/esm/duet-progress.entry.js +1 -1
  386. package/lib/esm/duet-radio_2.entry.js +1 -1
  387. package/lib/esm/duet-range-slider.entry.js +1 -1
  388. package/lib/esm/duet-scrollable_3.entry.js +19 -3
  389. package/lib/esm/duet-section-layout.entry.js +1 -1
  390. package/lib/esm/duet-select.entry.js +15 -2
  391. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  392. package/lib/esm/duet-slideout-link.entry.js +1 -1
  393. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  394. package/lib/esm/duet-slideout-panel.entry.js +2 -2
  395. package/lib/esm/duet-slideout.entry.js +2 -2
  396. package/lib/esm/duet-step_2.entry.js +1 -1
  397. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  398. package/lib/esm/duet-submenu-bar-dropdown.entry.js +1 -1
  399. package/lib/esm/duet-submenu-bar-link.entry.js +1 -1
  400. package/lib/esm/duet-submenu-bar.entry.js +1 -1
  401. package/lib/esm/duet-textarea.entry.js +15 -4
  402. package/lib/esm/duet-toggle.entry.js +1 -1
  403. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  404. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  405. package/lib/esm/duet-toolbar-link.entry.js +3 -2
  406. package/lib/esm/duet-toolbar.entry.js +1 -1
  407. package/lib/esm/duet-tooltip.entry.js +7 -1
  408. package/lib/esm/duet-tray.entry.js +1 -1
  409. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  410. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  411. package/lib/esm/duet.js +3 -3
  412. package/lib/esm/{focus-utils-3483f616.js → focus-utils-6a919f2a.js} +1 -1
  413. package/lib/esm/{index-fff18e02.js → index-13f57135.js} +1 -1
  414. package/lib/esm/loader.js +3 -3
  415. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  416. package/lib/esm-es5/duet-alert.entry.js +1 -1
  417. package/lib/esm-es5/duet-badge.entry.js +1 -1
  418. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  419. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  420. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  421. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  422. package/lib/esm-es5/duet-card.entry.js +1 -1
  423. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  424. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  425. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  426. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  427. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  428. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  429. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  430. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  431. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  432. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  433. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  434. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  435. package/lib/esm-es5/duet-footer.entry.js +1 -1
  436. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  437. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  438. package/lib/esm-es5/duet-hero.entry.js +2 -2
  439. package/lib/esm-es5/duet-icon.entry.js +1 -1
  440. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  441. package/lib/esm-es5/duet-layout.entry.js +1 -1
  442. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  443. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  444. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  445. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  446. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  447. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  448. package/lib/esm-es5/duet-modal.entry.js +1 -1
  449. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  450. package/lib/esm-es5/duet-nav.entry.js +1 -1
  451. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  452. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  453. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  454. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  455. package/lib/esm-es5/duet-progress.entry.js +1 -1
  456. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  457. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  458. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  459. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  460. package/lib/esm-es5/duet-select.entry.js +1 -1
  461. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  462. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  463. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  464. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  465. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  466. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  467. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  468. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  469. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  470. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  471. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  472. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  473. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  474. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  475. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  476. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  477. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  478. package/lib/esm-es5/duet-tray.entry.js +1 -1
  479. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  480. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  481. package/lib/esm-es5/duet.js +1 -1
  482. package/lib/esm-es5/focus-utils-6a919f2a.js +4 -0
  483. package/lib/esm-es5/{index-fff18e02.js → index-13f57135.js} +1 -1
  484. package/lib/esm-es5/loader.js +1 -1
  485. package/lib/types/components/duet-heading/duet-heading.d.ts +3 -0
  486. package/lib/types/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.d.ts +6 -0
  487. package/lib/types/components/duet-menu-bar-link/duet-menu-bar-link.d.ts +6 -0
  488. package/lib/types/components/duet-multiselect/duet-multiselect.d.ts +5 -0
  489. package/lib/types/components/duet-select/duet-select.d.ts +1 -0
  490. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +10 -0
  491. package/lib/types/components/duet-textarea/duet-textarea.d.ts +1 -0
  492. package/lib/types/components/duet-toolbar-link/duet-toolbar-link.d.ts +6 -0
  493. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +2 -0
  494. package/lib/types/components.d.ts +44 -0
  495. package/package.json +5 -5
  496. package/lib/duet/p-02fb736a.entry.js +0 -4
  497. package/lib/duet/p-097c4d0c.entry.js +0 -4
  498. package/lib/duet/p-0ab4083f.entry.js +0 -4
  499. package/lib/duet/p-0ca53854.system.entry.js +0 -4
  500. package/lib/duet/p-1739bdd1.entry.js +0 -4
  501. package/lib/duet/p-2c6e4614.entry.js +0 -4
  502. package/lib/duet/p-4b7f3ac1.system.js +0 -4
  503. package/lib/duet/p-614194b1.entry.js +0 -4
  504. package/lib/duet/p-61e84177.entry.js +0 -4
  505. package/lib/duet/p-86201340.system.entry.js +0 -4
  506. package/lib/duet/p-9389ce47.entry.js +0 -4
  507. package/lib/duet/p-a113525c.entry.js +0 -4
  508. package/lib/duet/p-a6751ba6.entry.js +0 -4
  509. package/lib/duet/p-cd410e2a.entry.js +0 -4
  510. package/lib/duet/p-d924703a.entry.js +0 -4
  511. package/lib/duet/p-e1919861.js +0 -4
  512. package/lib/duet/p-e4626c0e.entry.js +0 -4
  513. package/lib/esm-es5/focus-utils-3483f616.js +0 -4
@@ -227,7 +227,7 @@
227
227
  }
228
228
  @media (min-width: 22.5em) {
229
229
  .duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape {
230
- top: 155px;
230
+ top: 160px;
231
231
  width: 450px;
232
232
  height: 450px;
233
233
  }
@@ -266,6 +266,19 @@
266
266
  .duet-hero.duet-hero-campaign .duet-hero-text, .duet-hero.duet-hero-section .duet-hero-text {
267
267
  width: 100%;
268
268
  }
269
+ .duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading), .duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading) {
270
+ font-size: 36px;
271
+ }
272
+ @media (min-width: 36em) {
273
+ .duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading), .duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading) {
274
+ font-size: 48px;
275
+ }
276
+ }
277
+ @media (min-width: 62em) {
278
+ .duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading), .duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading) {
279
+ font-size: 64px;
280
+ }
281
+ }
269
282
  .duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,
270
283
  .duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,
271
284
  .duet-hero.duet-hero-section .duet-hero-text duet-paragraph {
@@ -351,7 +364,7 @@
351
364
  background: none;
352
365
  }
353
366
  .duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape {
354
- top: 115px;
367
+ top: 125px;
355
368
  left: -10px;
356
369
  width: 350px;
357
370
  height: 350px;
@@ -364,7 +377,7 @@
364
377
  }
365
378
  @media (min-width: 22.5em) {
366
379
  .duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape {
367
- top: 140px;
380
+ top: 143px;
368
381
  left: -30px;
369
382
  width: 450px;
370
383
  height: 450px;
@@ -103,20 +103,17 @@ export class DuetInput {
103
103
  * Private functions
104
104
  */
105
105
  this.getDescribedBy = () => {
106
- let describedBy = "";
106
+ const describedBy = [];
107
107
  if (this.isCaptionVisible && this.topCaptionId) {
108
- describedBy = this.topCaptionId;
109
- if (this.accessibleDescribedBy) {
110
- describedBy += " " + this.accessibleDescribedBy;
111
- }
108
+ describedBy.push(this.topCaptionId);
112
109
  }
113
- else if (this.accessibleDescribedBy.length > 0) {
114
- describedBy = this.accessibleDescribedBy;
110
+ if (this.accessibleDescribedBy) {
111
+ describedBy.push(this.accessibleDescribedBy);
115
112
  }
116
- else {
117
- describedBy = undefined;
113
+ if (this.error) {
114
+ describedBy.push(this.errorId);
118
115
  }
119
- return describedBy;
116
+ return describedBy.length > 0 ? describedBy.join(" ") : null;
120
117
  };
121
118
  this.handleClearClick = event => {
122
119
  const clearing = this.clearInput();
@@ -317,9 +314,7 @@ export class DuetInput {
317
314
  disabled: this.disabled,
318
315
  "is-number": this.component === "number",
319
316
  "is-date": this.component === "date",
320
- }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": this.accessibleLabelledBy
321
- ? `${this.errorId} ${this.labelId} ${this.accessibleLabelledBy}`
322
- : `${this.errorId} ${this.labelId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-details": this.accessibleDetails, "aria-errormessage": this.error ? this.errorId : null, "aria-description": this.accessibleDescription, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.type === "password" ? "off" : this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.value && hasInputIcon && (h("div", { class: "duet-input-icon" }, h("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && (h("div", { class: {
317
+ }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": this.accessibleLabelledBy ? `${this.labelId} ${this.accessibleLabelledBy}` : this.labelId, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.type === "password" ? "off" : this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.value && hasInputIcon && (h("div", { class: "duet-input-icon" }, h("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && (h("div", { class: {
323
318
  "duet-input-clear-icon": true,
324
319
  "duet-input-clear-icon-single": !hasInputIcon,
325
320
  "duet-input-clear-icon-double": !!this.icon,
@@ -66,6 +66,9 @@
66
66
  height: 20px;
67
67
  margin-left: -15px;
68
68
  }
69
+ .duet-theme-turva .duet-link-external {
70
+ margin-left: -12px;
71
+ }
69
72
 
70
73
  .duet-tab-to-link {
71
74
  padding: 15px 28px 16px !important;
@@ -20,6 +20,7 @@ export class DuetMenuBarDropdownLink {
20
20
  this.theme = "";
21
21
  this.href = "#";
22
22
  this.icon = undefined;
23
+ this.accessibleLabel = undefined;
23
24
  }
24
25
  /**
25
26
  * Component lifecycle events.
@@ -43,7 +44,7 @@ export class DuetMenuBarDropdownLink {
43
44
  "duet-menu-bar-dropdown-link": true,
44
45
  [`duet-menu-bar-dropdown-link--slot-${this.getVariant()}`]: true,
45
46
  "duet-theme-turva": this.theme === "turva",
46
- }, href: this.href, role: "menuitem", onKeyUp: e => this.handleEscape(e) }, this.icon && (h("duet-icon", { theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), h("slot", null))));
47
+ }, href: this.href, role: "menuitem", onKeyUp: e => this.handleEscape(e), "aria-label": this.accessibleLabel }, this.icon && (h("duet-icon", { theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), h("slot", null))));
47
48
  }
48
49
  static get is() { return "duet-menu-bar-dropdown-link"; }
49
50
  static get encapsulation() { return "shadow"; }
@@ -117,6 +118,23 @@ export class DuetMenuBarDropdownLink {
117
118
  "attribute": "icon",
118
119
  "reflect": true,
119
120
  "defaultValue": "undefined"
121
+ },
122
+ "accessibleLabel": {
123
+ "type": "string",
124
+ "mutable": false,
125
+ "complexType": {
126
+ "original": "string",
127
+ "resolved": "string",
128
+ "references": {}
129
+ },
130
+ "required": false,
131
+ "optional": false,
132
+ "docs": {
133
+ "tags": [],
134
+ "text": "Adds accessible label for the link that is only shown for screen readers.\nTypically, this label text replaces the visible text on the link for users\nwho use assistive technology."
135
+ },
136
+ "attribute": "accessible-label",
137
+ "reflect": false
120
138
  }
121
139
  };
122
140
  }
@@ -24,6 +24,7 @@ export class DuetMenuBarLink {
24
24
  this.active = false;
25
25
  this.href = "#";
26
26
  this.icon = undefined;
27
+ this.accessibleLabel = undefined;
27
28
  }
28
29
  /**
29
30
  * Component lifecycle events.
@@ -60,7 +61,7 @@ export class DuetMenuBarLink {
60
61
  "duet-menu-bar-link": true,
61
62
  "duet-theme-turva": this.theme === "turva",
62
63
  active: this.active,
63
- }, href: this.href, "aria-current": this.active ? "true" : "false" }, this.icon && (h("duet-icon", { theme: this.theme, size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" })), h("slot", null))));
64
+ }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (h("duet-icon", { theme: this.theme, size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" })), h("slot", null))));
64
65
  }
65
66
  static get is() { return "duet-menu-bar-link"; }
66
67
  static get encapsulation() { return "shadow"; }
@@ -152,6 +153,23 @@ export class DuetMenuBarLink {
152
153
  "attribute": "icon",
153
154
  "reflect": true,
154
155
  "defaultValue": "undefined"
156
+ },
157
+ "accessibleLabel": {
158
+ "type": "string",
159
+ "mutable": false,
160
+ "complexType": {
161
+ "original": "string",
162
+ "resolved": "string",
163
+ "references": {}
164
+ },
165
+ "required": false,
166
+ "optional": false,
167
+ "docs": {
168
+ "tags": [],
169
+ "text": "Adds accessible label for the link that is only shown for screen readers.\nTypically, this label text replaces the visible text on the link for users\nwho use assistive technology."
170
+ },
171
+ "attribute": "accessible-label",
172
+ "reflect": false
155
173
  }
156
174
  };
157
175
  }
@@ -94,6 +94,19 @@ export class DuetMultiselect {
94
94
  this.getOptionIdentifier = (key) => {
95
95
  return `${this.identifier}-option-${key}`;
96
96
  };
97
+ this.getDescribedBy = () => {
98
+ const describedBy = [];
99
+ if (this.isCaptionVisible && this.topCaptionId) {
100
+ describedBy.push(this.topCaptionId);
101
+ }
102
+ if (this.accessibleDescribedBy) {
103
+ describedBy.push(this.accessibleDescribedBy);
104
+ }
105
+ if (this.error) {
106
+ describedBy.push(this.errorId);
107
+ }
108
+ return describedBy.length > 0 ? describedBy.join(" ") : null;
109
+ };
97
110
  this.processedItems = [];
98
111
  this.checkboxesVisible = false;
99
112
  this.activeDescendant = "";
@@ -110,6 +123,7 @@ export class DuetMultiselect {
110
123
  this.items = undefined;
111
124
  this.disabled = false;
112
125
  this.label = "label";
126
+ this.accessibleDescribedBy = undefined;
113
127
  this.tooltip = "";
114
128
  this.tooltipDirection = "auto";
115
129
  }
@@ -162,7 +176,7 @@ export class DuetMultiselect {
162
176
  "duet-theme-turva": this.theme === "turva",
163
177
  "duet-input-top-caption-shown": this.isCaptionVisible,
164
178
  "has-error": !!this.error,
165
- }, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, 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} ${this.errorId}`, "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` }, this.placeholder), this.value && this.value.length > 0 && (h("duet-badge", { class: "duet-multiselect-badge", margin: "none", theme: this.theme }, this.value.length, " ", this.selectedLangObject[this.language], h("duet-visually-hidden", null, ", ", this.value.map(item => item.label).join(", ")))), h("svg", { role: "img", 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: {
179
+ }, onKeyDown: (e) => this.onMultiselectKeyDown(e) }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, 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` }, this.placeholder), this.value && this.value.length > 0 && (h("duet-badge", { class: "duet-multiselect-badge", margin: "none", theme: this.theme }, this.value.length, " ", this.selectedLangObject[this.language], h("duet-visually-hidden", null, ", ", this.value.map(item => item.label).join(", ")))), h("svg", { role: "img", 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: {
166
180
  "duet-multiselect-checkboxes": true,
167
181
  "duet-multiselect-checkboxes-active": this.checkboxesVisible,
168
182
  }, "aria-activedescendant": this.activeDescendant, "aria-multiselectable": "true" }, this.processedItems &&
@@ -417,6 +431,23 @@ export class DuetMultiselect {
417
431
  "reflect": false,
418
432
  "defaultValue": "\"label\""
419
433
  },
434
+ "accessibleDescribedBy": {
435
+ "type": "string",
436
+ "mutable": false,
437
+ "complexType": {
438
+ "original": "string",
439
+ "resolved": "string",
440
+ "references": {}
441
+ },
442
+ "required": false,
443
+ "optional": false,
444
+ "docs": {
445
+ "tags": [],
446
+ "text": "Indicates the id of a component that describes the input."
447
+ },
448
+ "attribute": "accessible-described-by",
449
+ "reflect": false
450
+ },
420
451
  "tooltip": {
421
452
  "type": "string",
422
453
  "mutable": false,
@@ -56,6 +56,19 @@ export class DuetSelect {
56
56
  component: "duet-select",
57
57
  });
58
58
  };
59
+ this.getDescribedBy = () => {
60
+ const describedBy = [];
61
+ if (this.isCaptionVisible && this.topCaptionId) {
62
+ describedBy.push(this.topCaptionId);
63
+ }
64
+ if (this.accessibleDescribedBy) {
65
+ describedBy.push(this.accessibleDescribedBy);
66
+ }
67
+ if (this.error) {
68
+ describedBy.push(this.errorId);
69
+ }
70
+ return describedBy.length > 0 ? describedBy.join(" ") : null;
71
+ };
59
72
  this.processedItems = null;
60
73
  this.variation = "default";
61
74
  this.accessibleActiveDescendant = undefined;
@@ -140,7 +153,7 @@ export class DuetSelect {
140
153
  "duet-select-variation-tiny": this.variation === "tiny",
141
154
  "duet-input-top-caption-shown": this.isCaptionVisible,
142
155
  "has-error": !!this.error,
143
- } }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, 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.errorId} ${this.labelId}`, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-errormessage": this.error ? this.errorId : null, "aria-owns": this.accessibleOwns, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, required: this.required, "aria-describedby": this.accessibleDescribedBy }, 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 => {
156
+ } }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, 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 => {
144
157
  return isOptionGroup(item) ? this.renderOptionGroup(item) : this.renderOption(item);
145
158
  }))), h("div", { class: {
146
159
  "duet-select": true,
@@ -30,6 +30,20 @@ export class DuetTabGroup {
30
30
  button.focus();
31
31
  }
32
32
  };
33
+ this.onTabSelect = (tabIndex) => {
34
+ if (this.tabChangeConfirm) {
35
+ if (tabIndex !== this.selected) {
36
+ const event = {
37
+ value: tabIndex,
38
+ component: "duet-tab-group",
39
+ };
40
+ this.duetTabChangeRequested.emit(event);
41
+ }
42
+ }
43
+ else {
44
+ this.openTab(tabIndex);
45
+ }
46
+ };
33
47
  this.scrollToActive = () => {
34
48
  if (this.variation === "checked" || this.variation === "plain-scrolling") {
35
49
  setTimeout(() => {
@@ -47,7 +61,7 @@ export class DuetTabGroup {
47
61
  "duet-tab-button": true,
48
62
  "stackable-tab": this.variation === "checked" && this.tabs.length <= 3,
49
63
  selected: element.selected,
50
- }, onClick: () => this.openTab(index), onKeyDown: ev => this.handleKeyDown(ev) }, this.variation === "checked" ? (h("div", { class: { "checked-tab-content": true, "stackable-checked-tab-content": this.tabs.length <= 3 } }, h("div", { class: { "checked-tab-description": true, "stackable-description": this.tabs.length <= 3 } }, h("p", null, element.label), h("p", { class: { "tab-caption": true, selected: element.selected } }, element.caption)), h("div", { class: { "stackable-checkmark": this.tabs.length <= 3 } }, h("duet-checkmark", { theme: this.theme, checked: element.selected, type: "radio", "presentation-only": true, center: true })))) : (element.label)));
64
+ }, onClick: () => this.onTabSelect(index), onKeyDown: ev => this.handleKeyDown(ev) }, this.variation === "checked" ? (h("div", { class: { "checked-tab-content": true, "stackable-checked-tab-content": this.tabs.length <= 3 } }, h("div", { class: { "checked-tab-description": true, "stackable-description": this.tabs.length <= 3 } }, h("p", null, element.label), h("p", { class: { "tab-caption": true, selected: element.selected } }, element.caption)), h("div", { class: { "stackable-checkmark": this.tabs.length <= 3 } }, h("duet-checkmark", { theme: this.theme, checked: element.selected, type: "radio", "presentation-only": true, center: true })))) : (element.label)));
51
65
  });
52
66
  if (this.scrolls) {
53
67
  return (h("duet-scrollable", { selected: this.selected, identifier: this.identifier }, renderedTabs));
@@ -73,6 +87,7 @@ export class DuetTabGroup {
73
87
  this.margin = "auto";
74
88
  this.padding = "auto";
75
89
  this.setTabIndex = false;
90
+ this.tabChangeConfirm = false;
76
91
  }
77
92
  /**
78
93
  * Component lifecycle events.
@@ -179,7 +194,7 @@ export class DuetTabGroup {
179
194
  "duet-tab-plain-scrolling": this.variation === "plain-scrolling",
180
195
  "duet-tab-group-scrolls": this.scrolls,
181
196
  "duet-tab-group-collapses": this.collapses,
182
- }, "aria-label": this.accessibleLabel }, !isSwipeScrollable && this.tabs.length > 3 && this.collapses && (h("duet-select", { value: this.selected.toString(), expand: true, label: this.label, labelHidden: this.labelHidden, theme: this.theme, onDuetChange: event => this.openTab(Number(event.detail.value)), items: this.tabs.map((tab, index) => {
197
+ }, "aria-label": this.accessibleLabel }, !isSwipeScrollable && this.tabs.length > 3 && this.collapses && (h("duet-select", { value: this.selected.toString(), expand: true, label: this.label, labelHidden: this.labelHidden, theme: this.theme, onDuetChange: event => this.onTabSelect(Number(event.detail.value)), items: this.tabs.map((tab, index) => {
183
198
  return { label: tab.label, value: index.toString() };
184
199
  }) })), h("div", { role: "tablist", class: {
185
200
  "duet-m-0": this.margin === "none" || this.variation === "checked",
@@ -483,6 +498,24 @@ export class DuetTabGroup {
483
498
  "attribute": "set-tab-index",
484
499
  "reflect": false,
485
500
  "defaultValue": "false"
501
+ },
502
+ "tabChangeConfirm": {
503
+ "type": "boolean",
504
+ "mutable": false,
505
+ "complexType": {
506
+ "original": "boolean",
507
+ "resolved": "boolean",
508
+ "references": {}
509
+ },
510
+ "required": false,
511
+ "optional": false,
512
+ "docs": {
513
+ "tags": [],
514
+ "text": "If this property is set to true, tab won't change immediately after clicking it.\nComponent will emit \"duetTabChangeRequested\" event, and it needs to be handled manually in order to change tab."
515
+ },
516
+ "attribute": "tab-change-confirm",
517
+ "reflect": false,
518
+ "defaultValue": "false"
486
519
  }
487
520
  };
488
521
  }
@@ -536,6 +569,26 @@ export class DuetTabGroup {
536
569
  }
537
570
  }
538
571
  }
572
+ }, {
573
+ "method": "duetTabChangeRequested",
574
+ "name": "duetTabChangeRequested",
575
+ "bubbles": true,
576
+ "cancelable": true,
577
+ "composed": true,
578
+ "docs": {
579
+ "tags": [],
580
+ "text": "Event raised when new tab is clicked and \"tabChangeConfirm\" property is set to true"
581
+ },
582
+ "complexType": {
583
+ "original": "DuetTabGroupEvent",
584
+ "resolved": "{ component: \"duet-tab-group\"; value: number; }",
585
+ "references": {
586
+ "DuetTabGroupEvent": {
587
+ "location": "local",
588
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-tab-group/duet-tab-group.tsx"
589
+ }
590
+ }
591
+ }
539
592
  }];
540
593
  }
541
594
  static get methods() {
@@ -62,6 +62,19 @@ export class DuetTextarea {
62
62
  component: "duet-textarea",
63
63
  });
64
64
  };
65
+ this.getDescribedBy = () => {
66
+ const describedBy = [];
67
+ if (this.isCaptionVisible && this.topCaptionId) {
68
+ describedBy.push(this.topCaptionId);
69
+ }
70
+ if (this.accessibleDescribedBy) {
71
+ describedBy.push(this.accessibleDescribedBy);
72
+ }
73
+ if (this.error) {
74
+ describedBy.push(this.errorId);
75
+ }
76
+ return describedBy.length > 0 ? describedBy.join(" ") : null;
77
+ };
65
78
  this.margin = "auto";
66
79
  this.accessibleActiveDescendant = undefined;
67
80
  this.accessibleAutocomplete = undefined;
@@ -136,9 +149,7 @@ export class DuetTextarea {
136
149
  "duet-label-hidden": this.labelHidden,
137
150
  "duet-input-top-caption-shown": this.isCaptionVisible,
138
151
  "has-error": !!this.error,
139
- } }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, margin: this.isCaptionVisible ? "small" : "auto", id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-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", theme: this.theme === "turva" ? "turva" : "default" }, this.caption)), h("div", { class: "duet-textarea-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (h("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-textarea-placeholder", size: "small" }, this.placeholder)), h("textarea", { onInput: this.handleInput, onChange: this.handleChange, onBlur: this.handleBlur, onFocus: this.handleFocus, ref: input => (this.nativeInput = input), class: { "duet-textarea": true, disabled: this.disabled }, value: this.value, disabled: this.disabled, "aria-labelledby": this.accessibleLabelledBy
140
- ? `${this.errorId} ${this.labelId} ${this.accessibleLabelledBy}`
141
- : `${this.errorId} ${this.labelId} `, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-errormessage": this.error ? this.errorId : null, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": `${this.isCaptionVisible ? this.topCaptionId : ""} ${this.accessibleDescribedBy}`, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, placeholder: this.placeholder, spellcheck: "false", required: this.required, minlength: this.minlength, maxlength: this.maxlength, role: this.role, name: this.name, id: identifier })), h("duet-grid", { alignment: "stretch" }, h("duet-grid-item", { margin: "none", fill: true }, h("div", { class: "duet-textarea-help", id: this.errorId, "aria-atomic": "true", "aria-live": "polite", "aria-relevant": "additions removals" }, this.error && h("span", null, this.error))), h("duet-grid-item", { margin: "none", class: "duet-character-count-caption" }, this.counter && (h(CharacterCount, { theme: this.theme, value: this.value, maxlength: this.maxlength, label: this.counterLabel })))))));
152
+ } }, h("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, margin: this.isCaptionVisible ? "small" : "auto", id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-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", theme: this.theme === "turva" ? "turva" : "default" }, this.caption)), h("div", { class: "duet-textarea-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (h("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-textarea-placeholder", size: "small" }, this.placeholder)), h("textarea", { onInput: this.handleInput, onChange: this.handleChange, onBlur: this.handleBlur, onFocus: this.handleFocus, ref: input => (this.nativeInput = input), class: { "duet-textarea": true, disabled: this.disabled }, value: this.value, disabled: this.disabled, "aria-labelledby": this.accessibleLabelledBy ? `${this.labelId} ${this.accessibleLabelledBy}` : this.labelId, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, placeholder: this.placeholder, spellcheck: "false", required: this.required, minlength: this.minlength, maxlength: this.maxlength, role: this.role, name: this.name, id: identifier })), h("duet-grid", { alignment: "stretch" }, h("duet-grid-item", { margin: "none", fill: true }, h("div", { class: "duet-textarea-help", id: this.errorId, "aria-atomic": "true", "aria-live": "polite", "aria-relevant": "additions removals" }, this.error && h("span", null, this.error))), h("duet-grid-item", { margin: "none", class: "duet-character-count-caption" }, this.counter && (h(CharacterCount, { theme: this.theme, value: this.value, maxlength: this.maxlength, label: this.counterLabel })))))));
142
153
  }
143
154
  static get is() { return "duet-textarea"; }
144
155
  static get encapsulation() { return "scoped"; }
@@ -9,6 +9,7 @@ export class DuetToolbarLink {
9
9
  this.active = false;
10
10
  this.href = "#";
11
11
  this.icon = undefined;
12
+ this.accessibleLabel = undefined;
12
13
  }
13
14
  /**
14
15
  * Component lifecycle events.
@@ -21,7 +22,7 @@ export class DuetToolbarLink {
21
22
  * Always the last one in the class.
22
23
  */
23
24
  render() {
24
- return (h(Host, null, h("a", { class: { "duet-toolbar-link": true, "duet-theme-turva": this.theme === "turva", active: this.active }, href: this.href, "aria-current": this.active ? "true" : "false" }, this.icon && (h("duet-icon", { size: "x-small", name: this.icon, margin: "none", theme: this.theme, color: "currentColor" })), h("slot", null))));
25
+ return (h(Host, null, h("a", { class: { "duet-toolbar-link": true, "duet-theme-turva": this.theme === "turva", active: this.active }, href: this.href, "aria-current": this.active ? "true" : "false", "aria-label": this.accessibleLabel }, this.icon && (h("duet-icon", { size: "x-small", name: this.icon, margin: "none", theme: this.theme, color: "currentColor" })), h("slot", null))));
25
26
  }
26
27
  static get is() { return "duet-toolbar-link"; }
27
28
  static get encapsulation() { return "shadow"; }
@@ -113,6 +114,23 @@ export class DuetToolbarLink {
113
114
  "attribute": "icon",
114
115
  "reflect": true,
115
116
  "defaultValue": "undefined"
117
+ },
118
+ "accessibleLabel": {
119
+ "type": "string",
120
+ "mutable": false,
121
+ "complexType": {
122
+ "original": "string",
123
+ "resolved": "string",
124
+ "references": {}
125
+ },
126
+ "required": false,
127
+ "optional": false,
128
+ "docs": {
129
+ "tags": [],
130
+ "text": "Adds accessible label for the link that is only shown for screen readers.\nTypically, this label text replaces the visible text on the link for users\nwho use assistive technology."
131
+ },
132
+ "attribute": "accessible-label",
133
+ "reflect": false
116
134
  }
117
135
  };
118
136
  }
@@ -159,6 +159,12 @@ export class DuetTooltip {
159
159
  }
160
160
  }, 100);
161
161
  }
162
+ handleWindowResize() {
163
+ clearTimeout(this.resizeTimer);
164
+ this.resizeTimer = setTimeout(() => {
165
+ this.handleHorizontalVisibility();
166
+ }, 100);
167
+ }
162
168
  handleDocumentClick(e) {
163
169
  if (!this.active) {
164
170
  return;
@@ -531,6 +537,12 @@ export class DuetTooltip {
531
537
  "target": "window",
532
538
  "capture": false,
533
539
  "passive": true
540
+ }, {
541
+ "name": "resize",
542
+ "method": "handleWindowResize",
543
+ "target": "window",
544
+ "capture": false,
545
+ "passive": true
534
546
  }, {
535
547
  "name": "click",
536
548
  "method": "handleDocumentClick",
@@ -35,7 +35,7 @@
35
35
  }
36
36
 
37
37
  ::slotted([slot=uploadfooter]) {
38
- margin-top: 28px;
38
+ margin-top: 20px;
39
39
  }
40
40
 
41
41
  .duet-upload {
@@ -120,6 +120,7 @@ duet-editable-table tfoot {
120
120
  .items-header {
121
121
  display: none;
122
122
  flex-direction: row;
123
+ margin-bottom: 0;
123
124
  }
124
125
  @media (min-width: 36em) {
125
126
  .items-header {
@@ -142,7 +143,7 @@ duet-editable-table tfoot {
142
143
  .upload-item-row {
143
144
  display: flex;
144
145
  flex-direction: column;
145
- gap: 10px;
146
+ gap: 16px;
146
147
  align-content: center;
147
148
  align-items: center;
148
149
  padding: 16px 0 16px 0;
@@ -151,6 +152,7 @@ duet-editable-table tfoot {
151
152
  @media (min-width: 36em) {
152
153
  .upload-item-row {
153
154
  flex-direction: row;
155
+ gap: 10px;
154
156
  }
155
157
  }
156
158
  .upload-item-row .item-categories {
@@ -187,13 +189,14 @@ duet-editable-table tfoot {
187
189
  }
188
190
  .upload-item-row .item-actions {
189
191
  width: 100%;
190
- padding-top: 6px;
192
+ margin-left: -8px;
191
193
  text-align: left;
192
194
  }
193
195
  @media (min-width: 36em) {
194
196
  .upload-item-row .item-actions {
195
197
  width: 15%;
196
198
  padding-top: 0;
199
+ margin-left: auto;
197
200
  text-align: right;
198
201
  }
199
202
  }
@@ -696,7 +696,7 @@ export class DuetUpload {
696
696
  this.externalUploadButton.ariaLabel = caption;
697
697
  }
698
698
  // @ts-ignore
699
- return (h(Host, { class: { "duet-m-0": this.margin === "none" } }, h("duet-fieldset", { "label-hidden": this.hideHeader, label: this.label, caption: !this.captionOnBottom ? caption : undefined }, h("slot", { name: "header" }), !this.files.size && (h("duet-empty-state", { id: this.labelId, part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", icon: "messaging-attachment" }, h("duet-paragraph", { margin: "none" }, this.fileListEmpty))), !!this.files.size && h("slot", { name: "fileheader" }), !!this.files.size && (h("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })), !!this.files.size && this.renderUploadedItems(), !!this.files.size && h("slot", { name: "filefooter" }), h("slot", { name: "uploadfooter" }), this.captionOnBottom && (h("duet-caption", { size: "small" }, h("div", { class: "upload-bottom-caption" }, caption))), h("slot", { name: "afterfooter" }), !this.hideButton && (h(Fragment, null, h("duet-spacer", { size: "large" }), h("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle", part: this.identifier ? `${this.identifier}-button-upload` : "duet-upload-button-upload" }, this.buttonLabel))), (this.fileMaxReached || this.bytesMaxReached) && (h(Fragment, null, h("duet-spacer", { size: "medium" }), h("duet-alert", { part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301", this.errorCodes), this.bytesMaxReached && getI18nError("duet-upload-202", this.errorCodes)))), h("duet-visually-hidden", { "aria-hidden": "true" }, h("input", { ref: input => {
699
+ return (h(Host, { class: { "duet-m-0": this.margin === "none" } }, h("duet-fieldset", { "label-hidden": this.hideHeader, label: this.label, caption: !this.captionOnBottom ? caption : undefined }, h("slot", { name: "header" }), !this.files.size && (h("duet-empty-state", { id: this.labelId, part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", icon: "messaging-attachment" }, h("duet-paragraph", { margin: "none" }, this.fileListEmpty))), !!this.files.size && h("slot", { name: "fileheader" }), !!this.files.size && (h("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })), !!this.files.size && this.renderUploadedItems(), !!this.files.size && h("slot", { name: "filefooter" }), h("slot", { name: "uploadfooter" }), this.captionOnBottom && (h("duet-caption", { margin: "none", size: "small" }, h("div", { class: "upload-bottom-caption" }, caption))), h("slot", { name: "afterfooter" }), !this.hideButton && (h(Fragment, null, h("duet-spacer", { size: "large" }), h("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle", part: this.identifier ? `${this.identifier}-button-upload` : "duet-upload-button-upload" }, this.buttonLabel))), (this.fileMaxReached || this.bytesMaxReached) && (h(Fragment, null, h("duet-spacer", { size: "medium" }), h("duet-alert", { part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301", this.errorCodes), this.bytesMaxReached && getI18nError("duet-upload-202", this.errorCodes)))), h("duet-visually-hidden", { "aria-hidden": "true" }, h("input", { ref: input => {
700
700
  this.nativeInput = input;
701
701
  }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
702
702
  "duet-upload": true,
@@ -4,5 +4,5 @@
4
4
  import { h } from "@stencil/core";
5
5
  import { getLocaleString } from "../../utils/language-utils";
6
6
  export const UploadItemHeader = ({ label, categoryLabel }) => {
7
- return (h("div", { class: "items-header" }, categoryLabel && (h("duet-heading", { class: "category-header", border: "solid", color: "gray-darker", level: "h3", "visual-level": "h6", weight: "semibold" }, getLocaleString(categoryLabel))), h("duet-heading", { class: { "filename-header": true, "no-category": !categoryLabel }, border: "solid", color: "gray-darker", level: "h3", "visual-level": "h6", weight: "semibold" }, getLocaleString(label))));
7
+ return (h("div", { class: "items-header" }, categoryLabel && (h("duet-heading", { class: "category-header", border: "solid", color: "gray-darker", level: "h3", "visual-level": "h6", weight: "semibold", margin: "none" }, getLocaleString(categoryLabel))), h("duet-heading", { class: { "filename-header": true, "no-category": !categoryLabel }, border: "solid", color: "gray-darker", level: "h3", "visual-level": "h6", weight: "semibold", margin: "none" }, getLocaleString(label))));
8
8
  };
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { D as DuetActionButton$1, d as defineCustomElement$1 } from './p-c57eccd3.js';
4
+ import { D as DuetActionButton$1, d as defineCustomElement$1 } from './p-29b0c53d.js';
5
5
 
6
6
  const DuetActionButton = DuetActionButton$1;
7
7
  const defineCustomElement = defineCustomElement$1;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { D as DuetAlert$1, d as defineCustomElement$1 } from './p-c272c5d5.js';
4
+ import { D as DuetAlert$1, d as defineCustomElement$1 } from './p-cf8e064c.js';
5
5
 
6
6
  const DuetAlert = DuetAlert$1;
7
7
  const defineCustomElement = defineCustomElement$1;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { D as DuetBadge$1, d as defineCustomElement$1 } from './p-94df5d2c.js';
4
+ import { D as DuetBadge$1, d as defineCustomElement$1 } from './p-6b75d471.js';
5
5
 
6
6
  const DuetBadge = DuetBadge$1;
7
7
  const defineCustomElement = defineCustomElement$1;
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { p as proxyCustomElement, H, h, d as Host } from './p-11fbe397.js';
4
+ import { p as proxyCustomElement, H, h, d as Host } from './p-d0a476fa.js';
5
5
  import { i as inheritGlobalTheme } from './p-4ebf1618.js';
6
- import { d as defineCustomElement$2 } from './p-51307fda.js';
6
+ import { d as defineCustomElement$2 } from './p-fb9ea1e2.js';
7
7
 
8
8
  const duetBreadcrumbCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-breadcrumb{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100%;font-size:0.875rem;font-weight:inherit;color:rgb(0, 41, 77);text-decoration:none}.duet-breadcrumb:hover{color:rgb(0, 77, 128)}.duet-breadcrumb.duet-theme-turva{color:rgb(23, 28, 58)}.duet-breadcrumb.duet-theme-turva:hover{color:rgb(148, 9, 37)}.duet-breadcrumb:focus{outline:0}.duet-breadcrumb:active{opacity:0.75}:host(.user-is-tabbing) .duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}:host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}.duet-breadcrumb.duet-breadcrumb-without-href:hover{color:rgb(0, 41, 77)}.duet-breadcrumb.duet-breadcrumb-without-href.duet-theme-turva:hover{color:rgb(23, 28, 58)}.duet-breadcrumb.duet-breadcrumb-without-href:active{opacity:1}";
9
9
 
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { p as proxyCustomElement, H, h, F as Fragment, d as Host } from './p-11fbe397.js';
4
+ import { p as proxyCustomElement, H, h, F as Fragment, d as Host } from './p-d0a476fa.js';
5
5
  import { i as inheritGlobalTheme } from './p-4ebf1618.js';
6
6
  import { a as getLocaleString } from './p-076452be.js';
7
- import { d as defineCustomElement$2 } from './p-51307fda.js';
7
+ import { d as defineCustomElement$2 } from './p-fb9ea1e2.js';
8
8
 
9
9
  var actionArrowRightSmall={"title":"action-arrow-right-small","tags":"action arrow right small caret","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M19.5 12a2.3 2.3 0 0 1-.78 1.729L7.568 23.54a1.847 1.847 0 0 1-2.439-2.773l9.752-8.579a.25.25 0 0 0 0-.376L5.129 3.233A1.847 1.847 0 0 1 7.568.46l11.148 9.808A2.31 2.31 0 0 1 19.5 12z\"/></svg>"};
10
10