@duetds/components 5.0.3 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/hydrate/index.js +491 -16
  2. package/lib/cjs/duet-action-button.cjs.entry.js +5 -5
  3. package/lib/cjs/duet-alert.cjs.entry.js +2 -2
  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 +2 -2
  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 +5 -5
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  11. package/lib/cjs/duet-choice_2.cjs.entry.js +4 -4
  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 +10 -5
  16. package/lib/cjs/duet-divider_2.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-editable-table_3.cjs.entry.js +9 -7
  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 +4 -4
  21. package/lib/cjs/duet-grid_2.cjs.entry.js +3 -3
  22. package/lib/cjs/duet-header_2.cjs.entry.js +40 -9
  23. package/lib/cjs/duet-hero.cjs.entry.js +2 -2
  24. package/lib/cjs/duet-icon.cjs.entry.js +4 -4
  25. package/lib/cjs/duet-input_2.cjs.entry.js +42 -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 +4 -4
  29. package/lib/cjs/duet-notification_2.cjs.entry.js +2 -2
  30. package/lib/cjs/duet-number-input.cjs.entry.js +3 -3
  31. package/lib/cjs/duet-pagination_2.cjs.entry.js +3 -3
  32. package/lib/cjs/duet-progress.cjs.entry.js +2 -2
  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 +3 -3
  36. package/lib/cjs/duet-select.cjs.entry.js +2 -2
  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 +2 -2
  41. package/lib/cjs/duet-tray.cjs.entry.js +3 -3
  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-be11fe84.js → focus-utils-be2df924.js} +1 -1
  46. package/lib/cjs/{index-4be1f8f7.js → index-608ca44d.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/loader.cjs.js +2 -2
  50. package/lib/cjs/themeable-component-940d3b50.js +15 -0
  51. package/lib/cjs/{token-utils-ac8432d1.js → token-utils-f402e205.js} +1 -1
  52. package/lib/cjs/{tokens-72efc7fd.js → tokens-8596cece.js} +0 -0
  53. package/lib/cjs/{tokens.module-6afcc9c1.js → tokens.module-6b2df1c2.js} +0 -0
  54. package/lib/collection/collection-manifest.json +1 -0
  55. package/lib/collection/components/duet-combobox/duet-combobox-select-single.js +12 -0
  56. package/lib/collection/components/duet-combobox/duet-combobox-select.js +19 -0
  57. package/lib/collection/components/duet-combobox/duet-combobox.css +78 -0
  58. package/lib/collection/components/duet-combobox/duet-combobox.js +592 -0
  59. package/lib/collection/components/duet-date-picker/duet-date-picker.js +24 -2
  60. package/lib/collection/components/duet-date-picker/utils.js +1 -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 +92 -2
  65. package/lib/collection/components/duet-upload/duet-upload.css +12 -0
  66. package/lib/collection/components/duet-upload/duet-upload.js +4 -1
  67. package/lib/collection/components/duet-upload/upload-editable-item-success.js +1 -1
  68. package/lib/collection/utils/input-utils.js +1 -1
  69. package/lib/collection/utils/themeable-component.js +5 -2
  70. package/lib/custom-elements-bundle/index.d.ts +6 -0
  71. package/lib/custom-elements-bundle/index.js +487 -28
  72. package/lib/duet/duet.esm.js +1 -1
  73. package/lib/duet/duet.js +1 -1
  74. package/lib/duet/{p-74586a15.system.entry.js → p-026083dd.system.entry.js} +1 -1
  75. package/lib/duet/{p-cdd335a3.entry.js → p-068a3522.entry.js} +1 -1
  76. package/lib/duet/{p-7e8d9165.entry.js → p-06b01be8.entry.js} +1 -1
  77. package/lib/duet/{p-dbc85b3a.entry.js → p-08c949c2.entry.js} +1 -1
  78. package/lib/duet/{p-1159dab0.system.entry.js → p-0cfe2b11.system.entry.js} +1 -1
  79. package/lib/duet/{p-71f87732.entry.js → p-143182be.entry.js} +1 -1
  80. package/lib/duet/p-156538ea.system.entry.js +4 -0
  81. package/lib/duet/{p-b6d748a9.system.entry.js → p-1dd368a3.system.entry.js} +1 -1
  82. package/lib/duet/{p-b72b4f9d.entry.js → p-1feabba1.entry.js} +1 -1
  83. package/lib/duet/{p-79f99668.entry.js → p-206f46ba.entry.js} +1 -1
  84. package/lib/duet/{p-22ed4dd2.entry.js → p-2287449d.entry.js} +1 -1
  85. package/lib/duet/{p-0c71c685.system.entry.js → p-23a19b83.system.entry.js} +1 -1
  86. package/lib/duet/{p-8824199e.system.entry.js → p-2866ccc1.system.entry.js} +1 -1
  87. package/lib/duet/{p-8f3be2e7.system.entry.js → p-29e73d8c.system.entry.js} +1 -1
  88. package/lib/duet/{p-33c8d8b9.entry.js → p-2f409514.entry.js} +1 -1
  89. package/lib/duet/{p-2a0ae7f6.system.entry.js → p-3048d8ef.system.entry.js} +1 -1
  90. package/lib/duet/{p-04ad8a51.system.js → p-31bc24a2.system.js} +1 -1
  91. package/lib/duet/{p-5be54927.entry.js → p-383c7df0.entry.js} +1 -1
  92. package/lib/duet/{p-24a9e68e.system.entry.js → p-388535da.system.entry.js} +1 -1
  93. package/lib/duet/p-3dfcf826.entry.js +4 -0
  94. package/lib/duet/{p-19a632b5.system.entry.js → p-41ff8913.system.entry.js} +1 -1
  95. package/lib/duet/{p-4a0d062b.entry.js → p-48ea1da4.entry.js} +1 -1
  96. package/lib/duet/{p-e171592e.entry.js → p-4c57fe8a.entry.js} +1 -1
  97. package/lib/duet/{p-77acbfe4.system.js → p-4e2532c7.system.js} +1 -1
  98. package/lib/duet/{p-364daea3.entry.js → p-4e4cce23.entry.js} +1 -1
  99. package/lib/duet/p-546444b0.system.entry.js +4 -0
  100. package/lib/duet/{p-fb3f8bae.entry.js → p-54724f73.entry.js} +1 -1
  101. package/lib/duet/p-54f35a79.js +4 -0
  102. package/lib/duet/p-56118313.js +4 -0
  103. package/lib/duet/{p-b9a23922.system.entry.js → p-58c20a42.system.entry.js} +1 -1
  104. package/lib/duet/{p-f40ab568.entry.js → p-60e2436b.entry.js} +1 -1
  105. package/lib/duet/{p-3e4f8f38.entry.js → p-63ac8866.entry.js} +1 -1
  106. package/lib/duet/{p-d8d93e29.system.js → p-64ebe689.system.js} +1 -1
  107. package/lib/duet/{p-3ab1a68a.entry.js → p-65a79da5.entry.js} +1 -1
  108. package/lib/duet/{p-8493e747.system.entry.js → p-69c0a7f6.system.entry.js} +1 -1
  109. package/lib/duet/p-6b03322b.system.js +4 -0
  110. package/lib/duet/{p-302a1111.system.entry.js → p-6b1abf52.system.entry.js} +1 -1
  111. package/lib/duet/{p-9bc80a7f.js → p-6b6176f4.js} +1 -1
  112. package/lib/duet/{p-480d4dcf.system.entry.js → p-6ba20e72.system.entry.js} +2 -2
  113. package/lib/duet/{p-0047c4f5.system.entry.js → p-6f4863db.system.entry.js} +1 -1
  114. package/lib/duet/{p-4c3d3d98.system.entry.js → p-6f603653.system.entry.js} +1 -1
  115. package/lib/duet/{p-5bb0d504.system.entry.js → p-7339eb94.system.entry.js} +1 -1
  116. package/lib/duet/{p-5208e8c8.entry.js → p-74728a74.entry.js} +1 -1
  117. package/lib/duet/{p-70090114.entry.js → p-7666b058.entry.js} +1 -1
  118. package/lib/duet/{p-cda9e6ea.entry.js → p-7729af53.entry.js} +1 -1
  119. package/lib/duet/p-7754c44f.entry.js +4 -0
  120. package/lib/duet/{p-c44470ff.entry.js → p-7a906647.entry.js} +1 -1
  121. package/lib/duet/{p-8c873050.system.entry.js → p-7aa17a19.system.entry.js} +1 -1
  122. package/lib/duet/{p-48c23e5c.entry.js → p-7f857142.entry.js} +1 -1
  123. package/lib/duet/{p-d7bc0102.js → p-8143f3de.js} +0 -0
  124. package/lib/duet/{p-49b566b8.entry.js → p-81c4e0b8.entry.js} +1 -1
  125. package/lib/duet/{p-7fe35615.system.entry.js → p-84afb642.system.entry.js} +1 -1
  126. package/lib/duet/{p-2724a54c.entry.js → p-85fe86ef.entry.js} +1 -1
  127. package/lib/duet/{p-839ea534.entry.js → p-887d51ae.entry.js} +1 -1
  128. package/lib/duet/{p-3cfbe168.entry.js → p-8cc38bb7.entry.js} +1 -1
  129. package/lib/duet/{p-a008aacc.entry.js → p-8f2b3690.entry.js} +1 -1
  130. package/lib/duet/p-93c1b85e.system.entry.js +4 -0
  131. package/lib/duet/{p-0e962ab1.system.entry.js → p-9592fa1f.system.entry.js} +1 -1
  132. package/lib/duet/{p-f65e0de6.system.entry.js → p-99dc86ab.system.entry.js} +1 -1
  133. package/lib/duet/{p-afe9e9f0.system.entry.js → p-9a47fd17.system.entry.js} +1 -1
  134. package/lib/duet/{p-8e7c504a.entry.js → p-9b0489b4.entry.js} +1 -1
  135. package/lib/duet/{p-a3506401.system.entry.js → p-9b282421.system.entry.js} +2 -2
  136. package/lib/duet/{p-36af1d4b.system.entry.js → p-9e06a7c7.system.entry.js} +1 -1
  137. package/lib/duet/p-a63f753e.system.js +4 -0
  138. package/lib/duet/{p-419e1df7.entry.js → p-a682a6a5.entry.js} +1 -1
  139. package/lib/duet/{p-25b156ea.entry.js → p-aa9d165e.entry.js} +1 -1
  140. package/lib/duet/{p-693cec9c.system.entry.js → p-ab3a0d39.system.entry.js} +1 -1
  141. package/lib/duet/p-ab8e590d.system.js +4 -0
  142. package/lib/duet/p-abf8eaf7.js +4 -0
  143. package/lib/duet/{p-ed75c8b3.js → p-ad07f399.js} +0 -0
  144. package/lib/duet/{p-14aba051.entry.js → p-b77d4386.entry.js} +1 -1
  145. package/lib/duet/{p-515fe415.system.entry.js → p-b7a86acf.system.entry.js} +1 -1
  146. package/lib/duet/p-badc3ac3.entry.js +4 -0
  147. package/lib/duet/{p-995288c0.entry.js → p-bc84c679.entry.js} +1 -1
  148. package/lib/duet/{p-1aa9b60c.system.entry.js → p-bdc61811.system.entry.js} +1 -1
  149. package/lib/duet/{p-38cc1d02.system.entry.js → p-c3019850.system.entry.js} +1 -1
  150. package/lib/duet/{p-9a8d5b11.system.js → p-c466bad9.system.js} +1 -1
  151. package/lib/duet/{p-68b50c43.entry.js → p-c5429708.entry.js} +1 -1
  152. package/lib/duet/{p-140cf44e.entry.js → p-ca55e1f8.entry.js} +1 -1
  153. package/lib/duet/{p-5746d88c.js → p-cb445018.js} +1 -1
  154. package/lib/duet/{p-f0dba299.system.entry.js → p-cd2e4ea8.system.entry.js} +1 -1
  155. package/lib/duet/{p-799f35c8.system.entry.js → p-d4734090.system.entry.js} +1 -1
  156. package/lib/duet/{p-d5a75400.system.entry.js → p-d8ebb48c.system.entry.js} +1 -1
  157. package/lib/duet/{p-29c093f0.entry.js → p-dca9237d.entry.js} +1 -1
  158. package/lib/duet/{p-268c0abb.system.js → p-ddb6344c.system.js} +0 -0
  159. package/lib/duet/p-df6b0878.system.entry.js +4 -0
  160. package/lib/duet/{p-7afb2bcf.system.entry.js → p-e4f8e874.system.entry.js} +1 -1
  161. package/lib/duet/{p-76f3205a.system.entry.js → p-e50c8c08.system.entry.js} +1 -1
  162. package/lib/duet/{p-b6339b38.system.entry.js → p-e5f9c7b8.system.entry.js} +1 -1
  163. package/lib/duet/{p-dca6993f.system.entry.js → p-e8a5580c.system.entry.js} +1 -1
  164. package/lib/duet/{p-d1549bd1.entry.js → p-e8da9596.entry.js} +1 -1
  165. package/lib/duet/{p-8594bc4d.entry.js → p-ea131807.entry.js} +1 -1
  166. package/lib/duet/{p-2be3b1ee.entry.js → p-ec340319.entry.js} +1 -1
  167. package/lib/duet/{p-2345965b.system.entry.js → p-ed1ea287.system.entry.js} +1 -1
  168. package/lib/duet/p-f37a0b50.entry.js +4 -0
  169. package/lib/duet/{p-bfc93e93.system.entry.js → p-f3ed1115.system.entry.js} +1 -1
  170. package/lib/duet/p-f42b06ec.entry.js +4 -0
  171. package/lib/duet/{p-343975bc.js → p-f5ced40a.js} +1 -1
  172. package/lib/duet/{p-83aaed17.system.entry.js → p-f7e5404c.system.entry.js} +1 -1
  173. package/lib/duet/{p-636dfb04.system.entry.js → p-f9ddfbd3.system.entry.js} +1 -1
  174. package/lib/duet/{p-812b0905.system.js → p-fa99eaa4.system.js} +0 -0
  175. package/lib/esm/duet-action-button.entry.js +5 -5
  176. package/lib/esm/duet-alert.entry.js +2 -2
  177. package/lib/esm/duet-badge.entry.js +2 -2
  178. package/lib/esm/duet-breadcrumb.entry.js +2 -2
  179. package/lib/esm/duet-breadcrumbs.entry.js +2 -2
  180. package/lib/esm/duet-button_2.entry.js +4 -4
  181. package/lib/esm/duet-caption_4.entry.js +4 -4
  182. package/lib/esm/duet-card.entry.js +5 -5
  183. package/lib/esm/duet-checkbox.entry.js +2 -2
  184. package/lib/esm/duet-choice_2.entry.js +4 -4
  185. package/lib/esm/duet-collapsible.entry.js +4 -4
  186. package/lib/esm/duet-combobox.entry.js +386 -0
  187. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  188. package/lib/esm/duet-date-picker.entry.js +10 -5
  189. package/lib/esm/duet-divider_2.entry.js +2 -2
  190. package/lib/esm/duet-editable-table_3.entry.js +9 -7
  191. package/lib/esm/duet-empty-state.entry.js +2 -2
  192. package/lib/esm/duet-fieldset.entry.js +2 -2
  193. package/lib/esm/duet-footer.entry.js +4 -4
  194. package/lib/esm/duet-grid_2.entry.js +3 -3
  195. package/lib/esm/duet-header_2.entry.js +40 -9
  196. package/lib/esm/duet-hero.entry.js +2 -2
  197. package/lib/esm/duet-icon.entry.js +4 -4
  198. package/lib/esm/duet-input_2.entry.js +42 -4
  199. package/lib/esm/duet-layout.entry.js +1 -1
  200. package/lib/esm/duet-list_2.entry.js +2 -2
  201. package/lib/esm/duet-modal.entry.js +4 -4
  202. package/lib/esm/duet-notification_2.entry.js +2 -2
  203. package/lib/esm/duet-number-input.entry.js +3 -3
  204. package/lib/esm/duet-pagination_2.entry.js +3 -3
  205. package/lib/esm/duet-progress.entry.js +2 -2
  206. package/lib/esm/duet-radio_2.entry.js +2 -2
  207. package/lib/esm/duet-range-slider.entry.js +3 -3
  208. package/lib/esm/duet-scrollable_3.entry.js +3 -3
  209. package/lib/esm/duet-select.entry.js +2 -2
  210. package/lib/esm/duet-step_2.entry.js +3 -3
  211. package/lib/esm/duet-textarea.entry.js +3 -3
  212. package/lib/esm/duet-toggle.entry.js +2 -2
  213. package/lib/esm/duet-tooltip.entry.js +2 -2
  214. package/lib/esm/duet-tray.entry.js +3 -3
  215. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  216. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  217. package/lib/esm/duet.js +2 -2
  218. package/lib/esm/{focus-utils-e649bb9d.js → focus-utils-b6b1e60d.js} +1 -1
  219. package/lib/esm/{index-fe6fd837.js → index-0b088451.js} +1 -1
  220. package/lib/esm/{input-utils-f4cafee1.js → input-utils-de45e099.js} +1 -1
  221. package/lib/esm/{keyboard-utils-6eb55cd5.js → keyboard-utils-88ea1007.js} +2 -1
  222. package/lib/esm/loader.js +2 -2
  223. package/lib/esm/themeable-component-e8fc98bf.js +13 -0
  224. package/lib/esm/{token-utils-e9a0cb88.js → token-utils-e9a69acf.js} +1 -1
  225. package/lib/esm/{tokens-57d98824.js → tokens-e110dc89.js} +0 -0
  226. package/lib/esm/{tokens.module-a13e9683.js → tokens.module-49cbf963.js} +0 -0
  227. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  228. package/lib/esm-es5/duet-alert.entry.js +1 -1
  229. package/lib/esm-es5/duet-badge.entry.js +1 -1
  230. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  231. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  232. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  233. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  234. package/lib/esm-es5/duet-card.entry.js +1 -1
  235. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  236. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  237. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  238. package/lib/esm-es5/duet-combobox.entry.js +4 -0
  239. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  240. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  241. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  242. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  243. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  244. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  245. package/lib/esm-es5/duet-footer.entry.js +1 -1
  246. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  247. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  248. package/lib/esm-es5/duet-hero.entry.js +1 -1
  249. package/lib/esm-es5/duet-icon.entry.js +1 -1
  250. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  251. package/lib/esm-es5/duet-layout.entry.js +1 -1
  252. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  253. package/lib/esm-es5/duet-modal.entry.js +1 -1
  254. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  255. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  256. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  257. package/lib/esm-es5/duet-progress.entry.js +1 -1
  258. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  259. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  260. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  261. package/lib/esm-es5/duet-select.entry.js +1 -1
  262. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  263. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  264. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  265. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  266. package/lib/esm-es5/duet-tray.entry.js +1 -1
  267. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  268. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  269. package/lib/esm-es5/duet.js +1 -1
  270. package/lib/esm-es5/focus-utils-b6b1e60d.js +4 -0
  271. package/lib/esm-es5/{index-fe6fd837.js → index-0b088451.js} +1 -1
  272. package/lib/esm-es5/input-utils-de45e099.js +4 -0
  273. package/lib/esm-es5/keyboard-utils-88ea1007.js +4 -0
  274. package/lib/esm-es5/loader.js +1 -1
  275. package/lib/esm-es5/themeable-component-e8fc98bf.js +4 -0
  276. package/lib/esm-es5/{token-utils-e9a0cb88.js → token-utils-e9a69acf.js} +1 -1
  277. package/lib/esm-es5/{tokens-57d98824.js → tokens-e110dc89.js} +0 -0
  278. package/lib/esm-es5/{tokens.module-a13e9683.js → tokens.module-49cbf963.js} +0 -0
  279. package/lib/html.html-data.json +56 -1
  280. package/lib/types/components/duet-combobox/duet-combobox-select-single.d.ts +8 -0
  281. package/lib/types/components/duet-combobox/duet-combobox-select.d.ts +14 -0
  282. package/lib/types/components/duet-combobox/duet-combobox.d.ts +131 -0
  283. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +4 -0
  284. package/lib/types/components/duet-footer/duet-footer.d.ts +4 -0
  285. package/lib/types/components/duet-header/duet-header.d.ts +8 -0
  286. package/lib/types/components/duet-input/duet-input.d.ts +17 -0
  287. package/lib/types/components.d.ts +115 -0
  288. package/package.json +7 -7
  289. package/lib/cjs/themeable-component-0c1be552.js +0 -12
  290. package/lib/duet/p-251ee915.system.entry.js +0 -4
  291. package/lib/duet/p-2759fa82.system.entry.js +0 -4
  292. package/lib/duet/p-2fd6f95a.system.js +0 -4
  293. package/lib/duet/p-35a8dcc6.entry.js +0 -4
  294. package/lib/duet/p-7385e892.entry.js +0 -4
  295. package/lib/duet/p-74780bca.system.js +0 -4
  296. package/lib/duet/p-898f30a5.js +0 -4
  297. package/lib/duet/p-9ad2878e.system.entry.js +0 -4
  298. package/lib/duet/p-9dfcd29a.js +0 -4
  299. package/lib/duet/p-a28cf57b.js +0 -4
  300. package/lib/duet/p-d1a4aa9c.entry.js +0 -4
  301. package/lib/duet/p-dc9de1e3.entry.js +0 -4
  302. package/lib/duet/p-efaa0c04.system.js +0 -4
  303. package/lib/esm/themeable-component-572685dd.js +0 -10
  304. package/lib/esm-es5/focus-utils-e649bb9d.js +0 -4
  305. package/lib/esm-es5/input-utils-f4cafee1.js +0 -4
  306. package/lib/esm-es5/keyboard-utils-6eb55cd5.js +0 -4
  307. package/lib/esm-es5/themeable-component-572685dd.js +0 -4
@@ -838,11 +838,23 @@ button {
838
838
  transition: 300ms ease;
839
839
  transform: scale(0.85) translateZ(0) translateY(-20px);
840
840
  }
841
+ .duet-header-dropdown .duet-header-dropdown-content.duet-header-session-items {
842
+ right: 0%;
843
+ left: auto;
844
+ min-width: 225px;
845
+ }
846
+ .duet-header-dropdown .duet-header-dropdown-content.duet-header-session-items .duet-header-session-label {
847
+ padding: 0 20px;
848
+ font-weight: 600;
849
+ }
841
850
  }
