@duetds/components 4.35.2 → 4.36.0

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 (274) hide show
  1. package/hydrate/index.js +501 -7
  2. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-button_2.cjs.entry.js +7 -2
  7. package/lib/cjs/duet-caption_4.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-card.cjs.entry.js +2 -2
  9. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-choice_2.cjs.entry.js +3 -3
  11. package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
  12. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  14. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-editable-table-button.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-editable-table_4.cjs.entry.js +4 -13
  17. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-header_2.cjs.entry.js +2 -2
  22. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-modal.cjs.entry.js +3 -3
  28. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-number-input.cjs.entry.js +2 -2
  30. package/lib/cjs/duet-pagination_2.cjs.entry.js +448 -0
  31. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-scrollable_3.cjs.entry.js +2 -2
  35. package/lib/cjs/duet-select.cjs.entry.js +16 -4
  36. package/lib/cjs/duet-step_2.cjs.entry.js +2 -2
  37. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  43. package/lib/cjs/duet.cjs.js +2 -2
  44. package/lib/cjs/{focus-utils-15cc3af9.js → focus-utils-675b1aa3.js} +1 -1
  45. package/lib/cjs/{index-a38f3df3.js → index-58eb8f67.js} +4 -1
  46. package/lib/cjs/js-utils-33a9dbe3.js +16 -0
  47. package/lib/cjs/{keyboard-utils-b4e3d1d3.js → keyboard-utils-898cfe14.js} +8 -0
  48. package/lib/cjs/loader.cjs.js +2 -2
  49. package/lib/collection/collection-manifest.json +8 -0
  50. package/lib/collection/components/duet-button/duet-button.css +3 -0
  51. package/lib/collection/components/duet-button/duet-button.js +27 -0
  52. package/lib/collection/components/duet-card/duet-card.js +1 -1
  53. package/lib/collection/components/duet-pagination/duet-pagination-utils.js +9 -0
  54. package/lib/collection/components/duet-pagination/duet-pagination.css +120 -0
  55. package/lib/collection/components/duet-pagination/duet-pagination.js +511 -0
  56. package/lib/collection/components/duet-range-stepper/duet-range-stepper.css +100 -0
  57. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +342 -0
  58. package/lib/collection/components/duet-select/duet-select.css +26 -0
  59. package/lib/collection/components/duet-select/duet-select.js +39 -4
  60. package/lib/collection/utils/fixture-utils.js +0 -4
  61. package/lib/collection/utils/keyboard-utils.js +4 -0
  62. package/lib/collection/utils/test-utils.js +2 -1
  63. package/lib/custom-elements-bundle/index.d.ts +12 -0
  64. package/lib/custom-elements-bundle/index.js +471 -8
  65. package/lib/duet/duet.esm.js +1 -1
  66. package/lib/duet/duet.js +1 -1
  67. package/lib/duet/{p-f1803ec3.system.entry.js → p-0349b691.system.entry.js} +1 -1
  68. package/lib/duet/{p-97353a7f.system.entry.js → p-0769de2b.system.entry.js} +1 -1
  69. package/lib/duet/{p-15a42b87.entry.js → p-09920da9.entry.js} +1 -1
  70. package/lib/duet/{p-c9020872.entry.js → p-1aeb418c.entry.js} +1 -1
  71. package/lib/duet/{p-e7056ea5.system.entry.js → p-1afe9641.system.entry.js} +1 -1
  72. package/lib/duet/p-1b56e483.system.entry.js +4 -0
  73. package/lib/duet/{p-0d6c3d07.entry.js → p-1c1c9705.entry.js} +1 -1
  74. package/lib/duet/p-21cd146b.system.entry.js +4 -0
  75. package/lib/duet/{p-e9ca4ae1.system.entry.js → p-22e6615d.system.entry.js} +2 -2
  76. package/lib/duet/{p-ed981e8d.system.entry.js → p-28a22555.system.entry.js} +1 -1
  77. package/lib/duet/p-298a9ffc.system.js +4 -0
  78. package/lib/duet/{p-3bd812df.entry.js → p-2a9345a7.entry.js} +1 -1
  79. package/lib/duet/{p-5f24e161.system.entry.js → p-314b64b4.system.entry.js} +1 -1
  80. package/lib/duet/{p-8acdabb5.system.entry.js → p-363abf26.system.entry.js} +1 -1
  81. package/lib/duet/{p-a53a8675.entry.js → p-3c13a041.entry.js} +1 -1
  82. package/lib/duet/{p-7e2a2e30.system.entry.js → p-40360b4a.system.entry.js} +1 -1
  83. package/lib/duet/{p-acf24fcd.system.entry.js → p-44a3794d.system.entry.js} +1 -1
  84. package/lib/duet/{p-1b98f91c.entry.js → p-4b688aea.entry.js} +1 -1
  85. package/lib/duet/{p-8edd126b.system.entry.js → p-4f32cc18.system.entry.js} +1 -1
  86. package/lib/duet/{p-3081f8a5.system.entry.js → p-59480299.system.entry.js} +1 -1
  87. package/lib/duet/{p-d2edeb9a.system.entry.js → p-5e410fa9.system.entry.js} +1 -1
  88. package/lib/duet/{p-3dbeddf5.entry.js → p-5f4362b4.entry.js} +1 -1
  89. package/lib/duet/{p-9a47c28a.entry.js → p-663aec3a.entry.js} +1 -1
  90. package/lib/duet/{p-d9da705b.entry.js → p-6aa8d848.entry.js} +1 -1
  91. package/lib/duet/p-6da8743f.system.entry.js +4 -0
  92. package/lib/duet/{p-0d15892b.entry.js → p-6df7b78c.entry.js} +1 -1
  93. package/lib/duet/{p-49820427.system.entry.js → p-6e6e1b77.system.entry.js} +1 -1
  94. package/lib/duet/p-72ce134a.entry.js +4 -0
  95. package/lib/duet/p-74780bca.system.js +4 -0
  96. package/lib/duet/{p-ef7560b6.entry.js → p-7730d2b8.entry.js} +1 -1
  97. package/lib/duet/{p-3e578cc5.system.entry.js → p-78779ba1.system.entry.js} +1 -1
  98. package/lib/duet/{p-67b22acc.system.entry.js → p-78aa974b.system.entry.js} +1 -1
  99. package/lib/duet/p-7e2c06d0.js +4 -0
  100. package/lib/duet/{p-30783ea4.entry.js → p-7f1cbb7d.entry.js} +1 -1
  101. package/lib/duet/{p-3baf5b41.system.entry.js → p-80aa512a.system.entry.js} +1 -1
  102. package/lib/duet/p-81867417.system.js +4 -0
  103. package/lib/duet/{p-94b4ec76.entry.js → p-818cd527.entry.js} +1 -1
  104. package/lib/duet/{p-632186a9.system.entry.js → p-84940fc4.system.entry.js} +1 -1
  105. package/lib/duet/{p-ac01755b.system.entry.js → p-84a9fbf4.system.entry.js} +1 -1
  106. package/lib/duet/{p-4accc70c.system.js → p-85d9b1b0.system.js} +1 -1
  107. package/lib/duet/{p-4d7abe27.system.entry.js → p-8706664b.system.entry.js} +1 -1
  108. package/lib/duet/{p-d6563133.system.entry.js → p-878c1c83.system.entry.js} +1 -1
  109. package/lib/duet/p-898f30a5.js +4 -0
  110. package/lib/duet/{p-2056e3eb.entry.js → p-8a768d0b.entry.js} +1 -1
  111. package/lib/duet/{p-4c3961a5.entry.js → p-8b8c2ef4.entry.js} +1 -1
  112. package/lib/duet/p-8c0fd5de.js +4 -0
  113. package/lib/duet/{p-d04561dc.system.js → p-8db453bf.system.js} +1 -1
  114. package/lib/duet/{p-38128fc3.entry.js → p-8f56fd3f.entry.js} +1 -1
  115. package/lib/duet/{p-04e3b06b.entry.js → p-8fa952df.entry.js} +1 -1
  116. package/lib/duet/{p-e9064858.entry.js → p-90799d0a.entry.js} +1 -1
  117. package/lib/duet/{p-9b0c78de.entry.js → p-9358e24b.entry.js} +1 -1
  118. package/lib/duet/p-95f71b43.system.entry.js +4 -0
  119. package/lib/duet/p-9782946f.entry.js +4 -0
  120. package/lib/duet/{p-29e59e77.entry.js → p-995f20fc.entry.js} +1 -1
  121. package/lib/duet/{p-83261c61.entry.js → p-99a112e4.entry.js} +1 -1
  122. package/lib/duet/{p-573921ca.entry.js → p-9ead1c59.entry.js} +1 -1
  123. package/lib/duet/{p-889193e8.entry.js → p-a0f979a4.entry.js} +1 -1
  124. package/lib/duet/{p-ce40057c.entry.js → p-a154a0c0.entry.js} +1 -1
  125. package/lib/duet/{p-9dd65758.system.entry.js → p-a2db8ff2.system.entry.js} +1 -1
  126. package/lib/duet/{p-7641054f.entry.js → p-a75776f5.entry.js} +1 -1
  127. package/lib/duet/{p-18441899.system.entry.js → p-a8f707d4.system.entry.js} +2 -2
  128. package/lib/duet/{p-5af271ce.system.entry.js → p-aa5abb52.system.entry.js} +1 -1
  129. package/lib/duet/p-abcbdef5.entry.js +4 -0
  130. package/lib/duet/{p-c0fa8865.entry.js → p-ac44ab7a.entry.js} +1 -1
  131. package/lib/duet/{p-0deee587.system.entry.js → p-ad06c91d.system.entry.js} +1 -1
  132. package/lib/duet/{p-54d296d9.system.entry.js → p-ad8a49a3.system.entry.js} +1 -1
  133. package/lib/duet/p-ae82d8e7.entry.js +4 -0
  134. package/lib/duet/{p-fa5a028c.entry.js → p-aebf6700.entry.js} +1 -1
  135. package/lib/duet/{p-a73609b4.system.entry.js → p-b11f2fcd.system.entry.js} +1 -1
  136. package/lib/duet/p-b25d3769.js +4 -0
  137. package/lib/duet/{p-0ea49de8.entry.js → p-b42066e0.entry.js} +1 -1
  138. package/lib/duet/{p-69c4ff6f.entry.js → p-b5aaf161.entry.js} +1 -1
  139. package/lib/duet/{p-bf859d7b.entry.js → p-b6b58d31.entry.js} +1 -1
  140. package/lib/duet/{p-e701e364.entry.js → p-bd602c98.entry.js} +1 -1
  141. package/lib/duet/{p-7142b886.entry.js → p-bf25e52a.entry.js} +1 -1
  142. package/lib/duet/{p-70cf255e.system.entry.js → p-c0a24b5e.system.entry.js} +1 -1
  143. package/lib/duet/{p-27b953e4.system.entry.js → p-c167a5aa.system.entry.js} +1 -1
  144. package/lib/duet/{p-f261a666.system.entry.js → p-c5db93a7.system.entry.js} +1 -1
  145. package/lib/duet/{p-b80d80dc.system.entry.js → p-c61ace58.system.entry.js} +1 -1
  146. package/lib/duet/{p-2c8bd5a2.system.entry.js → p-d32b240d.system.entry.js} +1 -1
  147. package/lib/duet/{p-b692b4a4.system.entry.js → p-d444e178.system.entry.js} +1 -1
  148. package/lib/duet/{p-3b244de7.entry.js → p-daede773.entry.js} +1 -1
  149. package/lib/duet/{p-41b4bad1.entry.js → p-dda7f098.entry.js} +1 -1
  150. package/lib/duet/{p-13e81854.entry.js → p-e584ce1d.entry.js} +1 -1
  151. package/lib/duet/{p-114a20f1.system.entry.js → p-e67fc1ed.system.entry.js} +1 -1
  152. package/lib/duet/{p-6b3a14c2.entry.js → p-e9ca7e01.entry.js} +1 -1
  153. package/lib/duet/{p-b1ae4d5b.system.entry.js → p-ea124391.system.entry.js} +2 -2
  154. package/lib/duet/{p-e3c66ce5.system.entry.js → p-f993e4c3.system.entry.js} +1 -1
  155. package/lib/duet/{p-d158b9ca.system.entry.js → p-fb55e381.system.entry.js} +1 -1
  156. package/lib/duet/{p-7d019a4d.entry.js → p-fc02d8e9.entry.js} +1 -1
  157. package/lib/duet/{p-d3432b68.system.entry.js → p-fd561872.system.entry.js} +1 -1
  158. package/lib/esm/duet-alert.entry.js +1 -1
  159. package/lib/esm/duet-badge.entry.js +1 -1
  160. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  161. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  162. package/lib/esm/duet-button_2.entry.js +7 -2
  163. package/lib/esm/duet-caption_4.entry.js +1 -1
  164. package/lib/esm/duet-card.entry.js +2 -2
  165. package/lib/esm/duet-checkbox.entry.js +1 -1
  166. package/lib/esm/duet-choice_2.entry.js +3 -3
  167. package/lib/esm/duet-collapsible.entry.js +2 -2
  168. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  169. package/lib/esm/duet-date-picker.entry.js +2 -2
  170. package/lib/esm/duet-divider_2.entry.js +1 -1
  171. package/lib/esm/duet-editable-table-button.entry.js +1 -1
  172. package/lib/esm/duet-editable-table_4.entry.js +2 -11
  173. package/lib/esm/duet-empty-state.entry.js +1 -1
  174. package/lib/esm/duet-fieldset.entry.js +1 -1
  175. package/lib/esm/duet-footer.entry.js +1 -1
  176. package/lib/esm/duet-grid_2.entry.js +1 -1
  177. package/lib/esm/duet-header_2.entry.js +2 -2
  178. package/lib/esm/duet-hero.entry.js +1 -1
  179. package/lib/esm/duet-icon.entry.js +1 -1
  180. package/lib/esm/duet-input_2.entry.js +1 -1
  181. package/lib/esm/duet-layout.entry.js +1 -1
  182. package/lib/esm/duet-list_2.entry.js +1 -1
  183. package/lib/esm/duet-modal.entry.js +3 -3
  184. package/lib/esm/duet-notification_2.entry.js +1 -1
  185. package/lib/esm/duet-number-input.entry.js +2 -2
  186. package/lib/esm/duet-pagination_2.entry.js +443 -0
  187. package/lib/esm/duet-progress.entry.js +1 -1
  188. package/lib/esm/duet-radio_2.entry.js +1 -1
  189. package/lib/esm/duet-range-slider.entry.js +1 -1
  190. package/lib/esm/duet-scrollable_3.entry.js +2 -2
  191. package/lib/esm/duet-select.entry.js +16 -4
  192. package/lib/esm/duet-step_2.entry.js +2 -2
  193. package/lib/esm/duet-textarea.entry.js +1 -1
  194. package/lib/esm/duet-toggle.entry.js +1 -1
  195. package/lib/esm/duet-tooltip.entry.js +1 -1
  196. package/lib/esm/duet-tray.entry.js +1 -1
  197. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  198. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  199. package/lib/esm/duet.js +2 -2
  200. package/lib/esm/{focus-utils-d3cd655b.js → focus-utils-bd3c1702.js} +1 -1
  201. package/lib/esm/{index-eb374972.js → index-49b2d31a.js} +4 -1
  202. package/lib/esm/js-utils-b69f17df.js +14 -0
  203. package/lib/esm/{keyboard-utils-584cedd7.js → keyboard-utils-6eb55cd5.js} +5 -1
  204. package/lib/esm/loader.js +2 -2
  205. package/lib/esm-es5/duet-alert.entry.js +1 -1
  206. package/lib/esm-es5/duet-badge.entry.js +1 -1
  207. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  208. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  209. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  210. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  211. package/lib/esm-es5/duet-card.entry.js +1 -1
  212. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  213. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  214. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  215. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  216. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  217. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  218. package/lib/esm-es5/duet-editable-table-button.entry.js +1 -1
  219. package/lib/esm-es5/duet-editable-table_4.entry.js +2 -2
  220. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  221. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  222. package/lib/esm-es5/duet-footer.entry.js +1 -1
  223. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  224. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  225. package/lib/esm-es5/duet-hero.entry.js +1 -1
  226. package/lib/esm-es5/duet-icon.entry.js +1 -1
  227. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  228. package/lib/esm-es5/duet-layout.entry.js +1 -1
  229. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  230. package/lib/esm-es5/duet-modal.entry.js +1 -1
  231. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  232. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  233. package/lib/esm-es5/duet-pagination_2.entry.js +4 -0
  234. package/lib/esm-es5/duet-progress.entry.js +1 -1
  235. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  236. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  237. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  238. package/lib/esm-es5/duet-select.entry.js +2 -2
  239. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  240. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  241. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  242. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  243. package/lib/esm-es5/duet-tray.entry.js +1 -1
  244. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  245. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  246. package/lib/esm-es5/duet.js +1 -1
  247. package/lib/esm-es5/focus-utils-bd3c1702.js +4 -0
  248. package/lib/esm-es5/{index-eb374972.js → index-49b2d31a.js} +1 -1
  249. package/lib/esm-es5/js-utils-b69f17df.js +4 -0
  250. package/lib/esm-es5/keyboard-utils-6eb55cd5.js +4 -0
  251. package/lib/esm-es5/loader.js +1 -1
  252. package/lib/types/components/duet-button/duet-button.d.ts +5 -0
  253. package/lib/types/components/duet-card/duet-card.d.ts +1 -1
  254. package/lib/types/components/duet-pagination/duet-pagination-utils.d.ts +1 -0
  255. package/lib/types/components/duet-pagination/duet-pagination.d.ts +100 -0
  256. package/lib/types/components/duet-range-stepper/duet-range-stepper.d.ts +70 -0
  257. package/lib/types/components/duet-select/duet-select.d.ts +5 -0
  258. package/lib/types/components.d.ts +188 -2
  259. package/lib/types/utils/keyboard-utils.d.ts +4 -0
  260. package/package.json +5 -5
  261. package/lib/duet/p-04f9f1bf.js +0 -4
  262. package/lib/duet/p-0bc3239b.entry.js +0 -4
  263. package/lib/duet/p-35ff635e.system.js +0 -4
  264. package/lib/duet/p-875bd99c.js +0 -4
  265. package/lib/duet/p-aed2a35e.system.entry.js +0 -4
  266. package/lib/duet/p-b2985c8e.system.entry.js +0 -4
  267. package/lib/duet/p-bb12b972.system.js +0 -4
  268. package/lib/duet/p-bcf94afd.js +0 -4
  269. package/lib/duet/p-be872079.entry.js +0 -4
  270. package/lib/duet/p-c479f3be.system.entry.js +0 -4
  271. package/lib/duet/p-c99e23d2.entry.js +0 -4
  272. package/lib/esm-es5/focus-utils-d3cd655b.js +0 -4
  273. package/lib/esm-es5/keyboard-utils-584cedd7.js +0 -4
  274. package/lib/html.html-data.json +0 -5056
