@duetds/components 4.36.1 → 5.0.2

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 (315) hide show
  1. package/hydrate/index.js +1135 -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 +2 -2
  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 +1 -1
  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-dfd718e8.js → focus-utils-2404e669.js} +1 -1
  45. package/lib/cjs/{index-4f342f1c.js → index-91b9281f.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-f402e205.js → token-utils-ac8432d1.js} +1 -1
  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-date-picker/duet-date-picker.css +2 -57
  58. package/lib/collection/components/duet-date-picker/duet-date-picker.js +2 -6
  59. package/lib/collection/components/duet-editable-table/duet-editable-table-tabledata.js +3 -2
  60. package/lib/collection/components/duet-editable-table/duet-editable-table.css +20 -1
  61. package/lib/collection/components/duet-editable-table/duet-editable-table.js +331 -205
  62. package/lib/collection/components/duet-header/duet-header.css +5 -1
  63. package/lib/collection/components/duet-header/duet-header.js +4 -3
  64. package/lib/collection/components/duet-pagination/duet-pagination.css +3 -62
  65. package/lib/collection/components/duet-pagination/duet-pagination.js +49 -19
  66. package/lib/collection/components/duet-range-stepper/duet-range-stepper.css +4 -55
  67. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -4
  68. package/lib/collection/components/duet-table/duet-table.css +42 -8
  69. package/lib/collection/components/duet-table/duet-table.js +11 -2
  70. package/lib/collection/components/duet-upload/duet-upload.css +25 -0
  71. package/lib/collection/components/duet-upload/duet-upload.js +270 -166
  72. package/lib/collection/components/duet-upload/upload-validators.js +1 -1
  73. package/lib/collection/utils/fixture-utils.js +3 -1
  74. package/lib/collection/utils/js-utils.js +36 -1
  75. package/lib/custom-elements-bundle/index.d.ts +6 -12
  76. package/lib/custom-elements-bundle/index.js +1148 -1007
  77. package/lib/duet/duet.esm.js +1 -1
  78. package/lib/duet/duet.js +1 -1
  79. package/lib/duet/{p-061835f3.system.entry.js → p-09bdb2b4.system.entry.js} +1 -1
  80. package/lib/duet/{p-1a95aeb6.entry.js → p-0e4b29a3.entry.js} +1 -1
  81. package/lib/duet/{p-65c418f7.system.entry.js → p-16477cd0.system.entry.js} +1 -1
  82. package/lib/duet/p-1c993c62.system.entry.js +4 -0
  83. package/lib/duet/{p-8c53bc24.system.entry.js → p-1f78f660.system.entry.js} +1 -1
  84. package/lib/duet/{p-ef275410.entry.js → p-24442312.entry.js} +1 -1
  85. package/lib/duet/{p-ddb6344c.system.js → p-268c0abb.system.js} +0 -0
  86. package/lib/duet/p-2d602c49.system.entry.js +4 -0
  87. package/lib/duet/{p-946f34b4.system.entry.js → p-305a8332.system.entry.js} +1 -1
  88. package/lib/duet/{p-4fdbc6ff.system.entry.js → p-3724e8bf.system.entry.js} +1 -1
  89. package/lib/duet/{p-5d9affcd.entry.js → p-40deceee.entry.js} +1 -1
  90. package/lib/duet/{p-211b4485.system.entry.js → p-4169371b.system.entry.js} +1 -1
  91. package/lib/duet/{p-9ce0e625.entry.js → p-4306e41d.entry.js} +1 -1
  92. package/lib/duet/{p-5376a9db.entry.js → p-43a310bd.entry.js} +1 -1
  93. package/lib/duet/{p-29255af8.entry.js → p-45c0bd39.entry.js} +1 -1
  94. package/lib/duet/{p-fd2211ab.entry.js → p-47885d97.entry.js} +1 -1
  95. package/lib/duet/{p-615bfc61.system.entry.js → p-4b9af907.system.entry.js} +1 -1
  96. package/lib/duet/{p-1c4721a1.entry.js → p-4f9d6d43.entry.js} +1 -1
  97. package/lib/duet/{p-85100e09.entry.js → p-52f07766.entry.js} +1 -1
  98. package/lib/duet/{p-e8e35258.entry.js → p-567321c9.entry.js} +1 -1
  99. package/lib/duet/p-572ee1f5.entry.js +4 -0
  100. package/lib/duet/{p-cb445018.js → p-5746d88c.js} +1 -1
  101. package/lib/duet/{p-286d2ad2.system.entry.js → p-57f6b52e.system.entry.js} +1 -1
  102. package/lib/duet/p-5a4e576c.entry.js +4 -0
  103. package/lib/duet/{p-fae71c1f.entry.js → p-5ad66dfd.entry.js} +1 -1
  104. package/lib/duet/{p-f6da56c8.entry.js → p-5cc97dae.entry.js} +1 -1
  105. package/lib/duet/{p-03cf3ebf.entry.js → p-5ce39b6b.entry.js} +1 -1
  106. package/lib/duet/{p-46ae601a.entry.js → p-615f0b6f.entry.js} +1 -1
  107. package/lib/duet/{p-83452e8f.entry.js → p-63f6099b.entry.js} +1 -1
  108. package/lib/duet/p-681e93cd.entry.js +4 -0
  109. package/lib/duet/p-6a455a78.system.entry.js +4 -0
  110. package/lib/duet/{p-c52f4de0.system.entry.js → p-6d142621.system.entry.js} +1 -1
  111. package/lib/duet/{p-ca0ee655.system.entry.js → p-6fc73186.system.entry.js} +1 -1
  112. package/lib/duet/{p-e5ce7aad.system.entry.js → p-72469869.system.entry.js} +1 -1
  113. package/lib/duet/{p-20cdb787.entry.js → p-73d3d1bf.entry.js} +1 -1
  114. package/lib/duet/{p-164a7037.system.entry.js → p-763d700b.system.entry.js} +1 -1
  115. package/lib/duet/{p-d9716aec.system.entry.js → p-770fdb8f.system.entry.js} +1 -1
  116. package/lib/duet/{p-4e2532c7.system.js → p-77acbfe4.system.js} +1 -1
  117. package/lib/duet/{p-d21f19cc.system.js → p-7d65b8fc.system.js} +1 -1
  118. package/lib/duet/{p-ffb5fb75.system.entry.js → p-7e1d6ac6.system.entry.js} +1 -1
  119. package/lib/duet/{p-c7fa7dcc.system.entry.js → p-7f58aced.system.entry.js} +1 -1
  120. package/lib/duet/{p-22baf1f8.system.entry.js → p-806dc8b7.system.entry.js} +1 -1
  121. package/lib/duet/{p-fa99eaa4.system.js → p-812b0905.system.js} +0 -0
  122. package/lib/duet/{p-e7b53f4f.system.entry.js → p-854558fd.system.entry.js} +1 -1
  123. package/lib/duet/{p-c514010b.system.entry.js → p-85507ac3.system.entry.js} +1 -1
  124. package/lib/duet/p-8a241b0d.system.js +4 -0
  125. package/lib/duet/p-8ab8531d.entry.js +4 -0
  126. package/lib/duet/{p-eb892975.system.entry.js → p-8ff7380a.system.entry.js} +1 -1
  127. package/lib/duet/p-92639d0b.system.js +4 -0
  128. package/lib/duet/{p-3d1b0105.entry.js → p-97b9a61f.entry.js} +1 -1
  129. package/lib/duet/{p-3bb702e3.system.entry.js → p-97f24160.system.entry.js} +2 -2
  130. package/lib/duet/{p-740b5609.entry.js → p-9816d0ab.entry.js} +1 -1
  131. package/lib/duet/{p-ae14591e.entry.js → p-9c37e704.entry.js} +1 -1
  132. package/lib/duet/p-9c57b94d.system.entry.js +4 -0
  133. package/lib/duet/{p-635dacce.system.entry.js → p-9fa719d0.system.entry.js} +1 -1
  134. package/lib/duet/p-a4c7bb27.system.entry.js +4 -0
  135. package/lib/duet/{p-3c3536be.entry.js → p-a9158499.entry.js} +1 -1
  136. package/lib/duet/{p-e7dd8a15.system.entry.js → p-a934db65.system.entry.js} +1 -1
  137. package/lib/duet/{p-e35d8543.entry.js → p-acb043aa.entry.js} +1 -1
  138. package/lib/duet/{p-7f0e360d.entry.js → p-b2811c51.entry.js} +1 -1
  139. package/lib/duet/{p-d24c6bc1.entry.js → p-b53afa7a.entry.js} +1 -1
  140. package/lib/duet/{p-0366552b.system.entry.js → p-b686f39d.system.entry.js} +1 -1
  141. package/lib/duet/{p-ebc56043.entry.js → p-b6d5be13.entry.js} +1 -1
  142. package/lib/duet/{p-e8303364.system.entry.js → p-bb61f7d8.system.entry.js} +1 -1
  143. package/lib/duet/{p-12941aef.system.entry.js → p-bc895d5f.system.entry.js} +1 -1
  144. package/lib/duet/{p-e47daca7.system.entry.js → p-beca945d.system.entry.js} +1 -1
  145. package/lib/duet/{p-dcaecb5e.js → p-c420e1ab.js} +1 -1
  146. package/lib/duet/{p-5b546064.entry.js → p-c801c899.entry.js} +1 -1
  147. package/lib/duet/{p-3547d108.entry.js → p-c8f1cc9c.entry.js} +1 -1
  148. package/lib/duet/{p-c8ec3b99.entry.js → p-cd8c4a50.entry.js} +1 -1
  149. package/lib/duet/{p-b6dd0933.entry.js → p-ce487a35.entry.js} +1 -1
  150. package/lib/duet/{p-c6df2ea8.system.entry.js → p-ce6e5918.system.entry.js} +1 -1
  151. package/lib/duet/{p-c2d32103.entry.js → p-d03cb5c3.entry.js} +1 -1
  152. package/lib/duet/p-d173c966.entry.js +4 -0
  153. package/lib/duet/{p-79b9e7ef.system.entry.js → p-d414e0f6.system.entry.js} +1 -1
  154. package/lib/duet/{p-8143f3de.js → p-d7bc0102.js} +0 -0
  155. package/lib/duet/{p-24b9e806.entry.js → p-d7d80b8e.entry.js} +1 -1
  156. package/lib/duet/p-d8ed6905.entry.js +4 -0
  157. package/lib/duet/{p-562ae946.entry.js → p-da61c503.entry.js} +1 -1
  158. package/lib/duet/p-dbb4a588.js +4 -0
  159. package/lib/duet/p-dd8fade8.entry.js +4 -0
  160. package/lib/duet/{p-1db7a35b.entry.js → p-de67de41.entry.js} +1 -1
  161. package/lib/duet/{p-9df321b3.system.entry.js → p-def972d1.system.entry.js} +1 -1
  162. package/lib/duet/p-df2d8ec4.entry.js +4 -0
  163. package/lib/duet/{p-05e2c680.system.entry.js → p-e35ea4b9.system.entry.js} +1 -1
  164. package/lib/duet/{p-ad3dad04.system.js → p-e9ab7f0a.system.js} +1 -1
  165. package/lib/duet/{p-7a32ceb3.system.entry.js → p-eb383537.system.entry.js} +1 -1
  166. package/lib/duet/{p-ad07f399.js → p-ed75c8b3.js} +0 -0
  167. package/lib/duet/{p-c18080ad.entry.js → p-ee8682fc.entry.js} +1 -1
  168. package/lib/duet/p-f155c84d.system.entry.js +4 -0
  169. package/lib/duet/{p-d945a4b0.system.entry.js → p-f1b895c8.system.entry.js} +1 -1
  170. package/lib/duet/{p-89e42127.system.entry.js → p-f5af2560.system.entry.js} +1 -1
  171. package/lib/duet/{p-3900577d.system.entry.js → p-f7475d5a.system.entry.js} +1 -1
  172. package/lib/duet/p-f7c7f37d.js +4 -0
  173. package/lib/duet/{p-210d739c.system.entry.js → p-feca1c50.system.entry.js} +1 -1
  174. package/lib/esm/duet-action-button.entry.js +159 -0
  175. package/lib/esm/duet-alert.entry.js +1 -1
  176. package/lib/esm/duet-badge.entry.js +1 -1
  177. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  178. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  179. package/lib/esm/duet-button_2.entry.js +8 -4
  180. package/lib/esm/duet-caption_4.entry.js +3 -3
  181. package/lib/esm/duet-card.entry.js +3 -3
  182. package/lib/esm/duet-checkbox.entry.js +1 -1
  183. package/lib/esm/duet-choice_2.entry.js +4 -4
  184. package/lib/esm/duet-collapsible.entry.js +2 -2
  185. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  186. package/lib/esm/duet-date-picker.entry.js +4 -4
  187. package/lib/esm/duet-divider_2.entry.js +1 -1
  188. package/lib/esm/{duet-editable-table_4.entry.js → duet-editable-table_3.entry.js} +384 -338
  189. package/lib/esm/duet-empty-state.entry.js +1 -1
  190. package/lib/esm/duet-fieldset.entry.js +1 -1
  191. package/lib/esm/duet-footer.entry.js +1 -1
  192. package/lib/esm/duet-grid_2.entry.js +2 -2
  193. package/lib/esm/duet-header_2.entry.js +7 -7
  194. package/lib/esm/duet-hero.entry.js +1 -1
  195. package/lib/esm/duet-icon.entry.js +3 -3
  196. package/lib/esm/duet-input_2.entry.js +1 -1
  197. package/lib/esm/duet-layout.entry.js +1 -1
  198. package/lib/esm/duet-list_2.entry.js +1 -1
  199. package/lib/esm/duet-modal.entry.js +2 -2
  200. package/lib/esm/duet-notification_2.entry.js +1 -1
  201. package/lib/esm/duet-number-input.entry.js +1 -1
  202. package/lib/esm/duet-pagination_2.entry.js +24 -14
  203. package/lib/esm/duet-progress.entry.js +1 -1
  204. package/lib/esm/duet-radio_2.entry.js +1 -1
  205. package/lib/esm/duet-range-slider.entry.js +2 -2
  206. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  207. package/lib/esm/duet-select.entry.js +1 -1
  208. package/lib/esm/duet-step_2.entry.js +1 -1
  209. package/lib/esm/duet-textarea.entry.js +1 -1
  210. package/lib/esm/duet-toggle.entry.js +1 -1
  211. package/lib/esm/duet-tooltip.entry.js +1 -1
  212. package/lib/esm/duet-tray.entry.js +2 -2
  213. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  214. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  215. package/lib/esm/duet.js +2 -2
  216. package/lib/esm/{focus-utils-d4e80e1e.js → focus-utils-46b28332.js} +1 -1
  217. package/lib/esm/{index-4a5e7664.js → index-8743db3b.js} +1 -1
  218. package/lib/esm/js-utils-52e0944c.js +36 -0
  219. package/lib/esm/loader.js +2 -2
  220. package/lib/esm/{token-utils-e9a69acf.js → token-utils-e9a0cb88.js} +1 -1
  221. package/lib/esm/{tokens-e110dc89.js → tokens-57d98824.js} +0 -0
  222. package/lib/esm/{tokens.module-49cbf963.js → tokens.module-a13e9683.js} +0 -0
  223. package/lib/esm-es5/duet-action-button.entry.js +4 -0
  224. package/lib/esm-es5/duet-alert.entry.js +1 -1
  225. package/lib/esm-es5/duet-badge.entry.js +1 -1
  226. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  227. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  228. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  229. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  230. package/lib/esm-es5/duet-card.entry.js +1 -1
  231. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  232. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  233. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  234. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  235. package/lib/esm-es5/duet-date-picker.entry.js +2 -2
  236. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  237. package/lib/esm-es5/duet-editable-table_3.entry.js +4 -0
  238. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  239. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  240. package/lib/esm-es5/duet-footer.entry.js +1 -1
  241. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  242. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  243. package/lib/esm-es5/duet-hero.entry.js +1 -1
  244. package/lib/esm-es5/duet-icon.entry.js +1 -1
  245. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  246. package/lib/esm-es5/duet-layout.entry.js +1 -1
  247. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  248. package/lib/esm-es5/duet-modal.entry.js +1 -1
  249. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  250. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  251. package/lib/esm-es5/duet-pagination_2.entry.js +2 -2
  252. package/lib/esm-es5/duet-progress.entry.js +1 -1
  253. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  254. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  255. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  256. package/lib/esm-es5/duet-select.entry.js +1 -1
  257. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  258. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  259. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  260. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  261. package/lib/esm-es5/duet-tray.entry.js +1 -1
  262. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  263. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  264. package/lib/esm-es5/duet.js +1 -1
  265. package/lib/esm-es5/focus-utils-46b28332.js +4 -0
  266. package/lib/esm-es5/{index-4a5e7664.js → index-8743db3b.js} +1 -1
  267. package/lib/esm-es5/js-utils-52e0944c.js +4 -0
  268. package/lib/esm-es5/loader.js +1 -1
  269. package/lib/esm-es5/{token-utils-e9a69acf.js → token-utils-e9a0cb88.js} +1 -1
  270. package/lib/esm-es5/{tokens-e110dc89.js → tokens-57d98824.js} +0 -0
  271. package/lib/esm-es5/{tokens.module-49cbf963.js → tokens.module-a13e9683.js} +0 -0
  272. package/lib/html.html-data.json +169 -69
  273. package/lib/types/components/duet-action-button/duet-action-button.d.ts +112 -0
  274. package/lib/types/components/duet-button/duet-button.d.ts +4 -0
  275. package/lib/types/components/duet-editable-table/duet-editable-table-tabledata.d.ts +2 -2
  276. package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +106 -48
  277. package/lib/types/components/duet-header/duet-header.d.ts +1 -0
  278. package/lib/types/components/duet-pagination/duet-pagination.d.ts +7 -2
  279. package/lib/types/components/duet-table/duet-table.d.ts +16 -0
  280. package/lib/types/components/duet-upload/duet-upload.d.ts +68 -58
  281. package/lib/types/components.d.ts +225 -149
  282. package/lib/types/utils/js-utils.d.ts +2 -0
  283. package/package.json +8 -16
  284. package/lib/cjs/duet-editable-table-button.cjs.entry.js +0 -96
  285. package/lib/cjs/js-utils-33a9dbe3.js +0 -16
  286. package/lib/collection/components/duet-editable-table/duet-editable-table-button.css +0 -32
  287. package/lib/collection/components/duet-editable-table/duet-editable-table-button.js +0 -225
  288. package/lib/collection/components/duet-editable-table/duet-editable-table-item.css +0 -36
  289. package/lib/collection/components/duet-editable-table/duet-editable-table-item.js +0 -225
  290. package/lib/duet/p-063fe96d.entry.js +0 -4
  291. package/lib/duet/p-2361986e.entry.js +0 -4
  292. package/lib/duet/p-2eeacf1a.entry.js +0 -4
  293. package/lib/duet/p-396f1bdc.entry.js +0 -4
  294. package/lib/duet/p-493c6d2f.system.entry.js +0 -4
  295. package/lib/duet/p-7b55f33e.entry.js +0 -4
  296. package/lib/duet/p-7e0e2209.system.entry.js +0 -4
  297. package/lib/duet/p-81867417.system.js +0 -4
  298. package/lib/duet/p-a3d7951c.system.entry.js +0 -4
  299. package/lib/duet/p-a619dff3.system.js +0 -4
  300. package/lib/duet/p-b25d3769.js +0 -4
  301. package/lib/duet/p-bf192d9f.entry.js +0 -4
  302. package/lib/duet/p-c76a68aa.system.entry.js +0 -4
  303. package/lib/duet/p-d12b3d21.system.entry.js +0 -4
  304. package/lib/duet/p-ded33218.system.entry.js +0 -4
  305. package/lib/duet/p-e6a69eb8.js +0 -4
  306. package/lib/duet/p-ef4962e8.entry.js +0 -4
  307. package/lib/duet/p-ff21f3c2.entry.js +0 -4
  308. package/lib/esm/duet-editable-table-button.entry.js +0 -92
  309. package/lib/esm/js-utils-b69f17df.js +0 -14
  310. package/lib/esm-es5/duet-editable-table-button.entry.js +0 -4
  311. package/lib/esm-es5/duet-editable-table_4.entry.js +0 -4
  312. package/lib/esm-es5/focus-utils-d4e80e1e.js +0 -4
  313. package/lib/esm-es5/js-utils-b69f17df.js +0 -4
  314. package/lib/types/components/duet-editable-table/duet-editable-table-button.d.ts +0 -73
  315. 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.17"};
