@duetds/components 5.2.0 → 5.2.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 (264) hide show
  1. package/hydrate/index.js +145 -81
  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 +1 -1
  33. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-range-slider.cjs.entry.js +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 +3 -3
  46. package/lib/cjs/{focus-utils-bfb10d32.js → focus-utils-7b09fa4b.js} +1 -1
  47. package/lib/cjs/{index-a4844346.js → index-3024eb44.js} +11 -9
  48. package/lib/cjs/loader.cjs.js +2 -2
  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-table/duet-table.css +30 -18
  54. package/lib/collection/utils/math.utils.js +76 -0
  55. package/lib/custom-elements-bundle/index.js +106 -61
  56. package/lib/duet/duet.esm.js +1 -1
  57. package/lib/duet/duet.js +1 -1
  58. package/lib/duet/{p-d33b5ac5.system.entry.js → p-036b2f99.system.entry.js} +1 -1
  59. package/lib/duet/p-0522338d.system.entry.js +4 -0
  60. package/lib/duet/{p-ec6d63fc.entry.js → p-053c3751.entry.js} +1 -1
  61. package/lib/duet/{p-285714dd.entry.js → p-094b206c.entry.js} +1 -1
  62. package/lib/duet/{p-e8f8374b.system.entry.js → p-095b52f8.system.entry.js} +1 -1
  63. package/lib/duet/{p-7021d0c6.system.entry.js → p-0f343566.system.entry.js} +1 -1
  64. package/lib/duet/{p-03b6ce80.entry.js → p-0fffc5fe.entry.js} +1 -1
  65. package/lib/duet/{p-b35d6368.system.entry.js → p-1167bc0a.system.entry.js} +1 -1
  66. package/lib/duet/{p-fd0a3ab7.entry.js → p-13db05ed.entry.js} +1 -1
  67. package/lib/duet/p-15edabe0.entry.js +4 -0
  68. package/lib/duet/{p-c7657242.entry.js → p-16a1bfe4.entry.js} +1 -1
  69. package/lib/duet/{p-b0a4dc6d.entry.js → p-273b6543.entry.js} +1 -1
  70. package/lib/duet/{p-5b1cbe5b.entry.js → p-27d9b918.entry.js} +1 -1
  71. package/lib/duet/{p-e75c7aa8.system.entry.js → p-2cc240f9.system.entry.js} +1 -1
  72. package/lib/duet/{p-971f42d6.system.entry.js → p-2ee81c0d.system.entry.js} +1 -1
  73. package/lib/duet/{p-0bee3151.system.entry.js → p-31a56879.system.entry.js} +1 -1
  74. package/lib/duet/p-35f011bf.system.js +5 -0
  75. package/lib/duet/{p-fa59ebf4.js → p-3b31184e.js} +0 -0
  76. package/lib/duet/{p-9406ee60.entry.js → p-4061e958.entry.js} +1 -1
  77. package/lib/duet/{p-08eb2200.entry.js → p-40ebab42.entry.js} +1 -1
  78. package/lib/duet/{p-f91e88e3.system.entry.js → p-465777cf.system.entry.js} +1 -1
  79. package/lib/duet/{p-a2fa0049.entry.js → p-484993a3.entry.js} +1 -1
  80. package/lib/duet/{p-9920ad3b.entry.js → p-49fc4668.entry.js} +1 -1
  81. package/lib/duet/{p-b51928dc.system.entry.js → p-4e2d8044.system.entry.js} +1 -1
  82. package/lib/duet/{p-95e1a336.entry.js → p-4ff48b81.entry.js} +1 -1
  83. package/lib/duet/{p-423d4211.system.entry.js → p-50f27bbf.system.entry.js} +1 -1
  84. package/lib/duet/{p-0ae816ee.entry.js → p-5183d420.entry.js} +1 -1
  85. package/lib/duet/{p-88ffd1cc.entry.js → p-536bde7b.entry.js} +1 -1
  86. package/lib/duet/{p-360f8fff.system.entry.js → p-53b8ff1e.system.entry.js} +1 -1
  87. package/lib/duet/{p-01478a01.system.entry.js → p-55a7c445.system.entry.js} +1 -1
  88. package/lib/duet/{p-00bf0bb9.system.entry.js → p-56d12aca.system.entry.js} +1 -1
  89. package/lib/duet/{p-030e20d7.entry.js → p-60ef49b0.entry.js} +1 -1
  90. package/lib/duet/{p-6a843f9e.entry.js → p-6518b98d.entry.js} +1 -1
  91. package/lib/duet/{p-98039227.system.entry.js → p-69180d4f.system.entry.js} +1 -1
  92. package/lib/duet/{p-c1d55269.system.entry.js → p-6e02a236.system.entry.js} +1 -1
  93. package/lib/duet/{p-495a1326.system.entry.js → p-6ed460f4.system.entry.js} +1 -1
  94. package/lib/duet/{p-73cd4f03.system.entry.js → p-720c6e22.system.entry.js} +1 -1
  95. package/lib/duet/{p-a843e579.system.entry.js → p-74e56aba.system.entry.js} +1 -1
  96. package/lib/duet/{p-fbec1a47.entry.js → p-750330d5.entry.js} +1 -1
  97. package/lib/duet/{p-f5613315.system.entry.js → p-76263b65.system.entry.js} +1 -1
  98. package/lib/duet/{p-271107d8.entry.js → p-76c11fd4.entry.js} +1 -1
  99. package/lib/duet/{p-4972c76e.system.js → p-798355c8.system.js} +1 -1
  100. package/lib/duet/{p-ee97a406.system.entry.js → p-7bf7db59.system.entry.js} +2 -2
  101. package/lib/duet/{p-19100783.system.entry.js → p-7e951645.system.entry.js} +1 -1
  102. package/lib/duet/p-7ed17661.entry.js +4 -0
  103. package/lib/duet/{p-56d3e64f.entry.js → p-7ef5c9a5.entry.js} +1 -1
  104. package/lib/duet/{p-33388bf3.system.entry.js → p-7f984c27.system.entry.js} +1 -1
  105. package/lib/duet/{p-1ff51ad8.system.entry.js → p-85be7c9f.system.entry.js} +1 -1
  106. package/lib/duet/{p-fef3a403.system.entry.js → p-867497c7.system.entry.js} +1 -1
  107. package/lib/duet/{p-95a0db46.entry.js → p-869a8af0.entry.js} +1 -1
  108. package/lib/duet/{p-04061cef.entry.js → p-8714d15d.entry.js} +1 -1
  109. package/lib/duet/{p-9496d6d4.entry.js → p-876175fe.entry.js} +1 -1
  110. package/lib/duet/{p-7fe67436.system.entry.js → p-88113f53.system.entry.js} +1 -1
  111. package/lib/duet/{p-d4dba079.system.entry.js → p-8828fc2e.system.entry.js} +1 -1
  112. package/lib/duet/{p-5a5d8fb1.entry.js → p-88996447.entry.js} +1 -1
  113. package/lib/duet/p-8de3ea21.system.entry.js +4 -0
  114. package/lib/duet/{p-64685397.entry.js → p-8e9cbd88.entry.js} +1 -1
  115. package/lib/duet/{p-790ee851.entry.js → p-91a3e8db.entry.js} +1 -1
  116. package/lib/duet/{p-b16befbc.system.entry.js → p-927f850c.system.entry.js} +1 -1
  117. package/lib/duet/{p-437fe50b.system.entry.js → p-97b88959.system.entry.js} +1 -1
  118. package/lib/duet/{p-76e38bb2.system.entry.js → p-97bbef5f.system.entry.js} +1 -1
  119. package/lib/duet/{p-97f1e254.entry.js → p-97d54e2d.entry.js} +1 -1
  120. package/lib/duet/{p-99fe93c6.system.entry.js → p-98cf83b0.system.entry.js} +1 -1
  121. package/lib/duet/{p-41cc3490.entry.js → p-9954eddc.entry.js} +1 -1
  122. package/lib/duet/{p-b8623ab8.entry.js → p-9d86935b.entry.js} +1 -1
  123. package/lib/duet/{p-4a7f290f.entry.js → p-a18f86a0.entry.js} +1 -1
  124. package/lib/duet/{p-071ebe1d.system.entry.js → p-a36592fe.system.entry.js} +1 -1
  125. package/lib/duet/{p-e7b761c5.system.js → p-a418cba4.system.js} +1 -1
  126. package/lib/duet/{p-68cbc3b7.entry.js → p-ac368fcb.entry.js} +1 -1
  127. package/lib/duet/{p-bf87d801.entry.js → p-af4aafea.entry.js} +1 -1
  128. package/lib/duet/{p-05e069d8.entry.js → p-b2a01d36.entry.js} +1 -1
  129. package/lib/duet/{p-30e901f2.system.entry.js → p-b2e25ecf.system.entry.js} +1 -1
  130. package/lib/duet/{p-542af014.system.js → p-b668b67c.system.js} +0 -0
  131. package/lib/duet/p-b708426c.entry.js +4 -0
  132. package/lib/duet/{p-c0aca70c.entry.js → p-b7a90031.entry.js} +1 -1
  133. package/lib/duet/{p-7a4764db.system.entry.js → p-bf052bc0.system.entry.js} +1 -1
  134. package/lib/duet/p-c21bd47a.js +5 -0
  135. package/lib/duet/{p-78de93b3.entry.js → p-c576c929.entry.js} +1 -1
  136. package/lib/duet/{p-53ad61ed.entry.js → p-c6e70db9.entry.js} +1 -1
  137. package/lib/duet/{p-10585f06.system.entry.js → p-cabfb664.system.entry.js} +1 -1
  138. package/lib/duet/{p-5f009925.system.entry.js → p-cd5ed901.system.entry.js} +1 -1
  139. package/lib/duet/{p-27d238c5.js → p-d4c234ed.js} +1 -1
  140. package/lib/duet/{p-641edb93.system.entry.js → p-d65262fb.system.entry.js} +1 -1
  141. package/lib/duet/{p-a509cc2b.system.entry.js → p-d698f01c.system.entry.js} +1 -1
  142. package/lib/duet/{p-3260eef0.entry.js → p-d7d0f3b7.entry.js} +1 -1
  143. package/lib/duet/{p-b08bb1fd.entry.js → p-dc1f4e8a.entry.js} +1 -1
  144. package/lib/duet/{p-afd34b6b.system.entry.js → p-df6ebe8d.system.entry.js} +1 -1
  145. package/lib/duet/p-dfa712ca.js +4 -0
  146. package/lib/duet/{p-b4ca3864.system.entry.js → p-eba2b43d.system.entry.js} +1 -1
  147. package/lib/duet/{p-24721182.system.entry.js → p-ec55c00f.system.entry.js} +1 -1
  148. package/lib/duet/{p-72739cec.entry.js → p-f3a98f22.entry.js} +1 -1
  149. package/lib/duet/{p-bb4d8e7b.entry.js → p-f9501a56.entry.js} +1 -1
  150. package/lib/duet/p-ff46ec81.system.js +16 -0
  151. package/lib/esm/{dom-3c479050.js → dom-3dbcb0d8.js} +1 -1
  152. package/lib/esm/duet-action-button.entry.js +1 -1
  153. package/lib/esm/duet-alert.entry.js +1 -1
  154. package/lib/esm/duet-badge.entry.js +1 -1
  155. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  156. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  157. package/lib/esm/duet-button_2.entry.js +1 -1
  158. package/lib/esm/duet-caption_4.entry.js +1 -1
  159. package/lib/esm/duet-card.entry.js +1 -1
  160. package/lib/esm/duet-checkbox.entry.js +1 -1
  161. package/lib/esm/duet-choice_2.entry.js +2 -2
  162. package/lib/esm/duet-collapsible.entry.js +1 -1
  163. package/lib/esm/duet-combobox.entry.js +1 -1
  164. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  165. package/lib/esm/duet-date-picker.entry.js +2 -2
  166. package/lib/esm/duet-divider_2.entry.js +1 -1
  167. package/lib/esm/duet-editable-table_3.entry.js +4 -3
  168. package/lib/esm/duet-empty-state.entry.js +1 -1
  169. package/lib/esm/duet-fieldset.entry.js +1 -1
  170. package/lib/esm/duet-footer.entry.js +1 -1
  171. package/lib/esm/duet-grid_2.entry.js +1 -1
  172. package/lib/esm/duet-header_2.entry.js +1 -1
  173. package/lib/esm/duet-hero.entry.js +1 -1
  174. package/lib/esm/duet-icon.entry.js +1 -1
  175. package/lib/esm/duet-input_2.entry.js +1 -1
  176. package/lib/esm/duet-layout.entry.js +1 -1
  177. package/lib/esm/duet-list_2.entry.js +1 -1
  178. package/lib/esm/duet-modal.entry.js +2 -2
  179. package/lib/esm/duet-notification_2.entry.js +1 -1
  180. package/lib/esm/duet-number-input.entry.js +92 -47
  181. package/lib/esm/duet-pagination_2.entry.js +1 -1
  182. package/lib/esm/duet-progress.entry.js +1 -1
  183. package/lib/esm/duet-radio_2.entry.js +1 -1
  184. package/lib/esm/duet-range-slider.entry.js +1 -1
  185. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  186. package/lib/esm/duet-select.entry.js +1 -1
  187. package/lib/esm/duet-step_2.entry.js +1 -1
  188. package/lib/esm/duet-textarea.entry.js +1 -1
  189. package/lib/esm/duet-toggle.entry.js +1 -1
  190. package/lib/esm/duet-tooltip.entry.js +1 -1
  191. package/lib/esm/duet-tray.entry.js +1 -1
  192. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  193. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  194. package/lib/esm/duet.js +3 -3
  195. package/lib/esm/{focus-utils-3af074ea.js → focus-utils-a1fd6cac.js} +1 -1
  196. package/lib/esm/{index-ab2bfa68.js → index-179c634c.js} +11 -9
  197. package/lib/esm/loader.js +2 -2
  198. package/lib/esm/polyfills/css-shim.js +1 -1
  199. package/lib/esm/{shadow-css-fbe49d20.js → shadow-css-501eda9a.js} +2 -3
  200. package/lib/esm-es5/{dom-3c479050.js → dom-3dbcb0d8.js} +0 -0
  201. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  202. package/lib/esm-es5/duet-alert.entry.js +1 -1
  203. package/lib/esm-es5/duet-badge.entry.js +1 -1
  204. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  205. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  206. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  207. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  208. package/lib/esm-es5/duet-card.entry.js +1 -1
  209. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  210. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  211. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  212. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  213. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  214. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  215. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  216. package/lib/esm-es5/duet-editable-table_3.entry.js +2 -2
  217. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  218. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  219. package/lib/esm-es5/duet-footer.entry.js +1 -1
  220. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  221. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  222. package/lib/esm-es5/duet-hero.entry.js +1 -1
  223. package/lib/esm-es5/duet-icon.entry.js +1 -1
  224. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  225. package/lib/esm-es5/duet-layout.entry.js +1 -1
  226. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  227. package/lib/esm-es5/duet-modal.entry.js +1 -1
  228. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  229. package/lib/esm-es5/duet-number-input.entry.js +2 -2
  230. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  231. package/lib/esm-es5/duet-progress.entry.js +1 -1
  232. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  233. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  234. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  235. package/lib/esm-es5/duet-select.entry.js +1 -1
  236. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  237. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  238. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  239. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  240. package/lib/esm-es5/duet-tray.entry.js +1 -1
  241. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  242. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  243. package/lib/esm-es5/duet.js +1 -1
  244. package/lib/esm-es5/{focus-utils-3af074ea.js → focus-utils-a1fd6cac.js} +1 -1
  245. package/lib/esm-es5/index-179c634c.js +5 -0
  246. package/lib/esm-es5/loader.js +1 -1
  247. package/lib/esm-es5/shadow-css-501eda9a.js +15 -0
  248. package/lib/types/components/duet-number-input/duet-number-input.d.ts +0 -1
  249. package/lib/types/components.d.ts +192 -80
  250. package/lib/types/utils/math.utils.d.ts +11 -0
  251. package/package.json +6 -6
  252. package/lib/collection/components/duet-number-input/number-input-utils.js +0 -26
  253. package/lib/duet/p-12c89686.system.js +0 -4
  254. package/lib/duet/p-37dc064c.js +0 -4
  255. package/lib/duet/p-66536958.system.entry.js +0 -4
  256. package/lib/duet/p-92a25fb5.system.js +0 -16
  257. package/lib/duet/p-98a9556f.js +0 -4
  258. package/lib/duet/p-a76bf729.entry.js +0 -4
  259. package/lib/duet/p-b7462f8c.system.entry.js +0 -4
  260. package/lib/duet/p-cb8ebdd7.entry.js +0 -4
  261. package/lib/duet/p-fe99b9cb.entry.js +0 -4
  262. package/lib/esm-es5/index-ab2bfa68.js +0 -4
  263. package/lib/esm-es5/shadow-css-fbe49d20.js +0 -15
  264. package/lib/types/components/duet-number-input/number-input-utils.d.ts +0 -4
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
 