package/hydrate/index.js CHANGED
@@ -4704,7 +4704,7 @@ function hydrateFactory($stencilWindow, $stencilHydrateOpts, $stencilHydrateResu
4704
4704
 
4705
4705
 
4706
4706
  const NAMESPACE = 'duet';
4707
- const BUILD = /* duet */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: true, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: true, cmpWillUpdate: false, connectedCallback: true, constructableCSS: false, cssAnnotations: true, cssVarShim: false, devTools: false, disconnectedCallback: true, dynamicImportShim: false, element: false, event: true, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: true, hostListenerTargetDocument: true, hostListenerTargetParent: false, hostListenerTargetWindow: true, hotModuleReplacement: false, hydrateClientSide: true, hydrateServerSide: true, hydratedAttribute: false, hydratedClass: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, safari10: false, scoped: true, scriptDataOpts: false, shadowDelegatesFocus: true, shadowDom: true, shadowDomShim: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: true, watchCallback: true };
4707
+ const BUILD = /* duet */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: true, cmpDidUnload: false, cmpDidUpdate: true, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: true, cmpWillUpdate: false, connectedCallback: true, constructableCSS: false, cssAnnotations: true, cssVarShim: false, devTools: false, disconnectedCallback: true, dynamicImportShim: false, element: false, event: true, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: true, hostListenerTargetDocument: true, hostListenerTargetParent: false, hostListenerTargetWindow: true, hotModuleReplacement: false, hydrateClientSide: true, hydrateServerSide: true, hydratedAttribute: false, hydratedClass: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, safari10: false, scoped: true, scriptDataOpts: false, shadowDelegatesFocus: true, shadowDom: true, shadowDomShim: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: true, watchCallback: true };
4708
4708
 
4709
4709
  const TAB_KEY = 9;
