@duetds/components 5.3.5 → 5.4.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 (279) hide show
  1. package/hydrate/index.js +134 -96
  2. package/lib/cjs/duet-action-button.cjs.entry.js +25 -7
  3. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-button_2.cjs.entry.js +2 -2
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +2 -2
  9. package/lib/cjs/duet-card.cjs.entry.js +2 -2
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  12. package/lib/cjs/duet-collapsible.cjs.entry.js +2 -2
  13. package/lib/cjs/duet-combobox.cjs.entry.js +2 -2
  14. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  16. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-editable-table_3.cjs.entry.js +18 -13
  18. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-header_2.cjs.entry.js +51 -49
  23. package/lib/cjs/duet-hero.cjs.entry.js +4 -3
  24. package/lib/cjs/duet-icon.cjs.entry.js +2 -2
  25. package/lib/cjs/duet-input_2.cjs.entry.js +21 -4
  26. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-pagination_2.cjs.entry.js +2 -2
  32. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  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-84c29960.js → focus-utils-9226aef7.js} +1 -1
  46. package/lib/cjs/{index-772cc42f.js → index-60a8ec8a.js} +8 -1
  47. package/lib/cjs/{js-utils-be1d29ae.js → js-utils-134e0318.js} +11 -0
  48. package/lib/cjs/loader.cjs.js +2 -2
  49. package/lib/cjs/{token-utils-50a1f7e2.js → token-utils-fef5b4eb.js} +1 -0
  50. package/lib/collection/components/duet-action-button/duet-action-button.js +44 -8
  51. package/lib/collection/components/duet-choice-group/duet-choice-group.js +7 -1
  52. package/lib/collection/components/duet-collapsible/duet-collapsible.js +1 -1
  53. package/lib/collection/components/duet-header/duet-header-icon.js +1 -1
  54. package/lib/collection/components/duet-header/duet-header.css +69 -43
  55. package/lib/collection/components/duet-header/duet-header.js +117 -114
  56. package/lib/collection/components/duet-hero/duet-hero.js +13 -5
  57. package/lib/collection/components/duet-input/duet-input.js +21 -3
  58. package/lib/collection/components/duet-upload/duet-upload.js +12 -12
  59. package/lib/collection/components/duet-upload/upload-validators.js +6 -1
  60. package/lib/collection/utils/js-utils.js +11 -0
  61. package/lib/collection/utils/token-utils.js +1 -1
  62. package/lib/custom-elements-bundle/index.js +132 -73
  63. package/lib/duet/duet.esm.js +1 -1
  64. package/lib/duet/duet.js +1 -1
  65. package/lib/duet/p-07a2ad03.entry.js +4 -0
  66. package/lib/duet/{p-dbb4a588.js → p-0b3f675e.js} +0 -0
  67. package/lib/duet/{p-0b426a83.system.entry.js → p-0dbd00e1.system.entry.js} +1 -1
  68. package/lib/duet/p-12606a4b.entry.js +4 -0
  69. package/lib/duet/p-21321528.system.entry.js +4 -0
  70. package/lib/duet/{p-8f74030a.entry.js → p-28f87990.entry.js} +1 -1
  71. package/lib/duet/{p-4e8f57dd.entry.js → p-2ac07ac9.entry.js} +1 -1
  72. package/lib/duet/{p-05ff2672.entry.js → p-2b155bd9.entry.js} +1 -1
  73. package/lib/duet/{p-acaedb00.system.js → p-309e3417.system.js} +3 -3
  74. package/lib/duet/p-30fc343d.system.entry.js +4 -0
  75. package/lib/duet/{p-12b8cb2f.system.entry.js → p-322676e3.system.entry.js} +1 -1
  76. package/lib/duet/{p-c0d98307.system.entry.js → p-33a0c070.system.entry.js} +1 -1
  77. package/lib/duet/{p-92639d0b.system.js → p-34ea0849.system.js} +0 -0
  78. package/lib/duet/{p-7dfe1c16.entry.js → p-440e2c47.entry.js} +1 -1
  79. package/lib/duet/{p-e6fdaa31.entry.js → p-451adbf4.entry.js} +1 -1
  80. package/lib/duet/{p-3f50d9bd.system.entry.js → p-46b83696.system.entry.js} +1 -1
  81. package/lib/duet/{p-cdba4c82.entry.js → p-46d9a853.entry.js} +1 -1
  82. package/lib/duet/{p-4260e8b5.system.entry.js → p-48a036c1.system.entry.js} +1 -1
  83. package/lib/duet/{p-8a472df4.system.entry.js → p-4dd79e38.system.entry.js} +1 -1
  84. package/lib/duet/{p-9071d4e1.system.entry.js → p-526e6d8e.system.entry.js} +1 -1
  85. package/lib/duet/{p-e00170a2.system.entry.js → p-56a80c32.system.entry.js} +1 -1
  86. package/lib/duet/{p-dfa92326.entry.js → p-56f17656.entry.js} +1 -1
  87. package/lib/duet/{p-b88b18c3.entry.js → p-590e8508.entry.js} +1 -1
  88. package/lib/duet/{p-43c1dcf5.entry.js → p-5a5117d4.entry.js} +1 -1
  89. package/lib/duet/{p-64a691e3.entry.js → p-5c1646f2.entry.js} +1 -1
  90. package/lib/duet/p-5ea398eb.entry.js +4 -0
  91. package/lib/duet/{p-4903478e.entry.js → p-5f528fa2.entry.js} +1 -1
  92. package/lib/duet/p-6002f3d2.system.js +4 -0
  93. package/lib/duet/{p-e908bfdc.system.entry.js → p-62303524.system.entry.js} +1 -1
  94. package/lib/duet/{p-b972e7b7.system.entry.js → p-6255147e.system.entry.js} +1 -1
  95. package/lib/duet/{p-3f1e781d.system.entry.js → p-63aea0dc.system.entry.js} +1 -1
  96. package/lib/duet/{p-ba0a4b7e.system.entry.js → p-64cbe9b7.system.entry.js} +1 -1
  97. package/lib/duet/p-65821960.entry.js +4 -0
  98. package/lib/duet/p-675d713b.entry.js +4 -0
  99. package/lib/duet/{p-c069f560.entry.js → p-67734fad.entry.js} +1 -1
  100. package/lib/duet/{p-fab89c9d.system.entry.js → p-67ed94fa.system.entry.js} +1 -1
  101. package/lib/duet/{p-16bc9a7e.system.entry.js → p-6ab6ce4f.system.entry.js} +1 -1
  102. package/lib/duet/{p-083e39cc.entry.js → p-6c5d3def.entry.js} +1 -1
  103. package/lib/duet/{p-815f4a10.system.entry.js → p-6e3f764f.system.entry.js} +1 -1
  104. package/lib/duet/{p-bacb27a1.js → p-6e64cd02.js} +2 -2
  105. package/lib/duet/{p-e40b610d.entry.js → p-6f1d6649.entry.js} +1 -1
  106. package/lib/duet/{p-0d188b2d.entry.js → p-70e567e9.entry.js} +1 -1
  107. package/lib/duet/{p-6dd1cf98.entry.js → p-77e3591e.entry.js} +1 -1
  108. package/lib/duet/{p-9027d0a4.system.entry.js → p-79948b47.system.entry.js} +1 -1
  109. package/lib/duet/{p-442f1dd5.entry.js → p-7d0051ea.entry.js} +1 -1
  110. package/lib/duet/p-7dfc475d.entry.js +4 -0
  111. package/lib/duet/{p-b787e777.system.entry.js → p-80d16341.system.entry.js} +1 -1
  112. package/lib/duet/{p-85c68d48.system.entry.js → p-817ef07d.system.entry.js} +1 -1
  113. package/lib/duet/{p-35d6061d.system.entry.js → p-838ef01e.system.entry.js} +1 -1
  114. package/lib/duet/{p-8fa7559b.system.entry.js → p-84310e48.system.entry.js} +1 -1
  115. package/lib/duet/{p-631054f3.system.js → p-89f50fd8.system.js} +1 -1
  116. package/lib/duet/{p-8b7adbf6.system.entry.js → p-8bf92f1e.system.entry.js} +1 -1
  117. package/lib/duet/p-8e1cf2fb.system.entry.js +4 -0
  118. package/lib/duet/{p-20f4d5d2.system.entry.js → p-9205c79a.system.entry.js} +1 -1
  119. package/lib/duet/{p-100b6a91.entry.js → p-97130a4c.entry.js} +1 -1
  120. package/lib/duet/{p-c4b6bf46.entry.js → p-97631cdc.entry.js} +1 -1
  121. package/lib/duet/{p-f9045aab.system.entry.js → p-98ca5a08.system.entry.js} +2 -2
  122. package/lib/duet/p-99bf8545.js +4 -0
  123. package/lib/duet/{p-97bb6fdd.system.entry.js → p-9c9fbda5.system.entry.js} +1 -1
  124. package/lib/duet/{p-8eb6610c.system.entry.js → p-9df52009.system.entry.js} +1 -1
  125. package/lib/duet/{p-634fda0f.entry.js → p-a03485f8.entry.js} +1 -1
  126. package/lib/duet/p-a806d616.entry.js +4 -0
  127. package/lib/duet/{p-56ae348b.entry.js → p-a91bb73d.entry.js} +1 -1
  128. package/lib/duet/{p-e36b95e0.system.entry.js → p-ac86999f.system.entry.js} +1 -1
  129. package/lib/duet/{p-b48811b5.entry.js → p-aefb80e3.entry.js} +1 -1
  130. package/lib/duet/{p-7de54632.entry.js → p-b004cbd3.entry.js} +1 -1
  131. package/lib/duet/{p-3d27e5ed.system.entry.js → p-b28e6872.system.entry.js} +1 -1
  132. package/lib/duet/{p-923b03a6.system.entry.js → p-b2ac632f.system.entry.js} +1 -1
  133. package/lib/duet/{p-1a8dfe6e.system.entry.js → p-b70f2ae2.system.entry.js} +1 -1
  134. package/lib/duet/{p-f301004d.entry.js → p-bc24eeda.entry.js} +1 -1
  135. package/lib/duet/{p-5184e972.system.entry.js → p-bec4d094.system.entry.js} +1 -1
  136. package/lib/duet/{p-c9f704c9.entry.js → p-bf8f3b14.entry.js} +1 -1
  137. package/lib/duet/{p-01ccafd3.system.entry.js → p-c383ceb4.system.entry.js} +2 -2
  138. package/lib/duet/{p-411bec39.system.entry.js → p-c694e7fb.system.entry.js} +1 -1
  139. package/lib/duet/p-c918ce45.system.entry.js +4 -0
  140. package/lib/duet/{p-fdaaa3ad.entry.js → p-c9f244f6.entry.js} +1 -1
  141. package/lib/duet/{p-b74364d3.entry.js → p-d3d6e75d.entry.js} +1 -1
  142. package/lib/duet/p-de3c0f4d.js +4 -0
  143. package/lib/duet/{p-2553a64a.entry.js → p-dfd9a9ff.entry.js} +1 -1
  144. package/lib/duet/{p-36924c8f.entry.js → p-e3017ffc.entry.js} +1 -1
  145. package/lib/duet/{p-4fd4ddda.entry.js → p-e358c599.entry.js} +1 -1
  146. package/lib/duet/{p-d06f9b6c.entry.js → p-e5b22358.entry.js} +1 -1
  147. package/lib/duet/{p-f2dab640.system.entry.js → p-ea12c081.system.entry.js} +1 -1
  148. package/lib/duet/{p-ea806947.entry.js → p-ef2f6881.entry.js} +1 -1
  149. package/lib/duet/{p-4dcbaccf.system.entry.js → p-f2831cda.system.entry.js} +1 -1
  150. package/lib/duet/{p-0f144788.entry.js → p-f2dce86d.entry.js} +1 -1
  151. package/lib/duet/{p-86a47942.entry.js → p-f30eb0fd.entry.js} +1 -1
  152. package/lib/duet/{p-8708f306.system.entry.js → p-f661ebf9.system.entry.js} +1 -1
  153. package/lib/duet/{p-e980faf9.system.entry.js → p-f6f30fb7.system.entry.js} +1 -1
  154. package/lib/duet/{p-ff94713b.entry.js → p-faf6cfe8.entry.js} +1 -1
  155. package/lib/duet/{p-2d58c660.system.entry.js → p-fdb0277c.system.entry.js} +1 -1
  156. package/lib/duet/{p-8c282db8.system.js → p-fe03f359.system.js} +1 -1
  157. package/lib/duet/{p-7382c47e.system.entry.js → p-ffadc9ea.system.entry.js} +1 -1
  158. package/lib/esm/duet-action-button.entry.js +25 -7
  159. package/lib/esm/duet-alert.entry.js +1 -1
  160. package/lib/esm/duet-badge.entry.js +1 -1
  161. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  162. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  163. package/lib/esm/duet-button_2.entry.js +2 -2
  164. package/lib/esm/duet-caption_4.entry.js +2 -2
  165. package/lib/esm/duet-card.entry.js +2 -2
  166. package/lib/esm/duet-checkbox.entry.js +1 -1
  167. package/lib/esm/duet-choice_2.entry.js +2 -2
  168. package/lib/esm/duet-collapsible.entry.js +2 -2
  169. package/lib/esm/duet-combobox.entry.js +2 -2
  170. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  171. package/lib/esm/duet-date-picker.entry.js +2 -2
  172. package/lib/esm/duet-divider_2.entry.js +1 -1
  173. package/lib/esm/duet-editable-table_3.entry.js +18 -13
  174. package/lib/esm/duet-empty-state.entry.js +1 -1
  175. package/lib/esm/duet-fieldset.entry.js +1 -1
  176. package/lib/esm/duet-footer.entry.js +1 -1
  177. package/lib/esm/duet-grid_2.entry.js +1 -1
  178. package/lib/esm/duet-header_2.entry.js +51 -49
  179. package/lib/esm/duet-hero.entry.js +4 -3
  180. package/lib/esm/duet-icon.entry.js +2 -2
  181. package/lib/esm/duet-input_2.entry.js +21 -4
  182. package/lib/esm/duet-layout.entry.js +1 -1
  183. package/lib/esm/duet-list_2.entry.js +1 -1
  184. package/lib/esm/duet-modal.entry.js +2 -2
  185. package/lib/esm/duet-notification_2.entry.js +1 -1
  186. package/lib/esm/duet-number-input.entry.js +1 -1
  187. package/lib/esm/duet-pagination_2.entry.js +2 -2
  188. package/lib/esm/duet-progress.entry.js +1 -1
  189. package/lib/esm/duet-radio_2.entry.js +1 -1
  190. package/lib/esm/duet-range-slider.entry.js +1 -1
  191. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  192. package/lib/esm/duet-select.entry.js +1 -1
  193. package/lib/esm/duet-step_2.entry.js +1 -1
  194. package/lib/esm/duet-textarea.entry.js +1 -1
  195. package/lib/esm/duet-toggle.entry.js +1 -1
  196. package/lib/esm/duet-tooltip.entry.js +1 -1
  197. package/lib/esm/duet-tray.entry.js +1 -1
  198. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  199. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  200. package/lib/esm/duet.js +2 -2
  201. package/lib/esm/{focus-utils-07c543df.js → focus-utils-8dc04c1c.js} +1 -1
  202. package/lib/esm/{index-bcca1cb8.js → index-e1964887.js} +8 -2
  203. package/lib/esm/{js-utils-52e0944c.js → js-utils-fa98b8cd.js} +11 -0
  204. package/lib/esm/loader.js +2 -2
  205. package/lib/esm/{token-utils-1f9435bc.js → token-utils-df78f4d8.js} +1 -1
  206. package/lib/esm-es5/duet-action-button.entry.js +2 -2
  207. package/lib/esm-es5/duet-alert.entry.js +1 -1
  208. package/lib/esm-es5/duet-badge.entry.js +1 -1
  209. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  210. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  211. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  212. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  213. package/lib/esm-es5/duet-card.entry.js +1 -1
  214. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  215. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  216. package/lib/esm-es5/duet-collapsible.entry.js +2 -2
  217. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  218. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  219. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  220. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  221. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  222. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  223. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  224. package/lib/esm-es5/duet-footer.entry.js +1 -1
  225. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  226. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  227. package/lib/esm-es5/duet-hero.entry.js +1 -1
  228. package/lib/esm-es5/duet-icon.entry.js +1 -1
  229. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  230. package/lib/esm-es5/duet-layout.entry.js +1 -1
  231. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  232. package/lib/esm-es5/duet-modal.entry.js +1 -1
  233. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  234. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  235. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  236. package/lib/esm-es5/duet-progress.entry.js +1 -1
  237. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  238. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  239. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  240. package/lib/esm-es5/duet-select.entry.js +1 -1
  241. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  242. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  243. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  244. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  245. package/lib/esm-es5/duet-tray.entry.js +1 -1
  246. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  247. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  248. package/lib/esm-es5/duet.js +1 -1
  249. package/lib/esm-es5/focus-utils-8dc04c1c.js +4 -0
  250. package/lib/esm-es5/{index-bcca1cb8.js → index-e1964887.js} +3 -3
  251. package/lib/esm-es5/{js-utils-52e0944c.js → js-utils-fa98b8cd.js} +0 -0
  252. package/lib/esm-es5/loader.js +1 -1
  253. package/lib/esm-es5/token-utils-df78f4d8.js +4 -0
  254. package/lib/types/components/duet-action-button/duet-action-button.d.ts +12 -4
  255. package/lib/types/components/duet-header/duet-header-icon.d.ts +1 -0
  256. package/lib/types/components/duet-header/duet-header.d.ts +2 -2
  257. package/lib/types/components/duet-hero/duet-hero.d.ts +4 -0
  258. package/lib/types/components/duet-input/duet-input.d.ts +2 -1
  259. package/lib/types/components/duet-upload/duet-upload.d.ts +1 -2
  260. package/lib/types/components.d.ts +17 -9
  261. package/lib/types/utils/js-utils.d.ts +11 -0
  262. package/lib/types/utils/token-utils.d.ts +1 -0
  263. package/package.json +5 -5
  264. package/lib/duet/p-1717ed62.entry.js +0 -4
  265. package/lib/duet/p-32dd246d.entry.js +0 -4
  266. package/lib/duet/p-35159c88.system.entry.js +0 -4
  267. package/lib/duet/p-61507bc8.entry.js +0 -4
  268. package/lib/duet/p-6190e2d6.system.js +0 -4
  269. package/lib/duet/p-661f842b.entry.js +0 -4
  270. package/lib/duet/p-89f53f18.system.entry.js +0 -4
  271. package/lib/duet/p-909aaac4.entry.js +0 -4
  272. package/lib/duet/p-9cca0bb4.js +0 -4
  273. package/lib/duet/p-9df4bfa0.system.entry.js +0 -4
  274. package/lib/duet/p-a818e289.entry.js +0 -4
  275. package/lib/duet/p-c60f00e7.system.entry.js +0 -4
  276. package/lib/duet/p-ce276fc8.js +0 -4
  277. package/lib/duet/p-dbb2579c.entry.js +0 -4
  278. package/lib/esm-es5/focus-utils-07c543df.js +0 -4
  279. package/lib/esm-es5/token-utils-1f9435bc.js +0 -4
