@duetds/components 4.34.2 → 4.35.1

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 (264) hide show
  1. package/hydrate/index.js +386 -25
  2. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-badge.cjs.entry.js +2 -2
  4. package/lib/cjs/duet-breadcrumb.cjs.entry.js +48 -0
  5. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +68 -0
  6. package/lib/cjs/duet-button_2.cjs.entry.js +4 -3
  7. package/lib/cjs/duet-caption_4.cjs.entry.js +2 -2
  8. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  9. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  11. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  14. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-editable-table-button.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-editable-table_4.cjs.entry.js +12 -3
  17. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-modal.cjs.entry.js +15 -3
  28. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-scrollable_3.cjs.entry.js +414 -0
  34. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  42. package/lib/cjs/duet.cjs.js +2 -2
  43. package/lib/cjs/{focus-utils-b57facfe.js → focus-utils-e1efc65c.js} +1 -1
  44. package/lib/cjs/{index-e2021bf7.js → index-6128deac.js} +1 -1
  45. package/lib/cjs/loader.cjs.js +2 -2
  46. package/lib/collection/collection-manifest.json +10 -6
  47. package/lib/collection/components/duet-badge/duet-badge.js +1 -1
  48. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.css +57 -0
  49. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +131 -0
  50. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.css +63 -0
  51. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +104 -0
  52. package/lib/collection/components/duet-button/duet-button.css +22 -4
  53. package/lib/collection/components/duet-button/duet-button.js +6 -2
  54. package/lib/collection/components/duet-link/duet-link.js +1 -1
  55. package/lib/collection/components/duet-modal/duet-modal.js +33 -3
  56. package/lib/collection/components/duet-scrollable/duet-scrollable.css +83 -0
  57. package/lib/collection/components/duet-scrollable/duet-scrollable.js +240 -0
  58. package/lib/collection/components/duet-tab/duet-tab.js +63 -1
  59. package/lib/collection/components/duet-tab-group/duet-tab-group.css +12 -13
  60. package/lib/collection/components/duet-tab-group/duet-tab-group.js +101 -16
  61. package/lib/collection/components/duet-upload/duet-upload.js +32 -4
  62. package/lib/custom-elements-bundle/index.d.ts +18 -0
  63. package/lib/custom-elements-bundle/index.js +356 -29
  64. package/lib/duet/duet.esm.js +1 -1
  65. package/lib/duet/duet.js +1 -1
  66. package/lib/duet/p-00b447fe.entry.js +4 -0
  67. package/lib/duet/{p-69133107.system.entry.js → p-02f369f0.system.entry.js} +1 -1
  68. package/lib/duet/{p-d3b5d2ef.system.entry.js → p-03bb1f47.system.entry.js} +1 -1
  69. package/lib/duet/{p-c67a63cc.system.entry.js → p-0569a7ac.system.entry.js} +1 -1
  70. package/lib/duet/{p-f7f4f98a.system.entry.js → p-08e5b6ec.system.entry.js} +1 -1
  71. package/lib/duet/{p-75261615.system.entry.js → p-096c0b9e.system.entry.js} +1 -1
  72. package/lib/duet/{p-7a0a375e.system.entry.js → p-09ba1ab9.system.entry.js} +2 -2
  73. package/lib/duet/{p-ddbdac54.entry.js → p-0d9989c5.entry.js} +1 -1
  74. package/lib/duet/{p-8b01f978.system.entry.js → p-0f20c5c4.system.entry.js} +1 -1
  75. package/lib/duet/{p-a900d55b.entry.js → p-1229b08d.entry.js} +1 -1
  76. package/lib/duet/{p-2524481a.system.entry.js → p-1b0b462f.system.entry.js} +1 -1
  77. package/lib/duet/{p-f01494f9.system.entry.js → p-1b134dc3.system.entry.js} +1 -1
  78. package/lib/duet/p-1fbcd741.entry.js +4 -0
  79. package/lib/duet/{p-8d42cb7c.entry.js → p-26ab4386.entry.js} +1 -1
  80. package/lib/duet/{p-08d1abc7.entry.js → p-29d1e8dc.entry.js} +1 -1
  81. package/lib/duet/{p-4a742d83.entry.js → p-2c8d7bbb.entry.js} +1 -1
  82. package/lib/duet/{p-5c67bb73.system.entry.js → p-2cc5934d.system.entry.js} +1 -1
  83. package/lib/duet/{p-8e16057d.system.entry.js → p-2dcc9779.system.entry.js} +1 -1
  84. package/lib/duet/{p-e1c6f74b.entry.js → p-30cde172.entry.js} +1 -1
  85. package/lib/duet/{p-e0038277.system.entry.js → p-34381bd0.system.entry.js} +1 -1
  86. package/lib/duet/{p-baef2241.entry.js → p-39d4e2d4.entry.js} +1 -1
  87. package/lib/duet/{p-488addbc.entry.js → p-3cc68d7d.entry.js} +1 -1
  88. package/lib/duet/{p-e242bf98.entry.js → p-3e67d7a2.entry.js} +1 -1
  89. package/lib/duet/{p-354bf924.entry.js → p-3ea21701.entry.js} +1 -1
  90. package/lib/duet/{p-c50bbff5.entry.js → p-3f2ac2e1.entry.js} +1 -1
  91. package/lib/duet/{p-5f2fb5db.entry.js → p-3f954a67.entry.js} +1 -1
  92. package/lib/duet/{p-a52d436c.entry.js → p-41019921.entry.js} +1 -1
  93. package/lib/duet/{p-c6ba80c6.entry.js → p-47986fa6.entry.js} +1 -1
  94. package/lib/duet/{p-ee74ff67.entry.js → p-482f91b0.entry.js} +1 -1
  95. package/lib/duet/p-4ac19266.entry.js +4 -0
  96. package/lib/duet/{p-ae8401c9.system.entry.js → p-4cdfa148.system.entry.js} +1 -1
  97. package/lib/duet/{p-939bf739.system.entry.js → p-4e0cca44.system.entry.js} +1 -1
  98. package/lib/duet/{p-f6e1fb0f.system.entry.js → p-4e588759.system.entry.js} +1 -1
  99. package/lib/duet/{p-5f866721.entry.js → p-4eda81b6.entry.js} +1 -1
  100. package/lib/duet/{p-ae46a7d2.system.entry.js → p-4f77c165.system.entry.js} +1 -1
  101. package/lib/duet/{p-4d5531be.entry.js → p-58832650.entry.js} +1 -1
  102. package/lib/duet/p-638ec570.system.entry.js +4 -0
  103. package/lib/duet/{p-f3c258d8.system.entry.js → p-65d61e92.system.entry.js} +1 -1
  104. package/lib/duet/p-66ada8c2.system.entry.js +4 -0
  105. package/lib/duet/{p-ec5d0cda.entry.js → p-6994cca1.entry.js} +1 -1
  106. package/lib/duet/p-6bbe6707.entry.js +4 -0
  107. package/lib/duet/{p-62de4645.system.entry.js → p-6bc17eac.system.entry.js} +1 -1
  108. package/lib/duet/{p-9849a4ab.system.entry.js → p-73cd52c3.system.entry.js} +1 -1
  109. package/lib/duet/{p-db87c4b1.system.entry.js → p-75d53642.system.entry.js} +1 -1
  110. package/lib/duet/{p-1fff32a9.system.entry.js → p-796becd9.system.entry.js} +1 -1
  111. package/lib/duet/{p-e3973f41.system.js → p-7d3a5621.system.js} +1 -1
  112. package/lib/duet/{p-3998eed6.entry.js → p-8040cc39.entry.js} +1 -1
  113. package/lib/duet/{p-45a6838d.system.entry.js → p-821da899.system.entry.js} +1 -1
  114. package/lib/duet/{p-b70f164d.entry.js → p-85170cb2.entry.js} +1 -1
  115. package/lib/duet/{p-90e7e876.entry.js → p-8a4a55a9.entry.js} +1 -1
  116. package/lib/duet/{p-3e0a774d.entry.js → p-905e62f0.entry.js} +1 -1
  117. package/lib/duet/{p-2862054c.entry.js → p-93bd2040.entry.js} +1 -1
  118. package/lib/duet/{p-13d5fe80.system.entry.js → p-9b56c174.system.entry.js} +1 -1
  119. package/lib/duet/{p-cdaa629d.system.entry.js → p-9b7a869e.system.entry.js} +1 -1
  120. package/lib/duet/{p-9793f3d8.entry.js → p-9d1ac81f.entry.js} +1 -1
  121. package/lib/duet/p-9ee29b96.js +4 -0
  122. package/lib/duet/{p-a58f0665.system.entry.js → p-9f53bfcc.system.entry.js} +1 -1
  123. package/lib/duet/{p-0dc01111.system.entry.js → p-a13cceae.system.entry.js} +1 -1
  124. package/lib/duet/p-a28308b5.entry.js +4 -0
  125. package/lib/duet/{p-de23ae41.entry.js → p-a5082840.entry.js} +1 -1
  126. package/lib/duet/{p-5f813e15.entry.js → p-a5d1c883.entry.js} +1 -1
  127. package/lib/duet/{p-58d7f2d1.entry.js → p-a5f67f2f.entry.js} +1 -1
  128. package/lib/duet/{p-5e03b63f.system.entry.js → p-ac525a17.system.entry.js} +1 -1
  129. package/lib/duet/p-ae5596da.js +4 -0
  130. package/lib/duet/{p-b8dde0c8.system.entry.js → p-af38d5b2.system.entry.js} +1 -1
  131. package/lib/duet/{p-0e742087.system.entry.js → p-b4fd3539.system.entry.js} +1 -1
  132. package/lib/duet/{p-f9a096a9.system.entry.js → p-b63dad81.system.entry.js} +1 -1
  133. package/lib/duet/p-b9bb03cb.system.js +4 -0
  134. package/lib/duet/{p-eed6f9cc.system.entry.js → p-bae3ae1d.system.entry.js} +1 -1
  135. package/lib/duet/{p-6a8b3cf0.system.entry.js → p-bf35379f.system.entry.js} +1 -1
  136. package/lib/duet/{p-72ad7798.entry.js → p-cc916a11.entry.js} +1 -1
  137. package/lib/duet/{p-4db07868.entry.js → p-d09f2dd8.entry.js} +1 -1
  138. package/lib/duet/{p-00bf3bbb.system.entry.js → p-d87aa545.system.entry.js} +1 -1
  139. package/lib/duet/{p-3e47c910.entry.js → p-da6aa538.entry.js} +1 -1
  140. package/lib/duet/p-ddda5f80.system.js +4 -0
  141. package/lib/duet/{p-760d2226.entry.js → p-e14ab836.entry.js} +1 -1
  142. package/lib/duet/{p-582f9135.system.entry.js → p-e193d6f7.system.entry.js} +1 -1
  143. package/lib/duet/{p-3e273d8d.entry.js → p-e4ebd229.entry.js} +1 -1
  144. package/lib/duet/{p-ffd449ef.system.entry.js → p-e5224000.system.entry.js} +1 -1
  145. package/lib/duet/{p-66c35cd2.entry.js → p-ec3cf4d1.entry.js} +1 -1
  146. package/lib/duet/{p-12941c46.system.entry.js → p-edcd137c.system.entry.js} +1 -1
  147. package/lib/duet/p-ee13c2e9.system.entry.js +4 -0
  148. package/lib/duet/{p-4836f66d.entry.js → p-f1013864.entry.js} +1 -1
  149. package/lib/duet/{p-5a5e7977.entry.js → p-f10d3f3d.entry.js} +1 -1
  150. package/lib/duet/p-f863e4f8.system.entry.js +4 -0
  151. package/lib/esm/duet-alert.entry.js +1 -1
  152. package/lib/esm/duet-badge.entry.js +2 -2
  153. package/lib/esm/duet-breadcrumb.entry.js +44 -0
  154. package/lib/esm/duet-breadcrumbs.entry.js +64 -0
  155. package/lib/esm/duet-button_2.entry.js +4 -3
  156. package/lib/esm/duet-caption_4.entry.js +2 -2
  157. package/lib/esm/duet-card.entry.js +1 -1
  158. package/lib/esm/duet-checkbox.entry.js +1 -1
  159. package/lib/esm/duet-choice_2.entry.js +2 -2
  160. package/lib/esm/duet-collapsible.entry.js +1 -1
  161. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  162. package/lib/esm/duet-date-picker.entry.js +2 -2
  163. package/lib/esm/duet-divider_2.entry.js +1 -1
  164. package/lib/esm/duet-editable-table-button.entry.js +1 -1
  165. package/lib/esm/duet-editable-table_4.entry.js +12 -3
  166. package/lib/esm/duet-empty-state.entry.js +1 -1
  167. package/lib/esm/duet-fieldset.entry.js +1 -1
  168. package/lib/esm/duet-footer.entry.js +1 -1
  169. package/lib/esm/duet-grid_2.entry.js +1 -1
  170. package/lib/esm/duet-header_2.entry.js +1 -1
  171. package/lib/esm/duet-hero.entry.js +1 -1
  172. package/lib/esm/duet-icon.entry.js +1 -1
  173. package/lib/esm/duet-input_2.entry.js +1 -1
  174. package/lib/esm/duet-layout.entry.js +1 -1
  175. package/lib/esm/duet-list_2.entry.js +1 -1
  176. package/lib/esm/duet-modal.entry.js +15 -3
  177. package/lib/esm/duet-notification_2.entry.js +1 -1
  178. package/lib/esm/duet-number-input.entry.js +1 -1
  179. package/lib/esm/duet-progress.entry.js +1 -1
  180. package/lib/esm/duet-radio_2.entry.js +1 -1
  181. package/lib/esm/duet-range-slider.entry.js +1 -1
  182. package/lib/esm/duet-scrollable_3.entry.js +408 -0
  183. package/lib/esm/duet-select.entry.js +1 -1
  184. package/lib/esm/duet-step_2.entry.js +1 -1
  185. package/lib/esm/duet-textarea.entry.js +1 -1
  186. package/lib/esm/duet-toggle.entry.js +1 -1
  187. package/lib/esm/duet-tooltip.entry.js +1 -1
  188. package/lib/esm/duet-tray.entry.js +1 -1
  189. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  190. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  191. package/lib/esm/duet.js +2 -2
  192. package/lib/esm/{focus-utils-fc14cf36.js → focus-utils-5b40a8be.js} +1 -1
  193. package/lib/esm/{index-9ef5d3bc.js → index-795979f3.js} +1 -1
  194. package/lib/esm/loader.js +2 -2
  195. package/lib/esm-es5/duet-alert.entry.js +1 -1
  196. package/lib/esm-es5/duet-badge.entry.js +1 -1
  197. package/lib/esm-es5/duet-breadcrumb.entry.js +4 -0
  198. package/lib/esm-es5/duet-breadcrumbs.entry.js +4 -0
  199. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  200. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  201. package/lib/esm-es5/duet-card.entry.js +1 -1
  202. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  203. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  204. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  205. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  206. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  207. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  208. package/lib/esm-es5/duet-editable-table-button.entry.js +1 -1
  209. package/lib/esm-es5/duet-editable-table_4.entry.js +1 -1
  210. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  211. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  212. package/lib/esm-es5/duet-footer.entry.js +1 -1
  213. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  214. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  215. package/lib/esm-es5/duet-hero.entry.js +1 -1
  216. package/lib/esm-es5/duet-icon.entry.js +1 -1
  217. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  218. package/lib/esm-es5/duet-layout.entry.js +1 -1
  219. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  220. package/lib/esm-es5/duet-modal.entry.js +1 -1
  221. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  222. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  223. package/lib/esm-es5/duet-progress.entry.js +1 -1
  224. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  225. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  226. package/lib/esm-es5/duet-scrollable_3.entry.js +4 -0
  227. package/lib/esm-es5/duet-select.entry.js +1 -1
  228. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  229. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  230. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  231. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  232. package/lib/esm-es5/duet-tray.entry.js +1 -1
  233. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  234. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  235. package/lib/esm-es5/duet.js +1 -1
  236. package/lib/esm-es5/focus-utils-5b40a8be.js +4 -0
  237. package/lib/esm-es5/index-795979f3.js +4 -0
  238. package/lib/esm-es5/loader.js +1 -1
  239. package/lib/types/components/duet-badge/duet-badge.d.ts +1 -1
  240. package/lib/types/components/duet-breadcrumbs/duet-breadcrumb.d.ts +31 -0
  241. package/lib/types/components/duet-breadcrumbs/duet-breadcrumbs.d.ts +23 -0
  242. package/lib/types/components/duet-button/duet-button.d.ts +2 -1
  243. package/lib/types/components/duet-modal/duet-modal.d.ts +5 -1
  244. package/lib/types/components/duet-scrollable/duet-scrollable.d.ts +51 -0
  245. package/lib/types/components/duet-tab/duet-tab.d.ts +11 -0
  246. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +15 -0
  247. package/lib/types/components/duet-upload/duet-upload.d.ts +9 -0
  248. package/lib/types/components.d.ts +162 -1
  249. package/package.json +6 -5
  250. package/lib/cjs/duet-tab_2.cjs.entry.js +0 -213
  251. package/lib/duet/p-13bc14a6.system.js +0 -4
  252. package/lib/duet/p-30d13a27.system.js +0 -4
  253. package/lib/duet/p-60aa83c0.js +0 -4
  254. package/lib/duet/p-746b3bee.entry.js +0 -4
  255. package/lib/duet/p-9d487a0d.entry.js +0 -4
  256. package/lib/duet/p-c92b1af1.system.entry.js +0 -4
  257. package/lib/duet/p-ce566b2b.js +0 -4
  258. package/lib/duet/p-d1adeb76.entry.js +0 -4
  259. package/lib/duet/p-f2c402a9.system.entry.js +0 -4
  260. package/lib/esm/duet-tab_2.entry.js +0 -208
  261. package/lib/esm-es5/duet-tab_2.entry.js +0 -4
  262. package/lib/esm-es5/focus-utils-fc14cf36.js +0 -4
  263. package/lib/esm-es5/index-9ef5d3bc.js +0 -4
  264. package/lib/html.html-data.json +0 -4925