11
11
  const duetCookieConsentCss = "*,*::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:fixed;right:0;bottom:0;left:0;z-index:950;display:block;width:100%;box-shadow:0 2px 20px 0 rgba(0, 0, 0, 0.2)}@media (min-width: 48em){:host{right:28px;bottom:28px;left:auto;width:25rem}}:host(:focus){outline:0}:host(.user-is-tabbing:focus){border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing.duet-theme-turva:focus){box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-cookie-consent{padding:20px;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;color:white !important;background-color:rgba(0, 21, 39, 0.9)}@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none){.duet-cookie-consent{background:rgba(0, 21, 39, 0.8);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.duet-cookie-consent.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\";background-color:rgba(12, 14, 29, 0.9)}@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none){.duet-cookie-consent.duet-theme-turva{background:rgba(12, 14, 29, 0.8)}}@media (min-width: 48em){.duet-cookie-consent{padding:20px;border-radius:4px}}.duet-cookie-consent-content{display:flex;align-items:center;max-width:1110px;margin:0 auto}.duet-cookie-consent-content .expand{flex:1}::slotted(a){font-weight:600;color:white !important;text-decoration:underline;white-space:nowrap}::slotted(a[target=_blank]){padding-right:16px;background:url(\"data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjZmZmIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwLjUgMmExLjUgMS41IDAgMDEuMTQgM0gzLjc1Yy0uMzggMC0uNy4yOC0uNzQuNjVsLS4wMS4xdjE0LjVjMCAuMzguMjguNy42NS43NGwuMS4wMWgxNC41Yy4zOCAwIC43LS4yOC43NC0uNjVsLjAxLS4xdi02Ljg5YTEuNSAxLjUgMCAwMTMgMHY2Ljg5QTMuNzUgMy43NSAwIDAxMTguMjUgMjRIMy43NUEzLjc1IDMuNzUgMCAwMTAgMjAuMjVWNS43NUEzLjc1IDMuNzUgMCAwMTMuNzUgMnptMTItMmMuNzggMCAxLjQyLjYgMS41IDEuMzZWNy41YTEuNSAxLjUgMCAwMS0zIC4xNFY1LjEybC01LjQ0IDUuNDRhMS41IDEuNSAwIDAxLTIuMjItMmwuMS0uMTJMMTguODggM0gxNi41QTEuNSAxLjUgMCAwMTE1IDEuNjRWMS41YzAtLjc4LjYtMS40MiAxLjM2LTEuNWguMTR6Ii8+PC9zdmc+\") no-repeat right 50%;background-size:12px 10px}::slotted(a:focus){outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva ::slotted(a:focus){outline:0;box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
