@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
@@ -2,7 +2,7 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  const NAMESPACE = 'duet';
5
- const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.2.8"};
5
+ const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.2.12"};
6
6
 
7
7
  let scopeId;
8
8
  let contentRef;
@@ -1924,7 +1924,7 @@ let DuetBadge$1 = class extends H {
1924
1924
  }
1925
1925
  /**
1926
1926
  * render() function
1927
- * Always the last one in the class.
1927
+ * Always the last one of the class.
1928
1928
  */
1929
1929
  render() {
1930
1930
  return (h$1(Host, { class: { "duet-m-0": this.margin === "none" } }, h$1("div", { class: {
@@ -1936,6 +1936,102 @@ let DuetBadge$1 = class extends H {
1936
1936
  static get style() { return duetBadgeCss; }
1937
1937
  };
1938
1938
 
1939
+ const duetBreadcrumbCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-breadcrumb{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100%;font-size:0.875rem;color:#00294d;text-decoration:none}.duet-breadcrumb:hover{color:#004d80}.duet-breadcrumb.duet-theme-turva{color:#171c3a}.duet-breadcrumb.duet-theme-turva:hover{color:#940925}.duet-breadcrumb:focus{outline:0}.duet-breadcrumb:active{opacity:0.75}:host(.user-is-tabbing) .duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
1940
+
1941
+ let DuetBreadcrumb$1 = class extends H {
1942
+ constructor() {
1943
+ super();
1944
+ this.__registerHost();
1945
+ this.__attachShadow();
1946
+ /**
1947
+ * Theme
1948
+ */
1949
+ this.theme = "";
1950
+ /**
1951
+ * Href
1952
+ */
1953
+ this.href = "";
1954
+ /**
1955
+ * Icon
1956
+ */
1957
+ this.icon = "";
1958
+ }
1959
+ /**
1960
+ * Component lifecycle events.
1961
+ */
1962
+ componentWillLoad() {
1963
+ inheritGlobalTheme(this);
1964
+ }
1965
+ /**
1966
+ * render() function
1967
+ * Always the last one in the class.
1968
+ */
1969
+ render() {
1970
+ return (h$1(Host, null, h$1("a", { class: {
1971
+ "duet-breadcrumb": true,
1972
+ "duet-theme-turva": this.theme === "turva",
1973
+ }, href: this.href, "aria-label": this.accessibleLabel }, this.icon && h$1("duet-icon", { size: "x-small", name: this.icon, margin: "none", color: "currentColor" }), !this.icon && h$1("slot", null))));
1974
+ }
1975
+ static get style() { return duetBreadcrumbCss; }
1976
+ };
1977
+
1978
+ 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>"};
1979
+
1980
+ const duetBreadcrumbsCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block}.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{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{padding:10px 36px}}.duet-breadcrumbs.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-breadcrumbs.duet-theme-turva ol{color:#171c3a;background:#fcf3f4}.duet-breadcrumbs .duet-breadrumbs-arrow{display:inherit;align-items:center;justify-content:center;width:0.375rem;height:0.375rem}.duet-breadcrumbs .hide{display:none}";
1981
+
1982
+ let DuetBreadcrumbs$1 = class extends H {
1983
+ constructor() {
1984
+ super();
1985
+ this.__registerHost();
1986
+ this.__attachShadow();
1987
+ this.observers = [];
1988
+ this.breadcrumbsAriaLabel = getLocaleString({
1989
+ fi: "Murupolku",
1990
+ sv: "Ströbröd",
1991
+ en: "Breadcrumbs",
1992
+ });
1993
+ /**
1994
+ * Theme
1995
+ */
1996
+ this.theme = "";
1997
+ }
1998
+ /**
1999
+ * Component lifecycle events.
2000
+ */
2001
+ componentWillLoad() {
2002
+ inheritGlobalTheme(this);
2003
+ this.children = Array.from(this.element.children);
2004
+ }
2005
+ connectedCallback() {
2006
+ Array.from(this.element.children).forEach(child => {
2007
+ const observer = new MutationObserver(() => (this.children = Array.from(this.element.children)));
2008
+ observer.observe(child, {
2009
+ childList: true,
2010
+ subtree: true,
2011
+ attributes: true,
2012
+ characterData: true,
2013
+ });
2014
+ this.observers = [...this.observers, observer];
2015
+ });
2016
+ }
2017
+ disconnectedCallback() {
2018
+ this.observers.forEach(observer => observer.disconnect());
2019
+ this.observers = [];
2020
+ }
2021
+ /**
2022
+ * render() function
2023
+ * Always the last one in the class.
2024
+ */
2025
+ render() {
2026
+ return (h$1(Host, null, h$1("nav", { "aria-label": this.breadcrumbsAriaLabel, class: {
2027
+ "duet-breadcrumbs": true,
2028
+ "duet-theme-turva": this.theme === "turva",
2029
+ } }, h$1("ol", null, this.children.map((child, index) => (h$1(Fragment, null, index > 0 && (h$1("li", { "aria-hidden": "true" }, h$1("duet-icon", { class: "duet-breadrumbs-arrow", size: "auto", icon: actionArrowRightSmall.svg, margin: "none", color: "currentColor" }))), h$1("li", { innerHTML: child.outerHTML }), h$1("div", { class: "hide" }, h$1("slot", null)))))))));
2030
+ }
2031
+ get element() { return this; }
2032
+ static get style() { return duetBreadcrumbsCss; }
2033
+ };
2034
+
1939
2035
  const DuetStringsExternalDefaults = {
1940
2036
  fi: "Avautuu uuteen ikkunaan",
1941
2037
  sv: "Öppnas i nytt fönster",
@@ -2310,7 +2406,7 @@ function convertToColorName(name = "", theme = "") {
2310
2406
  return colorResolution;
2311
2407
  }
2312
2408
 
2313
- const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;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{margin-right:0 !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.duet-small){margin-right:2px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host(.duet-small){width:auto}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;width:100%}.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{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button.duet-button-is-small: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{padding-left:48px !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}.duet-theme-turva .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{position:relative;display:inline-block;margin:0 auto;pointer-events:none}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button.icon{padding-left:52px !important}.duet-button.icon-right{padding-right:52px !important;padding-left:28px !important}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{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{width:16px;height:16px}.duet-button .duet-button-icon.right{right:-28px;left:auto}.duet-button .duet-button-icon.large{left:-32px;width:20px;height:20px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.large.right{right:-32px;left:auto}.duet-button .duet-button-icon.medium-small{left:-16px;width:10px;height:10px;padding-top:1px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.medium-small.right{right:-16px;left:auto}.duet-button .duet-button-icon.small{left:-16px;width:7px;height:7px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button .duet-button-icon.small.right{right:-16px;left:auto}.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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-button:active{opacity:0.75;transition:none}.duet-button.default{border-color:#e1e3e6}.duet-theme-turva .duet-button.default{color:#c60c30 !important;border-color:#e4e4e6}.duet-button.default:hover{border-color:#0077b3}.duet-theme-turva .duet-button.default:hover{border-color:#c60c30}.duet-button.default.duet-button-negative{background-color:white}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:#e4e4e6 !important}.duet-button.default.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.primary{color:white !important;background:#0077b3;border-color:#0077b3}.duet-theme-turva .duet-button.primary{color:white !important;background:#c60c30;border-color:#c60c30}.duet-button.primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.primary:hover{background:#940925;border-color:#940925}.duet-button.primary: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{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}.duet-button.secondary{color:#00294d !important;background:transparent;border-color:#00294d}.duet-theme-turva .duet-button.secondary{color:#171c3a !important;border-color:#171c3a}.duet-button.secondary:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.secondary.duet-button-negative{color:#e1e3e6 !important;border-color:white}.duet-theme-turva .duet-button.secondary.duet-button-negative{color:#e4e4e6 !important}.duet-button.secondary.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.negative{color:#00294d !important;background:white;border-color:white}.duet-theme-turva .duet-button.negative{color:#171c3a !important}.duet-button.negative:hover{color:white !important;background:transparent;border-color:white}.duet-button.negative: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{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-button.destructive{color:#de2362 !important;background:white;border-color:#de2362}.duet-theme-turva .duet-button.destructive{color:#e02a0d !important;background:white;border-color:#e02a0d}.duet-button.destructive:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}.duet-theme-turva .duet-button.destructive:hover{color:white !important;background:#b3220a;border-color:#b3220a}.duet-button.plain{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{color:#c60c30 !important;background:transparent;border-color:transparent}.duet-button.plain.icon{padding-left:20px !important}.duet-button.plain.icon.icon-right{padding-right:20px !important;padding-left:0 !important}.duet-button.plain.icon.medium{padding-left:24px !important}.duet-button.plain.icon.medium.icon-right{padding-right:24px !important;padding-left:0 !important}.duet-button.plain.icon.large{padding-left:30px !important}.duet-button.plain.icon.large.icon-right{padding-right:30px !important;padding-left:0 !important}.duet-button.plain .duet-button-icon.left{left:-16.6666666667px !important}.duet-button.plain .duet-button-icon.left.medium{left:-24px !important}.duet-button.plain .duet-button-icon.left.large{left:-30px !important}.duet-button.plain .duet-button-icon.right{right:-16.6666666667px !important}.duet-button.plain .duet-button-icon.right.medium{right:-24px !important}.duet-button.plain .duet-button-icon.right.large{right:-30px !important}.duet-button.plain[disabled]{color:#657787 !important;background:transparent !important;border-color:transparent !important}.duet-theme-turva .duet-button.plain[disabled]{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}.duet-button.plain:hover{color:#004d80 !important;background:transparent !important}.duet-theme-turva .duet-button.plain:hover{color:#940925 !important}.duet-button.plain.duet-button-negative{color:white !important}.duet-theme-turva .duet-button.plain.duet-button-negative{color:#e4e4e6 !important}.duet-button.plain.duet-button-negative:hover{color:#0077b3 !important}.duet-theme-turva .duet-button.plain.duet-button-negative:hover{color:#c60c30 !important}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{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{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{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-button-is-loading.primary{color:white}.duet-button-is-loading.default{color:#0077b3}.duet-button-is-loading.default.duet-theme-turva{color:#c60c30}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}";
2409
+ const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;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{margin-right:0 !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.duet-small){margin-right:2px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host(.duet-small){width:auto}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;width:100%}.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{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button.duet-button-is-small: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{padding-left:48px !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}.duet-theme-turva .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{position:relative;display:inline-block;margin:0 auto;pointer-events:none}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button.icon{padding-left:52px !important}.duet-button.icon-right{padding-right:52px !important;padding-left:28px !important}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{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{width:16px;height:16px}.duet-button .duet-button-icon.right{right:-28px;left:auto}.duet-button .duet-button-icon.large{left:-32px;width:20px;height:20px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.large.right{right:-32px;left:auto}.duet-button .duet-button-icon.medium-small{left:-16px;width:10px;height:10px;padding-top:1px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.medium-small.right{right:-16px;left:auto}.duet-button .duet-button-icon.small{left:-16px;width:7px;height:7px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button .duet-button-icon.small.right{right:-16px;left:auto}.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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-button:active{opacity:0.75;transition:none}.duet-button.default{border-color:#e1e3e6}.duet-theme-turva .duet-button.default{color:#c60c30 !important;border-color:#e4e4e6}.duet-button.default:hover{border-color:#0077b3}.duet-theme-turva .duet-button.default:hover{border-color:#c60c30}.duet-button.default.duet-button-negative{background-color:white}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:#e4e4e6 !important}.duet-button.default.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.primary{color:white !important;background:#0077b3;border-color:#0077b3}.duet-theme-turva .duet-button.primary{color:white !important;background:#c60c30;border-color:#c60c30}.duet-button.primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.primary:hover{background:#940925;border-color:#940925}.duet-button.primary: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{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}.duet-button.secondary{color:#00294d !important;background:transparent;border-color:#00294d}.duet-theme-turva .duet-button.secondary{color:#171c3a !important;border-color:#171c3a}.duet-button.secondary:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.secondary.duet-button-negative{color:#e1e3e6 !important;border-color:white}.duet-theme-turva .duet-button.secondary.duet-button-negative{color:#e4e4e6 !important}.duet-button.secondary.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.negative{color:#00294d !important;background:white;border-color:white}.duet-theme-turva .duet-button.negative{color:#171c3a !important}.duet-button.negative:hover{color:white !important;background:transparent;border-color:white}.duet-button.negative: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{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-button.destructive-primary{color:white !important;background:#de2362;border-color:#de2362}.duet-theme-turva .duet-button.destructive-primary{color:white !important;background:#e02a0d;border-color:#e02a0d}.duet-button.destructive-primary: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{background:#b3220a}.duet-button.destructive,.duet-button.destructive-secondary{color:#de2362 !important;background:white;border-color:#de2362}.duet-theme-turva .duet-button.destructive,.duet-theme-turva .duet-button.destructive-secondary{color:#e02a0d !important;background:white;border-color:#e02a0d}.duet-button.destructive:hover,.duet-button.destructive-secondary:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}.duet-theme-turva .duet-button.destructive:hover,.duet-theme-turva .duet-button.destructive-secondary:hover{color:white !important;background:#b3220a;border-color:#b3220a}.duet-button.plain{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{color:#c60c30 !important;background:transparent;border-color:transparent}.duet-button.plain.icon{padding-left:20px !important}.duet-button.plain.icon.icon-right{padding-right:20px !important;padding-left:0 !important}.duet-button.plain.icon.medium{padding-left:24px !important}.duet-button.plain.icon.medium.icon-right{padding-right:24px !important;padding-left:0 !important}.duet-button.plain.icon.large{padding-left:30px !important}.duet-button.plain.icon.large.icon-right{padding-right:30px !important;padding-left:0 !important}.duet-button.plain .duet-button-icon.left{left:-16.6666666667px !important}.duet-button.plain .duet-button-icon.left.medium{left:-24px !important}.duet-button.plain .duet-button-icon.left.large{left:-30px !important}.duet-button.plain .duet-button-icon.right{right:-16.6666666667px !important}.duet-button.plain .duet-button-icon.right.medium{right:-24px !important}.duet-button.plain .duet-button-icon.right.large{right:-30px !important}.duet-button.plain[disabled]{color:#657787 !important;background:transparent !important;border-color:transparent !important}.duet-theme-turva .duet-button.plain[disabled]{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}.duet-button.plain:hover{color:#004d80 !important;background:transparent !important}.duet-theme-turva .duet-button.plain:hover{color:#940925 !important}.duet-button.plain.duet-button-negative{color:white !important}.duet-theme-turva .duet-button.plain.duet-button-negative{color:#e4e4e6 !important}.duet-button.plain.duet-button-negative:hover{color:#0077b3 !important}.duet-theme-turva .duet-button.plain.duet-button-negative:hover{color:#c60c30 !important}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{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{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{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-button-is-loading.primary{color:white}.duet-button-is-loading.default{color:#0077b3}.duet-button-is-loading.default.duet-theme-turva{color:#c60c30}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}";
2314
2410
 
2315
2411
  let DuetButton$1 = class extends H {
2316
2412
  constructor() {
@@ -2326,6 +2422,7 @@ let DuetButton$1 = class extends H {
2326
2422
  /**
2327
2423
  * Style variation of the button.
2328
2424
  * @negative - value is deprecated and should be used in combination with negative prop in the future
2425
+ * @destructive - value is deprecated and should be replace with destructive-secondary
2329
2426
  */
2330
2427
  this.variation = "default";
2331
2428
  /**
@@ -2533,7 +2630,7 @@ let DuetButton$1 = class extends H {
2533
2630
  "duet-theme-turva": this.theme === "turva",
2534
2631
  "duet-button-negative": this.negative || this.variation === "negative",
2535
2632
  [this.variation]: true,
2536
- } }, this.url ? (h$1("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self" }), commonChildren, this.external && h$1("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (h$1("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 && h$1("duet-spinner", { color: "currentColor" }))));
2633
+ } }, this.url ? (h$1("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && h$1("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (h$1("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 && h$1("duet-spinner", { color: "currentColor" }))));
2537
2634
  }
2538
2635
  get element() { return this; }
2539
2636
  static get watchers() { return {
@@ -7436,7 +7533,7 @@ let DuetLink$1 = class extends H {
7436
7533
  "duet-link": true,
7437
7534
  "duet-link-is-external": this.external,
7438
7535
  "duet-theme-turva": this.theme === "turva",
7439
- }, target: this.external ? "_blank" : "_self", "aria-label": this.accessibleLabel, id: this.identifier, ref: el => (this.nativeLink = el), part: "duet-link" }, h$1("slot", null), this.external && (h$1(Fragment, null, h$1("duet-visually-hidden", null, this.accessibleLabelExternal), h$1("span", { class: "duet-link-external" }, h$1("duet-icon", { icon: actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))))));
7536
+ }, 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 }, h$1("slot", null), this.external && (h$1(Fragment, null, h$1("duet-visually-hidden", null, this.accessibleLabelExternal), h$1("span", { class: "duet-link-external" }, h$1("duet-icon", { icon: actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))))));
7440
7537
  }
7441
7538
  static get delegatesFocus() { return true; }
7442
7539
  static get style() { return duetLinkCss; }
@@ -7762,6 +7859,10 @@ let DuetModal$1 = class extends H {
7762
7859
  * Use this property when you need to have the modal dialog initially active.
7763
7860
  */
7764
7861
  this.active = false;
7862
+ /**
7863
+ * Use this property when you want the modal to close when clicked outside of modal.
7864
+ */
7865
+ this.closeOnBlur = false;
7765
7866
  }
7766
7867
  openChanged() {
7767
7868
  if (this.open) {
@@ -7874,7 +7975,15 @@ let DuetModal$1 = class extends H {
7874
7975
  } }, h$1(FocusGuard, { moveFocusTo: this.buttonEl }), h$1("div", { class: {
7875
7976
  "duet-modal-inner": true,
7876
7977
  "duet-modal-large": this.size === "large",
7877
- }, role: "document" }, h$1("div", { class: { "duet-modal": true, [this.size]: true } }, h$1("duet-spacer", null), h$1("div", { class: "duet-modal-close" }, h$1("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 })), h$1("div", { class: {
7978
+ }, role: "document", onClick: e => {
7979
+ if (this.closeOnBlur) {
7980
+ this.closeModal(e);
7981
+ }
7982
+ } }, h$1("div", { class: { "duet-modal": true, [this.size]: true }, onClick: e => {
7983
+ if (this.closeOnBlur) {
7984
+ e.stopPropagation();
7985
+ }
7986
+ } }, h$1("duet-spacer", null), h$1("div", { class: "duet-modal-close" }, h$1("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 })), h$1("div", { class: {
7878
7987
  "duet-modal-body": true,
7879
7988
  "duet-modal-gutter-small": this.gutterSize === "small",
7880
7989
  "duet-modal-gutter-medium": this.gutterSize === "medium",
@@ -8990,6 +9099,165 @@ let DuetRangeSlider$1 = class extends H {
8990
9099
  static get style() { return duetRangeSliderCss; }
8991
9100
  };
8992
9101
 
9102
+ const duetScrollableCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}:host{position:relative !important}:host .duet-scrollable-items{display:flex}:host .duet-scrollable-items .duet-scrollable-button{position:relative;flex:0 0 auto;flex-basis:40px;padding:10px;cursor:pointer}:host .duet-scrollable-items .duet-scrollable-button:active{transform:scale(0.8)}:host .duet-scrollable-items .duet-scrollable-button--left{left:-12px}:host .duet-scrollable-items .duet-scrollable-button--right{right:-12px}:host .duet-scrollable-items .duet-scrollable-button--occluded{display:none}:host .duet-scrollable-items .duet-scrollable-list{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{display:none}::slotted(*){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}";
9103
+
9104
+ let DuetScrollable$1 = class extends H {
9105
+ constructor() {
9106
+ super();
9107
+ this.__registerHost();
9108
+ this.__attachShadow();
9109
+ /**
9110
+ * Private variables and constants index
9111
+ */
9112
+ this.currentIndex = 0;
9113
+ this.tabListElement = undefined;
9114
+ this.tabListClass = "duet-scrollable-list";
9115
+ this.tablistAtStart = true;
9116
+ this.isTabContentSmallerThanWrapper = false;
9117
+ this.tablistAtEnd = false;
9118
+ this.childrenData = {};
9119
+ this.resizeObserver = new ResizeObserver(entries => {
9120
+ var _a, _b, _c, _d;
9121
+ // otherwise, something is wrong, expecting 1 element only
9122
+ if ((entries === null || entries === void 0 ? void 0 : entries.length) === 1) {
9123
+ const currentWidth = (_b = (_a = entries[0]) === null || _a === void 0 ? void 0 : _a.target) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width;
9124
+ const scrollWidth = (_d = (_c = entries[0]) === null || _c === void 0 ? void 0 : _c.target) === null || _d === void 0 ? void 0 : _d.scrollWidth;
9125
+ // in order to avoid state "jumping" on the boundary condition we add a few pixels to the comparison
9126
+ this.isTabContentSmallerThanWrapper = scrollWidth > currentWidth + 5;
9127
+ }
9128
+ });
9129
+ /**
9130
+ * Theme of duet-tab-scrollable. When used this will override the color setting and
9131
+ * use "primary" or "primary-turva" as the color depending on which theme
9132
+ * is chosen.
9133
+ */
9134
+ this.theme = "";
9135
+ /**
9136
+ * Optional identifier to add to buttons in the tab group
9137
+ */
9138
+ this.identifier = "";
9139
+ /**
9140
+ * Selected element
9141
+ */
9142
+ this.selected = 0;
9143
+ }
9144
+ watchPropHandler(newValue) {
9145
+ this.scrollToTab(newValue, "center");
9146
+ }
9147
+ /**
9148
+ * Component lifecycle events.
9149
+ */
9150
+ componentWillLoad() {
9151
+ inheritGlobalTheme(this);
9152
+ const slotted = this.host.children;
9153
+ this.childrenData = { hasChildren: slotted && slotted.length > 0, numberOfChildren: slotted && slotted.length };
9154
+ }
9155
+ componentDidLoad() {
9156
+ this.resizeObserver.observe(this.tabListElement);
9157
+ }
9158
+ disconnectedCallback() {
9159
+ this.resizeObserver.disconnect();
9160
+ }
9161
+ /**
9162
+ * Private methods.
9163
+ */
9164
+ getLastVisibleElement() {
9165
+ const clientWidth = this.tabListElement.clientWidth;
9166
+ const xValues = Array.from(this.host.querySelectorAll("button")).findIndex(element => element.getBoundingClientRect().x > clientWidth);
9167
+ return xValues;
9168
+ }
9169
+ getFirstVisibleElement() {
9170
+ const buttonCollection = this.host.querySelectorAll("button");
9171
+ // reverse the array because we want the first invisible element form the middle, not the first in the list
9172
+ const arrayOfXValues = Array.from(buttonCollection).map(el => el.getBoundingClientRect().x - el.getBoundingClientRect().width);
9173
+ const xValues = arrayOfXValues.findIndex(element => {
9174
+ return element > 0;
9175
+ });
9176
+ return xValues;
9177
+ }
9178
+ updateScrollButtons(container = this.tabListElement) {
9179
+ if (container.scrollLeft <= 0) {
9180
+ this.tablistAtStart = true;
9181
+ }
9182
+ else if (container.scrollLeft > 0) {
9183
+ this.tablistAtStart = false;
9184
+ }
9185
+ if (container.clientWidth + container.scrollLeft + 10 >= container.scrollWidth) {
9186
+ this.tablistAtEnd = true;
9187
+ }
9188
+ else if (container.clientWidth + container.scrollLeft + 10 < container.scrollWidth) {
9189
+ this.tablistAtEnd = false;
9190
+ }
9191
+ }
9192
+ scrollToTab(index = this.currentIndex, inline) {
9193
+ if (!this.childrenData.hasChildren) {
9194
+ return;
9195
+ }
9196
+ if (index + 1 >= this.childrenData.numberOfChildren) {
9197
+ index = this.childrenData.numberOfChildren - 1;
9198
+ }
9199
+ if (index < 0) {
9200
+ index = 0;
9201
+ }
9202
+ const buttons = this.host.querySelectorAll("button");
9203
+ // store previous position
9204
+ let prevPosition = buttons[0].getBoundingClientRect().x;
9205
+ // iterations to run
9206
+ let ticksWhereScrollDidNotHappen = 5;
9207
+ const getAnimationFrame = () => {
9208
+ // if we get the same value enter the logic loop
9209
+ if (buttons[0].getBoundingClientRect().x === prevPosition) {
9210
+ ticksWhereScrollDidNotHappen--;
9211
+ // When iteration is not complete run the calculation again
9212
+ if (ticksWhereScrollDidNotHappen !== 0) {
9213
+ window.requestAnimationFrame(getAnimationFrame);
9214
+ return;
9215
+ }
9216
+ this.updateScrollButtons();
9217
+ }
9218
+ else {
9219
+ window.requestAnimationFrame(getAnimationFrame);
9220
+ prevPosition = buttons[0].getBoundingClientRect().x;
9221
+ }
9222
+ };
9223
+ buttons[index].scrollIntoView({ behavior: "smooth", inline });
9224
+ window.requestAnimationFrame(getAnimationFrame);
9225
+ }
9226
+ scrollLeft() {
9227
+ this.tablistAtEnd = false;
9228
+ const first = this.getFirstVisibleElement() - 1;
9229
+ this.scrollToTab(first, "center");
9230
+ }
9231
+ scrollRight() {
9232
+ this.tablistAtStart = false;
9233
+ const last = this.getLastVisibleElement() + 1;
9234
+ this.scrollToTab(last, "center");
9235
+ }
9236
+ /**
9237
+ * render() function
9238
+ * Always the last one in the class.
9239
+ */
9240
+ render() {
9241
+ return (h$1(Host, { class: {
9242
+ "duet-theme-turva": this.theme === "turva",
9243
+ "duet-theme-default": this.theme === "default",
9244
+ } }, h$1("div", { class: "duet-scrollable-items" }, h$1("button", { part: `${this.identifier}-button-left`, "aria-hidden": "true", class: {
9245
+ "duet-scrollable-button": true,
9246
+ "duet-scrollable-button--left": true,
9247
+ "duet-scrollable-button--occluded": !this.isTabContentSmallerThanWrapper,
9248
+ }, onClick: () => this.scrollLeft(), disabled: this.tablistAtStart, tabindex: "-1" }, h$1("duet-icon", { name: "action-arrow-left-small", size: "small", margin: "none" })), h$1("div", { class: this.tabListClass, onScroll: () => this.updateScrollButtons(), ref: element => (this.tabListElement = element) }, h$1("slot", null)), h$1("button", { part: `${this.identifier}-button-right`, "aria-hidden": "true", class: {
9249
+ "duet-scrollable-button": true,
9250
+ "duet-scrollable-button--right": true,
9251
+ "duet-scrollable-button--occluded": !this.isTabContentSmallerThanWrapper,
9252
+ }, onClick: () => this.scrollRight(), disabled: this.tablistAtEnd, tabindex: "-1" }, h$1("duet-icon", { name: "action-arrow-right-small", size: "small", margin: "none" })))));
9253
+ }
9254
+ get host() { return this; }
9255
+ static get watchers() { return {
9256
+ "selected": ["watchPropHandler"]
9257
+ }; }
9258
+ static get style() { return duetScrollableCss; }
9259
+ };
9260
+
8993
9261
  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}";
8994
9262
 
8995
9263
  function isOptionGroup(item) {
@@ -9499,6 +9767,18 @@ let DuetTab$1 = class extends H {
9499
9767
  constructor() {
9500
9768
  super();
9501
9769
  this.__registerHost();
9770
+ /**
9771
+ * Defaults for AccessibleLabel
9772
+ * @default null
9773
+ */
9774
+ this.accessibleDescriptionDefault = null;
9775
+ /**
9776
+ * String for AccessibleLabel
9777
+ * @default null
9778
+ */
9779
+ this.accessibleDescription = this.accessibleDescriptionDefault
9780
+ ? getLocaleString(this.accessibleDescriptionDefault)
9781
+ : null;
9502
9782
  }
9503
9783
  /**
9504
9784
  * render() function
@@ -9506,18 +9786,19 @@ let DuetTab$1 = class extends H {
9506
9786
  */
9507
9787
  render() {
9508
9788
  {
9509
- return (h$1("div", { role: "tabpanel", class: { "duet-tab": true, selected: this.selected } }, h$1("slot", null)));
9789
+ return (h$1("div", { role: "tabpanel", class: { "duet-tab": true, selected: this.selected }, "aria-description": this.accessibleDescription }, h$1("slot", null)));
9510
9790
  }
9511
9791
  }
9512
9792
  static get style() { return duetTabCss; }
9513
9793
  };
9514
9794
 
9515
- 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}";
9795
+ const duetTabGroupCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;display:block;width:100%}.duet-tab-group-tabs{margin-bottom:28px !important;display:block;width:100%;max-width:100%;padding-top:2px;list-style:none}.duet-tab-group-tabs.duet-m-0{margin:0 !important}.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden{display:none}@media (min-width: 36em){.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden{display:block}}.duet-tab-variation-plain .duet-tab-group-tabs{border-bottom:1px solid #e1e3e6}.duet-theme-turva.duet-tab-variation-plain .duet-tab-group-tabs{border-bottom-color:#e4e4e6}@media (min-width: 36em){duet-select{display:none !important}}.duet-tab-button{-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{padding:0 !important}.duet-tab-button.duet-m-0{margin:0 !important}.duet-theme-turva .duet-tab-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:#171c3a;border-color:#e4e4e6}.duet-tab-button.duet-p-0{padding:0 !important}@media (min-width: 36em){.duet-tab-button{display:inline-block;width:auto;margin-left:-2px;border-right:2px solid #e1e3e6;border-radius:0}}.duet-tab-button:hover{z-index:200;border-color:#909599}.duet-theme-turva .duet-tab-button:hover{border-color:#747475}.duet-tab-button:active{opacity:0.75;transition:none}.duet-tab-button.selected{z-index:201;color:white;background:#00294d;border-color:#00294d;outline:0;box-shadow:none !important}.duet-theme-turva .duet-tab-button.selected{color:white;background-color:#171c3a;border-color:#171c3a}.duet-tab-button:focus{z-index:200;outline:0}:host(.user-is-tabbing) .duet-tab-button: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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a !important}.duet-tab-button:first-child{border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){.duet-tab-button:first-child{border-top-right-radius:0;border-bottom-left-radius:4px}}.duet-tab-button:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}@media (min-width: 36em){.duet-tab-button:last-child{border-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}}.duet-tab-variation-plain .duet-tab-button{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{margin-left:36px}.duet-tab-variation-plain .duet-tab-button.selected{color:#0077b3;background:white;border-bottom:3px solid #0077b3}.duet-theme-turva.duet-tab-variation-plain .duet-tab-button.selected{color:#c60c30;border-bottom-color:#c60c30}.duet-tab-group-content{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{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}";
9516
9796
 
9517
9797
  let DuetTabGroup$1 = class extends H {
9518
9798
  constructor() {
9519
9799
  super();
9520
9800
  this.__registerHost();
9801
+ this.__attachShadow();
9521
9802
  this.duetChange = createEvent$2(this, "duetChange", 3);
9522
9803
  this.duetTabChange = createEvent$2(this, "duetTabChange", 7);
9523
9804
  this.id = createID("DuetTabGroup");
@@ -9531,6 +9812,15 @@ let DuetTabGroup$1 = class extends H {
9531
9812
  * Theme of the component.
9532
9813
  */
9533
9814
  this.theme = "";
9815
+ /**
9816
+ * Controls whether the tab-group should scroll (by inflection this will disable collapsing to select box on small screens),
9817
+ * if this is a number instead of true it will be used as "amount of items to scroll"
9818
+ */
9819
+ this.scrolls = false;
9820
+ /**
9821
+ * Whether the tab-group collapses to a select dropwdown in minor breakpoints
9822
+ */
9823
+ this.collapses = true;
9534
9824
  /**
9535
9825
  * Style variation of the tab group.
9536
9826
  */
@@ -9560,6 +9850,10 @@ let DuetTabGroup$1 = class extends H {
9560
9850
  * Determines whether the label for the select element shown on mobile is visually hidden.
9561
9851
  */
9562
9852
  this.labelHidden = true;
9853
+ /**
9854
+ * Optional identifier to add to buttons in the tab group
9855
+ */
9856
+ this.identifier = this.id;
9563
9857
  /**
9564
9858
  * Controls the margin of the component.
9565
9859
  */
@@ -9585,12 +9879,18 @@ let DuetTabGroup$1 = class extends H {
9585
9879
  button.focus();
9586
9880
  }
9587
9881
  };
9588
- this.renderTab = (tab, index) => {
9589
- return (h$1("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": tab.selected ? "true" : "false", type: "button", class: {
9590
- "duet-p-0": this.padding === "none",
9591
- "duet-tab-button": true,
9592
- selected: tab.selected,
9593
- }, onClick: () => this.openTab(index), onKeyDown: ev => this.handleKeyDown(ev) }, tab.label));
9882
+ this.renderTab = () => {
9883
+ const renderedTabs = this.tabs.map((element, index) => {
9884
+ return (h$1("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: {
9885
+ "duet-p-0": this.padding === "none",
9886
+ "duet-tab-button": true,
9887
+ selected: element.selected,
9888
+ }, onClick: () => this.openTab(index), onKeyDown: ev => this.handleKeyDown(ev) }, element.label));
9889
+ });
9890
+ if (this.scrolls) {
9891
+ return (h$1("duet-scrollable", { selected: this.selected, identifier: this.identifier }, renderedTabs));
9892
+ }
9893
+ return renderedTabs;
9594
9894
  };
9595
9895
  }
9596
9896
  /**
@@ -9609,7 +9909,7 @@ let DuetTabGroup$1 = class extends H {
9609
9909
  subtree: true,
9610
9910
  });
9611
9911
  }
9612
- this.updateTabs();
9912
+ await this.updateTabs();
9613
9913
  }
9614
9914
  disconnectedCallback() {
9615
9915
  if (this.mutationO) {
@@ -9650,19 +9950,27 @@ let DuetTabGroup$1 = class extends H {
9650
9950
  /**
9651
9951
  * Local methods.
9652
9952
  */
9953
+ getTabs() {
9954
+ const allTabs = Array.from(this.element.querySelectorAll("duet-tab"));
9955
+ const localTabs = allTabs.filter(tab => tab.closest("duet-tab-group") === this.element);
9956
+ if (localTabs.length === 0) {
9957
+ throw new Error("[duet-tabs] Must have at least one tab");
9958
+ }
9959
+ // filter out any nested tabs
9960
+ return localTabs;
9961
+ }
9653
9962
  getButtonId(index) {
9654
9963
  return `${this.id}-button-${index}`;
9655
9964
  }
9656
9965
  getTabId(index) {
9657
9966
  return `${this.id}-tab-${index}`;
9658
9967
  }
9968
+ getAccessibleDescription(index) {
9969
+ const description = this.tabs[index].getAttribute("accessible-description") || null;
9970
+ return description;
9971
+ }
9659
9972
  async updateTabs() {
9660
- const allTabs = Array.from(this.element.querySelectorAll("duet-tab"));
9661
- // filter out any nested tabs
9662
- this.tabs = allTabs.filter(tab => tab.closest("duet-tab-group") === this.element);
9663
- if (this.tabs.length === 0) {
9664
- throw new Error("[duet-tabs] Must have at least one tab");
9665
- }
9973
+ this.tabs = this.getTabs();
9666
9974
  this.tabs.forEach((tab, index) => {
9667
9975
  tab.id = this.getTabId(index);
9668
9976
  tab.setAttribute("aria-labelledby", this.getButtonId(index));
@@ -9670,6 +9978,7 @@ let DuetTabGroup$1 = class extends H {
9670
9978
  this.selected = index;
9671
9979
  }
9672
9980
  });
9981
+ return;
9673
9982
  }
9674
9983
  /**
9675
9984
  * render() function
@@ -9680,13 +9989,16 @@ let DuetTabGroup$1 = class extends H {
9680
9989
  "duet-tab-group": true,
9681
9990
  "duet-theme-turva": this.theme === "turva",
9682
9991
  [`duet-tab-variation-${this.variation}`]: true,
9683
- } }, this.tabs.length > 3 && (h$1("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) => {
9992
+ "duet-tab-group-scrolls": this.scrolls,
9993
+ "duet-tab-group-collapses": this.collapses,
9994
+ } }, this.tabs.length > 3 && this.collapses && (h$1("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) => {
9684
9995
  return { label: tab.label, value: index.toString() };
9685
9996
  }) })), h$1("div", { role: "tablist", class: {
9686
9997
  "duet-m-0": this.margin === "none",
9687
9998
  "duet-tab-group-tabs": true,
9688
9999
  "duet-tab-group-hidden": this.tabs.length > 3,
9689
- } }, this.tabs.map(this.renderTab)), h$1("div", { class: { "duet-tab-group-content": true, "duet-m-0": this.margin === "none" } }, h$1("slot", null))));
10000
+ "duet-tab-group-collapses": this.collapses,
10001
+ } }, this.renderTab()), h$1("div", { class: { "duet-tab-group-content": true, "duet-m-0": this.margin === "none" } }, h$1("slot", null))));
9690
10002
  }
9691
10003
  get element() { return this; }
9692
10004
  static get style() { return duetTabGroupCss; }
@@ -11500,6 +11812,15 @@ let DuetUpload$1 = class extends H {
11500
11812
  this.nativeInput.click();
11501
11813
  return;
11502
11814
  }
11815
+ /**
11816
+ * Method for forcing a render of the upload list, element.files can be changed externally
11817
+ * But it will only rerender on a new Map or a top Level change - this can be used to update
11818
+ * the tabular data if the automatic re-render is no sufficient
11819
+ */
11820
+ async refresh() {
11821
+ this.kick();
11822
+ await this.setFocus();
11823
+ }
11503
11824
  /**
11504
11825
  * Get list of files, divided in errors and valid sections
11505
11826
  */
@@ -11524,11 +11845,11 @@ let DuetUpload$1 = class extends H {
11524
11845
  let caption = this.description.replace(/{maxfiles}/g, this.maxFiles.toString());
11525
11846
  caption = caption.replace(/{maxbytes}/g, `${Math.floor(this.maxBytes / 1024 / 1024)} MB`);
11526
11847
  caption = caption.replace(/{filetypes}/g, this.allowedExtensions.split(",").join(", "));
11527
- return (h$1(Host, { class: { "duet-m-0": this.margin === "none" } }, h$1("duet-fieldset", { label: this.label, caption: caption }, h$1("slot", { name: "header" }), !this.files.size && (h$1("duet-label", { theme: this.theme === "turva" ? "turva" : "default", size: "small", class: {
11848
+ return (h$1(Host, { class: { "duet-m-0": this.margin === "none" } }, h$1("duet-fieldset", { label: this.label, caption: caption }, h$1("slot", { name: "header" }), !this.files.size && (h$1("duet-label", { part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", theme: this.theme === "turva" ? "turva" : "default", size: "small", class: {
11528
11849
  "duet-upload-filelist-empty": !this.files.size,
11529
11850
  "duet-upload-filelist": true,
11530
11851
  "duet-upload-filelist-filled": this.files.size,
11531
- }, id: this.labelId, for: identifier }, this.fileListEmpty)), !!this.files.size && h$1("slot", { name: "fileheader" }), !!this.files.size && (h$1("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 && (h$1("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 && h$1("slot", { name: "filefooter" }), h$1("duet-spacer", { size: "large" }), !this.hideButton && (h$1("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)), h$1("duet-spacer", { size: "medium" }), (this.fileMaxReached || this.bytesMaxReached) && (h$1("duet-alert", null, this.fileMaxReached && getI18nError("duet-upload-301"), this.bytesMaxReached && getI18nError("duet-upload-202"))), h$1("duet-spacer", { size: "medium" }), h$1("duet-visually-hidden", null, h$1("input", { ref: input => {
11852
+ }, id: this.labelId, for: identifier }, this.fileListEmpty)), !!this.files.size && h$1("slot", { name: "fileheader" }), !!this.files.size && (h$1("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 && (h$1("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 && h$1("slot", { name: "filefooter" }), h$1("duet-spacer", { size: "large" }), !this.hideButton && (h$1("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)), h$1("duet-spacer", { size: "medium" }), (this.fileMaxReached || this.bytesMaxReached) && (h$1("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"))), h$1("duet-spacer", { size: "medium" }), h$1("duet-visually-hidden", null, h$1("input", { ref: input => {
11532
11853
  this.nativeInput = input;
11533
11854
  }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
11534
11855
  "duet-upload": true,
@@ -11654,6 +11975,8 @@ let DuetVisuallyHidden$1 = class extends H {
11654
11975
  globalScripts();
11655
11976
  const DuetAlert = /*@__PURE__*/proxyCustomElement(DuetAlert$1, [1,"duet-alert",{"theme":[1025],"accessibleLabelDefaults":[1,"accessible-label-default"],"accessibleLabel":[1,"accessible-label"],"announcements":[4],"icon":[1],"autoDismiss":[2,"auto-dismiss"],"margin":[1],"padding":[1],"variation":[1],"dismissible":[4],"isDismissed":[32],"timeoutID":[32]}]);
11656
11977
  const DuetBadge = /*@__PURE__*/proxyCustomElement(DuetBadge$1, [1,"duet-badge",{"theme":[1025],"variation":[1],"margin":[1]}]);
11978
+ const DuetBreadcrumb = /*@__PURE__*/proxyCustomElement(DuetBreadcrumb$1, [1,"duet-breadcrumb",{"theme":[1025],"href":[1025],"icon":[1025],"accessibleLabel":[1,"accessible-label"]}]);
11979
+ const DuetBreadcrumbs = /*@__PURE__*/proxyCustomElement(DuetBreadcrumbs$1, [1,"duet-breadcrumbs",{"theme":[1025],"children":[32]}]);
11657
11980
  const DuetButton = /*@__PURE__*/proxyCustomElement(DuetButton$1, [1,"duet-button",{"accessibleLabel":[1,"accessible-label"],"accessibleControls":[1,"accessible-controls"],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleExpanded":[4,"accessible-expanded"],"accessiblePressed":[4,"accessible-pressed"],"loading":[4],"variation":[1],"negative":[4],"theme":[1025],"margin":[1],"padding":[1],"wrapping":[1],"expand":[4],"fixed":[4],"disabled":[516],"name":[1],"value":[1],"identifier":[1],"submit":[516],"external":[4],"language":[1],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"icon":[1],"color":[1],"iconRight":[4,"icon-right"],"iconSize":[1,"icon-size"],"size":[1],"iconOnly":[4,"icon-only"],"url":[513]}]);
11658
11981
  const DuetCaption = /*@__PURE__*/proxyCustomElement(DuetCaption$1, [1,"duet-caption",{"theme":[1025],"margin":[1],"selected":[4],"size":[1]}]);
11659
11982
  const DuetCard = /*@__PURE__*/proxyCustomElement(DuetCard$1, [1,"duet-card",{"accessibleLabel":[1,"accessible-label"],"heading":[1],"secondaryHeading":[1,"secondary-heading"],"variation":[1],"collapsible":[4],"open":[1540],"headingLevel":[1,"heading-level"],"icon":[1],"image":[1],"background":[1],"padding":[1],"margin":[1],"theme":[1025],"url":[1]}]);
@@ -11683,7 +12006,7 @@ const DuetLink = /*@__PURE__*/proxyCustomElement(DuetLink$1, [17,"duet-link",{"a
11683
12006
  const DuetList = /*@__PURE__*/proxyCustomElement(DuetList$1, [1,"duet-list",{"theme":[1025],"margin":[1],"padding":[1],"mobile":[1],"breakpoint":[1],"variation":[1],"labelWidth":[1,"label-width"]}]);
11684
12007
  const DuetListItem = /*@__PURE__*/proxyCustomElement(DuetListItem$1, [1,"duet-list-item"]);
11685
12008
  const DuetLogo = /*@__PURE__*/proxyCustomElement(DuetLogo$1, [1,"duet-logo",{"theme":[1025],"margin":[1],"inverse":[4],"size":[1],"href":[1537],"language":[1537]}]);
11686
- const DuetModal = /*@__PURE__*/proxyCustomElement(DuetModal$1, [1,"duet-modal",{"language":[1025],"accessibleCloseLabelDefaults":[1,"accessible-close-label-default"],"accessibleCloseLabel":[1,"accessible-close-label"],"size":[1],"gutterSize":[1,"gutter-size"],"theme":[1025],"heading":[1],"headingLevel":[1,"heading-level"],"icon":[1],"color":[1],"active":[1540],"open":[32]},[[8,"keyup","handleKeyUp"]]]);
12009
+ const DuetModal = /*@__PURE__*/proxyCustomElement(DuetModal$1, [1,"duet-modal",{"language":[1025],"accessibleCloseLabelDefaults":[1,"accessible-close-label-default"],"accessibleCloseLabel":[1,"accessible-close-label"],"size":[1],"gutterSize":[1,"gutter-size"],"theme":[1025],"heading":[1],"headingLevel":[1,"heading-level"],"icon":[1],"color":[1],"active":[1540],"closeOnBlur":[1028,"close-on-blur"],"open":[32]},[[8,"keyup","handleKeyUp"]]]);
11687
12010
  const DuetNotification = /*@__PURE__*/proxyCustomElement(DuetNotification$1, [1,"duet-notification",{"language":[1],"accessibleLabelUnreadDefaults":[16],"accessibleLabelUnread":[1,"accessible-label-unread"],"url":[1],"date":[1],"highlight":[4],"external":[4],"theme":[1025]}]);
11688
12011
  const DuetNotificationDrawer = /*@__PURE__*/proxyCustomElement(DuetNotificationDrawer$1, [1,"duet-notification-drawer",{"icon":[1],"label":[1],"language":[1],"accessibleLabelNotificationsDefaults":[1,"accessible-label-notification-default"],"accessibleLabelNotifications":[1,"accessible-label-notifications"],"badge":[4],"theme":[1025],"direction":[1],"isOpen":[32],"hasNotifications":[32]},[[6,"focus","handleClickFocusOutside"],[6,"click","handleClickFocusOutside"]]]);
11689
12012
  const DuetNumberInput = /*@__PURE__*/proxyCustomElement(DuetNumberInput$1, [2,"duet-number-input",{"language":[1025],"locale":[1],"unit":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleLiveDefaults":[1,"accessible-live-default"],"accessibleLive":[1,"accessible-live"],"accessibleLiveEnabled":[4,"accessible-live-enabled"],"accessibleAddDefaults":[1,"accessible-add-default"],"accessibleAdd":[1,"accessible-add"],"accessibleSubtractDefaults":[1,"accessible-subtract-defaults"],"accessibleSubtract":[1,"accessible-subtract"],"theme":[1025],"margin":[1],"expand":[4],"identifier":[1],"min":[2],"labelDefaults":[1,"label-default"],"label":[1],"labelHidden":[4,"label-hidden"],"max":[2],"name":[1],"error":[1],"tooltip":[1],"step":[2],"rounding":[4],"role":[1],"disabled":[516],"required":[4],"value":[1025],"focusedValue":[32]}]);
@@ -11692,13 +12015,14 @@ const DuetProgress = /*@__PURE__*/proxyCustomElement(DuetProgress$1, [0,"duet-pr
11692
12015
  const DuetRadio = /*@__PURE__*/proxyCustomElement(DuetRadio$1, [2,"duet-radio",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleIndex":[1,"accessible-index"],"margin":[1],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"theme":[1025],"disabled":[516],"required":[4],"blockEvents":[4,"block-events"],"identifier":[1],"label":[1],"name":[1],"role":[1],"groupDisabled":[4,"group-disabled"],"groupDirection":[1,"group-direction"],"groupResponsive":[4,"group-responsive"],"checked":[1540],"value":[1537]}]);
11693
12016
  const DuetRadioGroup = /*@__PURE__*/proxyCustomElement(DuetRadioGroup$1, [6,"duet-radio-group",{"direction":[1],"margin":[1],"theme":[1025],"error":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"name":[1],"label":[1],"labelHidden":[4,"label-hidden"],"caption":[1],"responsive":[4],"value":[1537],"disabled":[4]}]);
11694
12017
  const DuetRangeSlider = /*@__PURE__*/proxyCustomElement(DuetRangeSlider$1, [2,"duet-range-slider",{"theme":[1025],"margin":[1],"expand":[4],"identifier":[1],"name":[1],"required":[4],"disabled":[516],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"min":[2],"label":[1],"labelHidden":[4,"label-hidden"],"unit":[1],"max":[2],"step":[2],"locale":[1],"value":[1026],"debounce":[2]}]);
12018
+ const DuetScrollable = /*@__PURE__*/proxyCustomElement(DuetScrollable$1, [1,"duet-scrollable",{"theme":[1025],"identifier":[1],"selected":[1026],"tablistAtStart":[32],"isTabContentSmallerThanWrapper":[32],"tablistAtEnd":[32],"childrenData":[32]}]);
11695
12019
  const DuetSelect = /*@__PURE__*/proxyCustomElement(DuetSelect$1, [2,"duet-select",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleDescribedBy":[1,"accessible-described-by"],"margin":[1],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"error":[1],"expand":[4],"value":[1537],"theme":[1025],"labelHidden":[4,"label-hidden"],"identifier":[1],"name":[1],"placeholder":[1],"caption":[1],"echoPlaceholder":[4,"echo-placeholder"],"items":[1],"disabled":[516],"required":[4],"label":[1],"role":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"processedItems":[32]}]);
11696
12020
  const DuetSpacer = /*@__PURE__*/proxyCustomElement(DuetSpacer$1, [1,"duet-spacer",{"size":[1],"direction":[1],"breakpoint":[1]}]);
11697
12021
  const DuetSpinner = /*@__PURE__*/proxyCustomElement(DuetSpinner$1, [1,"duet-spinner",{"accessibleLabel":[1,"accessible-label"],"color":[1],"size":[1],"theme":[1025]}]);
11698
12022
  const DuetStep = /*@__PURE__*/proxyCustomElement(DuetStep$1, [6,"duet-step",{"theme":[1025],"heading":[1],"headingLevel":[1,"heading-level"],"stepIndex":[2,"step-index"],"state":[1],"roundedTop":[4,"rounded-top"],"roundedBottom":[4,"rounded-bottom"]}]);
11699
12023
  const DuetStepper = /*@__PURE__*/proxyCustomElement(DuetStepper$1, [1,"duet-stepper",{"theme":[1025],"accessibleLive":[1,"accessible-live"],"margin":[1],"backDisabled":[4,"back-disabled"],"selected":[514]},[[0,"duetStepClick","onDuetStepClick"]]]);
11700
- const DuetTab = /*@__PURE__*/proxyCustomElement(DuetTab$1, [6,"duet-tab",{"label":[513],"selected":[516]}]);
11701
- const DuetTabGroup = /*@__PURE__*/proxyCustomElement(DuetTabGroup$1, [6,"duet-tab-group",{"theme":[1025],"variation":[1],"language":[1025],"labelDefaults":[1,"label-default"],"label":[1],"labelHidden":[4,"label-hidden"],"margin":[1],"padding":[1],"tabs":[32],"selected":[32]}]);
12024
+ const DuetTab = /*@__PURE__*/proxyCustomElement(DuetTab$1, [6,"duet-tab",{"label":[513],"selected":[516],"accessibleDescriptionDefault":[1,"accessible-description-defaults"],"accessibleDescription":[1,"accessible-description"]}]);
12025
+ const DuetTabGroup = /*@__PURE__*/proxyCustomElement(DuetTabGroup$1, [1,"duet-tab-group",{"theme":[1025],"scrolls":[4],"collapses":[4],"variation":[1],"language":[1025],"labelDefaults":[1,"label-default"],"label":[1],"labelHidden":[4,"label-hidden"],"identifier":[1],"margin":[1],"padding":[1],"tabs":[32],"selected":[32]}]);
11702
12026
  const DuetTable = /*@__PURE__*/proxyCustomElement(DuetTable$1, [4,"duet-table",{"theme":[1025],"margin":[1],"variation":[1],"sticky":[4],"stickyDistance":[1,"sticky-distance"],"breakpoint":[1],"matchesBreakpoint":[32]}]);
11703
12027
  const DuetTextarea = /*@__PURE__*/proxyCustomElement(DuetTextarea$1, [2,"duet-textarea",{"margin":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleAutocomplete":[1,"accessible-autocomplete"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"theme":[1025],"expand":[4],"disabled":[516],"identifier":[1],"required":[4],"label":[1],"labelHidden":[4,"label-hidden"],"name":[1],"placeholder":[1],"caption":[1],"echoPlaceholder":[4,"echo-placeholder"],"maxlength":[2],"minlength":[2],"error":[1],"role":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"value":[1025],"disallowPattern":[1,"disallow-pattern"],"counter":[4],"counterLabel":[1,"counter-label"]}]);
11704
12028
  const DuetToggle = /*@__PURE__*/proxyCustomElement(DuetToggle$1, [2,"duet-toggle",{"theme":[1025],"margin":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"label":[1],"required":[4],"disabled":[516],"checked":[1540],"value":[1537],"identifier":[1],"name":[1],"role":[1]}]);
@@ -11712,6 +12036,8 @@ const defineCustomElements = (opts) => {
11712
12036
  [
11713
12037
  DuetAlert,
11714
12038
  DuetBadge,
12039
+ DuetBreadcrumb,
12040
+ DuetBreadcrumbs,
11715
12041
  DuetButton,
11716
12042
  DuetCaption,
11717
12043
  DuetCard,
@@ -11750,6 +12076,7 @@ const defineCustomElements = (opts) => {
11750
12076
  DuetRadio,
11751
12077
  DuetRadioGroup,
11752
12078
  DuetRangeSlider,
12079
+ DuetScrollable,
11753
12080
  DuetSelect,
11754
12081
  DuetSpacer,
11755
12082
  DuetSpinner,
@@ -12165,4 +12492,4 @@ const shadowCss = /*#__PURE__*/Object.freeze({
12165
12492
  scopeCss: scopeCss
12166
12493
  });
12167
12494
 
12168
- export { DuetAlert, DuetBadge, DuetButton, DuetCaption, DuetCard, DuetCheckbox, DuetChoice, DuetChoiceGroup, DuetCollapsible, DuetCookieConsent, DuetDatePicker, DuetDivider, DuetEditableTable, DuetEditableTableButton, DuetEditableTableItem, DuetEmptyState, DuetFieldset, DuetFooter, DuetGrid, DuetGridItem, DuetHeader, DuetHeading, DuetHero, DuetIcon, DuetInput, DuetLabel, DuetLayout, DuetLink, DuetList, DuetListItem, DuetLogo, DuetModal, DuetNotification, DuetNotificationDrawer, DuetNumberInput, DuetParagraph, DuetProgress, DuetRadio, DuetRadioGroup, DuetRangeSlider, DuetSelect, DuetSpacer, DuetSpinner, DuetStep, DuetStepper, DuetTab, DuetTabGroup, DuetTable, DuetTextarea, DuetToggle, DuetTooltip, DuetTray, DuetUpload, DuetUploadAriaStatus, DuetVisuallyHidden, defineCustomElements, setAssetPath, setPlatformOptions };
12495
+ export { DuetAlert, DuetBadge, DuetBreadcrumb, DuetBreadcrumbs, DuetButton, DuetCaption, DuetCard, DuetCheckbox, DuetChoice, DuetChoiceGroup, DuetCollapsible, DuetCookieConsent, DuetDatePicker, DuetDivider, DuetEditableTable, DuetEditableTableButton, DuetEditableTableItem, DuetEmptyState, DuetFieldset, DuetFooter, DuetGrid, DuetGridItem, DuetHeader, DuetHeading, DuetHero, DuetIcon, DuetInput, DuetLabel, DuetLayout, DuetLink, DuetList, DuetListItem, DuetLogo, DuetModal, DuetNotification, DuetNotificationDrawer, DuetNumberInput, DuetParagraph, DuetProgress, DuetRadio, DuetRadioGroup, DuetRangeSlider, DuetScrollable, DuetSelect, DuetSpacer, DuetSpinner, DuetStep, DuetStepper, DuetTab, DuetTabGroup, DuetTable, DuetTextarea, DuetToggle, DuetTooltip, DuetTray, DuetUpload, DuetUploadAriaStatus, DuetVisuallyHidden, defineCustomElements, setAssetPath, setPlatformOptions };