@duetds/components 6.0.3 → 6.0.5

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 (434) hide show
  1. package/hydrate/index.js +77 -70
  2. package/lib/cjs/duet-action-button.cjs.entry.js +3 -3
  3. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-button_2.cjs.entry.js +3 -3
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +3 -3
  9. package/lib/cjs/duet-card.cjs.entry.js +3 -3
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-choice_2.cjs.entry.js +10 -9
  12. package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
  13. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  16. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-editable-table_3.cjs.entry.js +17 -14
  18. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-grid_2.cjs.entry.js +2 -2
  22. package/lib/cjs/duet-header_2.cjs.entry.js +3 -3
  23. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-icon.cjs.entry.js +3 -3
  25. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-pagination_2.cjs.entry.js +25 -27
  32. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  35. package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-tray.cjs.entry.js +2 -2
  42. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  44. package/lib/cjs/duet.cjs.js +1 -1
  45. package/lib/cjs/{focus-utils-15207057.js → focus-utils-bbba1f98.js} +1 -1
  46. package/lib/cjs/{index-28a9133b.js → index-af927d29.js} +1 -1
  47. package/lib/cjs/loader.cjs.js +1 -1
  48. package/lib/cjs/{token-utils-fef5b4eb.js → token-utils-f6e2f4ef.js} +1 -1
  49. package/lib/cjs/{tokens-29450bcb.js → tokens-4c69b122.js} +18 -15
  50. package/lib/cjs/{tokens.module-ef598645.js → tokens.module-1bb2d45e.js} +12 -10
  51. package/lib/collection/components/duet-choice/duet-choice.js +4 -4
  52. package/lib/collection/components/duet-choice-group/duet-choice-group.js +4 -3
  53. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +25 -27
  54. package/lib/collection/components/duet-upload/duet-upload.js +18 -15
  55. package/lib/dist-custom-elements/duet-action-button.d.ts +11 -0
  56. package/lib/dist-custom-elements/duet-action-button.js +9 -0
  57. package/lib/dist-custom-elements/duet-alert.d.ts +11 -0
  58. package/lib/dist-custom-elements/duet-alert.js +9 -0
  59. package/lib/dist-custom-elements/duet-badge.d.ts +11 -0
  60. package/lib/dist-custom-elements/duet-badge.js +9 -0
  61. package/lib/dist-custom-elements/duet-breadcrumb.d.ts +11 -0
  62. package/lib/dist-custom-elements/duet-breadcrumb.js +73 -0
  63. package/lib/dist-custom-elements/duet-breadcrumbs.d.ts +11 -0
  64. package/lib/dist-custom-elements/duet-breadcrumbs.js +90 -0
  65. package/lib/dist-custom-elements/duet-button.d.ts +11 -0
  66. package/lib/dist-custom-elements/duet-button.js +9 -0
  67. package/lib/dist-custom-elements/duet-caption.d.ts +11 -0
  68. package/lib/dist-custom-elements/duet-caption.js +9 -0
  69. package/lib/dist-custom-elements/duet-card.d.ts +11 -0
  70. package/lib/dist-custom-elements/duet-card.js +190 -0
  71. package/lib/dist-custom-elements/duet-checkbox.d.ts +11 -0
  72. package/lib/dist-custom-elements/duet-checkbox.js +163 -0
  73. package/lib/dist-custom-elements/duet-choice-group.d.ts +11 -0
  74. package/lib/dist-custom-elements/duet-choice-group.js +227 -0
  75. package/lib/dist-custom-elements/duet-choice.d.ts +11 -0
  76. package/lib/dist-custom-elements/duet-choice.js +390 -0
  77. package/lib/dist-custom-elements/duet-collapsible.d.ts +11 -0
  78. package/lib/dist-custom-elements/duet-collapsible.js +170 -0
  79. package/lib/dist-custom-elements/duet-combobox.d.ts +11 -0
  80. package/lib/dist-custom-elements/duet-combobox.js +432 -0
  81. package/lib/dist-custom-elements/duet-cookie-consent.d.ts +11 -0
  82. package/lib/dist-custom-elements/duet-cookie-consent.js +94 -0
  83. package/lib/dist-custom-elements/duet-date-picker.d.ts +11 -0
  84. package/lib/dist-custom-elements/duet-date-picker.js +906 -0
  85. package/lib/dist-custom-elements/duet-divider.d.ts +11 -0
  86. package/lib/dist-custom-elements/duet-divider.js +9 -0
  87. package/lib/dist-custom-elements/duet-editable-table.d.ts +11 -0
  88. package/lib/dist-custom-elements/duet-editable-table.js +9 -0
  89. package/lib/dist-custom-elements/duet-empty-state.d.ts +11 -0
  90. package/lib/dist-custom-elements/duet-empty-state.js +9 -0
  91. package/lib/dist-custom-elements/duet-fieldset.d.ts +11 -0
  92. package/lib/dist-custom-elements/duet-fieldset.js +9 -0
  93. package/lib/dist-custom-elements/duet-footer.d.ts +11 -0
  94. package/lib/dist-custom-elements/duet-footer.js +199 -0
  95. package/lib/dist-custom-elements/duet-grid-item.d.ts +11 -0
  96. package/lib/dist-custom-elements/duet-grid-item.js +9 -0
  97. package/lib/dist-custom-elements/duet-grid.d.ts +11 -0
  98. package/lib/dist-custom-elements/duet-grid.js +9 -0
  99. package/lib/dist-custom-elements/duet-header.d.ts +11 -0
  100. package/lib/dist-custom-elements/duet-header.js +764 -0
  101. package/lib/dist-custom-elements/duet-heading.d.ts +11 -0
  102. package/lib/dist-custom-elements/duet-heading.js +9 -0
  103. package/lib/dist-custom-elements/duet-hero.d.ts +11 -0
  104. package/lib/dist-custom-elements/duet-hero.js +314 -0
  105. package/lib/dist-custom-elements/duet-icon.d.ts +11 -0
  106. package/lib/dist-custom-elements/duet-icon.js +9 -0
  107. package/lib/dist-custom-elements/duet-input.d.ts +11 -0
  108. package/lib/dist-custom-elements/duet-input.js +9 -0
  109. package/lib/dist-custom-elements/duet-label.d.ts +11 -0
  110. package/lib/dist-custom-elements/duet-label.js +9 -0
  111. package/lib/dist-custom-elements/duet-layout.d.ts +11 -0
  112. package/lib/dist-custom-elements/duet-layout.js +107 -0
  113. package/lib/dist-custom-elements/duet-link.d.ts +11 -0
  114. package/lib/dist-custom-elements/duet-link.js +9 -0
  115. package/lib/dist-custom-elements/duet-list-item.d.ts +11 -0
  116. package/lib/dist-custom-elements/duet-list-item.js +9 -0
  117. package/lib/dist-custom-elements/duet-list.d.ts +11 -0
  118. package/lib/dist-custom-elements/duet-list.js +9 -0
  119. package/lib/dist-custom-elements/duet-logo.d.ts +11 -0
  120. package/lib/dist-custom-elements/duet-logo.js +9 -0
  121. package/lib/dist-custom-elements/duet-modal.d.ts +11 -0
  122. package/lib/dist-custom-elements/duet-modal.js +331 -0
  123. package/lib/dist-custom-elements/duet-notification-drawer.d.ts +11 -0
  124. package/lib/dist-custom-elements/duet-notification-drawer.js +194 -0
  125. package/lib/dist-custom-elements/duet-notification.d.ts +11 -0
  126. package/lib/dist-custom-elements/duet-notification.js +114 -0
  127. package/lib/dist-custom-elements/duet-number-input.d.ts +11 -0
  128. package/lib/dist-custom-elements/duet-number-input.js +516 -0
  129. package/lib/dist-custom-elements/duet-pagination.d.ts +11 -0
  130. package/lib/dist-custom-elements/duet-pagination.js +396 -0
  131. package/lib/dist-custom-elements/duet-paragraph.d.ts +11 -0
  132. package/lib/dist-custom-elements/duet-paragraph.js +9 -0
  133. package/lib/dist-custom-elements/duet-progress.d.ts +11 -0
  134. package/lib/dist-custom-elements/duet-progress.js +9 -0
  135. package/lib/dist-custom-elements/duet-radio-group.d.ts +11 -0
  136. package/lib/dist-custom-elements/duet-radio-group.js +216 -0
  137. package/lib/dist-custom-elements/duet-radio.d.ts +11 -0
  138. package/lib/dist-custom-elements/duet-radio.js +167 -0
  139. package/lib/dist-custom-elements/duet-range-slider.d.ts +11 -0
  140. package/lib/dist-custom-elements/duet-range-slider.js +209 -0
  141. package/lib/dist-custom-elements/duet-range-stepper.d.ts +11 -0
  142. package/lib/dist-custom-elements/duet-range-stepper.js +223 -0
  143. package/lib/dist-custom-elements/duet-scrollable.d.ts +11 -0
  144. package/lib/dist-custom-elements/duet-scrollable.js +9 -0
  145. package/lib/dist-custom-elements/duet-select.d.ts +11 -0
  146. package/lib/dist-custom-elements/duet-select.js +9 -0
  147. package/lib/dist-custom-elements/duet-spacer.d.ts +11 -0
  148. package/lib/dist-custom-elements/duet-spacer.js +9 -0
  149. package/lib/dist-custom-elements/duet-spinner.d.ts +11 -0
  150. package/lib/dist-custom-elements/duet-spinner.js +9 -0
  151. package/lib/dist-custom-elements/duet-step.d.ts +11 -0
  152. package/lib/dist-custom-elements/duet-step.js +150 -0
  153. package/lib/dist-custom-elements/duet-stepper.d.ts +11 -0
  154. package/lib/dist-custom-elements/duet-stepper.js +164 -0
  155. package/lib/dist-custom-elements/duet-tab-group.d.ts +11 -0
  156. package/lib/dist-custom-elements/duet-tab-group.js +301 -0
  157. package/lib/dist-custom-elements/duet-tab.d.ts +11 -0
  158. package/lib/dist-custom-elements/duet-tab.js +59 -0
  159. package/lib/dist-custom-elements/duet-table.d.ts +11 -0
  160. package/lib/dist-custom-elements/duet-table.js +9 -0
  161. package/lib/dist-custom-elements/duet-textarea.d.ts +11 -0
  162. package/lib/dist-custom-elements/duet-textarea.js +297 -0
  163. package/lib/dist-custom-elements/duet-toggle.d.ts +11 -0
  164. package/lib/dist-custom-elements/duet-toggle.js +150 -0
  165. package/lib/dist-custom-elements/duet-tooltip.d.ts +11 -0
  166. package/lib/dist-custom-elements/duet-tooltip.js +9 -0
  167. package/lib/dist-custom-elements/duet-tray.d.ts +11 -0
  168. package/lib/dist-custom-elements/duet-tray.js +175 -0
  169. package/lib/dist-custom-elements/duet-upload-aria-status.d.ts +11 -0
  170. package/lib/dist-custom-elements/duet-upload-aria-status.js +9 -0
  171. package/lib/dist-custom-elements/duet-upload.d.ts +11 -0
  172. package/lib/dist-custom-elements/duet-upload.js +1514 -0
  173. package/lib/dist-custom-elements/duet-visually-hidden.d.ts +11 -0
  174. package/lib/dist-custom-elements/duet-visually-hidden.js +9 -0
  175. package/lib/dist-custom-elements/index.d.ts +26 -0
  176. package/lib/dist-custom-elements/index.js +37 -0
  177. package/lib/{esm/tokens-8ff8c570.js → dist-custom-elements/p-02305a1e.js} +18 -15
  178. package/lib/dist-custom-elements/p-0b3f675e.js +47 -0
  179. package/lib/{esm/focus-utils-559691b3.js → dist-custom-elements/p-0b8f16f1.js} +1 -1
  180. package/lib/dist-custom-elements/p-0ce83b83.js +154 -0
  181. package/lib/dist-custom-elements/p-0f5b2dfe.js +287 -0
  182. package/lib/dist-custom-elements/p-115c79b6.js +6 -0
  183. package/lib/dist-custom-elements/p-12721178.js +57 -0
  184. package/lib/dist-custom-elements/p-166d7b9c.js +199 -0
  185. package/lib/dist-custom-elements/p-1ad6b04e.js +1666 -0
  186. package/lib/dist-custom-elements/p-21887c28.js +275 -0
  187. package/lib/dist-custom-elements/p-24c2ac51.js +114 -0
  188. package/lib/dist-custom-elements/p-266411cf.js +307 -0
  189. package/lib/dist-custom-elements/p-2bb345c0.js +193 -0
  190. package/lib/dist-custom-elements/p-32a67b55.js +87 -0
  191. package/lib/dist-custom-elements/p-4c52333e.js +341 -0
  192. package/lib/dist-custom-elements/p-4ebf1618.js +13 -0
  193. package/lib/dist-custom-elements/p-4f516732.js +214 -0
  194. package/lib/dist-custom-elements/p-53a0c93d.js +37 -0
  195. package/lib/dist-custom-elements/p-544d933d.js +61 -0
  196. package/lib/dist-custom-elements/p-56118313.js +53 -0
  197. package/lib/dist-custom-elements/p-56b5945f.js +160 -0
  198. package/lib/dist-custom-elements/p-5a9d75e1.js +55 -0
  199. package/lib/dist-custom-elements/p-692cc270.js +125 -0
  200. package/lib/dist-custom-elements/p-6cae0682.js +75 -0
  201. package/lib/dist-custom-elements/p-704245ef.js +9 -0
  202. package/lib/dist-custom-elements/p-76f00bd5.js +10 -0
  203. package/lib/dist-custom-elements/p-7a003d73.js +37 -0
  204. package/lib/dist-custom-elements/p-7f5ad01d.js +64 -0
  205. package/lib/{esm/token-utils-df78f4d8.js → dist-custom-elements/p-86faf728.js} +1 -1
  206. package/lib/dist-custom-elements/p-8f69f7ca.js +428 -0
  207. package/lib/dist-custom-elements/p-92012dcc.js +71 -0
  208. package/lib/dist-custom-elements/p-9af8e9da.js +70 -0
  209. package/lib/dist-custom-elements/p-a087e30a.js +86 -0
  210. package/lib/dist-custom-elements/p-b9058029.js +138 -0
  211. package/lib/dist-custom-elements/p-bd779757.js +184 -0
  212. package/lib/dist-custom-elements/p-c0469b33.js +133 -0
  213. package/lib/dist-custom-elements/p-c1325e35.js +11 -0
  214. package/lib/dist-custom-elements/p-c8d44e6d.js +87 -0
  215. package/lib/dist-custom-elements/p-cfab50b5.js +110 -0
  216. package/lib/dist-custom-elements/p-d004da5f.js +6 -0
  217. package/lib/dist-custom-elements/p-d11287e1.js +129 -0
  218. package/lib/dist-custom-elements/p-d4c234ed.js +390 -0
  219. package/lib/dist-custom-elements/p-d8549efe.js +20 -0
  220. package/lib/dist-custom-elements/p-db91a981.js +98 -0
  221. package/lib/dist-custom-elements/p-e121eb6d.js +241 -0
  222. package/lib/dist-custom-elements/p-ede854e1.js +92 -0
  223. package/lib/dist-custom-elements/p-ee9a63c3.js +65 -0
  224. package/lib/dist-custom-elements/p-f11208c3.js +6 -0
  225. package/lib/dist-custom-elements/p-f1d0dca7.js +275 -0
  226. package/lib/dist-custom-elements/p-fb6be4e4.js +66 -0
  227. package/lib/duet/duet.esm.js +1 -1
  228. package/lib/duet/duet.js +1 -1
  229. package/lib/duet/{p-4c93a18e.system.entry.js → p-01ec746a.system.entry.js} +1 -1
  230. package/lib/duet/p-02305a1e.js +4 -0
  231. package/lib/duet/{p-674e546f.system.entry.js → p-02a0c4f6.system.entry.js} +1 -1
  232. package/lib/duet/{p-b01e2523.entry.js → p-02fec3bd.entry.js} +1 -1
  233. package/lib/duet/{p-300147ad.entry.js → p-032a5071.entry.js} +1 -1
  234. package/lib/duet/{p-0626271f.entry.js → p-08fe21b1.entry.js} +1 -1
  235. package/lib/duet/{p-d0cee171.entry.js → p-0b0c7f09.entry.js} +1 -1
  236. package/lib/duet/{p-1931d33f.system.js → p-100c6ed7.system.js} +1 -1
  237. package/lib/duet/{p-dab594cf.system.entry.js → p-168a22df.system.entry.js} +1 -1
  238. package/lib/duet/p-1fc60a60.system.js +4 -0
  239. package/lib/duet/{p-bb9624c3.entry.js → p-24dafa59.entry.js} +1 -1
  240. package/lib/duet/{p-d444107c.system.entry.js → p-28fcab59.system.entry.js} +1 -1
  241. package/lib/duet/{p-db15d420.system.entry.js → p-292ab686.system.entry.js} +1 -1
  242. package/lib/duet/{p-de986d77.system.entry.js → p-293b8c58.system.entry.js} +1 -1
  243. package/lib/duet/{p-9308c1e6.entry.js → p-2c698aec.entry.js} +1 -1
  244. package/lib/duet/p-32f7178a.system.js +4 -0
  245. package/lib/duet/{p-92d95bde.system.entry.js → p-3967595b.system.entry.js} +1 -1
  246. package/lib/duet/{p-72443e94.system.entry.js → p-414b1ba7.system.entry.js} +1 -1
  247. package/lib/duet/{p-ae515c54.entry.js → p-422d7157.entry.js} +1 -1
  248. package/lib/duet/{p-9fcac068.system.entry.js → p-4df190b5.system.entry.js} +1 -1
  249. package/lib/duet/{p-c41b07d7.entry.js → p-50eb1959.entry.js} +1 -1
  250. package/lib/duet/{p-de3c0f4d.js → p-532e9db7.js} +1 -1
  251. package/lib/duet/{p-16521f2d.entry.js → p-552ce747.entry.js} +1 -1
  252. package/lib/duet/{p-398a79a0.js → p-588be556.js} +1 -1
  253. package/lib/duet/{p-b008fe25.entry.js → p-58c58219.entry.js} +1 -1
  254. package/lib/duet/{p-2bd79d6b.entry.js → p-5b7db3d5.entry.js} +1 -1
  255. package/lib/duet/{p-5d967d15.entry.js → p-5bb6f856.entry.js} +1 -1
  256. package/lib/duet/{p-20271117.entry.js → p-62ff683a.entry.js} +1 -1
  257. package/lib/duet/{p-e1654a8b.system.entry.js → p-65206bf2.system.entry.js} +1 -1
  258. package/lib/duet/{p-2bba6489.entry.js → p-66bb00c2.entry.js} +1 -1
  259. package/lib/duet/{p-49db53a1.system.entry.js → p-6cc35a71.system.entry.js} +1 -1
  260. package/lib/duet/{p-63dbd5af.system.entry.js → p-7431ad27.system.entry.js} +1 -1
  261. package/lib/duet/{p-df11c241.system.entry.js → p-74bcd39f.system.entry.js} +1 -1
  262. package/lib/duet/{p-e2ac0727.system.entry.js → p-76fd11ff.system.entry.js} +1 -1
  263. package/lib/duet/{p-339e5901.system.js → p-7871ef0a.system.js} +1 -1
  264. package/lib/duet/{p-1aca544d.entry.js → p-79160b90.entry.js} +1 -1
  265. package/lib/duet/{p-23ad5f8a.entry.js → p-7d71fd3b.entry.js} +1 -1
  266. package/lib/duet/{p-946aa901.system.entry.js → p-7d866e2a.system.entry.js} +1 -1
  267. package/lib/duet/{p-9e54127f.system.entry.js → p-83120829.system.entry.js} +1 -1
  268. package/lib/duet/{p-d0f72f22.js → p-85c3f82e.js} +1 -1
  269. package/lib/duet/{p-06ab2787.system.entry.js → p-85df6ff1.system.entry.js} +1 -1
  270. package/lib/duet/{p-68c3b19f.entry.js → p-86567f28.entry.js} +1 -1
  271. package/lib/duet/{p-104bf1b5.entry.js → p-8669b09e.entry.js} +1 -1
  272. package/lib/duet/{p-9f18afd6.entry.js → p-88819152.entry.js} +1 -1
  273. package/lib/duet/{p-5d1787cb.entry.js → p-89dc739e.entry.js} +1 -1
  274. package/lib/duet/{p-6c875cfa.system.entry.js → p-8a4d7ae9.system.entry.js} +1 -1
  275. package/lib/duet/{p-571440c7.system.entry.js → p-8edd208a.system.entry.js} +1 -1
  276. package/lib/duet/{p-691f609b.entry.js → p-8efd9495.entry.js} +1 -1
  277. package/lib/duet/{p-c5499bc3.entry.js → p-8f222a1b.entry.js} +1 -1
  278. package/lib/duet/{p-6b0a4b3b.entry.js → p-98ba3424.entry.js} +1 -1
  279. package/lib/duet/{p-31004a7b.system.entry.js → p-996ba330.system.entry.js} +1 -1
  280. package/lib/duet/{p-de815460.system.entry.js → p-9999e5fa.system.entry.js} +1 -1
  281. package/lib/duet/{p-de146ffa.system.entry.js → p-9bae46c2.system.entry.js} +1 -1
  282. package/lib/duet/{p-ab2f08b3.system.entry.js → p-9cb366b1.system.entry.js} +1 -1
  283. package/lib/duet/{p-8c409ffe.system.entry.js → p-a3de163c.system.entry.js} +1 -1
  284. package/lib/duet/{p-064dd5fd.entry.js → p-a40a7074.entry.js} +1 -1
  285. package/lib/duet/{p-1010fb94.entry.js → p-a463d7ba.entry.js} +1 -1
  286. package/lib/duet/{p-087d72dd.system.entry.js → p-a755f378.system.entry.js} +1 -1
  287. package/lib/duet/{p-b066a6b7.entry.js → p-a78c751d.entry.js} +1 -1
  288. package/lib/duet/{p-c8d9da51.entry.js → p-aae486b1.entry.js} +1 -1
  289. package/lib/duet/{p-0f7f7e7d.system.entry.js → p-ade95c1a.system.entry.js} +1 -1
  290. package/lib/duet/{p-9f8a51b4.system.entry.js → p-ae270d5c.system.entry.js} +1 -1
  291. package/lib/duet/{p-94c07a46.system.entry.js → p-afd48ab5.system.entry.js} +1 -1
  292. package/lib/duet/{p-f2eaad1e.js → p-b1931fae.js} +1 -1
  293. package/lib/duet/{p-e3983bfe.entry.js → p-b1b6bfaf.entry.js} +1 -1
  294. package/lib/duet/{p-6eecfced.system.entry.js → p-bcaa46bc.system.entry.js} +1 -1
  295. package/lib/duet/{p-eb54474f.system.entry.js → p-bd95bbac.system.entry.js} +1 -1
  296. package/lib/duet/{p-09364233.entry.js → p-c14e364f.entry.js} +1 -1
  297. package/lib/duet/{p-074bfd45.entry.js → p-cd24ed34.entry.js} +1 -1
  298. package/lib/duet/{p-8157e5bb.system.entry.js → p-ceaefc71.system.entry.js} +1 -1
  299. package/lib/duet/{p-18cc5627.system.js → p-d209191d.system.js} +1 -1
  300. package/lib/duet/{p-5658ac20.system.entry.js → p-d33ad700.system.entry.js} +1 -1
  301. package/lib/duet/{p-41cb95cb.entry.js → p-d5700477.entry.js} +1 -1
  302. package/lib/duet/{p-b3dc55a6.system.entry.js → p-d8c1e717.system.entry.js} +1 -1
  303. package/lib/duet/{p-cca9c605.system.entry.js → p-d8e4683f.system.entry.js} +1 -1
  304. package/lib/duet/{p-0ae59d7c.entry.js → p-db5582e2.entry.js} +1 -1
  305. package/lib/duet/{p-f7ac05dd.system.entry.js → p-dc3379cf.system.entry.js} +1 -1
  306. package/lib/duet/{p-cfa50753.system.js → p-ddc42b65.system.js} +1 -1
  307. package/lib/duet/{p-3cc55c8a.system.entry.js → p-e1c35023.system.entry.js} +1 -1
  308. package/lib/duet/p-e6d75fab.entry.js +4 -0
  309. package/lib/duet/{p-89048c6f.entry.js → p-e99cfa9a.entry.js} +1 -1
  310. package/lib/duet/{p-4034b322.system.entry.js → p-ec08089e.system.entry.js} +1 -1
  311. package/lib/duet/{p-bec24271.system.entry.js → p-ec45b5c6.system.entry.js} +1 -1
  312. package/lib/duet/{p-5beb69ac.entry.js → p-ed41265b.entry.js} +1 -1
  313. package/lib/duet/{p-744ce6ce.entry.js → p-ed985877.entry.js} +1 -1
  314. package/lib/duet/p-f5cac1af.entry.js +4 -0
  315. package/lib/duet/{p-e0f6ebf4.system.entry.js → p-f6725c7b.system.entry.js} +1 -1
  316. package/lib/duet/{p-c2e37fb4.entry.js → p-f7012b1f.entry.js} +1 -1
  317. package/lib/duet/{p-23ba48a5.system.entry.js → p-f7856429.system.entry.js} +1 -1
  318. package/lib/duet/{p-97a369d6.entry.js → p-f9d05a5c.entry.js} +1 -1
  319. package/lib/duet/{p-ef4b4f35.entry.js → p-fb798cb8.entry.js} +1 -1
  320. package/lib/duet/{p-47ed8218.entry.js → p-fcbf70a6.entry.js} +1 -1
  321. package/lib/duet/{p-3d029dce.system.entry.js → p-fcc58f66.system.entry.js} +1 -1
  322. package/lib/duet/{p-db115036.entry.js → p-fdd0a7df.entry.js} +1 -1
  323. package/lib/duet/{p-6841adb8.system.entry.js → p-feae179e.system.entry.js} +1 -1
  324. package/lib/esm/duet-action-button.entry.js +3 -3
  325. package/lib/esm/duet-alert.entry.js +1 -1
  326. package/lib/esm/duet-badge.entry.js +1 -1
  327. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  328. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  329. package/lib/esm/duet-button_2.entry.js +3 -3
  330. package/lib/esm/duet-caption_4.entry.js +3 -3
  331. package/lib/esm/duet-card.entry.js +3 -3
  332. package/lib/esm/duet-checkbox.entry.js +1 -1
  333. package/lib/esm/duet-choice_2.entry.js +10 -9
  334. package/lib/esm/duet-collapsible.entry.js +2 -2
  335. package/lib/esm/duet-combobox.entry.js +1 -1
  336. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  337. package/lib/esm/duet-date-picker.entry.js +2 -2
  338. package/lib/esm/duet-divider_2.entry.js +1 -1
  339. package/lib/esm/duet-editable-table_3.entry.js +17 -14
  340. package/lib/esm/duet-empty-state.entry.js +1 -1
  341. package/lib/esm/duet-fieldset.entry.js +1 -1
  342. package/lib/esm/duet-footer.entry.js +1 -1
  343. package/lib/esm/duet-grid_2.entry.js +2 -2
  344. package/lib/esm/duet-header_2.entry.js +3 -3
  345. package/lib/esm/duet-hero.entry.js +1 -1
  346. package/lib/esm/duet-icon.entry.js +3 -3
  347. package/lib/esm/duet-input_2.entry.js +1 -1
  348. package/lib/esm/duet-layout.entry.js +1 -1
  349. package/lib/esm/duet-list_2.entry.js +1 -1
  350. package/lib/esm/duet-modal.entry.js +2 -2
  351. package/lib/esm/duet-notification_2.entry.js +1 -1
  352. package/lib/esm/duet-number-input.entry.js +1 -1
  353. package/lib/esm/duet-pagination_2.entry.js +25 -27
  354. package/lib/esm/duet-progress.entry.js +1 -1
  355. package/lib/esm/duet-radio_2.entry.js +1 -1
  356. package/lib/esm/duet-range-slider.entry.js +2 -2
  357. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  358. package/lib/esm/duet-select.entry.js +1 -1
  359. package/lib/esm/duet-step_2.entry.js +1 -1
  360. package/lib/esm/duet-textarea.entry.js +1 -1
  361. package/lib/esm/duet-toggle.entry.js +1 -1
  362. package/lib/esm/duet-tooltip.entry.js +1 -1
  363. package/lib/esm/duet-tray.entry.js +2 -2
  364. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  365. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  366. package/lib/esm/duet.js +1 -1
  367. package/lib/esm/focus-utils-b515b88b.js +18 -0
  368. package/lib/esm/{index-f600b8dc.js → index-d8c3ba71.js} +1 -1
  369. package/lib/esm/loader.js +1 -1
  370. package/lib/esm/token-utils-ebf797ab.js +92 -0
  371. package/lib/esm/tokens-b9d87fda.js +459 -0
  372. package/lib/esm/{tokens.module-f4572ed7.js → tokens.module-385c4cf8.js} +12 -10
  373. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  374. package/lib/esm-es5/duet-alert.entry.js +1 -1
  375. package/lib/esm-es5/duet-badge.entry.js +1 -1
  376. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  377. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  378. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  379. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  380. package/lib/esm-es5/duet-card.entry.js +1 -1
  381. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  382. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  383. package/lib/esm-es5/duet-collapsible.entry.js +2 -2
  384. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  385. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  386. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  387. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  388. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  389. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  390. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  391. package/lib/esm-es5/duet-footer.entry.js +1 -1
  392. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  393. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  394. package/lib/esm-es5/duet-hero.entry.js +1 -1
  395. package/lib/esm-es5/duet-icon.entry.js +1 -1
  396. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  397. package/lib/esm-es5/duet-layout.entry.js +1 -1
  398. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  399. package/lib/esm-es5/duet-modal.entry.js +1 -1
  400. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  401. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  402. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  403. package/lib/esm-es5/duet-progress.entry.js +1 -1
  404. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  405. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  406. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  407. package/lib/esm-es5/duet-select.entry.js +1 -1
  408. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  409. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  410. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  411. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  412. package/lib/esm-es5/duet-tray.entry.js +1 -1
  413. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  414. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  415. package/lib/esm-es5/duet.js +1 -1
  416. package/lib/esm-es5/{focus-utils-559691b3.js → focus-utils-b515b88b.js} +1 -1
  417. package/lib/esm-es5/{index-f600b8dc.js → index-d8c3ba71.js} +1 -1
  418. package/lib/esm-es5/loader.js +1 -1
  419. package/lib/esm-es5/{token-utils-df78f4d8.js → token-utils-ebf797ab.js} +1 -1
  420. package/lib/esm-es5/tokens-b9d87fda.js +4 -0
  421. package/lib/esm-es5/{tokens.module-f4572ed7.js → tokens.module-385c4cf8.js} +1 -1
  422. package/lib/types/components/duet-choice-group/duet-choice-group.d.ts +1 -0
  423. package/lib/types/components/duet-range-stepper/duet-range-stepper.d.ts +2 -2
  424. package/lib/types/components/duet-upload/duet-upload.d.ts +8 -8
  425. package/lib/types/components.d.ts +6 -6
  426. package/package.json +5 -5
  427. package/lib/custom-elements-bundle/index.d.ts +0 -399
  428. package/lib/custom-elements-bundle/index.js +0 -14110
  429. package/lib/duet/p-6002f3d2.system.js +0 -4
  430. package/lib/duet/p-7c198c75.entry.js +0 -4
  431. package/lib/duet/p-a93a04b9.system.js +0 -4
  432. package/lib/duet/p-d1746325.js +0 -4
  433. package/lib/duet/p-f2ab3e5c.entry.js +0 -4
  434. package/lib/esm-es5/tokens-8ff8c570.js +0 -4
