@duetds/components 5.1.3 → 5.1.6

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 (298) hide show
  1. package/hydrate/index.js +225 -36
  2. package/lib/cjs/action-arrow-right-small-a25eb475.js +8 -0
  3. package/lib/cjs/duet-action-button.cjs.entry.js +17 -6
  4. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +3 -4
  8. package/lib/cjs/duet-button_2.cjs.entry.js +5 -4
  9. package/lib/cjs/duet-caption_4.cjs.entry.js +3 -3
  10. package/lib/cjs/duet-card.cjs.entry.js +3 -3
  11. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  13. package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
  14. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-editable-table_3.cjs.entry.js +105 -27
  19. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-footer.cjs.entry.js +23 -4
  22. package/lib/cjs/duet-grid_2.cjs.entry.js +2 -2
  23. package/lib/cjs/duet-header_2.cjs.entry.js +3 -3
  24. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-icon.cjs.entry.js +3 -3
  26. package/lib/cjs/duet-input_2.cjs.entry.js +56 -4
  27. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  30. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-pagination_2.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  36. package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-step_2.cjs.entry.js +2 -2
  39. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-tray.cjs.entry.js +2 -2
  43. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  45. package/lib/cjs/duet.cjs.js +2 -2
  46. package/lib/cjs/{focus-utils-85b1fb81.js → focus-utils-9ccade35.js} +1 -1
  47. package/lib/cjs/{index-a29ba279.js → index-014f74e2.js} +1 -1
  48. package/lib/cjs/loader.cjs.js +2 -2
  49. package/lib/cjs/{token-utils-f402e205.js → token-utils-50a1f7e2.js} +16 -1
  50. package/lib/cjs/{tokens-8596cece.js → tokens-29450bcb.js} +3 -0
  51. package/lib/cjs/{tokens.module-6b2df1c2.js → tokens.module-ef598645.js} +2 -0
  52. package/lib/collection/components/duet-action-button/duet-action-button.css +2 -2
  53. package/lib/collection/components/duet-action-button/duet-action-button.js +14 -2
  54. package/lib/collection/components/duet-button/duet-button.css +48 -16
  55. package/lib/collection/components/duet-button/duet-button.js +2 -1
  56. package/lib/collection/components/duet-footer/duet-footer.css +154 -0
  57. package/lib/collection/components/duet-footer/duet-footer.js +135 -5
  58. package/lib/collection/components/duet-input/duet-input.css +49 -0
  59. package/lib/collection/components/duet-input/duet-input.js +132 -3
  60. package/lib/collection/components/duet-step/duet-step.js +1 -1
  61. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  62. package/lib/collection/components/duet-table/duet-table.js +1 -1
  63. package/lib/collection/components/duet-upload/duet-upload.js +136 -27
  64. package/lib/collection/components/duet-upload/upload-editable-item-pending.js +7 -0
  65. package/lib/collection/utils/token-utils.js +14 -0
  66. package/lib/custom-elements-bundle/index.js +216 -41
  67. package/lib/duet/duet.esm.js +1 -1
  68. package/lib/duet/duet.js +1 -1
  69. package/lib/duet/{p-632e25d1.system.entry.js → p-00e6a13d.system.entry.js} +1 -1
  70. package/lib/duet/{p-ac1e6f4b.system.js → p-0447601c.system.js} +1 -1
  71. package/lib/duet/{p-bc8c3ace.system.js → p-04b00c25.system.js} +1 -1
  72. package/lib/duet/{p-c435f7e8.entry.js → p-06fde0d1.entry.js} +1 -1
  73. package/lib/duet/{p-94dc3e07.system.entry.js → p-13d2c818.system.entry.js} +1 -1
  74. package/lib/duet/p-13df0560.system.entry.js +4 -0
  75. package/lib/duet/{p-62cc6d2a.entry.js → p-17c7514e.entry.js} +1 -1
  76. package/lib/duet/p-18cc5627.system.js +4 -0
  77. package/lib/duet/{p-ebd9782a.system.entry.js → p-19073b04.system.entry.js} +1 -1
  78. package/lib/duet/{p-497750f2.entry.js → p-1953f729.entry.js} +1 -1
  79. package/lib/duet/{p-b9120f45.system.entry.js → p-1faf5cfe.system.entry.js} +1 -1
  80. package/lib/duet/{p-bd322f8f.js → p-206285a6.js} +1 -1
  81. package/lib/duet/{p-28b24806.system.entry.js → p-21f33ec5.system.entry.js} +1 -1
  82. package/lib/duet/{p-c2ad83a9.entry.js → p-23779e01.entry.js} +1 -1
  83. package/lib/duet/{p-f2ad1371.entry.js → p-23b467cc.entry.js} +1 -1
  84. package/lib/duet/{p-3bf4c99a.entry.js → p-2999ea4f.entry.js} +1 -1
  85. package/lib/duet/p-2a9db427.system.entry.js +4 -0
  86. package/lib/duet/{p-e4d54f1e.system.entry.js → p-2daca660.system.entry.js} +1 -1
  87. package/lib/duet/{p-18e17e10.entry.js → p-2ed50edc.entry.js} +1 -1
  88. package/lib/duet/{p-8d4c33ed.system.entry.js → p-322ab135.system.entry.js} +1 -1
  89. package/lib/duet/{p-e530ae17.entry.js → p-35957177.entry.js} +1 -1
  90. package/lib/duet/p-377f68c5.system.entry.js +4 -0
  91. package/lib/duet/{p-ad07f399.js → p-398a79a0.js} +1 -1
  92. package/lib/duet/p-3cc51ea1.entry.js +4 -0
  93. package/lib/duet/{p-7dec1cfd.entry.js → p-412a2ce3.entry.js} +1 -1
  94. package/lib/duet/{p-6910ace8.system.entry.js → p-458c1110.system.entry.js} +1 -1
  95. package/lib/duet/p-47058313.entry.js +4 -0
  96. package/lib/duet/{p-aaed5ea2.entry.js → p-4727c5c5.entry.js} +1 -1
  97. package/lib/duet/{p-3e1145b2.entry.js → p-5104272f.entry.js} +1 -1
  98. package/lib/duet/{p-7e17fd75.system.entry.js → p-513d8f06.system.entry.js} +1 -1
  99. package/lib/duet/{p-0e6dd740.entry.js → p-5186bfcf.entry.js} +1 -1
  100. package/lib/duet/{p-acdd49f6.entry.js → p-520d1c93.entry.js} +1 -1
  101. package/lib/duet/p-54e3d301.system.entry.js +4 -0
  102. package/lib/duet/{p-28feed35.system.entry.js → p-56ed6884.system.entry.js} +1 -1
  103. package/lib/duet/p-5752ff1c.entry.js +4 -0
  104. package/lib/duet/p-583c5a60.entry.js +4 -0
  105. package/lib/duet/{p-995ecd9d.system.entry.js → p-5c085a4a.system.entry.js} +1 -1
  106. package/lib/duet/p-6190e2d6.system.js +4 -0
  107. package/lib/duet/{p-ca79fa1a.js → p-6194272d.js} +1 -1
  108. package/lib/duet/{p-f0f60ea3.entry.js → p-62915653.entry.js} +1 -1
  109. package/lib/duet/{p-c06452b7.system.entry.js → p-7020d5a8.system.entry.js} +1 -1
  110. package/lib/duet/{p-9318e1c2.system.entry.js → p-71c7fa31.system.entry.js} +1 -1
  111. package/lib/duet/{p-ffbe9ffc.entry.js → p-7a5bf551.entry.js} +1 -1
  112. package/lib/duet/p-7cbb6eba.js +4 -0
  113. package/lib/duet/{p-57f58be7.entry.js → p-7de2b748.entry.js} +1 -1
  114. package/lib/duet/{p-a6b6a918.system.entry.js → p-7fcbf42e.system.entry.js} +1 -1
  115. package/lib/duet/{p-5a434b4e.system.entry.js → p-84237fd2.system.entry.js} +1 -1
  116. package/lib/duet/{p-dea3d7f9.system.entry.js → p-8c8f15ed.system.entry.js} +1 -1
  117. package/lib/duet/{p-d460ac7d.entry.js → p-8fed1e36.entry.js} +1 -1
  118. package/lib/duet/{p-a3857cd4.system.entry.js → p-90870281.system.entry.js} +1 -1
  119. package/lib/duet/{p-b683fec1.system.entry.js → p-914a5315.system.entry.js} +1 -1
  120. package/lib/duet/{p-8ee6f874.system.entry.js → p-96e42603.system.entry.js} +1 -1
  121. package/lib/duet/p-97900023.entry.js +4 -0
  122. package/lib/duet/{p-20814483.entry.js → p-99bbbecd.entry.js} +1 -1
  123. package/lib/duet/p-9cca0bb4.js +4 -0
  124. package/lib/duet/p-9e759a4a.system.entry.js +4 -0
  125. package/lib/duet/{p-bd122a6e.system.entry.js → p-9e8afa21.system.entry.js} +1 -1
  126. package/lib/duet/{p-f8dd1339.entry.js → p-9ff69b54.entry.js} +1 -1
  127. package/lib/duet/{p-955b90c3.system.entry.js → p-a2eafa77.system.entry.js} +1 -1
  128. package/lib/duet/{p-2b250ac6.system.entry.js → p-a53ca782.system.entry.js} +1 -1
  129. package/lib/duet/{p-3f65158e.entry.js → p-a74ed7f0.entry.js} +1 -1
  130. package/lib/duet/p-a83aa6f3.entry.js +4 -0
  131. package/lib/duet/p-a93a04b9.system.js +4 -0
  132. package/lib/duet/p-a9bd0a4b.entry.js +4 -0
  133. package/lib/duet/{p-f42c4e0f.system.entry.js → p-abdf47c8.system.entry.js} +1 -1
  134. package/lib/duet/p-ad196791.system.js +4 -0
  135. package/lib/duet/{p-5e591b97.entry.js → p-ae7580c4.entry.js} +1 -1
  136. package/lib/duet/{p-cd07c340.entry.js → p-b04e51be.entry.js} +1 -1
  137. package/lib/duet/{p-456f44e9.system.entry.js → p-b1f08a11.system.entry.js} +1 -1
  138. package/lib/duet/{p-7df54c59.entry.js → p-b477f0b1.entry.js} +1 -1
  139. package/lib/duet/{p-2c31428e.system.entry.js → p-b504bfcc.system.entry.js} +1 -1
  140. package/lib/duet/{p-3e4a5b9c.entry.js → p-b8a6c198.entry.js} +1 -1
  141. package/lib/duet/{p-4268681b.entry.js → p-ba2d5d3b.entry.js} +1 -1
  142. package/lib/duet/p-bb05bcf9.entry.js +4 -0
  143. package/lib/duet/{p-ff5ddd90.system.entry.js → p-bbdbff69.system.entry.js} +1 -1
  144. package/lib/duet/{p-b7420414.entry.js → p-c1ec46db.entry.js} +1 -1
  145. package/lib/duet/{p-28e309f1.entry.js → p-c63e58e3.entry.js} +1 -1
  146. package/lib/duet/{p-adb092e7.entry.js → p-ce936701.entry.js} +1 -1
  147. package/lib/duet/{p-48307b31.entry.js → p-ced1983f.entry.js} +1 -1
  148. package/lib/duet/p-cf67a60b.entry.js +4 -0
  149. package/lib/duet/{p-28e6da82.system.entry.js → p-d132dde7.system.entry.js} +1 -1
  150. package/lib/duet/p-d1746325.js +4 -0
  151. package/lib/duet/p-d312b69e.system.entry.js +4 -0
  152. package/lib/duet/{p-b6cbe383.entry.js → p-d64b4b43.entry.js} +1 -1
  153. package/lib/duet/{p-5969399b.system.entry.js → p-dccd1711.system.entry.js} +1 -1
  154. package/lib/duet/{p-a056cc14.system.entry.js → p-dd58a713.system.entry.js} +1 -1
  155. package/lib/duet/{p-712c9016.system.entry.js → p-df8c5af0.system.entry.js} +1 -1
  156. package/lib/duet/{p-83be3810.entry.js → p-e21029cc.entry.js} +1 -1
  157. package/lib/duet/{p-cfe414d2.system.entry.js → p-e7d9d84b.system.entry.js} +1 -1
  158. package/lib/duet/{p-1c67e70d.system.entry.js → p-ed5c2f24.system.entry.js} +1 -1
  159. package/lib/duet/{p-53849160.entry.js → p-ef888954.entry.js} +1 -1
  160. package/lib/duet/{p-0304408d.system.entry.js → p-f3d0d952.system.entry.js} +1 -1
  161. package/lib/duet/p-f476cb84.system.js +4 -0
  162. package/lib/duet/{p-b9d3eeb1.system.entry.js → p-f8927797.system.entry.js} +1 -1
  163. package/lib/duet/{p-8e0bad03.entry.js → p-fb70b22b.entry.js} +1 -1
  164. package/lib/duet/{p-f4664942.system.entry.js → p-fb81d343.system.entry.js} +2 -2
  165. package/lib/duet/{p-21d7cb5d.system.entry.js → p-fece90db.system.entry.js} +1 -1
  166. package/lib/esm/action-arrow-right-small-f9d2ba83.js +6 -0
  167. package/lib/esm/duet-action-button.entry.js +17 -6
  168. package/lib/esm/duet-alert.entry.js +1 -1
  169. package/lib/esm/duet-badge.entry.js +1 -1
  170. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  171. package/lib/esm/duet-breadcrumbs.entry.js +2 -3
  172. package/lib/esm/duet-button_2.entry.js +5 -4
  173. package/lib/esm/duet-caption_4.entry.js +3 -3
  174. package/lib/esm/duet-card.entry.js +3 -3
  175. package/lib/esm/duet-checkbox.entry.js +1 -1
  176. package/lib/esm/duet-choice_2.entry.js +2 -2
  177. package/lib/esm/duet-collapsible.entry.js +2 -2
  178. package/lib/esm/duet-combobox.entry.js +1 -1
  179. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  180. package/lib/esm/duet-date-picker.entry.js +2 -2
  181. package/lib/esm/duet-divider_2.entry.js +1 -1
  182. package/lib/esm/duet-editable-table_3.entry.js +105 -27
  183. package/lib/esm/duet-empty-state.entry.js +1 -1
  184. package/lib/esm/duet-fieldset.entry.js +1 -1
  185. package/lib/esm/duet-footer.entry.js +23 -4
  186. package/lib/esm/duet-grid_2.entry.js +2 -2
  187. package/lib/esm/duet-header_2.entry.js +3 -3
  188. package/lib/esm/duet-hero.entry.js +1 -1
  189. package/lib/esm/duet-icon.entry.js +3 -3
  190. package/lib/esm/duet-input_2.entry.js +56 -4
  191. package/lib/esm/duet-layout.entry.js +1 -1
  192. package/lib/esm/duet-list_2.entry.js +1 -1
  193. package/lib/esm/duet-modal.entry.js +2 -2
  194. package/lib/esm/duet-notification_2.entry.js +1 -1
  195. package/lib/esm/duet-number-input.entry.js +1 -1
  196. package/lib/esm/duet-pagination_2.entry.js +1 -1
  197. package/lib/esm/duet-progress.entry.js +1 -1
  198. package/lib/esm/duet-radio_2.entry.js +1 -1
  199. package/lib/esm/duet-range-slider.entry.js +2 -2
  200. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  201. package/lib/esm/duet-select.entry.js +1 -1
  202. package/lib/esm/duet-step_2.entry.js +2 -2
  203. package/lib/esm/duet-textarea.entry.js +1 -1
  204. package/lib/esm/duet-toggle.entry.js +1 -1
  205. package/lib/esm/duet-tooltip.entry.js +1 -1
  206. package/lib/esm/duet-tray.entry.js +2 -2
  207. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  208. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  209. package/lib/esm/duet.js +2 -2
  210. package/lib/esm/{focus-utils-429ccac4.js → focus-utils-fe498b6c.js} +1 -1
  211. package/lib/esm/{index-089c3eed.js → index-715101b6.js} +1 -1
  212. package/lib/esm/loader.js +2 -2
  213. package/lib/esm/{token-utils-e9a69acf.js → token-utils-1f9435bc.js} +16 -2
  214. package/lib/esm/{tokens-e110dc89.js → tokens-8ff8c570.js} +3 -0
  215. package/lib/esm/{tokens.module-49cbf963.js → tokens.module-f4572ed7.js} +2 -0
  216. package/lib/esm-es5/action-arrow-right-small-f9d2ba83.js +4 -0
  217. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  218. package/lib/esm-es5/duet-alert.entry.js +1 -1
  219. package/lib/esm-es5/duet-badge.entry.js +1 -1
  220. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  221. package/lib/esm-es5/duet-breadcrumbs.entry.js +2 -2
  222. package/lib/esm-es5/duet-button_2.entry.js +2 -2
  223. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  224. package/lib/esm-es5/duet-card.entry.js +1 -1
  225. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  226. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  227. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  228. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  229. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  230. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  231. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  232. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  233. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  234. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  235. package/lib/esm-es5/duet-footer.entry.js +2 -2
  236. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  237. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  238. package/lib/esm-es5/duet-hero.entry.js +1 -1
  239. package/lib/esm-es5/duet-icon.entry.js +1 -1
  240. package/lib/esm-es5/duet-input_2.entry.js +2 -2
  241. package/lib/esm-es5/duet-layout.entry.js +1 -1
  242. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  243. package/lib/esm-es5/duet-modal.entry.js +1 -1
  244. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  245. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  246. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  247. package/lib/esm-es5/duet-progress.entry.js +1 -1
  248. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  249. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  250. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  251. package/lib/esm-es5/duet-select.entry.js +1 -1
  252. package/lib/esm-es5/duet-step_2.entry.js +2 -2
  253. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  254. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  255. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  256. package/lib/esm-es5/duet-tray.entry.js +1 -1
  257. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  258. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  259. package/lib/esm-es5/duet.js +1 -1
  260. package/lib/esm-es5/focus-utils-fe498b6c.js +4 -0
  261. package/lib/esm-es5/{index-089c3eed.js → index-715101b6.js} +1 -1
  262. package/lib/esm-es5/loader.js +1 -1
  263. package/lib/esm-es5/token-utils-1f9435bc.js +4 -0
  264. package/lib/esm-es5/tokens-8ff8c570.js +4 -0
  265. package/lib/esm-es5/{tokens.module-49cbf963.js → tokens.module-f4572ed7.js} +1 -1
  266. package/lib/types/components/duet-button/duet-button.d.ts +1 -1
  267. package/lib/types/components/duet-footer/duet-footer.d.ts +30 -1
  268. package/lib/types/components/duet-input/duet-input.d.ts +23 -0
  269. package/lib/types/components/duet-upload/duet-upload.d.ts +18 -1
  270. package/lib/types/components/duet-upload/upload-editable-item-pending.d.ts +6 -0
  271. package/lib/types/components.d.ts +71 -3
  272. package/lib/types/utils/token-utils.d.ts +1 -0
  273. package/package.json +5 -5
  274. package/lib/duet/p-021f4ce6.entry.js +0 -4
  275. package/lib/duet/p-165aeec8.system.entry.js +0 -4
  276. package/lib/duet/p-27189fa0.entry.js +0 -4
  277. package/lib/duet/p-4cb2c888.entry.js +0 -4
  278. package/lib/duet/p-4e2532c7.system.js +0 -4
  279. package/lib/duet/p-52b6d127.entry.js +0 -4
  280. package/lib/duet/p-694ebf05.entry.js +0 -4
  281. package/lib/duet/p-7888e2d8.entry.js +0 -4
  282. package/lib/duet/p-7ce6ba93.system.entry.js +0 -4
  283. package/lib/duet/p-80e16593.entry.js +0 -4
  284. package/lib/duet/p-8143f3de.js +0 -4
  285. package/lib/duet/p-86777eb7.system.js +0 -4
  286. package/lib/duet/p-93f9ccbc.system.entry.js +0 -4
  287. package/lib/duet/p-94def463.entry.js +0 -4
  288. package/lib/duet/p-ad4570bf.system.entry.js +0 -4
  289. package/lib/duet/p-b2d00c4b.system.entry.js +0 -4
  290. package/lib/duet/p-b48323e2.system.entry.js +0 -4
  291. package/lib/duet/p-c5c212fd.entry.js +0 -4
  292. package/lib/duet/p-cb445018.js +0 -4
  293. package/lib/duet/p-ddb6344c.system.js +0 -4
  294. package/lib/duet/p-fa99eaa4.system.js +0 -4
  295. package/lib/esm-es5/focus-utils-429ccac4.js +0 -4
  296. package/lib/esm-es5/token-utils-e9a69acf.js +0 -4
  297. package/lib/esm-es5/tokens-e110dc89.js +0 -4
  298. package/lib/html.html-data.json +0 -5325
