@duetds/components 5.0.5 → 5.1.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 (307) hide show
  1. package/hydrate/index.js +482 -19
  2. package/lib/cjs/duet-action-button.cjs.entry.js +5 -5
  3. package/lib/cjs/duet-alert.cjs.entry.js +4 -4
  4. package/lib/cjs/duet-badge.cjs.entry.js +2 -2
  5. package/lib/cjs/duet-breadcrumb.cjs.entry.js +2 -2
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +4 -4
  7. package/lib/cjs/duet-button_2.cjs.entry.js +4 -4
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +4 -4
  9. package/lib/cjs/duet-card.cjs.entry.js +4 -4
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  11. package/lib/cjs/duet-choice_2.cjs.entry.js +6 -6
  12. package/lib/cjs/duet-collapsible.cjs.entry.js +4 -4
  13. package/lib/cjs/duet-combobox.cjs.entry.js +390 -0
  14. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  15. package/lib/cjs/duet-date-picker.cjs.entry.js +5 -5
  16. package/lib/cjs/duet-divider_2.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-editable-table_3.cjs.entry.js +10 -8
  18. package/lib/cjs/duet-empty-state.cjs.entry.js +2 -2
  19. package/lib/cjs/duet-fieldset.cjs.entry.js +2 -2
  20. package/lib/cjs/duet-footer.cjs.entry.js +6 -6
  21. package/lib/cjs/duet-grid_2.cjs.entry.js +2 -2
  22. package/lib/cjs/duet-header_2.cjs.entry.js +48 -11
  23. package/lib/cjs/duet-hero.cjs.entry.js +4 -4
  24. package/lib/cjs/duet-icon.cjs.entry.js +2 -2
  25. package/lib/cjs/duet-input_2.cjs.entry.js +19 -4
  26. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-list_2.cjs.entry.js +2 -2
  28. package/lib/cjs/duet-modal.cjs.entry.js +6 -6
  29. package/lib/cjs/duet-notification_2.cjs.entry.js +4 -4
  30. package/lib/cjs/duet-number-input.cjs.entry.js +5 -5
  31. package/lib/cjs/duet-pagination_2.cjs.entry.js +5 -5
  32. package/lib/cjs/duet-progress.cjs.entry.js +4 -4
  33. package/lib/cjs/duet-radio_2.cjs.entry.js +2 -2
  34. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  35. package/lib/cjs/duet-scrollable_3.cjs.entry.js +12 -8
  36. package/lib/cjs/duet-select.cjs.entry.js +3 -3
  37. package/lib/cjs/duet-step_2.cjs.entry.js +3 -3
  38. package/lib/cjs/duet-textarea.cjs.entry.js +3 -3
  39. package/lib/cjs/duet-toggle.cjs.entry.js +2 -2
  40. package/lib/cjs/duet-tooltip.cjs.entry.js +4 -4
  41. package/lib/cjs/duet-tray.cjs.entry.js +4 -4
  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 +2 -2
  45. package/lib/cjs/{focus-utils-88e98997.js → focus-utils-b7b1bede.js} +1 -1
  46. package/lib/cjs/{index-ef094178.js → index-a521d11c.js} +1 -1
  47. package/lib/cjs/{input-utils-f3e3854c.js → input-utils-b5e8f524.js} +1 -1
  48. package/lib/cjs/{keyboard-utils-898cfe14.js → keyboard-utils-bb32119b.js} +3 -0
  49. package/lib/cjs/{language-utils-aa282901.js → language-utils-4f62a7db.js} +1 -1
  50. package/lib/cjs/loader.cjs.js +2 -2
  51. package/lib/cjs/{string-utils-267e3dbb.js → string-utils-5cadd058.js} +6 -0
  52. package/lib/cjs/themeable-component-940d3b50.js +15 -0
  53. package/lib/collection/collection-manifest.json +1 -0
  54. package/lib/collection/components/duet-combobox/duet-combobox-select-single.js +12 -0
  55. package/lib/collection/components/duet-combobox/duet-combobox-select.js +19 -0
  56. package/lib/collection/components/duet-combobox/duet-combobox.css +78 -0
  57. package/lib/collection/components/duet-combobox/duet-combobox.js +592 -0
  58. package/lib/collection/components/duet-footer/duet-footer.js +6 -2
  59. package/lib/collection/components/duet-header/duet-header.css +15 -0
  60. package/lib/collection/components/duet-header/duet-header.js +67 -5
  61. package/lib/collection/components/duet-input/duet-input.js +67 -1
  62. package/lib/collection/components/duet-tab-group/duet-tab-group.js +25 -3
  63. package/lib/collection/components/duet-upload/duet-upload.css +12 -0
  64. package/lib/collection/components/duet-upload/duet-upload.js +4 -1
  65. package/lib/collection/components/duet-upload/upload-editable-item-success.js +1 -1
  66. package/lib/collection/utils/input-utils.js +1 -1
  67. package/lib/collection/utils/string-utils.js +6 -0
  68. package/lib/collection/utils/themeable-component.js +5 -2
  69. package/lib/custom-elements-bundle/index.d.ts +6 -0
  70. package/lib/custom-elements-bundle/index.js +478 -31
  71. package/lib/duet/duet.esm.js +1 -1
  72. package/lib/duet/duet.js +1 -1
  73. package/lib/duet/{p-b06d63cb.entry.js → p-00c21573.entry.js} +1 -1
  74. package/lib/duet/{p-f1b62aca.entry.js → p-02ebff5d.entry.js} +1 -1
  75. package/lib/duet/{p-e81f1326.entry.js → p-0a4b7633.entry.js} +1 -1
  76. package/lib/duet/{p-db63fb3a.system.entry.js → p-0d165a50.system.entry.js} +1 -1
  77. package/lib/duet/{p-d2b5efc0.system.entry.js → p-1028c3a0.system.entry.js} +1 -1
  78. package/lib/duet/{p-8bca2ae9.system.entry.js → p-1111a916.system.entry.js} +1 -1
  79. package/lib/duet/{p-e1d56708.entry.js → p-11adc839.entry.js} +1 -1
  80. package/lib/duet/{p-b47892c9.entry.js → p-14f2d627.entry.js} +1 -1
  81. package/lib/duet/{p-1ccd57c6.entry.js → p-18fc1046.entry.js} +1 -1
  82. package/lib/duet/{p-298aff96.system.entry.js → p-1bf42e5a.system.entry.js} +1 -1
  83. package/lib/duet/p-1cb29dd2.system.js +4 -0
  84. package/lib/duet/{p-a7a1ece1.system.entry.js → p-1d2717f7.system.entry.js} +1 -1
  85. package/lib/duet/{p-84eb2808.entry.js → p-1f1eb2c6.entry.js} +1 -1
  86. package/lib/duet/p-2227bd88.entry.js +4 -0
  87. package/lib/duet/{p-71cdfd93.system.entry.js → p-2266dd2f.system.entry.js} +1 -1
  88. package/lib/duet/{p-217b9e24.entry.js → p-28efbf26.entry.js} +1 -1
  89. package/lib/duet/{p-d9ac5f05.entry.js → p-2ec15916.entry.js} +1 -1
  90. package/lib/duet/{p-ad77f9e2.entry.js → p-309e1d13.entry.js} +1 -1
  91. package/lib/duet/{p-adaede01.entry.js → p-3128467f.entry.js} +1 -1
  92. package/lib/duet/p-32358ab8.entry.js +4 -0
  93. package/lib/duet/{p-a37de615.system.entry.js → p-3292f542.system.entry.js} +1 -1
  94. package/lib/duet/{p-1bb6c66f.system.entry.js → p-33473844.system.entry.js} +1 -1
  95. package/lib/duet/{p-f4c60fd8.system.entry.js → p-33701731.system.entry.js} +1 -1
  96. package/lib/duet/{p-92722c37.system.entry.js → p-3762c001.system.entry.js} +1 -1
  97. package/lib/duet/{p-b110c837.entry.js → p-378615ba.entry.js} +1 -1
  98. package/lib/duet/{p-ea4674fd.system.entry.js → p-37ec8cc0.system.entry.js} +1 -1
  99. package/lib/duet/{p-68fecc14.system.entry.js → p-388ccb59.system.entry.js} +1 -1
  100. package/lib/duet/{p-2b1b8246.entry.js → p-39141813.entry.js} +1 -1
  101. package/lib/duet/p-411d8bf6.entry.js +4 -0
  102. package/lib/duet/{p-5d6f8c04.entry.js → p-42042a04.entry.js} +1 -1
  103. package/lib/duet/{p-90223d57.entry.js → p-4990454b.entry.js} +1 -1
  104. package/lib/duet/{p-689fe862.entry.js → p-4cb101e7.entry.js} +1 -1
  105. package/lib/duet/p-54f35a79.js +4 -0
  106. package/lib/duet/p-56118313.js +4 -0
  107. package/lib/duet/{p-16df6ccc.system.entry.js → p-56834d68.system.entry.js} +1 -1
  108. package/lib/duet/p-5a9d75e1.js +4 -0
  109. package/lib/duet/{p-7dbf8797.system.entry.js → p-5d223c1b.system.entry.js} +1 -1
  110. package/lib/duet/{p-1cfeab55.system.entry.js → p-5dc7ecff.system.entry.js} +1 -1
  111. package/lib/duet/{p-b985a189.entry.js → p-5e46fd23.entry.js} +1 -1
  112. package/lib/duet/{p-cbd12107.system.entry.js → p-5ea44650.system.entry.js} +1 -1
  113. package/lib/duet/{p-a96ead6c.entry.js → p-63c4fa58.entry.js} +1 -1
  114. package/lib/duet/{p-1144c927.entry.js → p-6440a77d.entry.js} +1 -1
  115. package/lib/duet/{p-fdf8fba5.entry.js → p-6a164c72.entry.js} +1 -1
  116. package/lib/duet/p-6b03322b.system.js +4 -0
  117. package/lib/duet/p-6bfd3066.system.entry.js +4 -0
  118. package/lib/duet/{p-d98ed960.entry.js → p-6d85cb27.entry.js} +1 -1
  119. package/lib/duet/{p-d688612f.entry.js → p-6eb9415c.entry.js} +1 -1
  120. package/lib/duet/p-6ee89e1c.entry.js +4 -0
  121. package/lib/duet/{p-27eac9a4.entry.js → p-70d5c815.entry.js} +1 -1
  122. package/lib/duet/{p-2c65e170.entry.js → p-77151f3f.entry.js} +1 -1
  123. package/lib/duet/{p-a3bd8a71.entry.js → p-7a24425d.entry.js} +1 -1
  124. package/lib/duet/{p-a52c08c6.entry.js → p-7e46cb73.entry.js} +1 -1
  125. package/lib/duet/{p-04145769.system.js → p-82d3171d.system.js} +1 -1
  126. package/lib/duet/{p-eb7c1a1d.system.entry.js → p-86565a1a.system.entry.js} +2 -2
  127. package/lib/duet/{p-85b2213b.system.entry.js → p-87d500c2.system.entry.js} +1 -1
  128. package/lib/duet/{p-128983f7.system.entry.js → p-88a9fc7c.system.entry.js} +1 -1
  129. package/lib/duet/{p-123c8434.system.entry.js → p-89564214.system.entry.js} +1 -1
  130. package/lib/duet/{p-97bdc2bf.entry.js → p-8a0299fb.entry.js} +1 -1
  131. package/lib/duet/{p-e0b5e649.entry.js → p-906611b7.entry.js} +1 -1
  132. package/lib/duet/{p-f414ff23.system.entry.js → p-918ad15f.system.entry.js} +1 -1
  133. package/lib/duet/{p-00db0857.system.entry.js → p-971f8880.system.entry.js} +1 -1
  134. package/lib/duet/{p-f125dfff.system.js → p-99457149.system.js} +1 -1
  135. package/lib/duet/{p-ef99ea4d.entry.js → p-a54fb28f.entry.js} +1 -1
  136. package/lib/duet/p-a63f753e.system.js +4 -0
  137. package/lib/duet/{p-1a2ab8e8.system.entry.js → p-a6974134.system.entry.js} +1 -1
  138. package/lib/duet/{p-285e2473.system.entry.js → p-a87a33f4.system.entry.js} +2 -2
  139. package/lib/duet/{p-30a28555.system.entry.js → p-a9e9112d.system.entry.js} +1 -1
  140. package/lib/duet/p-abf8eaf7.js +4 -0
  141. package/lib/duet/{p-4c8d801e.system.entry.js → p-ae1e63fc.system.entry.js} +1 -1
  142. package/lib/duet/{p-2495cec7.system.entry.js → p-b0bde198.system.entry.js} +1 -1
  143. package/lib/duet/{p-d494f1a3.system.entry.js → p-b57856ea.system.entry.js} +1 -1
  144. package/lib/duet/p-b6d51921.system.js +4 -0
  145. package/lib/duet/{p-b5bc8221.entry.js → p-b7906516.entry.js} +1 -1
  146. package/lib/duet/{p-36e7114b.system.entry.js → p-bac34cd4.system.entry.js} +1 -1
  147. package/lib/duet/p-bb1a594c.entry.js +4 -0
  148. package/lib/duet/{p-ea5a73c3.system.entry.js → p-bc0356dd.system.entry.js} +1 -1
  149. package/lib/duet/{p-87bedb24.system.entry.js → p-be1bc370.system.entry.js} +1 -1
  150. package/lib/duet/p-bef4f0ab.entry.js +4 -0
  151. package/lib/duet/{p-9a8d5b11.system.js → p-c466bad9.system.js} +1 -1
  152. package/lib/duet/{p-c5037594.entry.js → p-c4c1c9e8.entry.js} +1 -1
  153. package/lib/duet/{p-aa16ca33.system.entry.js → p-c512a307.system.entry.js} +1 -1
  154. package/lib/duet/{p-912eed2f.entry.js → p-c5f6ab22.entry.js} +1 -1
  155. package/lib/duet/{p-17a8d23c.system.entry.js → p-c76f0697.system.entry.js} +1 -1
  156. package/lib/duet/{p-6733b42f.js → p-c8698d8a.js} +1 -1
  157. package/lib/duet/p-d281c96e.system.entry.js +4 -0
  158. package/lib/duet/{p-9fccab71.entry.js → p-d74e231c.entry.js} +1 -1
  159. package/lib/duet/p-d91eec1f.system.entry.js +4 -0
  160. package/lib/duet/{p-b631407a.system.entry.js → p-df4857f8.system.entry.js} +1 -1
  161. package/lib/duet/{p-086325ff.system.entry.js → p-e073de9a.system.entry.js} +1 -1
  162. package/lib/duet/{p-ee6d9bc6.entry.js → p-e3945d28.entry.js} +1 -1
  163. package/lib/duet/p-ede854e1.js +4 -0
  164. package/lib/duet/p-f233cbe6.js +4 -0
  165. package/lib/duet/{p-70fafc98.system.js → p-f69b64c9.system.js} +1 -1
  166. package/lib/duet/{p-901ddd73.system.entry.js → p-f708dc6c.system.entry.js} +1 -1
  167. package/lib/duet/{p-f056be12.entry.js → p-f7aa0500.entry.js} +1 -1
  168. package/lib/duet/{p-104c3fa5.system.entry.js → p-f8f31ff0.system.entry.js} +1 -1
  169. package/lib/duet/{p-42d3a162.system.entry.js → p-f9784014.system.entry.js} +1 -1
  170. package/lib/duet/{p-c0071398.system.entry.js → p-fbfc5798.system.entry.js} +1 -1
  171. package/lib/duet/{p-5d997107.entry.js → p-fc02305a.entry.js} +1 -1
  172. package/lib/esm/duet-action-button.entry.js +5 -5
  173. package/lib/esm/duet-alert.entry.js +4 -4
  174. package/lib/esm/duet-badge.entry.js +2 -2
  175. package/lib/esm/duet-breadcrumb.entry.js +2 -2
  176. package/lib/esm/duet-breadcrumbs.entry.js +4 -4
  177. package/lib/esm/duet-button_2.entry.js +4 -4
  178. package/lib/esm/duet-caption_4.entry.js +4 -4
  179. package/lib/esm/duet-card.entry.js +4 -4
  180. package/lib/esm/duet-checkbox.entry.js +2 -2
  181. package/lib/esm/duet-choice_2.entry.js +6 -6
  182. package/lib/esm/duet-collapsible.entry.js +4 -4
  183. package/lib/esm/duet-combobox.entry.js +386 -0
  184. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  185. package/lib/esm/duet-date-picker.entry.js +5 -5
  186. package/lib/esm/duet-divider_2.entry.js +2 -2
  187. package/lib/esm/duet-editable-table_3.entry.js +10 -8
  188. package/lib/esm/duet-empty-state.entry.js +2 -2
  189. package/lib/esm/duet-fieldset.entry.js +2 -2
  190. package/lib/esm/duet-footer.entry.js +6 -6
  191. package/lib/esm/duet-grid_2.entry.js +2 -2
  192. package/lib/esm/duet-header_2.entry.js +48 -11
  193. package/lib/esm/duet-hero.entry.js +4 -4
  194. package/lib/esm/duet-icon.entry.js +2 -2
  195. package/lib/esm/duet-input_2.entry.js +19 -4
  196. package/lib/esm/duet-layout.entry.js +1 -1
  197. package/lib/esm/duet-list_2.entry.js +2 -2
  198. package/lib/esm/duet-modal.entry.js +6 -6
  199. package/lib/esm/duet-notification_2.entry.js +4 -4
  200. package/lib/esm/duet-number-input.entry.js +5 -5
  201. package/lib/esm/duet-pagination_2.entry.js +5 -5
  202. package/lib/esm/duet-progress.entry.js +4 -4
  203. package/lib/esm/duet-radio_2.entry.js +2 -2
  204. package/lib/esm/duet-range-slider.entry.js +2 -2
  205. package/lib/esm/duet-scrollable_3.entry.js +12 -8
  206. package/lib/esm/duet-select.entry.js +3 -3
  207. package/lib/esm/duet-step_2.entry.js +3 -3
  208. package/lib/esm/duet-textarea.entry.js +3 -3
  209. package/lib/esm/duet-toggle.entry.js +2 -2
  210. package/lib/esm/duet-tooltip.entry.js +4 -4
  211. package/lib/esm/duet-tray.entry.js +4 -4
  212. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  213. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  214. package/lib/esm/duet.js +2 -2
  215. package/lib/esm/{focus-utils-d02ee9d2.js → focus-utils-8681b5ae.js} +1 -1
  216. package/lib/esm/{index-3cfa1b7e.js → index-ff5be49a.js} +1 -1
  217. package/lib/esm/{input-utils-f4cafee1.js → input-utils-de45e099.js} +1 -1
  218. package/lib/esm/{keyboard-utils-6eb55cd5.js → keyboard-utils-88ea1007.js} +2 -1
  219. package/lib/esm/{language-utils-344d894c.js → language-utils-bf701d37.js} +1 -1
  220. package/lib/esm/loader.js +2 -2
  221. package/lib/esm/{string-utils-2f1793b8.js → string-utils-5954f458.js} +6 -0
  222. package/lib/esm/themeable-component-e8fc98bf.js +13 -0
  223. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  224. package/lib/esm-es5/duet-alert.entry.js +1 -1
  225. package/lib/esm-es5/duet-badge.entry.js +1 -1
  226. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  227. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  228. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  229. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  230. package/lib/esm-es5/duet-card.entry.js +1 -1
  231. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  232. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  233. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  234. package/lib/esm-es5/duet-combobox.entry.js +4 -0
  235. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  236. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  237. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  238. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  239. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  240. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  241. package/lib/esm-es5/duet-footer.entry.js +1 -1
  242. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  243. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  244. package/lib/esm-es5/duet-hero.entry.js +1 -1
  245. package/lib/esm-es5/duet-icon.entry.js +1 -1
  246. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  247. package/lib/esm-es5/duet-layout.entry.js +1 -1
  248. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  249. package/lib/esm-es5/duet-modal.entry.js +1 -1
  250. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  251. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  252. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  253. package/lib/esm-es5/duet-progress.entry.js +1 -1
  254. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  255. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  256. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  257. package/lib/esm-es5/duet-select.entry.js +1 -1
  258. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  259. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  260. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  261. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  262. package/lib/esm-es5/duet-tray.entry.js +1 -1
  263. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  264. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  265. package/lib/esm-es5/duet.js +1 -1
  266. package/lib/esm-es5/{focus-utils-d02ee9d2.js → focus-utils-8681b5ae.js} +1 -1
  267. package/lib/esm-es5/index-ff5be49a.js +4 -0
  268. package/lib/esm-es5/input-utils-de45e099.js +4 -0
  269. package/lib/esm-es5/keyboard-utils-88ea1007.js +4 -0
  270. package/lib/esm-es5/{language-utils-344d894c.js → language-utils-bf701d37.js} +1 -1
  271. package/lib/esm-es5/loader.js +1 -1
  272. package/lib/esm-es5/string-utils-5954f458.js +4 -0
  273. package/lib/esm-es5/themeable-component-e8fc98bf.js +4 -0
  274. package/lib/html.html-data.json +5325 -0
  275. package/lib/types/components/duet-combobox/duet-combobox-select-single.d.ts +8 -0
  276. package/lib/types/components/duet-combobox/duet-combobox-select.d.ts +14 -0
  277. package/lib/types/components/duet-combobox/duet-combobox.d.ts +131 -0
  278. package/lib/types/components/duet-footer/duet-footer.d.ts +4 -0
  279. package/lib/types/components/duet-header/duet-header.d.ts +16 -0
  280. package/lib/types/components/duet-input/duet-input.d.ts +13 -0
  281. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +4 -0
  282. package/lib/types/components.d.ts +120 -1
  283. package/package.json +5 -5
  284. package/lib/cjs/themeable-component-0c1be552.js +0 -12
  285. package/lib/duet/p-195f73d6.entry.js +0 -4
  286. package/lib/duet/p-2764f081.js +0 -4
  287. package/lib/duet/p-74780bca.system.js +0 -4
  288. package/lib/duet/p-7e2e9a28.js +0 -4
  289. package/lib/duet/p-898f30a5.js +0 -4
  290. package/lib/duet/p-98228d0a.system.js +0 -4
  291. package/lib/duet/p-986779fb.js +0 -4
  292. package/lib/duet/p-9a945278.system.js +0 -4
  293. package/lib/duet/p-9dfcd29a.js +0 -4
  294. package/lib/duet/p-a0b09d95.system.entry.js +0 -4
  295. package/lib/duet/p-a28cf57b.js +0 -4
  296. package/lib/duet/p-a8ff3a13.entry.js +0 -4
  297. package/lib/duet/p-b769b313.entry.js +0 -4
  298. package/lib/duet/p-c9097a6c.system.entry.js +0 -4
  299. package/lib/duet/p-d70b3f27.entry.js +0 -4
  300. package/lib/duet/p-d8c526b4.entry.js +0 -4
  301. package/lib/duet/p-efaa0c04.system.js +0 -4
  302. package/lib/esm/themeable-component-572685dd.js +0 -10
  303. package/lib/esm-es5/index-3cfa1b7e.js +0 -4
  304. package/lib/esm-es5/input-utils-f4cafee1.js +0 -4
  305. package/lib/esm-es5/keyboard-utils-6eb55cd5.js +0 -4
  306. package/lib/esm-es5/string-utils-2f1793b8.js +0 -4
  307. package/lib/esm-es5/themeable-component-572685dd.js +0 -4