@@ -0,0 +1,190 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment, b as Host } from './p-1ad6b04e.js';
5
+ import { i as inheritGlobalTheme } from './p-4ebf1618.js';
6
+ import { c as createID } from './p-c1325e35.js';
7
+ import { i as isKeyboardClick } from './p-d8549efe.js';
8
+ import { s as sanitizeString } from './p-5a9d75e1.js';
9
+ import { g as getColorByName } from './p-86faf728.js';
10
+ import { d as defineCustomElement$3 } from './p-4f516732.js';
11
+ import { d as defineCustomElement$2 } from './p-ee9a63c3.js';
12
+
13
+ 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>"};
14
+
15
+ const duetCardCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-bottom:20px !important;display:flex;width:100%;vertical-align:top}:host(.duet-card-info){margin-bottom:16px !important}:host(.duet-m-0){margin:0 !important}.duet-card{padding:20px !important;position:relative;display:block;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-style:normal;font-weight:400;line-height:1.5;color:#00294d;text-decoration:none;border-radius:4px;box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}.duet-card.duet-p-0{padding:0 !important}.duet-card.duet-m-0{margin:0 !important}.duet-card:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-card:focus,.duet-card:focus.duet-theme-turva{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}@media (min-width: 36em){.duet-card{padding:28px !important}}.duet-card.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07)}@media (min-width: 36em){.duet-card.x-small{padding:20px !important}}@media (min-width: 36em){.duet-card.medium{padding:28px !important}}@media (min-width: 48em){.duet-card.medium{padding:36px !important}}@media (min-width: 36em){.duet-card.large{padding:36px !important}}@media (min-width: 48em){.duet-card.large{padding:48px !important}}@media (min-width: 36em){.duet-card.x-large{padding:48px !important}}@media (min-width: 48em){.duet-card.x-large{padding:72px !important}}.duet-card.duet-card-collapsed{padding-bottom:0 !important}@media (min-width: 36em){.duet-card.duet-card-collapsed{padding-bottom:0 !important}}.duet-card.info{background:rgba(0, 80, 128, 0.04) !important;box-shadow:none}.duet-card.info.duet-theme-turva{background:rgba(23, 28, 58, 0.035) !important}.duet-card.plain{box-shadow:none}.duet-card.plain:not(.duet-card-has-bg){background:transparent !important}.duet-card-heading-grid{display:flex;flex-direction:row}.duet-card-icon{align-self:center}.duet-card-heading-text{flex:1;word-break:break-word}.duet-card-secondary-heading{font-size:1rem;font-weight:600;word-break:break-word}.duet-card-secondary-heading--inline{display:block;flex:1;align-self:flex-start;line-height:1.875;text-align:right}@media (max-width: 22.5em){.duet-card-secondary-heading--inline{display:none}}.duet-card-secondary-heading--new-line{display:none}@media (max-width: 22.5em){.duet-card-secondary-heading--new-line{display:block}}.duet-card-heading{position:relative;display:block;padding:16px 20px;margin:-20px -20px 20px;overflow:hidden;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1.25rem;font-weight:800;color:#00294d;border-bottom:1px solid #e1e3e6}@media (min-width: 36em){.duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}}.duet-card-heading[role=button]{-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:4px;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;appearance:none}.duet-card-heading[role=button]:focus{outline:0}:host(.user-is-tabbing) .duet-card-heading[role=button]:focus{border-radius:4px;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-theme-turva .duet-card-heading[role=button]:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-card-collapsed .duet-card-heading{margin-bottom:0 !important;border-bottom:0 !important}.duet-theme-turva .duet-card-heading{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#171c3a;border-color:#e4e4e6}@media (min-width: 36em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}@media (min-width: 48em){.x-small .duet-card-heading{padding:10px 20px 11px !important;margin:-20px -20px 20px}}.medium .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.medium .duet-card-heading{padding:15px 28px 16px !important;margin:-28px -28px 20px}}@media (min-width: 48em){.medium .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}.large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.large .duet-card-heading{padding:19px 36px 20px !important;margin:-36px -36px 28px}}@media (min-width: 48em){.large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}.x-large .duet-card-heading{margin:-20px -20px 20px}@media (min-width: 36em){.x-large .duet-card-heading{padding:26px 48px 27px !important;margin:-48px -48px 36px}}@media (min-width: 48em){.x-large .duet-card-heading{padding:39px 72px 40px !important;margin:-72px -72px 48px}}.none .duet-card-heading{padding:0 0 20px !important;margin:0 0 20px}.duet-card-footer{padding:20px;margin:20px -20px -20px;font-size:0.875rem;line-height:1.25;background:#f5f8fa;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.duet-theme-turva .duet-card-footer{background:#f5f5f7}@media (min-width: 36em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 36em){.x-small .duet-card-footer{padding:15px 28px 16px !important;padding-left:20px !important;margin:20px -20px -20px}}@media (min-width: 36em){.medium .duet-card-footer{padding:15px 28px 16px !important;margin:20px -28px -28px}}@media (min-width: 48em){.medium .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 36em){.large .duet-card-footer{padding:19px 36px 20px !important;margin:28px -36px -36px}}@media (min-width: 48em){.large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 36em){.x-large .duet-card-footer{padding:26px 48px 27px !important;margin:36px -48px -48px}}@media (min-width: 48em){.x-large .duet-card-footer{padding:39px 72px 40px !important;margin:48px -72px -72px}}.none .duet-card-footer{padding:12px 0 !important;margin:20px 0 0}.duet-card-content{width:100%}.duet-card-collapsed .duet-card-content{display:none}.duet-card-caret{position:relative;top:6px;align-self:flex-start;transition:300ms ease}[aria-expanded=false] .duet-card-caret{transform:rotate(-180deg)}.duet-card-image-mask{position:relative;width:calc(100% + 40px);margin:-20px 0 20px -20px;overflow:hidden;border-top-left-radius:4px;border-top-right-radius:4px}@media (min-width: 36em){.small .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 36em){.medium .duet-card-image-mask{width:calc(100% + 56px);margin:-28px 0 28px -28px}}@media (min-width: 48em){.medium .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 28px -36px}}@media (min-width: 36em){.large .duet-card-image-mask{width:calc(100% + 72px);margin:-36px 0 36px -36px}}@media (min-width: 48em){.large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 36em){.x-large .duet-card-image-mask{width:calc(100% + 96px);margin:-48px 0 36px -48px}}@media (min-width: 48em){.x-large .duet-card-image-mask{width:calc(100% + 144px);margin:-72px 0 36px -72px}}.none .duet-card-image-mask{width:100%;margin:0 0 20px}.duet-card-image{display:block;width:102%;min-width:1px;max-width:102%;height:auto;min-height:1px;margin-left:-1%;transition:transform 300ms ease;transform:scale(1.0001)}a.duet-card{transition:box-shadow 300ms ease, background-position 300ms ease}a.duet-card:hover{box-shadow:0 2px 6px 0 rgba(0, 41, 77, 0.07), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(0, 41, 77, 0.1)}a.duet-card:hover .duet-card-image{transform:scale(1.024)}.duet-theme-turva a.duet-card:hover{box-shadow:0 2px 6px 0 rgba(117, 117, 117, 0.13), 0 -1px 0 0 rgba(0, 0, 0, 0.09), -1px 0 0 0 rgba(0, 0, 0, 0.07), 1px 0 0 0 rgba(0, 0, 0, 0.07), 0 1px 0 0 rgba(0, 0, 0, 0.07), 0 2px 10px 0 rgba(117, 117, 117, 0.15)}a.duet-card:active{transition:none;transform:translateY(1px)}";
16
+
17
+ const DuetCard$1 = /*@__PURE__*/ proxyCustomElement(class extends H {
18
+ constructor() {
19
+ super();
20
+ this.__registerHost();
21
+ this.__attachShadow();
22
+ this.duetToggle = createEvent(this, "duetToggle", 7);
23
+ this.cardId = createID("DuetCard");
24
+ /**
25
+ * The content for the card heading. If empty, both heading and collapse
26
+ * functionality will be hidden.
27
+ */
28
+ this.heading = "";
29
+ /**
30
+ * Additional content for the card heading. If empty, both heading and collapse
31
+ * functionality will be hidden.
32
+ */
33
+ this.secondaryHeading = "";
34
+ /**
35
+ * Style variation of the card.
36
+ */
37
+ this.variation = "default";
38
+ /**
39
+ * Makes the card expand and collapse when the collapse/expand arrow in the
40
+ * heading is clicked or tapped. This option only works together with the
41
+ * heading option, meaning that you also need to set the heading for this
42
+ * functionality to show up.
43
+ */
44
+ this.collapsible = false;
45
+ /**
46
+ * If the card is collapsible, this property controls whether the card is open or closed.
47
+ */
48
+ this.open = true;
49
+ /**
50
+ * The actual heading level used for the heading in html markup. This setting
51
+ * exists for accessibility reasons. It doesn’t change the style visually.
52
+ */
53
+ this.headingLevel = "h2";
54
+ /**
55
+ * Custom color to be used for the card background, as a design token entered in
56
+ * camelCase or kebab-case. Example: "primary".
57
+ */
58
+ this.background = "gray-lightest";
59
+ /**
60
+ * The padding for the card. Please note that the card padding values don’t directly
61
+ * translate to similar space token names, but instead the card uses it’s own
62
+ * derived defaults.
63
+ */
64
+ this.padding = "small";
65
+ /**
66
+ * Controls the margin of the component.
67
+ */
68
+ this.margin = "auto";
69
+ /**
70
+ * Theme of the card.
71
+ */
72
+ this.theme = "";
73
+ /**
74
+ * Local methods.
75
+ */
76
+ this.togglePanel = (e) => {
77
+ e.preventDefault();
78
+ this.open = !this.open;
79
+ this.duetToggle.emit({
80
+ component: "duet-card",
81
+ originalEvent: e,
82
+ });
83
+ };
84
+ this.handleKeyDown = (e) => {
85
+ if (isKeyboardClick(e)) {
86
+ this.togglePanel(e);
87
+ }
88
+ };
89
+ }
90
+ /**
91
+ * Component lifecycle events.
92
+ */
93
+ componentWillLoad() {
94
+ inheritGlobalTheme(this);
95
+ this.hasHeadingSlot = !!this.element.querySelector(":scope > [slot='heading']");
96
+ this.hasFooter = !!this.element.querySelector("[slot='footer']");
97
+ }
98
+ renderHeading() {
99
+ const HeadingTag = sanitizeString(this.headingLevel);
100
+ const headingProps = this.collapsible
101
+ ? {
102
+ role: "button",
103
+ tabindex: "0",
104
+ "aria-controls": this.cardId,
105
+ "aria-expanded": this.open ? "true" : "false",
106
+ onClick: this.togglePanel,
107
+ onKeyDown: this.handleKeyDown,
108
+ }
109
+ : {};
110
+ return (h(HeadingTag, Object.assign({ class: "duet-card-heading" }, headingProps), h("div", { class: "duet-card-heading-grid" }, this.icon && (h(Fragment, null, h("duet-icon", { class: "duet-card-icon", name: this.icon, size: "medium", margin: "none", color: "currentColor" }), h("duet-spacer", { direction: "horizontal", size: "small" }))), h("div", { class: "duet-card-heading-text" }, this.heading ? this.heading : h("slot", { name: "heading" })), this.secondaryHeading && (h(Fragment, null, h("duet-spacer", { direction: "horizontal", size: "small" }), h("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--inline" }, this.secondaryHeading))), this.collapsible && (h(Fragment, null, h("duet-spacer", { direction: "horizontal", size: "small" }), h("duet-icon", { class: "duet-card-caret", icon: actionArrowUp.svg, size: "small", margin: "none", color: "currentColor" })))), this.secondaryHeading && (h("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--new-line" }, this.secondaryHeading)), h("slot", { name: "below-heading" })));
111
+ }
112
+ /**
113
+ * Sets focus on the specified `duet-card`. Use this method instead of the global
114
+ * `card.focus()`.
115
+ */
116
+ async setFocus(options) {
117
+ if (this.nativeCard) {
118
+ this.nativeCard.focus(options);
119
+ }
120
+ }
121
+ /**
122
+ * render() function
123
+ * Always the last one in the class.
124
+ */
125
+ render() {
126
+ const TagName = this.url ? "a" : "div";
127
+ const styles = {
128
+ backgroundColor: getColorByName(this.background),
129
+ };
130
+ return (h(Host, { class: {
131
+ "duet-m-0": this.margin === "none",
132
+ "duet-card-info": this.variation === "info",
133
+ } }, h(TagName, { href: this.url, style: styles, ref: card => (this.nativeCard = card), "aria-label": this.accessibleLabel, class: {
134
+ "duet-card": true,
135
+ [this.padding]: true,
136
+ [this.variation]: true,
137
+ "duet-p-0": this.padding === "none",
138
+ "duet-theme-turva": this.theme === "turva",
139
+ "duet-card-has-bg": this.background !== "gray-lightest",
140
+ "duet-card-has-icon": !!this.icon,
141
+ "duet-card-collapsed": this.collapsible && !this.open,
142
+ } }, this.image && (h("div", { class: "duet-card-image-mask" }, h("img", { src: this.image, class: "duet-card-image", loading: "lazy", alt: "", "aria-hidden": "true" }))), (this.heading || this.hasHeadingSlot) && this.renderHeading(), h("div", { class: "duet-card-content", id: this.cardId }, h("slot", null), this.hasFooter && (h("div", { class: "duet-card-footer" }, h("slot", { name: "footer" })))))));
143
+ }
144
+ get element() { return this; }
145
+ static get style() { return duetCardCss; }
146
+ }, [1, "duet-card", {
147
+ "accessibleLabel": [1, "accessible-label"],
148
+ "heading": [1],
149
+ "secondaryHeading": [1, "secondary-heading"],
150
+ "variation": [1],
151
+ "collapsible": [4],
152
+ "open": [1540],
153
+ "headingLevel": [1, "heading-level"],
154
+ "icon": [1],
155
+ "image": [1],
156
+ "background": [1],
157
+ "padding": [1],
158
+ "margin": [1],
159
+ "theme": [1025],
160
+ "url": [1],
161
+ "setFocus": [64]
162
+ }]);
163
+ function defineCustomElement$1() {
164
+ if (typeof customElements === "undefined") {
165
+ return;
166
+ }
167
+ const components = ["duet-card", "duet-icon", "duet-spacer"];
168
+ components.forEach(tagName => { switch (tagName) {
169
+ case "duet-card":
170
+ if (!customElements.get(tagName)) {
171
+ customElements.define(tagName, DuetCard$1);
172
+ }
173
+ break;
174
+ case "duet-icon":
175
+ if (!customElements.get(tagName)) {
176
+ defineCustomElement$3();
177
+ }
178
+ break;
179
+ case "duet-spacer":
180
+ if (!customElements.get(tagName)) {
181
+ defineCustomElement$2();
182
+ }
183
+ break;
184
+ } });
185
+ }
186
+
187
+ const DuetCard = DuetCard$1;
188
+ const defineCustomElement = defineCustomElement$1;
189
+
190
+ export { DuetCard, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface DuetCheckbox extends Components.DuetCheckbox, HTMLElement {}
4
+ export const DuetCheckbox: {
5
+ prototype: DuetCheckbox;
6
+ new (): DuetCheckbox;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,163 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { p as proxyCustomElement, H, c as createEvent, h, b as Host } from './p-1ad6b04e.js';
5
+ import { i as inheritGlobalTheme } from './p-4ebf1618.js';
6
+ import { c as createID } from './p-c1325e35.js';
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-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
+
10
+ const DuetCheckbox$1 = /*@__PURE__*/ proxyCustomElement(class extends H {
11
+ constructor() {
12
+ super();
13
+ this.__registerHost();
14
+ this.duetChange = createEvent(this, "duetChange", 3);
15
+ this.duetFocus = createEvent(this, "duetFocus", 7);
16
+ this.duetBlur = createEvent(this, "duetBlur", 7);
17
+ /**
18
+ * Own Properties.
19
+ */
20
+ this.checkboxId = createID("DuetCheckbox");
21
+ /**
22
+ * Controls the margin of the component.
23
+ */
24
+ this.margin = "auto";
25
+ /**
26
+ * Aria Details of the component
27
+ */
28
+ this.accessibleDetails = undefined;
29
+ /**
30
+ * String of id's that indicate alternative labels elements
31
+ */
32
+ this.accessibleLabelledBy = undefined;
33
+ /**
34
+ * Aria description the button
35
+ */
36
+ this.accessibleDescription = undefined;
37
+ /**
38
+ * Set whether the input is required or not. Please note that this is required for
39
+ * accessible inputs when the user is required to fill them. When using this property
40
+ * you need to also set “novalidate” attribute to your form element to prevent
41
+ * browser from displaying its own validation errors.
42
+ */
43
+ this.required = false;
44
+ /**
45
+ * Theme of the checkbox.
46
+ */
47
+ this.theme = "";
48
+ /**
49
+ * Makes the checkbox component disabled. This prevents users from being able to
50
+ * interact with the checkbox, and conveys its inactive state to assistive technologies.
51
+ */
52
+ this.disabled = false;
53
+ /**
54
+ * Label for the checkbox
55
+ */
56
+ this.label = "label";
57
+ /**
58
+ * Visually hide the label, but still show it to screen readers.
59
+ */
60
+ this.labelHidden = false;
61
+ /**
62
+ * Check state of the checkbox.
63
+ */
64
+ this.checked = false;
65
+ /**
66
+ * Component event handling.
67
+ */
68
+ this.onChange = (ev) => {
69
+ this.checked = !this.checked;
70
+ this.duetChange.emit({
71
+ originalEvent: ev,
72
+ checked: this.checked,
73
+ value: this.value,
74
+ component: "duet-checkbox",
75
+ });
76
+ };
77
+ this.onBlur = (ev) => {
78
+ this.duetBlur.emit({
79
+ originalEvent: ev,
80
+ checked: this.checked,
81
+ value: this.value,
82
+ component: "duet-checkbox",
83
+ });
84
+ };
85
+ this.onFocus = (ev) => {
86
+ this.duetFocus.emit({
87
+ originalEvent: ev,
88
+ checked: this.checked,
89
+ value: this.value,
90
+ component: "duet-checkbox",
91
+ });
92
+ };
93
+ }
94
+ /**
95
+ * Component lifecycle events.
96
+ */
97
+ componentWillLoad() {
98
+ inheritGlobalTheme(this);
99
+ if (this.value === undefined) {
100
+ this.value = this.identifier;
101
+ }
102
+ }
103
+ /**
104
+ * Sets focus on the specified `duet-checkbox`. Use this method instead of the global
105
+ * `input.focus()`.
106
+ */
107
+ async setFocus(options) {
108
+ this.nativeInput.focus(options);
109
+ }
110
+ /**
111
+ * render() function
112
+ * Always the last one in the class.
113
+ */
114
+ render() {
115
+ const identifier = this.identifier || this.checkboxId;
116
+ return (h(Host, { class: { "duet-m-0": this.margin === "none" } }, h("div", { class: {
117
+ "duet-checkbox-container": true,
118
+ "duet-label-hidden": this.labelHidden,
119
+ "duet-theme-turva": this.theme === "turva",
120
+ } }, h("input", { ref: input => (this.nativeInput = input), type: "checkbox", onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.onChange, value: this.value, class: { "duet-checkbox": true, disabled: this.disabled }, checked: this.checked, disabled: this.disabled, tabindex: this.accessibleIndex, "aria-controls": this.accessibleControls, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, required: this.required, role: this.role, name: this.name, id: identifier }), h("label", { class: "duet-label", htmlFor: identifier }, h("span", null, this.label)))));
121
+ }
122
+ get element() { return this; }
123
+ static get style() { return duetCheckboxCss; }
124
+ }, [2, "duet-checkbox", {
125
+ "accessibleActiveDescendant": [1, "accessible-active-descendant"],
126
+ "margin": [1],
127
+ "accessibleControls": [1, "accessible-controls"],
128
+ "accessibleIndex": [1, "accessible-index"],
129
+ "accessibleOwns": [1, "accessible-owns"],
130
+ "accessibleDescribedBy": [1, "accessible-described-by"],
131
+ "accessibleDetails": [1, "accessible-details"],
132
+ "accessibleLabelledBy": [1, "accessible-labelled-by"],
133
+ "accessibleDescription": [1, "accessible-description"],
134
+ "required": [4],
135
+ "theme": [1025],
136
+ "disabled": [516],
137
+ "identifier": [1],
138
+ "label": [1],
139
+ "labelHidden": [4, "label-hidden"],
140
+ "name": [1],
141
+ "role": [1],
142
+ "checked": [1540],
143
+ "value": [1537],
144
+ "setFocus": [64]
145
+ }]);
146
+ function defineCustomElement$1() {
147
+ if (typeof customElements === "undefined") {
148
+ return;
149
+ }
150
+ const components = ["duet-checkbox"];
151
+ components.forEach(tagName => { switch (tagName) {
152
+ case "duet-checkbox":
153
+ if (!customElements.get(tagName)) {
154
+ customElements.define(tagName, DuetCheckbox$1);
155
+ }
156
+ break;
157
+ } });
158
+ }
159
+
160
+ const DuetCheckbox = DuetCheckbox$1;
161
+ const defineCustomElement = defineCustomElement$1;
162
+
163
+ export { DuetCheckbox, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface DuetChoiceGroup extends Components.DuetChoiceGroup, HTMLElement {}
4
+ export const DuetChoiceGroup: {
5
+ prototype: DuetChoiceGroup;
6
+ new (): DuetChoiceGroup;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,227 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { p as proxyCustomElement, H, h, b as Host } from './p-1ad6b04e.js';
5
+ import { i as inheritGlobalTheme } from './p-4ebf1618.js';
6
+ import { f as findCheckedOption, w as watchForOptions } from './p-12721178.js';
7
+ import { d as defineCustomElement$6 } from './p-92012dcc.js';
8
+ import { d as defineCustomElement$5 } from './p-32a67b55.js';
9
+ import { d as defineCustomElement$4 } from './p-4f516732.js';
10
+ import { d as defineCustomElement$3 } from './p-f1d0dca7.js';
11
+ import { d as defineCustomElement$2 } from './p-53a0c93d.js';
12
+
13
+ const duetChoiceGroupCss = "*.sc-duet-choice-group,*.sc-duet-choice-group::after,*.sc-duet-choice-group::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}.sc-duet-choice-group-h{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.horizontal.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group{display:block}@media (min-width: 48em){.horizontal.sc-duet-choice-group-h .duet-choice-group.sc-duet-choice-group{display:flex;margin-bottom:0}}.horizontal.sc-duet-choice-group-h .duet-choice-group.duet-no-stacking.sc-duet-choice-group{display:flex}.duet-choice-group.sc-duet-choice-group{position:relative;width:100%;margin-bottom:-12px}";
14
+
15
+ const duetChoiceSelector = ":scope duet-choice:not(:scope duet-choice duet-choice-group duet-choice):not(:scope duet-choice duet-fieldset duet-choice)";
16
+ const DuetChoiceGroup$1 = /*@__PURE__*/ proxyCustomElement(class extends H {
17
+ constructor() {
18
+ super();
19
+ this.__registerHost();
20
+ this.choiceGroupName = "duet-choice-group";
21
+ /**
22
+ * Direction of the choice group.
23
+ */
24
+ this.direction = "vertical";
25
+ /**
26
+ * Controls the margin of the component.
27
+ */
28
+ this.margin = "auto";
29
+ /**
30
+ * Theme of the choice group.
31
+ */
32
+ this.theme = "";
33
+ /**
34
+ * Display choice group in error state along with an error message.
35
+ */
36
+ this.error = "";
37
+ /**
38
+ * Legend displayed for the choice buttons in this group.
39
+ */
40
+ this.label = "Label";
41
+ /**
42
+ * Visually hide the label, but still show it to screen readers.
43
+ */
44
+ this.labelHidden = false;
45
+ /**
46
+ * Additional caption to show inside the label of the choice group.
47
+ */
48
+ this.caption = undefined;
49
+ /**
50
+ * Tooltip to display next to the label of the choice group.
51
+ */
52
+ this.tooltip = undefined;
53
+ /**
54
+ * With direction setting you can force the tooltip to always open towards left
55
+ * or right instead of automatically determining the direction.
56
+ */
57
+ this.tooltipDirection = "auto";
58
+ /**
59
+ * Enable or disable the automatic responsive behaviour of the choice group
60
+ * component when horizontal setting is used. Setting this option to "true"
61
+ * makes sure that contents are stacked vertically on mobile.
62
+ */
63
+ this.responsive = false;
64
+ this.getChoices = () => {
65
+ return Array.from(this.element.querySelectorAll(duetChoiceSelector));
66
+ };
67
+ /**
68
+ * Component event handling.
69
+ */
70
+ this.onSelect = (ev) => {
71
+ if (ev.detail.component !== "duet-choice") {
72
+ return;
73
+ }
74
+ const selectedChoice = ev.target;
75
+ if (selectedChoice && selectedChoice.parentElement.classList.contains(this.choiceGroupName)) {
76
+ this.value = selectedChoice.value;
77
+ }
78
+ // Prevent events from bubbling up the DOM tree in case
79
+ // this group is a sub-group of another choice group.
80
+ ev.cancelBubble = true;
81
+ };
82
+ }
83
+ /**
84
+ * Component lifecycle events.
85
+ */
86
+ async connectedCallback() {
87
+ const el = this.element;
88
+ if (this.value === undefined) {
89
+ const choice = findCheckedOption(el, duetChoiceSelector);
90
+ if (choice !== undefined) {
91
+ await choice.componentOnReady();
92
+ if (this.value === undefined) {
93
+ this.value = choice.value;
94
+ }
95
+ }
96
+ }
97
+ this.mutationO = watchForOptions(el, duetChoiceSelector, newOption => {
98
+ if (newOption !== undefined) {
99
+ newOption.componentOnReady().then(() => {
100
+ const choices = this.getChoices();
101
+ if (choices.includes(newOption)) {
102
+ this.value = newOption.value;
103
+ }
104
+ });
105
+ }
106
+ else {
107
+ this.updateChoices();
108
+ }
109
+ });
110
+ this.updateChoices();
111
+ }
112
+ disconnectedCallback() {
113
+ if (this.mutationO) {
114
+ this.mutationO.disconnect();
115
+ this.mutationO = undefined;
116
+ }
117
+ }
118
+ componentWillLoad() {
119
+ inheritGlobalTheme(this);
120
+ }
121
+ /**
122
+ * Local methods
123
+ */
124
+ async updateChoices() {
125
+ /**
126
+ * Make sure we get all choices first so values are up to date prior
127
+ * to caching the choice group value
128
+ */
129
+ const choices = this.getChoices();
130
+ const { value } = this;
131
+ let hasChecked = false;
132
+ // Walk the DOM in reverse order, since the last selected one wins
133
+ for (const choice of choices) {
134
+ choice.name = this.name;
135
+ choice.groupDisabled = this.disabled;
136
+ choice.groupDirection = this.direction;
137
+ choice.groupResponsive = this.responsive;
138
+ if (!hasChecked && choice.value === value) {
139
+ // Correct value for this choice, but this choice isn't checked yet
140
+ // and we haven't found a checked yet
141
+ hasChecked = true;
142
+ choice.checked = true;
143
+ }
144
+ else {
145
+ // This choice doesn't have the correct value or the choice group has been already checked
146
+ choice.checked = false;
147
+ }
148
+ }
149
+ // Reset value if
150
+ if (!hasChecked) {
151
+ this.value = undefined;
152
+ }
153
+ }
154
+ /**
155
+ * render() function
156
+ * Always the last one in the class.
157
+ */
158
+ render() {
159
+ return (h(Host, { onDuetChange: this.onSelect, class: { horizontal: this.direction === "horizontal" } }, h("duet-fieldset", { label: this.label, labelHidden: this.labelHidden, caption: this.caption, error: this.error, margin: this.margin, theme: this.theme }, this.tooltip && (h("duet-tooltip", { slot: "tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label }, this.tooltip)), h("div", { class: { [this.choiceGroupName]: true, "duet-no-stacking": !this.responsive } }, h("slot", null)))));
160
+ }
161
+ get element() { return this; }
162
+ static get watchers() { return {
163
+ "value": ["updateChoices"],
164
+ "disabled": ["updateChoices"],
165
+ "name": ["updateChoices"],
166
+ "direction": ["updateChoices"],
167
+ "responsive": ["updateChoices"]
168
+ }; }
169
+ static get style() { return duetChoiceGroupCss; }
170
+ }, [6, "duet-choice-group", {
171
+ "direction": [1],
172
+ "margin": [1],
173
+ "theme": [1025],
174
+ "error": [1],
175
+ "name": [1],
176
+ "label": [1],
177
+ "labelHidden": [4, "label-hidden"],
178
+ "caption": [1],
179
+ "tooltip": [1],
180
+ "tooltipDirection": [1, "tooltip-direction"],
181
+ "responsive": [4],
182
+ "value": [1537],
183
+ "disabled": [4]
184
+ }]);
185
+ function defineCustomElement$1() {
186
+ if (typeof customElements === "undefined") {
187
+ return;
188
+ }
189
+ const components = ["duet-choice-group", "duet-caption", "duet-fieldset", "duet-icon", "duet-tooltip", "duet-visually-hidden"];
190
+ components.forEach(tagName => { switch (tagName) {
191
+ case "duet-choice-group":
192
+ if (!customElements.get(tagName)) {
193
+ customElements.define(tagName, DuetChoiceGroup$1);
194
+ }
195
+ break;
196
+ case "duet-caption":
197
+ if (!customElements.get(tagName)) {
198
+ defineCustomElement$6();
199
+ }
200
+ break;
201
+ case "duet-fieldset":
202
+ if (!customElements.get(tagName)) {
203
+ defineCustomElement$5();
204
+ }
205
+ break;
206
+ case "duet-icon":
207
+ if (!customElements.get(tagName)) {
208
+ defineCustomElement$4();
209
+ }
210
+ break;
211
+ case "duet-tooltip":
212
+ if (!customElements.get(tagName)) {
213
+ defineCustomElement$3();
214
+ }
215
+ break;
216
+ case "duet-visually-hidden":
217
+ if (!customElements.get(tagName)) {
218
+ defineCustomElement$2();
219
+ }
220
+ break;
221
+ } });
222
+ }
223
+
224
+ const DuetChoiceGroup = DuetChoiceGroup$1;
225
+ const defineCustomElement = defineCustomElement$1;
226
+
227
+ export { DuetChoiceGroup, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface DuetChoice extends Components.DuetChoice, HTMLElement {}
4
+ export const DuetChoice: {
5
+ prototype: DuetChoice;
6
+ new (): DuetChoice;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;