5
+ const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.2.20"};
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,130 +1853,648 @@ 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() {
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() {
1926
2498
  inheritGlobalTheme(this);
1927
2499
  }
1928
2500
  /**
@@ -1998,419 +2570,48 @@ let DuetBreadcrumbs$1 = class extends H {
1998
2570
  */
1999
2571
  this.theme = "";
2000
2572
  }
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 capitalizeFirstLetter(string) {
2371
- return string.charAt(0).toUpperCase() + string.slice(1);
2372
- }
2373
- function hasType(t, str = "") {
2374
- return str.indexOf(capitalizeFirstLetter(t)) === 0 || str.indexOf(t) === 0;
2375
- }
2376
- function addPrefix(prefix, str = "") {
2377
- if (str && !isDashCase(str) && !hasType(prefix, str)) {
2378
- return `${prefix}${capitalize(str)}`;
2379
- }
2380
- return str;
2381
- }
2382
- function addTheme(str, theme) {
2383
- const hasTheme = getTheme(theme).length;
2384
- if (hasTheme && str.indexOf(theme) === -1) {
2385
- return `${str}${capitalize(theme)}`;
2386
- }
2387
- return str;
2388
- }
2389
- function getColorByName(name, theme = "") {
2390
- if (!name) {
2391
- return undefined;
2573
+ /**
2574
+ * Component lifecycle events.
2575
+ */
2576
+ componentWillLoad() {
2577
+ inheritGlobalTheme(this);
2578
+ this.children = Array.from(this.element.children);
2392
2579
  }
2393
- const defaultColor = convertToColorName(name);
2394
- const themedColor = convertToColorName(name, theme);
2395
- // lets just try to get the color first to save some cycles
2396
- let resolvedToken = tokens$2[themedColor];
2397
- if (!resolvedToken) {
2398
- 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
+ });
2399
2591
  }
