@duetds/components 4.36.0 → 5.0.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 (324) hide show
  1. package/hydrate/index.js +1143 -983
  2. package/lib/cjs/duet-action-button.cjs.entry.js +163 -0
  3. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-button_2.cjs.entry.js +8 -4
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +3 -3
  9. package/lib/cjs/duet-card.cjs.entry.js +3 -3
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-choice_2.cjs.entry.js +4 -4
  12. package/lib/cjs/duet-collapsible.cjs.entry.js +3 -3
  13. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-date-picker.cjs.entry.js +4 -4
  15. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  16. package/lib/cjs/{duet-editable-table_4.cjs.entry.js → duet-editable-table_3.cjs.entry.js} +382 -337
  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 +2 -2
  21. package/lib/cjs/duet-header_2.cjs.entry.js +7 -7
  22. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-icon.cjs.entry.js +3 -3
  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 +2 -2
  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-pagination_2.cjs.entry.js +24 -14
  31. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  34. package/lib/cjs/duet-scrollable_3.cjs.entry.js +2 -2
  35. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-tray.cjs.entry.js +2 -2
  41. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  43. package/lib/cjs/duet.cjs.js +2 -2
  44. package/lib/cjs/{focus-utils-675b1aa3.js → focus-utils-1051dbe3.js} +1 -1
  45. package/lib/cjs/{index-58eb8f67.js → index-db0781a3.js} +1 -1
  46. package/lib/cjs/js-utils-be1d29ae.js +39 -0
  47. package/lib/cjs/loader.cjs.js +2 -2
  48. package/lib/cjs/{token-utils-05bd23b4.js → token-utils-ac8432d1.js} +10 -7
  49. package/lib/cjs/{tokens-8596cece.js → tokens-72efc7fd.js} +0 -0
  50. package/lib/cjs/{tokens.module-6b2df1c2.js → tokens.module-6afcc9c1.js} +0 -0
  51. package/lib/collection/collection-manifest.json +14 -11
  52. package/lib/collection/components/duet-action-button/duet-action-button.css +87 -0
  53. package/lib/collection/components/duet-action-button/duet-action-button.js +489 -0
  54. package/lib/collection/components/duet-button/duet-button.js +23 -1
  55. package/lib/collection/components/duet-choice/duet-choice.css +20 -15
  56. package/lib/collection/components/duet-choice/duet-choice.js +10 -8
  57. package/lib/collection/components/duet-collapsible/duet-collapsible.js +2 -1
  58. package/lib/collection/components/duet-date-picker/duet-date-picker.css +2 -57
  59. package/lib/collection/components/duet-date-picker/duet-date-picker.js +2 -6
  60. package/lib/collection/components/duet-editable-table/duet-editable-table-tabledata.js +3 -2
  61. package/lib/collection/components/duet-editable-table/duet-editable-table.css +20 -1
  62. package/lib/collection/components/duet-editable-table/duet-editable-table.js +331 -205
  63. package/lib/collection/components/duet-header/duet-header.css +5 -1
  64. package/lib/collection/components/duet-header/duet-header.js +4 -3
  65. package/lib/collection/components/duet-pagination/duet-pagination.css +3 -62
  66. package/lib/collection/components/duet-pagination/duet-pagination.js +49 -19
  67. package/lib/collection/components/duet-range-stepper/duet-range-stepper.css +4 -55
  68. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -4
  69. package/lib/collection/components/duet-tab-group/duet-tab-group.js +5 -1
  70. package/lib/collection/components/duet-table/duet-table.css +42 -8
  71. package/lib/collection/components/duet-table/duet-table.js +11 -2
  72. package/lib/collection/components/duet-upload/duet-upload.css +25 -0
  73. package/lib/collection/components/duet-upload/duet-upload.js +270 -166
  74. package/lib/collection/components/duet-upload/upload-validators.js +1 -1
  75. package/lib/collection/utils/fixture-utils.js +3 -1
  76. package/lib/collection/utils/js-utils.js +36 -1
  77. package/lib/collection/utils/token-utils.js +33 -6
  78. package/lib/custom-elements-bundle/index.d.ts +6 -12
  79. package/lib/custom-elements-bundle/index.js +1159 -1015
  80. package/lib/duet/duet.esm.js +1 -1
  81. package/lib/duet/duet.js +1 -1
  82. package/lib/duet/p-038f5a76.js +4 -0
  83. package/lib/duet/{p-aa5abb52.system.entry.js → p-077e9821.system.entry.js} +1 -1
  84. package/lib/duet/{p-9358e24b.entry.js → p-08f1713b.entry.js} +1 -1
  85. package/lib/duet/{p-6aa8d848.entry.js → p-0cf96c98.entry.js} +1 -1
  86. package/lib/duet/p-0ff56acb.system.entry.js +4 -0
  87. package/lib/duet/p-13302cc8.entry.js +4 -0
  88. package/lib/duet/{p-a0f979a4.entry.js → p-1630296b.entry.js} +1 -1
  89. package/lib/duet/{p-818cd527.entry.js → p-1acbc962.entry.js} +1 -1
  90. package/lib/duet/{p-1afe9641.system.entry.js → p-20dd2c3c.system.entry.js} +1 -1
  91. package/lib/duet/{p-85d9b1b0.system.js → p-21ab96c0.system.js} +1 -1
  92. package/lib/duet/{p-e67fc1ed.system.entry.js → p-222c74a9.system.entry.js} +1 -1
  93. package/lib/duet/{p-5e410fa9.system.entry.js → p-242ba82c.system.entry.js} +1 -1
  94. package/lib/duet/{p-40360b4a.system.entry.js → p-25fdd6d2.system.entry.js} +1 -1
  95. package/lib/duet/{p-ddb6344c.system.js → p-268c0abb.system.js} +0 -0
  96. package/lib/duet/{p-a2db8ff2.system.entry.js → p-26c5cc5a.system.entry.js} +1 -1
  97. package/lib/duet/{p-4b688aea.entry.js → p-2772bbb1.entry.js} +1 -1
  98. package/lib/duet/{p-bf25e52a.entry.js → p-28e4253c.entry.js} +1 -1
  99. package/lib/duet/{p-6df7b78c.entry.js → p-3018d431.entry.js} +1 -1
  100. package/lib/duet/{p-ad8a49a3.system.entry.js → p-347ffc22.system.entry.js} +1 -1
  101. package/lib/duet/{p-e9ca7e01.entry.js → p-3651b695.entry.js} +1 -1
  102. package/lib/duet/{p-4f32cc18.system.entry.js → p-3946058c.system.entry.js} +1 -1
  103. package/lib/duet/p-3d5a497d.system.entry.js +4 -0
  104. package/lib/duet/{p-8c0fd5de.js → p-3eed1432.js} +1 -1
  105. package/lib/duet/{p-44a3794d.system.entry.js → p-41246296.system.entry.js} +1 -1
  106. package/lib/duet/{p-314b64b4.system.entry.js → p-43204695.system.entry.js} +1 -1
  107. package/lib/duet/{p-daede773.entry.js → p-440a9c95.entry.js} +1 -1
  108. package/lib/duet/{p-8b8c2ef4.entry.js → p-44bb7ac8.entry.js} +1 -1
  109. package/lib/duet/{p-b42066e0.entry.js → p-489d1777.entry.js} +1 -1
  110. package/lib/duet/{p-2a9345a7.entry.js → p-48cdb48a.entry.js} +1 -1
  111. package/lib/duet/{p-e584ce1d.entry.js → p-4b72d87e.entry.js} +1 -1
  112. package/lib/duet/{p-99a112e4.entry.js → p-4be7b036.entry.js} +1 -1
  113. package/lib/duet/{p-ac44ab7a.entry.js → p-4d300ede.entry.js} +1 -1
  114. package/lib/duet/{p-8a768d0b.entry.js → p-569ee410.entry.js} +1 -1
  115. package/lib/duet/{p-84940fc4.system.entry.js → p-56f472b3.system.entry.js} +1 -1
  116. package/lib/duet/p-5746d88c.js +4 -0
  117. package/lib/duet/{p-90799d0a.entry.js → p-5a69aed5.entry.js} +1 -1
  118. package/lib/duet/{p-8db453bf.system.js → p-5cc4b13d.system.js} +1 -1
  119. package/lib/duet/{p-8706664b.system.entry.js → p-63b70e9d.system.entry.js} +1 -1
  120. package/lib/duet/p-63c8a2cd.system.entry.js +4 -0
  121. package/lib/duet/p-6abdc336.entry.js +4 -0
  122. package/lib/duet/p-6ba556ad.entry.js +4 -0
  123. package/lib/duet/{p-f993e4c3.system.entry.js → p-6c27e55c.system.entry.js} +1 -1
  124. package/lib/duet/{p-7730d2b8.entry.js → p-6d3485e0.entry.js} +1 -1
  125. package/lib/duet/{p-a75776f5.entry.js → p-6f2aec60.entry.js} +1 -1
  126. package/lib/duet/p-75640b15.entry.js +4 -0
  127. package/lib/duet/{p-21cd146b.system.entry.js → p-7769f3af.system.entry.js} +1 -1
  128. package/lib/duet/p-77acbfe4.system.js +4 -0
  129. package/lib/duet/{p-ad06c91d.system.entry.js → p-7a8cea36.system.entry.js} +1 -1
  130. package/lib/duet/{p-fa99eaa4.system.js → p-812b0905.system.js} +0 -0
  131. package/lib/duet/{p-ae82d8e7.entry.js → p-815e5588.entry.js} +1 -1
  132. package/lib/duet/p-823501e1.system.entry.js +4 -0
  133. package/lib/duet/p-8e83c0ea.system.entry.js +4 -0
  134. package/lib/duet/p-92639d0b.system.js +4 -0
  135. package/lib/duet/{p-22e6615d.system.entry.js → p-93302e3a.system.entry.js} +1 -1
  136. package/lib/duet/{p-6e6e1b77.system.entry.js → p-94bc746c.system.entry.js} +1 -1
  137. package/lib/duet/{p-09920da9.entry.js → p-9716f92a.entry.js} +1 -1
  138. package/lib/duet/{p-9ead1c59.entry.js → p-9a535dd9.entry.js} +1 -1
  139. package/lib/duet/{p-78779ba1.system.entry.js → p-9cf9c233.system.entry.js} +1 -1
  140. package/lib/duet/{p-c0a24b5e.system.entry.js → p-a853c03b.system.entry.js} +2 -2
  141. package/lib/duet/{p-ea124391.system.entry.js → p-ab651bab.system.entry.js} +1 -1
  142. package/lib/duet/{p-fb55e381.system.entry.js → p-b1d3ee06.system.entry.js} +1 -1
  143. package/lib/duet/p-b4a3ee75.entry.js +4 -0
  144. package/lib/duet/{p-b5aaf161.entry.js → p-b4eb216b.entry.js} +1 -1
  145. package/lib/duet/p-baf1b7ec.system.entry.js +4 -0
  146. package/lib/duet/{p-7f1cbb7d.entry.js → p-bfd81bd7.entry.js} +1 -1
  147. package/lib/duet/{p-80aa512a.system.entry.js → p-c0f57d75.system.entry.js} +1 -1
  148. package/lib/duet/{p-dda7f098.entry.js → p-c3342f8e.entry.js} +1 -1
  149. package/lib/duet/{p-aebf6700.entry.js → p-ca7fd033.entry.js} +1 -1
  150. package/lib/duet/{p-0769de2b.system.entry.js → p-cac113fe.system.entry.js} +1 -1
  151. package/lib/duet/p-cb701a9c.entry.js +4 -0
  152. package/lib/duet/{p-0349b691.system.entry.js → p-d214b9b2.system.entry.js} +1 -1
  153. package/lib/duet/{p-b11f2fcd.system.entry.js → p-d2b946cd.system.entry.js} +1 -1
  154. package/lib/duet/{p-5f4362b4.entry.js → p-d3169bff.entry.js} +1 -1
  155. package/lib/duet/{p-b6b58d31.entry.js → p-d57ac853.entry.js} +1 -1
  156. package/lib/duet/{p-59480299.system.entry.js → p-d7263055.system.entry.js} +1 -1
  157. package/lib/duet/{p-c167a5aa.system.entry.js → p-d7ad9b74.system.entry.js} +1 -1
  158. package/lib/duet/{p-8143f3de.js → p-d7bc0102.js} +0 -0
  159. package/lib/duet/{p-d444e178.system.entry.js → p-d81e9ca0.system.entry.js} +1 -1
  160. package/lib/duet/{p-878c1c83.system.entry.js → p-d8f83ac5.system.entry.js} +1 -1
  161. package/lib/duet/{p-84a9fbf4.system.entry.js → p-da76095f.system.entry.js} +1 -1
  162. package/lib/duet/p-dbb4a588.js +4 -0
  163. package/lib/duet/{p-a8f707d4.system.entry.js → p-e1920232.system.entry.js} +2 -2
  164. package/lib/duet/{p-1c1c9705.entry.js → p-e4c6b105.entry.js} +1 -1
  165. package/lib/duet/{p-663aec3a.entry.js → p-e5531f4f.entry.js} +1 -1
  166. package/lib/duet/p-ea293f60.entry.js +4 -0
  167. package/lib/duet/{p-95f71b43.system.entry.js → p-eb39b494.system.entry.js} +1 -1
  168. package/lib/duet/{p-ad07f399.js → p-ed75c8b3.js} +0 -0
  169. package/lib/duet/{p-fd561872.system.entry.js → p-f20b487a.system.entry.js} +1 -1
  170. package/lib/duet/{p-1aeb418c.entry.js → p-f7d7ec47.entry.js} +1 -1
  171. package/lib/duet/p-fa02e479.entry.js +4 -0
  172. package/lib/duet/p-faf60d2a.entry.js +4 -0
  173. package/lib/duet/{p-28a22555.system.entry.js → p-fb8ed18e.system.entry.js} +1 -1
  174. package/lib/duet/p-fea2cbc5.system.js +4 -0
  175. package/lib/duet/{p-c61ace58.system.entry.js → p-ff3d551a.system.entry.js} +1 -1
  176. package/lib/duet/{p-bd602c98.entry.js → p-ff7ab8cb.entry.js} +1 -1
  177. package/lib/esm/duet-action-button.entry.js +159 -0
  178. package/lib/esm/duet-alert.entry.js +1 -1
  179. package/lib/esm/duet-badge.entry.js +1 -1
  180. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  181. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  182. package/lib/esm/duet-button_2.entry.js +8 -4
  183. package/lib/esm/duet-caption_4.entry.js +3 -3
  184. package/lib/esm/duet-card.entry.js +3 -3
  185. package/lib/esm/duet-checkbox.entry.js +1 -1
  186. package/lib/esm/duet-choice_2.entry.js +4 -4
  187. package/lib/esm/duet-collapsible.entry.js +3 -3
  188. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  189. package/lib/esm/duet-date-picker.entry.js +4 -4
  190. package/lib/esm/duet-divider_2.entry.js +1 -1
  191. package/lib/esm/{duet-editable-table_4.entry.js → duet-editable-table_3.entry.js} +384 -338
  192. package/lib/esm/duet-empty-state.entry.js +1 -1
  193. package/lib/esm/duet-fieldset.entry.js +1 -1
  194. package/lib/esm/duet-footer.entry.js +1 -1
  195. package/lib/esm/duet-grid_2.entry.js +2 -2
  196. package/lib/esm/duet-header_2.entry.js +7 -7
  197. package/lib/esm/duet-hero.entry.js +1 -1
  198. package/lib/esm/duet-icon.entry.js +3 -3
  199. package/lib/esm/duet-input_2.entry.js +1 -1
  200. package/lib/esm/duet-layout.entry.js +1 -1
  201. package/lib/esm/duet-list_2.entry.js +1 -1
  202. package/lib/esm/duet-modal.entry.js +2 -2
  203. package/lib/esm/duet-notification_2.entry.js +1 -1
  204. package/lib/esm/duet-number-input.entry.js +1 -1
  205. package/lib/esm/duet-pagination_2.entry.js +24 -14
  206. package/lib/esm/duet-progress.entry.js +1 -1
  207. package/lib/esm/duet-radio_2.entry.js +1 -1
  208. package/lib/esm/duet-range-slider.entry.js +2 -2
  209. package/lib/esm/duet-scrollable_3.entry.js +2 -2
  210. package/lib/esm/duet-select.entry.js +1 -1
  211. package/lib/esm/duet-step_2.entry.js +1 -1
  212. package/lib/esm/duet-textarea.entry.js +1 -1
  213. package/lib/esm/duet-toggle.entry.js +1 -1
  214. package/lib/esm/duet-tooltip.entry.js +1 -1
  215. package/lib/esm/duet-tray.entry.js +2 -2
  216. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  217. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  218. package/lib/esm/duet.js +2 -2
  219. package/lib/esm/{focus-utils-bd3c1702.js → focus-utils-f49312fd.js} +1 -1
  220. package/lib/esm/{index-49b2d31a.js → index-9526901a.js} +1 -1
  221. package/lib/esm/js-utils-52e0944c.js +36 -0
  222. package/lib/esm/loader.js +2 -2
  223. package/lib/esm/{token-utils-75f78ca4.js → token-utils-e9a0cb88.js} +10 -7
  224. package/lib/esm/{tokens-e110dc89.js → tokens-57d98824.js} +0 -0
  225. package/lib/esm/{tokens.module-49cbf963.js → tokens.module-a13e9683.js} +0 -0
  226. package/lib/esm-es5/duet-action-button.entry.js +4 -0
  227. package/lib/esm-es5/duet-alert.entry.js +1 -1
  228. package/lib/esm-es5/duet-badge.entry.js +1 -1
  229. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  230. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  231. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  232. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  233. package/lib/esm-es5/duet-card.entry.js +1 -1
  234. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  235. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  236. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  237. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  238. package/lib/esm-es5/duet-date-picker.entry.js +2 -2
  239. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  240. package/lib/esm-es5/duet-editable-table_3.entry.js +4 -0
  241. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  242. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  243. package/lib/esm-es5/duet-footer.entry.js +1 -1
  244. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  245. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  246. package/lib/esm-es5/duet-hero.entry.js +1 -1
  247. package/lib/esm-es5/duet-icon.entry.js +1 -1
  248. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  249. package/lib/esm-es5/duet-layout.entry.js +1 -1
  250. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  251. package/lib/esm-es5/duet-modal.entry.js +1 -1
  252. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  253. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  254. package/lib/esm-es5/duet-pagination_2.entry.js +2 -2
  255. package/lib/esm-es5/duet-progress.entry.js +1 -1
  256. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  257. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  258. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  259. package/lib/esm-es5/duet-select.entry.js +1 -1
  260. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  261. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  262. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  263. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  264. package/lib/esm-es5/duet-tray.entry.js +1 -1
  265. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  266. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  267. package/lib/esm-es5/duet.js +1 -1
  268. package/lib/esm-es5/{focus-utils-bd3c1702.js → focus-utils-f49312fd.js} +1 -1
  269. package/lib/esm-es5/{index-49b2d31a.js → index-9526901a.js} +1 -1
  270. package/lib/esm-es5/js-utils-52e0944c.js +4 -0
  271. package/lib/esm-es5/loader.js +1 -1
  272. package/lib/esm-es5/token-utils-e9a0cb88.js +4 -0
  273. package/lib/esm-es5/{tokens-e110dc89.js → tokens-57d98824.js} +0 -0
  274. package/lib/esm-es5/{tokens.module-49cbf963.js → tokens.module-a13e9683.js} +0 -0
  275. package/lib/html.html-data.json +5266 -0
  276. package/lib/types/components/duet-action-button/duet-action-button.d.ts +112 -0
  277. package/lib/types/components/duet-button/duet-button.d.ts +4 -0
  278. package/lib/types/components/duet-collapsible/duet-collapsible.d.ts +1 -0
  279. package/lib/types/components/duet-editable-table/duet-editable-table-tabledata.d.ts +2 -2
  280. package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +106 -48
  281. package/lib/types/components/duet-header/duet-header.d.ts +1 -0
  282. package/lib/types/components/duet-pagination/duet-pagination.d.ts +7 -2
  283. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +4 -0
  284. package/lib/types/components/duet-table/duet-table.d.ts +16 -0
  285. package/lib/types/components/duet-upload/duet-upload.d.ts +68 -58
  286. package/lib/types/components.d.ts +225 -149
  287. package/lib/types/utils/js-utils.d.ts +2 -0
  288. package/lib/types/utils/token-utils.d.ts +2 -0
  289. package/package.json +4 -5
  290. package/lib/cjs/duet-editable-table-button.cjs.entry.js +0 -96
  291. package/lib/cjs/js-utils-33a9dbe3.js +0 -16
  292. package/lib/collection/components/duet-editable-table/duet-editable-table-button.css +0 -32
  293. package/lib/collection/components/duet-editable-table/duet-editable-table-button.js +0 -225
  294. package/lib/collection/components/duet-editable-table/duet-editable-table-item.css +0 -36
  295. package/lib/collection/components/duet-editable-table/duet-editable-table-item.js +0 -225
  296. package/lib/duet/p-1b56e483.system.entry.js +0 -4
  297. package/lib/duet/p-298a9ffc.system.js +0 -4
  298. package/lib/duet/p-363abf26.system.entry.js +0 -4
  299. package/lib/duet/p-3c13a041.entry.js +0 -4
  300. package/lib/duet/p-50b4fb2c.js +0 -4
  301. package/lib/duet/p-6da8743f.system.entry.js +0 -4
  302. package/lib/duet/p-72ce134a.entry.js +0 -4
  303. package/lib/duet/p-78aa974b.system.entry.js +0 -4
  304. package/lib/duet/p-7e2c06d0.js +0 -4
  305. package/lib/duet/p-81867417.system.js +0 -4
  306. package/lib/duet/p-8f56fd3f.entry.js +0 -4
  307. package/lib/duet/p-8fa952df.entry.js +0 -4
  308. package/lib/duet/p-9782946f.entry.js +0 -4
  309. package/lib/duet/p-995f20fc.entry.js +0 -4
  310. package/lib/duet/p-a154a0c0.entry.js +0 -4
  311. package/lib/duet/p-a16a58c1.system.js +0 -4
  312. package/lib/duet/p-abcbdef5.entry.js +0 -4
  313. package/lib/duet/p-b25d3769.js +0 -4
  314. package/lib/duet/p-c5db93a7.system.entry.js +0 -4
  315. package/lib/duet/p-d32b240d.system.entry.js +0 -4
  316. package/lib/duet/p-fc02d8e9.entry.js +0 -4
  317. package/lib/esm/duet-editable-table-button.entry.js +0 -92
  318. package/lib/esm/js-utils-b69f17df.js +0 -14
  319. package/lib/esm-es5/duet-editable-table-button.entry.js +0 -4
  320. package/lib/esm-es5/duet-editable-table_4.entry.js +0 -4
  321. package/lib/esm-es5/js-utils-b69f17df.js +0 -4
  322. package/lib/esm-es5/token-utils-75f78ca4.js +0 -4
  323. package/lib/types/components/duet-editable-table/duet-editable-table-button.d.ts +0 -73
  324. package/lib/types/components/duet-editable-table/duet-editable-table-item.d.ts +0 -76
package/hydrate/index.js CHANGED
@@ -5543,6 +5543,60 @@ const cmpModules = new Map, getModule = e => {
5543
5543
  isTesting: !1
5544
5544
  }, styles = new Map;
5545
5545
 
5546
+ function chr4() {
5547
+ return Math.random().toString(16).slice(-4);
5548
+ }
5549
+ function createID(prefix) {
5550
+ return `${prefix}-${chr4()}${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}${chr4()}${chr4()}`;
5551
+ }
5552
+
5553
+ const debounce = (func, timeout = 250) => {
5554
+ let timer;
5555
+ return (...args) => {
5556
+ clearTimeout(timer);
5557
+ timer = setTimeout(() => {
5558
+ func.apply(undefined, args);
5559
+ }, timeout);
5560
+ };
5561
+ };
5562
+ function fieldSorter(fields) {
5563
+ return function (a, b) {
5564
+ return fields
5565
+ .map(function (o) {
5566
+ let dir = 1;
5567
+ if (o[0] === "-") {
5568
+ dir = -1;
5569
+ o = o.substring(1);
5570
+ }
5571
+ if (a[o] > b[o]) {
5572
+ return dir;
5573
+ }
5574
+ if (a[o] < b[o]) {
5575
+ return -dir;
5576
+ }
5577
+ return 0;
5578
+ })
5579
+ .reduce(function firstNonZeroValue(p, n) {
5580
+ return p ? p : n;
5581
+ }, 0);
5582
+ };
5583
+ }
5584
+
5585
+ const isArrowLeftKey = (e) => e.keyCode === 37;
5586
+ const isArrowUpKey = (e) => e.keyCode === 38;
5587
+ const isArrowRightKey = (e) => e.keyCode === 39;
5588
+ const isArrowDownKey = (e) => e.keyCode === 40;
5589
+ const isArrowKey = (e) => isArrowDownKey(e) || isArrowRightKey(e) || isArrowUpKey(e) || isArrowLeftKey(e);
5590
+ const isEscapeKey = (e) => e.key === "Escape" || e.key === "Esc" || e.keyCode === 27;
5591
+ const isBackspaceKey = (e) => e.keyCode === 8;
5592
+ const isSpaceKey = (e) => e.key === "Space" || e.keyCode === 32;
5593
+ const isPlusKey = (e) => e.key === "+" || e.keyCode === 43;
5594
+ const isMinusKey = (e) => e.key === "-" || e.keyCode === 45;
5595
+ const isQuestionKey = (e) => e.key === "?";
5596
+ const isEnterKey = (e) => e.key === "Enter" || e.keyCode === 13;
5597
+ const isKeyboardClick = (e) => isEnterKey(e) || isSpaceKey(e);
5598
+ const isNumber = (e) => (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105);
5599
+
5546
5600
  function isObject(maybeObj) {
5547
5601
  return Object.prototype.toString.call(maybeObj) === "[object Object]";
5548
5602
  }
@@ -5680,438 +5734,153 @@ const inheritGlobalTheme = (component) => {
5680
5734
  }
5681
5735
  };
5682
5736
 
5683
- const duetAlertCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-alert,*.sc-duet-alert::after,*.sc-duet-alert::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-alert-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%;max-height:999px;border-radius:4px;transition:opacity 300ms ease, visibility 300ms ease, transform 300ms ease, max-height 300ms ease}/*!@:host(:focus)*/.sc-duet-alert-h:focus{outline:0}/*!@:host(.user-is-tabbing:focus)*/.user-is-tabbing.sc-duet-alert-h:focus{border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing.duet-theme-turva:focus)*/.user-is-tabbing.duet-theme-turva.sc-duet-alert-h:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@:host(.duet-alert-is-dismissed)*/.duet-alert-is-dismissed.sc-duet-alert-h{max-height:0;visibility:hidden;opacity:0;transform:scale(0.98)}/*!@:host(.duet-alert-is-dismissed) .duet-alert*/.duet-alert-is-dismissed.sc-duet-alert-h .duet-alert.sc-duet-alert{margin:0 !important}/*!@.duet-alert*/.duet-alert.sc-duet-alert{margin-bottom:16px !important;position:relative;width:100%;padding:16px;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;color:#00294d;background:#f2f8fb;border:1px solid #0077b3;border-radius:4px;transition:margin 100ms 300ms ease}/*!@.duet-alert.duet-p-0*/.duet-alert.duet-p-0.sc-duet-alert{padding:0 !important}/*!@.duet-alert.duet-m-0*/.duet-alert.duet-m-0.sc-duet-alert{margin:0 !important}/*!@.duet-alert.duet-theme-turva*/.duet-alert.duet-theme-turva.sc-duet-alert{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;background:#f3f4f5;border-color:#171c3a}/*!@.duet-alert.warning*/.duet-alert.warning.sc-duet-alert{background:#fffbf4;border-color:#f7b228}/*!@.duet-alert.warning.duet-theme-turva*/.duet-alert.warning.duet-theme-turva.sc-duet-alert{background:#fffaf3;border-color:#faa40f}/*!@.duet-alert.danger*/.duet-alert.danger.sc-duet-alert{background:#fdf4f7;border-color:#de2362}/*!@.duet-alert.danger.duet-theme-turva*/.duet-alert.danger.duet-theme-turva.sc-duet-alert{background:#fdf4f3;border-color:#e02a0d}/*!@.duet-alert.success*/.duet-alert.success.sc-duet-alert{background:#f2f9f7;border-color:#00875a}/*!@.duet-alert.success.duet-theme-turva*/.duet-alert.success.duet-theme-turva.sc-duet-alert{background:#f3f9f6;border-color:#08874e}/*!@.duet-alert-dismiss*/.duet-alert-dismiss.sc-duet-alert{position:absolute;top:2px;right:2px}/*!@.duet-alert-container*/.duet-alert-container.sc-duet-alert{display:inline-flex;align-items:center;justify-content:center;width:100%;margin:0 auto !important}/*!@.duet-alert-container span*/.duet-alert-container.sc-duet-alert span.sc-duet-alert{width:100%}/*!@.duet-alert-has-icon .duet-alert-container*/.duet-alert-has-icon.sc-duet-alert .duet-alert-container.sc-duet-alert{margin-top:2px !important}/*!@.duet-alert-icon*/.duet-alert-icon.sc-duet-alert{display:inline-block;align-self:center;width:20px;min-width:20px;height:20px;margin:0 16px 0 0 !important}/*!@.duet-alert-icon duet-icon*/.duet-alert-icon.sc-duet-alert duet-icon.sc-duet-alert{width:20px;height:20px}/*!@.duet-alert-is-dismissible*/.duet-alert-is-dismissible.sc-duet-alert{padding:16px 48px 16px 16px;text-align:left}/*!@.duet-alert-is-dismissible .duet-alert-container*/.duet-alert-is-dismissible.sc-duet-alert .duet-alert-container.sc-duet-alert{text-align:left}";
5684
-
5685
- class DuetAlert {
5686
- constructor(hostRef) {
5687
- registerInstance(this, hostRef);
5688
- this.duetDismiss = createEvent$2(this, "duetDismiss", 7);
5689
- /**
5690
- * Theme of the card.
5691
- */
5692
- this.theme = "";
5693
- /**
5694
- * State() variables
5695
- * Inlined decorator, alphabetical order.
5696
- */
5697
- this.isDismissed = false;
5698
- /**
5699
- * Property to change languageDefaults on the component.
5700
- * normally you would handle these strings on an application level and override @accessibleLabel when needed
5701
- * @default {fi: "Sulje viesti", sv: "Stäng meddelandet", en: "Close the message"}
5702
- */
5703
- this.accessibleLabelDefaults = {
5704
- fi: "Sulje viesti",
5705
- sv: "Stäng meddelandet",
5706
- en: "Close the message",
5707
- };
5708
- /**
5709
- * Adds accessible label for the dismissible alert close button.
5710
- * @default {fi: "Sulje viesti", sv: "Stäng meddelandet", en: "Close the message"}
5711
- */
5712
- this.accessibleLabel = getLocaleString(this.accessibleLabelDefaults);
5713
- /**
5714
- * Enable or disabled announcements by assistive technologies.
5715
- */
5716
- this.announcements = true;
5717
- /**
5718
- * Icon to display to the left of the content.
5719
- */
5720
- this.icon = "";
5721
- /**
5722
- * Controls the margin of the component.
5723
- */
5724
- this.margin = "auto";
5725
- /**
5726
- * Controls the padding of the component.
5727
- */
5728
- this.padding = "auto";
5729
- /**
5730
- * Style variation of the alert.
5731
- */
5732
- this.variation = "default";
5733
- /**
5734
- * Should a button be rendered to dismiss the alert?
5735
- */
5736
- this.dismissible = false;
5737
- this.handleDismiss = (ev) => {
5738
- this.isDismissed = true;
5739
- this.duetDismiss.emit({
5740
- component: "duet-alert",
5741
- originalEvent: ev,
5742
- });
5743
- };
5744
- }
5745
- /**
5746
- * Component lifecycle events.
5747
- */
5748
- componentWillLoad() {
5749
- inheritGlobalTheme(this);
5750
- }
5751
- componentDidLoad() {
5752
- if (this.autoDismiss) {
5753
- this.timeoutID = setTimeout(() => this.handleDismiss(), this.autoDismiss);
5754
- }
5755
- }
5756
- disconnectedCallback() {
5757
- if (this.timeoutID) {
5758
- clearTimeout(this.timeoutID);
5759
- }
5760
- }
5761
- /**
5762
- * render() function
5763
- * Always the last one in the class.
5764
- */
5765
- render() {
5766
- const closeColor = this.theme === "turva" ? "secondary-turva" : "secondary";
5767
- const role = this.variation === "danger" || this.variation === "warning" ? "alert" : "status";
5768
- return (hAsync(Host, { tabindex: "0", class: { "duet-theme-turva": this.theme === "turva", "duet-alert-is-dismissed": this.isDismissed }, role: this.announcements ? role : undefined }, hAsync("div", { class: {
5769
- "duet-alert": true,
5770
- "duet-alert-has-icon": !!this.icon,
5771
- "duet-alert-is-dismissible": this.dismissible,
5772
- "duet-p-0": this.padding === "none",
5773
- "duet-m-0": this.margin === "none",
5774
- [this.variation]: true,
5775
- "duet-theme-turva": this.theme === "turva",
5776
- } }, hAsync("div", { class: "duet-alert-container" }, this.icon && (hAsync("div", { class: "duet-alert-icon" }, hAsync("duet-icon", { size: "auto", name: this.icon, color: "currentColor" }))), hAsync("span", null, hAsync("slot", null))), this.dismissible && (hAsync("div", { class: "duet-alert-dismiss" }, hAsync("duet-button", { variation: "plain", accessibleLabel: this.accessibleLabel, color: closeColor, iconSize: "medium", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: this.handleDismiss, fixed: true }))))));
5777
- }
5778
- static get style() { return duetAlertCss; }
5779
- static get cmpMeta() { return {
5780
- "$flags$": 9,
5781
- "$tagName$": "duet-alert",
5782
- "$members$": {
5783
- "theme": [1025],
5784
- "accessibleLabelDefaults": [1, "accessible-label-default"],
5785
- "accessibleLabel": [1, "accessible-label"],
5786
- "announcements": [4],
5787
- "icon": [1],
5788
- "autoDismiss": [2, "auto-dismiss"],
5789
- "margin": [1],
5790
- "padding": [1],
5791
- "variation": [1],
5792
- "dismissible": [4],
5793
- "isDismissed": [32],
5794
- "timeoutID": [32]
5795
- },
5796
- "$listeners$": undefined,
5797
- "$lazyBundleId$": "-",
5798
- "$attrsToReflect$": []
5799
- }; }
5800
- }
5801
-
5802
- const duetBadgeCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-badge,*.sc-duet-badge::after,*.sc-duet-badge::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-badge-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:4px !important;margin-bottom:2px !important;display:inline-block;width:auto;vertical-align:middle}/*!@:host:last-child, :host:last-of-type*/.sc-duet-badge-h:last-child,.sc-duet-badge-h:last-of-type{margin-right:0 !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-badge-h{margin:0 !important}/*!@.duet-badge*/.duet-badge.sc-duet-badge{width:100%;padding:4.4444444444px 12px 5.4444444444px;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.75rem;font-style:normal;font-weight:600;line-height:1.25;color:#00294d;text-align:center;word-break:break-word;vertical-align:middle;background:#e6f1f7;border-radius:20rem}/*!@.duet-badge.duet-p-0*/.duet-badge.duet-p-0.sc-duet-badge{padding:0 !important}/*!@.duet-badge.duet-m-0*/.duet-badge.duet-m-0.sc-duet-badge{margin:0 !important}/*!@.duet-badge.duet-theme-turva*/.duet-badge.duet-theme-turva.sc-duet-badge{padding:5.4444444444px 12px 4.4444444444px;font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-weight:700;color:#171c3a;background:#e8e8eb}/*!@.duet-badge.warning*/.duet-badge.warning.sc-duet-badge{background:#fef3df}/*!@.duet-badge.warning.duet-theme-turva*/.duet-badge.warning.duet-theme-turva.sc-duet-badge{background:#fef1db}/*!@.duet-badge.danger*/.duet-badge.danger.sc-duet-badge{background:#fce9ef}/*!@.duet-badge.danger.duet-theme-turva*/.duet-badge.danger.duet-theme-turva.sc-duet-badge{background:#fceae7}/*!@.duet-badge.success*/.duet-badge.success.sc-duet-badge{background:#e6f3ef}/*!@.duet-badge.success.duet-theme-turva*/.duet-badge.success.duet-theme-turva.sc-duet-badge{background:#e6f3ed}";
5803
-
5804
- class DuetBadge {
5805
- constructor(hostRef) {
5806
- registerInstance(this, hostRef);
5807
- /**
5808
- * Theme of the badge.
5809
- */
5810
- this.theme = "";
5811
- /**
5812
- * Style variation of the alert.
5813
- */
5814
- this.variation = "default";
5815
- /**
5816
- * Controls the margin of the component.
5817
- */
5818
- this.margin = "auto";
5819
- }
5820
- /**
5821
- * Component lifecycle events.
5822
- */
5823
- componentWillLoad() {
5824
- inheritGlobalTheme(this);
5825
- }
5826
- /**
5827
- * render() function
5828
- * Always the last one of the class.
5829
- */
5830
- render() {
5831
- return (hAsync(Host, { class: { "duet-m-0": this.margin === "none" } }, hAsync("div", { class: {
5832
- "duet-badge": true,
5833
- [this.variation]: true,
5834
- "duet-theme-turva": this.theme === "turva",
5835
- } }, hAsync("slot", null))));
5836
- }
5837
- static get style() { return duetBadgeCss; }
5838
- static get cmpMeta() { return {
5839
- "$flags$": 9,
5840
- "$tagName$": "duet-badge",
5841
- "$members$": {
5842
- "theme": [1025],
5843
- "variation": [1],
5844
- "margin": [1]
5845
- },
5846
- "$listeners$": undefined,
5847
- "$lazyBundleId$": "-",
5848
- "$attrsToReflect$": []
5849
- }; }
5850
- }
5851
-
5852
- const duetBreadcrumbCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-breadcrumb,*.sc-duet-breadcrumb::after,*.sc-duet-breadcrumb::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-breadcrumb-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}/*!@.duet-breadcrumb*/.duet-breadcrumb.sc-duet-breadcrumb{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100%;font-size:0.875rem;color:#00294d;text-decoration:none}/*!@.duet-breadcrumb:hover*/.duet-breadcrumb.sc-duet-breadcrumb:hover{color:#004d80}/*!@.duet-breadcrumb.duet-theme-turva*/.duet-breadcrumb.duet-theme-turva.sc-duet-breadcrumb{color:#171c3a}/*!@.duet-breadcrumb.duet-theme-turva:hover*/.duet-breadcrumb.duet-theme-turva.sc-duet-breadcrumb:hover{color:#940925}/*!@.duet-breadcrumb:focus*/.duet-breadcrumb.sc-duet-breadcrumb:focus{outline:0}/*!@.duet-breadcrumb:active*/.duet-breadcrumb.sc-duet-breadcrumb:active{opacity:0.75}/*!@:host(.user-is-tabbing) .duet-breadcrumb:focus*/.user-is-tabbing.sc-duet-breadcrumb-h .duet-breadcrumb.sc-duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus*/.user-is-tabbing.sc-duet-breadcrumb-h .duet-breadcrumb.duet-theme-turva.sc-duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
5853
-
5854
- class DuetBreadcrumb {
5855
- constructor(hostRef) {
5856
- registerInstance(this, hostRef);
5857
- /**
5858
- * Theme
5859
- */
5860
- this.theme = "";
5861
- /**
5862
- * Href
5863
- */
5864
- this.href = "";
5865
- /**
5866
- * Icon
5867
- */
5868
- this.icon = "";
5869
- }
5870
- /**
5871
- * Component lifecycle events.
5872
- */
5873
- componentWillLoad() {
5874
- inheritGlobalTheme(this);
5875
- }
5876
- /**
5877
- * render() function
5878
- * Always the last one in the class.
5879
- */
5880
- render() {
5881
- return (hAsync(Host, null, hAsync("a", { class: {
5882
- "duet-breadcrumb": true,
5883
- "duet-theme-turva": this.theme === "turva",
5884
- }, href: this.href, "aria-label": this.accessibleLabel }, this.icon && hAsync("duet-icon", { size: "x-small", name: this.icon, margin: "none", color: "currentColor" }), !this.icon && hAsync("slot", null))));
5885
- }
5886
- static get style() { return duetBreadcrumbCss; }
5887
- static get cmpMeta() { return {
5888
- "$flags$": 9,
5889
- "$tagName$": "duet-breadcrumb",
5890
- "$members$": {
5891
- "theme": [1025],
5892
- "href": [1025],
5893
- "icon": [1025],
5894
- "accessibleLabel": [1, "accessible-label"]
5895
- },
5896
- "$listeners$": undefined,
5897
- "$lazyBundleId$": "-",
5898
- "$attrsToReflect$": []
5899
- }; }
5900
- }
5901
-
5902
- 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>"};
5903
-
5904
- const duetBreadcrumbsCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-breadcrumbs,*.sc-duet-breadcrumbs::after,*.sc-duet-breadcrumbs::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-breadcrumbs-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block}/*!@.duet-breadcrumbs*/.duet-breadcrumbs.sc-duet-breadcrumbs{font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-breadcrumbs ol*/.duet-breadcrumbs.sc-duet-breadcrumbs ol.sc-duet-breadcrumbs{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start;padding:10px 16px;color:#00294d;list-style:none;background:#f3f9fc;border-bottom:1px solid #e1e3e6}@media (min-width: 62em){/*!@.duet-breadcrumbs ol*/.duet-breadcrumbs.sc-duet-breadcrumbs ol.sc-duet-breadcrumbs{padding:10px 36px}}/*!@.duet-breadcrumbs.duet-theme-turva*/.duet-breadcrumbs.duet-theme-turva.sc-duet-breadcrumbs{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-breadcrumbs.duet-theme-turva ol*/.duet-breadcrumbs.duet-theme-turva.sc-duet-breadcrumbs ol.sc-duet-breadcrumbs{color:#171c3a;background:#fcf3f4}/*!@.duet-breadcrumbs .duet-breadrumbs-arrow*/.duet-breadcrumbs.sc-duet-breadcrumbs .duet-breadrumbs-arrow.sc-duet-breadcrumbs{display:inherit;align-items:center;justify-content:center;width:0.375rem;height:0.375rem}/*!@.duet-breadcrumbs .hide*/.duet-breadcrumbs.sc-duet-breadcrumbs .hide.sc-duet-breadcrumbs{display:none}";
5905
-
5906
- class DuetBreadcrumbs {
5907
- constructor(hostRef) {
5908
- registerInstance(this, hostRef);
5909
- this.observers = [];
5910
- this.breadcrumbsAriaLabel = getLocaleString({
5911
- fi: "Murupolku",
5912
- sv: "Ströbröd",
5913
- en: "Breadcrumbs",
5914
- });
5915
- /**
5916
- * Theme
5917
- */
5918
- this.theme = "";
5919
- }
5920
- /**
5921
- * Component lifecycle events.
5922
- */
5923
- componentWillLoad() {
5924
- inheritGlobalTheme(this);
5925
- this.children = Array.from(this.element.children);
5926
- }
5927
- connectedCallback() {
5928
- {
5929
- return;
5930
- }
5931
- }
5932
- disconnectedCallback() {
5933
- {
5934
- return;
5935
- }
5936
- }
5937
- /**
5938
- * render() function
5939
- * Always the last one in the class.
5940
- */
5941
- render() {
5942
- return (hAsync(Host, null, hAsync("nav", { "aria-label": this.breadcrumbsAriaLabel, class: {
5943
- "duet-breadcrumbs": true,
5944
- "duet-theme-turva": this.theme === "turva",
5945
- } }, hAsync("ol", null, this.children.map((child, index) => (hAsync(Fragment, null, index > 0 && (hAsync("li", { "aria-hidden": "true" }, hAsync("duet-icon", { class: "duet-breadrumbs-arrow", size: "auto", icon: actionArrowRightSmall.svg, margin: "none", color: "currentColor" }))), hAsync("li", { innerHTML: child.outerHTML }), hAsync("div", { class: "hide" }, hAsync("slot", null)))))))));
5946
- }
5947
- get element() { return getElement(this); }
5948
- static get style() { return duetBreadcrumbsCss; }
5949
- static get cmpMeta() { return {
5950
- "$flags$": 9,
5951
- "$tagName$": "duet-breadcrumbs",
5952
- "$members$": {
5953
- "theme": [1025],
5954
- "children": [32]
5955
- },
5956
- "$listeners$": undefined,
5957
- "$lazyBundleId$": "-",
5958
- "$attrsToReflect$": []
5959
- }; }
5960
- }
5961
-
5962
- const DuetStringsExternalDefaults = {
5963
- fi: "Avautuu uuteen ikkunaan",
5964
- sv: "Öppnas i nytt fönster",
5965
- en: "Opens in a new window",
5966
- };
5967
-
5968
- const colorWarning = "rgb(247, 178, 40)";
5969
- const colorGrayDarker = "rgb(101, 119, 135)";
5970
- const colorGrayLighter = "rgb(245, 248, 250)";
5971
- const colorCategoryHome = "rgb(211, 36, 131)";
5972
- const colorPrimary = "rgb(0, 119, 179)";
5973
- const colorCategoryVehicle = "rgb(54, 74, 129)";
5974
- const colorSuccess = "rgb(0, 135, 90)";
5975
- const colorCategoryFamily = "rgb(11, 114, 136)";
5976
- const colorPrimaryLightest = "rgb(243, 249, 252)";
5977
- const colorPrimaryLighter = "rgb(230, 242, 248)";
5978
- const colorBrandBlue = "rgb(0, 161, 212)";
5979
- const colorPrimaryDark = "rgb(0, 77, 128)";
5980
- const colorGrayLightest = "rgb(255, 255, 255)";
5981
- const colorCategoryFinance = "rgb(122, 1, 196)";
5982
- const colorGrayDark = "rgb(144, 149, 153)";
5983
- const colorGrayLight = "rgb(225, 227, 230)";
5984
- const colorSecondary = "rgb(0, 41, 77)";
5985
- const colorCategoryPet = "rgb(168, 1, 78)";
5986
- const colorPrimaryLight = "rgb(205, 229, 241)";
5987
- const colorCategoryTravel = "rgb(213, 66, 3)";
5988
- const colorGray = "rgb(207, 210, 212)";
5989
- const colorDanger = "rgb(222, 35, 98)";
5990
- const colorGrayDarkerTurva = "rgb(68, 68, 69)";
5991
- const colorGrayLighterTurva = "rgb(245, 245, 247)";
5992
- const colorCategoryHomeTurva = "rgb(161, 10, 78)";
5993
- const colorPrimaryTurva = "rgb(198, 12, 48)";
5994
- const colorCategoryVehicleTurva = "rgb(23, 28, 58)";
5995
- const colorSuccessTurva = "rgb(8, 135, 78)";
5996
- const colorPrimaryLightestTurva = "rgb(252, 243, 244)";
5997
- const colorCategoryFamilyTurva = "rgb(199, 12, 112)";
5998
- const colorCategoryUnionTurva = "rgb(169, 69, 124)";
5999
- const colorPrimaryLighterTurva = "rgb(249, 230, 234)";
6000
- const colorPrimaryDarkTurva = "rgb(148, 9, 37)";
6001
- const colorGrayLightestTurva = "rgb(255, 255, 255)";
6002
- const colorGrayDarkTurva = "rgb(116, 116, 117)";
6003
- const colorGrayLightTurva = "rgb(228, 228, 230)";
6004
- const colorBrandGrayTurva = "rgb(178, 180, 179)";
6005
- const colorSecondaryTurva = "rgb(23, 28, 58)";
6006
- const colorPrimaryLightTurva = "rgb(244, 207, 214)";
6007
- const colorCategoryTravelTurva = "rgb(9, 129, 148)";
6008
- const colorGrayTurva = "rgb(207, 207, 209)";
6009
- const colorDangerTurva = "rgb(224, 42, 13)";
6010
- const colorWarningTurva = "rgb(250, 164, 15)";
6011
- const colorData07 = "rgb(192, 101, 247)";
6012
- const colorData08 = "rgb(0, 105, 191)";
6013
- const colorData09 = "rgb(19, 120, 53)";
6014
- const colorData10 = "rgb(179, 60, 24)";
6015
- const colorData11 = "rgb(13, 163, 166)";
6016
- const colorData01 = "rgb(122, 1, 196)";
6017
- const colorData12 = "rgb(11, 114, 136)";
6018
- const colorData02 = "rgb(0, 155, 204)";
6019
- const colorData13 = "rgb(179, 137, 24)";
6020
- const colorData03 = "rgb(27, 171, 75)";
6021
- const colorData14 = "rgb(128, 98, 17)";
6022
- const colorData04 = "rgb(255, 86, 34)";
6023
- const colorData15 = "rgb(0, 41, 77)";
6024
- const colorData05 = "rgb(245, 76, 154)";
6025
- const colorData06 = "rgb(194, 21, 101)";
6026
- const fontWeightExtraBold = "800";
6027
- const letterSpacingHeading = "-0.01rem";
6028
- const fontFamilyHeadingTurva = "'turva-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
6029
- const fontFamilyTextTurva = "'turva-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
6030
- const fontFamilyHeading = "'localtapiola-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
6031
- const fontFamilyText = "'localtapiola-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
6032
- const fontWeightBold = "700";
6033
- const fontWeightNormal = "400";
6034
- const fontWeightSemiBold = "600";
6035
- const fontSizeXxxxLarge = "4.5rem";
6036
- const fontSizeXxxLarge = "3rem";
6037
- const fontSizeXxLarge = "2.25rem";
6038
- const fontSizeXLarge = "1.5rem";
6039
- const fontSizeLarge = "1.25rem";
6040
- const fontSizeMedium = "1rem";
6041
- const fontSizeSmall = "0.875rem";
6042
- const fontSizeXSmall = "0.75rem";
6043
- const radiusSharp = "0";
6044
- const radiusDefault = "4px";
6045
- const radiusCircle = "50%";
6046
- const radiusPill = "20rem";
6047
- const shadowTooltipTurva = "0 2px 10px 0 rgba(117, 117, 117, 0.13)";
6048
- const shadowDefault = "0 2px 6px 0 rgba(0, 41, 77, 0.07)";
6049
- const shadowTooltip = "0 2px 10px 0 rgba(0, 41, 77, 0.07)";
6050
- const shadowCardTurva = "0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)";
6051
- const shadowModal = "0 2px 20px 0 rgba(0, 0, 0, 0.2)";
6052
- const shadowCard = "0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)";
6053
- const shadowHoverTurva = "0 2px 10px 0 rgba(117, 117, 117, 0.15)";
6054
- const shadowHover = "0 2px 10px 0 rgba(0, 41, 77, 0.1)";
6055
- const shadowDefaultTurva = "0 2px 6px 0 rgba(117, 117, 117, 0.13)";
6056
- const spaceXxSmall = "4px";
6057
- const spaceLarge = "20px";
6058
- const spaceXSmall = "8px";
6059
- const spaceXxxSmall = "2px";
6060
- const spaceSmall = "12px";
6061
- const spaceMedium = "16px";
6062
- const spaceXxLarge = "36px";
6063
- const spaceXxxxLarge = "72px";
6064
- const spaceXxxxxLarge = "94px";
6065
- const spaceXxxLarge = "48px";
6066
- const spaceXLarge = "28px";
6067
- const sizeIconXxLarge = "48px";
6068
- const sizeFormBorder = "1px";
6069
- const sizeStepMedium = "40px";
6070
- const sizeButtonMinWidth = "8rem";
6071
- const sizeHeader = "4rem";
6072
- const sizeIconXxxLarge = "72px";
6073
- const sizeIconXLarge = "36px";
6074
- const sizeIconXxSmall = "10px";
6075
- const sizeStepSmall = "30px";
6076
- const sizeNavigation = "3rem";
6077
- const sizeIconLarge = "30px";
6078
- const sizeLayoutMaxWidth = "1110px";
6079
- const sizeTappableSquare = "48px";
6080
- const sizeIconXSmall = "16px";
6081
- const sizeIconXxxSmall = "7px";
6082
- const sizeButtonBorder = "2px";
6083
- const sizeButtonTinyBorder = "1px";
6084
- const sizeIconMedium = "24px";
6085
- const sizeIconSmall = "20px";
6086
- const opacity85 = "0.85";
6087
- const opacity75 = "0.75";
6088
- const opacity50 = "0.50";
6089
- const opacity30 = "0.30";
6090
- const zIndexDropdown = "600";
6091
- const zIndexSpinner = "800";
6092
- const zIndexDefault = "1";
6093
- const zIndexToast = "500";
6094
- const zIndexPopup = "950";
6095
- const zIndexModal = "900";
6096
- const zIndexSticky = "300";
6097
- const zIndexMasked = "100";
6098
- const zIndexDeep = "-999999";
6099
- const zIndexOverlay = "700";
6100
- const zIndexMask = "200";
6101
- const zIndexHeader = "400";
6102
- const lineHeightMedium = "1.5";
6103
- const lineHeightSmall = "1.25";
6104
- const lineHeightXSmall = "1.1";
6105
- const transitionQuickly = "300ms ease";
6106
- const transitionSlowly = "600ms ease";
6107
- const mediaQueryXxSmall = "'(max-width: 22.5em)'";
6108
- const mediaQueryXSmall = "'(max-width: 35.9375em)'";
6109
- const mediaQuerySmall = "'(min-width: 36em)'";
6110
- const mediaQueryMedium = "'(min-width: 48em)'";
6111
- const mediaQueryLarge = "'(min-width: 62em)'";
6112
- const mediaQueryXLarge = "'(min-width: 64.0625em)'";
6113
- const mediaQueryXxLarge = "'(min-width: 76.25em)'";
6114
- const mediaQueryXxxLarge = "'(min-width: 106.25em)'";
5737
+ const colorWarning = "rgb(247, 178, 40)";
5738
+ const colorGrayDarker = "rgb(101, 119, 135)";
5739
+ const colorGrayLighter = "rgb(245, 248, 250)";
5740
+ const colorCategoryHome = "rgb(211, 36, 131)";
5741
+ const colorPrimary = "rgb(0, 119, 179)";
5742
+ const colorCategoryVehicle = "rgb(54, 74, 129)";
5743
+ const colorSuccess = "rgb(0, 135, 90)";
5744
+ const colorCategoryFamily = "rgb(11, 114, 136)";
5745
+ const colorPrimaryLightest = "rgb(243, 249, 252)";
5746
+ const colorPrimaryLighter = "rgb(230, 242, 248)";
5747
+ const colorBrandBlue = "rgb(0, 161, 212)";
5748
+ const colorPrimaryDark = "rgb(0, 77, 128)";
5749
+ const colorGrayLightest = "rgb(255, 255, 255)";
5750
+ const colorCategoryFinance = "rgb(122, 1, 196)";
5751
+ const colorGrayDark = "rgb(144, 149, 153)";
5752
+ const colorGrayLight = "rgb(225, 227, 230)";
5753
+ const colorSecondary = "rgb(0, 41, 77)";
5754
+ const colorCategoryPet = "rgb(168, 1, 78)";
5755
+ const colorPrimaryLight = "rgb(205, 229, 241)";
5756
+ const colorCategoryTravel = "rgb(213, 66, 3)";
5757
+ const colorGray = "rgb(207, 210, 212)";
5758
+ const colorDanger = "rgb(222, 35, 98)";
5759
+ const colorGrayDarkerTurva = "rgb(68, 68, 69)";
5760
+ const colorGrayLighterTurva = "rgb(245, 245, 247)";
5761
+ const colorCategoryHomeTurva = "rgb(161, 10, 78)";
5762
+ const colorPrimaryTurva = "rgb(198, 12, 48)";
5763
+ const colorCategoryVehicleTurva = "rgb(23, 28, 58)";
5764
+ const colorSuccessTurva = "rgb(8, 135, 78)";
5765
+ const colorPrimaryLightestTurva = "rgb(252, 243, 244)";
5766
+ const colorCategoryFamilyTurva = "rgb(199, 12, 112)";
5767
+ const colorCategoryUnionTurva = "rgb(169, 69, 124)";
5768
+ const colorPrimaryLighterTurva = "rgb(249, 230, 234)";
5769
+ const colorPrimaryDarkTurva = "rgb(148, 9, 37)";
5770
+ const colorGrayLightestTurva = "rgb(255, 255, 255)";
5771
+ const colorGrayDarkTurva = "rgb(116, 116, 117)";
5772
+ const colorGrayLightTurva = "rgb(228, 228, 230)";
5773
+ const colorBrandGrayTurva = "rgb(178, 180, 179)";
5774
+ const colorSecondaryTurva = "rgb(23, 28, 58)";
5775
+ const colorPrimaryLightTurva = "rgb(244, 207, 214)";
5776
+ const colorCategoryTravelTurva = "rgb(9, 129, 148)";
5777
+ const colorGrayTurva = "rgb(207, 207, 209)";
5778
+ const colorDangerTurva = "rgb(224, 42, 13)";
5779
+ const colorWarningTurva = "rgb(250, 164, 15)";
5780
+ const colorData07 = "rgb(192, 101, 247)";
5781
+ const colorData08 = "rgb(0, 105, 191)";
5782
+ const colorData09 = "rgb(19, 120, 53)";
5783
+ const colorData10 = "rgb(179, 60, 24)";
5784
+ const colorData11 = "rgb(13, 163, 166)";
5785
+ const colorData01 = "rgb(122, 1, 196)";
5786
+ const colorData12 = "rgb(11, 114, 136)";
5787
+ const colorData02 = "rgb(0, 155, 204)";
5788
+ const colorData13 = "rgb(179, 137, 24)";
5789
+ const colorData03 = "rgb(27, 171, 75)";
5790
+ const colorData14 = "rgb(128, 98, 17)";
5791
+ const colorData04 = "rgb(255, 86, 34)";
5792
+ const colorData15 = "rgb(0, 41, 77)";
5793
+ const colorData05 = "rgb(245, 76, 154)";
5794
+ const colorData06 = "rgb(194, 21, 101)";
5795
+ const fontWeightExtraBold = "800";
5796
+ const letterSpacingHeading = "-0.01rem";
5797
+ const fontFamilyHeadingTurva = "'turva-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
5798
+ const fontFamilyTextTurva = "'turva-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
5799
+ const fontFamilyHeading = "'localtapiola-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
5800
+ const fontFamilyText = "'localtapiola-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
5801
+ const fontWeightBold = "700";
5802
+ const fontWeightNormal = "400";
5803
+ const fontWeightSemiBold = "600";
5804
+ const fontSizeXxxxLarge = "4.5rem";
5805
+ const fontSizeXxxLarge = "3rem";
5806
+ const fontSizeXxLarge = "2.25rem";
5807
+ const fontSizeXLarge = "1.5rem";
5808
+ const fontSizeLarge = "1.25rem";
5809
+ const fontSizeMedium = "1rem";
5810
+ const fontSizeSmall = "0.875rem";
5811
+ const fontSizeXSmall = "0.75rem";
5812
+ const radiusSharp = "0";
5813
+ const radiusDefault = "4px";
5814
+ const radiusCircle = "50%";
5815
+ const radiusPill = "20rem";
5816
+ const shadowTooltipTurva = "0 2px 10px 0 rgba(117, 117, 117, 0.13)";
5817
+ const shadowDefault = "0 2px 6px 0 rgba(0, 41, 77, 0.07)";
5818
+ const shadowTooltip = "0 2px 10px 0 rgba(0, 41, 77, 0.07)";
5819
+ const shadowCardTurva = "0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)";
5820
+ const shadowModal = "0 2px 20px 0 rgba(0, 0, 0, 0.2)";
5821
+ const shadowCard = "0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)";
5822
+ const shadowHoverTurva = "0 2px 10px 0 rgba(117, 117, 117, 0.15)";
5823
+ const shadowHover = "0 2px 10px 0 rgba(0, 41, 77, 0.1)";
5824
+ const shadowDefaultTurva = "0 2px 6px 0 rgba(117, 117, 117, 0.13)";
5825
+ const spaceXxSmall = "4px";
5826
+ const spaceLarge = "20px";
5827
+ const spaceXSmall = "8px";
5828
+ const spaceXxxSmall = "2px";
5829
+ const spaceSmall = "12px";
5830
+ const spaceMedium = "16px";
5831
+ const spaceXxLarge = "36px";
5832
+ const spaceXxxxLarge = "72px";
5833
+ const spaceXxxxxLarge = "94px";
5834
+ const spaceXxxLarge = "48px";
5835
+ const spaceXLarge = "28px";
5836
+ const sizeIconXxLarge = "48px";
5837
+ const sizeFormBorder = "1px";
5838
+ const sizeStepMedium = "40px";
5839
+ const sizeButtonMinWidth = "8rem";
5840
+ const sizeHeader = "4rem";
5841
+ const sizeIconXxxLarge = "72px";
5842
+ const sizeIconXLarge = "36px";
5843
+ const sizeIconXxSmall = "10px";
5844
+ const sizeStepSmall = "30px";
5845
+ const sizeNavigation = "3rem";
5846
+ const sizeIconLarge = "30px";
5847
+ const sizeLayoutMaxWidth = "1110px";
5848
+ const sizeTappableSquare = "48px";
5849
+ const sizeIconXSmall = "16px";
5850
+ const sizeIconXxxSmall = "7px";
5851
+ const sizeButtonBorder = "2px";
5852
+ const sizeButtonTinyBorder = "1px";
5853
+ const sizeIconMedium = "24px";
5854
+ const sizeIconSmall = "20px";
5855
+ const opacity85 = "0.85";
5856
+ const opacity75 = "0.75";
5857
+ const opacity50 = "0.50";
5858
+ const opacity30 = "0.30";
5859
+ const zIndexDropdown = "600";
5860
+ const zIndexSpinner = "800";
5861
+ const zIndexDefault = "1";
5862
+ const zIndexToast = "500";
5863
+ const zIndexPopup = "950";
5864
+ const zIndexModal = "900";
5865
+ const zIndexSticky = "300";
5866
+ const zIndexMasked = "100";
5867
+ const zIndexDeep = "-999999";
5868
+ const zIndexOverlay = "700";
5869
+ const zIndexMask = "200";
5870
+ const zIndexHeader = "400";
5871
+ const lineHeightMedium = "1.5";
5872
+ const lineHeightSmall = "1.25";
5873
+ const lineHeightXSmall = "1.1";
5874
+ const transitionQuickly = "300ms ease";
5875
+ const transitionSlowly = "600ms ease";
5876
+ const mediaQueryXxSmall = "'(max-width: 22.5em)'";
5877
+ const mediaQueryXSmall = "'(max-width: 35.9375em)'";
5878
+ const mediaQuerySmall = "'(min-width: 36em)'";
5879
+ const mediaQueryMedium = "'(min-width: 48em)'";
5880
+ const mediaQueryLarge = "'(min-width: 62em)'";
5881
+ const mediaQueryXLarge = "'(min-width: 64.0625em)'";
5882
+ const mediaQueryXxLarge = "'(min-width: 76.25em)'";
5883
+ const mediaQueryXxxLarge = "'(min-width: 106.25em)'";
6115
5884
 
6116
5885
  var tokens$2 = /*#__PURE__*/Object.freeze({
6117
5886
  __proto__: null,
@@ -6289,50 +6058,513 @@ function getTheme(theme = "") {
6289
6058
  if (allowedThemes.includes(theme.toLowerCase())) {
6290
6059
  return theme.toLowerCase();
6291
6060
  }
6292
- return "";
6293
- }
6294
- function hasColor(str = "") {
6295
- return str.indexOf("Color") === 0 || str.indexOf("color") === 0;
6296
- }
6297
- function addColor(str = "") {
6298
- if (str && !isDashCase(str) && !hasColor(str)) {
6299
- return `color${capitalize(str)}`;
6061
+ return "";
6062
+ }
6063
+ function capitalizeFirstLetter(string) {
6064
+ return string.charAt(0).toUpperCase() + string.slice(1);
6065
+ }
6066
+ function hasType(t, str = "") {
6067
+ return str.indexOf(capitalizeFirstLetter(t)) === 0 || str.indexOf(t) === 0;
6068
+ }
6069
+ function addPrefix(prefix, str = "") {
6070
+ if (str && !isDashCase(str) && !hasType(prefix, str)) {
6071
+ return `${prefix}${capitalize(str)}`;
6072
+ }
6073
+ return str;
6074
+ }
6075
+ function addTheme(str, theme) {
6076
+ const hasTheme = getTheme(theme).length;
6077
+ if (hasTheme && str.indexOf(theme) === -1) {
6078
+ return `${str}${capitalize(theme)}`;
6079
+ }
6080
+ return str;
6081
+ }
6082
+ function getColorByName(name, theme = "") {
6083
+ if (!name) {
6084
+ return undefined;
6085
+ }
6086
+ const defaultColor = convertToColorName(name);
6087
+ const themedColor = convertToColorName(name, theme);
6088
+ // lets just try to get the color first to save some cycles
6089
+ let resolvedToken = tokens$2[themedColor];
6090
+ if (!resolvedToken) {
6091
+ resolvedToken = tokens$2[defaultColor];
6092
+ }
6093
+ return resolvedToken;
6094
+ }
6095
+ function convertToColorName(name = "", theme = "") {
6096
+ let colorResolution = name;
6097
+ const dash = isDashCase(name);
6098
+ if (dash) {
6099
+ colorResolution = camelize(colorResolution);
6100
+ }
6101
+ colorResolution = addPrefix("color", colorResolution);
6102
+ colorResolution = addTheme(colorResolution, theme);
6103
+ // takes care of the case where colorPrimaryDark ends up with ColorPrimaryDark
6104
+ colorResolution = lowerCaseFirst(colorResolution);
6105
+ return colorResolution;
6106
+ }
6107
+
6108
+ const duetActionButtonCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-action-button,*.sc-duet-action-button::after,*.sc-duet-action-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-action-button-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}/*!@button.duet-action-button*/button.duet-action-button.sc-duet-action-button{white-space:nowrap}/*!@button.duet-action-button*/button.duet-action-button.sc-duet-action-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:auto !important;padding:0 !important;margin:0 0 0 8px !important;color:#00294d;cursor:pointer;background:#f5f8fa;border-radius:50%;transition:background-color 300ms ease !important}/*!@.duet-theme-turva button.duet-action-button*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button{color:#171c3a;background:#f5f5f7}/*!@button.duet-action-button duet-icon*/button.duet-action-button.sc-duet-action-button duet-icon.sc-duet-action-button{display:block}@media (max-width: 35.9375em){/*!@button.duet-action-button*/button.duet-action-button.sc-duet-action-button{width:32px;height:32px}}/*!@button.duet-action-button:not(:disabled):hover*/button.duet-action-button.sc-duet-action-button:not(:disabled):hover{background:#e9ecee !important}/*!@.duet-theme-turva button.duet-action-button:not(:disabled):hover*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button:not(:disabled):hover{background:#e9e9eb !important}/*!@button.duet-action-button:focus*/button.duet-action-button.sc-duet-action-button:focus{outline:0;box-shadow:0 0 0 2px #0077b3 !important}/*!@.duet-theme-turva button.duet-action-button:focus*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button:focus{box-shadow:0 0 0 2px #171c3a !important}/*!@button.duet-action-button:active:focus*/button.duet-action-button.sc-duet-action-button:active:focus{background:#dddfe1 !important;box-shadow:none}/*!@.duet-theme-turva button.duet-action-button:active:focus*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button:active:focus{background:#ddddde !important}/*!@button.duet-action-button:disabled*/button.duet-action-button.sc-duet-action-button:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}/*!@.duet-theme-turva button.duet-action-button:disabled*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button:disabled{color:#747475;background:#f5f5f7}";
6109
+
6110
+ /**
6111
+ * Slot: default slot inside an invisible element, this can be used to enhance accessibility
6112
+ * Part: button this part enables style overrides for the button
6113
+ * Part: icon this part enables style overrides for the icon
6114
+ */
6115
+ class DuetActionButton {
6116
+ constructor(hostRef) {
6117
+ registerInstance(this, hostRef);
6118
+ this.duetActionEvent = createEvent$2(this, "duetActionEvent", 6);
6119
+ this.numbersStore = "";
6120
+ /**
6121
+ * Theme of the pagination.
6122
+ */
6123
+ this.theme = "";
6124
+ /**
6125
+ * Name of the icon to display
6126
+ */
6127
+ this.iconName = "action-arrow-left-small";
6128
+ /**
6129
+ * Color of the icon to display
6130
+ */
6131
+ this.iconColor = "currentColor";
6132
+ /**
6133
+ * Size of the icon
6134
+ */
6135
+ this.iconSize = "xx-small";
6136
+ /**
6137
+ * Name of action being called
6138
+ */
6139
+ this.actionName = "default-action";
6140
+ /**
6141
+ * Name of id of action that was called being called
6142
+ */
6143
+ this.actionId = undefined;
6144
+ /**
6145
+ * Name of id of action that was called being called
6146
+ */
6147
+ this.actionMeta = undefined;
6148
+ /**
6149
+ * Disables the button
6150
+ */
6151
+ this.disabled = false;
6152
+ /**
6153
+ * Custom color to be used for the icon, as a design token entered in camelCase
6154
+ * or kebab-case. Example: "color-primary". This property can also be set to
6155
+ * "currentColor" which forces the icon to use the CSS text color of parent
6156
+ * element instead. Useful when you want to control the color in stylesheet
6157
+ * instead.
6158
+ */
6159
+ this.color = "";
6160
+ /**
6161
+ * Custom color to be used for a background, as a design token entered
6162
+ * in camelCase or kebab-case. Using this option the icon will always be resized
6163
+ * to $size-icon-medium on mobile viewports. Example: "color-primary".
6164
+ */
6165
+ this.background = "";
6166
+ /**
6167
+ * Described By id
6168
+ */
6169
+ this.ariaDescribedBy = undefined;
6170
+ /**
6171
+ * Aria description the button
6172
+ */
6173
+ this.ariaDescription = undefined;
6174
+ /**
6175
+ * Default pagination labels
6176
+ */
6177
+ this.ariaLabelsDefaults = {
6178
+ en: {
6179
+ label: "Click to activate action",
6180
+ },
6181
+ fi: {
6182
+ label: "Klikkaa toiminnon aktivointiin",
6183
+ },
6184
+ sv: {
6185
+ label: "Klicka för att aktivera åtgärd",
6186
+ },
6187
+ };
6188
+ /**
6189
+ * Default pagination labels
6190
+ */
6191
+ this.ariaLabels = getLocaleString(this.ariaLabelsDefaults);
6192
+ /**
6193
+ * Used to indicate which dom element with ID this element controls
6194
+ */
6195
+ this.ariaControls = "";
6196
+ this.listId = createID("duet-action-button");
6197
+ /**
6198
+ * Private methods.
6199
+ */
6200
+ //helper to emit relevant page events
6201
+ this.emitPageEvent = debounce(e => {
6202
+ this.duetActionEvent.emit({
6203
+ component: "duet-action-button",
6204
+ originalEvent: e,
6205
+ action: this.actionId,
6206
+ name: this.actionName,
6207
+ meta: this.actionMeta,
6208
+ id: this.listId,
6209
+ });
6210
+ });
6211
+ }
6212
+ //handle a11y keyboard navigation events
6213
+ async onKeyboardDown(e) {
6214
+ if (isKeyboardClick(e)) {
6215
+ this.emitPageEvent(e);
6216
+ }
6217
+ }
6218
+ //set update current when mouse click on page number
6219
+ async onMouseHandler(e) {
6220
+ e.preventDefault();
6221
+ this.duetActionEvent.emit({
6222
+ component: "duet-action-button",
6223
+ originalEvent: e,
6224
+ action: this.actionName,
6225
+ id: this.actionId,
6226
+ meta: this.actionMeta,
6227
+ });
6228
+ }
6229
+ /**
6230
+ * Component lifecycle events.
6231
+ */
6232
+ componentWillLoad() {
6233
+ inheritGlobalTheme(this);
6234
+ }
6235
+ /**
6236
+ * render() function
6237
+ * Always the last one in the class.
6238
+ */
6239
+ render() {
6240
+ const color = this.color === "currentColor" ? "currentColor" : getColorByName(this.color, this.theme);
6241
+ const styles = {
6242
+ color,
6243
+ background: getColorByName(this.background, this.theme),
6244
+ "border-color": getColorByName(this.iconColor, this.theme),
6245
+ "border-width": "1px",
6246
+ "border-style": "solid",
6247
+ };
6248
+ return (hAsync(Host, { onKeyDown: e => this.onKeyboardDown(e) }, hAsync("button", { part: "button", style: styles, disabled: this.disabled, id: this.listId, class: {
6249
+ "duet-action-button": true,
6250
+ "duet-action-button--disabled": this.disabled,
6251
+ [`duet-action-button--${this.theme}`]: this.theme !== "",
6252
+ }, type: "button", onClick: e => this.onMouseHandler(e), "aria-label": this.ariaLabels.label, "aria-description": this.ariaDescription, "aria-describedby": this.ariaDescribedBy, "aria-controls": this.ariaControls }, hAsync("duet-icon", { part: "icon", name: this.iconName, color: this.iconColor, margin: "none", size: this.iconSize }), hAsync("duet-visually-hidden", null, hAsync("slot", null)))));
6253
+ }
6254
+ get element() { return getElement(this); }
6255
+ static get style() { return duetActionButtonCss; }
6256
+ static get cmpMeta() { return {
6257
+ "$flags$": 9,
6258
+ "$tagName$": "duet-action-button",
6259
+ "$members$": {
6260
+ "theme": [1025],
6261
+ "iconName": [1, "icon-name"],
6262
+ "iconColor": [1, "icon-color"],
6263
+ "iconSize": [1, "icon-size"],
6264
+ "actionName": [1, "action-name"],
6265
+ "actionId": [1, "action-id"],
6266
+ "actionMeta": [1, "action-meta"],
6267
+ "disabled": [4],
6268
+ "color": [513],
6269
+ "background": [1],
6270
+ "ariaDescribedBy": [1, "accessible-described-by"],
6271
+ "ariaDescription": [1, "accessible-description"],
6272
+ "ariaLabelsDefaults": [16],
6273
+ "ariaLabels": [16],
6274
+ "ariaControls": [1, "accessible-controls"],
6275
+ "numbersStore": [32]
6276
+ },
6277
+ "$listeners$": undefined,
6278
+ "$lazyBundleId$": "-",
6279
+ "$attrsToReflect$": [["color", "color"]]
6280
+ }; }
6281
+ }
6282
+
6283
+ const duetAlertCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-alert,*.sc-duet-alert::after,*.sc-duet-alert::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-alert-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%;max-height:999px;border-radius:4px;transition:opacity 300ms ease, visibility 300ms ease, transform 300ms ease, max-height 300ms ease}/*!@:host(:focus)*/.sc-duet-alert-h:focus{outline:0}/*!@:host(.user-is-tabbing:focus)*/.user-is-tabbing.sc-duet-alert-h:focus{border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing.duet-theme-turva:focus)*/.user-is-tabbing.duet-theme-turva.sc-duet-alert-h:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@:host(.duet-alert-is-dismissed)*/.duet-alert-is-dismissed.sc-duet-alert-h{max-height:0;visibility:hidden;opacity:0;transform:scale(0.98)}/*!@:host(.duet-alert-is-dismissed) .duet-alert*/.duet-alert-is-dismissed.sc-duet-alert-h .duet-alert.sc-duet-alert{margin:0 !important}/*!@.duet-alert*/.duet-alert.sc-duet-alert{margin-bottom:16px !important;position:relative;width:100%;padding:16px;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;color:#00294d;background:#f2f8fb;border:1px solid #0077b3;border-radius:4px;transition:margin 100ms 300ms ease}/*!@.duet-alert.duet-p-0*/.duet-alert.duet-p-0.sc-duet-alert{padding:0 !important}/*!@.duet-alert.duet-m-0*/.duet-alert.duet-m-0.sc-duet-alert{margin:0 !important}/*!@.duet-alert.duet-theme-turva*/.duet-alert.duet-theme-turva.sc-duet-alert{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;background:#f3f4f5;border-color:#171c3a}/*!@.duet-alert.warning*/.duet-alert.warning.sc-duet-alert{background:#fffbf4;border-color:#f7b228}/*!@.duet-alert.warning.duet-theme-turva*/.duet-alert.warning.duet-theme-turva.sc-duet-alert{background:#fffaf3;border-color:#faa40f}/*!@.duet-alert.danger*/.duet-alert.danger.sc-duet-alert{background:#fdf4f7;border-color:#de2362}/*!@.duet-alert.danger.duet-theme-turva*/.duet-alert.danger.duet-theme-turva.sc-duet-alert{background:#fdf4f3;border-color:#e02a0d}/*!@.duet-alert.success*/.duet-alert.success.sc-duet-alert{background:#f2f9f7;border-color:#00875a}/*!@.duet-alert.success.duet-theme-turva*/.duet-alert.success.duet-theme-turva.sc-duet-alert{background:#f3f9f6;border-color:#08874e}/*!@.duet-alert-dismiss*/.duet-alert-dismiss.sc-duet-alert{position:absolute;top:2px;right:2px}/*!@.duet-alert-container*/.duet-alert-container.sc-duet-alert{display:inline-flex;align-items:center;justify-content:center;width:100%;margin:0 auto !important}/*!@.duet-alert-container span*/.duet-alert-container.sc-duet-alert span.sc-duet-alert{width:100%}/*!@.duet-alert-has-icon .duet-alert-container*/.duet-alert-has-icon.sc-duet-alert .duet-alert-container.sc-duet-alert{margin-top:2px !important}/*!@.duet-alert-icon*/.duet-alert-icon.sc-duet-alert{display:inline-block;align-self:center;width:20px;min-width:20px;height:20px;margin:0 16px 0 0 !important}/*!@.duet-alert-icon duet-icon*/.duet-alert-icon.sc-duet-alert duet-icon.sc-duet-alert{width:20px;height:20px}/*!@.duet-alert-is-dismissible*/.duet-alert-is-dismissible.sc-duet-alert{padding:16px 48px 16px 16px;text-align:left}/*!@.duet-alert-is-dismissible .duet-alert-container*/.duet-alert-is-dismissible.sc-duet-alert .duet-alert-container.sc-duet-alert{text-align:left}";
6284
+
6285
+ class DuetAlert {
6286
+ constructor(hostRef) {
6287
+ registerInstance(this, hostRef);
6288
+ this.duetDismiss = createEvent$2(this, "duetDismiss", 7);
6289
+ /**
6290
+ * Theme of the card.
6291
+ */
6292
+ this.theme = "";
6293
+ /**
6294
+ * State() variables
6295
+ * Inlined decorator, alphabetical order.
6296
+ */
6297
+ this.isDismissed = false;
6298
+ /**
6299
+ * Property to change languageDefaults on the component.
6300
+ * normally you would handle these strings on an application level and override @accessibleLabel when needed
6301
+ * @default {fi: "Sulje viesti", sv: "Stäng meddelandet", en: "Close the message"}
6302
+ */
6303
+ this.accessibleLabelDefaults = {
6304
+ fi: "Sulje viesti",
6305
+ sv: "Stäng meddelandet",
6306
+ en: "Close the message",
6307
+ };
6308
+ /**
6309
+ * Adds accessible label for the dismissible alert close button.
6310
+ * @default {fi: "Sulje viesti", sv: "Stäng meddelandet", en: "Close the message"}
6311
+ */
6312
+ this.accessibleLabel = getLocaleString(this.accessibleLabelDefaults);
6313
+ /**
6314
+ * Enable or disabled announcements by assistive technologies.
6315
+ */
6316
+ this.announcements = true;
6317
+ /**
6318
+ * Icon to display to the left of the content.
6319
+ */
6320
+ this.icon = "";
6321
+ /**
6322
+ * Controls the margin of the component.
6323
+ */
6324
+ this.margin = "auto";
6325
+ /**
6326
+ * Controls the padding of the component.
6327
+ */
6328
+ this.padding = "auto";
6329
+ /**
6330
+ * Style variation of the alert.
6331
+ */
6332
+ this.variation = "default";
6333
+ /**
6334
+ * Should a button be rendered to dismiss the alert?
6335
+ */
6336
+ this.dismissible = false;
6337
+ this.handleDismiss = (ev) => {
6338
+ this.isDismissed = true;
6339
+ this.duetDismiss.emit({
6340
+ component: "duet-alert",
6341
+ originalEvent: ev,
6342
+ });
6343
+ };
6344
+ }
6345
+ /**
6346
+ * Component lifecycle events.
6347
+ */
6348
+ componentWillLoad() {
6349
+ inheritGlobalTheme(this);
6300
6350
  }
6301
- return str;
6351
+ componentDidLoad() {
6352
+ if (this.autoDismiss) {
6353
+ this.timeoutID = setTimeout(() => this.handleDismiss(), this.autoDismiss);
6354
+ }
6355
+ }
6356
+ disconnectedCallback() {
6357
+ if (this.timeoutID) {
6358
+ clearTimeout(this.timeoutID);
6359
+ }
6360
+ }
6361
+ /**
6362
+ * render() function
6363
+ * Always the last one in the class.
6364
+ */
6365
+ render() {
6366
+ const closeColor = this.theme === "turva" ? "secondary-turva" : "secondary";
6367
+ const role = this.variation === "danger" || this.variation === "warning" ? "alert" : "status";
6368
+ return (hAsync(Host, { tabindex: "0", class: { "duet-theme-turva": this.theme === "turva", "duet-alert-is-dismissed": this.isDismissed }, role: this.announcements ? role : undefined }, hAsync("div", { class: {
6369
+ "duet-alert": true,
6370
+ "duet-alert-has-icon": !!this.icon,
6371
+ "duet-alert-is-dismissible": this.dismissible,
6372
+ "duet-p-0": this.padding === "none",
6373
+ "duet-m-0": this.margin === "none",
6374
+ [this.variation]: true,
6375
+ "duet-theme-turva": this.theme === "turva",
6376
+ } }, hAsync("div", { class: "duet-alert-container" }, this.icon && (hAsync("div", { class: "duet-alert-icon" }, hAsync("duet-icon", { size: "auto", name: this.icon, color: "currentColor" }))), hAsync("span", null, hAsync("slot", null))), this.dismissible && (hAsync("div", { class: "duet-alert-dismiss" }, hAsync("duet-button", { variation: "plain", accessibleLabel: this.accessibleLabel, color: closeColor, iconSize: "medium", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: this.handleDismiss, fixed: true }))))));
6377
+ }
6378
+ static get style() { return duetAlertCss; }
6379
+ static get cmpMeta() { return {
6380
+ "$flags$": 9,
6381
+ "$tagName$": "duet-alert",
6382
+ "$members$": {
6383
+ "theme": [1025],
6384
+ "accessibleLabelDefaults": [1, "accessible-label-default"],
6385
+ "accessibleLabel": [1, "accessible-label"],
6386
+ "announcements": [4],
6387
+ "icon": [1],
6388
+ "autoDismiss": [2, "auto-dismiss"],
6389
+ "margin": [1],
6390
+ "padding": [1],
6391
+ "variation": [1],
6392
+ "dismissible": [4],
6393
+ "isDismissed": [32],
6394
+ "timeoutID": [32]
6395
+ },
6396
+ "$listeners$": undefined,
6397
+ "$lazyBundleId$": "-",
6398
+ "$attrsToReflect$": []
6399
+ }; }
6302
6400
  }
6303
- function addTheme(str, theme) {
6304
- const hasTheme = getTheme(theme).length;
6305
- if (hasTheme && str.indexOf(theme) === -1) {
6306
- return `${str}${capitalize(theme)}`;
6401
+
6402
+ const duetBadgeCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-badge,*.sc-duet-badge::after,*.sc-duet-badge::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-badge-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:4px !important;margin-bottom:2px !important;display:inline-block;width:auto;vertical-align:middle}/*!@:host:last-child, :host:last-of-type*/.sc-duet-badge-h:last-child,.sc-duet-badge-h:last-of-type{margin-right:0 !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-badge-h{margin:0 !important}/*!@.duet-badge*/.duet-badge.sc-duet-badge{width:100%;padding:4.4444444444px 12px 5.4444444444px;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.75rem;font-style:normal;font-weight:600;line-height:1.25;color:#00294d;text-align:center;word-break:break-word;vertical-align:middle;background:#e6f1f7;border-radius:20rem}/*!@.duet-badge.duet-p-0*/.duet-badge.duet-p-0.sc-duet-badge{padding:0 !important}/*!@.duet-badge.duet-m-0*/.duet-badge.duet-m-0.sc-duet-badge{margin:0 !important}/*!@.duet-badge.duet-theme-turva*/.duet-badge.duet-theme-turva.sc-duet-badge{padding:5.4444444444px 12px 4.4444444444px;font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-weight:700;color:#171c3a;background:#e8e8eb}/*!@.duet-badge.warning*/.duet-badge.warning.sc-duet-badge{background:#fef3df}/*!@.duet-badge.warning.duet-theme-turva*/.duet-badge.warning.duet-theme-turva.sc-duet-badge{background:#fef1db}/*!@.duet-badge.danger*/.duet-badge.danger.sc-duet-badge{background:#fce9ef}/*!@.duet-badge.danger.duet-theme-turva*/.duet-badge.danger.duet-theme-turva.sc-duet-badge{background:#fceae7}/*!@.duet-badge.success*/.duet-badge.success.sc-duet-badge{background:#e6f3ef}/*!@.duet-badge.success.duet-theme-turva*/.duet-badge.success.duet-theme-turva.sc-duet-badge{background:#e6f3ed}";
6403
+
6404
+ class DuetBadge {
6405
+ constructor(hostRef) {
6406
+ registerInstance(this, hostRef);
6407
+ /**
6408
+ * Theme of the badge.
6409
+ */
6410
+ this.theme = "";
6411
+ /**
6412
+ * Style variation of the alert.
6413
+ */
6414
+ this.variation = "default";
6415
+ /**
6416
+ * Controls the margin of the component.
6417
+ */
6418
+ this.margin = "auto";
6307
6419
  }
6308
- return str;
6420
+ /**
6421
+ * Component lifecycle events.
6422
+ */
6423
+ componentWillLoad() {
6424
+ inheritGlobalTheme(this);
6425
+ }
6426
+ /**
6427
+ * render() function
6428
+ * Always the last one of the class.
6429
+ */
6430
+ render() {
6431
+ return (hAsync(Host, { class: { "duet-m-0": this.margin === "none" } }, hAsync("div", { class: {
6432
+ "duet-badge": true,
6433
+ [this.variation]: true,
6434
+ "duet-theme-turva": this.theme === "turva",
6435
+ } }, hAsync("slot", null))));
6436
+ }
6437
+ static get style() { return duetBadgeCss; }
6438
+ static get cmpMeta() { return {
6439
+ "$flags$": 9,
6440
+ "$tagName$": "duet-badge",
6441
+ "$members$": {
6442
+ "theme": [1025],
6443
+ "variation": [1],
6444
+ "margin": [1]
6445
+ },
6446
+ "$listeners$": undefined,
6447
+ "$lazyBundleId$": "-",
6448
+ "$attrsToReflect$": []
6449
+ }; }
6309
6450
  }
6310
- function getColorByName(name, theme = "") {
6311
- if (!name) {
6312
- return undefined;
6451
+
6452
+ const duetBreadcrumbCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-breadcrumb,*.sc-duet-breadcrumb::after,*.sc-duet-breadcrumb::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-breadcrumb-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}/*!@.duet-breadcrumb*/.duet-breadcrumb.sc-duet-breadcrumb{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100%;font-size:0.875rem;color:#00294d;text-decoration:none}/*!@.duet-breadcrumb:hover*/.duet-breadcrumb.sc-duet-breadcrumb:hover{color:#004d80}/*!@.duet-breadcrumb.duet-theme-turva*/.duet-breadcrumb.duet-theme-turva.sc-duet-breadcrumb{color:#171c3a}/*!@.duet-breadcrumb.duet-theme-turva:hover*/.duet-breadcrumb.duet-theme-turva.sc-duet-breadcrumb:hover{color:#940925}/*!@.duet-breadcrumb:focus*/.duet-breadcrumb.sc-duet-breadcrumb:focus{outline:0}/*!@.duet-breadcrumb:active*/.duet-breadcrumb.sc-duet-breadcrumb:active{opacity:0.75}/*!@:host(.user-is-tabbing) .duet-breadcrumb:focus*/.user-is-tabbing.sc-duet-breadcrumb-h .duet-breadcrumb.sc-duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus*/.user-is-tabbing.sc-duet-breadcrumb-h .duet-breadcrumb.duet-theme-turva.sc-duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
6453
+
6454
+ class DuetBreadcrumb {
6455
+ constructor(hostRef) {
6456
+ registerInstance(this, hostRef);
6457
+ /**
6458
+ * Theme
6459
+ */
6460
+ this.theme = "";
6461
+ /**
6462
+ * Href
6463
+ */
6464
+ this.href = "";
6465
+ /**
6466
+ * Icon
6467
+ */
6468
+ this.icon = "";
6313
6469
  }
6314
- const defaultColor = convertToColorName(name);
6315
- const themedColor = convertToColorName(name, theme);
6316
- // lets just try to get the color first to save some cycles
6317
- let resolvedToken = tokens$2[themedColor];
6318
- if (!resolvedToken) {
6319
- resolvedToken = tokens$2[defaultColor];
6470
+ /**
6471
+ * Component lifecycle events.
6472
+ */
6473
+ componentWillLoad() {
6474
+ inheritGlobalTheme(this);
6320
6475
  }
6321
- return resolvedToken;
6476
+ /**
6477
+ * render() function
6478
+ * Always the last one in the class.
6479
+ */
6480
+ render() {
6481
+ return (hAsync(Host, null, hAsync("a", { class: {
6482
+ "duet-breadcrumb": true,
6483
+ "duet-theme-turva": this.theme === "turva",
6484
+ }, href: this.href, "aria-label": this.accessibleLabel }, this.icon && hAsync("duet-icon", { size: "x-small", name: this.icon, margin: "none", color: "currentColor" }), !this.icon && hAsync("slot", null))));
6485
+ }
6486
+ static get style() { return duetBreadcrumbCss; }
6487
+ static get cmpMeta() { return {
6488
+ "$flags$": 9,
6489
+ "$tagName$": "duet-breadcrumb",
6490
+ "$members$": {
6491
+ "theme": [1025],
6492
+ "href": [1025],
6493
+ "icon": [1025],
6494
+ "accessibleLabel": [1, "accessible-label"]
6495
+ },
6496
+ "$listeners$": undefined,
6497
+ "$lazyBundleId$": "-",
6498
+ "$attrsToReflect$": []
6499
+ }; }
6322
6500
  }
6323
- function convertToColorName(name = "", theme = "") {
6324
- let colorResolution = name;
6325
- const dash = isDashCase(name);
6326
- if (dash) {
6327
- colorResolution = camelize(colorResolution);
6501
+
6502
+ 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>"};
6503
+
6504
+ const duetBreadcrumbsCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-breadcrumbs,*.sc-duet-breadcrumbs::after,*.sc-duet-breadcrumbs::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-breadcrumbs-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block}/*!@.duet-breadcrumbs*/.duet-breadcrumbs.sc-duet-breadcrumbs{font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-breadcrumbs ol*/.duet-breadcrumbs.sc-duet-breadcrumbs ol.sc-duet-breadcrumbs{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start;padding:10px 16px;color:#00294d;list-style:none;background:#f3f9fc;border-bottom:1px solid #e1e3e6}@media (min-width: 62em){/*!@.duet-breadcrumbs ol*/.duet-breadcrumbs.sc-duet-breadcrumbs ol.sc-duet-breadcrumbs{padding:10px 36px}}/*!@.duet-breadcrumbs.duet-theme-turva*/.duet-breadcrumbs.duet-theme-turva.sc-duet-breadcrumbs{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-breadcrumbs.duet-theme-turva ol*/.duet-breadcrumbs.duet-theme-turva.sc-duet-breadcrumbs ol.sc-duet-breadcrumbs{color:#171c3a;background:#fcf3f4}/*!@.duet-breadcrumbs .duet-breadrumbs-arrow*/.duet-breadcrumbs.sc-duet-breadcrumbs .duet-breadrumbs-arrow.sc-duet-breadcrumbs{display:inherit;align-items:center;justify-content:center;width:0.375rem;height:0.375rem}/*!@.duet-breadcrumbs .hide*/.duet-breadcrumbs.sc-duet-breadcrumbs .hide.sc-duet-breadcrumbs{display:none}";
6505
+
6506
+ class DuetBreadcrumbs {
6507
+ constructor(hostRef) {
6508
+ registerInstance(this, hostRef);
6509
+ this.observers = [];
6510
+ this.breadcrumbsAriaLabel = getLocaleString({
6511
+ fi: "Murupolku",
6512
+ sv: "Ströbröd",
6513
+ en: "Breadcrumbs",
6514
+ });
6515
+ /**
6516
+ * Theme
6517
+ */
6518
+ this.theme = "";
6519
+ }
6520
+ /**
6521
+ * Component lifecycle events.
6522
+ */
6523
+ componentWillLoad() {
6524
+ inheritGlobalTheme(this);
6525
+ this.children = Array.from(this.element.children);
6526
+ }
6527
+ connectedCallback() {
6528
+ {
6529
+ return;
6530
+ }
6531
+ }
6532
+ disconnectedCallback() {
6533
+ {
6534
+ return;
6535
+ }
6536
+ }
6537
+ /**
6538
+ * render() function
6539
+ * Always the last one in the class.
6540
+ */
6541
+ render() {
6542
+ return (hAsync(Host, null, hAsync("nav", { "aria-label": this.breadcrumbsAriaLabel, class: {
6543
+ "duet-breadcrumbs": true,
6544
+ "duet-theme-turva": this.theme === "turva",
6545
+ } }, hAsync("ol", null, this.children.map((child, index) => (hAsync(Fragment, null, index > 0 && (hAsync("li", { "aria-hidden": "true" }, hAsync("duet-icon", { class: "duet-breadrumbs-arrow", size: "auto", icon: actionArrowRightSmall.svg, margin: "none", color: "currentColor" }))), hAsync("li", { innerHTML: child.outerHTML }), hAsync("div", { class: "hide" }, hAsync("slot", null)))))))));
6328
6546
  }
6329
- colorResolution = addColor(colorResolution);
6330
- colorResolution = addTheme(colorResolution, theme);
6331
- // takes care of the case where colorPrimaryDark ends up with ColorPrimaryDark
6332
- colorResolution = lowerCaseFirst(colorResolution);
6333
- return colorResolution;
6547
+ get element() { return getElement(this); }
6548
+ static get style() { return duetBreadcrumbsCss; }
6549
+ static get cmpMeta() { return {
6550
+ "$flags$": 9,
6551
+ "$tagName$": "duet-breadcrumbs",
6552
+ "$members$": {
6553
+ "theme": [1025],
6554
+ "children": [32]
6555
+ },
6556
+ "$listeners$": undefined,
6557
+ "$lazyBundleId$": "-",
6558
+ "$attrsToReflect$": []
6559
+ }; }
6334
6560
  }
6335
6561
 
6562
+ const DuetStringsExternalDefaults = {
6563
+ fi: "Avautuu uuteen ikkunaan",
6564
+ sv: "Öppnas i nytt fönster",
6565
+ en: "Opens in a new window",
6566
+ };
6567
+
6336
6568
  const duetButtonCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-button,*.sc-duet-button::after,*.sc-duet-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-button-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}/*!@:host:last-child, :host:last-of-type*/.sc-duet-button-h:last-child,.sc-duet-button-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){/*!@:host*/.sc-duet-button-h{width:100%}}/*!@:host(.duet-small)*/.duet-small.sc-duet-button-h{margin-right:2px !important;margin-bottom:8px !important}/*!@:host(.duet-small):last-child, :host(.duet-small):last-of-type*/.duet-small.sc-duet-button-h:last-child,.duet-small.sc-duet-button-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){/*!@:host(.duet-small)*/.duet-small.sc-duet-button-h{width:auto}}/*!@:host(.duet-expand)*/.duet-expand.sc-duet-button-h{width:100% !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-button-h{margin:0 !important}/*!@:host(.duet-fixed)*/.duet-fixed.sc-duet-button-h{width:auto !important}/*!@:host(:last-child)*/.sc-duet-button-h:last-child{margin-right:0 !important}/*!@.duet-button-container*/.duet-button-container.sc-duet-button{position:relative;width:100%}/*!@.duet-button*/.duet-button.sc-duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}/*!@.duet-button.duet-p-0*/.duet-button.duet-p-0.sc-duet-button{padding:0 !important}/*!@.duet-button.duet-m-0*/.duet-button.duet-m-0.sc-duet-button{margin:0 !important}/*!@.duet-button.duet-button-text-center*/.duet-button.duet-button-text-center.sc-duet-button{text-align:center !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only)*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).icon{padding-left:48px !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}/*!@.duet-theme-turva .duet-button*/.duet-theme-turva.sc-duet-button .duet-button.sc-duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}/*!@.duet-button .duet-button-contents*/.duet-button.sc-duet-button .duet-button-contents.sc-duet-button{position:relative;display:inline-block;margin:0 auto;pointer-events:none}/*!@.duet-button.duet-no-wrap*/.duet-button.duet-no-wrap.sc-duet-button{white-space:nowrap}/*!@.duet-button.icon*/.duet-button.icon.sc-duet-button{padding-left:52px !important}/*!@.duet-button.icon-right*/.duet-button.icon-right.sc-duet-button{padding-right:52px !important;padding-left:28px !important}/*!@.duet-button svg*/.duet-button.sc-duet-button svg.sc-duet-button{width:100%;min-width:100%;fill:currentColor}/*!@.duet-button .duet-button-icon*/.duet-button.sc-duet-button .duet-button-icon.sc-duet-button{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}/*!@.duet-button .duet-button-icon duet-icon*/.duet-button.sc-duet-button .duet-button-icon.sc-duet-button duet-icon.sc-duet-button{width:16px;height:16px}/*!@.duet-button .duet-button-icon.right*/.duet-button.sc-duet-button .duet-button-icon.right.sc-duet-button{right:-28px;left:auto}/*!@.duet-button .duet-button-icon.large*/.duet-button.sc-duet-button .duet-button-icon.large.sc-duet-button{left:-32px;width:20px;height:20px}/*!@.duet-button .duet-button-icon.large duet-icon*/.duet-button.sc-duet-button .duet-button-icon.large.sc-duet-button duet-icon.sc-duet-button{width:20px;height:20px}/*!@.duet-button .duet-button-icon.large.right*/.duet-button.sc-duet-button .duet-button-icon.large.right.sc-duet-button{right:-32px;left:auto}/*!@.duet-button .duet-button-icon.medium-small*/.duet-button.sc-duet-button .duet-button-icon.medium-small.sc-duet-button{left:-16px;width:10px;height:10px;padding-top:1px}/*!@.duet-button .duet-button-icon.medium-small duet-icon*/.duet-button.sc-duet-button .duet-button-icon.medium-small.sc-duet-button duet-icon.sc-duet-button{width:10px;height:10px}/*!@.duet-button .duet-button-icon.medium-small.right*/.duet-button.sc-duet-button .duet-button-icon.medium-small.right.sc-duet-button{right:-16px;left:auto}/*!@.duet-button .duet-button-icon.small*/.duet-button.sc-duet-button .duet-button-icon.small.sc-duet-button{left:-16px;width:7px;height:7px}/*!@.duet-button .duet-button-icon.small duet-icon*/.duet-button.sc-duet-button .duet-button-icon.small.sc-duet-button duet-icon.sc-duet-button{width:7px;height:7px}/*!@.duet-button .duet-button-icon.small.right*/.duet-button.sc-duet-button .duet-button-icon.small.right.sc-duet-button{right:-16px;left:auto}/*!@.duet-button:focus*/.duet-button.sc-duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-button:focus*/.duet-theme-turva.sc-duet-button .duet-button.sc-duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-button:active*/.duet-button.sc-duet-button:active{opacity:0.75;transition:none}/*!@.duet-button.default*/.duet-button.default.sc-duet-button{border-color:#e1e3e6}/*!@.duet-theme-turva .duet-button.default*/.duet-theme-turva.sc-duet-button .duet-button.default.sc-duet-button{color:#c60c30 !important;border-color:#e4e4e6}/*!@.duet-button.default:hover*/.duet-button.default.sc-duet-button:hover{border-color:#0077b3}/*!@.duet-theme-turva .duet-button.default:hover*/.duet-theme-turva.sc-duet-button .duet-button.default.sc-duet-button:hover{border-color:#c60c30}/*!@.duet-button.default.duet-button-negative*/.duet-button.default.duet-button-negative.sc-duet-button{background-color:white}/*!@.duet-theme-turva .duet-button.default.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.default.duet-button-negative.sc-duet-button{background-color:#e4e4e6 !important}/*!@.duet-button.default.duet-button-negative:hover*/.duet-button.default.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.default.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.default.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.primary*/.duet-button.primary.sc-duet-button{color:white !important;background:#0077b3;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.primary*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button{color:white !important;background:#c60c30;border-color:#c60c30}/*!@.duet-button.primary:hover*/.duet-button.primary.sc-duet-button:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}/*!@.duet-theme-turva .duet-button.primary:hover*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button:hover{background:#940925;border-color:#940925}/*!@.duet-button.primary:focus*/.duet-button.primary.sc-duet-button:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}/*!@.duet-theme-turva .duet-button.primary:focus*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}/*!@.duet-button.secondary*/.duet-button.secondary.sc-duet-button{color:#00294d !important;background:transparent;border-color:#00294d}/*!@.duet-theme-turva .duet-button.secondary*/.duet-theme-turva.sc-duet-button .duet-button.secondary.sc-duet-button{color:#171c3a !important;border-color:#171c3a}/*!@.duet-button.secondary:hover*/.duet-button.secondary.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.secondary:hover*/.duet-theme-turva.sc-duet-button .duet-button.secondary.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.secondary.duet-button-negative*/.duet-button.secondary.duet-button-negative.sc-duet-button{color:#e1e3e6 !important;border-color:white}/*!@.duet-theme-turva .duet-button.secondary.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.secondary.duet-button-negative.sc-duet-button{color:#e4e4e6 !important}/*!@.duet-button.secondary.duet-button-negative:hover*/.duet-button.secondary.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.secondary.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.secondary.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.negative*/.duet-button.negative.sc-duet-button{color:#00294d !important;background:white;border-color:white}/*!@.duet-theme-turva .duet-button.negative*/.duet-theme-turva.sc-duet-button .duet-button.negative.sc-duet-button{color:#171c3a !important}/*!@.duet-button.negative:hover*/.duet-button.negative.sc-duet-button:hover{color:white !important;background:transparent;border-color:white}/*!@.duet-button.negative:focus*/.duet-button.negative.sc-duet-button:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}/*!@.duet-theme-turva .duet-button.negative:focus*/.duet-theme-turva.sc-duet-button .duet-button.negative.sc-duet-button:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}/*!@.duet-button.destructive-primary*/.duet-button.destructive-primary.sc-duet-button{color:white !important;background:#de2362;border-color:#de2362}/*!@.duet-theme-turva .duet-button.destructive-primary*/.duet-theme-turva.sc-duet-button .duet-button.destructive-primary.sc-duet-button{color:white !important;background:#e02a0d;border-color:#e02a0d}/*!@.duet-button.destructive-primary:hover*/.duet-button.destructive-primary.sc-duet-button:hover{background:#b21c4e;border-color:#b21c4e;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}/*!@.duet-theme-turva .duet-button.destructive-primary:hover*/.duet-theme-turva.sc-duet-button .duet-button.destructive-primary.sc-duet-button:hover{background:#b3220a}/*!@.duet-button.destructive, .duet-button.destructive-secondary*/.duet-button.destructive.sc-duet-button,.duet-button.destructive-secondary.sc-duet-button{color:#de2362 !important;background:white;border-color:#de2362}/*!@.duet-theme-turva .duet-button.destructive, .duet-theme-turva .duet-button.destructive-secondary*/.duet-theme-turva.sc-duet-button .duet-button.destructive.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.destructive-secondary.sc-duet-button{color:#e02a0d !important;background:white;border-color:#e02a0d}/*!@.duet-button.destructive:hover, .duet-button.destructive-secondary:hover*/.duet-button.destructive.sc-duet-button:hover,.duet-button.destructive-secondary.sc-duet-button:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}/*!@.duet-theme-turva .duet-button.destructive:hover, .duet-theme-turva .duet-button.destructive-secondary:hover*/.duet-theme-turva.sc-duet-button .duet-button.destructive.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.destructive-secondary.sc-duet-button:hover{color:white !important;background:#b3220a;border-color:#b3220a}/*!@.duet-button.plain*/.duet-button.plain.sc-duet-button{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}/*!@.duet-theme-turva .duet-button.plain*/.duet-theme-turva.sc-duet-button .duet-button.plain.sc-duet-button{color:#c60c30 !important;background:transparent;border-color:transparent}/*!@.duet-button.plain.icon*/.duet-button.plain.icon.sc-duet-button{padding-left:20px !important}/*!@.duet-button.plain.icon.icon-right*/.duet-button.plain.icon.icon-right.sc-duet-button{padding-right:20px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.medium*/.duet-button.plain.icon.medium.sc-duet-button{padding-left:24px !important}/*!@.duet-button.plain.icon.medium.icon-right*/.duet-button.plain.icon.medium.icon-right.sc-duet-button{padding-right:24px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.large*/.duet-button.plain.icon.large.sc-duet-button{padding-left:30px !important}/*!@.duet-button.plain.icon.large.icon-right*/.duet-button.plain.icon.large.icon-right.sc-duet-button{padding-right:30px !important;padding-left:0 !important}/*!@.duet-button.plain .duet-button-icon.left*/.duet-button.plain.sc-duet-button .duet-button-icon.left.sc-duet-button{left:-16.6666666667px !important}/*!@.duet-button.plain .duet-button-icon.left.medium*/.duet-button.plain.sc-duet-button .duet-button-icon.left.medium.sc-duet-button{left:-24px !important}/*!@.duet-button.plain .duet-button-icon.left.large*/.duet-button.plain.sc-duet-button .duet-button-icon.left.large.sc-duet-button{left:-30px !important}/*!@.duet-button.plain .duet-button-icon.right*/.duet-button.plain.sc-duet-button .duet-button-icon.right.sc-duet-button{right:-16.6666666667px !important}/*!@.duet-button.plain .duet-button-icon.right.medium*/.duet-button.plain.sc-duet-button .duet-button-icon.right.medium.sc-duet-button{right:-24px !important}/*!@.duet-button.plain .duet-button-icon.right.large*/.duet-button.plain.sc-duet-button .duet-button-icon.right.large.sc-duet-button{right:-30px !important}/*!@.duet-button.plain[disabled]*/.duet-button.plain[disabled].sc-duet-button{color:#657787 !important;background:transparent !important;border-color:transparent !important}/*!@.duet-theme-turva .duet-button.plain[disabled]*/.duet-theme-turva.sc-duet-button .duet-button.plain[disabled].sc-duet-button{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}/*!@.duet-button.plain:hover*/.duet-button.plain.sc-duet-button:hover{color:#004d80 !important;background:transparent !important}/*!@.duet-theme-turva .duet-button.plain:hover*/.duet-theme-turva.sc-duet-button .duet-button.plain.sc-duet-button:hover{color:#940925 !important}/*!@.duet-button.plain.duet-button-negative*/.duet-button.plain.duet-button-negative.sc-duet-button{color:white !important}/*!@.duet-theme-turva .duet-button.plain.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.plain.duet-button-negative.sc-duet-button{color:#e4e4e6 !important}/*!@.duet-button.plain.duet-button-negative:hover*/.duet-button.plain.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important}/*!@.duet-theme-turva .duet-button.plain.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.plain.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important}/*!@.duet-button.duet-button-icon-only*/.duet-button.duet-button-icon-only.sc-duet-button{min-width:48px;min-height:48px;padding:0 !important}/*!@.duet-button.duet-button-icon-only .duet-button-contents*/.duet-button.duet-button-icon-only.sc-duet-button .duet-button-contents.sc-duet-button{position:static}/*!@.duet-button.duet-button-icon-only .duet-button-icon.left.large,\n.duet-button.duet-button-icon-only .duet-button-icon.left.medium,\n.duet-button.duet-button-icon-only .duet-button-icon.left.small*/.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.large.sc-duet-button,.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.medium.sc-duet-button,.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.small.sc-duet-button{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}/*!@.duet-button[disabled], .duet-button[disabled]:hover, .duet-button.duet-button-negative[disabled], .duet-button.duet-button-negative[disabled]:hover*/.duet-button[disabled].sc-duet-button,.duet-button[disabled].sc-duet-button:hover,.duet-button.duet-button-negative[disabled].sc-duet-button,.duet-button.duet-button-negative[disabled].sc-duet-button:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}/*!@.duet-theme-turva .duet-button[disabled], .duet-theme-turva .duet-button[disabled]:hover, .duet-theme-turva .duet-button.duet-button-negative [disabled], .duet-theme-turva .duet-button.duet-button-negative [disabled]:hover*/.duet-theme-turva.sc-duet-button .duet-button[disabled].sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button[disabled].sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.duet-button-negative.sc-duet-button [disabled].sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.duet-button-negative.sc-duet-button [disabled].sc-duet-button:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}/*!@.duet-button-is-loading.primary*/.duet-button-is-loading.primary.sc-duet-button{color:white}/*!@.duet-button-is-loading.default*/.duet-button-is-loading.default.sc-duet-button{color:#0077b3}/*!@.duet-button-is-loading.default.duet-theme-turva*/.duet-button-is-loading.default.duet-theme-turva.sc-duet-button{color:#c60c30}/*!@.duet-button-is-loading .duet-button-contents*/.duet-button-is-loading.sc-duet-button .duet-button-contents.sc-duet-button{visibility:hidden;opacity:0}";
6337
6569
 
6338
6570
  class DuetButton {
@@ -6340,6 +6572,10 @@ class DuetButton {
6340
6572
  registerInstance(this, hostRef);
6341
6573
  this.duetFocus = createEvent$2(this, "duetFocus", 7);
6342
6574
  this.duetBlur = createEvent$2(this, "duetBlur", 7);
6575
+ /**
6576
+ * Use this property to add an aria-haspopup attribute to a button, if you are using it as a menu button.
6577
+ */
6578
+ this.accessiblePopup = "false";
6343
6579
  /**
6344
6580
  * Loading state of the button
6345
6581
  */
@@ -6560,7 +6796,7 @@ class DuetButton {
6560
6796
  "duet-theme-turva": this.theme === "turva",
6561
6797
  "duet-button-negative": this.negative || this.variation === "negative",
6562
6798
  [this.variation]: true,
6563
- } }, this.url ? (hAsync("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (hAsync("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined }), commonChildren)), this.loading && hAsync("duet-spinner", { color: "currentColor" }))));
6799
+ } }, this.url ? (hAsync("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (hAsync("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined }), commonChildren)), this.loading && hAsync("duet-spinner", { color: "currentColor" }))));
6564
6800
  }
6565
6801
  get element() { return getElement(this); }
6566
6802
  static get watchers() { return {
@@ -6576,6 +6812,7 @@ class DuetButton {
6576
6812
  "$members$": {
6577
6813
  "accessibleLabel": [1, "accessible-label"],
6578
6814
  "accessibleControls": [1, "accessible-controls"],
6815
+ "accessiblePopup": [1, "accessible-popup"],
6579
6816
  "accessibleActiveDescendant": [1, "accessible-active-descendant"],
6580
6817
  "accessibleOwns": [1, "accessible-owns"],
6581
6818
  "accessibleDescribedBy": [1, "accessible-described-by"],
@@ -6674,28 +6911,6 @@ class DuetCaption {
6674
6911
 
6675
6912
  var actionArrowUp={"title":"action-arrow-up","tags":"action arrow up caret","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M.75 17.939a.752.752 0 0 1-.53-1.281L10.94 5.94c.283-.284.659-.44 1.059-.44.401 0 .777.156 1.06.438l10.721 10.72a.752.752 0 0 1-.53 1.281.743.743 0 0 1-.53-.22L12 7 1.28 17.719a.743.743 0 0 1-.53.22z\"/></svg>"};
6676
6913
 
6677
- function chr4() {
6678
- return Math.random().toString(16).slice(-4);
6679
- }
6680
- function createID(prefix) {
6681
- return `${prefix}-${chr4()}${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}${chr4()}${chr4()}`;
6682
- }
6683
-
6684
- const isArrowLeftKey = (e) => e.keyCode === 37;
6685
- const isArrowUpKey = (e) => e.keyCode === 38;
6686
- const isArrowRightKey = (e) => e.keyCode === 39;
6687
- const isArrowDownKey = (e) => e.keyCode === 40;
6688
- const isArrowKey = (e) => isArrowDownKey(e) || isArrowRightKey(e) || isArrowUpKey(e) || isArrowLeftKey(e);
6689
- const isEscapeKey = (e) => e.key === "Escape" || e.key === "Esc" || e.keyCode === 27;
6690
- const isBackspaceKey = (e) => e.keyCode === 8;
6691
- const isSpaceKey = (e) => e.key === "Space" || e.keyCode === 32;
6692
- const isPlusKey = (e) => e.key === "+" || e.keyCode === 43;
6693
- const isMinusKey = (e) => e.key === "-" || e.keyCode === 45;
6694
- const isQuestionKey = (e) => e.key === "?";
6695
- const isEnterKey = (e) => e.key === "Enter" || e.keyCode === 13;
6696
- const isKeyboardClick = (e) => isEnterKey(e) || isSpaceKey(e);
6697
- const isNumber = (e) => (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105);
6698
-
6699
6914
  const duetCardCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-card,*.sc-duet-card::after,*.sc-duet-card::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-card-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:20px !important;display:flex;width:100%;vertical-align:top}/*!@:host(.duet-card-info)*/.duet-card-info.sc-duet-card-h{margin-bottom:16px !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-card-h{margin:0 !important}/*!@.duet-card*/.duet-card.sc-duet-card{padding:20px !important;position:relative;display:block;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-style:normal;font-weight:400;line-height:1.5;color:#00294d;text-decoration:none;border-radius:4px;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}/*!@.duet-card.duet-p-0*/.duet-card.duet-p-0.sc-duet-card{padding:0 !important}/*!@.duet-card.duet-m-0*/.duet-card.duet-m-0.sc-duet-card{margin:0 !important}/*!@.duet-card:focus*/.duet-card.sc-duet-card:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-card:focus, .duet-card:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-card .duet-card.sc-duet-card:focus,.duet-card.sc-duet-card:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 36em){/*!@.duet-card*/.duet-card.sc-duet-card{padding:28px !important}}/*!@.duet-card.duet-theme-turva*/.duet-card.duet-theme-turva.sc-duet-card{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;box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}@media (min-width: 36em){/*!@.duet-card.x-small*/.duet-card.x-small.sc-duet-card{padding:20px !important}}@media (min-width: 36em){/*!@.duet-card.medium*/.duet-card.medium.sc-duet-card{padding:28px !important}}@media (min-width: 48em){/*!@.duet-card.medium*/.duet-card.medium.sc-duet-card{padding:36px !important}}@media (min-width: 36em){/*!@.duet-card.large*/.duet-card.large.sc-duet-card{padding:36px !important}}@media (min-width: 48em){/*!@.duet-card.large*/.duet-card.large.sc-duet-card{padding:48px !important}}@media (min-width: 36em){/*!@.duet-card.x-large*/.duet-card.x-large.sc-duet-card{padding:48px !important}}@media (min-width: 48em){/*!@.duet-card.x-large*/.duet-card.x-large.sc-duet-card{padding:72px !important}}/*!@.duet-card.duet-card-collapsed*/.duet-card.duet-card-collapsed.sc-duet-card{padding-bottom:0 !important}@media (min-width: 36em){/*!@.duet-card.duet-card-collapsed*/.duet-card.duet-card-collapsed.sc-duet-card{padding-bottom:0 !important}}/*!@.duet-card.info*/.duet-card.info.sc-duet-card{background:rgba(0, 80, 128, 0.04) !important;box-shadow:none}/*!@.duet-card.info.duet-theme-turva*/.duet-card.info.duet-theme-turva.sc-duet-card{background:rgba(23, 28, 58, 0.035) !important}/*!@.duet-card.plain*/.duet-card.plain.sc-duet-card{box-shadow:none}/*!@.duet-card.plain:not(.duet-card-has-bg)*/.duet-card.plain.sc-duet-card:not(.duet-card-has-bg){background:transparent !important}/*!@.duet-card-heading-grid*/.duet-card-heading-grid.sc-duet-card{display:flex;flex-direction:row}/*!@.duet-card-icon*/.duet-card-icon.sc-duet-card{align-self:center}/*!@.duet-card-heading-text*/.duet-card-heading-text.sc-duet-card{flex:1;word-break:break-word}/*!@.duet-card-secondary-heading*/.duet-card-secondary-heading.sc-duet-card{font-size:1rem;font-weight:600;word-break:break-word}/*!@.duet-card-secondary-heading--inline*/.duet-card-secondary-heading--inline.sc-duet-card{display:block;flex:1;align-self:flex-start;line-height:1.875;text-align:right}@media (max-width: 22.5em){/*!@.duet-card-secondary-heading--inline*/.duet-card-secondary-heading--inline.sc-duet-card{display:none}}/*!@.duet-card-secondary-heading--new-line*/.duet-card-secondary-heading--new-line.sc-duet-card{display:none}@media (max-width: 22.5em){/*!@.duet-card-secondary-heading--new-line*/.duet-card-secondary-heading--new-line.sc-duet-card{display:block}}/*!@.duet-card-heading*/.duet-card-heading.sc-duet-card{position:relative;display:block;padding:16px 20px;margin:-20px -20px 20px;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:1.25rem;font-weight:800;color:#00294d;border-bottom:1px solid #e1e3e6}@media (min-width: 36em){/*!@.duet-card-heading*/.duet-card-heading.sc-duet-card{padding:15px 28px 16px !important;margin:-28px -28px 20px}}/*!@.duet-card-heading[role=button]*/.duet-card-heading[role=button].sc-duet-card{-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:4px;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;appearance:none}/*!@.duet-card-heading[role=button]:focus*/.duet-card-heading[role=button].sc-duet-card:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-card-heading[role=button]:focus*/.user-is-tabbing.sc-duet-card-h .duet-card-heading[role=button].sc-duet-card:focus{border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-card-heading[role=button]:focus*/.user-is-tabbing.sc-duet-card-h .duet-theme-turva.sc-duet-card .duet-card-heading[role=button].sc-duet-card:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-card-collapsed .duet-card-heading*/.duet-card-collapsed.sc-duet-card .duet-card-heading.sc-duet-card{margin-bottom:0 !important;border-bottom:0 !important}/*!@.duet-theme-turva .duet-card-heading*/.duet-theme-turva.sc-duet-card .duet-card-heading.sc-duet-card{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}@media (min-width: 36em){/*!@.x-small .duet-card-heading*/.x-small.sc-duet-card .duet-card-heading.sc-duet-card{padding:10px 20px 11px !important;margin:-20px -20px 20px}}@media (min-width: 48em){/*!@.x-small .duet-card-heading*/.x-small.sc-duet-card .duet-card-heading.sc-duet-card{padding:10px 20px 11px !important;margin:-20px -20px 20px}}/*!@.medium .duet-card-heading*/.medium.sc-duet-card .duet-card-heading.sc-duet-card{margin:-20px -20px 20px}@media (min-width: 36em){/*!@.medium .duet-card-heading*/.medium.sc-duet-card .duet-card-heading.sc-duet-card{padding:15px 28px 16px !important;margin:-28px -28px 20px}}@media (min-width: 48em){/*!@.medium .duet-card-heading*/.medium.sc-duet-card .duet-card-heading.sc-duet-card{padding:19px 36px 20px !important;margin:-36px -36px 28px}}/*!@.large .duet-card-heading*/.large.sc-duet-card .duet-card-heading.sc-duet-card{margin:-20px -20px 20px}@media (min-width: 36em){/*!@.large .duet-card-heading*/.large.sc-duet-card .duet-card-heading.sc-duet-card{padding:19px 36px 20px !important;margin:-36px -36px 28px}}@media (min-width: 48em){/*!@.large .duet-card-heading*/.large.sc-duet-card .duet-card-heading.sc-duet-card{padding:26px 48px 27px !important;margin:-48px -48px 36px}}/*!@.x-large .duet-card-heading*/.x-large.sc-duet-card .duet-card-heading.sc-duet-card{margin:-20px -20px 20px}@media (min-width: 36em){/*!@.x-large .duet-card-heading*/.x-large.sc-duet-card .duet-card-heading.sc-duet-card{padding:26px 48px 27px !important;margin:-48px -48px 36px}}@media (min-width: 48em){/*!@.x-large .duet-card-heading*/.x-large.sc-duet-card .duet-card-heading.sc-duet-card{padding:39px 72px 40px !important;margin:-72px -72px 48px}}/*!@.none .duet-card-heading*/.none.sc-duet-card .duet-card-heading.sc-duet-card{padding:0 0 20px !important;margin:0 0 20px}/*!@.duet-card-footer*/.duet-card-footer.sc-duet-card{padding:20px;margin:20px -20px -20px;font-size:0.875rem;line-height:1.25;background:#f5f8fa;border-bottom-right-radius:4px;border-bottom-left-radius:4px}/*!@.duet-theme-turva .duet-card-footer*/.duet-theme-turva.sc-duet-card .duet-card-footer.sc-duet-card{background:#f5f5f7}@media (min-width: 36em){/*!@.duet-card-footer*/.duet-card-footer.sc-duet-card{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){/*!@.duet-card-footer*/.duet-card-footer.sc-duet-card{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 36em){/*!@.x-small .duet-card-footer*/.x-small.sc-duet-card .duet-card-footer.sc-duet-card{padding:15px 28px 16px !important;padding-left:20px !important;margin:20px -20px -20px}}@media (min-width: 36em){/*!@.medium .duet-card-footer*/.medium.sc-duet-card .duet-card-footer.sc-duet-card{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){/*!@.medium .duet-card-footer*/.medium.sc-duet-card .duet-card-footer.sc-duet-card{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 36em){/*!@.large .duet-card-footer*/.large.sc-duet-card .duet-card-footer.sc-duet-card{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 48em){/*!@.large .duet-card-footer*/.large.sc-duet-card .duet-card-footer.sc-duet-card{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 36em){/*!@.x-large .duet-card-footer*/.x-large.sc-duet-card .duet-card-footer.sc-duet-card{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 48em){/*!@.x-large .duet-card-footer*/.x-large.sc-duet-card .duet-card-footer.sc-duet-card{padding:39px 72px 40px !important;margin:48px -72px -72px}}/*!@.none .duet-card-footer*/.none.sc-duet-card .duet-card-footer.sc-duet-card{padding:12px 0 !important;margin:20px 0 0}/*!@.duet-card-content*/.duet-card-content.sc-duet-card{width:100%}/*!@.duet-card-collapsed .duet-card-content*/.duet-card-collapsed.sc-duet-card .duet-card-content.sc-duet-card{display:none}/*!@.duet-card-caret*/.duet-card-caret.sc-duet-card{position:relative;top:6px;align-self:flex-start;transition:300ms ease}/*!@[aria-expanded=false] .duet-card-caret*/[aria-expanded=false].sc-duet-card .duet-card-caret.sc-duet-card{transform:rotate(-180deg)}/*!@.duet-card-image-mask*/.duet-card-image-mask.sc-duet-card{position:relative;width:calc(100% + 40px);margin:-20px 0 20px -20px;overflow:hidden;border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){/*!@.small .duet-card-image-mask*/.small.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 36em){/*!@.medium .duet-card-image-mask*/.medium.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 48em){/*!@.medium .duet-card-image-mask*/.medium.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 72px);margin:-36px 0 28px -36px}}@media (min-width: 36em){/*!@.large .duet-card-image-mask*/.large.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 72px);margin:-36px 0 36px -36px}}@media (min-width: 48em){/*!@.large .duet-card-image-mask*/.large.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 36em){/*!@.x-large .duet-card-image-mask*/.x-large.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 48em){/*!@.x-large .duet-card-image-mask*/.x-large.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 144px);margin:-72px 0 36px -72px}}/*!@.none .duet-card-image-mask*/.none.sc-duet-card .duet-card-image-mask.sc-duet-card{width:100%;margin:0 0 20px}/*!@.duet-card-image*/.duet-card-image.sc-duet-card{display:block;width:102%;min-width:1px;max-width:102%;height:auto;min-height:1px;margin-left:-1%;transition:transform 300ms ease;transform:scale(1.0001)}/*!@a.duet-card*/a.duet-card.sc-duet-card{transition:box-shadow 300ms ease, background-position 300ms ease}/*!@a.duet-card:hover*/a.duet-card.sc-duet-card:hover{box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(0, 41, 77, 0.1)}/*!@a.duet-card:hover .duet-card-image*/a.duet-card.sc-duet-card:hover .duet-card-image.sc-duet-card{transform:scale(1.024)}/*!@.duet-theme-turva a.duet-card:hover*/.duet-theme-turva.sc-duet-card a.duet-card.sc-duet-card:hover{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(117, 117, 117, 0.15)}/*!@a.duet-card:active*/a.duet-card.sc-duet-card:active{transition:none;transform:translateY(1px)}";
6700
6915
 
6701
6916
  /**
@@ -7000,7 +7215,7 @@ const FocusGuard = ({ moveFocusTo }) => {
7000
7215
  return hAsync("div", { class: "duet-focus-guard", "aria-hidden": "true", tabIndex: 0, onFocus: () => focusElement(moveFocusTo) });
7001
7216
  };
7002
7217
 
7003
- const duetChoiceCss = "*.sc-duet-choice,*.sc-duet-choice::after,*.sc-duet-choice::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-choice-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;flex-direction:column;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}.sc-duet-choice-h:last-child,.sc-duet-choice-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){.sc-duet-choice-h{width:100%}}.duet-expand.sc-duet-choice-h{width:100% !important}.duet-m-0.sc-duet-choice-h{margin:0 !important}.duet-fixed.sc-duet-choice-h{width:auto !important}.vertical.sc-duet-choice-h{margin-right:0 !important}.horizontal.sc-duet-choice-h{margin-bottom:0 !important}@media (min-width: 48em){.horizontal-responsive.sc-duet-choice-h{margin-bottom:0 !important;margin-right:16px !important}.horizontal-responsive.sc-duet-choice-h:last-child,.horizontal-responsive.sc-duet-choice-h:last-of-type{margin-right:0 !important}}.sc-duet-choice-h:last-child:not(:only-child){margin-right:0 !important}.duet-choice-card.sc-duet-choice{position:relative;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:400;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#00294d !important;text-align:left;background:white;border-width:2px}.duet-choice-card.duet-p-0.sc-duet-choice{padding:0 !important}.duet-choice-card.duet-m-0.sc-duet-choice{margin:0 !important}.duet-theme-turva.sc-duet-choice .duet-choice-card.sc-duet-choice{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}.duet-choice-card-flextainer.sc-duet-choice{display:flex}.duet-choice-label.sc-duet-choice{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px 48px 20px 16px;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;border:2px solid #e1e3e6;border-radius:4px;transition:background-color 150ms ease}.has-info.sc-duet-choice .duet-choice-label.sc-duet-choice{padding-right:110px;border-top-right-radius:0;border-bottom-right-radius:0}.info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-bottom-right-radius:0;border-bottom-left-radius:0}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice{border-color:#e4e4e6}.duet-theme-turva.sc-duet-choice .info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-color:#e4e4e6}.duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#909599}.duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-checkmark-container.sc-duet-choice{border-color:#909599}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#747475}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-checkmark-container.sc-duet-choice{border-color:#747475}.duet-theme-turva.sc-duet-choice .info.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#747475}.duet-choice-label.sc-duet-choice:active{opacity:0.75;transition:none !important}.has-icon.sc-duet-choice .duet-choice-label.sc-duet-choice{padding-left:48px}.checked.sc-duet-choice .duet-choice-label.sc-duet-choice{color:#0077b3 !important;background:#f3f9fc;border-color:#0077b3 !important}.checked.sc-duet-choice .duet-choice-label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#0077b3}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-choice-label.sc-duet-choice{color:#171c3a !important;background:#f5f5f7;border-color:#171c3a !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-choice-label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#c60c30}.checked.collapsible.sc-duet-choice .duet-choice-label.sc-duet-choice{border-bottom:0 !important;border-bottom-right-radius:0;border-bottom-left-radius:0}input.sc-duet-choice:focus{outline:0}.user-is-tabbing.sc-duet-choice-h input.sc-duet-choice:checked:focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3)}.user-is-tabbing.sc-duet-choice-h input.sc-duet-choice:not(:checked):focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.user-is-tabbing.duet-theme-turva.sc-duet-choice-h input.sc-duet-choice:checked:focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2)}.user-is-tabbing.duet-theme-turva.sc-duet-choice-h input.sc-duet-choice:not(:checked):focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{color:#657787 !important;cursor:default !important;background:#f5f8fa !important;border-color:#e1e3e6 !important}input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice .duet-checkmark.sc-duet-choice{border-color:#657787 !important}.duet-theme-turva.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{color:#747475 !important;background:#f5f5f7 !important;border-color:#e4e4e6 !important}.duet-theme-turva.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice .duet-checkmark.sc-duet-choice{border-color:#747475 !important}.checked.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{background:#e1e3e6 !important;border-color:#e1e3e6 !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-checkmark-container.sc-duet-choice{position:absolute;top:17.7777777778px;right:16px;width:20px;height:20px;border:1px solid #909599;border-radius:4px;transition:border 300ms ease}.duet-theme-turva.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#747475}.checked.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#0077b3;border-color:#0077b3;transition:none}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#171c3a;border-color:#171c3a !important}.duet-checkmark-container.duet-checkmark-radio.sc-duet-choice{border-radius:50%}[disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#cfd2d4 !important}.duet-theme-turva.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#cfcfd1 !important}.checked.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#cfd2d4 !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#cfcfd1 !important}.duet-checkmark.sc-duet-choice{position:absolute;top:10px;left:3px;width:5.3333333333px;height:11.8518518519px;border-top:2px solid white;border-right:2px solid white;opacity:1;transform:scaleX(-1) rotate(135deg) translateZ(0);transform-origin:left top;animation-name:duet-checkmark;animation-duration:600ms;animation-timing-function:ease-out;animation-fill-mode:forwards}@keyframes duet-checkmark{0%{width:0;height:0;opacity:1}20%{width:5.3333333333px;height:0;opacity:1}40%,100%{width:5.3333333333px;height:11.8518518519px;opacity:1}}.duet-choice-card-icon.sc-duet-choice{position:absolute;top:50%;left:16px;transform:translateY(-50%)}.duet-choice-card-icon.sc-duet-choice duet-icon.sc-duet-choice{display:block}.duet-choice-section-hidden.sc-duet-choice{display:none}.duet-choice-card-info.duet-choice-card-collapsed.sc-duet-choice,.duet-choice-card-collapsed.duet-choice-card-collapsible.sc-duet-choice{position:relative;width:auto;padding:0 !important;background:unset !important;border:0;border-radius:0}.duet-choice-card-info.sc-duet-choice,.duet-choice-card-collapsible.sc-duet-choice{padding:28px !important;position:relative;z-index:200;width:100%;font-weight:400;color:#00294d;border:2px solid #e1e3e6;border-top:0;border-radius:0 0 4px 4px}.duet-theme-turva.sc-duet-choice .duet-choice-card-info.sc-duet-choice,.duet-theme-turva.sc-duet-choice .duet-choice-card-collapsible.sc-duet-choice{color:#171c3a;border-color:#171c3a}.checked.sc-duet-choice .duet-choice-card-info.sc-duet-choice,.checked.sc-duet-choice .duet-choice-card-collapsible.sc-duet-choice{display:block}.duet-choice-card-info-expanded.sc-duet-choice,.duet-choice-card-collapsible-expanded.sc-duet-choice{display:block}.duet-choice-card-collapsible.sc-duet-choice{background:white;border:2px solid #0077b3;border-top:0}.duet-choice-card-collapsible.duet-theme-turva.sc-duet-choice{background:white;border-color:#171c3a}.duet-choice-card-collapsible-disabled.sc-duet-choice{background:#f5f8fa;border-color:#e1e3e6}.duet-choice-card-collapsible-disabled.duet-theme-turva.sc-duet-choice{background:#f5f5f7;border-color:#e4e4e6}.duet-choice-card-info.sc-duet-choice{font-size:0.875rem;line-height:1.5;background:#f5f8fa;transition:150ms ease-out}.duet-choice-card-info.duet-theme-turva.sc-duet-choice{background:#f5f5f7;border-color:#e4e4e6}.duet-choice-info-toggle.sc-duet-choice{display:flex;flex-shrink:0;justify-content:center;width:57.6px;padding-top:18px;cursor:pointer;background:white;border:2px solid #e1e3e6;border-left:0 none;border-top-right-radius:4px;border-bottom-right-radius:4px;-webkit-appearance:none;appearance:none}.duet-choice-info-toggle[aria-expanded=true].sc-duet-choice{background:#f5f8fa;border-bottom:0;border-bottom-right-radius:0}.duet-choice-info-toggle[disabled].sc-duet-choice{pointer-events:none;background:#f5f8fa !important;border-color:#e1e3e6 !important}.duet-choice-info-toggle[disabled].sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#909599 !important}.duet-choice-info-toggle[disabled].duet-theme-turva.sc-duet-choice{background:#f5f5f7 !important;border-color:#e4e4e6 !important}.duet-choice-info-toggle[disabled].duet-theme-turva.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#747475 !important}.duet-choice-info-toggle.sc-duet-choice:focus{outline:none}.user-is-tabbing.sc-duet-choice-h .duet-choice-info-toggle.sc-duet-choice:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-choice-info-toggle.sc-duet-choice{border-left-color:#909599}.checked.sc-duet-choice .duet-choice-info-toggle.sc-duet-choice{border-left-color:#0077b3 !important}.duet-choice-info-toggle.sc-duet-choice duet-icon.sc-duet-choice{display:block}.duet-choice-info-toggle.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#0077b3}.duet-theme-turva.sc-duet-choice .duet-choice-info-toggle.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#c60c30}.duet-choice-input.sc-duet-choice{position:absolute !important;width:auto;height:auto;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);color:transparent}";
7218
+ const duetChoiceCss = "*.sc-duet-choice,*.sc-duet-choice::after,*.sc-duet-choice::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-choice-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;flex-direction:column;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}.sc-duet-choice-h:last-child,.sc-duet-choice-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){.sc-duet-choice-h{width:100%}}.duet-expand.sc-duet-choice-h{width:100% !important}.duet-m-0.sc-duet-choice-h{margin:0 !important}.duet-fixed.sc-duet-choice-h{width:auto !important}.vertical.sc-duet-choice-h{margin-right:0 !important}.horizontal.sc-duet-choice-h{margin-bottom:0 !important}@media (min-width: 48em){.horizontal-responsive.sc-duet-choice-h{margin-bottom:0 !important;margin-right:16px !important}.horizontal-responsive.sc-duet-choice-h:last-child,.horizontal-responsive.sc-duet-choice-h:last-of-type{margin-right:0 !important}}.sc-duet-choice-h:last-child:not(:only-child){margin-right:0 !important}.duet-choice-card.sc-duet-choice{position:relative;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:400;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#00294d !important;text-align:left;background:white;border-width:2px}.duet-choice-card.duet-p-0.sc-duet-choice{padding:0 !important}.duet-choice-card.duet-m-0.sc-duet-choice{margin:0 !important}.duet-theme-turva.sc-duet-choice .duet-choice-card.sc-duet-choice{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}.duet-choice-card-flextainer.sc-duet-choice{display:flex}.duet-choice-label.sc-duet-choice{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:flex;gap:1rem;align-items:center;justify-content:flex-start;width:100%;height:100%;min-height:3.875rem;padding:1rem;font-size:1rem;font-weight:600;text-decoration:none;word-break:break-word;cursor:pointer;border:2px solid #e1e3e6;border-radius:4px;transition:background-color 150ms ease}.duet-choice-label.sc-duet-choice>div.sc-duet-choice:last-child{flex:1;align-self:flex-start;justify-self:flex-end;margin-top:0.25rem}.has-info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-top-right-radius:0;border-bottom-right-radius:0}.info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-bottom-right-radius:0;border-bottom-left-radius:0}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice{border-color:#e4e4e6}.duet-theme-turva.sc-duet-choice .info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-color:#e4e4e6}.duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#909599}.duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-checkmark-container.sc-duet-choice{border-color:#909599}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#747475}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-checkmark-container.sc-duet-choice{border-color:#747475}.duet-theme-turva.sc-duet-choice .info.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#747475}.duet-choice-label.sc-duet-choice:active{opacity:0.75;transition:none !important}.checked.sc-duet-choice .duet-choice-label.sc-duet-choice{color:#0077b3 !important;background:#f3f9fc;border-color:#0077b3 !important}.checked.sc-duet-choice .duet-choice-label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#0077b3}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-choice-label.sc-duet-choice{color:#171c3a !important;background:#f5f5f7;border-color:#171c3a !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-choice-label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#c60c30}.checked.collapsible.sc-duet-choice .duet-choice-label.sc-duet-choice{border-bottom:0 !important;border-bottom-right-radius:0;border-bottom-left-radius:0}input.sc-duet-choice:focus{outline:0}.user-is-tabbing.sc-duet-choice-h input.sc-duet-choice:checked:focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3)}.user-is-tabbing.sc-duet-choice-h input.sc-duet-choice:not(:checked):focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.user-is-tabbing.duet-theme-turva.sc-duet-choice-h input.sc-duet-choice:checked:focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2)}.user-is-tabbing.duet-theme-turva.sc-duet-choice-h input.sc-duet-choice:not(:checked):focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{color:#657787 !important;cursor:default !important;background:#f5f8fa !important;border-color:#e1e3e6 !important}input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice .duet-checkmark.sc-duet-choice{border-color:#657787 !important}.duet-theme-turva.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{color:#747475 !important;background:#f5f5f7 !important;border-color:#e4e4e6 !important}.duet-theme-turva.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice .duet-checkmark.sc-duet-choice{border-color:#747475 !important}.checked.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{background:#e1e3e6 !important;border-color:#e1e3e6 !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-checkmark-container.sc-duet-choice{position:relative;width:20px;height:20px;margin-left:auto;border:1px solid #909599;border-radius:4px;transition:border 300ms ease}.duet-theme-turva.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#747475}.checked.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#0077b3;border-color:#0077b3;transition:none}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#171c3a;border-color:#171c3a !important}.duet-checkmark-container.duet-checkmark-radio.sc-duet-choice{border-radius:50%}[disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#cfd2d4 !important}.duet-theme-turva.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#cfcfd1 !important}.checked.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#cfd2d4 !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#cfcfd1 !important}.duet-checkmark.sc-duet-choice{position:absolute;top:10px;left:3px;width:5.3333333333px;height:11.8518518519px;border-top:2px solid white;border-right:2px solid white;opacity:1;transform:scaleX(-1) rotate(135deg) translateZ(0);transform-origin:left top;animation-name:duet-checkmark;animation-duration:600ms;animation-timing-function:ease-out;animation-fill-mode:forwards}@keyframes duet-checkmark{0%{width:0;height:0;opacity:1}20%{width:5.3333333333px;height:0;opacity:1}40%,100%{width:5.3333333333px;height:11.8518518519px;opacity:1}}.duet-choice-card-icon.sc-duet-choice{position:relative}.duet-choice-card-icon.sc-duet-choice duet-icon.sc-duet-choice{display:block}.duet-choice-section-hidden.sc-duet-choice{display:none}.duet-choice-card-info.duet-choice-card-collapsed.sc-duet-choice,.duet-choice-card-collapsed.duet-choice-card-collapsible.sc-duet-choice{position:relative;width:auto;padding:0 !important;background:unset !important;border:0;border-radius:0}.duet-choice-card-info.sc-duet-choice,.duet-choice-card-collapsible.sc-duet-choice{padding:28px !important;position:relative;z-index:200;width:100%;font-weight:400;color:#00294d;border:2px solid #e1e3e6;border-top:0;border-radius:0 0 4px 4px}.duet-theme-turva.sc-duet-choice .duet-choice-card-info.sc-duet-choice,.duet-theme-turva.sc-duet-choice .duet-choice-card-collapsible.sc-duet-choice{color:#171c3a;border-color:#171c3a}.checked.sc-duet-choice .duet-choice-card-info.sc-duet-choice,.checked.sc-duet-choice .duet-choice-card-collapsible.sc-duet-choice{display:block}.duet-choice-card-info-expanded.sc-duet-choice,.duet-choice-card-collapsible-expanded.sc-duet-choice{display:block}.duet-choice-card-collapsible.sc-duet-choice{background:white;border:2px solid #0077b3;border-top:0}.duet-choice-card-collapsible.duet-theme-turva.sc-duet-choice{background:white;border-color:#171c3a}.duet-choice-card-collapsible-disabled.sc-duet-choice{background:#f5f8fa;border-color:#e1e3e6}.duet-choice-card-collapsible-disabled.duet-theme-turva.sc-duet-choice{background:#f5f5f7;border-color:#e4e4e6}.duet-choice-card-info.sc-duet-choice{font-size:0.875rem;line-height:1.5;background:#f5f8fa;transition:150ms ease-out}.duet-choice-card-info.duet-theme-turva.sc-duet-choice{background:#f5f5f7;border-color:#e4e4e6}.duet-choice-info-toggle.sc-duet-choice{display:flex;flex-shrink:0;align-items:flex-start;justify-content:center;width:57.6px;padding-top:1.25rem;cursor:pointer;background:white;border:2px solid #e1e3e6;border-left:0 none;border-top-right-radius:4px;border-bottom-right-radius:4px;-webkit-appearance:none;appearance:none}.duet-choice-info-toggle[aria-expanded=true].sc-duet-choice{background:#f5f8fa;border-bottom-color:transparent;border-bottom-right-radius:0}.duet-choice-info-toggle[disabled].sc-duet-choice{pointer-events:none;background:#f5f8fa !important;border-color:#e1e3e6 !important}.duet-choice-info-toggle[disabled].sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#909599 !important}.duet-choice-info-toggle[disabled].duet-theme-turva.sc-duet-choice{background:#f5f5f7 !important;border-color:#e4e4e6 !important}.duet-choice-info-toggle[disabled].duet-theme-turva.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#747475 !important}.duet-choice-info-toggle.sc-duet-choice:focus{outline:none}.user-is-tabbing.sc-duet-choice-h .duet-choice-info-toggle.sc-duet-choice:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-choice-info-toggle.sc-duet-choice{border-left-color:#909599}.checked.sc-duet-choice .duet-choice-info-toggle.sc-duet-choice{border-left-color:#0077b3 !important}.duet-choice-info-toggle.sc-duet-choice duet-icon.sc-duet-choice{display:block}.duet-choice-info-toggle.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#0077b3}.duet-theme-turva.sc-duet-choice .duet-choice-info-toggle.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#c60c30}.duet-choice-input.sc-duet-choice{position:absolute !important;width:auto;height:auto;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);color:transparent}";
7004
7219
 
7005
7220
  /**
7006
7221
  * @slot unnamed default slot - The component’s primary content. All child nodes that do not have a slot attribute defined are inserted into this primary slot.
@@ -7281,7 +7496,7 @@ class DuetChoice {
7281
7496
  info: this.isInfoOpen,
7282
7497
  collapsible: this.collapsible,
7283
7498
  "duet-p-0": this.padding === "none",
7284
- } }, hAsync("input", { class: "duet-choice-input", type: this.type, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, disabled: this.disabled || this.groupDisabled, required: this.required, id: identifier, name: this.name, value: this.value, checked: this.checked, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedby(), onKeyDown: this.handleKeyDown, ref: input => (this.nativeInput = input) }), hAsync("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering }, onClick: this.onClick }, this.icon && (hAsync("div", { class: "duet-choice-card-icon" }, hAsync("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.label, this.caption && (hAsync("div", null, hAsync("duet-spacer", { size: "xx-small" }), hAsync("duet-caption", { margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (hAsync("div", null, hAsync("duet-spacer", { size: "xx-small" }), hAsync("slot", { name: "additional" }))), hAsync("div", { class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && hAsync("div", { class: "duet-checkmark" })))), this.hasInfo && !this.collapsible && (hAsync("button", { ref: button => (this.infoButtonEl = button), id: this.infoButtonId, class: {
7499
+ } }, hAsync("input", { class: "duet-choice-input", type: this.type, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, disabled: this.disabled || this.groupDisabled, required: this.required, id: identifier, name: this.name, value: this.value, checked: this.checked, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedby(), onKeyDown: this.handleKeyDown, ref: input => (this.nativeInput = input) }), hAsync("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering }, onClick: this.onClick }, this.icon && (hAsync("div", { class: "duet-choice-card-icon" }, hAsync("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), hAsync("div", null, hAsync("div", null, this.label), this.caption && (hAsync("div", null, hAsync("duet-spacer", { size: "xx-small" }), hAsync("duet-caption", { margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (hAsync("div", null, hAsync("duet-spacer", { size: "xx-small" }), hAsync("slot", { name: "additional" })))), hAsync("div", null, hAsync("div", { class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && hAsync("div", { class: "duet-checkmark" }))))), this.hasInfo && !this.collapsible && (hAsync("button", { ref: button => (this.infoButtonEl = button), id: this.infoButtonId, class: {
7285
7500
  "duet-choice-info-toggle": true,
7286
7501
  "duet-theme-turva": this.theme === "turva",
7287
7502
  }, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, onClick: this.toggleInfo, disabled: this.disabled || this.groupDisabled, "aria-expanded": this.isInfoOpen ? "true" : "false", "aria-label": `${this.infoLabel} ${this.label}`, "aria-controls": this.expandId, "aria-flowto": this.expandId, tabindex: this.type === "radio" && !this.checked ? "-1" : "0", type: "button" }, hAsync("duet-visually-hidden", { "aria-hidden": !this.isBlurred ? "true" : "false" }, this.accessibleLabelInfoButton), hAsync("div", { class: "duet-choice-info-icon" }, hAsync("duet-icon", { icon: messagingInfo.svg, margin: "none", size: "small", color: "currentColor" }))))), this.collapsible || this.hasInfo ? (hAsync("div", { class: this.getClassNames(), id: this.expandId }, hAsync("span", { class: {
@@ -8012,6 +8227,7 @@ const duetCollapsibleCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-collapsible,
8012
8227
 
8013
8228
  /**
8014
8229
  * @part duet-collapsible-heading-content - piercing selector for styling the heading content
8230
+ * @part duet-collapsible-content - piercing selector for styling the content
8015
8231
  */
8016
8232
  class DuetCollapsible {
8017
8233
  constructor(hostRef) {
@@ -8131,7 +8347,7 @@ class DuetCollapsible {
8131
8347
  "duet-collapsible-heading": true,
8132
8348
  "duet-theme-turva": this.theme === "turva",
8133
8349
  "duet-collapsible-normal-weight": this.headingWeight === "normal",
8134
- }, style: { "font-size": this.getFontSizeFromTokens() }, role: "button", tabindex: "0", ref: button => (this.nativeButton = button), "aria-expanded": this.open ? "true" : "false", "aria-controls": this.id, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, hAsync("div", { class: "duet-collapsible-heading-icon" }, hAsync("duet-icon", { margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary", size: this.getEquivalentIconSize(), icon: actionArrowDownSmall.svg })), hAsync("div", { class: "duet-collapsible-heading-content", part: "duet-collapsible-heading-content" }, this.heading)), hAsync("div", { id: this.id, class: { "duet-collapsible-content": true, "duet-theme-turva": this.theme === "turva" } }, hAsync("slot", null))));
8350
+ }, style: { "font-size": this.getFontSizeFromTokens() }, role: "button", tabindex: "0", ref: button => (this.nativeButton = button), "aria-expanded": this.open ? "true" : "false", "aria-controls": this.id, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, hAsync("div", { class: "duet-collapsible-heading-icon" }, hAsync("duet-icon", { margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary", size: this.getEquivalentIconSize(), icon: actionArrowDownSmall.svg })), hAsync("div", { class: "duet-collapsible-heading-content", part: "duet-collapsible-heading-content" }, this.heading)), hAsync("div", { id: this.id, class: { "duet-collapsible-content": true, "duet-theme-turva": this.theme === "turva" }, part: "duet-collapsible-content" }, hAsync("slot", null))));
8135
8351
  }
8136
8352
  get element() { return getElement(this); }
8137
8353
  static get style() { return duetCollapsibleCss; }
@@ -8591,7 +8807,7 @@ const DatePickerMonth = ({ selectedDate, focusedDate, labelledById, theme, langu
8591
8807
  } }))))))))));
8592
8808
  };
8593
8809
 
8594
- const duetDatePickerCss = "*.sc-duet-date-picker,*.sc-duet-date-picker::after,*.sc-duet-date-picker::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-date-picker-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;position:relative;display:inline-flex;width:100%;min-width:calc(33.333% - 8px);max-width:100%;text-align:left;vertical-align:top}.sc-duet-date-picker-h:last-child,.sc-duet-date-picker-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-date-picker-h{width:calc(50% - 16px - 3px)}}.duet-expand.sc-duet-date-picker-h{width:100% !important}.duet-m-0.sc-duet-date-picker-h{margin:0 !important}.duet-date.sc-duet-date-picker{position:relative;width:100%}.duet-date.sc-duet-date-picker button.sc-duet-date-picker,.duet-date-dialog.sc-duet-date-picker button.sc-duet-date-picker{max-width:initial !important;min-height:initial !important;padding:0 !important;margin:0 !important;transition:initial}.duet-date-button.sc-duet-date-picker{-webkit-user-select:none;user-select:none;position:absolute;top:1px;right:1px;z-index:200;display:flex;align-items:center;justify-content:center;width:48px;height:calc(100% - 2px);color:#00294d;cursor:pointer;background:transparent !important;border-left:1px solid #cfd2d4 !important;border-radius:0 4px 4px 0 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-button.sc-duet-date-picker{color:#171c3a;border-color:#cfcfd1}.duet-date-button.sc-duet-date-picker::before{position:absolute;top:0;left:-6px;width:6px;height:100%;content:\"\";background:linear-gradient(to left, rgba(207, 210, 212, 0.2) 0%, rgba(207, 210, 212, 0.2) 1px, rgba(207, 210, 212, 0.1) 1px, rgba(207, 210, 212, 0) 100%)}.duet-date-button.sc-duet-date-picker:disabled{pointer-events:none;cursor:default;background:#f5f8fa !important;border:0 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-button.sc-duet-date-picker:disabled{background:#f5f5f7 !important}.duet-date-button.sc-duet-date-picker:disabled::before{display:none}.duet-date-button.sc-duet-date-picker:disabled duet-icon.sc-duet-date-picker{opacity:0.4}.duet-date-button.sc-duet-date-picker duet-icon.sc-duet-date-picker{transform:translateY(-1px)}.duet-date-button.sc-duet-date-picker:active duet-icon.sc-duet-date-picker{transform:translateY(0)}.duet-date-button.sc-duet-date-picker:focus{color:#0077b3;border-color:transparent;outline:0;box-shadow:0 0 0 2px #0077b3}.duet-theme-turva.sc-duet-date-picker .duet-date-button.sc-duet-date-picker:focus{color:#171c3a;box-shadow:0 0 0 2px #171c3a}.duet-date-dialog.sc-duet-date-picker{position:absolute;top:100%;left:0;z-index:900;display:flex;width:100%;visibility:hidden;opacity:0;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right}@media (min-width: 36em){.duet-date-dialog.left.sc-duet-date-picker{right:0;left:auto;width:auto}}@media (max-width: 35.9375em){.duet-date-dialog.sc-duet-date-picker{position:fixed;top:0;right:0;bottom:0;background:rgba(0, 41, 77, 0.75);transition:opacity 400ms ease, visibility 400ms ease;transform:translateZ(0);transform-origin:bottom center}.duet-date-dialog.duet-theme-turva.sc-duet-date-picker{background:rgba(23, 28, 58, 0.75)}}.duet-date-dialog.active.sc-duet-date-picker{visibility:visible;opacity:1;transition-property:transform, opacity;transform:scale(1.0001) translateZ(0) translateY(0)}@media (min-width: 36em){.duet-date-dialog.error.sc-duet-date-picker{top:calc(100% - 28px);margin-top:4px}}.duet-date-dialog-wrapper.sc-duet-date-picker{position:relative;z-index:600;width:100%;min-width:290px;max-width:310px;padding:16px 16px 20px;margin-top:8px;margin-left:auto;background:white;border:1px solid #e1e3e6;border-radius:4px;box-shadow:0 4px 10px 0 rgba(0, 41, 77, 0.15);transform:none}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-wrapper.sc-duet-date-picker{border-color:#e4e4e6}@media (max-width: 35.9375em){.duet-date-dialog-wrapper.sc-duet-date-picker{position:absolute;bottom:0;left:0;z-index:900;max-width:none;min-height:25em;padding:0 8% 20px;margin:0;visibility:hidden;border:0;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px;opacity:0;transition:transform 400ms ease, opacity 400ms ease, visibility 400ms ease;transform:translateZ(0) translateY(100%)}.active.sc-duet-date-picker .duet-date-dialog-wrapper.sc-duet-date-picker{visibility:visible;opacity:1;transition-property:transform, opacity;transform:translateZ(0) translateY(0)}}.duet-date-table.sc-duet-date-picker{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.25;color:#00294d;text-align:center;border-spacing:0;border-collapse:collapse}.duet-date-table.duet-theme-turva.sc-duet-date-picker{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}.duet-date-table.sc-duet-date-picker th.sc-duet-date-picker{padding-bottom:8px;font-size:0.75rem;font-weight:600;line-height:1.25;text-decoration:none;text-transform:uppercase;letter-spacing:1px}.duet-date-table.sc-duet-date-picker .duet-date-table-cell.sc-duet-date-picker{text-align:center}.duet-date-table-button.sc-duet-date-picker{position:relative;z-index:100;display:inline-block !important;width:36.9230769231px !important;height:36.9230769231px !important;min-height:initial !important;padding:0 !important;margin:0 !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:0.875rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.25 !important;color:#00294d !important;text-align:center;vertical-align:initial !important;cursor:pointer;background:transparent !important;border-radius:50% !important;transition:initial !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !important;color:#171c3a !important}.duet-date-table-button.sc-duet-date-picker:hover{background:#e6f2f8 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:hover{background:#f9e6ea !important}.duet-date-table-button.today.sc-duet-date-picker{z-index:200;color:#004d80 !important;background:#f3f9fc !important;box-shadow:0 0 0 1px #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.today.sc-duet-date-picker{color:#940925 !important;background:#fcf3f4 !important;box-shadow:0 0 0 1px #c60c30 !important}.duet-date-table-button[aria-pressed=true].sc-duet-date-picker,.duet-date-table-button.sc-duet-date-picker:focus{color:white !important;background:#0077b3 !important;outline:0}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button[aria-pressed=true].sc-duet-date-picker,.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:focus{color:white !important;background:#c60c30 !important}.duet-date-table-button.sc-duet-date-picker:active{z-index:200;color:white !important;background:#0077b3 !important;box-shadow:0 0 5px #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:active{color:white !important;background:#c60c30 !important;box-shadow:0 0 5px #c60c30 !important}.duet-date-table-button.sc-duet-date-picker:focus{z-index:200;box-shadow:0 0 5px #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:focus{box-shadow:0 0 5px #c60c30 !important}.duet-date-table-button.disabled.sc-duet-date-picker{color:#909599 !important;cursor:default;background:transparent !important;box-shadow:none !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.disabled.sc-duet-date-picker{color:#747475 !important;background:transparent !important;box-shadow:none !important}.duet-date-table-button.outside.sc-duet-date-picker{color:#909599 !important;pointer-events:none;cursor:default;background:#f5f8fa !important;box-shadow:none;opacity:0.75}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.outside.sc-duet-date-picker{color:#747475;background:#f5f5f7;box-shadow:none}.duet-date-dialog-header.sc-duet-date-picker{margin-bottom:16px !important;display:flex;align-items:center;justify-content:space-between;width:100%}.duet-date-dialog-buttons.sc-duet-date-picker{white-space:nowrap}.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:auto !important;padding:0 !important;margin:0 0 0 8px !important;color:#00294d;cursor:pointer;background:#f5f8fa;border-radius:50%;transition:background-color 300ms ease !important}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker{color:#171c3a;background:#f5f5f7}.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker duet-icon.sc-duet-date-picker{display:block}@media (max-width: 35.9375em){.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker{width:40px;height:40px}}.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:not(:disabled):hover{background:#e9ecee !important}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:not(:disabled):hover{background:#e9e9eb !important}.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:focus{outline:0;box-shadow:0 0 0 2px #0077b3}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:focus{box-shadow:0 0 0 2px #171c3a}.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:active:focus{background:#dddfe1;box-shadow:none}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:active:focus{background:#ddddde}.duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-buttons.sc-duet-date-picker button.sc-duet-date-picker:disabled{color:#747475;background:#f5f5f7}.duet-date-dialog-select.sc-duet-date-picker{position:relative;display:inline-flex;margin-top:4px}.duet-date-dialog-select.sc-duet-date-picker .duet-date-dialog-select-label.sc-duet-date-picker{position:relative;z-index:1;display:flex;align-items:center;width:100%;padding:0 8px;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:1.25rem;font-weight:600;line-height:1.25;color:#00294d;pointer-events:none;border-radius:4px}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-select.sc-duet-date-picker .duet-date-dialog-select-label.sc-duet-date-picker{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}.duet-date-dialog-select.sc-duet-date-picker span.sc-duet-date-picker{margin-right:4px}.duet-date-dialog-select.sc-duet-date-picker select.sc-duet-date-picker{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;font-size:1rem;cursor:pointer;opacity:0}.duet-date-dialog-select.sc-duet-date-picker select.sc-duet-date-picker:focus+.duet-date-dialog-select-label.sc-duet-date-picker{box-shadow:0 0 0 2px #0077b3}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-select.sc-duet-date-picker select.sc-duet-date-picker:focus+.duet-date-dialog-select-label.sc-duet-date-picker{box-shadow:0 0 0 2px #171c3a}.duet-date-dialog-mobile-header.sc-duet-date-picker{position:relative;display:flex;align-items:center;justify-content:space-between;width:120%;padding:12px 20px;margin-bottom:20px;margin-left:-10%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #cfd2d4}@media (min-width: 36em){.duet-date-dialog-mobile-header.sc-duet-date-picker{position:absolute;top:-8px;right:-8px;width:auto;padding:0;margin:0;overflow:visible;border:0}}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-mobile-header.sc-duet-date-picker{border-color:#cfcfd1}.duet-date-dialog-mobile-header.sc-duet-date-picker duet-label.sc-duet-date-picker{display:inline-block;max-width:84%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 36em){.duet-date-dialog-mobile-header.sc-duet-date-picker duet-label.sc-duet-date-picker{display:none}}.duet-date-picker-close.sc-duet-date-picker{display:flex;align-items:center;justify-content:center;width:24px;height:24px !important;padding:0 !important;color:#00294d !important;cursor:pointer;background:#f5f8fa !important;border-radius:50%;-webkit-appearance:none;appearance:none}@media (min-width: 36em){.duet-date-picker-close.sc-duet-date-picker{opacity:0}}.duet-theme-turva.sc-duet-date-picker .duet-date-picker-close.sc-duet-date-picker{background:#f5f5f7 !important}.duet-date-picker-close.sc-duet-date-picker:hover{background:#f5f8fa !important}.duet-theme-turva.sc-duet-date-picker .duet-date-picker-close.sc-duet-date-picker:hover{background:#f5f5f7 !important}.duet-date-picker-close.sc-duet-date-picker:focus{outline:none;box-shadow:0 0 0 2px #0077b3}@media (min-width: 36em){.duet-date-picker-close.sc-duet-date-picker:focus{opacity:1}}.duet-theme-turva.sc-duet-date-picker .duet-date-picker-close.sc-duet-date-picker:focus{box-shadow:0 0 0 2px #171c3a}";
8810
+ const duetDatePickerCss = "*.sc-duet-date-picker,*.sc-duet-date-picker::after,*.sc-duet-date-picker::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-date-picker-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;position:relative;display:inline-flex;width:100%;min-width:calc(33.333% - 8px);max-width:100%;text-align:left;vertical-align:top}.sc-duet-date-picker-h:last-child,.sc-duet-date-picker-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-date-picker-h{width:calc(50% - 16px - 3px)}}.duet-expand.sc-duet-date-picker-h{width:100% !important}.duet-m-0.sc-duet-date-picker-h{margin:0 !important}.duet-date.sc-duet-date-picker{position:relative;width:100%}.duet-date.sc-duet-date-picker button.sc-duet-date-picker,.duet-date-dialog.sc-duet-date-picker button.sc-duet-date-picker{max-width:initial !important;min-height:initial !important;padding:0 !important;margin:0 !important;transition:initial}.duet-date-button.sc-duet-date-picker{-webkit-user-select:none;user-select:none;position:absolute;top:1px;right:1px;z-index:200;display:flex;align-items:center;justify-content:center;width:48px;height:calc(100% - 2px);color:#00294d;cursor:pointer;background:transparent !important;border-left:1px solid #cfd2d4 !important;border-radius:0 4px 4px 0 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-button.sc-duet-date-picker{color:#171c3a;border-color:#cfcfd1}.duet-date-button.sc-duet-date-picker::before{position:absolute;top:0;left:-6px;width:6px;height:100%;content:\"\";background:linear-gradient(to left, rgba(207, 210, 212, 0.2) 0%, rgba(207, 210, 212, 0.2) 1px, rgba(207, 210, 212, 0.1) 1px, rgba(207, 210, 212, 0) 100%)}.duet-date-button.sc-duet-date-picker:disabled{pointer-events:none;cursor:default;background:#f5f8fa !important;border:0 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-button.sc-duet-date-picker:disabled{background:#f5f5f7 !important}.duet-date-button.sc-duet-date-picker:disabled::before{display:none}.duet-date-button.sc-duet-date-picker:disabled duet-icon.sc-duet-date-picker{opacity:0.4}.duet-date-button.sc-duet-date-picker duet-icon.sc-duet-date-picker{transform:translateY(-1px)}.duet-date-button.sc-duet-date-picker:active duet-icon.sc-duet-date-picker{transform:translateY(0)}.duet-date-button.sc-duet-date-picker:focus{color:#0077b3;border-color:transparent;outline:0;box-shadow:0 0 0 2px #0077b3}.duet-theme-turva.sc-duet-date-picker .duet-date-button.sc-duet-date-picker:focus{color:#171c3a;box-shadow:0 0 0 2px #171c3a}.duet-date-dialog.sc-duet-date-picker{position:absolute;top:100%;left:0;z-index:900;display:flex;width:100%;visibility:hidden;opacity:0;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right}@media (min-width: 36em){.duet-date-dialog.left.sc-duet-date-picker{right:0;left:auto;width:auto}}@media (max-width: 35.9375em){.duet-date-dialog.sc-duet-date-picker{position:fixed;top:0;right:0;bottom:0;background:rgba(0, 41, 77, 0.75);transition:opacity 400ms ease, visibility 400ms ease;transform:translateZ(0);transform-origin:bottom center}.duet-date-dialog.duet-theme-turva.sc-duet-date-picker{background:rgba(23, 28, 58, 0.75)}}.duet-date-dialog.active.sc-duet-date-picker{visibility:visible;opacity:1;transition-property:transform, opacity;transform:scale(1.0001) translateZ(0) translateY(0)}@media (min-width: 36em){.duet-date-dialog.error.sc-duet-date-picker{top:calc(100% - 28px);margin-top:4px}}.duet-date-dialog-wrapper.sc-duet-date-picker{position:relative;z-index:600;width:100%;min-width:290px;max-width:310px;padding:16px 16px 20px;margin-top:8px;margin-left:auto;background:white;border:1px solid #e1e3e6;border-radius:4px;box-shadow:0 4px 10px 0 rgba(0, 41, 77, 0.15);transform:none}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-wrapper.sc-duet-date-picker{border-color:#e4e4e6}@media (max-width: 35.9375em){.duet-date-dialog-wrapper.sc-duet-date-picker{position:absolute;bottom:0;left:0;z-index:900;max-width:none;min-height:25em;padding:0 8% 20px;margin:0;visibility:hidden;border:0;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px;opacity:0;transition:transform 400ms ease, opacity 400ms ease, visibility 400ms ease;transform:translateZ(0) translateY(100%)}.active.sc-duet-date-picker .duet-date-dialog-wrapper.sc-duet-date-picker{visibility:visible;opacity:1;transition-property:transform, opacity;transform:translateZ(0) translateY(0)}}.duet-date-table.sc-duet-date-picker{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.25;color:#00294d;text-align:center;border-spacing:0;border-collapse:collapse}.duet-date-table.duet-theme-turva.sc-duet-date-picker{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}.duet-date-table.sc-duet-date-picker th.sc-duet-date-picker{padding-bottom:8px;font-size:0.75rem;font-weight:600;line-height:1.25;text-decoration:none;text-transform:uppercase;letter-spacing:1px}.duet-date-table.sc-duet-date-picker .duet-date-table-cell.sc-duet-date-picker{text-align:center}.duet-date-table-button.sc-duet-date-picker{position:relative;z-index:100;display:inline-block !important;width:36.9230769231px !important;height:36.9230769231px !important;min-height:initial !important;padding:0 !important;margin:0 !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:0.875rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.25 !important;color:#00294d !important;text-align:center;vertical-align:initial !important;cursor:pointer;background:transparent !important;border-radius:50% !important;transition:initial !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !important;color:#171c3a !important}.duet-date-table-button.sc-duet-date-picker:hover{background:#e6f2f8 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:hover{background:#f9e6ea !important}.duet-date-table-button.today.sc-duet-date-picker{z-index:200;color:#004d80 !important;background:#f3f9fc !important;box-shadow:0 0 0 1px #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.today.sc-duet-date-picker{color:#940925 !important;background:#fcf3f4 !important;box-shadow:0 0 0 1px #c60c30 !important}.duet-date-table-button[aria-pressed=true].sc-duet-date-picker,.duet-date-table-button.sc-duet-date-picker:focus{color:white !important;background:#0077b3 !important;outline:0}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button[aria-pressed=true].sc-duet-date-picker,.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:focus{color:white !important;background:#c60c30 !important}.duet-date-table-button.sc-duet-date-picker:active{z-index:200;color:white !important;background:#0077b3 !important;box-shadow:0 0 5px #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:active{color:white !important;background:#c60c30 !important;box-shadow:0 0 5px #c60c30 !important}.duet-date-table-button.sc-duet-date-picker:focus{z-index:200;box-shadow:0 0 5px #0077b3 !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.sc-duet-date-picker:focus{box-shadow:0 0 5px #c60c30 !important}.duet-date-table-button.disabled.sc-duet-date-picker{color:#909599 !important;cursor:default;background:transparent !important;box-shadow:none !important}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.disabled.sc-duet-date-picker{color:#747475 !important;background:transparent !important;box-shadow:none !important}.duet-date-table-button.outside.sc-duet-date-picker{color:#909599 !important;pointer-events:none;cursor:default;background:#f5f8fa !important;box-shadow:none;opacity:0.75}.duet-theme-turva.sc-duet-date-picker .duet-date-table-button.outside.sc-duet-date-picker{color:#747475;background:#f5f5f7;box-shadow:none}.duet-date-dialog-header.sc-duet-date-picker{margin-bottom:16px !important;display:flex;align-items:center;justify-content:space-between;width:100%}.duet-date-dialog-buttons.sc-duet-date-picker{white-space:nowrap}.duet-date-dialog-buttons.sc-duet-date-picker .sc-duet-date-picker::part(button){border:0}.duet-date-dialog-select.sc-duet-date-picker{position:relative;display:inline-flex;margin-top:4px}.duet-date-dialog-select.sc-duet-date-picker .duet-date-dialog-select-label.sc-duet-date-picker{position:relative;z-index:1;display:flex;align-items:center;width:100%;padding:0 8px;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:1.25rem;font-weight:600;line-height:1.25;color:#00294d;pointer-events:none;border-radius:4px}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-select.sc-duet-date-picker .duet-date-dialog-select-label.sc-duet-date-picker{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}.duet-date-dialog-select.sc-duet-date-picker span.sc-duet-date-picker{margin-right:4px}.duet-date-dialog-select.sc-duet-date-picker select.sc-duet-date-picker{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;font-size:1rem;cursor:pointer;opacity:0}.duet-date-dialog-select.sc-duet-date-picker select.sc-duet-date-picker:focus+.duet-date-dialog-select-label.sc-duet-date-picker{box-shadow:0 0 0 2px #0077b3}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-select.sc-duet-date-picker select.sc-duet-date-picker:focus+.duet-date-dialog-select-label.sc-duet-date-picker{box-shadow:0 0 0 2px #171c3a}.duet-date-dialog-mobile-header.sc-duet-date-picker{position:relative;display:flex;align-items:center;justify-content:space-between;width:120%;padding:12px 20px;margin-bottom:20px;margin-left:-10%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #cfd2d4}@media (min-width: 36em){.duet-date-dialog-mobile-header.sc-duet-date-picker{position:absolute;top:-8px;right:-8px;width:auto;padding:0;margin:0;overflow:visible;border:0}}.duet-theme-turva.sc-duet-date-picker .duet-date-dialog-mobile-header.sc-duet-date-picker{border-color:#cfcfd1}.duet-date-dialog-mobile-header.sc-duet-date-picker duet-label.sc-duet-date-picker{display:inline-block;max-width:84%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 36em){.duet-date-dialog-mobile-header.sc-duet-date-picker duet-label.sc-duet-date-picker{display:none}}.duet-date-picker-close.sc-duet-date-picker{display:flex;align-items:center;justify-content:center;width:24px;height:24px !important;padding:0 !important;color:#00294d !important;cursor:pointer;background:#f5f8fa !important;border-radius:50%;-webkit-appearance:none;appearance:none}@media (min-width: 36em){.duet-date-picker-close.sc-duet-date-picker{opacity:0}}.duet-theme-turva.sc-duet-date-picker .duet-date-picker-close.sc-duet-date-picker{background:#f5f5f7 !important}.duet-date-picker-close.sc-duet-date-picker:hover{background:#f5f8fa !important}.duet-theme-turva.sc-duet-date-picker .duet-date-picker-close.sc-duet-date-picker:hover{background:#f5f5f7 !important}.duet-date-picker-close.sc-duet-date-picker:focus{outline:none;box-shadow:0 0 0 2px #0077b3}@media (min-width: 36em){.duet-date-picker-close.sc-duet-date-picker:focus{opacity:1}}.duet-theme-turva.sc-duet-date-picker .duet-date-picker-close.sc-duet-date-picker:focus{box-shadow:0 0 0 2px #171c3a}";
8595
8811
 
8596
8812
  class DuetDatePicker {
8597
8813
  constructor(hostRef) {
@@ -8986,7 +9202,7 @@ class DuetDatePicker {
8986
9202
  left: this.direction === "left",
8987
9203
  error: !!this.error,
8988
9204
  active: this.open,
8989
- }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, hAsync(FocusGuard, { moveFocusTo: this.focusedDayNode }), hAsync("div", { class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, hAsync("duet-visually-hidden", { "aria-live": "polite" }, text.keyboardInstruction), hAsync("div", { class: "duet-date-dialog-mobile-header" }, hAsync("duet-label", { margin: "none" }, this.label), hAsync("button", { class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, hAsync("duet-icon", { name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), hAsync("duet-visually-hidden", null, text.closeLabel))), hAsync("div", { class: "duet-date-dialog-header" }, hAsync("div", { class: "duet-date-dialog-dropdowns" }, hAsync("duet-visually-hidden", null, hAsync("h2", { id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), hAsync("duet-visually-hidden", null, hAsync("label", { htmlFor: this.monthSelectId }, text.monthSelectLabel)), hAsync("div", { class: "duet-date-dialog-select" }, hAsync("select", { id: this.monthSelectId, class: "duet-date-month-select", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, text.monthLabels.map((month, i) => (hAsync("option", { key: month, value: i, selected: i === focusedMonth, disabled: !inRange(new Date(focusedYear, i, 1), minDate ? startOfMonth(minDate) : null, maxDate ? endOfMonth(maxDate) : null) }, month)))), hAsync("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", null, text.monthLabelsShort[focusedMonth]), hAsync("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), hAsync("duet-visually-hidden", null, hAsync("label", { htmlFor: this.yearSelectId }, text.yearSelectLabel)), hAsync("div", { class: "duet-date-dialog-select" }, hAsync("select", { id: this.yearSelectId, class: "duet-date-year-select", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (hAsync("option", { key: year, selected: year === focusedYear }, year)))), hAsync("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", null, this.focusedDay.getFullYear()), hAsync("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), hAsync("div", { class: "duet-date-dialog-buttons" }, hAsync("button", { class: "duet-date-dialog-prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, type: "button" }, hAsync("duet-icon", { name: "action-arrow-left-small", color: "currentColor", margin: "none", size: "xx-small" }), hAsync("duet-visually-hidden", null, text.prevMonthLabel)), hAsync("button", { class: "duet-date-dialog-next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, type: "button" }, hAsync("duet-icon", { name: "action-arrow-right-small", color: "currentColor", margin: "none", size: "xx-small" }), hAsync("duet-visually-hidden", null, text.nextMonthLabel)))), hAsync(DatePickerMonth, { selectedDate: valueAsDate, focusedDate: this.focusedDay, onDateSelect: this.handleDaySelect, onKeyboardNavigation: this.handleKeyboardNavigation, labelledById: this.dialogLabelId, language: this.language, theme: this.theme, min: minDate, max: maxDate, focusedDayRef: element => (this.focusedDayNode = element), onFocusEnter: this.enableActiveFocus, onFocusExit: this.disableActiveFocus })), hAsync(FocusGuard, { moveFocusTo: this.closeButtonNode }))));
9205
+ }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, hAsync(FocusGuard, { moveFocusTo: this.focusedDayNode }), hAsync("div", { class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, hAsync("duet-visually-hidden", { "aria-live": "polite" }, text.keyboardInstruction), hAsync("div", { class: "duet-date-dialog-mobile-header" }, hAsync("duet-label", { margin: "none" }, this.label), hAsync("button", { class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, hAsync("duet-icon", { name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), hAsync("duet-visually-hidden", null, text.closeLabel))), hAsync("div", { class: "duet-date-dialog-header" }, hAsync("div", { class: "duet-date-dialog-dropdowns" }, hAsync("duet-visually-hidden", null, hAsync("h2", { id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), hAsync("duet-visually-hidden", null, hAsync("label", { htmlFor: this.monthSelectId }, text.monthSelectLabel)), hAsync("div", { class: "duet-date-dialog-select" }, hAsync("select", { id: this.monthSelectId, class: "duet-date-month-select", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, text.monthLabels.map((month, i) => (hAsync("option", { key: month, value: i, selected: i === focusedMonth, disabled: !inRange(new Date(focusedYear, i, 1), minDate ? startOfMonth(minDate) : null, maxDate ? endOfMonth(maxDate) : null) }, month)))), hAsync("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", null, text.monthLabelsShort[focusedMonth]), hAsync("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), hAsync("duet-visually-hidden", null, hAsync("label", { htmlFor: this.yearSelectId }, text.yearSelectLabel)), hAsync("div", { class: "duet-date-dialog-select" }, hAsync("select", { id: this.yearSelectId, class: "duet-date-year-select", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (hAsync("option", { key: year, selected: year === focusedYear }, year)))), hAsync("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, hAsync("span", null, this.focusedDay.getFullYear()), hAsync("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), hAsync("div", { class: "duet-date-dialog-buttons" }, hAsync("duet-action-button", { class: "duet-date-dialog-prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, "icon-name": "action-arrow-left-small" }, text.prevMonthLabel), hAsync("duet-action-button", { class: "duet-date-dialog-next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, "icon-name": "action-arrow-right-small" }, text.nextMonthLabel))), hAsync(DatePickerMonth, { selectedDate: valueAsDate, focusedDate: this.focusedDay, onDateSelect: this.handleDaySelect, onKeyboardNavigation: this.handleKeyboardNavigation, labelledById: this.dialogLabelId, language: this.language, theme: this.theme, min: minDate, max: maxDate, focusedDayRef: element => (this.focusedDayNode = element), onFocusEnter: this.enableActiveFocus, onFocusExit: this.disableActiveFocus })), hAsync(FocusGuard, { moveFocusTo: this.closeButtonNode }))));
8990
9206
  }
8991
9207
  get element() { return getElement(this); }
8992
9208
  static get watchers() { return {
@@ -9087,411 +9303,232 @@ class DuetDivider {
9087
9303
  }; }
9088
9304
  }
9089
9305
 
9090
- const debounce = (func, timeout = 50) => {
9091
- let timer;
9092
- return (...args) => {
9093
- clearTimeout(timer);
9094
- timer = setTimeout(() => {
9095
- func.apply(undefined, args);
9096
- }, timeout);
9097
- };
9306
+ //simple functional component that renders the data in the table
9307
+ const TableData = ({ data, groupId, alignment }, _children) => {
9308
+ const classNames = `duet-editable-table duet-editable-table-content-${groupId}`;
9309
+ if (typeof data === "string") {
9310
+ return hAsync("td", { innerHTML: data, class: classNames, part: `${groupId}content`, style: { verticalAlign: alignment } });
9311
+ }
9312
+ else {
9313
+ return (hAsync("td", { class: classNames, part: `${groupId}content`, style: { verticalAlign: alignment } }, data));
9314
+ }
9098
9315
  };
9099
9316
 
9100
- /**
9101
- * Produces a function which uses template strings to do simple interpolation from objects.
9102
- *
9103
- * Usage:
9104
- * var makeMeKing = generateTemplateFn('${name} is now the king of ${country}!');
9105
- *
9106
- * console.log(makeMeKing({ name: 'Bryan', country: 'Scotland'}));
9107
- * // Logs 'Bryan is now the king of Scotland!'
9108
- */
9109
- const generateTemplateFn = (function () {
9110
- const cache = {};
9111
- function generateTemplate(template) {
9112
- if (typeof template !== "string") {
9113
- template = template.outerHTML;
9114
- }
9115
- let fn = cache[template];
9116
- if (!fn) {
9117
- // Replace ${expressions} (etc) with ${map.expressions}.
9118
- const sanitized = template
9119
- .replace(/\$\{([\s]*[^;\s\{]+[\s]*)\}/g, function (_, match) {
9120
- return `\$\{map.${match.trim()}\}`;
9121
- })
9122
- // Afterwards, replace anything that's not ${map.expressions}' (etc) with a blank string.
9123
- .replace(/(\$\{(?!map\.)[^}]+\})/g, "");
9124
- fn = Function("map", `return \`${sanitized}\``);
9125
- }
9126
- return fn;
9127
- }
9128
- return generateTemplate;
9129
- })();
9130
-
9131
- const duetEditableTableCss = "/*!@duet-editable-table*/duet-editable-table.sc-duet-editable-table{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@.duet-editable-table-header tr .duet-editable-table-header-hidden*/.duet-editable-table-header.sc-duet-editable-table tr.sc-duet-editable-table .duet-editable-table-header-hidden.sc-duet-editable-table{padding:0 !important;font-size:0;border-bottom:0}";
9317
+ const duetEditableTableCss = ".sc-duet-editable-table-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.duet-editable-table-actions-menu.sc-duet-editable-table{position:relative;padding:0 !important;margin:0}.duet-editable-table-actions-menu-button.sc-duet-editable-table{position:relative;right:-16px;float:right;padding:0}.duet-editable-table-actions-menu-icon.sc-duet-editable-table .duet-icon.sc-duet-editable-table{max-width:16px;max-height:16px}.duet-editable-table-row.duet-table-action-row.sc-duet-editable-table .duet-text-right.sc-duet-editable-table{text-align:right}.duet-editable-table-header.sc-duet-editable-table tr.sc-duet-editable-table .duet-editable-table-header-hidden.sc-duet-editable-table{padding:0 !important;font-size:0;border-bottom:0}";
9132
9318
 
9133
9319
  class DuetEditableTable {
9134
9320
  constructor(hostRef) {
9135
9321
  registerInstance(this, hostRef);
9136
- this.template = undefined;
9322
+ this.duetTableToggle = createEvent$2(this, "duetTableToggle", 7);
9323
+ this.duetMenuClick = createEvent$2(this, "duetMenuClick", 7);
9137
9324
  /**
9138
- * State() variables
9139
- * @internal
9325
+ * Duet-table: margin of the component.
9140
9326
  */
9141
- this.tick = Date.now();
9327
+ this.margin = "auto";
9142
9328
  /**
9143
- * Map of items that contain list of things.
9329
+ * Duet-table: Style variation of the table.
9144
9330
  */
9145
- this.items = new Map();
9331
+ this.variation = "striped";
9146
9332
  /**
9147
- * Key used to set vertical alignment of action buttons
9333
+ * Duet-table: Controls whether the table has a sticky header.
9334
+ * Sticky headers are not compatible with breakpoint="none-scrollable".
9148
9335
  */
9149
- this.alignment = "middle";
9336
+ this.sticky = false;
9150
9337
  /**
9151
- * Array of internationalized defaults for the default groups labels.
9338
+ * Duet-table: Adjust the distance from top of the viewport (in pixels) when the
9339
+ * table header becomes sticky.
9152
9340
  */
9153
- this.groupsLabelDefaults = {
9154
- fi: "Kaikki",
9155
- en: "All items",
9156
- sv: "Alla objekt",
9157
- };
9341
+ this.stickyDistance = "with-links";
9158
9342
  /**
9159
- * Array of internationalized defaults for the default action labels.
9343
+ * Duet-table: By default the table is responsive - it will be flattened at narrow viewport widths.
9344
+ * This prop controls the breakpoint at which the table should be rendered as a _regular_ table.
9345
+ * Set to "none" to disable the responsive functionality.
9346
+ * Set to "none-scrollable" to disable responsive functionality _and_ allow horizontal scrolling -
9347
+ * this is useful for comparison tables where it's important to maintain column and row layout.
9160
9348
  */
9161
- this.actionLabelDefaults = {
9162
- fi: "Toiminnot",
9163
- en: "Actions",
9164
- sv: "Handlingar",
9165
- };
9349
+ this.breakpoint = "small";
9166
9350
  /**
9167
- * Array of group names that you want the editable table to display (can be used to hide or show groups depending on conditions).
9168
- * @default { id: "all", label: this.groupsLabelDefaults, actionLabel: this.actionLabelDefaults }.
9169
- * @example [{ id: "success", label: {fi: "Onnistunut", en: "Success", sv: "Alt klart", }}].
9351
+ * Define actions for all items in a table
9352
+ * An alternative to inline HTML table.
9353
+ * required for Sortable tables
9354
+ * @default undefined
9170
9355
  */
9171
- this.groups = [
9172
- { id: "all", label: this.groupsLabelDefaults, actionLabel: this.actionLabelDefaults },
9173
- ];
9356
+ this.actions = undefined;
9174
9357
  /**
9175
- * Array of actions that are mapped via the map variable to the various groups defined in group.
9358
+ * Define columns for a table
9359
+ * An alternative to inline HTML table.
9360
+ * required for Sortable tables
9176
9361
  * @default undefined
9177
- * @example [{
9178
- variation: "default",
9179
- icon: "action-edit-2",
9180
- id: "edit",
9181
- map: ["success"],
9182
- label: {
9183
- fi: " Label",
9184
- en: " Label",
9185
- sv: " Label",
9186
- }
9187
- }]
9188
9362
  */
9189
- this.actions = undefined;
9363
+ this.columns = undefined;
9190
9364
  /**
9191
- * Shows or hides the table labels.
9365
+ * Define rows for a table
9366
+ * An alternative to inline HTML table.
9367
+ * required for Sortable tables
9368
+ * @default undefined
9192
9369
  */
9193
- this.hideGroups = false;
9370
+ this.rows = undefined;
9194
9371
  /**
9195
- * Exposes the aria role for optimizing accessibility.
9372
+ * Controls whether the table is sortable by headers
9196
9373
  */
9197
- this.accessibleRole = undefined;
9374
+ this.sortable = false;
9375
+ /**
9376
+ * Optional id that get passed to the table and used to setup ::parts
9377
+ */
9378
+ this.groupId = "";
9198
9379
  /**
9199
9380
  * Theme of the table.
9200
9381
  */
9201
9382
  this.theme = "";
9202
9383
  /**
9203
- * Private methods.
9384
+ * Exposes the aria role for optimizing accessibility.
9204
9385
  */
9205
- this.kick = debounce(() => {
9206
- this.tick = Date.now();
9207
- }, 100); // will trigger re-render
9386
+ this.accessibleRole = undefined;
9387
+ this.sortableDefaultLabel = {
9388
+ fi: "Järjestä",
9389
+ en: "Click to sort",
9390
+ sv: "Klicka för att sortera",
9391
+ };
9392
+ this.actionColumnLabel = {
9393
+ en: "Actions for rows",
9394
+ fi: "Toiminnot rivillä",
9395
+ sv: "Åtgärder för rader",
9396
+ };
9208
9397
  /**
9209
- * If a user defines a template section within editable table, try to read an use it.
9398
+ * Private methods.
9210
9399
  */
9211
- this.getTemplate = () => {
9212
- const templateDom = this.element.getElementsByTagName("template");
9213
- if (templateDom === null || templateDom === void 0 ? void 0 : templateDom.length) {
9214
- const templateString = templateDom[0].content.firstElementChild.outerHTML;
9215
- return generateTemplateFn(templateString);
9216
- }
9217
- else {
9218
- return false;
9219
- }
9220
- };
9221
- this.getItemData = (data) => {
9222
- const { item, group, uid } = data;
9223
- if (this.template) {
9224
- return {
9225
- group,
9226
- uid,
9227
- item: this.template(item),
9228
- };
9229
- }
9230
- return { item, group, uid };
9400
+ this.toggleColumn = (column, e) => {
9401
+ e.preventDefault();
9402
+ const { sort_order, direction, index, key } = column;
9403
+ this.duetTableToggle.emit({
9404
+ sort_order,
9405
+ index,
9406
+ direction,
9407
+ key,
9408
+ component: "duet-editable-table",
9409
+ originalEvent: e,
9410
+ });
9231
9411
  };
9232
- this.filterMap = needle => {
9233
- if (needle === "all") {
9234
- return Array.from(this.items);
9412
+ this.handleKeyDown = (column, e) => {
9413
+ if (isKeyboardClick(e)) {
9414
+ this.toggleColumn(column, e);
9235
9415
  }
9236
- return Array.from(this.items).filter(item => needle === item[1].group);
9237
9416
  };
9238
9417
  }
9239
9418
  /**
9240
9419
  * Component lifecycle events.
9241
9420
  */
9242
9421
  componentWillLoad() {
9243
- // look for a <template> region in the duet-editable-table
9244
- this.template = this.getTemplate();
9245
- // take care of the case where groups and actions are defined as html properties instead of javascript objects
9246
- if (typeof this.groups === "string") {
9247
- this.internalGroupArray = sanitizeString(this.groups);
9248
- }
9249
- else {
9250
- this.internalGroupArray = this.groups;
9251
- }
9252
- if (typeof this.actions === "string") {
9253
- this.internalActionsArray = sanitizeString(this.actions);
9254
- }
9255
- else {
9256
- this.internalActionsArray = this.actions;
9257
- }
9258
9422
  inheritGlobalTheme(this);
9259
9423
  }
9260
- /**
9261
- * Method to force an update of a tabular data array.
9262
- * when called the method will rerender the entire tabular structure.
9263
- */
9264
- async updateTable(passedItems = undefined) {
9265
- this.items = new Map(passedItems || this.items);
9266
- this.kick();
9267
- }
9268
- render() {
9269
- return (hAsync(Host, { class: {
9270
- "duet-theme-turva": this.theme === "turva",
9271
- } }, this.internalGroupArray.map(group => {
9272
- const currentGroup = this.filterMap(group.id);
9273
- if (!currentGroup.length) {
9274
- return;
9424
+ createLabel(column) {
9425
+ const { sort_order, direction, index, label } = column;
9426
+ const i18nLabel = getLocaleString(label);
9427
+ if (!this.sortable) {
9428
+ return i18nLabel;
9429
+ }
9430
+ const getButtonIcon = () => {
9431
+ // "action-subtract-small" https://cdn.duetds.com/api/icons/2.2.12/lib/assets/action-subtract-small.svg
9432
+ // "action-arrow-down-small" https://cdn.duetds.com/api/icons/2.2.12/lib/assets/action-arrow-down-small.svg
9433
+ // "action-arrow-up-small" https://cdn.duetds.com/api/icons/2.2.12/lib/assets/action-arrow-up-small.svg
9434
+ if (!!sort_order && direction === 1) {
9435
+ return "action-arrow-down-small";
9275
9436
  }
9276
- return (hAsync("duet-table", { variation: "plain", breakpoint: "none", role: "", margin: this.hideGroups ? "none" : "auto" }, hAsync("table", { class: "duet-editable-table", "aria-role": this.accessibleRole }, hAsync("thead", { class: "duet-editable-table-header" }, hAsync("tr", null, hAsync("th", { class: {
9277
- "duet-editable-table-header-hidden": this.hideGroups,
9278
- } }, !this.hideGroups ? (getLocaleString(group.label)) : (hAsync("duet-visually-hidden", null, getLocaleString(group.label)))), hAsync("th", { class: {
9279
- "duet-editable-table-header-hidden": this.hideGroups,
9280
- } }, hAsync("duet-visually-hidden", null, group.actionLabel
9281
- ? getLocaleString(group.actionLabel)
9282
- : getLocaleString(this.actionLabelDefaults))))), hAsync("tbody", null, currentGroup.map(dataAsArray => {
9283
- const [key, value] = dataAsArray;
9284
- return (hAsync("duet-editable-table-item", { theme: this.theme, keyName: key, data: this.getItemData(value), groupId: group.id, part: group.id, alignment: this.alignment, actions: this.internalActionsArray }));
9285
- })))));
9286
- })));
9287
- }
9288
- get element() { return getElement(this); }
9289
- static get style() { return duetEditableTableCss; }
9290
- static get cmpMeta() { return {
9291
- "$flags$": 9,
9292
- "$tagName$": "duet-editable-table",
9293
- "$members$": {
9294
- "items": [1040],
9295
- "alignment": [1],
9296
- "groupsLabelDefaults": [16],
9297
- "actionLabelDefaults": [16],
9298
- "groups": [1],
9299
- "actions": [1],
9300
- "hideGroups": [4, "hide-table-labels"],
9301
- "accessibleRole": [1, "accessible-role"],
9302
- "theme": [1025],
9303
- "tick": [32],
9304
- "updateTable": [64]
9305
- },
9306
- "$listeners$": undefined,
9307
- "$lazyBundleId$": "-",
9308
- "$attrsToReflect$": []
9309
- }; }
9310
- }
9311
-
9312
- const duetEditableTableButtonCss = "*.sc-duet-editable-table-button,*.sc-duet-editable-table-button::after,*.sc-duet-editable-table-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-editable-table-button-h button.sc-duet-editable-table-button{display:flex;align-content:space-between;justify-content:center;min-width:32px;max-width:32px;height:100%;min-height:32px;max-height:32px;padding:0;margin:0;cursor:pointer !important;background-color:transparent;border:1px solid;border-radius:50%}.sc-duet-editable-table-button-h button.sc-duet-editable-table-button duet-icon.sc-duet-editable-table-button{align-self:center}";
9313
-
9314
- class DuetEditableTableButton {
9315
- constructor(hostRef) {
9316
- registerInstance(this, hostRef);
9317
- this.duetEditableItemAction = createEvent$2(this, "duetEditableItemAction", 7);
9318
- this.isHovering = false;
9319
- /**
9320
- * Theme of the empty state component.
9321
- */
9322
- this.theme = undefined;
9323
- /**
9324
- * action items passed from host component
9325
- * @internal
9326
- */
9327
- this.actions = undefined;
9328
- /**
9329
- * uid that gets passed along when the action is emitted
9330
- * @internal
9331
- */
9332
- this.uid = "";
9333
- /**
9334
- * group associated with action
9335
- * @internal
9336
- */
9337
- this.group = "";
9338
- /**
9339
- * key of the item in the map
9340
- * @internal
9341
- */
9342
- this.keyName = "";
9343
- this.onMouseEnter = () => {
9344
- this.isHovering = true;
9345
- };
9346
- this.onMouseLeave = () => {
9347
- this.isHovering = false;
9348
- };
9349
- this.getColours = (byName = false) => {
9350
- let colorHover = this.actions.color_hover;
9351
- let colorBlur = this.actions.color;
9352
- if (byName) {
9353
- colorHover = getColorByName(this.actions.color_hover, this.theme);
9354
- colorBlur = getColorByName(this.actions.color, this.theme);
9355
- }
9356
- return this.isHovering ? colorHover : colorBlur;
9437
+ else if (!!sort_order && direction === -1) {
9438
+ return "action-arrow-up-small";
9439
+ }
9440
+ return "action-subtract-small";
9357
9441
  };
9358
- }
9359
- /**
9360
- /**
9361
- * Component lifecycle events.
9362
- */
9363
- componentWillLoad() {
9364
- inheritGlobalTheme(this);
9365
- }
9366
- /**
9367
- /**
9368
- * private functions
9369
- */
9370
- emitActionEvent(ev) {
9371
- this.duetEditableItemAction.emit({
9372
- originalEvent: ev,
9373
- uid: this.uid,
9374
- group: this.group,
9375
- action: this.actions.id,
9376
- keyName: this.keyName,
9377
- component: "duet-editable-table-item",
9442
+ return (hAsync("span", { class: "duet-table-label", "data-index": index }, hAsync("duet-button", { size: "small", icon: getButtonIcon(), "icon-size": "medium-small", "accessible-label": getLocaleString(this.sortableDefaultLabel), variation: "plain", margin: "none", "icon-right": true, onClick: event => this.toggleColumn(column, event), onKeyDown: event => this.handleKeyDown(column, event) }, i18nLabel)));
9443
+ }
9444
+ getSortedColumns() {
9445
+ //create a new array from sort instead of mutating original
9446
+ return [...this.columns].sort(fieldSorter(["index"]));
9447
+ }
9448
+ getRowSortOrder() {
9449
+ //create a new array from sort instead of mutating original
9450
+ const fields = [...this.columns].sort(fieldSorter(["sort_order"]));
9451
+ //return only key from objects that have sort_order
9452
+ return fields
9453
+ .filter(column => column.sort_order)
9454
+ .map(column => {
9455
+ // add - in-front of descending direction (required by field-sorter)
9456
+ return column.direction === -1 ? `-${column.key}` : column.key;
9378
9457
  });
9379
9458
  }
9380
- /**
9381
- * render() function
9382
- * Always the last one in the class.
9383
- */
9384
- render() {
9385
- return (hAsync("button", { style: {
9386
- "border-color": this.getColours(true),
9387
- }, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, role: "menuitem", class: "duet-editable-table-actions-items-button", "aria-label": this.actions.label ? getLocaleString(this.actions.label) : undefined, onClick: ev => this.emitActionEvent(ev) }, hAsync("duet-icon", { class: "duet-editable-table-actions-items-icon", size: "x-small", name: this.actions.icon, color: this.getColours(), margin: "none" })));
9388
- }
9389
- get el() { return getElement(this); }
9390
- static get style() { return duetEditableTableButtonCss; }
9391
- static get cmpMeta() { return {
9392
- "$flags$": 2,
9393
- "$tagName$": "duet-editable-table-button",
9394
- "$members$": {
9395
- "theme": [1025],
9396
- "actions": [16],
9397
- "uid": [1],
9398
- "group": [1],
9399
- "keyName": [1, "key-name"],
9400
- "isHovering": [32]
9401
- },
9402
- "$listeners$": undefined,
9403
- "$lazyBundleId$": "-",
9404
- "$attrsToReflect$": []
9405
- }; }
9406
- }
9407
-
9408
- //simple functional component that renders the data in the table
9409
- const TableData = ({ data, groupId, alignment }, _children) => {
9410
- if (typeof data === "string") {
9411
- return (hAsync("td", { innerHTML: data, class: "duet-editable-table-content", part: `${groupId}content`, style: { verticalAlign: alignment } }));
9412
- }
9413
- else {
9414
- return (hAsync("td", { class: "duet-editable-table-content", part: `${groupId}content`, style: { verticalAlign: alignment } }, data));
9415
- }
9416
- };
9417
-
9418
- const duetEditableTableItemCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-editable-table-item,*.sc-duet-editable-table-item::after,*.sc-duet-editable-table-item::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-editable-table-item-h{display:table-row;height:32px}/*!@.duet-editable-table-content, .duet-editable-table-actions*/.duet-editable-table-content.sc-duet-editable-table-item,.duet-editable-table-actions.sc-duet-editable-table-item{height:32px;padding:12px 0;vertical-align:middle;break-word:break-all;border-bottom:1px solid #e1e3e6}/*!@.duet-editable-table-actions-items*/.duet-editable-table-actions-items.sc-duet-editable-table-item{display:flex;justify-content:flex-end}/*!@.duet-editable-table-actions-items duet-editable-table-button*/.duet-editable-table-actions-items.sc-duet-editable-table-item duet-editable-table-button.sc-duet-editable-table-item{padding-left:8px}/*!@.duet-editable-table .editable-item-small*/.duet-editable-table.sc-duet-editable-table-item .editable-item-small.sc-duet-editable-table-item{font-size:0.75rem;font-weight:400}";
9419
-
9420
- class DuetEditableTableItem {
9421
- constructor(hostRef) {
9422
- registerInstance(this, hostRef);
9423
- this.duetEditableItemAction = createEvent$2(this, "duetEditableItemAction", 7);
9424
- this.isHovering = false;
9425
- /**
9426
- * Theme of the empty state component.
9427
- */
9428
- this.theme = "";
9429
- /**
9430
- * Actions that can be performed on the element
9431
- */
9432
- this.actions = undefined;
9433
- /**
9434
- * GroupId used to pierce the shadowdom - gets concatenated with "content & actions" and used as part="groupIDcontent/actions" to pierce the content/Action item
9435
- * @internal
9436
- */
9437
- this.groupId = "";
9438
- /**
9439
- * Key used to set vertical alignment of action buttons
9440
- */
9441
- this.alignment = "middle";
9442
- /**
9443
- * Key used to identify item, when running actions
9444
- */
9445
- this.keyName = "";
9446
- /**
9447
- * Object of data itemsused to render the entire row
9448
- */
9449
- this.data = undefined;
9450
- }
9451
- watchPropHandler(_newValue, _oldValue) {
9452
- // console.log("The new value of activated is: ", _newValue)
9459
+ renderTableHeader() {
9460
+ if (!this.columns) {
9461
+ return;
9462
+ }
9463
+ const sortedColumns = this.getSortedColumns();
9464
+ return (hAsync("tr", { class: {
9465
+ "duet-table-action-header": !!this.actions,
9466
+ } }, sortedColumns.map(column => {
9467
+ if (column.display !== false) {
9468
+ return hAsync("th", { scope: "col" }, this.createLabel(column));
9469
+ }
9470
+ }), this.actions && (hAsync("th", { scope: "col", class: "duet-table-action-header-heading" }, this.actions && hAsync("duet-visually-hidden", null, getLocaleString(this.actionColumnLabel))))));
9453
9471
  }
9454
- /**
9455
- /**
9456
- * Component lifecycle events.
9457
- */
9458
- componentWillLoad() {
9459
- inheritGlobalTheme(this);
9472
+ renderActions(rowItem, index) {
9473
+ // escape early
9474
+ if (!this.actions) {
9475
+ return;
9476
+ }
9477
+ // iterate through actions and add them in the sidebar
9478
+ return (hAsync("td", { class: "duet-text-right" }, this.actions.map(actionItem => {
9479
+ return (hAsync("duet-action-button", { actionMeta: Object.assign({}, (rowItem === null || rowItem === void 0 ? void 0 : rowItem.meta) || {}, { index }), actionId: (rowItem === null || rowItem === void 0 ? void 0 : rowItem.uid) || (rowItem === null || rowItem === void 0 ? void 0 : rowItem.id) || null, actionName: actionItem.name, theme: this.theme, iconName: actionItem.icon, iconColor: actionItem.color, iconSize: actionItem.size, background: actionItem.background }));
9480
+ })));
9481
+ }
9482
+ renderTableBody() {
9483
+ const columns = this.getSortedColumns();
9484
+ const rowSortOrder = this.getRowSortOrder();
9485
+ const sortedRows = [...this.rows].sort(fieldSorter(rowSortOrder));
9486
+ // return a tbody with rows for each item in sortedRows
9487
+ return sortedRows.map((row, index) => (hAsync("tr", { class: {
9488
+ "duet-table-action-row": !!this.actions,
9489
+ "duet-editable-table-row": true,
9490
+ [`duet-editable-table-row-${this.groupId}`]: true,
9491
+ }, "data-meta": JSON.stringify(row.meta) }, columns.map(column => {
9492
+ //if we don't have any data for this column, try getting an item instead (for backwards compatibility
9493
+ const value = row[column.key] ? row[column.key] : row.item;
9494
+ if (column.display !== false) {
9495
+ return hAsync(TableData, { data: value, groupId: this.groupId });
9496
+ }
9497
+ }), this.actions && this.renderActions(row, index))));
9460
9498
  }
9461
9499
  /**
9462
- /**
9463
- * private functions
9464
- */
9465
- /**
9466
- * render() function
9467
- * Always the last one in the class.
9500
+ * Render Methods
9468
9501
  */
9469
9502
  render() {
9470
- return (hAsync(Host, { role: "row" }, hAsync(TableData, { data: this.data.item, alignment: this.alignment, groupId: this.groupId }), hAsync("td", { class: "duet-editable-table-actions", style: { verticalAlign: this.alignment } }, hAsync("div", { class: "duet-editable-table-actions-items", part: `${this.groupId}actions` }, this.actions.map(result => {
9471
- const { map = undefined } = result;
9472
- // if map has been specified, only show the current action if groupID matches the map array
9473
- if (map && !map.includes(this.groupId)) {
9474
- return;
9475
- }
9476
- return (hAsync("duet-editable-table-button", { keyName: this.keyName, group: this.data.group, uid: this.data.uid, actions: result, theme: this.theme }));
9477
- })))));
9503
+ return (hAsync(Host, { class: {
9504
+ [`duet-editable-table-${this.variation}`]: true,
9505
+ [`duet-editable-table-${this.theme}`]: true,
9506
+ // sticky only valid when in regular table layout
9507
+ "duet-editable-table-scrollable": this.breakpoint === "none-scrollable",
9508
+ "duet-editable-table-sortable": this.sortable,
9509
+ "duet-editable-table-actions": !!this.actions,
9510
+ "duet-m-0": this.margin === "none",
9511
+ "duet-theme-turva": this.theme === "turva",
9512
+ } }, hAsync("duet-table", { sticky: this.sticky, stickyDistance: this.stickyDistance, margin: this.margin, theme: this.theme, variation: this.variation, breakpoint: this.breakpoint }, hAsync("table", { role: this.accessibleRole }, hAsync("caption", null, hAsync("slot", { name: "tcaption" })), hAsync("thead", null, hAsync("tr", null, hAsync("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, hAsync("slot", { name: "thead-first" }))), this.renderTableHeader(), hAsync("tr", null, hAsync("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, hAsync("slot", { name: "thead-last" })))), hAsync("tbody", null, this.renderTableBody()), hAsync("tfoot", null, hAsync("tr", null, hAsync("th", { class: "duet-editable-table-footer-menu", colSpan: 99 }, hAsync("slot", { name: "tfoot" }))))))));
9478
9513
  }
9479
- get el() { return getElement(this); }
9480
- static get watchers() { return {
9481
- "data": ["watchPropHandler"]
9482
- }; }
9483
- static get style() { return duetEditableTableItemCss; }
9514
+ get element() { return getElement(this); }
9515
+ static get style() { return duetEditableTableCss; }
9484
9516
  static get cmpMeta() { return {
9485
- "$flags$": 9,
9486
- "$tagName$": "duet-editable-table-item",
9517
+ "$flags$": 6,
9518
+ "$tagName$": "duet-editable-table",
9487
9519
  "$members$": {
9488
- "theme": [1025],
9489
- "actions": [16],
9520
+ "margin": [1],
9521
+ "variation": [1],
9522
+ "sticky": [4],
9523
+ "stickyDistance": [1, "sticky-distance"],
9524
+ "breakpoint": [1],
9525
+ "actions": [1040],
9526
+ "columns": [1040],
9527
+ "rows": [1040],
9528
+ "sortable": [4],
9490
9529
  "groupId": [1, "group-id"],
9491
- "alignment": [1],
9492
- "keyName": [1, "key-name"],
9493
- "data": [1040],
9494
- "isHovering": [32]
9530
+ "theme": [1025],
9531
+ "accessibleRole": [1, "accessible-role"]
9495
9532
  },
9496
9533
  "$listeners$": undefined,
9497
9534
  "$lazyBundleId$": "-",
@@ -10255,7 +10292,7 @@ const DuetHeaderHamburger = () => (hAsync("div", { class: "duet-header-hamburger
10255
10292
  hAsync("span", { class: "duet-header-bar" }),
10256
10293
  hAsync("span", { class: "duet-header-bar" })));
10257
10294
 
10258
- const duetHeaderCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-header,*.sc-duet-header::after,*.sc-duet-header::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-header-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}@supports (position: -webkit-sticky){/*!@:host*/.sc-duet-header-h{position:-webkit-sticky;top:-4rem;z-index:400}}@supports (position: sticky){/*!@:host*/.sc-duet-header-h{position:sticky;top:-4rem;z-index:400}}@supports (position: -webkit-sticky){/*!@:host(.duet-header-multi-level-desktop-variation)*/.duet-header-multi-level-desktop-variation.sc-duet-header-h{top:0}}@supports (position: sticky){/*!@:host(.duet-header-multi-level-desktop-variation)*/.duet-header-multi-level-desktop-variation.sc-duet-header-h{top:0}}/*!@.duet-header-reserved-space*/.duet-header-reserved-space.sc-duet-header{height:4rem}@media (min-width: 62em){/*!@.duet-header-reserved-space.duet-with-links*/.duet-header-reserved-space.duet-with-links.sc-duet-header{height:7rem}}/*!@.duet-header*/.duet-header.sc-duet-header{-webkit-user-select:none;user-select:none;position:fixed;top:0;left:0;z-index:400;display:block;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:0.875rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left}/*!@.duet-header.duet-theme-turva*/.duet-header.duet-theme-turva.sc-duet-header{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}@media (min-width: 62em){/*!@.duet-header.duet-theme-turva*/.duet-header.duet-theme-turva.sc-duet-header{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}}@media (min-width: 62em){/*!@.duet-header*/.duet-header.sc-duet-header{position:absolute;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}/*!@.duet-header.duet-header-inactive*/.duet-header.duet-header-inactive.sc-duet-header{position:fixed}}/*!@.duet-header **/.duet-header.sc-duet-header *.sc-duet-header{-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}/*!@.duet-header-top*/.duet-header-top.sc-duet-header{position:relative;z-index:200;display:flex;flex-direction:row;align-items:center;width:100%;height:4rem;padding:0 16px;background:white;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}@media (min-width: 62em){/*!@.duet-header-top*/.duet-header-top.sc-duet-header{z-index:100;padding:0 28px;box-shadow:none}/*!@.duet-header-top duet-logo*/.duet-header-top.sc-duet-header duet-logo.sc-duet-header{padding-right:4px}}@media (min-width: 106.25em){/*!@.duet-header-top*/.duet-header-top.sc-duet-header{padding:0 48px}}/*!@.duet-theme-turva .duet-header-top*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header{border-color:#e4e4e6;box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}@media (min-width: 62em){/*!@.duet-theme-turva .duet-header-top*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header{box-shadow:none}}/*!@.duet-theme-turva .duet-header-top duet-logo*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header duet-logo.sc-duet-header{left:-80px !important;margin-top:-8px !important}/*!@.duet-header-top .duet-header-region*/.duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{max-width:200px;padding-left:16px;margin-top:1px;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:1px solid #cfd2d4}/*!@.duet-theme-turva .duet-header-top .duet-header-region*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{border-color:#cfcfd1}@media (max-width: 35.9375em){/*!@.duet-header-top .duet-header-region*/.duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{display:none}}@media (min-width: 62em){/*!@.duet-header-top .duet-header-region*/.duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{padding-left:19px}}/*!@.duet-header-bottom*/.duet-header-bottom.sc-duet-header{position:fixed;top:4rem;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;width:100%;overflow-y:auto;visibility:hidden;background:#f3f9fc;opacity:0;-webkit-overflow-scrolling:touch}/*!@.duet-theme-turva .duet-header-bottom*/.duet-theme-turva.sc-duet-header .duet-header-bottom.sc-duet-header{background:#f5f5f7}@media (min-width: 62em){/*!@.duet-header-bottom*/.duet-header-bottom.sc-duet-header{position:relative;top:auto;bottom:auto;z-index:200;flex-direction:row;overflow:visible;visibility:visible;background:white;opacity:1}/*!@.duet-header-bottom.duet-header-inactive*/.duet-header-bottom.duet-header-inactive.sc-duet-header{position:relative}}/*!@.duet-header-bottom.active*/.duet-header-bottom.active.sc-duet-header{visibility:visible;opacity:1;transition:opacity 300ms ease, visibility 300ms ease}@media (min-width: 62em){/*!@.duet-header-bottom*/.duet-header-bottom.sc-duet-header{position:relative;transition:none !important}}/*!@.duet-header-items,\n.duet-header-bottom-utils,\n.duet-header-utils*/.duet-header-items.sc-duet-header,.duet-header-bottom-utils.sc-duet-header,.duet-header-utils.sc-duet-header{opacity:0;transition:transform 600ms ease, opacity 600ms ease;transform:translateY(-28px)}@media (min-width: 62em){/*!@.duet-header-items,\n.duet-header-bottom-utils,\n.duet-header-utils*/.duet-header-items.sc-duet-header,.duet-header-bottom-utils.sc-duet-header,.duet-header-utils.sc-duet-header{opacity:1;transition:none !important;transform:none}}/*!@.active .duet-header-items,\n.active .duet-header-bottom-utils,\n.active .duet-header-utils*/.active.sc-duet-header .duet-header-items.sc-duet-header,.active.sc-duet-header .duet-header-bottom-utils.sc-duet-header,.active.sc-duet-header .duet-header-utils.sc-duet-header{opacity:1;transform:translateY(0)}/*!@.duet-header-items*/.duet-header-items.sc-duet-header{position:relative;z-index:300;display:block;width:100%;font-size:1rem;font-weight:400;line-height:1.5;background:white}@media (min-width: 62em){/*!@.duet-header-items*/.duet-header-items.sc-duet-header{z-index:100;display:flex;flex-direction:row;padding:0 21.5384615385px}}@media (min-width: 106.25em){/*!@.duet-header-items*/.duet-header-items.sc-duet-header{padding-left:43.6363636364px}}/*!@.duet-header-items .duet-header-item-container*/.duet-header-items.sc-duet-header .duet-header-item-container.sc-duet-header{border-bottom:1px solid #e1e3e6;border-radius:0}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item-container*/.duet-header-items.sc-duet-header .duet-header-item-container.sc-duet-header{border:0}}/*!@.duet-header-items .duet-header-second-level .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-second-level.sc-duet-header .duet-header-item.sc-duet-header{padding:0 40px;border:0}/*!@.duet-header-items .duet-header-second-level .duet-header-button*/.duet-header-items.sc-duet-header .duet-header-second-level.sc-duet-header .duet-header-button.sc-duet-header{border:0}/*!@.duet-header-items .duet-header-second-level .duet-header-dropdown-content*/.duet-header-items.sc-duet-header .duet-header-second-level.sc-duet-header .duet-header-dropdown-content.sc-duet-header{padding:0;border:0}/*!@.duet-header-items .duet-header-third-level .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-third-level.sc-duet-header .duet-header-item.sc-duet-header{padding:0 75px}/*!@.duet-header-items .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{position:relative;display:flex;align-items:center;width:100%;padding:0 20px;overflow:hidden;font-size:1rem;line-height:48px;color:#00294d;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{border-radius:4px}}/*!@.duet-theme-turva .duet-header-items .duet-header-item*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{font-weight:600;color:#171c3a;border-color:#e1e3e6}/*!@.duet-header-items .duet-header-item:hover*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:hover{color:#004d80}/*!@.duet-theme-turva .duet-header-items .duet-header-item:hover*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:hover{color:#444445}/*!@.duet-header-items .duet-header-item:focus*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-items .duet-header-item:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-header-items .duet-header-item:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{width:auto;max-width:300px;padding:0 12px;overflow:hidden;font-size:0.875rem;text-overflow:ellipsis;border:0}}/*!@.duet-header-items .duet-header-item.active*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header{color:#0077b3}/*!@.duet-theme-turva .duet-header-items .duet-header-item.active*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header{color:#c60c30}/*!@.duet-header-items .duet-header-item.active:hover*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header:hover{color:#0077b3}/*!@.duet-theme-turva .duet-header-items .duet-header-item.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header:hover{color:#c60c30}/*!@.duet-header-items .duet-header-item.active::after*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .duet-header-items .duet-header-item.active::after*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header::after{background:#c60c30}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item.active::after*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header::after{top:auto;left:12px;width:calc(100% - 24px);height:3px}}/*!@.duet-header-toggle*/.duet-header-toggle.sc-duet-header{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-right:-8px;margin-left:auto;cursor:pointer;border-radius:4px;-webkit-appearance:none;appearance:none}/*!@.duet-header-toggle:focus*/.duet-header-toggle.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-toggle.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-header-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-toggle.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){/*!@.duet-header-toggle*/.duet-header-toggle.sc-duet-header{display:none}}/*!@.duet-header-hamburger*/.duet-header-hamburger.sc-duet-header{position:relative;width:24px;height:24px;margin-top:5px !important;pointer-events:none;transition:0.4s ease-in-out;backface-visibility:hidden}/*!@.duet-header-hamburger .duet-header-bar*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header{position:absolute;left:0;display:block;width:100%;height:2px;background:#00294d;border-radius:20rem;opacity:1;transition:0.25s ease-in-out;transform:rotate(0deg) scale(0.98)}/*!@.duet-theme-turva .duet-header-hamburger .duet-header-bar*/.duet-theme-turva.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header{background:#171c3a}/*!@.duet-header-hamburger .duet-header-bar:nth-child(1)*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(1){top:0}/*!@.duet-header-hamburger .duet-header-bar:nth-child(2), .duet-header-hamburger .duet-header-bar:nth-child(3)*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(2),.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(3){top:7px}/*!@.duet-header-hamburger .duet-header-bar:nth-child(4)*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(4){top:14px}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(1)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(1){top:7px;left:50%;width:0%}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(2)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(2){transform:rotate(45deg)}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(3)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(3){transform:rotate(-45deg)}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(4)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(4){top:7px;left:50%;width:0%}/*!@.duet-header-utils*/.duet-header-utils.sc-duet-header{display:flex;flex-direction:column;width:100%}@media (min-width: 62em){/*!@.duet-header-utils*/.duet-header-utils.sc-duet-header{position:absolute;top:-4rem;right:0;z-index:999999999;flex-direction:row;align-items:center;justify-content:space-between;width:auto;margin-right:20px}}@media (min-width: 106.25em){/*!@.duet-header-utils*/.duet-header-utils.sc-duet-header{margin-right:36px}}@media (min-width: 62em){/*!@.duet-header-bottom-utils*/.duet-header-bottom-utils.sc-duet-header{position:absolute;top:0;right:0;z-index:999999999;margin-right:20px}}@media (min-width: 106.25em){/*!@.duet-header-bottom-utils*/.duet-header-bottom-utils.sc-duet-header{margin-right:36px}}/*!@button*/button.sc-duet-header{font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-theme-turva button*/.duet-theme-turva.sc-duet-header button.sc-duet-header{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-header-button*/.duet-header-button.sc-duet-header{position:relative;display:flex;align-items:center;width:100%;height:48px;padding:0 20px;overflow:hidden;font-size:1rem;font-weight:400;line-height:48px;color:#00294d;text-align:left;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-bottom:1px solid #e1e3e6;border-radius:4px;-webkit-appearance:none;appearance:none}/*!@.duet-theme-turva .duet-header-button*/.duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header{color:#171c3a;border-color:#e4e4e6}/*!@.duet-header-button:hover*/.duet-header-button.sc-duet-header:hover{color:#004d80}/*!@.duet-theme-turva .duet-header-button:hover*/.duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header:hover{color:#444445}/*!@.duet-header-button:focus*/.duet-header-button.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-button:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-button.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-header-button:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-header-button:active*/.duet-header-button.sc-duet-header:active{opacity:0.75}@media (min-width: 62em){/*!@.duet-header-button*/.duet-header-button.sc-duet-header{width:auto;max-width:200px;height:4rem;padding:0 16px;font-size:0.875rem;line-height:4rem;border:0}/*!@.duet-header-button::before*/.duet-header-button.sc-duet-header::before{position:absolute;top:50%;right:0;width:1px;height:20px;content:\"\";background:#cfd2d4;transform:translateY(-50%)}/*!@.duet-theme-turva .duet-header-button::before*/.duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header::before{background:#cfcfd1}}/*!@.duet-header-button.active*/.duet-header-button.active.sc-duet-header{color:#0077b3;border-radius:0}/*!@.duet-theme-turva .duet-header-button.active*/.duet-theme-turva.sc-duet-header .duet-header-button.active.sc-duet-header{color:#c60c30}/*!@.duet-header-button.active:hover*/.duet-header-button.active.sc-duet-header:hover{color:#0077b3}/*!@.duet-theme-turva .duet-header-button.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-button.active.sc-duet-header:hover{color:#c60c30}@media (min-width: 62em){/*!@.duet-header-button.active::after*/.duet-header-button.active.sc-duet-header::after{position:absolute;top:0;bottom:0;left:0;width:3px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .duet-header-button.active::after*/.duet-theme-turva.sc-duet-header .duet-header-button.active.sc-duet-header::after{color:#c60c30}}/*!@.duet-header-utils .duet-header-button.duet-header-logout*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header{align-self:center;justify-content:center;width:auto;height:2.5rem;margin:2.25rem 0;font-weight:600;border:2px solid #00294d;border-radius:20rem}/*!@.duet-theme-turva .duet-header-utils .duet-header-button.duet-header-logout*/.duet-theme-turva.sc-duet-header .duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header{border-color:#171c3a}/*!@.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header .duet-header-icon.sc-duet-header{margin-right:0.5rem}/*!@.duet-header-utils .duet-header-button.duet-header-logout .duet-header-button-label*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header .duet-header-button-label.sc-duet-header{font-size:0.875rem}@media (min-width: 62em){/*!@.duet-header-utils .duet-header-button.duet-header-logout*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header{height:4rem;margin:0;font-weight:400;border:0}/*!@.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header .duet-header-icon.sc-duet-header{margin-right:0.75rem}}/*!@.duet-header-no-action*/.duet-header-no-action.sc-duet-header{pointer-events:none}/*!@.duet-header-user-label*/.duet-header-user-label.sc-duet-header{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){/*!@.duet-header-utils > *:last-child::before,\n.duet-header-utils > *:last-child button::before*/.duet-header-utils.sc-duet-header>*.sc-duet-header:last-child::before,.duet-header-utils.sc-duet-header>*.sc-duet-header:last-child button.sc-duet-header::before{display:none}}@media (min-width: 62em){/*!@.duet-header-utils > *:last-child .duet-header-dropdown-content*/.duet-header-utils.sc-duet-header>*.sc-duet-header:last-child .duet-header-dropdown-content.sc-duet-header{right:0;left:auto}}/*!@.duet-header-language*/.duet-header-language.sc-duet-header{text-transform:uppercase}/*!@.duet-header-language.active, .duet-header-language.active:hover,\n.duet-header-contact.active,\n.duet-header-contact.active:hover*/.duet-header-language.active.sc-duet-header,.duet-header-language.active.sc-duet-header:hover,.duet-header-contact.active.sc-duet-header,.duet-header-contact.active.sc-duet-header:hover{color:inherit}/*!@.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active:hover::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header:hover::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header:hover::after{width:0}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active:hover::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header:hover::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header:hover::after{width:100%}}/*!@.duet-header-icon*/.duet-header-icon.sc-duet-header{display:inline-flex;min-width:12px;margin-right:12px;font-size:0;line-height:normal;vertical-align:baseline}@media (min-width: 62em){/*!@.duet-header-icon*/.duet-header-icon.sc-duet-header{margin-right:8px}}/*!@.duet-header-caret*/.duet-header-caret.sc-duet-header{position:absolute;top:50%;right:20px;display:flex;width:10px;height:10px;margin-left:8px;line-height:normal;pointer-events:none;transition:300ms ease;transform:translateY(-50%);transform-origin:50% 50%}@media (min-width: 62em){/*!@.duet-header-caret*/.duet-header-caret.sc-duet-header{width:7px;height:7px}}/*!@.duet-header-caret duet-icon*/.duet-header-caret.sc-duet-header duet-icon.sc-duet-header{width:10px}/*!@.duet-header-dropdown-toggle.active .duet-header-caret*/.duet-header-dropdown-toggle.active.sc-duet-header .duet-header-caret.sc-duet-header{transform:translateY(-50%) rotate(180deg)}/*!@.duet-header-dropdown-toggle:focus*/.duet-header-dropdown-toggle.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-dropdown-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-dropdown-toggle.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-header-dropdown-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-header-dropdown-toggle:active*/.duet-header-dropdown-toggle.sc-duet-header:active{outline:none}/*!@.duet-header-badge*/.duet-header-badge.sc-duet-header{display:inline-block;width:6px;height:6px;margin-top:-1rem;margin-left:5px;vertical-align:top;background:#f7b228;border-radius:50%;box-shadow:0 0 0 1px #c18b1f}/*!@.duet-theme-turva .duet-header-badge*/.duet-theme-turva.sc-duet-header .duet-header-badge.sc-duet-header{background:#faa40f}/*!@.active-bar*/.active-bar.sc-duet-header{color:#0077b3}/*!@.active-bar::after*/.active-bar.sc-duet-header::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .active-bar::after*/.duet-theme-turva.sc-duet-header .active-bar.sc-duet-header::after{background:#c60c30}/*!@.duet-header-dropdown*/.duet-header-dropdown.sc-duet-header{position:relative}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-toggle*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header{z-index:200;padding-right:36px;overflow:hidden;transition:border 300ms ease}}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-toggle::after*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header::after{position:absolute;top:auto;bottom:0;left:0;display:block !important;width:100%;height:3px !important;content:\"\";background:#0077b3;transition:300ms ease;transform:translateY(3px)}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle::after*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header::after{background:#c60c30}}/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover{border-bottom:1px solid #f5f8fa}/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active::after, .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover::after{background:#c60c30}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active, .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header,.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover{color:#444445;border-color:#f5f5f7}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover{color:#004d80;border:0}/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover::after{position:absolute;top:auto;bottom:0;left:0;width:100%;height:3px;transform:translateY(0)}}/*!@.duet-header-dropdown .duet-header-dropdown-content*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{display:none;padding-bottom:16px;background:#f3f9fc;border-bottom:1px solid #e1e3e6}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#f5f5f7;border-color:#e1e3e6}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{position:absolute;top:100%;left:0;z-index:600;display:block;min-width:150px;padding-top:16px;padding-left:0;visibility:hidden;border:0;border-radius:4px;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 4px 10px 0 rgba(0, 41, 77, 0.15);opacity:0;transition:300ms ease;transform:scale(0.85) translateZ(0) translateY(-20px)}}@media (min-width: 64.0625em){/*!@.duet-header-dropdown .duet-header-dropdown-content*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{min-width:170px}}/*!@.duet-header-dropdown .duet-header-dropdown-content.active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.active.sc-duet-header{display:block}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content.active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.active.sc-duet-header{visibility:visible;opacity:1;transform:translateZ(0) translateY(0)}}/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item)*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item){padding:3px 8px 4px !important;position:relative;display:block;width:100%;padding-right:16px;padding-left:48px !important;overflow:hidden;font-size:0.875rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer;transition:300ms ease}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item)*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item){color:#171c3a}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item)*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item){padding-right:20px !important;padding-left:20px !important}}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):hover{background:#e6f2f8}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):hover{background:#f9e6ea}}/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus*/.user-is-tabbing.sc-duet-header-h .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{padding-right:36px;font-weight:600;vertical-align:baseline}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{font-weight:700}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{color:white;background:#0077b3}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{background:#c60c30}}/*!@.duet-header-dropdown .duet-header-dropdown-content .duet-header-link-external*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header .duet-header-link-external.sc-duet-header{margin-left:4px}/*!@.duet-header-back .duet-header-top*/.duet-header-back.sc-duet-header .duet-header-top.sc-duet-header{flex-direction:row;align-items:center;justify-content:center}/*!@.duet-header-back duet-button*/.duet-header-back.sc-duet-header duet-button.sc-duet-header{position:absolute;top:50%;left:36px;transform:translateY(-50%)}@media (max-width: 35.9375em){/*!@.duet-header-back duet-button*/.duet-header-back.sc-duet-header duet-button.sc-duet-header{left:20px;max-width:40px;padding:0 12px;overflow:hidden}}/*!@.duet-header-back .duet-header-toggle*/.duet-header-back.sc-duet-header .duet-header-toggle.sc-duet-header{display:none !important}/*!@.duet-header-skip*/.duet-header-skip.sc-duet-header{padding:15px 28px 16px !important;position:absolute;top:-100%;left:-100%;z-index:200;width:1px;min-width:190px;height:1px;overflow:hidden;font-weight:600;color:#0077b3;text-align:center;text-decoration:none;background:white;border-radius:4px;opacity:0}/*!@.duet-header-skip:focus*/.duet-header-skip.sc-duet-header:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-header-skip:focus, .duet-header-skip:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-header .duet-header-skip.sc-duet-header:focus,.duet-header-skip.sc-duet-header:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-theme-turva .duet-header-skip*/.duet-theme-turva.sc-duet-header .duet-header-skip.sc-duet-header{min-width:120px;color:#171c3a}@media (min-width: 106.25em){/*!@.duet-header-skip*/.duet-header-skip.sc-duet-header{margin-left:20px}}/*!@.duet-header-skip:focus*/.duet-header-skip.sc-duet-header:focus{top:12px;left:20px;width:auto;height:auto;outline:0;opacity:1}/*!@.duet-header-multi-level-desktop*/.duet-header-multi-level-desktop.sc-duet-header{height:6rem}/*!@.duet-header-multi-level-desktop .duet-header-top*/.duet-header-multi-level-desktop.sc-duet-header .duet-header-top.sc-duet-header{justify-content:space-between;height:6rem}/*!@.duet-header-multi-level-desktop .duet-header-button*/.duet-header-multi-level-desktop.sc-duet-header .duet-header-button.sc-duet-header{height:6rem}/*!@.duet-header-multi-level-desktop .logo-and-segment*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;padding-top:1rem}/*!@.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-dropdown.sc-duet-header{z-index:400;margin-left:2rem}/*!@.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#f3f9fc}/*!@.duet-header-multi-level-desktop .logo-and-segment button*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header button.sc-duet-header{align-items:flex-start;height:2rem;font-weight:600;line-height:1rem}/*!@.duet-header-multi-level-desktop .logo-and-segment button::before*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header button.sc-duet-header::before{display:none}/*!@.duet-header-multi-level-desktop .logo-and-segment .duet-header-caret*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-caret.sc-duet-header{top:25%}/*!@.duet-header-multi-level-desktop-nav*/.duet-header-multi-level-desktop-nav.sc-duet-header{display:flex}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header{position:static}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header{z-index:400;padding-right:1rem;font-size:1rem;font-weight:600}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header{color:#0077b3}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{z-index:399;display:flex;justify-content:center;width:100%;height:4.5rem;padding:0;background:#f3f9fc;border-top:1px solid #e1e3e6;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07);transition:none}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:auto;min-width:6rem;height:100%;padding:0 1rem !important;font-weight:600}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header::after{position:absolute;top:auto;bottom:0;left:0;display:block !important;width:100%;height:3px;content:\"\";background:#0077b3;transition:300ms ease;transform:translateY(3px)}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.active.sc-duet-header{font-weight:600;color:#0077b3;background:none}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active::after*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.active.sc-duet-header::after{transform:translateY(0)}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a .duet-header-icon*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header .duet-header-icon.sc-duet-header{margin:0}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content .duet-header-badge*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header .duet-header-badge.sc-duet-header{position:absolute;margin-top:-2rem;margin-right:-2.25rem}/*!@.duet-header-multi-level-desktop-nav button::before*/.duet-header-multi-level-desktop-nav.sc-duet-header button.sc-duet-header::before{display:none}/*!@.duet-header-multi-level-desktop-nav .duet-header-caret*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-caret.sc-duet-header{display:none}/*!@.duet-header-multi-level-desktop-utils*/.duet-header-multi-level-desktop-utils.sc-duet-header{display:flex;flex-basis:0;flex-grow:1;justify-content:flex-end}/*!@.duet-header-multi-level-desktop-utils > :last-child::before*/.duet-header-multi-level-desktop-utils.sc-duet-header>.sc-duet-header:last-child::before{display:none}/*!@.duet-header-multi-level-desktop-utils .duet-header-dropdown*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown.sc-duet-header{z-index:400}/*!@.duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#f3f9fc}/*!@.duet-header-multi-level-desktop-utils .duet-header-button-label,\n.duet-header-multi-level-desktop-utils .duet-header-dropdown-label*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-button-label.sc-duet-header,.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown-label.sc-duet-header{display:none}@media (min-width: 64.0625em){/*!@.duet-header-multi-level-desktop-utils .duet-header-button-label,\n.duet-header-multi-level-desktop-utils .duet-header-dropdown-label*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-button-label.sc-duet-header,.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown-label.sc-duet-header{display:initial}}/*!@.duet-header-multi-level-desktop .duet-theme-turva .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#fcf3f4}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header{color:#c60c30}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#fcf3f4;border-color:#e4e4e6}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header::after{background:#c60c30}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.active.sc-duet-header{color:#c60c30;background:none}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#fcf3f4}";
10295
+ const duetHeaderCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-header,*.sc-duet-header::after,*.sc-duet-header::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-header-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}@supports (position: -webkit-sticky){/*!@:host*/.sc-duet-header-h{position:-webkit-sticky;top:-4rem;z-index:400}}@supports (position: sticky){/*!@:host*/.sc-duet-header-h{position:sticky;top:-4rem;z-index:400}}@supports (position: -webkit-sticky){/*!@:host(.duet-header-multi-level-desktop-variation)*/.duet-header-multi-level-desktop-variation.sc-duet-header-h{top:0}}@supports (position: sticky){/*!@:host(.duet-header-multi-level-desktop-variation)*/.duet-header-multi-level-desktop-variation.sc-duet-header-h{top:0}}/*!@.duet-header-reserved-space*/.duet-header-reserved-space.sc-duet-header{height:4rem}@media (min-width: 62em){/*!@.duet-header-reserved-space.duet-with-links*/.duet-header-reserved-space.duet-with-links.sc-duet-header{height:7rem}}/*!@.duet-header*/.duet-header.sc-duet-header{-webkit-user-select:none;user-select:none;position:fixed;top:0;left:0;z-index:400;display:block;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:0.875rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left}/*!@.duet-header.duet-theme-turva*/.duet-header.duet-theme-turva.sc-duet-header{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}@media (min-width: 62em){/*!@.duet-header.duet-theme-turva*/.duet-header.duet-theme-turva.sc-duet-header{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}}@media (min-width: 62em){/*!@.duet-header*/.duet-header.sc-duet-header{position:absolute;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}/*!@.duet-header.duet-header-inactive*/.duet-header.duet-header-inactive.sc-duet-header{position:fixed}}/*!@.duet-header **/.duet-header.sc-duet-header *.sc-duet-header{-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}/*!@.duet-header-top*/.duet-header-top.sc-duet-header{position:relative;z-index:200;display:flex;flex-direction:row;align-items:center;width:100%;height:4rem;padding:0 16px;background:white;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}@media (min-width: 62em){/*!@.duet-header-top*/.duet-header-top.sc-duet-header{z-index:100;padding:0 28px;box-shadow:none}/*!@.duet-header-top duet-logo*/.duet-header-top.sc-duet-header duet-logo.sc-duet-header{padding-right:4px}}@media (min-width: 106.25em){/*!@.duet-header-top*/.duet-header-top.sc-duet-header{padding:0 48px}}/*!@.duet-theme-turva .duet-header-top*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header{border-color:#e4e4e6;box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}@media (min-width: 62em){/*!@.duet-theme-turva .duet-header-top*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header{box-shadow:none}}/*!@.duet-theme-turva .duet-header-top duet-logo*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header duet-logo.sc-duet-header{left:-80px !important;margin-top:-8px !important}/*!@.duet-header-top .duet-header-region*/.duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{max-width:200px;padding-left:16px;margin-top:1px;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:1px solid #cfd2d4}/*!@.duet-theme-turva .duet-header-top .duet-header-region*/.duet-theme-turva.sc-duet-header .duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{border-color:#cfcfd1}@media (max-width: 35.9375em){/*!@.duet-header-top .duet-header-region*/.duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{display:none}}@media (min-width: 62em){/*!@.duet-header-top .duet-header-region*/.duet-header-top.sc-duet-header .duet-header-region.sc-duet-header{padding-left:19px}}/*!@.duet-header-bottom*/.duet-header-bottom.sc-duet-header{position:fixed;top:4rem;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;width:100%;overflow-y:auto;visibility:hidden;background:#f3f9fc;opacity:0;-webkit-overflow-scrolling:touch}/*!@.duet-theme-turva .duet-header-bottom*/.duet-theme-turva.sc-duet-header .duet-header-bottom.sc-duet-header{background:#f5f5f7}@media (min-width: 62em){/*!@.duet-header-bottom*/.duet-header-bottom.sc-duet-header{position:relative;top:auto;bottom:auto;z-index:200;flex-direction:row;overflow:visible;visibility:visible;background:white;opacity:1}/*!@.duet-header-bottom.duet-header-inactive*/.duet-header-bottom.duet-header-inactive.sc-duet-header{position:relative}}/*!@.duet-header-bottom.active*/.duet-header-bottom.active.sc-duet-header{visibility:visible;opacity:1;transition:opacity 300ms ease, visibility 300ms ease}@media (min-width: 62em){/*!@.duet-header-bottom*/.duet-header-bottom.sc-duet-header{position:relative;transition:none !important}}/*!@.duet-header-items,\n.duet-header-bottom-utils,\n.duet-header-utils*/.duet-header-items.sc-duet-header,.duet-header-bottom-utils.sc-duet-header,.duet-header-utils.sc-duet-header{opacity:0;transition:transform 600ms ease, opacity 600ms ease;transform:translateY(-28px)}@media (min-width: 62em){/*!@.duet-header-items,\n.duet-header-bottom-utils,\n.duet-header-utils*/.duet-header-items.sc-duet-header,.duet-header-bottom-utils.sc-duet-header,.duet-header-utils.sc-duet-header{opacity:1;transition:none !important;transform:none}}/*!@.active .duet-header-items,\n.active .duet-header-bottom-utils,\n.active .duet-header-utils*/.active.sc-duet-header .duet-header-items.sc-duet-header,.active.sc-duet-header .duet-header-bottom-utils.sc-duet-header,.active.sc-duet-header .duet-header-utils.sc-duet-header{opacity:1;transform:translateY(0)}/*!@.duet-header-items*/.duet-header-items.sc-duet-header{position:relative;z-index:300;display:block;width:100%;font-size:1rem;font-weight:400;line-height:1.5;background:white}@media (min-width: 62em){/*!@.duet-header-items*/.duet-header-items.sc-duet-header{z-index:100;display:flex;flex-direction:row;padding:0 21.5384615385px}}@media (min-width: 106.25em){/*!@.duet-header-items*/.duet-header-items.sc-duet-header{padding-left:43.6363636364px}}/*!@.duet-header-items .duet-header-item-container*/.duet-header-items.sc-duet-header .duet-header-item-container.sc-duet-header{border-bottom:1px solid #e1e3e6;border-radius:0}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item-container*/.duet-header-items.sc-duet-header .duet-header-item-container.sc-duet-header{border:0}}/*!@.duet-header-items .duet-header-second-level .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-second-level.sc-duet-header .duet-header-item.sc-duet-header{padding:0 40px;border:0}/*!@.duet-header-items .duet-header-second-level .duet-header-button*/.duet-header-items.sc-duet-header .duet-header-second-level.sc-duet-header .duet-header-button.sc-duet-header{border:0}/*!@.duet-header-items .duet-header-second-level .duet-header-dropdown-content*/.duet-header-items.sc-duet-header .duet-header-second-level.sc-duet-header .duet-header-dropdown-content.sc-duet-header{padding:0;border:0}/*!@.duet-header-items .duet-header-third-level .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-third-level.sc-duet-header .duet-header-item.sc-duet-header{padding:0 75px}/*!@.duet-header-items .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{position:relative;display:flex;align-items:center;width:100%;padding:0 20px;overflow:hidden;font-size:1rem;line-height:48px;color:#00294d;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{border-radius:4px}}/*!@.duet-theme-turva .duet-header-items .duet-header-item*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{font-weight:600;color:#171c3a;border-color:#e1e3e6}/*!@.duet-header-items .duet-header-item:hover*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:hover{color:#004d80}/*!@.duet-theme-turva .duet-header-items .duet-header-item:hover*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:hover{color:#444445}/*!@.duet-header-items .duet-header-item:focus*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-items .duet-header-item:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-header-items .duet-header-item:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item*/.duet-header-items.sc-duet-header .duet-header-item.sc-duet-header{width:auto;max-width:300px;padding:0 12px;overflow:hidden;font-size:0.875rem;text-overflow:ellipsis;border:0}}/*!@.duet-header-items .duet-header-item.active*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header{color:#0077b3}/*!@.duet-theme-turva .duet-header-items .duet-header-item.active*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header{color:#c60c30}/*!@.duet-header-items .duet-header-item.active:hover*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header:hover{color:#0077b3}/*!@.duet-theme-turva .duet-header-items .duet-header-item.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header:hover{color:#c60c30}/*!@.duet-header-items .duet-header-item.active::after*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .duet-header-items .duet-header-item.active::after*/.duet-theme-turva.sc-duet-header .duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header::after{background:#c60c30}@media (min-width: 62em){/*!@.duet-header-items .duet-header-item.active::after*/.duet-header-items.sc-duet-header .duet-header-item.active.sc-duet-header::after{top:auto;left:12px;width:calc(100% - 24px);height:3px}}/*!@.duet-header-toggle*/.duet-header-toggle.sc-duet-header{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-right:-8px;margin-left:auto;cursor:pointer;border-radius:4px;-webkit-appearance:none;appearance:none}/*!@.duet-header-toggle:focus*/.duet-header-toggle.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-toggle.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-header-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-toggle.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){/*!@.duet-header-toggle*/.duet-header-toggle.sc-duet-header{display:none}}/*!@.duet-header-hamburger*/.duet-header-hamburger.sc-duet-header{position:relative;width:24px;height:24px;margin-top:5px !important;pointer-events:none;transition:0.4s ease-in-out;backface-visibility:hidden}/*!@.duet-header-hamburger .duet-header-bar*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header{position:absolute;left:0;display:block;width:100%;height:2px;background:#00294d;border-radius:20rem;opacity:1;transition:0.25s ease-in-out;transform:rotate(0deg) scale(0.98)}/*!@.duet-theme-turva .duet-header-hamburger .duet-header-bar*/.duet-theme-turva.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header{background:#171c3a}/*!@.duet-header-hamburger .duet-header-bar:nth-child(1)*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(1){top:0}/*!@.duet-header-hamburger .duet-header-bar:nth-child(2), .duet-header-hamburger .duet-header-bar:nth-child(3)*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(2),.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(3){top:7px}/*!@.duet-header-hamburger .duet-header-bar:nth-child(4)*/.duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(4){top:14px}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(1)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(1){top:7px;left:50%;width:0%}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(2)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(2){transform:rotate(45deg)}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(3)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(3){transform:rotate(-45deg)}/*!@button.active .duet-header-hamburger .duet-header-bar:nth-child(4)*/button.active.sc-duet-header .duet-header-hamburger.sc-duet-header .duet-header-bar.sc-duet-header:nth-child(4){top:7px;left:50%;width:0%}/*!@.duet-header-utils*/.duet-header-utils.sc-duet-header{display:flex;flex-direction:column;width:100%}@media (min-width: 62em){/*!@.duet-header-utils*/.duet-header-utils.sc-duet-header{position:absolute;top:-4rem;right:0;z-index:999999999;flex-direction:row;align-items:center;justify-content:space-between;width:auto;margin-right:20px}}@media (min-width: 106.25em){/*!@.duet-header-utils*/.duet-header-utils.sc-duet-header{margin-right:36px}}@media (min-width: 62em){/*!@.duet-header-bottom-utils*/.duet-header-bottom-utils.sc-duet-header{position:absolute;top:0;right:0;z-index:999999999;margin-right:20px}}@media (min-width: 106.25em){/*!@.duet-header-bottom-utils*/.duet-header-bottom-utils.sc-duet-header{margin-right:36px}}/*!@button*/button.sc-duet-header{font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-theme-turva button*/.duet-theme-turva.sc-duet-header button.sc-duet-header{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}/*!@.duet-header-button*/.duet-header-button.sc-duet-header{position:relative;display:flex;align-items:center;width:100%;height:48px;padding:0 20px;overflow:hidden;font-size:1rem;font-weight:400;line-height:48px;color:#00294d;text-align:left;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-bottom:1px solid #e1e3e6;border-radius:4px;-webkit-appearance:none;appearance:none}/*!@.duet-theme-turva .duet-header-button*/.duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header{color:#171c3a;border-color:#e4e4e6}/*!@.duet-header-button:hover*/.duet-header-button.sc-duet-header:hover{color:#004d80}/*!@.duet-theme-turva .duet-header-button:hover*/.duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header:hover{color:#444445}/*!@.duet-header-button:focus*/.duet-header-button.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-button:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-button.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-header-button:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-header-button:active*/.duet-header-button.sc-duet-header:active{opacity:0.75}@media (min-width: 62em){/*!@.duet-header-button*/.duet-header-button.sc-duet-header{width:auto;max-width:200px;height:4rem;padding:0 16px;font-size:0.875rem;line-height:4rem;border:0}/*!@.duet-header-button::before*/.duet-header-button.sc-duet-header::before{position:absolute;top:50%;right:0;width:1px;height:20px;content:\"\";background:#cfd2d4;transform:translateY(-50%)}/*!@.duet-theme-turva .duet-header-button::before*/.duet-theme-turva.sc-duet-header .duet-header-button.sc-duet-header::before{background:#cfcfd1}}/*!@.duet-header-button.active*/.duet-header-button.active.sc-duet-header{color:#0077b3;border-radius:0}/*!@.duet-theme-turva .duet-header-button.active*/.duet-theme-turva.sc-duet-header .duet-header-button.active.sc-duet-header{color:#c60c30}/*!@.duet-header-button.active:hover*/.duet-header-button.active.sc-duet-header:hover{color:#0077b3}/*!@.duet-theme-turva .duet-header-button.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-button.active.sc-duet-header:hover{color:#c60c30}@media (min-width: 62em){/*!@.duet-header-button.active::after*/.duet-header-button.active.sc-duet-header::after{position:absolute;top:0;bottom:0;left:0;width:3px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .duet-header-button.active::after*/.duet-theme-turva.sc-duet-header .duet-header-button.active.sc-duet-header::after{color:#c60c30}}/*!@.duet-header-utils .duet-header-button.duet-header-logout*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header{align-self:center;justify-content:center;width:auto;height:2.5rem;margin:2.25rem 0;font-weight:600;border:2px solid #00294d;border-radius:20rem}/*!@.duet-theme-turva .duet-header-utils .duet-header-button.duet-header-logout*/.duet-theme-turva.sc-duet-header .duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header{border-color:#171c3a}/*!@.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header .duet-header-icon.sc-duet-header{margin-right:0.5rem}/*!@.duet-header-utils .duet-header-button.duet-header-logout .duet-header-button-label*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header .duet-header-button-label.sc-duet-header{font-size:0.875rem}@media (min-width: 62em){/*!@.duet-header-utils .duet-header-button.duet-header-logout*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header{height:4rem;margin:0;font-weight:400;border:0}/*!@.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon*/.duet-header-utils.sc-duet-header .duet-header-button.duet-header-logout.sc-duet-header .duet-header-icon.sc-duet-header{margin-right:0.75rem}}/*!@.duet-header-no-action*/.duet-header-no-action.sc-duet-header{pointer-events:none}/*!@.duet-header-user-label*/.duet-header-user-label.sc-duet-header{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){/*!@.duet-header-utils > *:last-child::before,\n.duet-header-utils > *:last-child button::before*/.duet-header-utils.sc-duet-header>*.sc-duet-header:last-child::before,.duet-header-utils.sc-duet-header>*.sc-duet-header:last-child button.sc-duet-header::before{display:none}}@media (min-width: 62em){/*!@.duet-header-utils > *:last-child .duet-header-dropdown-content*/.duet-header-utils.sc-duet-header>*.sc-duet-header:last-child .duet-header-dropdown-content.sc-duet-header{right:0;left:auto}}/*!@.duet-header-language*/.duet-header-language.sc-duet-header{text-transform:uppercase}/*!@.duet-header-language.active, .duet-header-language.active:hover,\n.duet-header-contact.active,\n.duet-header-contact.active:hover*/.duet-header-language.active.sc-duet-header,.duet-header-language.active.sc-duet-header:hover,.duet-header-contact.active.sc-duet-header,.duet-header-contact.active.sc-duet-header:hover{color:inherit}/*!@.duet-theme-turva .duet-header-language.active, .duet-theme-turva .duet-header-language.active:hover,\n.duet-theme-turva .duet-header-contact.active,\n.duet-theme-turva .duet-header-contact.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-language.active.sc-duet-header,.duet-theme-turva.sc-duet-header .duet-header-language.active.sc-duet-header:hover,.duet-theme-turva.sc-duet-header .duet-header-contact.active.sc-duet-header,.duet-theme-turva.sc-duet-header .duet-header-contact.active.sc-duet-header:hover{color:inherit}/*!@.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active:hover::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header:hover::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header:hover::after{width:0}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-language.duet-header-dropdown-toggle.active:hover::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,\n.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-language.duet-header-dropdown-toggle.active.sc-duet-header:hover::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-contact.duet-header-dropdown-toggle.active.sc-duet-header:hover::after{width:100%}}/*!@.duet-header-icon*/.duet-header-icon.sc-duet-header{display:inline-flex;min-width:12px;margin-right:12px;font-size:0;line-height:normal;vertical-align:baseline}@media (min-width: 62em){/*!@.duet-header-icon*/.duet-header-icon.sc-duet-header{margin-right:8px}}/*!@.duet-header-caret*/.duet-header-caret.sc-duet-header{position:absolute;top:50%;right:20px;display:flex;width:10px;height:10px;margin-left:8px;line-height:normal;pointer-events:none;transition:300ms ease;transform:translateY(-50%);transform-origin:50% 50%}@media (min-width: 62em){/*!@.duet-header-caret*/.duet-header-caret.sc-duet-header{width:7px;height:7px}}/*!@.duet-header-caret duet-icon*/.duet-header-caret.sc-duet-header duet-icon.sc-duet-header{width:10px}/*!@.duet-header-dropdown-toggle.active .duet-header-caret*/.duet-header-dropdown-toggle.active.sc-duet-header .duet-header-caret.sc-duet-header{transform:translateY(-50%) rotate(180deg)}/*!@.duet-header-dropdown-toggle:focus*/.duet-header-dropdown-toggle.sc-duet-header:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-dropdown-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-header-dropdown-toggle.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-header-dropdown-toggle:focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-header-dropdown-toggle:active*/.duet-header-dropdown-toggle.sc-duet-header:active{outline:none}/*!@.duet-header-badge*/.duet-header-badge.sc-duet-header{display:inline-block;width:6px;height:6px;margin-top:-1rem;margin-left:5px;vertical-align:top;background:#f7b228;border-radius:50%;box-shadow:0 0 0 1px #c18b1f}/*!@.duet-theme-turva .duet-header-badge*/.duet-theme-turva.sc-duet-header .duet-header-badge.sc-duet-header{background:#faa40f}/*!@.active-bar*/.active-bar.sc-duet-header{color:#0077b3}/*!@.active-bar::after*/.active-bar.sc-duet-header::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .active-bar::after*/.duet-theme-turva.sc-duet-header .active-bar.sc-duet-header::after{background:#c60c30}/*!@.duet-header-dropdown*/.duet-header-dropdown.sc-duet-header{position:relative}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-toggle*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header{z-index:200;padding-right:36px;overflow:hidden;transition:border 300ms ease}}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-toggle::after*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header::after{position:absolute;top:auto;bottom:0;left:0;display:block !important;width:100%;height:3px !important;content:\"\";background:#0077b3;transition:300ms ease;transform:translateY(3px)}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle::after*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header::after{background:#c60c30}}/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover{border-bottom:1px solid #f5f8fa}/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active::after, .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover::after{background:#c60c30}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active, .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-toggle.active:hover*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header,.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover{border-color:#f5f5f7}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover{color:#004d80;border:0}/*!@.duet-header-dropdown .duet-header-dropdown-toggle.active::after, .duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header::after,.duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header:hover::after{position:absolute;top:auto;bottom:0;left:0;width:100%;height:3px;transform:translateY(0)}}/*!@.duet-header-dropdown .duet-header-dropdown-content*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{display:none;padding-bottom:16px;background:#f3f9fc;border-bottom:1px solid #e1e3e6}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#f5f5f7;border-color:#e1e3e6}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{position:absolute;top:100%;left:0;z-index:600;display:block;min-width:150px;padding-top:16px;padding-left:0;visibility:hidden;border:0;border-radius:4px;border-top-left-radius:0;border-top-right-radius:0;box-shadow:0 4px 10px 0 rgba(0, 41, 77, 0.15);opacity:0;transition:300ms ease;transform:scale(0.85) translateZ(0) translateY(-20px)}}@media (min-width: 64.0625em){/*!@.duet-header-dropdown .duet-header-dropdown-content*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{min-width:170px}}/*!@.duet-header-dropdown .duet-header-dropdown-content.active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.active.sc-duet-header{display:block}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content.active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.active.sc-duet-header{visibility:visible;opacity:1;transform:translateZ(0) translateY(0)}}/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item)*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item){padding:3px 8px 4px !important;position:relative;display:block;width:100%;padding-right:16px;padding-left:48px !important;overflow:hidden;font-size:0.875rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer;transition:300ms ease}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item)*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item){color:#171c3a}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item)*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item){padding-right:20px !important;padding-left:20px !important}}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):hover{background:#e6f2f8}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):hover{background:#f9e6ea}}/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):focus{outline:0}/*!@:host(.user-is-tabbing) .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus*/.user-is-tabbing.sc-duet-header-h .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus*/.user-is-tabbing.sc-duet-header-h .duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item):focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{padding-right:36px;font-weight:600;vertical-align:baseline}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{font-weight:700}@media (min-width: 62em){/*!@.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{color:white;background:#0077b3}/*!@.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active*/.duet-theme-turva.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header:not(.duet-header-item).active{background:#c60c30}}/*!@.duet-header-dropdown .duet-header-dropdown-content .duet-header-link-external*/.duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header .duet-header-link-external.sc-duet-header{margin-left:4px}/*!@.duet-header-back .duet-header-top*/.duet-header-back.sc-duet-header .duet-header-top.sc-duet-header{flex-direction:row;align-items:center;justify-content:center}/*!@.duet-header-back duet-button*/.duet-header-back.sc-duet-header duet-button.sc-duet-header{position:absolute;top:50%;left:36px;transform:translateY(-50%)}@media (max-width: 35.9375em){/*!@.duet-header-back duet-button*/.duet-header-back.sc-duet-header duet-button.sc-duet-header{left:20px;max-width:40px;padding:0 12px;overflow:hidden}}/*!@.duet-header-back .duet-header-toggle*/.duet-header-back.sc-duet-header .duet-header-toggle.sc-duet-header{display:none !important}/*!@.duet-header-skip*/.duet-header-skip.sc-duet-header{padding:15px 28px 16px !important;position:absolute;top:-100%;left:-100%;z-index:200;width:1px;min-width:190px;height:1px;overflow:hidden;font-weight:600;color:#0077b3;text-align:center;text-decoration:none;background:white;border-radius:4px;opacity:0}/*!@.duet-header-skip:focus*/.duet-header-skip.sc-duet-header:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-header-skip:focus, .duet-header-skip:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-header .duet-header-skip.sc-duet-header:focus,.duet-header-skip.sc-duet-header:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-theme-turva .duet-header-skip*/.duet-theme-turva.sc-duet-header .duet-header-skip.sc-duet-header{min-width:120px;color:#171c3a}@media (min-width: 106.25em){/*!@.duet-header-skip*/.duet-header-skip.sc-duet-header{margin-left:20px}}/*!@.duet-header-skip:focus*/.duet-header-skip.sc-duet-header:focus{top:12px;left:20px;width:auto;height:auto;outline:0;opacity:1}/*!@.duet-header-multi-level-desktop*/.duet-header-multi-level-desktop.sc-duet-header{height:6rem}/*!@.duet-header-multi-level-desktop .duet-header-top*/.duet-header-multi-level-desktop.sc-duet-header .duet-header-top.sc-duet-header{justify-content:space-between;height:6rem}/*!@.duet-header-multi-level-desktop .duet-header-button*/.duet-header-multi-level-desktop.sc-duet-header .duet-header-button.sc-duet-header{height:6rem}/*!@.duet-header-multi-level-desktop .logo-and-segment*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;padding-top:1rem}/*!@.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-dropdown.sc-duet-header{z-index:400;margin-left:2rem}/*!@.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#f3f9fc}/*!@.duet-header-multi-level-desktop .logo-and-segment button*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header button.sc-duet-header{align-items:flex-start;height:2rem;font-weight:600;line-height:1rem}/*!@.duet-header-multi-level-desktop .logo-and-segment button::before*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header button.sc-duet-header::before{display:none}/*!@.duet-header-multi-level-desktop .logo-and-segment .duet-header-caret*/.duet-header-multi-level-desktop.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-caret.sc-duet-header{top:25%}/*!@.duet-header-multi-level-desktop-nav*/.duet-header-multi-level-desktop-nav.sc-duet-header{display:flex}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header{position:static}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.sc-duet-header{z-index:400;padding-right:1rem;font-size:1rem;font-weight:600}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header{color:#0077b3}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{z-index:399;display:flex;justify-content:center;width:100%;height:4.5rem;padding:0;background:#f3f9fc;border-top:1px solid #e1e3e6;border-bottom:1px solid #e1e3e6;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07);transition:none}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:auto;min-width:6rem;height:100%;padding:0 1rem !important;font-weight:600}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header::after{position:absolute;top:auto;bottom:0;left:0;display:block !important;width:100%;height:3px;content:\"\";background:#0077b3;transition:300ms ease;transform:translateY(3px)}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.active.sc-duet-header{font-weight:600;color:#0077b3;background:none}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active::after*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.active.sc-duet-header::after{transform:translateY(0)}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a .duet-header-icon*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header .duet-header-icon.sc-duet-header{margin:0}/*!@.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content .duet-header-badge*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header .duet-header-badge.sc-duet-header{position:absolute;margin-top:-2rem;margin-right:-2.25rem}/*!@.duet-header-multi-level-desktop-nav button::before*/.duet-header-multi-level-desktop-nav.sc-duet-header button.sc-duet-header::before{display:none}/*!@.duet-header-multi-level-desktop-nav .duet-header-caret*/.duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-caret.sc-duet-header{display:none}/*!@.duet-header-multi-level-desktop-utils*/.duet-header-multi-level-desktop-utils.sc-duet-header{display:flex;flex-basis:0;flex-grow:1;justify-content:flex-end}/*!@.duet-header-multi-level-desktop-utils > :last-child::before*/.duet-header-multi-level-desktop-utils.sc-duet-header>.sc-duet-header:last-child::before{display:none}/*!@.duet-header-multi-level-desktop-utils .duet-header-dropdown*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown.sc-duet-header{z-index:400}/*!@.duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#f3f9fc}/*!@.duet-header-multi-level-desktop-utils .duet-header-button-label,\n.duet-header-multi-level-desktop-utils .duet-header-dropdown-label*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-button-label.sc-duet-header,.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown-label.sc-duet-header{display:none}@media (min-width: 64.0625em){/*!@.duet-header-multi-level-desktop-utils .duet-header-button-label,\n.duet-header-multi-level-desktop-utils .duet-header-dropdown-label*/.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-button-label.sc-duet-header,.duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown-label.sc-duet-header{display:initial}}/*!@.duet-header-multi-level-desktop .duet-theme-turva .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .logo-and-segment.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#fcf3f4}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-toggle.active.sc-duet-header{color:#c60c30}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#fcf3f4;border-color:#e4e4e6}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.sc-duet-header::after{background:#c60c30}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-nav.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header a.active.sc-duet-header{color:#c60c30;background:none}/*!@.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content*/.duet-header-multi-level-desktop.sc-duet-header .duet-theme-turva.sc-duet-header .duet-header-multi-level-desktop-utils.sc-duet-header .duet-header-dropdown.sc-duet-header .duet-header-dropdown-content.sc-duet-header{background:#fcf3f4}";
10259
10296
 
10260
10297
  const createEvent = (ev, data) => ({
10261
10298
  component: "duet-header",
@@ -10265,6 +10302,7 @@ const createEvent = (ev, data) => ({
10265
10302
  /**
10266
10303
  * @slot utility - A slot for utilities, such as a notification drawer or shopping basket.
10267
10304
  * @slot logo-utility - A slot to place elements alongside the logo. This takes precedence over the **region** prop. Note: not available in desktop multilevel header.
10305
+ * @part header - piercing selector for styling the header element.
10268
10306
  */
10269
10307
  class DuetHeader {
10270
10308
  constructor(hostRef) {
@@ -10724,7 +10762,7 @@ class DuetHeader {
10724
10762
  "duet-theme-turva": this.theme === "turva",
10725
10763
  "duet-header-back": true,
10726
10764
  "duet-header-inactive": true,
10727
- } }, hAsync("div", { class: "duet-header-top" }, skipToLabel, hAsync("duet-button", { url: this.processedBack.href, id: this.processedBack.id, theme: this.theme, variation: "plain", color: this.theme === "turva" ? "secondary-turva" : "secondary", icon: "navigation-arrow-left", iconSize: "large", onClick: this.handleBackClick }, this.processedBack.label), logo, hAsync("slot", { name: "logo-utility" }))))));
10765
+ }, part: "header" }, hAsync("div", { class: "duet-header-top" }, skipToLabel, hAsync("duet-button", { url: this.processedBack.href, id: this.processedBack.id, theme: this.theme, variation: "plain", color: this.theme === "turva" ? "secondary-turva" : "secondary", icon: "navigation-arrow-left", iconSize: "large", onClick: this.handleBackClick }, this.processedBack.label), logo, hAsync("slot", { name: "logo-utility" }))))));
10728
10766
  }
10729
10767
  // multi level desktop variation
10730
10768
  const itemsHaveSubItems = this.processedItems && this.processedItems.some(item => item.items && item.items.length > 0);
@@ -10741,7 +10779,7 @@ class DuetHeader {
10741
10779
  "duet-header": true,
10742
10780
  "duet-theme-turva": this.theme === "turva",
10743
10781
  "duet-header-inactive": !this.processedItems,
10744
- } }, hAsync("div", { class: "duet-header-top" }, skipToLabel, hAsync("div", { class: "logo-and-segment" }, largeLogo, this.processedItems && (hAsync(DuetHeaderDropdown, { id: segmentId, label: activeSegment.label, active: this.isSegmentOpen, isOpen: this.isSegmentOpen, badge: false, toggleRef: el => (this.segmentItemsButtonEl = el), itemsRef: el => (this.segmentItemsEl = el), onToggle: event => this.toggleMenu(event, "segment") }, this.processedItems.map(item => (hAsync("a", { class: { active: activeSegment === item }, role: "menuitem", href: item.href || "#", id: item.id, onClick: event => this.handleItemClick(event, item), onKeyDown: ev => this.handleArrowKeys(ev), target: item.external ? "_blank" : "_self" }, item.icon && (hAsync("div", { class: "duet-header-icon" }, hAsync("duet-icon", { margin: "none", size: "x-small", name: item.icon, color: "currentColor" }))), hAsync("span", null, item.label), item.badge && hAsync("div", { class: "duet-header-badge" }))))))), hAsync("nav", { class: "duet-header-multi-level-desktop-nav" }, activeSegment.items &&
10782
+ }, part: "header" }, hAsync("div", { class: "duet-header-top" }, skipToLabel, hAsync("div", { class: "logo-and-segment" }, largeLogo, this.processedItems && (hAsync(DuetHeaderDropdown, { id: segmentId, label: activeSegment.label, active: this.isSegmentOpen, isOpen: this.isSegmentOpen, badge: false, toggleRef: el => (this.segmentItemsButtonEl = el), itemsRef: el => (this.segmentItemsEl = el), onToggle: event => this.toggleMenu(event, "segment") }, this.processedItems.map(item => (hAsync("a", { class: { active: activeSegment === item }, role: "menuitem", href: item.href || "#", id: item.id, onClick: event => this.handleItemClick(event, item), onKeyDown: ev => this.handleArrowKeys(ev), target: item.external ? "_blank" : "_self" }, item.icon && (hAsync("div", { class: "duet-header-icon" }, hAsync("duet-icon", { margin: "none", size: "x-small", name: item.icon, color: "currentColor" }))), hAsync("span", null, item.label), item.badge && hAsync("div", { class: "duet-header-badge" }))))))), hAsync("nav", { class: "duet-header-multi-level-desktop-nav" }, activeSegment.items &&
10745
10783
  activeSegment.items
10746
10784
  .filter(secondLevelItem => secondLevelItem.items && secondLevelItem.items.length > 0)
10747
10785
  .map((secondLevelItem, secondLevelItemIndex) => {
@@ -10767,7 +10805,7 @@ class DuetHeader {
10767
10805
  "duet-header": true,
10768
10806
  "duet-theme-turva": this.theme === "turva",
10769
10807
  "duet-header-inactive": !this.processedItems,
10770
- } }, hAsync("div", { class: "duet-header-top" }, skipToLabel, logo, hAsync("slot", { name: "logo-utility" }, this.region && hAsync("div", { class: "duet-header-region" }, this.region)), (this.processedItems ||
10808
+ }, part: "header" }, hAsync("div", { class: "duet-header-top" }, skipToLabel, logo, hAsync("slot", { name: "logo-utility" }, this.region && hAsync("div", { class: "duet-header-region" }, this.region)), (this.processedItems ||
10771
10809
  languageDropdown ||
10772
10810
  contactDropdown ||
10773
10811
  this.processedSession ||
@@ -13031,7 +13069,7 @@ const shouldDisplayNavigation = (visibleItems, total, take) => {
13031
13069
  return true;
13032
13070
  };
13033
13071
 
13034
- const duetPaginationCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-pagination,*.sc-duet-pagination::after,*.sc-duet-pagination::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-pagination-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}/*!@.duet-pagination-nav*/.duet-pagination-nav.sc-duet-pagination{position:relative}/*!@.duet-pagination, .duet-pagination li*/.duet-pagination.sc-duet-pagination,.duet-pagination.sc-duet-pagination li.sc-duet-pagination{display:flex;flex-wrap:wrap;gap:0.1rem;align-items:center}/*!@.duet-pagination-item-is-active .duet-pagination-page-number*/.duet-pagination-item-is-active.sc-duet-pagination .duet-pagination-page-number.sc-duet-pagination{border-bottom-color:inherit;border-bottom-style:solid;border-bottom-width:2px}/*!@.duet-pagination duet-button*/.duet-pagination.sc-duet-pagination duet-button.sc-duet-pagination{width:30px;min-width:36px;font-weight:600;text-decoration:none;border-left-width:0}/*!@.duet-pagination-overlay*/.duet-pagination-overlay.sc-duet-pagination{position:absolute;top:1rem;z-index:300;width:100%;text-align:center}/*!@.duet-pagination.duet-pagination-is-dimmed*/.duet-pagination.duet-pagination-is-dimmed.sc-duet-pagination{opacity:0.5}/*!@.duet-pagination-page-button*/.duet-pagination-page-button.sc-duet-pagination{white-space:nowrap}/*!@.duet-pagination-page-button button*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:auto !important;padding:0 !important;margin:0 0 0 8px !important;color:#00294d;cursor:pointer;background:#f5f8fa;border-radius:50%;transition:background-color 300ms ease !important}/*!@.duet-theme-turva .duet-pagination-page-button button*/.duet-theme-turva.sc-duet-pagination .duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination{color:#171c3a;background:#f5f5f7}/*!@.duet-pagination-page-button button duet-icon*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination duet-icon.sc-duet-pagination{display:block}@media (max-width: 35.9375em){/*!@.duet-pagination-page-button button*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination{width:40px;height:40px}}/*!@.duet-pagination-page-button button:not(:disabled):hover*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:not(:disabled):hover{background:#e9ecee !important}/*!@.duet-theme-turva .duet-pagination-page-button button:not(:disabled):hover*/.duet-theme-turva.sc-duet-pagination .duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:not(:disabled):hover{background:#e9e9eb !important}/*!@.duet-pagination-page-button button:focus*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:focus{outline:0;box-shadow:0 0 0 2px #0077b3}/*!@.duet-theme-turva .duet-pagination-page-button button:focus*/.duet-theme-turva.sc-duet-pagination .duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:focus{box-shadow:0 0 0 2px #171c3a}/*!@.duet-pagination-page-button button:active:focus*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:active:focus{background:#dddfe1;box-shadow:none}/*!@.duet-theme-turva .duet-pagination-page-button button:active:focus*/.duet-theme-turva.sc-duet-pagination .duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:active:focus{background:#ddddde}/*!@.duet-pagination-page-button button:disabled*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}/*!@.duet-theme-turva .duet-pagination-page-button button:disabled*/.duet-theme-turva.sc-duet-pagination .duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:disabled{color:#747475;background:#f5f5f7}";
13072
+ const duetPaginationCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-pagination,*.sc-duet-pagination::after,*.sc-duet-pagination::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-pagination-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}/*!@.duet-pagination-nav*/.duet-pagination-nav.sc-duet-pagination{position:relative}/*!@.duet-pagination ::part(button)*/.duet-pagination.sc-duet-pagination .sc-duet-pagination::part(button){border:0}/*!@.duet-pagination, .duet-pagination li*/.duet-pagination.sc-duet-pagination,.duet-pagination.sc-duet-pagination li.sc-duet-pagination{display:flex;flex-wrap:wrap;gap:0.1rem;align-items:center}/*!@.duet-pagination-item-is-active .duet-pagination-page-number*/.duet-pagination-item-is-active.sc-duet-pagination .duet-pagination-page-number.sc-duet-pagination{border-bottom-color:inherit;border-bottom-style:solid;border-bottom-width:2px}/*!@.duet-pagination duet-button*/.duet-pagination.sc-duet-pagination duet-button.sc-duet-pagination{width:30px;min-width:36px;font-weight:600;text-decoration:none;border-left-width:0}/*!@.duet-pagination-overlay*/.duet-pagination-overlay.sc-duet-pagination{position:absolute;top:1rem;z-index:300;width:100%;text-align:center}/*!@.duet-pagination.duet-pagination-is-dimmed*/.duet-pagination.duet-pagination-is-dimmed.sc-duet-pagination{opacity:0.5}";
13035
13073
 
13036
13074
  class DuetPagination {
13037
13075
  constructor(hostRef) {
@@ -13057,10 +13095,14 @@ class DuetPagination {
13057
13095
  * Characters to use for the jump buttons.
13058
13096
  */
13059
13097
  this.jumpString = "...";
13098
+ /**
13099
+ * Variation of the paginator (compact and default supported)
13100
+ */
13101
+ this.variation = "default";
13060
13102
  /**
13061
13103
  * Default pagination labels
13062
13104
  */
13063
- this.ariaLabelsDefaults = {
13105
+ this.accessibleLabelsDefaults = {
13064
13106
  en: {
13065
13107
  next_page: "Next page",
13066
13108
  previous_page: "Previous page",
@@ -13101,7 +13143,7 @@ class DuetPagination {
13101
13143
  /**
13102
13144
  * Default pagination labels
13103
13145
  */
13104
- this.ariaLabels = getLocaleString(this.ariaLabelsDefaults);
13146
+ this.accessibleLabels = getLocaleString(this.accessibleLabelsDefaults);
13105
13147
  /**
13106
13148
  * The size of the take, when paginating.
13107
13149
  */
@@ -13270,29 +13312,35 @@ class DuetPagination {
13270
13312
  "duet-pagination-item-is-active": i === this.current,
13271
13313
  }, role: "menuitem" }, hAsync("duet-button", { class: {
13272
13314
  "duet-pagination-link": true,
13273
- }, color: i !== this.current ? "secondary" : "primary", "data-id": i, "center-text": true, variation: "plain", margin: "none", accessibleLabel: `${this.ariaLabels.go_to} ${i}`, onClick: e => this.pageClickHandler(e) }, hAsync("div", { class: "duet-pagination-page-number", "aria-hidden": true }, i))));
13315
+ }, color: i !== this.current ? "secondary" : "primary", "data-id": i, "center-text": true, variation: "plain", margin: "none", accessibleLabel: `${this.accessibleLabels.go_to} ${i}`, onClick: e => this.pageClickHandler(e) }, hAsync("div", { class: "duet-pagination-page-number", "aria-hidden": true }, i))));
13274
13316
  } while (i < this.visibleItems + this.internalSectionIndex * this.visibleItems);
13275
13317
  return items;
13276
13318
  }
13277
13319
  shouldDisplayNavigation() {
13278
- return shouldDisplayNavigation(this.visibleItems, this.total, this.take);
13320
+ if (this.variation !== "compact") {
13321
+ return shouldDisplayNavigation(this.visibleItems, this.total, this.take);
13322
+ }
13323
+ return false;
13279
13324
  }
13280
13325
  /**
13281
13326
  * render() function
13282
13327
  * Always the last one in the class.
13283
13328
  */
13284
13329
  render() {
13285
- return (hAsync(Host, { onKeyDown: e => this.onKeyboardDown(e) }, hAsync("nav", { role: "navigation", class: "duet-pagination-nav", "aria-labelledby": this.listId, "aria-describedby": this.listId, ref: el => (this.nativeNav = el), "aria-controls": this.ariaControls }, this.numbersStore !== "" && (hAsync("div", { "aria-live": "assertive", "aria-relevant": "text", class: "duet-pagination-overlay", "aria-label": `${this.ariaLabels.jump_to} ${this.numbersStore}`, part: "navigation-overlay" }, hAsync("duet-badge", null, "jump to page : ", this.numbersStore))), hAsync("ol", { id: this.listId, class: {
13330
+ return (hAsync(Host, { onKeyDown: e => this.onKeyboardDown(e) }, hAsync("nav", { role: "navigation", "aria-labelledby": this.listId, "aria-describedby": this.listId, ref: el => (this.nativeNav = el), "aria-controls": this.ariaControls, class: {
13331
+ "duet-pagination-nav": true,
13332
+ [`duet-pagination-variation-${this.variation}`]: true,
13333
+ } }, this.numbersStore !== "" && (hAsync("div", { "aria-live": "assertive", "aria-relevant": "text", class: "duet-pagination-overlay", "aria-label": `${this.accessibleLabels.jump_to} ${this.numbersStore}`, part: "navigation-overlay" }, hAsync("duet-badge", null, "jump to page : ", this.numbersStore))), hAsync("ol", { id: this.listId, class: {
13286
13334
  "duet-pagination": true,
13287
13335
  "duet-pagination-is-dimmed": this.numbersStore !== "",
13288
- }, role: "menubar", "aria-label": this.ariaLabels.pagination_label, "aria-description": this.ariaLabels.description }, hAsync("li", { class: {
13336
+ }, role: "menubar", "aria-label": this.accessibleLabels.pagination_label, "aria-description": this.accessibleLabels.description }, hAsync("li", { class: {
13289
13337
  "duet-pagination-page-button": true,
13290
13338
  "duet-pagination-button-first": true,
13291
- }, role: "menuitem", part: "navigation-arrow" }, hAsync("button", { disabled: this.internalSectionIndex === 0 && this.current <= 1, "data-direction": "back", class: "duet-date-dialog-prev", type: "button", onClick: e => this.onMouseHandler(e, -1), "aria-label": this.ariaLabels.previous_page }, hAsync("duet-icon", { name: "action-arrow-left-small", color: "currentColor", margin: "none", size: "xx-small" }))), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (hAsync(Fragment, null, hAsync("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, hAsync("duet-button", { class: "duet-pagination-link", "center-text": "true", variation: "plain", color: "secondary", margin: "none", accessibleLabel: this.ariaLabels.first_page, onClick: e => this.jumpToStart(e) }, hAsync("div", { class: "duet-pagination-page-number" }, "1"))), hAsync("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, hAsync("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.ariaLabels.prev_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, -1) }, hAsync("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))))), this.renderPageNumbers(), this.internalSectionIndex !== this.totalPages / this.visibleItems - 1 && this.shouldDisplayNavigation() && (hAsync(Fragment, null, hAsync("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, hAsync("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.ariaLabels.next_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, 1) }, hAsync("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))), hAsync("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, hAsync("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.ariaLabels.last_page, onClick: e => this.jumpToEnd(e) }, hAsync("div", { class: "duet-pagination-page-number" }, this.totalPages))))), hAsync("li", { class: {
13339
+ }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { disabled: this.internalSectionIndex === 0 && this.current <= 1, "data-direction": "back", onClick: e => this.onMouseHandler(e, -1), "aria-label": this.accessibleLabels.previous_page, "icon-name": "action-arrow-left-small" })), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (hAsync(Fragment, null, hAsync("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, hAsync("duet-button", { class: "duet-pagination-link", "center-text": "true", variation: "plain", color: "secondary", margin: "none", accessibleLabel: this.accessibleLabels.first_page, onClick: e => this.jumpToStart(e) }, hAsync("div", { class: "duet-pagination-page-number" }, "1"))), hAsync("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, hAsync("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.prev_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, -1) }, hAsync("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))))), this.renderPageNumbers(), this.internalSectionIndex !== this.totalPages / this.visibleItems - 1 && this.shouldDisplayNavigation() && (hAsync(Fragment, null, hAsync("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, hAsync("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.next_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, 1) }, hAsync("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))), hAsync("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, hAsync("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.last_page, onClick: e => this.jumpToEnd(e) }, hAsync("div", { class: "duet-pagination-page-number" }, this.totalPages))))), hAsync("li", { class: {
13292
13340
  "duet-pagination-page-button": true,
13293
13341
  "duet-pagination-button-last": true,
13294
- }, role: "menuitem", part: "navigation-arrow" }, hAsync("button", { disabled: this.current === this.totalPages &&
13295
- this.internalSectionIndex === Math.ceil(this.totalPages / this.visibleItems) - 1, class: "duet-date-dialog-next", type: "button", "aria-label": this.ariaLabels.next_page, onClick: e => this.onMouseHandler(e, 1) }, hAsync("duet-icon", { name: "action-arrow-right-small", color: "currentColor", margin: "none", size: "xx-small" })))))));
13342
+ }, role: "menuitem", part: "navigation-arrow" }, hAsync("duet-action-button", { disabled: this.current === this.totalPages &&
13343
+ this.internalSectionIndex === Math.ceil(this.totalPages / this.visibleItems) - 1, class: "duet-date-dialog-next", "aria-label": this.accessibleLabels.next_page, onClick: e => this.onMouseHandler(e, 1), "icon-name": "action-arrow-right-small" }))))));
13296
13344
  }
13297
13345
  get element() { return getElement(this); }
13298
13346
  static get watchers() { return {
@@ -13305,8 +13353,9 @@ class DuetPagination {
13305
13353
  "$members$": {
13306
13354
  "theme": [1025],
13307
13355
  "jumpString": [1, "jump-string"],
13308
- "ariaLabelsDefaults": [16],
13309
- "ariaLabels": [16],
13356
+ "variation": [1],
13357
+ "accessibleLabelsDefaults": [16],
13358
+ "accessibleLabels": [16],
13310
13359
  "take": [1026],
13311
13360
  "visibleItems": [1026, "visible-items"],
13312
13361
  "total": [1026],
@@ -13963,7 +14012,7 @@ class DuetRangeSlider {
13963
14012
  }; }
13964
14013
  }
13965
14014
 
13966
- const duetRangeStepperCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-range-stepper,*.sc-duet-range-stepper::after,*.sc-duet-range-stepper::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-range-stepper-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}/*!@.duet-range-stepper*/.duet-range-stepper.sc-duet-range-stepper{display:flex;flex-wrap:wrap;gap:0;align-items:baseline;justify-content:center;min-width:30px;min-height:30px;font-weight:600;text-decoration:none;border-left-width:0}/*!@.duet-range-stepper*/.duet-range-stepper.sc-duet-range-stepper{white-space:nowrap}/*!@.duet-range-stepper button*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:auto !important;padding:0 !important;margin:0 0 0 8px !important;color:#00294d;cursor:pointer;background:#f5f8fa;border-radius:50%;transition:background-color 300ms ease !important}/*!@.duet-theme-turva .duet-range-stepper button*/.duet-theme-turva.sc-duet-range-stepper .duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper{color:#171c3a;background:#f5f5f7}/*!@.duet-range-stepper button duet-icon*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper duet-icon.sc-duet-range-stepper{display:block}@media (max-width: 35.9375em){/*!@.duet-range-stepper button*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper{width:40px;height:40px}}/*!@.duet-range-stepper button:not(:disabled):hover*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:not(:disabled):hover{background:#e9ecee !important}/*!@.duet-theme-turva .duet-range-stepper button:not(:disabled):hover*/.duet-theme-turva.sc-duet-range-stepper .duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:not(:disabled):hover{background:#e9e9eb !important}/*!@.duet-range-stepper button:focus*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:focus{outline:0;box-shadow:0 0 0 2px #0077b3}/*!@.duet-theme-turva .duet-range-stepper button:focus*/.duet-theme-turva.sc-duet-range-stepper .duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:focus{box-shadow:0 0 0 2px #171c3a}/*!@.duet-range-stepper button:active:focus*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:active:focus{background:#dddfe1;box-shadow:none}/*!@.duet-theme-turva .duet-range-stepper button:active:focus*/.duet-theme-turva.sc-duet-range-stepper .duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:active:focus{background:#ddddde}/*!@.duet-range-stepper button:disabled*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}/*!@.duet-theme-turva .duet-range-stepper button:disabled*/.duet-theme-turva.sc-duet-range-stepper .duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:disabled{color:#747475;background:#f5f5f7}";
14015
+ const duetRangeStepperCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-range-stepper,*.sc-duet-range-stepper::after,*.sc-duet-range-stepper::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-range-stepper-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}/*!@.duet-range-stepper*/.duet-range-stepper.sc-duet-range-stepper{display:flex;flex-wrap:wrap;gap:0;align-items:baseline;justify-content:center;min-width:30px;min-height:30px;font-weight:600;text-decoration:none;border-left-width:0}/*!@.duet-range-stepper*/.duet-range-stepper.sc-duet-range-stepper{white-space:nowrap}/*!@.duet-range-stepper .duet-range-step-counter*/.duet-range-stepper.sc-duet-range-stepper .duet-range-step-counter.sc-duet-range-stepper{font-weight:600;color:#00294d}/*!@.duet-range-stepper ::part(button)*/.duet-range-stepper.sc-duet-range-stepper .sc-duet-range-stepper::part(button){border:0}";
13967
14016
 
13968
14017
  class DuetRangeStepper {
13969
14018
  constructor(hostRef) {
@@ -14108,7 +14157,7 @@ class DuetRangeStepper {
14108
14157
  return (hAsync("div", { class: {
14109
14158
  "duet-range-stepper": true,
14110
14159
  "duet-theme-turva": this.theme === "turva",
14111
- }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, hAsync("span", { class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), hAsync("button", { class: "duet-range-step-button duet-range-step-minus", type: "button", onClick: e => this.handleClick(e, -1), id: this.leftBn, "aria-label": this.ariaLabels.previous_increment, ref: el => (this.leftBnRef = el), part: "navigation-arrow" }, hAsync("duet-icon", { name: "action-arrow-left-small", color: "currentColor", margin: "none", size: "xx-small" })), hAsync("button", { class: "duet-range-step-button duet-range-step-plus", type: "button", onClick: e => this.handleClick(e, 1), "aria-label": this.ariaLabels.next_increment, id: this.rightBn, ref: el => (this.rightBnRef = el), part: "navigation-arrow" }, hAsync("duet-icon", { name: "action-arrow-right-small", color: "currentColor", margin: "none", size: "xx-small" }))));
14160
+ }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, hAsync("span", { class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), hAsync("duet-action-button", { class: "duet-range-step-button duet-range-step-minus", onClick: e => this.handleClick(e, -1), id: this.leftBn, "aria-label": this.ariaLabels.previous_increment, ref: el => (this.leftBnRef = el), part: "navigation-arrow", iconName: "action-arrow-left-small" }), hAsync("duet-action-button", { class: "duet-range-step-button duet-range-step-plus", onClick: e => this.handleClick(e, 1), "aria-label": this.ariaLabels.next_increment, id: this.rightBn, ref: el => (this.rightBnRef = el), part: "navigation-arrow", iconName: "action-arrow-right-small" })));
14112
14161
  }
14113
14162
  get element() { return getElement(this); }
14114
14163
  static get watchers() { return {
@@ -14940,6 +14989,10 @@ class DuetTab {
14940
14989
 
14941
14990
  const duetTabGroupCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-tab-group,*.sc-duet-tab-group::after,*.sc-duet-tab-group::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-tab-group-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;display:block;width:100%}/*!@.duet-tab-group-tabs*/.duet-tab-group-tabs.sc-duet-tab-group{margin-bottom:28px !important;display:block;width:100%;max-width:100%;padding-top:2px;list-style:none}/*!@.duet-tab-group-tabs.duet-m-0*/.duet-tab-group-tabs.duet-m-0.sc-duet-tab-group{margin:0 !important}/*!@.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden*/.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden.sc-duet-tab-group{display:none}@media (min-width: 36em){/*!@.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden*/.duet-tab-group-tabs.duet-tab-group-collapses.duet-tab-group-hidden.sc-duet-tab-group{display:block}}/*!@.duet-tab-variation-plain .duet-tab-group-tabs*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom:1px solid #e1e3e6}/*!@.duet-theme-turva.duet-tab-variation-plain .duet-tab-group-tabs*/.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-group-tabs.sc-duet-tab-group{border-bottom-color:#e4e4e6}@media (min-width: 36em){/*!@duet-select*/duet-select.sc-duet-tab-group{display:none !important}}/*!@.duet-tab-button*/.duet-tab-button.sc-duet-tab-group{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px;margin-top:-2px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;line-height:1.1;color:#00294d;text-align:left;text-decoration:none;cursor:pointer;background:white;border:2px solid #e1e3e6;border-radius:0;transition:150ms ease}/*!@.duet-tab-button.duet-p-0*/.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}/*!@.duet-tab-button.duet-m-0*/.duet-tab-button.duet-m-0.sc-duet-tab-group{margin:0 !important}/*!@.duet-theme-turva .duet-tab-button*/.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#e4e4e6}/*!@.duet-tab-button.duet-p-0*/.duet-tab-button.duet-p-0.sc-duet-tab-group{padding:0 !important}@media (min-width: 36em){/*!@.duet-tab-button*/.duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;margin-left:-2px;border-right:2px solid #e1e3e6;border-radius:0}}/*!@.duet-tab-button:hover*/.duet-tab-button.sc-duet-tab-group:hover{z-index:200;border-color:#909599}/*!@.duet-theme-turva .duet-tab-button:hover*/.duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:hover{border-color:#747475}/*!@.duet-tab-button:active*/.duet-tab-button.sc-duet-tab-group:active{opacity:0.75;transition:none}/*!@.duet-tab-button.selected*/.duet-tab-button.selected.sc-duet-tab-group{z-index:201;color:white;background:#00294d;border-color:#00294d;outline:0;box-shadow:none !important}/*!@.duet-theme-turva .duet-tab-button.selected*/.duet-theme-turva.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:white;background-color:#171c3a;border-color:#171c3a}/*!@.duet-tab-button:focus*/.duet-tab-button.sc-duet-tab-group:focus{z-index:200;outline:0}/*!@:host(.user-is-tabbing) .duet-tab-button:focus*/.user-is-tabbing.sc-duet-tab-group-h .duet-tab-button.sc-duet-tab-group:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3 !important}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-tab-button:focus*/.user-is-tabbing.sc-duet-tab-group-h .duet-theme-turva.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a !important}/*!@.duet-tab-button:first-child*/.duet-tab-button.sc-duet-tab-group:first-child{border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){/*!@.duet-tab-button:first-child*/.duet-tab-button.sc-duet-tab-group:first-child{border-top-right-radius:0;border-bottom-left-radius:4px}}/*!@.duet-tab-button:last-child*/.duet-tab-button.sc-duet-tab-group:last-child{border-bottom-right-radius:4px;border-bottom-left-radius:4px}@media (min-width: 36em){/*!@.duet-tab-button:last-child*/.duet-tab-button.sc-duet-tab-group:last-child{border-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}}/*!@.duet-tab-variation-plain .duet-tab-button*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group{display:inline-block;width:auto;padding-right:0;padding-left:0;border:0;border-radius:0;transition:none}/*!@.duet-tab-variation-plain .duet-tab-button + .duet-tab-button*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.sc-duet-tab-group+.duet-tab-button.sc-duet-tab-group{margin-left:36px}/*!@.duet-tab-variation-plain .duet-tab-button.selected*/.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:#0077b3;background:white;border-bottom:3px solid #0077b3}/*!@.duet-theme-turva.duet-tab-variation-plain .duet-tab-button.selected*/.duet-theme-turva.duet-tab-variation-plain.sc-duet-tab-group .duet-tab-button.selected.sc-duet-tab-group{color:#c60c30;border-bottom-color:#c60c30}/*!@.duet-tab-group-content*/.duet-tab-group-content.sc-duet-tab-group{position:relative;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#00294d;text-align:left}/*!@.duet-theme-turva .duet-tab-group-content*/.duet-theme-turva.sc-duet-tab-group .duet-tab-group-content.sc-duet-tab-group{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}";
14942
14991
 
14992
+ /**
14993
+ * @part ${identifier}-button - piercing selector for styling tab buttons
14994
+ * @part ${identifier}-button--selected - piercing selector for styling selected tab button
14995
+ */
14943
14996
  class DuetTabGroup {
14944
14997
  constructor(hostRef) {
14945
14998
  registerInstance(this, hostRef);
@@ -15025,7 +15078,7 @@ class DuetTabGroup {
15025
15078
  };
15026
15079
  this.renderTab = () => {
15027
15080
  const renderedTabs = this.tabs.map((element, index) => {
15028
- return (hAsync("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), part: `${this.identifier}-button`, type: "button", class: {
15081
+ return (hAsync("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), part: `${this.identifier}-button ${element.selected ? `${this.identifier}-button--selected` : ""}`, type: "button", class: {
15029
15082
  "duet-p-0": this.padding === "none",
15030
15083
  "duet-tab-button": true,
15031
15084
  selected: element.selected,
@@ -15172,7 +15225,7 @@ class DuetTabGroup {
15172
15225
  }; }
15173
15226
  }
15174
15227
 
15175
- const duetTableCss = "duet-table{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:20px !important;display:block;font-variant-numeric:tabular-nums}duet-table table,duet-table thead,duet-table tbody,duet-table tfoot,duet-table th,duet-table td,duet-table tr{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}duet-table.duet-m-0{margin:0 !important}duet-table table{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;text-align:left;border-spacing:0;border-collapse:separate}duet-table.duet-theme-turva table{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}duet-table td{-webkit-hyphens:auto;hyphens:auto;color:#00294d}duet-table.duet-theme-turva td{color:#171c3a}duet-table th{font-weight:600;line-height:1.25;color:#657787;text-align:left}duet-table.duet-theme-turva th{color:#747475}duet-table tbody th{font-weight:600;color:#00294d}duet-table.duet-theme-turva tbody th{color:#171c3a}.duet-table-flattened table,.duet-table-flattened thead,.duet-table-flattened tbody,.duet-table-flattened tfoot,.duet-table-flattened th,.duet-table-flattened td,.duet-table-flattened tr{display:block}.duet-table-flattened thead tr{position:absolute !important;top:0;width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}.duet-table-flattened td{line-height:1.25}.duet-table-flattened td:not(:last-child){margin-bottom:16px !important}.duet-table-flattened tbody td,.duet-table-flattened tbody th,.duet-table-flattened tfoot td{padding:0 !important;text-align:left !important}.duet-table-flattened tbody th{font-weight:600;line-height:1.25;color:#657787;text-align:left}.duet-table-flattened td[data-heading]::before{margin-bottom:4px !important;display:block;font-size:1rem;font-weight:600;color:#00294d;content:attr(data-heading)}.duet-table-flattened.duet-theme-turva td[data-heading]::before{color:#171c3a}.duet-table-sticky thead th{position:sticky;top:0;background:white}.duet-table-striped td,.duet-table-striped th{padding:20px !important}@media (max-width: 35.9375em){.duet-table-striped td,.duet-table-striped th{padding:20px 12px !important}}.duet-table-striped tbody th{background:white}.duet-table-striped.duet-table-sticky thead th{border-bottom:1px solid #e1e3e6}.duet-table-striped.duet-table-sticky.duet-theme-turva thead th{border-bottom-color:#e4e4e6}.duet-table-striped tbody:not(:first-of-type) th{padding-top:40px !important}.duet-table-striped tbody:only-of-type tr:nth-of-type(odd){background:rgba(0, 80, 128, 0.04)}.duet-table-striped.duet-theme-turva tbody:only-of-type tr:nth-of-type(odd){background:rgba(23, 28, 58, 0.04)}.duet-table-striped tbody:not(:only-of-type) tr:nth-of-type(even){background:rgba(0, 80, 128, 0.04)}.duet-table-striped.duet-theme-turva tbody:not(:only-of-type) tr:nth-of-type(even){background:rgba(23, 28, 58, 0.04)}.duet-table-striped tfoot td{border-top:1px solid #e1e3e6}.duet-table-striped.duet-theme-turva tfoot td{border-top-color:#e4e4e6}.duet-table-striped.duet-table-flattened tbody:not(:first-of-type) th{padding-top:20px !important}.duet-table-striped.duet-table-flattened tr{padding:20px !important}.duet-table-striped.duet-table-flattened tfoot td{border-top:0}.duet-table-striped.duet-table-flattened tfoot tr{border-top:1px solid #e1e3e6}.duet-table-striped.duet-table-flattened.duet-theme-turva tfoot tr{border-top-color:#e4e4e6}.duet-table-fixed th,.duet-table-minimal th,.duet-table-plain th{padding:16px !important;border-bottom:1px solid #657787}.duet-table-fixed th:first-child,.duet-table-minimal th:first-child,.duet-table-plain th:first-child{padding-left:0 !important}.duet-table-fixed th:last-child,.duet-table-minimal th:last-child,.duet-table-plain th:last-child{padding-right:0 !important}.duet-theme-turva.duet-table-fixed th,.duet-theme-turva.duet-table-minimal th,.duet-theme-turva.duet-table-plain th{border-bottom-color:#444445}.duet-table-fixed tbody th,.duet-table-minimal tbody th,.duet-table-plain tbody th{padding-top:40px !important;border-bottom-color:#e1e3e6}.duet-theme-turva.duet-table-fixed tbody th,.duet-theme-turva.duet-table-minimal tbody th,.duet-theme-turva.duet-table-plain tbody th{border-bottom-color:#e4e4e6}.duet-table-fixed td,.duet-table-minimal td,.duet-table-plain td{padding:16px !important}.duet-table-fixed td:first-child,.duet-table-minimal td:first-child,.duet-table-plain td:first-child{padding-left:0 !important}.duet-table-fixed td:last-child,.duet-table-minimal td:last-child,.duet-table-plain td:last-child{padding-right:0 !important}.duet-table-fixed tbody td,.duet-table-minimal tbody td,.duet-table-plain tbody td{border-bottom:1px solid #e1e3e6}.duet-theme-turva.duet-table-fixed tbody td,.duet-theme-turva.duet-table-minimal tbody td,.duet-theme-turva.duet-table-plain tbody td{border-bottom-color:#e4e4e6}.duet-table-flattened.duet-table-fixed tbody:first-of-type th,.duet-table-flattened.duet-table-minimal tbody:first-of-type th,.duet-table-flattened.duet-table-plain tbody:first-of-type th{padding-top:0 !important}.duet-table-flattened.duet-table-fixed td,.duet-table-flattened.duet-table-minimal td,.duet-table-flattened.duet-table-plain td,.duet-table-flattened.duet-table-fixed tbody th,.duet-table-flattened.duet-table-minimal tbody th,.duet-table-flattened.duet-table-plain tbody th{border-bottom:0}.duet-table-flattened.duet-table-fixed tr,.duet-table-flattened.duet-table-minimal tr,.duet-table-flattened.duet-table-plain tr{padding:20px 0 !important}.duet-table-flattened.duet-table-fixed tbody th,.duet-table-flattened.duet-table-minimal tbody th,.duet-table-flattened.duet-table-plain tbody th{padding-top:20px !important}.duet-table-flattened.duet-table-fixed tfoot td,.duet-table-flattened.duet-table-minimal tfoot td,.duet-table-flattened.duet-table-plain tfoot td{margin-bottom:4px !important}.duet-table-flattened.duet-table-fixed tbody:not(:only-of-type) tr:first-child,.duet-table-flattened.duet-table-minimal tbody:not(:only-of-type) tr:first-child,.duet-table-flattened.duet-table-plain tbody:not(:only-of-type) tr:first-child{border-bottom:0}.duet-table-plain.duet-table-flattened tbody tr{border-bottom:1px solid #e1e3e6}.duet-table-plain.duet-table-flattened.duet-theme-turva tbody tr{border-bottom-color:#e4e4e6}.duet-table-minimal tbody tr,.duet-table-minimal tbody tr td{vertical-align:top;border-bottom:0 none}.duet-table-minimal tbody tr:last-of-type,.duet-table-minimal tbody tr:last-of-type td{border-bottom:1px solid #e1e3e6}.duet-table-minimal.duet-table-flattened tbody tr,.duet-table-minimal.duet-table-flattened tbody tr td{border-bottom:0 none}.duet-table-minimal.duet-table-flattened tbody tr td[data-heading]::before{display:none}.duet-table-minimal.duet-table-flattened tfoot{border-top:1px solid #e1e3e6}.duet-table-minimal.duet-table-flattened.duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-fixed table{table-layout:fixed}.duet-table-fixed tbody tr,.duet-table-fixed tbody tr td,.duet-table-fixed tbody tr td:first-child{padding:4px !important;vertical-align:text-bottom;border-bottom:0 none}.duet-table-fixed thead{display:none}.duet-table-fixed tbody tr,.duet-table-fixed tbody tr td{border-bottom:0 none}.duet-table-fixed:not(.duet-table-flattened) tfoot{border-top:1px solid #e1e3e6}.duet-table-fixed:not(.duet-table-flattened).duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-scrollable{position:relative;width:100%;overflow-x:auto;background:linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0)), linear-gradient(-90deg, #fff 0%, rgba(255, 255, 255, 0)) 100% 0, radial-gradient(farthest-side at 0% 50%, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0)), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0)) 100% 0%;background-repeat:no-repeat;background-attachment:local, local, scroll, scroll;background-size:100px 100%, 100px 100%, 12px 100%, 12px 100%}.duet-table-selected-column{background:rgba(0, 119, 179, 0.08)}.duet-theme-turva .duet-table-selected-column{background:rgba(68, 68, 69, 0.08)}";
15228
+ const duetTableCss = "duet-table{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:20px !important;display:block;font-variant-numeric:tabular-nums}duet-table table,duet-table thead,duet-table tbody,duet-table tfoot,duet-table th,duet-table td,duet-table tr{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}duet-table.duet-m-0{margin:0 !important}duet-table table{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;text-align:left;border-spacing:0;border-collapse:separate}duet-table.duet-theme-turva table{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}duet-table td{-webkit-hyphens:auto;hyphens:auto;color:#00294d}duet-table.duet-theme-turva td{color:#171c3a}duet-table th{font-weight:600;line-height:1.25;color:#657787;text-align:left}duet-table.duet-theme-turva th{color:#747475}duet-table tbody th{font-weight:600;color:#00294d}duet-table.duet-theme-turva tbody th{color:#171c3a}duet-table .duet-table-action-row td:last-child{justify-self:end;padding-right:20px !important;white-space:nowrap}.duet-table-flattened tbody tr{display:grid;grid-template-columns:repeat(2, 1fr);grid-auto-rows:auto;gap:10px}.duet-table-flattened tbody tr.duet-table-action-row td:last-child::before{padding:0;content:\"\"}.duet-table-flattened thead tr{position:absolute !important;top:0;width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}.duet-table-flattened td{grid-column:1/2;line-height:1.25}.duet-table-flattened td:not(:last-child){margin-bottom:16px !important}.duet-table-flattened td:first-child{grid-row:1;grid-column:1}.duet-table-flattened td:last-child{grid-row:1;grid-column:2}.duet-table-flattened tbody td,.duet-table-flattened tbody th,.duet-table-flattened tfoot td{padding:0 !important;text-align:left !important}.duet-table-flattened tbody th{font-weight:600;line-height:1.25;color:#657787;text-align:left}.duet-table-flattened td[data-heading]::before{margin-bottom:4px !important;display:block;font-size:1rem;font-weight:600;color:#00294d;content:attr(data-heading)}.duet-table-flattened.duet-theme-turva td[data-heading]::before{color:#171c3a}.duet-table-sticky thead th{position:sticky;top:0;background:white}.duet-table-striped td,.duet-table-striped th{padding:20px !important}@media (max-width: 35.9375em){.duet-table-striped td,.duet-table-striped th{padding:20px 12px !important}}.duet-table-striped tbody th{background:white}.duet-table-striped.duet-table-sticky thead th{border-bottom:1px solid #e1e3e6}.duet-table-striped.duet-table-sticky.duet-theme-turva thead th{border-bottom-color:#e4e4e6}.duet-table-striped tbody:not(:first-of-type) th{padding-top:40px !important}.duet-table-striped tbody:only-of-type tr:nth-of-type(odd){background:rgba(0, 80, 128, 0.04)}.duet-table-striped.duet-theme-turva tbody:only-of-type tr:nth-of-type(odd){background:rgba(23, 28, 58, 0.04)}.duet-table-striped tbody:not(:only-of-type) tr:nth-of-type(even){background:rgba(0, 80, 128, 0.04)}.duet-table-striped.duet-theme-turva tbody:not(:only-of-type) tr:nth-of-type(even){background:rgba(23, 28, 58, 0.04)}.duet-table-striped tfoot td{border-top:1px solid #e1e3e6}.duet-table-striped.duet-theme-turva tfoot td{border-top-color:#e4e4e6}.duet-table-striped.duet-table-flattened tbody:not(:first-of-type) th{padding-top:20px !important}.duet-table-striped.duet-table-flattened tr{padding:20px !important}.duet-table-striped.duet-table-flattened tfoot td{border-top:0}.duet-table-striped.duet-table-flattened tfoot tr{border-top:1px solid #e1e3e6}.duet-table-striped.duet-table-flattened.duet-theme-turva tfoot tr{border-top-color:#e4e4e6}.duet-table-fixed th,.duet-table-minimal th,.duet-table-plain th{padding:16px !important;border-bottom:1px solid #657787}.duet-table-fixed th:first-child,.duet-table-minimal th:first-child,.duet-table-plain th:first-child{padding-left:0 !important}.duet-table-fixed th:last-child,.duet-table-minimal th:last-child,.duet-table-plain th:last-child{padding-right:0 !important}.duet-theme-turva.duet-table-fixed th,.duet-theme-turva.duet-table-minimal th,.duet-theme-turva.duet-table-plain th{border-bottom-color:#444445}.duet-table-fixed tbody th,.duet-table-minimal tbody th,.duet-table-plain tbody th{padding-top:40px !important;border-bottom-color:#e1e3e6}.duet-theme-turva.duet-table-fixed tbody th,.duet-theme-turva.duet-table-minimal tbody th,.duet-theme-turva.duet-table-plain tbody th{border-bottom-color:#e4e4e6}.duet-table-fixed td,.duet-table-minimal td,.duet-table-plain td{padding:16px !important}.duet-table-fixed td:first-child,.duet-table-minimal td:first-child,.duet-table-plain td:first-child{padding-left:0 !important}.duet-table-fixed td:last-child,.duet-table-minimal td:last-child,.duet-table-plain td:last-child{padding-right:0 !important}.duet-table-fixed tbody td,.duet-table-minimal tbody td,.duet-table-plain tbody td{border-bottom:1px solid #e1e3e6}.duet-theme-turva.duet-table-fixed tbody td,.duet-theme-turva.duet-table-minimal tbody td,.duet-theme-turva.duet-table-plain tbody td{border-bottom-color:#e4e4e6}.duet-table-flattened.duet-table-fixed tbody:first-of-type th,.duet-table-flattened.duet-table-minimal tbody:first-of-type th,.duet-table-flattened.duet-table-plain tbody:first-of-type th{padding-top:0 !important}.duet-table-flattened.duet-table-fixed td,.duet-table-flattened.duet-table-minimal td,.duet-table-flattened.duet-table-plain td,.duet-table-flattened.duet-table-fixed tbody th,.duet-table-flattened.duet-table-minimal tbody th,.duet-table-flattened.duet-table-plain tbody th{border-bottom:0}.duet-table-flattened.duet-table-fixed tr,.duet-table-flattened.duet-table-minimal tr,.duet-table-flattened.duet-table-plain tr{padding:20px 0 !important}.duet-table-flattened.duet-table-fixed tbody th,.duet-table-flattened.duet-table-minimal tbody th,.duet-table-flattened.duet-table-plain tbody th{padding-top:20px !important}.duet-table-flattened.duet-table-fixed tfoot td,.duet-table-flattened.duet-table-minimal tfoot td,.duet-table-flattened.duet-table-plain tfoot td{margin-bottom:4px !important}.duet-table-flattened.duet-table-fixed tbody:not(:only-of-type) tr:first-child,.duet-table-flattened.duet-table-minimal tbody:not(:only-of-type) tr:first-child,.duet-table-flattened.duet-table-plain tbody:not(:only-of-type) tr:first-child{border-bottom:0}.duet-table-plain.duet-table-flattened tbody tr{border-bottom:1px solid #e1e3e6}.duet-table-plain.duet-table-flattened.duet-theme-turva tbody tr{border-bottom-color:#e4e4e6}.duet-table-minimal tbody tr,.duet-table-minimal tbody tr td{vertical-align:top;border-bottom:0 none}.duet-table-minimal tbody tr:last-of-type,.duet-table-minimal tbody tr:last-of-type td{border-bottom:1px solid #e1e3e6}.duet-table-minimal.duet-table-flattened tbody tr,.duet-table-minimal.duet-table-flattened tbody tr td{border-bottom:0 none}.duet-table-minimal.duet-table-flattened tbody tr td[data-heading]::before{display:none}.duet-table-minimal.duet-table-flattened tfoot{border-top:1px solid #e1e3e6}.duet-table-minimal.duet-table-flattened.duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-fixed table{table-layout:fixed}.duet-table-fixed tbody tr,.duet-table-fixed tbody tr td,.duet-table-fixed tbody tr td:first-child{padding:4px !important;vertical-align:text-bottom;border-bottom:0 none}.duet-table-fixed thead{display:none}.duet-table-fixed tbody tr,.duet-table-fixed tbody tr td{border-bottom:0 none}.duet-table-fixed:not(.duet-table-flattened) tfoot{border-top:1px solid #e1e3e6}.duet-table-fixed:not(.duet-table-flattened).duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-scrollable{position:relative;width:100%;overflow-x:auto;background:linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0)), linear-gradient(-90deg, #fff 0%, rgba(255, 255, 255, 0)) 100% 0, radial-gradient(farthest-side at 0% 50%, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0)), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0)) 100% 0%;background-repeat:no-repeat;background-attachment:local, local, scroll, scroll;background-size:100px 100%, 100px 100%, 12px 100%, 12px 100%}.duet-table-selected-column{background:rgba(0, 119, 179, 0.08)}.duet-theme-turva .duet-table-selected-column{background:rgba(68, 68, 69, 0.08)}.duet-table-sortable tbody tr td:first-child,.duet-table-sortable thead tr th:first-child{padding:20px}.duet-table-sortable:not(.duet-table-flattened) tfoot{border-top:1px solid #e1e3e6}.duet-table-sortable:not(.duet-table-flattened).duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-actions table{table-layout:auto}.duet-table-actions thead th:last-child{width:1px;white-space:nowrap}";
15176
15229
 
15177
15230
  // remove wrapping speech marks.
15178
15231
  // media query tokens are wrapped in speech marks,
@@ -15193,6 +15246,11 @@ const stickyTopValues = {
15193
15246
  "with-links": parseFloat(sizeNavigation) * 16,
15194
15247
  "without-links": parseFloat(sizeHeader) * 16,
15195
15248
  };
15249
+ /**
15250
+ * @slot dot-menu- If this slot is populated - the content will be displayed together with a ... type menu to the far right in the tsble header
15251
+ * @slot header - Header slot for the table
15252
+ * @slot footer - Footer slot for the table
15253
+ */
15196
15254
  class DuetTable {
15197
15255
  constructor(hostRef) {
15198
15256
  registerInstance(this, hostRef);
@@ -15257,6 +15315,9 @@ class DuetTable {
15257
15315
  return;
15258
15316
  }
15259
15317
  }
15318
+ /**
15319
+ * Local methods.
15320
+ */
15260
15321
  copyHeadingsToCells() {
15261
15322
  const headingElements = this.element.querySelectorAll("thead th");
15262
15323
  const rowElements = this.element.querySelectorAll("tbody tr");
@@ -16274,7 +16335,7 @@ const validateFile = (item, validators) => {
16274
16335
  if (item) {
16275
16336
  const { name, type, size } = item;
16276
16337
  const mime = validateFileMime(type, allowedMimetypes);
16277
- const ext = validateFileExtension(name, allowedExtensions);
16338
+ const ext = validateFileExtension(name.toLowerCase(), allowedExtensions);
16278
16339
  const bytes = validateFileSize(size, maxBytes);
16279
16340
  if (!mime) {
16280
16341
  errorMessage = getError("duet-upload-101");
@@ -16354,7 +16415,7 @@ const makeXhrRequest = ({ payload, options, onFailure, onSuccess, onProgress })
16354
16415
  return xhr;
16355
16416
  };
16356
16417
 
16357
- const duetUploadCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-upload,*.sc-duet-upload::after,*.sc-duet-upload::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-upload-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@::slotted([slot=header])*/.sc-duet-upload-s>[slot=header]{margin-bottom:16px}/*!@::slotted([slot=fileheader])*/.sc-duet-upload-s>[slot=fileheader]{margin:16px 0 0 0}/*!@::slotted([slot=filefooter])*/.sc-duet-upload-s>[slot=filefooter]{margin-top:16px}/*!@.duet-upload*/.duet-upload.sc-duet-upload{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@.duet-upload-item-size*/.duet-upload-item-size.sc-duet-upload{font-size:0.75rem;font-weight:400}/*!@.duet-upload-filelist*/.duet-upload-filelist.sc-duet-upload{margin-bottom:25px}/*!@.duet-upload-filelist-empty*/.duet-upload-filelist-empty.sc-duet-upload{display:flex;align-items:center;justify-content:center;width:100%;height:75px;margin:0 auto;font-size:1rem;font-weight:400;background-color:#f5f8fa}";
16418
+ const duetUploadCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-upload,*.sc-duet-upload::after,*.sc-duet-upload::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-upload-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@::slotted([slot=header])*/.sc-duet-upload-s>[slot=header]{margin-bottom:16px}/*!@::slotted([slot=fileheader])*/.sc-duet-upload-s>[slot=fileheader]{margin:16px 0 0 0}/*!@::slotted([slot=filefooter])*/.sc-duet-upload-s>[slot=filefooter]{margin-top:16px}/*!@.duet-upload*/.duet-upload.sc-duet-upload{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@.duet-upload-item-size*/.duet-upload-item-size.sc-duet-upload{font-size:0.75rem;font-weight:400}/*!@.duet-upload-filelist*/.duet-upload-filelist.sc-duet-upload{margin-bottom:25px}/*!@.duet-upload-filelist-empty*/.duet-upload-filelist-empty.sc-duet-upload{display:flex;align-items:center;justify-content:center;width:100%;height:75px;margin:0 auto;font-size:1rem;font-weight:400;background-color:#f5f8fa}/*!@.duet-upload-editable-table-header-hidden*/.duet-upload-editable-table-header-hidden.sc-duet-upload{display:none}/*!@.duet-upload-editable-table tbody .duet-upload-editable-table-data*/.duet-upload-editable-table.sc-duet-upload tbody.sc-duet-upload .duet-upload-editable-table-data.sc-duet-upload{padding:0 !important;border:0}/*!@.duet-upload-editable-table duet-editable-table tfoot,\n.duet-upload-editable-table duet-editable-table thead*/.duet-upload-editable-table.sc-duet-upload duet-editable-table.sc-duet-upload tfoot.sc-duet-upload,.duet-upload-editable-table.sc-duet-upload duet-editable-table.sc-duet-upload thead.sc-duet-upload{display:none}/*!@.duet-upload-editable-table duet-editable-table .duet-editable-table-content*/.duet-upload-editable-table.sc-duet-upload duet-editable-table.sc-duet-upload .duet-editable-table-content.sc-duet-upload{padding-right:0 !important;padding-left:0 !important}/*!@.duet-upload-editable-table duet-editable-table duet-table .duet-table-action-row td*/.duet-upload-editable-table.sc-duet-upload duet-editable-table.sc-duet-upload duet-table.sc-duet-upload .duet-table-action-row.sc-duet-upload td.sc-duet-upload{padding:0.75rem 0 !important}/*!@.duet-upload-editable-table duet-editable-table duet-table .duet-table-action-row td:last-child*/.duet-upload-editable-table.sc-duet-upload duet-editable-table.sc-duet-upload duet-table.sc-duet-upload .duet-table-action-row.sc-duet-upload td.sc-duet-upload:last-child{padding-right:0 !important}/*!@.duet-upload-editable-table duet-editable-table .duet-editable-table-row-inprogress duet-action-button::part(button)*/.duet-upload-editable-table.sc-duet-upload duet-editable-table.sc-duet-upload .duet-editable-table-row-inprogress.sc-duet-upload duet-action-button.sc-duet-upload::part(button){border:0}";
16358
16419
 
16359
16420
  /**
16360
16421
  * @slot header - named slot - to place content after description / caption
@@ -16376,25 +16437,6 @@ class DuetUpload {
16376
16437
  this.duetCancel = createEvent$2(this, "duetCancel", 3);
16377
16438
  this.duetProgress = createEvent$2(this, "duetProgress", 3);
16378
16439
  this.duetUpload = createEvent$2(this, "duetUpload", 3);
16379
- /**
16380
- * Own Properties
16381
- */
16382
- this.buttonId = createID("DuetButton");
16383
- this.labelId = createID("DuetLabel");
16384
- this.uploadId = createID("DuetUpload");
16385
- this.editableTableId = createID("DuetEditableTable");
16386
- this.filesInProgress = new Map();
16387
- this.fileMaxReached = false;
16388
- this.bytesMaxReached = false;
16389
- this.internalStatusMessageLabel = undefined;
16390
- /**
16391
- * Properties
16392
- */
16393
- this.DefaultGroups = {
16394
- inprogress: "inprogress",
16395
- success: "success",
16396
- failure: "failure",
16397
- };
16398
16440
  /**
16399
16441
  * State() variables
16400
16442
  */
@@ -16416,8 +16458,9 @@ class DuetUpload {
16416
16458
  {
16417
16459
  icon: "action-delete",
16418
16460
  color: "color-danger",
16419
- color_hover: "primary-dark",
16420
- id: "delete",
16461
+ size: "x-small",
16462
+ background: "gray-lightest",
16463
+ name: "delete",
16421
16464
  map: ["success", "failure"],
16422
16465
  label: {
16423
16466
  fi: "Poista tiedosto",
@@ -16428,8 +16471,9 @@ class DuetUpload {
16428
16471
  {
16429
16472
  icon: "navigation-close",
16430
16473
  color: "primary",
16431
- color_hover: "primary-dark",
16432
- id: "cancel",
16474
+ size: "x-small",
16475
+ background: "gray-lightest",
16476
+ name: "cancel",
16433
16477
  map: ["inprogress"],
16434
16478
  label: {
16435
16479
  fi: "Keskeytä lähetys",
@@ -16499,8 +16543,8 @@ class DuetUpload {
16499
16543
  inProgressWithErrors: "Uploading {filesInProgress}, {filesUploaded} uploaded of {filesTotal}, {filesWithErrors} failed",
16500
16544
  done: "All {filesTotal} added successfully",
16501
16545
  doneWithErrors: "Action completed, {filesUploaded} has been added successfully, {filesWithErrors} had errors",
16502
- files: "tiedostoa",
16503
- file: "tiedosto",
16546
+ files: "File",
16547
+ file: "file",
16504
16548
  },
16505
16549
  };
16506
16550
  /**
@@ -16655,19 +16699,72 @@ class DuetUpload {
16655
16699
  * by default this is off, setting this to true will limit the users choices to what has been explicitly set
16656
16700
  */
16657
16701
  this.limitSelection = false;
16702
+ /**
16703
+ * Own Properties
16704
+ */
16705
+ this.buttonId = createID("DuetButton");
16706
+ this.labelId = createID("DuetLabel");
16707
+ this.uploadId = createID("DuetUpload");
16708
+ this.filesInProgress = new Map();
16709
+ this.fileMaxReached = false;
16710
+ this.bytesMaxReached = false;
16711
+ this.internalStatusMessageLabel = undefined;
16712
+ /**
16713
+ * Properties
16714
+ */
16715
+ this.DefaultGroups = {
16716
+ inprogress: "inprogress",
16717
+ success: "success",
16718
+ failure: "failure",
16719
+ };
16720
+ /**
16721
+ * Array of group names that you want the editable table to use to display files
16722
+ * @required
16723
+ * @example [{ id: "success", label: {fi: "Onnistunut", en: "Success", sv: "Alt klart", }}]
16724
+ */
16725
+ this.groups = [
16726
+ {
16727
+ id: this.DefaultGroups.inprogress,
16728
+ label: {
16729
+ fi: "Kesken olevat tiedostot",
16730
+ sv: "Filer inprogress",
16731
+ en: "Files inprogress",
16732
+ },
16733
+ },
16734
+ {
16735
+ id: this.DefaultGroups.success,
16736
+ label: {
16737
+ fi: "Valmiit tiedostot",
16738
+ sv: "Files success",
16739
+ en: "Files success",
16740
+ },
16741
+ },
16742
+ {
16743
+ id: this.DefaultGroups.failure,
16744
+ label: {
16745
+ fi: "Tiedostot, joissa on virheitä",
16746
+ sv: "Filer med fel",
16747
+ en: "Files with errors",
16748
+ },
16749
+ },
16750
+ ];
16751
+ this.kick = debounce(() => {
16752
+ this.tick = Date.now();
16753
+ }, 30); // will trigger re-render
16658
16754
  /**
16659
16755
  * Private functions
16660
16756
  */
16661
16757
  this.listenForActionEvents = () => {
16662
- this.element.addEventListener("duetEditableItemAction", (e) => {
16758
+ this.element.addEventListener("duetActionEvent", (e) => {
16663
16759
  const detail = e.detail;
16664
- const { action, keyName, originalEvent } = detail;
16760
+ const { action, id, originalEvent } = detail;
16761
+ console.log(e);
16665
16762
  switch (action) {
16666
16763
  case "delete":
16667
- this.onDelete(keyName, originalEvent);
16764
+ this.onDelete(id, originalEvent);
16668
16765
  break;
16669
16766
  case "cancel":
16670
- this.onCancel(keyName, originalEvent);
16767
+ this.onCancel(id, originalEvent);
16671
16768
  break;
16672
16769
  // code block
16673
16770
  }
@@ -16724,24 +16821,6 @@ class DuetUpload {
16724
16821
  return "none";
16725
16822
  }
16726
16823
  };
16727
- this.convertToDuetEditableTableItems = () => {
16728
- // we're always recreating the map - in order to force an update down stream.
16729
- const itemData = new Map();
16730
- //walk the files Map and convert to DuetEditableTableItemData
16731
- this.files.forEach((data, key, _originalMap) => {
16732
- const group = this.getGroupFromItemData(data);
16733
- const item = this.getItemHTMLFromItemData(data, group);
16734
- itemData.set(key, {
16735
- uid: data.uid,
16736
- item,
16737
- group,
16738
- });
16739
- });
16740
- return itemData;
16741
- };
16742
- this.kick = debounce(() => {
16743
- this.tick = Date.now();
16744
- }, 30); // will trigger re-render
16745
16824
  this.genHashName = () => Date.now().toString(36) + Math.random();
16746
16825
  this.updateValueInMap = (item, key, value, kick = true) => {
16747
16826
  const fileItem = this.files.get(item);
@@ -16802,7 +16881,6 @@ class DuetUpload {
16802
16881
  this.nativeInput.value = "";
16803
16882
  };
16804
16883
  this.startUpload = async (ev, metaData = undefined) => {
16805
- await this.setFocus();
16806
16884
  this.metaData = metaData;
16807
16885
  this.nativeInput.click();
16808
16886
  this.onUpload(ev, metaData);
@@ -16865,9 +16943,18 @@ class DuetUpload {
16865
16943
  fileMaxReached: isTotalFileAmountAboveMax,
16866
16944
  };
16867
16945
  };
16946
+ this.getItemFromUID = (uid) => {
16947
+ for (const [key, value] of this.files.entries()) {
16948
+ if (value.uid === uid) {
16949
+ return { value, key };
16950
+ }
16951
+ }
16952
+ return null;
16953
+ };
16868
16954
  this.onDelete = (key, ev) => {
16869
- const deletedItem = this.files.get(key);
16870
- this.files.delete(key);
16955
+ const retrievedKey = this.getItemFromUID(key).key;
16956
+ const deletedItem = this.files.get(retrievedKey);
16957
+ this.files.delete(retrievedKey);
16871
16958
  this.validateTotals();
16872
16959
  this.kick();
16873
16960
  this.duetDelete.emit({
@@ -16881,8 +16968,9 @@ class DuetUpload {
16881
16968
  this.resetFormFields();
16882
16969
  };
16883
16970
  this.onCancel = (key, ev) => {
16884
- const cancelledItem = this.files.get(key);
16885
- this.files.delete(key);
16971
+ const retrievedKey = this.getItemFromUID(key).key;
16972
+ const cancelledItem = this.files.get(retrievedKey);
16973
+ this.files.delete(retrievedKey);
16886
16974
  if (!this.external) {
16887
16975
  const { xhr } = cancelledItem;
16888
16976
  xhr.abort();
@@ -16932,6 +17020,79 @@ class DuetUpload {
16932
17020
  data: { files: this.files },
16933
17021
  });
16934
17022
  };
17023
+ /**
17024
+ * @description This functions return sorted map items byg condition which are:
17025
+ */
17026
+ this.filterMap = () => {
17027
+ const all = [...this.files.values()];
17028
+ const inprogress = [];
17029
+ const failure = [];
17030
+ const success = [];
17031
+ all.forEach(data => {
17032
+ const group = this.getGroupFromItemData(data);
17033
+ const item = this.getItemHTMLFromItemData(data, group);
17034
+ if (group === this.DefaultGroups.success) {
17035
+ success.push({
17036
+ uid: data.uid,
17037
+ item,
17038
+ group,
17039
+ });
17040
+ }
17041
+ else if (group === this.DefaultGroups.inprogress) {
17042
+ inprogress.push({
17043
+ uid: data.uid,
17044
+ item,
17045
+ group,
17046
+ });
17047
+ }
17048
+ else if (group === this.DefaultGroups.failure) {
17049
+ failure.push({
17050
+ uid: data.uid,
17051
+ item,
17052
+ group,
17053
+ });
17054
+ }
17055
+ else if (data.group) {
17056
+ inprogress.push({
17057
+ uid: data.uid,
17058
+ item,
17059
+ group: data.group,
17060
+ });
17061
+ }
17062
+ });
17063
+ return {
17064
+ inprogress,
17065
+ failure,
17066
+ success,
17067
+ };
17068
+ };
17069
+ this.getColumns = (group) => {
17070
+ return [
17071
+ {
17072
+ sort_order: 1,
17073
+ direction: 1,
17074
+ index: 0,
17075
+ key: group.id,
17076
+ label: group.label,
17077
+ },
17078
+ ];
17079
+ };
17080
+ this.getActions = (id) => {
17081
+ return this.actions.filter(item => item.map.includes(id));
17082
+ };
17083
+ this.renderEditableTableGroups = () => {
17084
+ const filteredItems = this.filterMap();
17085
+ const EditableTables = this.groups.map(group => {
17086
+ const currentItems = filteredItems[group.id];
17087
+ if (!(currentItems === null || currentItems === void 0 ? void 0 : currentItems.length)) {
17088
+ return;
17089
+ }
17090
+ return (hAsync("duet-table", { variation: "plain", breakpoint: "none", role: "log", margin: this.hideGroups ? "none" : "auto" }, hAsync("table", { class: "duet-upload-editable-table" }, hAsync("thead", { class: "duet-upload-editable-table-header" }, hAsync("tr", null, hAsync("th", { class: {
17091
+ "duet-upload-editable-table-header-hidden": this.hideGroups,
17092
+ } }, !this.hideGroups ? (getLocaleString(group.label)) : (hAsync("duet-visually-hidden", null, getLocaleString(group.label)))))), hAsync("tbody", null, hAsync("tr", null, hAsync("td", { class: "duet-upload-editable-table-data" }, hAsync("duet-editable-table", { breakpoint: "none", variation: "plain", groupId: group.id, columns: this.getColumns(group), actions: this.getActions(group.id), margin: "none", rows: currentItems })))))));
17093
+ });
17094
+ return EditableTables;
17095
+ };
16935
17096
  }
16936
17097
  watchValidHandler(newValue, oldValue) {
16937
17098
  if (newValue !== oldValue) {
@@ -16955,6 +17116,68 @@ class DuetUpload {
16955
17116
  // listen to the events from the component
16956
17117
  this.verifyValidity();
16957
17118
  }
17119
+ /**
17120
+ * Sets focus on the specified `duet-input`. Use this method instead of the global
17121
+ * `input.focus()`.
17122
+ */
17123
+ async setFocus(options) {
17124
+ if (this.nativeInput) {
17125
+ this.nativeInput.focus(options);
17126
+ }
17127
+ return;
17128
+ }
17129
+ /**
17130
+ * Method for invoking the upload sequence
17131
+ */
17132
+ async upload(metaData = undefined) {
17133
+ await this.setFocus();
17134
+ this.metaData = metaData;
17135
+ this.nativeInput.click();
17136
+ return;
17137
+ }
17138
+ /**
17139
+ * Method for forcing a render of the upload list, element.files can be changed externally
17140
+ * But it will only rerender on a new Map or a top Level change - this can be used to update
17141
+ * the tabular data if the automatic re-render is no sufficient
17142
+ */
17143
+ async refresh() {
17144
+ this.kick();
17145
+ await this.setFocus();
17146
+ }
17147
+ /**
17148
+ * Get list of files, divided in errors and valid sections
17149
+ */
17150
+ async getFiles() {
17151
+ if (!this.files || this.files.size === 0) {
17152
+ return false;
17153
+ }
17154
+ return this.getFilesAsArray();
17155
+ }
17156
+ /**
17157
+ * Convenience method for updating the value of a key:value inside an item in the files attribute
17158
+ */
17159
+ async updateValue(item, key, value) {
17160
+ this.updateValueInMap(item, key, value);
17161
+ }
17162
+ /**
17163
+ * render() function
17164
+ * Always the last one in the class.
17165
+ */
17166
+ render() {
17167
+ const identifier = this.identifier || this.uploadId;
17168
+ let caption = this.description.replace(/{maxfiles}/g, this.maxFiles.toString());
17169
+ caption = caption.replace(/{maxbytes}/g, `${Math.floor(this.maxBytes / 1024 / 1024)} MB`);
17170
+ caption = caption.replace(/{filetypes}/g, this.allowedExtensions.split(",").join(", "));
17171
+ return (hAsync(Host, { class: { "duet-m-0": this.margin === "none" } }, hAsync("duet-fieldset", { label: this.label, caption: caption }, hAsync("slot", { name: "header" }), !this.files.size && (hAsync("duet-label", { part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", theme: this.theme === "turva" ? "turva" : "default", size: "small", class: {
17172
+ "duet-upload-filelist-empty": !this.files.size,
17173
+ "duet-upload-filelist": true,
17174
+ "duet-upload-filelist-filled": this.files.size,
17175
+ }, id: this.labelId, for: identifier }, this.fileListEmpty)), !!this.files.size && hAsync("slot", { name: "fileheader" }), !!this.files.size && (hAsync("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })), !!this.files.size && this.renderEditableTableGroups(), !!this.files.size && hAsync("slot", { name: "filefooter" }), hAsync("duet-spacer", { size: "large" }), !this.hideButton && (hAsync("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle", part: this.identifier ? `${this.identifier}-button-upload` : "duet-upload-button-upload" }, this.buttonLabel)), hAsync("duet-spacer", { size: "medium" }), (this.fileMaxReached || this.bytesMaxReached) && (hAsync("duet-alert", { part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301"), this.bytesMaxReached && getI18nError("duet-upload-202"))), hAsync("duet-spacer", { size: "medium" }), hAsync("duet-visually-hidden", null, hAsync("input", { ref: input => {
17176
+ this.nativeInput = input;
17177
+ }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
17178
+ "duet-upload": true,
17179
+ }, disabled: this.disabled, "aria-hidden": "true", required: this.required, name: this.name, id: this.identifier, multiple: this.multiple, capture: "user" })))));
17180
+ }
16958
17181
  /**
16959
17182
  * XHR request utilities
16960
17183
  */
@@ -17076,68 +17299,6 @@ class DuetUpload {
17076
17299
  component: "duet-upload",
17077
17300
  });
17078
17301
  }
17079
- /**
17080
- * Sets focus on the specified `duet-input`. Use this method instead of the global
17081
- * `input.focus()`.
17082
- */
17083
- async setFocus(options) {
17084
- if (this.nativeInput) {
17085
- this.nativeInput.focus(options);
17086
- }
17087
- return;
17088
- }
17089
- /**
17090
- * Method for invoking the upload sequence
17091
- */
17092
- async upload(metaData = undefined) {
17093
- await this.setFocus();
17094
- this.metaData = metaData;
17095
- this.nativeInput.click();
17096
- return;
17097
- }
17098
- /**
17099
- * Method for forcing a render of the upload list, element.files can be changed externally
17100
- * But it will only rerender on a new Map or a top Level change - this can be used to update
17101
- * the tabular data if the automatic re-render is no sufficient
17102
- */
17103
- async refresh() {
17104
- this.kick();
17105
- await this.setFocus();
17106
- }
17107
- /**
17108
- * Get list of files, divided in errors and valid sections
17109
- */
17110
- async getFiles() {
17111
- if (!this.files || this.files.size === 0) {
17112
- return false;
17113
- }
17114
- return this.getFilesAsArray();
17115
- }
17116
- /**
17117
- * Convenience method for updating the value of a key:value inside an item in the files attribute
17118
- */
17119
- async updateValue(item, key, value) {
17120
- this.updateValueInMap(item, key, value);
17121
- }
17122
- /**
17123
- * render() function
17124
- * Always the last one in the class.
17125
- */
17126
- render() {
17127
- const identifier = this.identifier || this.uploadId;
17128
- let caption = this.description.replace(/{maxfiles}/g, this.maxFiles.toString());
17129
- caption = caption.replace(/{maxbytes}/g, `${Math.floor(this.maxBytes / 1024 / 1024)} MB`);
17130
- caption = caption.replace(/{filetypes}/g, this.allowedExtensions.split(",").join(", "));
17131
- return (hAsync(Host, { class: { "duet-m-0": this.margin === "none" } }, hAsync("duet-fieldset", { label: this.label, caption: caption }, hAsync("slot", { name: "header" }), !this.files.size && (hAsync("duet-label", { part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", theme: this.theme === "turva" ? "turva" : "default", size: "small", class: {
17132
- "duet-upload-filelist-empty": !this.files.size,
17133
- "duet-upload-filelist": true,
17134
- "duet-upload-filelist-filled": this.files.size,
17135
- }, id: this.labelId, for: identifier }, this.fileListEmpty)), !!this.files.size && hAsync("slot", { name: "fileheader" }), !!this.files.size && (hAsync("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })), !!this.files.size && (hAsync("duet-editable-table", { part: this.identifier ? `${this.identifier}-editable-table` : "duet-upload-editable-table", "aria-live": "polite", "aria-relevant": "removals", accessibleRole: "log", id: this.editableTableId, groups: this.groups, actions: this.actions, hideGroups: this.hideGroups, alignment: this.alignment, items: this.convertToDuetEditableTableItems() })), !!this.files.size && hAsync("slot", { name: "filefooter" }), hAsync("duet-spacer", { size: "large" }), !this.hideButton && (hAsync("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle", part: this.identifier ? `${this.identifier}-button-upload` : "duet-upload-button-upload" }, this.buttonLabel)), hAsync("duet-spacer", { size: "medium" }), (this.fileMaxReached || this.bytesMaxReached) && (hAsync("duet-alert", { part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301"), this.bytesMaxReached && getI18nError("duet-upload-202"))), hAsync("duet-spacer", { size: "medium" }), hAsync("duet-visually-hidden", null, hAsync("input", { ref: input => {
17136
- this.nativeInput = input;
17137
- }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
17138
- "duet-upload": true,
17139
- }, disabled: this.disabled, "aria-hidden": "true", required: this.required, name: this.name, id: this.identifier, multiple: this.multiple, capture: "user" })))));
17140
- }
17141
17302
  get element() { return getElement(this); }
17142
17303
  static get watchers() { return {
17143
17304
  "valid": ["watchValidHandler"]
@@ -17153,7 +17314,7 @@ class DuetUpload {
17153
17314
  "accessibleOwns": [1, "accessible-owns"],
17154
17315
  "external": [4],
17155
17316
  "hideButton": [4, "hide-upload-button"],
17156
- "actions": [1],
17317
+ "actions": [16],
17157
17318
  "uri": [1],
17158
17319
  "showLinks": [4, "show-links"],
17159
17320
  "caption": [1],
@@ -17167,7 +17328,6 @@ class DuetUpload {
17167
17328
  "identifier": [1],
17168
17329
  "margin": [1],
17169
17330
  "required": [4],
17170
- "groups": [1],
17171
17331
  "alignment": [1],
17172
17332
  "hideGroups": [4, "hide-table-labels"],
17173
17333
  "files": [1040],
@@ -17188,6 +17348,7 @@ class DuetUpload {
17188
17348
  "multiple": [4],
17189
17349
  "limitSelection": [4, "limit-selection"],
17190
17350
  "value": [1025],
17351
+ "groups": [16],
17191
17352
  "tick": [32],
17192
17353
  "setFocus": [64],
17193
17354
  "upload": [64],
@@ -17332,6 +17493,7 @@ class DuetVisuallyHidden {
17332
17493
  }
17333
17494
 
17334
17495
  registerComponents([
17496
+ DuetActionButton,
17335
17497
  DuetAlert,
17336
17498
  DuetBadge,
17337
17499
  DuetBreadcrumb,
@@ -17347,8 +17509,6 @@ registerComponents([
17347
17509
  DuetDatePicker,
17348
17510
  DuetDivider,
17349
17511
  DuetEditableTable,
17350
- DuetEditableTableButton,
17351
- DuetEditableTableItem,
17352
17512
  DuetEmptyState,
17353
17513
  DuetFieldset,
17354
17514
  DuetFooter,