package/hydrate/index.js CHANGED
@@ -5824,7 +5824,7 @@ class DuetBadge {
5824
5824
  }
5825
5825
  /**
5826
5826
  * render() function
5827
- * Always the last one in the class.
5827
+ * Always the last one of the class.
5828
5828
  */
5829
5829
  render() {
5830
5830
  return (hAsync(Host, { class: { "duet-m-0": this.margin === "none" } }, hAsync("div", { class: {
@@ -5848,6 +5848,116 @@ class DuetBadge {
5848
5848
  }; }
5849
5849
  }
5850
5850
 
5851
+ const duetBreadcrumbCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-breadcrumb,*.sc-duet-breadcrumb::after,*.sc-duet-breadcrumb::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-breadcrumb-h{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*/.duet-breadcrumb.sc-duet-breadcrumb{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100%;font-size:0.875rem;color:#00294d;text-decoration:none}/*!@.duet-breadcrumb:hover*/.duet-breadcrumb.sc-duet-breadcrumb:hover{color:#004d80}/*!@.duet-breadcrumb.duet-theme-turva*/.duet-breadcrumb.duet-theme-turva.sc-duet-breadcrumb{color:#171c3a}/*!@.duet-breadcrumb.duet-theme-turva:hover*/.duet-breadcrumb.duet-theme-turva.sc-duet-breadcrumb:hover{color:#940925}/*!@.duet-breadcrumb:focus*/.duet-breadcrumb.sc-duet-breadcrumb:focus{outline:0}/*!@.duet-breadcrumb:active*/.duet-breadcrumb.sc-duet-breadcrumb:active{opacity:0.75}/*!@:host(.user-is-tabbing) .duet-breadcrumb:focus*/.user-is-tabbing.sc-duet-breadcrumb-h .duet-breadcrumb.sc-duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus*/.user-is-tabbing.sc-duet-breadcrumb-h .duet-breadcrumb.duet-theme-turva.sc-duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
5852
+
5853
+ class DuetBreadcrumb {
5854
+ constructor(hostRef) {
5855
+ registerInstance(this, hostRef);
5856
+ /**
5857
+ * Theme
5858
+ */
5859
+ this.theme = "";
5860
+ /**
5861
+ * Href
5862
+ */
5863
+ this.href = "";
5864
+ /**
5865
+ * Icon
5866
+ */
5867
+ this.icon = "";
5868
+ }
5869
+ /**
5870
+ * Component lifecycle events.
5871
+ */
5872
+ componentWillLoad() {
5873
+ inheritGlobalTheme(this);
5874
+ }
5875
+ /**
5876
+ * render() function
5877
+ * Always the last one in the class.
5878
+ */
5879
+ render() {
5880
+ return (hAsync(Host, null, hAsync("a", { class: {
5881
+ "duet-breadcrumb": true,
5882
+ "duet-theme-turva": this.theme === "turva",
5883
+ }, href: this.href, "aria-label": this.accessibleLabel }, this.icon && hAsync("duet-icon", { size: "x-small", name: this.icon, margin: "none", color: "currentColor" }), !this.icon && hAsync("slot", null))));
5884
+ }
5885
+ static get style() { return duetBreadcrumbCss; }
5886
+ static get cmpMeta() { return {
5887
+ "$flags$": 9,
5888
+ "$tagName$": "duet-breadcrumb",
5889
+ "$members$": {
5890
+ "theme": [1025],
5891
+ "href": [1025],
5892
+ "icon": [1025],
5893
+ "accessibleLabel": [1, "accessible-label"]
5894
+ },
5895
+ "$listeners$": undefined,
5896
+ "$lazyBundleId$": "-",
5897
+ "$attrsToReflect$": []
5898
+ }; }
5899
+ }
5900
+
5901
+ 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>"};
5902
+
5903
+ const duetBreadcrumbsCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-breadcrumbs,*.sc-duet-breadcrumbs::after,*.sc-duet-breadcrumbs::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-breadcrumbs-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block}/*!@.duet-breadcrumbs*/.duet-breadcrumbs.sc-duet-breadcrumbs{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 ol*/.duet-breadcrumbs.sc-duet-breadcrumbs ol.sc-duet-breadcrumbs{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start;padding:10px 16px;color:#00294d;list-style:none;background:#f3f9fc;border-bottom:1px solid #e1e3e6}@media (min-width: 62em){/*!@.duet-breadcrumbs ol*/.duet-breadcrumbs.sc-duet-breadcrumbs ol.sc-duet-breadcrumbs{padding:10px 36px}}/*!@.duet-breadcrumbs.duet-theme-turva*/.duet-breadcrumbs.duet-theme-turva.sc-duet-breadcrumbs{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-breadcrumbs.duet-theme-turva ol*/.duet-breadcrumbs.duet-theme-turva.sc-duet-breadcrumbs ol.sc-duet-breadcrumbs{color:#171c3a;background:#fcf3f4}/*!@.duet-breadcrumbs .duet-breadrumbs-arrow*/.duet-breadcrumbs.sc-duet-breadcrumbs .duet-breadrumbs-arrow.sc-duet-breadcrumbs{display:inherit;align-items:center;justify-content:center;width:0.375rem;height:0.375rem}/*!@.duet-breadcrumbs .hide*/.duet-breadcrumbs.sc-duet-breadcrumbs .hide.sc-duet-breadcrumbs{display:none}";
5904
+
5905
+ class DuetBreadcrumbs {
5906
+ constructor(hostRef) {
5907
+ registerInstance(this, hostRef);
5908
+ this.observers = [];
5909
+ this.breadcrumbsAriaLabel = getLocaleString({
5910
+ fi: "Murupolku",
5911
+ sv: "Ströbröd",
5912
+ en: "Breadcrumbs",
5913
+ });
5914
+ /**
5915
+ * Theme
5916
+ */
5917
+ this.theme = "";
5918
+ }
5919
+ /**
5920
+ * Component lifecycle events.
5921
+ */
5922
+ componentWillLoad() {
5923
+ inheritGlobalTheme(this);
5924
+ this.children = Array.from(this.element.children);
5925
+ }
5926
+ connectedCallback() {
5927
+ {
5928
+ return;
5929
+ }
5930
+ }
5931
+ disconnectedCallback() {
5932
+ {
5933
+ return;
5934
+ }
5935
+ }
5936
+ /**
5937
+ * render() function
5938
+ * Always the last one in the class.
5939
+ */
5940
+ render() {
5941
+ return (hAsync(Host, null, hAsync("nav", { "aria-label": this.breadcrumbsAriaLabel, class: {
5942
+ "duet-breadcrumbs": true,
5943
+ "duet-theme-turva": this.theme === "turva",
5944
+ } }, hAsync("ol", null, this.children.map((child, index) => (hAsync(Fragment, null, index > 0 && (hAsync("li", { "aria-hidden": "true" }, hAsync("duet-icon", { class: "duet-breadrumbs-arrow", size: "auto", icon: actionArrowRightSmall.svg, margin: "none", color: "currentColor" }))), hAsync("li", { innerHTML: child.outerHTML }), hAsync("div", { class: "hide" }, hAsync("slot", null)))))))));
5945
+ }
5946
+ get element() { return getElement(this); }
5947
+ static get style() { return duetBreadcrumbsCss; }
5948
+ static get cmpMeta() { return {
5949
+ "$flags$": 9,
5950
+ "$tagName$": "duet-breadcrumbs",
5951
+ "$members$": {
5952
+ "theme": [1025],
5953
+ "children": [32]
5954
+ },
5955
+ "$listeners$": undefined,
5956
+ "$lazyBundleId$": "-",
5957
+ "$attrsToReflect$": []
5958
+ }; }
5959
+ }
5960
+
5851
5961
  const DuetStringsExternalDefaults = {
5852
5962
  fi: "Avautuu uuteen ikkunaan",
5853
5963
  sv: "Öppnas i nytt fönster",
@@ -6222,7 +6332,7 @@ function convertToColorName(name = "", theme = "") {
6222
6332
  return colorResolution;
6223
6333
  }
6224
6334
 
6225
- const duetButtonCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-button,*.sc-duet-button::after,*.sc-duet-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-button-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}/*!@:host:last-child, :host:last-of-type*/.sc-duet-button-h:last-child,.sc-duet-button-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){/*!@:host*/.sc-duet-button-h{width:100%}}/*!@:host(.duet-small)*/.duet-small.sc-duet-button-h{margin-right:2px !important;margin-bottom:8px !important}/*!@:host(.duet-small):last-child, :host(.duet-small):last-of-type*/.duet-small.sc-duet-button-h:last-child,.duet-small.sc-duet-button-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){/*!@:host(.duet-small)*/.duet-small.sc-duet-button-h{width:auto}}/*!@:host(.duet-expand)*/.duet-expand.sc-duet-button-h{width:100% !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-button-h{margin:0 !important}/*!@:host(.duet-fixed)*/.duet-fixed.sc-duet-button-h{width:auto !important}/*!@:host(:last-child)*/.sc-duet-button-h:last-child{margin-right:0 !important}/*!@.duet-button-container*/.duet-button-container.sc-duet-button{position:relative;width:100%}/*!@.duet-button*/.duet-button.sc-duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}/*!@.duet-button.duet-p-0*/.duet-button.duet-p-0.sc-duet-button{padding:0 !important}/*!@.duet-button.duet-m-0*/.duet-button.duet-m-0.sc-duet-button{margin:0 !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only)*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).icon{padding-left:48px !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}/*!@.duet-theme-turva .duet-button*/.duet-theme-turva.sc-duet-button .duet-button.sc-duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}/*!@.duet-button .duet-button-contents*/.duet-button.sc-duet-button .duet-button-contents.sc-duet-button{position:relative;display:inline-block;margin:0 auto;pointer-events:none}/*!@.duet-button.duet-no-wrap*/.duet-button.duet-no-wrap.sc-duet-button{white-space:nowrap}/*!@.duet-button.icon*/.duet-button.icon.sc-duet-button{padding-left:52px !important}/*!@.duet-button.icon-right*/.duet-button.icon-right.sc-duet-button{padding-right:52px !important;padding-left:28px !important}/*!@.duet-button svg*/.duet-button.sc-duet-button svg.sc-duet-button{width:100%;min-width:100%;fill:currentColor}/*!@.duet-button .duet-button-icon*/.duet-button.sc-duet-button .duet-button-icon.sc-duet-button{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}/*!@.duet-button .duet-button-icon duet-icon*/.duet-button.sc-duet-button .duet-button-icon.sc-duet-button duet-icon.sc-duet-button{width:16px;height:16px}/*!@.duet-button .duet-button-icon.right*/.duet-button.sc-duet-button .duet-button-icon.right.sc-duet-button{right:-28px;left:auto}/*!@.duet-button .duet-button-icon.large*/.duet-button.sc-duet-button .duet-button-icon.large.sc-duet-button{left:-32px;width:20px;height:20px}/*!@.duet-button .duet-button-icon.large duet-icon*/.duet-button.sc-duet-button .duet-button-icon.large.sc-duet-button duet-icon.sc-duet-button{width:20px;height:20px}/*!@.duet-button .duet-button-icon.large.right*/.duet-button.sc-duet-button .duet-button-icon.large.right.sc-duet-button{right:-32px;left:auto}/*!@.duet-button .duet-button-icon.medium-small*/.duet-button.sc-duet-button .duet-button-icon.medium-small.sc-duet-button{left:-16px;width:10px;height:10px;padding-top:1px}/*!@.duet-button .duet-button-icon.medium-small duet-icon*/.duet-button.sc-duet-button .duet-button-icon.medium-small.sc-duet-button duet-icon.sc-duet-button{width:10px;height:10px}/*!@.duet-button .duet-button-icon.medium-small.right*/.duet-button.sc-duet-button .duet-button-icon.medium-small.right.sc-duet-button{right:-16px;left:auto}/*!@.duet-button .duet-button-icon.small*/.duet-button.sc-duet-button .duet-button-icon.small.sc-duet-button{left:-16px;width:7px;height:7px}/*!@.duet-button .duet-button-icon.small duet-icon*/.duet-button.sc-duet-button .duet-button-icon.small.sc-duet-button duet-icon.sc-duet-button{width:7px;height:7px}/*!@.duet-button .duet-button-icon.small.right*/.duet-button.sc-duet-button .duet-button-icon.small.right.sc-duet-button{right:-16px;left:auto}/*!@.duet-button:focus*/.duet-button.sc-duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-button:focus*/.duet-theme-turva.sc-duet-button .duet-button.sc-duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-button:active*/.duet-button.sc-duet-button:active{opacity:0.75;transition:none}/*!@.duet-button.default*/.duet-button.default.sc-duet-button{border-color:#e1e3e6}/*!@.duet-theme-turva .duet-button.default*/.duet-theme-turva.sc-duet-button .duet-button.default.sc-duet-button{color:#c60c30 !important;border-color:#e4e4e6}/*!@.duet-button.default:hover*/.duet-button.default.sc-duet-button:hover{border-color:#0077b3}/*!@.duet-theme-turva .duet-button.default:hover*/.duet-theme-turva.sc-duet-button .duet-button.default.sc-duet-button:hover{border-color:#c60c30}/*!@.duet-button.default.duet-button-negative*/.duet-button.default.duet-button-negative.sc-duet-button{background-color:white}/*!@.duet-theme-turva .duet-button.default.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.default.duet-button-negative.sc-duet-button{background-color:#e4e4e6 !important}/*!@.duet-button.default.duet-button-negative:hover*/.duet-button.default.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.default.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.default.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.primary*/.duet-button.primary.sc-duet-button{color:white !important;background:#0077b3;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.primary*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button{color:white !important;background:#c60c30;border-color:#c60c30}/*!@.duet-button.primary:hover*/.duet-button.primary.sc-duet-button:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}/*!@.duet-theme-turva .duet-button.primary:hover*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button:hover{background:#940925;border-color:#940925}/*!@.duet-button.primary:focus*/.duet-button.primary.sc-duet-button:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}/*!@.duet-theme-turva .duet-button.primary:focus*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}/*!@.duet-button.secondary*/.duet-button.secondary.sc-duet-button{color:#00294d !important;background:transparent;border-color:#00294d}/*!@.duet-theme-turva .duet-button.secondary*/.duet-theme-turva.sc-duet-button .duet-button.secondary.sc-duet-button{color:#171c3a !important;border-color:#171c3a}/*!@.duet-button.secondary:hover*/.duet-button.secondary.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.secondary:hover*/.duet-theme-turva.sc-duet-button .duet-button.secondary.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.secondary.duet-button-negative*/.duet-button.secondary.duet-button-negative.sc-duet-button{color:#e1e3e6 !important;border-color:white}/*!@.duet-theme-turva .duet-button.secondary.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.secondary.duet-button-negative.sc-duet-button{color:#e4e4e6 !important}/*!@.duet-button.secondary.duet-button-negative:hover*/.duet-button.secondary.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.secondary.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.secondary.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.negative*/.duet-button.negative.sc-duet-button{color:#00294d !important;background:white;border-color:white}/*!@.duet-theme-turva .duet-button.negative*/.duet-theme-turva.sc-duet-button .duet-button.negative.sc-duet-button{color:#171c3a !important}/*!@.duet-button.negative:hover*/.duet-button.negative.sc-duet-button:hover{color:white !important;background:transparent;border-color:white}/*!@.duet-button.negative:focus*/.duet-button.negative.sc-duet-button:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}/*!@.duet-theme-turva .duet-button.negative:focus*/.duet-theme-turva.sc-duet-button .duet-button.negative.sc-duet-button:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}/*!@.duet-button.destructive*/.duet-button.destructive.sc-duet-button{color:#de2362 !important;background:white;border-color:#de2362}/*!@.duet-theme-turva .duet-button.destructive*/.duet-theme-turva.sc-duet-button .duet-button.destructive.sc-duet-button{color:#e02a0d !important;background:white;border-color:#e02a0d}/*!@.duet-button.destructive:hover*/.duet-button.destructive.sc-duet-button:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}/*!@.duet-theme-turva .duet-button.destructive:hover*/.duet-theme-turva.sc-duet-button .duet-button.destructive.sc-duet-button:hover{color:white !important;background:#b3220a;border-color:#b3220a}/*!@.duet-button.plain*/.duet-button.plain.sc-duet-button{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}/*!@.duet-theme-turva .duet-button.plain*/.duet-theme-turva.sc-duet-button .duet-button.plain.sc-duet-button{color:#c60c30 !important;background:transparent;border-color:transparent}/*!@.duet-button.plain.icon*/.duet-button.plain.icon.sc-duet-button{padding-left:20px !important}/*!@.duet-button.plain.icon.icon-right*/.duet-button.plain.icon.icon-right.sc-duet-button{padding-right:20px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.medium*/.duet-button.plain.icon.medium.sc-duet-button{padding-left:24px !important}/*!@.duet-button.plain.icon.medium.icon-right*/.duet-button.plain.icon.medium.icon-right.sc-duet-button{padding-right:24px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.large*/.duet-button.plain.icon.large.sc-duet-button{padding-left:30px !important}/*!@.duet-button.plain.icon.large.icon-right*/.duet-button.plain.icon.large.icon-right.sc-duet-button{padding-right:30px !important;padding-left:0 !important}/*!@.duet-button.plain .duet-button-icon.left*/.duet-button.plain.sc-duet-button .duet-button-icon.left.sc-duet-button{left:-16.6666666667px !important}/*!@.duet-button.plain .duet-button-icon.left.medium*/.duet-button.plain.sc-duet-button .duet-button-icon.left.medium.sc-duet-button{left:-24px !important}/*!@.duet-button.plain .duet-button-icon.left.large*/.duet-button.plain.sc-duet-button .duet-button-icon.left.large.sc-duet-button{left:-30px !important}/*!@.duet-button.plain .duet-button-icon.right*/.duet-button.plain.sc-duet-button .duet-button-icon.right.sc-duet-button{right:-16.6666666667px !important}/*!@.duet-button.plain .duet-button-icon.right.medium*/.duet-button.plain.sc-duet-button .duet-button-icon.right.medium.sc-duet-button{right:-24px !important}/*!@.duet-button.plain .duet-button-icon.right.large*/.duet-button.plain.sc-duet-button .duet-button-icon.right.large.sc-duet-button{right:-30px !important}/*!@.duet-button.plain[disabled]*/.duet-button.plain[disabled].sc-duet-button{color:#657787 !important;background:transparent !important;border-color:transparent !important}/*!@.duet-theme-turva .duet-button.plain[disabled]*/.duet-theme-turva.sc-duet-button .duet-button.plain[disabled].sc-duet-button{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}/*!@.duet-button.plain:hover*/.duet-button.plain.sc-duet-button:hover{color:#004d80 !important;background:transparent !important}/*!@.duet-theme-turva .duet-button.plain:hover*/.duet-theme-turva.sc-duet-button .duet-button.plain.sc-duet-button:hover{color:#940925 !important}/*!@.duet-button.plain.duet-button-negative*/.duet-button.plain.duet-button-negative.sc-duet-button{color:white !important}/*!@.duet-theme-turva .duet-button.plain.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.plain.duet-button-negative.sc-duet-button{color:#e4e4e6 !important}/*!@.duet-button.plain.duet-button-negative:hover*/.duet-button.plain.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important}/*!@.duet-theme-turva .duet-button.plain.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.plain.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important}/*!@.duet-button.duet-button-icon-only*/.duet-button.duet-button-icon-only.sc-duet-button{min-width:48px;min-height:48px;padding:0 !important}/*!@.duet-button.duet-button-icon-only .duet-button-contents*/.duet-button.duet-button-icon-only.sc-duet-button .duet-button-contents.sc-duet-button{position:static}/*!@.duet-button.duet-button-icon-only .duet-button-icon.left.large,\n.duet-button.duet-button-icon-only .duet-button-icon.left.medium,\n.duet-button.duet-button-icon-only .duet-button-icon.left.small*/.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.large.sc-duet-button,.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.medium.sc-duet-button,.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.small.sc-duet-button{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}/*!@.duet-button[disabled], .duet-button[disabled]:hover, .duet-button.duet-button-negative[disabled], .duet-button.duet-button-negative[disabled]:hover*/.duet-button[disabled].sc-duet-button,.duet-button[disabled].sc-duet-button:hover,.duet-button.duet-button-negative[disabled].sc-duet-button,.duet-button.duet-button-negative[disabled].sc-duet-button:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}/*!@.duet-theme-turva .duet-button[disabled], .duet-theme-turva .duet-button[disabled]:hover, .duet-theme-turva .duet-button.duet-button-negative [disabled], .duet-theme-turva .duet-button.duet-button-negative [disabled]:hover*/.duet-theme-turva.sc-duet-button .duet-button[disabled].sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button[disabled].sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.duet-button-negative.sc-duet-button [disabled].sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.duet-button-negative.sc-duet-button [disabled].sc-duet-button:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}/*!@.duet-button-is-loading.primary*/.duet-button-is-loading.primary.sc-duet-button{color:white}/*!@.duet-button-is-loading.default*/.duet-button-is-loading.default.sc-duet-button{color:#0077b3}/*!@.duet-button-is-loading.default.duet-theme-turva*/.duet-button-is-loading.default.duet-theme-turva.sc-duet-button{color:#c60c30}/*!@.duet-button-is-loading .duet-button-contents*/.duet-button-is-loading.sc-duet-button .duet-button-contents.sc-duet-button{visibility:hidden;opacity:0}";
6335
+ const duetButtonCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-button,*.sc-duet-button::after,*.sc-duet-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-button-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}/*!@:host:last-child, :host:last-of-type*/.sc-duet-button-h:last-child,.sc-duet-button-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){/*!@:host*/.sc-duet-button-h{width:100%}}/*!@:host(.duet-small)*/.duet-small.sc-duet-button-h{margin-right:2px !important;margin-bottom:8px !important}/*!@:host(.duet-small):last-child, :host(.duet-small):last-of-type*/.duet-small.sc-duet-button-h:last-child,.duet-small.sc-duet-button-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){/*!@:host(.duet-small)*/.duet-small.sc-duet-button-h{width:auto}}/*!@:host(.duet-expand)*/.duet-expand.sc-duet-button-h{width:100% !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-button-h{margin:0 !important}/*!@:host(.duet-fixed)*/.duet-fixed.sc-duet-button-h{width:auto !important}/*!@:host(:last-child)*/.sc-duet-button-h:last-child{margin-right:0 !important}/*!@.duet-button-container*/.duet-button-container.sc-duet-button{position:relative;width:100%}/*!@.duet-button*/.duet-button.sc-duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}/*!@.duet-button.duet-p-0*/.duet-button.duet-p-0.sc-duet-button{padding:0 !important}/*!@.duet-button.duet-m-0*/.duet-button.duet-m-0.sc-duet-button{margin:0 !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only)*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).icon{padding-left:48px !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}/*!@.duet-theme-turva .duet-button*/.duet-theme-turva.sc-duet-button .duet-button.sc-duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}/*!@.duet-button .duet-button-contents*/.duet-button.sc-duet-button .duet-button-contents.sc-duet-button{position:relative;display:inline-block;margin:0 auto;pointer-events:none}/*!@.duet-button.duet-no-wrap*/.duet-button.duet-no-wrap.sc-duet-button{white-space:nowrap}/*!@.duet-button.icon*/.duet-button.icon.sc-duet-button{padding-left:52px !important}/*!@.duet-button.icon-right*/.duet-button.icon-right.sc-duet-button{padding-right:52px !important;padding-left:28px !important}/*!@.duet-button svg*/.duet-button.sc-duet-button svg.sc-duet-button{width:100%;min-width:100%;fill:currentColor}/*!@.duet-button .duet-button-icon*/.duet-button.sc-duet-button .duet-button-icon.sc-duet-button{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}/*!@.duet-button .duet-button-icon duet-icon*/.duet-button.sc-duet-button .duet-button-icon.sc-duet-button duet-icon.sc-duet-button{width:16px;height:16px}/*!@.duet-button .duet-button-icon.right*/.duet-button.sc-duet-button .duet-button-icon.right.sc-duet-button{right:-28px;left:auto}/*!@.duet-button .duet-button-icon.large*/.duet-button.sc-duet-button .duet-button-icon.large.sc-duet-button{left:-32px;width:20px;height:20px}/*!@.duet-button .duet-button-icon.large duet-icon*/.duet-button.sc-duet-button .duet-button-icon.large.sc-duet-button duet-icon.sc-duet-button{width:20px;height:20px}/*!@.duet-button .duet-button-icon.large.right*/.duet-button.sc-duet-button .duet-button-icon.large.right.sc-duet-button{right:-32px;left:auto}/*!@.duet-button .duet-button-icon.medium-small*/.duet-button.sc-duet-button .duet-button-icon.medium-small.sc-duet-button{left:-16px;width:10px;height:10px;padding-top:1px}/*!@.duet-button .duet-button-icon.medium-small duet-icon*/.duet-button.sc-duet-button .duet-button-icon.medium-small.sc-duet-button duet-icon.sc-duet-button{width:10px;height:10px}/*!@.duet-button .duet-button-icon.medium-small.right*/.duet-button.sc-duet-button .duet-button-icon.medium-small.right.sc-duet-button{right:-16px;left:auto}/*!@.duet-button .duet-button-icon.small*/.duet-button.sc-duet-button .duet-button-icon.small.sc-duet-button{left:-16px;width:7px;height:7px}/*!@.duet-button .duet-button-icon.small duet-icon*/.duet-button.sc-duet-button .duet-button-icon.small.sc-duet-button duet-icon.sc-duet-button{width:7px;height:7px}/*!@.duet-button .duet-button-icon.small.right*/.duet-button.sc-duet-button .duet-button-icon.small.right.sc-duet-button{right:-16px;left:auto}/*!@.duet-button:focus*/.duet-button.sc-duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-button:focus*/.duet-theme-turva.sc-duet-button .duet-button.sc-duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-button:active*/.duet-button.sc-duet-button:active{opacity:0.75;transition:none}/*!@.duet-button.default*/.duet-button.default.sc-duet-button{border-color:#e1e3e6}/*!@.duet-theme-turva .duet-button.default*/.duet-theme-turva.sc-duet-button .duet-button.default.sc-duet-button{color:#c60c30 !important;border-color:#e4e4e6}/*!@.duet-button.default:hover*/.duet-button.default.sc-duet-button:hover{border-color:#0077b3}/*!@.duet-theme-turva .duet-button.default:hover*/.duet-theme-turva.sc-duet-button .duet-button.default.sc-duet-button:hover{border-color:#c60c30}/*!@.duet-button.default.duet-button-negative*/.duet-button.default.duet-button-negative.sc-duet-button{background-color:white}/*!@.duet-theme-turva .duet-button.default.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.default.duet-button-negative.sc-duet-button{background-color:#e4e4e6 !important}/*!@.duet-button.default.duet-button-negative:hover*/.duet-button.default.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.default.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.default.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.primary*/.duet-button.primary.sc-duet-button{color:white !important;background:#0077b3;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.primary*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button{color:white !important;background:#c60c30;border-color:#c60c30}/*!@.duet-button.primary:hover*/.duet-button.primary.sc-duet-button:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}/*!@.duet-theme-turva .duet-button.primary:hover*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button:hover{background:#940925;border-color:#940925}/*!@.duet-button.primary:focus*/.duet-button.primary.sc-duet-button:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}/*!@.duet-theme-turva .duet-button.primary:focus*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}/*!@.duet-button.secondary*/.duet-button.secondary.sc-duet-button{color:#00294d !important;background:transparent;border-color:#00294d}/*!@.duet-theme-turva .duet-button.secondary*/.duet-theme-turva.sc-duet-button .duet-button.secondary.sc-duet-button{color:#171c3a !important;border-color:#171c3a}/*!@.duet-button.secondary:hover*/.duet-button.secondary.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.secondary:hover*/.duet-theme-turva.sc-duet-button .duet-button.secondary.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.secondary.duet-button-negative*/.duet-button.secondary.duet-button-negative.sc-duet-button{color:#e1e3e6 !important;border-color:white}/*!@.duet-theme-turva .duet-button.secondary.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.secondary.duet-button-negative.sc-duet-button{color:#e4e4e6 !important}/*!@.duet-button.secondary.duet-button-negative:hover*/.duet-button.secondary.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.secondary.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.secondary.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.negative*/.duet-button.negative.sc-duet-button{color:#00294d !important;background:white;border-color:white}/*!@.duet-theme-turva .duet-button.negative*/.duet-theme-turva.sc-duet-button .duet-button.negative.sc-duet-button{color:#171c3a !important}/*!@.duet-button.negative:hover*/.duet-button.negative.sc-duet-button:hover{color:white !important;background:transparent;border-color:white}/*!@.duet-button.negative:focus*/.duet-button.negative.sc-duet-button:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}/*!@.duet-theme-turva .duet-button.negative:focus*/.duet-theme-turva.sc-duet-button .duet-button.negative.sc-duet-button:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}/*!@.duet-button.destructive-primary*/.duet-button.destructive-primary.sc-duet-button{color:white !important;background:#de2362;border-color:#de2362}/*!@.duet-theme-turva .duet-button.destructive-primary*/.duet-theme-turva.sc-duet-button .duet-button.destructive-primary.sc-duet-button{color:white !important;background:#e02a0d;border-color:#e02a0d}/*!@.duet-button.destructive-primary:hover*/.duet-button.destructive-primary.sc-duet-button:hover{background:#b21c4e;border-color:#b21c4e;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}/*!@.duet-theme-turva .duet-button.destructive-primary:hover*/.duet-theme-turva.sc-duet-button .duet-button.destructive-primary.sc-duet-button:hover{background:#b3220a}/*!@.duet-button.destructive, .duet-button.destructive-secondary*/.duet-button.destructive.sc-duet-button,.duet-button.destructive-secondary.sc-duet-button{color:#de2362 !important;background:white;border-color:#de2362}/*!@.duet-theme-turva .duet-button.destructive, .duet-theme-turva .duet-button.destructive-secondary*/.duet-theme-turva.sc-duet-button .duet-button.destructive.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.destructive-secondary.sc-duet-button{color:#e02a0d !important;background:white;border-color:#e02a0d}/*!@.duet-button.destructive:hover, .duet-button.destructive-secondary:hover*/.duet-button.destructive.sc-duet-button:hover,.duet-button.destructive-secondary.sc-duet-button:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}/*!@.duet-theme-turva .duet-button.destructive:hover, .duet-theme-turva .duet-button.destructive-secondary:hover*/.duet-theme-turva.sc-duet-button .duet-button.destructive.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.destructive-secondary.sc-duet-button:hover{color:white !important;background:#b3220a;border-color:#b3220a}/*!@.duet-button.plain*/.duet-button.plain.sc-duet-button{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}/*!@.duet-theme-turva .duet-button.plain*/.duet-theme-turva.sc-duet-button .duet-button.plain.sc-duet-button{color:#c60c30 !important;background:transparent;border-color:transparent}/*!@.duet-button.plain.icon*/.duet-button.plain.icon.sc-duet-button{padding-left:20px !important}/*!@.duet-button.plain.icon.icon-right*/.duet-button.plain.icon.icon-right.sc-duet-button{padding-right:20px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.medium*/.duet-button.plain.icon.medium.sc-duet-button{padding-left:24px !important}/*!@.duet-button.plain.icon.medium.icon-right*/.duet-button.plain.icon.medium.icon-right.sc-duet-button{padding-right:24px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.large*/.duet-button.plain.icon.large.sc-duet-button{padding-left:30px !important}/*!@.duet-button.plain.icon.large.icon-right*/.duet-button.plain.icon.large.icon-right.sc-duet-button{padding-right:30px !important;padding-left:0 !important}/*!@.duet-button.plain .duet-button-icon.left*/.duet-button.plain.sc-duet-button .duet-button-icon.left.sc-duet-button{left:-16.6666666667px !important}/*!@.duet-button.plain .duet-button-icon.left.medium*/.duet-button.plain.sc-duet-button .duet-button-icon.left.medium.sc-duet-button{left:-24px !important}/*!@.duet-button.plain .duet-button-icon.left.large*/.duet-button.plain.sc-duet-button .duet-button-icon.left.large.sc-duet-button{left:-30px !important}/*!@.duet-button.plain .duet-button-icon.right*/.duet-button.plain.sc-duet-button .duet-button-icon.right.sc-duet-button{right:-16.6666666667px !important}/*!@.duet-button.plain .duet-button-icon.right.medium*/.duet-button.plain.sc-duet-button .duet-button-icon.right.medium.sc-duet-button{right:-24px !important}/*!@.duet-button.plain .duet-button-icon.right.large*/.duet-button.plain.sc-duet-button .duet-button-icon.right.large.sc-duet-button{right:-30px !important}/*!@.duet-button.plain[disabled]*/.duet-button.plain[disabled].sc-duet-button{color:#657787 !important;background:transparent !important;border-color:transparent !important}/*!@.duet-theme-turva .duet-button.plain[disabled]*/.duet-theme-turva.sc-duet-button .duet-button.plain[disabled].sc-duet-button{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}/*!@.duet-button.plain:hover*/.duet-button.plain.sc-duet-button:hover{color:#004d80 !important;background:transparent !important}/*!@.duet-theme-turva .duet-button.plain:hover*/.duet-theme-turva.sc-duet-button .duet-button.plain.sc-duet-button:hover{color:#940925 !important}/*!@.duet-button.plain.duet-button-negative*/.duet-button.plain.duet-button-negative.sc-duet-button{color:white !important}/*!@.duet-theme-turva .duet-button.plain.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.plain.duet-button-negative.sc-duet-button{color:#e4e4e6 !important}/*!@.duet-button.plain.duet-button-negative:hover*/.duet-button.plain.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important}/*!@.duet-theme-turva .duet-button.plain.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.plain.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important}/*!@.duet-button.duet-button-icon-only*/.duet-button.duet-button-icon-only.sc-duet-button{min-width:48px;min-height:48px;padding:0 !important}/*!@.duet-button.duet-button-icon-only .duet-button-contents*/.duet-button.duet-button-icon-only.sc-duet-button .duet-button-contents.sc-duet-button{position:static}/*!@.duet-button.duet-button-icon-only .duet-button-icon.left.large,\n.duet-button.duet-button-icon-only .duet-button-icon.left.medium,\n.duet-button.duet-button-icon-only .duet-button-icon.left.small*/.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.large.sc-duet-button,.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.medium.sc-duet-button,.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.small.sc-duet-button{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}/*!@.duet-button[disabled], .duet-button[disabled]:hover, .duet-button.duet-button-negative[disabled], .duet-button.duet-button-negative[disabled]:hover*/.duet-button[disabled].sc-duet-button,.duet-button[disabled].sc-duet-button:hover,.duet-button.duet-button-negative[disabled].sc-duet-button,.duet-button.duet-button-negative[disabled].sc-duet-button:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}/*!@.duet-theme-turva .duet-button[disabled], .duet-theme-turva .duet-button[disabled]:hover, .duet-theme-turva .duet-button.duet-button-negative [disabled], .duet-theme-turva .duet-button.duet-button-negative [disabled]:hover*/.duet-theme-turva.sc-duet-button .duet-button[disabled].sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button[disabled].sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.duet-button-negative.sc-duet-button [disabled].sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.duet-button-negative.sc-duet-button [disabled].sc-duet-button:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}/*!@.duet-button-is-loading.primary*/.duet-button-is-loading.primary.sc-duet-button{color:white}/*!@.duet-button-is-loading.default*/.duet-button-is-loading.default.sc-duet-button{color:#0077b3}/*!@.duet-button-is-loading.default.duet-theme-turva*/.duet-button-is-loading.default.duet-theme-turva.sc-duet-button{color:#c60c30}/*!@.duet-button-is-loading .duet-button-contents*/.duet-button-is-loading.sc-duet-button .duet-button-contents.sc-duet-button{visibility:hidden;opacity:0}";
6226
6336
 
6227
6337
  class DuetButton {
6228
6338
  constructor(hostRef) {
@@ -6236,6 +6346,7 @@ class DuetButton {
6236
6346
  /**
6237
6347
  * Style variation of the button.
6238
6348
  * @negative - value is deprecated and should be used in combination with negative prop in the future
6349
+ * @destructive - value is deprecated and should be replace with destructive-secondary
6239
6350
  */
6240
6351
  this.variation = "default";
6241
6352
  /**
@@ -6443,7 +6554,7 @@ class DuetButton {
6443
6554
  "duet-theme-turva": this.theme === "turva",
6444
6555
  "duet-button-negative": this.negative || this.variation === "negative",
6445
6556
  [this.variation]: true,
6446
- } }, this.url ? (hAsync("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self" }), commonChildren, this.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (hAsync("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined }), commonChildren)), this.loading && hAsync("duet-spinner", { color: "currentColor" }))));
6557
+ } }, this.url ? (hAsync("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (hAsync("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined }), commonChildren)), this.loading && hAsync("duet-spinner", { color: "currentColor" }))));
6447
6558
  }
6448
6559
  get element() { return getElement(this); }
6449
6560
  static get watchers() { return {
@@ -11697,7 +11808,7 @@ class DuetLink {
11697
11808
  "duet-link": true,
11698
11809
  "duet-link-is-external": this.external,
11699
11810
  "duet-theme-turva": this.theme === "turva",
11700
- }, target: this.external ? "_blank" : "_self", "aria-label": this.accessibleLabel, id: this.identifier, ref: el => (this.nativeLink = el), part: "duet-link" }, hAsync("slot", null), Build.isBrowser )));
11811
+ }, target: this.external ? "_blank" : "_self", "aria-label": this.accessibleLabel, id: this.identifier, ref: el => (this.nativeLink = el), part: "duet-link", rel: this.external ? "noopener" : undefined }, hAsync("slot", null), Build.isBrowser )));
11701
11812
  }
11702
11813
  static get delegatesFocus() { return true; }
11703
11814
  static get style() { return duetLinkCss; }
@@ -12080,6 +12191,10 @@ class DuetModal {
12080
12191
  * Use this property when you need to have the modal dialog initially active.
12081
12192
  */
12082
12193
  this.active = false;
12194
+ /**
12195
+ * Use this property when you want the modal to close when clicked outside of modal.
12196
+ */
12197
+ this.closeOnBlur = false;
12083
12198
  }
12084
12199
  openChanged() {
12085
12200
  if (this.open) {
@@ -12192,7 +12307,15 @@ class DuetModal {
12192
12307
  } }, hAsync(FocusGuard, { moveFocusTo: this.buttonEl }), hAsync("div", { class: {
12193
12308
  "duet-modal-inner": true,
12194
12309
  "duet-modal-large": this.size === "large",
12195
- }, role: "document" }, hAsync("div", { class: { "duet-modal": true, [this.size]: true } }, hAsync("duet-spacer", null), hAsync("div", { class: "duet-modal-close" }, hAsync("duet-button", { ref: button => (this.buttonEl = button), variation: "plain", accessibleLabel: this.accessibleCloseLabel, color: closeColor, iconSize: "large", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: ev => this.closeModal(ev), fixed: true })), hAsync("div", { class: {
12310
+ }, role: "document", onClick: e => {
12311
+ if (this.closeOnBlur) {
12312
+ this.closeModal(e);
12313
+ }
12314
+ } }, hAsync("div", { class: { "duet-modal": true, [this.size]: true }, onClick: e => {
12315
+ if (this.closeOnBlur) {
12316
+ e.stopPropagation();
12317
+ }
12318
+ } }, hAsync("duet-spacer", null), hAsync("div", { class: "duet-modal-close" }, hAsync("duet-button", { ref: button => (this.buttonEl = button), variation: "plain", accessibleLabel: this.accessibleCloseLabel, color: closeColor, iconSize: "large", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: ev => this.closeModal(ev), fixed: true })), hAsync("div", { class: {
12196
12319
  "duet-modal-body": true,
12197
12320
  "duet-modal-gutter-small": this.gutterSize === "small",
12198
12321
  "duet-modal-gutter-medium": this.gutterSize === "medium",
@@ -12220,6 +12343,7 @@ class DuetModal {
12220
12343
  "icon": [1],
12221
12344
  "color": [1],
12222
12345
  "active": [1540],
12346
+ "closeOnBlur": [1028, "close-on-blur"],
12223
12347
  "open": [32],
12224
12348
  "show": [64],
12225
12349
  "hide": [64]
@@ -13519,6 +13643,179 @@ class DuetRangeSlider {
13519
13643
  }; }
13520
13644
  }
13521
13645
 
13646
+ const duetScrollableCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-scrollable,*.sc-duet-scrollable::after,*.sc-duet-scrollable::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-scrollable-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}/*!@:host*/.sc-duet-scrollable-h{position:relative !important}/*!@:host .duet-scrollable-items*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable{display:flex}/*!@:host .duet-scrollable-items .duet-scrollable-button*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-button.sc-duet-scrollable{position:relative;flex:0 0 auto;flex-basis:40px;padding:10px;cursor:pointer}/*!@:host .duet-scrollable-items .duet-scrollable-button:active*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-button.sc-duet-scrollable:active{transform:scale(0.8)}/*!@:host .duet-scrollable-items .duet-scrollable-button--left*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-button--left.sc-duet-scrollable{left:-12px}/*!@:host .duet-scrollable-items .duet-scrollable-button--right*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-button--right.sc-duet-scrollable{right:-12px}/*!@:host .duet-scrollable-items .duet-scrollable-button--occluded*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-button--occluded.sc-duet-scrollable{display:none}/*!@:host .duet-scrollable-items .duet-scrollable-list*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-list.sc-duet-scrollable{display:flex;flex-wrap:nowrap;gap:20px;padding-top:2px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scroll-snap-type:x mandatory;scroll-behavior:smooth;scroll-margin:0 20px;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}/*!@:host .duet-scrollable-items .duet-scrollable-list::-webkit-scrollbar*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-list.sc-duet-scrollable::-webkit-scrollbar{display:none}/*!@::slotted(*)*/.sc-duet-scrollable-s>*{scroll-snap-align:center;margin-left:0;-webkit-transition:-webkit-transform 0.2s ease-in-out;transition:-webkit-transform 0.2s ease-in-out;transition:transform 0.2s ease-in-out;transition:transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out}";
13647
+
13648
+ class DuetScrollable {
13649
+ constructor(hostRef) {
13650
+ registerInstance(this, hostRef);
13651
+ /**
13652
+ * Private variables and constants index
13653
+ */
13654
+ this.currentIndex = 0;
13655
+ this.tabListElement = undefined;
13656
+ this.tabListClass = "duet-scrollable-list";
13657
+ this.tablistAtStart = true;
13658
+ this.isTabContentSmallerThanWrapper = false;
13659
+ this.tablistAtEnd = false;
13660
+ this.childrenData = {};
13661
+ this.resizeObserver = new ResizeObserver(entries => {
13662
+ var _a, _b, _c, _d;
13663
+ // otherwise, something is wrong, expecting 1 element only
13664
+ if ((entries === null || entries === void 0 ? void 0 : entries.length) === 1) {
13665
+ const currentWidth = (_b = (_a = entries[0]) === null || _a === void 0 ? void 0 : _a.target) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width;
13666
+ const scrollWidth = (_d = (_c = entries[0]) === null || _c === void 0 ? void 0 : _c.target) === null || _d === void 0 ? void 0 : _d.scrollWidth;
13667
+ // in order to avoid state "jumping" on the boundary condition we add a few pixels to the comparison
13668
+ this.isTabContentSmallerThanWrapper = scrollWidth > currentWidth + 5;
13669
+ }
13670
+ });
13671
+ /**
13672
+ * Theme of duet-tab-scrollable. When used this will override the color setting and
13673
+ * use "primary" or "primary-turva" as the color depending on which theme
13674
+ * is chosen.
13675
+ */
13676
+ this.theme = "";
13677
+ /**
13678
+ * Optional identifier to add to buttons in the tab group
13679
+ */
13680
+ this.identifier = "";
13681
+ /**
13682
+ * Selected element
13683
+ */
13684
+ this.selected = 0;
13685
+ }
13686
+ watchPropHandler(newValue) {
13687
+ this.scrollToTab(newValue, "center");
13688
+ }
13689
+ /**
13690
+ * Component lifecycle events.
13691
+ */
13692
+ componentWillLoad() {
13693
+ inheritGlobalTheme(this);
13694
+ const slotted = this.host.children;
13695
+ this.childrenData = { hasChildren: slotted && slotted.length > 0, numberOfChildren: slotted && slotted.length };
13696
+ }
13697
+ componentDidLoad() {
13698
+ this.resizeObserver.observe(this.tabListElement);
13699
+ }
13700
+ disconnectedCallback() {
13701
+ this.resizeObserver.disconnect();
13702
+ }
13703
+ /**
13704
+ * Private methods.
13705
+ */
13706
+ getLastVisibleElement() {
13707
+ const clientWidth = this.tabListElement.clientWidth;
13708
+ const xValues = Array.from(this.host.querySelectorAll("button")).findIndex(element => element.getBoundingClientRect().x > clientWidth);
13709
+ return xValues;
13710
+ }
13711
+ getFirstVisibleElement() {
13712
+ const buttonCollection = this.host.querySelectorAll("button");
13713
+ // reverse the array because we want the first invisible element form the middle, not the first in the list
13714
+ const arrayOfXValues = Array.from(buttonCollection).map(el => el.getBoundingClientRect().x - el.getBoundingClientRect().width);
13715
+ const xValues = arrayOfXValues.findIndex(element => {
13716
+ return element > 0;
13717
+ });
13718
+ return xValues;
13719
+ }
13720
+ updateScrollButtons(container = this.tabListElement) {
13721
+ if (container.scrollLeft <= 0) {
13722
+ this.tablistAtStart = true;
13723
+ }
13724
+ else if (container.scrollLeft > 0) {
13725
+ this.tablistAtStart = false;
13726
+ }
13727
+ if (container.clientWidth + container.scrollLeft + 10 >= container.scrollWidth) {
13728
+ this.tablistAtEnd = true;
13729
+ }
13730
+ else if (container.clientWidth + container.scrollLeft + 10 < container.scrollWidth) {
13731
+ this.tablistAtEnd = false;
13732
+ }
13733
+ }
13734
+ scrollToTab(index = this.currentIndex, inline) {
13735
+ if (!this.childrenData.hasChildren) {
13736
+ return;
13737
+ }
13738
+ if (index + 1 >= this.childrenData.numberOfChildren) {
13739
+ index = this.childrenData.numberOfChildren - 1;
13740
+ }
13741
+ if (index < 0) {
13742
+ index = 0;
13743
+ }
13744
+ const buttons = this.host.querySelectorAll("button");
13745
+ // store previous position
13746
+ let prevPosition = buttons[0].getBoundingClientRect().x;
13747
+ // iterations to run
13748
+ let ticksWhereScrollDidNotHappen = 5;
13749
+ const getAnimationFrame = () => {
13750
+ // if we get the same value enter the logic loop
13751
+ if (buttons[0].getBoundingClientRect().x === prevPosition) {
13752
+ ticksWhereScrollDidNotHappen--;
13753
+ // When iteration is not complete run the calculation again
13754
+ if (ticksWhereScrollDidNotHappen !== 0) {
13755
+ window.requestAnimationFrame(getAnimationFrame);
13756
+ return;
13757
+ }
13758
+ this.updateScrollButtons();
13759
+ }
13760
+ else {
13761
+ window.requestAnimationFrame(getAnimationFrame);
13762
+ prevPosition = buttons[0].getBoundingClientRect().x;
13763
+ }
13764
+ };
13765
+ buttons[index].scrollIntoView({ behavior: "smooth", inline });
13766
+ window.requestAnimationFrame(getAnimationFrame);
13767
+ }
13768
+ scrollLeft() {
13769
+ this.tablistAtEnd = false;
13770
+ const first = this.getFirstVisibleElement() - 1;
13771
+ this.scrollToTab(first, "center");
13772
+ }
13773
+ scrollRight() {
13774
+ this.tablistAtStart = false;
13775
+ const last = this.getLastVisibleElement() + 1;
13776
+ this.scrollToTab(last, "center");
13777
+ }
13778
+ /**
13779
+ * render() function
13780
+ * Always the last one in the class.
13781
+ */
13782
+ render() {
13783
+ return (hAsync(Host, { class: {
13784
+ "duet-theme-turva": this.theme === "turva",
13785
+ "duet-theme-default": this.theme === "default",
13786
+ } }, hAsync("div", { class: "duet-scrollable-items" }, hAsync("button", { part: `${this.identifier}-button-left`, "aria-hidden": "true", class: {
13787
+ "duet-scrollable-button": true,
13788
+ "duet-scrollable-button--left": true,
13789
+ "duet-scrollable-button--occluded": !this.isTabContentSmallerThanWrapper,
13790
+ }, onClick: () => this.scrollLeft(), disabled: this.tablistAtStart, tabindex: "-1" }, hAsync("duet-icon", { name: "action-arrow-left-small", size: "small", margin: "none" })), hAsync("div", { class: this.tabListClass, onScroll: () => this.updateScrollButtons(), ref: element => (this.tabListElement = element) }, hAsync("slot", null)), hAsync("button", { part: `${this.identifier}-button-right`, "aria-hidden": "true", class: {
13791
+ "duet-scrollable-button": true,
13792
+ "duet-scrollable-button--right": true,
13793
+ "duet-scrollable-button--occluded": !this.isTabContentSmallerThanWrapper,
13794
+ }, onClick: () => this.scrollRight(), disabled: this.tablistAtEnd, tabindex: "-1" }, hAsync("duet-icon", { name: "action-arrow-right-small", size: "small", margin: "none" })))));
13795
+ }
13796
+ get host() { return getElement(this); }
13797
+ static get watchers() { return {
13798
+ "selected": ["watchPropHandler"]
13799
+ }; }
13800
+ static get style() { return duetScrollableCss; }
13801
+ static get cmpMeta() { return {
13802
+ "$flags$": 9,
13803
+ "$tagName$": "duet-scrollable",
13804
+ "$members$": {
13805
+ "theme": [1025],
13806
+ "identifier": [1],
13807
+ "selected": [1026],
13808
+ "tablistAtStart": [32],
13809
+ "isTabContentSmallerThanWrapper": [32],
13810
+ "tablistAtEnd": [32],
13811
+ "childrenData": [32]
13812
+ },
13813
+ "$listeners$": undefined,
13814
+ "$lazyBundleId$": "-",
13815
+ "$attrsToReflect$": []
13816
+ }; }
13817
+ }
13818
+
13522
13819
  const duetSelectCss = "@charset \"UTF-8\";*.sc-duet-select,*.sc-duet-select::after,*.sc-duet-select::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-select-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;width:100%;max-width:100%;vertical-align:bottom}.sc-duet-select-h:last-child,.sc-duet-select-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-select-h{width:calc(50% - 16px - 3px)}.duet-expand.sc-duet-select-h{width:100% !important}}.duet-m-0.sc-duet-select-h{margin:0 !important}duet-tooltip.sc-duet-select{position:absolute;top:12px;right:0}@media (min-width: 48em){duet-tooltip.sc-duet-select{position:relative;top:4px;right:auto}}.duet-select-placeholder.sc-duet-select{position:absolute;top:-9px;left:9px;z-index:200;display:block;width:auto;max-width:60%;padding:0 0.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:white}.duet-select-container.sc-duet-select{position:relative;width:100%}.duet-select-wrapper.sc-duet-select{position:relative;width:100%;padding:15px 14px !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.25}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-select-wrapper.sc-duet-select::after{content:\"  \"}.duet-select-wrapper.sc-duet-select select.sc-duet-select{position:absolute;top:0;right:0;bottom:0;left:0;z-index:200;width:100%;height:100%;padding:0;margin:0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;cursor:pointer;border:0;outline:none;opacity:0}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{border-color:#909599;box-shadow:0 0 0 1px #909599}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{border-color:#747475;box-shadow:0 0 0 1px #747475}.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #e02a0d}.duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{border-color:#0077b3;outline:0;box-shadow:0 0 0 1px #0077b3;transition:none}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{border-color:#171c3a;box-shadow:0 0 0 1px #171c3a}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#171c3a}.duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#0077b3}.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #e02a0d}.duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select{cursor:default !important}.duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select+.duet-select.sc-duet-select{color:#00294d !important;cursor:default !important;background:#f5f8fa !important;border-color:#f5f8fa !important;box-shadow:none !important;opacity:1 !important;-webkit-text-fill-color:#00294d !important}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select+.duet-select.sc-duet-select{color:#171c3a !important;background:#f5f5f7 !important;border-color:#f5f5f7 !important;-webkit-text-fill-color:#171c3a !important}.duet-select.sc-duet-select{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:block;width:100%;min-width:8rem;padding:12px 14px !important;padding-right:48px !important;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.5;color:#00294d;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:white;border:1px solid #909599;border-radius:4px;transition:150ms ease}.has-error.sc-duet-select .duet-select.sc-duet-select{border-color:#de2362 !important}.has-error.sc-duet-select .duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#de2362 !important}.duet-theme-turva.has-error.sc-duet-select .duet-select.sc-duet-select{border-color:#e02a0d !important}.duet-theme-turva.has-error.sc-duet-select .duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#e02a0d !important}.duet-theme-turva.sc-duet-select .duet-select.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#747475}.duet-select.sc-duet-select svg.sc-duet-select{position:absolute;top:50%;right:16px;z-index:200;width:20px;height:20px;color:#00294d;pointer-events:none;transform:translateY(-50%)}.duet-theme-turva.sc-duet-select .duet-select.sc-duet-select svg.sc-duet-select{color:#171c3a}.duet-select-help.sc-duet-select{display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:#657787;border-radius:4px}.duet-select-help.sc-duet-select span.sc-duet-select{display:block;margin-top:8px}.duet-theme-turva.sc-duet-select .duet-select-help.sc-duet-select{color:#747475}.has-error.sc-duet-select .duet-select-help.sc-duet-select{color:#de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-help.sc-duet-select{color:#e02a0d}.duet-label-hidden.sc-duet-select duet-label.sc-duet-select{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}";
13523
13820
 
13524
13821
  function isOptionGroup(item) {
@@ -14103,6 +14400,18 @@ const duetTabCss = ".sc-duet-tab-h{box-sizing:border-box;padding:0;margin:0;back
14103
14400
  class DuetTab {
14104
14401
  constructor(hostRef) {
14105
14402
  registerInstance(this, hostRef);
14403
+ /**
14404
+ * Defaults for AccessibleLabel
14405
+ * @default null
14406
+ */
14407
+ this.accessibleDescriptionDefault = null;
14408
+ /**
14409
+ * String for AccessibleLabel
14410
+ * @default null
14411
+ */
14412
+ this.accessibleDescription = this.accessibleDescriptionDefault
14413
+ ? getLocaleString(this.accessibleDescriptionDefault)
14414
+ : null;
14106
14415
  }
14107
14416
  /**
14108
14417
  * render() function
@@ -14116,7 +14425,9 @@ class DuetTab {
14116
14425
  "$tagName$": "duet-tab",
14117
14426
  "$members$": {
14118
14427
  "label": [513],
14119
- "selected": [516]
14428
+ "selected": [516],
14429
+ "accessibleDescriptionDefault": [1, "accessible-description-defaults"],
14430
+ "accessibleDescription": [1, "accessible-description"]
14120
14431
  },
14121
14432
  "$listeners$": undefined,
14122
14433
  "$lazyBundleId$": "-",
@@ -14124,7 +14435,7 @@ class DuetTab {
14124
14435
  }; }
14125
14436
  }
14126
14437
 
14127
- const duetTabGroupCss = "*.sc-duet-tab-group,*.sc-duet-tab-group::after,*.sc-duet-tab-group::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-tab-group-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;display:block;width:100%}.duet-tab-group-tabs.sc-duet-tab-group{margin-bottom:28px !important;display:block;width:100%;max-width:100%;padding-top:2px;list-style:none}.duet-tab-group-tabs.duet-m-0.sc-duet-tab-group{margin:0 !important}.duet-tab-group-tabs.duet-tab-group-hidden.sc-duet-tab-group{display:none}@media (min-width: 36em){.duet-tab-group-tabs.duet-tab-group-hidden.sc-duet-tab-group{display:block}}.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom:1px solid #e1e3e6}.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom-color:#e4e4e6 !important}@media (min-width: 36em){duet-select.sc-duet-tab-group{display:none !important}}.duet-tab-button.sc-duet-tab-group{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px;margin-top:-2px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.1;color:#00294d !important;text-align:left;text-decoration:none;cursor:pointer;background:white;border:2px solid #e1e3e6;border-style:solid;border-radius:0;transition:150ms ease}.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}.duet-tab-button.duet-m-0.sc-duet-tab-group{margin:0 !important}.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a !important;border-color:#e4e4e6}.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}@media (min-width: 36em){.duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;margin-left:-2px;border-right:2px solid #e1e3e6;border-radius:0}}.duet-tab-button.sc-duet-tab-group:hover{z-index:200;border-color:#909599}.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:hover{border-color:#747475 !important}.duet-tab-button.sc-duet-tab-group:active{opacity:0.75;transition:none}.duet-tab-button.selected.sc-duet-tab-group{z-index:201;color:white !important;background:#00294d;border-color:#00294d;outline:0;box-shadow:none !important}.duet-theme-turva.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:white !important;background-color:#171c3a;border-color:#171c3a !important}.duet-tab-button.sc-duet-tab-group:focus{z-index:200;outline:0}.user-is-tabbing.sc-duet-tab-group-h .duet-tab-button.sc-duet-tab-group:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3 !important}.user-is-tabbing.sc-duet-tab-group-h .duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a !important}.duet-tab-button.sc-duet-tab-group:first-child{border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){.duet-tab-button.sc-duet-tab-group:first-child{border-top-right-radius:0;border-bottom-left-radius:4px}}.duet-tab-button.sc-duet-tab-group:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}@media (min-width: 36em){.duet-tab-button.sc-duet-tab-group:last-child{border-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}}.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;padding-right:0;padding-left:0;border:0;border-radius:0;transition:none}.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group+.duet-tab-button.sc-duet-tab-group{margin-left:36px}.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:#0077b3 !important;background:white;border-bottom:3px solid #0077b3}.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:#c60c30 !important;border-bottom-color:#c60c30 !important}.duet-tab-group-content.sc-duet-tab-group{position:relative;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left}.duet-theme-turva.sc-duet-tab-group .duet-tab-group-content.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}";
14438
+ const duetTabGroupCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-tab-group,*.sc-duet-tab-group::after,*.sc-duet-tab-group::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-tab-group-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;display:block;width:100%}/*!@.duet-tab-group-tabs*/.duet-tab-group-tabs.sc-duet-tab-group{margin-bottom:28px !important;display:block;width:100%;max-width:100%;padding-top:2px;list-style:none}/*!@.duet-tab-group-tabs.duet-m-0*/.duet-tab-group-tabs.duet-m-0.sc-duet-tab-group{margin:0 !important}/*!@.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden*/.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden.sc-duet-tab-group{display:none}@media (min-width: 36em){/*!@.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden*/.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden.sc-duet-tab-group{display:block}}/*!@.duet-tab-variation-plain .duet-tab-group-tabs*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom:1px solid #e1e3e6}/*!@.duet-theme-turva.duet-tab-variation-plain .duet-tab-group-tabs*/.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom-color:#e4e4e6}@media (min-width: 36em){/*!@duet-select*/duet-select.sc-duet-tab-group{display:none !important}}/*!@.duet-tab-button*/.duet-tab-button.sc-duet-tab-group{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px;margin-top:-2px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.1;color:#00294d;text-align:left;text-decoration:none;cursor:pointer;background:white;border:2px solid #e1e3e6;border-radius:0;transition:150ms ease}/*!@.duet-tab-button.duet-p-0*/.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}/*!@.duet-tab-button.duet-m-0*/.duet-tab-button.duet-m-0.sc-duet-tab-group{margin:0 !important}/*!@.duet-theme-turva .duet-tab-button*/.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#e4e4e6}/*!@.duet-tab-button.duet-p-0*/.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}@media (min-width: 36em){/*!@.duet-tab-button*/.duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;margin-left:-2px;border-right:2px solid #e1e3e6;border-radius:0}}/*!@.duet-tab-button:hover*/.duet-tab-button.sc-duet-tab-group:hover{z-index:200;border-color:#909599}/*!@.duet-theme-turva .duet-tab-button:hover*/.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:hover{border-color:#747475}/*!@.duet-tab-button:active*/.duet-tab-button.sc-duet-tab-group:active{opacity:0.75;transition:none}/*!@.duet-tab-button.selected*/.duet-tab-button.selected.sc-duet-tab-group{z-index:201;color:white;background:#00294d;border-color:#00294d;outline:0;box-shadow:none !important}/*!@.duet-theme-turva .duet-tab-button.selected*/.duet-theme-turva.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:white;background-color:#171c3a;border-color:#171c3a}/*!@.duet-tab-button:focus*/.duet-tab-button.sc-duet-tab-group:focus{z-index:200;outline:0}/*!@:host(.user-is-tabbing) .duet-tab-button:focus*/.user-is-tabbing.sc-duet-tab-group-h .duet-tab-button.sc-duet-tab-group:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3 !important}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-tab-button:focus*/.user-is-tabbing.sc-duet-tab-group-h .duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a !important}/*!@.duet-tab-button:first-child*/.duet-tab-button.sc-duet-tab-group:first-child{border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){/*!@.duet-tab-button:first-child*/.duet-tab-button.sc-duet-tab-group:first-child{border-top-right-radius:0;border-bottom-left-radius:4px}}/*!@.duet-tab-button:last-child*/.duet-tab-button.sc-duet-tab-group:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}@media (min-width: 36em){/*!@.duet-tab-button:last-child*/.duet-tab-button.sc-duet-tab-group:last-child{border-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}}/*!@.duet-tab-variation-plain .duet-tab-button*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;padding-right:0;padding-left:0;border:0;border-radius:0;transition:none}/*!@.duet-tab-variation-plain .duet-tab-button + .duet-tab-button*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group+.duet-tab-button.sc-duet-tab-group{margin-left:36px}/*!@.duet-tab-variation-plain .duet-tab-button.selected*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:#0077b3;background:white;border-bottom:3px solid #0077b3}/*!@.duet-theme-turva.duet-tab-variation-plain .duet-tab-button.selected*/.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:#c60c30;border-bottom-color:#c60c30}/*!@.duet-tab-group-content*/.duet-tab-group-content.sc-duet-tab-group{position:relative;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left}/*!@.duet-theme-turva .duet-tab-group-content*/.duet-theme-turva.sc-duet-tab-group .duet-tab-group-content.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}";
14128
14439
 
14129
14440
  class DuetTabGroup {
14130
14441
  constructor(hostRef) {
@@ -14142,6 +14453,15 @@ class DuetTabGroup {
14142
14453
  * Theme of the component.
14143
14454
  */
14144
14455
  this.theme = "";
14456
+ /**
14457
+ * Controls whether the tab-group should scroll (by inflection this will disable collapsing to select box on small screens),
14458
+ * if this is a number instead of true it will be used as "amount of items to scroll"
14459
+ */
14460
+ this.scrolls = false;
14461
+ /**
14462
+ * Whether the tab-group collapses to a select dropwdown in minor breakpoints
14463
+ */
14464
+ this.collapses = true;
14145
14465
  /**
14146
14466
  * Style variation of the tab group.
14147
14467
  */
@@ -14171,6 +14491,10 @@ class DuetTabGroup {
14171
14491
  * Determines whether the label for the select element shown on mobile is visually hidden.
14172
14492
  */
14173
14493
  this.labelHidden = true;
14494
+ /**
14495
+ * Optional identifier to add to buttons in the tab group
14496
+ */
14497
+ this.identifier = this.id;
14174
14498
  /**
14175
14499
  * Controls the margin of the component.
14176
14500
  */
@@ -14196,12 +14520,18 @@ class DuetTabGroup {
14196
14520
  button.focus();
14197
14521
  }
14198
14522
  };
14199
- this.renderTab = (tab, index) => {
14200
- return (hAsync("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": tab.selected ? "true" : "false", type: "button", class: {
14201
- "duet-p-0": this.padding === "none",
14202
- "duet-tab-button": true,
14203
- selected: tab.selected,
14204
- }, onClick: () => this.openTab(index), onKeyDown: ev => this.handleKeyDown(ev) }, tab.label));
14523
+ this.renderTab = () => {
14524
+ const renderedTabs = this.tabs.map((element, index) => {
14525
+ return (hAsync("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), part: `${this.identifier}-button`, type: "button", class: {
14526
+ "duet-p-0": this.padding === "none",
14527
+ "duet-tab-button": true,
14528
+ selected: element.selected,
14529
+ }, onClick: () => this.openTab(index), onKeyDown: ev => this.handleKeyDown(ev) }, element.label));
14530
+ });
14531
+ if (this.scrolls) {
14532
+ return (hAsync("duet-scrollable", { selected: this.selected, identifier: this.identifier }, renderedTabs));
14533
+ }
14534
+ return renderedTabs;
14205
14535
  };
14206
14536
  }
14207
14537
  /**
@@ -14220,7 +14550,7 @@ class DuetTabGroup {
14220
14550
  subtree: true,
14221
14551
  });
14222
14552
  }
14223
- this.updateTabs();
14553
+ await this.updateTabs();
14224
14554
  }
14225
14555
  disconnectedCallback() {
14226
14556
  if (this.mutationO) {
@@ -14261,19 +14591,27 @@ class DuetTabGroup {
14261
14591
  /**
14262
14592
  * Local methods.
14263
14593
  */
14594
+ getTabs() {
14595
+ const allTabs = Array.from(this.element.querySelectorAll("duet-tab"));
14596
+ const localTabs = allTabs.filter(tab => tab.closest("duet-tab-group") === this.element);
14597
+ if (localTabs.length === 0) {
14598
+ throw new Error("[duet-tabs] Must have at least one tab");
14599
+ }
14600
+ // filter out any nested tabs
14601
+ return localTabs;
14602
+ }
14264
14603
  getButtonId(index) {
14265
14604
  return `${this.id}-button-${index}`;
14266
14605
  }
14267
14606
  getTabId(index) {
14268
14607
  return `${this.id}-tab-${index}`;
14269
14608
  }
14609
+ getAccessibleDescription(index) {
14610
+ const description = this.tabs[index].getAttribute("accessible-description") || null;
14611
+ return description;
14612
+ }
14270
14613
  async updateTabs() {
14271
- const allTabs = Array.from(this.element.querySelectorAll("duet-tab"));
14272
- // filter out any nested tabs
14273
- this.tabs = allTabs.filter(tab => tab.closest("duet-tab-group") === this.element);
14274
- if (this.tabs.length === 0) {
14275
- throw new Error("[duet-tabs] Must have at least one tab");
14276
- }
14614
+ this.tabs = this.getTabs();
14277
14615
  this.tabs.forEach((tab, index) => {
14278
14616
  tab.id = this.getTabId(index);
14279
14617
  tab.setAttribute("aria-labelledby", this.getButtonId(index));
@@ -14281,6 +14619,7 @@ class DuetTabGroup {
14281
14619
  this.selected = index;
14282
14620
  }
14283
14621
  });
14622
+ return;
14284
14623
  }
14285
14624
  /**
14286
14625
  * render() function
@@ -14291,26 +14630,32 @@ class DuetTabGroup {
14291
14630
  "duet-tab-group": true,
14292
14631
  "duet-theme-turva": this.theme === "turva",
14293
14632
  [`duet-tab-variation-${this.variation}`]: true,
14294
- } }, this.tabs.length > 3 && (hAsync("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) => {
14633
+ "duet-tab-group-scrolls": this.scrolls,
14634
+ "duet-tab-group-collapses": this.collapses,
14635
+ } }, this.tabs.length > 3 && this.collapses && (hAsync("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) => {
14295
14636
  return { label: tab.label, value: index.toString() };
14296
14637
  }) })), hAsync("div", { role: "tablist", class: {
14297
14638
  "duet-m-0": this.margin === "none",
14298
14639
  "duet-tab-group-tabs": true,
14299
14640
  "duet-tab-group-hidden": this.tabs.length > 3,
14300
- } }, this.tabs.map(this.renderTab)), hAsync("div", { class: { "duet-tab-group-content": true, "duet-m-0": this.margin === "none" } }, hAsync("slot", null))));
14641
+ "duet-tab-group-collapses": this.collapses,
14642
+ } }, this.renderTab()), hAsync("div", { class: { "duet-tab-group-content": true, "duet-m-0": this.margin === "none" } }, hAsync("slot", null))));
14301
14643
  }
14302
14644
  get element() { return getElement(this); }
14303
14645
  static get style() { return duetTabGroupCss; }
14304
14646
  static get cmpMeta() { return {
14305
- "$flags$": 6,
14647
+ "$flags$": 9,
14306
14648
  "$tagName$": "duet-tab-group",
14307
14649
  "$members$": {
14308
14650
  "theme": [1025],
14651
+ "scrolls": [4],
14652
+ "collapses": [4],
14309
14653
  "variation": [1],
14310
14654
  "language": [1025],
14311
14655
  "labelDefaults": [1, "label-default"],
14312
14656
  "label": [1],
14313
14657
  "labelHidden": [4, "label-hidden"],
14658
+ "identifier": [1],
14314
14659
  "margin": [1],
14315
14660
  "padding": [1],
14316
14661
  "tabs": [32],
@@ -15512,6 +15857,9 @@ const duetUploadCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-upload,*.sc-duet-
15512
15857
  * @slot header - named slot - to place content after description / caption
15513
15858
  * @slot fileheader - named slot - to place content above "filelist" (only displayed when "filelist" contains items)
15514
15859
  * @slot filefooter - named slot - to place content below "filelist" (only displayed when "filelist" contains items)
15860
+ * @part ${this.identifier}-empty-state : duet-upload-empty-state - named part - can be used to style the empty notification area or hide it completely
15861
+ * @part ${this.identifier}-editable-table : duet-upload-editable-table - named part - can be used to style the editable-table
15862
+ * @part ${this.identifier}-error-notification : duet-upload-error-notification - named part - can be used to style any error notifications occurring internally
15515
15863
  */
15516
15864
  class DuetUpload {
15517
15865
  constructor(hostRef) {
@@ -16244,6 +16592,15 @@ class DuetUpload {
16244
16592
  this.nativeInput.click();
16245
16593
  return;
16246
16594
  }
16595
+ /**
16596
+ * Method for forcing a render of the upload list, element.files can be changed externally
16597
+ * But it will only rerender on a new Map or a top Level change - this can be used to update
16598
+ * the tabular data if the automatic re-render is no sufficient
16599
+ */
16600
+ async refresh() {
16601
+ this.kick();
16602
+ await this.setFocus();
16603
+ }
16247
16604
  /**
16248
16605
  * Get list of files, divided in errors and valid sections
16249
16606
  */
@@ -16268,11 +16625,11 @@ class DuetUpload {
16268
16625
  let caption = this.description.replace(/{maxfiles}/g, this.maxFiles.toString());
16269
16626
  caption = caption.replace(/{maxbytes}/g, `${Math.floor(this.maxBytes / 1024 / 1024)} MB`);
16270
16627
  caption = caption.replace(/{filetypes}/g, this.allowedExtensions.split(",").join(", "));
16271
- return (hAsync(Host, { class: { "duet-m-0": this.margin === "none" } }, hAsync("duet-fieldset", { label: this.label, caption: caption }, hAsync("slot", { name: "header" }), !this.files.size && (hAsync("duet-label", { theme: this.theme === "turva" ? "turva" : "default", size: "small", class: {
16628
+ return (hAsync(Host, { class: { "duet-m-0": this.margin === "none" } }, hAsync("duet-fieldset", { label: this.label, caption: caption }, hAsync("slot", { name: "header" }), !this.files.size && (hAsync("duet-label", { part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", theme: this.theme === "turva" ? "turva" : "default", size: "small", class: {
16272
16629
  "duet-upload-filelist-empty": !this.files.size,
16273
16630
  "duet-upload-filelist": true,
16274
16631
  "duet-upload-filelist-filled": this.files.size,
16275
- }, id: this.labelId, for: identifier }, this.fileListEmpty)), !!this.files.size && hAsync("slot", { name: "fileheader" }), !!this.files.size && (hAsync("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 && (hAsync("duet-editable-table", { "aria-live": "polite", "aria-relevant": "removals", accessibleRole: "log", id: this.editableTableId, groups: this.groups, actions: this.actions, hideGroups: this.hideGroups, alignment: this.alignment, items: this.convertToDuetEditableTableItems() })), !!this.files.size && hAsync("slot", { name: "filefooter" }), hAsync("duet-spacer", { size: "large" }), !this.hideButton && (hAsync("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" }, this.buttonLabel)), hAsync("duet-spacer", { size: "medium" }), (this.fileMaxReached || this.bytesMaxReached) && (hAsync("duet-alert", null, this.fileMaxReached && getI18nError("duet-upload-301"), this.bytesMaxReached && getI18nError("duet-upload-202"))), hAsync("duet-spacer", { size: "medium" }), hAsync("duet-visually-hidden", null, hAsync("input", { ref: input => {
16632
+ }, id: this.labelId, for: identifier }, this.fileListEmpty)), !!this.files.size && hAsync("slot", { name: "fileheader" }), !!this.files.size && (hAsync("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 && (hAsync("duet-editable-table", { part: this.identifier ? `${this.identifier}-editable-table` : "duet-upload-editable-table", "aria-live": "polite", "aria-relevant": "removals", accessibleRole: "log", id: this.editableTableId, groups: this.groups, actions: this.actions, hideGroups: this.hideGroups, alignment: this.alignment, items: this.convertToDuetEditableTableItems() })), !!this.files.size && hAsync("slot", { name: "filefooter" }), hAsync("duet-spacer", { size: "large" }), !this.hideButton && (hAsync("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)), hAsync("duet-spacer", { size: "medium" }), (this.fileMaxReached || this.bytesMaxReached) && (hAsync("duet-alert", { part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301"), this.bytesMaxReached && getI18nError("duet-upload-202"))), hAsync("duet-spacer", { size: "medium" }), hAsync("duet-visually-hidden", null, hAsync("input", { ref: input => {
16276
16633
  this.nativeInput = input;
16277
16634
  }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
16278
16635
  "duet-upload": true,
@@ -16331,6 +16688,7 @@ class DuetUpload {
16331
16688
  "tick": [32],
16332
16689
  "setFocus": [64],
16333
16690
  "upload": [64],
16691
+ "refresh": [64],
16334
16692
  "getFiles": [64],
16335
16693
  "updateValue": [64]
16336
16694
  },
@@ -16473,6 +16831,8 @@ class DuetVisuallyHidden {
16473
16831
  registerComponents([
16474
16832
  DuetAlert,
16475
16833
  DuetBadge,
16834
+ DuetBreadcrumb,
16835
+ DuetBreadcrumbs,
16476
16836
  DuetButton,
16477
16837
  DuetCaption,
16478
16838
  DuetCard,
@@ -16511,6 +16871,7 @@ registerComponents([
16511
16871
  DuetRadio,
16512
16872
  DuetRadioGroup,
16513
16873
  DuetRangeSlider,
16874
+ DuetScrollable,
16514
16875
  DuetSelect,
16515
16876
  DuetSpacer,
16516
16877
  DuetSpinner,