2400
- return resolvedToken;
2401
- }
2402
- function convertToColorName(name = "", theme = "") {
2403
- let colorResolution = name;
2404
- const dash = isDashCase(name);
2405
- if (dash) {
2406
- colorResolution = camelize(colorResolution);
2592
+ disconnectedCallback() {
2593
+ this.observers.forEach(observer => observer.disconnect());
2594
+ this.observers = [];
2407
2595
  }
2408
- colorResolution = addPrefix("color", colorResolution);
2409
- colorResolution = addTheme(colorResolution, theme);
2410
- // takes care of the case where colorPrimaryDark ends up with ColorPrimaryDark
2411
- colorResolution = lowerCaseFirst(colorResolution);
2412
- return colorResolution;
2413
- }
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
+ };
2414
2615
 
2415
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}";
2416
2617
 
@@ -2421,6 +2622,10 @@ let DuetButton$1 = class extends H {
2421
2622
  this.__attachShadow();
2422
2623
  this.duetFocus = createEvent$2(this, "duetFocus", 7);
2423
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";
2424
2629
  /**
2425
2630
  * Loading state of the button
2426
2631
  */
@@ -2641,7 +2846,7 @@ let DuetButton$1 = class extends H {
2641
2846
  "duet-theme-turva": this.theme === "turva",
2642
2847
  "duet-button-negative": this.negative || this.variation === "negative",
2643
2848
  [this.variation]: true,
2644
- } }, 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" }))));
2645
2850
  }
