@duetds/components 5.2.0 → 5.2.3

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 (270) hide show
  1. package/hydrate/index.js +186 -100
  2. package/lib/cjs/{dom-66424ef2.js → dom-96576bce.js} +1 -1
  3. package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-button_2.cjs.entry.js +1 -1
  9. package/lib/cjs/duet-caption_4.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  13. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-editable-table_3.cjs.entry.js +4 -3
  19. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  30. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-number-input.cjs.entry.js +92 -47
  32. package/lib/cjs/duet-pagination_2.cjs.entry.js +39 -17
  33. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  45. package/lib/cjs/duet.cjs.js +4 -4
  46. package/lib/cjs/{focus-utils-bfb10d32.js → focus-utils-12f0a2cb.js} +1 -1
  47. package/lib/cjs/{index-a4844346.js → index-ba78fa3c.js} +11 -9
  48. package/lib/cjs/loader.cjs.js +3 -3
  49. package/lib/cjs/{shadow-css-1ff2f74f.js → shadow-css-38b9e725.js} +2 -3
  50. package/lib/collection/collection-manifest.json +1 -1
  51. package/lib/collection/components/duet-editable-table/duet-editable-table.js +2 -1
  52. package/lib/collection/components/duet-number-input/duet-number-input.js +22 -27
  53. package/lib/collection/components/duet-pagination/duet-pagination.js +18 -13
  54. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +28 -11
  55. package/lib/collection/components/duet-table/duet-table.css +30 -18
  56. package/lib/collection/utils/math.utils.js +76 -0
  57. package/lib/custom-elements-bundle/index.js +145 -78
  58. package/lib/duet/duet.esm.js +1 -1
  59. package/lib/duet/duet.js +1 -1
  60. package/lib/duet/{p-285714dd.entry.js → p-0146f86f.entry.js} +1 -1
  61. package/lib/duet/{p-b0a4dc6d.entry.js → p-02fdca38.entry.js} +1 -1
  62. package/lib/duet/{p-99fe93c6.system.entry.js → p-034aa5af.system.entry.js} +1 -1
  63. package/lib/duet/{p-f5613315.system.entry.js → p-072a20bb.system.entry.js} +1 -1
  64. package/lib/duet/{p-b35d6368.system.entry.js → p-07970e02.system.entry.js} +1 -1
  65. package/lib/duet/{p-fbec1a47.entry.js → p-119b3a75.entry.js} +1 -1
  66. package/lib/duet/{p-423d4211.system.entry.js → p-12eb57c0.system.entry.js} +1 -1
  67. package/lib/duet/{p-78de93b3.entry.js → p-17d0567c.entry.js} +1 -1
  68. package/lib/duet/p-1919ea71.system.entry.js +4 -0
  69. package/lib/duet/{p-97f1e254.entry.js → p-1b03c0b0.entry.js} +1 -1
  70. package/lib/duet/p-1d3fe5c7.js +5 -0
  71. package/lib/duet/{p-b4ca3864.system.entry.js → p-1d557ffa.system.entry.js} +1 -1
  72. package/lib/duet/{p-6a843f9e.entry.js → p-1e124cda.entry.js} +1 -1
  73. package/lib/duet/p-28ed49f6.entry.js +4 -0
  74. package/lib/duet/{p-e8f8374b.system.entry.js → p-2b1098f7.system.entry.js} +1 -1
  75. package/lib/duet/{p-271107d8.entry.js → p-30c2a422.entry.js} +1 -1
  76. package/lib/duet/{p-b16befbc.system.entry.js → p-36ad89c8.system.entry.js} +1 -1
  77. package/lib/duet/{p-fef3a403.system.entry.js → p-38d81ea7.system.entry.js} +1 -1
  78. package/lib/duet/{p-e7b761c5.system.js → p-392d3906.system.js} +1 -1
  79. package/lib/duet/{p-00bf0bb9.system.entry.js → p-3a1bcb33.system.entry.js} +1 -1
  80. package/lib/duet/{p-fa59ebf4.js → p-3b31184e.js} +0 -0
  81. package/lib/duet/{p-360f8fff.system.entry.js → p-3dcf6143.system.entry.js} +1 -1
  82. package/lib/duet/{p-ec6d63fc.entry.js → p-45fce3bd.entry.js} +1 -1
  83. package/lib/duet/{p-bf87d801.entry.js → p-4d661df0.entry.js} +1 -1
  84. package/lib/duet/{p-41cc3490.entry.js → p-4d6b63bd.entry.js} +1 -1
  85. package/lib/duet/{p-c0aca70c.entry.js → p-4dfd691c.entry.js} +1 -1
  86. package/lib/duet/{p-7a4764db.system.entry.js → p-4e1342e8.system.entry.js} +1 -1
  87. package/lib/duet/{p-d4dba079.system.entry.js → p-506d7234.system.entry.js} +1 -1
  88. package/lib/duet/{p-bb4d8e7b.entry.js → p-518d507a.entry.js} +1 -1
  89. package/lib/duet/{p-437fe50b.system.entry.js → p-532a7563.system.entry.js} +1 -1
  90. package/lib/duet/{p-790ee851.entry.js → p-5de61303.entry.js} +1 -1
  91. package/lib/duet/{p-a2fa0049.entry.js → p-62635fbd.entry.js} +1 -1
  92. package/lib/duet/p-63536b2d.entry.js +4 -0
  93. package/lib/duet/{p-01478a01.system.entry.js → p-64469525.system.entry.js} +1 -1
  94. package/lib/duet/{p-53ad61ed.entry.js → p-65527b10.entry.js} +1 -1
  95. package/lib/duet/{p-98039227.system.entry.js → p-68b86cf3.system.entry.js} +1 -1
  96. package/lib/duet/{p-c1d55269.system.entry.js → p-6a4e52a8.system.entry.js} +1 -1
  97. package/lib/duet/{p-fd0a3ab7.entry.js → p-6b7706d1.entry.js} +1 -1
  98. package/lib/duet/{p-1ff51ad8.system.entry.js → p-6e7f309d.system.entry.js} +1 -1
  99. package/lib/duet/p-6e853c11.system.entry.js +4 -0
  100. package/lib/duet/{p-9920ad3b.entry.js → p-70a3b04a.entry.js} +1 -1
  101. package/lib/duet/{p-cb8ebdd7.entry.js → p-72975917.entry.js} +1 -1
  102. package/lib/duet/{p-ee97a406.system.entry.js → p-73c4e3a3.system.entry.js} +1 -1
  103. package/lib/duet/{p-f91e88e3.system.entry.js → p-78627725.system.entry.js} +1 -1
  104. package/lib/duet/{p-641edb93.system.entry.js → p-7adfeba7.system.entry.js} +1 -1
  105. package/lib/duet/{p-88ffd1cc.entry.js → p-82492a56.entry.js} +1 -1
  106. package/lib/duet/p-835fbc11.js +4 -0
  107. package/lib/duet/{p-10585f06.system.entry.js → p-84a7b980.system.entry.js} +1 -1
  108. package/lib/duet/{p-9406ee60.entry.js → p-856b4648.entry.js} +1 -1
  109. package/lib/duet/{p-04061cef.entry.js → p-89fa490e.entry.js} +1 -1
  110. package/lib/duet/{p-72739cec.entry.js → p-8bc46a6e.entry.js} +1 -1
  111. package/lib/duet/{p-24721182.system.entry.js → p-8bd8f3b9.system.entry.js} +1 -1
  112. package/lib/duet/{p-05e069d8.entry.js → p-8e2ec8a1.entry.js} +1 -1
  113. package/lib/duet/{p-56d3e64f.entry.js → p-8eeccac4.entry.js} +1 -1
  114. package/lib/duet/{p-95a0db46.entry.js → p-92ab9288.entry.js} +1 -1
  115. package/lib/duet/{p-030e20d7.entry.js → p-96d1c0b2.entry.js} +1 -1
  116. package/lib/duet/{p-7021d0c6.system.entry.js → p-97a5f165.system.entry.js} +1 -1
  117. package/lib/duet/{p-071ebe1d.system.entry.js → p-9c850ee8.system.entry.js} +1 -1
  118. package/lib/duet/{p-0bee3151.system.entry.js → p-9fb0854f.system.entry.js} +1 -1
  119. package/lib/duet/{p-afd34b6b.system.entry.js → p-a2f3f08d.system.entry.js} +1 -1
  120. package/lib/duet/p-a81531cf.system.js +4 -0
  121. package/lib/duet/{p-08eb2200.entry.js → p-a9f17642.entry.js} +1 -1
  122. package/lib/duet/{p-d33b5ac5.system.entry.js → p-ab1cda11.system.entry.js} +1 -1
  123. package/lib/duet/{p-64685397.entry.js → p-ae7e7fbf.entry.js} +1 -1
  124. package/lib/duet/{p-76e38bb2.system.entry.js → p-b3dba7d7.system.entry.js} +1 -1
  125. package/lib/duet/{p-542af014.system.js → p-b668b67c.system.js} +0 -0
  126. package/lib/duet/{p-c7657242.entry.js → p-baf2428d.entry.js} +1 -1
  127. package/lib/duet/p-bb65d334.system.entry.js +4 -0
  128. package/lib/duet/{p-03b6ce80.entry.js → p-bbf4391c.entry.js} +1 -1
  129. package/lib/duet/{p-a509cc2b.system.entry.js → p-c54d7981.system.entry.js} +1 -1
  130. package/lib/duet/p-c6791e18.system.js +5 -0
  131. package/lib/duet/{p-e75c7aa8.system.entry.js → p-c6d4025f.system.entry.js} +1 -1
  132. package/lib/duet/{p-73cd4f03.system.entry.js → p-c6d99598.system.entry.js} +1 -1
  133. package/lib/duet/{p-19100783.system.entry.js → p-c75db094.system.entry.js} +1 -1
  134. package/lib/duet/{p-b08bb1fd.entry.js → p-c9c6d840.entry.js} +1 -1
  135. package/lib/duet/{p-495a1326.system.entry.js → p-cfcb5990.system.entry.js} +1 -1
  136. package/lib/duet/{p-95e1a336.entry.js → p-d16b2352.entry.js} +1 -1
  137. package/lib/duet/{p-5f009925.system.entry.js → p-d1f678be.system.entry.js} +1 -1
  138. package/lib/duet/{p-27d238c5.js → p-d4c234ed.js} +1 -1
  139. package/lib/duet/{p-7fe67436.system.entry.js → p-d506da98.system.entry.js} +1 -1
  140. package/lib/duet/{p-b8623ab8.entry.js → p-d96432a0.entry.js} +1 -1
  141. package/lib/duet/{p-5b1cbe5b.entry.js → p-dc5971bf.entry.js} +1 -1
  142. package/lib/duet/{p-3260eef0.entry.js → p-de6e8bfb.entry.js} +1 -1
  143. package/lib/duet/{p-30e901f2.system.entry.js → p-dfff5f16.system.entry.js} +1 -1
  144. package/lib/duet/{p-0ae816ee.entry.js → p-e27f1382.entry.js} +1 -1
  145. package/lib/duet/{p-68cbc3b7.entry.js → p-e2cc3eb4.entry.js} +1 -1
  146. package/lib/duet/{p-9496d6d4.entry.js → p-e575b990.entry.js} +1 -1
  147. package/lib/duet/{p-a843e579.system.entry.js → p-ee6352cf.system.entry.js} +1 -1
  148. package/lib/duet/{p-4a7f290f.entry.js → p-f66e69a0.entry.js} +1 -1
  149. package/lib/duet/p-f80195fa.entry.js +4 -0
  150. package/lib/duet/{p-b51928dc.system.entry.js → p-fd8ac2e7.system.entry.js} +1 -1
  151. package/lib/duet/{p-33388bf3.system.entry.js → p-febd0192.system.entry.js} +1 -1
  152. package/lib/duet/p-ff46ec81.system.js +16 -0
  153. package/lib/esm/{dom-3c479050.js → dom-3dbcb0d8.js} +1 -1
  154. package/lib/esm/duet-action-button.entry.js +1 -1
  155. package/lib/esm/duet-alert.entry.js +1 -1
  156. package/lib/esm/duet-badge.entry.js +1 -1
  157. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  158. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  159. package/lib/esm/duet-button_2.entry.js +1 -1
  160. package/lib/esm/duet-caption_4.entry.js +1 -1
  161. package/lib/esm/duet-card.entry.js +1 -1
  162. package/lib/esm/duet-checkbox.entry.js +1 -1
  163. package/lib/esm/duet-choice_2.entry.js +2 -2
  164. package/lib/esm/duet-collapsible.entry.js +1 -1
  165. package/lib/esm/duet-combobox.entry.js +1 -1
  166. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  167. package/lib/esm/duet-date-picker.entry.js +2 -2
  168. package/lib/esm/duet-divider_2.entry.js +1 -1
  169. package/lib/esm/duet-editable-table_3.entry.js +4 -3
  170. package/lib/esm/duet-empty-state.entry.js +1 -1
  171. package/lib/esm/duet-fieldset.entry.js +1 -1
  172. package/lib/esm/duet-footer.entry.js +1 -1
  173. package/lib/esm/duet-grid_2.entry.js +1 -1
  174. package/lib/esm/duet-header_2.entry.js +1 -1
  175. package/lib/esm/duet-hero.entry.js +1 -1
  176. package/lib/esm/duet-icon.entry.js +1 -1
  177. package/lib/esm/duet-input_2.entry.js +1 -1
  178. package/lib/esm/duet-layout.entry.js +1 -1
  179. package/lib/esm/duet-list_2.entry.js +1 -1
  180. package/lib/esm/duet-modal.entry.js +2 -2
  181. package/lib/esm/duet-notification_2.entry.js +1 -1
  182. package/lib/esm/duet-number-input.entry.js +92 -47
  183. package/lib/esm/duet-pagination_2.entry.js +39 -17
  184. package/lib/esm/duet-progress.entry.js +1 -1
  185. package/lib/esm/duet-radio_2.entry.js +1 -1
  186. package/lib/esm/duet-range-slider.entry.js +1 -1
  187. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  188. package/lib/esm/duet-select.entry.js +1 -1
  189. package/lib/esm/duet-step_2.entry.js +1 -1
  190. package/lib/esm/duet-textarea.entry.js +1 -1
  191. package/lib/esm/duet-toggle.entry.js +1 -1
  192. package/lib/esm/duet-tooltip.entry.js +1 -1
  193. package/lib/esm/duet-tray.entry.js +1 -1
  194. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  195. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  196. package/lib/esm/duet.js +4 -4
  197. package/lib/esm/{focus-utils-3af074ea.js → focus-utils-3769afc3.js} +1 -1
  198. package/lib/esm/{index-ab2bfa68.js → index-374256c8.js} +11 -9
  199. package/lib/esm/loader.js +3 -3
  200. package/lib/esm/polyfills/css-shim.js +1 -1
  201. package/lib/esm/{shadow-css-fbe49d20.js → shadow-css-501eda9a.js} +2 -3
  202. package/lib/esm-es5/{dom-3c479050.js → dom-3dbcb0d8.js} +0 -0
  203. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  204. package/lib/esm-es5/duet-alert.entry.js +1 -1
  205. package/lib/esm-es5/duet-badge.entry.js +1 -1
  206. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  207. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  208. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  209. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  210. package/lib/esm-es5/duet-card.entry.js +1 -1
  211. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  212. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  213. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  214. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  215. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  216. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  217. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  218. package/lib/esm-es5/duet-editable-table_3.entry.js +2 -2
  219. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  220. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  221. package/lib/esm-es5/duet-footer.entry.js +1 -1
  222. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  223. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  224. package/lib/esm-es5/duet-hero.entry.js +1 -1
  225. package/lib/esm-es5/duet-icon.entry.js +1 -1
  226. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  227. package/lib/esm-es5/duet-layout.entry.js +1 -1
  228. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  229. package/lib/esm-es5/duet-modal.entry.js +1 -1
  230. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  231. package/lib/esm-es5/duet-number-input.entry.js +2 -2
  232. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  233. package/lib/esm-es5/duet-progress.entry.js +1 -1
  234. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  235. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  236. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  237. package/lib/esm-es5/duet-select.entry.js +1 -1
  238. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  239. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  240. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  241. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  242. package/lib/esm-es5/duet-tray.entry.js +1 -1
  243. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  244. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  245. package/lib/esm-es5/duet.js +1 -1
  246. package/lib/esm-es5/{focus-utils-3af074ea.js → focus-utils-3769afc3.js} +1 -1
  247. package/lib/esm-es5/index-374256c8.js +5 -0
  248. package/lib/esm-es5/loader.js +1 -1
  249. package/lib/esm-es5/shadow-css-501eda9a.js +15 -0
  250. package/lib/types/components/duet-number-input/duet-number-input.d.ts +0 -1
  251. package/lib/types/components/duet-pagination/duet-pagination.d.ts +1 -1
  252. package/lib/types/components/duet-range-stepper/duet-range-stepper.d.ts +3 -1
  253. package/lib/types/components.d.ts +192 -80
  254. package/lib/types/utils/math.utils.d.ts +11 -0
  255. package/package.json +6 -6
  256. package/lib/collection/components/duet-number-input/number-input-utils.js +0 -26
  257. package/lib/duet/p-12c89686.system.js +0 -4
  258. package/lib/duet/p-37dc064c.js +0 -4
  259. package/lib/duet/p-4972c76e.system.js +0 -4
  260. package/lib/duet/p-5a5d8fb1.entry.js +0 -4
  261. package/lib/duet/p-66536958.system.entry.js +0 -4
  262. package/lib/duet/p-92a25fb5.system.js +0 -16
  263. package/lib/duet/p-971f42d6.system.entry.js +0 -4
  264. package/lib/duet/p-98a9556f.js +0 -4
  265. package/lib/duet/p-a76bf729.entry.js +0 -4
  266. package/lib/duet/p-b7462f8c.system.entry.js +0 -4
  267. package/lib/duet/p-fe99b9cb.entry.js +0 -4
  268. package/lib/esm-es5/index-ab2bfa68.js +0 -4
  269. package/lib/esm-es5/shadow-css-fbe49d20.js +0 -15
  270. package/lib/types/components/duet-number-input/number-input-utils.d.ts +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.3.9"};
