@duetds/components 4.32.0 → 4.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/hydrate/index.js +2367 -244
  2. package/lib/cjs/{dom-a28e5c5f.js → dom-52a4f07a.js} +1 -1
  3. package/lib/cjs/duet-alert.cjs.entry.js +2 -2
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-button_2.cjs.entry.js +4 -4
  6. package/lib/cjs/duet-caption_4.cjs.entry.js +18 -11
  7. package/lib/cjs/duet-card.cjs.entry.js +3 -3
  8. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  9. package/lib/cjs/duet-choice_2.cjs.entry.js +39 -18
  10. package/lib/cjs/duet-collapsible.cjs.entry.js +5 -450
  11. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-date-picker.cjs.entry.js +7 -7
  13. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-editable-table-button.cjs.entry.js +96 -0
  15. package/lib/cjs/duet-editable-table_4.cjs.entry.js +1520 -0
  16. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-footer.cjs.entry.js +3 -3
  19. package/lib/cjs/duet-grid_2.cjs.entry.js +69 -4
  20. package/lib/cjs/duet-header_2.cjs.entry.js +216 -49
  21. package/lib/cjs/duet-hero.cjs.entry.js +2 -2
  22. package/lib/cjs/duet-icon.cjs.entry.js +8 -6
  23. package/lib/cjs/duet-input_2.cjs.entry.js +8 -9
  24. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-list_2.cjs.entry.js +3 -3
  26. package/lib/cjs/duet-modal.cjs.entry.js +3 -3
  27. package/lib/cjs/duet-notification_2.cjs.entry.js +3 -3
  28. package/lib/cjs/duet-number-input.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-progress.cjs.entry.js +75 -0
  30. package/lib/cjs/duet-radio_2.cjs.entry.js +2 -2
  31. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  32. package/lib/cjs/duet-select.cjs.entry.js +5 -5
  33. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-tab_2.cjs.entry.js +3 -3
  35. package/lib/cjs/duet-textarea.cjs.entry.js +5 -5
  36. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-tooltip.cjs.entry.js +2 -2
  38. package/lib/cjs/duet-tray.cjs.entry.js +3 -3
  39. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +100 -0
  40. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  41. package/lib/cjs/duet.cjs.js +4 -4
  42. package/lib/cjs/{focus-utils-55b5a616.js → focus-utils-480ea4e0.js} +1 -1
  43. package/lib/cjs/form-search-d61b2843.js +8 -0
  44. package/lib/cjs/{index-03ed1f55.js → index-6966a494.js} +5 -2
  45. package/lib/cjs/{language-utils-48b8860b.js → language-utils-aa282901.js} +6 -2
  46. package/lib/cjs/loader.cjs.js +3 -3
  47. package/lib/cjs/{shadow-css-6560c90c.js → shadow-css-e1b62a99.js} +9 -10
  48. package/lib/cjs/token-utils-05bd23b4.js +77 -0
  49. package/lib/cjs/tokens-8596cece.js +459 -0
  50. package/lib/cjs/{tokens.module-53b3bd92.js → tokens.module-6b2df1c2.js} +2 -0
  51. package/lib/cjs/{watch-options-3877c082.js → watch-options-d88afac0.js} +29 -6
  52. package/lib/collection/collection-manifest.json +17 -3
  53. package/lib/collection/components/duet-checkbox/duet-checkbox.css +1 -1
  54. package/lib/collection/components/duet-choice/duet-choice.js +94 -21
  55. package/lib/collection/components/duet-collapsible/duet-collapsible.js +4 -1
  56. package/lib/collection/components/duet-date-picker/duet-date-picker.js +9 -9
  57. package/lib/collection/components/duet-editable-table/duet-editable-table-button.css +32 -0
  58. package/lib/collection/components/duet-editable-table/duet-editable-table-button.js +225 -0
  59. package/lib/collection/components/duet-editable-table/duet-editable-table-item.css +36 -0
  60. package/lib/collection/components/duet-editable-table/duet-editable-table-item.js +225 -0
  61. package/lib/collection/components/duet-editable-table/duet-editable-table-tabledata.js +13 -0
  62. package/lib/collection/components/duet-editable-table/duet-editable-table.css +16 -0
  63. package/lib/collection/components/duet-editable-table/duet-editable-table.js +404 -0
  64. package/lib/collection/components/duet-footer/duet-footer.css +1 -0
  65. package/lib/collection/components/duet-grid/duet-grid.js +74 -6
  66. package/lib/collection/components/duet-header/duet-header-dropdown.js +27 -0
  67. package/lib/collection/components/duet-header/duet-header-hamburger.js +9 -0
  68. package/lib/collection/components/duet-header/duet-header-icon.js +9 -0
  69. package/lib/collection/components/duet-header/duet-header.css +272 -39
  70. package/lib/collection/components/duet-header/duet-header.js +310 -122
  71. package/lib/collection/components/duet-heading/duet-heading.css +3 -0
  72. package/lib/collection/components/duet-heading/duet-heading.js +7 -6
  73. package/lib/collection/components/duet-icon/duet-icon.js +5 -3
  74. package/lib/collection/components/duet-input/duet-input.css +15 -0
  75. package/lib/collection/components/duet-input/duet-input.js +4 -4
  76. package/lib/collection/components/duet-link/duet-link.js +4 -1
  77. package/lib/collection/components/duet-list-item/duet-list-item.css +1 -1
  78. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.css +4 -3
  79. package/lib/collection/components/duet-paragraph/duet-paragraph.css +6 -0
  80. package/lib/collection/components/duet-paragraph/duet-paragraph.js +34 -3
  81. package/lib/collection/components/duet-progress/duet-progress.css +103 -0
  82. package/lib/collection/components/duet-progress/duet-progress.js +240 -0
  83. package/lib/collection/components/duet-select/duet-select.css +15 -0
  84. package/lib/collection/components/duet-select/duet-select.js +3 -3
  85. package/lib/collection/components/duet-tab-group/duet-tab-group.css +2 -2
  86. package/lib/collection/components/duet-table/duet-table.css +42 -17
  87. package/lib/collection/components/duet-table/duet-table.js +2 -2
  88. package/lib/collection/components/duet-textarea/duet-textarea.css +19 -0
  89. package/lib/collection/components/duet-textarea/duet-textarea.js +5 -4
  90. package/lib/collection/components/duet-upload/duet-upload.css +64 -0
  91. package/lib/collection/components/duet-upload/duet-upload.js +1885 -0
  92. package/lib/collection/components/duet-upload/errorcodes.utils.js +32 -0
  93. package/lib/collection/components/duet-upload/mock.helpers.js +91 -0
  94. package/lib/collection/components/duet-upload/upload-editable-item-error.js +16 -0
  95. package/lib/collection/components/duet-upload/upload-editable-item-inprogres.js +8 -0
  96. package/lib/collection/components/duet-upload/upload-editable-item-success.js +30 -0
  97. package/lib/collection/components/duet-upload/upload-validators.js +93 -0
  98. package/lib/collection/components/duet-upload/upload.helpers.js +13 -0
  99. package/lib/collection/components/duet-upload/xhr.helpers.js +30 -0
  100. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +217 -0
  101. package/lib/collection/utils/js-utils.js +12 -0
  102. package/lib/collection/utils/language-utils.js +6 -3
  103. package/lib/collection/utils/template-utils.js +33 -0
  104. package/lib/collection/utils/token-utils.js +67 -14
  105. package/lib/collection/utils/watch-options.js +35 -6
  106. package/lib/custom-elements-bundle/index.d.ts +36 -0
  107. package/lib/custom-elements-bundle/index.js +2309 -334
  108. package/lib/duet/duet.esm.js +1 -1
  109. package/lib/duet/duet.js +1 -1
  110. package/lib/duet/{p-92103298.system.entry.js → p-07f43530.system.entry.js} +1 -1
  111. package/lib/duet/{p-cc0bd28f.system.entry.js → p-093bca2f.system.entry.js} +1 -1
  112. package/lib/duet/{p-a678da8c.entry.js → p-0aaf86ba.entry.js} +1 -1
  113. package/lib/duet/{p-94a5fd74.system.entry.js → p-0b0a05ed.system.entry.js} +1 -1
  114. package/lib/duet/{p-00eac879.system.entry.js → p-0be1c660.system.entry.js} +1 -1
  115. package/lib/duet/{p-3b3bac3f.system.entry.js → p-0d66e11b.system.entry.js} +1 -1
  116. package/lib/duet/{p-7331f2fe.system.entry.js → p-0de430e1.system.entry.js} +1 -1
  117. package/lib/duet/{p-3618aaee.entry.js → p-0ef8d711.entry.js} +1 -1
  118. package/lib/duet/p-12721178.js +4 -0
  119. package/lib/duet/{p-c19094dd.entry.js → p-12a08d77.entry.js} +1 -1
  120. package/lib/duet/p-15c9a17c.entry.js +4 -0
  121. package/lib/duet/{p-9cdd361e.js → p-183726f7.js} +0 -0
  122. package/lib/duet/{p-b75c5f13.entry.js → p-18c3eb54.entry.js} +1 -1
  123. package/lib/duet/{p-9542c540.entry.js → p-1b591fa4.entry.js} +1 -1
  124. package/lib/duet/{p-f364ce8b.system.entry.js → p-1bd0f4eb.system.entry.js} +1 -1
  125. package/lib/duet/p-2764f081.js +4 -0
  126. package/lib/duet/p-27bd8744.system.entry.js +4 -0
  127. package/lib/duet/p-289a31cb.entry.js +4 -0
  128. package/lib/duet/{p-8c511832.system.entry.js → p-29b352db.system.entry.js} +1 -1
  129. package/lib/duet/p-2a00f231.system.entry.js +4 -0
  130. package/lib/duet/p-3215e07e.system.entry.js +4 -0
  131. package/lib/duet/{p-ed479d09.system.entry.js → p-338b9955.system.entry.js} +1 -1
  132. package/lib/duet/{p-8740fa38.entry.js → p-33de1029.entry.js} +1 -1
  133. package/lib/duet/p-34ebff3b.entry.js +4 -0
  134. package/lib/duet/{p-b6a0caf8.system.entry.js → p-379d416f.system.entry.js} +1 -1
  135. package/lib/duet/{p-0b9b6393.entry.js → p-39a12eb9.entry.js} +1 -1
  136. package/lib/duet/{p-8652a7ab.system.entry.js → p-39fd8b43.system.entry.js} +1 -1
  137. package/lib/duet/{p-ffc2ffff.entry.js → p-3bafdf7c.entry.js} +1 -1
  138. package/lib/duet/{p-4fcbcecd.system.entry.js → p-3c1ce7e2.system.entry.js} +1 -1
  139. package/lib/duet/p-3da6b84e.entry.js +4 -0
  140. package/lib/duet/p-43c49a72.entry.js +4 -0
  141. package/lib/duet/{p-9f0f5674.entry.js → p-44f4b8ff.entry.js} +1 -1
  142. package/lib/duet/{p-b0bbbdba.system.entry.js → p-4c5ac0c2.system.entry.js} +1 -1
  143. package/lib/duet/p-50b4fb2c.js +4 -0
  144. package/lib/duet/p-51f7ae72.entry.js +4 -0
  145. package/lib/duet/p-52621211.js +15 -0
  146. package/lib/duet/{p-2a3411b5.system.entry.js → p-5443c9ca.system.entry.js} +1 -1
  147. package/lib/duet/{p-abd3bfb4.system.entry.js → p-5610db77.system.entry.js} +1 -1
  148. package/lib/duet/{p-2c0dd9ba.system.entry.js → p-5b409bfb.system.entry.js} +1 -1
  149. package/lib/duet/{p-807b2087.entry.js → p-6353407f.entry.js} +1 -1
  150. package/lib/duet/{p-a89e88a3.js → p-64bf94ee.js} +1 -1
  151. package/lib/duet/{p-2c679963.entry.js → p-64e915ae.entry.js} +1 -1
  152. package/lib/duet/{p-432ba72e.system.entry.js → p-6c237f21.system.entry.js} +1 -1
  153. package/lib/duet/p-6c8521f6.system.entry.js +4 -0
  154. package/lib/duet/{p-a962c8c1.system.js → p-6e4fd6ba.system.js} +0 -0
  155. package/lib/duet/p-70fafc98.system.js +4 -0
  156. package/lib/duet/{p-8002a095.entry.js → p-7347f4ac.entry.js} +1 -1
  157. package/lib/duet/{p-d13874cb.entry.js → p-781bd6db.entry.js} +1 -1
  158. package/lib/duet/{p-5a817929.system.entry.js → p-78e8a689.system.entry.js} +1 -1
  159. package/lib/duet/p-8143f3de.js +4 -0
  160. package/lib/duet/p-81e855e4.system.js +4 -0
  161. package/lib/duet/{p-84ece735.entry.js → p-8224d768.entry.js} +1 -1
  162. package/lib/duet/{p-43dde575.system.entry.js → p-848bb1c2.system.entry.js} +1 -1
  163. package/lib/duet/{p-1391ec53.entry.js → p-880a4afe.entry.js} +1 -1
  164. package/lib/duet/p-8c375429.entry.js +4 -0
  165. package/lib/duet/p-8cb71174.system.entry.js +4 -0
  166. package/lib/duet/p-8d7b68c4.entry.js +4 -0
  167. package/lib/duet/p-8f477bd6.system.js +4 -0
  168. package/lib/duet/p-969c6395.system.entry.js +4 -0
  169. package/lib/duet/p-9c234242.system.entry.js +4 -0
  170. package/lib/duet/{p-f13a0883.entry.js → p-9d7b9084.entry.js} +1 -1
  171. package/lib/duet/p-a0544097.system.entry.js +4 -0
  172. package/lib/duet/p-a16a58c1.system.js +4 -0
  173. package/lib/duet/{p-fb898d94.system.entry.js → p-a4a16d03.system.entry.js} +1 -1
  174. package/lib/duet/p-a4e3b44b.entry.js +4 -0
  175. package/lib/duet/{p-977f2826.entry.js → p-a91673cf.entry.js} +1 -1
  176. package/lib/duet/p-a926944f.entry.js +4 -0
  177. package/lib/duet/{p-2826f987.js → p-ad07f399.js} +1 -1
  178. package/lib/duet/p-b08bce4c.entry.js +4 -0
  179. package/lib/duet/{p-ec3eef3a.entry.js → p-b48a5f80.entry.js} +1 -1
  180. package/lib/duet/p-bb3e3777.entry.js +4 -0
  181. package/lib/duet/{p-fbb7d194.entry.js → p-bbe33d02.entry.js} +1 -1
  182. package/lib/duet/p-be8e1c48.system.entry.js +4 -0
  183. package/lib/duet/{p-68d09837.system.entry.js → p-c56c73ee.system.entry.js} +1 -1
  184. package/lib/duet/p-c63bdc6a.system.entry.js +4 -0
  185. package/lib/duet/{p-c723d36e.system.js → p-c83685a6.system.js} +1 -1
  186. package/lib/duet/p-c8dfc958.system.entry.js +4 -0
  187. package/lib/duet/{p-6cf41bfe.system.entry.js → p-c92f601f.system.entry.js} +1 -1
  188. package/lib/duet/p-d004da5f.js +4 -0
  189. package/lib/duet/p-d49416f8.entry.js +4 -0
  190. package/lib/duet/{p-7a868085.entry.js → p-d581d82d.entry.js} +1 -1
  191. package/lib/duet/p-d6bb4301.entry.js +4 -0
  192. package/lib/duet/p-d9aadc15.entry.js +4 -0
  193. package/lib/duet/p-ddb6344c.system.js +4 -0
  194. package/lib/duet/{p-3040debf.entry.js → p-dde63979.entry.js} +1 -1
  195. package/lib/duet/p-e15ccddc.system.entry.js +4 -0
  196. package/lib/duet/{p-0f2a478e.entry.js → p-e1be37a6.entry.js} +1 -1
  197. package/lib/duet/p-e5c1751e.system.js +16 -0
  198. package/lib/duet/{p-b9683731.entry.js → p-e9209e9f.entry.js} +1 -1
  199. package/lib/duet/p-eb55ccd2.system.js +4 -0
  200. package/lib/duet/{p-b374d7c2.system.js → p-ee1ba0d4.system.js} +1 -1
  201. package/lib/duet/{p-57cb58d4.system.entry.js → p-f4a29a8a.system.entry.js} +2 -2
  202. package/lib/duet/p-f8a0bd32.system.entry.js +4 -0
  203. package/lib/duet/p-f9599dd9.system.entry.js +4 -0
  204. package/lib/duet/p-fa99eaa4.system.js +4 -0
  205. package/lib/duet/p-fd7018e9.js +4 -0
  206. package/lib/duet/{p-19c28d99.system.entry.js → p-fe0cca67.system.entry.js} +1 -1
  207. package/lib/esm/{dom-8516b24e.js → dom-5d060ace.js} +1 -1
  208. package/lib/esm/duet-alert.entry.js +2 -2
  209. package/lib/esm/duet-badge.entry.js +1 -1
  210. package/lib/esm/duet-button_2.entry.js +4 -4
  211. package/lib/esm/duet-caption_4.entry.js +18 -11
  212. package/lib/esm/duet-card.entry.js +3 -3
  213. package/lib/esm/duet-checkbox.entry.js +2 -2
  214. package/lib/esm/duet-choice_2.entry.js +40 -19
  215. package/lib/esm/duet-collapsible.entry.js +4 -449
  216. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  217. package/lib/esm/duet-date-picker.entry.js +7 -7
  218. package/lib/esm/duet-divider_2.entry.js +1 -1
  219. package/lib/esm/duet-editable-table-button.entry.js +92 -0
  220. package/lib/esm/duet-editable-table_4.entry.js +1513 -0
  221. package/lib/esm/duet-empty-state.entry.js +1 -1
  222. package/lib/esm/duet-fieldset.entry.js +1 -1
  223. package/lib/esm/duet-footer.entry.js +3 -3
  224. package/lib/esm/duet-grid_2.entry.js +69 -4
  225. package/lib/esm/duet-header_2.entry.js +216 -49
  226. package/lib/esm/duet-hero.entry.js +2 -2
  227. package/lib/esm/duet-icon.entry.js +8 -6
  228. package/lib/esm/duet-input_2.entry.js +7 -8
  229. package/lib/esm/duet-layout.entry.js +1 -1
  230. package/lib/esm/duet-list_2.entry.js +3 -3
  231. package/lib/esm/duet-modal.entry.js +3 -3
  232. package/lib/esm/duet-notification_2.entry.js +3 -3
  233. package/lib/esm/duet-number-input.entry.js +2 -2
  234. package/lib/esm/duet-progress.entry.js +71 -0
  235. package/lib/esm/duet-radio_2.entry.js +2 -2
  236. package/lib/esm/duet-range-slider.entry.js +2 -2
  237. package/lib/esm/duet-select.entry.js +5 -5
  238. package/lib/esm/duet-step_2.entry.js +1 -1
  239. package/lib/esm/duet-tab_2.entry.js +3 -3
  240. package/lib/esm/duet-textarea.entry.js +5 -5
  241. package/lib/esm/duet-toggle.entry.js +1 -1
  242. package/lib/esm/duet-tooltip.entry.js +2 -2
  243. package/lib/esm/duet-tray.entry.js +3 -3
  244. package/lib/esm/duet-upload-aria-status.entry.js +96 -0
  245. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  246. package/lib/esm/duet.js +4 -4
  247. package/lib/esm/{focus-utils-6a282066.js → focus-utils-48837cfa.js} +1 -1
  248. package/lib/esm/form-search-ea8e19ae.js +6 -0
  249. package/lib/esm/{index-3a265449.js → index-80be4170.js} +5 -2
  250. package/lib/esm/{language-utils-d5c38f65.js → language-utils-344d894c.js} +6 -3
  251. package/lib/esm/loader.js +3 -3
  252. package/lib/esm/{shadow-css-9178c864.js → shadow-css-13d024f4.js} +9 -10
  253. package/lib/esm/token-utils-75f78ca4.js +75 -0
  254. package/lib/esm/tokens-e110dc89.js +453 -0
  255. package/lib/esm/{tokens.module-edb66c04.js → tokens.module-49cbf963.js} +3 -1
  256. package/lib/esm/watch-options-dd55bce8.js +57 -0
  257. package/lib/esm-es5/{dom-8516b24e.js → dom-5d060ace.js} +0 -0
  258. package/lib/esm-es5/duet-alert.entry.js +1 -1
  259. package/lib/esm-es5/duet-badge.entry.js +1 -1
  260. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  261. package/lib/esm-es5/duet-caption_4.entry.js +2 -2
  262. package/lib/esm-es5/duet-card.entry.js +1 -1
  263. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  264. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  265. package/lib/esm-es5/duet-collapsible.entry.js +2 -2
  266. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  267. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  268. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  269. package/lib/esm-es5/duet-editable-table-button.entry.js +4 -0
  270. package/lib/esm-es5/duet-editable-table_4.entry.js +4 -0
  271. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  272. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  273. package/lib/esm-es5/duet-footer.entry.js +1 -1
  274. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  275. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  276. package/lib/esm-es5/duet-hero.entry.js +1 -1
  277. package/lib/esm-es5/duet-icon.entry.js +1 -1
  278. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  279. package/lib/esm-es5/duet-layout.entry.js +1 -1
  280. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  281. package/lib/esm-es5/duet-modal.entry.js +1 -1
  282. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  283. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  284. package/lib/esm-es5/duet-progress.entry.js +4 -0
  285. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  286. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  287. package/lib/esm-es5/duet-select.entry.js +1 -1
  288. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  289. package/lib/esm-es5/duet-tab_2.entry.js +2 -2
  290. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  291. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  292. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  293. package/lib/esm-es5/duet-tray.entry.js +1 -1
  294. package/lib/esm-es5/duet-upload-aria-status.entry.js +4 -0
  295. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  296. package/lib/esm-es5/duet.js +1 -1
  297. package/lib/esm-es5/focus-utils-48837cfa.js +4 -0
  298. package/lib/esm-es5/form-search-ea8e19ae.js +4 -0
  299. package/lib/esm-es5/index-80be4170.js +4 -0
  300. package/lib/esm-es5/{language-utils-d5c38f65.js → language-utils-344d894c.js} +1 -1
  301. package/lib/esm-es5/loader.js +1 -1
  302. package/lib/esm-es5/shadow-css-13d024f4.js +15 -0
  303. package/lib/esm-es5/token-utils-75f78ca4.js +4 -0
  304. package/lib/esm-es5/tokens-e110dc89.js +4 -0
  305. package/lib/esm-es5/tokens.module-49cbf963.js +4 -0
  306. package/lib/esm-es5/watch-options-dd55bce8.js +4 -0
  307. package/lib/types/common-types.d.ts +0 -1
  308. package/lib/types/components/duet-choice/duet-choice.d.ts +20 -1
  309. package/lib/types/components/duet-collapsible/duet-collapsible.d.ts +3 -0
  310. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +5 -5
  311. package/lib/types/components/duet-editable-table/duet-editable-table-button.d.ts +73 -0
  312. package/lib/types/components/duet-editable-table/duet-editable-table-item.d.ts +76 -0
  313. package/lib/types/components/duet-editable-table/duet-editable-table-tabledata.d.ts +8 -0
  314. package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +94 -0
  315. package/lib/types/components/duet-grid/duet-grid.d.ts +17 -2
  316. package/lib/types/components/duet-header/duet-header-dropdown.d.ts +16 -0
  317. package/lib/types/components/duet-header/duet-header-hamburger.d.ts +2 -0
  318. package/lib/types/components/duet-header/duet-header-icon.d.ts +8 -0
  319. package/lib/types/components/duet-header/duet-header.d.ts +41 -4
  320. package/lib/types/components/duet-heading/duet-heading.d.ts +2 -2
  321. package/lib/types/components/duet-link/duet-link.d.ts +3 -0
  322. package/lib/types/components/duet-paragraph/duet-paragraph.d.ts +9 -1
  323. package/lib/types/components/duet-progress/duet-progress.d.ts +64 -0
  324. package/lib/types/components/duet-table/duet-table.d.ts +1 -1
  325. package/lib/types/components/duet-upload/duet-upload.d.ts +408 -0
  326. package/lib/types/components/duet-upload/errorcodes.utils.d.ts +8 -0
  327. package/lib/types/components/duet-upload/mock.helpers.d.ts +2 -0
  328. package/lib/types/components/duet-upload/upload-editable-item-error.d.ts +7 -0
  329. package/lib/types/components/duet-upload/upload-editable-item-inprogres.d.ts +7 -0
  330. package/lib/types/components/duet-upload/upload-editable-item-success.d.ts +8 -0
  331. package/lib/types/components/duet-upload/upload-validators.d.ts +12 -0
  332. package/lib/types/components/duet-upload/upload.helpers.d.ts +1 -0
  333. package/lib/types/components/duet-upload/xhr.helpers.d.ts +18 -0
  334. package/lib/types/components/duet-upload-aria-status/duet-upload-aria-status.d.ts +49 -0
  335. package/lib/types/components.d.ts +835 -29
  336. package/lib/types/stencil-public-runtime.d.ts +6 -4
  337. package/lib/types/utils/js-utils.d.ts +1 -0
  338. package/lib/types/utils/language-utils.d.ts +5 -1
  339. package/lib/types/utils/template-utils.d.ts +13 -0
  340. package/lib/types/utils/token-utils.d.ts +8 -2
  341. package/lib/types/utils/watch-options.d.ts +2 -0
  342. package/package.json +13 -13
  343. package/lib/cjs/duet-table.cjs.entry.js +0 -132
  344. package/lib/cjs/token-utils-13e5d13e.js +0 -30
  345. package/lib/duet/p-0058512b.js +0 -4
  346. package/lib/duet/p-08729381.entry.js +0 -4
  347. package/lib/duet/p-0b00e8d6.system.js +0 -16
  348. package/lib/duet/p-15922601.system.js +0 -4
  349. package/lib/duet/p-194e25ce.system.entry.js +0 -4
  350. package/lib/duet/p-1d87ea02.system.entry.js +0 -4
  351. package/lib/duet/p-2d1e2b23.system.entry.js +0 -4
  352. package/lib/duet/p-322d1c38.js +0 -4
  353. package/lib/duet/p-40d68321.entry.js +0 -4
  354. package/lib/duet/p-418b2ce7.system.js +0 -4
  355. package/lib/duet/p-43e39d98.system.js +0 -4
  356. package/lib/duet/p-4603830b.entry.js +0 -4
  357. package/lib/duet/p-52d7fbec.entry.js +0 -4
  358. package/lib/duet/p-60478325.system.entry.js +0 -4
  359. package/lib/duet/p-64ed7add.entry.js +0 -4
  360. package/lib/duet/p-6a356ab1.system.js +0 -4
  361. package/lib/duet/p-72fd384a.entry.js +0 -4
  362. package/lib/duet/p-753b406c.entry.js +0 -4
  363. package/lib/duet/p-76c00d0c.entry.js +0 -4
  364. package/lib/duet/p-85fe1132.js +0 -4
  365. package/lib/duet/p-8c8e82aa.system.js +0 -4
  366. package/lib/duet/p-9a89ec39.js +0 -4
  367. package/lib/duet/p-a11df1b6.js +0 -15
  368. package/lib/duet/p-a1eccee1.system.entry.js +0 -4
  369. package/lib/duet/p-ade33230.entry.js +0 -4
  370. package/lib/duet/p-b04d738f.system.entry.js +0 -4
  371. package/lib/duet/p-cb827bb7.entry.js +0 -4
  372. package/lib/duet/p-d85fba2c.system.entry.js +0 -4
  373. package/lib/duet/p-dfa90f8a.system.entry.js +0 -4
  374. package/lib/duet/p-e6b9bd1d.entry.js +0 -4
  375. package/lib/duet/p-ee64d6be.system.entry.js +0 -4
  376. package/lib/duet/p-f113671b.system.entry.js +0 -4
  377. package/lib/duet/p-f2f04396.entry.js +0 -4
  378. package/lib/duet/p-fc6624fe.system.entry.js +0 -4
  379. package/lib/esm/duet-table.entry.js +0 -128
  380. package/lib/esm/token-utils-5a35377f.js +0 -28
  381. package/lib/esm/watch-options-de55ea78.js +0 -35
  382. package/lib/esm-es5/duet-table.entry.js +0 -4
  383. package/lib/esm-es5/focus-utils-6a282066.js +0 -4
  384. package/lib/esm-es5/index-3a265449.js +0 -4
  385. package/lib/esm-es5/shadow-css-9178c864.js +0 -15
  386. package/lib/esm-es5/token-utils-5a35377f.js +0 -4
  387. package/lib/esm-es5/tokens.module-edb66c04.js +0 -4
  388. package/lib/esm-es5/watch-options-de55ea78.js +0 -4
