@duetds/components 5.0.4 → 5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/hydrate/index.js +474 -17
  2. package/lib/cjs/duet-action-button.cjs.entry.js +7 -7
  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 +6 -6
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +6 -6
  9. package/lib/cjs/duet-card.cjs.entry.js +6 -6
  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 +5 -5
  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 +11 -9
  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 +3 -3
  22. package/lib/cjs/duet-header_2.cjs.entry.js +42 -11
  23. package/lib/cjs/duet-hero.cjs.entry.js +4 -4
  24. package/lib/cjs/duet-icon.cjs.entry.js +4 -4
  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 +3 -3
  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 +5 -5
  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-a03e60dd.js} +1 -1
  46. package/lib/cjs/{index-ef094178.js → index-e44f9b36.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/cjs/{token-utils-ac8432d1.js → token-utils-f402e205.js} +1 -1
  54. package/lib/cjs/{tokens-72efc7fd.js → tokens-8596cece.js} +0 -0
  55. package/lib/cjs/{tokens.module-6afcc9c1.js → tokens.module-6b2df1c2.js} +0 -0
  56. package/lib/collection/collection-manifest.json +1 -0
  57. package/lib/collection/components/duet-combobox/duet-combobox-select-single.js +12 -0
  58. package/lib/collection/components/duet-combobox/duet-combobox-select.js +19 -0
  59. package/lib/collection/components/duet-combobox/duet-combobox.css +78 -0
  60. package/lib/collection/components/duet-combobox/duet-combobox.js +592 -0
  61. package/lib/collection/components/duet-footer/duet-footer.js +6 -2
  62. package/lib/collection/components/duet-header/duet-header.css +15 -0
  63. package/lib/collection/components/duet-header/duet-header.js +41 -3
  64. package/lib/collection/components/duet-input/duet-input.js +67 -1
  65. package/lib/collection/components/duet-tab-group/duet-tab-group.js +25 -3
  66. package/lib/collection/components/duet-upload/duet-upload.css +12 -0
  67. package/lib/collection/components/duet-upload/duet-upload.js +4 -1
  68. package/lib/collection/components/duet-upload/upload-editable-item-success.js +1 -1
  69. package/lib/collection/utils/input-utils.js +1 -1
  70. package/lib/collection/utils/string-utils.js +6 -0
  71. package/lib/collection/utils/themeable-component.js +5 -2
  72. package/lib/custom-elements-bundle/index.d.ts +6 -0
  73. package/lib/custom-elements-bundle/index.js +470 -29
  74. package/lib/duet/duet.esm.js +1 -1
  75. package/lib/duet/duet.js +1 -1
  76. package/lib/duet/{p-36e7114b.system.entry.js → p-052a5743.system.entry.js} +1 -1
  77. package/lib/duet/{p-f1b62aca.entry.js → p-0958486a.entry.js} +1 -1
  78. package/lib/duet/{p-9b568485.entry.js → p-0bfa4901.entry.js} +1 -1
  79. package/lib/duet/{p-912eed2f.entry.js → p-14883a40.entry.js} +1 -1
  80. package/lib/duet/p-1676ed71.system.entry.js +4 -0
  81. package/lib/duet/{p-16df6ccc.system.entry.js → p-17261af2.system.entry.js} +1 -1
  82. package/lib/duet/{p-c3bd89fa.system.entry.js → p-1a1c2f04.system.entry.js} +1 -1
  83. package/lib/duet/p-1beddade.entry.js +4 -0
  84. package/lib/duet/{p-ea4674fd.system.entry.js → p-202bedcb.system.entry.js} +1 -1
  85. package/lib/duet/{p-68fecc14.system.entry.js → p-21711099.system.entry.js} +1 -1
  86. package/lib/duet/{p-f4c60fd8.system.entry.js → p-25edad4a.system.entry.js} +1 -1
  87. package/lib/duet/{p-123c8434.system.entry.js → p-2673743a.system.entry.js} +1 -1
  88. package/lib/duet/p-28f204ff.system.entry.js +4 -0
  89. package/lib/duet/{p-1144c927.entry.js → p-2963573e.entry.js} +1 -1
  90. package/lib/duet/{p-87bedb24.system.entry.js → p-2999bd13.system.entry.js} +1 -1
  91. package/lib/duet/{p-c2d1223e.entry.js → p-2f6e0663.entry.js} +1 -1
  92. package/lib/duet/{p-42d3a162.system.entry.js → p-314a8dce.system.entry.js} +1 -1
  93. package/lib/duet/{p-b631407a.system.entry.js → p-32c98e7e.system.entry.js} +1 -1
  94. package/lib/duet/{p-aa16ca33.system.entry.js → p-33eef64b.system.entry.js} +1 -1
  95. package/lib/duet/{p-ad77f9e2.entry.js → p-3b6ba9be.entry.js} +1 -1
  96. package/lib/duet/{p-1cfeab55.system.entry.js → p-3c09dfc7.system.entry.js} +1 -1
  97. package/lib/duet/{p-b5bc8221.entry.js → p-3e21a552.entry.js} +1 -1
  98. package/lib/duet/{p-5d997107.entry.js → p-3e6b24df.entry.js} +1 -1
  99. package/lib/duet/{p-7dbf8797.system.entry.js → p-3f781b16.system.entry.js} +1 -1
  100. package/lib/duet/{p-f5a4ae78.entry.js → p-3fef06e6.entry.js} +1 -1
  101. package/lib/duet/{p-1bb6c66f.system.entry.js → p-434eb761.system.entry.js} +1 -1
  102. package/lib/duet/{p-92722c37.system.entry.js → p-442a290e.system.entry.js} +1 -1
  103. package/lib/duet/{p-f414ff23.system.entry.js → p-4600e39d.system.entry.js} +1 -1
  104. package/lib/duet/{p-a96ead6c.entry.js → p-489173a9.entry.js} +1 -1
  105. package/lib/duet/{p-104c3fa5.system.entry.js → p-4b9eb6dd.system.entry.js} +1 -1
  106. package/lib/duet/{p-77acbfe4.system.js → p-4e2532c7.system.js} +1 -1
  107. package/lib/duet/{p-2b1b8246.entry.js → p-53d51490.entry.js} +1 -1
  108. package/lib/duet/p-54f35a79.js +4 -0
  109. package/lib/duet/p-56118313.js +4 -0
  110. package/lib/duet/p-5a9d75e1.js +4 -0
  111. package/lib/duet/{p-5d6f8c04.entry.js → p-6ac8a774.entry.js} +1 -1
  112. package/lib/duet/p-6b03322b.system.js +4 -0
  113. package/lib/duet/{p-ee6d9bc6.entry.js → p-6b915701.entry.js} +1 -1
  114. package/lib/duet/{p-bd27572d.entry.js → p-6c94b74c.entry.js} +1 -1
  115. package/lib/duet/{p-298aff96.system.entry.js → p-6d93203d.system.entry.js} +1 -1
  116. package/lib/duet/{p-689fe862.entry.js → p-6f339dd4.entry.js} +1 -1
  117. package/lib/duet/{p-cbd12107.system.entry.js → p-71e1ff1e.system.entry.js} +1 -1
  118. package/lib/duet/p-72919e6d.entry.js +4 -0
  119. package/lib/duet/{p-b47892c9.entry.js → p-7312120a.entry.js} +1 -1
  120. package/lib/duet/{p-54cc4f86.entry.js → p-77c8ae06.entry.js} +1 -1
  121. package/lib/duet/{p-b110c837.entry.js → p-79af737e.entry.js} +1 -1
  122. package/lib/duet/{p-d98ed960.entry.js → p-7d8ee301.entry.js} +1 -1
  123. package/lib/duet/{p-d7bc0102.js → p-8143f3de.js} +0 -0
  124. package/lib/duet/{p-d4621cbf.system.entry.js → p-82bfc46e.system.entry.js} +1 -1
  125. package/lib/duet/{p-70acda4b.entry.js → p-854b2669.entry.js} +1 -1
  126. package/lib/duet/{p-b06d63cb.entry.js → p-8afcef6d.entry.js} +1 -1
  127. package/lib/duet/p-8ca12f86.entry.js +4 -0
  128. package/lib/duet/{p-b985a189.entry.js → p-8e7b2349.entry.js} +1 -1
  129. package/lib/duet/p-976d65bc.entry.js +4 -0
  130. package/lib/duet/{p-84eb2808.entry.js → p-a3e84a0c.entry.js} +1 -1
  131. package/lib/duet/p-a63f753e.system.js +4 -0
  132. package/lib/duet/{p-285e2473.system.entry.js → p-a682460b.system.entry.js} +2 -2
  133. package/lib/duet/p-abf8eaf7.js +4 -0
  134. package/lib/duet/{p-ed75c8b3.js → p-ad07f399.js} +0 -0
  135. package/lib/duet/p-aee18e71.system.entry.js +4 -0
  136. package/lib/duet/{p-d494f1a3.system.entry.js → p-b03047e2.system.entry.js} +1 -1
  137. package/lib/duet/p-b6d51921.system.js +4 -0
  138. package/lib/duet/{p-ada161bd.entry.js → p-b8423556.entry.js} +1 -1
  139. package/lib/duet/{p-f125dfff.system.js → p-bdbf8f12.system.js} +1 -1
  140. package/lib/duet/{p-fe9138e7.system.entry.js → p-bfacc4ba.system.entry.js} +1 -1
  141. package/lib/duet/{p-d688612f.entry.js → p-bfbc45ac.entry.js} +1 -1
  142. package/lib/duet/{p-1a2ab8e8.system.entry.js → p-c3248b49.system.entry.js} +1 -1
  143. package/lib/duet/{p-128983f7.system.entry.js → p-c363cb4b.system.entry.js} +1 -1
  144. package/lib/duet/{p-97bdc2bf.entry.js → p-c3cfb3d2.entry.js} +1 -1
  145. package/lib/duet/{p-9a8d5b11.system.js → p-c466bad9.system.js} +1 -1
  146. package/lib/duet/{p-217b9e24.entry.js → p-c4b8dbcc.entry.js} +1 -1
  147. package/lib/duet/{p-b5a64d86.system.entry.js → p-ca07f766.system.entry.js} +1 -1
  148. package/lib/duet/{p-d9ac5f05.entry.js → p-ca61da84.entry.js} +1 -1
  149. package/lib/duet/{p-5746d88c.js → p-cb445018.js} +1 -1
  150. package/lib/duet/{p-c0071398.system.entry.js → p-cbee7eb0.system.entry.js} +1 -1
  151. package/lib/duet/p-cc557ff2.entry.js +4 -0
  152. package/lib/duet/{p-a41384d5.system.entry.js → p-cde3dddb.system.entry.js} +1 -1
  153. package/lib/duet/p-cf2cd5b6.js +4 -0
  154. package/lib/duet/{p-e0b5e649.entry.js → p-d15456a9.entry.js} +1 -1
  155. package/lib/duet/{p-04145769.system.js → p-d3a21d3a.system.js} +1 -1
  156. package/lib/duet/{p-37f74ccb.system.entry.js → p-d4f6977d.system.entry.js} +2 -2
  157. package/lib/duet/{p-217e3cc7.system.entry.js → p-d56fcc0f.system.entry.js} +1 -1
  158. package/lib/duet/{p-c40c716c.entry.js → p-d75cb9b3.entry.js} +1 -1
  159. package/lib/duet/{p-8ebf4113.entry.js → p-dc6f6251.entry.js} +1 -1
  160. package/lib/duet/{p-268c0abb.system.js → p-ddb6344c.system.js} +0 -0
  161. package/lib/duet/{p-c5037594.entry.js → p-e2e9c1c6.entry.js} +1 -1
  162. package/lib/duet/{p-e485de24.entry.js → p-e3bb4d0d.entry.js} +1 -1
  163. package/lib/duet/{p-2495cec7.system.entry.js → p-e6217a66.system.entry.js} +1 -1
  164. package/lib/duet/{p-333ed250.system.entry.js → p-e7d06e4b.system.entry.js} +1 -1
  165. package/lib/duet/{p-30a28555.system.entry.js → p-e9d62935.system.entry.js} +1 -1
  166. package/lib/duet/{p-a52c08c6.entry.js → p-ea85a070.entry.js} +1 -1
  167. package/lib/duet/{p-90223d57.entry.js → p-eacb0a3c.entry.js} +1 -1
  168. package/lib/duet/{p-eb7c1a1d.system.entry.js → p-eafce13a.system.entry.js} +2 -2
  169. package/lib/duet/{p-a7a1ece1.system.entry.js → p-eafe466d.system.entry.js} +1 -1
  170. package/lib/duet/{p-17a8d23c.system.entry.js → p-ebc287fb.system.entry.js} +1 -1
  171. package/lib/duet/p-ede854e1.js +4 -0
  172. package/lib/duet/p-ef60173e.js +4 -0
  173. package/lib/duet/{p-d2b5efc0.system.entry.js → p-ef63e6b7.system.entry.js} +1 -1
  174. package/lib/duet/{p-71cdfd93.system.entry.js → p-f2dda559.system.entry.js} +1 -1
  175. package/lib/duet/p-f357091a.entry.js +4 -0
  176. package/lib/duet/{p-70fafc98.system.js → p-f69b64c9.system.js} +1 -1
  177. package/lib/duet/{p-f333c2bf.system.entry.js → p-f6d4c0e2.system.entry.js} +1 -1
  178. package/lib/duet/{p-27eac9a4.entry.js → p-f8d42b1d.entry.js} +1 -1
  179. package/lib/duet/{p-812b0905.system.js → p-fa99eaa4.system.js} +0 -0
  180. package/lib/duet/p-fad9218e.system.js +4 -0
  181. package/lib/esm/duet-action-button.entry.js +7 -7
  182. package/lib/esm/duet-alert.entry.js +4 -4
  183. package/lib/esm/duet-badge.entry.js +2 -2
  184. package/lib/esm/duet-breadcrumb.entry.js +2 -2
  185. package/lib/esm/duet-breadcrumbs.entry.js +4 -4
  186. package/lib/esm/duet-button_2.entry.js +6 -6
  187. package/lib/esm/duet-caption_4.entry.js +6 -6
  188. package/lib/esm/duet-card.entry.js +6 -6
  189. package/lib/esm/duet-checkbox.entry.js +2 -2
  190. package/lib/esm/duet-choice_2.entry.js +6 -6
  191. package/lib/esm/duet-collapsible.entry.js +5 -5
  192. package/lib/esm/duet-combobox.entry.js +386 -0
  193. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  194. package/lib/esm/duet-date-picker.entry.js +5 -5
  195. package/lib/esm/duet-divider_2.entry.js +2 -2
  196. package/lib/esm/duet-editable-table_3.entry.js +11 -9
  197. package/lib/esm/duet-empty-state.entry.js +2 -2
  198. package/lib/esm/duet-fieldset.entry.js +2 -2
  199. package/lib/esm/duet-footer.entry.js +6 -6
  200. package/lib/esm/duet-grid_2.entry.js +3 -3
  201. package/lib/esm/duet-header_2.entry.js +42 -11
  202. package/lib/esm/duet-hero.entry.js +4 -4
  203. package/lib/esm/duet-icon.entry.js +4 -4
  204. package/lib/esm/duet-input_2.entry.js +19 -4
  205. package/lib/esm/duet-layout.entry.js +1 -1
  206. package/lib/esm/duet-list_2.entry.js +2 -2
  207. package/lib/esm/duet-modal.entry.js +6 -6
  208. package/lib/esm/duet-notification_2.entry.js +4 -4
  209. package/lib/esm/duet-number-input.entry.js +5 -5
  210. package/lib/esm/duet-pagination_2.entry.js +5 -5
  211. package/lib/esm/duet-progress.entry.js +4 -4
  212. package/lib/esm/duet-radio_2.entry.js +2 -2
  213. package/lib/esm/duet-range-slider.entry.js +3 -3
  214. package/lib/esm/duet-scrollable_3.entry.js +12 -8
  215. package/lib/esm/duet-select.entry.js +3 -3
  216. package/lib/esm/duet-step_2.entry.js +3 -3
  217. package/lib/esm/duet-textarea.entry.js +3 -3
  218. package/lib/esm/duet-toggle.entry.js +2 -2
  219. package/lib/esm/duet-tooltip.entry.js +4 -4
  220. package/lib/esm/duet-tray.entry.js +5 -5
  221. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  222. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  223. package/lib/esm/duet.js +2 -2
  224. package/lib/esm/{focus-utils-d02ee9d2.js → focus-utils-ea33cb8a.js} +1 -1
  225. package/lib/esm/{index-3cfa1b7e.js → index-54e0bce3.js} +1 -1
  226. package/lib/esm/{input-utils-f4cafee1.js → input-utils-de45e099.js} +1 -1
  227. package/lib/esm/{keyboard-utils-6eb55cd5.js → keyboard-utils-88ea1007.js} +2 -1
  228. package/lib/esm/{language-utils-344d894c.js → language-utils-bf701d37.js} +1 -1
  229. package/lib/esm/loader.js +2 -2
  230. package/lib/esm/{string-utils-2f1793b8.js → string-utils-5954f458.js} +6 -0
  231. package/lib/esm/themeable-component-e8fc98bf.js +13 -0
  232. package/lib/esm/{token-utils-e9a0cb88.js → token-utils-e9a69acf.js} +1 -1
  233. package/lib/esm/{tokens-57d98824.js → tokens-e110dc89.js} +0 -0
  234. package/lib/esm/{tokens.module-a13e9683.js → tokens.module-49cbf963.js} +0 -0
  235. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  236. package/lib/esm-es5/duet-alert.entry.js +1 -1
  237. package/lib/esm-es5/duet-badge.entry.js +1 -1
  238. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  239. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  240. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  241. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  242. package/lib/esm-es5/duet-card.entry.js +1 -1
  243. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  244. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  245. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  246. package/lib/esm-es5/duet-combobox.entry.js +4 -0
  247. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  248. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  249. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  250. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  251. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  252. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  253. package/lib/esm-es5/duet-footer.entry.js +1 -1
  254. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  255. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  256. package/lib/esm-es5/duet-hero.entry.js +1 -1
  257. package/lib/esm-es5/duet-icon.entry.js +1 -1
  258. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  259. package/lib/esm-es5/duet-layout.entry.js +1 -1
  260. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  261. package/lib/esm-es5/duet-modal.entry.js +1 -1
  262. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  263. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  264. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  265. package/lib/esm-es5/duet-progress.entry.js +1 -1
  266. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  267. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  268. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  269. package/lib/esm-es5/duet-select.entry.js +1 -1
  270. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  271. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  272. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  273. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  274. package/lib/esm-es5/duet-tray.entry.js +1 -1
  275. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  276. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  277. package/lib/esm-es5/duet.js +1 -1
  278. package/lib/esm-es5/focus-utils-ea33cb8a.js +4 -0
  279. package/lib/esm-es5/index-54e0bce3.js +4 -0
  280. package/lib/esm-es5/input-utils-de45e099.js +4 -0
  281. package/lib/esm-es5/keyboard-utils-88ea1007.js +4 -0
  282. package/lib/esm-es5/{language-utils-344d894c.js → language-utils-bf701d37.js} +1 -1
  283. package/lib/esm-es5/loader.js +1 -1
  284. package/lib/esm-es5/string-utils-5954f458.js +4 -0
  285. package/lib/esm-es5/themeable-component-e8fc98bf.js +4 -0
  286. package/lib/esm-es5/{token-utils-e9a0cb88.js → token-utils-e9a69acf.js} +1 -1
  287. package/lib/esm-es5/{tokens-57d98824.js → tokens-e110dc89.js} +0 -0
  288. package/lib/esm-es5/{tokens.module-a13e9683.js → tokens.module-49cbf963.js} +0 -0
  289. package/lib/html.html-data.json +55 -0
  290. package/lib/types/components/duet-combobox/duet-combobox-select-single.d.ts +8 -0
  291. package/lib/types/components/duet-combobox/duet-combobox-select.d.ts +14 -0
  292. package/lib/types/components/duet-combobox/duet-combobox.d.ts +131 -0
  293. package/lib/types/components/duet-footer/duet-footer.d.ts +4 -0
  294. package/lib/types/components/duet-header/duet-header.d.ts +8 -0
  295. package/lib/types/components/duet-input/duet-input.d.ts +13 -0
  296. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +4 -0
  297. package/lib/types/components.d.ts +115 -0
  298. package/package.json +5 -5
  299. package/lib/cjs/themeable-component-0c1be552.js +0 -12
  300. package/lib/duet/p-195f73d6.entry.js +0 -4
  301. package/lib/duet/p-2764f081.js +0 -4
  302. package/lib/duet/p-6733b42f.js +0 -4
  303. package/lib/duet/p-74780bca.system.js +0 -4
  304. package/lib/duet/p-7b064c4f.entry.js +0 -4
  305. package/lib/duet/p-7e2e9a28.js +0 -4
  306. package/lib/duet/p-898f30a5.js +0 -4
  307. package/lib/duet/p-922c3772.system.entry.js +0 -4
  308. package/lib/duet/p-98228d0a.system.js +0 -4
  309. package/lib/duet/p-986779fb.js +0 -4
  310. package/lib/duet/p-9a945278.system.js +0 -4
  311. package/lib/duet/p-9dfcd29a.js +0 -4
  312. package/lib/duet/p-a28cf57b.js +0 -4
  313. package/lib/duet/p-a8ff3a13.entry.js +0 -4
  314. package/lib/duet/p-d70b3f27.entry.js +0 -4
  315. package/lib/duet/p-d8c526b4.entry.js +0 -4
  316. package/lib/duet/p-e87b2fa4.system.entry.js +0 -4
  317. package/lib/duet/p-efaa0c04.system.js +0 -4
  318. package/lib/esm/themeable-component-572685dd.js +0 -10
  319. package/lib/esm-es5/focus-utils-d02ee9d2.js +0 -4
  320. package/lib/esm-es5/index-3cfa1b7e.js +0 -4
  321. package/lib/esm-es5/input-utils-f4cafee1.js +0 -4
  322. package/lib/esm-es5/keyboard-utils-6eb55cd5.js +0 -4
  323. package/lib/esm-es5/string-utils-2f1793b8.js +0 -4
  324. 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,6 +288,7 @@ 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
293
  this.isSlideOutOpen = !this.isSlideOutOpen;
277
294
  if (this.isSlideOutOpen) {
@@ -285,15 +302,22 @@ export class DuetHeader {
285
302
  this.isContactOpen = false;
286
303
  this.isLanguageOpen = false;
287
304
  this.isSegmentOpen = false;
305
+ this.isSessionOpen = false;
288
306
  el = this.subMenuItemRefs[id];
289
307
  }
290
308
  else if (type === "segment") {
291
309
  this.isContactOpen = false;
292
310
  this.isLanguageOpen = false;
311
+ this.isSessionOpen = false;
293
312
  this.isSegmentOpen = !this.isSegmentOpen;
294
313
  el = this.segmentItemsEl;
295
314
  }
296
- if (this.isSlideOutOpen || this.isLanguageOpen || this.isContactOpen || this.isSegmentOpen || this.openMenu) {
315
+ if (this.isSlideOutOpen ||
316
+ this.isLanguageOpen ||
317
+ this.isContactOpen ||
318
+ this.isSegmentOpen ||
319
+ this.isSessionOpen ||
320
+ this.openMenu) {
297
321
  const drawer = this.element.querySelector("duet-notification-drawer");
298
322
  if (drawer) {
299
323
  drawer.close(false);
@@ -417,7 +441,7 @@ export class DuetHeader {
417
441
  * Closes all dropdown menus in header when called.
418
442
  */
419
443
  async closeMenus(moveFocusToButton = false) {
420
- if (this.isContactOpen || this.isLanguageOpen || this.isSegmentOpen || this.openMenu) {
444
+ if (this.isContactOpen || this.isLanguageOpen || this.isSegmentOpen || this.isSessionOpen || this.openMenu) {
421
445
  if (this.isContactOpen && moveFocusToButton) {
422
446
  this.contactItemsButtonEl.focus({
423
447
  preventScroll: true,
@@ -433,6 +457,11 @@ export class DuetHeader {
433
457
  preventScroll: true,
434
458
  });
435
459
  }
460
+ if (this.isSessionOpen && moveFocusToButton) {
461
+ this.sessionItemsButtonEl.focus({
462
+ preventScroll: true,
463
+ });
464
+ }
436
465
  if (this.openMenu && moveFocusToButton) {
437
466
  this.subMenuButtonRefs[this.openMenu].focus({
438
467
  preventScroll: true,
@@ -441,6 +470,7 @@ export class DuetHeader {
441
470
  this.isContactOpen = false;
442
471
  this.isLanguageOpen = false;
443
472
  this.isSegmentOpen = false;
473
+ this.isSessionOpen = false;
444
474
  this.openMenu = null;
445
475
  }
446
476
  }
@@ -479,6 +509,13 @@ export class DuetHeader {
479
509
  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
510
  h(DuetHeaderIcon, { icon: this.processedSession.type === "logout" ? logoutIcon.svg : loginIcon.svg, iconSize: processedSessionIconSize }),
481
511
  h("span", { class: "duet-header-button-label" }, this.processedSession.label))) : null;
512
+ 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,
513
+ sessionItem.label && h("span", { class: "duet-header-session-label" }, sessionItem.label),
514
+ h("duet-spacer", { size: "small", "aria-hidden": "true" }),
515
+ 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))),
516
+ index !== this.processedSession.sessionItems.length - 1 && (h(Fragment, null,
517
+ h("duet-spacer", { size: "x-small", "aria-hidden": "true" }),
518
+ h("duet-divider", { margin: "none", "aria-hidden": "true" })))))))) : null;
482
519
  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
520
  h(DuetHeaderIcon, { icon: searchIcon.svg }),
484
521
  h("span", { class: "duet-header-button-label" }, this.processedSearch.label))) : null;
@@ -540,7 +577,7 @@ export class DuetHeader {
540
577
  h("div", { class: "duet-header-multi-level-desktop-utils" },
541
578
  processedSearch,
542
579
  languageDropdown,
543
- processedSession),
580
+ processedSessionDropdown != null ? processedSessionDropdown : processedSession),
544
581
  h("slot", { name: "utility" }))))));
545
582
  }
546
583
  // Default variation
@@ -1048,6 +1085,7 @@ export class DuetHeader {
1048
1085
  static get states() { return {
1049
1086
  "isContactOpen": {},
1050
1087
  "isLanguageOpen": {},
1088
+ "isSessionOpen": {},
1051
1089
  "isSlideOutOpen": {},
1052
1090
  "isSegmentOpen": {},
1053
1091
  "openMenu": {},
@@ -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;