@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
@@ -2,7 +2,7 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  const NAMESPACE = 'duet';
5
- const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.2.16"};
5
+ const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.2.19"};
6
6
 
7
7
  let scopeId;
8
8
  let contentRef;
@@ -1662,6 +1662,60 @@ const appGlobalScript = () => {
1662
1662
 
1663
1663
  const globalScripts = appGlobalScript;
1664
1664
 
1665
+ function chr4() {
1666
+ return Math.random().toString(16).slice(-4);
1667
+ }
1668
+ function createID(prefix) {
1669
+ return `${prefix}-${chr4()}${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}${chr4()}${chr4()}`;
1670
+ }
1671
+
1672
+ const debounce = (func, timeout = 250) => {
1673
+ let timer;
1674
+ return (...args) => {
1675
+ clearTimeout(timer);
1676
+ timer = setTimeout(() => {
1677
+ func.apply(undefined, args);
1678
+ }, timeout);
1679
+ };
1680
+ };
1681
+ function fieldSorter(fields) {
1682
+ return function (a, b) {
1683
+ return fields
1684
+ .map(function (o) {
1685
+ let dir = 1;
1686
+ if (o[0] === "-") {
1687
+ dir = -1;
1688
+ o = o.substring(1);
1689
+ }
1690
+ if (a[o] > b[o]) {
1691
+ return dir;
1692
+ }
1693
+ if (a[o] < b[o]) {
1694
+ return -dir;
1695
+ }
1696
+ return 0;
1697
+ })
1698
+ .reduce(function firstNonZeroValue(p, n) {
1699
+ return p ? p : n;
1700
+ }, 0);
1701
+ };
1702
+ }
1703
+
1704
+ const isArrowLeftKey = (e) => e.keyCode === 37;
1705
+ const isArrowUpKey = (e) => e.keyCode === 38;
1706
+ const isArrowRightKey = (e) => e.keyCode === 39;
1707
+ const isArrowDownKey = (e) => e.keyCode === 40;
1708
+ const isArrowKey = (e) => isArrowDownKey(e) || isArrowRightKey(e) || isArrowUpKey(e) || isArrowLeftKey(e);
1709
+ const isEscapeKey = (e) => e.key === "Escape" || e.key === "Esc" || e.keyCode === 27;
1710
+ const isBackspaceKey = (e) => e.keyCode === 8;
1711
+ const isSpaceKey = (e) => e.key === "Space" || e.keyCode === 32;
1712
+ const isPlusKey = (e) => e.key === "+" || e.keyCode === 43;
1713
+ const isMinusKey = (e) => e.key === "-" || e.keyCode === 45;
1714
+ const isQuestionKey = (e) => e.key === "?";
1715
+ const isEnterKey = (e) => e.key === "Enter" || e.keyCode === 13;
1716
+ const isKeyboardClick = (e) => isEnterKey(e) || isSpaceKey(e);
1717
+ const isNumber = (e) => (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105);
1718
+
1665
1719
  function isObject(maybeObj) {
1666
1720
  return Object.prototype.toString.call(maybeObj) === "[object Object]";
1667
1721
  }
@@ -1799,138 +1853,656 @@ const inheritGlobalTheme = (component) => {
1799
1853
  }
1800
1854
  };
1801
1855
 
1802
- const duetAlertCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%;max-height:999px;border-radius:4px;transition:opacity 300ms ease, visibility 300ms ease, transform 300ms ease, max-height 300ms ease}:host(:focus){outline:0}:host(.user-is-tabbing: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){box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}:host(.duet-alert-is-dismissed){max-height:0;visibility:hidden;opacity:0;transform:scale(0.98)}:host(.duet-alert-is-dismissed) .duet-alert{margin:0 !important}.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{padding:0 !important}.duet-alert.duet-m-0{margin:0 !important}.duet-alert.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;background:#f3f4f5;border-color:#171c3a}.duet-alert.warning{background:#fffbf4;border-color:#f7b228}.duet-alert.warning.duet-theme-turva{background:#fffaf3;border-color:#faa40f}.duet-alert.danger{background:#fdf4f7;border-color:#de2362}.duet-alert.danger.duet-theme-turva{background:#fdf4f3;border-color:#e02a0d}.duet-alert.success{background:#f2f9f7;border-color:#00875a}.duet-alert.success.duet-theme-turva{background:#f3f9f6;border-color:#08874e}.duet-alert-dismiss{position:absolute;top:2px;right:2px}.duet-alert-container{display:inline-flex;align-items:center;justify-content:center;width:100%;margin:0 auto !important}.duet-alert-container span{width:100%}.duet-alert-has-icon .duet-alert-container{margin-top:2px !important}.duet-alert-icon{display:inline-block;align-self:center;width:20px;min-width:20px;height:20px;margin:0 16px 0 0 !important}.duet-alert-icon duet-icon{width:20px;height:20px}.duet-alert-is-dismissible{padding:16px 48px 16px 16px;text-align:left}.duet-alert-is-dismissible .duet-alert-container{text-align:left}";
1856
+ const colorWarning = "rgb(247, 178, 40)";
1857
+ const colorGrayDarker = "rgb(101, 119, 135)";
1858
+ const colorGrayLighter = "rgb(245, 248, 250)";
1859
+ const colorCategoryHome = "rgb(211, 36, 131)";
1860
+ const colorPrimary = "rgb(0, 119, 179)";
1861
+ const colorCategoryVehicle = "rgb(54, 74, 129)";
1862
+ const colorSuccess = "rgb(0, 135, 90)";
1863
+ const colorCategoryFamily = "rgb(11, 114, 136)";
1864
+ const colorPrimaryLightest = "rgb(243, 249, 252)";
1865
+ const colorPrimaryLighter = "rgb(230, 242, 248)";
1866
+ const colorBrandBlue = "rgb(0, 161, 212)";
1867
+ const colorPrimaryDark = "rgb(0, 77, 128)";
1868
+ const colorGrayLightest = "rgb(255, 255, 255)";
1869
+ const colorCategoryFinance = "rgb(122, 1, 196)";
1870
+ const colorGrayDark = "rgb(144, 149, 153)";
1871
+ const colorGrayLight = "rgb(225, 227, 230)";
1872
+ const colorSecondary = "rgb(0, 41, 77)";
1873
+ const colorCategoryPet = "rgb(168, 1, 78)";
1874
+ const colorPrimaryLight = "rgb(205, 229, 241)";
1875
+ const colorCategoryTravel = "rgb(213, 66, 3)";
1876
+ const colorGray = "rgb(207, 210, 212)";
1877
+ const colorDanger = "rgb(222, 35, 98)";
1878
+ const colorGrayDarkerTurva = "rgb(68, 68, 69)";
1879
+ const colorGrayLighterTurva = "rgb(245, 245, 247)";
1880
+ const colorCategoryHomeTurva = "rgb(161, 10, 78)";
1881
+ const colorPrimaryTurva = "rgb(198, 12, 48)";
1882
+ const colorCategoryVehicleTurva = "rgb(23, 28, 58)";
1883
+ const colorSuccessTurva = "rgb(8, 135, 78)";
1884
+ const colorPrimaryLightestTurva = "rgb(252, 243, 244)";
1885
+ const colorCategoryFamilyTurva = "rgb(199, 12, 112)";
1886
+ const colorCategoryUnionTurva = "rgb(169, 69, 124)";
1887
+ const colorPrimaryLighterTurva = "rgb(249, 230, 234)";
1888
+ const colorPrimaryDarkTurva = "rgb(148, 9, 37)";
1889
+ const colorGrayLightestTurva = "rgb(255, 255, 255)";
1890
+ const colorGrayDarkTurva = "rgb(116, 116, 117)";
1891
+ const colorGrayLightTurva = "rgb(228, 228, 230)";
1892
+ const colorBrandGrayTurva = "rgb(178, 180, 179)";
1893
+ const colorSecondaryTurva = "rgb(23, 28, 58)";
1894
+ const colorPrimaryLightTurva = "rgb(244, 207, 214)";
1895
+ const colorCategoryTravelTurva = "rgb(9, 129, 148)";
1896
+ const colorGrayTurva = "rgb(207, 207, 209)";
1897
+ const colorDangerTurva = "rgb(224, 42, 13)";
1898
+ const colorWarningTurva = "rgb(250, 164, 15)";
1899
+ const colorData07 = "rgb(192, 101, 247)";
1900
+ const colorData08 = "rgb(0, 105, 191)";
1901
+ const colorData09 = "rgb(19, 120, 53)";
1902
+ const colorData10 = "rgb(179, 60, 24)";
1903
+ const colorData11 = "rgb(13, 163, 166)";
1904
+ const colorData01 = "rgb(122, 1, 196)";
1905
+ const colorData12 = "rgb(11, 114, 136)";
1906
+ const colorData02 = "rgb(0, 155, 204)";
1907
+ const colorData13 = "rgb(179, 137, 24)";
1908
+ const colorData03 = "rgb(27, 171, 75)";
1909
+ const colorData14 = "rgb(128, 98, 17)";
1910
+ const colorData04 = "rgb(255, 86, 34)";
1911
+ const colorData15 = "rgb(0, 41, 77)";
1912
+ const colorData05 = "rgb(245, 76, 154)";
1913
+ const colorData06 = "rgb(194, 21, 101)";
1914
+ const fontWeightExtraBold = "800";
1915
+ const letterSpacingHeading = "-0.01rem";
1916
+ const fontFamilyHeadingTurva = "'turva-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
1917
+ const fontFamilyTextTurva = "'turva-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
1918
+ const fontFamilyHeading = "'localtapiola-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
1919
+ const fontFamilyText = "'localtapiola-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
1920
+ const fontWeightBold = "700";
1921
+ const fontWeightNormal = "400";
1922
+ const fontWeightSemiBold = "600";
1923
+ const fontSizeXxxxLarge = "4.5rem";
1924
+ const fontSizeXxxLarge = "3rem";
1925
+ const fontSizeXxLarge = "2.25rem";
1926
+ const fontSizeXLarge = "1.5rem";
1927
+ const fontSizeLarge = "1.25rem";
1928
+ const fontSizeMedium = "1rem";
1929
+ const fontSizeSmall = "0.875rem";
1930
+ const fontSizeXSmall = "0.75rem";
1931
+ const radiusSharp = "0";
1932
+ const radiusDefault = "4px";
1933
+ const radiusCircle = "50%";
1934
+ const radiusPill = "20rem";
1935
+ const shadowTooltipTurva = "0 2px 10px 0 rgba(117, 117, 117, 0.13)";
1936
+ const shadowDefault = "0 2px 6px 0 rgba(0, 41, 77, 0.07)";
1937
+ const shadowTooltip = "0 2px 10px 0 rgba(0, 41, 77, 0.07)";
1938
+ 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)";
1939
+ const shadowModal = "0 2px 20px 0 rgba(0, 0, 0, 0.2)";
1940
+ 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)";
1941
+ const shadowHoverTurva = "0 2px 10px 0 rgba(117, 117, 117, 0.15)";
1942
+ const shadowHover = "0 2px 10px 0 rgba(0, 41, 77, 0.1)";
1943
+ const shadowDefaultTurva = "0 2px 6px 0 rgba(117, 117, 117, 0.13)";
1944
+ const spaceXxSmall = "4px";
1945
+ const spaceLarge = "20px";
1946
+ const spaceXSmall = "8px";
1947
+ const spaceXxxSmall = "2px";
1948
+ const spaceSmall = "12px";
1949
+ const spaceMedium = "16px";
1950
+ const spaceXxLarge = "36px";
1951
+ const spaceXxxxLarge = "72px";
1952
+ const spaceXxxxxLarge = "94px";
1953
+ const spaceXxxLarge = "48px";
1954
+ const spaceXLarge = "28px";
1955
+ const sizeIconXxLarge = "48px";
1956
+ const sizeFormBorder = "1px";
1957
+ const sizeStepMedium = "40px";
1958
+ const sizeButtonMinWidth = "8rem";
1959
+ const sizeHeader = "4rem";
1960
+ const sizeIconXxxLarge = "72px";
1961
+ const sizeIconXLarge = "36px";
1962
+ const sizeIconXxSmall = "10px";
1963
+ const sizeStepSmall = "30px";
1964
+ const sizeNavigation = "3rem";
1965
+ const sizeIconLarge = "30px";
1966
+ const sizeLayoutMaxWidth = "1110px";
1967
+ const sizeTappableSquare = "48px";
1968
+ const sizeIconXSmall = "16px";
1969
+ const sizeIconXxxSmall = "7px";
1970
+ const sizeButtonBorder = "2px";
1971
+ const sizeButtonTinyBorder = "1px";
1972
+ const sizeIconMedium = "24px";
1973
+ const sizeIconSmall = "20px";
1974
+ const opacity85 = "0.85";
1975
+ const opacity75 = "0.75";
1976
+ const opacity50 = "0.50";
1977
+ const opacity30 = "0.30";
1978
+ const zIndexDropdown = "600";
1979
+ const zIndexSpinner = "800";
1980
+ const zIndexDefault = "1";
1981
+ const zIndexToast = "500";
1982
+ const zIndexPopup = "950";
1983
+ const zIndexModal = "900";
1984
+ const zIndexSticky = "300";
1985
+ const zIndexMasked = "100";
1986
+ const zIndexDeep = "-999999";
1987
+ const zIndexOverlay = "700";
1988
+ const zIndexMask = "200";
1989
+ const zIndexHeader = "400";
1990
+ const lineHeightMedium = "1.5";
1991
+ const lineHeightSmall = "1.25";
1992
+ const lineHeightXSmall = "1.1";
1993
+ const transitionQuickly = "300ms ease";
1994
+ const transitionSlowly = "600ms ease";
1995
+ const mediaQueryXxSmall = "'(max-width: 22.5em)'";
1996
+ const mediaQueryXSmall = "'(max-width: 35.9375em)'";
1997
+ const mediaQuerySmall = "'(min-width: 36em)'";
1998
+ const mediaQueryMedium = "'(min-width: 48em)'";
1999
+ const mediaQueryLarge = "'(min-width: 62em)'";
2000
+ const mediaQueryXLarge = "'(min-width: 64.0625em)'";
2001
+ const mediaQueryXxLarge = "'(min-width: 76.25em)'";
2002
+ const mediaQueryXxxLarge = "'(min-width: 106.25em)'";
1803
2003
 
