@duetds/components 4.31.0 → 4.33.2

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 (375) hide show
  1. package/hydrate/index.js +1895 -77
  2. package/lib/cjs/{dom-e89ebf90.js → dom-c850c8d7.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 +17 -10
  7. package/lib/cjs/duet-card.cjs.entry.js +5 -5
  8. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  9. package/lib/cjs/duet-choice_2.cjs.entry.js +53 -24
  10. package/lib/cjs/duet-collapsible.cjs.entry.js +4 -449
  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 +89 -0
  15. package/lib/cjs/duet-editable-table_4.cjs.entry.js +1445 -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 +2 -2
  19. package/lib/cjs/duet-grid_2.cjs.entry.js +69 -4
  20. package/lib/cjs/duet-header_2.cjs.entry.js +3 -3
  21. package/lib/cjs/duet-hero.cjs.entry.js +2 -2
  22. package/lib/cjs/duet-icon.cjs.entry.js +5 -13
  23. package/lib/cjs/duet-input_2.cjs.entry.js +6 -6
  24. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-list_2.cjs.entry.js +2 -2
  26. package/lib/cjs/duet-modal.cjs.entry.js +3 -3
  27. package/lib/cjs/duet-notification_2.cjs.entry.js +2 -2
  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-bd331feb.js → focus-utils-27c696bb.js} +1 -1
  43. package/lib/cjs/{index-113c2add.js → index-18b0f43a.js} +91 -77
  44. package/lib/cjs/{language-utils-48b8860b.js → language-utils-aa282901.js} +6 -2
  45. package/lib/cjs/loader.cjs.js +3 -3
  46. package/lib/cjs/{shadow-css-0c8c175b.js → shadow-css-e3edeed1.js} +9 -10
  47. package/lib/cjs/{token-utils-13e5d13e.js → token-utils-63a9c8dc.js} +1 -1
  48. package/lib/cjs/tokens-8596cece.js +459 -0
  49. package/lib/cjs/{tokens.module-53b3bd92.js → tokens.module-6b2df1c2.js} +2 -0
  50. package/lib/cjs/{watch-options-3877c082.js → watch-options-d88afac0.js} +29 -6
  51. package/lib/collection/collection-manifest.json +17 -3
  52. package/lib/collection/components/duet-alert/duet-alert.js +4 -4
  53. package/lib/collection/components/duet-button/duet-button.js +10 -10
  54. package/lib/collection/components/duet-card/duet-card.css +20 -0
  55. package/lib/collection/components/duet-card/duet-card.js +4 -1
  56. package/lib/collection/components/duet-checkbox/duet-checkbox.css +1 -1
  57. package/lib/collection/components/duet-choice/duet-choice.css +16 -3
  58. package/lib/collection/components/duet-choice/duet-choice.js +117 -33
  59. package/lib/collection/components/duet-choice-group/duet-choice-group.js +4 -4
  60. package/lib/collection/components/duet-date-picker/duet-date-picker.js +16 -16
  61. package/lib/collection/components/duet-editable-table/duet-editable-table-button.css +32 -0
  62. package/lib/collection/components/duet-editable-table/duet-editable-table-button.js +218 -0
  63. package/lib/collection/components/duet-editable-table/duet-editable-table-item.css +36 -0
  64. package/lib/collection/components/duet-editable-table/duet-editable-table-item.js +203 -0
  65. package/lib/collection/components/duet-editable-table/duet-editable-table-tabledata.js +13 -0
  66. package/lib/collection/components/duet-editable-table/duet-editable-table.css +16 -0
  67. package/lib/collection/components/duet-editable-table/duet-editable-table.js +348 -0
  68. package/lib/collection/components/duet-footer/duet-footer.js +10 -10
  69. package/lib/collection/components/duet-grid/duet-grid.js +74 -6
  70. package/lib/collection/components/duet-grid-item/duet-grid-item.js +4 -4
  71. package/lib/collection/components/duet-header/duet-header.js +16 -16
  72. package/lib/collection/components/duet-heading/duet-heading.css +3 -0
  73. package/lib/collection/components/duet-heading/duet-heading.js +7 -6
  74. package/lib/collection/components/duet-hero/duet-hero.js +8 -8
  75. package/lib/collection/components/duet-icon/icon-utils.js +5 -8
  76. package/lib/collection/components/duet-input/duet-input.css +15 -0
  77. package/lib/collection/components/duet-input/duet-input.js +4 -4
  78. package/lib/collection/components/duet-link/duet-link.js +8 -8
  79. package/lib/collection/components/duet-logo/duet-logo.js +4 -4
  80. package/lib/collection/components/duet-modal/duet-modal.js +8 -8
  81. package/lib/collection/components/duet-notification/duet-notification.js +8 -8
  82. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +8 -8
  83. package/lib/collection/components/duet-number-input/duet-number-input.js +20 -20
  84. package/lib/collection/components/duet-paragraph/duet-paragraph.css +6 -0
  85. package/lib/collection/components/duet-paragraph/duet-paragraph.js +34 -3
  86. package/lib/collection/components/duet-progress/duet-progress.css +103 -0
  87. package/lib/collection/components/duet-progress/duet-progress.js +240 -0
  88. package/lib/collection/components/duet-radio/duet-radio.js +6 -6
  89. package/lib/collection/components/duet-select/duet-select.css +15 -0
  90. package/lib/collection/components/duet-select/duet-select.js +3 -3
  91. package/lib/collection/components/duet-step/duet-step.js +8 -8
  92. package/lib/collection/components/duet-tab-group/duet-tab-group.css +2 -2
  93. package/lib/collection/components/duet-tab-group/duet-tab-group.js +10 -10
  94. package/lib/collection/components/duet-textarea/duet-textarea.css +19 -0
  95. package/lib/collection/components/duet-textarea/duet-textarea.js +5 -4
  96. package/lib/collection/components/duet-tooltip/duet-tooltip.js +14 -14
  97. package/lib/collection/components/duet-tray/duet-tray.js +12 -12
  98. package/lib/collection/components/duet-upload/duet-upload.css +64 -0
  99. package/lib/collection/components/duet-upload/duet-upload.js +1863 -0
  100. package/lib/collection/components/duet-upload/errorcodes.utils.js +32 -0
  101. package/lib/collection/components/duet-upload/mock.helpers.js +91 -0
  102. package/lib/collection/components/duet-upload/upload-editable-item-error.js +16 -0
  103. package/lib/collection/components/duet-upload/upload-editable-item-inprogres.js +8 -0
  104. package/lib/collection/components/duet-upload/upload-editable-item-success.js +30 -0
  105. package/lib/collection/components/duet-upload/upload-validators.js +93 -0
  106. package/lib/collection/components/duet-upload/upload.helpers.js +13 -0
  107. package/lib/collection/components/duet-upload/xhr.helpers.js +30 -0
  108. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +217 -0
  109. package/lib/collection/utils/js-utils.js +12 -0
  110. package/lib/collection/utils/language-utils.js +6 -3
  111. package/lib/collection/utils/watch-options.js +35 -6
  112. package/lib/custom-elements-bundle/index.d.ts +36 -0
  113. package/lib/custom-elements-bundle/index.js +2014 -322
  114. package/lib/duet/duet.esm.js +1 -1
  115. package/lib/duet/duet.js +1 -1
  116. package/lib/duet/{p-60ab57d4.entry.js → p-042ec8b1.entry.js} +1 -1
  117. package/lib/duet/{p-bcae23fc.system.entry.js → p-0435b54a.system.entry.js} +1 -1
  118. package/lib/duet/{p-dc85d2a4.entry.js → p-04b3e682.entry.js} +1 -1
  119. package/lib/duet/p-0ac2e60d.system.entry.js +4 -0
  120. package/lib/duet/p-0d22396e.system.js +16 -0
  121. package/lib/duet/p-1082d9f2.system.entry.js +4 -0
  122. package/lib/duet/p-12721178.js +4 -0
  123. package/lib/duet/{p-7d080785.system.entry.js → p-12fc4849.system.entry.js} +1 -1
  124. package/lib/duet/{p-c4737f88.entry.js → p-15fae689.entry.js} +1 -1
  125. package/lib/duet/p-1ad58142.entry.js +4 -0
  126. package/lib/duet/{p-c5f10483.system.entry.js → p-1c7d7cdd.system.entry.js} +1 -1
  127. package/lib/duet/p-1cf8dbc7.system.js +4 -0
  128. package/lib/duet/p-1dcbd837.system.entry.js +4 -0
  129. package/lib/duet/{p-fdecaf46.entry.js → p-1ecddc1d.entry.js} +1 -1
  130. package/lib/duet/p-2764f081.js +4 -0
  131. package/lib/duet/p-2b4bd1b2.system.entry.js +4 -0
  132. package/lib/duet/p-2d8e0faa.system.entry.js +4 -0
  133. package/lib/duet/{p-453955cc.system.entry.js → p-33538e90.system.entry.js} +1 -1
  134. package/lib/duet/{p-b1b8e510.entry.js → p-3364cfd2.entry.js} +1 -1
  135. package/lib/duet/p-350cea4e.system.entry.js +4 -0
  136. package/lib/duet/{p-bd9a7d8f.js → p-35a3794e.js} +0 -0
  137. package/lib/duet/p-39e9d638.entry.js +4 -0
  138. package/lib/duet/{p-1e7222c2.entry.js → p-3a7e519e.entry.js} +1 -1
  139. package/lib/duet/{p-9ce1baab.system.entry.js → p-3bcf2054.system.entry.js} +1 -1
  140. package/lib/duet/{p-322d1c38.js → p-3c1971d8.js} +1 -1
  141. package/lib/duet/{p-ef45cfe9.system.entry.js → p-3cad13af.system.entry.js} +1 -1
  142. package/lib/duet/p-408e8cdb.system.js +4 -0
  143. package/lib/duet/p-4a14da52.entry.js +4 -0
  144. package/lib/duet/{p-f96c4093.system.entry.js → p-4e17a6cb.system.entry.js} +1 -1
  145. package/lib/duet/{p-fbd83d67.entry.js → p-50b796eb.entry.js} +1 -1
  146. package/lib/duet/{p-22f56356.system.entry.js → p-5727cd82.system.entry.js} +1 -1
  147. package/lib/duet/{p-9c94be45.entry.js → p-582f3a2c.entry.js} +1 -1
  148. package/lib/duet/{p-e39471b6.entry.js → p-5b9621e2.entry.js} +1 -1
  149. package/lib/duet/{p-3e1ef509.system.entry.js → p-5f79eff8.system.entry.js} +1 -1
  150. package/lib/duet/{p-95626e7e.system.entry.js → p-60e721aa.system.entry.js} +1 -1
  151. package/lib/duet/{p-b03a46b6.entry.js → p-60ef3d05.entry.js} +1 -1
  152. package/lib/duet/{p-57ea2576.system.js → p-61fc3872.system.js} +1 -1
  153. package/lib/duet/{p-1cd7177f.entry.js → p-637df820.entry.js} +1 -1
  154. package/lib/duet/{p-07263910.system.entry.js → p-6402041d.system.entry.js} +1 -1
  155. package/lib/duet/p-64c0aa2a.entry.js +4 -0
  156. package/lib/duet/{p-28b67b94.entry.js → p-65451003.entry.js} +1 -1
  157. package/lib/duet/{p-1bfbc988.entry.js → p-659d6cb7.entry.js} +1 -1
  158. package/lib/duet/{p-91fa68a5.js → p-66fdebc5.js} +1 -1
  159. package/lib/duet/p-6708db8a.entry.js +4 -0
  160. package/lib/duet/{p-e08b8909.entry.js → p-68635a1c.entry.js} +1 -1
  161. package/lib/duet/p-6e363557.system.js +4 -0
  162. package/lib/duet/p-70fafc98.system.js +4 -0
  163. package/lib/duet/p-720a36f2.entry.js +4 -0
  164. package/lib/duet/{p-f53c8019.entry.js → p-72629304.entry.js} +1 -1
  165. package/lib/duet/p-75a104e3.entry.js +4 -0
  166. package/lib/duet/{p-02ad46a0.system.entry.js → p-75e5d4d1.system.entry.js} +1 -1
  167. package/lib/duet/{p-33cf6ed1.entry.js → p-7ab0bad8.entry.js} +1 -1
  168. package/lib/duet/{p-e834c8d5.system.entry.js → p-7ceaf4ef.system.entry.js} +1 -1
  169. package/lib/duet/{p-a1d12e94.system.entry.js → p-7f8cce41.system.entry.js} +1 -1
  170. package/lib/duet/{p-6d2da245.entry.js → p-7fed7f57.entry.js} +1 -1
  171. package/lib/duet/p-8143f3de.js +4 -0
  172. package/lib/duet/p-8c2f14d8.system.entry.js +4 -0
  173. package/lib/duet/{p-4670a654.entry.js → p-8c730326.entry.js} +1 -1
  174. package/lib/duet/{p-de093c16.entry.js → p-9125ed25.entry.js} +1 -1
  175. package/lib/duet/p-933c2774.system.entry.js +4 -0
  176. package/lib/duet/{p-b7e50cfa.entry.js → p-9584411c.entry.js} +1 -1
  177. package/lib/duet/p-987edcd0.js +15 -0
  178. package/lib/duet/p-9930e52e.entry.js +4 -0
  179. package/lib/duet/p-9a09ac2b.system.entry.js +4 -0
  180. package/lib/duet/{p-64109493.entry.js → p-a09ddd8f.entry.js} +1 -1
  181. package/lib/duet/{p-504dbf8f.system.entry.js → p-a2b2fa13.system.entry.js} +1 -1
  182. package/lib/duet/{p-2826f987.js → p-ad07f399.js} +1 -1
  183. package/lib/duet/{p-605bc214.system.entry.js → p-b1ad7a52.system.entry.js} +1 -1
  184. package/lib/duet/{p-f0b1850a.system.entry.js → p-b5dc29b8.system.entry.js} +1 -1
  185. package/lib/duet/p-ba6214be.entry.js +4 -0
  186. package/lib/duet/{p-92d38668.system.entry.js → p-be349a3d.system.entry.js} +1 -1
  187. package/lib/duet/{p-56e172f5.system.entry.js → p-c0f3f60f.system.entry.js} +1 -1
  188. package/lib/duet/{p-fd98468a.system.js → p-c18a599e.system.js} +0 -0
  189. package/lib/duet/p-c3c95a34.system.entry.js +4 -0
  190. package/lib/duet/{p-d4b4bfa6.entry.js → p-c506017d.entry.js} +1 -1
  191. package/lib/duet/p-c74cecf2.system.entry.js +4 -0
  192. package/lib/duet/p-c9a11360.entry.js +4 -0
  193. package/lib/duet/p-cd21755b.entry.js +4 -0
  194. package/lib/duet/p-cd597d62.system.entry.js +4 -0
  195. package/lib/duet/p-cff461b6.entry.js +4 -0
  196. package/lib/duet/{p-7b6db837.system.entry.js → p-d0fb19f7.system.entry.js} +1 -1
  197. package/lib/duet/{p-69a5dc6b.entry.js → p-d1dfa30e.entry.js} +1 -1
  198. package/lib/duet/{p-1cec5a70.system.entry.js → p-d4e706ac.system.entry.js} +1 -1
  199. package/lib/duet/{p-8cb47a70.system.entry.js → p-d5e2bb48.system.entry.js} +1 -1
  200. package/lib/duet/p-dd79932a.entry.js +4 -0
  201. package/lib/duet/p-dd9b8fcb.system.entry.js +4 -0
  202. package/lib/duet/p-ddb6344c.system.js +4 -0
  203. package/lib/duet/{p-47645ea8.system.entry.js → p-de43620d.system.entry.js} +1 -1
  204. package/lib/duet/p-e038da47.system.entry.js +4 -0
  205. package/lib/duet/p-eb55ccd2.system.js +4 -0
  206. package/lib/duet/p-ebc4e334.js +4 -0
  207. package/lib/duet/{p-5fc7e1f7.system.entry.js → p-f37ffb6f.system.entry.js} +1 -1
  208. package/lib/duet/p-f8744611.entry.js +4 -0
  209. package/lib/duet/p-fa99eaa4.system.js +4 -0
  210. package/lib/duet/{p-746655ba.entry.js → p-fd00b025.entry.js} +1 -1
  211. package/lib/esm/{dom-21034390.js → dom-58cd15f6.js} +1 -1
  212. package/lib/esm/duet-alert.entry.js +2 -2
  213. package/lib/esm/duet-badge.entry.js +1 -1
  214. package/lib/esm/duet-button_2.entry.js +4 -4
  215. package/lib/esm/duet-caption_4.entry.js +17 -10
  216. package/lib/esm/duet-card.entry.js +5 -5
  217. package/lib/esm/duet-checkbox.entry.js +2 -2
  218. package/lib/esm/duet-choice_2.entry.js +54 -25
  219. package/lib/esm/duet-collapsible.entry.js +3 -448
  220. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  221. package/lib/esm/duet-date-picker.entry.js +7 -7
  222. package/lib/esm/duet-divider_2.entry.js +1 -1
  223. package/lib/esm/duet-editable-table-button.entry.js +85 -0
  224. package/lib/esm/duet-editable-table_4.entry.js +1438 -0
  225. package/lib/esm/duet-empty-state.entry.js +1 -1
  226. package/lib/esm/duet-fieldset.entry.js +1 -1
  227. package/lib/esm/duet-footer.entry.js +2 -2
  228. package/lib/esm/duet-grid_2.entry.js +69 -4
  229. package/lib/esm/duet-header_2.entry.js +3 -3
  230. package/lib/esm/duet-hero.entry.js +2 -2
  231. package/lib/esm/duet-icon.entry.js +5 -13
  232. package/lib/esm/duet-input_2.entry.js +6 -6
  233. package/lib/esm/duet-layout.entry.js +1 -1
  234. package/lib/esm/duet-list_2.entry.js +2 -2
  235. package/lib/esm/duet-modal.entry.js +3 -3
  236. package/lib/esm/duet-notification_2.entry.js +2 -2
  237. package/lib/esm/duet-number-input.entry.js +2 -2
  238. package/lib/esm/duet-progress.entry.js +71 -0
  239. package/lib/esm/duet-radio_2.entry.js +2 -2
  240. package/lib/esm/duet-range-slider.entry.js +2 -2
  241. package/lib/esm/duet-select.entry.js +5 -5
  242. package/lib/esm/duet-step_2.entry.js +1 -1
  243. package/lib/esm/duet-tab_2.entry.js +3 -3
  244. package/lib/esm/duet-textarea.entry.js +5 -5
  245. package/lib/esm/duet-toggle.entry.js +1 -1
  246. package/lib/esm/duet-tooltip.entry.js +2 -2
  247. package/lib/esm/duet-tray.entry.js +3 -3
  248. package/lib/esm/duet-upload-aria-status.entry.js +96 -0
  249. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  250. package/lib/esm/duet.js +4 -4
  251. package/lib/esm/{focus-utils-1995e5a9.js → focus-utils-c1fa24c4.js} +1 -1
  252. package/lib/esm/{index-6e246691.js → index-05e43a37.js} +91 -78
  253. package/lib/esm/{language-utils-d5c38f65.js → language-utils-344d894c.js} +6 -3
  254. package/lib/esm/loader.js +3 -3
  255. package/lib/esm/{shadow-css-31e2d504.js → shadow-css-7c726abb.js} +9 -10
  256. package/lib/esm/{token-utils-5a35377f.js → token-utils-590d9413.js} +1 -1
  257. package/lib/esm/tokens-e110dc89.js +453 -0
  258. package/lib/esm/{tokens.module-edb66c04.js → tokens.module-49cbf963.js} +3 -1
  259. package/lib/esm/watch-options-dd55bce8.js +57 -0
  260. package/lib/esm-es5/{dom-21034390.js → dom-58cd15f6.js} +0 -0
  261. package/lib/esm-es5/duet-alert.entry.js +1 -1
  262. package/lib/esm-es5/duet-badge.entry.js +1 -1
  263. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  264. package/lib/esm-es5/duet-caption_4.entry.js +2 -2
  265. package/lib/esm-es5/duet-card.entry.js +1 -1
  266. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  267. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  268. package/lib/esm-es5/duet-collapsible.entry.js +2 -2
  269. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  270. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  271. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  272. package/lib/esm-es5/duet-editable-table-button.entry.js +4 -0
  273. package/lib/esm-es5/duet-editable-table_4.entry.js +4 -0
  274. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  275. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  276. package/lib/esm-es5/duet-footer.entry.js +1 -1
  277. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  278. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  279. package/lib/esm-es5/duet-hero.entry.js +1 -1
  280. package/lib/esm-es5/duet-icon.entry.js +2 -2
  281. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  282. package/lib/esm-es5/duet-layout.entry.js +1 -1
  283. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  284. package/lib/esm-es5/duet-modal.entry.js +1 -1
  285. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  286. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  287. package/lib/esm-es5/duet-progress.entry.js +4 -0
  288. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  289. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  290. package/lib/esm-es5/duet-select.entry.js +1 -1
  291. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  292. package/lib/esm-es5/duet-tab_2.entry.js +2 -2
  293. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  294. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  295. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  296. package/lib/esm-es5/duet-tray.entry.js +1 -1
  297. package/lib/esm-es5/duet-upload-aria-status.entry.js +4 -0
  298. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  299. package/lib/esm-es5/duet.js +1 -1
  300. package/lib/esm-es5/{focus-utils-1995e5a9.js → focus-utils-c1fa24c4.js} +1 -1
  301. package/lib/esm-es5/index-05e43a37.js +4 -0
  302. package/lib/esm-es5/{language-utils-d5c38f65.js → language-utils-344d894c.js} +1 -1
  303. package/lib/esm-es5/loader.js +1 -1
  304. package/lib/esm-es5/shadow-css-7c726abb.js +15 -0
  305. package/lib/esm-es5/{token-utils-5a35377f.js → token-utils-590d9413.js} +1 -1
  306. package/lib/esm-es5/tokens-e110dc89.js +4 -0
  307. package/lib/esm-es5/tokens.module-49cbf963.js +4 -0
  308. package/lib/esm-es5/watch-options-dd55bce8.js +4 -0
  309. package/lib/html.html-data.json +427 -10
  310. package/lib/types/components/duet-choice/duet-choice.d.ts +23 -4
  311. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +5 -5
  312. package/lib/types/components/duet-editable-table/duet-editable-table-button.d.ts +72 -0
  313. package/lib/types/components/duet-editable-table/duet-editable-table-item.d.ts +72 -0
  314. package/lib/types/components/duet-editable-table/duet-editable-table-tabledata.d.ts +7 -0
  315. package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +84 -0
  316. package/lib/types/components/duet-grid/duet-grid.d.ts +17 -2
  317. package/lib/types/components/duet-heading/duet-heading.d.ts +2 -2
  318. package/lib/types/components/duet-paragraph/duet-paragraph.d.ts +9 -1
  319. package/lib/types/components/duet-progress/duet-progress.d.ts +64 -0
  320. package/lib/types/components/duet-upload/duet-upload.d.ts +404 -0
  321. package/lib/types/components/duet-upload/errorcodes.utils.d.ts +8 -0
  322. package/lib/types/components/duet-upload/mock.helpers.d.ts +2 -0
  323. package/lib/types/components/duet-upload/upload-editable-item-error.d.ts +7 -0
  324. package/lib/types/components/duet-upload/upload-editable-item-inprogres.d.ts +7 -0
  325. package/lib/types/components/duet-upload/upload-editable-item-success.d.ts +8 -0
  326. package/lib/types/components/duet-upload/upload-validators.d.ts +12 -0
  327. package/lib/types/components/duet-upload/upload.helpers.d.ts +1 -0
  328. package/lib/types/components/duet-upload/xhr.helpers.d.ts +18 -0
  329. package/lib/types/components/duet-upload-aria-status/duet-upload-aria-status.d.ts +49 -0
  330. package/lib/types/components.d.ts +791 -21
  331. package/lib/types/utils/js-utils.d.ts +1 -0
  332. package/lib/types/utils/language-utils.d.ts +5 -1
  333. package/lib/types/utils/watch-options.d.ts +2 -0
  334. package/package.json +6 -6
  335. package/lib/cjs/duet-table.cjs.entry.js +0 -132
  336. package/lib/duet/p-0058512b.js +0 -4
  337. package/lib/duet/p-0224db45.entry.js +0 -4
  338. package/lib/duet/p-15c15c6a.js +0 -15
  339. package/lib/duet/p-202bbd70.entry.js +0 -4
  340. package/lib/duet/p-33426ddc.entry.js +0 -4
  341. package/lib/duet/p-3d3f773d.system.entry.js +0 -4
  342. package/lib/duet/p-3f78a826.system.js +0 -4
  343. package/lib/duet/p-418b2ce7.system.js +0 -4
  344. package/lib/duet/p-43e39d98.system.js +0 -4
  345. package/lib/duet/p-44ffb960.entry.js +0 -4
  346. package/lib/duet/p-5230ee3c.system.entry.js +0 -4
  347. package/lib/duet/p-5aa0d34d.entry.js +0 -4
  348. package/lib/duet/p-6a230911.system.entry.js +0 -4
  349. package/lib/duet/p-6a356ab1.system.js +0 -4
  350. package/lib/duet/p-6a760b8a.entry.js +0 -4
  351. package/lib/duet/p-712e7dde.system.entry.js +0 -4
  352. package/lib/duet/p-82dc2e0b.entry.js +0 -4
  353. package/lib/duet/p-8c8e82aa.system.js +0 -4
  354. package/lib/duet/p-8c980350.system.entry.js +0 -4
  355. package/lib/duet/p-8f03c3eb.entry.js +0 -4
  356. package/lib/duet/p-96808a2e.system.entry.js +0 -4
  357. package/lib/duet/p-96c103b2.system.entry.js +0 -4
  358. package/lib/duet/p-9a89ec39.js +0 -4
  359. package/lib/duet/p-9ff25646.entry.js +0 -4
  360. package/lib/duet/p-b694cbf5.system.js +0 -4
  361. package/lib/duet/p-b82927b0.system.entry.js +0 -4
  362. package/lib/duet/p-ba205dca.entry.js +0 -4
  363. package/lib/duet/p-be19c57b.system.entry.js +0 -4
  364. package/lib/duet/p-c5beceed.js +0 -4
  365. package/lib/duet/p-d35fd913.system.entry.js +0 -4
  366. package/lib/duet/p-d7623eb8.system.entry.js +0 -4
  367. package/lib/duet/p-de842863.entry.js +0 -4
  368. package/lib/duet/p-e58ca7af.system.js +0 -16
  369. package/lib/esm/duet-table.entry.js +0 -128
  370. package/lib/esm/watch-options-de55ea78.js +0 -35
  371. package/lib/esm-es5/duet-table.entry.js +0 -4
  372. package/lib/esm-es5/index-6e246691.js +0 -4
  373. package/lib/esm-es5/shadow-css-31e2d504.js +0 -15
  374. package/lib/esm-es5/tokens.module-edb66c04.js +0 -4
  375. package/lib/esm-es5/watch-options-de55ea78.js +0 -4