@@ -7,7 +7,7 @@ import { createID } from "../../utils/create-id";
7
7
  import { debounce } from "../../utils/js-utils";
8
8
  import { isKeyboardClick } from "../../utils/keyboard-utils";
9
9
  import { getLocaleString } from "../../utils/language-utils";
10
- import { getColorByName, shadeRGBColor } from "../../utils/token-utils";
10
+ import { capitalizeFirstLetter, getColorByName, shadeRGBColor } from "../../utils/token-utils";
11
11
  /**
12
12
  * @slot default - slot inside an invisible element, this can be used to enhance accessibility
13
13
  * @part button - this part enables style overrides for the button
@@ -15,6 +15,7 @@ import { getColorByName, shadeRGBColor } from "../../utils/token-utils";
15
15
  */
16
16
  export class DuetActionButton {
17
17
  constructor() {
18
+ this.listId = createID("duet-action-button");
18
19
  this.numbersStore = "";
19
20
  /**
20
21
  * Theme of the pagination.
@@ -62,6 +63,13 @@ export class DuetActionButton {
62
63
  * to $size-icon-medium on mobile viewports. Example: "color-primary".
63
64
  */
64
65
  this.background = "";
66
+ /**
67
+ * Title of the action button (shows as DOM tooltip when hovering)
68
+ * if set to true, this will try to add a best-guess title based on action-name
69
+ * if set to a string the string is used
70
+ * if set to false nothing is set
71
+ */
72
+ this.accessibleTitle = true;
65
73
  /**
66
74
  * Described By id
67
75
  */
@@ -79,7 +87,7 @@ export class DuetActionButton {
79
87
  */
80
88
  this.accessibleDescription = undefined;
81
89
  /**
82
- * Default pagination labels
90
+ * Default accessible labels
83
91
  */
84
92
  this.accessibleLabelsDefaults = {
85
93
  en: {
@@ -93,14 +101,13 @@ export class DuetActionButton {
93
101
  },
94
102
  };
95
103
  /**
96
- * Default pagination labels
104
+ * Default accessible labels
97
105
  */
98
106
  this.accessibleLabels = getLocaleString(this.accessibleLabelsDefaults);
99
107
  /**
100
108
  * Used to indicate which dom element with ID this element controls
101
109
  */
102
110
  this.accessibleControls = "";
103
- this.listId = createID("duet-action-button");
104
111
  /**
105
112
  * Private methods.
106
113
  */
@@ -122,6 +129,17 @@ export class DuetActionButton {
122
129
  this.emitPageEvent(e);
123
130
  }
124
131
  }
132
+ //return readable title for the action-button
133
+ getTitle() {
134
+ let titleString = "";
135
+ if (typeof this.accessibleTitle === "string") {
136
+ titleString = this.accessibleTitle;
137
+ }
138
+ if (this.accessibleTitle === true) {
139
+ titleString = capitalizeFirstLetter(`${this.actionName}`);
140
+ }
141
+ return titleString;
142
+ }
125
143
  //set update current when mouse click on page number
126
144
  async onMouseHandler(e) {
127
145
  e.preventDefault();
@@ -169,7 +187,7 @@ export class DuetActionButton {
169
187
  "duet-action-button": true,
170
188
  "duet-action-button--disabled": this.disabled,
171
189
  [`duet-action-button--${this.theme}`]: this.theme !== "",
172
- }, type: "button", onClick: e => this.onMouseHandler(e), "aria-label": this.accessibleLabels.label, "aria-labelledby": this.accessibleLabelledBy, "aria-description": this.accessibleDescription, "aria-describedby": this.accessibleDescribedBy, "aria-details": this.accessibleDetails, "aria-controls": this.accessibleControls },
190
+ }, type: "button", onClick: e => this.onMouseHandler(e), "aria-label": this.accessibleLabels.label, "aria-labelledby": this.accessibleLabelledBy, "aria-description": this.accessibleDescription, "aria-describedby": this.accessibleDescribedBy, "aria-details": this.accessibleDetails, "aria-controls": this.accessibleControls, title: this.getTitle() },
173
191
  h("duet-icon", { part: "icon", name: this.iconName, color: this.iconColor, margin: "none", size: this.iconSize }),
174
192
  h("duet-visually-hidden", null,
175
193
  h("slot", null)))));