2646
2851
  get element() { return this; }
2647
2852
  static get watchers() { return {
@@ -2701,28 +2906,6 @@ let DuetCaption$1 = class extends H {
2701
2906
 
2702
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>"};
2703
2908
 
2704
- function chr4() {
2705
- return Math.random().toString(16).slice(-4);
2706
- }
2707
- function createID(prefix) {
2708
- return `${prefix}-${chr4()}${chr4()}-${chr4()}-${chr4()}-${chr4()}-${chr4()}${chr4()}${chr4()}`;
2709
- }
2710
-
2711
- const isArrowLeftKey = (e) => e.keyCode === 37;
2712
- const isArrowUpKey = (e) => e.keyCode === 38;
2713
- const isArrowRightKey = (e) => e.keyCode === 39;
2714
- const isArrowDownKey = (e) => e.keyCode === 40;
2715
- const isArrowKey = (e) => isArrowDownKey(e) || isArrowRightKey(e) || isArrowUpKey(e) || isArrowLeftKey(e);
2716
- const isEscapeKey = (e) => e.key === "Escape" || e.key === "Esc" || e.keyCode === 27;
2717
- const isBackspaceKey = (e) => e.keyCode === 8;
2718
- const isSpaceKey = (e) => e.key === "Space" || e.keyCode === 32;
2719
- const isPlusKey = (e) => e.key === "+" || e.keyCode === 43;
2720
- const isMinusKey = (e) => e.key === "-" || e.keyCode === 45;
2721
- const isQuestionKey = (e) => e.key === "?";
2722
- const isEnterKey = (e) => e.key === "Enter" || e.keyCode === 13;
2723
- const isKeyboardClick = (e) => isEnterKey(e) || isSpaceKey(e);
2724
- const isNumber = (e) => (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105);
2725
-
2726
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)}";
2727
2910
 
2728
2911
  let DuetCard$1 = class extends H {
@@ -3108,7 +3291,7 @@ const FocusGuard = ({ moveFocusTo }) => {
3108
3291
  return h("div", { class: "duet-focus-guard", "aria-hidden": "true", tabIndex: 0, onFocus: () => focusElement(moveFocusTo) });
3109
3292
  };
3110
3293
 
3111
- 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}";
3112
3295
 
3113
3296
  let DuetChoice$1 = class extends H {
3114
3297
  constructor() {
@@ -3384,7 +3567,7 @@ let DuetChoice$1 = class extends H {
3384
3567
  info: this.isInfoOpen,
3385
3568
  collapsible: this.collapsible,
3386
3569
  "duet-p-0": this.padding === "none",
3387
- } }, 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: {
3388
3571
  "duet-choice-info-toggle": true,
3389
3572
  "duet-theme-turva": this.theme === "turva",
3390
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: {
@@ -4607,7 +4790,7 @@ const DatePickerMonth = ({ selectedDate, focusedDate, labelledById, theme, langu
4607
4790
  } }))))))))));
4608
4791
  };
4609
4792
 
4610
- 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}";
4611
4794
 
4612
4795
  let DuetDatePicker$1 = class extends H {
4613
4796
  constructor() {
@@ -5003,7 +5186,7 @@ let DuetDatePicker$1 = class extends H {
5003
5186
  left: this.direction === "left",
5004
5187
  error: !!this.error,
5005
5188
  active: this.open,
5006
- }, 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 }))));
5007
5190
  }
5008
5191
  get element() { return this; }
5009
5192
  static get watchers() { return {
@@ -5053,370 +5236,217 @@ let DuetDivider$1 = class extends H {
5053
5236
  static get style() { return duetDividerCss; }
5054
5237
  };
5055
5238
 
5056
- const debounce = (func, timeout = 50) => {
5057
- let timer;
5058
- return (...args) => {
5059
- clearTimeout(timer);
5060
- timer = setTimeout(() => {
5061
- func.apply(undefined, args);
5062
- }, timeout);
5063
- };
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
+ }
5064
5248
  };
5065
5249
 
5066
- /**
5067
- * Produces a function which uses template strings to do simple interpolation from objects.
5068
- *
5069
- * Usage:
5070
- * var makeMeKing = generateTemplateFn('${name} is now the king of ${country}!');
5071
- *
5072
- * console.log(makeMeKing({ name: 'Bryan', country: 'Scotland'}));
5073
- * // Logs 'Bryan is now the king of Scotland!'
5074
- */
5075
- const generateTemplateFn = (function () {
5076
- const cache = {};
5077
- function generateTemplate(template) {
5078
- if (typeof template !== "string") {
5079
- template = template.outerHTML;
5080
- }
5081
- let fn = cache[template];
5082
- if (!fn) {
5083
- // Replace ${expressions} (etc) with ${map.expressions}.
5084
- const sanitized = template
5085
- .replace(/\$\{([\s]*[^;\s\{]+[\s]*)\}/g, function (_, match) {
5086
- return `\$\{map.${match.trim()}\}`;
5087
- })
5088
- // Afterwards, replace anything that's not ${map.expressions}' (etc) with a blank string.
5089
- .replace(/(\$\{(?!map\.)[^}]+\})/g, "");
5090
- fn = Function("map", `return \`${sanitized}\``);
5091
- }
5092
- return fn;
5093
- }
5094
- return generateTemplate;
5095
- })();
5096
-
5097
- 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}";
5098
5251
 