@@ -1,13 +1,13 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-3a265449.js';
4
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-80be4170.js';
5
5
  import { D as DuetStringsExternalDefaults } from './common-strings-97e04e4b.js';
6
- import { a as getLanguage, g as getLocaleString } from './language-utils-d5c38f65.js';
6
+ import { a as getLanguage, g as getLocaleString } from './language-utils-344d894c.js';
7
7
  import { i as inheritGlobalTheme } from './themeable-component-572685dd.js';
8
- import { g as getColorByName } from './token-utils-5a35377f.js';
8
+ import { g as getColorByName } from './token-utils-75f78ca4.js';
9
9
  import './string-utils-2f1793b8.js';
10
- import './tokens.module-edb66c04.js';
10
+ import './tokens.module-49cbf963.js';
11
11
 
12
12
  const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}:host:last-child,:host:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.duet-small){margin-right:2px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host(.duet-small){width:auto}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;width:100%}.duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}.duet-button.duet-p-0{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon{padding-left:48px !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}.duet-theme-turva .duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}.duet-button .duet-button-contents{position:relative;display:inline-block;margin:0 auto;pointer-events:none}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button.icon{padding-left:52px !important}.duet-button.icon-right{padding-right:52px !important;padding-left:28px !important}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}.duet-button .duet-button-icon duet-icon{width:16px;height:16px}.duet-button .duet-button-icon.right{right:-28px;left:auto}.duet-button .duet-button-icon.large{left:-32px;width:20px;height:20px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.large.right{right:-32px;left:auto}.duet-button .duet-button-icon.medium-small{left:-16px;width:10px;height:10px;padding-top:1px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.medium-small.right{right:-16px;left:auto}.duet-button .duet-button-icon.small{left:-16px;width:7px;height:7px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button .duet-button-icon.small.right{right:-16px;left:auto}.duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-button:active{opacity:0.75;transition:none}.duet-button.default{border-color:#e1e3e6}.duet-theme-turva .duet-button.default{color:#c60c30 !important;border-color:#e4e4e6}.duet-button.default:hover{border-color:#0077b3}.duet-theme-turva .duet-button.default:hover{border-color:#c60c30}.duet-button.default.duet-button-negative{background-color:white}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:#e4e4e6 !important}.duet-button.default.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.primary{color:white !important;background:#0077b3;border-color:#0077b3}.duet-theme-turva .duet-button.primary{color:white !important;background:#c60c30;border-color:#c60c30}.duet-button.primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.primary:hover{background:#940925;border-color:#940925}.duet-button.primary:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}.duet-theme-turva .duet-button.primary:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}.duet-button.secondary{color:#00294d !important;background:transparent;border-color:#00294d}.duet-theme-turva .duet-button.secondary{color:#171c3a !important;border-color:#171c3a}.duet-button.secondary:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.secondary.duet-button-negative{color:#e1e3e6 !important;border-color:white}.duet-theme-turva .duet-button.secondary.duet-button-negative{color:#e4e4e6 !important}.duet-button.secondary.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.negative{color:#00294d !important;background:white;border-color:white}.duet-theme-turva .duet-button.negative{color:#171c3a !important}.duet-button.negative:hover{color:white !important;background:transparent;border-color:white}.duet-button.negative:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-theme-turva .duet-button.negative:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-button.destructive{color:#de2362 !important;background:white;border-color:#de2362}.duet-theme-turva .duet-button.destructive{color:#e02a0d !important;background:white;border-color:#e02a0d}.duet-button.destructive:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}.duet-theme-turva .duet-button.destructive:hover{color:white !important;background:#b3220a;border-color:#b3220a}.duet-button.plain{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}.duet-theme-turva .duet-button.plain{color:#c60c30 !important;background:transparent;border-color:transparent}.duet-button.plain.icon{padding-left:20px !important}.duet-button.plain.icon.icon-right{padding-right:20px !important;padding-left:0 !important}.duet-button.plain.icon.medium{padding-left:24px !important}.duet-button.plain.icon.medium.icon-right{padding-right:24px !important;padding-left:0 !important}.duet-button.plain.icon.large{padding-left:30px !important}.duet-button.plain.icon.large.icon-right{padding-right:30px !important;padding-left:0 !important}.duet-button.plain .duet-button-icon.left{left:-16.6666666667px !important}.duet-button.plain .duet-button-icon.left.medium{left:-24px !important}.duet-button.plain .duet-button-icon.left.large{left:-30px !important}.duet-button.plain .duet-button-icon.right{right:-16.6666666667px !important}.duet-button.plain .duet-button-icon.right.medium{right:-24px !important}.duet-button.plain .duet-button-icon.right.large{right:-30px !important}.duet-button.plain[disabled]{color:#657787 !important;background:transparent !important;border-color:transparent !important}.duet-theme-turva .duet-button.plain[disabled]{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}.duet-button.plain:hover{color:#004d80 !important;background:transparent !important}.duet-theme-turva .duet-button.plain:hover{color:#940925 !important}.duet-button.plain.duet-button-negative{color:white !important}.duet-theme-turva .duet-button.plain.duet-button-negative{color:#e4e4e6 !important}.duet-button.plain.duet-button-negative:hover{color:#0077b3 !important}.duet-theme-turva .duet-button.plain.duet-button-negative:hover{color:#c60c30 !important}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button[disabled],.duet-button[disabled]:hover,.duet-button.duet-button-negative[disabled],.duet-button.duet-button-negative[disabled]:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}.duet-theme-turva .duet-button[disabled],.duet-theme-turva .duet-button[disabled]:hover,.duet-theme-turva .duet-button.duet-button-negative [disabled],.duet-theme-turva .duet-button.duet-button-negative [disabled]:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-button-is-loading.primary{color:white}.duet-button-is-loading.default{color:#0077b3}.duet-button-is-loading.default.duet-theme-turva{color:#c60c30}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}";
13
13
 
@@ -1,14 +1,14 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, h, H as Host, g as getElement, F as Fragment } from './index-3a265449.js';
4
+ import { r as registerInstance, h, H as Host, g as getElement, F as Fragment } from './index-80be4170.js';
5
5
  import { i as inheritGlobalTheme } from './themeable-component-572685dd.js';
6
6
  import { s as sanitizeString } from './string-utils-2f1793b8.js';
7
- import { g as getColorByName } from './token-utils-5a35377f.js';
7
+ import { g as getColorByName } from './token-utils-75f78ca4.js';
8
8
  import { a as actionNewWindowSmall } from './action-new-window-small-1945be91.js';
9
9
  import { D as DuetStringsExternalDefaults } from './common-strings-97e04e4b.js';
10
- import { a as getLanguage, g as getLocaleString } from './language-utils-d5c38f65.js';
11
- import './tokens.module-edb66c04.js';
10
+ import { a as getLanguage, g as getLocaleString } from './language-utils-344d894c.js';
11
+ import './tokens.module-49cbf963.js';
12
12
 
13
13
  const duetCaptionCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:16px !important;display:flex;flex:0 0 100%;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#657787;vertical-align:top}:host.duet-p-0{padding:0 !important}:host.duet-m-0{margin:0 !important}:host(.duet-caption-small){font-size:0.875rem;line-height:1.25}:host(.duet-theme-turva){font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#747475}:host(.duet-caption-selected){color:#0077b3}:host(.duet-caption-selected.duet-theme-turva){color:#171c3a}:host(.duet-m-0){margin:0 !important}";
14
14
 
@@ -54,7 +54,7 @@ let DuetCaption = class {
54
54
  };
55
55
  DuetCaption.style = duetCaptionCss;
56
56
 
57
- const duetHeadingCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:100%}.duet-heading{margin-bottom:16px !important;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-style:normal;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.25;color:#00294d;text-decoration:none;letter-spacing:-0.01rem;word-break:break-word}@media (min-width: 36em){.duet-heading{margin-bottom:20px !important}}.duet-heading.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\";font-style:italic;font-weight:700;color:#171c3a}.duet-heading.duet-heading-border{padding-bottom:20px;border-bottom:1px solid #e1e3e6}.duet-heading.duet-heading-hyphenate{-webkit-hyphens:auto;hyphens:auto}.duet-heading.h0{font-size:9.4vw}.duet-heading.h0.duet-p-0{padding:0 !important}.duet-heading.h0.duet-m-0{margin:0 !important}@media (max-width: 31.914893617rem){.duet-heading.h0{font-size:3rem}}@media (min-width: 47.8723404255rem){.duet-heading.h0{font-size:4.5rem}}@media (max-width: 22.5em){.duet-heading.h0{font-size:2.25rem}}.duet-heading.h1{font-size:7vw}.duet-heading.h1.duet-p-0{padding:0 !important}.duet-heading.h1.duet-m-0{margin:0 !important}@media (max-width: 32.1428571429rem){.duet-heading.h1{font-size:2.25rem}}@media (min-width: 42.8571428571rem){.duet-heading.h1{font-size:3rem}}@media (max-width: 22.5em){.duet-heading.h1{font-size:1.5rem}}.duet-heading.h2{font-size:5.8vw}.duet-heading.h2.duet-p-0{padding:0 !important}.duet-heading.h2.duet-m-0{margin:0 !important}@media (max-width: 25.8620689655rem){.duet-heading.h2{font-size:1.5rem}}@media (min-width: 38.7931034483rem){.duet-heading.h2{font-size:2.25rem}}@media (max-width: 22.5em){.duet-heading.h2{font-size:1.375rem}}.duet-heading.h3{margin-bottom:12px !important;font-size:4.2vw}.duet-heading.h3.duet-p-0{padding:0 !important}.duet-heading.h3.duet-m-0{margin:0 !important}@media (max-width: 29.7619047619rem){.duet-heading.h3{font-size:1.25rem}}@media (min-width: 35.7142857143rem){.duet-heading.h3{font-size:1.5rem}}.duet-heading.h3.duet-theme-turva{font-style:normal}.duet-heading.h3.duet-heading-border{padding-bottom:20px}.duet-heading.h4{margin-bottom:8px !important;font-size:4vw;letter-spacing:0}.duet-heading.h4.duet-p-0{padding:0 !important}.duet-heading.h4.duet-m-0{margin:0 !important}@media (max-width: 27.5rem){.duet-heading.h4{font-size:1.1rem}}@media (min-width: 31.25rem){.duet-heading.h4{font-size:1.25rem}}.duet-heading.h4.duet-theme-turva{font-style:normal;font-weight:700}.duet-heading.h4.duet-heading-border{padding-bottom:20px}.duet-heading.h5{margin-bottom:8px !important;font-size:4vw;font-weight:600;letter-spacing:0}.duet-heading.h5.duet-p-0{padding:0 !important}.duet-heading.h5.duet-m-0{margin:0 !important}@media (max-width: 27.5rem){.duet-heading.h5{font-size:1.1rem}}@media (min-width: 28.4090909091rem){.duet-heading.h5{font-size:1.1363636364rem}}.duet-heading.h5.duet-theme-turva{font-style:normal;font-weight:700}.duet-heading.h5.duet-heading-border{padding-bottom:16px}.duet-heading.h6{margin-bottom:8px !important;font-size:1rem;font-weight:600;letter-spacing:0}.duet-heading.h6.duet-p-0{padding:0 !important}.duet-heading.h6.duet-m-0{margin:0 !important}.duet-heading.h6.duet-theme-turva{font-style:normal;font-weight:700}.duet-heading.h6.duet-heading-border{padding-bottom:16px}.duet-heading.duet-semibold,.duet-heading.duet-theme-turva.duet-semibold{font-style:normal !important;font-weight:600 !important}";
57
+ const duetHeadingCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:100%}.duet-heading{margin-bottom:16px !important;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-style:normal;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.25;color:#00294d;text-decoration:none;letter-spacing:-0.01rem;word-break:break-word}@media (min-width: 36em){.duet-heading{margin-bottom:20px !important}}.duet-heading.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\";font-style:italic;font-weight:700;color:#171c3a}.duet-heading.duet-heading-border{padding-bottom:20px;border-bottom:1px solid #e1e3e6}.duet-heading.duet-heading-border.duet-heading-border-solid{border-bottom-color:#657787}.duet-heading.duet-heading-hyphenate{-webkit-hyphens:auto;hyphens:auto}.duet-heading.h0{font-size:9.4vw}.duet-heading.h0.duet-p-0{padding:0 !important}.duet-heading.h0.duet-m-0{margin:0 !important}@media (max-width: 31.914893617rem){.duet-heading.h0{font-size:3rem}}@media (min-width: 47.8723404255rem){.duet-heading.h0{font-size:4.5rem}}@media (max-width: 22.5em){.duet-heading.h0{font-size:2.25rem}}.duet-heading.h1{font-size:7vw}.duet-heading.h1.duet-p-0{padding:0 !important}.duet-heading.h1.duet-m-0{margin:0 !important}@media (max-width: 32.1428571429rem){.duet-heading.h1{font-size:2.25rem}}@media (min-width: 42.8571428571rem){.duet-heading.h1{font-size:3rem}}@media (max-width: 22.5em){.duet-heading.h1{font-size:1.5rem}}.duet-heading.h2{font-size:5.8vw}.duet-heading.h2.duet-p-0{padding:0 !important}.duet-heading.h2.duet-m-0{margin:0 !important}@media (max-width: 25.8620689655rem){.duet-heading.h2{font-size:1.5rem}}@media (min-width: 38.7931034483rem){.duet-heading.h2{font-size:2.25rem}}@media (max-width: 22.5em){.duet-heading.h2{font-size:1.375rem}}.duet-heading.h3{margin-bottom:12px !important;font-size:4.2vw}.duet-heading.h3.duet-p-0{padding:0 !important}.duet-heading.h3.duet-m-0{margin:0 !important}@media (max-width: 29.7619047619rem){.duet-heading.h3{font-size:1.25rem}}@media (min-width: 35.7142857143rem){.duet-heading.h3{font-size:1.5rem}}.duet-heading.h3.duet-theme-turva{font-style:normal}.duet-heading.h3.duet-heading-border{padding-bottom:20px}.duet-heading.h4{margin-bottom:8px !important;font-size:4vw;letter-spacing:0}.duet-heading.h4.duet-p-0{padding:0 !important}.duet-heading.h4.duet-m-0{margin:0 !important}@media (max-width: 27.5rem){.duet-heading.h4{font-size:1.1rem}}@media (min-width: 31.25rem){.duet-heading.h4{font-size:1.25rem}}.duet-heading.h4.duet-theme-turva{font-style:normal;font-weight:700}.duet-heading.h4.duet-heading-border{padding-bottom:20px}.duet-heading.h5{margin-bottom:8px !important;font-size:4vw;font-weight:600;letter-spacing:0}.duet-heading.h5.duet-p-0{padding:0 !important}.duet-heading.h5.duet-m-0{margin:0 !important}@media (max-width: 27.5rem){.duet-heading.h5{font-size:1.1rem}}@media (min-width: 28.4090909091rem){.duet-heading.h5{font-size:1.1363636364rem}}.duet-heading.h5.duet-theme-turva{font-style:normal;font-weight:700}.duet-heading.h5.duet-heading-border{padding-bottom:16px}.duet-heading.h6{margin-bottom:8px !important;font-size:1rem;font-weight:600;letter-spacing:0}.duet-heading.h6.duet-p-0{padding:0 !important}.duet-heading.h6.duet-m-0{margin:0 !important}.duet-heading.h6.duet-theme-turva{font-style:normal;font-weight:700}.duet-heading.h6.duet-heading-border{padding-bottom:16px}.duet-heading.duet-semibold,.duet-heading.duet-theme-turva.duet-semibold{font-style:normal !important;font-weight:600 !important}";
58
58
 
59
59
  let DuetHeading = class {
60
60
  constructor(hostRef) {
@@ -68,7 +68,7 @@ let DuetHeading = class {
68
68
  */
69
69
  this.margin = "auto";
70
70
  /**
71
- * Enable or disable the border underneath the heading.
71
+ * Enable or disable the border underneath the heading, solid will darken the border
72
72
  */
73
73
  this.border = false;
74
74
  /**
@@ -105,7 +105,8 @@ let DuetHeading = class {
105
105
  const color = getColorByName(this.color);
106
106
  return (h(TagName, { class: {
107
107
  "duet-heading": true,
108
- "duet-heading-border": this.border,
108
+ "duet-heading-border": this.border !== false,
109
+ "duet-heading-border-solid": this.border === "solid",
109
110
  "duet-semibold": this.weight === "semibold",
110
111
  "duet-heading-hyphenate": this.hyphenate,
111
112
  "duet-m-0": this.margin === "none",
@@ -174,19 +175,19 @@ let DuetLink = class {
174
175
  "duet-link": true,
175
176
  "duet-link-is-external": this.external,
176
177
  "duet-theme-turva": this.theme === "turva",
177
- }, target: this.external ? "_blank" : "_self", "aria-label": this.accessibleLabel, id: this.identifier, ref: el => (this.nativeLink = el) }, h("slot", null), this.external && (h(Fragment, null, h("duet-visually-hidden", null, this.accessibleLabelExternal), h("span", { class: "duet-link-external" }, h("duet-icon", { icon: actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))))));
178
+ }, target: this.external ? "_blank" : "_self", "aria-label": this.accessibleLabel, id: this.identifier, ref: el => (this.nativeLink = el), part: "duet-link" }, h("slot", null), this.external && (h(Fragment, null, h("duet-visually-hidden", null, this.accessibleLabelExternal), h("span", { class: "duet-link-external" }, h("duet-icon", { icon: actionNewWindowSmall.svg, size: "xx-small", margin: "none", color: "currentColor" })))))));
178
179
  }
179
180
  static get delegatesFocus() { return true; }
180
181
  };
181
182
  DuetLink.style = duetLinkCss;
182
183
 
183
- const duetParagraphCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:100%}.duet-paragraph{margin-bottom:16px !important;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.5;color:#00294d}.duet-paragraph.duet-p-0{padding:0 !important}.duet-paragraph.duet-m-0{margin:0 !important}.duet-paragraph.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-paragraph.duet-paragraph-small{font-size:0.875rem}.duet-paragraph.duet-m-0{margin:0 !important}.duet-paragraph.intro{font-size:2.7vw;margin-bottom:28px !important;-webkit-hyphens:inherit;hyphens:inherit}@media (max-width: 37.037037037rem){.duet-paragraph.intro{font-size:1rem}}@media (min-width: 46.2962962963rem){.duet-paragraph.intro{font-size:1.25rem}}.duet-paragraph.intro.duet-m-0{margin:0 !important}::slotted(a){font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:normal;font-weight:400;color:#0077b3;text-decoration:underline;transition:300ms ease}::slotted(a).duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30}::slotted(a):hover{color:#004d80;text-decoration:none}::slotted(a):hover.duet-theme-turva{color:#940925}::slotted(a):active{opacity:0.75;transition:none}";
184
+ const duetParagraphCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:100%}.duet-paragraph{margin-bottom:16px !important;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.5;color:#00294d}.duet-paragraph.duet-p-0{padding:0 !important}.duet-paragraph.duet-m-0{margin:0 !important}.duet-paragraph.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-paragraph.duet-paragraph-small{font-size:0.875rem}.duet-paragraph.duet-paragraph-semi-bold{font-weight:600}.duet-paragraph.duet-paragraph-bold{font-weight:700}.duet-paragraph.duet-m-0{margin:0 !important}.duet-paragraph.intro{font-size:2.7vw;margin-bottom:28px !important;-webkit-hyphens:inherit;hyphens:inherit}@media (max-width: 37.037037037rem){.duet-paragraph.intro{font-size:1rem}}@media (min-width: 46.2962962963rem){.duet-paragraph.intro{font-size:1.25rem}}.duet-paragraph.intro.duet-m-0{margin:0 !important}::slotted(a){font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-style:normal;font-weight:400;color:#0077b3;text-decoration:underline;transition:300ms ease}::slotted(a).duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30}::slotted(a):hover{color:#004d80;text-decoration:none}::slotted(a):hover.duet-theme-turva{color:#940925}::slotted(a):active{opacity:0.75;transition:none}";
184
185
 
185
186
  let DuetParagraph = class {
186
187
  constructor(hostRef) {
187
188
  registerInstance(this, hostRef);
188
189
  /**
189
- * Theme of the card.
190
+ * Theme of the paragraph.
190
191
  */
191
192
  this.theme = "";
192
193
  /**
@@ -197,6 +198,10 @@ let DuetParagraph = class {
197
198
  * Controls the size of the paragraph.
198
199
  */
199
200
  this.size = "medium";
201
+ /**
202
+ * Controls the Font-Weight of the paragraph.
203
+ */
204
+ this.weight = undefined;
200
205
  /**
201
206
  * Style variation of the paragraph.
202
207
  */
@@ -222,10 +227,12 @@ let DuetParagraph = class {
222
227
  return (h("p", { class: {
223
228
  "duet-paragraph": true,
224
229
  "duet-paragraph-small": this.size === "small",
230
+ "duet-paragraph-semi-bold": this.weight === "semi-bold",
231
+ "duet-paragraph-bold": this.weight === "bold",
225
232
  "duet-m-0": this.margin === "none",
226
233
  [this.variation]: true,
227
234
  "duet-theme-turva": this.theme === "turva",
228
- }, style: { color } }, h("slot", null)));
235
+ }, style: { color }, part: "duet-paragraph" }, h("slot", null)));
229
236
  }
230
237
  get element() { return getElement(this); }
231
238
  };
@@ -1,13 +1,13 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host, g as getElement } from './index-3a265449.js';
4
+ import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host, g as getElement } from './index-80be4170.js';
5
5
  import { c as createID } from './create-id-981107da.js';