5
+ const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.3.12"};
6
6
 
7
7
  let scopeId;
8
8
  let contentRef;
@@ -91,7 +91,7 @@ const registerStyle = (scopeId, cssText, allowCS) => {
91
91
  };
92
92
  const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
93
93
  let scopeId = getScopeId(cmpMeta);
94
- let style = styles.get(scopeId);
94
+ const style = styles.get(scopeId);
95
95
  // if an element is NOT connected then getRootNode() will return the wrong root node
96
96
  // so the fallback is to always use the document for the root node in those cases
97
97
  styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc;
@@ -181,7 +181,7 @@ const h$1 = (nodeName, vnodeData, ...children) => {
181
181
  let slotName = null;
182
182
  let simple = false;
183
183
  let lastSimple = false;
184
- let vNodeChildren = [];
184
+ const vNodeChildren = [];
185
185
  const walk = (c) => {
186
186
  for (let i = 0; i < c.length; i++) {
187
187
  child = c[i];
@@ -390,7 +390,7 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
390
390
  if ((isProp || (isComplex && newValue !== null)) && !isSvg) {
391
391
  try {
392
392
  if (!elm.tagName.includes('-')) {
393
- let n = newValue == null ? '' : newValue;
393
+ const n = newValue == null ? '' : newValue;
394
394
  // Workaround for Safari, moving the <input> caret when re-assigning the same valued
395
395
  if (memberName === 'list') {
396
396
  isProp = false;
@@ -467,7 +467,7 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
467
467
  };
468
468
  const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
469
469
  // tslint:disable-next-line: prefer-const
470
- let newVNode = newParentVNode.$children$[childIndex];
470
+ const newVNode = newParentVNode.$children$[childIndex];
471
471
  let i = 0;
472
472
  let elm;
473
473
  let childNode;
@@ -800,7 +800,7 @@ const patch = (oldVNode, newVNode) => {
800
800
  };
801
801
  const updateFallbackSlotVisibility = (elm) => {
802
802
  // tslint:disable-next-line: prefer-const
803
- let childNodes = elm.childNodes;
803
+ const childNodes = elm.childNodes;
804
804
  let childNode;
805
805
  let i;
806
806
  let ilen;
@@ -853,8 +853,8 @@ const relocateSlotContent = (elm) => {
853
853
  let relocateNodeData;
854
854
  let j;
855
855
  let i = 0;
856
- let childNodes = elm.childNodes;
857
- let ilen = childNodes.length;
856
+ const childNodes = elm.childNodes;
857
+ const ilen = childNodes.length;
858
858
  for (; i < ilen; i++) {
859
859
  childNode = childNodes[i];
860
860
  if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {
@@ -3267,7 +3267,7 @@ const h = (nodeName, vnodeData, ...children) => {
3267
3267
  let slotName = null;
3268
3268
  let simple = false;
3269
3269
  let lastSimple = false;
3270
- let vNodeChildren = [];
3270
+ const vNodeChildren = [];
3271
3271
  const walk = (c) => {
3272
3272
  for (let i = 0; i < c.length; i++) {
3273
3273
  child = c[i];
@@ -5931,6 +5931,7 @@ const DuetEditableTable$1 = class extends H {
5931
5931
  render() {
5932
5932
  return (h$1(Host, { class: {
5933
5933
  [`duet-editable-table-${this.variation}`]: true,
5934
+ "duet-editable-table": true,
5934
5935
  [`duet-editable-table-${this.theme}`]: true,
5935
5936
  // sticky only valid when in regular table layout
5936
5937
  "duet-editable-table-scrollable": this.breakpoint === "none-scrollable",
@@ -5938,7 +5939,7 @@ const DuetEditableTable$1 = class extends H {
5938
5939
  "duet-editable-table-actions": !!this.actions,
5939
5940
  "duet-m-0": this.margin === "none",
5940
5941
  "duet-theme-turva": this.theme === "turva",
5941
- } }, h$1("duet-table", { sticky: this.sticky, stickyDistance: this.stickyDistance, margin: this.margin, theme: this.theme, variation: this.variation, breakpoint: this.breakpoint }, h$1("table", { role: this.accessibleRole }, h$1("caption", null, h$1("slot", { name: "tcaption" })), h$1("thead", null, h$1("tr", null, h$1("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, h$1("slot", { name: "thead-first" }))), this.renderTableHeader(), h$1("tr", null, h$1("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, h$1("slot", { name: "thead-last" })))), h$1("tbody", null, this.renderTableBody()), h$1("tfoot", null, h$1("tr", null, h$1("th", { class: "duet-editable-table-footer-menu", colSpan: 99 }, h$1("slot", { name: "tfoot" }))))))));
5942
+ } }, h$1("duet-table", { class: "duet-editable-table-table", sticky: this.sticky, stickyDistance: this.stickyDistance, margin: this.margin, theme: this.theme, variation: this.variation, breakpoint: this.breakpoint }, h$1("table", { role: this.accessibleRole }, h$1("caption", null, h$1("slot", { name: "tcaption" })), h$1("thead", null, h$1("tr", null, h$1("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, h$1("slot", { name: "thead-first" }))), this.renderTableHeader(), h$1("tr", null, h$1("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, h$1("slot", { name: "thead-last" })))), h$1("tbody", null, this.renderTableBody()), h$1("tfoot", null, h$1("tr", null, h$1("th", { class: "duet-editable-table-footer-menu", colSpan: 99 }, h$1("slot", { name: "tfoot" }))))))));
5942
5943
  }
5943
5944
  get element() { return this; }
5944
5945
  static get style() { return duetEditableTableCss; }
@@ -8926,27 +8927,77 @@ var actionAdd={"title":"action-add","tags":"action add plus","svg":"<svg fill=\"
8926
8927
 
8927
8928
  var actionSubtract={"title":"action-subtract","tags":"action subtract minus remove delete cancel","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M.75 12.788a.75.75 0 0 1 0-1.5h22.5a.75.75 0 0 1 0 1.5z\"/></svg>"};
8928
8929
 
8929
- const parseLocaleFloat = (str, locale) => {
8930
- // remove spaces and non-numeric characters
8931
- // "12 345,67€" -> "12345,67"
8932
- // "12,345.67€" -> "12,345.67"
8933
- str = str.replace(/\s+/g, "").replace(/[^0-9\.,]+/g, "");
8934
- switch (locale) {
8935
- case "fi-FI":
8936
- case "sv-SE":
8937
- // "12345,67" -> "12345.67"
8938
- str = str.replace(",", ".");
8939
- break;
8940
- case "en-US":
8941
- case "en-GB":
8942
- // "12,345.67" -> "12345.67"
8943
- str = str.replace(/,/g, "");
8944
- break;
8945
- default:
8946
- throw new TypeError(`Unrecognised locale: ${locale}`);
8947
- }
8948
- return parseFloat(str);
8949
- };
8930
+ /**
8931
+ * function that takes a string value or number and looks for any character resembling a minus,
8932
+ * it will then replace it with a hypen-minus and return the parseFloat value of that string
8933
+ * it will string / number cast the value to a number and return that number
8934
+ * known issues: if a negative number is indicated with other characters than a "minus like" character, it will throw
8935
+ * - an example is that some locales use (number) as an indicator for negative values instead of -number
8936
+ */
8937
+ function SafeParseFloat(value, locale) {
8938
+ let results;
8939
+ if (typeof value === "string") {
8940
+ //the minuses are NOT the same characters, they differ in unicode for some languages
8941
+ // "", "−", "–", and "—"
8942
+ let convertedMinus = value.replace("−", "-").replace("‐", "-").replace("−", "-").replace("–", "-").replace("—", "-");
8943
+ if (locale) {
8944
+ convertedMinus = ConvertToEnUS(convertedMinus, locale, false);
8945
+ }
8946
+ // replace all possible spaces from the string
8947
+ convertedMinus = convertedMinus.replace(/\s+/g, "");
8948
+ convertedMinus = convertedMinus.replace(/(?!^-?\d*\.{0,1}\d+$)/g, "");
8949
+ /*
8950
+ example: https://regex101.com/r/np7FqS/1
8951
+ /(?!^-?\d*\.{0,1}\d+$)/g
8952
+ Negative Lookahead (?!^-?\d*\.{0,1}\d+$)
8953
+ Assert that the Regex below does not match
8954
+ ^ asserts position at start of a line
8955
+ - matches the character - with index 4510 (2D16 or 558) literally (case sensitive)
8956
+ ? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
8957
+ \d matches a digit (equivalent to [0-9])
8958
+ * matches the previous token between zero and unlimited times, as many times as possible, giving back as needed (greedy)
8959
+ \. matches the character . with index 4610 (2E16 or 568) literally (case sensitive)
8960
+ {0,1} matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
8961
+ \d matches a digit (equivalent to [0-9])
8962
+ + matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)
8963
+ $ asserts position at the end of a line
8964
+ Global pattern flags
8965
+ g modifier: global. All matches (don't return after first match)
8966
+ m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string)
8967
+ */
8968
+ results = parseFloat(convertedMinus);
8969
+ }
8970
+ if (typeof value === "number") {
8971
+ results = parseFloat(String(value));
8972
+ }
8973
+ if (!isNaN(Number(results))) {
8974
+ return Number(results);
8975
+ }
8976
+ if (value === null || value === undefined) {
8977
+ return null;
8978
+ }
8979
+ throw new Error("Invalid value passed to SafeParseFloat");
8980
+ }
8981
+ // string conversion function that takes a locale and coverts decimal indicator to en-US indicator
8982
+ // and takes the thousand separator for the given locale and transforms that to the en-US separator
8983
+ function ConvertToEnUS(value, locale, replaceThousands = false) {
8984
+ let replacedValue;
8985
+ const localeSeparator = new Intl.NumberFormat(locale).format(1 / 2).replace(/[0-9]/g, "");
8986
+ const enUSSeparator = new Intl.NumberFormat("en-US").format(1 / 2).replace(/[0-9]/g, "");
8987
+ const thousandSeparator = new Intl.NumberFormat(locale).format(1000).replace(/[0-9]/g, "");
8988
+ const enUSThousandSeparator = new Intl.NumberFormat("en-US").format(1000).replace(/[0-9]/g, "");
8989
+ // double conversions to avoid ,->. and .->, at the same time resulting in a double conversion
8990
+ replacedValue = value.replace(localeSeparator, "DECIMALSEPARATOR");
8991
+ if (replaceThousands) {
8992
+ replacedValue = replacedValue.replace(thousandSeparator, "THOUSANDSEPARATOR");
8993
+ }
8994
+ else {
8995
+ replacedValue = replacedValue.replace(thousandSeparator, "");
8996
+ }
8997
+ replacedValue = replacedValue.replace("DECIMALSEPARATOR", enUSSeparator);
8998
+ replacedValue = replacedValue.replace("THOUSANDSEPARATOR", enUSThousandSeparator);
8999
+ return replacedValue;
9000
+ }
8950
9001
  const roundTo = (val, multiple) => Math.round(val / multiple) * multiple;
8951
9002
  const clamp = (val, min, max) => Math.min(Math.max(val, min), max);
8952
9003
 
@@ -9123,7 +9174,7 @@ const DuetNumberInput$1 = class extends H {
9123
9174
  this.handleChange = (ev) => {
9124
9175
  const input = ev.target;
9125
9176
  if (input && input.value) {
9126
- let value = this.cleanValue(input.value);
9177
+ let value = SafeParseFloat(input.value, this.locale);
9127
9178
  // Make sure that everything works if the user clears the input and
9128
9179
  // starts typing non-numeric characters.
9129
9180
  if (isNaN(value) || value == null) {
@@ -9133,7 +9184,7 @@ const DuetNumberInput$1 = class extends H {
9133
9184
  this.duetInput.emit({
9134
9185
  component: "duet-number-input",
9135
9186
  originalEvent: ev,
9136
- value: this.cleanValue(this.value).toString(),
9187
+ value: SafeParseFloat(this.value, this.locale).toString(),
9137
9188
  valueAsNumber: value,
9138
9189
  });
9139
9190
  }
@@ -9154,30 +9205,29 @@ const DuetNumberInput$1 = class extends H {
9154
9205
  if (input.value) {
9155
9206
  // On blur we want to make sure that the user input is between the min and max values,
9156
9207
  // and also round it up or down to the nearest step.
9157
- let value = this.cleanValue(input.value);
9208
+ let value = SafeParseFloat(input.value, this.locale);
9158
9209
  if (this.rounding) {
9159
9210
  value = roundTo(value, this.step);
9160
9211
  }
9161
9212
  value = clamp(value, this.min, this.max);
9162
- if (value !== this.cleanValue(this.value) || value !== this.cleanValue(this.focusedValue)) {
9213
+ if (value !== SafeParseFloat(this.value, this.locale) ||
9214
+ value !== SafeParseFloat(this.focusedValue, this.locale)) {
9163
9215
  this.setValue(value);
9164
9216
  this.emitChange(ev);
9165
9217
  }
9166
9218
  }
9167
- else {
9168
- this.duetChange.emit({
9169
- originalEvent: ev,
9170
- value: null,
9171
- valueAsNumber: null,
9172
- component: "duet-number-input",
9173
- });
9174
- }
9219
+ this.duetChange.emit({
9220
+ originalEvent: ev,
9221
+ value: null,
9222
+ valueAsNumber: null,
9223
+ component: "duet-number-input",
9224
+ });
9175
9225
  };
9176
9226
  /**
9177
9227
  * Local methods.
9178
9228
  */
9179
9229
  this.emitChange = (ev) => {
9180
- const currentValue = this.cleanValue(this.value);
9230
+ const currentValue = SafeParseFloat(this.value, this.locale);
9181
9231
  this.duetChange.emit({
9182
9232
  originalEvent: ev,
9183
9233
  value: currentValue.toString(),
@@ -9185,10 +9235,6 @@ const DuetNumberInput$1 = class extends H {
9185
9235
  component: "duet-number-input",
9186
9236
  });
9187
9237
  };
9188
- this.cleanValue = (value) => {
9189
- // Returns a number that can be used in calculations.
9190
- return value ? parseLocaleFloat(value, this.locale) : null;
9191
- };
9192
9238
  this.localizeValue = (value) => {
9193
9239
  // Returns a localized string that can be used as input value.
9194
9240
  return value.toLocaleString(this.locale);
@@ -9205,13 +9251,13 @@ const DuetNumberInput$1 = class extends H {
9205
9251
  if (ev) {
9206
9252
  ev.preventDefault();
9207
9253
  }
9208
- const currentValue = this.cleanValue(this.value);
9254
+ const cleanedValue = SafeParseFloat(this.value, this.locale);
9209
9255
  // Only fire change event when necessary
9210
- if (currentValue === this.max) {
9256
+ if (cleanedValue === this.max) {
9211
9257
  return;
9212
9258
  }
9213
9259
  // in cases where no value set, incrementing should go to min
9214
- let newValue = currentValue == null ? this.min : currentValue + this.step;
9260
+ let newValue = cleanedValue == null ? this.min : cleanedValue + this.step;
9215
9261
  // handle cases where value is not multiple of step
9216
9262
  // e.g. if someone enters 199, with a step of 100, add should go to 200
9217
9263
  // and if someone enters 101, add should also go to 200
@@ -9219,8 +9265,8 @@ const DuetNumberInput$1 = class extends H {
9219
9265
  const adjustment = newValue % this.step;
9220
9266
  newValue -= adjustment;
9221
9267
  }
9222
- newValue = clamp(newValue, this.min, this.max);
9223
- this.value = this.localizeValue(newValue);
9268
+ const clampedValue = clamp(newValue, this.min, this.max);
9269
+ this.value = this.localizeValue(clampedValue);
9224
9270
  this.emitChange(ev);
9225
9271
  };
9226
9272
  this.subtract = (ev) => {
@@ -9229,7 +9275,7 @@ const DuetNumberInput$1 = class extends H {
9229
9275
  if (ev) {
9230
9276
  ev.preventDefault();
9231
9277
  }
9232
- const currentValue = this.cleanValue(this.value);
9278
+ const currentValue = SafeParseFloat(this.value, this.locale);
9233
9279
  // Only fire change event when necessary.
9234
9280
  if (currentValue === this.min) {
9235
9281
  return;
@@ -9254,7 +9300,7 @@ const DuetNumberInput$1 = class extends H {
9254
9300
  inheritGlobalTheme(this);
9255
9301
  // Format the number value to a localeString initially.
9256
9302
  if (this.value) {
9257
- this.value = this.localizeValue(parseLocaleFloat(this.value, this.locale));
9303
+ this.value = this.localizeValue(SafeParseFloat(this.value, this.locale));
9258
9304
  }
9259
9305
  }
9260
9306
  /**
@@ -9269,7 +9315,7 @@ const DuetNumberInput$1 = class extends H {
9269
9315
  this.duetInputElement.value = "";
9270
9316
  }
9271
9317
  formatAnnouncement() {
9272
- const current = this.cleanValue(this.value);
9318
+ const current = SafeParseFloat(this.value, this.locale);
9273
9319
  if (current == null) {
9274
9320
  return "";
9275
9321
  }
@@ -9282,7 +9328,7 @@ const DuetNumberInput$1 = class extends H {
9282
9328
  render() {
9283
9329
  const identifier = this.identifier || this.inputId;
9284
9330
  const maxlength = `${this.localizeValue(this.max)} ${this.unit}`.length;
9285
- const cleanedValue = this.cleanValue(this.value);
9331
+ const cleanedValue = SafeParseFloat(this.value, this.locale);
9286
9332
  return (h$1(Host, { class: {
9287
9333
  "duet-theme-turva": this.theme === "turva",
9288
9334
  "duet-expand": this.expand,
@@ -9428,6 +9474,7 @@ const DuetPagination$1 = class extends H {
9428
9474
  await this.setFocus();
9429
9475
  }
9430
9476
  }
9477
+ return true;
9431
9478
  };
9432
9479
  //helper to emit relevant page events
9433
9480
  this.emitPageEvent = debounce((ev, passedPage) => {
@@ -9441,7 +9488,7 @@ const DuetPagination$1 = class extends H {
9441
9488
  type: "page",
9442
9489
  originalEvent: ev,
9443
9490
  });
9444
- }, 500);
9491
+ }, 100);
9445
9492
  // this will return the entered number, or the current page if the user presses enter
9446
9493
  this.getEnteredNumber = debounce(ev => {
9447
9494
  this.emitPageEvent(ev, this.numbersStore);
@@ -9459,7 +9506,7 @@ const DuetPagination$1 = class extends H {
9459
9506
  }, 500);
9460
9507
  }
9461
9508
  watchStateHandler(newValue, oldValue) {
9462
- this.actionChain(newValue, oldValue);
9509
+ return this.actionChain(newValue, oldValue);
9463
9510
  }
9464
9511
  /**
9465
9512
  * Component lifecycle events.
@@ -9487,6 +9534,7 @@ const DuetPagination$1 = class extends H {
9487
9534
  e.preventDefault();
9488
9535
  e.stopPropagation();
9489
9536
  this.current = this.current + dir;
9537
+ this.emitPageEvent(e);
9490
9538
  }
9491
9539
  //handle a11y keyboard navigation events
9492
9540
  async onKeyboardDown(e) {
@@ -9529,8 +9577,9 @@ const DuetPagination$1 = class extends H {
9529
9577
  sectionClickHandler(e, direction) {
9530
9578
  e.preventDefault();
9531
9579
  let next = this.internalSectionIndex + direction;
9532
- if (next >= this.totalPages / this.take) {
9533
- next = this.totalPages / this.take - 1;
9580
+ const takePerVisibleItems = this.take * this.visibleItems;
9581
+ if (next * takePerVisibleItems > this.total) {
9582
+ next = this.internalSectionIndex;
9534
9583
  }
9535
9584
  const newSection = next;
9536
9585
  this.internalSectionIndex = newSection >= 0 ? newSection : 0;
@@ -9540,12 +9589,14 @@ const DuetPagination$1 = class extends H {
9540
9589
  e.preventDefault();
9541
9590
  this.internalSectionIndex = 0;
9542
9591
  this.current = 1;
9592
+ this.emitPageEvent(e);
9543
9593
  }
9544
9594
  //handles click on the jump (total) button
9545
9595
  jumpToEnd(e) {
9546
9596
  e.preventDefault();
9547
- this.internalSectionIndex = this.totalPages / this.take - 1;
9597
+ this.internalSectionIndex = Math.ceil(this.totalPages / this.take - 1);
9548
9598
  this.current = this.totalPages;
9599
+ this.emitPageEvent(e);
9549
9600
  }
9550
9601
  // render the individual page numbers
9551
9602
  renderPageNumbers() {
@@ -9585,7 +9636,7 @@ const DuetPagination$1 = class extends H {
9585
9636
  }, role: "menubar", "aria-label": this.accessibleLabels.pagination_label, "aria-description": this.accessibleLabels.description }, h$1("li", { class: {
9586
9637
  "duet-pagination-page-button": true,
9587
9638
  "duet-pagination-button-first": true,
9588
- }, role: "menuitem", part: "navigation-arrow" }, h$1("duet-action-button", { disabled: this.internalSectionIndex === 0 && this.current <= 1, "data-direction": "back", onClick: e => this.onMouseHandler(e, -1), "aria-label": this.accessibleLabels.previous_page, "icon-name": "action-arrow-left-small" })), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (h$1(Fragment$1, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", variation: "plain", color: "secondary", margin: "none", accessibleLabel: this.accessibleLabels.first_page, onClick: e => this.jumpToStart(e) }, h$1("div", { class: "duet-pagination-page-number" }, "1"))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.prev_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, -1) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))))), this.renderPageNumbers(), this.internalSectionIndex !== this.totalPages / this.visibleItems - 1 && this.shouldDisplayNavigation() && (h$1(Fragment$1, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.next_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, 1) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("duet-button", { class: "duet-pagination-link", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.last_page, onClick: e => this.jumpToEnd(e) }, h$1("div", { class: "duet-pagination-page-number" }, this.totalPages))))), h$1("li", { class: {
9639
+ }, role: "menuitem", part: "navigation-arrow" }, h$1("duet-action-button", { disabled: this.internalSectionIndex === 0 && this.current <= 1, "data-direction": "back", onClick: e => this.onMouseHandler(e, -1), "aria-label": this.accessibleLabels.previous_page, "icon-name": "action-arrow-left-small" })), this.internalSectionIndex !== 0 && this.shouldDisplayNavigation() && (h$1(Fragment$1, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("duet-button", { class: "duet-pagination-link duet-pagination-link-jump-back", "center-text": "true", variation: "plain", color: "secondary", margin: "none", accessibleLabel: this.accessibleLabels.first_page, onClick: e => this.jumpToStart(e) }, h$1("div", { class: "duet-pagination-page-number" }, "1"))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("duet-button", { class: "duet-pagination-link duet-pagination-link-dots-back", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.prev_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, -1) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))))), this.renderPageNumbers(), this.internalSectionIndex * (this.visibleItems + 2) < this.totalPages && this.shouldDisplayNavigation() && (h$1(Fragment$1, null, h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-section" }, h$1("duet-button", { class: "duet-pagination-link duet-pagination-link-dots-forward", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.next_section.replace("{0}", `${this.visibleItems}`), onClick: e => this.sectionClickHandler(e, 1) }, h$1("div", { class: "duet-pagination-page-number", "aria-hidden": "true" }, "..."))), h$1("li", { class: "duet-pagination-item", role: "menuitem", part: "navigation-jump" }, h$1("duet-button", { class: "duet-pagination-link duet-pagination-link-jump-forward", "center-text": "true", color: "secondary", variation: "plain", margin: "none", accessibleLabel: this.accessibleLabels.last_page, onClick: e => this.jumpToEnd(e) }, h$1("div", { class: "duet-pagination-page-number" }, this.totalPages))))), h$1("li", { class: {
9589
9640
  "duet-pagination-page-button": true,
9590
9641
  "duet-pagination-button-last": true,
9591
9642
  }, role: "menuitem", part: "navigation-arrow" }, h$1("duet-action-button", { disabled: this.current === this.totalPages &&
@@ -10216,15 +10267,15 @@ const DuetRangeStepper$1 = class extends H {
10216
10267
  this.handleStepClick(e);
10217
10268
  };
10218
10269
  }
10219
- watchStateHandler(newValue) {
10220
- if (newValue === 1) {
10270
+ watchStepIndexStateHandler(newValue) {
10271
+ if (newValue <= 1) {
10221
10272
  this.leftBnRef.setAttribute("disabled", "");
10222
10273
  this.rightBnRef.focus();
10223
10274
  }
10224
10275
  else {
10225
10276
  this.leftBnRef.removeAttribute("disabled");
10226
10277
  }
10227
- if (newValue === this.total / this.stepSize) {
10278
+ if (newValue >= this.total / this.stepSize) {
10228
10279
  this.rightBnRef.setAttribute("disabled", "");
10229
10280
  this.leftBnRef.focus();
10230
10281
  }
@@ -10232,12 +10283,20 @@ const DuetRangeStepper$1 = class extends H {
10232
10283
  this.rightBnRef.removeAttribute("disabled");
10233
10284
  }
10234
10285
  }
10286
+ watchStepSizeStateHandler(newValue, oldValue) {
10287
+ if (newValue !== oldValue) {
10288
+ if (this.stepIndex * newValue > this.total) {
10289
+ this.stepIndex = this.total / newValue;
10290
+ }
10291
+ }
10292
+ }
10235
10293
  handleStepClick(e) {
10294
+ const from = this.stepIndex * this.stepSize - this.stepSize;
10236
10295
  this.duetRangeStepUpdate.emit({
10237
10296
  originalEvent: e,
10238
10297
  component: "duet-range-stepper",
10239
- from: this.stepIndex * this.stepSize - this.stepSize,
10240
- to: this.stepIndex * this.stepSize,
10298
+ from: from,
10299
+ to: this.getTo(),
10241
10300
  index: this.stepIndex,
10242
10301
  });
10243
10302
  }
@@ -10245,7 +10304,7 @@ const DuetRangeStepper$1 = class extends H {
10245
10304
  inheritGlobalTheme(this);
10246
10305
  }
10247
10306
  componentDidLoad() {
10248
- this.watchStateHandler(this.stepIndex);
10307
+ this.watchStepIndexStateHandler(this.stepIndex);
10249
10308
  }
10250
10309
  increment(direction) {
10251
10310
  const newIndex = this.stepIndex + direction;
@@ -10253,20 +10312,28 @@ const DuetRangeStepper$1 = class extends H {
10253
10312
  this.stepIndex = 1;
10254
10313
  }
10255
10314
  else {
10256
- if (newIndex * this.stepSize <= this.total) {
10315
+ if (newIndex * this.stepSize < this.total + this.stepSize) {
10257
10316
  this.stepIndex = newIndex;
10258
10317
  }
10318
+ else if (newIndex * this.stepSize > this.total + this.stepSize) {
10319
+ this.stepIndex = Math.floor(this.total / this.stepSize);
10320
+ }
10259
10321
  }
10260
10322
  }
10323
+ getTo() {
10324
+ const to = this.stepIndex * this.stepSize;
10325
+ const result = to > this.total ? this.total : to;
10326
+ return result;
10327
+ }
10261
10328
  generateStepSize() {
10262
10329
  // this function uses this.stepIndex and this.range to generate a range of number like 1-100
10263
10330
  // this is used to generate the step size
10264
- let start = (this.stepIndex - 1) * this.stepSize;
10331
+ let start = Math.floor((this.stepIndex - 1) * this.stepSize);
10265
10332
  //easy fix for starting position
10266
10333
  if (start === 0) {
10267
10334
  start = 1;
10268
10335
  }
10269
- const end = this.stepIndex * this.stepSize;
10336
+ const end = Math.floor(this.stepIndex * this.stepSize);
10270
10337
  return this.ariaLabels.x_of_y
10271
10338
  .replace("{0}", String(start))
10272
10339
  .replace("{1}", String(end))
@@ -10304,7 +10371,8 @@ const DuetRangeStepper$1 = class extends H {
10304
10371
  }
10305
10372
  get element() { return this; }
10306
10373
  static get watchers() { return {
10307
- "stepIndex": ["watchStateHandler"]
10374
+ "stepIndex": ["watchStepIndexStateHandler"],
10375
+ "stepSize": ["watchStepSizeStateHandler"]
10308
10376
  }; }
10309
10377
  static get style() { return duetRangeStepperCss; }
10310
10378
  };
@@ -11230,7 +11298,7 @@ const DuetTabGroup$1 = class extends H {
11230
11298
  static get style() { return duetTabGroupCss; }
11231
11299
  };
11232
11300
 
11233
- const duetTableCss = "duet-table{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:20px !important;display:block;font-variant-numeric:tabular-nums}duet-table table,duet-table thead,duet-table tbody,duet-table tfoot,duet-table th,duet-table td,duet-table tr{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}duet-table.duet-m-0{margin:0 !important}duet-table table{width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;text-align:left;border-spacing:0;border-collapse:separate}duet-table.duet-theme-turva table{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}duet-table td{-webkit-hyphens:auto;hyphens:auto;color:#00294d}duet-table.duet-theme-turva td{color:#171c3a}duet-table th{font-weight:600;line-height:1.25;color:#657787;text-align:left}duet-table.duet-theme-turva th{color:#747475}duet-table tbody th{font-weight:600;color:#00294d}duet-table.duet-theme-turva tbody th{color:#171c3a}duet-table .duet-table-action-row td:last-child{justify-self:end;padding-right:20px !important;white-space:nowrap}.duet-table-flattened tbody tr{display:grid;grid-template-columns:repeat(2, 1fr);grid-auto-rows:auto;gap:10px}.duet-table-flattened tbody tr.duet-table-action-row td:last-child::before{padding:0;content:\"\"}.duet-table-flattened thead tr{position:absolute !important;top:0;width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}.duet-table-flattened td{grid-column:1/2;line-height:1.25}.duet-table-flattened td:not(:last-child){margin-bottom:16px !important}.duet-table-flattened td:first-child{grid-row:1;grid-column:1}.duet-table-flattened td:last-child{grid-row:1;grid-column:2}.duet-table-flattened tbody td,.duet-table-flattened tbody th,.duet-table-flattened tfoot td{padding:0 !important;text-align:left !important}.duet-table-flattened tbody th{font-weight:600;line-height:1.25;color:#657787;text-align:left}.duet-table-flattened td[data-heading]::before{margin-bottom:4px !important;display:block;font-size:1rem;font-weight:600;color:#00294d;content:attr(data-heading)}.duet-table-flattened.duet-theme-turva td[data-heading]::before{color:#171c3a}.duet-table-sticky thead th{position:sticky;top:0;background:white}.duet-table-striped td,.duet-table-striped th{padding:20px !important}@media (max-width: 35.9375em){.duet-table-striped td,.duet-table-striped th{padding:20px 12px !important}}.duet-table-striped tbody th{background:white}.duet-table-striped.duet-table-sticky thead th{border-bottom:1px solid #e1e3e6}.duet-table-striped.duet-table-sticky.duet-theme-turva thead th{border-bottom-color:#e4e4e6}.duet-table-striped tbody:not(:first-of-type) th{padding-top:40px !important}.duet-table-striped tbody:only-of-type tr:nth-of-type(odd){background:rgba(0, 80, 128, 0.04)}.duet-table-striped.duet-theme-turva tbody:only-of-type tr:nth-of-type(odd){background:rgba(23, 28, 58, 0.04)}.duet-table-striped tbody:not(:only-of-type) tr:nth-of-type(even){background:rgba(0, 80, 128, 0.04)}.duet-table-striped.duet-theme-turva tbody:not(:only-of-type) tr:nth-of-type(even){background:rgba(23, 28, 58, 0.04)}.duet-table-striped tfoot td{border-top:1px solid #e1e3e6}.duet-table-striped.duet-theme-turva tfoot td{border-top-color:#e4e4e6}.duet-table-striped.duet-table-flattened tbody:not(:first-of-type) th{padding-top:20px !important}.duet-table-striped.duet-table-flattened tr{padding:20px !important}.duet-table-striped.duet-table-flattened tfoot td{border-top:0}.duet-table-striped.duet-table-flattened tfoot tr{border-top:1px solid #e1e3e6}.duet-table-striped.duet-table-flattened.duet-theme-turva tfoot tr{border-top-color:#e4e4e6}.duet-table-fixed th,.duet-table-minimal th,.duet-table-plain th{padding:16px !important;border-bottom:1px solid #657787}.duet-table-fixed th:first-child,.duet-table-minimal th:first-child,.duet-table-plain th:first-child{padding-left:0 !important}.duet-table-fixed th:last-child,.duet-table-minimal th:last-child,.duet-table-plain th:last-child{padding-right:0 !important}.duet-theme-turva.duet-table-fixed th,.duet-theme-turva.duet-table-minimal th,.duet-theme-turva.duet-table-plain th{border-bottom-color:#444445}.duet-table-fixed tbody th,.duet-table-minimal tbody th,.duet-table-plain tbody th{padding-top:40px !important;border-bottom-color:#e1e3e6}.duet-theme-turva.duet-table-fixed tbody th,.duet-theme-turva.duet-table-minimal tbody th,.duet-theme-turva.duet-table-plain tbody th{border-bottom-color:#e4e4e6}.duet-table-fixed td,.duet-table-minimal td,.duet-table-plain td{padding:16px !important}.duet-table-fixed td:first-child,.duet-table-minimal td:first-child,.duet-table-plain td:first-child{padding-left:0 !important}.duet-table-fixed td:last-child,.duet-table-minimal td:last-child,.duet-table-plain td:last-child{padding-right:0 !important}.duet-table-fixed tbody td,.duet-table-minimal tbody td,.duet-table-plain tbody td{border-bottom:1px solid #e1e3e6}.duet-theme-turva.duet-table-fixed tbody td,.duet-theme-turva.duet-table-minimal tbody td,.duet-theme-turva.duet-table-plain tbody td{border-bottom-color:#e4e4e6}.duet-table-flattened.duet-table-fixed tbody:first-of-type th,.duet-table-flattened.duet-table-minimal tbody:first-of-type th,.duet-table-flattened.duet-table-plain tbody:first-of-type th{padding-top:0 !important}.duet-table-flattened.duet-table-fixed td,.duet-table-flattened.duet-table-minimal td,.duet-table-flattened.duet-table-plain td,.duet-table-flattened.duet-table-fixed tbody th,.duet-table-flattened.duet-table-minimal tbody th,.duet-table-flattened.duet-table-plain tbody th{border-bottom:0}.duet-table-flattened.duet-table-fixed tr,.duet-table-flattened.duet-table-minimal tr,.duet-table-flattened.duet-table-plain tr{padding:20px 0 !important}.duet-table-flattened.duet-table-fixed tbody th,.duet-table-flattened.duet-table-minimal tbody th,.duet-table-flattened.duet-table-plain tbody th{padding-top:20px !important}.duet-table-flattened.duet-table-fixed tfoot td,.duet-table-flattened.duet-table-minimal tfoot td,.duet-table-flattened.duet-table-plain tfoot td{margin-bottom:4px !important}.duet-table-flattened.duet-table-fixed tbody:not(:only-of-type) tr:first-child,.duet-table-flattened.duet-table-minimal tbody:not(:only-of-type) tr:first-child,.duet-table-flattened.duet-table-plain tbody:not(:only-of-type) tr:first-child{border-bottom:0}.duet-table-plain.duet-table-flattened tbody tr{border-bottom:1px solid #e1e3e6}.duet-table-plain.duet-table-flattened.duet-theme-turva tbody tr{border-bottom-color:#e4e4e6}.duet-table-minimal tbody tr,.duet-table-minimal tbody tr td{vertical-align:top;border-bottom:0 none}.duet-table-minimal tbody tr:last-of-type,.duet-table-minimal tbody tr:last-of-type td{border-bottom:1px solid #e1e3e6}.duet-table-minimal.duet-table-flattened tbody tr,.duet-table-minimal.duet-table-flattened tbody tr td{border-bottom:0 none}.duet-table-minimal.duet-table-flattened tbody tr td[data-heading]::before{display:none}.duet-table-minimal.duet-table-flattened tfoot{border-top:1px solid #e1e3e6}.duet-table-minimal.duet-table-flattened.duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-fixed table{table-layout:fixed}.duet-table-fixed tbody tr,.duet-table-fixed tbody tr td,.duet-table-fixed tbody tr td:first-child{padding:4px !important;vertical-align:text-bottom;border-bottom:0 none}.duet-table-fixed thead{display:none}.duet-table-fixed tbody tr,.duet-table-fixed tbody tr td{border-bottom:0 none}.duet-table-fixed:not(.duet-table-flattened) tfoot{border-top:1px solid #e1e3e6}.duet-table-fixed:not(.duet-table-flattened).duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-scrollable{position:relative;width:100%;overflow-x:auto;background:linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0)), linear-gradient(-90deg, #fff 0%, rgba(255, 255, 255, 0)) 100% 0, radial-gradient(farthest-side at 0% 50%, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0)), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0)) 100% 0%;background-repeat:no-repeat;background-attachment:local, local, scroll, scroll;background-size:100px 100%, 100px 100%, 12px 100%, 12px 100%}.duet-table-selected-column{background:rgba(0, 119, 179, 0.08)}.duet-theme-turva .duet-table-selected-column{background:rgba(68, 68, 69, 0.08)}.duet-table-sortable tbody tr td:first-child,.duet-table-sortable thead tr th:first-child{padding:20px}.duet-table-sortable:not(.duet-table-flattened) tfoot{border-top:1px solid #e1e3e6}.duet-table-sortable:not(.duet-table-flattened).duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-actions table{table-layout:auto}.duet-table-actions thead th:last-child{width:1px;white-space:nowrap}";
11301
+ const duetTableCss = "duet-table{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:20px !important;display:block;font-variant-numeric:tabular-nums}duet-table table,duet-table thead,duet-table tbody,duet-table tfoot,duet-table th,duet-table td,duet-table tr{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}duet-table.duet-m-0{margin:0 !important}duet-table table{width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;text-align:left;border-spacing:0;border-collapse:separate}duet-table.duet-theme-turva table{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}duet-table td{-webkit-hyphens:auto;hyphens:auto;color:#00294d}duet-table.duet-theme-turva td{color:#171c3a}duet-table th{font-weight:600;line-height:1.25;color:#657787;text-align:left}duet-table.duet-theme-turva th{color:#747475}duet-table tbody th{font-weight:600;color:#00294d}duet-table.duet-theme-turva tbody th{color:#171c3a}duet-table .duet-table-action-row td:last-child{justify-self:end;padding-right:20px !important;white-space:nowrap}.duet-table-flattened table,.duet-table-flattened thead,.duet-table-flattened tbody,.duet-table-flattened tfoot,.duet-table-flattened th,.duet-table-flattened td,.duet-table-flattened tr{display:block}.duet-table-flattened thead tr{position:absolute !important;top:0;width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important}.duet-table-flattened td{line-height:1.25}.duet-table-flattened td:not(:last-child){margin-bottom:16px !important}.duet-table-flattened tbody td,.duet-table-flattened tbody th,.duet-table-flattened tfoot td{padding:0 !important;text-align:left !important}.duet-table-flattened tbody th{font-weight:600;line-height:1.25;color:#657787;text-align:left}.duet-table-flattened td[data-heading]::before{margin-bottom:4px !important;display:block;font-size:1rem;font-weight:600;color:#00294d;content:attr(data-heading)}.duet-table-flattened.duet-theme-turva td[data-heading]::before{color:#171c3a}.duet-table-sticky thead th{position:sticky;top:0;background:white}.duet-table-striped td,.duet-table-striped th{padding:20px !important}@media (max-width: 35.9375em){.duet-table-striped td,.duet-table-striped th{padding:20px 12px !important}}.duet-table-striped tbody th{background:white}.duet-table-striped.duet-table-sticky thead th{border-bottom:1px solid #e1e3e6}.duet-table-striped.duet-table-sticky.duet-theme-turva thead th{border-bottom-color:#e4e4e6}.duet-table-striped tbody:not(:first-of-type) th{padding-top:40px !important}.duet-table-striped tbody:only-of-type tr:nth-of-type(odd){background:rgba(0, 80, 128, 0.04)}.duet-table-striped.duet-theme-turva tbody:only-of-type tr:nth-of-type(odd){background:rgba(23, 28, 58, 0.04)}.duet-table-striped tbody:not(:only-of-type) tr:nth-of-type(even){background:rgba(0, 80, 128, 0.04)}.duet-table-striped.duet-theme-turva tbody:not(:only-of-type) tr:nth-of-type(even){background:rgba(23, 28, 58, 0.04)}.duet-table-striped tfoot td{border-top:1px solid #e1e3e6}.duet-table-striped.duet-theme-turva tfoot td{border-top-color:#e4e4e6}.duet-table-striped.duet-table-flattened tbody:not(:first-of-type) th{padding-top:20px !important}.duet-table-striped.duet-table-flattened tr{padding:20px !important}.duet-table-striped.duet-table-flattened tfoot td{border-top:0}.duet-table-striped.duet-table-flattened tfoot tr{border-top:1px solid #e1e3e6}.duet-table-striped.duet-table-flattened.duet-theme-turva tfoot tr{border-top-color:#e4e4e6}.duet-table-fixed th,.duet-table-minimal th,.duet-table-plain th{padding:16px !important;border-bottom:1px solid #657787}.duet-table-fixed th:first-child,.duet-table-minimal th:first-child,.duet-table-plain th:first-child{padding-left:0 !important}.duet-table-fixed th:last-child,.duet-table-minimal th:last-child,.duet-table-plain th:last-child{padding-right:0 !important}.duet-theme-turva.duet-table-fixed th,.duet-theme-turva.duet-table-minimal th,.duet-theme-turva.duet-table-plain th{border-bottom-color:#444445}.duet-table-fixed tbody th,.duet-table-minimal tbody th,.duet-table-plain tbody th{padding-top:40px !important;border-bottom-color:#e1e3e6}.duet-theme-turva.duet-table-fixed tbody th,.duet-theme-turva.duet-table-minimal tbody th,.duet-theme-turva.duet-table-plain tbody th{border-bottom-color:#e4e4e6}.duet-table-fixed td,.duet-table-minimal td,.duet-table-plain td{padding:16px !important}.duet-table-fixed td:first-child,.duet-table-minimal td:first-child,.duet-table-plain td:first-child{padding-left:0 !important}.duet-table-fixed td:last-child,.duet-table-minimal td:last-child,.duet-table-plain td:last-child{padding-right:0 !important}.duet-table-fixed tbody td,.duet-table-minimal tbody td,.duet-table-plain tbody td{border-bottom:1px solid #e1e3e6}.duet-theme-turva.duet-table-fixed tbody td,.duet-theme-turva.duet-table-minimal tbody td,.duet-theme-turva.duet-table-plain tbody td{border-bottom-color:#e4e4e6}.duet-table-flattened.duet-table-fixed tbody:first-of-type th,.duet-table-flattened.duet-table-minimal tbody:first-of-type th,.duet-table-flattened.duet-table-plain tbody:first-of-type th{padding-top:0 !important}.duet-table-flattened.duet-table-fixed td,.duet-table-flattened.duet-table-minimal td,.duet-table-flattened.duet-table-plain td,.duet-table-flattened.duet-table-fixed tbody th,.duet-table-flattened.duet-table-minimal tbody th,.duet-table-flattened.duet-table-plain tbody th{border-bottom:0}.duet-table-flattened.duet-table-fixed tr,.duet-table-flattened.duet-table-minimal tr,.duet-table-flattened.duet-table-plain tr{padding:20px 0 !important}.duet-table-flattened.duet-table-fixed tbody th,.duet-table-flattened.duet-table-minimal tbody th,.duet-table-flattened.duet-table-plain tbody th{padding-top:20px !important}.duet-table-flattened.duet-table-fixed tfoot td,.duet-table-flattened.duet-table-minimal tfoot td,.duet-table-flattened.duet-table-plain tfoot td{margin-bottom:4px !important}.duet-table-flattened.duet-table-fixed tbody:not(:only-of-type) tr:first-child,.duet-table-flattened.duet-table-minimal tbody:not(:only-of-type) tr:first-child,.duet-table-flattened.duet-table-plain tbody:not(:only-of-type) tr:first-child{border-bottom:0}.duet-table-plain.duet-table-flattened tbody tr{border-bottom:1px solid #e1e3e6}.duet-table-plain.duet-table-flattened.duet-theme-turva tbody tr{border-bottom-color:#e4e4e6}.duet-table-minimal tbody tr,.duet-table-minimal tbody tr td{vertical-align:top;border-bottom:0 none}.duet-table-minimal tbody tr:last-of-type,.duet-table-minimal tbody tr:last-of-type td{border-bottom:1px solid #e1e3e6}.duet-table-minimal.duet-table-flattened tbody tr,.duet-table-minimal.duet-table-flattened tbody tr td{border-bottom:0 none}.duet-table-minimal.duet-table-flattened tbody tr td[data-heading]::before{display:none}.duet-table-minimal.duet-table-flattened tfoot{border-top:1px solid #e1e3e6}.duet-table-minimal.duet-table-flattened.duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-fixed table{table-layout:fixed}.duet-table-fixed tbody tr,.duet-table-fixed tbody tr td,.duet-table-fixed tbody tr td:first-child{padding:4px !important;vertical-align:text-bottom;border-bottom:0 none}.duet-table-fixed thead{display:none}.duet-table-fixed tbody tr,.duet-table-fixed tbody tr td{border-bottom:0 none}.duet-table-fixed:not(.duet-table-flattened) tfoot{border-top:1px solid #e1e3e6}.duet-table-fixed:not(.duet-table-flattened).duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-scrollable{position:relative;width:100%;overflow-x:auto;background:linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, 0)), linear-gradient(-90deg, #fff 0%, rgba(255, 255, 255, 0)) 100% 0, radial-gradient(farthest-side at 0% 50%, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0)), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0)) 100% 0%;background-repeat:no-repeat;background-attachment:local, local, scroll, scroll;background-size:100px 100%, 100px 100%, 12px 100%, 12px 100%}.duet-table-selected-column{background:rgba(0, 119, 179, 0.08)}.duet-theme-turva .duet-table-selected-column{background:rgba(68, 68, 69, 0.08)}.duet-table-sortable tbody tr td:first-child,.duet-table-sortable thead tr th:first-child{padding:20px}.duet-table-sortable:not(.duet-table-flattened) tfoot{border-top:1px solid #e1e3e6}.duet-table-sortable:not(.duet-table-flattened).duet-theme-turva tfoot{border-top-color:#e4e4e6}.duet-table-actions table{table-layout:auto}.duet-table-actions thead th:last-child{width:1px;white-space:nowrap}.duet-editable-table-table.duet-table-flattened tr{display:grid;grid-template-columns:repeat(2, 1fr);grid-auto-rows:auto;gap:10px}.duet-editable-table-table.duet-table-flattened tr.duet-table-action-row td:last-child::before{padding:0;content:\"\"}.duet-editable-table-table.duet-table-flattened td{grid-column:1/2}.duet-editable-table-table.duet-table-flattened td:first-child{grid-row:1;grid-column:1}.duet-editable-table-table.duet-table-flattened td:last-child{grid-row:1;grid-column:2}";
11234
11302
 
11235
11303
  // remove wrapping speech marks.
11236
11304
  // media query tokens are wrapped in speech marks,
@@ -13444,7 +13512,7 @@ const DuetModal = /*@__PURE__*/proxyCustomElement(DuetModal$1, [1,"duet-modal",{
13444
13512
  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]}]);
13445
13513
  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"]]]);
13446
13514
  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"],"accessibleDetails":[1,"accessible-details"],"accessibleLabelledBy":[1,"accessible-labelled-by"],"accessibleDescription":[1,"accessible-description"],"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]}]);
13447
- const DuetPagination = /*@__PURE__*/proxyCustomElement(DuetPagination$1, [1,"duet-pagination",{"theme":[1025],"jumpString":[1,"jump-string"],"variation":[1],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleDetails":[1,"accessible-details"],"accessibleLabelledBy":[1,"accessible-labelled-by"],"accessibleDescription":[1,"accessible-description"],"accessibleLabelsDefaults":[16],"accessibleLabels":[16],"take":[1026],"visibleItems":[1026,"visible-items"],"total":[1026],"ariaControls":[1,"accessible-controls"],"current":[1026],"numbersStore":[32],"totalPages":[32],"internalSectionIndex":[32]}]);
13515
+ const DuetPagination = /*@__PURE__*/proxyCustomElement(DuetPagination$1, [1,"duet-pagination",{"theme":[1025],"jumpString":[1,"jump-string"],"variation":[1],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleDetails":[1,"accessible-details"],"accessibleLabelledBy":[1,"accessible-labelled-by"],"accessibleDescription":[1,"accessible-description"],"accessibleLabelsDefaults":[16],"accessibleLabels":[16],"take":[2],"visibleItems":[2,"visible-items"],"total":[2],"ariaControls":[1,"accessible-controls"],"current":[1026],"numbersStore":[32],"totalPages":[32],"internalSectionIndex":[32]}]);
13448
13516
  const DuetParagraph = /*@__PURE__*/proxyCustomElement(DuetParagraph$1, [1,"duet-paragraph",{"theme":[1025],"margin":[1],"size":[1],"weight":[1],"variation":[1],"color":[1]}]);
13449
13517
  const DuetProgress = /*@__PURE__*/proxyCustomElement(DuetProgress$1, [0,"duet-progress",{"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleDetails":[1,"accessible-details"],"accessibleLabelledBy":[1,"accessible-labelled-by"],"accessibleDescription":[1,"accessible-description"],"accessibleLabel":[1,"accessible-label"],"accessibleLabelUploadDefaults":[1,"accessible-label-upload-defaults"],"accessibleLabelUpload":[1,"accessible-label-upload"],"progress":[1538],"caption":[1],"height":[1],"theme":[1025]}]);
13450
13518
  const DuetRadio = /*@__PURE__*/proxyCustomElement(DuetRadio$1, [2,"duet-radio",{"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleDetails":[1,"accessible-details"],"accessibleLabelledBy":[1,"accessible-labelled-by"],"accessibleDescription":[1,"accessible-description"],"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]}]);
@@ -13539,7 +13607,7 @@ const defineCustomElements = (opts) => {
13539
13607
  };
13540
13608
 
13541
13609
  /*
13542
- Stencil Client Platform v2.15.0 | MIT Licensed | https://stenciljs.com
13610
+ Stencil Client Platform v2.16.0 | MIT Licensed | https://stenciljs.com
13543
13611
  */
13544
13612
  /**
13545
13613
  * @license
@@ -13555,7 +13623,6 @@ const defineCustomElements = (opts) => {
13555
13623
  const safeSelector = (selector) => {
13556
13624
  const placeholders = [];
13557
13625
  let index = 0;
13558
- let content;
13559
13626
  // Replaces attribute selectors with placeholders.
13560
13627
  // The WS in [attr="va lue"] would otherwise be interpreted as a selector separator.
13561
13628
  selector = selector.replace(/(\[[^\]]*\])/g, (_, keep) => {
@@ -13566,7 +13633,7 @@ const safeSelector = (selector) => {
13566
13633
  });
13567
13634
  // Replaces the expression in `:nth-child(2n + 1)` with a placeholder.
13568
13635
  // WS and "+" would otherwise be interpreted as selector separators.
13569
- content = selector.replace(/(:nth-[-\w]+)(\([^)]+\))/g, (_, pseudo, exp) => {
13636
+ const content = selector.replace(/(:nth-[-\w]+)(\([^)]+\))/g, (_, pseudo, exp) => {
13570
13637
  const replaceBy = `__ph-${index}__`;
13571
13638
  placeholders.push(exp);
13572
13639
  index++;