5099
5252
  let DuetEditableTable$1 = class extends H {
5100
5253
  constructor() {
5101
5254
  super();
5102
5255
  this.__registerHost();
5103
- this.__attachShadow();
5104
- this.template = undefined;
5105
- /**
5106
- * State() variables
5107
- * @internal
5108
- */
5109
- this.tick = Date.now();
5256
+ this.duetTableToggle = createEvent$2(this, "duetTableToggle", 7);
5257
+ this.duetMenuClick = createEvent$2(this, "duetMenuClick", 7);
5110
5258
  /**
5111
- * Map of items that contain list of things.
5259
+ * Duet-table: margin of the component.
5112
5260
  */
5113
- this.items = new Map();
5261
+ this.margin = "auto";
5114
5262
  /**
5115
- * Key used to set vertical alignment of action buttons
5263
+ * Duet-table: Style variation of the table.
5116
5264
  */
5117
- this.alignment = "middle";
5265
+ this.variation = "striped";
5118
5266
  /**
5119
- * 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".
5120
5269
  */
5121
- this.groupsLabelDefaults = {
5122
- fi: "Kaikki",
5123
- en: "All items",
5124
- sv: "Alla objekt",
5125
- };
5270
+ this.sticky = false;
5126
5271
  /**
5127
- * 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.
5128
5274
  */
5129
- this.actionLabelDefaults = {
5130
- fi: "Toiminnot",
5131
- en: "Actions",
5132
- sv: "Handlingar",
5133
- };
5275
+ this.stickyDistance = "with-links";
5134
5276
  /**
5135
- * Array of group names that you want the editable table to display (can be used to hide or show groups depending on conditions).
5136
- * @default { id: "all", label: this.groupsLabelDefaults, actionLabel: this.actionLabelDefaults }.
5137
- * @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.
5138
5282
  */
5139
- this.groups = [
5140
- { id: "all", label: this.groupsLabelDefaults, actionLabel: this.actionLabelDefaults },
5141
- ];
5283
+ this.breakpoint = "small";
5142
5284
  /**
5143
- * 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
5144
5288
  * @default undefined
5145
- * @example [{
5146
- variation: "default",
5147
- icon: "action-edit-2",
5148
- id: "edit",
5149
- map: ["success"],
5150
- label: {
5151
- fi: " Label",
5152
- en: " Label",
5153
- sv: " Label",
5154
- }
5155
- }]
5156
- */
5157
- this.actions = undefined;
5158
- /**
5159
- * Shows or hides the table labels.
5160
- */
5161
- this.hideGroups = false;
5162
- /**
5163
- * Exposes the aria role for optimizing accessibility.
5164
- */
5165
- this.accessibleRole = undefined;
5166
- /**
5167
- * Theme of the table.
5168
- */
5169
- this.theme = "";
5170
- /**
5171
- * Private methods.
5172
- */
5173
- this.kick = debounce(() => {
5174
- this.tick = Date.now();
5175
- }, 100); // will trigger re-render
5176
- /**
5177
- * If a user defines a template section within editable table, try to read an use it.
5178
- */
5179
- this.getTemplate = () => {
5180
- const templateDom = this.element.getElementsByTagName("template");
5181
- if (templateDom === null || templateDom === void 0 ? void 0 : templateDom.length) {
5182
- const templateString = templateDom[0].content.firstElementChild.outerHTML;
5183
- return generateTemplateFn(templateString);
5184
- }
5185
- else {
5186
- return false;
5187
- }
5188
- };
5189
- this.getItemData = (data) => {
5190
- const { item, group, uid } = data;
5191
- if (this.template) {
5192
- return {
5193
- group,
5194
- uid,
5195
- item: this.template(item),
5196
- };
5197
- }
5198
- return { item, group, uid };
5199
- };
5200
- this.filterMap = needle => {
5201
- if (needle === "all") {
5202
- return Array.from(this.items);
5203
- }
5204
- return Array.from(this.items).filter(item => needle === item[1].group);
5205
- };
5206
- }
5207
- /**
5208
- * Component lifecycle events.
5209
- */
5210
- componentWillLoad() {
5211
- // look for a <template> region in the duet-editable-table
5212
- this.template = this.getTemplate();
5213
- // take care of the case where groups and actions are defined as html properties instead of javascript objects
5214
- if (typeof this.groups === "string") {
5215
- this.internalGroupArray = sanitizeString(this.groups);
5216
- }
5217
- else {
5218
- this.internalGroupArray = this.groups;
5219
- }
5220
- if (typeof this.actions === "string") {
5221
- this.internalActionsArray = sanitizeString(this.actions);
5222
- }
5223
- else {
5224
- this.internalActionsArray = this.actions;
5225
- }
5226
- inheritGlobalTheme(this);
5227
- }
5228
- /**
5229
- * Method to force an update of a tabular data array.
5230
- * when called the method will rerender the entire tabular structure.
5231
- */
5232
- async updateTable(passedItems = undefined) {
5233
- this.items = new Map(passedItems || this.items);
5234
- this.kick();
5235
- }
5236
- render() {
5237
- return (h$1(Host, { class: {
5238
- "duet-theme-turva": this.theme === "turva",
5239
- } }, this.internalGroupArray.map(group => {
5240
- const currentGroup = this.filterMap(group.id);
5241
- if (!currentGroup.length) {
5242
- return;
5243
- }
5244
- 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: {
5245
- "duet-editable-table-header-hidden": this.hideGroups,
5246
- } }, !this.hideGroups ? (getLocaleString(group.label)) : (h$1("duet-visually-hidden", null, getLocaleString(group.label)))), h$1("th", { class: {
5247
- "duet-editable-table-header-hidden": this.hideGroups,
5248
- } }, h$1("duet-visually-hidden", null, group.actionLabel
5249
- ? getLocaleString(group.actionLabel)
5250
- : getLocaleString(this.actionLabelDefaults))))), h$1("tbody", null, currentGroup.map(dataAsArray => {
5251
- const [key, value] = dataAsArray;
5252
- 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 }));
5253
- })))));
5254
- })));
5255
- }
5256
- get element() { return this; }
5257
- static get style() { return duetEditableTableCss; }
5258
- };
5259
-
5260
- 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}";
5261
-
5262
- let DuetEditableTableButton$1 = class extends H {
5263
- constructor() {
5264
- super();
5265
- this.__registerHost();
5266
- this.duetEditableItemAction = createEvent$2(this, "duetEditableItemAction", 7);
5267
- this.isHovering = false;
5268
- /**
5269
- * Theme of the empty state component.
5270
- */
5271
- this.theme = undefined;
5272
- /**
5273
- * action items passed from host component
5274
- * @internal
5275
5289
  */
5276
5290
  this.actions = undefined;
5277
5291
  /**
5278
- * uid that gets passed along when the action is emitted
5279
- * @internal
5280
- */
5281
- this.uid = "";
5282
- /**
5283
- * group associated with action
5284
- * @internal
5285
- */
5286
- this.group = "";
5287
- /**
5288
- * key of the item in the map
5289
- * @internal
5292
+ * Define columns for a table
5293
+ * An alternative to inline HTML table.
5294
+ * required for Sortable tables
5295
+ * @default undefined
5290
5296
  */
5291
- this.keyName = "";
5292
- this.onMouseEnter = () => {
5293
- this.isHovering = true;
5294
- };
5295
- this.onMouseLeave = () => {
5296
- this.isHovering = false;
5297
- };
5298
- this.getColours = (byName = false) => {
5299
- let colorHover = this.actions.color_hover;
5300
- let colorBlur = this.actions.color;
5301
- if (byName) {
5302
- colorHover = getColorByName(this.actions.color_hover, this.theme);
5303
- colorBlur = getColorByName(this.actions.color, this.theme);
5304
- }
5305
- return this.isHovering ? colorHover : colorBlur;
5306
- };
5307
- }
5308
- /**
5309
- /**
5310
- * Component lifecycle events.
5311
- */
5312
- componentWillLoad() {
5313
- inheritGlobalTheme(this);
5314
- }
5315
- /**
5316
- /**
5317
- * private functions
5318
- */
5319
- emitActionEvent(ev) {
5320
- this.duetEditableItemAction.emit({
5321
- originalEvent: ev,
5322
- uid: this.uid,
5323
- group: this.group,
5324
- action: this.actions.id,
5325
- keyName: this.keyName,
5326
- component: "duet-editable-table-item",
5327
- });
5328
- }
5329
- /**
5330
- * render() function
5331
- * Always the last one in the class.
5332
- */
5333
- render() {
5334
- return (h$1("button", { style: {
5335
- "border-color": this.getColours(true),
5336
- }, 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" })));
5337
- }
5338
- get el() { return this; }
5339
- static get style() { return duetEditableTableButtonCss; }
5340
- };
5341
-
5342
- //simple functional component that renders the data in the table
5343
- const TableData = ({ data, groupId, alignment }, _children) => {
5344
- if (typeof data === "string") {
5345
- return (h("td", { innerHTML: data, class: "duet-editable-table-content", part: `${groupId}content`, style: { verticalAlign: alignment } }));
5346
- }
5347
- else {
5348
- return (h("td", { class: "duet-editable-table-content", part: `${groupId}content`, style: { verticalAlign: alignment } }, data));
5349
- }
5350
- };
5351
-
5352
- 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}";
5353
-
5354
- let DuetEditableTableItem$1 = class extends H {
5355
- constructor() {
5356
- super();
5357
- this.__registerHost();
5358
- this.__attachShadow();
5359
- this.duetEditableItemAction = createEvent$2(this, "duetEditableItemAction", 7);
5360
- this.isHovering = false;
5297
+ this.columns = undefined;
5361
5298
  /**
5362
- * 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
5363
5303
  */
5364
- this.theme = "";
5304
+ this.rows = undefined;
5365
5305
  /**
5366
- * Actions that can be performed on the element
5306
+ * Controls whether the table is sortable by headers
5367
5307
  */
5368
- this.actions = undefined;
5308
+ this.sortable = false;
5369
5309
  /**
5370
- * GroupId used to pierce the shadowdom - gets concatenated with "content & actions" and used as part="groupIDcontent/actions" to pierce the content/Action item
5371
- * @internal
5310
+ * Optional id that get passed to the table and used to setup ::parts
5372
5311
  */
5373
5312
  this.groupId = "";
5374
5313
  /**
5375
- * Key used to set vertical alignment of action buttons
5314
+ * Theme of the table.
5376
5315
  */
5377
- this.alignment = "middle";
5316
+ this.theme = "";
5378
5317
  /**
5379
- * Key used to identify item, when running actions
5318
+ * Exposes the aria role for optimizing accessibility.
5380
5319
  */
5381
- 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
+ };
5382
5331
  /**
5383
- * Object of data itemsused to render the entire row
5332
+ * Private methods.
5384
5333
  */
5385
- this.data = undefined;
5386
- }
5387
- watchPropHandler(_newValue, _oldValue) {
5388
- // 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
+ };
5389
5351
  }
5390
5352
  /**
5391
- /**
5392
5353
  * Component lifecycle events.
5393
5354
  */
5394
5355
  componentWillLoad() {
5395
5356
  inheritGlobalTheme(this);
5396
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
+ }
5397
5433
  /**
5398
- /**
5399
- * private functions
5400
- */
5401
- /**
5402
- * render() function
5403
- * Always the last one in the class.
5434
+ * Render Methods
5404
5435
  */
5405
5436
  render() {
5406
- 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 => {
5407
- const { map = undefined } = result;
5408
- // if map has been specified, only show the current action if groupID matches the map array
5409
- if (map && !map.includes(this.groupId)) {
5410
- return;
5411
- }
5412
- return (h$1("duet-editable-table-button", { keyName: this.keyName, group: this.data.group, uid: this.data.uid, actions: result, theme: this.theme }));
5413
- })))));
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" }))))))));
5414
5447
  }