6
6
  import { i as isKeyboardClick } from './keyboard-utils-584cedd7.js';
7
7
  import { s as sanitizeString } from './string-utils-2f1793b8.js';
8
8
  import { i as inheritGlobalTheme } from './themeable-component-572685dd.js';
9
- import { g as getColorByName } from './token-utils-5a35377f.js';
10
- import './tokens.module-edb66c04.js';
9
+ import { g as getColorByName } from './token-utils-75f78ca4.js';
10
+ import './tokens.module-49cbf963.js';
11
11
 
12
12
  var actionArrowUp={"title":"action-arrow-up","tags":"action arrow up caret","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M.75 17.939a.752.752 0 0 1-.53-1.281L10.94 5.94c.283-.284.659-.44 1.059-.44.401 0 .777.156 1.06.438l10.721 10.72a.752.752 0 0 1-.53 1.281.743.743 0 0 1-.53-.22L12 7 1.28 17.719a.743.743 0 0 1-.53.22z\"/></svg>"};
13
13
 
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-3a265449.js';
4
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-80be4170.js';
5
5
  import { c as createID } from './create-id-981107da.js';
6
6
  import { i as inheritGlobalTheme } from './themeable-component-572685dd.js';
7
7
 
8
- const duetCheckboxCss = "*.sc-duet-checkbox,*.sc-duet-checkbox::after,*.sc-duet-checkbox::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-checkbox-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;display:inline-flex;width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}.sc-duet-checkbox-h:last-child,.sc-duet-checkbox-h:last-of-type{margin-right:0 !important}.sc-duet-checkbox-h:last-of-type:not(:only-child){margin-bottom:0 !important}.duet-m-0.sc-duet-checkbox-h{margin:0 !important}.duet-label.sc-duet-checkbox{position:relative;z-index:100;display:inline;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#00294d;vertical-align:top;cursor:pointer;background:transparent;transition:300ms ease}.duet-theme-turva.sc-duet-checkbox .duet-label.sc-duet-checkbox{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-label.sc-duet-checkbox span.sc-duet-checkbox{display:inline-block;width:calc(100% - 32px);font-size:1rem;font-weight:400;vertical-align:top}.duet-checkbox-container.sc-duet-checkbox{position:relative;width:100%;height:100%}.duet-checkbox.sc-duet-checkbox{padding:14px !important;position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;cursor:pointer;opacity:0}.duet-checkbox.sc-duet-checkbox+label.sc-duet-checkbox::before{z-index:100;display:inline-block;width:20px;height:20px;margin:2px 10px 1px 1px;vertical-align:top;content:\"\";background:white;border:1px solid #00294d;border-radius:4px}.duet-theme-turva.sc-duet-checkbox .duet-checkbox.sc-duet-checkbox+label.sc-duet-checkbox::before{border-color:#171c3a}.duet-checkbox.sc-duet-checkbox:checked+label.sc-duet-checkbox::before{background:#00294d;border:1px solid #00294d}.duet-theme-turva.sc-duet-checkbox .duet-checkbox.sc-duet-checkbox:checked+label.sc-duet-checkbox::before{background:#171c3a;border-color:#171c3a}.duet-checkbox.sc-duet-checkbox:focus+label.sc-duet-checkbox::before{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva.sc-duet-checkbox .duet-checkbox.sc-duet-checkbox:focus+label.sc-duet-checkbox::before{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-checkbox.sc-duet-checkbox+label.sc-duet-checkbox{position:static}.duet-checkbox.sc-duet-checkbox:checked+label.sc-duet-checkbox::after{position:absolute;top:6px;left:5px;z-index:200;width:12px;height:12px;pointer-events:none;content:\"\";background:transparent url(\"data:image/svg+xml,%3Csvg%20fill%3D%27white%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M23.374.287a1.5%2C1.5%2C0%2C0%2C0-2.093.345L7.246%2C20.2%2C2.561%2C15.511A1.5%2C1.5%2C0%2C1%2C0%2C.439%2C17.632l5.935%2C5.934a1.525%2C1.525%2C0%2C0%2C0%2C2.279-.186l15.066-21A1.5%2C1.5%2C0%2C0%2C0%2C23.374.287Z%27%20%2F%3E%3C%2Fsvg%3E\") no-repeat 0 0;background-size:100% auto}.duet-checkbox[disabled].sc-duet-checkbox{cursor:default}.duet-checkbox[disabled].sc-duet-checkbox+label.sc-duet-checkbox{color:#657787}.duet-theme-turva.sc-duet-checkbox .duet-checkbox[disabled].sc-duet-checkbox+label.sc-duet-checkbox{color:#747475}.duet-checkbox[disabled].sc-duet-checkbox+label.sc-duet-checkbox::before{border-color:#cfd2d4}.duet-theme-turva.sc-duet-checkbox .duet-checkbox[disabled].sc-duet-checkbox+label.sc-duet-checkbox::before{border-color:#cfcfd1}.duet-checkbox[disabled].sc-duet-checkbox:checked+label.sc-duet-checkbox::before{background:#657787;border:1px solid #657787}.duet-theme-turva.sc-duet-checkbox .duet-checkbox[disabled].sc-duet-checkbox:checked+label.sc-duet-checkbox::before{background:#747475;border-color:#747475}.duet-label-hidden.sc-duet-checkbox .duet-label.sc-duet-checkbox span.sc-duet-checkbox{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}";
8
+ const duetCheckboxCss = "*.sc-duet-checkbox,*.sc-duet-checkbox::after,*.sc-duet-checkbox::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-checkbox-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;display:inline-flex;width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}.sc-duet-checkbox-h:last-child,.sc-duet-checkbox-h:last-of-type{margin-right:0 !important}.sc-duet-checkbox-h:last-child:not(:only-child){margin-bottom:0 !important}.duet-m-0.sc-duet-checkbox-h{margin:0 !important}.duet-label.sc-duet-checkbox{position:relative;z-index:100;display:inline;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:400;line-height:1.5;color:#00294d;vertical-align:top;cursor:pointer;background:transparent;transition:300ms ease}.duet-theme-turva.sc-duet-checkbox .duet-label.sc-duet-checkbox{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a}.duet-label.sc-duet-checkbox span.sc-duet-checkbox{display:inline-block;width:calc(100% - 32px);font-size:1rem;font-weight:400;vertical-align:top}.duet-checkbox-container.sc-duet-checkbox{position:relative;width:100%;height:100%}.duet-checkbox.sc-duet-checkbox{padding:14px !important;position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;cursor:pointer;opacity:0}.duet-checkbox.sc-duet-checkbox+label.sc-duet-checkbox::before{z-index:100;display:inline-block;width:20px;height:20px;margin:2px 10px 1px 1px;vertical-align:top;content:\"\";background:white;border:1px solid #00294d;border-radius:4px}.duet-theme-turva.sc-duet-checkbox .duet-checkbox.sc-duet-checkbox+label.sc-duet-checkbox::before{border-color:#171c3a}.duet-checkbox.sc-duet-checkbox:checked+label.sc-duet-checkbox::before{background:#00294d;border:1px solid #00294d}.duet-theme-turva.sc-duet-checkbox .duet-checkbox.sc-duet-checkbox:checked+label.sc-duet-checkbox::before{background:#171c3a;border-color:#171c3a}.duet-checkbox.sc-duet-checkbox:focus+label.sc-duet-checkbox::before{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva.sc-duet-checkbox .duet-checkbox.sc-duet-checkbox:focus+label.sc-duet-checkbox::before{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-checkbox.sc-duet-checkbox+label.sc-duet-checkbox{position:static}.duet-checkbox.sc-duet-checkbox:checked+label.sc-duet-checkbox::after{position:absolute;top:6px;left:5px;z-index:200;width:12px;height:12px;pointer-events:none;content:\"\";background:transparent url(\"data:image/svg+xml,%3Csvg%20fill%3D%27white%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%3E%3Cpath%20d%3D%27M23.374.287a1.5%2C1.5%2C0%2C0%2C0-2.093.345L7.246%2C20.2%2C2.561%2C15.511A1.5%2C1.5%2C0%2C1%2C0%2C.439%2C17.632l5.935%2C5.934a1.525%2C1.525%2C0%2C0%2C0%2C2.279-.186l15.066-21A1.5%2C1.5%2C0%2C0%2C0%2C23.374.287Z%27%20%2F%3E%3C%2Fsvg%3E\") no-repeat 0 0;background-size:100% auto}.duet-checkbox[disabled].sc-duet-checkbox{cursor:default}.duet-checkbox[disabled].sc-duet-checkbox+label.sc-duet-checkbox{color:#657787}.duet-theme-turva.sc-duet-checkbox .duet-checkbox[disabled].sc-duet-checkbox+label.sc-duet-checkbox{color:#747475}.duet-checkbox[disabled].sc-duet-checkbox+label.sc-duet-checkbox::before{border-color:#cfd2d4}.duet-theme-turva.sc-duet-checkbox .duet-checkbox[disabled].sc-duet-checkbox+label.sc-duet-checkbox::before{border-color:#cfcfd1}.duet-checkbox[disabled].sc-duet-checkbox:checked+label.sc-duet-checkbox::before{background:#657787;border:1px solid #657787}.duet-theme-turva.sc-duet-checkbox .duet-checkbox[disabled].sc-duet-checkbox:checked+label.sc-duet-checkbox::before{background:#747475;border-color:#747475}.duet-label-hidden.sc-duet-checkbox .duet-label.sc-duet-checkbox span.sc-duet-checkbox{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}";
9
9
 