package/hydrate/index.js CHANGED
@@ -5895,6 +5895,7 @@ const opacity85 = "0.85";
5895
5895
  const opacity75 = "0.75";
5896
5896
  const opacity50 = "0.50";
5897
5897
  const opacity30 = "0.30";
5898
+ const zIndexMaskButtons = "250";
5898
5899
  const zIndexDropdown = "600";
5899
5900
  const zIndexSpinner = "800";
5900
5901
  const zIndexDefault = "1";
@@ -6045,6 +6046,7 @@ var tokens$2 = /*#__PURE__*/Object.freeze({
6045
6046
  opacity75: opacity75,
6046
6047
  opacity50: opacity50,
6047
6048
  opacity30: opacity30,
6049
+ zIndexMaskButtons: zIndexMaskButtons,
6048
6050
  zIndexDropdown: zIndexDropdown,
6049
6051
  zIndexSpinner: zIndexSpinner,
6050
6052
  zIndexDefault: zIndexDefault,
@@ -6143,8 +6145,22 @@ function convertToColorName(name = "", theme = "") {
6143
6145
  colorResolution = lowerCaseFirst(colorResolution);
6144
6146
  return colorResolution;
6145
6147
  }
6148
+ function shadeRGBColor(color, percent) {
6149
+ const f = color.split(","), t = percent < 0 ? 0 : 255, p = percent < 0 ? percent * -1 : percent;
6150
+ let R = parseInt(f[0].slice(4)), G = parseInt(f[1]), B = parseInt(f[2]);
6151
+ R = Math.round((t - R) * p) + R;
6152
+ G = Math.round((t - G) * p) + G;
6153
+ B = Math.round((t - B) * p) + B;
6154
+ R = R < 0 ? 0 : R;
6155
+ R = R > 255 ? 255 : R;
6156
+ G = G < 0 ? 0 : G;
6157
+ G = G > 255 ? 255 : G;
6158
+ B = B < 0 ? 0 : B;
6159
+ B = B > 255 ? 255 : B;
6160
+ return `rgb(${R},${G},${B})`;
6161
+ }
6146
6162
 
6147
- const duetActionButtonCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-action-button,*.sc-duet-action-button::after,*.sc-duet-action-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-action-button-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}/*!@button.duet-action-button*/button.duet-action-button.sc-duet-action-button{white-space:nowrap}/*!@button.duet-action-button*/button.duet-action-button.sc-duet-action-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:auto !important;padding:0 !important;margin:0 0 0 8px !important;color:#00294d;cursor:pointer;background:#f5f8fa;border-radius:50%;transition:background-color 300ms ease !important}/*!@.duet-theme-turva button.duet-action-button*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button{color:#171c3a;background:#f5f5f7}/*!@button.duet-action-button duet-icon*/button.duet-action-button.sc-duet-action-button duet-icon.sc-duet-action-button{display:block}@media (max-width: 35.9375em){/*!@button.duet-action-button*/button.duet-action-button.sc-duet-action-button{width:32px;height:32px}}/*!@button.duet-action-button:not(:disabled):hover*/button.duet-action-button.sc-duet-action-button:not(:disabled):hover{background:#e9ecee !important}/*!@.duet-theme-turva button.duet-action-button:not(:disabled):hover*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button:not(:disabled):hover{background:#e9e9eb !important}/*!@button.duet-action-button:focus*/button.duet-action-button.sc-duet-action-button:focus{outline:0;box-shadow:0 0 0 2px #0077b3 !important}/*!@.duet-theme-turva button.duet-action-button:focus*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button:focus{box-shadow:0 0 0 2px #171c3a !important}/*!@button.duet-action-button:active:focus*/button.duet-action-button.sc-duet-action-button:active:focus{background:#dddfe1 !important;box-shadow:none}/*!@.duet-theme-turva button.duet-action-button:active:focus*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button:active:focus{background:#ddddde !important}/*!@button.duet-action-button:disabled*/button.duet-action-button.sc-duet-action-button:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}/*!@.duet-theme-turva button.duet-action-button:disabled*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button:disabled{color:#747475;background:#f5f5f7}";
6163
+ const duetActionButtonCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-action-button,*.sc-duet-action-button::after,*.sc-duet-action-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-action-button-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}/*!@button.duet-action-button*/button.duet-action-button.sc-duet-action-button{white-space:nowrap}/*!@button.duet-action-button*/button.duet-action-button.sc-duet-action-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:auto !important;padding:0 !important;margin:0 0 0 8px !important;color:#00294d;cursor:pointer;background:#f5f8fa;border-radius:50%;transition:background-color 300ms ease !important}/*!@.duet-theme-turva button.duet-action-button*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button{color:#171c3a;background:#f5f5f7}/*!@button.duet-action-button duet-icon*/button.duet-action-button.sc-duet-action-button duet-icon.sc-duet-action-button{display:block}@media (max-width: 35.9375em){/*!@button.duet-action-button*/button.duet-action-button.sc-duet-action-button{width:32px;height:32px}}/*!@button.duet-action-button:not(:disabled):hover*/button.duet-action-button.sc-duet-action-button:not(:disabled):hover{background:#e9ecee}/*!@.duet-theme-turva button.duet-action-button:not(:disabled):hover*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button:not(:disabled):hover{background:#e9e9eb}/*!@button.duet-action-button:focus*/button.duet-action-button.sc-duet-action-button:focus{outline:0;box-shadow:0 0 0 2px #0077b3 !important}/*!@.duet-theme-turva button.duet-action-button:focus*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button:focus{box-shadow:0 0 0 2px #171c3a !important}/*!@button.duet-action-button:active:focus*/button.duet-action-button.sc-duet-action-button:active:focus{background:#dddfe1 !important;box-shadow:none}/*!@.duet-theme-turva button.duet-action-button:active:focus*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button:active:focus{background:#ddddde !important}/*!@button.duet-action-button:disabled*/button.duet-action-button.sc-duet-action-button:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}/*!@.duet-theme-turva button.duet-action-button:disabled*/.duet-theme-turva.sc-duet-action-button button.duet-action-button.sc-duet-action-button:disabled{color:#747475;background:#f5f5f7}";
6148
6164
 
6149
6165
  /**
6150
6166
  * Slot: default slot inside an invisible element, this can be used to enhance accessibility
@@ -6277,14 +6293,25 @@ class DuetActionButton {
6277
6293
  */
