@duetds/components 4.35.3 → 4.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/hydrate/index.js +517 -15
  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 +8 -3
  7. package/lib/cjs/duet-caption_4.cjs.entry.js +2 -2
  8. package/lib/cjs/duet-card.cjs.entry.js +3 -3
  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 +3 -3
  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 +2 -2
  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 +2 -2
  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 +3 -3
  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-5cc92935.js → focus-utils-dfd718e8.js} +1 -1
  45. package/lib/cjs/{index-f863de47.js → index-4f342f1c.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/cjs/{token-utils-05bd23b4.js → token-utils-f402e205.js} +9 -6
  50. package/lib/collection/collection-manifest.json +8 -0
  51. package/lib/collection/components/duet-button/duet-button.css +3 -0
  52. package/lib/collection/components/duet-button/duet-button.js +27 -0
  53. package/lib/collection/components/duet-card/duet-card.js +1 -1
  54. package/lib/collection/components/duet-collapsible/duet-collapsible.js +2 -1
  55. package/lib/collection/components/duet-pagination/duet-pagination-utils.js +9 -0
  56. package/lib/collection/components/duet-pagination/duet-pagination.css +120 -0
  57. package/lib/collection/components/duet-pagination/duet-pagination.js +511 -0
  58. package/lib/collection/components/duet-range-stepper/duet-range-stepper.css +100 -0
  59. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +342 -0
  60. package/lib/collection/components/duet-select/duet-select.css +26 -0
  61. package/lib/collection/components/duet-select/duet-select.js +39 -4
  62. package/lib/collection/components/duet-tab-group/duet-tab-group.js +5 -1
  63. package/lib/collection/utils/fixture-utils.js +0 -4
  64. package/lib/collection/utils/keyboard-utils.js +4 -0
  65. package/lib/collection/utils/test-utils.js +2 -1
  66. package/lib/collection/utils/token-utils.js +33 -6
  67. package/lib/custom-elements-bundle/index.d.ts +12 -0
  68. package/lib/custom-elements-bundle/index.js +482 -16
  69. package/lib/duet/duet.esm.js +1 -1
  70. package/lib/duet/duet.js +1 -1
  71. package/lib/duet/{p-4dee11c0.system.entry.js → p-0366552b.system.entry.js} +1 -1
  72. package/lib/duet/{p-c999b0a0.entry.js → p-03cf3ebf.entry.js} +1 -1
  73. package/lib/duet/{p-89b641c1.system.entry.js → p-05e2c680.system.entry.js} +1 -1
  74. package/lib/duet/{p-20770074.system.entry.js → p-061835f3.system.entry.js} +1 -1
  75. package/lib/duet/p-063fe96d.entry.js +4 -0
  76. package/lib/duet/{p-04db8923.system.entry.js → p-12941aef.system.entry.js} +2 -2
  77. package/lib/duet/{p-112ae31f.system.entry.js → p-164a7037.system.entry.js} +1 -1
  78. package/lib/duet/{p-5a5c0f82.entry.js → p-1a95aeb6.entry.js} +1 -1
  79. package/lib/duet/{p-719aa1cf.entry.js → p-1c4721a1.entry.js} +1 -1
  80. package/lib/duet/{p-999bd008.entry.js → p-1db7a35b.entry.js} +1 -1
  81. package/lib/duet/{p-a31b1d0c.entry.js → p-20cdb787.entry.js} +1 -1
  82. package/lib/duet/{p-e228c0a0.system.entry.js → p-210d739c.system.entry.js} +1 -1
  83. package/lib/duet/{p-4429cdb2.system.entry.js → p-211b4485.system.entry.js} +1 -1
  84. package/lib/duet/{p-e80b0c03.system.entry.js → p-22baf1f8.system.entry.js} +1 -1
  85. package/lib/duet/{p-3ae153aa.entry.js → p-2361986e.entry.js} +1 -1
  86. package/lib/duet/{p-4ca7a496.entry.js → p-24b9e806.entry.js} +1 -1
  87. package/lib/duet/{p-fc1e77a4.system.entry.js → p-286d2ad2.system.entry.js} +1 -1
  88. package/lib/duet/{p-f0732de0.entry.js → p-29255af8.entry.js} +1 -1
  89. package/lib/duet/p-2eeacf1a.entry.js +4 -0
  90. package/lib/duet/p-3547d108.entry.js +4 -0
  91. package/lib/duet/{p-264d0b24.system.entry.js → p-3900577d.system.entry.js} +1 -1
  92. package/lib/duet/p-396f1bdc.entry.js +4 -0
  93. package/lib/duet/{p-9bc2e0b8.system.entry.js → p-3bb702e3.system.entry.js} +2 -2
  94. package/lib/duet/{p-706eeb09.entry.js → p-3c3536be.entry.js} +1 -1
  95. package/lib/duet/{p-c5eddafe.entry.js → p-3d1b0105.entry.js} +1 -1
  96. package/lib/duet/{p-7582675a.entry.js → p-46ae601a.entry.js} +1 -1
  97. package/lib/duet/{p-b4869f24.system.entry.js → p-493c6d2f.system.entry.js} +1 -1
  98. package/lib/duet/p-4e2532c7.system.js +4 -0
  99. package/lib/duet/{p-756b56a6.system.entry.js → p-4fdbc6ff.system.entry.js} +1 -1
  100. package/lib/duet/{p-4da5cb97.entry.js → p-5376a9db.entry.js} +1 -1
  101. package/lib/duet/{p-9170b4c4.entry.js → p-562ae946.entry.js} +1 -1
  102. package/lib/duet/{p-d7daa7ef.entry.js → p-5b546064.entry.js} +1 -1
  103. package/lib/duet/{p-a4503985.entry.js → p-5d9affcd.entry.js} +1 -1
  104. package/lib/duet/{p-a0b7cb61.system.entry.js → p-615bfc61.system.entry.js} +1 -1
  105. package/lib/duet/{p-ef895424.system.entry.js → p-635dacce.system.entry.js} +1 -1
  106. package/lib/duet/{p-07e793a6.system.entry.js → p-65c418f7.system.entry.js} +2 -2
  107. package/lib/duet/{p-1d3f88a6.entry.js → p-740b5609.entry.js} +1 -1
  108. package/lib/duet/p-74780bca.system.js +4 -0
  109. package/lib/duet/{p-c8c7bc80.system.entry.js → p-79b9e7ef.system.entry.js} +1 -1
  110. package/lib/duet/{p-90f4de78.system.entry.js → p-7a32ceb3.system.entry.js} +1 -1
  111. package/lib/duet/{p-a04f385f.entry.js → p-7b55f33e.entry.js} +1 -1
  112. package/lib/duet/p-7e0e2209.system.entry.js +4 -0
  113. package/lib/duet/{p-d7c1efc6.entry.js → p-7f0e360d.entry.js} +1 -1
  114. package/lib/duet/p-81867417.system.js +4 -0
  115. package/lib/duet/p-83452e8f.entry.js +4 -0
  116. package/lib/duet/{p-02ab802f.entry.js → p-85100e09.entry.js} +1 -1
  117. package/lib/duet/p-898f30a5.js +4 -0
  118. package/lib/duet/p-89e42127.system.entry.js +4 -0
  119. package/lib/duet/{p-02eab9d4.system.entry.js → p-8c53bc24.system.entry.js} +1 -1
  120. package/lib/duet/{p-7f9cbd19.system.entry.js → p-946f34b4.system.entry.js} +1 -1
  121. package/lib/duet/{p-c43d44b5.entry.js → p-9ce0e625.entry.js} +1 -1
  122. package/lib/duet/{p-ec90489b.system.entry.js → p-9df321b3.system.entry.js} +1 -1
  123. package/lib/duet/{p-09f9d630.system.entry.js → p-a3d7951c.system.entry.js} +1 -1
  124. package/lib/duet/p-a619dff3.system.js +4 -0
  125. package/lib/duet/{p-b17db623.system.js → p-ad3dad04.system.js} +1 -1
  126. package/lib/duet/{p-31f570f2.entry.js → p-ae14591e.entry.js} +1 -1
  127. package/lib/duet/p-b25d3769.js +4 -0
  128. package/lib/duet/{p-b15511a2.entry.js → p-b6dd0933.entry.js} +1 -1
  129. package/lib/duet/{p-3c29aa52.entry.js → p-bf192d9f.entry.js} +1 -1
  130. package/lib/duet/{p-a644a5f9.entry.js → p-c18080ad.entry.js} +1 -1
  131. package/lib/duet/{p-8a682c91.entry.js → p-c2d32103.entry.js} +1 -1
  132. package/lib/duet/p-c514010b.system.entry.js +4 -0
  133. package/lib/duet/{p-b095e76c.system.entry.js → p-c52f4de0.system.entry.js} +1 -1
  134. package/lib/duet/{p-32385f42.system.entry.js → p-c6df2ea8.system.entry.js} +1 -1
  135. package/lib/duet/{p-9fc5f201.system.entry.js → p-c76a68aa.system.entry.js} +1 -1
  136. package/lib/duet/{p-6486519a.system.entry.js → p-c7fa7dcc.system.entry.js} +1 -1
  137. package/lib/duet/{p-3f1bfd32.entry.js → p-c8ec3b99.entry.js} +1 -1
  138. package/lib/duet/{p-5451cadc.system.entry.js → p-ca0ee655.system.entry.js} +1 -1
  139. package/lib/duet/p-cb445018.js +4 -0
  140. package/lib/duet/p-d12b3d21.system.entry.js +4 -0
  141. package/lib/duet/{p-4d7840ac.system.js → p-d21f19cc.system.js} +1 -1
  142. package/lib/duet/{p-da11a633.entry.js → p-d24c6bc1.entry.js} +1 -1
  143. package/lib/duet/{p-587a09a9.system.entry.js → p-d945a4b0.system.entry.js} +1 -1
  144. package/lib/duet/{p-eda12bb9.system.entry.js → p-d9716aec.system.entry.js} +1 -1
  145. package/lib/duet/p-dcaecb5e.js +4 -0
  146. package/lib/duet/{p-5c785f54.system.entry.js → p-ded33218.system.entry.js} +1 -1
  147. package/lib/duet/{p-1a3ae51a.entry.js → p-e35d8543.entry.js} +1 -1
  148. package/lib/duet/{p-bb79460f.system.entry.js → p-e47daca7.system.entry.js} +1 -1
  149. package/lib/duet/{p-d054d313.system.entry.js → p-e5ce7aad.system.entry.js} +1 -1
  150. package/lib/duet/p-e6a69eb8.js +4 -0
  151. package/lib/duet/{p-5af7b3cb.system.entry.js → p-e7b53f4f.system.entry.js} +1 -1
  152. package/lib/duet/{p-3629c104.system.entry.js → p-e7dd8a15.system.entry.js} +1 -1
  153. package/lib/duet/{p-54c57aed.system.entry.js → p-e8303364.system.entry.js} +1 -1
  154. package/lib/duet/{p-856e0c17.entry.js → p-e8e35258.entry.js} +1 -1
  155. package/lib/duet/{p-fcb1e479.system.entry.js → p-eb892975.system.entry.js} +1 -1
  156. package/lib/duet/{p-6ef7cbec.entry.js → p-ebc56043.entry.js} +1 -1
  157. package/lib/duet/{p-618cb809.entry.js → p-ef275410.entry.js} +1 -1
  158. package/lib/duet/p-ef4962e8.entry.js +4 -0
  159. package/lib/duet/{p-46e93e09.entry.js → p-f6da56c8.entry.js} +1 -1
  160. package/lib/duet/{p-01450526.entry.js → p-fae71c1f.entry.js} +1 -1
  161. package/lib/duet/{p-c0c14e42.entry.js → p-fd2211ab.entry.js} +1 -1
  162. package/lib/duet/{p-ff759fb3.entry.js → p-ff21f3c2.entry.js} +1 -1
  163. package/lib/duet/{p-b60ec55f.system.entry.js → p-ffb5fb75.system.entry.js} +1 -1
  164. package/lib/esm/duet-alert.entry.js +1 -1
  165. package/lib/esm/duet-badge.entry.js +1 -1
  166. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  167. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  168. package/lib/esm/duet-button_2.entry.js +8 -3
  169. package/lib/esm/duet-caption_4.entry.js +2 -2
  170. package/lib/esm/duet-card.entry.js +3 -3
  171. package/lib/esm/duet-checkbox.entry.js +1 -1
  172. package/lib/esm/duet-choice_2.entry.js +3 -3
  173. package/lib/esm/duet-collapsible.entry.js +3 -3
  174. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  175. package/lib/esm/duet-date-picker.entry.js +2 -2
  176. package/lib/esm/duet-divider_2.entry.js +1 -1
  177. package/lib/esm/duet-editable-table-button.entry.js +2 -2
  178. package/lib/esm/duet-editable-table_4.entry.js +2 -11
  179. package/lib/esm/duet-empty-state.entry.js +1 -1
  180. package/lib/esm/duet-fieldset.entry.js +1 -1
  181. package/lib/esm/duet-footer.entry.js +1 -1
  182. package/lib/esm/duet-grid_2.entry.js +1 -1
  183. package/lib/esm/duet-header_2.entry.js +2 -2
  184. package/lib/esm/duet-hero.entry.js +1 -1
  185. package/lib/esm/duet-icon.entry.js +2 -2
  186. package/lib/esm/duet-input_2.entry.js +1 -1
  187. package/lib/esm/duet-layout.entry.js +1 -1
  188. package/lib/esm/duet-list_2.entry.js +1 -1
  189. package/lib/esm/duet-modal.entry.js +3 -3
  190. package/lib/esm/duet-notification_2.entry.js +1 -1
  191. package/lib/esm/duet-number-input.entry.js +2 -2
  192. package/lib/esm/duet-pagination_2.entry.js +443 -0
  193. package/lib/esm/duet-progress.entry.js +1 -1
  194. package/lib/esm/duet-radio_2.entry.js +1 -1
  195. package/lib/esm/duet-range-slider.entry.js +1 -1
  196. package/lib/esm/duet-scrollable_3.entry.js +3 -3
  197. package/lib/esm/duet-select.entry.js +16 -4
  198. package/lib/esm/duet-step_2.entry.js +2 -2
  199. package/lib/esm/duet-textarea.entry.js +1 -1
  200. package/lib/esm/duet-toggle.entry.js +1 -1
  201. package/lib/esm/duet-tooltip.entry.js +1 -1
  202. package/lib/esm/duet-tray.entry.js +1 -1
  203. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  204. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  205. package/lib/esm/duet.js +2 -2
  206. package/lib/esm/{focus-utils-386eaef9.js → focus-utils-d4e80e1e.js} +1 -1
  207. package/lib/esm/{index-a22a5200.js → index-4a5e7664.js} +4 -1
  208. package/lib/esm/js-utils-b69f17df.js +14 -0
  209. package/lib/esm/{keyboard-utils-584cedd7.js → keyboard-utils-6eb55cd5.js} +5 -1
  210. package/lib/esm/loader.js +2 -2
  211. package/lib/esm/{token-utils-75f78ca4.js → token-utils-e9a69acf.js} +9 -6
  212. package/lib/esm-es5/duet-alert.entry.js +1 -1
  213. package/lib/esm-es5/duet-badge.entry.js +1 -1
  214. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  215. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  216. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  217. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  218. package/lib/esm-es5/duet-card.entry.js +1 -1
  219. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  220. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  221. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  222. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  223. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  224. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  225. package/lib/esm-es5/duet-editable-table-button.entry.js +1 -1
  226. package/lib/esm-es5/duet-editable-table_4.entry.js +2 -2
  227. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  228. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  229. package/lib/esm-es5/duet-footer.entry.js +1 -1
  230. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  231. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  232. package/lib/esm-es5/duet-hero.entry.js +1 -1
  233. package/lib/esm-es5/duet-icon.entry.js +1 -1
  234. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  235. package/lib/esm-es5/duet-layout.entry.js +1 -1
  236. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  237. package/lib/esm-es5/duet-modal.entry.js +1 -1
  238. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  239. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  240. package/lib/esm-es5/duet-pagination_2.entry.js +4 -0
  241. package/lib/esm-es5/duet-progress.entry.js +1 -1
  242. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  243. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  244. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  245. package/lib/esm-es5/duet-select.entry.js +2 -2
  246. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  247. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  248. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  249. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  250. package/lib/esm-es5/duet-tray.entry.js +1 -1
  251. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  252. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  253. package/lib/esm-es5/duet.js +1 -1
  254. package/lib/esm-es5/focus-utils-d4e80e1e.js +4 -0
  255. package/lib/esm-es5/{index-a22a5200.js → index-4a5e7664.js} +1 -1
  256. package/lib/esm-es5/js-utils-b69f17df.js +4 -0
  257. package/lib/esm-es5/keyboard-utils-6eb55cd5.js +4 -0
  258. package/lib/esm-es5/loader.js +1 -1
  259. package/lib/esm-es5/token-utils-e9a69acf.js +4 -0
  260. package/lib/html.html-data.json +5166 -0
  261. package/lib/types/components/duet-button/duet-button.d.ts +5 -0
  262. package/lib/types/components/duet-card/duet-card.d.ts +1 -1
  263. package/lib/types/components/duet-collapsible/duet-collapsible.d.ts +1 -0
  264. package/lib/types/components/duet-pagination/duet-pagination-utils.d.ts +1 -0
  265. package/lib/types/components/duet-pagination/duet-pagination.d.ts +100 -0
  266. package/lib/types/components/duet-range-stepper/duet-range-stepper.d.ts +70 -0
  267. package/lib/types/components/duet-select/duet-select.d.ts +5 -0
  268. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +4 -0
  269. package/lib/types/components.d.ts +188 -2
  270. package/lib/types/utils/keyboard-utils.d.ts +4 -0
  271. package/lib/types/utils/token-utils.d.ts +2 -0
  272. package/package.json +5 -5
  273. package/lib/duet/p-04f9f1bf.js +0 -4
  274. package/lib/duet/p-2a8c607e.entry.js +0 -4
  275. package/lib/duet/p-3c2ab6eb.js +0 -4
  276. package/lib/duet/p-4ce0bc2c.entry.js +0 -4
  277. package/lib/duet/p-50b4fb2c.js +0 -4
  278. package/lib/duet/p-52d7ffa5.entry.js +0 -4
  279. package/lib/duet/p-5846949a.system.entry.js +0 -4
  280. package/lib/duet/p-5c73e005.entry.js +0 -4
  281. package/lib/duet/p-7464e383.system.entry.js +0 -4
  282. package/lib/duet/p-89cc645f.entry.js +0 -4
  283. package/lib/duet/p-9fa468bc.system.entry.js +0 -4
  284. package/lib/duet/p-a16a58c1.system.js +0 -4
  285. package/lib/duet/p-ad3a1685.system.js +0 -4
  286. package/lib/duet/p-bb12b972.system.js +0 -4
  287. package/lib/duet/p-c1731f1a.js +0 -4
  288. package/lib/esm-es5/focus-utils-386eaef9.js +0 -4
  289. package/lib/esm-es5/keyboard-utils-584cedd7.js +0 -4
  290. package/lib/esm-es5/token-utils-75f78ca4.js +0 -4
@@ -2,7 +2,7 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  const NAMESPACE = 'duet';
5
- const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.2.14"};
5
+ const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.2.17"};
6
6
 
7
7
  let scopeId;
8
8
  let contentRef;
@@ -1165,6 +1165,9 @@ const postUpdateComponent = (hostRef) => {
1165
1165
  const endPostUpdate = createTime('postUpdate', tagName);
1166
1166
  const instance = elm;
1167
1167
  const ancestorComponent = hostRef.$ancestorComponent$;
1168
+ {
1169
+ safeCall(instance, 'componentDidRender');
1170
+ }
1168
1171
  if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {
1169
1172
  hostRef.$flags$ |= 64 /* hasLoadedComponent */;
1170
1173
  {
@@ -2364,12 +2367,15 @@ function getTheme(theme = "") {
2364
2367
  }
2365
2368
  return "";
2366
2369
  }
2367
- function hasColor(str = "") {
2368
- return str.indexOf("Color") === 0 || str.indexOf("color") === 0;
2370
+ function capitalizeFirstLetter(string) {
2371
+ return string.charAt(0).toUpperCase() + string.slice(1);
2372
+ }
2373
+ function hasType(t, str = "") {
2374
+ return str.indexOf(capitalizeFirstLetter(t)) === 0 || str.indexOf(t) === 0;
2369
2375
  }
2370
- function addColor(str = "") {
2371
- if (str && !isDashCase(str) && !hasColor(str)) {
2372
- return `color${capitalize(str)}`;
2376
+ function addPrefix(prefix, str = "") {
2377
+ if (str && !isDashCase(str) && !hasType(prefix, str)) {
2378
+ return `${prefix}${capitalize(str)}`;
2373
2379
  }
2374
2380
  return str;
2375
2381
  }
@@ -2399,14 +2405,14 @@ function convertToColorName(name = "", theme = "") {
2399
2405
  if (dash) {
2400
2406
  colorResolution = camelize(colorResolution);
2401
2407
  }
2402
- colorResolution = addColor(colorResolution);
2408
+ colorResolution = addPrefix("color", colorResolution);
2403
2409
  colorResolution = addTheme(colorResolution, theme);
2404
2410
  // takes care of the case where colorPrimaryDark ends up with ColorPrimaryDark
2405
2411
  colorResolution = lowerCaseFirst(colorResolution);
2406
2412
  return colorResolution;
2407
2413
  }
2408
2414
 
2409
- const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}:host:last-child,:host:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.duet-small){margin-right:2px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host(.duet-small){width:auto}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;width:100%}.duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}.duet-button.duet-p-0{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon{padding-left:48px !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}.duet-theme-turva .duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}.duet-button .duet-button-contents{position:relative;display:inline-block;margin:0 auto;pointer-events:none}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button.icon{padding-left:52px !important}.duet-button.icon-right{padding-right:52px !important;padding-left:28px !important}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}.duet-button .duet-button-icon duet-icon{width:16px;height:16px}.duet-button .duet-button-icon.right{right:-28px;left:auto}.duet-button .duet-button-icon.large{left:-32px;width:20px;height:20px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.large.right{right:-32px;left:auto}.duet-button .duet-button-icon.medium-small{left:-16px;width:10px;height:10px;padding-top:1px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.medium-small.right{right:-16px;left:auto}.duet-button .duet-button-icon.small{left:-16px;width:7px;height:7px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button .duet-button-icon.small.right{right:-16px;left:auto}.duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-button:active{opacity:0.75;transition:none}.duet-button.default{border-color:#e1e3e6}.duet-theme-turva .duet-button.default{color:#c60c30 !important;border-color:#e4e4e6}.duet-button.default:hover{border-color:#0077b3}.duet-theme-turva .duet-button.default:hover{border-color:#c60c30}.duet-button.default.duet-button-negative{background-color:white}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:#e4e4e6 !important}.duet-button.default.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.primary{color:white !important;background:#0077b3;border-color:#0077b3}.duet-theme-turva .duet-button.primary{color:white !important;background:#c60c30;border-color:#c60c30}.duet-button.primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.primary:hover{background:#940925;border-color:#940925}.duet-button.primary:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}.duet-theme-turva .duet-button.primary:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}.duet-button.secondary{color:#00294d !important;background:transparent;border-color:#00294d}.duet-theme-turva .duet-button.secondary{color:#171c3a !important;border-color:#171c3a}.duet-button.secondary:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.secondary.duet-button-negative{color:#e1e3e6 !important;border-color:white}.duet-theme-turva .duet-button.secondary.duet-button-negative{color:#e4e4e6 !important}.duet-button.secondary.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.negative{color:#00294d !important;background:white;border-color:white}.duet-theme-turva .duet-button.negative{color:#171c3a !important}.duet-button.negative:hover{color:white !important;background:transparent;border-color:white}.duet-button.negative:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-theme-turva .duet-button.negative:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-button.destructive-primary{color:white !important;background:#de2362;border-color:#de2362}.duet-theme-turva .duet-button.destructive-primary{color:white !important;background:#e02a0d;border-color:#e02a0d}.duet-button.destructive-primary:hover{background:#b21c4e;border-color:#b21c4e;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.destructive-primary:hover{background:#b3220a}.duet-button.destructive,.duet-button.destructive-secondary{color:#de2362 !important;background:white;border-color:#de2362}.duet-theme-turva .duet-button.destructive,.duet-theme-turva .duet-button.destructive-secondary{color:#e02a0d !important;background:white;border-color:#e02a0d}.duet-button.destructive:hover,.duet-button.destructive-secondary:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}.duet-theme-turva .duet-button.destructive:hover,.duet-theme-turva .duet-button.destructive-secondary:hover{color:white !important;background:#b3220a;border-color:#b3220a}.duet-button.plain{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}.duet-theme-turva .duet-button.plain{color:#c60c30 !important;background:transparent;border-color:transparent}.duet-button.plain.icon{padding-left:20px !important}.duet-button.plain.icon.icon-right{padding-right:20px !important;padding-left:0 !important}.duet-button.plain.icon.medium{padding-left:24px !important}.duet-button.plain.icon.medium.icon-right{padding-right:24px !important;padding-left:0 !important}.duet-button.plain.icon.large{padding-left:30px !important}.duet-button.plain.icon.large.icon-right{padding-right:30px !important;padding-left:0 !important}.duet-button.plain .duet-button-icon.left{left:-16.6666666667px !important}.duet-button.plain .duet-button-icon.left.medium{left:-24px !important}.duet-button.plain .duet-button-icon.left.large{left:-30px !important}.duet-button.plain .duet-button-icon.right{right:-16.6666666667px !important}.duet-button.plain .duet-button-icon.right.medium{right:-24px !important}.duet-button.plain .duet-button-icon.right.large{right:-30px !important}.duet-button.plain[disabled]{color:#657787 !important;background:transparent !important;border-color:transparent !important}.duet-theme-turva .duet-button.plain[disabled]{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}.duet-button.plain:hover{color:#004d80 !important;background:transparent !important}.duet-theme-turva .duet-button.plain:hover{color:#940925 !important}.duet-button.plain.duet-button-negative{color:white !important}.duet-theme-turva .duet-button.plain.duet-button-negative{color:#e4e4e6 !important}.duet-button.plain.duet-button-negative:hover{color:#0077b3 !important}.duet-theme-turva .duet-button.plain.duet-button-negative:hover{color:#c60c30 !important}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button[disabled],.duet-button[disabled]:hover,.duet-button.duet-button-negative[disabled],.duet-button.duet-button-negative[disabled]:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}.duet-theme-turva .duet-button[disabled],.duet-theme-turva .duet-button[disabled]:hover,.duet-theme-turva .duet-button.duet-button-negative [disabled],.duet-theme-turva .duet-button.duet-button-negative [disabled]:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-button-is-loading.primary{color:white}.duet-button-is-loading.default{color:#0077b3}.duet-button-is-loading.default.duet-theme-turva{color:#c60c30}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}";
2415
+ const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}:host:last-child,:host:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.duet-small){margin-right:2px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host(.duet-small){width:auto}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;width:100%}.duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}.duet-button.duet-p-0{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button.duet-button-text-center{text-align:center !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon{padding-left:48px !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}.duet-theme-turva .duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}.duet-button .duet-button-contents{position:relative;display:inline-block;margin:0 auto;pointer-events:none}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button.icon{padding-left:52px !important}.duet-button.icon-right{padding-right:52px !important;padding-left:28px !important}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}.duet-button .duet-button-icon duet-icon{width:16px;height:16px}.duet-button .duet-button-icon.right{right:-28px;left:auto}.duet-button .duet-button-icon.large{left:-32px;width:20px;height:20px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.large.right{right:-32px;left:auto}.duet-button .duet-button-icon.medium-small{left:-16px;width:10px;height:10px;padding-top:1px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.medium-small.right{right:-16px;left:auto}.duet-button .duet-button-icon.small{left:-16px;width:7px;height:7px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button .duet-button-icon.small.right{right:-16px;left:auto}.duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-button:active{opacity:0.75;transition:none}.duet-button.default{border-color:#e1e3e6}.duet-theme-turva .duet-button.default{color:#c60c30 !important;border-color:#e4e4e6}.duet-button.default:hover{border-color:#0077b3}.duet-theme-turva .duet-button.default:hover{border-color:#c60c30}.duet-button.default.duet-button-negative{background-color:white}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:#e4e4e6 !important}.duet-button.default.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.primary{color:white !important;background:#0077b3;border-color:#0077b3}.duet-theme-turva .duet-button.primary{color:white !important;background:#c60c30;border-color:#c60c30}.duet-button.primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.primary:hover{background:#940925;border-color:#940925}.duet-button.primary:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}.duet-theme-turva .duet-button.primary:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}.duet-button.secondary{color:#00294d !important;background:transparent;border-color:#00294d}.duet-theme-turva .duet-button.secondary{color:#171c3a !important;border-color:#171c3a}.duet-button.secondary:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.secondary.duet-button-negative{color:#e1e3e6 !important;border-color:white}.duet-theme-turva .duet-button.secondary.duet-button-negative{color:#e4e4e6 !important}.duet-button.secondary.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.negative{color:#00294d !important;background:white;border-color:white}.duet-theme-turva .duet-button.negative{color:#171c3a !important}.duet-button.negative:hover{color:white !important;background:transparent;border-color:white}.duet-button.negative:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-theme-turva .duet-button.negative:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-button.destructive-primary{color:white !important;background:#de2362;border-color:#de2362}.duet-theme-turva .duet-button.destructive-primary{color:white !important;background:#e02a0d;border-color:#e02a0d}.duet-button.destructive-primary:hover{background:#b21c4e;border-color:#b21c4e;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.destructive-primary:hover{background:#b3220a}.duet-button.destructive,.duet-button.destructive-secondary{color:#de2362 !important;background:white;border-color:#de2362}.duet-theme-turva .duet-button.destructive,.duet-theme-turva .duet-button.destructive-secondary{color:#e02a0d !important;background:white;border-color:#e02a0d}.duet-button.destructive:hover,.duet-button.destructive-secondary:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}.duet-theme-turva .duet-button.destructive:hover,.duet-theme-turva .duet-button.destructive-secondary:hover{color:white !important;background:#b3220a;border-color:#b3220a}.duet-button.plain{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}.duet-theme-turva .duet-button.plain{color:#c60c30 !important;background:transparent;border-color:transparent}.duet-button.plain.icon{padding-left:20px !important}.duet-button.plain.icon.icon-right{padding-right:20px !important;padding-left:0 !important}.duet-button.plain.icon.medium{padding-left:24px !important}.duet-button.plain.icon.medium.icon-right{padding-right:24px !important;padding-left:0 !important}.duet-button.plain.icon.large{padding-left:30px !important}.duet-button.plain.icon.large.icon-right{padding-right:30px !important;padding-left:0 !important}.duet-button.plain .duet-button-icon.left{left:-16.6666666667px !important}.duet-button.plain .duet-button-icon.left.medium{left:-24px !important}.duet-button.plain .duet-button-icon.left.large{left:-30px !important}.duet-button.plain .duet-button-icon.right{right:-16.6666666667px !important}.duet-button.plain .duet-button-icon.right.medium{right:-24px !important}.duet-button.plain .duet-button-icon.right.large{right:-30px !important}.duet-button.plain[disabled]{color:#657787 !important;background:transparent !important;border-color:transparent !important}.duet-theme-turva .duet-button.plain[disabled]{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}.duet-button.plain:hover{color:#004d80 !important;background:transparent !important}.duet-theme-turva .duet-button.plain:hover{color:#940925 !important}.duet-button.plain.duet-button-negative{color:white !important}.duet-theme-turva .duet-button.plain.duet-button-negative{color:#e4e4e6 !important}.duet-button.plain.duet-button-negative:hover{color:#0077b3 !important}.duet-theme-turva .duet-button.plain.duet-button-negative:hover{color:#c60c30 !important}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button[disabled],.duet-button[disabled]:hover,.duet-button.duet-button-negative[disabled],.duet-button.duet-button-negative[disabled]:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}.duet-theme-turva .duet-button[disabled],.duet-theme-turva .duet-button[disabled]:hover,.duet-theme-turva .duet-button.duet-button-negative [disabled],.duet-theme-turva .duet-button.duet-button-negative [disabled]:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-button-is-loading.primary{color:white}.duet-button-is-loading.default{color:#0077b3}.duet-button-is-loading.default.duet-theme-turva{color:#c60c30}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}";
2410
2416
 
2411
2417
  let DuetButton$1 = class extends H {
2412
2418
  constructor() {
@@ -2441,6 +2447,10 @@ let DuetButton$1 = class extends H {
2441
2447
  * Controls the padding of the component.
2442
2448
  */
2443
2449
  this.padding = "auto";
2450
+ /**
2451
+ * Centers the text of a button
2452
+ */
2453
+ this.centerText = false;
2444
2454
  /**
2445
2455
  * Controls the text wrapping.
2446
2456
  */
@@ -2605,6 +2615,7 @@ let DuetButton$1 = class extends H {
2605
2615
  "duet-button": true,
2606
2616
  "duet-button-is-small": this.size === "small",
2607
2617
  "duet-button-icon-only": this.iconOnly,
2618
+ "duet-button-text-center": this.centerText,
2608
2619
  "duet-button-negative": this.negative || this.variation === "negative",
2609
2620
  [this.variation]: true,
2610
2621
  disabled: this.disabled,
@@ -2701,12 +2712,16 @@ const isArrowLeftKey = (e) => e.keyCode === 37;
2701
2712
  const isArrowUpKey = (e) => e.keyCode === 38;
2702
2713
  const isArrowRightKey = (e) => e.keyCode === 39;
2703
2714
  const isArrowDownKey = (e) => e.keyCode === 40;
2715
+ const isArrowKey = (e) => isArrowDownKey(e) || isArrowRightKey(e) || isArrowUpKey(e) || isArrowLeftKey(e);
2704
2716
  const isEscapeKey = (e) => e.key === "Escape" || e.key === "Esc" || e.keyCode === 27;
2705
2717
  const isBackspaceKey = (e) => e.keyCode === 8;
2706
2718
  const isSpaceKey = (e) => e.key === "Space" || e.keyCode === 32;
2719
+ const isPlusKey = (e) => e.key === "+" || e.keyCode === 43;
2720
+ const isMinusKey = (e) => e.key === "-" || e.keyCode === 45;
2707
2721
  const isQuestionKey = (e) => e.key === "?";
2708
2722
  const isEnterKey = (e) => e.key === "Enter" || e.keyCode === 13;
2709
2723
  const isKeyboardClick = (e) => isEnterKey(e) || isSpaceKey(e);
2724
+ const isNumber = (e) => (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105);
2710
2725
 
2711
2726
  const duetCardCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:20px !important;display:flex;width:100%;vertical-align:top}:host(.duet-card-info){margin-bottom:16px !important}:host(.duet-m-0){margin:0 !important}.duet-card{padding:20px !important;position:relative;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;line-height:1.5;color:#00294d;text-decoration:none;border-radius:4px;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}.duet-card.duet-p-0{padding:0 !important}.duet-card.duet-m-0{margin:0 !important}.duet-card:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-card:focus,.duet-card:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 36em){.duet-card{padding:28px !important}}.duet-card.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}@media (min-width: 36em){.duet-card.x-small{padding:20px !important}}@media (min-width: 36em){.duet-card.medium{padding:28px !important}}@media (min-width: 48em){.duet-card.medium{padding:36px !important}}@media (min-width: 36em){.duet-card.large{padding:36px !important}}@media (min-width: 48em){.duet-card.large{padding:48px !important}}@media (min-width: 36em){.duet-card.x-large{padding:48px !important}}@media (min-width: 48em){.duet-card.x-large{padding:72px !important}}.duet-card.duet-card-collapsed{padding-bottom:0 !important}@media (min-width: 36em){.duet-card.duet-card-collapsed{padding-bottom:0 !important}}.duet-card.info{background:rgba(0, 80, 128, 0.04) !important;box-shadow:none}.duet-card.info.duet-theme-turva{background:rgba(23, 28, 58, 0.035) !important}.duet-card.plain{box-shadow:none}.duet-card.plain:not(.duet-card-has-bg){background:transparent !important}.duet-card-heading-grid{display:flex;flex-direction:row}.duet-card-icon{align-self:center}.duet-card-heading-text{flex:1;word-break:break-word}.duet-card-secondary-heading{font-size:1rem;font-weight:600;word-break:break-word}.duet-card-secondary-heading--inline{display:block;flex:1;align-self:flex-start;line-height:1.875;text-align:right}@media (max-width: 22.5em){.duet-card-secondary-heading--inline{display:none}}.duet-card-secondary-heading--new-line{display:none}@media (max-width: 22.5em){.duet-card-secondary-heading--new-line{display:block}}.duet-card-heading{position:relative;display:block;padding:16px 20px;margin:-20px -20px 20px;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1.25rem;font-weight:800;color:#00294d;border-bottom:1px solid #e1e3e6}@media (min-width: 36em){.duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}}.duet-card-heading[role=button]{-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:4px;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;appearance:none}.duet-card-heading[role=button]:focus{outline:0}:host(.user-is-tabbing) .duet-card-heading[role=button]:focus{border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-card-heading[role=button]:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-card-collapsed .duet-card-heading{margin-bottom:0 !important;border-bottom:0 !important}.duet-theme-turva .duet-card-heading{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#e4e4e6}@media (min-width: 36em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}@media (min-width: 48em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}.medium .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.medium .duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}}@media (min-width: 48em){.medium .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}.large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.large .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}@media (min-width: 48em){.large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}.x-large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.x-large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}@media (min-width: 48em){.x-large .duet-card-heading{padding:39px 72px 40px !important;margin:-72px -72px 48px}}.none .duet-card-heading{padding:0 0 20px !important;margin:0 0 20px}.duet-card-footer{padding:20px;margin:20px -20px -20px;font-size:0.875rem;line-height:1.25;background:#f5f8fa;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.duet-theme-turva .duet-card-footer{background:#f5f5f7}@media (min-width: 36em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 36em){.x-small .duet-card-footer{padding:15px 28px 16px !important;padding-left:20px !important;margin:20px -20px -20px}}@media (min-width: 36em){.medium .duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.medium .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 36em){.large .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 48em){.large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 36em){.x-large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 48em){.x-large .duet-card-footer{padding:39px 72px 40px !important;margin:48px -72px -72px}}.none .duet-card-footer{padding:12px 0 !important;margin:20px 0 0}.duet-card-content{width:100%}.duet-card-collapsed .duet-card-content{display:none}.duet-card-caret{position:relative;top:6px;align-self:flex-start;transition:300ms ease}[aria-expanded=false] .duet-card-caret{transform:rotate(-180deg)}.duet-card-image-mask{position:relative;width:calc(100% + 40px);margin:-20px 0 20px -20px;overflow:hidden;border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){.small .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 36em){.medium .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 48em){.medium .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 28px -36px}}@media (min-width: 36em){.large .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 36px -36px}}@media (min-width: 48em){.large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 36em){.x-large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 48em){.x-large .duet-card-image-mask{width:calc(100% + 144px);margin:-72px 0 36px -72px}}.none .duet-card-image-mask{width:100%;margin:0 0 20px}.duet-card-image{display:block;width:102%;min-width:1px;max-width:102%;height:auto;min-height:1px;margin-left:-1%;transition:transform 300ms ease;transform:scale(1.0001)}a.duet-card{transition:box-shadow 300ms ease, background-position 300ms ease}a.duet-card:hover{box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(0, 41, 77, 0.1)}a.duet-card:hover .duet-card-image{transform:scale(1.024)}.duet-theme-turva a.duet-card:hover{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(117, 117, 117, 0.15)}a.duet-card:active{transition:none;transform:translateY(1px)}";
2712
2727
 
@@ -4158,7 +4173,7 @@ let DuetCollapsible$1 = class extends H {
4158
4173
  "duet-collapsible-heading": true,
4159
4174
  "duet-theme-turva": this.theme === "turva",
4160
4175
  "duet-collapsible-normal-weight": this.headingWeight === "normal",
4161
- }, style: { "font-size": this.getFontSizeFromTokens() }, role: "button", tabindex: "0", ref: button => (this.nativeButton = button), "aria-expanded": this.open ? "true" : "false", "aria-controls": this.id, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, h$1("div", { class: "duet-collapsible-heading-icon" }, h$1("duet-icon", { margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary", size: this.getEquivalentIconSize(), icon: actionArrowDownSmall.svg })), h$1("div", { class: "duet-collapsible-heading-content", part: "duet-collapsible-heading-content" }, this.heading)), h$1("div", { id: this.id, class: { "duet-collapsible-content": true, "duet-theme-turva": this.theme === "turva" } }, h$1("slot", null))));
4176
+ }, style: { "font-size": this.getFontSizeFromTokens() }, role: "button", tabindex: "0", ref: button => (this.nativeButton = button), "aria-expanded": this.open ? "true" : "false", "aria-controls": this.id, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, h$1("div", { class: "duet-collapsible-heading-icon" }, h$1("duet-icon", { margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary", size: this.getEquivalentIconSize(), icon: actionArrowDownSmall.svg })), h$1("div", { class: "duet-collapsible-heading-content", part: "duet-collapsible-heading-content" }, this.heading)), h$1("div", { id: this.id, class: { "duet-collapsible-content": true, "duet-theme-turva": this.theme === "turva" }, part: "duet-collapsible-content" }, h$1("slot", null))));
4162
4177
  }
4163
4178
  get element() { return this; }
4164
4179
  static get style() { return duetCollapsibleCss; }
@@ -8578,6 +8593,285 @@ let DuetNumberInput$1 = class extends H {
8578
8593
  static get style() { return duetNumberInputCss; }
8579
8594
  };
8580
8595
 
8596
+ const shouldDisplayNavigation = (visibleItems, total, take) => {
8597
+ if (visibleItems * 2 > total / take) {
8598
+ return false;
8599
+ }
8600
+ return true;
8601
+ };
8602
+
8603
+ const duetPaginationCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}.duet-pagination-nav{position:relative}.duet-pagination,.duet-pagination li{display:flex;flex-wrap:wrap;gap:0.1rem;align-items:center}.duet-pagination-item-is-active .duet-pagination-page-number{border-bottom-color:inherit;border-bottom-style:solid;border-bottom-width:2px}.duet-pagination duet-button{width:30px;min-width:36px;font-weight:600;text-decoration:none;border-left-width:0}.duet-pagination-overlay{position:absolute;top:1rem;z-index:300;width:100%;text-align:center}.duet-pagination.duet-pagination-is-dimmed{opacity:0.5}.duet-pagination-page-button{white-space:nowrap}.duet-pagination-page-button button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:auto !important;padding:0 !important;margin:0 0 0 8px !important;color:#00294d;cursor:pointer;background:#f5f8fa;border-radius:50%;transition:background-color 300ms ease !important}.duet-theme-turva .duet-pagination-page-button button{color:#171c3a;background:#f5f5f7}.duet-pagination-page-button button duet-icon{display:block}@media (max-width: 35.9375em){.duet-pagination-page-button button{width:40px;height:40px}}.duet-pagination-page-button button:not(:disabled):hover{background:#e9ecee !important}.duet-theme-turva .duet-pagination-page-button button:not(:disabled):hover{background:#e9e9eb !important}.duet-pagination-page-button button:focus{outline:0;box-shadow:0 0 0 2px #0077b3}.duet-theme-turva .duet-pagination-page-button button:focus{box-shadow:0 0 0 2px #171c3a}.duet-pagination-page-button button:active:focus{background:#dddfe1;box-shadow:none}.duet-theme-turva .duet-pagination-page-button button:active:focus{background:#ddddde}.duet-pagination-page-button button:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}.duet-theme-turva .duet-pagination-page-button button:disabled{color:#747475;background:#f5f5f7}";
8604
+
8605
+ let DuetPagination$1 = class extends H {
8606
+ constructor() {
8607
+ super();
8608
+ this.__registerHost();
8609
+ this.__attachShadow();
8610
+ this.duetPageChange = createEvent$2(this, "duetPageChange", 3);
8611
+ this.listId = createID("duet-pagination-list");
8612
+ this.numbersStore = "";
8613
+ /**
8614
+ * State() variables
8615
+ * @internal
8616
+ */
8617
+ this.totalPages = 10;
8618
+ /**
8619
+ * State() variables
8620
+ * @internal
8621
+ */
8622
+ this.internalSectionIndex = 0;
8623
+ /**
8624
+ * Theme of the pagination.
8625
+ */
8626
+ this.theme = "";
8627
+ /**
8628
+ * Characters to use for the jump buttons.
8629
+ */
8630
+ this.jumpString = "...";
8631
+ /**
8632
+ * Default pagination labels
8633
+ */
8634
+ this.ariaLabelsDefaults = {
8635
+ en: {
8636
+ next_page: "Next page",
8637
+ previous_page: "Previous page",
8638
+ first_page: "First page",
8639
+ last_page: "Last page",
8640
+ jump_to: "Jump to page",
8641
+ go_to: "Go to page",
8642
+ 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",
8643
+ pagination_label: "Pagination, choose a number to jump to a page",
8644
+ prev_section: "Show previous {0} page numbers, screen reader user should use arrowkeys to navigate",
8645
+ next_section: "Show next {0} page numbers, screen reader user should use arrowkeys to navigate",
8646
+ },
8647
+ fi: {
8648
+ next_page: "Seuraava sivu",
8649
+ previous_page: "Edellinen sivu",
8650
+ first_page: "Ensimmäinen sivu",
8651
+ last_page: "Viimeinen sivu",
8652
+ jump_to: "Siirry sivulle",
8653
+ go_to: "Siirry sivulle",
8654
+ description: "Voit käyttää nuolinäppäimiä sivunumeron valitsemiseen, tai kirjoittaa sivunumeron, jos tämä elementti on aktiivinen, siirtymään sivulle",
8655
+ pagination_label: "Sivutus, valitse sivunumero siirtyäksesi sivulle",
8656
+ prev_section: "Näytä edelliset {0} sivunumerot, käyttäjän pitää käyttää nuolinäppäimiä navigoidaksesi",
8657
+ next_section: "Näytä seuraavat {0} sivunumerot, käyttäjän pitää käyttää nuolinäppäimiä navigoidaksesi",
8658
+ },
8659
+ sv: {
8660
+ next_page: "Nästa sida",
8661
+ previous_page: "Föregående sida",
8662
+ first_page: "Första sidan",
8663
+ last_page: "Sista sidan",
8664
+ jump_to: "Hoppa till sida",
8665
+ go_to: "Hoppa till sida",
8666
+ 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",
8667
+ pagination_label: "Sidutning, välj en siffra för att hoppa till en sida",
8668
+ prev_section: "Visa föregående {0} sidnummer, skrivbordsläsare ska använda piltangenterna för att navigera",
8669
+ next_section: "Visa nästa {0} sidnummer, skrivbordsläsare ska använda piltangenterna för att navigera",
8670
+ },
8671
+ };
8672
+ /**
8673
+ * Default pagination labels
8674
+ */
8675
+ this.ariaLabels = getLocaleString(this.ariaLabelsDefaults);
8676
+ /**
8677
+ * The size of the take, when paginating.
8678
+ */
8679
+ this.take = 5;
8680
+ /**
8681
+ * Amount of visible page numbers to show
8682
+ */
8683
+ this.visibleItems = 5;
8684
+ /**
8685
+ * The total size of the paginating data
8686
+ */
8687
+ this.total = 1000;
8688
+ /**
8689
+ * Used to indicate which dom element with ID this element controls
8690
+ */
8691
+ this.ariaControls = "";
8692
+ /**
8693
+ * The current page
8694
+ */
8695
+ this.current = 1;
8696
+ /**
8697
+ * Private methods.
8698
+ */
8699
+ // called from the watcher and used to make sure any changed to current also updates the internal section index
8700
+ this.actionChain = async (after, before) => {
8701
+ if (after === 0) {
8702
+ this.current = 1;
8703
+ }
8704
+ else if (before !== after) {
8705
+ const calculatedSectionIndex = Math.ceil(after / this.visibleItems) - 1;
8706
+ if (calculatedSectionIndex !== this.internalSectionIndex) {
8707
+ this.internalSectionIndex = calculatedSectionIndex;
8708
+ await this.setFocus();
8709
+ }
8710
+ }
8711
+ };
8712
+ //helper to emit relevant page events
8713
+ this.emitPageEvent = debounce((ev, passedPage) => {
8714
+ const page = Number(passedPage || this.current);
8715
+ this.duetPageChange.emit({
8716
+ component: "duet-pagination",
8717
+ from: page * this.take,
8718
+ to: page * this.take + this.take,
8719
+ current: page,
8720
+ take: this.take,
8721
+ type: "page",
8722
+ originalEvent: ev,
8723
+ });
8724
+ }, 500);
8725
+ // this will return the entered number, or the current page if the user presses enter
8726
+ this.getEnteredNumber = debounce(ev => {
8727
+ this.emitPageEvent(ev, this.numbersStore);
8728
+ this.current = Number(this.numbersStore);
8729
+ this.numbersStore = "";
8730
+ this.duetPageChange.emit({
8731
+ component: "duet-pagination",
8732
+ from: this.current * this.take,
8733
+ to: this.current * this.take + this.take,
8734
+ current: this.current,
8735
+ take: this.take,
8736
+ type: "jump",
8737
+ originalEvent: ev,
8738
+ });
8739
+ }, 500);
8740
+ }
8741
+ watchStateHandler(newValue, oldValue) {
8742
+ this.actionChain(newValue, oldValue);
8743
+ }
8744
+ /**
8745
+ * Component lifecycle events.
8746
+ */
8747
+ componentWillLoad() {
8748
+ // 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
8749
+ this.internalSectionIndex = Math.ceil(this.current / this.visibleItems) - 1;
8750
+ this.calculatePageTake();
8751
+ inheritGlobalTheme(this);
8752
+ }
8753
+ componentWillRender() {
8754
+ if (this.internalSectionIndex !== 0 && this.internalSectionIndex !== this.totalPages) {
8755
+ this.calculatePageTake();
8756
+ }
8757
+ }
8758
+ componentDidRender() {
8759
+ this.setFocus();
8760
+ }
8761
+ //get totalpages from visible and total
8762
+ calculatePageTake() {
8763
+ this.totalPages = Math.ceil(this.total / this.take);
8764
+ }
8765
+ //set update current when mouse click on page number
8766
+ async onMouseHandler(e, dir) {
8767
+ e.preventDefault();
8768
+ e.stopPropagation();
8769
+ this.current = this.current + dir;
8770
+ }
8771
+ //handle a11y keyboard navigation events
8772
+ async onKeyboardDown(e) {
8773
+ let next = this.current;
8774
+ // handle a11y based keyboard navigation for left/right/up/down
8775
+ if (isArrowLeftKey(e) || isArrowUpKey(e)) {
8776
+ next--;
8777
+ }
8778
+ if (isArrowRightKey(e) || isArrowDownKey(e)) {
8779
+ next++;
8780
+ }
8781
+ if (isArrowKey(e)) {
8782
+ if (next <= this.totalPages) {
8783
+ this.current = next;
8784
+ this.emitPageEvent(e);
8785
+ }
8786
+ }
8787
+ //handle the jump feature, where numbers can be entered
8788
+ if (isNumber(e) && this.shouldDisplayNavigation()) {
8789
+ this.numbersStore = this.numbersStore + e.key;
8790
+ if (Number(this.numbersStore) > this.totalPages) {
8791
+ this.numbersStore = this.totalPages + "";
8792
+ }
8793
+ this.getEnteredNumber(e);
8794
+ }
8795
+ }
8796
+ // utility to set focus on active button
8797
+ async setFocus() {
8798
+ const currentDomElement = this.nativeNav.querySelector(`li.duet-pagination-item-is-active duet-button`);
8799
+ currentDomElement && (await currentDomElement.setFocus());
8800
+ }
8801
+ //handles click on page numbers
8802
+ pageClickHandler(e) {
8803
+ e.preventDefault();
8804
+ const clickedId = Number(e.target.getAttribute("data-id"));
8805
+ this.current = clickedId;
8806
+ this.emitPageEvent({}, clickedId);
8807
+ }
8808
+ //handles click on the next section buttons
8809
+ sectionClickHandler(e, direction) {
8810
+ e.preventDefault();
8811
+ let next = this.internalSectionIndex + direction;
8812
+ if (next >= this.totalPages / this.take) {
8813
+ next = this.totalPages / this.take - 1;
8814
+ }
8815
+ const newSection = next;
8816
+ this.internalSectionIndex = newSection >= 0 ? newSection : 0;
8817
+ }
8818
+ //handles click on the jump (1)button
8819
+ jumpToStart(e) {
8820
+ e.preventDefault();
8821
+ this.internalSectionIndex = 0;
8822
+ this.current = 1;
8823
+ }
8824
+ //handles click on the jump (total) button
8825
+ jumpToEnd(e) {
8826
+ e.preventDefault();
8827
+ this.internalSectionIndex = this.totalPages / this.take - 1;
8828
+ this.current = this.totalPages;
8829
+ }
8830
+ // render the individual page numbers
8831
+ renderPageNumbers() {
8832
+ const items = [];
8833
+ let i = this.internalSectionIndex * this.visibleItems;
8834
+ do {
8835
+ i++;
8836
+ if (i > this.totalPages) {
8837
+ break;
8838
+ }
8839
+ items.push(h$1("li", { class: {
8840
+ "duet-pagination-item": true,
8841
+ "duet-pagination-item-is-active": i === this.current,
8842
+ }, role: "menuitem" }, h$1("duet-button", { class: {
8843
+ "duet-pagination-link": true,
8844
+ }, color: i !== this.current ? "secondary" : "primary", "data-id": i, "center-text": true, variation: "plain", margin: "none", accessibleLabel: `${this.ariaLabels.go_to} ${i}`, onClick: e => this.pageClickHandler(e) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": true }, i))));
8845
+ } while (i < this.visibleItems + this.internalSectionIndex * this.visibleItems);
8846
+ return items;
8847
+ }
8848
+ shouldDisplayNavigation() {
8849
+ return shouldDisplayNavigation(this.visibleItems, this.total, this.take);
8850
+ }
8851
+ /**
8852
+ * render() function
8853
+ * Always the last one in the class.
8854
+ */
8855
+ render() {
8856
+ return (h$1(Host, { onKeyDown: e => this.onKeyboardDown(e) }, h$1("nav", { role: "navigation", class: "duet-pagination-nav", "aria-labelledby": this.listId, "aria-describedby": this.listId, ref: el => (this.nativeNav = el), "aria-controls": this.ariaControls }, this.numbersStore !== "" && (h$1("div", { "aria-live": "assertive", "aria-relevant": "text", class: "duet-pagination-overlay", "aria-label": `${this.ariaLabels.jump_to} ${this.numbersStore}`, part: "navigation-overlay" }, h$1("duet-badge", null, "jump to page : ", this.numbersStore))), h$1("ol", { id: this.listId, class: {
8857
+ "duet-pagination": true,
8858
+ "duet-pagination-is-dimmed": this.numbersStore !== "",
8859
+ }, role: "menubar", "aria-label": this.ariaLabels.pagination_label, "aria-description": this.ariaLabels.description }, h$1("li", { class: {
8860
+ "duet-pagination-page-button": true,
8861
+ "duet-pagination-button-first": true,
8862
+ }, role: "menuitem", part: "navigation-arrow" }, h$1("button", { disabled: this.internalSectionIndex === 0 && this.current <= 1, "data-direction": "back", class: "duet-date-dialog-prev", type: "button", onClick: e => this.onMouseHandler(e, -1), "aria-label": this.ariaLabels.previous_page }, h$1("duet-icon", { name: "action-arrow-left-small", color: "currentColor", margin: "none", size: "xx-small" }))), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (h$1(Fragment, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", variation: "plain", color: "secondary", margin: "none", accessibleLabel: this.ariaLabels.first_page, onClick: e => this.jumpToStart(e) }, h$1("div", { class: "duet-pagination-page-number" }, "1"))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.ariaLabels.prev_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, -1) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))))), this.renderPageNumbers(), this.internalSectionIndex !== this.totalPages / this.visibleItems - 1 && this.shouldDisplayNavigation() && (h$1(Fragment, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.ariaLabels.next_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, 1) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.ariaLabels.last_page, onClick: e => this.jumpToEnd(e) }, h$1("div", { class: "duet-pagination-page-number" }, this.totalPages))))), h$1("li", { class: {
8863
+ "duet-pagination-page-button": true,
8864
+ "duet-pagination-button-last": true,
8865
+ }, role: "menuitem", part: "navigation-arrow" }, h$1("button", { disabled: this.current === this.totalPages &&
8866
+ this.internalSectionIndex === Math.ceil(this.totalPages / this.visibleItems) - 1, class: "duet-date-dialog-next", type: "button", "aria-label": this.ariaLabels.next_page, onClick: e => this.onMouseHandler(e, 1) }, h$1("duet-icon", { name: "action-arrow-right-small", color: "currentColor", margin: "none", size: "xx-small" })))))));
8867
+ }
8868
+ get element() { return this; }
8869
+ static get watchers() { return {
8870
+ "current": ["watchStateHandler"]
8871
+ }; }
8872
+ static get style() { return duetPaginationCss; }
8873
+ };
8874
+
8581
8875
  const duetParagraphCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:100%}.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{padding:0 !important}.duet-paragraph.duet-m-0{margin:0 !important}.duet-paragraph.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-paragraph.duet-paragraph-small{font-size:0.875rem}.duet-paragraph.duet-paragraph-semi-bold{font-weight:600}.duet-paragraph.duet-paragraph-bold{font-weight:700}.duet-paragraph.duet-m-0{margin:0 !important}.duet-paragraph.intro{font-size:2.7vw;margin-bottom:28px !important;-webkit-hyphens:inherit;hyphens:inherit}@media (max-width: 37.037037037rem){.duet-paragraph.intro{font-size:1rem}}@media (min-width: 46.2962962963rem){.duet-paragraph.intro{font-size:1.25rem}}.duet-paragraph.intro.duet-m-0{margin:0 !important}::slotted(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{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{color:#004d80;text-decoration:none}::slotted(a):hover.duet-theme-turva{color:#940925}::slotted(a):active{opacity:0.75;transition:none}";
8582
8876
 
8583
8877
  let DuetParagraph$1 = class extends H {
@@ -9109,6 +9403,162 @@ let DuetRangeSlider$1 = class extends H {
9109
9403
  static get style() { return duetRangeSliderCss; }
9110
9404
  };
9111
9405
 
9406
+ const duetRangeStepperCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:inline-block;margin:0 auto}.duet-range-stepper{display:flex;flex-wrap:wrap;gap:0;align-items:baseline;justify-content:center;min-width:30px;min-height:30px;font-weight:600;text-decoration:none;border-left-width:0}.duet-range-stepper{white-space:nowrap}.duet-range-stepper button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:auto !important;padding:0 !important;margin:0 0 0 8px !important;color:#00294d;cursor:pointer;background:#f5f8fa;border-radius:50%;transition:background-color 300ms ease !important}.duet-theme-turva .duet-range-stepper button{color:#171c3a;background:#f5f5f7}.duet-range-stepper button duet-icon{display:block}@media (max-width: 35.9375em){.duet-range-stepper button{width:40px;height:40px}}.duet-range-stepper button:not(:disabled):hover{background:#e9ecee !important}.duet-theme-turva .duet-range-stepper button:not(:disabled):hover{background:#e9e9eb !important}.duet-range-stepper button:focus{outline:0;box-shadow:0 0 0 2px #0077b3}.duet-theme-turva .duet-range-stepper button:focus{box-shadow:0 0 0 2px #171c3a}.duet-range-stepper button:active:focus{background:#dddfe1;box-shadow:none}.duet-theme-turva .duet-range-stepper button:active:focus{background:#ddddde}.duet-range-stepper button:disabled{color:#909599;cursor:default;background:#f5f8fa;opacity:0.75}.duet-theme-turva .duet-range-stepper button:disabled{color:#747475;background:#f5f5f7}";
9407
+
9408
+ let DuetRangeStepper$1 = class extends H {
9409
+ constructor() {
9410
+ super();
9411
+ this.__registerHost();
9412
+ this.__attachShadow();
9413
+ this.duetRangeStepUpdate = createEvent$2(this, "duetRangeStepUpdate", 7);
9414
+ this.leftBn = createID("duetRangeStepper-left");
9415
+ this.rightBn = createID("duetRangeStepper-right");
9416
+ /**
9417
+ * Theme of the component.
9418
+ */
9419
+ this.theme = "";
9420
+ /**
9421
+ * Start value
9422
+ * @default 1
9423
+ */
9424
+ this.stepIndex = 1;
9425
+ /**
9426
+ * How big is the step
9427
+ * @default 99
9428
+ */
9429
+ this.stepSize = 50;
9430
+ /**
9431
+ * Total of
9432
+ * @default undefined
9433
+ */
9434
+ this.total = 1000;
9435
+ /**
9436
+ * Default range stepper labels
9437
+ */
9438
+ this.ariaLabelsDefaults = {
9439
+ en: {
9440
+ next_increment: "Next range increment",
9441
+ previous_increment: "Previous range increment",
9442
+ x_of_y: "{0}–{1} of {2}",
9443
+ },
9444
+ fi: {
9445
+ next_increment: "Seuraava välillä",
9446
+ previous_increment: "Edellinen välillä",
9447
+ x_of_y: "{0}–{1} / {2}",
9448
+ },
9449
+ sv: {
9450
+ next_increment: "Nästa intervall",
9451
+ previous_increment: "Föregående intervall",
9452
+ x_of_y: "{0}–{1} av {2}",
9453
+ },
9454
+ };
9455
+ /**
9456
+ * Default pagination labels
9457
+ */
9458
+ this.ariaLabels = getLocaleString(this.ariaLabelsDefaults);
9459
+ /**
9460
+ * Used to indicate which dom element with ID this element controls
9461
+ */
9462
+ this.ariaControls = "";
9463
+ this.handleClick = (e, direction) => {
9464
+ e.preventDefault();
9465
+ this.increment(direction);
9466
+ this.handleStepClick(e);
9467
+ };
9468
+ }
9469
+ watchStateHandler(newValue) {
9470
+ if (newValue === 1) {
9471
+ this.leftBnRef.setAttribute("disabled", "");
9472
+ this.rightBnRef.focus();
9473
+ }
9474
+ else {
9475
+ this.leftBnRef.removeAttribute("disabled");
9476
+ }
9477
+ if (newValue === this.total / this.stepSize) {
9478
+ this.rightBnRef.setAttribute("disabled", "");
9479
+ this.leftBnRef.focus();
9480
+ }
9481
+ else {
9482
+ this.rightBnRef.removeAttribute("disabled");
9483
+ }
9484
+ }
9485
+ handleStepClick(e) {
9486
+ this.duetRangeStepUpdate.emit({
9487
+ originalEvent: e,
9488
+ component: "duet-range-stepper",
9489
+ from: this.stepIndex * this.stepSize - this.stepSize,
9490
+ to: this.stepIndex * this.stepSize,
9491
+ index: this.stepIndex,
9492
+ });
9493
+ }
9494
+ componentWillLoad() {
9495
+ inheritGlobalTheme(this);
9496
+ }
9497
+ componentDidLoad() {
9498
+ this.watchStateHandler(this.stepIndex);
9499
+ }
9500
+ increment(direction) {
9501
+ const newIndex = this.stepIndex + direction;
9502
+ if (newIndex <= 0) {
9503
+ this.stepIndex = 1;
9504
+ }
9505
+ else {
9506
+ if (newIndex * this.stepSize <= this.total) {
9507
+ this.stepIndex = newIndex;
9508
+ }
9509
+ }
9510
+ }
9511
+ generateStepSize() {
9512
+ // this function uses this.stepIndex and this.range to generate a range of number like 1-100
9513
+ // this is used to generate the step size
9514
+ let start = (this.stepIndex - 1) * this.stepSize;
9515
+ //easy fix for starting position
9516
+ if (start === 0) {
9517
+ start = 1;
9518
+ }
9519
+ const end = this.stepIndex * this.stepSize;
9520
+ return this.ariaLabels.x_of_y
9521
+ .replace("{0}", String(start))
9522
+ .replace("{1}", String(end))
9523
+ .replace("{2}", String(this.total));
9524
+ }
9525
+ //handle a11y keyboard navigation events
9526
+ async onKeyboardDown(e) {
9527
+ // handle a11y based keyboard navigation for left/right/up/down
9528
+ let next = this.stepIndex;
9529
+ let dir = 1;
9530
+ if (isArrowLeftKey(e) || isArrowUpKey(e) || isMinusKey(e)) {
9531
+ next--;
9532
+ dir = -1;
9533
+ this.leftBnRef.focus();
9534
+ }
9535
+ if (isArrowRightKey(e) || isArrowDownKey(e) || isPlusKey(e)) {
9536
+ next++;
9537
+ dir = 1;
9538
+ }
9539
+ if (isArrowKey(e)) {
9540
+ if (next > 0 && next * this.stepSize <= this.total) {
9541
+ this.handleClick(e, dir);
9542
+ }
9543
+ }
9544
+ }
9545
+ /**
9546
+ * render() function
9547
+ * Always the last one in the class.
9548
+ */
9549
+ render() {
9550
+ return (h$1("div", { class: {
9551
+ "duet-range-stepper": true,
9552
+ "duet-theme-turva": this.theme === "turva",
9553
+ }, onKeyDown: e => this.onKeyboardDown(e), "aria-controls": this.ariaControls }, h$1("span", { class: "duet-range-step-counter", part: "range-numbers" }, this.generateStepSize()), h$1("button", { class: "duet-range-step-button duet-range-step-minus", type: "button", onClick: e => this.handleClick(e, -1), id: this.leftBn, "aria-label": this.ariaLabels.previous_increment, ref: el => (this.leftBnRef = el), part: "navigation-arrow" }, h$1("duet-icon", { name: "action-arrow-left-small", color: "currentColor", margin: "none", size: "xx-small" })), h$1("button", { class: "duet-range-step-button duet-range-step-plus", type: "button", onClick: e => this.handleClick(e, 1), "aria-label": this.ariaLabels.next_increment, id: this.rightBn, ref: el => (this.rightBnRef = el), part: "navigation-arrow" }, h$1("duet-icon", { name: "action-arrow-right-small", color: "currentColor", margin: "none", size: "xx-small" }))));
9554
+ }
9555
+ get element() { return this; }
9556
+ static get watchers() { return {
9557
+ "stepIndex": ["watchStateHandler"]
9558
+ }; }
9559
+ static get style() { return duetRangeStepperCss; }
9560
+ };
9561
+
9112
9562
  const duetScrollableCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}:host{position:relative !important}:host .duet-scrollable-items{display:flex}:host .duet-scrollable-items .duet-scrollable-button{position:relative;flex:0 0 auto;flex-basis:40px;padding:10px;cursor:pointer}:host .duet-scrollable-items .duet-scrollable-button:active{transform:scale(0.8)}:host .duet-scrollable-items .duet-scrollable-button--left{left:-12px}:host .duet-scrollable-items .duet-scrollable-button--right{right:-12px}:host .duet-scrollable-items .duet-scrollable-button--occluded{display:none}:host .duet-scrollable-items .duet-scrollable-list{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{display:none}::slotted(*){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}";
9113
9563
 
9114
9564
  let DuetScrollable$1 = class extends H {
@@ -9268,7 +9718,7 @@ let DuetScrollable$1 = class extends H {
9268
9718
  static get style() { return duetScrollableCss; }
9269
9719
  };
9270
9720
 
9271
- 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}";
9721
+ 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}";
9272
9722
 
9273
9723
  function isOptionGroup(item) {
9274
9724
  return "options" in item;
@@ -9304,6 +9754,10 @@ let DuetSelect$1 = class extends H {
9304
9754
  * Inlined decorator, alphabetical order.
9305
9755
  */
9306
9756
  this.processedItems = null;
9757
+ /**
9758
+ * Variation of dropdown. -tiny is used for small numbers / tiny option ranges.
9759
+ */
9760
+ this.variation = "default";
9307
9761
  /**
9308
9762
  * Controls the margin of the component.
9309
9763
  */
@@ -9435,15 +9889,23 @@ let DuetSelect$1 = class extends H {
9435
9889
  */
9436
9890
  render() {
9437
9891
  const identifier = this.identifier || this.selectId;
9438
- return (h$1(Host, { onClick: this.onClick, class: { "duet-m-0": this.margin === "none", "duet-expand": this.expand } }, h$1("div", { class: {
9892
+ return (h$1(Host, { onClick: this.onClick, class: {
9893
+ "duet-m-0": this.margin === "none",
9894
+ "duet-expand": this.expand,
9895
+ "duet-select-variation-tiny": this.variation === "tiny",
9896
+ } }, h$1("div", { class: {
9439
9897
  "duet-select-container": true,
9440
9898
  "duet-label-hidden": this.labelHidden,
9441
9899
  "duet-theme-turva": this.theme === "turva",
9900
+ "duet-select-variation-tiny": this.variation === "tiny",
9442
9901
  "duet-input-top-caption-shown": this.isCaptionVisible,
9443
9902
  "has-error": !!this.error,
9444
9903
  } }, h$1("duet-label", { theme: this.theme === "turva" ? "turva" : "default", class: { "duet-has-tooltip": !!this.tooltip }, id: this.labelId, for: identifier }, this.label), this.tooltip && (h$1("duet-tooltip", { direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), this.caption && (h$1("duet-caption", { id: this.topCaptionId, size: "medium" }, this.caption)), h$1("div", { class: "duet-select-wrapper" }, this.placeholder && this.echoPlaceholder && this.value && (h$1("duet-caption", { id: this.topCaptionPlaceholderId, class: "duet-select-placeholder", size: "small" }, this.placeholder)), h$1("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 && (h$1("option", { disabled: true, selected: true, value: "" }, this.placeholder)), !this.processedItems ? (h$1("option", null, "Virhe valintoja ladattaessa. P\u00E4ivit\u00E4 sivu ja kokeile uusiksi.")) : (this.processedItems.map(item => {
9445
9904
  return isOptionGroup(item) ? this.renderOptionGroup(item) : this.renderOption(item);
9446
- }))), h$1("div", { class: "duet-select", "aria-hidden": "true" }, h$1("span", { key: this.value }, this.getSelectedItemLabel()), h$1("svg", { role: "img", class: "duet-select-icon", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h$1("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" })))), h$1("span", { class: "duet-select-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && h$1("span", null, this.error)))));
9905
+ }))), h$1("div", { class: {
9906
+ "duet-select": true,
9907
+ "duet-select-variation-tiny": this.variation === "tiny",
9908
+ }, "aria-hidden": "true" }, h$1("span", { key: this.value }, this.getSelectedItemLabel()), this.variation !== "tiny" && (h$1("svg", { role: "img", class: "duet-select-icon", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h$1("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" && (h$1("duet-icon", { name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xx-small" })))), h$1("span", { class: "duet-select-help", id: this.errorId, "aria-live": "assertive", "aria-relevant": "additions removals" }, this.error && h$1("span", null, this.error)))));
9447
9909
  }
9448
9910
  get element() { return this; }
9449
9911
  static get watchers() { return {
@@ -9891,7 +10353,7 @@ let DuetTabGroup$1 = class extends H {
9891
10353
  };
9892
10354
  this.renderTab = () => {
9893
10355
  const renderedTabs = this.tabs.map((element, index) => {
9894
- return (h$1("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), part: `${this.identifier}-button`, type: "button", class: {
10356
+ return (h$1("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), part: `${this.identifier}-button ${element.selected ? `${this.identifier}-button--selected` : ""}`, type: "button", class: {
9895
10357
  "duet-p-0": this.padding === "none",
9896
10358
  "duet-tab-button": true,
9897
10359
  selected: element.selected,
@@ -11987,7 +12449,7 @@ const DuetAlert = /*@__PURE__*/proxyCustomElement(DuetAlert$1, [1,"duet-alert",{
11987
12449
  const DuetBadge = /*@__PURE__*/proxyCustomElement(DuetBadge$1, [1,"duet-badge",{"theme":[1025],"variation":[1],"margin":[1]}]);
11988
12450
  const DuetBreadcrumb = /*@__PURE__*/proxyCustomElement(DuetBreadcrumb$1, [1,"duet-breadcrumb",{"theme":[1025],"href":[1025],"icon":[1025],"accessibleLabel":[1,"accessible-label"]}]);
11989
12451
  const DuetBreadcrumbs = /*@__PURE__*/proxyCustomElement(DuetBreadcrumbs$1, [1,"duet-breadcrumbs",{"theme":[1025],"children":[32]}]);
11990
- const DuetButton = /*@__PURE__*/proxyCustomElement(DuetButton$1, [1,"duet-button",{"accessibleLabel":[1,"accessible-label"],"accessibleControls":[1,"accessible-controls"],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleExpanded":[4,"accessible-expanded"],"accessiblePressed":[4,"accessible-pressed"],"loading":[4],"variation":[1],"negative":[4],"theme":[1025],"margin":[1],"padding":[1],"wrapping":[1],"expand":[4],"fixed":[4],"disabled":[516],"name":[1],"value":[1],"identifier":[1],"submit":[516],"external":[4],"language":[1],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"icon":[1],"color":[1],"iconRight":[4,"icon-right"],"iconSize":[1,"icon-size"],"size":[1],"iconOnly":[4,"icon-only"],"url":[513]}]);
12452
+ const DuetButton = /*@__PURE__*/proxyCustomElement(DuetButton$1, [1,"duet-button",{"accessibleLabel":[1,"accessible-label"],"accessibleControls":[1,"accessible-controls"],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleExpanded":[4,"accessible-expanded"],"accessiblePressed":[4,"accessible-pressed"],"loading":[4],"variation":[1],"negative":[4],"theme":[1025],"margin":[1],"padding":[1],"centerText":[4,"center-text"],"wrapping":[1],"expand":[4],"fixed":[4],"disabled":[516],"name":[1],"value":[1],"identifier":[1],"submit":[516],"external":[4],"language":[1],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"icon":[1],"color":[1],"iconRight":[4,"icon-right"],"iconSize":[1,"icon-size"],"size":[1],"iconOnly":[4,"icon-only"],"url":[513]}]);
11991
12453
  const DuetCaption = /*@__PURE__*/proxyCustomElement(DuetCaption$1, [1,"duet-caption",{"theme":[1025],"margin":[1],"selected":[4],"size":[1]}]);
11992
12454
  const DuetCard = /*@__PURE__*/proxyCustomElement(DuetCard$1, [1,"duet-card",{"accessibleLabel":[1,"accessible-label"],"heading":[1],"secondaryHeading":[1,"secondary-heading"],"variation":[1],"collapsible":[4],"open":[1540],"headingLevel":[1,"heading-level"],"icon":[1],"image":[1],"background":[1],"padding":[1],"margin":[1],"theme":[1025],"url":[1]}]);
11993
12455
  const DuetCheckbox = /*@__PURE__*/proxyCustomElement(DuetCheckbox$1, [2,"duet-checkbox",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"margin":[1],"accessibleControls":[1,"accessible-controls"],"accessibleIndex":[1,"accessible-index"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"required":[4],"theme":[1025],"disabled":[516],"identifier":[1],"label":[1],"labelHidden":[4,"label-hidden"],"name":[1],"role":[1],"checked":[1540],"value":[1537]}]);
@@ -12020,13 +12482,15 @@ const DuetModal = /*@__PURE__*/proxyCustomElement(DuetModal$1, [1,"duet-modal",{
12020
12482
  const DuetNotification = /*@__PURE__*/proxyCustomElement(DuetNotification$1, [1,"duet-notification",{"language":[1],"accessibleLabelUnreadDefaults":[16],"accessibleLabelUnread":[1,"accessible-label-unread"],"url":[1],"date":[1],"highlight":[4],"external":[4],"theme":[1025]}]);
12021
12483
  const DuetNotificationDrawer = /*@__PURE__*/proxyCustomElement(DuetNotificationDrawer$1, [1,"duet-notification-drawer",{"icon":[1],"label":[1],"language":[1],"accessibleLabelNotificationsDefaults":[1,"accessible-label-notification-default"],"accessibleLabelNotifications":[1,"accessible-label-notifications"],"badge":[4],"theme":[1025],"direction":[1],"isOpen":[32],"hasNotifications":[32]},[[6,"focus","handleClickFocusOutside"],[6,"click","handleClickFocusOutside"]]]);
12022
12484
  const DuetNumberInput = /*@__PURE__*/proxyCustomElement(DuetNumberInput$1, [2,"duet-number-input",{"language":[1025],"locale":[1],"unit":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleLiveDefaults":[1,"accessible-live-default"],"accessibleLive":[1,"accessible-live"],"accessibleLiveEnabled":[4,"accessible-live-enabled"],"accessibleAddDefaults":[1,"accessible-add-default"],"accessibleAdd":[1,"accessible-add"],"accessibleSubtractDefaults":[1,"accessible-subtract-defaults"],"accessibleSubtract":[1,"accessible-subtract"],"theme":[1025],"margin":[1],"expand":[4],"identifier":[1],"min":[2],"labelDefaults":[1,"label-default"],"label":[1],"labelHidden":[4,"label-hidden"],"max":[2],"name":[1],"error":[1],"tooltip":[1],"step":[2],"rounding":[4],"role":[1],"disabled":[516],"required":[4],"value":[1025],"focusedValue":[32]}]);
12485
+ const DuetPagination = /*@__PURE__*/proxyCustomElement(DuetPagination$1, [1,"duet-pagination",{"theme":[1025],"jumpString":[1,"jump-string"],"ariaLabelsDefaults":[16],"ariaLabels":[16],"take":[1026],"visibleItems":[1026,"visible-items"],"total":[1026],"ariaControls":[1,"accessible-controls"],"current":[1026],"numbersStore":[32],"totalPages":[32],"internalSectionIndex":[32]}]);
12023
12486
  const DuetParagraph = /*@__PURE__*/proxyCustomElement(DuetParagraph$1, [1,"duet-paragraph",{"theme":[1025],"margin":[1],"size":[1],"weight":[1],"variation":[1],"color":[1]}]);
12024
12487
  const DuetProgress = /*@__PURE__*/proxyCustomElement(DuetProgress$1, [0,"duet-progress",{"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleLabel":[1,"accessible-label"],"accessibleLabelUploadDefaults":[1,"accessible-label-upload-defaults"],"accessibleLabelUpload":[1,"accessible-label-upload"],"progress":[1538],"caption":[1],"height":[1],"theme":[1025]}]);
12025
12488
  const DuetRadio = /*@__PURE__*/proxyCustomElement(DuetRadio$1, [2,"duet-radio",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleIndex":[1,"accessible-index"],"margin":[1],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"theme":[1025],"disabled":[516],"required":[4],"blockEvents":[4,"block-events"],"identifier":[1],"label":[1],"name":[1],"role":[1],"groupDisabled":[4,"group-disabled"],"groupDirection":[1,"group-direction"],"groupResponsive":[4,"group-responsive"],"checked":[1540],"value":[1537]}]);
12026
12489
  const DuetRadioGroup = /*@__PURE__*/proxyCustomElement(DuetRadioGroup$1, [6,"duet-radio-group",{"direction":[1],"margin":[1],"theme":[1025],"error":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"name":[1],"label":[1],"labelHidden":[4,"label-hidden"],"caption":[1],"responsive":[4],"value":[1537],"disabled":[4]}]);
12027
12490
  const DuetRangeSlider = /*@__PURE__*/proxyCustomElement(DuetRangeSlider$1, [2,"duet-range-slider",{"theme":[1025],"margin":[1],"expand":[4],"identifier":[1],"name":[1],"required":[4],"disabled":[516],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"min":[2],"label":[1],"labelHidden":[4,"label-hidden"],"unit":[1],"max":[2],"step":[2],"locale":[1],"value":[1026],"debounce":[2]}]);
12491
+ const DuetRangeStepper = /*@__PURE__*/proxyCustomElement(DuetRangeStepper$1, [1,"duet-range-stepper",{"theme":[1025],"stepIndex":[1026,"step-index"],"stepSize":[2,"step-size"],"total":[2],"ariaLabelsDefaults":[16],"ariaLabels":[16],"ariaControls":[1,"accessible-controls"]}]);
12028
12492
  const DuetScrollable = /*@__PURE__*/proxyCustomElement(DuetScrollable$1, [1,"duet-scrollable",{"theme":[1025],"identifier":[1],"selected":[1026],"tablistAtStart":[32],"isTabContentSmallerThanWrapper":[32],"tablistAtEnd":[32],"childrenData":[32]}]);
12029
- const DuetSelect = /*@__PURE__*/proxyCustomElement(DuetSelect$1, [2,"duet-select",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleDescribedBy":[1,"accessible-described-by"],"margin":[1],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"error":[1],"expand":[4],"value":[1537],"theme":[1025],"labelHidden":[4,"label-hidden"],"identifier":[1],"name":[1],"placeholder":[1],"caption":[1],"echoPlaceholder":[4,"echo-placeholder"],"items":[1],"disabled":[516],"required":[4],"label":[1],"role":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"processedItems":[32]}]);
12493
+ const DuetSelect = /*@__PURE__*/proxyCustomElement(DuetSelect$1, [2,"duet-select",{"variation":[1],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleDescribedBy":[1,"accessible-described-by"],"margin":[1],"accessibleControls":[1,"accessible-controls"],"accessibleOwns":[1,"accessible-owns"],"error":[1],"expand":[4],"value":[1537],"theme":[1025],"labelHidden":[4,"label-hidden"],"identifier":[1],"name":[1],"placeholder":[1],"caption":[1],"echoPlaceholder":[4,"echo-placeholder"],"items":[1],"disabled":[516],"required":[4],"label":[1],"role":[1],"tooltip":[1],"tooltipDirection":[1,"tooltip-direction"],"processedItems":[32]}]);
12030
12494
  const DuetSpacer = /*@__PURE__*/proxyCustomElement(DuetSpacer$1, [1,"duet-spacer",{"size":[1],"direction":[1],"breakpoint":[1]}]);
12031
12495
  const DuetSpinner = /*@__PURE__*/proxyCustomElement(DuetSpinner$1, [1,"duet-spinner",{"accessibleLabel":[1,"accessible-label"],"color":[1],"size":[1],"theme":[1025]}]);
12032
12496
  const DuetStep = /*@__PURE__*/proxyCustomElement(DuetStep$1, [6,"duet-step",{"theme":[1025],"heading":[1],"headingLevel":[1,"heading-level"],"stepIndex":[2,"step-index"],"state":[1],"roundedTop":[4,"rounded-top"],"roundedBottom":[4,"rounded-bottom"]}]);
@@ -12081,11 +12545,13 @@ const defineCustomElements = (opts) => {
12081
12545
  DuetNotification,
12082
12546
  DuetNotificationDrawer,
12083
12547
  DuetNumberInput,
12548
+ DuetPagination,
12084
12549
  DuetParagraph,
12085
12550
  DuetProgress,
12086
12551
  DuetRadio,
12087
12552
  DuetRadioGroup,
12088
12553
  DuetRangeSlider,
12554
+ DuetRangeStepper,
12089
12555
  DuetScrollable,
12090
12556
  DuetSelect,
12091
12557
  DuetSpacer,
@@ -12502,4 +12968,4 @@ const shadowCss = /*#__PURE__*/Object.freeze({
12502
12968
  scopeCss: scopeCss
12503
12969
  });
12504
12970
 
12505
- export { DuetAlert, DuetBadge, DuetBreadcrumb, DuetBreadcrumbs, DuetButton, DuetCaption, DuetCard, DuetCheckbox, DuetChoice, DuetChoiceGroup, DuetCollapsible, DuetCookieConsent, DuetDatePicker, DuetDivider, DuetEditableTable, DuetEditableTableButton, DuetEditableTableItem, DuetEmptyState, DuetFieldset, DuetFooter, DuetGrid, DuetGridItem, DuetHeader, DuetHeading, DuetHero, DuetIcon, DuetInput, DuetLabel, DuetLayout, DuetLink, DuetList, DuetListItem, DuetLogo, DuetModal, DuetNotification, DuetNotificationDrawer, DuetNumberInput, DuetParagraph, DuetProgress, DuetRadio, DuetRadioGroup, DuetRangeSlider, DuetScrollable, DuetSelect, DuetSpacer, DuetSpinner, DuetStep, DuetStepper, DuetTab, DuetTabGroup, DuetTable, DuetTextarea, DuetToggle, DuetTooltip, DuetTray, DuetUpload, DuetUploadAriaStatus, DuetVisuallyHidden, defineCustomElements, setAssetPath, setPlatformOptions };
12971
+ export { DuetAlert, DuetBadge, DuetBreadcrumb, DuetBreadcrumbs, DuetButton, DuetCaption, DuetCard, DuetCheckbox, DuetChoice, DuetChoiceGroup, DuetCollapsible, DuetCookieConsent, DuetDatePicker, DuetDivider, DuetEditableTable, DuetEditableTableButton, DuetEditableTableItem, DuetEmptyState, DuetFieldset, DuetFooter, DuetGrid, DuetGridItem, DuetHeader, DuetHeading, DuetHero, DuetIcon, DuetInput, DuetLabel, DuetLayout, DuetLink, DuetList, DuetListItem, DuetLogo, DuetModal, DuetNotification, DuetNotificationDrawer, DuetNumberInput, DuetPagination, DuetParagraph, DuetProgress, DuetRadio, DuetRadioGroup, DuetRangeSlider, DuetRangeStepper, DuetScrollable, DuetSelect, DuetSpacer, DuetSpinner, DuetStep, DuetStepper, DuetTab, DuetTabGroup, DuetTable, DuetTextarea, DuetToggle, DuetTooltip, DuetTray, DuetUpload, DuetUploadAriaStatus, DuetVisuallyHidden, defineCustomElements, setAssetPath, setPlatformOptions };