@@ -386,6 +404,24 @@ export class DuetActionButton {
386
404
  "reflect": false,
387
405
  "defaultValue": "\"\""
388
406
  },
407
+ "accessibleTitle": {
408
+ "type": "any",
409
+ "mutable": false,
410
+ "complexType": {
411
+ "original": "string | boolean",
412
+ "resolved": "boolean | string",
413
+ "references": {}
414
+ },
415
+ "required": false,
416
+ "optional": false,
417
+ "docs": {
418
+ "tags": [],
419
+ "text": "Title of the action button (shows as DOM tooltip when hovering)\nif set to true, this will try to add a best-guess title based on action-name\nif set to a string the string is used\nif set to false nothing is set"
420
+ },
421
+ "attribute": "title",
422
+ "reflect": false,
423
+ "defaultValue": "true"
424
+ },
389
425
  "accessibleDescribedBy": {
390
426
  "type": "string",
391
427
  "mutable": false,
@@ -475,7 +511,7 @@ export class DuetActionButton {
475
511
  "optional": false,
476
512
  "docs": {
477
513
  "tags": [],
478
- "text": "Default pagination labels"
514
+ "text": "Default accessible labels"
479
515
  },
480
516
  "defaultValue": "{\n en: {\n label: \"Click to activate action\",\n },\n fi: {\n label: \"Klikkaa toiminnon aktivointiin\",\n },\n sv: {\n label: \"Klicka f\u00F6r att aktivera \u00E5tg\u00E4rd\",\n },\n }"
481
517
  },
@@ -495,7 +531,7 @@ export class DuetActionButton {
495
531
  "optional": false,
496
532
  "docs": {
497
533
  "tags": [],
498
- "text": "Default pagination labels"
534
+ "text": "Default accessible labels"
499
535
  },
500
536
  "defaultValue": "getLocaleString(\n this.accessibleLabelsDefaults\n )"
501
537
  },
@@ -529,7 +565,7 @@ export class DuetActionButton {
529
565
  "composed": true,
530
566
  "docs": {
531
567
  "tags": [],
532
- "text": "Emitted a page selection has been made"
568
+ "text": "Emitted when an action has been invoked"
533
569
  },
534
570
  "complexType": {
535
571
  "original": "DuetActionButtonEvent",
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { Component, Element, h, Host, Prop, Watch } from "@stencil/core";
4
+ import { Build, Component, Element, h, Host, Prop, Watch } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
6
  import { findCheckedOption, watchForOptions } from "../../utils/watch-options";
7
7
  export class DuetChoiceGroup {
@@ -69,6 +69,9 @@ export class DuetChoiceGroup {
69
69
  * Component lifecycle events.
70
70
  */
71
71
  async connectedCallback() {
72
+ if (Build.isServer) {
73
+ return;
74
+ }
72
75
  const el = this.element;
73
76
  if (this.value === undefined) {
74
77
  const choice = findCheckedOption(el, ":scope > duet-choice");
@@ -92,6 +95,9 @@ export class DuetChoiceGroup {
92
95
  this.updateChoices();
93
96
  }
94
97
  disconnectedCallback() {
98
+ if (Build.isServer) {
99
+ return;
100
+ }
95
101
  if (this.mutationO) {
96
102
  this.mutationO.disconnect();
97
103
  this.mutationO = undefined;
@@ -137,7 +137,7 @@ export class DuetCollapsible {
137
137
  h("slot", null))));
138
138
  }
139
139
  static get is() { return "duet-collapsible"; }
140
- static get encapsulation() { return "shadow"; }
140
+ static get encapsulation() { return "scoped"; }
141
141
  static get originalStyleUrls() { return {
142
142
  "$": ["duet-collapsible.scss"]
143
143
  }; }
@@ -4,6 +4,6 @@
4
4
  import { h } from "@stencil/core";
5
5
  export const DuetHeaderIcon = (props, _children) => {
6
6
  const iconSize = props.iconSize ? props.iconSize : "x-small";
7
- return (h("span", { class: "duet-header-icon" },
7
+ return (h("span", { class: `duet-header-icon ${props.class ? props.class : ""}` },
8
8
  h("duet-icon", { margin: "none", size: iconSize, icon: props.icon, color: "currentColor" })));
9
9
  };
@@ -39,12 +39,12 @@
39
39
  }
40
40
 
41
41
  @supports (position: -webkit-sticky) {
42
- :host(.duet-header-multi-level-desktop-variation) {
42
+ :host(.duet-header-multi-level-variation) {
43
43
  top: 0;
44
44
  }
45
45
  }
46
46
  @supports (position: sticky) {
47
- :host(.duet-header-multi-level-desktop-variation) {
47
+ :host(.duet-header-multi-level-variation) {
48
48
  top: 0;
49
49
  }
50
50
  }
@@ -578,6 +578,20 @@ button {
578
578
  color: #c60c30;
579
579
  }
580
580
  }
581
+ .duet-header-button.duet-header-logout .duet-header-icon.mobile {
582
+ display: block;
583
+ }
584
+ .duet-header-button.duet-header-logout .duet-header-icon.desktop {
585
+ display: none;
586
+ }
587
+ @media (min-width: 62em) {
588
+ .duet-header-button.duet-header-logout .duet-header-icon.mobile {
589
+ display: none;
590
+ }
591
+ .duet-header-button.duet-header-logout .duet-header-icon.desktop {
592
+ display: block;
593
+ }
594
+ }
581
595
  .duet-header-utils .duet-header-button.duet-header-logout {
582
596
  align-self: center;
583
597
  justify-content: center;
@@ -1011,61 +1025,73 @@ button {
1011
1025
  opacity: 1;
1012
1026
  }
1013
1027
 
1014
- .duet-header-multi-level-desktop {
1028
+ @media (min-width: 62em) {
1029
+ .duet-header-items-have-sub-items {
1030
+ display: none;
1031
+ }
1032
+ }
1033
+
1034
+ .duet-header-multi-level {
1035
+ display: none;
1015
1036
  height: 6rem;
1016
1037
  }
1017
- .duet-header-multi-level-desktop .duet-header-top {
1038
+ @media (min-width: 62em) {
1039
+ .duet-header-multi-level {
1040
+ display: block;
1041
+ }
1042
+ }
1043
+ .duet-header-multi-level .duet-header-top {
1018
1044
  justify-content: space-between;
1019
1045
  height: 6rem;
1020
1046
  }
1021
- .duet-header-multi-level-desktop .duet-header-button {
1047
+ .duet-header-multi-level .duet-header-button {
1022
1048
  height: 6rem;
1023
1049
  }
1024
- .duet-header-multi-level-desktop .logo-and-segment {
1050
+ .duet-header-multi-level .logo-and-segment {
1025
1051
  display: flex;
1026
1052
  flex-basis: 0;
1027
1053
  flex-direction: column;
1028
1054
  flex-grow: 1;
1029
1055
  padding-top: 1rem;
1030
1056
  }
1031
- .duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown {
1057
+ .duet-header-multi-level .logo-and-segment .duet-header-dropdown {
1032
1058
  z-index: 400;
1033
1059
  margin-left: 2rem;
1034
1060
  }
1035
- .duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content {
1061
+ .duet-header-multi-level .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content {
1036
1062
  background: #f3f9fc;
1037
1063
  }
1038
- .duet-header-multi-level-desktop .logo-and-segment button {
1064
+ .duet-header-multi-level .logo-and-segment button {
1039
1065
  align-items: flex-start;
1040
1066
  height: 2rem;
1041
1067
  font-weight: 600;
1042
1068
  line-height: 1rem;
1043
1069
  }
1044
- .duet-header-multi-level-desktop .logo-and-segment button::before {
1070
+ .duet-header-multi-level .logo-and-segment button::before {
1045
1071
  display: none;
1046
1072
  }
1047
- .duet-header-multi-level-desktop .logo-and-segment .duet-header-caret {
1073
+ .duet-header-multi-level .logo-and-segment .duet-header-caret {
1048
1074
  top: 25%;
1049
1075
  }
1050
- .duet-header-multi-level-desktop-nav {
1076
+ .duet-header-multi-level-nav {
1051
1077
  display: flex;
1052
1078
  }
1053
- .duet-header-multi-level-desktop-nav .duet-header-dropdown {
1079
+ .duet-header-multi-level-nav .duet-header-dropdown {
1054
1080
  position: static;
1055
1081
  }
1056
- .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle {
1082
+ .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-toggle {
1057
1083
  z-index: 400;
1058
1084
  padding-right: 1rem;
1059
1085
  font-size: 1rem;
1060
1086
  font-weight: 600;
1061
1087
  }
1062
- .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active {
1088
+ .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-toggle.active {
1063
1089
  color: #0077b3;
1064
1090
  }
1065
- .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active:not(.open) .duet-header-caret {
1091
+ .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-toggle.active:not(.open) .duet-header-caret {
1066
1092
  transform: translateY(-50%) rotate(0deg);
1067
1093
  }
1068
- .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content {
1094
+ .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-content {
1069
1095
  z-index: 399;
1070
1096
  display: flex;
1071
1097
  justify-content: center;
@@ -1078,7 +1104,7 @@ button {
1078
1104
  box-shadow: 0 2px 6px 0 rgba(0, 41, 77, 0.07);
1079
1105
  transition: none;
1080
1106
  }
1081
- .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a {
1107
+ .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-content a {
1082
1108
  position: relative;
1083
1109
  display: flex;
1084
1110
  flex-direction: column;
@@ -1090,7 +1116,7 @@ button {
1090
1116
  padding: 0 1rem !important;
1091
1117
  font-weight: 600;
1092
1118
  }
1093
- .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after {
1119
+ .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-content a::after {
1094
1120
  position: absolute;
1095
1121
  top: auto;
1096
1122
  bottom: 0;
@@ -1103,82 +1129,82 @@ button {
1103
1129
  transition: 300ms ease;
1104
1130
  transform: translateY(3px);
1105
1131
  }
1106
- .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active {
1132
+ .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-content a.active {
1107
1133
  font-weight: 600;
1108
1134
  color: #0077b3;
1109
1135
  background: none;
1110
1136
  }
1111
- .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active::after {
1137
+ .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-content a.active::after {
1112
1138
  transform: translateY(0);
1113
1139
  }
1114
- .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a .duet-header-icon {
1140
+ .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-content a .duet-header-icon {
1115
1141
  margin: 0;
1116
1142
  }
1117
- .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content .duet-header-badge {
1143
+ .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-content .duet-header-badge {
1118
1144
  position: absolute;
1119
1145
  margin-top: -2rem;
1120
1146
  margin-right: -2.25rem;
1121
1147
  }
1122
- .duet-header-multi-level-desktop-nav button::before {
1148
+ .duet-header-multi-level-nav button::before {
1123
1149
  display: none;
1124
1150
  }
1125
- .duet-header-multi-level-desktop-nav .duet-header-caret {
1151
+ .duet-header-multi-level-nav .duet-header-caret {
1126
1152
  right: 1%;
1127
1153
  }
1128
- .duet-header-multi-level-desktop-utils {
1154
+ .duet-header-multi-level-utils {
1129
1155
  display: flex;
1130
1156
  flex-basis: 0;
1131
1157
  flex-grow: 1;
1132
1158
  justify-content: flex-end;
1133
1159
  }
1134
- .duet-header-multi-level-desktop-utils > :last-child::before {
1160
+ .duet-header-multi-level-utils > :last-child::before {
1135
1161
  display: none;
1136
1162
  }
1137
- .duet-header-multi-level-desktop-utils > :last-child.duet-header-dropdown .duet-header-button::before {
1163
+ .duet-header-multi-level-utils > :last-child.duet-header-dropdown .duet-header-button::before {
1138
1164
  display: none;
1139
1165
  }
1140
- .duet-header-multi-level-desktop-utils .duet-header-dropdown {
1166
+ .duet-header-multi-level-utils .duet-header-dropdown {
1141
1167
  z-index: 400;
1142
1168
  }
1143
- .duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content {
1169
+ .duet-header-multi-level-utils .duet-header-dropdown .duet-header-dropdown-content {
1144
1170
  background: #f3f9fc;
1145
1171
  }
1146
- .duet-header-multi-level-desktop-utils .duet-header-button-label,
1147
- .duet-header-multi-level-desktop-utils .duet-header-dropdown-label {
1172
+ .duet-header-multi-level-utils .duet-header-button-label,
1173
+ .duet-header-multi-level-utils .duet-header-dropdown-label {
1148
1174
  display: none;
1149
1175
  }
1150
1176
  @media (min-width: 64.0625em) {
1151
- .duet-header-multi-level-desktop-utils .duet-header-button-label,
1152
- .duet-header-multi-level-desktop-utils .duet-header-dropdown-label {
1177
+ .duet-header-multi-level-utils .duet-header-button-label,
1178
+ .duet-header-multi-level-utils .duet-header-dropdown-label {
1153
1179
  display: initial;
1154
1180
  }
1155
1181
  }
1156
- .duet-header-multi-level-desktop .duet-theme-turva .logo-and-segment .duet-header-dropdown {
1182
+ .duet-header-multi-level .duet-theme-turva .logo-and-segment .duet-header-dropdown {
1157
1183
  margin-left: 0;
1158
1184
  }
1159
- .duet-header-multi-level-desktop .duet-theme-turva .logo-and-segment .duet-header-dropdown-toggle {
1185
+ .duet-header-multi-level .duet-theme-turva .logo-and-segment .duet-header-dropdown-toggle {
1160
1186
  padding-left: 0.5rem;
1161
1187
  }
1162
- .duet-header-multi-level-desktop .duet-theme-turva .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content {
1188
+ .duet-header-multi-level .duet-theme-turva .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content {
1163
1189
  background: #f5f5f7;
1164
1190
  }
1165
- .duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-utils > :nth-last-child(2).duet-header-dropdown .duet-header-button::before {
1191
+ .duet-header-multi-level .duet-theme-turva .duet-header-multi-level-utils > :nth-last-child(2).duet-header-dropdown .duet-header-button::before {
1166
1192
  display: none;
1167
1193
  }
1168
- .duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active {
1194
+ .duet-header-multi-level .duet-theme-turva .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-toggle.active {
1169
1195
  color: #c60c30;
1170
1196
  }
1171
- .duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content {
1197
+ .duet-header-multi-level .duet-theme-turva .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-content {
1172
1198
  background: #f5f5f7;
1173
1199
  border-color: #e4e4e6;
1174
1200
  }
1175
- .duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after {
1201
+ .duet-header-multi-level .duet-theme-turva .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-content a::after {
1176
1202
  background: #c60c30;
1177
1203
  }
1178
- .duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active {
1204
+ .duet-header-multi-level .duet-theme-turva .duet-header-multi-level-nav .duet-header-dropdown .duet-header-dropdown-content a.active {
1179
1205
  color: #c60c30;
1180
1206
  background: none;
1181
1207
  }
1182
- .duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content {
1208
+ .duet-header-multi-level .duet-theme-turva .duet-header-multi-level-utils .duet-header-dropdown .duet-header-dropdown-content {
1183
1209
  background: #f5f5f7;
1184
1210
  }