6278
6294
  render() {
6279
6295
  const color = this.color === "currentColor" ? "currentColor" : getColorByName(this.color, this.theme);
6296
+ const backgroundColor = getColorByName(this.background, this.theme);
6297
+ const backgroundHoverColor = backgroundColor ? shadeRGBColor(backgroundColor, -0.1) : backgroundColor;
6298
+ const backgroundStyles = backgroundColor
6299
+ ? `
6300
+ button.duet-action-button {
6301
+ background: ${backgroundColor} !important;
6302
+ }
6303
+ button.duet-action-button:not(:disabled):hover {
6304
+ background: ${backgroundHoverColor} !important;
6305
+ }
6306
+ `
6307
+ : "";
6280
6308
  const styles = {
6281
6309
  color,
6282
- background: getColorByName(this.background, this.theme),
6283
6310
  "border-color": getColorByName(this.iconColor, this.theme),
6284
6311
  "border-width": "1px",
6285
6312
  "border-style": "solid",
6286
6313
  };
6287
- return (hAsync(Host, { onKeyDown: e => this.onKeyboardDown(e) }, hAsync("button", { part: "button", style: styles, disabled: this.disabled, id: this.listId, class: {
6314
+ return (hAsync(Host, { onKeyDown: e => this.onKeyboardDown(e) }, hAsync("style", { innerHTML: backgroundStyles }), hAsync("button", { part: "button", style: styles, disabled: this.disabled, id: this.listId, class: {
6288
6315
  "duet-action-button": true,
6289
6316
  "duet-action-button--disabled": this.disabled,
6290
6317
  [`duet-action-button--${this.theme}`]: this.theme !== "",
@@ -6604,7 +6631,7 @@ const DuetStringsExternalDefaults = {
6604
6631
  en: "Opens in a new window",
6605
6632
  };
6606
6633
 
6607
- const duetButtonCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-button,*.sc-duet-button::after,*.sc-duet-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-button-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}/*!@:host:last-child, :host:last-of-type*/.sc-duet-button-h:last-child,.sc-duet-button-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){/*!@:host*/.sc-duet-button-h{width:100%}}/*!@:host(.duet-small)*/.duet-small.sc-duet-button-h{margin-right:2px !important;margin-bottom:8px !important}/*!@:host(.duet-small):last-child, :host(.duet-small):last-of-type*/.duet-small.sc-duet-button-h:last-child,.duet-small.sc-duet-button-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){/*!@:host(.duet-small)*/.duet-small.sc-duet-button-h{width:auto}}/*!@:host(.duet-expand)*/.duet-expand.sc-duet-button-h{width:100% !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-button-h{margin:0 !important}/*!@:host(.duet-fixed)*/.duet-fixed.sc-duet-button-h{width:auto !important}/*!@:host(:last-child)*/.sc-duet-button-h:last-child{margin-right:0 !important}/*!@.duet-button-container*/.duet-button-container.sc-duet-button{position:relative;width:100%}/*!@.duet-button*/.duet-button.sc-duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}/*!@.duet-button.duet-p-0*/.duet-button.duet-p-0.sc-duet-button{padding:0 !important}/*!@.duet-button.duet-m-0*/.duet-button.duet-m-0.sc-duet-button{margin:0 !important}/*!@.duet-button.duet-button-text-center*/.duet-button.duet-button-text-center.sc-duet-button{text-align:center !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only)*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).icon{padding-left:48px !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}/*!@.duet-theme-turva .duet-button*/.duet-theme-turva.sc-duet-button .duet-button.sc-duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}/*!@.duet-button .duet-button-contents*/.duet-button.sc-duet-button .duet-button-contents.sc-duet-button{position:relative;display:inline-block;margin:0 auto;pointer-events:none}/*!@.duet-button.duet-no-wrap*/.duet-button.duet-no-wrap.sc-duet-button{white-space:nowrap}/*!@.duet-button.icon*/.duet-button.icon.sc-duet-button{padding-left:52px !important}/*!@.duet-button.icon-right*/.duet-button.icon-right.sc-duet-button{padding-right:52px !important;padding-left:28px !important}/*!@.duet-button svg*/.duet-button.sc-duet-button svg.sc-duet-button{width:100%;min-width:100%;fill:currentColor}/*!@.duet-button .duet-button-icon*/.duet-button.sc-duet-button .duet-button-icon.sc-duet-button{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}/*!@.duet-button .duet-button-icon duet-icon*/.duet-button.sc-duet-button .duet-button-icon.sc-duet-button duet-icon.sc-duet-button{width:16px;height:16px}/*!@.duet-button .duet-button-icon.right*/.duet-button.sc-duet-button .duet-button-icon.right.sc-duet-button{right:-28px;left:auto}/*!@.duet-button .duet-button-icon.large*/.duet-button.sc-duet-button .duet-button-icon.large.sc-duet-button{left:-32px;width:20px;height:20px}/*!@.duet-button .duet-button-icon.large duet-icon*/.duet-button.sc-duet-button .duet-button-icon.large.sc-duet-button duet-icon.sc-duet-button{width:20px;height:20px}/*!@.duet-button .duet-button-icon.large.right*/.duet-button.sc-duet-button .duet-button-icon.large.right.sc-duet-button{right:-32px;left:auto}/*!@.duet-button .duet-button-icon.medium-small*/.duet-button.sc-duet-button .duet-button-icon.medium-small.sc-duet-button{left:-16px;width:10px;height:10px;padding-top:1px}/*!@.duet-button .duet-button-icon.medium-small duet-icon*/.duet-button.sc-duet-button .duet-button-icon.medium-small.sc-duet-button duet-icon.sc-duet-button{width:10px;height:10px}/*!@.duet-button .duet-button-icon.medium-small.right*/.duet-button.sc-duet-button .duet-button-icon.medium-small.right.sc-duet-button{right:-16px;left:auto}/*!@.duet-button .duet-button-icon.small*/.duet-button.sc-duet-button .duet-button-icon.small.sc-duet-button{left:-16px;width:7px;height:7px}/*!@.duet-button .duet-button-icon.small duet-icon*/.duet-button.sc-duet-button .duet-button-icon.small.sc-duet-button duet-icon.sc-duet-button{width:7px;height:7px}/*!@.duet-button .duet-button-icon.small.right*/.duet-button.sc-duet-button .duet-button-icon.small.right.sc-duet-button{right:-16px;left:auto}/*!@.duet-button:focus*/.duet-button.sc-duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-button:focus*/.duet-theme-turva.sc-duet-button .duet-button.sc-duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-button:active*/.duet-button.sc-duet-button:active{opacity:0.75;transition:none}/*!@.duet-button.default*/.duet-button.default.sc-duet-button{border-color:#e1e3e6}/*!@.duet-theme-turva .duet-button.default*/.duet-theme-turva.sc-duet-button .duet-button.default.sc-duet-button{color:#c60c30 !important;border-color:#e4e4e6}/*!@.duet-button.default:hover*/.duet-button.default.sc-duet-button:hover{border-color:#0077b3}/*!@.duet-theme-turva .duet-button.default:hover*/.duet-theme-turva.sc-duet-button .duet-button.default.sc-duet-button:hover{border-color:#c60c30}/*!@.duet-button.default.duet-button-negative*/.duet-button.default.duet-button-negative.sc-duet-button{background-color:white}/*!@.duet-theme-turva .duet-button.default.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.default.duet-button-negative.sc-duet-button{background-color:#e4e4e6 !important}/*!@.duet-button.default.duet-button-negative:hover*/.duet-button.default.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.default.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.default.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.primary*/.duet-button.primary.sc-duet-button{color:white !important;background:#0077b3;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.primary*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button{color:white !important;background:#c60c30;border-color:#c60c30}/*!@.duet-button.primary:hover*/.duet-button.primary.sc-duet-button:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}/*!@.duet-theme-turva .duet-button.primary:hover*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button:hover{background:#940925;border-color:#940925}/*!@.duet-button.primary:focus*/.duet-button.primary.sc-duet-button:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}/*!@.duet-theme-turva .duet-button.primary:focus*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}/*!@.duet-button.secondary*/.duet-button.secondary.sc-duet-button{color:#00294d !important;background:transparent;border-color:#00294d}/*!@.duet-theme-turva .duet-button.secondary*/.duet-theme-turva.sc-duet-button .duet-button.secondary.sc-duet-button{color:#171c3a !important;border-color:#171c3a}/*!@.duet-button.secondary:hover*/.duet-button.secondary.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.secondary:hover*/.duet-theme-turva.sc-duet-button .duet-button.secondary.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.secondary.duet-button-negative*/.duet-button.secondary.duet-button-negative.sc-duet-button{color:#e1e3e6 !important;border-color:white}/*!@.duet-theme-turva .duet-button.secondary.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.secondary.duet-button-negative.sc-duet-button{color:#e4e4e6 !important}/*!@.duet-button.secondary.duet-button-negative:hover*/.duet-button.secondary.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.secondary.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.secondary.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.negative*/.duet-button.negative.sc-duet-button{color:#00294d !important;background:white;border-color:white}/*!@.duet-theme-turva .duet-button.negative*/.duet-theme-turva.sc-duet-button .duet-button.negative.sc-duet-button{color:#171c3a !important}/*!@.duet-button.negative:hover*/.duet-button.negative.sc-duet-button:hover{color:white !important;background:transparent;border-color:white}/*!@.duet-button.negative:focus*/.duet-button.negative.sc-duet-button:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}/*!@.duet-theme-turva .duet-button.negative:focus*/.duet-theme-turva.sc-duet-button .duet-button.negative.sc-duet-button:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}/*!@.duet-button.destructive-primary*/.duet-button.destructive-primary.sc-duet-button{color:white !important;background:#de2362;border-color:#de2362}/*!@.duet-theme-turva .duet-button.destructive-primary*/.duet-theme-turva.sc-duet-button .duet-button.destructive-primary.sc-duet-button{color:white !important;background:#e02a0d;border-color:#e02a0d}/*!@.duet-button.destructive-primary:hover*/.duet-button.destructive-primary.sc-duet-button:hover{background:#b21c4e;border-color:#b21c4e;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}/*!@.duet-theme-turva .duet-button.destructive-primary:hover*/.duet-theme-turva.sc-duet-button .duet-button.destructive-primary.sc-duet-button:hover{background:#b3220a}/*!@.duet-button.destructive, .duet-button.destructive-secondary*/.duet-button.destructive.sc-duet-button,.duet-button.destructive-secondary.sc-duet-button{color:#de2362 !important;background:white;border-color:#de2362}/*!@.duet-theme-turva .duet-button.destructive, .duet-theme-turva .duet-button.destructive-secondary*/.duet-theme-turva.sc-duet-button .duet-button.destructive.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.destructive-secondary.sc-duet-button{color:#e02a0d !important;background:white;border-color:#e02a0d}/*!@.duet-button.destructive:hover, .duet-button.destructive-secondary:hover*/.duet-button.destructive.sc-duet-button:hover,.duet-button.destructive-secondary.sc-duet-button:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}/*!@.duet-theme-turva .duet-button.destructive:hover, .duet-theme-turva .duet-button.destructive-secondary:hover*/.duet-theme-turva.sc-duet-button .duet-button.destructive.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.destructive-secondary.sc-duet-button:hover{color:white !important;background:#b3220a;border-color:#b3220a}/*!@.duet-button.plain*/.duet-button.plain.sc-duet-button{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}/*!@.duet-theme-turva .duet-button.plain*/.duet-theme-turva.sc-duet-button .duet-button.plain.sc-duet-button{color:#c60c30 !important;background:transparent;border-color:transparent}/*!@.duet-button.plain.icon*/.duet-button.plain.icon.sc-duet-button{padding-left:20px !important}/*!@.duet-button.plain.icon.icon-right*/.duet-button.plain.icon.icon-right.sc-duet-button{padding-right:20px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.medium*/.duet-button.plain.icon.medium.sc-duet-button{padding-left:24px !important}/*!@.duet-button.plain.icon.medium.icon-right*/.duet-button.plain.icon.medium.icon-right.sc-duet-button{padding-right:24px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.large*/.duet-button.plain.icon.large.sc-duet-button{padding-left:30px !important}/*!@.duet-button.plain.icon.large.icon-right*/.duet-button.plain.icon.large.icon-right.sc-duet-button{padding-right:30px !important;padding-left:0 !important}/*!@.duet-button.plain .duet-button-icon.left*/.duet-button.plain.sc-duet-button .duet-button-icon.left.sc-duet-button{left:-16.6666666667px !important}/*!@.duet-button.plain .duet-button-icon.left.medium*/.duet-button.plain.sc-duet-button .duet-button-icon.left.medium.sc-duet-button{left:-24px !important}/*!@.duet-button.plain .duet-button-icon.left.large*/.duet-button.plain.sc-duet-button .duet-button-icon.left.large.sc-duet-button{left:-30px !important}/*!@.duet-button.plain .duet-button-icon.right*/.duet-button.plain.sc-duet-button .duet-button-icon.right.sc-duet-button{right:-16.6666666667px !important}/*!@.duet-button.plain .duet-button-icon.right.medium*/.duet-button.plain.sc-duet-button .duet-button-icon.right.medium.sc-duet-button{right:-24px !important}/*!@.duet-button.plain .duet-button-icon.right.large*/.duet-button.plain.sc-duet-button .duet-button-icon.right.large.sc-duet-button{right:-30px !important}/*!@.duet-button.plain[disabled]*/.duet-button.plain[disabled].sc-duet-button{color:#657787 !important;background:transparent !important;border-color:transparent !important}/*!@.duet-theme-turva .duet-button.plain[disabled]*/.duet-theme-turva.sc-duet-button .duet-button.plain[disabled].sc-duet-button{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}/*!@.duet-button.plain:hover*/.duet-button.plain.sc-duet-button:hover{color:#004d80 !important;background:transparent !important}/*!@.duet-theme-turva .duet-button.plain:hover*/.duet-theme-turva.sc-duet-button .duet-button.plain.sc-duet-button:hover{color:#940925 !important}/*!@.duet-button.plain.duet-button-negative*/.duet-button.plain.duet-button-negative.sc-duet-button{color:white !important}/*!@.duet-theme-turva .duet-button.plain.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.plain.duet-button-negative.sc-duet-button{color:#e4e4e6 !important}/*!@.duet-button.plain.duet-button-negative:hover*/.duet-button.plain.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important}/*!@.duet-theme-turva .duet-button.plain.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.plain.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important}/*!@.duet-button.duet-button-icon-only*/.duet-button.duet-button-icon-only.sc-duet-button{min-width:48px;min-height:48px;padding:0 !important}/*!@.duet-button.duet-button-icon-only .duet-button-contents*/.duet-button.duet-button-icon-only.sc-duet-button .duet-button-contents.sc-duet-button{position:static}/*!@.duet-button.duet-button-icon-only .duet-button-icon.left.large,\n.duet-button.duet-button-icon-only .duet-button-icon.left.medium,\n.duet-button.duet-button-icon-only .duet-button-icon.left.small*/.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.large.sc-duet-button,.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.medium.sc-duet-button,.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.small.sc-duet-button{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}/*!@.duet-button[disabled], .duet-button[disabled]:hover, .duet-button.duet-button-negative[disabled], .duet-button.duet-button-negative[disabled]:hover*/.duet-button[disabled].sc-duet-button,.duet-button[disabled].sc-duet-button:hover,.duet-button.duet-button-negative[disabled].sc-duet-button,.duet-button.duet-button-negative[disabled].sc-duet-button:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}/*!@.duet-theme-turva .duet-button[disabled], .duet-theme-turva .duet-button[disabled]:hover, .duet-theme-turva .duet-button.duet-button-negative [disabled], .duet-theme-turva .duet-button.duet-button-negative [disabled]:hover*/.duet-theme-turva.sc-duet-button .duet-button[disabled].sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button[disabled].sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.duet-button-negative.sc-duet-button [disabled].sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.duet-button-negative.sc-duet-button [disabled].sc-duet-button:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}/*!@.duet-button-is-loading.primary*/.duet-button-is-loading.primary.sc-duet-button{color:white}/*!@.duet-button-is-loading.default*/.duet-button-is-loading.default.sc-duet-button{color:#0077b3}/*!@.duet-button-is-loading.default.duet-theme-turva*/.duet-button-is-loading.default.duet-theme-turva.sc-duet-button{color:#c60c30}/*!@.duet-button-is-loading .duet-button-contents*/.duet-button-is-loading.sc-duet-button .duet-button-contents.sc-duet-button{visibility:hidden;opacity:0}";
6634
+ const duetButtonCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-button,*.sc-duet-button::after,*.sc-duet-button::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-button-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}/*!@:host:last-child, :host:last-of-type*/.sc-duet-button-h:last-child,.sc-duet-button-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){/*!@:host*/.sc-duet-button-h{width:100%}}/*!@:host(.input-button)*/.input-button.sc-duet-button-h{z-index:250}/*!@:host(.duet-small)*/.duet-small.sc-duet-button-h{margin-right:2px !important;margin-bottom:8px !important}/*!@:host(.duet-small):last-child, :host(.duet-small):last-of-type*/.duet-small.sc-duet-button-h:last-child,.duet-small.sc-duet-button-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){/*!@:host(.duet-small)*/.duet-small.sc-duet-button-h{width:auto}}/*!@:host(.duet-expand)*/.duet-expand.sc-duet-button-h{width:100% !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-button-h{margin:0 !important}/*!@:host(.duet-fixed)*/.duet-fixed.sc-duet-button-h{width:auto !important}/*!@:host(:last-child)*/.sc-duet-button-h:last-child{margin-right:0 !important}/*!@.duet-button-container*/.duet-button-container.sc-duet-button{position:relative;width:100%}/*!@.duet-button*/.duet-button.sc-duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}/*!@.duet-button.duet-p-0*/.duet-button.duet-p-0.sc-duet-button{padding:0 !important}/*!@.duet-button.duet-m-0*/.duet-button.duet-m-0.sc-duet-button{margin:0 !important}/*!@.duet-button:not(.input-button-primary, .input-button-secondary)*/.duet-button.sc-duet-button:not(.input-button-primary,.input-button-secondary).sc-duet-button{font-variant-numeric:tabular-nums}/*!@.duet-button.duet-button-text-center*/.duet-button.duet-button-text-center.sc-duet-button{text-align:center !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only)*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).icon{padding-left:48px !important}/*!@.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right*/.duet-button.duet-button-is-small.sc-duet-button:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}/*!@.duet-theme-turva .duet-button*/.duet-theme-turva.sc-duet-button .duet-button.sc-duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}/*!@.duet-button .duet-button-contents*/.duet-button.sc-duet-button .duet-button-contents.sc-duet-button{position:relative;display:inline-block;margin:0 auto;pointer-events:none}/*!@.duet-button.duet-no-wrap*/.duet-button.duet-no-wrap.sc-duet-button{white-space:nowrap}/*!@.duet-button.icon*/.duet-button.icon.sc-duet-button{padding-left:52px !important}/*!@.duet-button.icon-right*/.duet-button.icon-right.sc-duet-button{padding-right:52px !important;padding-left:28px !important}/*!@.duet-button svg*/.duet-button.sc-duet-button svg.sc-duet-button{width:100%;min-width:100%;fill:currentColor}/*!@.duet-button .duet-button-icon*/.duet-button.sc-duet-button .duet-button-icon.sc-duet-button{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}/*!@.duet-button .duet-button-icon duet-icon*/.duet-button.sc-duet-button .duet-button-icon.sc-duet-button duet-icon.sc-duet-button{width:16px;height:16px}/*!@.duet-button .duet-button-icon.right*/.duet-button.sc-duet-button .duet-button-icon.right.sc-duet-button{right:-28px;left:auto}/*!@.duet-button .duet-button-icon.large*/.duet-button.sc-duet-button .duet-button-icon.large.sc-duet-button{left:-32px;width:20px;height:20px}/*!@.duet-button .duet-button-icon.large duet-icon*/.duet-button.sc-duet-button .duet-button-icon.large.sc-duet-button duet-icon.sc-duet-button{width:20px;height:20px}/*!@.duet-button .duet-button-icon.large.right*/.duet-button.sc-duet-button .duet-button-icon.large.right.sc-duet-button{right:-32px;left:auto}/*!@.duet-button .duet-button-icon.medium-small*/.duet-button.sc-duet-button .duet-button-icon.medium-small.sc-duet-button{left:-16px;width:10px;height:10px;padding-top:1px}/*!@.duet-button .duet-button-icon.medium-small duet-icon*/.duet-button.sc-duet-button .duet-button-icon.medium-small.sc-duet-button duet-icon.sc-duet-button{width:10px;height:10px}/*!@.duet-button .duet-button-icon.medium-small.right*/.duet-button.sc-duet-button .duet-button-icon.medium-small.right.sc-duet-button{right:-16px;left:auto}/*!@.duet-button .duet-button-icon.small*/.duet-button.sc-duet-button .duet-button-icon.small.sc-duet-button{left:-16px;width:7px;height:7px}/*!@.duet-button .duet-button-icon.small duet-icon*/.duet-button.sc-duet-button .duet-button-icon.small.sc-duet-button duet-icon.sc-duet-button{width:7px;height:7px}/*!@.duet-button .duet-button-icon.small.right*/.duet-button.sc-duet-button .duet-button-icon.small.right.sc-duet-button{right:-16px;left:auto}/*!@.duet-button:focus*/.duet-button.sc-duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-button:focus*/.duet-theme-turva.sc-duet-button .duet-button.sc-duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-button:active*/.duet-button.sc-duet-button:active{opacity:0.75;transition:none}/*!@.duet-button.default*/.duet-button.default.sc-duet-button{border-color:#e1e3e6}/*!@.duet-theme-turva .duet-button.default*/.duet-theme-turva.sc-duet-button .duet-button.default.sc-duet-button{color:#c60c30 !important;border-color:#e4e4e6}/*!@.duet-button.default:hover*/.duet-button.default.sc-duet-button:hover{border-color:#0077b3}/*!@.duet-theme-turva .duet-button.default:hover*/.duet-theme-turva.sc-duet-button .duet-button.default.sc-duet-button:hover{border-color:#c60c30}/*!@.duet-button.default.duet-button-negative*/.duet-button.default.duet-button-negative.sc-duet-button{background-color:white}/*!@.duet-theme-turva .duet-button.default.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.default.duet-button-negative.sc-duet-button{background-color:#e4e4e6 !important}/*!@.duet-button.default.duet-button-negative:hover*/.duet-button.default.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.default.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.default.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.primary, .duet-button.input-button-primary*/.duet-button.primary.sc-duet-button,.duet-button.input-button-primary.sc-duet-button{color:white !important;background:#0077b3;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.primary, .duet-theme-turva .duet-button.input-button-primary*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.input-button-primary.sc-duet-button{color:white !important;background:#c60c30;border-color:#c60c30}/*!@.duet-button.primary:hover, .duet-button.input-button-primary:hover*/.duet-button.primary.sc-duet-button:hover,.duet-button.input-button-primary.sc-duet-button:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}/*!@.duet-theme-turva .duet-button.primary:hover, .duet-theme-turva .duet-button.input-button-primary:hover*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.input-button-primary.sc-duet-button:hover{background:#940925;border-color:#940925}/*!@.duet-button.primary:focus, .duet-button.input-button-primary:focus*/.duet-button.primary.sc-duet-button:focus,.duet-button.input-button-primary.sc-duet-button:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}/*!@.duet-theme-turva .duet-button.primary:focus, .duet-theme-turva .duet-button.input-button-primary:focus*/.duet-theme-turva.sc-duet-button .duet-button.primary.sc-duet-button:focus,.duet-theme-turva.sc-duet-button .duet-button.input-button-primary.sc-duet-button:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}/*!@.duet-button.secondary, .duet-button.input-button-secondary*/.duet-button.secondary.sc-duet-button,.duet-button.input-button-secondary.sc-duet-button{color:#00294d !important;background:transparent;border-color:#00294d}/*!@.duet-theme-turva .duet-button.secondary, .duet-theme-turva .duet-button.input-button-secondary*/.duet-theme-turva.sc-duet-button .duet-button.secondary.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.input-button-secondary.sc-duet-button{color:#171c3a !important;border-color:#171c3a}/*!@.duet-button.secondary:hover, .duet-button.input-button-secondary:hover*/.duet-button.secondary.sc-duet-button:hover,.duet-button.input-button-secondary.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.secondary:hover, .duet-theme-turva .duet-button.input-button-secondary:hover*/.duet-theme-turva.sc-duet-button .duet-button.secondary.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.input-button-secondary.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.secondary.duet-button-negative, .duet-button.input-button-secondary.duet-button-negative*/.duet-button.secondary.duet-button-negative.sc-duet-button,.duet-button.input-button-secondary.duet-button-negative.sc-duet-button{color:#e1e3e6 !important;border-color:white}/*!@.duet-theme-turva .duet-button.secondary.duet-button-negative, .duet-theme-turva .duet-button.input-button-secondary.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.secondary.duet-button-negative.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.input-button-secondary.duet-button-negative.sc-duet-button{color:#e4e4e6 !important}/*!@.duet-button.secondary.duet-button-negative:hover, .duet-button.input-button-secondary.duet-button-negative:hover*/.duet-button.secondary.duet-button-negative.sc-duet-button:hover,.duet-button.input-button-secondary.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important;border-color:#0077b3}/*!@.duet-theme-turva .duet-button.secondary.duet-button-negative:hover, .duet-theme-turva .duet-button.input-button-secondary.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.secondary.duet-button-negative.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.input-button-secondary.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important;border-color:#c60c30}/*!@.duet-button.negative*/.duet-button.negative.sc-duet-button{color:#00294d !important;background:white;border-color:white}/*!@.duet-theme-turva .duet-button.negative*/.duet-theme-turva.sc-duet-button .duet-button.negative.sc-duet-button{color:#171c3a !important}/*!@.duet-button.negative:hover*/.duet-button.negative.sc-duet-button:hover{color:white !important;background:transparent;border-color:white}/*!@.duet-button.negative:focus*/.duet-button.negative.sc-duet-button:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}/*!@.duet-theme-turva .duet-button.negative:focus*/.duet-theme-turva.sc-duet-button .duet-button.negative.sc-duet-button:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}/*!@.duet-button.destructive-primary*/.duet-button.destructive-primary.sc-duet-button{color:white !important;background:#de2362;border-color:#de2362}/*!@.duet-theme-turva .duet-button.destructive-primary*/.duet-theme-turva.sc-duet-button .duet-button.destructive-primary.sc-duet-button{color:white !important;background:#e02a0d;border-color:#e02a0d}/*!@.duet-button.destructive-primary:hover*/.duet-button.destructive-primary.sc-duet-button:hover{background:#b21c4e;border-color:#b21c4e;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}/*!@.duet-theme-turva .duet-button.destructive-primary:hover*/.duet-theme-turva.sc-duet-button .duet-button.destructive-primary.sc-duet-button:hover{background:#b3220a}/*!@.duet-button.destructive, .duet-button.destructive-secondary*/.duet-button.destructive.sc-duet-button,.duet-button.destructive-secondary.sc-duet-button{color:#de2362 !important;background:white;border-color:#de2362}/*!@.duet-theme-turva .duet-button.destructive, .duet-theme-turva .duet-button.destructive-secondary*/.duet-theme-turva.sc-duet-button .duet-button.destructive.sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.destructive-secondary.sc-duet-button{color:#e02a0d !important;background:white;border-color:#e02a0d}/*!@.duet-button.destructive:hover, .duet-button.destructive-secondary:hover*/.duet-button.destructive.sc-duet-button:hover,.duet-button.destructive-secondary.sc-duet-button:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}/*!@.duet-theme-turva .duet-button.destructive:hover, .duet-theme-turva .duet-button.destructive-secondary:hover*/.duet-theme-turva.sc-duet-button .duet-button.destructive.sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.destructive-secondary.sc-duet-button:hover{color:white !important;background:#b3220a;border-color:#b3220a}/*!@.duet-button.plain*/.duet-button.plain.sc-duet-button{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}/*!@.duet-theme-turva .duet-button.plain*/.duet-theme-turva.sc-duet-button .duet-button.plain.sc-duet-button{color:#c60c30 !important;background:transparent;border-color:transparent}/*!@.duet-button.plain.icon*/.duet-button.plain.icon.sc-duet-button{padding-left:20px !important}/*!@.duet-button.plain.icon.icon-right*/.duet-button.plain.icon.icon-right.sc-duet-button{padding-right:20px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.medium*/.duet-button.plain.icon.medium.sc-duet-button{padding-left:24px !important}/*!@.duet-button.plain.icon.medium.icon-right*/.duet-button.plain.icon.medium.icon-right.sc-duet-button{padding-right:24px !important;padding-left:0 !important}/*!@.duet-button.plain.icon.large*/.duet-button.plain.icon.large.sc-duet-button{padding-left:30px !important}/*!@.duet-button.plain.icon.large.icon-right*/.duet-button.plain.icon.large.icon-right.sc-duet-button{padding-right:30px !important;padding-left:0 !important}/*!@.duet-button.plain .duet-button-icon.left*/.duet-button.plain.sc-duet-button .duet-button-icon.left.sc-duet-button{left:-16.6666666667px !important}/*!@.duet-button.plain .duet-button-icon.left.medium*/.duet-button.plain.sc-duet-button .duet-button-icon.left.medium.sc-duet-button{left:-24px !important}/*!@.duet-button.plain .duet-button-icon.left.large*/.duet-button.plain.sc-duet-button .duet-button-icon.left.large.sc-duet-button{left:-30px !important}/*!@.duet-button.plain .duet-button-icon.right*/.duet-button.plain.sc-duet-button .duet-button-icon.right.sc-duet-button{right:-16.6666666667px !important}/*!@.duet-button.plain .duet-button-icon.right.medium*/.duet-button.plain.sc-duet-button .duet-button-icon.right.medium.sc-duet-button{right:-24px !important}/*!@.duet-button.plain .duet-button-icon.right.large*/.duet-button.plain.sc-duet-button .duet-button-icon.right.large.sc-duet-button{right:-30px !important}/*!@.duet-button.plain[disabled]*/.duet-button.plain[disabled].sc-duet-button{color:#657787 !important;background:transparent !important;border-color:transparent !important}/*!@.duet-theme-turva .duet-button.plain[disabled]*/.duet-theme-turva.sc-duet-button .duet-button.plain[disabled].sc-duet-button{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}/*!@.duet-button.plain:hover*/.duet-button.plain.sc-duet-button:hover{color:#004d80 !important;background:transparent !important}/*!@.duet-theme-turva .duet-button.plain:hover*/.duet-theme-turva.sc-duet-button .duet-button.plain.sc-duet-button:hover{color:#940925 !important}/*!@.duet-button.plain.duet-button-negative*/.duet-button.plain.duet-button-negative.sc-duet-button{color:white !important}/*!@.duet-theme-turva .duet-button.plain.duet-button-negative*/.duet-theme-turva.sc-duet-button .duet-button.plain.duet-button-negative.sc-duet-button{color:#e4e4e6 !important}/*!@.duet-button.plain.duet-button-negative:hover*/.duet-button.plain.duet-button-negative.sc-duet-button:hover{color:#0077b3 !important}/*!@.duet-theme-turva .duet-button.plain.duet-button-negative:hover*/.duet-theme-turva.sc-duet-button .duet-button.plain.duet-button-negative.sc-duet-button:hover{color:#c60c30 !important}/*!@.duet-button.duet-button-icon-only*/.duet-button.duet-button-icon-only.sc-duet-button{min-width:48px;min-height:48px;padding:0 !important}/*!@.duet-button.duet-button-icon-only .duet-button-contents*/.duet-button.duet-button-icon-only.sc-duet-button .duet-button-contents.sc-duet-button{position:static}/*!@.duet-button.duet-button-icon-only .duet-button-icon.left.large,\n.duet-button.duet-button-icon-only .duet-button-icon.left.medium,\n.duet-button.duet-button-icon-only .duet-button-icon.left.small*/.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.large.sc-duet-button,.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.medium.sc-duet-button,.duet-button.duet-button-icon-only.sc-duet-button .duet-button-icon.left.small.sc-duet-button{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}/*!@.duet-button.duet-button.input-button-primary, .duet-button.duet-button.input-button-secondary*/.duet-button.duet-button.input-button-primary.sc-duet-button,.duet-button.duet-button.input-button-secondary.sc-duet-button{box-sizing:content-box;min-width:48px;min-height:48px;padding:0 !important;border-width:1px;border-top-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:0}/*!@.duet-button.duet-button.input-button-primary .duet-button-contents, .duet-button.duet-button.input-button-secondary .duet-button-contents*/.duet-button.duet-button.input-button-primary.sc-duet-button .duet-button-contents.sc-duet-button,.duet-button.duet-button.input-button-secondary.sc-duet-button .duet-button-contents.sc-duet-button{position:static}/*!@.duet-button.duet-button.input-button-primary .duet-button-icon.left.large,\n.duet-button.duet-button.input-button-primary .duet-button-icon.left.medium,\n.duet-button.duet-button.input-button-primary .duet-button-icon.left.small, .duet-button.duet-button.input-button-secondary .duet-button-icon.left.large,\n.duet-button.duet-button.input-button-secondary .duet-button-icon.left.medium,\n.duet-button.duet-button.input-button-secondary .duet-button-icon.left.small*/.duet-button.duet-button.input-button-primary.sc-duet-button .duet-button-icon.left.large.sc-duet-button,.duet-button.duet-button.input-button-primary.sc-duet-button .duet-button-icon.left.medium.sc-duet-button,.duet-button.duet-button.input-button-primary.sc-duet-button .duet-button-icon.left.small.sc-duet-button,.duet-button.duet-button.input-button-secondary.sc-duet-button .duet-button-icon.left.large.sc-duet-button,.duet-button.duet-button.input-button-secondary.sc-duet-button .duet-button-icon.left.medium.sc-duet-button,.duet-button.duet-button.input-button-secondary.sc-duet-button .duet-button-icon.left.small.sc-duet-button{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}/*!@.duet-button[disabled], .duet-button[disabled]:hover, .duet-button.duet-button-negative[disabled], .duet-button.duet-button-negative[disabled]:hover*/.duet-button[disabled].sc-duet-button,.duet-button[disabled].sc-duet-button:hover,.duet-button.duet-button-negative[disabled].sc-duet-button,.duet-button.duet-button-negative[disabled].sc-duet-button:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}/*!@.duet-theme-turva .duet-button[disabled], .duet-theme-turva .duet-button[disabled]:hover, .duet-theme-turva .duet-button.duet-button-negative [disabled], .duet-theme-turva .duet-button.duet-button-negative [disabled]:hover*/.duet-theme-turva.sc-duet-button .duet-button[disabled].sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button[disabled].sc-duet-button:hover,.duet-theme-turva.sc-duet-button .duet-button.duet-button-negative.sc-duet-button [disabled].sc-duet-button,.duet-theme-turva.sc-duet-button .duet-button.duet-button-negative.sc-duet-button [disabled].sc-duet-button:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}/*!@.duet-button-is-loading.primary, .duet-button-is-loading.input-button-primary*/.duet-button-is-loading.primary.sc-duet-button,.duet-button-is-loading.input-button-primary.sc-duet-button{color:white}/*!@.duet-button-is-loading.default*/.duet-button-is-loading.default.sc-duet-button{color:#0077b3}/*!@.duet-button-is-loading.default.duet-theme-turva*/.duet-button-is-loading.default.duet-theme-turva.sc-duet-button{color:#c60c30}/*!@.duet-button-is-loading .duet-button-contents*/.duet-button-is-loading.sc-duet-button .duet-button-contents.sc-duet-button{visibility:hidden;opacity:0}";
6608
6635
 
6609
6636
  class DuetButton {
6610
6637
  constructor(hostRef) {
@@ -6829,6 +6856,7 @@ class DuetButton {
6829
6856
  "duet-small": this.size === "small",
6830
6857
  "duet-fixed": this.fixed,
6831
6858
  "duet-expand": this.expand,
6859
+ "input-button": this.variation === "input-button-primary" || this.variation === "input-button-secondary",
6832
6860
  } }, hAsync("div", { class: {
6833
6861
  "duet-button-container": true,
6834
6862
  "duet-button-is-loading": this.loading,
@@ -7935,6 +7963,7 @@ const opacity_85 = "0.85";
7935
7963
  const opacity_75 = "0.75";
7936
7964
  const opacity_50 = "0.50";
7937
7965
  const opacity_30 = "0.30";
7966
+ const z_index_mask_buttons = "250";
7938
7967
  const z_index_dropdown = "600";
7939
7968
  const z_index_spinner = "800";
7940
7969
  const z_index_default = "1";
@@ -8083,6 +8112,7 @@ var tokens = {
8083
8112
  opacity_75: opacity_75,
8084
8113
  opacity_50: opacity_50,
8085
8114
  opacity_30: opacity_30,
8115
+ z_index_mask_buttons: z_index_mask_buttons,
8086
8116
  z_index_dropdown: z_index_dropdown,
8087
8117
  z_index_spinner: z_index_spinner,
8088
8118
  z_index_default: z_index_default,
@@ -8234,6 +8264,7 @@ var tokens$1 = /*#__PURE__*/Object.freeze({
8234
8264
  opacity_75: opacity_75,
8235
8265
  opacity_50: opacity_50,
8236
8266
  opacity_30: opacity_30,
8267
+ z_index_mask_buttons: z_index_mask_buttons,
8237
8268
  z_index_dropdown: z_index_dropdown,
8238
8269
  z_index_spinner: z_index_spinner,
8239
8270
  z_index_default: z_index_default,
@@ -10092,19 +10123,25 @@ var actionNewWindow={"title":"action-new-window","tags":"arrow open new window t
10092
10123
 
10093
10124
  var actionNewWindowSmall={"title":"action-new-window-small","tags":"arrow open new window tab external linksquare box rectangle action small","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M10.5 2a1.5 1.5 0 0 1 .14 3H3.75c-.38 0-.7.28-.74.65l-.01.1v14.5c0 .38.28.7.65.74l.1.01h14.5c.38 0 .7-.28.74-.65l.01-.1v-6.89a1.5 1.5 0 0 1 3 0v6.89A3.75 3.75 0 0 1 18.25 24H3.75A3.75 3.75 0 0 1 0 20.25V5.75A3.75 3.75 0 0 1 3.75 2zm12-2c.78 0 1.42.6 1.5 1.36V7.5a1.5 1.5 0 0 1-3 .14V5.12l-5.44 5.44a1.5 1.5 0 0 1-2.22-2l.1-.12L18.88 3H16.5A1.5 1.5 0 0 1 15 1.64V1.5c0-.78.6-1.42 1.36-1.5h.14z\"/></svg>"};
10094
10125
 
10095
- const duetFooterCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-footer,*.sc-duet-footer::after,*.sc-duet-footer::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-footer-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;flex-shrink:0;width:100%}/*!@.duet-footer*/.duet-footer.sc-duet-footer{display:block;width:100%;padding-top:20px;padding-bottom:16px;margin-top:48px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:white;text-align:left;background:#00294d}/*!@.duet-footer.duet-p-0*/.duet-footer.duet-p-0.sc-duet-footer{padding:0 !important}/*!@.duet-footer.duet-m-0*/.duet-footer.duet-m-0.sc-duet-footer{margin:0 !important}@media (min-width: 36em){/*!@.duet-footer*/.duet-footer.sc-duet-footer{padding-top:36px}}@media (min-width: 62em){/*!@.duet-footer*/.duet-footer.sc-duet-footer{padding-top:48px;padding-bottom:36px}}/*!@.duet-footer.duet-theme-turva*/.duet-footer.duet-theme-turva.sc-duet-footer{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";background:#c60c30}/*!@.duet-footer a*/.duet-footer.sc-duet-footer a.sc-duet-footer{color:white;text-decoration:none}@media (min-width: 62em){/*!@.duet-footer a*/.duet-footer.sc-duet-footer a.sc-duet-footer{border-radius:4px}}/*!@.duet-footer a:focus*/.duet-footer.sc-duet-footer a.sc-duet-footer:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-footer a:focus*/.user-is-tabbing.sc-duet-footer-h .duet-footer.sc-duet-footer a.sc-duet-footer: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 a:focus*/.user-is-tabbing.sc-duet-footer-h .duet-theme-turva.sc-duet-footer a.sc-duet-footer:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-footer-wrapper*/.duet-footer-wrapper.sc-duet-footer{position:relative;margin:0 auto}@media (min-width: 62em){/*!@.duet-footer-wrapper*/.duet-footer-wrapper.sc-duet-footer{padding:0 72px 0 48px}}@media (min-width: 76.25em){/*!@.duet-footer-wrapper*/.duet-footer-wrapper.sc-duet-footer{max-width:1110px;padding:0 20px 0 0}}/*!@.duet-footer-top*/.duet-footer-top.sc-duet-footer{width:100%}@media (min-width: 62em){/*!@.duet-footer-top*/.duet-footer-top.sc-duet-footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between}}/*!@duet-logo*/duet-logo.sc-duet-footer{margin-left:16px !important}@media (min-width: 36em){/*!@duet-logo*/duet-logo.sc-duet-footer{margin-left:28px !important}}@media (min-width: 62em){/*!@duet-logo*/duet-logo.sc-duet-footer{margin-left:0 !important}}/*!@.duet-footer-link*/.duet-footer-link.sc-duet-footer{padding:16px !important;display:flex;flex-direction:row;align-items:center;width:100%;font-weight:600;border-bottom:1px solid rgba(255, 255, 255, 0.2);transition:background-color 300ms ease}@media (min-width: 36em){/*!@.duet-footer-link*/.duet-footer-link.sc-duet-footer{padding-right:20px !important;padding-left:28px !important}}@media (min-width: 62em){/*!@.duet-footer-link*/.duet-footer-link.sc-duet-footer{width:auto;min-width:0;padding-right:0 !important;padding-left:0 !important;border:0}}/*!@.duet-footer-link:first-of-type*/.duet-footer-link.sc-duet-footer:first-of-type{margin-top:20px;border-top:1px solid rgba(255, 255, 255, 0.2)}@media (min-width: 62em){/*!@.duet-footer-link:first-of-type*/.duet-footer-link.sc-duet-footer:first-of-type{margin:0;border:0}}/*!@.duet-footer-link span*/.duet-footer-link.sc-duet-footer span.sc-duet-footer{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}/*!@.duet-footer-link:hover*/.duet-footer-link.sc-duet-footer:hover{background:rgba(0, 0, 0, 0.1)}@media (min-width: 62em){/*!@.duet-footer-link:hover*/.duet-footer-link.sc-duet-footer:hover{background:transparent}}/*!@.duet-footer-icon*/.duet-footer-icon.sc-duet-footer{display:flex;align-items:center;justify-content:center;padding:12px;margin-right:16px;background:#0077b3;border-radius:50%;transition:300ms ease}/*!@.duet-theme-turva .duet-footer-icon*/.duet-theme-turva.sc-duet-footer .duet-footer-icon.sc-duet-footer{background:transparent;box-shadow:0 0 0 1px white}/*!@a:hover .duet-footer-icon*/a.sc-duet-footer:hover .duet-footer-icon.sc-duet-footer{background:#006ba1}/*!@.duet-theme-turva a:hover .duet-footer-icon*/.duet-theme-turva.sc-duet-footer a.sc-duet-footer:hover .duet-footer-icon.sc-duet-footer{background:transparent}/*!@.duet-footer-arrow*/.duet-footer-arrow.sc-duet-footer{display:flex;align-items:center;justify-content:center;width:20px;min-width:20px;max-width:20px;height:20px;max-height:20px;margin-left:auto;color:white;transition:transform 300ms ease}@media (min-width: 62em){/*!@.duet-footer-arrow*/.duet-footer-arrow.sc-duet-footer{width:10px;min-width:10px;margin-top:3px;margin-left:8px}}@media (min-width: 62em){/*!@.duet-footer-arrow*/.duet-footer-arrow.sc-duet-footer{margin-right:0}}/*!@a:hover .duet-footer-arrow*/a.sc-duet-footer:hover .duet-footer-arrow.sc-duet-footer{transform:translateX(4px)}/*!@.duet-footer-arrow duet-icon*/.duet-footer-arrow.sc-duet-footer duet-icon.sc-duet-footer{width:20px;height:20px}@media (min-width: 62em){/*!@.duet-footer-arrow duet-icon*/.duet-footer-arrow.sc-duet-footer duet-icon.sc-duet-footer{width:10px;height:10px}}/*!@.duet-footer-menu*/.duet-footer-menu.sc-duet-footer{padding:20px !important;font-size:0.875rem}@media (min-width: 36em){/*!@.duet-footer-menu*/.duet-footer-menu.sc-duet-footer{padding:28px !important}}@media (min-width: 62em){/*!@.duet-footer-menu*/.duet-footer-menu.sc-duet-footer{padding-left:8px !important}}/*!@.duet-footer-menu a*/.duet-footer-menu.sc-duet-footer a.sc-duet-footer{display:inline-block;text-decoration:none;word-break:break-all}/*!@.duet-footer-menu a:hover, .duet-footer-menu a:focus*/.duet-footer-menu.sc-duet-footer a.sc-duet-footer:hover,.duet-footer-menu.sc-duet-footer a.sc-duet-footer:focus{text-decoration:underline}/*!@.duet-footer-menu a:hover .duet-footer-divider, .duet-footer-menu a:focus .duet-footer-divider*/.duet-footer-menu.sc-duet-footer a.sc-duet-footer:hover .duet-footer-divider.sc-duet-footer,.duet-footer-menu.sc-duet-footer a.sc-duet-footer:focus .duet-footer-divider.sc-duet-footer{text-decoration:none}/*!@.duet-footer-menu .duet-footer-divider*/.duet-footer-menu.sc-duet-footer .duet-footer-divider.sc-duet-footer{display:inline-block;margin:0 8px}/*!@.duet-footer-menu a:last-of-type .duet-footer-divider*/.duet-footer-menu.sc-duet-footer a.sc-duet-footer:last-of-type .duet-footer-divider.sc-duet-footer{display:none}/*!@.duet-footer-copyright*/.duet-footer-copyright.sc-duet-footer{color:white}/*!@.duet-footer-simple*/.duet-footer-simple.sc-duet-footer{padding:0;margin:0;margin-top:16px;color:#00294d;background:transparent !important;border-top:1px solid #e1e3e6}/*!@.duet-footer-simple .duet-footer-wrapper*/.duet-footer-simple.sc-duet-footer .duet-footer-wrapper.sc-duet-footer{max-width:100%;padding:0 20px;margin:0}@media (min-width: 62em){/*!@.duet-footer-simple .duet-footer-wrapper*/.duet-footer-simple.sc-duet-footer .duet-footer-wrapper.sc-duet-footer{padding:0 36px}}@media (min-width: 106.25em){/*!@.duet-footer-simple .duet-footer-wrapper*/.duet-footer-simple.sc-duet-footer .duet-footer-wrapper.sc-duet-footer{padding:0 48px}}/*!@.duet-footer-simple .duet-footer-copyright,\n.duet-footer-simple .duet-footer-menu a*/.duet-footer-simple.sc-duet-footer .duet-footer-copyright.sc-duet-footer,.duet-footer-simple.sc-duet-footer .duet-footer-menu.sc-duet-footer a.sc-duet-footer{color:#00294d}/*!@.duet-footer-simple .duet-footer-menu*/.duet-footer-simple.sc-duet-footer .duet-footer-menu.sc-duet-footer{padding:20px 0 !important}/*!@.duet-footer-simple.duet-theme-turva*/.duet-footer-simple.duet-theme-turva.sc-duet-footer{color:#171c3a;border-color:#e4e4e6}/*!@.duet-footer-simple.duet-theme-turva .duet-footer-copyright,\n.duet-footer-simple.duet-theme-turva .duet-footer-menu a*/.duet-footer-simple.duet-theme-turva.sc-duet-footer .duet-footer-copyright.sc-duet-footer,.duet-footer-simple.duet-theme-turva.sc-duet-footer .duet-footer-menu.sc-duet-footer a.sc-duet-footer{color:#171c3a}/*!@.duet-footer-external*/.duet-footer-external.sc-duet-footer{display:inline-block;margin-left:4px;color:#0077b3}/*!@.duet-theme-turva .duet-footer-external*/.duet-theme-turva.sc-duet-footer .duet-footer-external.sc-duet-footer{color:white}/*!@.duet-footer-simple.duet-theme-turva .duet-footer-external*/.duet-footer-simple.duet-theme-turva.sc-duet-footer .duet-footer-external.sc-duet-footer{color:#c60c30}";
10126
+ const duetFooterCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-footer,*.sc-duet-footer::after,*.sc-duet-footer::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-footer-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;flex-shrink:0;width:100%}/*!@.duet-footer*/.duet-footer.sc-duet-footer{display:block;width:100%;padding-top:20px;padding-bottom:16px;margin-top:48px;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:white;text-align:left;background:#00294d}/*!@.duet-footer.duet-p-0*/.duet-footer.duet-p-0.sc-duet-footer{padding:0 !important}/*!@.duet-footer.duet-m-0*/.duet-footer.duet-m-0.sc-duet-footer{margin:0 !important}@media (min-width: 36em){/*!@.duet-footer*/.duet-footer.sc-duet-footer{padding-top:36px}}@media (min-width: 62em){/*!@.duet-footer*/.duet-footer.sc-duet-footer{padding-top:48px;padding-bottom:36px}}/*!@.duet-footer.duet-theme-turva*/.duet-footer.duet-theme-turva.sc-duet-footer{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";background:#c60c30}/*!@.duet-footer a*/.duet-footer.sc-duet-footer a.sc-duet-footer{color:white;text-decoration:none}@media (min-width: 62em){/*!@.duet-footer a*/.duet-footer.sc-duet-footer a.sc-duet-footer{border-radius:4px}}/*!@.duet-footer a:focus*/.duet-footer.sc-duet-footer a.sc-duet-footer:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-footer a:focus*/.user-is-tabbing.sc-duet-footer-h .duet-footer.sc-duet-footer a.sc-duet-footer: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 a:focus*/.user-is-tabbing.sc-duet-footer-h .duet-theme-turva.sc-duet-footer a.sc-duet-footer:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-footer-wrapper*/.duet-footer-wrapper.sc-duet-footer{position:relative;margin:0 auto}@media (min-width: 62em){/*!@.duet-footer-wrapper*/.duet-footer-wrapper.sc-duet-footer{padding:0 72px 0 48px}}@media (min-width: 76.25em){/*!@.duet-footer-wrapper*/.duet-footer-wrapper.sc-duet-footer{max-width:1110px;padding:0 20px 0 0}}/*!@.duet-footer-top*/.duet-footer-top.sc-duet-footer{width:100%}@media (min-width: 62em){/*!@.duet-footer-top*/.duet-footer-top.sc-duet-footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between}}/*!@duet-logo*/duet-logo.sc-duet-footer{margin-left:16px !important}@media (min-width: 36em){/*!@duet-logo*/duet-logo.sc-duet-footer{margin-left:28px !important}}@media (min-width: 62em){/*!@duet-logo*/duet-logo.sc-duet-footer{margin-left:0 !important}}/*!@.duet-footer-link*/.duet-footer-link.sc-duet-footer{padding:16px !important;display:flex;flex-direction:row;align-items:center;width:100%;font-weight:600;border-bottom:1px solid rgba(255, 255, 255, 0.2);transition:background-color 300ms ease}@media (min-width: 36em){/*!@.duet-footer-link*/.duet-footer-link.sc-duet-footer{padding-right:20px !important;padding-left:28px !important}}@media (min-width: 62em){/*!@.duet-footer-link*/.duet-footer-link.sc-duet-footer{width:auto;min-width:0;padding-right:0 !important;padding-left:0 !important;border:0}}/*!@.duet-footer-link:first-of-type*/.duet-footer-link.sc-duet-footer:first-of-type{margin-top:20px;border-top:1px solid rgba(255, 255, 255, 0.2)}@media (min-width: 62em){/*!@.duet-footer-link:first-of-type*/.duet-footer-link.sc-duet-footer:first-of-type{margin:0;border:0}}/*!@.duet-footer-link span*/.duet-footer-link.sc-duet-footer span.sc-duet-footer{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}/*!@.duet-footer-link:hover*/.duet-footer-link.sc-duet-footer:hover{background:rgba(0, 0, 0, 0.1)}@media (min-width: 62em){/*!@.duet-footer-link:hover*/.duet-footer-link.sc-duet-footer:hover{background:transparent}}/*!@.duet-footer-icon*/.duet-footer-icon.sc-duet-footer{display:flex;align-items:center;justify-content:center;padding:12px;margin-right:16px;background:#0077b3;border-radius:50%;transition:300ms ease}/*!@.duet-theme-turva .duet-footer-icon*/.duet-theme-turva.sc-duet-footer .duet-footer-icon.sc-duet-footer{background:transparent;box-shadow:0 0 0 1px white}/*!@a:hover .duet-footer-icon*/a.sc-duet-footer:hover .duet-footer-icon.sc-duet-footer{background:#006ba1}/*!@.duet-theme-turva a:hover .duet-footer-icon*/.duet-theme-turva.sc-duet-footer a.sc-duet-footer:hover .duet-footer-icon.sc-duet-footer{background:transparent}/*!@.duet-footer-arrow*/.duet-footer-arrow.sc-duet-footer{display:flex;align-items:center;justify-content:center;width:20px;min-width:20px;max-width:20px;height:20px;max-height:20px;margin-left:auto;color:white;transition:transform 300ms ease}@media (min-width: 62em){/*!@.duet-footer-arrow*/.duet-footer-arrow.sc-duet-footer{width:10px;min-width:10px;margin-top:3px;margin-left:8px}}@media (min-width: 62em){/*!@.duet-footer-arrow*/.duet-footer-arrow.sc-duet-footer{margin-right:0}}/*!@a:hover .duet-footer-arrow*/a.sc-duet-footer:hover .duet-footer-arrow.sc-duet-footer{transform:translateX(4px)}/*!@.duet-footer-arrow duet-icon*/.duet-footer-arrow.sc-duet-footer duet-icon.sc-duet-footer{width:20px;height:20px}@media (min-width: 62em){/*!@.duet-footer-arrow duet-icon*/.duet-footer-arrow.sc-duet-footer duet-icon.sc-duet-footer{width:10px;height:10px}}/*!@.duet-footer-menu*/.duet-footer-menu.sc-duet-footer{padding:20px !important;font-size:0.875rem}@media (min-width: 36em){/*!@.duet-footer-menu*/.duet-footer-menu.sc-duet-footer{padding:28px !important}}@media (min-width: 62em){/*!@.duet-footer-menu*/.duet-footer-menu.sc-duet-footer{padding-left:8px !important}}/*!@.duet-footer-menu a*/.duet-footer-menu.sc-duet-footer a.sc-duet-footer{display:inline-block;text-decoration:none;word-break:break-all}/*!@.duet-footer-menu a:hover, .duet-footer-menu a:focus*/.duet-footer-menu.sc-duet-footer a.sc-duet-footer:hover,.duet-footer-menu.sc-duet-footer a.sc-duet-footer:focus{text-decoration:underline}/*!@.duet-footer-menu a:hover .duet-footer-divider, .duet-footer-menu a:focus .duet-footer-divider*/.duet-footer-menu.sc-duet-footer a.sc-duet-footer:hover .duet-footer-divider.sc-duet-footer,.duet-footer-menu.sc-duet-footer a.sc-duet-footer:focus .duet-footer-divider.sc-duet-footer{text-decoration:none}/*!@.duet-footer-menu .duet-footer-divider*/.duet-footer-menu.sc-duet-footer .duet-footer-divider.sc-duet-footer{display:inline-block;margin:0 8px}/*!@.duet-footer-menu a:last-of-type .duet-footer-divider*/.duet-footer-menu.sc-duet-footer a.sc-duet-footer:last-of-type .duet-footer-divider.sc-duet-footer{display:none}/*!@.duet-footer-copyright*/.duet-footer-copyright.sc-duet-footer{color:white}/*!@.duet-footer-simple*/.duet-footer-simple.sc-duet-footer{padding:0;margin:0;margin-top:16px;color:#00294d;background:transparent !important;border-top:1px solid #e1e3e6}/*!@.duet-footer-simple .duet-footer-wrapper*/.duet-footer-simple.sc-duet-footer .duet-footer-wrapper.sc-duet-footer{max-width:100%;padding:0 20px;margin:0}@media (min-width: 62em){/*!@.duet-footer-simple .duet-footer-wrapper*/.duet-footer-simple.sc-duet-footer .duet-footer-wrapper.sc-duet-footer{padding:0 36px}}@media (min-width: 106.25em){/*!@.duet-footer-simple .duet-footer-wrapper*/.duet-footer-simple.sc-duet-footer .duet-footer-wrapper.sc-duet-footer{padding:0 48px}}/*!@.duet-footer-simple .duet-footer-copyright,\n.duet-footer-simple .duet-footer-menu a*/.duet-footer-simple.sc-duet-footer .duet-footer-copyright.sc-duet-footer,.duet-footer-simple.sc-duet-footer .duet-footer-menu.sc-duet-footer a.sc-duet-footer{color:#00294d}/*!@.duet-footer-simple .duet-footer-menu*/.duet-footer-simple.sc-duet-footer .duet-footer-menu.sc-duet-footer{padding:20px 0 !important}/*!@.duet-footer-simple.duet-theme-turva*/.duet-footer-simple.duet-theme-turva.sc-duet-footer{color:#171c3a;border-color:#e4e4e6}/*!@.duet-footer-simple.duet-theme-turva .duet-footer-copyright,\n.duet-footer-simple.duet-theme-turva .duet-footer-menu a*/.duet-footer-simple.duet-theme-turva.sc-duet-footer .duet-footer-copyright.sc-duet-footer,.duet-footer-simple.duet-theme-turva.sc-duet-footer .duet-footer-menu.sc-duet-footer a.sc-duet-footer{color:#171c3a}/*!@.duet-footer-multilevel duet-logo*/.duet-footer-multilevel.sc-duet-footer duet-logo.sc-duet-footer{margin-left:0.5rem !important}@media (min-width: 62em){/*!@.duet-footer-multilevel duet-logo*/.duet-footer-multilevel.sc-duet-footer duet-logo.sc-duet-footer{margin-left:-0.5rem !important}}/*!@.duet-footer-multilevel .duet-footer-link*/.duet-footer-multilevel.sc-duet-footer .duet-footer-link.sc-duet-footer{padding:0.5rem 1.25rem !important;border:0}/*!@.duet-footer-multilevel .duet-footer-link:first-of-type*/.duet-footer-multilevel.sc-duet-footer .duet-footer-link.sc-duet-footer:first-of-type{margin:0}/*!@.duet-footer-multilevel .duet-footer-link .duet-footer-arrow*/.duet-footer-multilevel.sc-duet-footer .duet-footer-link.sc-duet-footer .duet-footer-arrow.sc-duet-footer{margin-left:0.5rem}/*!@.duet-footer-multilevel .duet-footer-link .duet-footer-arrow duet-icon*/.duet-footer-multilevel.sc-duet-footer .duet-footer-link.sc-duet-footer .duet-footer-arrow.sc-duet-footer duet-icon.sc-duet-footer{width:0.75rem;height:0.75rem}@media (min-width: 62em){/*!@.duet-footer-multilevel .duet-footer-link*/.duet-footer-multilevel.sc-duet-footer .duet-footer-link.sc-duet-footer{padding:0.75rem 0 !important}}/*!@.duet-footer-multilevel .duet-footer-top*/.duet-footer-multilevel.sc-duet-footer .duet-footer-top.sc-duet-footer{flex-direction:column;gap:1rem 0;align-items:flex-start}@media (min-width: 62em){/*!@.duet-footer-multilevel .multilevel*/.duet-footer-multilevel.sc-duet-footer .multilevel.sc-duet-footer{display:flex;justify-content:space-between;width:100%}}/*!@.duet-footer-multilevel .multilevel-main-item*/.duet-footer-multilevel.sc-duet-footer .multilevel-main-item.sc-duet-footer{margin-top:1.25rem}@media (min-width: 62em){/*!@.duet-footer-multilevel .multilevel-main-item*/.duet-footer-multilevel.sc-duet-footer .multilevel-main-item.sc-duet-footer{margin-top:0}}/*!@.duet-footer-multilevel .multilevel-main-item .duet-footer-link*/.duet-footer-multilevel.sc-duet-footer .multilevel-main-item.sc-duet-footer .duet-footer-link.sc-duet-footer{padding:0 0.5 1.25rem !important;font-weight:700}@media (min-width: 62em){/*!@.duet-footer-multilevel .multilevel-main-item .duet-footer-link*/.duet-footer-multilevel.sc-duet-footer .multilevel-main-item.sc-duet-footer .duet-footer-link.sc-duet-footer{padding:0 0 0.5rem !important}}@media (min-width: 62em){/*!@.duet-footer-multilevel .multilevel-primary-items*/.duet-footer-multilevel.sc-duet-footer .multilevel-primary-items.sc-duet-footer{column-gap:0;width:100%;columns:3}/*!@.duet-footer-multilevel .multilevel-primary-items .duet-footer-link*/.duet-footer-multilevel.sc-duet-footer .multilevel-primary-items.sc-duet-footer .duet-footer-link.sc-duet-footer{display:inline-flex}}/*!@.duet-footer-multilevel .multilevel-secondary-items .duet-footer-link*/.duet-footer-multilevel.sc-duet-footer .multilevel-secondary-items.sc-duet-footer .duet-footer-link.sc-duet-footer{padding:0.875rem 1.25rem !important;font-weight:700}/*!@.duet-footer-multilevel .multilevel-secondary-items .duet-footer-link:first-child*/.duet-footer-multilevel.sc-duet-footer .multilevel-secondary-items.sc-duet-footer .duet-footer-link.sc-duet-footer:first-child{padding:1.25rem 1.25rem 0.875rem !important}@media (min-width: 62em){/*!@.duet-footer-multilevel .multilevel-secondary-items*/.duet-footer-multilevel.sc-duet-footer .multilevel-secondary-items.sc-duet-footer{display:grid;grid-template-columns:repeat(3, 1fr);width:100%}/*!@.duet-footer-multilevel .multilevel-secondary-items .duet-footer-link,\n.duet-footer-multilevel .multilevel-secondary-items .duet-footer-link:first-child*/.duet-footer-multilevel.sc-duet-footer .multilevel-secondary-items.sc-duet-footer .duet-footer-link.sc-duet-footer,.duet-footer-multilevel.sc-duet-footer .multilevel-secondary-items.sc-duet-footer .duet-footer-link.sc-duet-footer:first-child{display:inline-flex;padding:1rem 0 !important}}/*!@.duet-footer-multilevel .multilevel-right .duet-footer-link:first-child*/.duet-footer-multilevel.sc-duet-footer .multilevel-right.sc-duet-footer .duet-footer-link.sc-duet-footer:first-child{padding-top:0.875rem !important;font-weight:700}@media (min-width: 62em){/*!@.duet-footer-multilevel .multilevel-right .duet-footer-link*/.duet-footer-multilevel.sc-duet-footer .multilevel-right.sc-duet-footer .duet-footer-link.sc-duet-footer{padding:0.375rem 0 !important;font-size:0.875rem;font-weight:400}/*!@.duet-footer-multilevel .multilevel-right .duet-footer-link:first-child*/.duet-footer-multilevel.sc-duet-footer .multilevel-right.sc-duet-footer .duet-footer-link.sc-duet-footer:first-child{padding-top:0 !important;font-size:1rem;font-weight:600}/*!@.duet-footer-multilevel .multilevel-right .tertiary-main-item .duet-footer-arrow*/.duet-footer-multilevel.sc-duet-footer .multilevel-right.sc-duet-footer .tertiary-main-item.sc-duet-footer .duet-footer-arrow.sc-duet-footer{display:none}}/*!@.duet-footer-multilevel .duet-footer-menu*/.duet-footer-multilevel.sc-duet-footer .duet-footer-menu.sc-duet-footer{padding:1.25rem !important;line-height:2.5}@media (min-width: 62em){/*!@.duet-footer-multilevel .duet-footer-menu*/.duet-footer-multilevel.sc-duet-footer .duet-footer-menu.sc-duet-footer{padding-right:0 !important;padding-left:0 !important;text-align:right}}/*!@.duet-footer-multilevel .duet-footer-copyright*/.duet-footer-multilevel.sc-duet-footer .duet-footer-copyright.sc-duet-footer{display:none;font-size:0.875rem}@media (min-width: 62em){/*!@.duet-footer-multilevel .duet-footer-copyright*/.duet-footer-multilevel.sc-duet-footer .duet-footer-copyright.sc-duet-footer{position:absolute;left:48px;display:inline}}@media (min-width: 76.25em){/*!@.duet-footer-multilevel .duet-footer-copyright*/.duet-footer-multilevel.sc-duet-footer .duet-footer-copyright.sc-duet-footer{left:0}}/*!@.duet-footer-multilevel .duet-footer-copyright.duet-footer-copyright-mobile*/.duet-footer-multilevel.sc-duet-footer .duet-footer-copyright.duet-footer-copyright-mobile.sc-duet-footer{display:block;padding-top:0.5rem;padding-bottom:1.25rem;text-align:center}@media (min-width: 62em){/*!@.duet-footer-multilevel .duet-footer-copyright.duet-footer-copyright-mobile*/.duet-footer-multilevel.sc-duet-footer .duet-footer-copyright.duet-footer-copyright-mobile.sc-duet-footer{display:none}}/*!@.duet-footer-multilevel.duet-theme-turva .duet-footer-copyright-mobile*/.duet-footer-multilevel.duet-theme-turva.sc-duet-footer .duet-footer-copyright-mobile.sc-duet-footer{padding-left:1.25rem;text-align:left}/*!@.duet-footer-multilevel.duet-theme-turva .duet-footer-icon*/.duet-footer-multilevel.duet-theme-turva.sc-duet-footer .duet-footer-icon.sc-duet-footer{color:#171c3a;background:white}/*!@.duet-footer-multilevel.duet-theme-turva a:hover .duet-footer-icon*/.duet-footer-multilevel.duet-theme-turva.sc-duet-footer a.sc-duet-footer:hover .duet-footer-icon.sc-duet-footer{background:#e6e6e6}/*!@.duet-footer-external*/.duet-footer-external.sc-duet-footer{display:inline-block;margin-left:4px;color:#0077b3}/*!@.duet-theme-turva .duet-footer-external*/.duet-theme-turva.sc-duet-footer .duet-footer-external.sc-duet-footer{color:white}/*!@.duet-footer-simple.duet-theme-turva .duet-footer-external*/.duet-footer-simple.duet-theme-turva.sc-duet-footer .duet-footer-external.sc-duet-footer{color:#c60c30}";
10096
10127
 
10097
10128
  const i18n$1 = {
10098
10129
  fi: { lahi: "© LähiTapiola", turva: "© Turva" },
10099
10130
  sv: { lahi: "© LokalTapiola", turva: "© Turva" },
10100
10131
  en: { lahi: "© LocalTapiola", turva: "© Turva" },
10101
10132
  };
10133
+ const i18nMultilevel = {
10134
+ fi: { lahi: "© LähiTapiola", turva: "© Keskinäinen Vakuutusyhtiö Turva" },
10135
+ sv: { lahi: "© LokalTapiola", turva: "© Keskinäinen Vakuutusyhtiö Turva" },
10136
+ en: { lahi: "© LocalTapiola", turva: "© Keskinäinen Vakuutusyhtiö Turva" },
10137
+ };
10102
10138
  const createEvent$1 = (ev, data) => ({
10103
10139
  component: "duet-footer",
10104
10140
  data,
10105
10141
  originalEvent: ev,
10106
10142
  });
10107
10143
  /**
10144
+ * @slot extra - A slot for extra links.
10108
10145
  * @part top - piercing selector for styling the top part of the footer
10109
10146
  * @part menu - piercing selector for styling the menu section of the footer
10110
10147
  */
@@ -10120,7 +10157,11 @@ class DuetFooter {
10120
10157
  * State() variables
10121
10158
  * Inlined decorator, alphabetical order.
10122
10159
  */
10160
+ this.processedMainItem = null;
10123
10161
  this.processedItems = null;
10162
+ this.processedSecondaryItems = null;
10163
+ this.processedTertiaryMainItem = null;
10164
+ this.processedTertiaryItems = null;
10124
10165
  this.processedMenu = null;
10125
10166
  /**
10126
10167
  * Theme of the navigation.
@@ -10195,7 +10236,11 @@ class DuetFooter {
10195
10236
  * Local methods
10196
10237
  */
10197
10238
  async refresh() {
10239
+ this.processedMainItem = parsePossibleJSON(this.mainItem);
10198
10240
  this.processedItems = parsePossibleJSON(this.items);
10241
+ this.processedSecondaryItems = parsePossibleJSON(this.secondaryItems);
10242
+ this.processedTertiaryMainItem = parsePossibleJSON(this.tertiaryMainItem);
10243
+ this.processedTertiaryItems = parsePossibleJSON(this.tertiaryItems);
10199
10244
  this.processedMenu = parsePossibleJSON(this.menu);
10200
10245
  }
10201
10246
  /**
@@ -10203,16 +10248,20 @@ class DuetFooter {
10203
10248
  * Always the last one in the class.
10204
10249
  */
10205
10250
  render() {
10206
- const text = getLocaleString(i18n$1);
10251
+ const text = this.variation === "multilevel" ? getLocaleString(i18nMultilevel) : getLocaleString(i18n$1);
10207
10252
  const copyrightLabel = this.theme === "turva" ? text.turva : text.lahi;
10208
10253
  return (hAsync("footer", { class: {
10209
10254
  "duet-footer": true,
10210
10255
  "duet-m-0": this.margin === "none",
10211
10256
  "duet-theme-turva": this.theme === "turva",
10212
10257
  "duet-footer-simple": this.variation === "simple",
10258
+ "duet-footer-multilevel": this.variation === "multilevel",
10213
10259
  } }, hAsync("div", { class: "duet-footer-wrapper" }, hAsync("div", { class: "duet-footer-top", part: "top" }, this.variation !== "simple" && (hAsync("duet-logo", { href: this.logoHref, onClick: this.handleLogoClick, size: "large", inverse: true, language: this.language, theme: this.theme })), this.processedItems &&
10214
10260
  this.variation !== "simple" &&
10215
- this.processedItems.map(item => (hAsync("a", { class: "duet-footer-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleItemClick(event, item) }, hAsync("div", { class: "duet-footer-icon" }, hAsync("duet-icon", { size: "medium", margin: "none", name: item.icon, color: "currentColor" })), hAsync("span", null, item.label), item.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), hAsync("div", { class: "duet-footer-arrow" }, item.external ? (hAsync("duet-icon", { icon: actionNewWindow.svg, size: "xx-small", margin: "none", color: "currentColor" })) : (hAsync("duet-icon", { icon: actionArrowRight.svg, size: "auto", margin: "none", color: "currentColor" }))))))), hAsync("p", { class: "duet-footer-menu", part: "menu" }, hAsync("span", { class: "duet-footer-copyright" }, `${copyrightLabel} ${new Date().getFullYear()}`), this.processedMenu && (hAsync(Fragment, null, hAsync("span", { class: "duet-footer-divider", role: "presentation", "aria-hidden": "true" }, "/"), this.processedMenu.map(item => (hAsync("a", { href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleMenuClick(event, item) }, item.label, item.external && (hAsync(Fragment, null, hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), hAsync("div", { class: "duet-footer-external" }, hAsync("duet-icon", { icon: actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))), hAsync("span", { class: "duet-footer-divider", role: "presentation", "aria-hidden": "true" }, "/"))))))))));
10261
+ this.variation !== "multilevel" &&
10262
+ this.processedItems.map(item => (hAsync("a", { class: "duet-footer-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleItemClick(event, item) }, hAsync("div", { class: "duet-footer-icon" }, hAsync("duet-icon", { size: "medium", margin: "none", name: item.icon, color: "currentColor" })), hAsync("span", null, item.label), item.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), hAsync("div", { class: "duet-footer-arrow" }, item.external ? (hAsync("duet-icon", { icon: actionNewWindow.svg, size: "xx-small", margin: "none", color: "currentColor" })) : (hAsync("duet-icon", { icon: actionArrowRight.svg, size: "auto", margin: "none", color: "currentColor" })))))), this.processedItems && this.variation === "multilevel" && (hAsync("div", { class: "multilevel" }, hAsync("div", { class: "multilevel-left" }, hAsync("div", { class: "multilevel-main-item" }, this.processedMainItem && (hAsync("a", { class: "duet-footer-link", href: this.processedMainItem.href, id: this.processedMainItem.id, target: this.processedMainItem.external ? "_blank" : "_self", onClick: event => this.handleItemClick(event, this.processedMainItem) }, hAsync("span", null, this.processedMainItem.label), this.processedMainItem.external && (hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal)), hAsync("div", { class: "duet-footer-arrow" }, this.processedMainItem.external && (hAsync("duet-icon", { icon: actionNewWindow.svg, size: "xx-small", margin: "none", color: "currentColor" })))))), hAsync("div", { class: "multilevel-primary-items" }, this.processedItems.map(item => (hAsync("a", { class: "duet-footer-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleItemClick(event, item) }, hAsync("div", { class: "duet-footer-icon" }, hAsync("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor" })), hAsync("span", null, item.label), item.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), hAsync("div", { class: "duet-footer-arrow" }, item.external && (hAsync("duet-icon", { icon: actionNewWindow.svg, size: "xx-small", margin: "none", color: "currentColor" }))))))), hAsync("div", { class: "multilevel-secondary-items" }, this.processedSecondaryItems &&
10263
+ this.processedSecondaryItems.map(item => (hAsync("a", { class: "duet-footer-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleItemClick(event, item) }, hAsync("span", null, item.label), item.external && (hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal)), hAsync("div", { class: "duet-footer-arrow" }, item.external ? (hAsync("duet-icon", { icon: actionNewWindow.svg, size: "xx-small", margin: "none", color: "currentColor" })) : (hAsync("duet-icon", { icon: actionArrowRightSmall.svg, size: "auto", margin: "none", color: "currentColor" })))))))), hAsync("div", { class: "multilevel-right" }, this.processedTertiaryMainItem && (hAsync("span", { class: "duet-footer-link tertiary-main-item", id: this.processedTertiaryMainItem.id }, hAsync("span", null, this.processedTertiaryMainItem.label), this.processedTertiaryMainItem.external && (hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal)), hAsync("div", { class: "duet-footer-arrow" }, hAsync("duet-icon", { icon: actionArrowDownSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))), this.processedTertiaryItems &&
10264
+ this.processedTertiaryItems.map(item => (hAsync("a", { class: "duet-footer-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleItemClick(event, item) }, hAsync("span", null, item.label), item.external && hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), hAsync("div", { class: "duet-footer-arrow" }, item.external && (hAsync("duet-icon", { icon: actionNewWindow.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))))), hAsync("slot", { name: "extra" }), hAsync("p", { class: "duet-footer-menu", part: "menu" }, hAsync("span", { class: "duet-footer-copyright" }, `${copyrightLabel} ${new Date().getFullYear()}`), this.processedMenu && (hAsync(Fragment, null, this.variation !== "multilevel" && (hAsync("span", { class: "duet-footer-divider", role: "presentation", "aria-hidden": "true" }, "/")), this.processedMenu.map(item => (hAsync("a", { href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleMenuClick(event, item) }, item.label, item.external && (hAsync(Fragment, null, hAsync("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), hAsync("div", { class: "duet-footer-external" }, hAsync("duet-icon", { icon: actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))), hAsync("span", { class: "duet-footer-divider", role: "presentation", "aria-hidden": "true" }, "/"))))))), this.variation === "multilevel" && (hAsync("p", { class: "duet-footer-copyright duet-footer-copyright-mobile" }, `${copyrightLabel} ${new Date().getFullYear()}`)))));
10216
10265
  }
10217
10266
  get element() { return getElement(this); }
10218
10267
  static get watchers() { return {
@@ -10229,11 +10278,19 @@ class DuetFooter {
10229
10278
  "margin": [1],
10230
10279
  "logoHref": [1, "logo-href"],
10231
10280
  "language": [1025],
10281
+ "mainItem": [8, "main-item"],
10232
10282
  "items": [8],
10283
+ "secondaryItems": [8, "secondary-items"],
10284
+ "tertiaryMainItem": [8, "tertiary-main-item"],
10285
+ "tertiaryItems": [8, "tertiary-items"],
10233
10286
  "accessibleLabelExternalDefaults": [1, "accessible-label-external-default"],
10234
10287
  "accessibleLabelExternal": [1, "accessible-label-external"],
10235
10288
  "menu": [8],
10289
+ "processedMainItem": [32],
10236
10290
  "processedItems": [32],
10291
+ "processedSecondaryItems": [32],
10292
+ "processedTertiaryMainItem": [32],
10293
+ "processedTertiaryItems": [32],
10237
10294
  "processedMenu": [32]
10238
10295
  },
10239
10296
  "$listeners$": undefined,
@@ -11876,7 +11933,7 @@ function cleanValue(input, regex) {
11876
11933
  return newValue;
11877
11934
  }
11878
11935
 
11879
- const duetInputCss = "*.sc-duet-input,*.sc-duet-input::after,*.sc-duet-input::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-input-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;width:100%;min-width:calc(33.333% - 8px);max-width:100%;text-align:left;vertical-align:bottom}.sc-duet-input-h:last-child,.sc-duet-input-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-input-h{width:calc(50% - 16px - 3px)}}.duet-expand.sc-duet-input-h{width:100% !important}.duet-m-0.sc-duet-input-h{margin:0 !important}duet-tooltip.sc-duet-input{position:absolute;top:12px;right:0}@media (min-width: 48em){duet-tooltip.sc-duet-input{position:relative;top:4px;right:auto}}duet-caption.sc-duet-input:not(:last-of-type){margin-bottom:0}.duet-input-placeholder.sc-duet-input{position:absolute;top:-9px;left:9px;z-index:200;display:block;width:auto;max-width:60%;padding:0 0.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:white}.duet-input-icon.sc-duet-input{position:absolute;top:50%;right:16px;z-index:200;width:20px;height:20px;font-size:0;line-height:normal;color:#00294d;pointer-events:none;transform:translateY(-50%)}.duet-theme-turva.sc-duet-input .duet-input-icon.sc-duet-input{color:#171c3a}.duet-input-container.sc-duet-input{position:relative;width:100%;height:100%}.duet-input.sc-duet-input{position:relative;z-index:100;display:block !important;width:100% !important;min-width:8rem;max-width:initial !important;height:auto !important;padding:12px 14px !important;margin:initial !important;margin-bottom:initial !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400 !important;font-variant-numeric:tabular-nums;line-height:1.5 !important;color:#00294d !important;cursor:initial !important;background:white !important;background-clip:initial !important;border:1px solid #909599 !important;border-radius:4px !important;box-shadow:initial !important;transition:box-shadow 150ms ease, border 150ms ease !important}.duet-input.is-number.sc-duet-input{padding-right:112px !important}.duet-input.is-date.sc-duet-input{padding-right:64px !important}.has-error.sc-duet-input .duet-input.sc-duet-input{border-color:#de2362 !important}.has-error.sc-duet-input .duet-input.sc-duet-input+.duet-input-icon.sc-duet-input{color:#de2362 !important}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input{border-color:#e02a0d !important}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input+.duet-input-icon.sc-duet-input{color:#e02a0d !important}.has-icon.sc-duet-input .duet-input.sc-duet-input{padding-right:48px !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a !important;border-color:#747475 !important}.duet-input.sc-duet-input::-ms-clear{display:none}.duet-input.sc-duet-input::-webkit-contacts-auto-fill-button{display:none !important}.duet-input.sc-duet-input::-webkit-input-placeholder{color:#657787;opacity:1 !important;transition:color 300ms ease}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input::-webkit-input-placeholder{color:#747475}.duet-input.sc-duet-input:focus::-webkit-input-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus::-webkit-input-placeholder{color:#cfcfd1}.duet-input.sc-duet-input::-moz-placeholder{color:#657787;opacity:1 !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input::-moz-placeholder{color:#747475}.duet-input.sc-duet-input:focus::-moz-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus::-moz-placeholder{color:#cfcfd1}.duet-input.sc-duet-input:-ms-input-placeholder{color:#657787}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:-ms-input-placeholder{color:#747475}.duet-input.sc-duet-input:focus:-ms-input-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus:-ms-input-placeholder{color:#cfcfd1}.duet-input[disabled].sc-duet-input{color:#00294d !important;cursor:text !important;background:#f5f8fa !important;border-color:#f5f8fa !important;box-shadow:none !important;opacity:1 !important;-webkit-text-fill-color:#00294d !important}.duet-theme-turva.sc-duet-input .duet-input[disabled].sc-duet-input{color:#171c3a !important;background:#f5f5f7 !important;border-color:#f5f5f7 !important;-webkit-text-fill-color:#171c3a !important}.duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #909599 !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #747475 !important}.has-error.sc-duet-input .duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #e02a0d}.duet-input.sc-duet-input:focus{border-color:#0077b3 !important;outline:0;box-shadow:0 0 0 1px #0077b3 !important;transition:none}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus{border-color:#171c3a !important;box-shadow:0 0 0 1px #171c3a !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus+.duet-input-icon.sc-duet-input{color:#171c3a}.has-error.sc-duet-input .duet-input.sc-duet-input:focus{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input:focus{box-shadow:0 0 0 1px #e02a0d}.duet-input.sc-duet-input:focus+.duet-input-icon.sc-duet-input{color:#0077b3}.duet-input[type=search].sc-duet-input:not(:placeholder-shown):focus+.duet-input-icon.sc-duet-input{display:none}.duet-input.sc-duet-input:not(:focus):not(:hover):invalid{box-shadow:none !important}.duet-input[type=number].sc-duet-input::-webkit-inner-spin-button,.duet-input[type=number].sc-duet-input::-webkit-outer-spin-button,.duet-input[type=time].sc-duet-input::-webkit-inner-spin-button,.duet-input[type=time].sc-duet-input::-webkit-outer-spin-button{display:none;margin:0;-webkit-appearance:none}.duet-input.sc-duet-input::-webkit-search-cancel-button{margin-right:-28px}.duet-input-help.sc-duet-input{display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:#657787;border-radius:4px}.duet-input-help.sc-duet-input span.sc-duet-input{display:block;margin-top:8px}.duet-theme-turva.sc-duet-input .duet-input-help.sc-duet-input{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#747475}.has-error.sc-duet-input .duet-input-help.sc-duet-input{color:#de2362}.duet-theme-turva.has-error.sc-duet-input .duet-input-help.sc-duet-input{color:#e02a0d}.duet-label-hidden.sc-duet-input duet-label.sc-duet-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.duet-input-relative.sc-duet-input{position:relative;width:100%}";
11936
+ const duetInputCss = "*.sc-duet-input,*.sc-duet-input::after,*.sc-duet-input::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-input-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;width:100%;min-width:calc(33.333% - 8px);max-width:100%;text-align:left;vertical-align:bottom}.sc-duet-input-h:last-child,.sc-duet-input-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-input-h{width:calc(50% - 16px - 3px)}}.duet-expand.sc-duet-input-h{width:100% !important}.duet-m-0.sc-duet-input-h{margin:0 !important}duet-tooltip.sc-duet-input{position:absolute;top:12px;right:0}@media (min-width: 48em){duet-tooltip.sc-duet-input{position:relative;top:4px;right:auto}}duet-caption.sc-duet-input:not(:last-of-type){margin-bottom:0}.duet-input-placeholder.sc-duet-input{position:absolute;top:-9px;left:9px;z-index:200;display:block;width:auto;max-width:60%;padding:0 0.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:white}.duet-input-icon.sc-duet-input{position:absolute;top:50%;right:16px;z-index:200;width:20px;height:20px;font-size:0;line-height:normal;color:#00294d;pointer-events:none;transform:translateY(-50%)}.duet-theme-turva.sc-duet-input .duet-input-icon.sc-duet-input{color:#171c3a}.duet-input-container.sc-duet-input{position:relative;width:100%;height:100%}.duet-input-container.has-clear.sc-duet-input .duet-input-clear-icon.sc-duet-input{position:relative;z-index:250}.duet-input-container.has-clear.sc-duet-input .duet-input-clear-icon.sc-duet-input button.sc-duet-input{position:absolute;top:-24px;right:0;min-width:48px;min-height:48px}.duet-input-container.has-clear.sc-duet-input .duet-input-clear-icon.sc-duet-input button.sc-duet-input:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva.sc-duet-input .duet-input-container.has-clear.sc-duet-input .duet-input-clear-icon.sc-duet-input button.sc-duet-input:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-input-container.has-clear.sc-duet-input .duet-input-clear-icon.sc-duet-input button.sc-duet-input:active{opacity:0.75;transition:none}.duet-input-container.has-clear.has-icon.sc-duet-input .duet-input-clear-icon.sc-duet-input{top:-24px;right:24px}.duet-input.sc-duet-input{position:relative;z-index:100;display:block !important;width:100% !important;min-width:8rem;max-width:initial !important;height:auto !important;padding:12px 14px !important;margin:initial !important;margin-bottom:initial !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400 !important;font-variant-numeric:tabular-nums;line-height:1.5 !important;color:#00294d !important;cursor:initial !important;background:white !important;background-clip:initial !important;border:1px solid #909599 !important;border-radius:4px !important;box-shadow:initial !important;transition:box-shadow 150ms ease, border 150ms ease !important}.duet-input.is-number.sc-duet-input{padding-right:112px !important}.duet-input.is-date.sc-duet-input{padding-right:64px !important}.has-error.sc-duet-input .duet-input.sc-duet-input{border-color:#de2362 !important}.has-error.sc-duet-input .duet-input.sc-duet-input+.duet-input-icon.sc-duet-input{color:#de2362 !important}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input{border-color:#e02a0d !important}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input+.duet-input-icon.sc-duet-input{color:#e02a0d !important}.has-icon.sc-duet-input .duet-input.sc-duet-input{padding-right:48px !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a !important;border-color:#747475 !important}.duet-input.sc-duet-input::-ms-clear{display:none}.duet-input.sc-duet-input::-webkit-contacts-auto-fill-button{display:none !important}.duet-input.sc-duet-input::-webkit-input-placeholder{color:#657787;opacity:1 !important;transition:color 300ms ease}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input::-webkit-input-placeholder{color:#747475}.duet-input.sc-duet-input:focus::-webkit-input-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus::-webkit-input-placeholder{color:#cfcfd1}.duet-input.sc-duet-input::-moz-placeholder{color:#657787;opacity:1 !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input::-moz-placeholder{color:#747475}.duet-input.sc-duet-input:focus::-moz-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus::-moz-placeholder{color:#cfcfd1}.duet-input.sc-duet-input:-ms-input-placeholder{color:#657787}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:-ms-input-placeholder{color:#747475}.duet-input.sc-duet-input:focus:-ms-input-placeholder{color:#cfd2d4}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus:-ms-input-placeholder{color:#cfcfd1}.duet-input[disabled].sc-duet-input{color:#00294d !important;cursor:text !important;background:#f5f8fa !important;border-color:#f5f8fa !important;box-shadow:none !important;opacity:1 !important;-webkit-text-fill-color:#00294d !important}.duet-theme-turva.sc-duet-input .duet-input[disabled].sc-duet-input{color:#171c3a !important;background:#f5f5f7 !important;border-color:#f5f5f7 !important;-webkit-text-fill-color:#171c3a !important}.duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #909599 !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #747475 !important}.has-error.sc-duet-input .duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input:hover:not(:disabled){box-shadow:0 0 0 1px #e02a0d}.duet-input.sc-duet-input:focus{border-color:#0077b3 !important;outline:0;box-shadow:0 0 0 1px #0077b3 !important;transition:none}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus{border-color:#171c3a !important;box-shadow:0 0 0 1px #171c3a !important}.duet-theme-turva.sc-duet-input .duet-input.sc-duet-input:focus+.duet-input-icon.sc-duet-input{color:#171c3a}.has-error.sc-duet-input .duet-input.sc-duet-input:focus{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-input .duet-input.sc-duet-input:focus{box-shadow:0 0 0 1px #e02a0d}.duet-input.sc-duet-input:focus+.duet-input-icon.sc-duet-input{color:#0077b3}.duet-input[type=search].sc-duet-input:not(:placeholder-shown):focus+.duet-input-icon.sc-duet-input{display:none}.duet-input.sc-duet-input:not(:focus):not(:hover):invalid{box-shadow:none !important}.duet-input[type=number].sc-duet-input::-webkit-inner-spin-button,.duet-input[type=number].sc-duet-input::-webkit-outer-spin-button,.duet-input[type=time].sc-duet-input::-webkit-inner-spin-button,.duet-input[type=time].sc-duet-input::-webkit-outer-spin-button{display:none;margin:0;-webkit-appearance:none}.duet-input.sc-duet-input::-webkit-search-cancel-button{margin-right:-28px}.duet-input-help.sc-duet-input{display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:#657787;border-radius:4px}.duet-input-help.sc-duet-input span.sc-duet-input{display:block;margin-top:8px}.duet-theme-turva.sc-duet-input .duet-input-help.sc-duet-input{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#747475}.has-error.sc-duet-input .duet-input-help.sc-duet-input{color:#de2362}.duet-theme-turva.has-error.sc-duet-input .duet-input-help.sc-duet-input{color:#e02a0d}.duet-label-hidden.sc-duet-input duet-label.sc-duet-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.duet-input-relative.sc-duet-input{position:relative;width:100%}.duet-input-variation-button.sc-duet-input{position:relative;width:100%}.duet-input-variation-button.sc-duet-input .duet-input-relative.sc-duet-input{display:flex;flex-direction:row;flex-wrap:nowrap;align-content:center;align-items:center;justify-content:flex-start;width:auto}.duet-input-variation-button.sc-duet-input .duet-input-relative.sc-duet-input duet-button.sc-duet-input{z-index:250;margin-bottom:0}.duet-input-variation-button.sc-duet-input .duet-input-relative.sc-duet-input .duet-input.sc-duet-input{border-right-width:0 !important;border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}";
11880
11937
 
11881
11938
  const icons = {
11882
11939
  search: formSearch,
@@ -11888,16 +11945,23 @@ class DuetInput {
11888
11945
  this.duetInput = createEvent$2(this, "duetInput", 7);
11889
11946
  this.duetChange = createEvent$2(this, "duetChange", 3);
11890
11947
  this.duetBlur = createEvent$2(this, "duetBlur", 7);
11948
+ this.duetClear = createEvent$2(this, "duetClear", 7);
11891
11949
  this.duetFocus = createEvent$2(this, "duetFocus", 7);
11892
11950
  /**
11893
11951
  * Own Properties
11894
11952
  */
11895
11953
  this.inputId = createID("DuetInput");
11954
+ this.clearId = createID("DuetInputClear");
11896
11955
  this.labelId = createID("DuetLabel");
11897
11956
  this.topCaptionId = createID("DuetCaptionTop");
11898
11957
  this.topCaptionPlaceholderId = createID("DuetCaptionPlaceholderTop");
11899
11958
  this.errorId = createID("DuetError");
11900
11959
  this.disallowPatternRegex = null;
11960
+ this.clearLabel = getLocaleString({
11961
+ en: "Clear",
11962
+ fi: "Tyhjennä",
11963
+ sv: "Rensa",
11964
+ });
11901
11965
  /**
11902
11966
  * Indicates the id of a component that describes the input.
11903
11967
  */
@@ -11911,6 +11975,10 @@ class DuetInput {
11911
11975
  * event after each keystroke.
11912
11976
  */
11913
11977
  this.debounce = 0;
11978
+ /**
11979
+ * If set, the input field will display a clear button that can be accessed with tabbing.
11980
+ */
11981
+ this.clear = false;
11914
11982
  /**
11915
11983
  * If form input field has a placeholder text, and user types anything (causing the placeholder text to disappear),
11916
11984
  * settings this to true will "echo" it into the caption slot - this option will be false by default for the next few versions, but will eventually be true by default (scheduled for 4.30.0)
@@ -11944,6 +12012,10 @@ class DuetInput {
11944
12012
  * Type of the input.
11945
12013
  */
11946
12014
  this.type = "text";
12015
+ /**
12016
+ * Variation of button.
12017
+ */
12018
+ this.variation = "default";
11947
12019
  /**
11948
12020
  * Label for the input.
11949
12021
  */
@@ -12011,6 +12083,13 @@ class DuetInput {
12011
12083
  component: "duet-input",
12012
12084
  });
12013
12085
  };
12086
+ this.onClear = (ev) => {
12087
+ this.duetFocus.emit({
12088
+ originalEvent: ev,
12089
+ value: this.value,
12090
+ component: "duet-input",
12091
+ });
12092
+ };
12014
12093
  /** Private functions
12015
12094
  *
12016
12095
  */
@@ -12030,6 +12109,17 @@ class DuetInput {
12030
12109
  }
12031
12110
  return describedBy;
12032
12111
  };
12112
+ this.handleClearClick = event => {
12113
+ const clearing = this.clearInput();
12114
+ this.onClear(event);
12115
+ return clearing;
12116
+ };
12117
+ this.keyHandler = event => {
12118
+ if (isEscapeKey(event) && this.clear) {
12119
+ this.handleClearClick(event);
12120
+ }
12121
+ return event;
12122
+ };
12033
12123
  }
12034
12124
  disallowedPatternChange() {
12035
12125
  this.disallowPatternRegex = this.disallowPattern ? new RegExp(this.disallowPattern, "g") : null;
@@ -12084,6 +12174,16 @@ class DuetInput {
12084
12174
  restoreCursor();
12085
12175
  }
12086
12176
  }
12177
+ /**
12178
+ * Reset the cursor position on the native element
12179
+ * `input.resetCursor()`.
12180
+ */
12181
+ async clearInput() {
12182
+ if (this.nativeInput) {
12183
+ this.nativeInput.value = "";
12184
+ this.value = "";
12185
+ }
12186
+ }
12087
12187
  /**
12088
12188
  * render() function
12089
12189
  * Always the last one in the class.
@@ -12101,19 +12201,25 @@ class DuetInput {
12101
12201
  else if (!this.pattern && this.type === "tel") {
12102
12202
  inputProps.pattern = "[0-9+ ]+";
12103
12203
  }
12104
- return (hAsync(Host, { class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" } }, hAsync("div", { class: {
12204
+ return (hAsync(Host, { class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" }, onKeyUp: e => this.keyHandler(e) }, hAsync("div", { class: {
12105
12205
  "duet-input-container": true,
12106
12206
  "duet-theme-turva": this.theme === "turva",
12207
+ [`duet-input-variation-${this.variation}`]: true,
12107
12208
  "duet-label-hidden": this.labelHidden,
12108
12209
  "duet-input-top-caption-shown": this.isCaptionVisible,
12109
12210
  "has-icon": !!this.icon || (this.type !== "text" && this.type !== "tel" && this.type !== "password"),
12110
12211
  "has-error": !!this.error,
12212
+ "has-clear": this.clear,
12111
12213
  } }, hAsync("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, margin: this.isCaptionVisible ? "small" : "auto", id: this.labelId, for: identifier }, this.label), this.tooltip && (hAsync("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (hAsync("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), hAsync("div", { class: "duet-input-relative" }, this.placeholder && this.echoPlaceholder && this.value && (hAsync("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), hAsync("input", Object.assign({ ref: input => (this.nativeInput = input), onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, type: this.type, class: {
12112
12214
  "duet-input": true,
12113
12215
  disabled: this.disabled,
12114
12216
  "is-number": this.component === "number",
12115
12217
  "is-date": this.component === "date",
12116
- }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.icon && this.type !== "text" && this.type !== "tel" && this.type !== "password" && (hAsync("div", { class: "duet-input-icon" }, hAsync("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.icon && (hAsync("div", { class: "duet-input-icon" }, hAsync("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), hAsync("slot", null)), hAsync("span", { class: "duet-input-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && hAsync("span", { class: "duet-input-error" }, this.error)))));
12218
+ }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.icon &&
12219
+ this.type !== "text" &&
12220
+ this.type !== "tel" &&
12221
+ this.type !== "password" &&
12222
+ this.variation !== "button" && (hAsync("div", { class: "duet-input-icon" }, hAsync("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && (hAsync("div", { class: "duet-input-clear-icon" }, hAsync("button", { onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel, "aria-keyshortcuts": "Escape" }, hAsync("duet-icon", { margin: "none", size: "xx-small", name: "activity-close", color: "currentColor" })))), this.icon && this.variation !== "button" && (hAsync("div", { class: "duet-input-icon" }, hAsync("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && hAsync("slot", { name: "button" }), hAsync("slot", null)), hAsync("span", { class: "duet-input-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && hAsync("span", { class: "duet-input-error" }, this.error)))));
12117
12223
  }
12118
12224
  get element() { return getElement(this); }
12119
12225
  static get watchers() { return {
@@ -12133,6 +12239,7 @@ class DuetInput {
12133
12239
  "accessibleDescribedBy": [1, "accessible-described-by"],
12134
12240
  "accessibleHasPopup": [1, "accessible-has-popup"],
12135
12241
  "debounce": [2],
12242
+ "clear": [4],
12136
12243
  "caption": [1],
12137
12244
  "echoPlaceholder": [4, "echo-placeholder"],
12138
12245
  "theme": [1025],
@@ -12142,6 +12249,7 @@ class DuetInput {
12142
12249
  "margin": [1],
12143
12250
  "required": [4],
12144
12251
  "type": [1],
12252
+ "variation": [1],
12145
12253
  "label": [1],
12146
12254
  "error": [1],
12147
12255
  "labelHidden": [4, "label-hidden"],
@@ -12160,7 +12268,8 @@ class DuetInput {
12160
12268
  "tooltip": [1],
12161
12269
  "tooltipDirection": [1, "tooltip-direction"],
12162
12270
  "setFocus": [64],
12163
- "resetCursor": [64]
12271
+ "resetCursor": [64],
12272
+ "clearInput": [64]
12164
12273
  },
12165
12274
  "$listeners$": undefined,
12166
12275
  "$lazyBundleId$": "-",
@@ -15452,7 +15561,7 @@ class DuetStepper {
15452
15561
  "accessibleLive": [1, "accessible-live"],
15453
15562
  "margin": [1],
15454
15563
  "backDisabled": [4, "back-disabled"],
15455
- "selected": [514]
15564
+ "selected": [1538]
15456
15565
  },
15457
15566
  "$listeners$": [[0, "duetStepClick", "onDuetStepClick"]],
15458
15567
  "$lazyBundleId$": "-",
@@ -16779,6 +16888,10 @@ const ProgressItem = ({ progress, name }) => (hAsync("span", null,
16779
16888
  hAsync("duet-spacer", { size: "xx-small" }),
16780
16889
  hAsync("duet-progress", { progress: Math.ceil(progress), "aria-hidden": true })));
16781
16890
 
16891
+ const PendingItem = ({ name }) => (hAsync("span", null,
16892
+ hAsync("duet-paragraph", { color: "secondary", margin: "none", size: "small" }, name),
16893
+ hAsync("duet-spacer", { size: "xx-small" })));
16894
+
16782
16895
  const formatBytes = (bytes, decimals = 2) => {
16783
16896
  if (bytes === 0) {
16784
16897
  return "0 Bytes";
@@ -16964,9 +17077,13 @@ class DuetUpload {
16964
17077
  * it will be up to you to handle the upload and return progress information to the upload-component
16965
17078
  */
16966
17079
  this.external = false;
17080
+ /**
17081
+ * If defer-upload is true, duet-upload will not (as recommended) instantly upload files but await a call to uploadPending()
17082
+ */
17083
+ this.deferUpload = false;
16967
17084
  /**
16968
17085
  * If set the upload component will not display an upload button, you will have to create one yourself
16969
- * and call the exposed method startUpload
17086
+ * and call the exposed method startUpload to open the upload dialog
16970
17087
  */
16971
17088
  this.hideButton = false;
16972
17089
  /**
@@ -16979,7 +17096,7 @@ class DuetUpload {
16979
17096
  size: "x-small",
16980
17097
  background: "gray-lightest",
16981
17098
  name: "delete",
16982
- map: ["success", "failure"],
17099
+ map: ["success", "failure", "pending"],
16983
17100
  label: {
16984
17101
  fi: "Poista tiedosto",
16985
17102
  en: "Poista tiedosto",
@@ -17233,6 +17350,7 @@ class DuetUpload {
17233
17350
  this.DefaultGroups = {
17234
17351
  inprogress: "inprogress",
17235
17352
  success: "success",
17353
+ pending: "pending",
17236
17354
  failure: "failure",
17237
17355
  };
17238
17356
  /**
@@ -17249,6 +17367,14 @@ class DuetUpload {
17249
17367
  en: "Files inprogress",
17250
17368
  },
17251
17369
  },
17370
+ {
17371
+ id: this.DefaultGroups.pending,
17372
+ label: {
17373
+ en: "Files to upload",
17374
+ sv: "Filer att ladda",
17375
+ fi: "Tiedostot ladattavat",
17376
+ },
17377
+ },
17252
17378
  {
17253
17379
  id: this.DefaultGroups.success,
17254
17380
  label: {
@@ -17276,7 +17402,6 @@ class DuetUpload {
17276
17402
  this.element.addEventListener("duetActionEvent", (e) => {
17277
17403
  const detail = e.detail;
17278
17404
  const { action, id, originalEvent } = detail;
17279
- console.log(e);
17280
17405
  switch (action) {
17281
17406
  case "delete":
17282
17407
  this.onDelete(id, originalEvent);
@@ -17304,9 +17429,6 @@ class DuetUpload {
17304
17429
  if (item.valid && item.progress === 100) {
17305
17430
  // if the item has a group, move the file to that group instead
17306
17431
  // of into the standard success group
17307
- if (item.group) {
17308
- return item.group;
17309
- }
17310
17432
  return this.DefaultGroups.success;
17311
17433
  }
17312
17434
  else if (item.progress > 0 && item.progress !== 100) {
@@ -17315,6 +17437,9 @@ class DuetUpload {
17315
17437
  else if (!item.valid) {
17316
17438
  return this.DefaultGroups.failure;
17317
17439
  }
17440
+ else if (item.pending) {
17441
+ return this.DefaultGroups.pending;
17442
+ }
17318
17443
  else if (item.group) {
17319
17444
  return item.group;
17320
17445
  }
@@ -17329,6 +17454,9 @@ class DuetUpload {
17329
17454
  else if (group === this.DefaultGroups.inprogress) {
17330
17455
  return hAsync(ProgressItem, { progress: data.progress, name: data.item.name });
17331
17456
  }
17457
+ else if (group === this.DefaultGroups.pending) {
17458
+ return hAsync(PendingItem, { name: data.item.name });
17459
+ }
17332
17460
  else if (group === this.DefaultGroups.failure) {
17333
17461
  return hAsync(ErrorItem, { data: data });
17334
17462
  }
@@ -17341,9 +17469,16 @@ class DuetUpload {
17341
17469
  };
17342
17470
  this.genHashName = () => Date.now().toString(36) + Math.random();
17343
17471
  this.updateValueInMap = (item, key, value, kick = true) => {
17344
- const fileItem = this.files.get(item);
17345
- fileItem[key] = value;
17346
- this.files.set(item, fileItem);
17472
+ try {
17473
+ const fileItem = this.files.get(item);
17474
+ fileItem[key] = value;
17475
+ this.files.set(item, fileItem);
17476
+ }
17477
+ catch (e) {
17478
+ // if a users tries to update entries on a file that doesn't exist,
17479
+ // this will blow up - so we're swallowing the errors here on purpose
17480
+ // console.warn("operation on missing items")
17481
+ }
17347
17482
  if (kick) {
17348
17483
  this.kick();
17349
17484
  }
@@ -17461,6 +17596,46 @@ class DuetUpload {
17461
17596
  fileMaxReached: isTotalFileAmountAboveMax,
17462
17597
  };
17463
17598
  };
17599
+ this.uploadFile = async (fileListItem, force = false, key) => {
17600
+ if (!force && this.deferUpload) {
17601
+ this.updateValueInMap(fileListItem.item.name, "pending", true, false);
17602
+ this.updateValueInMap(fileListItem.item.name, "group", "pending", true);
17603
+ }
17604
+ else if (force) {
17605
+ this.updateValueInMap(fileListItem.item.name, "pending", false, false);
17606
+ this.updateValueInMap(fileListItem.item.name, "group", undefined, true);
17607
+ }
17608
+ try {
17609
+ if (!this.deferUpload || force) {
17610
+ // if all is well AND external file upload handling has not been set, start upload
17611
+ const data = new FormData();
17612
+ data.append("file", fileListItem.item);
17613
+ if (key) {
17614
+ data.append("key", key);
17615
+ }
17616
+ data.append("uid", fileListItem.uid);
17617
+ data.append("name", fileListItem.item.name);
17618
+ data.append("metadata", JSON.stringify({
17619
+ uid: fileListItem.uid,
17620
+ url: this.uri,
17621
+ size: fileListItem.item.size,
17622
+ meta: fileListItem.meta,
17623
+ }));
17624
+ fileListItem.xhr = await this.makeXHRPostRequest(data);
17625
+ }
17626
+ }
17627
+ catch (e) {
17628
+ // in case one of the global maxes have been reached, invalidate the file
17629
+ this.updateValueInMap(fileListItem.item.name, "valid", false, false);
17630
+ }
17631
+ };
17632
+ this.uploadPendingFiles = () => {
17633
+ for (const [key, value] of this.files.entries()) {
17634
+ if (value.group === "pending" && value.pending === true) {
17635
+ this.uploadFile(value, true, key);
17636
+ }
17637
+ }
17638
+ };
17464
17639
  this.getItemFromUID = (uid) => {
17465
17640
  for (const [key, value] of this.files.entries()) {
17466
17641
  if (value.uid === uid) {
@@ -17470,7 +17645,8 @@ class DuetUpload {
17470
17645
  return null;
17471
17646
  };
17472
17647
  this.onDelete = (key, ev) => {
17473
- const retrievedKey = this.getItemFromUID(key).key;
17648
+ const item = this.getItemFromUID(key);
17649
+ const retrievedKey = item.key;
17474
17650
  const deletedItem = this.files.get(retrievedKey);
17475
17651
  this.files.delete(retrievedKey);
17476
17652
  this.validateTotals();
@@ -17480,7 +17656,8 @@ class DuetUpload {
17480
17656
  data: { deletion: deletedItem },
17481
17657
  component: "duet-upload",
17482
17658
  });
17483
- if (!this.external) {
17659
+ // don't send a xhr request if the item was pending, just remove it from the list
17660
+ if (!this.external && !deletedItem.pending) {
17484
17661
  this.makeXHRDeleteRequest(deletedItem);
17485
17662
  }
17486
17663
  this.resetFormFields();
@@ -17545,6 +17722,7 @@ class DuetUpload {
17545
17722
  const all = [...this.files.values()];
17546
17723
  const inprogress = [];
17547
17724
  const failure = [];
17725
+ const pending = [];
17548
17726
  const success = [];
17549
17727
  all.forEach(data => {
17550
17728
  const group = this.getGroupFromItemData(data);
@@ -17563,6 +17741,13 @@ class DuetUpload {
17563
17741
  group,
17564
17742
  });
17565
17743
  }
17744
+ else if (group === this.DefaultGroups.pending) {
17745
+ pending.push({
17746
+ uid: data.uid,
17747
+ item,
17748
+ group,
17749
+ });
17750
+ }
17566
17751
  else if (group === this.DefaultGroups.failure) {
17567
17752
  failure.push({
17568
17753
  uid: data.uid,
@@ -17580,6 +17765,7 @@ class DuetUpload {
17580
17765
  });
17581
17766
  return {
17582
17767
  inprogress,
17768
+ pending,
17583
17769
  failure,
17584
17770
  success,
17585
17771
  };
@@ -17653,6 +17839,12 @@ class DuetUpload {
17653
17839
  this.nativeInput.click();
17654
17840
  return;
17655
17841
  }
17842
+ /**
17843
+ * Method for uploading pending files
17844
+ */
17845
+ async uploadPending() {
17846
+ this.uploadPendingFiles();
17847
+ }
17656
17848
  /**
17657
17849
  * Method for forcing a render of the upload list, element.files can be changed externally
17658
17850
  * But it will only rerender on a new Map or a top Level change - this can be used to update
@@ -17791,19 +17983,14 @@ class DuetUpload {
17791
17983
  this.updateValueInMap(item.name, "valid", false, false);
17792
17984
  }
17793
17985
  else if (valid && !this.external) {
17794
- // if all is well AND external file upload handling has not been set, start upload
17795
- const data = new FormData();
17796
- data.append("file", item);
17797
- data.append("uid", uid);
17798
- data.append("name", item.name);
17799
- data.append("metadata", JSON.stringify({ uid, url: this.uri, size: item.size, meta: fileListItem.meta }));
17800
- try {
17801
- fileListItem.xhr = await this.makeXHRPostRequest(data);
17802
- }
17803
- catch (e) {
17804
- // in case one of the global maxes have been reached, invalidate the file
17805
- this.updateValueInMap(item.name, "valid", false, false);
17806
- }
17986
+ await this.uploadFile(fileListItem);
17987
+ }
17988
+ else if (valid && this.external) {
17989
+ this.updateValueInMap(fileListItem.item.name, "pending", true, false);
17990
+ this.updateValueInMap(fileListItem.item.name, "group", "pending", true);
17991
+ }
17992
+ else if (!valid) {
17993
+ this.updateValueInMap(item.name, "valid", false, true);
17807
17994
  }
17808
17995
  // kick the stat to force update
17809
17996
  this.kick();
@@ -17833,6 +18020,7 @@ class DuetUpload {
17833
18020
  "accessibleControls": [1, "accessible-controls"],
17834
18021
  "accessibleOwns": [1, "accessible-owns"],
17835
18022
  "external": [4],
18023
+ "deferUpload": [4, "defer-upload"],
17836
18024
  "hideButton": [4, "hide-upload-button"],
17837
18025
  "actions": [16],
17838
18026
  "uri": [1],
@@ -17872,6 +18060,7 @@ class DuetUpload {
17872
18060
  "tick": [32],
17873
18061
  "setFocus": [64],
17874
18062
  "upload": [64],
18063
+ "uploadPending": [64],
17875
18064
  "refresh": [64],
17876
18065
  "getFiles": [64],
17877
18066
  "updateValue": [64]