@@ -1,18 +1,19 @@
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-6e246691.js';
4
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-05e43a37.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-c1fa24c4.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>"};
14
15
 
15
- const duetChoiceCss = "*.sc-duet-choice,*.sc-duet-choice::after,*.sc-duet-choice::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-choice-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;flex-direction:column;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}.sc-duet-choice-h:last-child,.sc-duet-choice-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){.sc-duet-choice-h{width:100%}}.duet-expand.sc-duet-choice-h{width:100% !important}.duet-m-0.sc-duet-choice-h{margin:0 !important}.duet-fixed.sc-duet-choice-h{width:auto !important}.vertical.sc-duet-choice-h{margin-right:0 !important}.horizontal.sc-duet-choice-h{margin-bottom:0 !important}@media (min-width: 48em){.horizontal-responsive.sc-duet-choice-h{margin-bottom:0 !important;margin-right:16px !important}.horizontal-responsive.sc-duet-choice-h:last-child,.horizontal-responsive.sc-duet-choice-h:last-of-type{margin-right:0 !important}}.sc-duet-choice-h:last-child:not(:only-child){margin-right:0 !important}.duet-choice-card.sc-duet-choice{position:relative;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:400;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#00294d !important;text-align:left;background:white;border-width:2px}.duet-choice-card.duet-p-0.sc-duet-choice{padding:0 !important}.duet-choice-card.duet-m-0.sc-duet-choice{margin:0 !important}.duet-theme-turva.sc-duet-choice .duet-choice-card.sc-duet-choice{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 !important}.duet-choice-card-flextainer.sc-duet-choice{display:flex}.duet-choice-label.sc-duet-choice{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px 48px 20px 16px;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;border:2px solid #e1e3e6;border-radius:4px;transition:background-color 150ms ease}.has-info.sc-duet-choice .duet-choice-label.sc-duet-choice{padding-right:110px;border-top-right-radius:0;border-bottom-right-radius:0}.info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-bottom-right-radius:0;border-bottom-left-radius:0}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice{border-color:#e4e4e6}.duet-theme-turva.sc-duet-choice .info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-color:#e4e4e6}.duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#909599}.duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-checkmark-container.sc-duet-choice{border-color:#909599}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#747475}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-checkmark-container.sc-duet-choice{border-color:#747475}.duet-theme-turva.sc-duet-choice .info.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#747475}.duet-choice-label.sc-duet-choice:active{opacity:0.75;transition:none !important}.has-icon.sc-duet-choice .duet-choice-label.sc-duet-choice{padding-left:48px}.checked.sc-duet-choice .duet-choice-label.sc-duet-choice{color:#0077b3 !important;background:#f3f9fc;border-color:#0077b3 !important}.checked.sc-duet-choice .duet-choice-label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#0077b3}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-choice-label.sc-duet-choice{color:#171c3a !important;background:#f5f5f7;border-color:#171c3a !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-choice-label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#c60c30}.checked.collapsible.sc-duet-choice .duet-choice-label.sc-duet-choice{border-bottom:0 !important;border-bottom-right-radius:0;border-bottom-left-radius:0}input.sc-duet-choice:focus{outline:0}.user-is-tabbing.sc-duet-choice-h input.sc-duet-choice:checked:focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3)}.user-is-tabbing.sc-duet-choice-h input.sc-duet-choice:not(:checked):focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.user-is-tabbing.duet-theme-turva.sc-duet-choice-h input.sc-duet-choice:checked:focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2)}.user-is-tabbing.duet-theme-turva.sc-duet-choice-h input.sc-duet-choice:not(:checked):focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{color:#657787 !important;cursor:default !important;background:#f5f8fa !important;border-color:#e1e3e6 !important}input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice .duet-checkmark.sc-duet-choice{border-color:#657787 !important}.duet-theme-turva.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{color:#747475 !important;background:#f5f5f7 !important;border-color:#e4e4e6 !important}.duet-theme-turva.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice .duet-checkmark.sc-duet-choice{border-color:#747475 !important}.checked.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{background:#e1e3e6 !important;border-color:#e1e3e6 !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-checkmark-container.sc-duet-choice{position:absolute;top:17.7777777778px;right:16px;width:20px;height:20px;border:1px solid #909599;border-radius:4px;transition:border 300ms ease}.duet-theme-turva.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#747475}.checked.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#0077b3;border-color:#0077b3;transition:none}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#171c3a;border-color:#171c3a !important}.duet-checkmark-container.duet-checkmark-radio.sc-duet-choice{border-radius:50%}[disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#cfd2d4 !important}.duet-theme-turva.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#cfcfd1 !important}.checked.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#cfd2d4 !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#cfcfd1 !important}.duet-checkmark.sc-duet-choice{position:absolute;top:10px;left:3px;width:5.3333333333px;height:11.8518518519px;border-top:2px solid white;border-right:2px solid white;opacity:1;transform:scaleX(-1) rotate(135deg) translateZ(0);transform-origin:left top;animation-name:duet-checkmark;animation-duration:600ms;animation-timing-function:ease-out;animation-fill-mode:forwards}@keyframes duet-checkmark{0%{width:0;height:0;opacity:1}20%{width:5.3333333333px;height:0;opacity:1}40%,100%{width:5.3333333333px;height:11.8518518519px;opacity:1}}.duet-choice-card-icon.sc-duet-choice{position:absolute;top:50%;left:16px;transform:translateY(-50%)}.duet-choice-card-icon.sc-duet-choice duet-icon.sc-duet-choice{display:block}.duet-choice-card-info.sc-duet-choice,.duet-choice-card-collapsible.sc-duet-choice{padding:28px !important;position:relative;z-index:200;display:none;width:100%;font-weight:400;color:#00294d;border:2px solid #e1e3e6;border-top:0;border-radius:0 0 4px 4px}.duet-theme-turva.sc-duet-choice .duet-choice-card-info.sc-duet-choice,.duet-theme-turva.sc-duet-choice .duet-choice-card-collapsible.sc-duet-choice{color:#171c3a;border-color:#171c3a}.checked.sc-duet-choice .duet-choice-card-info.sc-duet-choice,.checked.sc-duet-choice .duet-choice-card-collapsible.sc-duet-choice{display:block}.duet-choice-card-info-expanded.sc-duet-choice,.duet-choice-card-collapsible-expanded.sc-duet-choice{display:block}.duet-choice-card-collapsible.sc-duet-choice{background:white;border:2px solid #0077b3;border-top:0}.duet-choice-card-collapsible.duet-theme-turva.sc-duet-choice{background:white;border-color:#171c3a}.duet-choice-card-collapsible-disabled.sc-duet-choice{background:#f5f8fa;border-color:#e1e3e6}.duet-choice-card-collapsible-disabled.duet-theme-turva.sc-duet-choice{background:#f5f5f7;border-color:#e4e4e6}.duet-choice-card-info.sc-duet-choice{font-size:0.875rem;line-height:1.5;background:#f5f8fa;transition:150ms ease-out}.duet-choice-card-info.duet-theme-turva.sc-duet-choice{background:#f5f5f7;border-color:#e4e4e6}.duet-choice-info-toggle.sc-duet-choice{display:flex;flex-shrink:0;justify-content:center;width:57.6px;padding-top:18px;cursor:pointer;background:white;border:2px solid #e1e3e6;border-left:0 none;border-top-right-radius:4px;border-bottom-right-radius:4px;-webkit-appearance:none;appearance:none}.duet-choice-info-toggle[aria-expanded=true].sc-duet-choice{background:#f5f8fa;border-bottom:0;border-bottom-right-radius:0}.duet-choice-info-toggle[disabled].sc-duet-choice{pointer-events:none;background:#f5f8fa !important;border-color:#e1e3e6 !important}.duet-choice-info-toggle[disabled].sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#909599 !important}.duet-choice-info-toggle[disabled].duet-theme-turva.sc-duet-choice{background:#f5f5f7 !important;border-color:#e4e4e6 !important}.duet-choice-info-toggle[disabled].duet-theme-turva.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#747475 !important}.duet-choice-info-toggle.sc-duet-choice:focus{outline:none}.user-is-tabbing.sc-duet-choice-h .duet-choice-info-toggle.sc-duet-choice:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-choice-info-toggle.sc-duet-choice{border-left-color:#909599}.checked.sc-duet-choice .duet-choice-info-toggle.sc-duet-choice{border-left-color:#0077b3 !important}.duet-choice-info-toggle.sc-duet-choice duet-icon.sc-duet-choice{display:block}.duet-choice-info-toggle.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#0077b3}.duet-theme-turva.sc-duet-choice .duet-choice-info-toggle.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#c60c30}.duet-choice-input.sc-duet-choice{position:absolute !important;width:100%;height:100%;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);color:transparent}";
16
+ const duetChoiceCss = "*.sc-duet-choice,*.sc-duet-choice::after,*.sc-duet-choice::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-choice-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:16px !important;margin-bottom:12px !important;display:inline-flex;flex-direction:column;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}.sc-duet-choice-h:last-child,.sc-duet-choice-h:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){.sc-duet-choice-h{width:100%}}.duet-expand.sc-duet-choice-h{width:100% !important}.duet-m-0.sc-duet-choice-h{margin:0 !important}.duet-fixed.sc-duet-choice-h{width:auto !important}.vertical.sc-duet-choice-h{margin-right:0 !important}.horizontal.sc-duet-choice-h{margin-bottom:0 !important}@media (min-width: 48em){.horizontal-responsive.sc-duet-choice-h{margin-bottom:0 !important;margin-right:16px !important}.horizontal-responsive.sc-duet-choice-h:last-child,.horizontal-responsive.sc-duet-choice-h:last-of-type{margin-right:0 !important}}.sc-duet-choice-h:last-child:not(:only-child){margin-right:0 !important}.duet-choice-card.sc-duet-choice{position:relative;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:400;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#00294d !important;text-align:left;background:white;border-width:2px}.duet-choice-card.duet-p-0.sc-duet-choice{padding:0 !important}.duet-choice-card.duet-m-0.sc-duet-choice{margin:0 !important}.duet-theme-turva.sc-duet-choice .duet-choice-card.sc-duet-choice{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 !important}.duet-choice-card-flextainer.sc-duet-choice{display:flex}.duet-choice-label.sc-duet-choice{-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;padding:20px 48px 20px 16px;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;border:2px solid #e1e3e6;border-radius:4px;transition:background-color 150ms ease}.has-info.sc-duet-choice .duet-choice-label.sc-duet-choice{padding-right:110px;border-top-right-radius:0;border-bottom-right-radius:0}.info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-bottom-right-radius:0;border-bottom-left-radius:0}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice{border-color:#e4e4e6}.duet-theme-turva.sc-duet-choice .info.sc-duet-choice .duet-choice-label.sc-duet-choice{border-color:#e4e4e6}.duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#909599}.duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-checkmark-container.sc-duet-choice{border-color:#909599}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#747475}.duet-theme-turva.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-checkmark-container.sc-duet-choice{border-color:#747475}.duet-theme-turva.sc-duet-choice .info.sc-duet-choice .duet-choice-label.sc-duet-choice:not(.no-hover):hover{border-color:#747475}.duet-choice-label.sc-duet-choice:active{opacity:0.75;transition:none !important}.has-icon.sc-duet-choice .duet-choice-label.sc-duet-choice{padding-left:48px}.checked.sc-duet-choice .duet-choice-label.sc-duet-choice{color:#0077b3 !important;background:#f3f9fc;border-color:#0077b3 !important}.checked.sc-duet-choice .duet-choice-label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#0077b3}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-choice-label.sc-duet-choice{color:#171c3a !important;background:#f5f5f7;border-color:#171c3a !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-choice-label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#c60c30}.checked.collapsible.sc-duet-choice .duet-choice-label.sc-duet-choice{border-bottom:0 !important;border-bottom-right-radius:0;border-bottom-left-radius:0}input.sc-duet-choice:focus{outline:0}.user-is-tabbing.sc-duet-choice-h input.sc-duet-choice:checked:focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3)}.user-is-tabbing.sc-duet-choice-h input.sc-duet-choice:not(:checked):focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.user-is-tabbing.duet-theme-turva.sc-duet-choice-h input.sc-duet-choice:checked:focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2)}.user-is-tabbing.duet-theme-turva.sc-duet-choice-h input.sc-duet-choice:not(:checked):focus+.duet-choice-label.sc-duet-choice{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{color:#657787 !important;cursor:default !important;background:#f5f8fa !important;border-color:#e1e3e6 !important}input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice .duet-checkmark.sc-duet-choice{border-color:#657787 !important}.duet-theme-turva.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{color:#747475 !important;background:#f5f5f7 !important;border-color:#e4e4e6 !important}.duet-theme-turva.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice .duet-checkmark.sc-duet-choice{border-color:#747475 !important}.checked.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{background:#e1e3e6 !important;border-color:#e1e3e6 !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice input[disabled].sc-duet-choice+.duet-choice-label.sc-duet-choice{background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-checkmark-container.sc-duet-choice{position:absolute;top:17.7777777778px;right:16px;width:20px;height:20px;border:1px solid #909599;border-radius:4px;transition:border 300ms ease}.duet-theme-turva.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#747475}.checked.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#0077b3;border-color:#0077b3;transition:none}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#171c3a;border-color:#171c3a !important}.duet-checkmark-container.duet-checkmark-radio.sc-duet-choice{border-radius:50%}[disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#cfd2d4 !important}.duet-theme-turva.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{border-color:#cfcfd1 !important}.checked.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#cfd2d4 !important}.duet-theme-turva.sc-duet-choice .checked.sc-duet-choice [disabled].sc-duet-choice+label.sc-duet-choice .duet-checkmark-container.sc-duet-choice{background:#cfcfd1 !important}.duet-checkmark.sc-duet-choice{position:absolute;top:10px;left:3px;width:5.3333333333px;height:11.8518518519px;border-top:2px solid white;border-right:2px solid white;opacity:1;transform:scaleX(-1) rotate(135deg) translateZ(0);transform-origin:left top;animation-name:duet-checkmark;animation-duration:600ms;animation-timing-function:ease-out;animation-fill-mode:forwards}@keyframes duet-checkmark{0%{width:0;height:0;opacity:1}20%{width:5.3333333333px;height:0;opacity:1}40%,100%{width:5.3333333333px;height:11.8518518519px;opacity:1}}.duet-choice-card-icon.sc-duet-choice{position:absolute;top:50%;left:16px;transform:translateY(-50%)}.duet-choice-card-icon.sc-duet-choice duet-icon.sc-duet-choice{display:block}.duet-choice-section-hidden.sc-duet-choice{display:none}.duet-choice-card-info.duet-choice-card-collapsed.sc-duet-choice,.duet-choice-card-collapsed.duet-choice-card-collapsible.sc-duet-choice{position:relative;width:auto;padding:0 !important;background:unset !important;border:0;border-radius:0}.duet-choice-card-info.sc-duet-choice,.duet-choice-card-collapsible.sc-duet-choice{padding:28px !important;position:relative;z-index:200;width:100%;font-weight:400;color:#00294d;border:2px solid #e1e3e6;border-top:0;border-radius:0 0 4px 4px}.duet-theme-turva.sc-duet-choice .duet-choice-card-info.sc-duet-choice,.duet-theme-turva.sc-duet-choice .duet-choice-card-collapsible.sc-duet-choice{color:#171c3a;border-color:#171c3a}.checked.sc-duet-choice .duet-choice-card-info.sc-duet-choice,.checked.sc-duet-choice .duet-choice-card-collapsible.sc-duet-choice{display:block}.duet-choice-card-info-expanded.sc-duet-choice,.duet-choice-card-collapsible-expanded.sc-duet-choice{display:block}.duet-choice-card-collapsible.sc-duet-choice{background:white;border:2px solid #0077b3;border-top:0}.duet-choice-card-collapsible.duet-theme-turva.sc-duet-choice{background:white;border-color:#171c3a}.duet-choice-card-collapsible-disabled.sc-duet-choice{background:#f5f8fa;border-color:#e1e3e6}.duet-choice-card-collapsible-disabled.duet-theme-turva.sc-duet-choice{background:#f5f5f7;border-color:#e4e4e6}.duet-choice-card-info.sc-duet-choice{font-size:0.875rem;line-height:1.5;background:#f5f8fa;transition:150ms ease-out}.duet-choice-card-info.duet-theme-turva.sc-duet-choice{background:#f5f5f7;border-color:#e4e4e6}.duet-choice-info-toggle.sc-duet-choice{display:flex;flex-shrink:0;justify-content:center;width:57.6px;padding-top:18px;cursor:pointer;background:white;border:2px solid #e1e3e6;border-left:0 none;border-top-right-radius:4px;border-bottom-right-radius:4px;-webkit-appearance:none;appearance:none}.duet-choice-info-toggle[aria-expanded=true].sc-duet-choice{background:#f5f8fa;border-bottom:0;border-bottom-right-radius:0}.duet-choice-info-toggle[disabled].sc-duet-choice{pointer-events:none;background:#f5f8fa !important;border-color:#e1e3e6 !important}.duet-choice-info-toggle[disabled].sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#909599 !important}.duet-choice-info-toggle[disabled].duet-theme-turva.sc-duet-choice{background:#f5f5f7 !important;border-color:#e4e4e6 !important}.duet-choice-info-toggle[disabled].duet-theme-turva.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#747475 !important}.duet-choice-info-toggle.sc-duet-choice:focus{outline:none}.user-is-tabbing.sc-duet-choice-h .duet-choice-info-toggle.sc-duet-choice:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-choice-label.sc-duet-choice:not(.no-hover):hover .duet-choice-info-toggle.sc-duet-choice{border-left-color:#909599}.checked.sc-duet-choice .duet-choice-info-toggle.sc-duet-choice{border-left-color:#0077b3 !important}.duet-choice-info-toggle.sc-duet-choice duet-icon.sc-duet-choice{display:block}.duet-choice-info-toggle.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#0077b3}.duet-theme-turva.sc-duet-choice .duet-choice-info-toggle.sc-duet-choice .duet-choice-info-icon.sc-duet-choice{color:#c60c30}.duet-choice-input.sc-duet-choice{position:absolute !important;width:auto;height:auto;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);color:transparent}";
16
17
 