5415
- get el() { return this; }
5416
- static get watchers() { return {
5417
- "data": ["watchPropHandler"]
5418
- }; }
5419
- static get style() { return duetEditableTableItemCss; }
5448
+ get element() { return this; }
5449
+ static get style() { return duetEditableTableCss; }
5420
5450
  };
5421
5451
 
5422
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}";
@@ -6099,7 +6129,7 @@ const DuetHeaderHamburger = () => (h("div", { class: "duet-header-hamburger" },
6099
6129
  h("span", { class: "duet-header-bar" }),
6100
6130
  h("span", { class: "duet-header-bar" })));
6101
6131
 
6102
- 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}";
6103
6133
 
6104
6134
  const createEvent = (ev, data) => ({
6105
6135
  component: "duet-header",
@@ -6566,7 +6596,7 @@ let DuetHeader$1 = class extends H {
6566
6596
  "duet-theme-turva": this.theme === "turva",
6567
6597
  "duet-header-back": true,
6568
6598
  "duet-header-inactive": true,
6569
- } }, 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" }))))));
6570
6600
  }
6571
6601
  // multi level desktop variation
6572
6602
  const itemsHaveSubItems = this.processedItems && this.processedItems.some(item => item.items && item.items.length > 0);
@@ -6583,7 +6613,7 @@ let DuetHeader$1 = class extends H {
6583
6613
  "duet-header": true,
6584
6614
  "duet-theme-turva": this.theme === "turva",
6585
6615
  "duet-header-inactive": !this.processedItems,
6586
- } }, 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 &&
6587
6617
  activeSegment.items
6588
6618
  .filter(secondLevelItem => secondLevelItem.items && secondLevelItem.items.length > 0)
6589
6619
  .map((secondLevelItem, secondLevelItemIndex) => {
@@ -6609,7 +6639,7 @@ let DuetHeader$1 = class extends H {
6609
6639
  "duet-header": true,
6610
6640
  "duet-theme-turva": this.theme === "turva",
6611
6641
  "duet-header-inactive": !this.processedItems,
6612
- } }, 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 ||
6613
6643
  languageDropdown ||
6614
6644
  contactDropdown ||
6615
6645
  this.processedSession ||
@@ -8600,7 +8630,7 @@ const shouldDisplayNavigation = (visibleItems, total, take) => {
8600
8630
  return true;
8601
8631
  };
8602
8632
 
8603
- 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}";
8604
8634
 