@@ -5,10 +5,10 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
- const focusUtils = require('./focus-utils-bfb10d32.js');
11
+ const focusUtils = require('./focus-utils-7b09fa4b.js');
12
12
  const languageUtils = require('./language-utils-4f62a7db.js');
13
13
  require('./string-utils-5cadd058.js');
14
14
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
 
11
11
  const duetDividerCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-divider{-webkit-user-select:none;user-select:none;display:block;width:100%;height:1px;margin-top:36px !important;margin-bottom:28px;background:#e1e3e6}.duet-divider.duet-p-0{padding:0 !important}.duet-divider.duet-m-0{margin:0 !important}.duet-divider.duet-m-s{margin-bottom:16px !important;margin-top:0 !important}.duet-divider.duet-theme-turva{background:#e4e4e6}";
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const jsUtils = require('./js-utils-be1d29ae.js');
11
11
  const keyboardUtils = require('./keyboard-utils-bb32119b.js');
@@ -213,6 +213,7 @@ const DuetEditableTable = class {
213
213
  render() {
214
214
  return (index.h(index.Host, { class: {
215
215
  [`duet-editable-table-${this.variation}`]: true,
216
+ "duet-editable-table": true,
216
217
  [`duet-editable-table-${this.theme}`]: true,
217
218
  // sticky only valid when in regular table layout
218
219
  "duet-editable-table-scrollable": this.breakpoint === "none-scrollable",
@@ -220,13 +221,13 @@ const DuetEditableTable = class {
220
221
  "duet-editable-table-actions": !!this.actions,
221
222
  "duet-m-0": this.margin === "none",
222
223
  "duet-theme-turva": this.theme === "turva",
223
- } }, index.h("duet-table", { sticky: this.sticky, stickyDistance: this.stickyDistance, margin: this.margin, theme: this.theme, variation: this.variation, breakpoint: this.breakpoint }, index.h("table", { role: this.accessibleRole }, index.h("caption", null, index.h("slot", { name: "tcaption" })), index.h("thead", null, index.h("tr", null, index.h("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, index.h("slot", { name: "thead-first" }))), this.renderTableHeader(), index.h("tr", null, index.h("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, index.h("slot", { name: "thead-last" })))), index.h("tbody", null, this.renderTableBody()), index.h("tfoot", null, index.h("tr", null, index.h("th", { class: "duet-editable-table-footer-menu", colSpan: 99 }, index.h("slot", { name: "tfoot" }))))))));
224
+ } }, index.h("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 }, index.h("table", { role: this.accessibleRole }, index.h("caption", null, index.h("slot", { name: "tcaption" })), index.h("thead", null, index.h("tr", null, index.h("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, index.h("slot", { name: "thead-first" }))), this.renderTableHeader(), index.h("tr", null, index.h("td", { class: "duet-editable-table-actions-menu", colSpan: 99 }, index.h("slot", { name: "thead-last" })))), index.h("tbody", null, this.renderTableBody()), index.h("tfoot", null, index.h("tr", null, index.h("th", { class: "duet-editable-table-footer-menu", colSpan: 99 }, index.h("slot", { name: "tfoot" }))))))));
224
225
  }