17
18
  let DuetChoice = class {
18
19
  constructor(hostRef) {
@@ -20,9 +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
- this.collapsibleId = createID("DuetChoiceCollapsible");
25
- this.infoId = createID("DuetInfo");
26
+ this.expandId = createID("DuetChoiceExpand");
27
+ this.headerId = createID("DuetChoiceHeader");
28
+ this.infoButtonId = createID("DuetChoiceInfoButton");
26
29
  /**
27
30
  * State() variables
28
31
  * Inlined decorator, alphabetical order.
@@ -100,6 +103,24 @@ let DuetChoice = class {
100
103
  * browser from displaying its own validation errors.
101
104
  */
102
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());
103
124
  this.onMouseEnter = () => {
104
125
  this.isHovering = true;
105
126
  };
@@ -107,7 +128,6 @@ let DuetChoice = class {
107
128
  this.isHovering = false;
108
129
  };
109
130
  this.onClick = (ev) => {
110
- this.setFocus();
111
131
  this.toggleChecked(ev);
112
132
  };
113
133
  this.handleKeyDown = (ev) => {
@@ -115,7 +135,7 @@ let DuetChoice = class {
115
135
  this.toggleChecked(ev);
116
136
  }
117
137
  if (isQuestionKey(ev) && this.hasInfo) {
118
- this.toggleInfo(ev);
138
+ this.toggleInfo();
119
139
  }
120
140
  };
121
141
  this.onChange = () => {
@@ -149,8 +169,6 @@ let DuetChoice = class {
149
169
  if (this.disabled || this.groupDisabled) {
150
170
  return;
151
171
  }
152
- ev.stopPropagation();
153
- ev.preventDefault();
154
172
  this.isInfoOpen = false;
155
173
  // if it's a radio button and it's already checked
156
174
  // we shouldn't fire an event, so exit early
@@ -164,10 +182,10 @@ let DuetChoice = class {
164
182
  value: this.value,
165
183
  component: "duet-choice",
166
184
  });
167
- };
168
- this.toggleInfo = ev => {
169
- ev.stopPropagation();
170
185
  ev.preventDefault();
186
+ ev.stopPropagation();
187
+ };
188
+ this.toggleInfo = () => {
171
189
  this.isInfoOpen = !this.isInfoOpen;
172
190
  };
173
191
  }