842
851
  @media (min-width: 64.0625em) {
843
852
  .duet-header-dropdown .duet-header-dropdown-content {
844
853
  min-width: 170px;
845
854
  }
855
+ .duet-header-dropdown .duet-header-dropdown-content.duet-header-session-items {
856
+ min-width: 225px;
857
+ }
846
858
  }
847
859
  .duet-header-dropdown .duet-header-dropdown-content.active {
848
860
  display: block;
@@ -1105,6 +1117,9 @@ button {
1105
1117
  .duet-header-multi-level-desktop-utils > :last-child::before {
1106
1118
  display: none;
1107
1119
  }
1120
+ .duet-header-multi-level-desktop-utils > :last-child.duet-header-dropdown .duet-header-button::before {
1121
+ display: none;
1122
+ }
1108
1123
  .duet-header-multi-level-desktop-utils .duet-header-dropdown {
1109
1124
  z-index: 400;
1110
1125
  }
@@ -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": {},
@@ -22,6 +22,14 @@ export class DuetInput {
22
22
  this.topCaptionPlaceholderId = createID("DuetCaptionPlaceholderTop");
23
23
  this.errorId = createID("DuetError");
24
24
  this.disallowPatternRegex = null;
25
+ /**
26
+ * Indicates the id of a component that describes the input.
27
+ */
28
+ this.accessibleDescribedBy = "";
29
+ /**
30
+ * Indicates value of any popup element associated with the input.
31
+ */
32
+ this.accessibleHasPopup = undefined;
25
33
  /**
26
34
  * Set the amount of time, in milliseconds, to wait to trigger the duetChange
27
35
  * event after each keystroke.
@@ -127,6 +135,25 @@ export class DuetInput {
127
135
  component: "duet-input",
128
136
  });
129
137
  };
138
+ /** Private functions
139
+ *
140
+ */
141
+ this.getDescribedBy = () => {
142
+ let describedBy = "";
143
+ if (this.isCaptionVisible && this.topCaptionId) {
144
+ describedBy = this.topCaptionId;
145
+ if (this.accessibleDescribedBy) {
146
+ describedBy += " " + this.accessibleDescribedBy;
147
+ }
148
+ }
149
+ else if (this.accessibleDescribedBy.length > 0) {
150
+ describedBy = this.accessibleDescribedBy;
151
+ }
152
+ else {
153
+ describedBy = undefined;
154
+ }
155
+ return describedBy;
156
+ };
130
157
  }
131
158
  disallowedPatternChange() {
132
159
  this.disallowPatternRegex = this.disallowPattern ? new RegExp(this.disallowPattern, "g") : null;
@@ -170,6 +197,17 @@ export class DuetInput {
170
197
  this.nativeInput.focus(options);
171
198
  }
172
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
+ }
173
211
  /**
174
212
  * render() function
175
213
  * Always the last one in the class.
@@ -206,7 +244,7 @@ export class DuetInput {
206
244
  disabled: this.disabled,
207
245
  "is-number": this.component === "number",
208
246
  "is-date": this.component === "date",
209
- }, 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.isCaptionVisible ? this.topCaptionId : ""} ${this.accessibleDescribedBy}`, 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)),
210
248
  !this.icon && this.type !== "text" && this.type !== "tel" && this.type !== "password" && (h("div", { class: "duet-input-icon" },
211
249
  h("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))),
212
250
  this.icon && (h("div", { class: "duet-input-icon" },
@@ -291,6 +329,23 @@ export class DuetInput {
291
329
  "attribute": "accessible-owns",
292
330
  "reflect": false
293
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
+ },
294
349
  "accessibleDescribedBy": {
295
350
  "type": "string",
296
351
  "mutable": false,
@@ -306,7 +361,26 @@ export class DuetInput {
306
361
  "text": "Indicates the id of a component that describes the input."
307
362
  },
308
363
  "attribute": "accessible-described-by",
309
- "reflect": false
364
+ "reflect": false,
365
+ "defaultValue": "\"\""
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"
310
384
  },
311
385
  "debounce": {
312
386
  "type": "number",
@@ -912,6 +986,22 @@ export class DuetInput {
912
986
  "text": "Sets focus on the specified `duet-input`. Use this method instead of the global\n`input.focus()`.",
913
987
  "tags": []
914
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
+ }
915
1005
  }
916
1006
  }; }
917
1007
  static get elementRef() { return "element"; }
@@ -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
@@ -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;