8605
8635
  let DuetPagination$1 = class extends H {
8606
8636
  constructor() {
@@ -8628,10 +8658,14 @@ let DuetPagination$1 = class extends H {
8628
8658
  * Characters to use for the jump buttons.
8629
8659
  */
8630
8660
  this.jumpString = "...";
8661
+ /**
8662
+ * Variation of the paginator (compact and default supported)
8663
+ */
8664
+ this.variation = "default";
8631
8665
  /**
8632
8666
  * Default pagination labels
8633
8667
  */
8634
- this.ariaLabelsDefaults = {
8668
+ this.accessibleLabelsDefaults = {
8635
8669
  en: {
8636
8670
  next_page: "Next page",
8637
8671
  previous_page: "Previous page",
@@ -8672,7 +8706,7 @@ let DuetPagination$1 = class extends H {
8672
8706
  /**
8673
8707
  * Default pagination labels
8674
8708
  */
8675
- this.ariaLabels = getLocaleString(this.ariaLabelsDefaults);
8709
+ this.accessibleLabels = getLocaleString(this.accessibleLabelsDefaults);
8676
8710
  /**
8677
8711
  * The size of the take, when paginating.
8678
8712
  */
@@ -8841,29 +8875,35 @@ let DuetPagination$1 = class extends H {
8841
8875
  "duet-pagination-item-is-active": i === this.current,
8842
8876
  }, role: "menuitem" }, h$1("duet-button", { class: {
8843
8877
  "duet-pagination-link": true,
8844
- }, 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))));
8845
8879
  } while (i < this.visibleItems + this.internalSectionIndex * this.visibleItems);
8846
8880
  return items;
8847
8881
  }
8848
8882
  shouldDisplayNavigation() {
8849
- 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;
8850
8887
  }
8851
8888
  /**
8852
8889
  * render() function
8853
8890
  * Always the last one in the class.
8854
8891
  */
8855
8892
  render() {
8856
- 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: {
8857
8897
  "duet-pagination": true,
8858
8898
  "duet-pagination-is-dimmed": this.numbersStore !== "",
8859
- }, 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: {
8860
8900
  "duet-pagination-page-button": true,
8861
8901
  "duet-pagination-button-first": true,
8862
- }, 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: {
8863
8903
  "duet-pagination-page-button": true,
8864
8904
  "duet-pagination-button-last": true,
8865
- }, role: "menuitem", part: "navigation-arrow" }, h$1("button", { disabled: this.current === this.totalPages &&
8866
- 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" }))))));
8867
8907
  }
8868
8908
  get element() { return this; }
8869
8909
  static get watchers() { return {
@@ -9403,7 +9443,7 @@ let DuetRangeSlider$1 = class extends H {
9403
9443
  static get style() { return duetRangeSliderCss; }
9404
9444
  };
9405
9445
 
9406
- 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}";
9407
9447
 
9408
9448
  let DuetRangeStepper$1 = class extends H {
9409
9449
  constructor() {
@@ -9550,7 +9590,7 @@ let DuetRangeStepper$1 = class extends H {
9550
9590
  return (h$1("div", { class: {
9551
9591
  "duet-range-stepper": true,
9552
9592
  "duet-theme-turva": this.theme === "turva",
9553
- }, 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" })));
9554
9594
  }
9555
9595
  get element() { return this; }
9556
9596
  static get watchers() { return {
@@ -10476,7 +10516,7 @@ let DuetTabGroup$1 = class extends H {
10476
10516
  static get style() { return duetTabGroupCss; }
10477
10517
  };
10478
10518
 
10479
- 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}";
10480
10520
 
10481
10521
  // remove wrapping speech marks.
10482
10522
  // media query tokens are wrapped in speech marks,
@@ -10537,9 +10577,9 @@ let DuetTable$1 = class extends H {
10537
10577
  }
10538
10578
  connectedCallback() {
10539
10579
  this.mq = matchMedia(breakpointToToken[this.breakpoint]);
10540
- this.mq.addEventListener("change", this.handleMediaQueryChange);
10580
+ this.mq.addEventListener("change", debounce(this.handleMediaQueryChange, 50));
10541
10581
  this.handleMediaQueryChange(this.mq);
10542
- this.observer = new MutationObserver(() => this.copyHeadingsToCells());
10582
+ this.observer = new MutationObserver(() => debounce(this.copyHeadingsToCells(), 50));
10543
10583
  this.observer.observe(this.element, {
10544
10584
  childList: true,
10545
10585
  subtree: true,
@@ -10570,6 +10610,9 @@ let DuetTable$1 = class extends H {
10570
10610
  this.mq = null;
10571
10611
  this.matchesBreakpoint = true;
10572
10612
  }
10613
+ /**
10614
+ * Local methods.
10615
+ */
10573
10616
  copyHeadingsToCells() {
10574
10617
  const headingElements = this.element.querySelectorAll("thead th");
10575
10618
  const rowElements = this.element.querySelectorAll("tbody tr");
@@ -11469,7 +11512,7 @@ const validateFile = (item, validators) => {
11469
11512
  if (item) {
11470
11513
  const { name, type, size } = item;
11471
11514
  const mime = validateFileMime(type, allowedMimetypes);
11472
- const ext = validateFileExtension(name, allowedExtensions);
11515
+ const ext = validateFileExtension(name.toLowerCase(), allowedExtensions);
11473
11516
  const bytes = validateFileSize(size, maxBytes);
11474
11517
  if (!mime) {
11475
11518
  errorMessage = getError("duet-upload-101");
@@ -11549,7 +11592,7 @@ const makeXhrRequest = ({ payload, options, onFailure, onSuccess, onProgress })
11549
11592
  return xhr;
11550
11593
  };
11551
11594
 
11552
- 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}";
11553
11596
 
11554
11597
  let DuetUpload$1 = class extends H {
11555
11598
  constructor() {
@@ -11565,25 +11608,6 @@ let DuetUpload$1 = class extends H {
11565
11608
  this.duetCancel = createEvent$2(this, "duetCancel", 3);
11566
11609
  this.duetProgress = createEvent$2(this, "duetProgress", 3);
11567
11610
  this.duetUpload = createEvent$2(this, "duetUpload", 3);
11568
- /**
11569
- * Own Properties
11570
- */
11571
- this.buttonId = createID("DuetButton");
11572
- this.labelId = createID("DuetLabel");
11573
- this.uploadId = createID("DuetUpload");
11574
- this.editableTableId = createID("DuetEditableTable");
11575
- this.filesInProgress = new Map();
11576
- this.fileMaxReached = false;
11577
- this.bytesMaxReached = false;
11578
- this.internalStatusMessageLabel = undefined;
11579
- /**
11580
- * Properties
11581
- */
11582
- this.DefaultGroups = {
11583
- inprogress: "inprogress",
11584
- success: "success",
11585
- failure: "failure",
11586
- };
11587
11611
  /**
11588
11612
  * State() variables
11589
11613
  */
@@ -11605,8 +11629,9 @@ let DuetUpload$1 = class extends H {
11605
11629
  {
11606
11630
  icon: "action-delete",
11607
11631
  color: "color-danger",
11608
- color_hover: "primary-dark",
11609
- id: "delete",
11632
+ size: "x-small",
11633
+ background: "gray-lightest",
11634
+ name: "delete",
11610
11635
  map: ["success", "failure"],
11611
11636
  label: {
11612
11637
  fi: "Poista tiedosto",
@@ -11617,8 +11642,9 @@ let DuetUpload$1 = class extends H {
11617
11642
  {
11618
11643
  icon: "navigation-close",
11619
11644
  color: "primary",
11620
- color_hover: "primary-dark",
11621
- id: "cancel",
11645
+ size: "x-small",
11646
+ background: "gray-lightest",
11647
+ name: "cancel",
11622
11648
  map: ["inprogress"],
11623
11649
  label: {
11624
11650
  fi: "Keskeytä lähetys",
@@ -11688,8 +11714,8 @@ let DuetUpload$1 = class extends H {
11688
11714
  inProgressWithErrors: "Uploading {filesInProgress}, {filesUploaded} uploaded of {filesTotal}, {filesWithErrors} failed",
11689
11715
  done: "All {filesTotal} added successfully",
11690
11716
  doneWithErrors: "Action completed, {filesUploaded} has been added successfully, {filesWithErrors} had errors",
11691
- files: "tiedostoa",
11692
- file: "tiedosto",
11717
+ files: "File",
11718
+ file: "file",
11693
11719
  },
11694
11720
  };
11695
11721
  /**
@@ -11844,19 +11870,72 @@ let DuetUpload$1 = class extends H {
11844
11870
  * by default this is off, setting this to true will limit the users choices to what has been explicitly set
11845
11871
  */
11846
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
11847
11925
  /**
11848
11926
  * Private functions
11849
11927
  */
11850
11928
  this.listenForActionEvents = () => {
11851
- this.element.addEventListener("duetEditableItemAction", (e) => {
11929
+ this.element.addEventListener("duetActionEvent", (e) => {
11852
11930
  const detail = e.detail;
11853
- const { action, keyName, originalEvent } = detail;
11931
+ const { action, id, originalEvent } = detail;
11932
+ console.log(e);
11854
11933
  switch (action) {
11855
11934
  case "delete":
11856
- this.onDelete(keyName, originalEvent);
11935
+ this.onDelete(id, originalEvent);
11857
11936
  break;
11858
11937
  case "cancel":
11859
- this.onCancel(keyName, originalEvent);
11938
+ this.onCancel(id, originalEvent);
11860
11939
  break;
11861
11940
  // code block
11862
11941
  }
@@ -11913,24 +11992,6 @@ let DuetUpload$1 = class extends H {
11913
11992
  return "none";
11914
11993
  }
11915
11994
  };
11916
- this.convertToDuetEditableTableItems = () => {
11917
- // we're always recreating the map - in order to force an update down stream.
11918
- const itemData = new Map();
11919
- //walk the files Map and convert to DuetEditableTableItemData
11920
- this.files.forEach((data, key, _originalMap) => {
11921
- const group = this.getGroupFromItemData(data);
11922
- const item = this.getItemHTMLFromItemData(data, group);
11923
- itemData.set(key, {
11924
- uid: data.uid,
11925
- item,
11926
- group,
11927
- });
11928
- });
11929
- return itemData;
11930
- };
11931
- this.kick = debounce(() => {
11932
- this.tick = Date.now();
11933
- }, 30); // will trigger re-render
11934
11995
  this.genHashName = () => Date.now().toString(36) + Math.random();
11935
11996
  this.updateValueInMap = (item, key, value, kick = true) => {
11936
11997
  const fileItem = this.files.get(item);
@@ -11991,7 +12052,6 @@ let DuetUpload$1 = class extends H {
11991
12052
  this.nativeInput.value = "";
11992
12053
  };
11993
12054
  this.startUpload = async (ev, metaData = undefined) => {
11994
- await this.setFocus();
11995
12055
  this.metaData = metaData;
11996
12056
  this.nativeInput.click();
11997
12057
  this.onUpload(ev, metaData);
@@ -12054,9 +12114,18 @@ let DuetUpload$1 = class extends H {
12054
12114
  fileMaxReached: isTotalFileAmountAboveMax,
12055
12115
  };
12056
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
+ };
12057
12125
  this.onDelete = (key, ev) => {
12058
- const deletedItem = this.files.get(key);
12059
- this.files.delete(key);
12126
+ const retrievedKey = this.getItemFromUID(key).key;
12127
+ const deletedItem = this.files.get(retrievedKey);
12128
+ this.files.delete(retrievedKey);
12060
12129
  this.validateTotals();
12061
12130
  this.kick();
12062
12131
  this.duetDelete.emit({
@@ -12070,8 +12139,9 @@ let DuetUpload$1 = class extends H {
12070
12139
  this.resetFormFields();
12071
12140
  };
12072
12141
  this.onCancel = (key, ev) => {
12073
- const cancelledItem = this.files.get(key);
12074
- this.files.delete(key);
12142
+ const retrievedKey = this.getItemFromUID(key).key;
12143
+ const cancelledItem = this.files.get(retrievedKey);
12144
+ this.files.delete(retrievedKey);
12075
12145
  if (!this.external) {
12076
12146
  const { xhr } = cancelledItem;
12077
12147
  xhr.abort();
@@ -12121,6 +12191,79 @@ let DuetUpload$1 = class extends H {
12121
12191
  data: { files: this.files },
12122
12192
  });
12123
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
+ };
12124
12267
  }
12125
12268
  watchValidHandler(newValue, oldValue) {
12126
12269
  if (newValue !== oldValue) {
@@ -12144,6 +12287,68 @@ let DuetUpload$1 = class extends H {
12144
12287
  // listen to the events from the component
12145
12288
  this.verifyValidity();
12146
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
+ }
12147
12352
  /**
12148
12353
  * XHR request utilities
12149
12354
  */
@@ -12265,68 +12470,6 @@ let DuetUpload$1 = class extends H {
12265
12470
  component: "duet-upload",
12266
12471
  });
12267
12472
  }
12268
- /**
12269
- * Sets focus on the specified `duet-input`. Use this method instead of the global
12270
- * `input.focus()`.
12271
- */
12272
- async setFocus(options) {
12273
- if (this.nativeInput) {
12274
- this.nativeInput.focus(options);
12275
- }
12276
- return;
12277
- }
12278
- /**
12279
- * Method for invoking the upload sequence
12280
- */
12281
- async upload(metaData = undefined) {
12282
- await this.setFocus();
12283
- this.metaData = metaData;
12284
- this.nativeInput.click();
12285
- return;
12286
- }
12287
- /**
12288
- * Method for forcing a render of the upload list, element.files can be changed externally
12289
- * But it will only rerender on a new Map or a top Level change - this can be used to update
12290
- * the tabular data if the automatic re-render is no sufficient
12291
- */
12292
- async refresh() {
12293
- this.kick();
12294
- await this.setFocus();
12295
- }
12296
- /**
12297
- * Get list of files, divided in errors and valid sections
12298
- */
12299
- async getFiles() {
12300
- if (!this.files || this.files.size === 0) {
12301
- return false;
12302
- }
12303
- return this.getFilesAsArray();
12304
- }
12305
- /**
12306
- * Convenience method for updating the value of a key:value inside an item in the files attribute
12307
- */
12308
- async updateValue(item, key, value) {
12309
- this.updateValueInMap(item, key, value);
12310
- }
12311
- /**
12312
- * render() function
12313
- * Always the last one in the class.
12314
- */
12315
- render() {
12316
- const identifier = this.identifier || this.uploadId;
12317
- let caption = this.description.replace(/{maxfiles}/g, this.maxFiles.toString());
12318
- caption = caption.replace(/{maxbytes}/g, `${Math.floor(this.maxBytes / 1024 / 1024)} MB`);
12319
- caption = caption.replace(/{filetypes}/g, this.allowedExtensions.split(",").join(", "));
12320
- 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: {
12321
- "duet-upload-filelist-empty": !this.files.size,
12322
- "duet-upload-filelist": true,
12323
- "duet-upload-filelist-filled": this.files.size,
12324
- }, 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 => {
12325
- this.nativeInput = input;
12326
- }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
12327
- "duet-upload": true,
12328
- }, disabled: this.disabled, "aria-hidden": "true", required: this.required, name: this.name, id: this.identifier, multiple: this.multiple, capture: "user" })))));
12329
- }
12330
12473
  get element() { return this; }
12331
12474
  static get watchers() { return {
12332
12475
  "valid": ["watchValidHandler"]
@@ -12445,11 +12588,12 @@ let DuetVisuallyHidden$1 = class extends H {
12445
12588
  };
12446
12589
 
12447
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]}]);
12448
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]}]);
12449
12593
  const DuetBadge = /*@__PURE__*/proxyCustomElement(DuetBadge$1, [1,"duet-badge",{"theme":[1025],"variation":[1],"margin":[1]}]);
12450
12594
  const DuetBreadcrumb = /*@__PURE__*/proxyCustomElement(DuetBreadcrumb$1, [1,"duet-breadcrumb",{"theme":[1025],"href":[1025],"icon":[1025],"accessibleLabel":[1,"accessible-label"]}]);
12451
12595
  const DuetBreadcrumbs = /*@__PURE__*/proxyCustomElement(DuetBreadcrumbs$1, [1,"duet-breadcrumbs",{"theme":[1025],"children":[32]}]);
12452
- 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]}]);
12453
12597
  const DuetCaption = /*@__PURE__*/proxyCustomElement(DuetCaption$1, [1,"duet-caption",{"theme":[1025],"margin":[1],"selected":[4],"size":[1]}]);
12454
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]}]);
12455
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]}]);
@@ -12459,9 +12603,7 @@ const DuetCollapsible = /*@__PURE__*/proxyCustomElement(DuetCollapsible$1, [1,"d
12459
12603
  const DuetCookieConsent = /*@__PURE__*/proxyCustomElement(DuetCookieConsent$1, [1,"duet-cookie-consent",{"accessibleLabel":[1,"accessible-label"],"theme":[1025]}]);
12460
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"]]]);
12461
12605
  const DuetDivider = /*@__PURE__*/proxyCustomElement(DuetDivider$1, [1,"duet-divider",{"theme":[1025],"margin":[1]}]);
12462
- 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]}]);
12463
- 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]}]);
12464
- 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"]}]);
12465
12607
  const DuetEmptyState = /*@__PURE__*/proxyCustomElement(DuetEmptyState$1, [1,"duet-empty-state",{"theme":[1025],"icon":[1],"size":[1]}]);