1804
- let DuetAlert$1 = class extends H {
1805
- constructor() {
1806
- super();
1807
- this.__registerHost();
1808
- this.__attachShadow();
1809
- this.duetDismiss = createEvent$2(this, "duetDismiss", 7);
1810
- /**
1811
- * Theme of the card.
1812
- */
1813
- this.theme = "";
1814
- /**
1815
- * State() variables
1816
- * Inlined decorator, alphabetical order.
1817
- */
1818
- this.isDismissed = false;
1819
- /**
1820
- * Property to change languageDefaults on the component.
1821
- * normally you would handle these strings on an application level and override @accessibleLabel when needed
1822
- * @default {fi: "Sulje viesti", sv: "Stäng meddelandet", en: "Close the message"}
1823
- */
1824
- this.accessibleLabelDefaults = {
1825
- fi: "Sulje viesti",
1826
- sv: "Stäng meddelandet",
1827
- en: "Close the message",
1828
- };
1829
- /**
1830
- * Adds accessible label for the dismissible alert close button.
1831
- * @default {fi: "Sulje viesti", sv: "Stäng meddelandet", en: "Close the message"}
1832
- */
1833
- this.accessibleLabel = getLocaleString(this.accessibleLabelDefaults);
1834
- /**
1835
- * Enable or disabled announcements by assistive technologies.
1836
- */
1837
- this.announcements = true;
1838
- /**
1839
- * Icon to display to the left of the content.
1840
- */
1841
- this.icon = "";
1842
- /**
1843
- * Controls the margin of the component.
1844
- */
1845
- this.margin = "auto";
1846
- /**
1847
- * Controls the padding of the component.
1848
- */
1849
- this.padding = "auto";
1850
- /**
1851
- * Style variation of the alert.
1852
- */
1853
- this.variation = "default";
1854
- /**
1855
- * Should a button be rendered to dismiss the alert?
1856
- */
1857
- this.dismissible = false;
1858
- this.handleDismiss = (ev) => {
1859
- this.isDismissed = true;
1860
- this.duetDismiss.emit({
1861
- component: "duet-alert",
1862
- originalEvent: ev,
1863
- });
1864
- };
1865
- }
1866
- /**
1867
- * Component lifecycle events.
1868
- */
1869
- componentWillLoad() {
1870
- inheritGlobalTheme(this);
1871
- }
1872
- componentDidLoad() {
1873
- if (this.autoDismiss) {
1874
- this.timeoutID = setTimeout(() => this.handleDismiss(), this.autoDismiss);
1875
- }
2004
+ const tokens$2 = /*#__PURE__*/Object.freeze({
2005
+ __proto__: null,
2006
+ colorWarning: colorWarning,
2007
+ colorGrayDarker: colorGrayDarker,
2008
+ colorGrayLighter: colorGrayLighter,
2009
+ colorCategoryHome: colorCategoryHome,
2010
+ colorPrimary: colorPrimary,
2011
+ colorCategoryVehicle: colorCategoryVehicle,
2012
+ colorSuccess: colorSuccess,
2013
+ colorCategoryFamily: colorCategoryFamily,
2014
+ colorPrimaryLightest: colorPrimaryLightest,
2015
+ colorPrimaryLighter: colorPrimaryLighter,
2016
+ colorBrandBlue: colorBrandBlue,
2017
+ colorPrimaryDark: colorPrimaryDark,
2018
+ colorGrayLightest: colorGrayLightest,
2019
+ colorCategoryFinance: colorCategoryFinance,
2020
+ colorGrayDark: colorGrayDark,
2021
+ colorGrayLight: colorGrayLight,
2022
+ colorSecondary: colorSecondary,
2023
+ colorCategoryPet: colorCategoryPet,
2024
+ colorPrimaryLight: colorPrimaryLight,
2025
+ colorCategoryTravel: colorCategoryTravel,
2026
+ colorGray: colorGray,
2027
+ colorDanger: colorDanger,
2028
+ colorGrayDarkerTurva: colorGrayDarkerTurva,
2029
+ colorGrayLighterTurva: colorGrayLighterTurva,
2030
+ colorCategoryHomeTurva: colorCategoryHomeTurva,
2031
+ colorPrimaryTurva: colorPrimaryTurva,
2032
+ colorCategoryVehicleTurva: colorCategoryVehicleTurva,
2033
+ colorSuccessTurva: colorSuccessTurva,
2034
+ colorPrimaryLightestTurva: colorPrimaryLightestTurva,
2035
+ colorCategoryFamilyTurva: colorCategoryFamilyTurva,
2036
+ colorCategoryUnionTurva: colorCategoryUnionTurva,
2037
+ colorPrimaryLighterTurva: colorPrimaryLighterTurva,
2038
+ colorPrimaryDarkTurva: colorPrimaryDarkTurva,
2039
+ colorGrayLightestTurva: colorGrayLightestTurva,
2040
+ colorGrayDarkTurva: colorGrayDarkTurva,
2041
+ colorGrayLightTurva: colorGrayLightTurva,
2042
+ colorBrandGrayTurva: colorBrandGrayTurva,
2043
+ colorSecondaryTurva: colorSecondaryTurva,
2044
+ colorPrimaryLightTurva: colorPrimaryLightTurva,
2045
+ colorCategoryTravelTurva: colorCategoryTravelTurva,
2046
+ colorGrayTurva: colorGrayTurva,
2047
+ colorDangerTurva: colorDangerTurva,
2048
+ colorWarningTurva: colorWarningTurva,
2049
+ colorData07: colorData07,
2050
+ colorData08: colorData08,
2051
+ colorData09: colorData09,
2052
+ colorData10: colorData10,
2053
+ colorData11: colorData11,
2054
+ colorData01: colorData01,
2055
+ colorData12: colorData12,
2056
+ colorData02: colorData02,
2057
+ colorData13: colorData13,
2058
+ colorData03: colorData03,
2059
+ colorData14: colorData14,
2060
+ colorData04: colorData04,
2061
+ colorData15: colorData15,
2062
+ colorData05: colorData05,
2063
+ colorData06: colorData06,
2064
+ fontWeightExtraBold: fontWeightExtraBold,
2065
+ letterSpacingHeading: letterSpacingHeading,
2066
+ fontFamilyHeadingTurva: fontFamilyHeadingTurva,
2067
+ fontFamilyTextTurva: fontFamilyTextTurva,
2068
+ fontFamilyHeading: fontFamilyHeading,
2069
+ fontFamilyText: fontFamilyText,
2070
+ fontWeightBold: fontWeightBold,
2071
+ fontWeightNormal: fontWeightNormal,
2072
+ fontWeightSemiBold: fontWeightSemiBold,
2073
+ fontSizeXxxxLarge: fontSizeXxxxLarge,
2074
+ fontSizeXxxLarge: fontSizeXxxLarge,
2075
+ fontSizeXxLarge: fontSizeXxLarge,
2076
+ fontSizeXLarge: fontSizeXLarge,
2077
+ fontSizeLarge: fontSizeLarge,
2078
+ fontSizeMedium: fontSizeMedium,
2079
+ fontSizeSmall: fontSizeSmall,
2080
+ fontSizeXSmall: fontSizeXSmall,
2081
+ radiusSharp: radiusSharp,
2082
+ radiusDefault: radiusDefault,
2083
+ radiusCircle: radiusCircle,
2084
+ radiusPill: radiusPill,
2085
+ shadowTooltipTurva: shadowTooltipTurva,
2086
+ shadowDefault: shadowDefault,
2087
+ shadowTooltip: shadowTooltip,
2088
+ shadowCardTurva: shadowCardTurva,
2089
+ shadowModal: shadowModal,
2090
+ shadowCard: shadowCard,
2091
+ shadowHoverTurva: shadowHoverTurva,
2092
+ shadowHover: shadowHover,
2093
+ shadowDefaultTurva: shadowDefaultTurva,
2094
+ spaceXxSmall: spaceXxSmall,
2095
+ spaceLarge: spaceLarge,
2096
+ spaceXSmall: spaceXSmall,
2097
+ spaceXxxSmall: spaceXxxSmall,
2098
+ spaceSmall: spaceSmall,
2099
+ spaceMedium: spaceMedium,
2100
+ spaceXxLarge: spaceXxLarge,
2101
+ spaceXxxxLarge: spaceXxxxLarge,
2102
+ spaceXxxxxLarge: spaceXxxxxLarge,
2103
+ spaceXxxLarge: spaceXxxLarge,
2104
+ spaceXLarge: spaceXLarge,
2105
+ sizeIconXxLarge: sizeIconXxLarge,
2106
+ sizeFormBorder: sizeFormBorder,
2107
+ sizeStepMedium: sizeStepMedium,
2108
+ sizeButtonMinWidth: sizeButtonMinWidth,
2109
+ sizeHeader: sizeHeader,
2110
+ sizeIconXxxLarge: sizeIconXxxLarge,
2111
+ sizeIconXLarge: sizeIconXLarge,
2112
+ sizeIconXxSmall: sizeIconXxSmall,
2113
+ sizeStepSmall: sizeStepSmall,
2114
+ sizeNavigation: sizeNavigation,
2115
+ sizeIconLarge: sizeIconLarge,
2116
+ sizeLayoutMaxWidth: sizeLayoutMaxWidth,
2117
+ sizeTappableSquare: sizeTappableSquare,
2118
+ sizeIconXSmall: sizeIconXSmall,
2119
+ sizeIconXxxSmall: sizeIconXxxSmall,
2120
+ sizeButtonBorder: sizeButtonBorder,
2121
+ sizeButtonTinyBorder: sizeButtonTinyBorder,
2122
+ sizeIconMedium: sizeIconMedium,
2123
+ sizeIconSmall: sizeIconSmall,
2124
+ opacity85: opacity85,
2125
+ opacity75: opacity75,
2126
+ opacity50: opacity50,
2127
+ opacity30: opacity30,
2128
+ zIndexDropdown: zIndexDropdown,
2129
+ zIndexSpinner: zIndexSpinner,
2130
+ zIndexDefault: zIndexDefault,
2131
+ zIndexToast: zIndexToast,
2132
+ zIndexPopup: zIndexPopup,
2133
+ zIndexModal: zIndexModal,
2134
+ zIndexSticky: zIndexSticky,
2135
+ zIndexMasked: zIndexMasked,
2136
+ zIndexDeep: zIndexDeep,
2137
+ zIndexOverlay: zIndexOverlay,
2138
+ zIndexMask: zIndexMask,
2139
+ zIndexHeader: zIndexHeader,
2140
+ lineHeightMedium: lineHeightMedium,
2141
+ lineHeightSmall: lineHeightSmall,
2142
+ lineHeightXSmall: lineHeightXSmall,
2143
+ transitionQuickly: transitionQuickly,
2144
+ transitionSlowly: transitionSlowly,
2145
+ mediaQueryXxSmall: mediaQueryXxSmall,
2146
+ mediaQueryXSmall: mediaQueryXSmall,
2147
+ mediaQuerySmall: mediaQuerySmall,
2148
+ mediaQueryMedium: mediaQueryMedium,
2149
+ mediaQueryLarge: mediaQueryLarge,
2150
+ mediaQueryXLarge: mediaQueryXLarge,
2151
+ mediaQueryXxLarge: mediaQueryXxLarge,
2152
+ mediaQueryXxxLarge: mediaQueryXxxLarge
2153
+ });
2154
+
2155
+ const allowedThemes = ["turva"];
2156
+ function isDashCase(str) {
2157
+ const dash = str.includes("-");
2158
+ const barredString = str.includes(" ") || str.includes("_");
2159
+ const barredStartingString = str.charAt(0) === "-";
2160
+ return dash && !barredString && !barredStartingString;
2161
+ }
2162
+ function capitalize(str = "") {
2163
+ return `${str.charAt(0).toUpperCase()}${str.slice(1)}`;
2164
+ }
2165
+ function lowerCaseFirst(str = "") {
2166
+ return `${str.charAt(0).toLowerCase()}${str.slice(1)}`;
2167
+ }
2168
+ function camelize(str = "") {
2169
+ const arr = str.split("-");
2170
+ //loop through each element of the array and capitalize the first letter.'
2171
+ arr.forEach((string, index) => {
2172
+ arr[index] = capitalize(string);
2173
+ });
2174
+ return arr.join("");
2175
+ }
2176
+ function getTheme(theme = "") {
2177
+ if (allowedThemes.includes(theme.toLowerCase())) {
2178
+ return theme.toLowerCase();
1876
2179
  }
1877
- disconnectedCallback() {
1878
- if (this.timeoutID) {
1879
- clearTimeout(this.timeoutID);
1880
- }
2180
+ return "";
2181
+ }
2182
+ function capitalizeFirstLetter(string) {
2183
+ return string.charAt(0).toUpperCase() + string.slice(1);
2184
+ }
2185
+ function hasType(t, str = "") {
2186
+ return str.indexOf(capitalizeFirstLetter(t)) === 0 || str.indexOf(t) === 0;
2187
+ }
2188
+ function addPrefix(prefix, str = "") {
2189
+ if (str && !isDashCase(str) && !hasType(prefix, str)) {
2190
+ return `${prefix}${capitalize(str)}`;
1881
2191
  }
1882
- /**
1883
- * render() function
1884
- * Always the last one in the class.
1885
- */
1886
- render() {
1887
- const closeColor = this.theme === "turva" ? "secondary-turva" : "secondary";
1888
- const role = this.variation === "danger" || this.variation === "warning" ? "alert" : "status";
1889
- return (h$1(Host, { tabindex: "0", class: { "duet-theme-turva": this.theme === "turva", "duet-alert-is-dismissed": this.isDismissed }, role: this.announcements ? role : undefined }, h$1("div", { class: {
1890
- "duet-alert": true,
1891
- "duet-alert-has-icon": !!this.icon,
1892
- "duet-alert-is-dismissible": this.dismissible,
1893
- "duet-p-0": this.padding === "none",
1894
- "duet-m-0": this.margin === "none",
1895
- [this.variation]: true,
1896
- "duet-theme-turva": this.theme === "turva",
1897
- } }, h$1("div", { class: "duet-alert-container" }, this.icon && (h$1("div", { class: "duet-alert-icon" }, h$1("duet-icon", { size: "auto", name: this.icon, color: "currentColor" }))), h$1("span", null, h$1("slot", null))), this.dismissible && (h$1("div", { class: "duet-alert-dismiss" }, h$1("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 }))))));
2192
+ return str;
2193
+ }
2194
+ function addTheme(str, theme) {
2195
+ const hasTheme = getTheme(theme).length;
2196
+ if (hasTheme && str.indexOf(theme) === -1) {
2197
+ return `${str}${capitalize(theme)}`;
1898
2198
  }
1899
- static get style() { return duetAlertCss; }
1900
- };
2199
+ return str;
2200
+ }
2201
+ function getColorByName(name, theme = "") {
2202
+ if (!name) {
2203
+ return undefined;
2204
+ }
2205
+ const defaultColor = convertToColorName(name);
2206
+ const themedColor = convertToColorName(name, theme);
2207
+ // lets just try to get the color first to save some cycles
2208
+ let resolvedToken = tokens$2[themedColor];
2209
+ if (!resolvedToken) {
2210
+ resolvedToken = tokens$2[defaultColor];
2211
+ }
2212
+ return resolvedToken;
2213
+ }
2214
+ function convertToColorName(name = "", theme = "") {
2215
+ let colorResolution = name;
2216
+ const dash = isDashCase(name);
2217
+ if (dash) {
2218
+ colorResolution = camelize(colorResolution);
2219
+ }
2220
+ colorResolution = addPrefix("color", colorResolution);
2221
+ colorResolution = addTheme(colorResolution, theme);
2222
+ // takes care of the case where colorPrimaryDark ends up with ColorPrimaryDark
2223
+ colorResolution = lowerCaseFirst(colorResolution);
2224
+ return colorResolution;
2225
+ }
1901
2226
 
1902
- const duetBadgeCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:4px !important;margin-bottom:2px !important;display:inline-block;width:auto;vertical-align:middle}:host:last-child,:host:last-of-type{margin-right:0 !important}:host(.duet-m-0){margin:0 !important}.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{padding:0 !important}.duet-badge.duet-m-0{margin:0 !important}.duet-badge.duet-theme-turva{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{background:#fef3df}.duet-badge.warning.duet-theme-turva{background:#fef1db}.duet-badge.danger{background:#fce9ef}.duet-badge.danger.duet-theme-turva{background:#fceae7}.duet-badge.success{background:#e6f3ef}.duet-badge.success.duet-theme-turva{background:#e6f3ed}";
2227
+ const duetActionButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}button.duet-action-button{white-space:nowrap}button.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{color:#171c3a;background:#f5f5f7}button.duet-action-button duet-icon{display:block}@media (max-width: 35.9375em){button.duet-action-button{width:32px;height:32px}}button.duet-action-button:not(:disabled):hover{background:#e9ecee !important}.duet-theme-turva button.duet-action-button:not(:disabled):hover{background:#e9e9eb !important}button.duet-action-button:focus{outline:0;box-shadow:0 0 0 2px #0077b3 !important}.duet-theme-turva button.duet-action-button:focus{box-shadow:0 0 0 2px #171c3a !important}button.duet-action-button:active:focus{background:#dddfe1 !important;box-shadow:none}.duet-theme-turva button.duet-action-button:active:focus{background:#ddddde !important}button.duet-action-button:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}.duet-theme-turva button.duet-action-button:disabled{color:#747475;background:#f5f5f7}";
1903
2228
 
1904
- let DuetBadge$1 = class extends H {
2229
+ let DuetActionButton$1 = class extends H {
1905
2230
  constructor() {
1906
2231
  super();
1907
2232
  this.__registerHost();
1908
2233
  this.__attachShadow();
2234
+ this.duetActionEvent = createEvent$2(this, "duetActionEvent", 6);
2235
+ this.numbersStore = "";
1909
2236
  /**
1910
- * Theme of the badge.
2237
+ * Theme of the pagination.
1911
2238
  */
1912
2239
  this.theme = "";
1913
2240
  /**
1914
- * Style variation of the alert.
2241
+ * Name of the icon to display
1915
2242
  */
1916
- this.variation = "default";
2243
+ this.iconName = "action-arrow-left-small";
1917
2244
  /**
1918
- * Controls the margin of the component.
2245
+ * Color of the icon to display
1919
2246
  */
1920
- this.margin = "auto";
1921
- }
1922
- /**
1923
- * Component lifecycle events.
1924
- */
1925
- componentWillLoad() {
1926
- inheritGlobalTheme(this);
1927
- }
1928
- /**
1929
- * render() function
1930
- * Always the last one of the class.
1931
- */
1932
- render() {
1933
- return (h$1(Host, { class: { "duet-m-0": this.margin === "none" } }, h$1("div", { class: {
2247
+ this.iconColor = "currentColor";
2248
+ /**
2249
+ * Size of the icon
2250
+ */
2251
+ this.iconSize = "xx-small";
2252
+ /**
2253
+ * Name of action being called
2254
+ */
2255
+ this.actionName = "default-action";
2256
+ /**
2257
+ * Name of id of action that was called being called
2258
+ */
2259
+ this.actionId = undefined;
2260
+ /**
2261
+ * Name of id of action that was called being called
2262
+ */
2263
+ this.actionMeta = undefined;
2264
+ /**
2265
+ * Disables the button
2266
+ */
2267
+ this.disabled = false;
2268
+ /**
2269
+ * Custom color to be used for the icon, as a design token entered in camelCase
2270
+ * or kebab-case. Example: "color-primary". This property can also be set to
2271
+ * "currentColor" which forces the icon to use the CSS text color of parent
2272
+ * element instead. Useful when you want to control the color in stylesheet
2273
+ * instead.
2274
+ */
2275
+ this.color = "";
2276
+ /**
2277
+ * Custom color to be used for a background, as a design token entered
2278
+ * in camelCase or kebab-case. Using this option the icon will always be resized
2279
+ * to $size-icon-medium on mobile viewports. Example: "color-primary".
2280
+ */
2281
+ this.background = "";
2282
+ /**
2283
+ * Described By id
2284
+ */
2285
+ this.ariaDescribedBy = undefined;
2286
+ /**
2287
+ * Aria description the button
2288
+ */
2289
+ this.ariaDescription = undefined;
2290
+ /**
2291
+ * Default pagination labels
2292
+ */
2293
+ this.ariaLabelsDefaults = {
2294
+ en: {
2295
+ label: "Click to activate action",
2296
+ },
2297
+ fi: {
2298
+ label: "Klikkaa toiminnon aktivointiin",
2299
+ },
2300
+ sv: {
2301
+ label: "Klicka för att aktivera åtgärd",
2302
+ },
2303
+ };
2304
+ /**
2305
+ * Default pagination labels
2306
+ */
2307
+ this.ariaLabels = getLocaleString(this.ariaLabelsDefaults);
2308
+ /**
2309
+ * Used to indicate which dom element with ID this element controls
2310
+ */
2311
+ this.ariaControls = "";
2312
+ this.listId = createID("duet-action-button");
2313
+ /**
2314
+ * Private methods.
2315
+ */
2316
+ //helper to emit relevant page events
2317
+ this.emitPageEvent = debounce(e => {
2318
+ this.duetActionEvent.emit({
2319
+ component: "duet-action-button",
2320
+ originalEvent: e,
2321
+ action: this.actionId,
2322
+ name: this.actionName,
2323
+ meta: this.actionMeta,
2324
+ id: this.listId,
2325
+ });
2326
+ });
2327
+ }
2328
+ //handle a11y keyboard navigation events
2329
+ async onKeyboardDown(e) {
2330
+ if (isKeyboardClick(e)) {
2331
+ this.emitPageEvent(e);
2332
+ }
2333
+ }
2334
+ //set update current when mouse click on page number
2335
+ async onMouseHandler(e) {
2336
+ e.preventDefault();
2337
+ this.duetActionEvent.emit({
2338
+ component: "duet-action-button",
2339
+ originalEvent: e,
2340
+ action: this.actionName,
2341
+ id: this.actionId,
2342
+ meta: this.actionMeta,
2343
+ });
2344
+ }
2345
+ /**
2346
+ * Component lifecycle events.
2347
+ */
2348
+ componentWillLoad() {
2349
+ inheritGlobalTheme(this);
2350
+ }
2351
+ /**
2352
+ * render() function
2353
+ * Always the last one in the class.
2354
+ */
2355
+ render() {
2356
+ const color = this.color === "currentColor" ? "currentColor" : getColorByName(this.color, this.theme);
2357
+ const styles = {
2358
+ color,
2359
+ background: getColorByName(this.background, this.theme),
2360
+ "border-color": getColorByName(this.iconColor, this.theme),
2361
+ "border-width": "1px",
2362
+ "border-style": "solid",
2363
+ };
2364
+ return (h$1(Host, { onKeyDown: e => this.onKeyboardDown(e) }, h$1("button", { part: "button", style: styles, disabled: this.disabled, id: this.listId, class: {
2365
+ "duet-action-button": true,
2366
+ "duet-action-button--disabled": this.disabled,
2367
+ [`duet-action-button--${this.theme}`]: this.theme !== "",
2368
+ }, type: "button", onClick: e => this.onMouseHandler(e), "aria-label": this.ariaLabels.label, "aria-description": this.ariaDescription, "aria-describedby": this.ariaDescribedBy, "aria-controls": this.ariaControls }, h$1("duet-icon", { part: "icon", name: this.iconName, color: this.iconColor, margin: "none", size: this.iconSize }), h$1("duet-visually-hidden", null, h$1("slot", null)))));
2369
+ }
2370
+ get element() { return this; }
2371
+ static get style() { return duetActionButtonCss; }
2372
+ };
2373
+
2374
+ const duetAlertCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%;max-height:999px;border-radius:4px;transition:opacity 300ms ease, visibility 300ms ease, transform 300ms ease, max-height 300ms ease}:host(:focus){outline:0}:host(.user-is-tabbing: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){box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}:host(.duet-alert-is-dismissed){max-height:0;visibility:hidden;opacity:0;transform:scale(0.98)}:host(.duet-alert-is-dismissed) .duet-alert{margin:0 !important}.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{padding:0 !important}.duet-alert.duet-m-0{margin:0 !important}.duet-alert.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;background:#f3f4f5;border-color:#171c3a}.duet-alert.warning{background:#fffbf4;border-color:#f7b228}.duet-alert.warning.duet-theme-turva{background:#fffaf3;border-color:#faa40f}.duet-alert.danger{background:#fdf4f7;border-color:#de2362}.duet-alert.danger.duet-theme-turva{background:#fdf4f3;border-color:#e02a0d}.duet-alert.success{background:#f2f9f7;border-color:#00875a}.duet-alert.success.duet-theme-turva{background:#f3f9f6;border-color:#08874e}.duet-alert-dismiss{position:absolute;top:2px;right:2px}.duet-alert-container{display:inline-flex;align-items:center;justify-content:center;width:100%;margin:0 auto !important}.duet-alert-container span{width:100%}.duet-alert-has-icon .duet-alert-container{margin-top:2px !important}.duet-alert-icon{display:inline-block;align-self:center;width:20px;min-width:20px;height:20px;margin:0 16px 0 0 !important}.duet-alert-icon duet-icon{width:20px;height:20px}.duet-alert-is-dismissible{padding:16px 48px 16px 16px;text-align:left}.duet-alert-is-dismissible .duet-alert-container{text-align:left}";
2375
+
2376
+ let DuetAlert$1 = class extends H {
2377
+ constructor() {
2378
+ super();
2379
+ this.__registerHost();
2380
+ this.__attachShadow();
2381
+ this.duetDismiss = createEvent$2(this, "duetDismiss", 7);
2382
+ /**
2383
+ * Theme of the card.
2384
+ */
2385
+ this.theme = "";
2386
+ /**
2387
+ * State() variables
2388
+ * Inlined decorator, alphabetical order.
2389
+ */
2390
+ this.isDismissed = false;
2391
+ /**
2392
+ * Property to change languageDefaults on the component.
2393
+ * normally you would handle these strings on an application level and override @accessibleLabel when needed
2394
+ * @default {fi: "Sulje viesti", sv: "Stäng meddelandet", en: "Close the message"}
2395
+ */
2396
+ this.accessibleLabelDefaults = {
2397
+ fi: "Sulje viesti",
2398
+ sv: "Stäng meddelandet",
2399
+ en: "Close the message",
2400
+ };
2401
+ /**
2402
+ * Adds accessible label for the dismissible alert close button.
2403
+ * @default {fi: "Sulje viesti", sv: "Stäng meddelandet", en: "Close the message"}
2404
+ */
2405
+ this.accessibleLabel = getLocaleString(this.accessibleLabelDefaults);
2406
+ /**
2407
+ * Enable or disabled announcements by assistive technologies.
2408
+ */
2409
+ this.announcements = true;
2410
+ /**
2411
+ * Icon to display to the left of the content.
2412
+ */
2413
+ this.icon = "";
2414
+ /**
2415
+ * Controls the margin of the component.
2416
+ */
2417
+ this.margin = "auto";
2418
+ /**
2419
+ * Controls the padding of the component.
2420
+ */
2421
+ this.padding = "auto";
2422
+ /**
2423
+ * Style variation of the alert.
2424
+ */
2425
+ this.variation = "default";
2426
+ /**
2427
+ * Should a button be rendered to dismiss the alert?
2428
+ */
2429
+ this.dismissible = false;
2430
+ this.handleDismiss = (ev) => {
2431
+ this.isDismissed = true;
2432
+ this.duetDismiss.emit({
2433
+ component: "duet-alert",
2434
+ originalEvent: ev,
2435
+ });
2436
+ };
2437
+ }
2438
+ /**
2439
+ * Component lifecycle events.
2440
+ */
2441
+ componentWillLoad() {
2442
+ inheritGlobalTheme(this);
2443
+ }
2444
+ componentDidLoad() {
2445
+ if (this.autoDismiss) {
2446
+ this.timeoutID = setTimeout(() => this.handleDismiss(), this.autoDismiss);
2447
+ }
2448
+ }
2449
+ disconnectedCallback() {
2450
+ if (this.timeoutID) {
2451
+ clearTimeout(this.timeoutID);
2452
+ }
2453
+ }
2454
+ /**
2455
+ * render() function
2456
+ * Always the last one in the class.
2457
+ */
2458
+ render() {
2459
+ const closeColor = this.theme === "turva" ? "secondary-turva" : "secondary";
2460
+ const role = this.variation === "danger" || this.variation === "warning" ? "alert" : "status";
2461
+ return (h$1(Host, { tabindex: "0", class: { "duet-theme-turva": this.theme === "turva", "duet-alert-is-dismissed": this.isDismissed }, role: this.announcements ? role : undefined }, h$1("div", { class: {
2462
+ "duet-alert": true,
2463
+ "duet-alert-has-icon": !!this.icon,
2464
+ "duet-alert-is-dismissible": this.dismissible,
2465
+ "duet-p-0": this.padding === "none",
2466
+ "duet-m-0": this.margin === "none",
2467
+ [this.variation]: true,
2468
+ "duet-theme-turva": this.theme === "turva",
2469
+ } }, h$1("div", { class: "duet-alert-container" }, this.icon && (h$1("div", { class: "duet-alert-icon" }, h$1("duet-icon", { size: "auto", name: this.icon, color: "currentColor" }))), h$1("span", null, h$1("slot", null))), this.dismissible && (h$1("div", { class: "duet-alert-dismiss" }, h$1("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 }))))));
2470
+ }
2471
+ static get style() { return duetAlertCss; }
2472
+ };
2473
+
2474
+ const duetBadgeCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:4px !important;margin-bottom:2px !important;display:inline-block;width:auto;vertical-align:middle}:host:last-child,:host:last-of-type{margin-right:0 !important}:host(.duet-m-0){margin:0 !important}.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{padding:0 !important}.duet-badge.duet-m-0{margin:0 !important}.duet-badge.duet-theme-turva{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{background:#fef3df}.duet-badge.warning.duet-theme-turva{background:#fef1db}.duet-badge.danger{background:#fce9ef}.duet-badge.danger.duet-theme-turva{background:#fceae7}.duet-badge.success{background:#e6f3ef}.duet-badge.success.duet-theme-turva{background:#e6f3ed}";
2475
+
2476
+ let DuetBadge$1 = class extends H {
2477
+ constructor() {
2478
+ super();
2479
+ this.__registerHost();
2480
+ this.__attachShadow();
2481
+ /**
2482
+ * Theme of the badge.
2483
+ */
2484
+ this.theme = "";
2485
+ /**
2486
+ * Style variation of the alert.
2487
+ */
2488
+ this.variation = "default";
2489
+ /**
2490
+ * Controls the margin of the component.
2491
+ */
2492
+ this.margin = "auto";
2493
+ }
2494
+ /**
2495
+ * Component lifecycle events.
2496
+ */
2497
+ componentWillLoad() {
2498
+ inheritGlobalTheme(this);
2499
+ }
2500
+ /**
2501
+ * render() function
2502
+ * Always the last one of the class.
2503
+ */
2504
+ render() {
2505
+ return (h$1(Host, { class: { "duet-m-0": this.margin === "none" } }, h$1("div", { class: {
1934
2506
  "duet-badge": true,
1935
2507
  [this.variation]: true,
1936
2508
  "duet-theme-turva": this.theme === "turva",
@@ -1996,418 +2568,50 @@ let DuetBreadcrumbs$1 = class extends H {
1996
2568
  /**
1997
2569
  * Theme
1998
2570
  */
1999
- this.theme = "";
2000
- }
2001
- /**
2002
- * Component lifecycle events.
2003
- */
2004
- componentWillLoad() {
2005
- inheritGlobalTheme(this);
2006
- this.children = Array.from(this.element.children);
2007
- }
2008
- connectedCallback() {
2009
- Array.from(this.element.children).forEach(child => {
2010
- const observer = new MutationObserver(() => (this.children = Array.from(this.element.children)));
2011
- observer.observe(child, {
2012
- childList: true,
2013
- subtree: true,
2014
- attributes: true,
2015
- characterData: true,
2016
- });
2017
- this.observers = [...this.observers, observer];
2018
- });
2019
- }
2020
- disconnectedCallback() {
2021
- this.observers.forEach(observer => observer.disconnect());
2022
- this.observers = [];
2023
- }
2024
- /**
2025
- * render() function
2026
- * Always the last one in the class.
2027
- */
2028
- render() {
2029
- return (h$1(Host, null, h$1("nav", { "aria-label": this.breadcrumbsAriaLabel, class: {
2030
- "duet-breadcrumbs": true,
2031
- "duet-theme-turva": this.theme === "turva",
2032
- } }, h$1("ol", null, this.children.map((child, index) => (h$1(Fragment, null, index > 0 && (h$1("li", { "aria-hidden": "true" }, h$1("duet-icon", { class: "duet-breadrumbs-arrow", size: "auto", icon: actionArrowRightSmall.svg, margin: "none", color: "currentColor" }))), h$1("li", { innerHTML: child.outerHTML }), h$1("div", { class: "hide" }, h$1("slot", null)))))))));
2033
- }
2034
- get element() { return this; }
2035
- static get style() { return duetBreadcrumbsCss; }
2036
- };
2037
-
2038
- const DuetStringsExternalDefaults = {
2039
- fi: "Avautuu uuteen ikkunaan",
2040
- sv: "Öppnas i nytt fönster",
2041
- en: "Opens in a new window",
2042
- };
2043
-
2044
- const colorWarning = "rgb(247, 178, 40)";
2045
- const colorGrayDarker = "rgb(101, 119, 135)";
2046
- const colorGrayLighter = "rgb(245, 248, 250)";
2047
- const colorCategoryHome = "rgb(211, 36, 131)";
2048
- const colorPrimary = "rgb(0, 119, 179)";
2049
- const colorCategoryVehicle = "rgb(54, 74, 129)";
2050
- const colorSuccess = "rgb(0, 135, 90)";
2051
- const colorCategoryFamily = "rgb(11, 114, 136)";
2052
- const colorPrimaryLightest = "rgb(243, 249, 252)";
2053
- const colorPrimaryLighter = "rgb(230, 242, 248)";
2054
- const colorBrandBlue = "rgb(0, 161, 212)";
2055
- const colorPrimaryDark = "rgb(0, 77, 128)";
2056
- const colorGrayLightest = "rgb(255, 255, 255)";
2057
- const colorCategoryFinance = "rgb(122, 1, 196)";
2058
- const colorGrayDark = "rgb(144, 149, 153)";
2059
- const colorGrayLight = "rgb(225, 227, 230)";
2060
- const colorSecondary = "rgb(0, 41, 77)";
2061
- const colorCategoryPet = "rgb(168, 1, 78)";
2062
- const colorPrimaryLight = "rgb(205, 229, 241)";
2063
- const colorCategoryTravel = "rgb(213, 66, 3)";
2064
- const colorGray = "rgb(207, 210, 212)";
2065
- const colorDanger = "rgb(222, 35, 98)";
2066
- const colorGrayDarkerTurva = "rgb(68, 68, 69)";
2067
- const colorGrayLighterTurva = "rgb(245, 245, 247)";
2068
- const colorCategoryHomeTurva = "rgb(161, 10, 78)";
2069
- const colorPrimaryTurva = "rgb(198, 12, 48)";
2070
- const colorCategoryVehicleTurva = "rgb(23, 28, 58)";
2071
- const colorSuccessTurva = "rgb(8, 135, 78)";
2072
- const colorPrimaryLightestTurva = "rgb(252, 243, 244)";
2073
- const colorCategoryFamilyTurva = "rgb(199, 12, 112)";
2074
- const colorCategoryUnionTurva = "rgb(169, 69, 124)";
2075
- const colorPrimaryLighterTurva = "rgb(249, 230, 234)";
2076
- const colorPrimaryDarkTurva = "rgb(148, 9, 37)";
2077
- const colorGrayLightestTurva = "rgb(255, 255, 255)";
2078
- const colorGrayDarkTurva = "rgb(116, 116, 117)";
2079
- const colorGrayLightTurva = "rgb(228, 228, 230)";
2080
- const colorBrandGrayTurva = "rgb(178, 180, 179)";
2081
- const colorSecondaryTurva = "rgb(23, 28, 58)";
2082
- const colorPrimaryLightTurva = "rgb(244, 207, 214)";
2083
- const colorCategoryTravelTurva = "rgb(9, 129, 148)";
2084
- const colorGrayTurva = "rgb(207, 207, 209)";
2085
- const colorDangerTurva = "rgb(224, 42, 13)";
2086
- const colorWarningTurva = "rgb(250, 164, 15)";
2087
- const colorData07 = "rgb(192, 101, 247)";
2088
- const colorData08 = "rgb(0, 105, 191)";
2089
- const colorData09 = "rgb(19, 120, 53)";
2090
- const colorData10 = "rgb(179, 60, 24)";
2091
- const colorData11 = "rgb(13, 163, 166)";
2092
- const colorData01 = "rgb(122, 1, 196)";
2093
- const colorData12 = "rgb(11, 114, 136)";
2094
- const colorData02 = "rgb(0, 155, 204)";
2095
- const colorData13 = "rgb(179, 137, 24)";
2096
- const colorData03 = "rgb(27, 171, 75)";
2097
- const colorData14 = "rgb(128, 98, 17)";
2098
- const colorData04 = "rgb(255, 86, 34)";
2099
- const colorData15 = "rgb(0, 41, 77)";
2100
- const colorData05 = "rgb(245, 76, 154)";
2101
- const colorData06 = "rgb(194, 21, 101)";
2102
- const fontWeightExtraBold = "800";
2103
- const letterSpacingHeading = "-0.01rem";
2104
- const fontFamilyHeadingTurva = "'turva-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
2105
- const fontFamilyTextTurva = "'turva-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
2106
- const fontFamilyHeading = "'localtapiola-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
2107
- const fontFamilyText = "'localtapiola-sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'";
2108
- const fontWeightBold = "700";
2109
- const fontWeightNormal = "400";
2110
- const fontWeightSemiBold = "600";
2111
- const fontSizeXxxxLarge = "4.5rem";
2112
- const fontSizeXxxLarge = "3rem";
2113
- const fontSizeXxLarge = "2.25rem";
2114
- const fontSizeXLarge = "1.5rem";
2115
- const fontSizeLarge = "1.25rem";
2116
- const fontSizeMedium = "1rem";
2117
- const fontSizeSmall = "0.875rem";
2118
- const fontSizeXSmall = "0.75rem";
2119
- const radiusSharp = "0";
2120
- const radiusDefault = "4px";
2121
- const radiusCircle = "50%";
2122
- const radiusPill = "20rem";
2123
- const shadowTooltipTurva = "0 2px 10px 0 rgba(117, 117, 117, 0.13)";
2124
- const shadowDefault = "0 2px 6px 0 rgba(0, 41, 77, 0.07)";
2125
- const shadowTooltip = "0 2px 10px 0 rgba(0, 41, 77, 0.07)";
2126
- 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)";
2127
- const shadowModal = "0 2px 20px 0 rgba(0, 0, 0, 0.2)";
2128
- 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)";
2129
- const shadowHoverTurva = "0 2px 10px 0 rgba(117, 117, 117, 0.15)";
2130
- const shadowHover = "0 2px 10px 0 rgba(0, 41, 77, 0.1)";
2131
- const shadowDefaultTurva = "0 2px 6px 0 rgba(117, 117, 117, 0.13)";
2132
- const spaceXxSmall = "4px";
2133
- const spaceLarge = "20px";
2134
- const spaceXSmall = "8px";
2135
- const spaceXxxSmall = "2px";
2136
- const spaceSmall = "12px";
2137
- const spaceMedium = "16px";
2138
- const spaceXxLarge = "36px";
2139
- const spaceXxxxLarge = "72px";
2140
- const spaceXxxxxLarge = "94px";
2141
- const spaceXxxLarge = "48px";
2142
- const spaceXLarge = "28px";
2143
- const sizeIconXxLarge = "48px";
2144
- const sizeFormBorder = "1px";
2145
- const sizeStepMedium = "40px";
2146
- const sizeButtonMinWidth = "8rem";
2147
- const sizeHeader = "4rem";
2148
- const sizeIconXxxLarge = "72px";
2149
- const sizeIconXLarge = "36px";
2150
- const sizeIconXxSmall = "10px";
2151
- const sizeStepSmall = "30px";
2152
- const sizeNavigation = "3rem";
2153
- const sizeIconLarge = "30px";
2154
- const sizeLayoutMaxWidth = "1110px";
2155
- const sizeTappableSquare = "48px";
2156
- const sizeIconXSmall = "16px";
2157
- const sizeIconXxxSmall = "7px";
2158
- const sizeButtonBorder = "2px";
2159
- const sizeButtonTinyBorder = "1px";
2160
- const sizeIconMedium = "24px";
2161
- const sizeIconSmall = "20px";
2162
- const opacity85 = "0.85";
2163
- const opacity75 = "0.75";
2164
- const opacity50 = "0.50";
2165
- const opacity30 = "0.30";
2166
- const zIndexDropdown = "600";
2167
- const zIndexSpinner = "800";
2168
- const zIndexDefault = "1";
2169
- const zIndexToast = "500";
2170
- const zIndexPopup = "950";
2171
- const zIndexModal = "900";
2172
- const zIndexSticky = "300";
2173
- const zIndexMasked = "100";
2174
- const zIndexDeep = "-999999";
2175
- const zIndexOverlay = "700";
2176
- const zIndexMask = "200";
2177
- const zIndexHeader = "400";
2178
- const lineHeightMedium = "1.5";
2179
- const lineHeightSmall = "1.25";
2180
- const lineHeightXSmall = "1.1";
2181
- const transitionQuickly = "300ms ease";
2182
- const transitionSlowly = "600ms ease";
2183
- const mediaQueryXxSmall = "'(max-width: 22.5em)'";
2184
- const mediaQueryXSmall = "'(max-width: 35.9375em)'";
2185
- const mediaQuerySmall = "'(min-width: 36em)'";
2186
- const mediaQueryMedium = "'(min-width: 48em)'";
2187
- const mediaQueryLarge = "'(min-width: 62em)'";
2188
- const mediaQueryXLarge = "'(min-width: 64.0625em)'";
2189
- const mediaQueryXxLarge = "'(min-width: 76.25em)'";
2190
- const mediaQueryXxxLarge = "'(min-width: 106.25em)'";
2191
-
2192
- const tokens$2 = /*#__PURE__*/Object.freeze({
2193
- __proto__: null,
2194
- colorWarning: colorWarning,
2195
- colorGrayDarker: colorGrayDarker,
2196
- colorGrayLighter: colorGrayLighter,
2197
- colorCategoryHome: colorCategoryHome,
2198
- colorPrimary: colorPrimary,
2199
- colorCategoryVehicle: colorCategoryVehicle,
2200
- colorSuccess: colorSuccess,
2201
- colorCategoryFamily: colorCategoryFamily,
2202
- colorPrimaryLightest: colorPrimaryLightest,
2203
- colorPrimaryLighter: colorPrimaryLighter,
2204
- colorBrandBlue: colorBrandBlue,
2205
- colorPrimaryDark: colorPrimaryDark,
2206
- colorGrayLightest: colorGrayLightest,
2207
- colorCategoryFinance: colorCategoryFinance,
2208
- colorGrayDark: colorGrayDark,
2209
- colorGrayLight: colorGrayLight,
2210
- colorSecondary: colorSecondary,
2211
- colorCategoryPet: colorCategoryPet,
2212
- colorPrimaryLight: colorPrimaryLight,
2213
- colorCategoryTravel: colorCategoryTravel,
2214
- colorGray: colorGray,
2215
- colorDanger: colorDanger,
2216
- colorGrayDarkerTurva: colorGrayDarkerTurva,
2217
- colorGrayLighterTurva: colorGrayLighterTurva,
2218
- colorCategoryHomeTurva: colorCategoryHomeTurva,
2219
- colorPrimaryTurva: colorPrimaryTurva,
2220
- colorCategoryVehicleTurva: colorCategoryVehicleTurva,
2221
- colorSuccessTurva: colorSuccessTurva,
2222
- colorPrimaryLightestTurva: colorPrimaryLightestTurva,
2223
- colorCategoryFamilyTurva: colorCategoryFamilyTurva,
2224
- colorCategoryUnionTurva: colorCategoryUnionTurva,
2225
- colorPrimaryLighterTurva: colorPrimaryLighterTurva,
2226
- colorPrimaryDarkTurva: colorPrimaryDarkTurva,
2227
- colorGrayLightestTurva: colorGrayLightestTurva,
2228
- colorGrayDarkTurva: colorGrayDarkTurva,
2229
- colorGrayLightTurva: colorGrayLightTurva,
2230
- colorBrandGrayTurva: colorBrandGrayTurva,
2231
- colorSecondaryTurva: colorSecondaryTurva,
2232
- colorPrimaryLightTurva: colorPrimaryLightTurva,
2233
- colorCategoryTravelTurva: colorCategoryTravelTurva,
2234
- colorGrayTurva: colorGrayTurva,
2235
- colorDangerTurva: colorDangerTurva,
2236
- colorWarningTurva: colorWarningTurva,
2237
- colorData07: colorData07,
2238
- colorData08: colorData08,
2239
- colorData09: colorData09,
2240
- colorData10: colorData10,
2241
- colorData11: colorData11,
2242
- colorData01: colorData01,
2243
- colorData12: colorData12,
2244
- colorData02: colorData02,
2245
- colorData13: colorData13,
2246
- colorData03: colorData03,
2247
- colorData14: colorData14,
2248
- colorData04: colorData04,
2249
- colorData15: colorData15,
2250
- colorData05: colorData05,
2251
- colorData06: colorData06,
2252
- fontWeightExtraBold: fontWeightExtraBold,
2253
- letterSpacingHeading: letterSpacingHeading,
2254
- fontFamilyHeadingTurva: fontFamilyHeadingTurva,
2255
- fontFamilyTextTurva: fontFamilyTextTurva,
2256
- fontFamilyHeading: fontFamilyHeading,
2257
- fontFamilyText: fontFamilyText,
2258
- fontWeightBold: fontWeightBold,
2259
- fontWeightNormal: fontWeightNormal,
2260
- fontWeightSemiBold: fontWeightSemiBold,
2261
- fontSizeXxxxLarge: fontSizeXxxxLarge,
2262
- fontSizeXxxLarge: fontSizeXxxLarge,
2263
- fontSizeXxLarge: fontSizeXxLarge,
2264
- fontSizeXLarge: fontSizeXLarge,
2265
- fontSizeLarge: fontSizeLarge,
2266
- fontSizeMedium: fontSizeMedium,
2267
- fontSizeSmall: fontSizeSmall,
2268
- fontSizeXSmall: fontSizeXSmall,
2269
- radiusSharp: radiusSharp,
2270
- radiusDefault: radiusDefault,
2271
- radiusCircle: radiusCircle,
2272
- radiusPill: radiusPill,
2273
- shadowTooltipTurva: shadowTooltipTurva,
2274
- shadowDefault: shadowDefault,
2275
- shadowTooltip: shadowTooltip,
2276
- shadowCardTurva: shadowCardTurva,
2277
- shadowModal: shadowModal,
2278
- shadowCard: shadowCard,
2279
- shadowHoverTurva: shadowHoverTurva,
2280
- shadowHover: shadowHover,
2281
- shadowDefaultTurva: shadowDefaultTurva,
2282
- spaceXxSmall: spaceXxSmall,
2283
- spaceLarge: spaceLarge,
2284
- spaceXSmall: spaceXSmall,
2285
- spaceXxxSmall: spaceXxxSmall,
2286
- spaceSmall: spaceSmall,
2287
- spaceMedium: spaceMedium,
2288
- spaceXxLarge: spaceXxLarge,
2289
- spaceXxxxLarge: spaceXxxxLarge,
2290
- spaceXxxxxLarge: spaceXxxxxLarge,
2291
- spaceXxxLarge: spaceXxxLarge,
2292
- spaceXLarge: spaceXLarge,
2293
- sizeIconXxLarge: sizeIconXxLarge,
2294
- sizeFormBorder: sizeFormBorder,
2295
- sizeStepMedium: sizeStepMedium,
2296
- sizeButtonMinWidth: sizeButtonMinWidth,
2297
- sizeHeader: sizeHeader,
2298
- sizeIconXxxLarge: sizeIconXxxLarge,
2299
- sizeIconXLarge: sizeIconXLarge,
2300
- sizeIconXxSmall: sizeIconXxSmall,
2301
- sizeStepSmall: sizeStepSmall,
2302
- sizeNavigation: sizeNavigation,
2303
- sizeIconLarge: sizeIconLarge,
2304
- sizeLayoutMaxWidth: sizeLayoutMaxWidth,
2305
- sizeTappableSquare: sizeTappableSquare,
2306
- sizeIconXSmall: sizeIconXSmall,
2307
- sizeIconXxxSmall: sizeIconXxxSmall,
2308
- sizeButtonBorder: sizeButtonBorder,
2309
- sizeButtonTinyBorder: sizeButtonTinyBorder,
2310
- sizeIconMedium: sizeIconMedium,
2311
- sizeIconSmall: sizeIconSmall,
2312
- opacity85: opacity85,
2313
- opacity75: opacity75,
2314
- opacity50: opacity50,
2315
- opacity30: opacity30,
2316
- zIndexDropdown: zIndexDropdown,
2317
- zIndexSpinner: zIndexSpinner,
2318
- zIndexDefault: zIndexDefault,
2319
- zIndexToast: zIndexToast,
2320
- zIndexPopup: zIndexPopup,
2321
- zIndexModal: zIndexModal,
2322
- zIndexSticky: zIndexSticky,
2323
- zIndexMasked: zIndexMasked,
2324
- zIndexDeep: zIndexDeep,
2325
- zIndexOverlay: zIndexOverlay,
2326
- zIndexMask: zIndexMask,
2327
- zIndexHeader: zIndexHeader,
2328
- lineHeightMedium: lineHeightMedium,
2329
- lineHeightSmall: lineHeightSmall,
2330
- lineHeightXSmall: lineHeightXSmall,
2331
- transitionQuickly: transitionQuickly,
2332
- transitionSlowly: transitionSlowly,
2333
- mediaQueryXxSmall: mediaQueryXxSmall,
2334
- mediaQueryXSmall: mediaQueryXSmall,
2335
- mediaQuerySmall: mediaQuerySmall,
2336
- mediaQueryMedium: mediaQueryMedium,
2337
- mediaQueryLarge: mediaQueryLarge,
2338
- mediaQueryXLarge: mediaQueryXLarge,
2339
- mediaQueryXxLarge: mediaQueryXxLarge,
2340
- mediaQueryXxxLarge: mediaQueryXxxLarge
2341
- });
2342
-
2343
- const allowedThemes = ["turva"];
2344
- function isDashCase(str) {
2345
- const dash = str.includes("-");
2346
- const barredString = str.includes(" ") || str.includes("_");
2347
- const barredStartingString = str.charAt(0) === "-";
2348
- return dash && !barredString && !barredStartingString;
2349
- }
2350
- function capitalize(str = "") {
2351
- return `${str.charAt(0).toUpperCase()}${str.slice(1)}`;
2352
- }
2353
- function lowerCaseFirst(str = "") {
2354
- return `${str.charAt(0).toLowerCase()}${str.slice(1)}`;
2355
- }
2356
- function camelize(str = "") {
2357
- const arr = str.split("-");
2358
- //loop through each element of the array and capitalize the first letter.'
2359
- arr.forEach((string, index) => {
2360
- arr[index] = capitalize(string);
2361
- });
2362
- return arr.join("");
2363
- }
2364
- function getTheme(theme = "") {
2365
- if (allowedThemes.includes(theme.toLowerCase())) {
2366
- return theme.toLowerCase();
2367
- }
2368
- return "";
2369
- }
2370
- function hasColor(str = "") {
2371
- return str.indexOf("Color") === 0 || str.indexOf("color") === 0;
2372
- }
2373
- function addColor(str = "") {
2374
- if (str && !isDashCase(str) && !hasColor(str)) {
2375
- return `color${capitalize(str)}`;
2376
- }
2377
- return str;
2378
- }
2379
- function addTheme(str, theme) {
2380
- const hasTheme = getTheme(theme).length;
2381
- if (hasTheme && str.indexOf(theme) === -1) {
2382
- return `${str}${capitalize(theme)}`;
2571
+ this.theme = "";
2383
2572
  }
2384
- return str;
2385
- }
2386
- function getColorByName(name, theme = "") {
2387
- if (!name) {
2388
- return undefined;
2573
+ /**
2574
+ * Component lifecycle events.
2575
+ */
2576
+ componentWillLoad() {
2577
+ inheritGlobalTheme(this);
2578
+ this.children = Array.from(this.element.children);
2389
2579
  }
2390
- const defaultColor = convertToColorName(name);
2391
- const themedColor = convertToColorName(name, theme);
2392
- // lets just try to get the color first to save some cycles
2393
- let resolvedToken = tokens$2[themedColor];
2394
- if (!resolvedToken) {
2395
- resolvedToken = tokens$2[defaultColor];
2580
+ connectedCallback() {
2581
+ Array.from(this.element.children).forEach(child => {
2582
+ const observer = new MutationObserver(() => (this.children = Array.from(this.element.children)));
2583
+ observer.observe(child, {
2584
+ childList: true,
2585
+ subtree: true,
2586
+ attributes: true,
2587
+ characterData: true,
2588
+ });
2589
+ this.observers = [...this.observers, observer];
2590
+ });
2396
2591
  }
2397
- return resolvedToken;
2398
- }
2399
- function convertToColorName(name = "", theme = "") {
2400
- let colorResolution = name;
2401
- const dash = isDashCase(name);
2402
- if (dash) {
2403
- colorResolution = camelize(colorResolution);
2592
+ disconnectedCallback() {
2593
+ this.observers.forEach(observer => observer.disconnect());
2594
+ this.observers = [];
2404
2595
  }
2405
- colorResolution = addColor(colorResolution);
2406
- colorResolution = addTheme(colorResolution, theme);
2407
- // takes care of the case where colorPrimaryDark ends up with ColorPrimaryDark
2408
- colorResolution = lowerCaseFirst(colorResolution);
2409
- return colorResolution;
2410
- }
2596
+ /**
2597
+ * render() function
2598
+ * Always the last one in the class.
2599
+ */
2600
+ render() {
2601
+ return (h$1(Host, null, h$1("nav", { "aria-label": this.breadcrumbsAriaLabel, class: {
2602
+ "duet-breadcrumbs": true,
2603
+ "duet-theme-turva": this.theme === "turva",
2604
+ } }, h$1("ol", null, this.children.map((child, index) => (h$1(Fragment, null, index > 0 && (h$1("li", { "aria-hidden": "true" }, h$1("duet-icon", { class: "duet-breadrumbs-arrow", size: "auto", icon: actionArrowRightSmall.svg, margin: "none", color: "currentColor" }))), h$1("li", { innerHTML: child.outerHTML }), h$1("div", { class: "hide" }, h$1("slot", null)))))))));
2605
+ }
2606
+ get element() { return this; }
2607
+ static get style() { return duetBreadcrumbsCss; }
2608
+ };
2609
+
2610
+ const DuetStringsExternalDefaults = {
2611
+ fi: "Avautuu uuteen ikkunaan",
2612
+ sv: "Öppnas i nytt fönster",
2613
+ en: "Opens in a new window",
2614
+ };
2411
2615
 
2412
2616
  const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}:host:last-child,:host:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.duet-small){margin-right:2px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host(.duet-small){width:auto}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;width:100%}.duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}.duet-button.duet-p-0{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button.duet-button-text-center{text-align:center !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon{padding-left:48px !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}.duet-theme-turva .duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}.duet-button .duet-button-contents{position:relative;display:inline-block;margin:0 auto;pointer-events:none}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button.icon{padding-left:52px !important}.duet-button.icon-right{padding-right:52px !important;padding-left:28px !important}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}.duet-button .duet-button-icon duet-icon{width:16px;height:16px}.duet-button .duet-button-icon.right{right:-28px;left:auto}.duet-button .duet-button-icon.large{left:-32px;width:20px;height:20px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.large.right{right:-32px;left:auto}.duet-button .duet-button-icon.medium-small{left:-16px;width:10px;height:10px;padding-top:1px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.medium-small.right{right:-16px;left:auto}.duet-button .duet-button-icon.small{left:-16px;width:7px;height:7px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button .duet-button-icon.small.right{right:-16px;left:auto}.duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-button:active{opacity:0.75;transition:none}.duet-button.default{border-color:#e1e3e6}.duet-theme-turva .duet-button.default{color:#c60c30 !important;border-color:#e4e4e6}.duet-button.default:hover{border-color:#0077b3}.duet-theme-turva .duet-button.default:hover{border-color:#c60c30}.duet-button.default.duet-button-negative{background-color:white}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:#e4e4e6 !important}.duet-button.default.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.primary{color:white !important;background:#0077b3;border-color:#0077b3}.duet-theme-turva .duet-button.primary{color:white !important;background:#c60c30;border-color:#c60c30}.duet-button.primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.primary:hover{background:#940925;border-color:#940925}.duet-button.primary:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}.duet-theme-turva .duet-button.primary:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}.duet-button.secondary{color:#00294d !important;background:transparent;border-color:#00294d}.duet-theme-turva .duet-button.secondary{color:#171c3a !important;border-color:#171c3a}.duet-button.secondary:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.secondary.duet-button-negative{color:#e1e3e6 !important;border-color:white}.duet-theme-turva .duet-button.secondary.duet-button-negative{color:#e4e4e6 !important}.duet-button.secondary.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.negative{color:#00294d !important;background:white;border-color:white}.duet-theme-turva .duet-button.negative{color:#171c3a !important}.duet-button.negative:hover{color:white !important;background:transparent;border-color:white}.duet-button.negative:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-theme-turva .duet-button.negative:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-button.destructive-primary{color:white !important;background:#de2362;border-color:#de2362}.duet-theme-turva .duet-button.destructive-primary{color:white !important;background:#e02a0d;border-color:#e02a0d}.duet-button.destructive-primary:hover{background:#b21c4e;border-color:#b21c4e;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.destructive-primary:hover{background:#b3220a}.duet-button.destructive,.duet-button.destructive-secondary{color:#de2362 !important;background:white;border-color:#de2362}.duet-theme-turva .duet-button.destructive,.duet-theme-turva .duet-button.destructive-secondary{color:#e02a0d !important;background:white;border-color:#e02a0d}.duet-button.destructive:hover,.duet-button.destructive-secondary:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}.duet-theme-turva .duet-button.destructive:hover,.duet-theme-turva .duet-button.destructive-secondary:hover{color:white !important;background:#b3220a;border-color:#b3220a}.duet-button.plain{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}.duet-theme-turva .duet-button.plain{color:#c60c30 !important;background:transparent;border-color:transparent}.duet-button.plain.icon{padding-left:20px !important}.duet-button.plain.icon.icon-right{padding-right:20px !important;padding-left:0 !important}.duet-button.plain.icon.medium{padding-left:24px !important}.duet-button.plain.icon.medium.icon-right{padding-right:24px !important;padding-left:0 !important}.duet-button.plain.icon.large{padding-left:30px !important}.duet-button.plain.icon.large.icon-right{padding-right:30px !important;padding-left:0 !important}.duet-button.plain .duet-button-icon.left{left:-16.6666666667px !important}.duet-button.plain .duet-button-icon.left.medium{left:-24px !important}.duet-button.plain .duet-button-icon.left.large{left:-30px !important}.duet-button.plain .duet-button-icon.right{right:-16.6666666667px !important}.duet-button.plain .duet-button-icon.right.medium{right:-24px !important}.duet-button.plain .duet-button-icon.right.large{right:-30px !important}.duet-button.plain[disabled]{color:#657787 !important;background:transparent !important;border-color:transparent !important}.duet-theme-turva .duet-button.plain[disabled]{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}.duet-button.plain:hover{color:#004d80 !important;background:transparent !important}.duet-theme-turva .duet-button.plain:hover{color:#940925 !important}.duet-button.plain.duet-button-negative{color:white !important}.duet-theme-turva .duet-button.plain.duet-button-negative{color:#e4e4e6 !important}.duet-button.plain.duet-button-negative:hover{color:#0077b3 !important}.duet-theme-turva .duet-button.plain.duet-button-negative:hover{color:#c60c30 !important}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button[disabled],.duet-button[disabled]:hover,.duet-button.duet-button-negative[disabled],.duet-button.duet-button-negative[disabled]:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}.duet-theme-turva .duet-button[disabled],.duet-theme-turva .duet-button[disabled]:hover,.duet-theme-turva .duet-button.duet-button-negative [disabled],.duet-theme-turva .duet-button.duet-button-negative [disabled]:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-button-is-loading.primary{color:white}.duet-button-is-loading.default{color:#0077b3}.duet-button-is-loading.default.duet-theme-turva{color:#c60c30}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}";
2413
2617
 
@@ -2418,6 +2622,10 @@ let DuetButton$1 = class extends H {
2418
2622
  this.__attachShadow();
2419
2623
  this.duetFocus = createEvent$2(this, "duetFocus", 7);
2420
2624
  this.duetBlur = createEvent$2(this, "duetBlur", 7);
2625
+ /**
2626
+ * Use this property to add an aria-haspopup attribute to a button, if you are using it as a menu button.
2627
+ */
2628
+ this.accessiblePopup = "false";
2421
2629
  /**
2422
2630
  * Loading state of the button
2423
2631
  */
@@ -2638,7 +2846,7 @@ let DuetButton$1 = class extends H {
2638
2846
  "duet-theme-turva": this.theme === "turva",
2639
2847
  "duet-button-negative": this.negative || this.variation === "negative",
2640
2848
  [this.variation]: true,
2641
- } }, this.url ? (h$1("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && h$1("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (h$1("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined }), commonChildren)), this.loading && h$1("duet-spinner", { color: "currentColor" }))));
2849
+ } }, this.url ? (h$1("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && h$1("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (h$1("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined }), commonChildren)), this.loading && h$1("duet-spinner", { color: "currentColor" }))));
2642
2850
  }
2643
2851
  get element() { return this; }
2644
2852
  static get watchers() { return {
@@ -2698,28 +2906,6 @@ let DuetCaption$1 = class extends H {
2698
2906
 
2699
2907
  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>"};
2700
2908
 
2701
- function chr4() {
2702
- return Math.random().toString(16).slice(-4);
2703
- }
2704
- function createID(prefix) {
2705
- return `${prefix}-${chr4()}${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}${chr4()}${chr4()}`;
2706
- }
2707
-
2708
- const isArrowLeftKey = (e) => e.keyCode === 37;
2709
- const isArrowUpKey = (e) => e.keyCode === 38;
2710
- const isArrowRightKey = (e) => e.keyCode === 39;
2711
- const isArrowDownKey = (e) => e.keyCode === 40;
2712
- const isArrowKey = (e) => isArrowDownKey(e) || isArrowRightKey(e) || isArrowUpKey(e) || isArrowLeftKey(e);
2713
- const isEscapeKey = (e) => e.key === "Escape" || e.key === "Esc" || e.keyCode === 27;
2714
- const isBackspaceKey = (e) => e.keyCode === 8;
2715
- const isSpaceKey = (e) => e.key === "Space" || e.keyCode === 32;
2716
- const isPlusKey = (e) => e.key === "+" || e.keyCode === 43;
2717
- const isMinusKey = (e) => e.key === "-" || e.keyCode === 45;
2718
- const isQuestionKey = (e) => e.key === "?";
2719
- const isEnterKey = (e) => e.key === "Enter" || e.keyCode === 13;
2720
- const isKeyboardClick = (e) => isEnterKey(e) || isSpaceKey(e);
2721
- const isNumber = (e) => (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105);
2722
-
2723
2909
  const duetCardCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:20px !important;display:flex;width:100%;vertical-align:top}:host(.duet-card-info){margin-bottom:16px !important}:host(.duet-m-0){margin:0 !important}.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{padding:0 !important}.duet-card.duet-m-0{margin:0 !important}.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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 36em){.duet-card{padding:28px !important}}.duet-card.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";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{padding:20px !important}}@media (min-width: 36em){.duet-card.medium{padding:28px !important}}@media (min-width: 48em){.duet-card.medium{padding:36px !important}}@media (min-width: 36em){.duet-card.large{padding:36px !important}}@media (min-width: 48em){.duet-card.large{padding:48px !important}}@media (min-width: 36em){.duet-card.x-large{padding:48px !important}}@media (min-width: 48em){.duet-card.x-large{padding:72px !important}}.duet-card.duet-card-collapsed{padding-bottom:0 !important}@media (min-width: 36em){.duet-card.duet-card-collapsed{padding-bottom:0 !important}}.duet-card.info{background:rgba(0, 80, 128, 0.04) !important;box-shadow:none}.duet-card.info.duet-theme-turva{background:rgba(23, 28, 58, 0.035) !important}.duet-card.plain{box-shadow:none}.duet-card.plain:not(.duet-card-has-bg){background:transparent !important}.duet-card-heading-grid{display:flex;flex-direction:row}.duet-card-icon{align-self:center}.duet-card-heading-text{flex:1;word-break:break-word}.duet-card-secondary-heading{font-size:1rem;font-weight:600;word-break:break-word}.duet-card-secondary-heading--inline{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{display:none}}.duet-card-secondary-heading--new-line{display:none}@media (max-width: 22.5em){.duet-card-secondary-heading--new-line{display:block}}.duet-card-heading{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{padding:15px 28px 16px !important;margin:-28px -28px 20px}}.duet-card-heading[role=button]{-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{outline:0}:host(.user-is-tabbing) .duet-card-heading[role=button]: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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-card-collapsed .duet-card-heading{margin-bottom:0 !important;border-bottom:0 !important}.duet-theme-turva .duet-card-heading{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{padding:10px 20px 11px !important;margin:-20px -20px 20px}}@media (min-width: 48em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}.medium .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.medium .duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}}@media (min-width: 48em){.medium .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}.large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.large .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}@media (min-width: 48em){.large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}.x-large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.x-large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}@media (min-width: 48em){.x-large .duet-card-heading{padding:39px 72px 40px !important;margin:-72px -72px 48px}}.none .duet-card-heading{padding:0 0 20px !important;margin:0 0 20px}.duet-card-footer{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{background:#f5f5f7}@media (min-width: 36em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 36em){.x-small .duet-card-footer{padding:15px 28px 16px !important;padding-left:20px !important;margin:20px -20px -20px}}@media (min-width: 36em){.medium .duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.medium .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 36em){.large .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 48em){.large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 36em){.x-large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 48em){.x-large .duet-card-footer{padding:39px 72px 40px !important;margin:48px -72px -72px}}.none .duet-card-footer{padding:12px 0 !important;margin:20px 0 0}.duet-card-content{width:100%}.duet-card-collapsed .duet-card-content{display:none}.duet-card-caret{position:relative;top:6px;align-self:flex-start;transition:300ms ease}[aria-expanded=false] .duet-card-caret{transform:rotate(-180deg)}.duet-card-image-mask{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{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 36em){.medium .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 48em){.medium .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 28px -36px}}@media (min-width: 36em){.large .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 36px -36px}}@media (min-width: 48em){.large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 36em){.x-large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 48em){.x-large .duet-card-image-mask{width:calc(100% + 144px);margin:-72px 0 36px -72px}}.none .duet-card-image-mask{width:100%;margin:0 0 20px}.duet-card-image{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{transition:box-shadow 300ms ease, background-position 300ms ease}a.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{transform:scale(1.024)}.duet-theme-turva a.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{transition:none;transform:translateY(1px)}";
2724
2910
 
2725
2911
  let DuetCard$1 = class extends H {
@@ -3105,7 +3291,7 @@ const FocusGuard = ({ moveFocusTo }) => {
3105
3291
  return h("div", { class: "duet-focus-guard", "aria-hidden": "true", tabIndex: 0, onFocus: () => focusElement(moveFocusTo) });
3106
3292
  };
3107
3293
 
3108
- 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}";
3294
+ 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}";
3109
3295
 
3110
3296
  let DuetChoice$1 = class extends H {
3111
3297
  constructor() {
@@ -3381,7 +3567,7 @@ let DuetChoice$1 = class extends H {
3381
3567
  info: this.isInfoOpen,
3382
3568
  collapsible: this.collapsible,
3383
3569
  "duet-p-0": this.padding === "none",
3384
- } }, h$1("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) }), h$1("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering }, onClick: this.onClick }, this.icon && (h$1("div", { class: "duet-choice-card-icon" }, h$1("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.label, this.caption && (h$1("div", null, h$1("duet-spacer", { size: "xx-small" }), h$1("duet-caption", { margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (h$1("div", null, h$1("duet-spacer", { size: "xx-small" }), h$1("slot", { name: "additional" }))), h$1("div", { class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && h$1("div", { class: "duet-checkmark" })))), this.hasInfo && !this.collapsible && (h$1("button", { ref: button => (this.infoButtonEl = button), id: this.infoButtonId, class: {
3570
+ } }, h$1("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) }), h$1("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering }, onClick: this.onClick }, this.icon && (h$1("div", { class: "duet-choice-card-icon" }, h$1("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), h$1("div", null, h$1("div", null, this.label), this.caption && (h$1("div", null, h$1("duet-spacer", { size: "xx-small" }), h$1("duet-caption", { margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (h$1("div", null, h$1("duet-spacer", { size: "xx-small" }), h$1("slot", { name: "additional" })))), h$1("div", null, h$1("div", { class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && h$1("div", { class: "duet-checkmark" }))))), this.hasInfo && !this.collapsible && (h$1("button", { ref: button => (this.infoButtonEl = button), id: this.infoButtonId, class: {
3385
3571
  "duet-choice-info-toggle": true,
3386
3572
  "duet-theme-turva": this.theme === "turva",
3387
3573
  }, 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" }, h$1("duet-visually-hidden", { "aria-hidden": !this.isBlurred ? "true" : "false" }, this.accessibleLabelInfoButton), h$1("div", { class: "duet-choice-info-icon" }, h$1("duet-icon", { icon: messagingInfo.svg, margin: "none", size: "small", color: "currentColor" }))))), this.collapsible || this.hasInfo ? (h$1("div", { class: this.getClassNames(), id: this.expandId }, h$1("span", { class: {
@@ -4170,7 +4356,7 @@ let DuetCollapsible$1 = class extends H {
4170
4356
  "duet-collapsible-heading": true,
4171
4357
  "duet-theme-turva": this.theme === "turva",
4172
4358
  "duet-collapsible-normal-weight": this.headingWeight === "normal",
4173
- }, 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 }, h$1("div", { class: "duet-collapsible-heading-icon" }, h$1("duet-icon", { margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary", size: this.getEquivalentIconSize(), icon: actionArrowDownSmall.svg })), h$1("div", { class: "duet-collapsible-heading-content", part: "duet-collapsible-heading-content" }, this.heading)), h$1("div", { id: this.id, class: { "duet-collapsible-content": true, "duet-theme-turva": this.theme === "turva" } }, h$1("slot", null))));
4359
+ }, 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 }, h$1("div", { class: "duet-collapsible-heading-icon" }, h$1("duet-icon", { margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary", size: this.getEquivalentIconSize(), icon: actionArrowDownSmall.svg })), h$1("div", { class: "duet-collapsible-heading-content", part: "duet-collapsible-heading-content" }, this.heading)), h$1("div", { id: this.id, class: { "duet-collapsible-content": true, "duet-theme-turva": this.theme === "turva" }, part: "duet-collapsible-content" }, h$1("slot", null))));
4174
4360
  }
4175
4361
  get element() { return this; }
4176
4362
  static get style() { return duetCollapsibleCss; }
@@ -4604,7 +4790,7 @@ const DatePickerMonth = ({ selectedDate, focusedDate, labelledById, theme, langu
4604
4790
  } }))))))))));
4605
4791
  };
4606
4792
 
4607
- 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}";
4793
+ 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}";
4608
4794
 
4609
4795
  let DuetDatePicker$1 = class extends H {
4610
4796
  constructor() {
@@ -5000,7 +5186,7 @@ let DuetDatePicker$1 = class extends H {
5000
5186
  left: this.direction === "left",
5001
5187
  error: !!this.error,
5002
5188
  active: this.open,
5003
- }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, h$1(FocusGuard, { moveFocusTo: this.focusedDayNode }), h$1("div", { class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, h$1("duet-visually-hidden", { "aria-live": "polite" }, text.keyboardInstruction), h$1("div", { class: "duet-date-dialog-mobile-header" }, h$1("duet-label", { margin: "none" }, this.label), h$1("button", { class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, h$1("duet-icon", { name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), h$1("duet-visually-hidden", null, text.closeLabel))), h$1("div", { class: "duet-date-dialog-header" }, h$1("div", { class: "duet-date-dialog-dropdowns" }, h$1("duet-visually-hidden", null, h$1("h2", { id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), h$1("duet-visually-hidden", null, h$1("label", { htmlFor: this.monthSelectId }, text.monthSelectLabel)), h$1("div", { class: "duet-date-dialog-select" }, h$1("select", { id: this.monthSelectId, class: "duet-date-month-select", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, text.monthLabels.map((month, i) => (h$1("option", { key: month, value: i, selected: i === focusedMonth, disabled: !inRange(new Date(focusedYear, i, 1), minDate ? startOfMonth(minDate) : null, maxDate ? endOfMonth(maxDate) : null) }, month)))), h$1("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, h$1("span", null, text.monthLabelsShort[focusedMonth]), h$1("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), h$1("duet-visually-hidden", null, h$1("label", { htmlFor: this.yearSelectId }, text.yearSelectLabel)), h$1("div", { class: "duet-date-dialog-select" }, h$1("select", { id: this.yearSelectId, class: "duet-date-year-select", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (h$1("option", { key: year, selected: year === focusedYear }, year)))), h$1("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, h$1("span", null, this.focusedDay.getFullYear()), h$1("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), h$1("div", { class: "duet-date-dialog-buttons" }, h$1("button", { class: "duet-date-dialog-prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, type: "button" }, h$1("duet-icon", { name: "action-arrow-left-small", color: "currentColor", margin: "none", size: "xx-small" }), h$1("duet-visually-hidden", null, text.prevMonthLabel)), h$1("button", { class: "duet-date-dialog-next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, type: "button" }, h$1("duet-icon", { name: "action-arrow-right-small", color: "currentColor", margin: "none", size: "xx-small" }), h$1("duet-visually-hidden", null, text.nextMonthLabel)))), h$1(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 })), h$1(FocusGuard, { moveFocusTo: this.closeButtonNode }))));
5189
+ }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, h$1(FocusGuard, { moveFocusTo: this.focusedDayNode }), h$1("div", { class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, h$1("duet-visually-hidden", { "aria-live": "polite" }, text.keyboardInstruction), h$1("div", { class: "duet-date-dialog-mobile-header" }, h$1("duet-label", { margin: "none" }, this.label), h$1("button", { class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, h$1("duet-icon", { name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), h$1("duet-visually-hidden", null, text.closeLabel))), h$1("div", { class: "duet-date-dialog-header" }, h$1("div", { class: "duet-date-dialog-dropdowns" }, h$1("duet-visually-hidden", null, h$1("h2", { id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), h$1("duet-visually-hidden", null, h$1("label", { htmlFor: this.monthSelectId }, text.monthSelectLabel)), h$1("div", { class: "duet-date-dialog-select" }, h$1("select", { id: this.monthSelectId, class: "duet-date-month-select", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, text.monthLabels.map((month, i) => (h$1("option", { key: month, value: i, selected: i === focusedMonth, disabled: !inRange(new Date(focusedYear, i, 1), minDate ? startOfMonth(minDate) : null, maxDate ? endOfMonth(maxDate) : null) }, month)))), h$1("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, h$1("span", null, text.monthLabelsShort[focusedMonth]), h$1("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), h$1("duet-visually-hidden", null, h$1("label", { htmlFor: this.yearSelectId }, text.yearSelectLabel)), h$1("div", { class: "duet-date-dialog-select" }, h$1("select", { id: this.yearSelectId, class: "duet-date-year-select", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (h$1("option", { key: year, selected: year === focusedYear }, year)))), h$1("div", { class: "duet-date-dialog-select-label", "aria-hidden": "true" }, h$1("span", null, this.focusedDay.getFullYear()), h$1("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), h$1("div", { class: "duet-date-dialog-buttons" }, h$1("duet-action-button", { class: "duet-date-dialog-prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, "icon-name": "action-arrow-left-small" }, text.prevMonthLabel), h$1("duet-action-button", { class: "duet-date-dialog-next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, "icon-name": "action-arrow-right-small" }, text.nextMonthLabel))), h$1(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 })), h$1(FocusGuard, { moveFocusTo: this.closeButtonNode }))));
5004
5190
  }
5005
5191
  get element() { return this; }
5006
5192
  static get watchers() { return {
@@ -5050,370 +5236,217 @@ let DuetDivider$1 = class extends H {
5050
5236
  static get style() { return duetDividerCss; }
5051
5237
  };
5052
5238
 
5053
- const debounce = (func, timeout = 50) => {
5054
- let timer;
5055
- return (...args) => {
5056
- clearTimeout(timer);
5057
- timer = setTimeout(() => {
5058
- func.apply(undefined, args);
5059
- }, timeout);
5060
- };
5239
+ //simple functional component that renders the data in the table
5240
+ const TableData = ({ data, groupId, alignment }, _children) => {
5241
+ const classNames = `duet-editable-table duet-editable-table-content-${groupId}`;
5242
+ if (typeof data === "string") {
5243
+ return h("td", { innerHTML: data, class: classNames, part: `${groupId}content`, style: { verticalAlign: alignment } });
5244
+ }
5245
+ else {
5246
+ return (h("td", { class: classNames, part: `${groupId}content`, style: { verticalAlign: alignment } }, data));
5247
+ }
5061
5248
  };
5062
5249
 
5063
- /**
5064
- * Produces a function which uses template strings to do simple interpolation from objects.
5065
- *
5066
- * Usage:
5067
- * var makeMeKing = generateTemplateFn('${name} is now the king of ${country}!');
5068
- *
5069
- * console.log(makeMeKing({ name: 'Bryan', country: 'Scotland'}));
5070
- * // Logs 'Bryan is now the king of Scotland!'
5071
- */
5072
- const generateTemplateFn = (function () {
5073
- const cache = {};
5074
- function generateTemplate(template) {
5075
- if (typeof template !== "string") {
5076
- template = template.outerHTML;
5077
- }
5078
- let fn = cache[template];
5079
- if (!fn) {
5080
- // Replace ${expressions} (etc) with ${map.expressions}.
5081
- const sanitized = template
5082
- .replace(/\$\{([\s]*[^;\s\{]+[\s]*)\}/g, function (_, match) {
5083
- return `\$\{map.${match.trim()}\}`;
5084
- })
5085
- // Afterwards, replace anything that's not ${map.expressions}' (etc) with a blank string.
5086
- .replace(/(\$\{(?!map\.)[^}]+\})/g, "");
5087
- fn = Function("map", `return \`${sanitized}\``);
5088
- }
5089
- return fn;
5090
- }
5091
- return generateTemplate;
5092
- })();
5093
-
5094
- const duetEditableTableCss = "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{padding:0 !important;font-size:0;border-bottom:0}";
5250
+ 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}";
5095
5251
 
5096
5252
  let DuetEditableTable$1 = class extends H {
5097
5253
  constructor() {
5098
5254
  super();
5099
5255
  this.__registerHost();
5100
- this.__attachShadow();
5101
- this.template = undefined;
5102
- /**
5103
- * State() variables
5104
- * @internal
5105
- */
5106
- this.tick = Date.now();
5256
+ this.duetTableToggle = createEvent$2(this, "duetTableToggle", 7);
5257
+ this.duetMenuClick = createEvent$2(this, "duetMenuClick", 7);
5107
5258
  /**
5108
- * Map of items that contain list of things.
5259
+ * Duet-table: margin of the component.
5109
5260
  */
5110
- this.items = new Map();
5261
+ this.margin = "auto";
5111
5262
  /**
5112
- * Key used to set vertical alignment of action buttons
5263
+ * Duet-table: Style variation of the table.
5113
5264
  */
5114
- this.alignment = "middle";
5265
+ this.variation = "striped";
5115
5266
  /**
5116
- * Array of internationalized defaults for the default groups labels.
5267
+ * Duet-table: Controls whether the table has a sticky header.
5268
+ * Sticky headers are not compatible with breakpoint="none-scrollable".
5117
5269
  */
5118
- this.groupsLabelDefaults = {
5119
- fi: "Kaikki",
5120
- en: "All items",
5121
- sv: "Alla objekt",
5122
- };
5270
+ this.sticky = false;
5123
5271
  /**
5124
- * Array of internationalized defaults for the default action labels.
5272
+ * Duet-table: Adjust the distance from top of the viewport (in pixels) when the
5273
+ * table header becomes sticky.
5125
5274
  */
5126
- this.actionLabelDefaults = {
5127
- fi: "Toiminnot",
5128
- en: "Actions",
5129
- sv: "Handlingar",
5130
- };
5275
+ this.stickyDistance = "with-links";
5131
5276
  /**
5132
- * Array of group names that you want the editable table to display (can be used to hide or show groups depending on conditions).
5133
- * @default { id: "all", label: this.groupsLabelDefaults, actionLabel: this.actionLabelDefaults }.
5134
- * @example [{ id: "success", label: {fi: "Onnistunut", en: "Success", sv: "Alt klart", }}].
5277
+ * Duet-table: By default the table is responsive - it will be flattened at narrow viewport widths.
5278
+ * This prop controls the breakpoint at which the table should be rendered as a _regular_ table.
5279
+ * Set to "none" to disable the responsive functionality.
5280
+ * Set to "none-scrollable" to disable responsive functionality _and_ allow horizontal scrolling -
5281
+ * this is useful for comparison tables where it's important to maintain column and row layout.
5135
5282
  */
5136
- this.groups = [
5137
- { id: "all", label: this.groupsLabelDefaults, actionLabel: this.actionLabelDefaults },
5138
- ];
5283
+ this.breakpoint = "small";
5139
5284
  /**
5140
- * Array of actions that are mapped via the map variable to the various groups defined in group.
5285
+ * Define actions for all items in a table
5286
+ * An alternative to inline HTML table.
5287
+ * required for Sortable tables
5141
5288
  * @default undefined
5142
- * @example [{
5143
- variation: "default",
5144
- icon: "action-edit-2",
5145
- id: "edit",
5146
- map: ["success"],
5147
- label: {
5148
- fi: " Label",
5149
- en: " Label",
5150
- sv: " Label",
5151
- }
5152
- }]
5153
- */
5154
- this.actions = undefined;
5155
- /**
5156
- * Shows or hides the table labels.
5157
- */
5158
- this.hideGroups = false;
5159
- /**
5160
- * Exposes the aria role for optimizing accessibility.
5161
- */
5162
- this.accessibleRole = undefined;
5163
- /**
5164
- * Theme of the table.
5165
- */
5166
- this.theme = "";
5167
- /**
5168
- * Private methods.
5169
- */
5170
- this.kick = debounce(() => {
5171
- this.tick = Date.now();
5172
- }, 100); // will trigger re-render
5173
- /**
5174
- * If a user defines a template section within editable table, try to read an use it.
5175
- */
5176
- this.getTemplate = () => {
5177
- const templateDom = this.element.getElementsByTagName("template");
5178
- if (templateDom === null || templateDom === void 0 ? void 0 : templateDom.length) {
5179
- const templateString = templateDom[0].content.firstElementChild.outerHTML;
5180
- return generateTemplateFn(templateString);
5181
- }
5182
- else {
5183
- return false;
5184
- }
5185
- };
5186
- this.getItemData = (data) => {
5187
- const { item, group, uid } = data;
5188
- if (this.template) {
5189
- return {
5190
- group,
5191
- uid,
5192
- item: this.template(item),
5193
- };
5194
- }
5195
- return { item, group, uid };
5196
- };
5197
- this.filterMap = needle => {
5198
- if (needle === "all") {
5199
- return Array.from(this.items);
5200
- }
5201
- return Array.from(this.items).filter(item => needle === item[1].group);
5202
- };
5203
- }
5204
- /**
5205
- * Component lifecycle events.
5206
- */
5207
- componentWillLoad() {
5208
- // look for a <template> region in the duet-editable-table
5209
- this.template = this.getTemplate();
5210
- // take care of the case where groups and actions are defined as html properties instead of javascript objects
5211
- if (typeof this.groups === "string") {
5212
- this.internalGroupArray = sanitizeString(this.groups);
5213
- }
5214
- else {
5215
- this.internalGroupArray = this.groups;
5216
- }
5217
- if (typeof this.actions === "string") {
5218
- this.internalActionsArray = sanitizeString(this.actions);
5219
- }
5220
- else {
5221
- this.internalActionsArray = this.actions;
5222
- }
5223
- inheritGlobalTheme(this);
5224
- }
5225
- /**
5226
- * Method to force an update of a tabular data array.
5227
- * when called the method will rerender the entire tabular structure.
5228
- */
5229
- async updateTable(passedItems = undefined) {
5230
- this.items = new Map(passedItems || this.items);
5231
- this.kick();
5232
- }
5233
- render() {
5234
- return (h$1(Host, { class: {
5235
- "duet-theme-turva": this.theme === "turva",
5236
- } }, this.internalGroupArray.map(group => {
5237
- const currentGroup = this.filterMap(group.id);
5238
- if (!currentGroup.length) {
5239
- return;
5240
- }
5241
- return (h$1("duet-table", { variation: "plain", breakpoint: "none", role: "", margin: this.hideGroups ? "none" : "auto" }, h$1("table", { class: "duet-editable-table", "aria-role": this.accessibleRole }, h$1("thead", { class: "duet-editable-table-header" }, h$1("tr", null, h$1("th", { class: {
5242
- "duet-editable-table-header-hidden": this.hideGroups,
5243
- } }, !this.hideGroups ? (getLocaleString(group.label)) : (h$1("duet-visually-hidden", null, getLocaleString(group.label)))), h$1("th", { class: {
5244
- "duet-editable-table-header-hidden": this.hideGroups,
5245
- } }, h$1("duet-visually-hidden", null, group.actionLabel
5246
- ? getLocaleString(group.actionLabel)
5247
- : getLocaleString(this.actionLabelDefaults))))), h$1("tbody", null, currentGroup.map(dataAsArray => {
5248
- const [key, value] = dataAsArray;
5249
- return (h$1("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 }));
5250
- })))));
5251
- })));
5252
- }
5253
- get element() { return this; }
5254
- static get style() { return duetEditableTableCss; }
5255
- };
5256
-
5257
- 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}";
5258
-
5259
- let DuetEditableTableButton$1 = class extends H {
5260
- constructor() {
5261
- super();
5262
- this.__registerHost();
5263
- this.duetEditableItemAction = createEvent$2(this, "duetEditableItemAction", 7);
5264
- this.isHovering = false;
5265
- /**
5266
- * Theme of the empty state component.
5267
- */
5268
- this.theme = undefined;
5269
- /**
5270
- * action items passed from host component
5271
- * @internal
5272
5289
  */
5273
5290
  this.actions = undefined;
5274
5291
  /**
5275
- * uid that gets passed along when the action is emitted
5276
- * @internal
5277
- */
5278
- this.uid = "";
5279
- /**
5280
- * group associated with action
5281
- * @internal
5282
- */
5283
- this.group = "";
5284
- /**
5285
- * key of the item in the map
5286
- * @internal
5292
+ * Define columns for a table
5293
+ * An alternative to inline HTML table.
5294
+ * required for Sortable tables
5295
+ * @default undefined
5287
5296
  */
5288
- this.keyName = "";
5289
- this.onMouseEnter = () => {
5290
- this.isHovering = true;
5291
- };
5292
- this.onMouseLeave = () => {
5293
- this.isHovering = false;
5294
- };
5295
- this.getColours = (byName = false) => {
5296
- let colorHover = this.actions.color_hover;
5297
- let colorBlur = this.actions.color;
5298
- if (byName) {
5299
- colorHover = getColorByName(this.actions.color_hover, this.theme);
5300
- colorBlur = getColorByName(this.actions.color, this.theme);
5301
- }
5302
- return this.isHovering ? colorHover : colorBlur;
5303
- };
5304
- }
5305
- /**
5306
- /**
5307
- * Component lifecycle events.
5308
- */
5309
- componentWillLoad() {
5310
- inheritGlobalTheme(this);
5311
- }
5312
- /**
5313
- /**
5314
- * private functions
5315
- */
5316
- emitActionEvent(ev) {
5317
- this.duetEditableItemAction.emit({
5318
- originalEvent: ev,
5319
- uid: this.uid,
5320
- group: this.group,
5321
- action: this.actions.id,
5322
- keyName: this.keyName,
5323
- component: "duet-editable-table-item",
5324
- });
5325
- }
5326
- /**
5327
- * render() function
5328
- * Always the last one in the class.
5329
- */
5330
- render() {
5331
- return (h$1("button", { style: {
5332
- "border-color": this.getColours(true),
5333
- }, 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) }, h$1("duet-icon", { class: "duet-editable-table-actions-items-icon", size: "x-small", name: this.actions.icon, color: this.getColours(), margin: "none" })));
5334
- }
5335
- get el() { return this; }
5336
- static get style() { return duetEditableTableButtonCss; }
5337
- };
5338
-
5339
- //simple functional component that renders the data in the table
5340
- const TableData = ({ data, groupId, alignment }, _children) => {
5341
- if (typeof data === "string") {
5342
- return (h("td", { innerHTML: data, class: "duet-editable-table-content", part: `${groupId}content`, style: { verticalAlign: alignment } }));
5343
- }
5344
- else {
5345
- return (h("td", { class: "duet-editable-table-content", part: `${groupId}content`, style: { verticalAlign: alignment } }, data));
5346
- }
5347
- };
5348
-
5349
- const duetEditableTableItemCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{display:table-row;height:32px}.duet-editable-table-content,.duet-editable-table-actions{height:32px;padding:12px 0;vertical-align:middle;break-word:break-all;border-bottom:1px solid #e1e3e6}.duet-editable-table-actions-items{display:flex;justify-content:flex-end}.duet-editable-table-actions-items duet-editable-table-button{padding-left:8px}.duet-editable-table .editable-item-small{font-size:0.75rem;font-weight:400}";
5350
-
5351
- let DuetEditableTableItem$1 = class extends H {
5352
- constructor() {
5353
- super();
5354
- this.__registerHost();
5355
- this.__attachShadow();
5356
- this.duetEditableItemAction = createEvent$2(this, "duetEditableItemAction", 7);
5357
- this.isHovering = false;
5297
+ this.columns = undefined;
5358
5298
  /**
5359
- * Theme of the empty state component.
5299
+ * Define rows for a table
5300
+ * An alternative to inline HTML table.
5301
+ * required for Sortable tables
5302
+ * @default undefined
5360
5303
  */
5361
- this.theme = "";
5304
+ this.rows = undefined;
5362
5305
  /**
5363
- * Actions that can be performed on the element
5306
+ * Controls whether the table is sortable by headers
5364
5307
  */
5365
- this.actions = undefined;
5308
+ this.sortable = false;
5366
5309
  /**
5367
- * GroupId used to pierce the shadowdom - gets concatenated with "content & actions" and used as part="groupIDcontent/actions" to pierce the content/Action item
5368
- * @internal
5310
+ * Optional id that get passed to the table and used to setup ::parts
5369
5311
  */
5370
5312
  this.groupId = "";
5371
5313
  /**
5372
- * Key used to set vertical alignment of action buttons
5314
+ * Theme of the table.
5373
5315
  */
5374
- this.alignment = "middle";
5316
+ this.theme = "";
5375
5317
  /**
5376
- * Key used to identify item, when running actions
5318
+ * Exposes the aria role for optimizing accessibility.
5377
5319
  */
5378
- this.keyName = "";
5320
+ this.accessibleRole = undefined;
5321
+ this.sortableDefaultLabel = {
5322
+ fi: "Järjestä",
5323
+ en: "Click to sort",
5324
+ sv: "Klicka för att sortera",
5325
+ };
5326
+ this.actionColumnLabel = {
5327
+ en: "Actions for rows",
5328
+ fi: "Toiminnot rivillä",
5329
+ sv: "Åtgärder för rader",
5330
+ };
5379
5331
  /**
5380
- * Object of data itemsused to render the entire row
5332
+ * Private methods.
5381
5333
  */
5382
- this.data = undefined;
5383
- }
5384
- watchPropHandler(_newValue, _oldValue) {
5385
- // console.log("The new value of activated is: ", _newValue)
5334
+ this.toggleColumn = (column, e) => {
5335
+ e.preventDefault();
5336
+ const { sort_order, direction, index, key } = column;
5337
+ this.duetTableToggle.emit({
5338
+ sort_order,
5339
+ index,
5340
+ direction,
5341
+ key,
5342
+ component: "duet-editable-table",
5343
+ originalEvent: e,
5344
+ });
5345
+ };
5346
+ this.handleKeyDown = (column, e) => {
5347
+ if (isKeyboardClick(e)) {
5348
+ this.toggleColumn(column, e);
5349
+ }
5350
+ };
5386
5351
  }
5387
5352
  /**
5388
- /**
5389
5353
  * Component lifecycle events.
5390
5354
  */
5391
5355
  componentWillLoad() {
5392
5356
  inheritGlobalTheme(this);
5393
5357
  }
5358
+ createLabel(column) {
5359
+ const { sort_order, direction, index, label } = column;
5360
+ const i18nLabel = getLocaleString(label);
5361
+ if (!this.sortable) {
5362
+ return i18nLabel;
5363
+ }
5364
+ const getButtonIcon = () => {
5365
+ // "action-subtract-small" https://cdn.duetds.com/api/icons/2.2.12/lib/assets/action-subtract-small.svg
5366
+ // "action-arrow-down-small" https://cdn.duetds.com/api/icons/2.2.12/lib/assets/action-arrow-down-small.svg
5367
+ // "action-arrow-up-small" https://cdn.duetds.com/api/icons/2.2.12/lib/assets/action-arrow-up-small.svg
5368
+ if (!!sort_order && direction === 1) {
5369
+ return "action-arrow-down-small";
5370
+ }
5371
+ else if (!!sort_order && direction === -1) {
5372
+ return "action-arrow-up-small";
5373
+ }
5374
+ return "action-subtract-small";
5375
+ };
5376
+ return (h$1("span", { class: "duet-table-label", "data-index": index }, h$1("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)));
5377
+ }
5378
+ getSortedColumns() {
5379
+ //create a new array from sort instead of mutating original
5380
+ return [...this.columns].sort(fieldSorter(["index"]));
5381
+ }
5382
+ getRowSortOrder() {
5383
+ //create a new array from sort instead of mutating original
5384
+ const fields = [...this.columns].sort(fieldSorter(["sort_order"]));
5385
+ //return only key from objects that have sort_order
5386
+ return fields
5387
+ .filter(column => column.sort_order)
5388
+ .map(column => {
5389
+ // add - in-front of descending direction (required by field-sorter)
5390
+ return column.direction === -1 ? `-${column.key}` : column.key;
5391
+ });
5392
+ }
5393
+ renderTableHeader() {
5394
+ if (!this.columns) {
5395
+ return;
5396
+ }
5397
+ const sortedColumns = this.getSortedColumns();
5398
+ return (h$1("tr", { class: {
5399
+ "duet-table-action-header": !!this.actions,
5400
+ } }, sortedColumns.map(column => {
5401
+ if (column.display !== false) {
5402
+ return h$1("th", { scope: "col" }, this.createLabel(column));
5403
+ }
5404
+ }), this.actions && (h$1("th", { scope: "col", class: "duet-table-action-header-heading" }, this.actions && h$1("duet-visually-hidden", null, getLocaleString(this.actionColumnLabel))))));
5405
+ }
5406
+ renderActions(rowItem, index) {
5407
+ // escape early
5408
+ if (!this.actions) {
5409
+ return;
5410
+ }
5411
+ // iterate through actions and add them in the sidebar
5412
+ return (h$1("td", { class: "duet-text-right" }, this.actions.map(actionItem => {
5413
+ return (h$1("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 }));
5414
+ })));
5415
+ }
5416
+ renderTableBody() {
5417
+ const columns = this.getSortedColumns();
5418
+ const rowSortOrder = this.getRowSortOrder();
5419
+ const sortedRows = [...this.rows].sort(fieldSorter(rowSortOrder));
5420
+ // return a tbody with rows for each item in sortedRows
5421
+ return sortedRows.map((row, index) => (h$1("tr", { class: {
5422
+ "duet-table-action-row": !!this.actions,
5423
+ "duet-editable-table-row": true,
5424
+ [`duet-editable-table-row-${this.groupId}`]: true,
5425
+ }, "data-meta": JSON.stringify(row.meta) }, columns.map(column => {
5426
+ //if we don't have any data for this column, try getting an item instead (for backwards compatibility
5427
+ const value = row[column.key] ? row[column.key] : row.item;
5428
+ if (column.display !== false) {
5429
+ return h$1(TableData, { data: value, groupId: this.groupId });
5430
+ }
5431
+ }), this.actions && this.renderActions(row, index))));
5432
+ }
5394
5433
  /**
5395
- /**
5396
- * private functions
5397
- */
5398
- /**
5399
- * render() function
5400
- * Always the last one in the class.
5434
+ * Render Methods
5401
5435
  */
5402
5436
  render() {
5403
- return (h$1(Host, { role: "row" }, h$1(TableData, { data: this.data.item, alignment: this.alignment, groupId: this.groupId }), h$1("td", { class: "duet-editable-table-actions", style: { verticalAlign: this.alignment } }, h$1("div", { class: "duet-editable-table-actions-items", part: `${this.groupId}actions` }, this.actions.map(result => {
5404
- const { map = undefined } = result;
5405
- // if map has been specified, only show the current action if groupID matches the map array
5406
- if (map && !map.includes(this.groupId)) {
5407
- return;
5408
- }
5409
- return (h$1("duet-editable-table-button", { keyName: this.keyName, group: this.data.group, uid: this.data.uid, actions: result, theme: this.theme }));
5410
- })))));
5437
+ return (h$1(Host, { class: {
5438
+ [`duet-editable-table-${this.variation}`]: true,
5439
+ [`duet-editable-table-${this.theme}`]: true,
5440
+ // sticky only valid when in regular table layout
5441
+ "duet-editable-table-scrollable": this.breakpoint === "none-scrollable",
5442
+ "duet-editable-table-sortable": this.sortable,
5443
+ "duet-editable-table-actions": !!this.actions,
5444
+ "duet-m-0": this.margin === "none",
5445
+ "duet-theme-turva": this.theme === "turva",
5446
+ } }, h$1("duet-table", { sticky: this.sticky, stickyDistance: this.stickyDistance, margin: this.margin, theme: this.theme, variation: this.variation, breakpoint: this.breakpoint }, h$1("table", { role: this.accessibleRole }, h$1("caption", null, h$1("slot", { name: "tcaption" })), h$1("thead", null, h$1("tr", null, h$1("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, h$1("slot", { name: "thead-first" }))), this.renderTableHeader(), h$1("tr", null, h$1("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, h$1("slot", { name: "thead-last" })))), h$1("tbody", null, this.renderTableBody()), h$1("tfoot", null, h$1("tr", null, h$1("th", { class: "duet-editable-table-footer-menu", colSpan: 99 }, h$1("slot", { name: "tfoot" }))))))));
5411
5447
  }
5412
- get el() { return this; }
5413
- static get watchers() { return {
5414
- "data": ["watchPropHandler"]
5415
- }; }
5416
- static get style() { return duetEditableTableItemCss; }
5448
+ get element() { return this; }
5449
+ static get style() { return duetEditableTableCss; }
5417
5450
  };
5418
5451
 
5419
5452
  const duetEmptyStateCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%;height:100%}.duet-empty-state{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%;padding:48px;color:#00294d;text-align:center;background:#f5f8fa;border-radius:4px}.duet-empty-state.duet-theme-turva{color:#171c3a;background:#f5f5f7}";
@@ -6096,7 +6129,7 @@ const DuetHeaderHamburger = () => (h("div", { class: "duet-header-hamburger" },
6096
6129
  h("span", { class: "duet-header-bar" }),
6097
6130
  h("span", { class: "duet-header-bar" })));
6098
6131
 
6099
- const duetHeaderCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}@supports (position: -webkit-sticky){:host{position:-webkit-sticky;top:-4rem;z-index:400}}@supports (position: sticky){:host{position:sticky;top:-4rem;z-index:400}}@supports (position: -webkit-sticky){:host(.duet-header-multi-level-desktop-variation){top:0}}@supports (position: sticky){:host(.duet-header-multi-level-desktop-variation){top:0}}.duet-header-reserved-space{height:4rem}@media (min-width: 62em){.duet-header-reserved-space.duet-with-links{height:7rem}}.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{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{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}}@media (min-width: 62em){.duet-header{position:absolute;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}.duet-header.duet-header-inactive{position:fixed}}.duet-header *{-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.duet-header-top{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{z-index:100;padding:0 28px;box-shadow:none}.duet-header-top duet-logo{padding-right:4px}}@media (min-width: 106.25em){.duet-header-top{padding:0 48px}}.duet-theme-turva .duet-header-top{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{box-shadow:none}}.duet-theme-turva .duet-header-top duet-logo{left:-80px !important;margin-top:-8px !important}.duet-header-top .duet-header-region{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{border-color:#cfcfd1}@media (max-width: 35.9375em){.duet-header-top .duet-header-region{display:none}}@media (min-width: 62em){.duet-header-top .duet-header-region{padding-left:19px}}.duet-header-bottom{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{background:#f5f5f7}@media (min-width: 62em){.duet-header-bottom{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{position:relative}}.duet-header-bottom.active{visibility:visible;opacity:1;transition:opacity 300ms ease, visibility 300ms ease}@media (min-width: 62em){.duet-header-bottom{position:relative;transition:none !important}}.duet-header-items,.duet-header-bottom-utils,.duet-header-utils{opacity:0;transition:transform 600ms ease, opacity 600ms ease;transform:translateY(-28px)}@media (min-width: 62em){.duet-header-items,.duet-header-bottom-utils,.duet-header-utils{opacity:1;transition:none !important;transform:none}}.active .duet-header-items,.active .duet-header-bottom-utils,.active .duet-header-utils{opacity:1;transform:translateY(0)}.duet-header-items{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{z-index:100;display:flex;flex-direction:row;padding:0 21.5384615385px}}@media (min-width: 106.25em){.duet-header-items{padding-left:43.6363636364px}}.duet-header-items .duet-header-item-container{border-bottom:1px solid #e1e3e6;border-radius:0}@media (min-width: 62em){.duet-header-items .duet-header-item-container{border:0}}.duet-header-items .duet-header-second-level .duet-header-item{padding:0 40px;border:0}.duet-header-items .duet-header-second-level .duet-header-button{border:0}.duet-header-items .duet-header-second-level .duet-header-dropdown-content{padding:0;border:0}.duet-header-items .duet-header-third-level .duet-header-item{padding:0 75px}.duet-header-items .duet-header-item{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{border-radius:4px}}.duet-theme-turva .duet-header-items .duet-header-item{font-weight:600;color:#171c3a;border-color:#e1e3e6}.duet-header-items .duet-header-item:hover{color:#004d80}.duet-theme-turva .duet-header-items .duet-header-item:hover{color:#444445}.duet-header-items .duet-header-item:focus{outline:0}:host(.user-is-tabbing) .duet-header-items .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-items .duet-header-item: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{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{color:#0077b3}.duet-theme-turva .duet-header-items .duet-header-item.active{color:#c60c30}.duet-header-items .duet-header-item.active:hover{color:#0077b3}.duet-theme-turva .duet-header-items .duet-header-item.active:hover{color:#c60c30}.duet-header-items .duet-header-item.active::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{background:#c60c30}@media (min-width: 62em){.duet-header-items .duet-header-item.active::after{top:auto;left:12px;width:calc(100% - 24px);height:3px}}.duet-header-toggle{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{outline:0}:host(.user-is-tabbing) .duet-header-toggle: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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){.duet-header-toggle{display:none}}.duet-header-hamburger{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{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{background:#171c3a}.duet-header-hamburger .duet-header-bar:nth-child(1){top:0}.duet-header-hamburger .duet-header-bar:nth-child(2),.duet-header-hamburger .duet-header-bar:nth-child(3){top:7px}.duet-header-hamburger .duet-header-bar:nth-child(4){top:14px}button.active .duet-header-hamburger .duet-header-bar:nth-child(1){top:7px;left:50%;width:0%}button.active .duet-header-hamburger .duet-header-bar:nth-child(2){transform:rotate(45deg)}button.active .duet-header-hamburger .duet-header-bar:nth-child(3){transform:rotate(-45deg)}button.active .duet-header-hamburger .duet-header-bar:nth-child(4){top:7px;left:50%;width:0%}.duet-header-utils{display:flex;flex-direction:column;width:100%}@media (min-width: 62em){.duet-header-utils{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{margin-right:36px}}@media (min-width: 62em){.duet-header-bottom-utils{position:absolute;top:0;right:0;z-index:999999999;margin-right:20px}}@media (min-width: 106.25em){.duet-header-bottom-utils{margin-right:36px}}button{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{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{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{color:#171c3a;border-color:#e4e4e6}.duet-header-button:hover{color:#004d80}.duet-theme-turva .duet-header-button:hover{color:#444445}.duet-header-button:focus{outline:0}:host(.user-is-tabbing) .duet-header-button: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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-header-button:active{opacity:0.75}@media (min-width: 62em){.duet-header-button{width:auto;max-width:200px;height:4rem;padding:0 16px;font-size:0.875rem;line-height:4rem;border:0}.duet-header-button::before{position:absolute;top:50%;right:0;width:1px;height:20px;content:\"\";background:#cfd2d4;transform:translateY(-50%)}.duet-theme-turva .duet-header-button::before{background:#cfcfd1}}.duet-header-button.active{color:#0077b3;border-radius:0}.duet-theme-turva .duet-header-button.active{color:#c60c30}.duet-header-button.active:hover{color:#0077b3}.duet-theme-turva .duet-header-button.active:hover{color:#c60c30}@media (min-width: 62em){.duet-header-button.active::after{position:absolute;top:0;bottom:0;left:0;width:3px;content:\"\";background:#0077b3}.duet-theme-turva .duet-header-button.active::after{color:#c60c30}}.duet-header-utils .duet-header-button.duet-header-logout{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{border-color:#171c3a}.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon{margin-right:0.5rem}.duet-header-utils .duet-header-button.duet-header-logout .duet-header-button-label{font-size:0.875rem}@media (min-width: 62em){.duet-header-utils .duet-header-button.duet-header-logout{height:4rem;margin:0;font-weight:400;border:0}.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon{margin-right:0.75rem}}.duet-header-no-action{pointer-events:none}.duet-header-user-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){.duet-header-utils>*:last-child::before,.duet-header-utils>*:last-child button::before{display:none}}@media (min-width: 62em){.duet-header-utils>*:last-child .duet-header-dropdown-content{right:0;left:auto}}.duet-header-language{text-transform:uppercase}.duet-header-language.active,.duet-header-language.active:hover,.duet-header-contact.active,.duet-header-contact.active: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,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active: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,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after{width:100%}}.duet-header-icon{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{margin-right:8px}}.duet-header-caret{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{width:7px;height:7px}}.duet-header-caret duet-icon{width:10px}.duet-header-dropdown-toggle.active .duet-header-caret{transform:translateY(-50%) rotate(180deg)}.duet-header-dropdown-toggle:focus{outline:0}:host(.user-is-tabbing) .duet-header-dropdown-toggle: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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-header-dropdown-toggle:active{outline:none}.duet-header-badge{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{background:#faa40f}.active-bar{color:#0077b3}.active-bar::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}.duet-theme-turva .active-bar::after{background:#c60c30}.duet-header-dropdown{position:relative}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-toggle{z-index:200;padding-right:36px;overflow:hidden;transition:border 300ms ease}}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-toggle::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{background:#c60c30}}.duet-header-dropdown .duet-header-dropdown-toggle.active,.duet-header-dropdown .duet-header-dropdown-toggle.active: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{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{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{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{color:#004d80;border:0}.duet-header-dropdown .duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after{position:absolute;top:auto;bottom:0;left:0;width:100%;height:3px;transform:translateY(0)}}.duet-header-dropdown .duet-header-dropdown-content{display:none;padding-bottom:16px;background:#f3f9fc;border-bottom:1px solid #e1e3e6}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content{background:#f5f5f7;border-color:#e1e3e6}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content{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{min-width:170px}}.duet-header-dropdown .duet-header-dropdown-content.active{display:block}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content.active{visibility:visible;opacity:1;transform:translateZ(0) translateY(0)}}.duet-header-dropdown .duet-header-dropdown-content a: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){color:#171c3a}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content a: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{background:#e6f2f8}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover{background:#f9e6ea}}.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus{outline:0}:host(.user-is-tabbing) .duet-header-dropdown .duet-header-dropdown-content a: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{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{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{font-weight:700}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content a: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{background:#c60c30}}.duet-header-dropdown .duet-header-dropdown-content .duet-header-link-external{margin-left:4px}.duet-header-back .duet-header-top{flex-direction:row;align-items:center;justify-content:center}.duet-header-back duet-button{position:absolute;top:50%;left:36px;transform:translateY(-50%)}@media (max-width: 35.9375em){.duet-header-back duet-button{left:20px;max-width:40px;padding:0 12px;overflow:hidden}}.duet-header-back .duet-header-toggle{display:none !important}.duet-header-skip{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{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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-theme-turva .duet-header-skip{min-width:120px;color:#171c3a}@media (min-width: 106.25em){.duet-header-skip{margin-left:20px}}.duet-header-skip:focus{top:12px;left:20px;width:auto;height:auto;outline:0;opacity:1}.duet-header-multi-level-desktop{height:6rem}.duet-header-multi-level-desktop .duet-header-top{justify-content:space-between;height:6rem}.duet-header-multi-level-desktop .duet-header-button{height:6rem}.duet-header-multi-level-desktop .logo-and-segment{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{z-index:400;margin-left:2rem}.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content{background:#f3f9fc}.duet-header-multi-level-desktop .logo-and-segment button{align-items:flex-start;height:2rem;font-weight:600;line-height:1rem}.duet-header-multi-level-desktop .logo-and-segment button::before{display:none}.duet-header-multi-level-desktop .logo-and-segment .duet-header-caret{top:25%}.duet-header-multi-level-desktop-nav{display:flex}.duet-header-multi-level-desktop-nav .duet-header-dropdown{position:static}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle{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{color:#0077b3}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content{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{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{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{font-weight:600;color:#0077b3;background:none}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active::after{transform:translateY(0)}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a .duet-header-icon{margin:0}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content .duet-header-badge{position:absolute;margin-top:-2rem;margin-right:-2.25rem}.duet-header-multi-level-desktop-nav button::before{display:none}.duet-header-multi-level-desktop-nav .duet-header-caret{display:none}.duet-header-multi-level-desktop-utils{display:flex;flex-basis:0;flex-grow:1;justify-content:flex-end}.duet-header-multi-level-desktop-utils>:last-child::before{display:none}.duet-header-multi-level-desktop-utils .duet-header-dropdown{z-index:400}.duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content{background:#f3f9fc}.duet-header-multi-level-desktop-utils .duet-header-button-label,.duet-header-multi-level-desktop-utils .duet-header-dropdown-label{display:none}@media (min-width: 64.0625em){.duet-header-multi-level-desktop-utils .duet-header-button-label,.duet-header-multi-level-desktop-utils .duet-header-dropdown-label{display:initial}}.duet-header-multi-level-desktop .duet-theme-turva .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content{background:#fcf3f4}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active{color:#c60c30}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content{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{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{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{background:#fcf3f4}";
6132
+ const duetHeaderCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}@supports (position: -webkit-sticky){:host{position:-webkit-sticky;top:-4rem;z-index:400}}@supports (position: sticky){:host{position:sticky;top:-4rem;z-index:400}}@supports (position: -webkit-sticky){:host(.duet-header-multi-level-desktop-variation){top:0}}@supports (position: sticky){:host(.duet-header-multi-level-desktop-variation){top:0}}.duet-header-reserved-space{height:4rem}@media (min-width: 62em){.duet-header-reserved-space.duet-with-links{height:7rem}}.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{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{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13)}}@media (min-width: 62em){.duet-header{position:absolute;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07)}.duet-header.duet-header-inactive{position:fixed}}.duet-header *{-webkit-tap-highlight-color:rgba(0, 0, 0, 0)}.duet-header-top{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{z-index:100;padding:0 28px;box-shadow:none}.duet-header-top duet-logo{padding-right:4px}}@media (min-width: 106.25em){.duet-header-top{padding:0 48px}}.duet-theme-turva .duet-header-top{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{box-shadow:none}}.duet-theme-turva .duet-header-top duet-logo{left:-80px !important;margin-top:-8px !important}.duet-header-top .duet-header-region{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{border-color:#cfcfd1}@media (max-width: 35.9375em){.duet-header-top .duet-header-region{display:none}}@media (min-width: 62em){.duet-header-top .duet-header-region{padding-left:19px}}.duet-header-bottom{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{background:#f5f5f7}@media (min-width: 62em){.duet-header-bottom{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{position:relative}}.duet-header-bottom.active{visibility:visible;opacity:1;transition:opacity 300ms ease, visibility 300ms ease}@media (min-width: 62em){.duet-header-bottom{position:relative;transition:none !important}}.duet-header-items,.duet-header-bottom-utils,.duet-header-utils{opacity:0;transition:transform 600ms ease, opacity 600ms ease;transform:translateY(-28px)}@media (min-width: 62em){.duet-header-items,.duet-header-bottom-utils,.duet-header-utils{opacity:1;transition:none !important;transform:none}}.active .duet-header-items,.active .duet-header-bottom-utils,.active .duet-header-utils{opacity:1;transform:translateY(0)}.duet-header-items{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{z-index:100;display:flex;flex-direction:row;padding:0 21.5384615385px}}@media (min-width: 106.25em){.duet-header-items{padding-left:43.6363636364px}}.duet-header-items .duet-header-item-container{border-bottom:1px solid #e1e3e6;border-radius:0}@media (min-width: 62em){.duet-header-items .duet-header-item-container{border:0}}.duet-header-items .duet-header-second-level .duet-header-item{padding:0 40px;border:0}.duet-header-items .duet-header-second-level .duet-header-button{border:0}.duet-header-items .duet-header-second-level .duet-header-dropdown-content{padding:0;border:0}.duet-header-items .duet-header-third-level .duet-header-item{padding:0 75px}.duet-header-items .duet-header-item{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{border-radius:4px}}.duet-theme-turva .duet-header-items .duet-header-item{font-weight:600;color:#171c3a;border-color:#e1e3e6}.duet-header-items .duet-header-item:hover{color:#004d80}.duet-theme-turva .duet-header-items .duet-header-item:hover{color:#444445}.duet-header-items .duet-header-item:focus{outline:0}:host(.user-is-tabbing) .duet-header-items .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-items .duet-header-item: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{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{color:#0077b3}.duet-theme-turva .duet-header-items .duet-header-item.active{color:#c60c30}.duet-header-items .duet-header-item.active:hover{color:#0077b3}.duet-theme-turva .duet-header-items .duet-header-item.active:hover{color:#c60c30}.duet-header-items .duet-header-item.active::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{background:#c60c30}@media (min-width: 62em){.duet-header-items .duet-header-item.active::after{top:auto;left:12px;width:calc(100% - 24px);height:3px}}.duet-header-toggle{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{outline:0}:host(.user-is-tabbing) .duet-header-toggle: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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 62em){.duet-header-toggle{display:none}}.duet-header-hamburger{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{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{background:#171c3a}.duet-header-hamburger .duet-header-bar:nth-child(1){top:0}.duet-header-hamburger .duet-header-bar:nth-child(2),.duet-header-hamburger .duet-header-bar:nth-child(3){top:7px}.duet-header-hamburger .duet-header-bar:nth-child(4){top:14px}button.active .duet-header-hamburger .duet-header-bar:nth-child(1){top:7px;left:50%;width:0%}button.active .duet-header-hamburger .duet-header-bar:nth-child(2){transform:rotate(45deg)}button.active .duet-header-hamburger .duet-header-bar:nth-child(3){transform:rotate(-45deg)}button.active .duet-header-hamburger .duet-header-bar:nth-child(4){top:7px;left:50%;width:0%}.duet-header-utils{display:flex;flex-direction:column;width:100%}@media (min-width: 62em){.duet-header-utils{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{margin-right:36px}}@media (min-width: 62em){.duet-header-bottom-utils{position:absolute;top:0;right:0;z-index:999999999;margin-right:20px}}@media (min-width: 106.25em){.duet-header-bottom-utils{margin-right:36px}}button{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{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{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{color:#171c3a;border-color:#e4e4e6}.duet-header-button:hover{color:#004d80}.duet-theme-turva .duet-header-button:hover{color:#444445}.duet-header-button:focus{outline:0}:host(.user-is-tabbing) .duet-header-button: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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-header-button:active{opacity:0.75}@media (min-width: 62em){.duet-header-button{width:auto;max-width:200px;height:4rem;padding:0 16px;font-size:0.875rem;line-height:4rem;border:0}.duet-header-button::before{position:absolute;top:50%;right:0;width:1px;height:20px;content:\"\";background:#cfd2d4;transform:translateY(-50%)}.duet-theme-turva .duet-header-button::before{background:#cfcfd1}}.duet-header-button.active{color:#0077b3;border-radius:0}.duet-theme-turva .duet-header-button.active{color:#c60c30}.duet-header-button.active:hover{color:#0077b3}.duet-theme-turva .duet-header-button.active:hover{color:#c60c30}@media (min-width: 62em){.duet-header-button.active::after{position:absolute;top:0;bottom:0;left:0;width:3px;content:\"\";background:#0077b3}.duet-theme-turva .duet-header-button.active::after{color:#c60c30}}.duet-header-utils .duet-header-button.duet-header-logout{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{border-color:#171c3a}.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon{margin-right:0.5rem}.duet-header-utils .duet-header-button.duet-header-logout .duet-header-button-label{font-size:0.875rem}@media (min-width: 62em){.duet-header-utils .duet-header-button.duet-header-logout{height:4rem;margin:0;font-weight:400;border:0}.duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon{margin-right:0.75rem}}.duet-header-no-action{pointer-events:none}.duet-header-user-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 62em){.duet-header-utils>*:last-child::before,.duet-header-utils>*:last-child button::before{display:none}}@media (min-width: 62em){.duet-header-utils>*:last-child .duet-header-dropdown-content{right:0;left:auto}}.duet-header-language{text-transform:uppercase}.duet-header-language.active,.duet-header-language.active:hover,.duet-header-contact.active,.duet-header-contact.active:hover{color:inherit}.duet-theme-turva .duet-header-language.active,.duet-theme-turva .duet-header-language.active:hover,.duet-theme-turva .duet-header-contact.active,.duet-theme-turva .duet-header-contact.active: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,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active: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,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-contact.duet-header-dropdown-toggle.active:hover::after{width:100%}}.duet-header-icon{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{margin-right:8px}}.duet-header-caret{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{width:7px;height:7px}}.duet-header-caret duet-icon{width:10px}.duet-header-dropdown-toggle.active .duet-header-caret{transform:translateY(-50%) rotate(180deg)}.duet-header-dropdown-toggle:focus{outline:0}:host(.user-is-tabbing) .duet-header-dropdown-toggle: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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-header-dropdown-toggle:active{outline:none}.duet-header-badge{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{background:#faa40f}.active-bar{color:#0077b3}.active-bar::after{position:absolute;top:0;bottom:0;left:0;width:4px;content:\"\";background:#0077b3}.duet-theme-turva .active-bar::after{background:#c60c30}.duet-header-dropdown{position:relative}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-toggle{z-index:200;padding-right:36px;overflow:hidden;transition:border 300ms ease}}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-toggle::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{background:#c60c30}}.duet-header-dropdown .duet-header-dropdown-toggle.active,.duet-header-dropdown .duet-header-dropdown-toggle.active: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{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{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{border-color:#f5f5f7}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-toggle.active,.duet-header-dropdown .duet-header-dropdown-toggle.active:hover{color:#004d80;border:0}.duet-header-dropdown .duet-header-dropdown-toggle.active::after,.duet-header-dropdown .duet-header-dropdown-toggle.active:hover::after{position:absolute;top:auto;bottom:0;left:0;width:100%;height:3px;transform:translateY(0)}}.duet-header-dropdown .duet-header-dropdown-content{display:none;padding-bottom:16px;background:#f3f9fc;border-bottom:1px solid #e1e3e6}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content{background:#f5f5f7;border-color:#e1e3e6}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content{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{min-width:170px}}.duet-header-dropdown .duet-header-dropdown-content.active{display:block}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content.active{visibility:visible;opacity:1;transform:translateZ(0) translateY(0)}}.duet-header-dropdown .duet-header-dropdown-content a: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){color:#171c3a}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content a: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{background:#e6f2f8}.duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover{background:#f9e6ea}}.duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus{outline:0}:host(.user-is-tabbing) .duet-header-dropdown .duet-header-dropdown-content a: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{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{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{font-weight:700}@media (min-width: 62em){.duet-header-dropdown .duet-header-dropdown-content a: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{background:#c60c30}}.duet-header-dropdown .duet-header-dropdown-content .duet-header-link-external{margin-left:4px}.duet-header-back .duet-header-top{flex-direction:row;align-items:center;justify-content:center}.duet-header-back duet-button{position:absolute;top:50%;left:36px;transform:translateY(-50%)}@media (max-width: 35.9375em){.duet-header-back duet-button{left:20px;max-width:40px;padding:0 12px;overflow:hidden}}.duet-header-back .duet-header-toggle{display:none !important}.duet-header-skip{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{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{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-theme-turva .duet-header-skip{min-width:120px;color:#171c3a}@media (min-width: 106.25em){.duet-header-skip{margin-left:20px}}.duet-header-skip:focus{top:12px;left:20px;width:auto;height:auto;outline:0;opacity:1}.duet-header-multi-level-desktop{height:6rem}.duet-header-multi-level-desktop .duet-header-top{justify-content:space-between;height:6rem}.duet-header-multi-level-desktop .duet-header-button{height:6rem}.duet-header-multi-level-desktop .logo-and-segment{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{z-index:400;margin-left:2rem}.duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content{background:#f3f9fc}.duet-header-multi-level-desktop .logo-and-segment button{align-items:flex-start;height:2rem;font-weight:600;line-height:1rem}.duet-header-multi-level-desktop .logo-and-segment button::before{display:none}.duet-header-multi-level-desktop .logo-and-segment .duet-header-caret{top:25%}.duet-header-multi-level-desktop-nav{display:flex}.duet-header-multi-level-desktop-nav .duet-header-dropdown{position:static}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle{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{color:#0077b3}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content{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{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{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{font-weight:600;color:#0077b3;background:none}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active::after{transform:translateY(0)}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a .duet-header-icon{margin:0}.duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content .duet-header-badge{position:absolute;margin-top:-2rem;margin-right:-2.25rem}.duet-header-multi-level-desktop-nav button::before{display:none}.duet-header-multi-level-desktop-nav .duet-header-caret{display:none}.duet-header-multi-level-desktop-utils{display:flex;flex-basis:0;flex-grow:1;justify-content:flex-end}.duet-header-multi-level-desktop-utils>:last-child::before{display:none}.duet-header-multi-level-desktop-utils .duet-header-dropdown{z-index:400}.duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content{background:#f3f9fc}.duet-header-multi-level-desktop-utils .duet-header-button-label,.duet-header-multi-level-desktop-utils .duet-header-dropdown-label{display:none}@media (min-width: 64.0625em){.duet-header-multi-level-desktop-utils .duet-header-button-label,.duet-header-multi-level-desktop-utils .duet-header-dropdown-label{display:initial}}.duet-header-multi-level-desktop .duet-theme-turva .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content{background:#fcf3f4}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active{color:#c60c30}.duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content{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{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{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{background:#fcf3f4}";
6100
6133
 
6101
6134
  const createEvent = (ev, data) => ({
6102
6135
  component: "duet-header",
@@ -6563,7 +6596,7 @@ let DuetHeader$1 = class extends H {
6563
6596
  "duet-theme-turva": this.theme === "turva",
6564
6597
  "duet-header-back": true,
6565
6598
  "duet-header-inactive": true,
6566
- } }, h$1("div", { class: "duet-header-top" }, skipToLabel, h$1("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, h$1("slot", { name: "logo-utility" }))))));
6599
+ }, part: "header" }, h$1("div", { class: "duet-header-top" }, skipToLabel, h$1("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, h$1("slot", { name: "logo-utility" }))))));
6567
6600
  }
6568
6601
  // multi level desktop variation
6569
6602
  const itemsHaveSubItems = this.processedItems && this.processedItems.some(item => item.items && item.items.length > 0);
@@ -6580,7 +6613,7 @@ let DuetHeader$1 = class extends H {
6580
6613
  "duet-header": true,
6581
6614
  "duet-theme-turva": this.theme === "turva",
6582
6615
  "duet-header-inactive": !this.processedItems,
6583
- } }, h$1("div", { class: "duet-header-top" }, skipToLabel, h$1("div", { class: "logo-and-segment" }, largeLogo, this.processedItems && (h$1(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 => (h$1("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 && (h$1("div", { class: "duet-header-icon" }, h$1("duet-icon", { margin: "none", size: "x-small", name: item.icon, color: "currentColor" }))), h$1("span", null, item.label), item.badge && h$1("div", { class: "duet-header-badge" }))))))), h$1("nav", { class: "duet-header-multi-level-desktop-nav" }, activeSegment.items &&
6616
+ }, part: "header" }, h$1("div", { class: "duet-header-top" }, skipToLabel, h$1("div", { class: "logo-and-segment" }, largeLogo, this.processedItems && (h$1(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 => (h$1("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 && (h$1("div", { class: "duet-header-icon" }, h$1("duet-icon", { margin: "none", size: "x-small", name: item.icon, color: "currentColor" }))), h$1("span", null, item.label), item.badge && h$1("div", { class: "duet-header-badge" }))))))), h$1("nav", { class: "duet-header-multi-level-desktop-nav" }, activeSegment.items &&
6584
6617
  activeSegment.items
6585
6618
  .filter(secondLevelItem => secondLevelItem.items && secondLevelItem.items.length > 0)
6586
6619
  .map((secondLevelItem, secondLevelItemIndex) => {
@@ -6606,7 +6639,7 @@ let DuetHeader$1 = class extends H {
6606
6639
  "duet-header": true,
6607
6640
  "duet-theme-turva": this.theme === "turva",
6608
6641
  "duet-header-inactive": !this.processedItems,
6609
- } }, h$1("div", { class: "duet-header-top" }, skipToLabel, logo, h$1("slot", { name: "logo-utility" }, this.region && h$1("div", { class: "duet-header-region" }, this.region)), (this.processedItems ||
6642
+ }, part: "header" }, h$1("div", { class: "duet-header-top" }, skipToLabel, logo, h$1("slot", { name: "logo-utility" }, this.region && h$1("div", { class: "duet-header-region" }, this.region)), (this.processedItems ||
6610
6643
  languageDropdown ||
6611
6644
  contactDropdown ||
6612
6645
  this.processedSession ||
@@ -8597,7 +8630,7 @@ const shouldDisplayNavigation = (visibleItems, total, take) => {
8597
8630
  return true;
8598
8631
  };
8599
8632
 
8600
- const duetPaginationCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}.duet-pagination-nav{position:relative}.duet-pagination,.duet-pagination li{display:flex;flex-wrap:wrap;gap:0.1rem;align-items:center}.duet-pagination-item-is-active .duet-pagination-page-number{border-bottom-color:inherit;border-bottom-style:solid;border-bottom-width:2px}.duet-pagination duet-button{width:30px;min-width:36px;font-weight:600;text-decoration:none;border-left-width:0}.duet-pagination-overlay{position:absolute;top:1rem;z-index:300;width:100%;text-align:center}.duet-pagination.duet-pagination-is-dimmed{opacity:0.5}.duet-pagination-page-button{white-space:nowrap}.duet-pagination-page-button 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 .duet-pagination-page-button button{color:#171c3a;background:#f5f5f7}.duet-pagination-page-button button duet-icon{display:block}@media (max-width: 35.9375em){.duet-pagination-page-button button{width:40px;height:40px}}.duet-pagination-page-button button:not(:disabled):hover{background:#e9ecee !important}.duet-theme-turva .duet-pagination-page-button button:not(:disabled):hover{background:#e9e9eb !important}.duet-pagination-page-button button:focus{outline:0;box-shadow:0 0 0 2px #0077b3}.duet-theme-turva .duet-pagination-page-button button:focus{box-shadow:0 0 0 2px #171c3a}.duet-pagination-page-button button:active:focus{background:#dddfe1;box-shadow:none}.duet-theme-turva .duet-pagination-page-button button:active:focus{background:#ddddde}.duet-pagination-page-button button:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}.duet-theme-turva .duet-pagination-page-button button:disabled{color:#747475;background:#f5f5f7}";
8633
+ const duetPaginationCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}.duet-pagination-nav{position:relative}.duet-pagination ::part(button){border:0}.duet-pagination,.duet-pagination li{display:flex;flex-wrap:wrap;gap:0.1rem;align-items:center}.duet-pagination-item-is-active .duet-pagination-page-number{border-bottom-color:inherit;border-bottom-style:solid;border-bottom-width:2px}.duet-pagination duet-button{width:30px;min-width:36px;font-weight:600;text-decoration:none;border-left-width:0}.duet-pagination-overlay{position:absolute;top:1rem;z-index:300;width:100%;text-align:center}.duet-pagination.duet-pagination-is-dimmed{opacity:0.5}";
8601
8634
 
8602
8635
  let DuetPagination$1 = class extends H {
8603
8636
  constructor() {
@@ -8625,10 +8658,14 @@ let DuetPagination$1 = class extends H {
8625
8658
  * Characters to use for the jump buttons.
8626
8659
  */
8627
8660
  this.jumpString = "...";
8661
+ /**
8662
+ * Variation of the paginator (compact and default supported)
8663
+ */
8664
+ this.variation = "default";
8628
8665
  /**
8629
8666
  * Default pagination labels
8630
8667
  */
8631
- this.ariaLabelsDefaults = {
8668
+ this.accessibleLabelsDefaults = {
8632
8669
  en: {
8633
8670
  next_page: "Next page",
8634
8671
  previous_page: "Previous page",
@@ -8669,7 +8706,7 @@ let DuetPagination$1 = class extends H {
8669
8706
  /**
8670
8707
  * Default pagination labels
8671
8708
  */
8672
- this.ariaLabels = getLocaleString(this.ariaLabelsDefaults);
8709
+ this.accessibleLabels = getLocaleString(this.accessibleLabelsDefaults);
8673
8710
  /**
8674
8711
  * The size of the take, when paginating.
8675
8712
  */
@@ -8838,29 +8875,35 @@ let DuetPagination$1 = class extends H {
8838
8875
  "duet-pagination-item-is-active": i === this.current,
8839
8876
  }, role: "menuitem" }, h$1("duet-button", { class: {
8840
8877
  "duet-pagination-link": true,
8841
- }, 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) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": true }, i))));
8878
+ }, 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) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": true }, i))));
8842
8879
  } while (i < this.visibleItems + this.internalSectionIndex * this.visibleItems);
8843
8880
  return items;
8844
8881
  }
8845
8882
  shouldDisplayNavigation() {
8846
- return shouldDisplayNavigation(this.visibleItems, this.total, this.take);
8883
+ if (this.variation !== "compact") {
8884
+ return shouldDisplayNavigation(this.visibleItems, this.total, this.take);
8885
+ }
8886
+ return false;
8847
8887
  }
8848
8888
  /**
8849
8889
  * render() function
8850
8890
  * Always the last one in the class.
8851
8891
  */
8852
8892
  render() {
8853
- return (h$1(Host, { onKeyDown: e => this.onKeyboardDown(e) }, h$1("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 !== "" && (h$1("div", { "aria-live": "assertive", "aria-relevant": "text", class: "duet-pagination-overlay", "aria-label": `${this.ariaLabels.jump_to} ${this.numbersStore}`, part: "navigation-overlay" }, h$1("duet-badge", null, "jump to page : ", this.numbersStore))), h$1("ol", { id: this.listId, class: {
8893
+ return (h$1(Host, { onKeyDown: e => this.onKeyboardDown(e) }, h$1("nav", { role: "navigation", "aria-labelledby": this.listId, "aria-describedby": this.listId, ref: el => (this.nativeNav = el), "aria-controls": this.ariaControls, class: {
8894
+ "duet-pagination-nav": true,
8895
+ [`duet-pagination-variation-${this.variation}`]: true,
8896
+ } }, this.numbersStore !== "" && (h$1("div", { "aria-live": "assertive", "aria-relevant": "text", class: "duet-pagination-overlay", "aria-label": `${this.accessibleLabels.jump_to} ${this.numbersStore}`, part: "navigation-overlay" }, h$1("duet-badge", null, "jump to page : ", this.numbersStore))), h$1("ol", { id: this.listId, class: {
8854
8897
  "duet-pagination": true,
8855
8898
  "duet-pagination-is-dimmed": this.numbersStore !== "",
8856
- }, role: "menubar", "aria-label": this.ariaLabels.pagination_label, "aria-description": this.ariaLabels.description }, h$1("li", { class: {
8899
+ }, role: "menubar", "aria-label": this.accessibleLabels.pagination_label, "aria-description": this.accessibleLabels.description }, h$1("li", { class: {
8857
8900
  "duet-pagination-page-button": true,
8858
8901
  "duet-pagination-button-first": true,
8859
- }, role: "menuitem", part: "navigation-arrow" }, h$1("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 }, h$1("duet-icon", { name: "action-arrow-left-small", color: "currentColor", margin: "none", size: "xx-small" }))), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (h$1(Fragment, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("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) }, h$1("div", { class: "duet-pagination-page-number" }, "1"))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("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) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))))), this.renderPageNumbers(), this.internalSectionIndex !== this.totalPages / this.visibleItems - 1 && this.shouldDisplayNavigation() && (h$1(Fragment, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("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) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("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) }, h$1("div", { class: "duet-pagination-page-number" }, this.totalPages))))), h$1("li", { class: {
8902
+ }, role: "menuitem", part: "navigation-arrow" }, h$1("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() && (h$1(Fragment, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("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) }, h$1("div", { class: "duet-pagination-page-number" }, "1"))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("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) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))))), this.renderPageNumbers(), this.internalSectionIndex !== this.totalPages / this.visibleItems - 1 && this.shouldDisplayNavigation() && (h$1(Fragment, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("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) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("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) }, h$1("div", { class: "duet-pagination-page-number" }, this.totalPages))))), h$1("li", { class: {
8860
8903
  "duet-pagination-page-button": true,
8861
8904
  "duet-pagination-button-last": true,
8862
- }, role: "menuitem", part: "navigation-arrow" }, h$1("button", { disabled: this.current === this.totalPages &&
8863
- 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) }, h$1("duet-icon", { name: "action-arrow-right-small", color: "currentColor", margin: "none", size: "xx-small" })))))));
8905
+ }, role: "menuitem", part: "navigation-arrow" }, h$1("duet-action-button", { disabled: this.current === this.totalPages &&
8906
+ 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" }))))));
8864
8907
  }
8865
8908
  get element() { return this; }
8866
8909
  static get watchers() { return {
@@ -9400,7 +9443,7 @@ let DuetRangeSlider$1 = class extends H {
9400
9443
  static get style() { return duetRangeSliderCss; }
9401
9444
  };
9402
9445
 
9403
- const duetRangeStepperCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}.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{white-space:nowrap}.duet-range-stepper 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 .duet-range-stepper button{color:#171c3a;background:#f5f5f7}.duet-range-stepper button duet-icon{display:block}@media (max-width: 35.9375em){.duet-range-stepper button{width:40px;height:40px}}.duet-range-stepper button:not(:disabled):hover{background:#e9ecee !important}.duet-theme-turva .duet-range-stepper button:not(:disabled):hover{background:#e9e9eb !important}.duet-range-stepper button:focus{outline:0;box-shadow:0 0 0 2px #0077b3}.duet-theme-turva .duet-range-stepper button:focus{box-shadow:0 0 0 2px #171c3a}.duet-range-stepper button:active:focus{background:#dddfe1;box-shadow:none}.duet-theme-turva .duet-range-stepper button:active:focus{background:#ddddde}.duet-range-stepper button:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}.duet-theme-turva .duet-range-stepper button:disabled{color:#747475;background:#f5f5f7}";
9446
+ const duetRangeStepperCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}.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{white-space:nowrap}.duet-range-stepper .duet-range-step-counter{font-weight:600;color:#00294d}.duet-range-stepper ::part(button){border:0}";
9404
9447
 
9405
9448
  let DuetRangeStepper$1 = class extends H {
9406
9449
  constructor() {
@@ -9547,7 +9590,7 @@ let DuetRangeStepper$1 = class extends H {
9547
9590
  return (h$1("div", { class: {
9548
9591
  "duet-range-stepper": true,
9549
9592
  "duet-theme-turva": this.theme === "turva",
9550
- }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, h$1("span", { class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), h$1("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" }, h$1("duet-icon", { name: "action-arrow-left-small", color: "currentColor", margin: "none", size: "xx-small" })), h$1("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" }, h$1("duet-icon", { name: "action-arrow-right-small", color: "currentColor", margin: "none", size: "xx-small" }))));
9593
+ }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, h$1("span", { class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), h$1("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" }), h$1("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" })));
9551
9594
  }
9552
9595
  get element() { return this; }
9553
9596
  static get watchers() { return {
@@ -10350,7 +10393,7 @@ let DuetTabGroup$1 = class extends H {
10350
10393
  };
10351
10394
  this.renderTab = () => {
10352
10395
  const renderedTabs = this.tabs.map((element, index) => {
10353
- return (h$1("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), part: `${this.identifier}-button`, type: "button", class: {
10396
+ return (h$1("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), part: `${this.identifier}-button ${element.selected ? `${this.identifier}-button--selected` : ""}`, type: "button", class: {
10354
10397
  "duet-p-0": this.padding === "none",
10355
10398
  "duet-tab-button": true,
10356
10399
  selected: element.selected,
@@ -10473,7 +10516,7 @@ let DuetTabGroup$1 = class extends H {
10473
10516
  static get style() { return duetTabGroupCss; }
10474
10517
  };
10475
10518
 
10476
- 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)}";
10519
+ 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}";
10477
10520
 
10478
10521
  // remove wrapping speech marks.
10479
10522
  // media query tokens are wrapped in speech marks,
@@ -10534,9 +10577,9 @@ let DuetTable$1 = class extends H {
10534
10577
  }
10535
10578
  connectedCallback() {
10536
10579
  this.mq = matchMedia(breakpointToToken[this.breakpoint]);
10537
- this.mq.addEventListener("change", this.handleMediaQueryChange);
10580
+ this.mq.addEventListener("change", debounce(this.handleMediaQueryChange, 50));
10538
10581
  this.handleMediaQueryChange(this.mq);
10539
- this.observer = new MutationObserver(() => this.copyHeadingsToCells());
10582
+ this.observer = new MutationObserver(() => debounce(this.copyHeadingsToCells(), 50));
10540
10583
  this.observer.observe(this.element, {
10541
10584
  childList: true,
10542
10585
  subtree: true,
@@ -10567,6 +10610,9 @@ let DuetTable$1 = class extends H {
10567
10610
  this.mq = null;
10568
10611
  this.matchesBreakpoint = true;
10569
10612
  }
10613
+ /**
10614
+ * Local methods.
10615
+ */
10570
10616
  copyHeadingsToCells() {
10571
10617
  const headingElements = this.element.querySelectorAll("thead th");
10572
10618
  const rowElements = this.element.querySelectorAll("tbody tr");
@@ -11466,7 +11512,7 @@ const validateFile = (item, validators) => {
11466
11512
  if (item) {
11467
11513
  const { name, type, size } = item;
11468
11514
  const mime = validateFileMime(type, allowedMimetypes);
11469
- const ext = validateFileExtension(name, allowedExtensions);
11515
+ const ext = validateFileExtension(name.toLowerCase(), allowedExtensions);
11470
11516
  const bytes = validateFileSize(size, maxBytes);
11471
11517
  if (!mime) {
11472
11518
  errorMessage = getError("duet-upload-101");
@@ -11546,7 +11592,7 @@ const makeXhrRequest = ({ payload, options, onFailure, onSuccess, onProgress })
11546
11592
  return xhr;
11547
11593
  };
11548
11594
 
11549
- const duetUploadCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}::slotted([slot=header]){margin-bottom:16px}::slotted([slot=fileheader]){margin:16px 0 0 0}::slotted([slot=filefooter]){margin-top:16px}.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{font-size:0.75rem;font-weight:400}.duet-upload-filelist{margin-bottom:25px}.duet-upload-filelist-empty{display:flex;align-items:center;justify-content:center;width:100%;height:75px;margin:0 auto;font-size:1rem;font-weight:400;background-color:#f5f8fa}";
11595
+ const duetUploadCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}::slotted([slot=header]){margin-bottom:16px}::slotted([slot=fileheader]){margin:16px 0 0 0}::slotted([slot=filefooter]){margin-top:16px}.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{font-size:0.75rem;font-weight:400}.duet-upload-filelist{margin-bottom:25px}.duet-upload-filelist-empty{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{display:none}.duet-upload-editable-table tbody .duet-upload-editable-table-data{padding:0 !important;border:0}.duet-upload-editable-table duet-editable-table tfoot,.duet-upload-editable-table duet-editable-table thead{display:none}.duet-upload-editable-table duet-editable-table .duet-editable-table-content{padding-right:0 !important;padding-left:0 !important}.duet-upload-editable-table duet-editable-table duet-table .duet-table-action-row td{padding:0.75rem 0 !important}.duet-upload-editable-table duet-editable-table duet-table .duet-table-action-row td:last-child{padding-right:0 !important}.duet-upload-editable-table duet-editable-table .duet-editable-table-row-inprogress duet-action-button::part(button){border:0}";
11550
11596
 
11551
11597
  let DuetUpload$1 = class extends H {
11552
11598
  constructor() {
@@ -11562,25 +11608,6 @@ let DuetUpload$1 = class extends H {
11562
11608
  this.duetCancel = createEvent$2(this, "duetCancel", 3);
11563
11609
  this.duetProgress = createEvent$2(this, "duetProgress", 3);
11564
11610
  this.duetUpload = createEvent$2(this, "duetUpload", 3);
11565
- /**
11566
- * Own Properties
11567
- */
11568
- this.buttonId = createID("DuetButton");
11569
- this.labelId = createID("DuetLabel");
11570
- this.uploadId = createID("DuetUpload");
11571
- this.editableTableId = createID("DuetEditableTable");
11572
- this.filesInProgress = new Map();
11573
- this.fileMaxReached = false;
11574
- this.bytesMaxReached = false;
11575
- this.internalStatusMessageLabel = undefined;
11576
- /**
11577
- * Properties
11578
- */
11579
- this.DefaultGroups = {
11580
- inprogress: "inprogress",
11581
- success: "success",
11582
- failure: "failure",
11583
- };
11584
11611
  /**
11585
11612
  * State() variables
11586
11613
  */
@@ -11602,8 +11629,9 @@ let DuetUpload$1 = class extends H {
11602
11629
  {
11603
11630
  icon: "action-delete",
11604
11631
  color: "color-danger",
11605
- color_hover: "primary-dark",
11606
- id: "delete",
11632
+ size: "x-small",
11633
+ background: "gray-lightest",
11634
+ name: "delete",
11607
11635
  map: ["success", "failure"],
11608
11636
  label: {
11609
11637
  fi: "Poista tiedosto",
@@ -11614,8 +11642,9 @@ let DuetUpload$1 = class extends H {
11614
11642
  {
11615
11643
  icon: "navigation-close",
11616
11644
  color: "primary",
11617
- color_hover: "primary-dark",
11618
- id: "cancel",
11645
+ size: "x-small",
11646
+ background: "gray-lightest",
11647
+ name: "cancel",
11619
11648
  map: ["inprogress"],
11620
11649
  label: {
11621
11650
  fi: "Keskeytä lähetys",
@@ -11685,8 +11714,8 @@ let DuetUpload$1 = class extends H {
11685
11714
  inProgressWithErrors: "Uploading {filesInProgress}, {filesUploaded} uploaded of {filesTotal}, {filesWithErrors} failed",
11686
11715
  done: "All {filesTotal} added successfully",
11687
11716
  doneWithErrors: "Action completed, {filesUploaded} has been added successfully, {filesWithErrors} had errors",
11688
- files: "tiedostoa",
11689
- file: "tiedosto",
11717
+ files: "File",
11718
+ file: "file",
11690
11719
  },
11691
11720
  };
11692
11721
  /**
@@ -11841,19 +11870,72 @@ let DuetUpload$1 = class extends H {
11841
11870
  * by default this is off, setting this to true will limit the users choices to what has been explicitly set
11842
11871
  */
11843
11872
  this.limitSelection = false;
11873
+ /**
11874
+ * Own Properties
11875
+ */
11876
+ this.buttonId = createID("DuetButton");
11877
+ this.labelId = createID("DuetLabel");
11878
+ this.uploadId = createID("DuetUpload");
11879
+ this.filesInProgress = new Map();
11880
+ this.fileMaxReached = false;
11881
+ this.bytesMaxReached = false;
11882
+ this.internalStatusMessageLabel = undefined;
11883
+ /**
11884
+ * Properties
11885
+ */
11886
+ this.DefaultGroups = {
11887
+ inprogress: "inprogress",
11888
+ success: "success",
11889
+ failure: "failure",
11890
+ };
11891
+ /**
11892
+ * Array of group names that you want the editable table to use to display files
11893
+ * @required
11894
+ * @example [{ id: "success", label: {fi: "Onnistunut", en: "Success", sv: "Alt klart", }}]
11895
+ */
11896
+ this.groups = [
11897
+ {
11898
+ id: this.DefaultGroups.inprogress,
11899
+ label: {
11900
+ fi: "Kesken olevat tiedostot",
11901
+ sv: "Filer inprogress",
11902
+ en: "Files inprogress",
11903
+ },
11904
+ },
11905
+ {
11906
+ id: this.DefaultGroups.success,
11907
+ label: {
11908
+ fi: "Valmiit tiedostot",
11909
+ sv: "Files success",
11910
+ en: "Files success",
11911
+ },
11912
+ },
11913
+ {
11914
+ id: this.DefaultGroups.failure,
11915
+ label: {
11916
+ fi: "Tiedostot, joissa on virheitä",
11917
+ sv: "Filer med fel",
11918
+ en: "Files with errors",
11919
+ },
11920
+ },
11921
+ ];
11922
+ this.kick = debounce(() => {
11923
+ this.tick = Date.now();
11924
+ }, 30); // will trigger re-render
11844
11925
  /**
11845
11926
  * Private functions
11846
11927
  */
11847
11928
  this.listenForActionEvents = () => {
11848
- this.element.addEventListener("duetEditableItemAction", (e) => {
11929
+ this.element.addEventListener("duetActionEvent", (e) => {
11849
11930
  const detail = e.detail;
11850
- const { action, keyName, originalEvent } = detail;
11931
+ const { action, id, originalEvent } = detail;
11932
+ console.log(e);
11851
11933
  switch (action) {
11852
11934
  case "delete":
11853
- this.onDelete(keyName, originalEvent);
11935
+ this.onDelete(id, originalEvent);
11854
11936
  break;
11855
11937
  case "cancel":
11856
- this.onCancel(keyName, originalEvent);
11938
+ this.onCancel(id, originalEvent);
11857
11939
  break;
11858
11940
  // code block
11859
11941
  }
@@ -11910,24 +11992,6 @@ let DuetUpload$1 = class extends H {
11910
11992
  return "none";
11911
11993
  }
11912
11994
  };
11913
- this.convertToDuetEditableTableItems = () => {
11914
- // we're always recreating the map - in order to force an update down stream.
11915
- const itemData = new Map();
11916
- //walk the files Map and convert to DuetEditableTableItemData
11917
- this.files.forEach((data, key, _originalMap) => {
11918
- const group = this.getGroupFromItemData(data);
11919
- const item = this.getItemHTMLFromItemData(data, group);
11920
- itemData.set(key, {
11921
- uid: data.uid,
11922
- item,
11923
- group,
11924
- });
11925
- });
11926
- return itemData;
11927
- };
11928
- this.kick = debounce(() => {
11929
- this.tick = Date.now();
11930
- }, 30); // will trigger re-render
11931
11995
  this.genHashName = () => Date.now().toString(36) + Math.random();
11932
11996
  this.updateValueInMap = (item, key, value, kick = true) => {
11933
11997
  const fileItem = this.files.get(item);
@@ -11988,7 +12052,6 @@ let DuetUpload$1 = class extends H {
11988
12052
  this.nativeInput.value = "";
11989
12053
  };
11990
12054
  this.startUpload = async (ev, metaData = undefined) => {
11991
- await this.setFocus();
11992
12055
  this.metaData = metaData;
11993
12056
  this.nativeInput.click();
11994
12057
  this.onUpload(ev, metaData);
@@ -12051,9 +12114,18 @@ let DuetUpload$1 = class extends H {
12051
12114
  fileMaxReached: isTotalFileAmountAboveMax,
12052
12115
  };
12053
12116
  };
12117
+ this.getItemFromUID = (uid) => {
12118
+ for (const [key, value] of this.files.entries()) {
12119
+ if (value.uid === uid) {
12120
+ return { value, key };
12121
+ }
12122
+ }
12123
+ return null;
12124
+ };
12054
12125
  this.onDelete = (key, ev) => {
12055
- const deletedItem = this.files.get(key);
12056
- this.files.delete(key);
12126
+ const retrievedKey = this.getItemFromUID(key).key;
12127
+ const deletedItem = this.files.get(retrievedKey);
12128
+ this.files.delete(retrievedKey);
12057
12129
  this.validateTotals();
12058
12130
  this.kick();
12059
12131
  this.duetDelete.emit({
@@ -12067,8 +12139,9 @@ let DuetUpload$1 = class extends H {
12067
12139
  this.resetFormFields();
12068
12140
  };
12069
12141
  this.onCancel = (key, ev) => {
12070
- const cancelledItem = this.files.get(key);
12071
- this.files.delete(key);
12142
+ const retrievedKey = this.getItemFromUID(key).key;
12143
+ const cancelledItem = this.files.get(retrievedKey);
12144
+ this.files.delete(retrievedKey);
12072
12145
  if (!this.external) {
12073
12146
  const { xhr } = cancelledItem;
12074
12147
  xhr.abort();
@@ -12118,6 +12191,79 @@ let DuetUpload$1 = class extends H {
12118
12191
  data: { files: this.files },
12119
12192
  });
12120
12193
  };
12194
+ /**
12195
+ * @description This functions return sorted map items byg condition which are:
12196
+ */
12197
+ this.filterMap = () => {
12198
+ const all = [...this.files.values()];
12199
+ const inprogress = [];
12200
+ const failure = [];
12201
+ const success = [];
12202
+ all.forEach(data => {
12203
+ const group = this.getGroupFromItemData(data);
12204
+ const item = this.getItemHTMLFromItemData(data, group);
12205
+ if (group === this.DefaultGroups.success) {
12206
+ success.push({
12207
+ uid: data.uid,
12208
+ item,
12209
+ group,
12210
+ });
12211
+ }
12212
+ else if (group === this.DefaultGroups.inprogress) {
12213
+ inprogress.push({
12214
+ uid: data.uid,
12215
+ item,
12216
+ group,
12217
+ });
12218
+ }
12219
+ else if (group === this.DefaultGroups.failure) {
12220
+ failure.push({
12221
+ uid: data.uid,
12222
+ item,
12223
+ group,
12224
+ });
12225
+ }
12226
+ else if (data.group) {
12227
+ inprogress.push({
12228
+ uid: data.uid,
12229
+ item,
12230
+ group: data.group,
12231
+ });
12232
+ }
12233
+ });
12234
+ return {
12235
+ inprogress,
12236
+ failure,
12237
+ success,
12238
+ };
12239
+ };
12240
+ this.getColumns = (group) => {
12241
+ return [
12242
+ {
12243
+ sort_order: 1,
12244
+ direction: 1,
12245
+ index: 0,
12246
+ key: group.id,
12247
+ label: group.label,
12248
+ },
12249
+ ];
12250
+ };
12251
+ this.getActions = (id) => {
12252
+ return this.actions.filter(item => item.map.includes(id));
12253
+ };
12254
+ this.renderEditableTableGroups = () => {
12255
+ const filteredItems = this.filterMap();
12256
+ const EditableTables = this.groups.map(group => {
12257
+ const currentItems = filteredItems[group.id];
12258
+ if (!(currentItems === null || currentItems === void 0 ? void 0 : currentItems.length)) {
12259
+ return;
12260
+ }
12261
+ return (h$1("duet-table", { variation: "plain", breakpoint: "none", role: "log", margin: this.hideGroups ? "none" : "auto" }, h$1("table", { class: "duet-upload-editable-table" }, h$1("thead", { class: "duet-upload-editable-table-header" }, h$1("tr", null, h$1("th", { class: {
12262
+ "duet-upload-editable-table-header-hidden": this.hideGroups,
12263
+ } }, !this.hideGroups ? (getLocaleString(group.label)) : (h$1("duet-visually-hidden", null, getLocaleString(group.label)))))), h$1("tbody", null, h$1("tr", null, h$1("td", { class: "duet-upload-editable-table-data" }, h$1("duet-editable-table", { breakpoint: "none", variation: "plain", groupId: group.id, columns: this.getColumns(group), actions: this.getActions(group.id), margin: "none", rows: currentItems })))))));
12264
+ });
12265
+ return EditableTables;
12266
+ };
12121
12267
  }
12122
12268
  watchValidHandler(newValue, oldValue) {
12123
12269
  if (newValue !== oldValue) {
@@ -12141,6 +12287,68 @@ let DuetUpload$1 = class extends H {
12141
12287
  // listen to the events from the component
12142
12288
  this.verifyValidity();
12143
12289
  }
12290
+ /**
12291
+ * Sets focus on the specified `duet-input`. Use this method instead of the global
12292
+ * `input.focus()`.
12293
+ */
12294
+ async setFocus(options) {
12295
+ if (this.nativeInput) {
12296
+ this.nativeInput.focus(options);
12297
+ }
12298
+ return;
12299
+ }
12300
+ /**
12301
+ * Method for invoking the upload sequence
12302
+ */
12303
+ async upload(metaData = undefined) {
12304
+ await this.setFocus();
12305
+ this.metaData = metaData;
12306
+ this.nativeInput.click();
12307
+ return;
12308
+ }
12309
+ /**
12310
+ * Method for forcing a render of the upload list, element.files can be changed externally
12311
+ * But it will only rerender on a new Map or a top Level change - this can be used to update
12312
+ * the tabular data if the automatic re-render is no sufficient
12313
+ */
12314
+ async refresh() {
12315
+ this.kick();
12316
+ await this.setFocus();
12317
+ }
12318
+ /**
12319
+ * Get list of files, divided in errors and valid sections
12320
+ */
12321
+ async getFiles() {
12322
+ if (!this.files || this.files.size === 0) {
12323
+ return false;
12324
+ }
12325
+ return this.getFilesAsArray();
12326
+ }
12327
+ /**
12328
+ * Convenience method for updating the value of a key:value inside an item in the files attribute
12329
+ */
12330
+ async updateValue(item, key, value) {
12331
+ this.updateValueInMap(item, key, value);
12332
+ }
12333
+ /**
12334
+ * render() function
12335
+ * Always the last one in the class.
12336
+ */
12337
+ render() {
12338
+ const identifier = this.identifier || this.uploadId;
12339
+ let caption = this.description.replace(/{maxfiles}/g, this.maxFiles.toString());
12340
+ caption = caption.replace(/{maxbytes}/g, `${Math.floor(this.maxBytes / 1024 / 1024)} MB`);
12341
+ caption = caption.replace(/{filetypes}/g, this.allowedExtensions.split(",").join(", "));
12342
+ return (h$1(Host, { class: { "duet-m-0": this.margin === "none" } }, h$1("duet-fieldset", { label: this.label, caption: caption }, h$1("slot", { name: "header" }), !this.files.size && (h$1("duet-label", { part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", theme: this.theme === "turva" ? "turva" : "default", size: "small", class: {
12343
+ "duet-upload-filelist-empty": !this.files.size,
12344
+ "duet-upload-filelist": true,
12345
+ "duet-upload-filelist-filled": this.files.size,
12346
+ }, id: this.labelId, for: identifier }, this.fileListEmpty)), !!this.files.size && h$1("slot", { name: "fileheader" }), !!this.files.size && (h$1("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })), !!this.files.size && this.renderEditableTableGroups(), !!this.files.size && h$1("slot", { name: "filefooter" }), h$1("duet-spacer", { size: "large" }), !this.hideButton && (h$1("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle", part: this.identifier ? `${this.identifier}-button-upload` : "duet-upload-button-upload" }, this.buttonLabel)), h$1("duet-spacer", { size: "medium" }), (this.fileMaxReached || this.bytesMaxReached) && (h$1("duet-alert", { part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301"), this.bytesMaxReached && getI18nError("duet-upload-202"))), h$1("duet-spacer", { size: "medium" }), h$1("duet-visually-hidden", null, h$1("input", { ref: input => {
12347
+ this.nativeInput = input;
12348
+ }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
12349
+ "duet-upload": true,
12350
+ }, disabled: this.disabled, "aria-hidden": "true", required: this.required, name: this.name, id: this.identifier, multiple: this.multiple, capture: "user" })))));
12351
+ }
12144
12352
  /**
12145
12353
  * XHR request utilities
12146
12354
  */
@@ -12262,68 +12470,6 @@ let DuetUpload$1 = class extends H {
12262
12470
  component: "duet-upload",
12263
12471
  });
12264
12472
  }
12265
- /**
12266
- * Sets focus on the specified `duet-input`. Use this method instead of the global
12267
- * `input.focus()`.
12268
- */
12269
- async setFocus(options) {
12270
- if (this.nativeInput) {
12271
- this.nativeInput.focus(options);
12272
- }
12273
- return;
12274
- }
12275
- /**
12276
- * Method for invoking the upload sequence
12277
- */
12278
- async upload(metaData = undefined) {
12279
- await this.setFocus();
12280
- this.metaData = metaData;
12281
- this.nativeInput.click();
12282
- return;
12283
- }
12284
- /**
12285
- * Method for forcing a render of the upload list, element.files can be changed externally
12286
- * But it will only rerender on a new Map or a top Level change - this can be used to update
12287
- * the tabular data if the automatic re-render is no sufficient
12288
- */
12289
- async refresh() {
12290
- this.kick();
12291
- await this.setFocus();
12292
- }
12293
- /**
12294
- * Get list of files, divided in errors and valid sections
12295
- */
12296
- async getFiles() {
12297
- if (!this.files || this.files.size === 0) {
12298
- return false;
12299
- }
12300
- return this.getFilesAsArray();
12301
- }
12302
- /**
12303
- * Convenience method for updating the value of a key:value inside an item in the files attribute
12304
- */
12305
- async updateValue(item, key, value) {
12306
- this.updateValueInMap(item, key, value);
12307
- }
12308
- /**
12309
- * render() function
12310
- * Always the last one in the class.
12311
- */
12312
- render() {
12313
- const identifier = this.identifier || this.uploadId;
12314
- let caption = this.description.replace(/{maxfiles}/g, this.maxFiles.toString());
12315
- caption = caption.replace(/{maxbytes}/g, `${Math.floor(this.maxBytes / 1024 / 1024)} MB`);
12316
- caption = caption.replace(/{filetypes}/g, this.allowedExtensions.split(",").join(", "));
12317
- return (h$1(Host, { class: { "duet-m-0": this.margin === "none" } }, h$1("duet-fieldset", { label: this.label, caption: caption }, h$1("slot", { name: "header" }), !this.files.size && (h$1("duet-label", { part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", theme: this.theme === "turva" ? "turva" : "default", size: "small", class: {
12318
- "duet-upload-filelist-empty": !this.files.size,
12319
- "duet-upload-filelist": true,
12320
- "duet-upload-filelist-filled": this.files.size,
12321
- }, id: this.labelId, for: identifier }, this.fileListEmpty)), !!this.files.size && h$1("slot", { name: "fileheader" }), !!this.files.size && (h$1("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })), !!this.files.size && (h$1("duet-editable-table", { part: this.identifier ? `${this.identifier}-editable-table` : "duet-upload-editable-table", "aria-live": "polite", "aria-relevant": "removals", accessibleRole: "log", id: this.editableTableId, groups: this.groups, actions: this.actions, hideGroups: this.hideGroups, alignment: this.alignment, items: this.convertToDuetEditableTableItems() })), !!this.files.size && h$1("slot", { name: "filefooter" }), h$1("duet-spacer", { size: "large" }), !this.hideButton && (h$1("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle", part: this.identifier ? `${this.identifier}-button-upload` : "duet-upload-button-upload" }, this.buttonLabel)), h$1("duet-spacer", { size: "medium" }), (this.fileMaxReached || this.bytesMaxReached) && (h$1("duet-alert", { part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301"), this.bytesMaxReached && getI18nError("duet-upload-202"))), h$1("duet-spacer", { size: "medium" }), h$1("duet-visually-hidden", null, h$1("input", { ref: input => {
12322
- this.nativeInput = input;
12323
- }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
12324
- "duet-upload": true,
12325
- }, disabled: this.disabled, "aria-hidden": "true", required: this.required, name: this.name, id: this.identifier, multiple: this.multiple, capture: "user" })))));
12326
- }
12327
12473
  get element() { return this; }
12328
12474
  static get watchers() { return {
12329
12475
  "valid": ["watchValidHandler"]
@@ -12442,11 +12588,12 @@ let DuetVisuallyHidden$1 = class extends H {
12442
12588
  };
12443
12589
 
12444
12590
  globalScripts();
12591
+ const DuetActionButton = /*@__PURE__*/proxyCustomElement(DuetActionButton$1, [1,"duet-action-button",{"theme":[1025],"iconName":[1,"icon-name"],"iconColor":[1,"icon-color"],"iconSize":[1,"icon-size"],"actionName":[1,"action-name"],"actionId":[1,"action-id"],"actionMeta":[1,"action-meta"],"disabled":[4],"color":[513],"background":[1],"ariaDescribedBy":[1,"accessible-described-by"],"ariaDescription":[1,"accessible-description"],"ariaLabelsDefaults":[16],"ariaLabels":[16],"ariaControls":[1,"accessible-controls"],"numbersStore":[32]}]);
12445
12592
  const DuetAlert = /*@__PURE__*/proxyCustomElement(DuetAlert$1, [1,"duet-alert",{"theme":[1025],"accessibleLabelDefaults":[1,"accessible-label-default"],"accessibleLabel":[1,"accessible-label"],"announcements":[4],"icon":[1],"autoDismiss":[2,"auto-dismiss"],"margin":[1],"padding":[1],"variation":[1],"dismissible":[4],"isDismissed":[32],"timeoutID":[32]}]);
12446
12593
  const DuetBadge = /*@__PURE__*/proxyCustomElement(DuetBadge$1, [1,"duet-badge",{"theme":[1025],"variation":[1],"margin":[1]}]);
12447
12594
  const DuetBreadcrumb = /*@__PURE__*/proxyCustomElement(DuetBreadcrumb$1, [1,"duet-breadcrumb",{"theme":[1025],"href":[1025],"icon":[1025],"accessibleLabel":[1,"accessible-label"]}]);
12448
12595
  const DuetBreadcrumbs = /*@__PURE__*/proxyCustomElement(DuetBreadcrumbs$1, [1,"duet-breadcrumbs",{"theme":[1025],"children":[32]}]);
12449
- const DuetButton = /*@__PURE__*/proxyCustomElement(DuetButton$1, [1,"duet-button",{"accessibleLabel":[1,"accessible-label"],"accessibleControls":[1,"accessible-controls"],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleExpanded":[4,"accessible-expanded"],"accessiblePressed":[4,"accessible-pressed"],"loading":[4],"variation":[1],"negative":[4],"theme":[1025],"margin":[1],"padding":[1],"centerText":[4,"center-text"],"wrapping":[1],"expand":[4],"fixed":[4],"disabled":[516],"name":[1],"value":[1],"identifier":[1],"submit":[516],"external":[4],"language":[1],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"icon":[1],"color":[1],"iconRight":[4,"icon-right"],"iconSize":[1,"icon-size"],"size":[1],"iconOnly":[4,"icon-only"],"url":[513]}]);
12596
+ const DuetButton = /*@__PURE__*/proxyCustomElement(DuetButton$1, [1,"duet-button",{"accessibleLabel":[1,"accessible-label"],"accessibleControls":[1,"accessible-controls"],"accessiblePopup":[1,"accessible-popup"],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleExpanded":[4,"accessible-expanded"],"accessiblePressed":[4,"accessible-pressed"],"loading":[4],"variation":[1],"negative":[4],"theme":[1025],"margin":[1],"padding":[1],"centerText":[4,"center-text"],"wrapping":[1],"expand":[4],"fixed":[4],"disabled":[516],"name":[1],"value":[1],"identifier":[1],"submit":[516],"external":[4],"language":[1],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"icon":[1],"color":[1],"iconRight":[4,"icon-right"],"iconSize":[1,"icon-size"],"size":[1],"iconOnly":[4,"icon-only"],"url":[513]}]);
12450
12597
  const DuetCaption = /*@__PURE__*/proxyCustomElement(DuetCaption$1, [1,"duet-caption",{"theme":[1025],"margin":[1],"selected":[4],"size":[1]}]);
12451
12598
  const DuetCard = /*@__PURE__*/proxyCustomElement(DuetCard$1, [1,"duet-card",{"accessibleLabel":[1,"accessible-label"],"heading":[1],"secondaryHeading":[1,"secondary-heading"],"variation":[1],"collapsible":[4],"open":[1540],"headingLevel":[1,"heading-level"],"icon":[1],"image":[1],"background":[1],"padding":[1],"margin":[1],"theme":[1025],"url":[1]}]);
12452
12599
  const DuetCheckbox = /*@__PURE__*/proxyCustomElement(DuetCheckbox$1, [2,"duet-checkbox",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"margin":[1],"accessibleControls":[1,"accessible-controls"],"accessibleIndex":[1,"accessible-index"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"required":[4],"theme":[1025],"disabled":[516],"identifier":[1],"label":[1],"labelHidden":[4,"label-hidden"],"name":[1],"role":[1],"checked":[1540],"value":[1537]}]);
@@ -12456,9 +12603,7 @@ const DuetCollapsible = /*@__PURE__*/proxyCustomElement(DuetCollapsible$1, [1,"d
12456
12603
  const DuetCookieConsent = /*@__PURE__*/proxyCustomElement(DuetCookieConsent$1, [1,"duet-cookie-consent",{"accessibleLabel":[1,"accessible-label"],"theme":[1025]}]);
12457
12604
  const DuetDatePicker = /*@__PURE__*/proxyCustomElement(DuetDatePicker$1, [2,"duet-date-picker",{"theme":[1025],"expand":[4],"name":[1],"identifier":[1],"label":[1],"caption":[1],"margin":[1],"language":[1],"placeholderDefaults":[1,"placeholder-default"],"placeholder":[1],"echoPlaceholder":[1540,"echo-placeholder"],"disabled":[516],"error":[1],"labelHidden":[4,"label-hidden"],"role":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"required":[4],"direction":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"value":[1537],"min":[1],"max":[1],"validity":[1040],"open":[32],"focusedDay":[32],"inputValue":[32]},[[4,"click","handleDocumentClick"]]]);
12458
12605
  const DuetDivider = /*@__PURE__*/proxyCustomElement(DuetDivider$1, [1,"duet-divider",{"theme":[1025],"margin":[1]}]);
12459
- const DuetEditableTable = /*@__PURE__*/proxyCustomElement(DuetEditableTable$1, [1,"duet-editable-table",{"items":[1040],"alignment":[1],"groupsLabelDefaults":[16],"actionLabelDefaults":[16],"groups":[1],"actions":[1],"hideGroups":[4,"hide-table-labels"],"accessibleRole":[1,"accessible-role"],"theme":[1025],"tick":[32]}]);
12460
- const DuetEditableTableButton = /*@__PURE__*/proxyCustomElement(DuetEditableTableButton$1, [2,"duet-editable-table-button",{"theme":[1025],"actions":[16],"uid":[1],"group":[1],"keyName":[1,"key-name"],"isHovering":[32]}]);
12461
- const DuetEditableTableItem = /*@__PURE__*/proxyCustomElement(DuetEditableTableItem$1, [1,"duet-editable-table-item",{"theme":[1025],"actions":[16],"groupId":[1,"group-id"],"alignment":[1],"keyName":[1,"key-name"],"data":[1040],"isHovering":[32]}]);
12606
+ const DuetEditableTable = /*@__PURE__*/proxyCustomElement(DuetEditableTable$1, [6,"duet-editable-table",{"margin":[1],"variation":[1],"sticky":[4],"stickyDistance":[1,"sticky-distance"],"breakpoint":[1],"actions":[1040],"columns":[1040],"rows":[1040],"sortable":[4],"groupId":[1,"group-id"],"theme":[1025],"accessibleRole":[1,"accessible-role"]}]);
12462
12607
  const DuetEmptyState = /*@__PURE__*/proxyCustomElement(DuetEmptyState$1, [1,"duet-empty-state",{"theme":[1025],"icon":[1],"size":[1]}]);
12463
12608
  const DuetFieldset = /*@__PURE__*/proxyCustomElement(DuetFieldset$1, [1,"duet-fieldset",{"theme":[1025],"margin":[1],"caption":[1],"label":[1],"error":[1],"labelHidden":[4,"label-hidden"],"hasTooltip":[32]}]);
12464
12609
  const DuetFooter = /*@__PURE__*/proxyCustomElement(DuetFooter$1, [1,"duet-footer",{"theme":[1025],"variation":[1],"margin":[1],"logoHref":[1,"logo-href"],"language":[1025],"items":[8],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"menu":[8],"processedItems":[32],"processedMenu":[32]}]);
@@ -12479,7 +12624,7 @@ const DuetModal = /*@__PURE__*/proxyCustomElement(DuetModal$1, [1,"duet-modal",{
12479
12624
  const DuetNotification = /*@__PURE__*/proxyCustomElement(DuetNotification$1, [1,"duet-notification",{"language":[1],"accessibleLabelUnreadDefaults":[16],"accessibleLabelUnread":[1,"accessible-label-unread"],"url":[1],"date":[1],"highlight":[4],"external":[4],"theme":[1025]}]);
12480
12625
  const DuetNotificationDrawer = /*@__PURE__*/proxyCustomElement(DuetNotificationDrawer$1, [1,"duet-notification-drawer",{"icon":[1],"label":[1],"language":[1],"accessibleLabelNotificationsDefaults":[1,"accessible-label-notification-default"],"accessibleLabelNotifications":[1,"accessible-label-notifications"],"badge":[4],"theme":[1025],"direction":[1],"isOpen":[32],"hasNotifications":[32]},[[6,"focus","handleClickFocusOutside"],[6,"click","handleClickFocusOutside"]]]);
12481
12626
  const DuetNumberInput = /*@__PURE__*/proxyCustomElement(DuetNumberInput$1, [2,"duet-number-input",{"language":[1025],"locale":[1],"unit":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleLiveDefaults":[1,"accessible-live-default"],"accessibleLive":[1,"accessible-live"],"accessibleLiveEnabled":[4,"accessible-live-enabled"],"accessibleAddDefaults":[1,"accessible-add-default"],"accessibleAdd":[1,"accessible-add"],"accessibleSubtractDefaults":[1,"accessible-subtract-defaults"],"accessibleSubtract":[1,"accessible-subtract"],"theme":[1025],"margin":[1],"expand":[4],"identifier":[1],"min":[2],"labelDefaults":[1,"label-default"],"label":[1],"labelHidden":[4,"label-hidden"],"max":[2],"name":[1],"error":[1],"tooltip":[1],"step":[2],"rounding":[4],"role":[1],"disabled":[516],"required":[4],"value":[1025],"focusedValue":[32]}]);
12482
- const DuetPagination = /*@__PURE__*/proxyCustomElement(DuetPagination$1, [1,"duet-pagination",{"theme":[1025],"jumpString":[1,"jump-string"],"ariaLabelsDefaults":[16],"ariaLabels":[16],"take":[1026],"visibleItems":[1026,"visible-items"],"total":[1026],"ariaControls":[1,"accessible-controls"],"current":[1026],"numbersStore":[32],"totalPages":[32],"internalSectionIndex":[32]}]);
12627
+ const DuetPagination = /*@__PURE__*/proxyCustomElement(DuetPagination$1, [1,"duet-pagination",{"theme":[1025],"jumpString":[1,"jump-string"],"variation":[1],"accessibleLabelsDefaults":[16],"accessibleLabels":[16],"take":[1026],"visibleItems":[1026,"visible-items"],"total":[1026],"ariaControls":[1,"accessible-controls"],"current":[1026],"numbersStore":[32],"totalPages":[32],"internalSectionIndex":[32]}]);
12483
12628
  const DuetParagraph = /*@__PURE__*/proxyCustomElement(DuetParagraph$1, [1,"duet-paragraph",{"theme":[1025],"margin":[1],"size":[1],"weight":[1],"variation":[1],"color":[1]}]);
12484
12629
  const DuetProgress = /*@__PURE__*/proxyCustomElement(DuetProgress$1, [0,"duet-progress",{"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleLabel":[1,"accessible-label"],"accessibleLabelUploadDefaults":[1,"accessible-label-upload-defaults"],"accessibleLabelUpload":[1,"accessible-label-upload"],"progress":[1538],"caption":[1],"height":[1],"theme":[1025]}]);
12485
12630
  const DuetRadio = /*@__PURE__*/proxyCustomElement(DuetRadio$1, [2,"duet-radio",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleIndex":[1,"accessible-index"],"margin":[1],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"theme":[1025],"disabled":[516],"required":[4],"blockEvents":[4,"block-events"],"identifier":[1],"label":[1],"name":[1],"role":[1],"groupDisabled":[4,"group-disabled"],"groupDirection":[1,"group-direction"],"groupResponsive":[4,"group-responsive"],"checked":[1540],"value":[1537]}]);
@@ -12499,13 +12644,14 @@ const DuetTextarea = /*@__PURE__*/proxyCustomElement(DuetTextarea$1, [2,"duet-te
12499
12644
  const DuetToggle = /*@__PURE__*/proxyCustomElement(DuetToggle$1, [2,"duet-toggle",{"theme":[1025],"margin":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"label":[1],"required":[4],"disabled":[516],"checked":[1540],"value":[1537],"identifier":[1],"name":[1],"role":[1]}]);
12500
12645
  const DuetTooltip = /*@__PURE__*/proxyCustomElement(DuetTooltip$1, [1,"duet-tooltip",{"theme":[1025],"language":[1025],"accessibleLabelDefault":[1,"accessible-label-default"],"accessibleLabel":[1,"accessible-label"],"accessibleInputLabel":[1,"accessible-input-label"],"accessibleCloseLabelDefault":[1,"accessible-close-label-default"],"accessibleCloseLabel":[1,"accessible-close-label"],"label":[1],"breakpoint":[1],"direction":[1],"positionVertical":[513,"position-vertical"],"positionHorizontal":[513,"position-horizontal"],"active":[1540],"openDown":[32]},[[9,"scroll","onScroll"],[4,"click","handleDocumentClick"]]]);
12501
12646
  const DuetTray = /*@__PURE__*/proxyCustomElement(DuetTray$1, [1,"duet-tray",{"language":[1025],"accessibleCloseLabelDefaults":[1,"accessible-close-label-default"],"accessibleCloseLabel":[1,"accessible-close-label"],"accessibleOpenLabelDefaults":[1,"accessible-open-label-default"],"accessibleOpenLabel":[1,"accessible-open-label"],"theme":[1025],"active":[516],"autoHide":[4,"auto-hide"],"responsive":[4],"expanded":[32],"hiddenState":[32]},[[9,"scroll","getFrame"],[16,"click","handleBodyClick"]]]);
12502
- const DuetUpload = /*@__PURE__*/proxyCustomElement(DuetUpload$1, [1,"duet-upload",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"external":[4],"hideButton":[4,"hide-upload-button"],"actions":[1],"uri":[1],"showLinks":[4,"show-links"],"caption":[1],"statusLabelDefaults":[1,"status-label-default"],"statusMessageLabel":[1,"status-message-label"],"buttonLabelDefaults":[1,"button-label-default"],"buttonLabel":[1,"button-label"],"accessibleButtonLabel":[1,"accessible-button-label"],"theme":[1025],"disabled":[516],"identifier":[1],"margin":[1],"required":[4],"groups":[1],"alignment":[1],"hideGroups":[4,"hide-table-labels"],"files":[1040],"valid":[1540],"labelDefaults":[1,"label-default"],"label":[1],"descriptionDefaults":[1,"description-default"],"description":[1],"fileListEmptyDefaults":[1,"list-empty-default"],"fileListEmpty":[1,"file-list-empty"],"error":[1],"name":[1],"maxBytes":[2,"max-bytes"],"maxBytesTotal":[2,"max-bytes-total"],"maxFiles":[2,"max-files"],"allowedExtensions":[1,"allowed-extensions"],"allowedMimetypes":[1,"allowed-mimetypes"],"multiple":[4],"limitSelection":[4,"limit-selection"],"value":[1025],"tick":[32]}]);
12647
+ const DuetUpload = /*@__PURE__*/proxyCustomElement(DuetUpload$1, [1,"duet-upload",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"external":[4],"hideButton":[4,"hide-upload-button"],"actions":[16],"uri":[1],"showLinks":[4,"show-links"],"caption":[1],"statusLabelDefaults":[1,"status-label-default"],"statusMessageLabel":[1,"status-message-label"],"buttonLabelDefaults":[1,"button-label-default"],"buttonLabel":[1,"button-label"],"accessibleButtonLabel":[1,"accessible-button-label"],"theme":[1025],"disabled":[516],"identifier":[1],"margin":[1],"required":[4],"alignment":[1],"hideGroups":[4,"hide-table-labels"],"files":[1040],"valid":[1540],"labelDefaults":[1,"label-default"],"label":[1],"descriptionDefaults":[1,"description-default"],"description":[1],"fileListEmptyDefaults":[1,"list-empty-default"],"fileListEmpty":[1,"file-list-empty"],"error":[1],"name":[1],"maxBytes":[2,"max-bytes"],"maxBytesTotal":[2,"max-bytes-total"],"maxFiles":[2,"max-files"],"allowedExtensions":[1,"allowed-extensions"],"allowedMimetypes":[1,"allowed-mimetypes"],"multiple":[4],"limitSelection":[4,"limit-selection"],"value":[1025],"groups":[16],"tick":[32]}]);
12503
12648
  const DuetUploadAriaStatus = /*@__PURE__*/proxyCustomElement(DuetUploadAriaStatus$1, [1,"duet-upload-aria-status",{"statusMessageLabel":[16],"accessibleAriaLive":[1,"accessible-aria-live"],"valid":[2],"total":[2],"invalid":[2],"inprogress":[2],"statusMessage":[32]}]);
12504
12649
  const DuetVisuallyHidden = /*@__PURE__*/proxyCustomElement(DuetVisuallyHidden$1, [1,"duet-visually-hidden"]);
12505
12650
  const defineCustomElements = (opts) => {
12506
12651
  if (typeof customElements !== 'undefined') {
12507
12652
  [
12508
- DuetAlert,
12653
+ DuetActionButton,
12654
+ DuetAlert,
12509
12655
  DuetBadge,
12510
12656
  DuetBreadcrumb,
12511
12657
  DuetBreadcrumbs,
@@ -12520,8 +12666,6 @@ const defineCustomElements = (opts) => {
12520
12666
  DuetDatePicker,
12521
12667
  DuetDivider,
12522
12668
  DuetEditableTable,
12523
- DuetEditableTableButton,
12524
- DuetEditableTableItem,
12525
12669
  DuetEmptyState,
12526
12670
  DuetFieldset,
12527
12671
  DuetFooter,
@@ -12965,4 +13109,4 @@ const shadowCss = /*#__PURE__*/Object.freeze({
12965
13109
  scopeCss: scopeCss
12966
13110
  });
12967
13111
 
12968
- export { DuetAlert, DuetBadge, DuetBreadcrumb, DuetBreadcrumbs, DuetButton, DuetCaption, DuetCard, DuetCheckbox, DuetChoice, DuetChoiceGroup, DuetCollapsible, DuetCookieConsent, DuetDatePicker, DuetDivider, DuetEditableTable, DuetEditableTableButton, DuetEditableTableItem, DuetEmptyState, DuetFieldset, DuetFooter, DuetGrid, DuetGridItem, DuetHeader, DuetHeading, DuetHero, DuetIcon, DuetInput, DuetLabel, DuetLayout, DuetLink, DuetList, DuetListItem, DuetLogo, DuetModal, DuetNotification, DuetNotificationDrawer, DuetNumberInput, DuetPagination, DuetParagraph, DuetProgress, DuetRadio, DuetRadioGroup, DuetRangeSlider, DuetRangeStepper, DuetScrollable, DuetSelect, DuetSpacer, DuetSpinner, DuetStep, DuetStepper, DuetTab, DuetTabGroup, DuetTable, DuetTextarea, DuetToggle, DuetTooltip, DuetTray, DuetUpload, DuetUploadAriaStatus, DuetVisuallyHidden, defineCustomElements, setAssetPath, setPlatformOptions };
13112
+ export { DuetActionButton, DuetAlert, DuetBadge, DuetBreadcrumb, DuetBreadcrumbs, DuetButton, DuetCaption, DuetCard, DuetCheckbox, DuetChoice, DuetChoiceGroup, DuetCollapsible, DuetCookieConsent, DuetDatePicker, DuetDivider, DuetEditableTable, DuetEmptyState, DuetFieldset, DuetFooter, DuetGrid, DuetGridItem, DuetHeader, DuetHeading, DuetHero, DuetIcon, DuetInput, DuetLabel, DuetLayout, DuetLink, DuetList, DuetListItem, DuetLogo, DuetModal, DuetNotification, DuetNotificationDrawer, DuetNumberInput, DuetPagination, DuetParagraph, DuetProgress, DuetRadio, DuetRadioGroup, DuetRangeSlider, DuetRangeStepper, DuetScrollable, DuetSelect, DuetSpacer, DuetSpinner, DuetStep, DuetStepper, DuetTab, DuetTabGroup, DuetTable, DuetTextarea, DuetToggle, DuetTooltip, DuetTray, DuetUpload, DuetUploadAriaStatus, DuetVisuallyHidden, defineCustomElements, setAssetPath, setPlatformOptions };