@@ -177,6 +195,7 @@ let DuetChoice = class {
177
195
  componentWillLoad() {
178
196
  inheritGlobalTheme(this);
179
197
  this.hasInfo = !!this.element.querySelector("[slot='info']");
198
+ this.hasHeader = !!this.element.querySelector('[slot="header"]');
180
199
  this.hasAdditional = !!this.element.querySelector("[slot='additional']");
181
200
  }
182
201
  /**
@@ -190,15 +209,18 @@ let DuetChoice = class {
190
209
  // @ts-ignore
191
210
  const isTargetContainedInHost = this.element.contains(ev === null || ev === void 0 ? void 0 : ev.relatedTarget) || false;
192
211
  if (!isTargetContainedInHost) {
193
- this.toggleInfo(ev);
212
+ this.toggleInfo();
194
213
  }
195
214
  }
196
215
  }
197
216
  handleHostKeyDown() {
198
217
  this.isKeyDown = true;
199
218
  }
200
- handleHostKeyUp() {
219
+ handleHostKeyUp(ev) {
201
220
  this.isKeyDown = false;
221
+ if (isEscapeKey(ev) && this.isInfoOpen) {
222
+ this.toggleInfo();
223
+ }
202
224
  }
203
225
  /**
204
226
  * Sets focus on the specified `duet-choice`. Use this method instead of the global
@@ -211,11 +233,13 @@ let DuetChoice = class {
211
233
  if (this.accessibleDescribedBy) {
212
234
  return this.accessibleDescribedBy;
213
235
  }
214
- if (this.collapsible) {
215
- return this.collapsibleId;
216
- }
217
- else if (this.hasInfo) {
218
- return this.infoId;
236
+ if (this.collapsible || this.hasInfo) {
237
+ if (this.hasHeader) {
238
+ return this.headerId;
239
+ }
240
+ else {
241
+ return this.expandId;
242
+ }
219
243
  }
220
244
  return null;
221
245
  }
@@ -224,6 +248,7 @@ let DuetChoice = class {
224
248
  return {
225
249
  "duet-choice-card-info": true,
226
250
  "duet-choice-card-info-expanded": this.isInfoOpen,
251
+ "duet-choice-card-collapsed": !this.isInfoOpen,
227
252
  "duet-theme-turva": this.theme === "turva",
228
253
  };
229
254
  }
@@ -231,6 +256,7 @@ let DuetChoice = class {
231
256
  return {
232
257
  "duet-choice-card-collapsible": true,
233
258
  "duet-choice-card-collapsible-expanded": this.checked,
259
+ "duet-choice-card-collapsed": !this.checked,
234
260
  "duet-choice-card-collapsible-disabled": this.disabled || this.groupDisabled ? true : false,
235
261
  "duet-theme-turva": this.theme === "turva",
236
262
  };
@@ -262,10 +288,13 @@ let DuetChoice = class {
262
288
  info: this.isInfoOpen,
263
289
  collapsible: this.collapsible,
264
290
  "duet-p-0": this.padding === "none",
265
- } }, h("input", { "aria-live": "assertive", "aria-atomic": "true", "aria-relevant": "all", 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(), "aria-flowto": this.hasInfo ? this.nativeInfoButton : "", 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", { 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: {
266
292
  "duet-choice-info-toggle": true,
267
293
  "duet-theme-turva": this.theme === "turva",
268
- }, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, onClick: this.toggleInfo, disabled: this.disabled || this.groupDisabled, "aria-expanded": this.isInfoOpen ? "true" : "false", "aria-controls": this.infoId, "aria-flowto": this.infoId, 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" }))))), h("div", { "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all", role: this.hasInfo && !this.collapsible ? "note" : "none", class: this.getClassNames(), id: this.hasInfo ? this.infoId : this.collapsible ? this.collapsibleId : "" }, this.hasInfo && !this.collapsible && h("slot", { name: "info" }), !this.hasInfo && h("slot", null))));
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: {
295
+ "duet-choice-section-visible": this.collapsible ? this.checked : this.isInfoOpen,
296
+ "duet-choice-section-hidden": this.collapsible ? !this.checked : !this.isInfoOpen,
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));
269
298
  }
270
299
  get element() { return getElement(this); }
271
300
  };
@@ -303,11 +332,11 @@ let DuetChoiceGroup = class {
303
332
  /**
304
333
  * Additional caption to show inside the label of the choice group.
305
334
  */
306
- this.caption = "";
335
+ this.caption = undefined;
307
336
  /**
308
337
  * Tooltip to display next to the label of the choice group.
309
338
  */
310
- this.tooltip = "";
339
+ this.tooltip = undefined;
311
340
  /**
312
341
  * With direction setting you can force the tooltip to always open towards left
313
342
  * or right instead of automatically determining the direction.