12466
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]}]);
12467
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]}]);
@@ -12482,7 +12624,7 @@ const DuetModal = /*@__PURE__*/proxyCustomElement(DuetModal$1, [1,"duet-modal",{
12482
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]}]);
12483
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"]]]);
12484
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]}]);
12485
- 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]}]);
12486
12628
  const DuetParagraph = /*@__PURE__*/proxyCustomElement(DuetParagraph$1, [1,"duet-paragraph",{"theme":[1025],"margin":[1],"size":[1],"weight":[1],"variation":[1],"color":[1]}]);
12487
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]}]);
12488
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]}]);
@@ -12502,13 +12644,14 @@ const DuetTextarea = /*@__PURE__*/proxyCustomElement(DuetTextarea$1, [2,"duet-te
12502
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]}]);
12503
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"]]]);
12504
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"]]]);
12505
- 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]}]);
12506
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]}]);
12507
12649
  const DuetVisuallyHidden = /*@__PURE__*/proxyCustomElement(DuetVisuallyHidden$1, [1,"duet-visually-hidden"]);
12508
12650
  const defineCustomElements = (opts) => {
12509
12651
  if (typeof customElements !== 'undefined') {
12510
12652
  [
12511
- DuetAlert,
12653
+ DuetActionButton,
12654
+ DuetAlert,
12512
12655
  DuetBadge,
12513
12656
  DuetBreadcrumb,
12514
12657
  DuetBreadcrumbs,
@@ -12523,8 +12666,6 @@ const defineCustomElements = (opts) => {
12523
12666
  DuetDatePicker,
12524
12667
  DuetDivider,
12525
12668
  DuetEditableTable,
12526
- DuetEditableTableButton,
12527
- DuetEditableTableItem,
12528
12669
  DuetEmptyState,
12529
12670
  DuetFieldset,
12530
12671
  DuetFooter,
@@ -12968,4 +13109,4 @@ const shadowCss = /*#__PURE__*/Object.freeze({
12968
13109
  scopeCss: scopeCss
12969
13110
  });
12970
13111
 
12971
- 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 };