4710
4710
  var appGlobalScript = () => {
@@ -5204,7 +5204,8 @@ const callRender = (e, t, o) => {
5204
5204
  return null;
5205
5205
  }, postUpdateComponent = e => {
5206
5206
  const t = e.$cmpMeta$.$tagName$, o = e.$hostElement$, n = createTime("postUpdate", t), s = e.$lazyInstance$ , l = e.$ancestorComponent$;
5207
- 64 & e.$flags$ ? ((safeCall(s, "componentDidUpdate"),
5207
+ (safeCall(s, "componentDidRender"),
5208
+ BUILD.isDev ), 64 & e.$flags$ ? ((safeCall(s, "componentDidUpdate"),
5208
5209
  BUILD.isDev ), n()) : (e.$flags$ |= 64, addHydratedFlag(o),
5209
5210
  (safeCall(s, "componentDidLoad"),
5210
5211
  BUILD.isDev ), n(), (e.$onReadyResolve$(o), l || appDidLoad())), e.$onInstanceResolve$(o), (e.$onRenderResolve$ && (e.$onRenderResolve$(),
@@ -6332,7 +6333,7 @@ function convertToColorName(name = "", theme = "") {
6332
6333
  return colorResolution;
6333
6334
  }
6334
6335
 
6335
- 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-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}";
6336
+ 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}";
6336
6337
 
6337
6338
  class DuetButton {
6338
6339
  constructor(hostRef) {
@@ -6365,6 +6366,10 @@ class DuetButton {
6365
6366
  * Controls the padding of the component.
6366
6367
  */
6367
6368
  this.padding = "auto";
6369
+ /**
6370
+ * Centers the text of a button
6371
+ */
6372
+ this.centerText = false;
6368
6373
  /**
6369
6374
  * Controls the text wrapping.
6370
6375
  */
@@ -6529,6 +6534,7 @@ class DuetButton {
6529
6534
  "duet-button": true,
6530
6535
  "duet-button-is-small": this.size === "small",
6531
6536
  "duet-button-icon-only": this.iconOnly,
6537
+ "duet-button-text-center": this.centerText,
6532
6538
  "duet-button-negative": this.negative || this.variation === "negative",
6533
6539
  [this.variation]: true,
6534
6540
  disabled: this.disabled,
@@ -6581,6 +6587,7 @@ class DuetButton {
6581
6587
  "theme": [1025],
6582
6588
  "margin": [1],
6583
6589
  "padding": [1],
6590
+ "centerText": [4, "center-text"],
6584
6591
  "wrapping": [1],
6585
6592
  "expand": [4],
6586
6593
  "fixed": [4],
@@ -6678,18 +6685,22 @@ const isArrowLeftKey = (e) => e.keyCode === 37;
6678
6685
  const isArrowUpKey = (e) => e.keyCode === 38;
6679
6686
  const isArrowRightKey = (e) => e.keyCode === 39;
6680
6687
  const isArrowDownKey = (e) => e.keyCode === 40;
6688
+ const isArrowKey = (e) => isArrowDownKey(e) || isArrowRightKey(e) || isArrowUpKey(e) || isArrowLeftKey(e);
6681
6689
  const isEscapeKey = (e) => e.key === "Escape" || e.key === "Esc" || e.keyCode === 27;
6682
6690
  const isBackspaceKey = (e) => e.keyCode === 8;
6683
6691
  const isSpaceKey = (e) => e.key === "Space" || e.keyCode === 32;
6692
+ const isPlusKey = (e) => e.key === "+" || e.keyCode === 43;
6693
+ const isMinusKey = (e) => e.key === "-" || e.keyCode === 45;
6684
6694
  const isQuestionKey = (e) => e.key === "?";
6685
6695
  const isEnterKey = (e) => e.key === "Enter" || e.keyCode === 13;
6686
6696
  const isKeyboardClick = (e) => isEnterKey(e) || isSpaceKey(e);
6697
+ const isNumber = (e) => (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105);
6687
6698
 
6688
6699
  const duetCardCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-card,*.sc-duet-card::after,*.sc-duet-card::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-card-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:20px !important;display:flex;width:100%;vertical-align:top}/*!@:host(.duet-card-info)*/.duet-card-info.sc-duet-card-h{margin-bottom:16px !important}/*!@:host(.duet-m-0)*/.duet-m-0.sc-duet-card-h{margin:0 !important}/*!@.duet-card*/.duet-card.sc-duet-card{padding:20px !important;position:relative;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;line-height:1.5;color:#00294d;text-decoration:none;border-radius:4px;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}/*!@.duet-card.duet-p-0*/.duet-card.duet-p-0.sc-duet-card{padding:0 !important}/*!@.duet-card.duet-m-0*/.duet-card.duet-m-0.sc-duet-card{margin:0 !important}/*!@.duet-card:focus*/.duet-card.sc-duet-card:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@.duet-theme-turva .duet-card:focus, .duet-card:focus.duet-theme-turva*/.duet-theme-turva.sc-duet-card .duet-card.sc-duet-card:focus,.duet-card.sc-duet-card:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 36em){/*!@.duet-card*/.duet-card.sc-duet-card{padding:28px !important}}/*!@.duet-card.duet-theme-turva*/.duet-card.duet-theme-turva.sc-duet-card{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}@media (min-width: 36em){/*!@.duet-card.x-small*/.duet-card.x-small.sc-duet-card{padding:20px !important}}@media (min-width: 36em){/*!@.duet-card.medium*/.duet-card.medium.sc-duet-card{padding:28px !important}}@media (min-width: 48em){/*!@.duet-card.medium*/.duet-card.medium.sc-duet-card{padding:36px !important}}@media (min-width: 36em){/*!@.duet-card.large*/.duet-card.large.sc-duet-card{padding:36px !important}}@media (min-width: 48em){/*!@.duet-card.large*/.duet-card.large.sc-duet-card{padding:48px !important}}@media (min-width: 36em){/*!@.duet-card.x-large*/.duet-card.x-large.sc-duet-card{padding:48px !important}}@media (min-width: 48em){/*!@.duet-card.x-large*/.duet-card.x-large.sc-duet-card{padding:72px !important}}/*!@.duet-card.duet-card-collapsed*/.duet-card.duet-card-collapsed.sc-duet-card{padding-bottom:0 !important}@media (min-width: 36em){/*!@.duet-card.duet-card-collapsed*/.duet-card.duet-card-collapsed.sc-duet-card{padding-bottom:0 !important}}/*!@.duet-card.info*/.duet-card.info.sc-duet-card{background:rgba(0, 80, 128, 0.04) !important;box-shadow:none}/*!@.duet-card.info.duet-theme-turva*/.duet-card.info.duet-theme-turva.sc-duet-card{background:rgba(23, 28, 58, 0.035) !important}/*!@.duet-card.plain*/.duet-card.plain.sc-duet-card{box-shadow:none}/*!@.duet-card.plain:not(.duet-card-has-bg)*/.duet-card.plain.sc-duet-card:not(.duet-card-has-bg){background:transparent !important}/*!@.duet-card-heading-grid*/.duet-card-heading-grid.sc-duet-card{display:flex;flex-direction:row}/*!@.duet-card-icon*/.duet-card-icon.sc-duet-card{align-self:center}/*!@.duet-card-heading-text*/.duet-card-heading-text.sc-duet-card{flex:1;word-break:break-word}/*!@.duet-card-secondary-heading*/.duet-card-secondary-heading.sc-duet-card{font-size:1rem;font-weight:600;word-break:break-word}/*!@.duet-card-secondary-heading--inline*/.duet-card-secondary-heading--inline.sc-duet-card{display:block;flex:1;align-self:flex-start;line-height:1.875;text-align:right}@media (max-width: 22.5em){/*!@.duet-card-secondary-heading--inline*/.duet-card-secondary-heading--inline.sc-duet-card{display:none}}/*!@.duet-card-secondary-heading--new-line*/.duet-card-secondary-heading--new-line.sc-duet-card{display:none}@media (max-width: 22.5em){/*!@.duet-card-secondary-heading--new-line*/.duet-card-secondary-heading--new-line.sc-duet-card{display:block}}/*!@.duet-card-heading*/.duet-card-heading.sc-duet-card{position:relative;display:block;padding:16px 20px;margin:-20px -20px 20px;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1.25rem;font-weight:800;color:#00294d;border-bottom:1px solid #e1e3e6}@media (min-width: 36em){/*!@.duet-card-heading*/.duet-card-heading.sc-duet-card{padding:15px 28px 16px !important;margin:-28px -28px 20px}}/*!@.duet-card-heading[role=button]*/.duet-card-heading[role=button].sc-duet-card{-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:4px;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;appearance:none}/*!@.duet-card-heading[role=button]:focus*/.duet-card-heading[role=button].sc-duet-card:focus{outline:0}/*!@:host(.user-is-tabbing) .duet-card-heading[role=button]:focus*/.user-is-tabbing.sc-duet-card-h .duet-card-heading[role=button].sc-duet-card:focus{border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}/*!@:host(.user-is-tabbing) .duet-theme-turva .duet-card-heading[role=button]:focus*/.user-is-tabbing.sc-duet-card-h .duet-theme-turva.sc-duet-card .duet-card-heading[role=button].sc-duet-card:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}/*!@.duet-card-collapsed .duet-card-heading*/.duet-card-collapsed.sc-duet-card .duet-card-heading.sc-duet-card{margin-bottom:0 !important;border-bottom:0 !important}/*!@.duet-theme-turva .duet-card-heading*/.duet-theme-turva.sc-duet-card .duet-card-heading.sc-duet-card{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#e4e4e6}@media (min-width: 36em){/*!@.x-small .duet-card-heading*/.x-small.sc-duet-card .duet-card-heading.sc-duet-card{padding:10px 20px 11px !important;margin:-20px -20px 20px}}@media (min-width: 48em){/*!@.x-small .duet-card-heading*/.x-small.sc-duet-card .duet-card-heading.sc-duet-card{padding:10px 20px 11px !important;margin:-20px -20px 20px}}/*!@.medium .duet-card-heading*/.medium.sc-duet-card .duet-card-heading.sc-duet-card{margin:-20px -20px 20px}@media (min-width: 36em){/*!@.medium .duet-card-heading*/.medium.sc-duet-card .duet-card-heading.sc-duet-card{padding:15px 28px 16px !important;margin:-28px -28px 20px}}@media (min-width: 48em){/*!@.medium .duet-card-heading*/.medium.sc-duet-card .duet-card-heading.sc-duet-card{padding:19px 36px 20px !important;margin:-36px -36px 28px}}/*!@.large .duet-card-heading*/.large.sc-duet-card .duet-card-heading.sc-duet-card{margin:-20px -20px 20px}@media (min-width: 36em){/*!@.large .duet-card-heading*/.large.sc-duet-card .duet-card-heading.sc-duet-card{padding:19px 36px 20px !important;margin:-36px -36px 28px}}@media (min-width: 48em){/*!@.large .duet-card-heading*/.large.sc-duet-card .duet-card-heading.sc-duet-card{padding:26px 48px 27px !important;margin:-48px -48px 36px}}/*!@.x-large .duet-card-heading*/.x-large.sc-duet-card .duet-card-heading.sc-duet-card{margin:-20px -20px 20px}@media (min-width: 36em){/*!@.x-large .duet-card-heading*/.x-large.sc-duet-card .duet-card-heading.sc-duet-card{padding:26px 48px 27px !important;margin:-48px -48px 36px}}@media (min-width: 48em){/*!@.x-large .duet-card-heading*/.x-large.sc-duet-card .duet-card-heading.sc-duet-card{padding:39px 72px 40px !important;margin:-72px -72px 48px}}/*!@.none .duet-card-heading*/.none.sc-duet-card .duet-card-heading.sc-duet-card{padding:0 0 20px !important;margin:0 0 20px}/*!@.duet-card-footer*/.duet-card-footer.sc-duet-card{padding:20px;margin:20px -20px -20px;font-size:0.875rem;line-height:1.25;background:#f5f8fa;border-bottom-right-radius:4px;border-bottom-left-radius:4px}/*!@.duet-theme-turva .duet-card-footer*/.duet-theme-turva.sc-duet-card .duet-card-footer.sc-duet-card{background:#f5f5f7}@media (min-width: 36em){/*!@.duet-card-footer*/.duet-card-footer.sc-duet-card{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){/*!@.duet-card-footer*/.duet-card-footer.sc-duet-card{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 36em){/*!@.x-small .duet-card-footer*/.x-small.sc-duet-card .duet-card-footer.sc-duet-card{padding:15px 28px 16px !important;padding-left:20px !important;margin:20px -20px -20px}}@media (min-width: 36em){/*!@.medium .duet-card-footer*/.medium.sc-duet-card .duet-card-footer.sc-duet-card{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){/*!@.medium .duet-card-footer*/.medium.sc-duet-card .duet-card-footer.sc-duet-card{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 36em){/*!@.large .duet-card-footer*/.large.sc-duet-card .duet-card-footer.sc-duet-card{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 48em){/*!@.large .duet-card-footer*/.large.sc-duet-card .duet-card-footer.sc-duet-card{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 36em){/*!@.x-large .duet-card-footer*/.x-large.sc-duet-card .duet-card-footer.sc-duet-card{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 48em){/*!@.x-large .duet-card-footer*/.x-large.sc-duet-card .duet-card-footer.sc-duet-card{padding:39px 72px 40px !important;margin:48px -72px -72px}}/*!@.none .duet-card-footer*/.none.sc-duet-card .duet-card-footer.sc-duet-card{padding:12px 0 !important;margin:20px 0 0}/*!@.duet-card-content*/.duet-card-content.sc-duet-card{width:100%}/*!@.duet-card-collapsed .duet-card-content*/.duet-card-collapsed.sc-duet-card .duet-card-content.sc-duet-card{display:none}/*!@.duet-card-caret*/.duet-card-caret.sc-duet-card{position:relative;top:6px;align-self:flex-start;transition:300ms ease}/*!@[aria-expanded=false] .duet-card-caret*/[aria-expanded=false].sc-duet-card .duet-card-caret.sc-duet-card{transform:rotate(-180deg)}/*!@.duet-card-image-mask*/.duet-card-image-mask.sc-duet-card{position:relative;width:calc(100% + 40px);margin:-20px 0 20px -20px;overflow:hidden;border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){/*!@.small .duet-card-image-mask*/.small.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 36em){/*!@.medium .duet-card-image-mask*/.medium.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 48em){/*!@.medium .duet-card-image-mask*/.medium.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 72px);margin:-36px 0 28px -36px}}@media (min-width: 36em){/*!@.large .duet-card-image-mask*/.large.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 72px);margin:-36px 0 36px -36px}}@media (min-width: 48em){/*!@.large .duet-card-image-mask*/.large.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 36em){/*!@.x-large .duet-card-image-mask*/.x-large.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 48em){/*!@.x-large .duet-card-image-mask*/.x-large.sc-duet-card .duet-card-image-mask.sc-duet-card{width:calc(100% + 144px);margin:-72px 0 36px -72px}}/*!@.none .duet-card-image-mask*/.none.sc-duet-card .duet-card-image-mask.sc-duet-card{width:100%;margin:0 0 20px}/*!@.duet-card-image*/.duet-card-image.sc-duet-card{display:block;width:102%;min-width:1px;max-width:102%;height:auto;min-height:1px;margin-left:-1%;transition:transform 300ms ease;transform:scale(1.0001)}/*!@a.duet-card*/a.duet-card.sc-duet-card{transition:box-shadow 300ms ease, background-position 300ms ease}/*!@a.duet-card:hover*/a.duet-card.sc-duet-card:hover{box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(0, 41, 77, 0.1)}/*!@a.duet-card:hover .duet-card-image*/a.duet-card.sc-duet-card:hover .duet-card-image.sc-duet-card{transform:scale(1.024)}/*!@.duet-theme-turva a.duet-card:hover*/.duet-theme-turva.sc-duet-card a.duet-card.sc-duet-card:hover{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(117, 117, 117, 0.15)}/*!@a.duet-card:active*/a.duet-card.sc-duet-card:active{transition:none;transform:translateY(1px)}";
6689
6700
 
6690
6701
  /**
6691
6702
  * @slot unnamed default slot - The component’s primary content. All child nodes that do not have a slot attribute defined are inserted into this primary slot.
6692
- * @slot below-header - Below header content.
6703
+ * @slot below-heading - Below heading content.
6693
6704
  * @slot footer - Footer content.
6694
6705
  */
6695
6706
  class DuetCard {
@@ -13013,6 +13024,304 @@ class DuetNumberInput {
13013
13024
  }; }
13014
13025
  }
13015
13026
 
13027
+ const shouldDisplayNavigation = (visibleItems, total, take) => {
13028
+ if (visibleItems * 2 > total / take) {
13029
+ return false;
13030
+ }
13031
+ return true;
13032
+ };
13033
+
13034
+ const duetPaginationCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-pagination,*.sc-duet-pagination::after,*.sc-duet-pagination::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-pagination-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}/*!@.duet-pagination-nav*/.duet-pagination-nav.sc-duet-pagination{position:relative}/*!@.duet-pagination, .duet-pagination li*/.duet-pagination.sc-duet-pagination,.duet-pagination.sc-duet-pagination li.sc-duet-pagination{display:flex;flex-wrap:wrap;gap:0.1rem;align-items:center}/*!@.duet-pagination-item-is-active .duet-pagination-page-number*/.duet-pagination-item-is-active.sc-duet-pagination .duet-pagination-page-number.sc-duet-pagination{border-bottom-color:inherit;border-bottom-style:solid;border-bottom-width:2px}/*!@.duet-pagination duet-button*/.duet-pagination.sc-duet-pagination duet-button.sc-duet-pagination{width:30px;min-width:36px;font-weight:600;text-decoration:none;border-left-width:0}/*!@.duet-pagination-overlay*/.duet-pagination-overlay.sc-duet-pagination{position:absolute;top:1rem;z-index:300;width:100%;text-align:center}/*!@.duet-pagination.duet-pagination-is-dimmed*/.duet-pagination.duet-pagination-is-dimmed.sc-duet-pagination{opacity:0.5}/*!@.duet-pagination-page-button*/.duet-pagination-page-button.sc-duet-pagination{white-space:nowrap}/*!@.duet-pagination-page-button button*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:auto !important;padding:0 !important;margin:0 0 0 8px !important;color:#00294d;cursor:pointer;background:#f5f8fa;border-radius:50%;transition:background-color 300ms ease !important}/*!@.duet-theme-turva .duet-pagination-page-button button*/.duet-theme-turva.sc-duet-pagination .duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination{color:#171c3a;background:#f5f5f7}/*!@.duet-pagination-page-button button duet-icon*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination duet-icon.sc-duet-pagination{display:block}@media (max-width: 35.9375em){/*!@.duet-pagination-page-button button*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination{width:40px;height:40px}}/*!@.duet-pagination-page-button button:not(:disabled):hover*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:not(:disabled):hover{background:#e9ecee !important}/*!@.duet-theme-turva .duet-pagination-page-button button:not(:disabled):hover*/.duet-theme-turva.sc-duet-pagination .duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:not(:disabled):hover{background:#e9e9eb !important}/*!@.duet-pagination-page-button button:focus*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:focus{outline:0;box-shadow:0 0 0 2px #0077b3}/*!@.duet-theme-turva .duet-pagination-page-button button:focus*/.duet-theme-turva.sc-duet-pagination .duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:focus{box-shadow:0 0 0 2px #171c3a}/*!@.duet-pagination-page-button button:active:focus*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:active:focus{background:#dddfe1;box-shadow:none}/*!@.duet-theme-turva .duet-pagination-page-button button:active:focus*/.duet-theme-turva.sc-duet-pagination .duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:active:focus{background:#ddddde}/*!@.duet-pagination-page-button button:disabled*/.duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}/*!@.duet-theme-turva .duet-pagination-page-button button:disabled*/.duet-theme-turva.sc-duet-pagination .duet-pagination-page-button.sc-duet-pagination button.sc-duet-pagination:disabled{color:#747475;background:#f5f5f7}";
13035
+
13036
+ class DuetPagination {
13037
+ constructor(hostRef) {
13038
+ registerInstance(this, hostRef);
13039
+ this.duetPageChange = createEvent$2(this, "duetPageChange", 3);
13040
+ this.listId = createID("duet-pagination-list");
13041
+ this.numbersStore = "";
13042
+ /**
13043
+ * State() variables
13044
+ * @internal
13045
+ */
13046
+ this.totalPages = 10;
13047
+ /**
13048
+ * State() variables
13049
+ * @internal
13050
+ */
13051
+ this.internalSectionIndex = 0;
13052
+ /**
13053
+ * Theme of the pagination.
13054
+ */
13055
+ this.theme = "";
13056
+ /**
13057
+ * Characters to use for the jump buttons.
13058
+ */
13059
+ this.jumpString = "...";
13060
+ /**
13061
+ * Default pagination labels
13062
+ */
13063
+ this.ariaLabelsDefaults = {
13064
+ en: {
13065
+ next_page: "Next page",
13066
+ previous_page: "Previous page",
13067
+ first_page: "First page",
13068
+ last_page: "Last page",
13069
+ jump_to: "Jump to page",
13070
+ go_to: "Go to page",
13071
+ description: "You may use arrow keys to select page number, or enter a page number when this element is in focus to jump to a page",
13072
+ pagination_label: "Pagination, choose a number to jump to a page",
13073
+ prev_section: "Show previous {0} page numbers, screen reader user should use arrowkeys to navigate",
13074
+ next_section: "Show next {0} page numbers, screen reader user should use arrowkeys to navigate",
13075
+ },
13076
+ fi: {
13077
+ next_page: "Seuraava sivu",
13078
+ previous_page: "Edellinen sivu",
13079
+ first_page: "Ensimmäinen sivu",
13080
+ last_page: "Viimeinen sivu",
13081
+ jump_to: "Siirry sivulle",
13082
+ go_to: "Siirry sivulle",
13083
+ description: "Voit käyttää nuolinäppäimiä sivunumeron valitsemiseen, tai kirjoittaa sivunumeron, jos tämä elementti on aktiivinen, siirtymään sivulle",
13084
+ pagination_label: "Sivutus, valitse sivunumero siirtyäksesi sivulle",
13085
+ prev_section: "Näytä edelliset {0} sivunumerot, käyttäjän pitää käyttää nuolinäppäimiä navigoidaksesi",
13086
+ next_section: "Näytä seuraavat {0} sivunumerot, käyttäjän pitää käyttää nuolinäppäimiä navigoidaksesi",
13087
+ },
13088
+ sv: {
13089
+ next_page: "Nästa sida",
13090
+ previous_page: "Föregående sida",
13091
+ first_page: "Första sidan",
13092
+ last_page: "Sista sidan",
13093
+ jump_to: "Hoppa till sida",
13094
+ go_to: "Hoppa till sida",
13095
+ description: "Du kan använda piltangenterna för att välja sida, eller skriva in sida när elementet är i fokus för att hoppa till en sida",
13096
+ pagination_label: "Sidutning, välj en siffra för att hoppa till en sida",
13097
+ prev_section: "Visa föregående {0} sidnummer, skrivbordsläsare ska använda piltangenterna för att navigera",
13098
+ next_section: "Visa nästa {0} sidnummer, skrivbordsläsare ska använda piltangenterna för att navigera",
13099
+ },
13100
+ };
13101
+ /**
13102
+ * Default pagination labels
13103
+ */
13104
+ this.ariaLabels = getLocaleString(this.ariaLabelsDefaults);
13105
+ /**
13106
+ * The size of the take, when paginating.
13107
+ */
13108
+ this.take = 5;
13109
+ /**
13110
+ * Amount of visible page numbers to show
13111
+ */
13112
+ this.visibleItems = 5;
13113
+ /**
13114
+ * The total size of the paginating data
13115
+ */
13116
+ this.total = 1000;
13117
+ /**
13118
+ * Used to indicate which dom element with ID this element controls
13119
+ */
13120
+ this.ariaControls = "";
13121
+ /**
13122
+ * The current page
13123
+ */
13124
+ this.current = 1;
13125
+ /**
13126
+ * Private methods.
13127
+ */
13128
+ // called from the watcher and used to make sure any changed to current also updates the internal section index
13129
+ this.actionChain = async (after, before) => {
13130
+ if (after === 0) {
13131
+ this.current = 1;
13132
+ }
13133
+ else if (before !== after) {
13134
+ const calculatedSectionIndex = Math.ceil(after / this.visibleItems) - 1;
13135
+ if (calculatedSectionIndex !== this.internalSectionIndex) {
13136
+ this.internalSectionIndex = calculatedSectionIndex;
13137
+ await this.setFocus();
13138
+ }
13139
+ }
13140
+ };
13141
+ //helper to emit relevant page events
13142
+ this.emitPageEvent = debounce((ev, passedPage) => {
13143
+ const page = Number(passedPage || this.current);
13144
+ this.duetPageChange.emit({
13145
+ component: "duet-pagination",
13146
+ from: page * this.take,
13147
+ to: page * this.take + this.take,
13148
+ current: page,
13149
+ take: this.take,
13150
+ type: "page",
13151
+ originalEvent: ev,
13152
+ });
13153
+ }, 500);
13154
+ // this will return the entered number, or the current page if the user presses enter
13155
+ this.getEnteredNumber = debounce(ev => {
13156
+ this.emitPageEvent(ev, this.numbersStore);
13157
+ this.current = Number(this.numbersStore);
13158
+ this.numbersStore = "";
13159
+ this.duetPageChange.emit({
13160
+ component: "duet-pagination",
13161
+ from: this.current * this.take,
13162
+ to: this.current * this.take + this.take,
13163
+ current: this.current,
13164
+ take: this.take,
13165
+ type: "jump",
13166
+ originalEvent: ev,
13167
+ });
13168
+ }, 500);
13169
+ }
13170
+ watchStateHandler(newValue, oldValue) {
13171
+ this.actionChain(newValue, oldValue);
13172
+ }
13173
+ /**
13174
+ * Component lifecycle events.
13175
+ */
13176
+ componentWillLoad() {
13177
+ // we want to keep the internal current index in sync with the current prop, but take advantage of the multiple with 0 for the first iteration
13178
+ this.internalSectionIndex = Math.ceil(this.current / this.visibleItems) - 1;
13179
+ this.calculatePageTake();
13180
+ inheritGlobalTheme(this);
13181
+ }
13182
+ componentWillRender() {
13183
+ if (this.internalSectionIndex !== 0 && this.internalSectionIndex !== this.totalPages) {
13184
+ this.calculatePageTake();
13185
+ }
13186
+ }
13187
+ componentDidRender() {
13188
+ this.setFocus();
13189
+ }
13190
+ //get totalpages from visible and total
13191
+ calculatePageTake() {
13192
+ this.totalPages = Math.ceil(this.total / this.take);
13193
+ }
13194
+ //set update current when mouse click on page number
13195
+ async onMouseHandler(e, dir) {
13196
+ e.preventDefault();
13197
+ e.stopPropagation();
13198
+ this.current = this.current + dir;
13199
+ }
13200
+ //handle a11y keyboard navigation events
13201
+ async onKeyboardDown(e) {
13202
+ let next = this.current;
13203
+ // handle a11y based keyboard navigation for left/right/up/down
13204
+ if (isArrowLeftKey(e) || isArrowUpKey(e)) {
13205
+ next--;
13206
+ }
13207
+ if (isArrowRightKey(e) || isArrowDownKey(e)) {
13208
+ next++;
13209
+ }
13210
+ if (isArrowKey(e)) {
13211
+ if (next <= this.totalPages) {
13212
+ this.current = next;
13213
+ this.emitPageEvent(e);
13214
+ }
13215
+ }
13216
+ //handle the jump feature, where numbers can be entered
13217
+ if (isNumber(e) && this.shouldDisplayNavigation()) {
13218
+ this.numbersStore = this.numbersStore + e.key;
13219
+ if (Number(this.numbersStore) > this.totalPages) {
13220
+ this.numbersStore = this.totalPages + "";
13221
+ }
13222
+ this.getEnteredNumber(e);
13223
+ }
13224
+ }
13225
+ // utility to set focus on active button
13226
+ async setFocus() {
13227
+ const currentDomElement = this.nativeNav.querySelector(`li.duet-pagination-item-is-active duet-button`);
13228
+ currentDomElement && (await currentDomElement.setFocus());
13229
+ }
13230
+ //handles click on page numbers
13231
+ pageClickHandler(e) {
13232
+ e.preventDefault();
13233
+ const clickedId = Number(e.target.getAttribute("data-id"));
13234
+ this.current = clickedId;
13235
+ this.emitPageEvent({}, clickedId);
13236
+ }
13237
+ //handles click on the next section buttons
13238
+ sectionClickHandler(e, direction) {
13239
+ e.preventDefault();
13240
+ let next = this.internalSectionIndex + direction;
13241
+ if (next >= this.totalPages / this.take) {
13242
+ next = this.totalPages / this.take - 1;
13243
+ }
13244
+ const newSection = next;
13245
+ this.internalSectionIndex = newSection >= 0 ? newSection : 0;
13246
+ }
13247
+ //handles click on the jump (1)button
13248
+ jumpToStart(e) {
13249
+ e.preventDefault();
13250
+ this.internalSectionIndex = 0;
13251
+ this.current = 1;
13252
+ }
13253
+ //handles click on the jump (total) button
13254
+ jumpToEnd(e) {
13255
+ e.preventDefault();
13256
+ this.internalSectionIndex = this.totalPages / this.take - 1;
13257
+ this.current = this.totalPages;
13258
+ }
13259
+ // render the individual page numbers
13260
+ renderPageNumbers() {
13261
+ const items = [];
13262
+ let i = this.internalSectionIndex * this.visibleItems;
13263
+ do {
13264
+ i++;
13265
+ if (i > this.totalPages) {
13266
+ break;
13267
+ }
13268
+ items.push(hAsync("li", { class: {
13269
+ "duet-pagination-item": true,
13270
+ "duet-pagination-item-is-active": i === this.current,
13271
+ }, role: "menuitem" }, hAsync("duet-button", { class: {
13272
+ "duet-pagination-link": true,
13273
+ }, color: i !== this.current ? "secondary" : "primary", "data-id": i, "center-text": true, variation: "plain", margin: "none", accessibleLabel: `${this.ariaLabels.go_to} ${i}`, onClick: e => this.pageClickHandler(e) }, hAsync("div", { class: "duet-pagination-page-number", "aria-hidden": true }, i))));
13274
+ } while (i < this.visibleItems + this.internalSectionIndex * this.visibleItems);
13275
+ return items;
13276
+ }
13277
+ shouldDisplayNavigation() {
13278
+ return shouldDisplayNavigation(this.visibleItems, this.total, this.take);
13279
+ }
13280
+ /**
13281
+ * render() function
13282
+ * Always the last one in the class.
13283
+ */
13284
+ render() {
13285
+ return (hAsync(Host, { onKeyDown: e => this.onKeyboardDown(e) }, hAsync("nav", { role: "navigation", class: "duet-pagination-nav", "aria-labelledby": this.listId, "aria-describedby": this.listId, ref: el => (this.nativeNav = el), "aria-controls": this.ariaControls }, this.numbersStore !== "" && (hAsync("div", { "aria-live": "assertive", "aria-relevant": "text", class: "duet-pagination-overlay", "aria-label": `${this.ariaLabels.jump_to} ${this.numbersStore}`, part: "navigation-overlay" }, hAsync("duet-badge", null, "jump to page : ", this.numbersStore))), hAsync("ol", { id: this.listId, class: {
13286
+ "duet-pagination": true,
13287
+ "duet-pagination-is-dimmed": this.numbersStore !== "",
13288
+ }, role: "menubar", "aria-label": this.ariaLabels.pagination_label, "aria-description": this.ariaLabels.description }, hAsync("li", { class: {
13289
+ "duet-pagination-page-button": true,
13290
+ "duet-pagination-button-first": true,
13291
+ }, role: "menuitem", part: "navigation-arrow" }, hAsync("button", { disabled: this.internalSectionIndex === 0 && this.current <= 1, "data-direction": "back", class: "duet-date-dialog-prev", type: "button", onClick: e => this.onMouseHandler(e, -1), "aria-label": this.ariaLabels.previous_page }, hAsync("duet-icon", { name: "action-arrow-left-small", color: "currentColor", margin: "none", size: "xx-small" }))), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (hAsync(Fragment, null, hAsync("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, hAsync("duet-button", { class: "duet-pagination-link", "center-text": "true", variation: "plain", color: "secondary", margin: "none", accessibleLabel: this.ariaLabels.first_page, onClick: e => this.jumpToStart(e) }, hAsync("div", { class: "duet-pagination-page-number" }, "1"))), hAsync("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, hAsync("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.ariaLabels.prev_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, -1) }, hAsync("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))))), this.renderPageNumbers(), this.internalSectionIndex !== this.totalPages / this.visibleItems - 1 && this.shouldDisplayNavigation() && (hAsync(Fragment, null, hAsync("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, hAsync("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.ariaLabels.next_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, 1) }, hAsync("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))), hAsync("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, hAsync("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.ariaLabels.last_page, onClick: e => this.jumpToEnd(e) }, hAsync("div", { class: "duet-pagination-page-number" }, this.totalPages))))), hAsync("li", { class: {
13292
+ "duet-pagination-page-button": true,
13293
+ "duet-pagination-button-last": true,
13294
+ }, role: "menuitem", part: "navigation-arrow" }, hAsync("button", { disabled: this.current === this.totalPages &&
13295
+ this.internalSectionIndex === Math.ceil(this.totalPages / this.visibleItems) - 1, class: "duet-date-dialog-next", type: "button", "aria-label": this.ariaLabels.next_page, onClick: e => this.onMouseHandler(e, 1) }, hAsync("duet-icon", { name: "action-arrow-right-small", color: "currentColor", margin: "none", size: "xx-small" })))))));
13296
+ }
13297
+ get element() { return getElement(this); }
13298
+ static get watchers() { return {
13299
+ "current": ["watchStateHandler"]
13300
+ }; }
13301
+ static get style() { return duetPaginationCss; }
13302
+ static get cmpMeta() { return {
13303
+ "$flags$": 9,
13304
+ "$tagName$": "duet-pagination",
13305
+ "$members$": {
13306
+ "theme": [1025],
13307
+ "jumpString": [1, "jump-string"],
13308
+ "ariaLabelsDefaults": [16],
13309
+ "ariaLabels": [16],
13310
+ "take": [1026],
13311
+ "visibleItems": [1026, "visible-items"],
13312
+ "total": [1026],
13313
+ "ariaControls": [1, "accessible-controls"],
13314
+ "current": [1026],
13315
+ "numbersStore": [32],
13316
+ "totalPages": [32],
13317
+ "internalSectionIndex": [32]
13318
+ },
13319
+ "$listeners$": undefined,
13320
+ "$lazyBundleId$": "-",
13321
+ "$attrsToReflect$": []
13322
+ }; }
13323
+ }
13324
+
13016
13325
  const duetParagraphCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-paragraph,*.sc-duet-paragraph::after,*.sc-duet-paragraph::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-paragraph-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:100%}/*!@.duet-paragraph*/.duet-paragraph.sc-duet-paragraph{margin-bottom:16px !important;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.5;color:#00294d}/*!@.duet-paragraph.duet-p-0*/.duet-paragraph.duet-p-0.sc-duet-paragraph{padding:0 !important}/*!@.duet-paragraph.duet-m-0*/.duet-paragraph.duet-m-0.sc-duet-paragraph{margin:0 !important}/*!@.duet-paragraph.duet-theme-turva*/.duet-paragraph.duet-theme-turva.sc-duet-paragraph{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}/*!@.duet-paragraph.duet-paragraph-small*/.duet-paragraph.duet-paragraph-small.sc-duet-paragraph{font-size:0.875rem}/*!@.duet-paragraph.duet-paragraph-semi-bold*/.duet-paragraph.duet-paragraph-semi-bold.sc-duet-paragraph{font-weight:600}/*!@.duet-paragraph.duet-paragraph-bold*/.duet-paragraph.duet-paragraph-bold.sc-duet-paragraph{font-weight:700}/*!@.duet-paragraph.duet-m-0*/.duet-paragraph.duet-m-0.sc-duet-paragraph{margin:0 !important}/*!@.duet-paragraph.intro*/.duet-paragraph.intro.sc-duet-paragraph{font-size:2.7vw;margin-bottom:28px !important;-webkit-hyphens:inherit;hyphens:inherit}@media (max-width: 37.037037037rem){/*!@.duet-paragraph.intro*/.duet-paragraph.intro.sc-duet-paragraph{font-size:1rem}}@media (min-width: 46.2962962963rem){/*!@.duet-paragraph.intro*/.duet-paragraph.intro.sc-duet-paragraph{font-size:1.25rem}}/*!@.duet-paragraph.intro.duet-m-0*/.duet-paragraph.intro.duet-m-0.sc-duet-paragraph{margin:0 !important}/*!@::slotted(a)*/.sc-duet-paragraph-s>a{font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:normal;font-weight:400;color:#0077b3;text-decoration:underline;transition:300ms ease}/*!@::slotted(a).duet-theme-turva*/.sc-duet-paragraph-s>a.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30}/*!@::slotted(a):hover*/.sc-duet-paragraph-s>a:hover{color:#004d80;text-decoration:none}/*!@::slotted(a):hover.duet-theme-turva*/.sc-duet-paragraph-s>a:hover.duet-theme-turva{color:#940925}/*!@::slotted(a):active*/.sc-duet-paragraph-s>a:active{opacity:0.75;transition:none}";
13017
13326
 
13018
13327
  /**
@@ -13654,6 +13963,176 @@ class DuetRangeSlider {
13654
13963
  }; }
13655
13964
  }
13656
13965
 
13966
+ const duetRangeStepperCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-range-stepper,*.sc-duet-range-stepper::after,*.sc-duet-range-stepper::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-range-stepper-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}/*!@.duet-range-stepper*/.duet-range-stepper.sc-duet-range-stepper{display:flex;flex-wrap:wrap;gap:0;align-items:baseline;justify-content:center;min-width:30px;min-height:30px;font-weight:600;text-decoration:none;border-left-width:0}/*!@.duet-range-stepper*/.duet-range-stepper.sc-duet-range-stepper{white-space:nowrap}/*!@.duet-range-stepper button*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:auto !important;padding:0 !important;margin:0 0 0 8px !important;color:#00294d;cursor:pointer;background:#f5f8fa;border-radius:50%;transition:background-color 300ms ease !important}/*!@.duet-theme-turva .duet-range-stepper button*/.duet-theme-turva.sc-duet-range-stepper .duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper{color:#171c3a;background:#f5f5f7}/*!@.duet-range-stepper button duet-icon*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper duet-icon.sc-duet-range-stepper{display:block}@media (max-width: 35.9375em){/*!@.duet-range-stepper button*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper{width:40px;height:40px}}/*!@.duet-range-stepper button:not(:disabled):hover*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:not(:disabled):hover{background:#e9ecee !important}/*!@.duet-theme-turva .duet-range-stepper button:not(:disabled):hover*/.duet-theme-turva.sc-duet-range-stepper .duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:not(:disabled):hover{background:#e9e9eb !important}/*!@.duet-range-stepper button:focus*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:focus{outline:0;box-shadow:0 0 0 2px #0077b3}/*!@.duet-theme-turva .duet-range-stepper button:focus*/.duet-theme-turva.sc-duet-range-stepper .duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:focus{box-shadow:0 0 0 2px #171c3a}/*!@.duet-range-stepper button:active:focus*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:active:focus{background:#dddfe1;box-shadow:none}/*!@.duet-theme-turva .duet-range-stepper button:active:focus*/.duet-theme-turva.sc-duet-range-stepper .duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:active:focus{background:#ddddde}/*!@.duet-range-stepper button:disabled*/.duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}/*!@.duet-theme-turva .duet-range-stepper button:disabled*/.duet-theme-turva.sc-duet-range-stepper .duet-range-stepper.sc-duet-range-stepper button.sc-duet-range-stepper:disabled{color:#747475;background:#f5f5f7}";
13967
+
13968
+ class DuetRangeStepper {
13969
+ constructor(hostRef) {
13970
+ registerInstance(this, hostRef);
13971
+ this.duetRangeStepUpdate = createEvent$2(this, "duetRangeStepUpdate", 7);
13972
+ this.leftBn = createID("duetRangeStepper-left");
13973
+ this.rightBn = createID("duetRangeStepper-right");
13974
+ /**
13975
+ * Theme of the component.
13976
+ */
13977
+ this.theme = "";
13978
+ /**
13979
+ * Start value
13980
+ * @default 1
13981
+ */
13982
+ this.stepIndex = 1;
13983
+ /**
13984
+ * How big is the step
13985
+ * @default 99
13986
+ */
13987
+ this.stepSize = 50;
13988
+ /**
13989
+ * Total of
13990
+ * @default undefined
13991
+ */
13992
+ this.total = 1000;
13993
+ /**
13994
+ * Default range stepper labels
13995
+ */
13996
+ this.ariaLabelsDefaults = {
13997
+ en: {
13998
+ next_increment: "Next range increment",
13999
+ previous_increment: "Previous range increment",
14000
+ x_of_y: "{0}–{1} of {2}",
14001
+ },
14002
+ fi: {
14003
+ next_increment: "Seuraava välillä",
14004
+ previous_increment: "Edellinen välillä",
14005
+ x_of_y: "{0}–{1} / {2}",
14006
+ },
14007
+ sv: {
14008
+ next_increment: "Nästa intervall",
14009
+ previous_increment: "Föregående intervall",
14010
+ x_of_y: "{0}–{1} av {2}",
14011
+ },
14012
+ };
14013
+ /**
14014
+ * Default pagination labels
14015
+ */
14016
+ this.ariaLabels = getLocaleString(this.ariaLabelsDefaults);
14017
+ /**
14018
+ * Used to indicate which dom element with ID this element controls
14019
+ */
14020
+ this.ariaControls = "";
14021
+ this.handleClick = (e, direction) => {
14022
+ e.preventDefault();
14023
+ this.increment(direction);
14024
+ this.handleStepClick(e);
14025
+ };
14026
+ }
14027
+ watchStateHandler(newValue) {
14028
+ if (newValue === 1) {
14029
+ this.leftBnRef.setAttribute("disabled", "");
14030
+ this.rightBnRef.focus();
14031
+ }
14032
+ else {
14033
+ this.leftBnRef.removeAttribute("disabled");
14034
+ }
14035
+ if (newValue === this.total / this.stepSize) {
14036
+ this.rightBnRef.setAttribute("disabled", "");
14037
+ this.leftBnRef.focus();
14038
+ }
14039
+ else {
14040
+ this.rightBnRef.removeAttribute("disabled");
14041
+ }
14042
+ }
14043
+ handleStepClick(e) {
14044
+ this.duetRangeStepUpdate.emit({
14045
+ originalEvent: e,
14046
+ component: "duet-range-stepper",
14047
+ from: this.stepIndex * this.stepSize - this.stepSize,
14048
+ to: this.stepIndex * this.stepSize,
14049
+ index: this.stepIndex,
14050
+ });
14051
+ }
14052
+ componentWillLoad() {
14053
+ inheritGlobalTheme(this);
14054
+ }
14055
+ componentDidLoad() {
14056
+ this.watchStateHandler(this.stepIndex);
14057
+ }
14058
+ increment(direction) {
14059
+ const newIndex = this.stepIndex + direction;
14060
+ if (newIndex <= 0) {
14061
+ this.stepIndex = 1;
14062
+ }
14063
+ else {
14064
+ if (newIndex * this.stepSize <= this.total) {
14065
+ this.stepIndex = newIndex;
14066
+ }
14067
+ }
14068
+ }
14069
+ generateStepSize() {
14070
+ // this function uses this.stepIndex and this.range to generate a range of number like 1-100
14071
+ // this is used to generate the step size
14072
+ let start = (this.stepIndex - 1) * this.stepSize;
14073
+ //easy fix for starting position
14074
+ if (start === 0) {
14075
+ start = 1;
14076
+ }
14077
+ const end = this.stepIndex * this.stepSize;
14078
+ return this.ariaLabels.x_of_y
14079
+ .replace("{0}", String(start))
14080
+ .replace("{1}", String(end))
14081
+ .replace("{2}", String(this.total));
14082
+ }
14083
+ //handle a11y keyboard navigation events
14084
+ async onKeyboardDown(e) {
14085
+ // handle a11y based keyboard navigation for left/right/up/down
14086
+ let next = this.stepIndex;
14087
+ let dir = 1;
14088
+ if (isArrowLeftKey(e) || isArrowUpKey(e) || isMinusKey(e)) {
14089
+ next--;
14090
+ dir = -1;
14091
+ this.leftBnRef.focus();
14092
+ }
14093
+ if (isArrowRightKey(e) || isArrowDownKey(e) || isPlusKey(e)) {
14094
+ next++;
14095
+ dir = 1;
14096
+ }
14097
+ if (isArrowKey(e)) {
14098
+ if (next > 0 && next * this.stepSize <= this.total) {
14099
+ this.handleClick(e, dir);
14100
+ }
14101
+ }
14102
+ }
14103
+ /**
14104
+ * render() function
14105
+ * Always the last one in the class.
14106
+ */
14107
+ render() {
14108
+ return (hAsync("div", { class: {
14109
+ "duet-range-stepper": true,
14110
+ "duet-theme-turva": this.theme === "turva",
14111
+ }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, hAsync("span", { class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), hAsync("button", { class: "duet-range-step-button duet-range-step-minus", type: "button", onClick: e => this.handleClick(e, -1), id: this.leftBn, "aria-label": this.ariaLabels.previous_increment, ref: el => (this.leftBnRef = el), part: "navigation-arrow" }, hAsync("duet-icon", { name: "action-arrow-left-small", color: "currentColor", margin: "none", size: "xx-small" })), hAsync("button", { class: "duet-range-step-button duet-range-step-plus", type: "button", onClick: e => this.handleClick(e, 1), "aria-label": this.ariaLabels.next_increment, id: this.rightBn, ref: el => (this.rightBnRef = el), part: "navigation-arrow" }, hAsync("duet-icon", { name: "action-arrow-right-small", color: "currentColor", margin: "none", size: "xx-small" }))));
14112
+ }
14113
+ get element() { return getElement(this); }
14114
+ static get watchers() { return {
14115
+ "stepIndex": ["watchStateHandler"]
14116
+ }; }
14117
+ static get style() { return duetRangeStepperCss; }
14118
+ static get cmpMeta() { return {
14119
+ "$flags$": 9,
14120
+ "$tagName$": "duet-range-stepper",
14121
+ "$members$": {
14122
+ "theme": [1025],
14123
+ "stepIndex": [1026, "step-index"],
14124
+ "stepSize": [2, "step-size"],
14125
+ "total": [2],
14126
+ "ariaLabelsDefaults": [16],
14127
+ "ariaLabels": [16],
14128
+ "ariaControls": [1, "accessible-controls"]
14129
+ },
14130
+ "$listeners$": undefined,
14131
+ "$lazyBundleId$": "-",
14132
+ "$attrsToReflect$": []
14133
+ }; }
14134
+ }
14135
+
13657
14136
  const duetScrollableCss = "/*!@*,\n*::after,\n*::before*/*.sc-duet-scrollable,*.sc-duet-scrollable::after,*.sc-duet-scrollable::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}/*!@:host*/.sc-duet-scrollable-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}/*!@:host*/.sc-duet-scrollable-h{position:relative !important}/*!@:host .duet-scrollable-items*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable{display:flex}/*!@:host .duet-scrollable-items .duet-scrollable-button*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-button.sc-duet-scrollable{position:relative;flex:0 0 auto;flex-basis:40px;padding:10px;cursor:pointer}/*!@:host .duet-scrollable-items .duet-scrollable-button:active*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-button.sc-duet-scrollable:active{transform:scale(0.8)}/*!@:host .duet-scrollable-items .duet-scrollable-button--left*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-button--left.sc-duet-scrollable{left:-12px}/*!@:host .duet-scrollable-items .duet-scrollable-button--right*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-button--right.sc-duet-scrollable{right:-12px}/*!@:host .duet-scrollable-items .duet-scrollable-button--occluded*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-button--occluded.sc-duet-scrollable{display:none}/*!@:host .duet-scrollable-items .duet-scrollable-list*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-list.sc-duet-scrollable{display:flex;flex-wrap:nowrap;gap:20px;padding-top:2px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scroll-snap-type:x mandatory;scroll-behavior:smooth;scroll-margin:0 20px;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}/*!@:host .duet-scrollable-items .duet-scrollable-list::-webkit-scrollbar*/.sc-duet-scrollable-h .duet-scrollable-items.sc-duet-scrollable .duet-scrollable-list.sc-duet-scrollable::-webkit-scrollbar{display:none}/*!@::slotted(*)*/.sc-duet-scrollable-s>*{scroll-snap-align:center;margin-left:0;-webkit-transition:-webkit-transform 0.2s ease-in-out;transition:-webkit-transform 0.2s ease-in-out;transition:transform 0.2s ease-in-out;transition:transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out}";
13658
14137
 
13659
14138
  class DuetScrollable {
@@ -13827,7 +14306,7 @@ class DuetScrollable {
13827
14306
  }; }
13828
14307
  }
13829
14308
 
13830
- const duetSelectCss = "@charset \"UTF-8\";*.sc-duet-select,*.sc-duet-select::after,*.sc-duet-select::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-select-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;width:100%;max-width:100%;vertical-align:bottom}.sc-duet-select-h:last-child,.sc-duet-select-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-select-h{width:calc(50% - 16px - 3px)}.duet-expand.sc-duet-select-h{width:100% !important}}.duet-m-0.sc-duet-select-h{margin:0 !important}duet-tooltip.sc-duet-select{position:absolute;top:12px;right:0}@media (min-width: 48em){duet-tooltip.sc-duet-select{position:relative;top:4px;right:auto}}.duet-select-placeholder.sc-duet-select{position:absolute;top:-9px;left:9px;z-index:200;display:block;width:auto;max-width:60%;padding:0 0.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:white}.duet-select-container.sc-duet-select{position:relative;width:100%}.duet-select-wrapper.sc-duet-select{position:relative;width:100%;padding:15px 14px !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.25}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-select-wrapper.sc-duet-select::after{content:\"  \"}.duet-select-wrapper.sc-duet-select select.sc-duet-select{position:absolute;top:0;right:0;bottom:0;left:0;z-index:200;width:100%;height:100%;padding:0;margin:0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;cursor:pointer;border:0;outline:none;opacity:0}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{border-color:#909599;box-shadow:0 0 0 1px #909599}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{border-color:#747475;box-shadow:0 0 0 1px #747475}.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #e02a0d}.duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{border-color:#0077b3;outline:0;box-shadow:0 0 0 1px #0077b3;transition:none}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{border-color:#171c3a;box-shadow:0 0 0 1px #171c3a}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#171c3a}.duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#0077b3}.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #e02a0d}.duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select{cursor:default !important}.duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select+.duet-select.sc-duet-select{color:#00294d !important;cursor:default !important;background:#f5f8fa !important;border-color:#f5f8fa !important;box-shadow:none !important;opacity:1 !important;-webkit-text-fill-color:#00294d !important}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select+.duet-select.sc-duet-select{color:#171c3a !important;background:#f5f5f7 !important;border-color:#f5f5f7 !important;-webkit-text-fill-color:#171c3a !important}.duet-select.sc-duet-select{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:block;width:100%;min-width:8rem;padding:12px 14px !important;padding-right:48px !important;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.5;color:#00294d;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:white;border:1px solid #909599;border-radius:4px;transition:150ms ease}.has-error.sc-duet-select .duet-select.sc-duet-select{border-color:#de2362 !important}.has-error.sc-duet-select .duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#de2362 !important}.duet-theme-turva.has-error.sc-duet-select .duet-select.sc-duet-select{border-color:#e02a0d !important}.duet-theme-turva.has-error.sc-duet-select .duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#e02a0d !important}.duet-theme-turva.sc-duet-select .duet-select.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#747475}.duet-select.sc-duet-select svg.sc-duet-select{position:absolute;top:50%;right:16px;z-index:200;width:20px;height:20px;color:#00294d;pointer-events:none;transform:translateY(-50%)}.duet-theme-turva.sc-duet-select .duet-select.sc-duet-select svg.sc-duet-select{color:#171c3a}.duet-select-help.sc-duet-select{display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:#657787;border-radius:4px}.duet-select-help.sc-duet-select span.sc-duet-select{display:block;margin-top:8px}.duet-theme-turva.sc-duet-select .duet-select-help.sc-duet-select{color:#747475}.has-error.sc-duet-select .duet-select-help.sc-duet-select{color:#de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-help.sc-duet-select{color:#e02a0d}.duet-label-hidden.sc-duet-select duet-label.sc-duet-select{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}";
14309
+ const duetSelectCss = "@charset \"UTF-8\";*.sc-duet-select,*.sc-duet-select::after,*.sc-duet-select::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-select-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;width:100%;max-width:100%;vertical-align:bottom}.sc-duet-select-h:last-child,.sc-duet-select-h:last-of-type{margin-right:0 !important}@media (min-width: 36em){.sc-duet-select-h{width:calc(50% - 16px - 3px)}.duet-expand.sc-duet-select-h{width:100% !important}}.duet-select-variation-tiny.sc-duet-select-h{position:relative;top:-2px;width:72px;margin:0 !important;vertical-align:baseline}.duet-m-0.sc-duet-select-h{margin:0 !important}duet-tooltip.sc-duet-select{position:absolute;top:12px;right:0}@media (min-width: 48em){duet-tooltip.sc-duet-select{position:relative;top:4px;right:auto}}.duet-select-placeholder.sc-duet-select{position:absolute;top:-9px;left:9px;z-index:200;display:block;width:auto;max-width:60%;padding:0 0.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:white}.duet-select-container.sc-duet-select{position:relative;width:100%}.duet-select-container.duet-select-variation-tiny.sc-duet-select{width:72px}.duet-select-wrapper.sc-duet-select{position:relative;width:100%;padding:15px 14px !important;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.25}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-select-variation-tiny.sc-duet-select .duet-select-wrapper.sc-duet-select{width:81px;padding:0 !important}.duet-select-wrapper.sc-duet-select::after{content:\"  \"}.duet-select-wrapper.sc-duet-select select.sc-duet-select{position:absolute;top:0;right:0;bottom:0;left:0;z-index:200;width:100%;height:100%;padding:0;margin:0;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;cursor:pointer;border:0;outline:none;opacity:0}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{border-color:#909599;box-shadow:0 0 0 1px #909599}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{border-color:#747475;box-shadow:0 0 0 1px #747475}.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:hover+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #e02a0d}.duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{border-color:#0077b3;outline:0;box-shadow:0 0 0 1px #0077b3;transition:none}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{border-color:#171c3a;box-shadow:0 0 0 1px #171c3a}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#171c3a}.duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#0077b3}.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-wrapper.sc-duet-select select.sc-duet-select:focus+.duet-select.sc-duet-select{box-shadow:0 0 0 1px #e02a0d}.duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select{cursor:default !important}.duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select+.duet-select.sc-duet-select{color:#00294d !important;cursor:default !important;background:#f5f8fa !important;border-color:#f5f8fa !important;box-shadow:none !important;opacity:1 !important;-webkit-text-fill-color:#00294d !important}.duet-theme-turva.sc-duet-select .duet-select-wrapper.sc-duet-select select[disabled].sc-duet-select+.duet-select.sc-duet-select{color:#171c3a !important;background:#f5f5f7 !important;border-color:#f5f5f7 !important;-webkit-text-fill-color:#171c3a !important}.duet-select.sc-duet-select{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:block;width:100%;min-width:8rem;padding:12px 14px !important;padding-right:48px !important;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.5;color:#00294d;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:white;border:1px solid #909599;border-radius:4px;transition:150ms ease}.has-error.sc-duet-select .duet-select.sc-duet-select{border-color:#de2362 !important}.has-error.sc-duet-select .duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#de2362 !important}.duet-theme-turva.has-error.sc-duet-select .duet-select.sc-duet-select{border-color:#e02a0d !important}.duet-theme-turva.has-error.sc-duet-select .duet-select.sc-duet-select .duet-select-icon.sc-duet-select{color:#e02a0d !important}.duet-theme-turva.sc-duet-select .duet-select.sc-duet-select{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#747475}.duet-select.sc-duet-select svg.sc-duet-select{position:absolute;top:50%;right:16px;z-index:200;width:20px;height:20px;color:#00294d;pointer-events:none;transform:translateY(-50%)}.duet-theme-turva.sc-duet-select .duet-select.sc-duet-select svg.sc-duet-select{color:#171c3a}.duet-select-variation-tiny.sc-duet-select .duet-select.sc-duet-select{width:72px;min-width:inherit;padding:0 !important;margin-bottom:-4px;overflow:visible;font-weight:600;text-align:center}.duet-select-variation-tiny.sc-duet-select .duet-select.sc-duet-select duet-icon.sc-duet-select{padding-left:10px}.duet-select-help.sc-duet-select{display:block;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:0.875rem;font-weight:400;line-height:1.25;color:#657787;border-radius:4px}.duet-select-help.sc-duet-select span.sc-duet-select{display:block;margin-top:8px}.duet-theme-turva.sc-duet-select .duet-select-help.sc-duet-select{color:#747475}.has-error.sc-duet-select .duet-select-help.sc-duet-select{color:#de2362}.duet-theme-turva.has-error.sc-duet-select .duet-select-help.sc-duet-select{color:#e02a0d}.duet-label-hidden.sc-duet-select duet-label.sc-duet-select{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}";
13831
14310
 
13832
14311
  function isOptionGroup(item) {
13833
14312
  return "options" in item;
@@ -13862,6 +14341,10 @@ class DuetSelect {
13862
14341
  * Inlined decorator, alphabetical order.
13863
14342
  */
13864
14343
  this.processedItems = null;
14344
+ /**
14345
+ * Variation of dropdown. -tiny is used for small numbers / tiny option ranges.
14346
+ */
14347
+ this.variation = "default";
13865
14348
  /**
13866
14349
  * Controls the margin of the component.
13867
14350
  */
@@ -13993,15 +14476,23 @@ class DuetSelect {
13993
14476
  */
13994
14477
  render() {
13995
14478
  const identifier = this.identifier || this.selectId;
13996
- return (hAsync(Host, { onClick: this.onClick, class: { "duet-m-0": this.margin === "none", "duet-expand": this.expand } }, hAsync("div", { class: {
14479
+ return (hAsync(Host, { onClick: this.onClick, class: {
14480
+ "duet-m-0": this.margin === "none",
14481
+ "duet-expand": this.expand,
14482
+ "duet-select-variation-tiny": this.variation === "tiny",
14483
+ } }, hAsync("div", { class: {
13997
14484
  "duet-select-container": true,
13998
14485
  "duet-label-hidden": this.labelHidden,
13999
14486
  "duet-theme-turva": this.theme === "turva",
14487
+ "duet-select-variation-tiny": this.variation === "tiny",
14000
14488
  "duet-input-top-caption-shown": this.isCaptionVisible,
14001
14489
  "has-error": !!this.error,
14002
14490
  } }, hAsync("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, 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-select-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (hAsync("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-select-placeholder", size: "small" }, this.placeholder)), hAsync("select", { ref: select => (this.nativeSelect = select), disabled: this.disabled, name: this.name, id: identifier, role: this.role, "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, required: this.required, "aria-describedby": this.accessibleDescribedBy }, this.placeholder && (hAsync("option", { disabled: true, selected: true, value: "" }, this.placeholder)), !this.processedItems ? (hAsync("option", null, "Virhe valintoja ladattaessa. P\u00E4ivit\u00E4 sivu ja kokeile uusiksi.")) : (this.processedItems.map(item => {
14003
14491
  return isOptionGroup(item) ? this.renderOptionGroup(item) : this.renderOption(item);
14004
- }))), hAsync("div", { class: "duet-select", "aria-hidden": "true" }, hAsync("span", { key: this.value }, this.getSelectedItemLabel()), hAsync("svg", { role: "img", class: "duet-select-icon", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { d: "m12 18.999c-.4 0-.776-.156-1.059-.438l-10.721-10.72c-.142-.142-.22-.33-.22-.531 0-.2.078-.389.22-.53.142-.142.33-.22.53-.22s.389.078.53.22l10.72 10.719 10.72-10.719c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.33.22.53s-.078.389-.22.53l-10.72 10.72c-.282.283-.659.439-1.06.439z" })))), hAsync("span", { class: "duet-select-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && hAsync("span", null, this.error)))));
14492
+ }))), hAsync("div", { class: {
14493
+ "duet-select": true,
14494
+ "duet-select-variation-tiny": this.variation === "tiny",
14495
+ }, "aria-hidden": "true" }, hAsync("span", { key: this.value }, this.getSelectedItemLabel()), this.variation !== "tiny" && (hAsync("svg", { role: "img", class: "duet-select-icon", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { d: "m12 18.999c-.4 0-.776-.156-1.059-.438l-10.721-10.72c-.142-.142-.22-.33-.22-.531 0-.2.078-.389.22-.53.142-.142.33-.22.53-.22s.389.078.53.22l10.72 10.719 10.72-10.719c.142-.142.33-.22.53-.22s.389.078.53.22c.142.142.22.33.22.53s-.078.389-.22.53l-10.72 10.72c-.282.283-.659.439-1.06.439z" }))), this.variation === "tiny" && (hAsync("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xx-small" })))), hAsync("span", { class: "duet-select-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && hAsync("span", null, this.error)))));
14005
14496
  }
14006
14497
  get element() { return getElement(this); }
14007
14498
  static get watchers() { return {
@@ -14013,6 +14504,7 @@ class DuetSelect {
14013
14504
  "$flags$": 2,
14014
14505
  "$tagName$": "duet-select",
14015
14506
  "$members$": {
14507
+ "variation": [1],
14016
14508
  "accessibleActiveDescendant": [1, "accessible-active-descendant"],
14017
14509
  "accessibleDescribedBy": [1, "accessible-described-by"],
14018
14510
  "margin": [1],
@@ -16877,11 +17369,13 @@ registerComponents([
16877
17369
  DuetNotification,
16878
17370
  DuetNotificationDrawer,
16879
17371
  DuetNumberInput,
17372
+ DuetPagination,
16880
17373
  DuetParagraph,
16881
17374
  DuetProgress,
16882
17375
  DuetRadio,
16883
17376
  DuetRadioGroup,
16884
17377
  DuetRangeSlider,
17378
+ DuetRangeStepper,
16885
17379
  DuetScrollable,
16886
17380
  DuetSelect,
16887
17381
  DuetSpacer,