@duetds/components 6.9.1 → 6.9.3

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 (536) hide show
  1. package/hydrate/index.js +151 -59
  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 +2 -3
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +5 -3
  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 +3 -3
  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 +16 -5
  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 +20 -4
  46. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-select.cjs.entry.js +16 -3
  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 +24 -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-05197b44.js} +1 -1
  70. package/lib/cjs/{index-8512a70b.js → index-eee9d583.js} +1 -1
  71. package/lib/cjs/loader.cjs.js +2 -2
  72. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.css +1 -22
  73. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +0 -1
  74. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.css +69 -10
  75. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +21 -1
  76. package/lib/collection/components/duet-card/duet-card.css +13 -10
  77. package/lib/collection/components/duet-card/duet-card.js +7 -11
  78. package/lib/collection/components/duet-choice/duet-choice.css +5 -0
  79. package/lib/collection/components/duet-fieldset/duet-fieldset.js +5 -1
  80. package/lib/collection/components/duet-heading/duet-heading.js +4 -1
  81. package/lib/collection/components/duet-hero/duet-hero.css +16 -3
  82. package/lib/collection/components/duet-input/duet-input.js +8 -13
  83. package/lib/collection/components/duet-link/duet-link.css +3 -0
  84. package/lib/collection/components/duet-list/duet-list.js +28 -6
  85. package/lib/collection/components/duet-list-item/duet-list-item.css +309 -72
  86. package/lib/collection/components/duet-list-item/duet-list-item.js +63 -1
  87. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +19 -1
  88. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +19 -1
  89. package/lib/collection/components/duet-multiselect/duet-multiselect.js +32 -1
  90. package/lib/collection/components/duet-select/duet-select.js +15 -2
  91. package/lib/collection/components/duet-tab-group/duet-tab-group.css +17 -4
  92. package/lib/collection/components/duet-tab-group/duet-tab-group.js +55 -2
  93. package/lib/collection/components/duet-textarea/duet-textarea.js +23 -3
  94. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +19 -1
  95. package/lib/collection/components/duet-tooltip/duet-tooltip.js +12 -0
  96. package/lib/collection/components/duet-upload/duet-upload.css +6 -3
  97. package/lib/collection/components/duet-upload/duet-upload.js +1 -1
  98. package/lib/collection/components/duet-upload/upload-item-header.js +1 -1
  99. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  100. package/lib/dist-custom-elements/duet-alert.js +1 -1
  101. package/lib/dist-custom-elements/duet-badge.js +1 -1
  102. package/lib/dist-custom-elements/duet-breadcrumb.js +3 -4
  103. package/lib/dist-custom-elements/duet-breadcrumbs.js +7 -4
  104. package/lib/dist-custom-elements/duet-button.js +1 -1
  105. package/lib/dist-custom-elements/duet-caption.js +1 -1
  106. package/lib/dist-custom-elements/duet-card.js +11 -15
  107. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  108. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  109. package/lib/dist-custom-elements/duet-choice-group.js +6 -6
  110. package/lib/dist-custom-elements/duet-choice.js +6 -6
  111. package/lib/dist-custom-elements/duet-collapsible.js +2 -2
  112. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  113. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  114. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  115. package/lib/dist-custom-elements/duet-date-picker.js +10 -10
  116. package/lib/dist-custom-elements/duet-divider.js +1 -1
  117. package/lib/dist-custom-elements/duet-editable-table.js +7 -7
  118. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  119. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  120. package/lib/dist-custom-elements/duet-footer.js +4 -4
  121. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  122. package/lib/dist-custom-elements/duet-grid.js +1 -1
  123. package/lib/dist-custom-elements/duet-header.js +8 -8
  124. package/lib/dist-custom-elements/duet-heading.js +1 -1
  125. package/lib/dist-custom-elements/duet-hero.js +10 -10
  126. package/lib/dist-custom-elements/duet-icon.js +1 -1
  127. package/lib/dist-custom-elements/duet-input.js +1 -1
  128. package/lib/dist-custom-elements/duet-label.js +1 -1
  129. package/lib/dist-custom-elements/duet-layout.js +1 -1
  130. package/lib/dist-custom-elements/duet-link.js +1 -1
  131. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  132. package/lib/dist-custom-elements/duet-list.js +1 -1
  133. package/lib/dist-custom-elements/duet-logo.js +1 -1
  134. package/lib/dist-custom-elements/duet-menu-bar-button.js +2 -2
  135. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +6 -4
  136. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +2 -2
  137. package/lib/dist-custom-elements/duet-menu-bar-link.js +5 -3
  138. package/lib/dist-custom-elements/duet-menu-bar.js +2 -2
  139. package/lib/dist-custom-elements/duet-modal.js +7 -7
  140. package/lib/dist-custom-elements/duet-multiselect.js +24 -9
  141. package/lib/dist-custom-elements/duet-nav.js +1 -1
  142. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  143. package/lib/dist-custom-elements/duet-notification.js +2 -2
  144. package/lib/dist-custom-elements/duet-number-input.js +9 -9
  145. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  146. package/lib/dist-custom-elements/duet-pagination.js +7 -7
  147. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  148. package/lib/dist-custom-elements/duet-progress.js +1 -1
  149. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  150. package/lib/dist-custom-elements/duet-radio.js +1 -1
  151. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  152. package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
  153. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  154. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  155. package/lib/dist-custom-elements/duet-select.js +1 -1
  156. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  157. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  158. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  159. package/lib/dist-custom-elements/duet-slideout-panel.js +2 -2
  160. package/lib/dist-custom-elements/duet-slideout.js +2 -2
  161. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  162. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  163. package/lib/dist-custom-elements/duet-step.js +4 -4
  164. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  165. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  166. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +2 -2
  167. package/lib/dist-custom-elements/duet-submenu-bar-link.js +2 -2
  168. package/lib/dist-custom-elements/duet-submenu-bar.js +2 -2
  169. package/lib/dist-custom-elements/duet-tab-group.js +29 -12
  170. package/lib/dist-custom-elements/duet-tab.js +1 -1
  171. package/lib/dist-custom-elements/duet-table.js +1 -1
  172. package/lib/dist-custom-elements/duet-textarea.js +31 -11
  173. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  174. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  175. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  176. package/lib/dist-custom-elements/duet-toolbar-link.js +6 -4
  177. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  178. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  179. package/lib/dist-custom-elements/duet-tray.js +3 -3
  180. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  181. package/lib/dist-custom-elements/duet-upload.js +21 -21
  182. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  183. package/lib/dist-custom-elements/index.js +1 -1
  184. package/lib/dist-custom-elements/{p-72635656.js → p-05d02fd2.js} +1 -1
  185. package/lib/dist-custom-elements/{p-bdc087cb.js → p-070a067c.js} +1 -1
  186. package/lib/dist-custom-elements/{p-b7b7c63b.js → p-084bbc37.js} +1 -1
  187. package/lib/dist-custom-elements/{p-c8659d75.js → p-08f56203.js} +1 -1
  188. package/lib/dist-custom-elements/{p-9175529e.js → p-11726aff.js} +2 -2
  189. package/lib/dist-custom-elements/{p-7392a942.js → p-1b58a33e.js} +2 -2
  190. package/lib/dist-custom-elements/{p-11fbe397.js → p-1fc0569f.js} +1 -1
  191. package/lib/dist-custom-elements/{p-cefb33f9.js → p-220ddc4d.js} +7 -4
  192. package/lib/dist-custom-elements/{p-43bbb094.js → p-2379a67f.js} +7 -3
  193. package/lib/dist-custom-elements/{p-117109e4.js → p-3332f673.js} +1 -1
  194. package/lib/dist-custom-elements/{p-bbf48894.js → p-3a3c90d4.js} +1 -1
  195. package/lib/dist-custom-elements/{p-5e60f757.js → p-47633ac9.js} +16 -21
  196. package/lib/dist-custom-elements/{p-00afad07.js → p-486f5398.js} +1 -1
  197. package/lib/dist-custom-elements/{p-b51fbd15.js → p-48eb0804.js} +2 -2
  198. package/lib/dist-custom-elements/{p-51307fda.js → p-6a4b0b8a.js} +1 -1
  199. package/lib/dist-custom-elements/{p-2a919c81.js → p-743407d6.js} +10 -4
  200. package/lib/dist-custom-elements/{p-afc65a24.js → p-8ac11c5c.js} +2 -2
  201. package/lib/dist-custom-elements/{p-7c4c8cf0.js → p-95748e22.js} +1 -1
  202. package/lib/dist-custom-elements/{p-94df5d2c.js → p-98adfbc0.js} +1 -1
  203. package/lib/dist-custom-elements/{p-57d6495c.js → p-9a4e8a6c.js} +1 -1
  204. package/lib/dist-custom-elements/{p-414fdb0c.js → p-9b058d94.js} +2 -2
  205. package/lib/dist-custom-elements/{p-84d75d9d.js → p-aa927ce0.js} +4 -4
  206. package/lib/dist-custom-elements/{p-69fa1743.js → p-abcc88a0.js} +21 -8
  207. package/lib/dist-custom-elements/p-b36e239a.js +49 -0
  208. package/lib/dist-custom-elements/{p-9f027a93.js → p-be5f6a1d.js} +1 -1
  209. package/lib/dist-custom-elements/{p-f1b800f0.js → p-c4537db0.js} +1 -1
  210. package/lib/dist-custom-elements/{p-c272c5d5.js → p-d8b913a2.js} +5 -5
  211. package/lib/dist-custom-elements/{p-6f661b09.js → p-dbbd6cd5.js} +1 -1
  212. package/lib/dist-custom-elements/{p-c57eccd3.js → p-deb13767.js} +3 -3
  213. package/lib/dist-custom-elements/{p-528cdd3e.js → p-f48f6476.js} +4 -4
  214. package/lib/dist-custom-elements/{p-8d12a863.js → p-fc615ca3.js} +1 -1
  215. package/lib/duet/duet.esm.js +1 -1
  216. package/lib/duet/duet.js +1 -1
  217. package/lib/duet/{p-7dd4e3f6.entry.js → p-0a7ba5c7.entry.js} +1 -1
  218. package/lib/duet/p-0b3515f3.entry.js +4 -0
  219. package/lib/duet/{p-340bef19.system.entry.js → p-11358fff.system.entry.js} +1 -1
  220. package/lib/duet/{p-b1abb582.system.entry.js → p-11758911.system.entry.js} +1 -1
  221. package/lib/duet/{p-7cbc8aa1.system.entry.js → p-11ef8af0.system.entry.js} +1 -1
  222. package/lib/duet/{p-6a8341c1.entry.js → p-155652e9.entry.js} +1 -1
  223. package/lib/duet/{p-78973e79.entry.js → p-173ed9e7.entry.js} +1 -1
  224. package/lib/duet/p-17f84373.entry.js +4 -0
  225. package/lib/duet/{p-825c4e47.system.entry.js → p-1a98ab00.system.entry.js} +1 -1
  226. package/lib/duet/{p-04ccc444.entry.js → p-1b423f25.entry.js} +1 -1
  227. package/lib/duet/p-1c533863.entry.js +4 -0
  228. package/lib/duet/{p-2078d7cd.entry.js → p-1ce8948f.entry.js} +1 -1
  229. package/lib/duet/{p-6a1f0973.system.entry.js → p-1d54c498.system.entry.js} +1 -1
  230. package/lib/duet/{p-a4e42811.system.entry.js → p-1eab9ea5.system.entry.js} +1 -1
  231. package/lib/duet/p-1ebda85b.entry.js +4 -0
  232. package/lib/duet/{p-c16de43f.system.entry.js → p-21381440.system.entry.js} +1 -1
  233. package/lib/duet/{p-2695e6c6.entry.js → p-23361048.entry.js} +1 -1
  234. package/lib/duet/{p-a190f8b9.system.js → p-24fea307.system.js} +1 -1
  235. package/lib/duet/{p-d8422099.system.js → p-259d5d84.system.js} +1 -1
  236. package/lib/duet/p-25f897af.system.entry.js +4 -0
  237. package/lib/duet/{p-bf37cb60.system.entry.js → p-28a49e7e.system.entry.js} +1 -1
  238. package/lib/duet/{p-cfebc130.system.entry.js → p-2a22b73f.system.entry.js} +1 -1
  239. package/lib/duet/{p-64b14d85.system.entry.js → p-2b68991e.system.entry.js} +1 -1
  240. package/lib/duet/p-2c89239c.entry.js +4 -0
  241. package/lib/duet/p-2cc41c08.entry.js +4 -0
  242. package/lib/duet/{p-9fc991c2.system.entry.js → p-2e931fc4.system.entry.js} +2 -2
  243. package/lib/duet/{p-8a517f70.system.entry.js → p-2f389915.system.entry.js} +1 -1
  244. package/lib/duet/{p-50b51053.entry.js → p-3014636c.entry.js} +1 -1
  245. package/lib/duet/{p-f25db9b8.entry.js → p-34429ce9.entry.js} +1 -1
  246. package/lib/duet/{p-99ccb2c2.system.entry.js → p-349331d9.system.entry.js} +1 -1
  247. package/lib/duet/{p-539034b3.system.entry.js → p-34f27b50.system.entry.js} +1 -1
  248. package/lib/duet/{p-9cd3ea60.system.entry.js → p-357cc693.system.entry.js} +1 -1
  249. package/lib/duet/p-36481d15.system.entry.js +4 -0
  250. package/lib/duet/{p-cb5771c5.entry.js → p-3712296a.entry.js} +1 -1
  251. package/lib/duet/{p-00c11b87.entry.js → p-3847ef6d.entry.js} +1 -1
  252. package/lib/duet/{p-618615d1.system.entry.js → p-395d05bb.system.entry.js} +1 -1
  253. package/lib/duet/{p-2d6e3927.system.entry.js → p-396a1d2a.system.entry.js} +1 -1
  254. package/lib/duet/{p-4bdd34bc.system.entry.js → p-3c41107f.system.entry.js} +1 -1
  255. package/lib/duet/p-3d47e55b.entry.js +4 -0
  256. package/lib/duet/{p-a0bcc46c.system.entry.js → p-402b0ebf.system.entry.js} +1 -1
  257. package/lib/duet/p-407f6a22.entry.js +4 -0
  258. package/lib/duet/{p-56b4f6e5.system.entry.js → p-414a631b.system.entry.js} +1 -1
  259. package/lib/duet/{p-54a44e1e.system.entry.js → p-442c8063.system.entry.js} +1 -1
  260. package/lib/duet/{p-fec9ec39.entry.js → p-48449639.entry.js} +1 -1
  261. package/lib/duet/{p-7e9e10ab.entry.js → p-48556df8.entry.js} +1 -1
  262. package/lib/duet/{p-d2d14d3b.system.entry.js → p-4add9927.system.entry.js} +1 -1
  263. package/lib/duet/p-4b9ca577.system.js +4 -0
  264. package/lib/duet/{p-08b03779.system.entry.js → p-4ce9c319.system.entry.js} +1 -1
  265. package/lib/duet/{p-c19d32af.system.entry.js → p-4d4f0b19.system.entry.js} +1 -1
  266. package/lib/duet/p-4e6acc63.system.entry.js +4 -0
  267. package/lib/duet/{p-fb352dcf.system.entry.js → p-4e8ffea9.system.entry.js} +1 -1
  268. package/lib/duet/p-4faeaadc.system.entry.js +4 -0
  269. package/lib/duet/{p-4879ffe9.js → p-57efae9d.js} +1 -1
  270. package/lib/duet/{p-960503a3.entry.js → p-59ca36c2.entry.js} +1 -1
  271. package/lib/duet/{p-14e3383d.system.entry.js → p-59d60527.system.entry.js} +1 -1
  272. package/lib/duet/p-5bfdb0c0.system.entry.js +4 -0
  273. package/lib/duet/p-5f68a158.entry.js +4 -0
  274. package/lib/duet/{p-2e1e2d3d.entry.js → p-653a0453.entry.js} +1 -1
  275. package/lib/duet/{p-133d2ee1.system.entry.js → p-661af5a7.system.entry.js} +1 -1
  276. package/lib/duet/{p-b3f12c59.entry.js → p-672928d4.entry.js} +1 -1
  277. package/lib/duet/p-68102093.system.entry.js +4 -0
  278. package/lib/duet/{p-1263323e.system.entry.js → p-68f54c0a.system.entry.js} +1 -1
  279. package/lib/duet/{p-22caa775.entry.js → p-6b43c686.entry.js} +1 -1
  280. package/lib/duet/{p-4c286dee.system.entry.js → p-6cf4109e.system.entry.js} +1 -1
  281. package/lib/duet/{p-5abf961b.system.entry.js → p-724367a5.system.entry.js} +1 -1
  282. package/lib/duet/{p-05f30291.entry.js → p-74152c5e.entry.js} +1 -1
  283. package/lib/duet/{p-76bac602.system.entry.js → p-7b092de5.system.entry.js} +1 -1
  284. package/lib/duet/{p-3856f3a8.entry.js → p-7e9ebcb2.entry.js} +1 -1
  285. package/lib/duet/p-7ea72ed8.entry.js +4 -0
  286. package/lib/duet/{p-1254c99a.entry.js → p-7ef9de3e.entry.js} +1 -1
  287. package/lib/duet/{p-b308ce5d.system.entry.js → p-7f39a8a5.system.entry.js} +1 -1
  288. package/lib/duet/{p-2f936baf.system.entry.js → p-800dbb26.system.entry.js} +1 -1
  289. package/lib/duet/{p-c213c2f2.system.entry.js → p-83a1e8a9.system.entry.js} +1 -1
  290. package/lib/duet/{p-9616579e.entry.js → p-878386d9.entry.js} +1 -1
  291. package/lib/duet/{p-e13d0460.system.entry.js → p-894225c9.system.entry.js} +1 -1
  292. package/lib/duet/p-8a8425cb.entry.js +4 -0
  293. package/lib/duet/p-8bd1ef85.entry.js +4 -0
  294. package/lib/duet/{p-90fece55.entry.js → p-8bef9998.entry.js} +1 -1
  295. package/lib/duet/p-8c8357ad.entry.js +4 -0
  296. package/lib/duet/{p-aee38b4a.system.entry.js → p-8f98f017.system.entry.js} +1 -1
  297. package/lib/duet/{p-a7d9728a.entry.js → p-910a0043.entry.js} +1 -1
  298. package/lib/duet/p-92a84fa7.system.entry.js +4 -0
  299. package/lib/duet/{p-bb536ec4.entry.js → p-95a3f764.entry.js} +1 -1
  300. package/lib/duet/{p-33bf6eed.system.entry.js → p-96281e8b.system.entry.js} +1 -1
  301. package/lib/duet/{p-bc0ce7e7.entry.js → p-964a54d2.entry.js} +1 -1
  302. package/lib/duet/{p-db9f9e24.entry.js → p-9664ebdc.entry.js} +1 -1
  303. package/lib/duet/{p-154c0d34.entry.js → p-9910f982.entry.js} +1 -1
  304. package/lib/duet/{p-c3c98ddf.entry.js → p-997df7b3.entry.js} +1 -1
  305. package/lib/duet/{p-736eb6f6.system.entry.js → p-9a7822e3.system.entry.js} +1 -1
  306. package/lib/duet/p-9b874e31.entry.js +4 -0
  307. package/lib/duet/{p-80973cda.system.entry.js → p-9f207355.system.entry.js} +1 -1
  308. package/lib/duet/p-a224fc1a.entry.js +4 -0
  309. package/lib/duet/{p-a4a9705f.entry.js → p-a71e810d.entry.js} +1 -1
  310. package/lib/duet/{p-0e8dab5b.system.entry.js → p-a99957df.system.entry.js} +1 -1
  311. package/lib/duet/p-aad61eac.entry.js +4 -0
  312. package/lib/duet/p-aae6309d.entry.js +4 -0
  313. package/lib/duet/{p-018b0ffe.entry.js → p-aaf572b3.entry.js} +1 -1
  314. package/lib/duet/{p-7743d05c.entry.js → p-abc29e21.entry.js} +1 -1
  315. package/lib/duet/{p-eb4393ed.entry.js → p-ac42a831.entry.js} +1 -1
  316. package/lib/duet/{p-b656b461.entry.js → p-b1d50c67.entry.js} +1 -1
  317. package/lib/duet/{p-27cc2332.entry.js → p-b3fcc7af.entry.js} +1 -1
  318. package/lib/duet/{p-d51ed3e2.system.entry.js → p-b71fca88.system.entry.js} +1 -1
  319. package/lib/duet/{p-187c9ec6.system.entry.js → p-b78516ae.system.entry.js} +1 -1
  320. package/lib/duet/{p-71779b62.entry.js → p-bca173de.entry.js} +1 -1
  321. package/lib/duet/{p-376ec229.entry.js → p-be6da1bf.entry.js} +1 -1
  322. package/lib/duet/{p-fa0896f4.system.entry.js → p-c307f048.system.entry.js} +1 -1
  323. package/lib/duet/{p-94f2509c.system.entry.js → p-c955c3c0.system.entry.js} +1 -1
  324. package/lib/duet/{p-35907d51.system.entry.js → p-cabe3f7c.system.entry.js} +1 -1
  325. package/lib/duet/{p-df1531b7.system.entry.js → p-cc67de6a.system.entry.js} +1 -1
  326. package/lib/duet/{p-abbcf5dc.entry.js → p-cc86b267.entry.js} +1 -1
  327. package/lib/duet/{p-ed222f86.entry.js → p-cd7bf69f.entry.js} +1 -1
  328. package/lib/duet/{p-c141d219.system.entry.js → p-d1a0472a.system.entry.js} +1 -1
  329. package/lib/duet/{p-417c1eca.system.entry.js → p-d43a06e6.system.entry.js} +1 -1
  330. package/lib/duet/{p-84881c84.system.entry.js → p-d66220a1.system.entry.js} +1 -1
  331. package/lib/duet/{p-e920e34f.system.entry.js → p-d9499685.system.entry.js} +1 -1
  332. package/lib/duet/{p-9d36613e.system.entry.js → p-d9667ce7.system.entry.js} +2 -2
  333. package/lib/duet/{p-5c2dd50b.system.entry.js → p-da0d4641.system.entry.js} +1 -1
  334. package/lib/duet/p-da0eeef6.entry.js +4 -0
  335. package/lib/duet/p-db400c06.entry.js +4 -0
  336. package/lib/duet/{p-8b7b4c46.entry.js → p-dd32b730.entry.js} +1 -1
  337. package/lib/duet/{p-f28d27a4.system.entry.js → p-ddb0e72b.system.entry.js} +1 -1
  338. package/lib/duet/{p-a3f23363.entry.js → p-dfdd58b9.entry.js} +1 -1
  339. package/lib/duet/{p-361ce072.system.entry.js → p-e13f59e4.system.entry.js} +1 -1
  340. package/lib/duet/{p-3d3e5e9e.entry.js → p-e2a2e011.entry.js} +1 -1
  341. package/lib/duet/{p-45a939b3.entry.js → p-e4f8292f.entry.js} +1 -1
  342. package/lib/duet/{p-e9fb2c3b.system.entry.js → p-e5294139.system.entry.js} +1 -1
  343. package/lib/duet/{p-a29118e6.entry.js → p-e56a2b7e.entry.js} +1 -1
  344. package/lib/duet/{p-75a307e4.entry.js → p-e6b7aee0.entry.js} +1 -1
  345. package/lib/duet/{p-01ca2f64.system.entry.js → p-e71f044b.system.entry.js} +1 -1
  346. package/lib/duet/{p-1666fed9.system.entry.js → p-e7bfb225.system.entry.js} +1 -1
  347. package/lib/duet/{p-3a21d43b.system.entry.js → p-edc52faf.system.entry.js} +1 -1
  348. package/lib/duet/{p-e1919861.js → p-f1572d2f.js} +1 -1
  349. package/lib/duet/{p-981b43c2.entry.js → p-f461ac1c.entry.js} +1 -1
  350. package/lib/duet/{p-dc1f60cd.system.entry.js → p-f4b9cbc6.system.entry.js} +1 -1
  351. package/lib/duet/{p-51160aa4.entry.js → p-f5e31079.entry.js} +1 -1
  352. package/lib/duet/{p-faeed6cf.entry.js → p-fb400276.entry.js} +1 -1
  353. package/lib/duet/{p-58833aca.entry.js → p-fd2a5cac.entry.js} +1 -1
  354. package/lib/esm/duet-action-button.entry.js +1 -1
  355. package/lib/esm/duet-alert.entry.js +1 -1
  356. package/lib/esm/duet-badge.entry.js +1 -1
  357. package/lib/esm/duet-breadcrumb.entry.js +2 -3
  358. package/lib/esm/duet-breadcrumbs.entry.js +5 -3
  359. package/lib/esm/duet-button_2.entry.js +1 -1
  360. package/lib/esm/duet-caption_4.entry.js +3 -3
  361. package/lib/esm/duet-card.entry.js +9 -13
  362. package/lib/esm/duet-checkbox.entry.js +1 -1
  363. package/lib/esm/duet-checkmark.entry.js +1 -1
  364. package/lib/esm/duet-choice_2.entry.js +3 -3
  365. package/lib/esm/duet-collapsible.entry.js +1 -1
  366. package/lib/esm/duet-combobox.entry.js +1 -1
  367. package/lib/esm/duet-contact-card.entry.js +1 -1
  368. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  369. package/lib/esm/duet-date-picker.entry.js +2 -2
  370. package/lib/esm/duet-divider_2.entry.js +1 -1
  371. package/lib/esm/duet-editable-table_3.entry.js +5 -5
  372. package/lib/esm/duet-empty-state.entry.js +1 -1
  373. package/lib/esm/duet-fieldset.entry.js +6 -2
  374. package/lib/esm/duet-footer.entry.js +1 -1
  375. package/lib/esm/duet-grid_2.entry.js +1 -1
  376. package/lib/esm/duet-header_2.entry.js +1 -1
  377. package/lib/esm/duet-hero.entry.js +2 -2
  378. package/lib/esm/duet-icon.entry.js +1 -1
  379. package/lib/esm/duet-input_2.entry.js +9 -14
  380. package/lib/esm/duet-layout.entry.js +1 -1
  381. package/lib/esm/duet-list_2.entry.js +16 -5
  382. package/lib/esm/duet-menu-bar-button.entry.js +1 -1
  383. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +3 -2
  384. package/lib/esm/duet-menu-bar-dropdown.entry.js +1 -1
  385. package/lib/esm/duet-menu-bar-link.entry.js +3 -2
  386. package/lib/esm/duet-menu-bar.entry.js +1 -1
  387. package/lib/esm/duet-modal.entry.js +2 -2
  388. package/lib/esm/duet-multiselect.entry.js +16 -2
  389. package/lib/esm/duet-nav.entry.js +1 -1
  390. package/lib/esm/duet-notification_2.entry.js +1 -1
  391. package/lib/esm/duet-number-input.entry.js +1 -1
  392. package/lib/esm/duet-page-heading.entry.js +1 -1
  393. package/lib/esm/duet-pagination_2.entry.js +1 -1
  394. package/lib/esm/duet-progress.entry.js +1 -1
  395. package/lib/esm/duet-radio_2.entry.js +1 -1
  396. package/lib/esm/duet-range-slider.entry.js +1 -1
  397. package/lib/esm/duet-scrollable_3.entry.js +20 -4
  398. package/lib/esm/duet-section-layout.entry.js +1 -1
  399. package/lib/esm/duet-select.entry.js +16 -3
  400. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  401. package/lib/esm/duet-slideout-link.entry.js +1 -1
  402. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  403. package/lib/esm/duet-slideout-panel.entry.js +2 -2
  404. package/lib/esm/duet-slideout.entry.js +2 -2
  405. package/lib/esm/duet-step_2.entry.js +1 -1
  406. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  407. package/lib/esm/duet-submenu-bar-dropdown.entry.js +1 -1
  408. package/lib/esm/duet-submenu-bar-link.entry.js +1 -1
  409. package/lib/esm/duet-submenu-bar.entry.js +1 -1
  410. package/lib/esm/duet-textarea.entry.js +24 -4
  411. package/lib/esm/duet-toggle.entry.js +1 -1
  412. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  413. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  414. package/lib/esm/duet-toolbar-link.entry.js +3 -2
  415. package/lib/esm/duet-toolbar.entry.js +1 -1
  416. package/lib/esm/duet-tooltip.entry.js +7 -1
  417. package/lib/esm/duet-tray.entry.js +1 -1
  418. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  419. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  420. package/lib/esm/duet.js +3 -3
  421. package/lib/esm/{focus-utils-3483f616.js → focus-utils-babfdd77.js} +1 -1
  422. package/lib/esm/{index-fff18e02.js → index-1f0abe67.js} +1 -1
  423. package/lib/esm/loader.js +3 -3
  424. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  425. package/lib/esm-es5/duet-alert.entry.js +1 -1
  426. package/lib/esm-es5/duet-badge.entry.js +1 -1
  427. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  428. package/lib/esm-es5/duet-breadcrumbs.entry.js +2 -2
  429. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  430. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  431. package/lib/esm-es5/duet-card.entry.js +1 -1
  432. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  433. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  434. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  435. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  436. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  437. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  438. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  439. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  440. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  441. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  442. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  443. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  444. package/lib/esm-es5/duet-footer.entry.js +1 -1
  445. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  446. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  447. package/lib/esm-es5/duet-hero.entry.js +2 -2
  448. package/lib/esm-es5/duet-icon.entry.js +1 -1
  449. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  450. package/lib/esm-es5/duet-layout.entry.js +1 -1
  451. package/lib/esm-es5/duet-list_2.entry.js +2 -2
  452. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  453. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  454. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  455. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  456. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  457. package/lib/esm-es5/duet-modal.entry.js +1 -1
  458. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  459. package/lib/esm-es5/duet-nav.entry.js +1 -1
  460. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  461. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  462. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  463. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  464. package/lib/esm-es5/duet-progress.entry.js +1 -1
  465. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  466. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  467. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  468. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  469. package/lib/esm-es5/duet-select.entry.js +1 -1
  470. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  471. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  472. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  473. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  474. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  475. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  476. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  477. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  478. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  479. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  480. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  481. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  482. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  483. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  484. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  485. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  486. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  487. package/lib/esm-es5/duet-tray.entry.js +1 -1
  488. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  489. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  490. package/lib/esm-es5/duet.js +1 -1
  491. package/lib/esm-es5/{focus-utils-3483f616.js → focus-utils-babfdd77.js} +1 -1
  492. package/lib/esm-es5/{index-fff18e02.js → index-1f0abe67.js} +1 -1
  493. package/lib/esm-es5/loader.js +1 -1
  494. package/lib/types/common-types.d.ts +1 -0
  495. package/lib/types/components/duet-breadcrumbs/duet-breadcrumbs.d.ts +4 -0
  496. package/lib/types/components/duet-heading/duet-heading.d.ts +3 -0
  497. package/lib/types/components/duet-list/duet-list.d.ts +9 -3
  498. package/lib/types/components/duet-list-item/duet-list-item.d.ts +13 -0
  499. package/lib/types/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.d.ts +6 -0
  500. package/lib/types/components/duet-menu-bar-link/duet-menu-bar-link.d.ts +6 -0
  501. package/lib/types/components/duet-multiselect/duet-multiselect.d.ts +5 -0
  502. package/lib/types/components/duet-select/duet-select.d.ts +2 -0
  503. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +10 -0
  504. package/lib/types/components/duet-textarea/duet-textarea.d.ts +3 -0
  505. package/lib/types/components/duet-toolbar-link/duet-toolbar-link.d.ts +6 -0
  506. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +2 -0
  507. package/lib/types/components.d.ts +66 -4
  508. package/package.json +5 -5
  509. package/lib/dist-custom-elements/p-98b0f345.js +0 -37
  510. package/lib/duet/p-02fb736a.entry.js +0 -4
  511. package/lib/duet/p-097c4d0c.entry.js +0 -4
  512. package/lib/duet/p-0ab4083f.entry.js +0 -4
  513. package/lib/duet/p-0ca53854.system.entry.js +0 -4
  514. package/lib/duet/p-1739bdd1.entry.js +0 -4
  515. package/lib/duet/p-2c28eb80.entry.js +0 -4
  516. package/lib/duet/p-2c6e4614.entry.js +0 -4
  517. package/lib/duet/p-3a28cf58.entry.js +0 -4
  518. package/lib/duet/p-46ca69cf.system.entry.js +0 -4
  519. package/lib/duet/p-4b7f3ac1.system.js +0 -4
  520. package/lib/duet/p-57f981bd.entry.js +0 -4
  521. package/lib/duet/p-5c83e833.entry.js +0 -4
  522. package/lib/duet/p-614194b1.entry.js +0 -4
  523. package/lib/duet/p-61e84177.entry.js +0 -4
  524. package/lib/duet/p-64297b4d.system.entry.js +0 -4
  525. package/lib/duet/p-71e63186.system.entry.js +0 -4
  526. package/lib/duet/p-86201340.system.entry.js +0 -4
  527. package/lib/duet/p-9389ce47.entry.js +0 -4
  528. package/lib/duet/p-a113525c.entry.js +0 -4
  529. package/lib/duet/p-a6751ba6.entry.js +0 -4
  530. package/lib/duet/p-b2be54b5.system.entry.js +0 -4
  531. package/lib/duet/p-c70da05a.system.entry.js +0 -4
  532. package/lib/duet/p-cd410e2a.entry.js +0 -4
  533. package/lib/duet/p-d22e694c.entry.js +0 -4
  534. package/lib/duet/p-d924703a.entry.js +0 -4
  535. package/lib/duet/p-dc566220.entry.js +0 -4
  536. package/lib/duet/p-e4626c0e.entry.js +0 -4