225
226
  get element() { return index.getElement(this); }
226
227
  };
227
228
  DuetEditableTable.style = duetEditableTableCss;
228
229
 
229
- 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}";
230
+ 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}";
230
231
 
231
232
  // remove wrapping speech marks.
232
233
  // media query tokens are wrapped in speech marks,
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
 
11
11
  const duetEmptyStateCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%;height:100%}.duet-empty-state{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;width:100%;height:100%;padding:48px;color:#00294d;text-align:center;background:#f5f8fa;border-radius:4px}.duet-empty-state.duet-theme-turva{color:#171c3a;background:#f5f5f7}";
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const actionArrowDownSmall = require('./action-arrow-down-small-ef77a2d1.js');
10
10
  const actionArrowRightSmall = require('./action-arrow-right-small-a25eb475.js');
11
11
  const actionNewWindowSmall = require('./action-new-window-small-fa51dfb9.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const tokens = require('./tokens-29450bcb.js');
10
10
  const watchOptions = require('./watch-options-d88afac0.js');
11
11
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const formSearch = require('./form-search-d61b2843.js');
10
10
  const tokens = require('./tokens-29450bcb.js');
11
11
  const bodyScrollLock_es6 = require('./bodyScrollLock.es6-6ef1142a.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const actionNewWindowSmall = require('./action-new-window-small-fa51dfb9.js');
10
10
  const commonStrings = require('./common-strings-de17f887.js');
11
11
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const tokenUtils = require('./token-utils-50a1f7e2.js');
11
11
  require('./tokens.module-ef598645.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const formSearch = require('./form-search-d61b2843.js');
10
10
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
11
11
  const createId = require('./create-id-c3b984b1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const isInternetExplorer = require('./is-internet-explorer-91361c56.js');
10
10
 
11
11
  const duetLayoutCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;flex:1 0 auto;width:100%}:host(.duet-middle){display:flex}:host(.duet-middle) .duet-layout{padding:36px 28px !important}@media (min-width: 36em){:host(.duet-middle) .duet-layout{padding:48px 36px !important}}@media (min-width: 62em){:host(.duet-middle) .duet-layout{padding:56px !important}}:host(.duet-ie){height:100%}:host(.duet-middle.duet-ie){height:auto}.duet-layout{position:relative;padding:0 16px;margin:48px auto 36px}@media (min-width: 36em){.duet-layout{margin-top:72px}}.duet-layout.duet-layout-has-top{margin-top:0}.duet-layout.duet-m-0{margin-top:0 !important;margin-bottom:0 !important}.duet-layout.duet-center{display:flex;align-items:center;justify-content:center;width:100%;max-width:888px}@media (min-width: 36em){.duet-layout.duet-center{padding:0 48px}}@media (min-width: 48em){.duet-layout.duet-center{padding:0 72px}}@media (min-width: 62em){.duet-layout.duet-center{width:100%}}@media (min-width: 36em){.duet-layout{padding:0 28px}}@media (min-width: 62em){.duet-layout{display:flex;flex-direction:row;padding:0 56px;margin-bottom:48px}}@media (min-width: 76.25em){.duet-layout{max-width:1110px;padding:0}}.duet-main,.duet-sidebar,.duet-layout-top,.duet-layout-bottom{display:block;width:100%}.duet-layout-top{position:relative;display:block;width:100%;margin:72px auto 0}.duet-layout-top.duet-m-0{margin-top:0 !important;margin-bottom:0 !important}.duet-layout-top .duet-layout-top-wrapper{padding:0 20px;margin:0 auto}@media (min-width: 36em){.duet-layout-top .duet-layout-top-wrapper{padding:0 28px}}@media (min-width: 62em){.duet-layout-top .duet-layout-top-wrapper{padding:0 56px}}@media (min-width: 76.25em){.duet-layout-top .duet-layout-top-wrapper{max-width:1110px;padding:0}}.duet-center .duet-layout-top-wrapper{max-width:888px}@media (min-width: 36em){.duet-center .duet-layout-top-wrapper{padding:0 48px}}@media (min-width: 48em){.duet-center .duet-layout-top-wrapper{padding:0 72px}}@media (min-width: 62em){.duet-main{min-width:600px;margin:0 auto}.has-sidebar .duet-main{max-width:734px;margin-right:20px}}@media (min-width: 62em){.duet-sidebar{min-width:256px;max-width:356px}}@media (min-width: 62em){.duet-sidebar-container{width:auto;max-width:356px}}@media (min-width: 62em){.duet-sidebar-container.has-tabs{margin-top:89px}}@media (min-width: 62em){.duet-sidebar-container.sticky{position:sticky}.duet-sidebar-container.sticky.with-links{top:calc(3rem + 20px)}.duet-sidebar-container.sticky.without-links{top:calc(4rem + 20px)}}";
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const watchOptions = require('./watch-options-d88afac0.js');
11
11
 
@@ -5,11 +5,11 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const bodyScrollLock_es6 = require('./bodyScrollLock.es6-6ef1142a.js');
10
10
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
11
11
  const createId = require('./create-id-c3b984b1.js');
12
- const focusUtils = require('./focus-utils-bfb10d32.js');
12
+ const focusUtils = require('./focus-utils-7b09fa4b.js');
13
13
  const keyboardUtils = require('./keyboard-utils-bb32119b.js');
14
14
  const languageUtils = require('./language-utils-4f62a7db.js');
15
15
  require('./string-utils-5cadd058.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const languageUtils = require('./language-utils-4f62a7db.js');
11
11
  const actionArrowDownSmall = require('./action-arrow-down-small-ef77a2d1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const keyboardUtils = require('./keyboard-utils-bb32119b.js');
@@ -16,27 +16,77 @@ var actionAdd={"title":"action-add","tags":"action add plus","svg":"<svg fill=\"
16
16
 
17
17
  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>"};
18
18
 
19
- const parseLocaleFloat = (str, locale) => {
20
- // remove spaces and non-numeric characters
21
- // "12 345,67€" -> "12345,67"
22
- // "12,345.67€" -> "12,345.67"
23
- str = str.replace(/\s+/g, "").replace(/[^0-9\.,]+/g, "");
24
- switch (locale) {
25
- case "fi-FI":
26
- case "sv-SE":
27
- // "12345,67" -> "12345.67"
28
- str = str.replace(",", ".");
29
- break;
30
- case "en-US":
31
- case "en-GB":
32
- // "12,345.67" -> "12345.67"
33
- str = str.replace(/,/g, "");
34
- break;
35
- default:
36
- throw new TypeError(`Unrecognised locale: ${locale}`);
19
+ /**
20
+ * function that takes a string value or number and looks for any character resembling a minus,
21
+ * it will then replace it with a hypen-minus and return the parseFloat value of that string
22
+ * it will string / number cast the value to a number and return that number
23
+ * known issues: if a negative number is indicated with other characters than a "minus like" character, it will throw
24
+ * - an example is that some locales use (number) as an indicator for negative values instead of -number
25
+ */
26
+ function SafeParseFloat(value, locale) {
27
+ let results;
28
+ if (typeof value === "string") {
29
+ //the minuses are NOT the same characters, they differ in unicode for some languages
30
+ // "", "−", "–", and "—"
31
+ let convertedMinus = value.replace("−", "-").replace("‐", "-").replace("−", "-").replace("–", "-").replace("—", "-");
32
+ if (locale) {
33
+ convertedMinus = ConvertToEnUS(convertedMinus, locale, false);
34
+ }
35
+ // replace all possible spaces from the string
36
+ convertedMinus = convertedMinus.replace(/\s+/g, "");
37
+ convertedMinus = convertedMinus.replace(/(?!^-?\d*\.{0,1}\d+$)/g, "");
38
+ /*
39
+ example: https://regex101.com/r/np7FqS/1
40
+ /(?!^-?\d*\.{0,1}\d+$)/g
41
+ Negative Lookahead (?!^-?\d*\.{0,1}\d+$)
42
+ Assert that the Regex below does not match
43
+ ^ asserts position at start of a line
44
+ - matches the character - with index 4510 (2D16 or 558) literally (case sensitive)
45
+ ? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
46
+ \d matches a digit (equivalent to [0-9])
47
+ * matches the previous token between zero and unlimited times, as many times as possible, giving back as needed (greedy)
48
+ \. matches the character . with index 4610 (2E16 or 568) literally (case sensitive)
49
+ {0,1} matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
50
+ \d matches a digit (equivalent to [0-9])
51
+ + matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)
52
+ $ asserts position at the end of a line
53
+ Global pattern flags
54
+ g modifier: global. All matches (don't return after first match)
55
+ m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string)
56
+ */
57
+ results = parseFloat(convertedMinus);
37
58
  }
38
- return parseFloat(str);
39
- };
59
+ if (typeof value === "number") {
60
+ results = parseFloat(String(value));
61
+ }
62
+ if (!isNaN(Number(results))) {
63
+ return Number(results);
64
+ }
65
+ if (value === null || value === undefined) {
66
+ return null;
67
+ }
68
+ throw new Error("Invalid value passed to SafeParseFloat");
69
+ }
70
+ // string conversion function that takes a locale and coverts decimal indicator to en-US indicator
71
+ // and takes the thousand separator for the given locale and transforms that to the en-US separator
72
+ function ConvertToEnUS(value, locale, replaceThousands = false) {
73
+ let replacedValue;
74
+ const localeSeparator = new Intl.NumberFormat(locale).format(1 / 2).replace(/[0-9]/g, "");
75
+ const enUSSeparator = new Intl.NumberFormat("en-US").format(1 / 2).replace(/[0-9]/g, "");
76
+ const thousandSeparator = new Intl.NumberFormat(locale).format(1000).replace(/[0-9]/g, "");
77
+ const enUSThousandSeparator = new Intl.NumberFormat("en-US").format(1000).replace(/[0-9]/g, "");
78
+ // double conversions to avoid ,->. and .->, at the same time resulting in a double conversion
79
+ replacedValue = value.replace(localeSeparator, "DECIMALSEPARATOR");
80
+ if (replaceThousands) {
81
+ replacedValue = replacedValue.replace(thousandSeparator, "THOUSANDSEPARATOR");
82
+ }
83
+ else {
84
+ replacedValue = replacedValue.replace(thousandSeparator, "");
85
+ }
86
+ replacedValue = replacedValue.replace("DECIMALSEPARATOR", enUSSeparator);
87
+ replacedValue = replacedValue.replace("THOUSANDSEPARATOR", enUSThousandSeparator);
88
+ return replacedValue;
89
+ }
40
90
  const roundTo = (val, multiple) => Math.round(val / multiple) * multiple;
41
91
  const clamp = (val, min, max) => Math.min(Math.max(val, min), max);
42
92
 
@@ -212,7 +262,7 @@ const DuetNumberInput = class {
212
262
  this.handleChange = (ev) => {
213
263
  const input = ev.target;
214
264
  if (input && input.value) {
215
- let value = this.cleanValue(input.value);
265
+ let value = SafeParseFloat(input.value, this.locale);
216
266
  // Make sure that everything works if the user clears the input and
217
267
  // starts typing non-numeric characters.
218
268
  if (isNaN(value) || value == null) {
@@ -222,7 +272,7 @@ const DuetNumberInput = class {
222
272
  this.duetInput.emit({
223
273
  component: "duet-number-input",
224
274
  originalEvent: ev,
225
- value: this.cleanValue(this.value).toString(),
275
+ value: SafeParseFloat(this.value, this.locale).toString(),
226
276
  valueAsNumber: value,
227
277
  });
228
278
  }
@@ -243,30 +293,29 @@ const DuetNumberInput = class {
243
293
  if (input.value) {
244
294
  // On blur we want to make sure that the user input is between the min and max values,
245
295
  // and also round it up or down to the nearest step.
246
- let value = this.cleanValue(input.value);
296
+ let value = SafeParseFloat(input.value, this.locale);
247
297
  if (this.rounding) {
248
298
  value = roundTo(value, this.step);
249
299
  }
250
300
  value = clamp(value, this.min, this.max);
251
- if (value !== this.cleanValue(this.value) || value !== this.cleanValue(this.focusedValue)) {
301
+ if (value !== SafeParseFloat(this.value, this.locale) ||
302
+ value !== SafeParseFloat(this.focusedValue, this.locale)) {
252
303
  this.setValue(value);
253
304
  this.emitChange(ev);
254
305
  }
255
306
  }
256
- else {
257
- this.duetChange.emit({
258
- originalEvent: ev,
259
- value: null,
260
- valueAsNumber: null,
261
- component: "duet-number-input",
262
- });
263
- }
307
+ this.duetChange.emit({
308
+ originalEvent: ev,
309
+ value: null,
310
+ valueAsNumber: null,
311
+ component: "duet-number-input",
312
+ });
264
313
  };
265
314
  /**
266
315
  * Local methods.
267
316
  */
268
317
  this.emitChange = (ev) => {
269
- const currentValue = this.cleanValue(this.value);
318
+ const currentValue = SafeParseFloat(this.value, this.locale);
270
319
  this.duetChange.emit({
271
320
  originalEvent: ev,
272
321
  value: currentValue.toString(),
@@ -274,10 +323,6 @@ const DuetNumberInput = class {
274
323
  component: "duet-number-input",
275
324
  });
276
325
  };
277
- this.cleanValue = (value) => {
278
- // Returns a number that can be used in calculations.
279
- return value ? parseLocaleFloat(value, this.locale) : null;
280
- };
281
326
  this.localizeValue = (value) => {
282
327
  // Returns a localized string that can be used as input value.
283
328
  return value.toLocaleString(this.locale);
@@ -294,13 +339,13 @@ const DuetNumberInput = class {
294
339
  if (ev) {
295
340
  ev.preventDefault();
296
341
  }
297
- const currentValue = this.cleanValue(this.value);
342
+ const cleanedValue = SafeParseFloat(this.value, this.locale);
298
343
  // Only fire change event when necessary
299
- if (currentValue === this.max) {
344
+ if (cleanedValue === this.max) {
300
345
  return;
301
346
  }
302
347
  // in cases where no value set, incrementing should go to min
303
- let newValue = currentValue == null ? this.min : currentValue + this.step;
348
+ let newValue = cleanedValue == null ? this.min : cleanedValue + this.step;
304
349
  // handle cases where value is not multiple of step
305
350
  // e.g. if someone enters 199, with a step of 100, add should go to 200
306
351
  // and if someone enters 101, add should also go to 200
@@ -308,8 +353,8 @@ const DuetNumberInput = class {
308
353
  const adjustment = newValue % this.step;
309
354
  newValue -= adjustment;
310
355
  }
311
- newValue = clamp(newValue, this.min, this.max);
312
- this.value = this.localizeValue(newValue);
356
+ const clampedValue = clamp(newValue, this.min, this.max);
357
+ this.value = this.localizeValue(clampedValue);
313
358
  this.emitChange(ev);
314
359
  };
315
360
  this.subtract = (ev) => {
@@ -318,7 +363,7 @@ const DuetNumberInput = class {
318
363
  if (ev) {
319
364
  ev.preventDefault();
320
365
  }
321
- const currentValue = this.cleanValue(this.value);
366
+ const currentValue = SafeParseFloat(this.value, this.locale);
322
367
  // Only fire change event when necessary.
323
368
  if (currentValue === this.min) {
324
369
  return;
@@ -343,7 +388,7 @@ const DuetNumberInput = class {
343
388
  themeableComponent.inheritGlobalTheme(this);
344
389
  // Format the number value to a localeString initially.
345
390
  if (this.value) {
346
- this.value = this.localizeValue(parseLocaleFloat(this.value, this.locale));
391
+ this.value = this.localizeValue(SafeParseFloat(this.value, this.locale));
347
392
  }
348
393
  }
349
394
  /**
@@ -358,7 +403,7 @@ const DuetNumberInput = class {
358
403
  this.duetInputElement.value = "";
359
404
  }
360
405
  formatAnnouncement() {
361
- const current = this.cleanValue(this.value);
406
+ const current = SafeParseFloat(this.value, this.locale);
362
407
  if (current == null) {
363
408
  return "";
364
409
  }
@@ -371,7 +416,7 @@ const DuetNumberInput = class {
371
416
  render() {
372
417
  const identifier = this.identifier || this.inputId;
373
418
  const maxlength = `${this.localizeValue(this.max)} ${this.unit}`.length;
374
- const cleanedValue = this.cleanValue(this.value);
419
+ const cleanedValue = SafeParseFloat(this.value, this.locale);
375
420
  return (index.h(index.Host, { class: {
376
421
  "duet-theme-turva": this.theme === "turva",
377
422
  "duet-expand": this.expand,
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const jsUtils = require('./js-utils-be1d29ae.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const languageUtils = require('./language-utils-4f62a7db.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const watchOptions = require('./watch-options-d88afac0.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const tokens_module = require('./tokens.module-ef598645.js');
10
10
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
11
11
  const createId = require('./create-id-c3b984b1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const languageUtils = require('./language-utils-4f62a7db.js');
11
11
  const createId = require('./create-id-c3b984b1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const stringUtils = require('./string-utils-5cadd058.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const keyboardUtils = require('./keyboard-utils-bb32119b.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const inputUtils = require('./input-utils-b5e8f524.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
10
10
  const createId = require('./create-id-c3b984b1.js');
11
11
  const languageUtils = require('./language-utils-4f62a7db.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
  const tokens_module = require('./tokens.module-ef598645.js');
10
10
  const themeableComponent = require('./themeable-component-fdeaef9f.js');
11
11
  const createId = require('./create-id-c3b984b1.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
 
10
10
  const DuetUploadAriaStatus = class {
11
11
  constructor(hostRef) {
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-a4844346.js');
8
+ const index = require('./index-3024eb44.js');
9
9
 
10
10
  const duetVisuallyHiddenCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;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}";
11
11