@@ -45,6 +45,7 @@ export class DuetHeader {
45
45
  */
46
46
  this.isContactOpen = false;
47
47
  this.isLanguageOpen = false;
48
+ this.isSessionOpen = false;
48
49
  this.isSlideOutOpen = false;
49
50
  this.isSegmentOpen = false;
50
51
  this.openMenu = null;
@@ -196,6 +197,11 @@ export class DuetHeader {
196
197
  this.handleClick(e);
197
198
  this.duetSessionClick.emit(e);
198
199
  };
200
+ this.handleSessionItemClick = (ev, item) => {
201
+ const e = createEvent(ev, item);
202
+ this.handleClick(e);
203
+ this.duetSessionClick.emit(e);
204
+ };
199
205
  this.handleSearchClick = (ev) => {
200
206
  const e = createEvent(ev, this.processedSearch);
201
207
  this.handleClick(e);
@@ -258,13 +264,23 @@ export class DuetHeader {
258
264
  this.isContactOpen = false;
259
265
  this.isLanguageOpen = !this.isLanguageOpen;
260
266
  this.isSegmentOpen = false;
267
+ this.isSessionOpen = false;
261
268
  el = this.languageItemsEl;
262
269
  }
270
+ // For session menu
271
+ if (type === "session") {
272
+ this.isContactOpen = false;
273
+ this.isLanguageOpen = false;
274
+ this.isSegmentOpen = false;
275
+ this.isSessionOpen = !this.isSessionOpen;
276
+ el = this.sessionItemsEl;
277
+ }
263
278
  // For contact menu
264
279
  else if (type === "contact") {
265
280
  this.isLanguageOpen = false;
266
281
  this.isContactOpen = !this.isContactOpen;
267
282
  this.isSegmentOpen = false;
283
+ this.isSessionOpen = false;
268
284
  el = this.contactItemsEl;
269
285
  }
270
286
  // For mobile menu
@@ -272,8 +288,11 @@ export class DuetHeader {
272
288
  this.isContactOpen = false;
273
289
  this.isLanguageOpen = false;
274
290
  this.isSegmentOpen = false;
291
+ this.isSessionOpen = false;
275
292
  el = this.navigationEl;
276
- this.isSlideOutOpen = !this.isSlideOutOpen;
293
+ const toggle = !this.isSlideOutOpen;
294
+ this.isSlideOutOpen = toggle;
295
+ this.duetMobileNavToggle.emit({ originalEvent: ev, open: toggle });
277
296
  if (this.isSlideOutOpen) {
278
297
  disableBodyScroll(this.navigationEl, { reserveScrollBarGap: true });
279
298
  }
@@ -285,15 +304,22 @@ export class DuetHeader {
285
304
  this.isContactOpen = false;
286
305
  this.isLanguageOpen = false;
287
306
  this.isSegmentOpen = false;
307
+ this.isSessionOpen = false;
288
308
  el = this.subMenuItemRefs[id];
289
309
  }
290
310
  else if (type === "segment") {
291
311
  this.isContactOpen = false;
292
312
  this.isLanguageOpen = false;
313
+ this.isSessionOpen = false;
293
314
  this.isSegmentOpen = !this.isSegmentOpen;
294
315
  el = this.segmentItemsEl;
295
316
  }
296
- if (this.isSlideOutOpen || this.isLanguageOpen || this.isContactOpen || this.isSegmentOpen || this.openMenu) {
317
+ if (this.isSlideOutOpen ||
318
+ this.isLanguageOpen ||
319
+ this.isContactOpen ||
320
+ this.isSegmentOpen ||
321
+ this.isSessionOpen ||
322
+ this.openMenu) {
297
323
  const drawer = this.element.querySelector("duet-notification-drawer");
298
324
  if (drawer) {
299
325
  drawer.close(false);
@@ -395,6 +421,9 @@ export class DuetHeader {
395
421
  if (this.renderDesktopNav !== this.mql[0].matches) {
396
422
  this.renderDesktopNav = this.mql[0].matches;
397
423
  this.openMenu = null;
424
+ if (this.isSlideOutOpen) {
425
+ this.toggleMenu(document.createEvent("UIEvents"), "mobile");
426
+ }
398
427
  }
399
428
  this.processedItems = parsePossibleJSON(this.items);
400
429
  this.processedLanguageItems = parsePossibleJSON(this.languageItems);
@@ -417,7 +446,7 @@ export class DuetHeader {
417
446
  * Closes all dropdown menus in header when called.
418
447
  */
419
448
  async closeMenus(moveFocusToButton = false) {
420
- if (this.isContactOpen || this.isLanguageOpen || this.isSegmentOpen || this.openMenu) {
449
+ if (this.isContactOpen || this.isLanguageOpen || this.isSegmentOpen || this.isSessionOpen || this.openMenu) {
421
450
  if (this.isContactOpen && moveFocusToButton) {
422
451
  this.contactItemsButtonEl.focus({
423
452
  preventScroll: true,
@@ -433,6 +462,11 @@ export class DuetHeader {
433
462
  preventScroll: true,
434
463
  });
435
464
  }
465
+ if (this.isSessionOpen && moveFocusToButton) {
466
+ this.sessionItemsButtonEl.focus({
467
+ preventScroll: true,
468
+ });
469
+ }
436
470
  if (this.openMenu && moveFocusToButton) {
437
471
  this.subMenuButtonRefs[this.openMenu].focus({
438
472
  preventScroll: true,
@@ -441,6 +475,7 @@ export class DuetHeader {
441
475
  this.isContactOpen = false;
442
476
  this.isLanguageOpen = false;
443
477
  this.isSegmentOpen = false;
478
+ this.isSessionOpen = false;
444
479
  this.openMenu = null;
445
480
  }
446
481
  }
@@ -479,6 +514,13 @@ export class DuetHeader {
479
514
  const processedSession = this.processedSession ? (h("a", { href: this.processedSession.href || "#", id: this.processedSession.id, class: "duet-header-logout duet-header-button", onClick: this.handleSessionClick },
480
515
  h(DuetHeaderIcon, { icon: this.processedSession.type === "logout" ? logoutIcon.svg : loginIcon.svg, iconSize: processedSessionIconSize }),
481
516
  h("span", { class: "duet-header-button-label" }, this.processedSession.label))) : null;
517
+ const processedSessionDropdown = this.processedSession && this.processedSession.sessionItems ? (h(DuetHeaderDropdown, { className: "duet-header-session", id: "duet-header-session", label: this.processedSession.label, icon: this.processedSession.type === "logout" ? logoutIcon.svg : loginIcon.svg, active: this.isSessionOpen, isOpen: this.isSessionOpen, badge: false, toggleRef: el => (this.sessionItemsButtonEl = el), itemsRef: el => (this.sessionItemsEl = el), onToggle: event => this.toggleMenu(event, "session") }, this.processedSession.sessionItems.map((sessionItem, index) => (h(Fragment, null,
518
+ sessionItem.label && h("span", { class: "duet-header-session-label" }, sessionItem.label),
519
+ h("duet-spacer", { size: "small", "aria-hidden": "true" }),
520
+ sessionItem.items.map(item => (h("a", { role: "menuitem", "aria-label": sessionItem.label ? `${sessionItem.label} ${item.label}` : item.label, id: item.id, href: item.href || "#", onClick: event => this.handleSessionItemClick(event, item), onKeyDown: this.handleArrowKeys }, item.label))),
521
+ index !== this.processedSession.sessionItems.length - 1 && (h(Fragment, null,
522
+ h("duet-spacer", { size: "x-small", "aria-hidden": "true" }),
523
+ h("duet-divider", { margin: "none", "aria-hidden": "true" })))))))) : null;
482
524
  const processedSearch = this.processedSearch ? (h("a", { href: this.processedSearch.href || "#", id: this.processedSearch.id, class: "duet-header-search duet-header-button", onClick: this.handleSearchClick },
483
525
  h(DuetHeaderIcon, { icon: searchIcon.svg }),
484
526
  h("span", { class: "duet-header-button-label" }, this.processedSearch.label))) : null;
@@ -519,7 +561,7 @@ export class DuetHeader {
519
561
  h("div", { class: "duet-header-top" },
520
562
  skipToLabel,
521
563
  h("div", { class: "logo-and-segment" },
522
- largeLogo,
564
+ h("div", null, largeLogo),
523
565
  this.processedItems && (h(DuetHeaderDropdown, { id: segmentId, label: activeSegment.label, active: this.isSegmentOpen, isOpen: this.isSegmentOpen, badge: false, toggleRef: el => (this.segmentItemsButtonEl = el), itemsRef: el => (this.segmentItemsEl = el), onToggle: event => this.toggleMenu(event, "segment") }, this.processedItems.map(item => (h("a", { class: { active: activeSegment === item }, role: "menuitem", href: item.href || "#", id: item.id, onClick: event => this.handleItemClick(event, item), onKeyDown: ev => this.handleArrowKeys(ev), target: item.external ? "_blank" : "_self" },
524
566
  item.icon && (h("div", { class: "duet-header-icon" },
525
567
  h("duet-icon", { margin: "none", size: "x-small", name: item.icon, color: "currentColor" }))),
@@ -540,7 +582,7 @@ export class DuetHeader {
540
582
  h("div", { class: "duet-header-multi-level-desktop-utils" },
541
583
  processedSearch,
542
584
  languageDropdown,
543
- processedSession),
585
+ processedSessionDropdown != null ? processedSessionDropdown : processedSession),
544
586
  h("slot", { name: "utility" }))))));
545
587
  }
546
588
  // Default variation
@@ -1048,6 +1090,7 @@ export class DuetHeader {
1048
1090
  static get states() { return {
1049
1091
  "isContactOpen": {},
1050
1092
  "isLanguageOpen": {},
1093
+ "isSessionOpen": {},
1051
1094
  "isSlideOutOpen": {},
1052
1095
  "isSegmentOpen": {},
1053
1096
  "openMenu": {},
@@ -1273,6 +1316,25 @@ export class DuetHeader {
1273
1316
  }
1274
1317
  }
1275
1318
  }
1319
+ }, {
1320
+ "method": "duetMobileNavToggle",
1321
+ "name": "duetMobileNavToggle",
1322
+ "bubbles": true,
1323
+ "cancelable": true,
1324
+ "composed": true,
1325
+ "docs": {
1326
+ "tags": [],
1327
+ "text": "Event raised mobile navigation is toggled. **event.detail.open** shows the current status of the navigation."
1328
+ },
1329
+ "complexType": {
1330
+ "original": "DuetHeaderMobileNavToggleEvent",
1331
+ "resolved": "{ originalEvent: Event; open: boolean; }",
1332
+ "references": {
1333
+ "DuetHeaderMobileNavToggleEvent": {
1334
+ "location": "local"
1335
+ }
1336
+ }
1337
+ }
1276
1338
  }]; }
1277
1339
  static get methods() { return {
1278
1340
  "closeMenus": {
@@ -26,6 +26,10 @@ export class DuetInput {
26
26
  * Indicates the id of a component that describes the input.
27
27
  */
28
28
  this.accessibleDescribedBy = "";
29
+ /**
30
+ * Indicates value of any popup element associated with the input.
31
+ */
32
+ this.accessibleHasPopup = undefined;
29
33
  /**
30
34
  * Set the amount of time, in milliseconds, to wait to trigger the duetChange
31
35
  * event after each keystroke.
@@ -193,6 +197,17 @@ export class DuetInput {
193
197
  this.nativeInput.focus(options);
194
198
  }
195
199
  }
200
+ /**
201
+ * Reset the cursor position on the native element
202
+ * `input.resetCursor()`.
203
+ */
204
+ async resetCursor() {
205
+ if (this.nativeInput) {
206
+ const restoreCursor = resetCursor(this.nativeInput);
207
+ this.nativeInput.value = this.value;
208
+ restoreCursor();
209
+ }
210
+ }
196
211
  /**
197
212
  * render() function
198
213
  * Always the last one in the class.
@@ -229,7 +244,7 @@ export class DuetInput {
229
244
  disabled: this.disabled,
230
245
  "is-number": this.component === "number",
231
246
  "is-date": this.component === "date",
232
- }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)),
247
+ }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": `${this.labelId} ${this.errorId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)),
233
248
  !this.icon && this.type !== "text" && this.type !== "tel" && this.type !== "password" && (h("div", { class: "duet-input-icon" },
234
249
  h("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))),
235
250
  this.icon && (h("div", { class: "duet-input-icon" },
@@ -314,6 +329,23 @@ export class DuetInput {
314
329
  "attribute": "accessible-owns",
315
330
  "reflect": false
316
331
  },
332
+ "accessibleExpanded": {
333
+ "type": "string",
334
+ "mutable": false,
335
+ "complexType": {
336
+ "original": "string",
337
+ "resolved": "string",
338
+ "references": {}
339
+ },
340
+ "required": false,
341
+ "optional": false,
342
+ "docs": {
343
+ "tags": [],
344
+ "text": "Expanded state of the element, if needed"
345
+ },
346
+ "attribute": "accessible-expanded",
347
+ "reflect": false
348
+ },
317
349
  "accessibleDescribedBy": {
318
350
  "type": "string",
319
351
  "mutable": false,
@@ -332,6 +364,24 @@ export class DuetInput {
332
364
  "reflect": false,
333
365
  "defaultValue": "\"\""
334
366
  },
367
+ "accessibleHasPopup": {
368
+ "type": "string",
369
+ "mutable": false,
370
+ "complexType": {
371
+ "original": "string",
372
+ "resolved": "string",
373
+ "references": {}
374
+ },
375
+ "required": false,
376
+ "optional": false,
377
+ "docs": {
378
+ "tags": [],
379
+ "text": "Indicates value of any popup element associated with the input."
380
+ },
381
+ "attribute": "accessible-has-popup",
382
+ "reflect": false,
383
+ "defaultValue": "undefined"
384
+ },
335
385
  "debounce": {
336
386
  "type": "number",
337
387
  "mutable": false,
@@ -936,6 +986,22 @@ export class DuetInput {
936
986
  "text": "Sets focus on the specified `duet-input`. Use this method instead of the global\n`input.focus()`.",
937
987
  "tags": []
938
988
  }
989
+ },
990
+ "resetCursor": {
991
+ "complexType": {
992
+ "signature": "() => Promise<void>",
993
+ "parameters": [],
994
+ "references": {
995
+ "Promise": {
996
+ "location": "global"
997
+ }
998
+ },
999
+ "return": "Promise<void>"
1000
+ },
1001
+ "docs": {
1002
+ "text": "Reset the cursor position on the native element\n`input.resetCursor()`.",
1003
+ "tags": []
1004
+ }
939
1005
  }
940
1006
  }; }
941
1007
  static get elementRef() { return "element"; }
@@ -32,6 +32,10 @@ export class DuetTabGroup {
32
32
  * Whether the tab-group collapses to a select dropwdown in minor breakpoints
33
33
  */
34
34
  this.collapses = true;
35
+ /**
36
+ * Aria label for the entire tab-group
37
+ */
38
+ this.accessibleLabel = undefined;
35
39
  /**
36
40
  * Style variation of the tab group.
37
41
  */
@@ -92,7 +96,7 @@ export class DuetTabGroup {
92
96
  };
93
97
  this.renderTab = () => {
94
98
  const renderedTabs = this.tabs.map((element, index) => {
95
- return (h("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), part: `${this.identifier}-button ${element.selected ? `${this.identifier}-button--selected` : ""}`, type: "button", class: {
99
+ return (h("button", { role: "tab", id: this.getButtonId(index), "aria-controls": this.getTabId(index), "aria-selected": element.selected ? "true" : "false", "aria-description": this.getAccessibleDescription(index), tabindex: index === 0 ? "0" : "-1", part: `${this.identifier}-button ${element.selected ? `${this.identifier}-button--selected` : ""}`, type: "button", class: {
96
100
  "duet-p-0": this.padding === "none",
97
101
  "duet-tab-button": true,
98
102
  selected: element.selected,
@@ -202,7 +206,7 @@ export class DuetTabGroup {
202
206
  [`duet-tab-variation-${this.variation}`]: true,
203
207
  "duet-tab-group-scrolls": this.scrolls,
204
208
  "duet-tab-group-collapses": this.collapses,
205
- } },
209
+ }, "aria-label": this.accessibleLabel },
206
210
  this.tabs.length > 3 && this.collapses && (h("duet-select", { value: this.selected.toString(), expand: true, label: this.label, labelHidden: this.labelHidden, theme: this.theme, onDuetChange: event => this.openTab(Number(event.detail.value)), items: this.tabs.map((tab, index) => {
207
211
  return { label: tab.label, value: index.toString() };
208
212
  }) })),
@@ -212,7 +216,7 @@ export class DuetTabGroup {
212
216
  "duet-tab-group-hidden": this.tabs.length > 3,
213
217
  "duet-tab-group-collapses": this.collapses,
214
218
  } }, this.renderTab()),
215
- h("div", { class: { "duet-tab-group-content": true, "duet-m-0": this.margin === "none" } },
219
+ h("div", { role: "tabpanel", tabindex: "0", class: { "duet-tab-group-content": true, "duet-m-0": this.margin === "none" } },
216
220
  h("slot", null))));
217
221
  }
218
222
  static get is() { return "duet-tab-group"; }
@@ -283,6 +287,24 @@ export class DuetTabGroup {
283
287
  "reflect": false,
284
288
  "defaultValue": "true"
285
289
  },
290
+ "accessibleLabel": {
291
+ "type": "string",
292
+ "mutable": false,
293
+ "complexType": {
294
+ "original": "string",
295
+ "resolved": "string",
296
+ "references": {}
297
+ },
298
+ "required": false,
299
+ "optional": false,
300
+ "docs": {
301
+ "tags": [],
302
+ "text": "Aria label for the entire tab-group"
303
+ },
304
+ "attribute": "accessible-label",
305
+ "reflect": false,
306
+ "defaultValue": "undefined"
307
+ },
286
308
  "variation": {
287
309
  "type": "string",
288
310
  "mutable": false,
@@ -62,6 +62,10 @@
62
62
  font-weight: 400;
63
63
  background-color: #f5f8fa;
64
64
  }
65
+ .duet-upload-filelist-empty-label {
66
+ font-size: 1rem;
67
+ font-weight: 400;
68
+ }
65
69
  .duet-upload-editable-table-header-hidden {
66
70
  display: none;
67
71
  }
@@ -86,4 +90,12 @@
86
90
  }
87
91
  .duet-upload-editable-table duet-editable-table .duet-editable-table-row-inprogress duet-action-button::part(button) {
88
92
  border: 0;
93
+ }
94
+ .duet-upload-editable-table .duet-upload-item-name duet-icon {
95
+ position: relative;
96
+ top: 2px;
97
+ }
98
+
99
+ duet-paragraph::part(duet-paragraph) {
100
+ word-break: break-word;
89
101
  }
@@ -769,7 +769,10 @@ export class DuetUpload {
769
769
  "duet-upload-filelist-empty": !this.files.size,
770
770
  "duet-upload-filelist": true,
771
771
  "duet-upload-filelist-filled": this.files.size,
772
- }, id: this.labelId, for: identifier }, this.fileListEmpty)),
772
+ }, id: this.labelId, for: identifier },
773
+ h("span", { class: {
774
+ "duet-upload-filelist-empty-label": !this.files.size,
775
+ } }, this.fileListEmpty))),
773
776
  !!this.files.size && h("slot", { name: "fileheader" }),
774
777
  !!this.files.size && (h("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })),
775
778
  !!this.files.size && this.renderEditableTableGroups(),
@@ -7,7 +7,7 @@ export const SuccessItem = ({ data, showLinks }) => {
7
7
  const { item, size, uploaded, url, meta } = data;
8
8
  const { name } = item;
9
9
  const ContentName = (h("span", { class: "duet-upload-item-name" },
10
- h("duet-icon", { margin: "none", size: "xx-small", name: "messaging-attachment" }),
10
+ h("duet-icon", { margin: "none", size: "x-small", name: "messaging-attachment" }),
11
11
  h("duet-spacer", { size: "xx-small", direction: "horizontal" }),
12
12
  name));
13
13
  const SizeText = (h("span", { class: "duet-upload-item-size", style: { fontSize: "14px", fontWeight: "400" } },
@@ -23,7 +23,7 @@ export function resetCursor(domElement) {
23
23
  }
24
24
  };
25
25
  }
26
- return () => console.log("domElement not valid");
26
+ return () => true;
27
27
  }
28
28
  /**
29
29
  * Given an input and a regex, remove any characters from the input's value
@@ -14,6 +14,12 @@ export const parsePossibleJSON = (maybeJSON) => {
14
14
  }
15
15
  catch (e) {
16
16
  console.warn(e);
17
+ try {
18
+ return JSON.parse(convertHtmlQuotes(maybeJSON));
19
+ }
20
+ catch (e) {
21
+ console.warn(e);
22
+ }
17
23
  }
18
24
  }
19
25
  // undefined is not a type in JSON,
@@ -2,7 +2,10 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  export const inheritGlobalTheme = (component) => {
5
- if (component.theme !== "default" && document.documentElement.classList.contains("duet-theme-turva")) {
6
- component.theme = "turva";
5
+ // this minor change enables duet-theme-XXXXX instead of just duet-theme-turva
6
+ const classList = Array.from(document.documentElement.classList).join(" ") || "";
7
+ const theme = /(duet-theme-)([a-z]*)/gis.exec(classList);
8
+ if (theme && theme[1] === "duet-theme-") {
9
+ component.theme = theme[2] === "default" ? "" : theme[2];
7
10
  }
8
11
  };
@@ -74,6 +74,12 @@ export const DuetCollapsible: {
74
74
  new (): DuetCollapsible;
75
75
  };
76
76
 
77
+ interface DuetCombobox extends Components.DuetCombobox, HTMLElement {}
78
+ export const DuetCombobox: {
79
+ prototype: DuetCombobox;
80
+ new (): DuetCombobox;
81
+ };
82
+
77
83
  interface DuetCookieConsent extends Components.DuetCookieConsent, HTMLElement {}
78
84
  export const DuetCookieConsent: {
79
85
  prototype: DuetCookieConsent;