@@ -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;
@@ -118,7 +131,7 @@ export class DuetSelect {
118
131
  return item ? item.label : this.placeholder || "";
119
132
  }
120
133
  renderOption(option) {
121
- return (h("option", { value: option.value, key: option.value, selected: this.value === option.value, disabled: option.disabled }, option.label));
134
+ return (h("option", { "aria-label": option.ariaLabel, value: option.value, key: option.value, selected: this.value === option.value, disabled: option.disabled }, option.label));
122
135
  }
123
136
  renderOptionGroup(group) {
124
137
  return (h("optgroup", { key: group.label, label: group.label, disabled: group.disabled }, group.options.map(option => this.renderOption(option))));
@@ -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,
@@ -53,9 +53,9 @@
53
53
 
54
54
  .duet-tab-variation-checked .duet-tab-group-tabs {
55
55
  display: flex;
56
- gap: 8px;
57
- padding-right: 16px;
58
- padding-left: 16px;
56
+ gap: 4px;
57
+ padding-right: 12px;
58
+ padding-left: 12px;
59
59
  overflow-x: scroll;
60
60
  /* Hide scrollbar for IE, Edge and Firefox */
61
61
  -ms-overflow-style: none; /* IE and Edge */
@@ -67,6 +67,9 @@
67
67
  }
68
68
  @media (min-width: 36em) {
69
69
  .duet-tab-variation-checked .duet-tab-group-tabs {
70
+ gap: 8px;
71
+ padding-right: 16px;
72
+ padding-left: 16px;
70
73
  overflow: visible;
71
74
  }
72
75
  }
@@ -226,7 +229,7 @@
226
229
  flex-grow: 1;
227
230
  width: 200px;
228
231
  min-width: 200px;
229
- padding: 16px;
232
+ padding: 8px 4px;
230
233
  border-color: rgb(207, 210, 212);
231
234
  border-bottom-color: rgb(0, 119, 179);
232
235
  border-radius: 4px 4px 0 0;
@@ -240,6 +243,7 @@
240
243
  @media (min-width: 36em) {
241
244
  .duet-tab-variation-checked .duet-tab-button {
242
245
  min-width: 0;
246
+ padding: 16px;
243
247
  }
244
248
  }
245
249
  .duet-tab-variation-checked .duet-tab-button.stackable-tab {
@@ -298,9 +302,16 @@
298
302
  }
299
303
  .duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description .tab-caption {
300
304
  margin-top: 4px;
305
+ font-size: 0.875rem;
301
306
  font-weight: 400;
302
307
  color: rgb(101, 119, 135);
303
308
  }
309
+ @media (min-width: 36em) {
310
+ .duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description .tab-caption {
311
+ font-size: 1rem;
312
+ text-align: left;
313
+ }
314
+ }
304
315
  .duet-theme-turva.duet-tab-variation-checked .duet-tab-button .checked-tab-content .checked-tab-description .tab-caption {
305
316
  color: rgb(68, 68, 69);
306
317
  }
@@ -314,6 +325,8 @@
314
325
 
315
326
  .duet-tab-variation-checked .duet-tab-button .checked-tab-content .stackable-checkmark {
316
327
  order: -1;
328
+ margin-top: 8px;
329
+ margin-bottom: 8px;
317
330
  }
318
331
  @media (min-width: 36em) {
319
332
  .duet-tab-variation-checked .duet-tab-button .checked-tab-content .stackable-checkmark {
@@ -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() {
@@ -24,6 +24,7 @@ export class DuetTextarea {
24
24
  this.topCaptionPlaceholderId = createID("DuetCaptionPlaceholderTop");
25
25
  this.labelId = createID("DuetLabel");
26
26
  this.errorId = createID("DuetError");
27
+ this.characterCountId = createID("DuetCharacterCount");
27
28
  this.disallowPatternRegex = null;
28
29
  /**
29
30
  * Component event handling.
@@ -56,12 +57,31 @@ export class DuetTextarea {
56
57
  });
57
58
  };
58
59
  this.handleFocus = (ev) => {
60
+ if (this.counter) {
61
+ this.hiddenCounterLabel.textContent = `${Math.max(this.maxlength - this.value.length, 0)}/${this.maxlength} ${this.counterLabel}`;
62
+ }
59
63
  this.duetFocus.emit({
60
64
  originalEvent: ev,
61
65
  value: this.value,
62
66
  component: "duet-textarea",
63
67
  });
64
68
  };
69
+ this.getDescribedBy = () => {
70
+ const describedBy = [];
71
+ if (this.isCaptionVisible && this.topCaptionId) {
72
+ describedBy.push(this.topCaptionId);
73
+ }
74
+ if (this.accessibleDescribedBy) {
75
+ describedBy.push(this.accessibleDescribedBy);
76
+ }
77
+ if (this.error) {
78
+ describedBy.push(this.errorId);
79
+ }
80
+ if (this.counter) {
81
+ describedBy.push(this.characterCountId);
82
+ }
83
+ return describedBy.length > 0 ? describedBy.join(" ") : null;
84
+ };
65
85
  this.margin = "auto";
66
86
  this.accessibleActiveDescendant = undefined;
67
87
  this.accessibleAutocomplete = undefined;
@@ -136,9 +156,9 @@ export class DuetTextarea {
136
156
  "duet-label-hidden": this.labelHidden,
137
157
  "duet-input-top-caption-shown": this.isCaptionVisible,
138
158
  "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 })))))));
159
+ } }, 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 })))), this.counter && (h("duet-visually-hidden", { class: "duet-visually-hidden", id: this.characterCountId, ref: el => {
160
+ this.hiddenCounterLabel = el;
161
+ } })))));
142
162
  }
143
163
  static get is() { return "duet-textarea"; }
144
164
  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-deb13767.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-d8b913a2.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-98adfbc0.js';
5
5
 
6
6
  const DuetBadge = DuetBadge$1;
7
7
  const defineCustomElement = defineCustomElement$1;
@@ -1,11 +1,11 @@
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-1fc0569f.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-6a4b0b8a.js';
7
7
 
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}";
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:inherit;text-decoration:none}.duet-breadcrumb:focus{outline:0}: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)}";
9
9
 
10
10
  const DuetBreadcrumb$1 = /*@__PURE__*/ proxyCustomElement(class extends H {
11
11
  constructor() {
@@ -31,7 +31,6 @@ const DuetBreadcrumb$1 = /*@__PURE__*/ proxyCustomElement(class extends H {
31
31
  return (h(Host, null, h("a", { class: {
32
32
  "duet-breadcrumb": true,
33
33
  "duet-theme-turva": this.theme === "turva",
34
- "duet-breadcrumb-without-href": !this.href,
35
34
  }, href: this.href ? this.href : undefined, "aria-label": this.accessibleLabel }, this.icon && h("duet-icon", { size: "x-small", name: this.icon, margin: "none", color: "currentColor" }), !this.icon && h("slot", null))));
36
35
  }
37
36
  static get style() { return duetBreadcrumbCss; }
@@ -1,14 +1,14 @@
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-1fc0569f.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-6a4b0b8a.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
 
11
- const duetBreadcrumbsCss = "*,*::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-breadcrumbs{display:flex;align-items:center;justify-content:center;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";background:rgb(243, 249, 252);border-bottom:1px solid rgb(225, 227, 230)}.duet-breadcrumbs .container{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1384px;min-height:36px;margin:0 28px}.duet-breadcrumbs ol{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start;padding:10px 0;color:rgb(0, 41, 77);list-style:none}.duet-breadcrumbs ol li{font-weight:400}.duet-breadcrumbs ol li:last-of-type{font-weight:600}.duet-breadcrumbs.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";background:rgb(245, 245, 247)}.duet-breadcrumbs.duet-theme-turva ol{color:rgb(23, 28, 58)}.duet-breadcrumbs .duet-breadrumbs-arrow{display:inherit;align-items:center;justify-content:center;width:0.375rem;height:0.375rem}.duet-breadcrumbs .hide{display:none}";
11
+ const duetBreadcrumbsCss = "*,*::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-breadcrumbs{position:relative;display:flex;align-items:center;justify-content:center;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-breadcrumbs .container{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1384px;min-height:36px;margin:0 28px}.duet-breadcrumbs ol{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start;padding:10px 0;color:inherit;list-style:none}.duet-breadcrumbs ol li{font-weight:400}.duet-breadcrumbs ol li:last-of-type{font-weight:600}.duet-breadcrumbs .duet-breadrumbs-arrow{display:inherit;align-items:center;justify-content:center;width:0.375rem;height:0.375rem}.duet-breadcrumbs .hide{display:none}.duet-breadcrumbs .bottom-border{position:absolute;bottom:0;display:none;width:100%;height:1px}.duet-breadcrumbs.header{color:rgb(0, 41, 77);background:rgb(243, 249, 252)}.duet-breadcrumbs.header ol duet-breadcrumb[href]:hover{color:rgb(0, 77, 128)}.duet-breadcrumbs.header .bottom-border--nav{display:block;background:rgb(225, 227, 230)}.duet-breadcrumbs.header.duet-theme-turva{color:rgb(23, 28, 58);background:rgb(245, 245, 247)}.duet-breadcrumbs.header.duet-theme-turva ol duet-breadcrumb[href]:hover{color:rgb(148, 9, 37)}.duet-breadcrumbs.footer{color:rgb(255, 255, 255);background:rgb(0, 41, 77)}@media (min-width: 64.0625em){.duet-breadcrumbs.footer{justify-content:flex-start}}@media (min-width: 76.25em){.duet-breadcrumbs.footer{justify-content:center}}.duet-breadcrumbs.footer .container{max-width:1110px}@media (min-width: 62em){.duet-breadcrumbs.footer .container{margin:0 72px 0 48px}}.duet-breadcrumbs.footer ol{padding:20px 0}@media (min-width: 62em){.duet-breadcrumbs.footer ol{padding:20px 8px}}.duet-breadcrumbs.footer ol duet-breadcrumb[href]:hover{text-decoration:underline}.duet-breadcrumbs.footer .bottom-border--container{display:block;background:rgba(255, 255, 255, 0.2)}.duet-breadcrumbs.footer.duet-theme-turva{color:rgb(255, 255, 255);background:rgb(198, 12, 48)}";
12
12
 
13
13
  const DuetBreadcrumbs$1 = /*@__PURE__*/ proxyCustomElement(class extends H {
14
14
  constructor() {
@@ -23,6 +23,7 @@ const DuetBreadcrumbs$1 = /*@__PURE__*/ proxyCustomElement(class extends H {
23
23
  });
24
24
  this.children = undefined;
25
25
  this.theme = "";
26
+ this.variation = "header";
26
27
  }
27
28
  /**
28
29
  * Component lifecycle events.
@@ -55,12 +56,14 @@ const DuetBreadcrumbs$1 = /*@__PURE__*/ proxyCustomElement(class extends H {
55
56
  return (h(Host, null, h("nav", { "aria-label": this.breadcrumbsAriaLabel, class: {
56
57
  "duet-breadcrumbs": true,
57
58
  "duet-theme-turva": this.theme === "turva",
58
- } }, h("div", { class: "container" }, h("ol", null, this.children.map((child, index) => (h(Fragment, null, index > 0 && (h("li", { "aria-hidden": "true" }, h("duet-icon", { class: "duet-breadrumbs-arrow", size: "auto", icon: actionArrowRightSmall.svg, margin: "none", color: "currentColor" }))), h("li", { innerHTML: child.outerHTML }), h("div", { class: "hide" }, h("slot", null))))))))));
59
+ [this.variation]: true,
60
+ } }, h("div", { class: "container" }, h("ol", null, this.children.map((child, index) => (h(Fragment, null, index > 0 && (h("li", { "aria-hidden": "true" }, h("duet-icon", { class: "duet-breadrumbs-arrow", size: "auto", icon: actionArrowRightSmall.svg, margin: "none", color: "currentColor" }))), h("li", { innerHTML: child.outerHTML }), h("div", { class: "hide" }, h("slot", null)))))), h("div", { class: "bottom-border bottom-border--container" })), h("div", { class: "bottom-border bottom-border--nav" }))));
59
61
  }
60
62
  get element() { return this; }
61
63
  static get style() { return duetBreadcrumbsCss; }
62
64
  }, [1, "duet-breadcrumbs", {
63
65
  "theme": [1025],
66
+ "variation": [1],
64
67
  "children": [32]
65
68
  }]);
66
69
  function defineCustomElement$1() {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { D as DuetButton$1, d as defineCustomElement$1 } from './p-528cdd3e.js';
4
+ import { D as DuetButton$1, d as defineCustomElement$1 } from './p-f48f6476.js';
5
5
 
6
6
  const DuetButton = DuetButton$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 DuetCaption$1, d as defineCustomElement$1 } from './p-8d12a863.js';
4
+ import { D as DuetCaption$1, d as defineCustomElement$1 } from './p-fc615ca3.js';
5
5
 
6
6
  const DuetCaption = DuetCaption$1;
7
7
  const defineCustomElement = defineCustomElement$1;