10
10
  let DuetCheckbox = class {
11
11
  constructor(hostRef) {
@@ -1,13 +1,14 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-3a265449.js';
4
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-80be4170.js';
5
5
  import { D as DuetStringsExternalDefaults } from './common-strings-97e04e4b.js';
6
6
  import { c as createID } from './create-id-981107da.js';
7
- import { i as isKeyboardClick, h as isQuestionKey } from './keyboard-utils-584cedd7.js';
8
- import { g as getLocaleString } from './language-utils-d5c38f65.js';
7
+ import { F as FocusGuard } from './focus-utils-48837cfa.js';
8
+ import { i as isKeyboardClick, h as isQuestionKey, f as isEscapeKey } from './keyboard-utils-584cedd7.js';
9
+ import { g as getLocaleString, a as getLanguage } from './language-utils-344d894c.js';
9
10
  import { i as inheritGlobalTheme } from './themeable-component-572685dd.js';
10
- import { f as findCheckedOption, w as watchForOptions } from './watch-options-de55ea78.js';
11
+ import { f as findCheckedOption, w as watchForOptions } from './watch-options-dd55bce8.js';
11
12
  import './string-utils-2f1793b8.js';
12
13
 
13
14
  var messagingInfo={"title":"messaging-info","tags":"messaging info information circle","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M13.5 17.25A2.252 2.252 0 0 1 11.25 15v-3.75h-.75a.75.75 0 0 1 0-1.5h.75c.827 0 1.5.673 1.5 1.5V15c0 .414.336.75.75.75h.75a.75.75 0 0 1 0 1.5z\"/><circle cx=\"11.625\" cy=\"7.125\" r=\"1.125\"/><path d=\"M12 24C5.383 24 0 18.617 0 12S5.383 0 12 0s12 5.383 12 12-5.383 12-12 12zm0-22.5C6.21 1.5 1.5 6.21 1.5 12S6.21 22.5 12 22.5 22.5 17.79 22.5 12 17.79 1.5 12 1.5z\"/></svg>"};
@@ -20,8 +21,11 @@ let DuetChoice = class {
20
21
  this.duetChange = createEvent(this, "duetChange", 7);
21
22
  this.duetFocus = createEvent(this, "duetFocus", 7);
22
23
  this.duetBlur = createEvent(this, "duetBlur", 7);
24
+ this.hasHeader = false;
23
25
  this.choiceId = createID("DuetChoice");
24
26
  this.expandId = createID("DuetChoiceExpand");
27
+ this.headerId = createID("DuetChoiceHeader");
28
+ this.infoButtonId = createID("DuetChoiceInfoButton");
25
29
  /**
26
30
  * State() variables
27
31
  * Inlined decorator, alphabetical order.
@@ -99,6 +103,24 @@ let DuetChoice = class {
99
103
  * browser from displaying its own validation errors.
100
104
  */
101
105
  this.required = false;
106
+ /**
107
+ * Placeholder defaults
108
+ * @default { fi: "pp.kk.vvvv", en: "dd.mm.yyyy", sv: "dd.mm.åååå" }
109
+ */
110
+ this.infoLabelDefaults = {
111
+ fi: "Lisätietoja",
112
+ en: "More information about",
113
+ sv: "Mera information om",
114
+ };
115
+ /**
116
+ * Hint text to display before the user types into the date picker input.
117
+ * @default {
118
+ * fi: "Lisätietoja",
119
+ * en: "More information about",
120
+ * sv: "Mera information om",
121
+ * }
122
+ */
123
+ this.infoLabel = getLocaleString(this.infoLabelDefaults, getLanguage());
102
124
  this.onMouseEnter = () => {
103
125
  this.isHovering = true;
104
126
  };
@@ -173,6 +195,7 @@ let DuetChoice = class {
173
195
  componentWillLoad() {
174
196
  inheritGlobalTheme(this);
175
197
  this.hasInfo = !!this.element.querySelector("[slot='info']");
198
+ this.hasHeader = !!this.element.querySelector('[slot="header"]');
176
199
  this.hasAdditional = !!this.element.querySelector("[slot='additional']");
177
200
  }
178
201
  /**
@@ -193,8 +216,11 @@ let DuetChoice = class {
193
216
  handleHostKeyDown() {
194
217
  this.isKeyDown = true;
195
218
  }
196
- handleHostKeyUp() {
219
+ handleHostKeyUp(ev) {
197
220
  this.isKeyDown = false;
221
+ if (isEscapeKey(ev) && this.isInfoOpen) {
222
+ this.toggleInfo();
223
+ }
198
224
  }
199
225
  /**
200
226
  * Sets focus on the specified `duet-choice`. Use this method instead of the global
@@ -208,7 +234,12 @@ let DuetChoice = class {
208
234
  return this.accessibleDescribedBy;
209
235
  }
210
236
  if (this.collapsible || this.hasInfo) {
211
- return this.expandId;
237
+ if (this.hasHeader) {
238
+ return this.headerId;
239
+ }
240
+ else {
241
+ return this.expandId;
242
+ }
212
243
  }
213
244
  return null;
214
245
  }
@@ -257,23 +288,13 @@ let DuetChoice = class {
257
288
  info: this.isInfoOpen,
258
289
  collapsible: this.collapsible,
259
290
  "duet-p-0": this.padding === "none",
260
- } }, h("input", { class: "duet-choice-input", type: this.type, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, disabled: this.disabled || this.groupDisabled, required: this.required, id: identifier, name: this.name, value: this.value, checked: this.checked, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedby(), onKeyDown: this.handleKeyDown, ref: input => (this.nativeInput = input) }), h("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering }, onClick: this.onClick }, this.icon && (h("div", { class: "duet-choice-card-icon" }, h("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.label, this.hasInfo ||
261
- // this is an incredibly dirty way of both hiding the expanded / collapsed state text
262
- // and an extremely bad way of notifying any screenreaders about state - unfortunately
263
- // this is extremely difficult to do consistently across browsers so this hack is the best way todo it
264
- (this.collapsible && (h("span", { lang: "en", style: { opacity: "0", pointerEvents: "none", fontSize: "0", lineHeight: "0" } }, this.collapsible
265
- ? this.checked
266
- ? ", Expanded"
267
- : ", Collapsed"
268
- : this.isInfoOpen
269
- ? ", Expanded"
270
- : ", Collapsed"))), this.caption && (h("div", null, h("duet-spacer", { size: "xx-small" }), h("duet-caption", { margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (h("div", null, h("duet-spacer", { size: "xx-small" }), h("slot", { name: "additional" }))), h("div", { class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && h("div", { class: "duet-checkmark" })))), this.hasInfo && !this.collapsible && (h("button", { class: {
291
+ } }, h("input", { class: "duet-choice-input", type: this.type, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, disabled: this.disabled || this.groupDisabled, required: this.required, id: identifier, name: this.name, value: this.value, checked: this.checked, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedby(), onKeyDown: this.handleKeyDown, ref: input => (this.nativeInput = input) }), h("label", { htmlFor: identifier, class: { "duet-choice-label": true, "no-hover": this.isHovering }, onClick: this.onClick }, this.icon && (h("div", { class: "duet-choice-card-icon" }, h("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.label, this.caption && (h("div", null, h("duet-spacer", { size: "xx-small" }), h("duet-caption", { margin: "none", selected: this.checked }, this.caption))), this.hasAdditional && (h("div", null, h("duet-spacer", { size: "xx-small" }), h("slot", { name: "additional" }))), h("div", { class: { "duet-checkmark-container": true, "duet-checkmark-radio": this.type === "radio" } }, this.checked && h("div", { class: "duet-checkmark" })))), this.hasInfo && !this.collapsible && (h("button", { ref: button => (this.infoButtonEl = button), id: this.infoButtonId, class: {
271
292
  "duet-choice-info-toggle": true,
272
293
  "duet-theme-turva": this.theme === "turva",
273
- }, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, onClick: this.toggleInfo, disabled: this.disabled || this.groupDisabled, "aria-expanded": this.isInfoOpen ? "true" : "false", "aria-controls": this.expandId, "aria-flowto": this.expandId, tabindex: this.type === "radio" && !this.checked ? "-1" : "0", type: "button" }, h("duet-visually-hidden", { "aria-hidden": !this.isBlurred ? "true" : "false" }, this.accessibleLabelInfoButton), h("div", { class: "duet-choice-info-icon" }, h("duet-icon", { icon: messagingInfo.svg, margin: "none", size: "small", color: "currentColor" }))))), this.collapsible || this.hasInfo ? (h("div", { class: this.getClassNames(), id: this.expandId }, h("span", { class: {
294
+ }, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, onClick: this.toggleInfo, disabled: this.disabled || this.groupDisabled, "aria-expanded": this.isInfoOpen ? "true" : "false", "aria-label": `${this.infoLabel} ${this.label}`, "aria-controls": this.expandId, "aria-flowto": this.expandId, tabindex: this.type === "radio" && !this.checked ? "-1" : "0", type: "button" }, h("duet-visually-hidden", { "aria-hidden": !this.isBlurred ? "true" : "false" }, this.accessibleLabelInfoButton), h("div", { class: "duet-choice-info-icon" }, h("duet-icon", { icon: messagingInfo.svg, margin: "none", size: "small", color: "currentColor" }))))), this.collapsible || this.hasInfo ? (h("div", { class: this.getClassNames(), id: this.expandId }, h("span", { class: {
274
295
  "duet-choice-section-visible": this.collapsible ? this.checked : this.isInfoOpen,
275
296
  "duet-choice-section-hidden": this.collapsible ? !this.checked : !this.isInfoOpen,
276
- } }, this.hasInfo ? (h("span", null, h("slot", { name: "info" }), h("slot", null))) : (h("span", null, h("slot", null)))))) : null));
297
+ } }, h("span", { id: this.headerId }, h("slot", { name: "header" })), this.hasInfo ? (h("span", null, h("span", { "aria-relevant": "all", "aria-atomic": "true", "aria-live": this.isInfoOpen ? "polite" : "off" }, h("slot", { name: "info" })), h("slot", null))) : (h("span", null, h("slot", null)))), this.isInfoOpen && h(FocusGuard, { moveFocusTo: this.infoButtonEl }))) : null));
277
298
  }
278
299
  get element() { return getElement(this); }
279
300
  };