@duetds/components 4.32.0 → 4.34.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 (388) hide show
  1. package/hydrate/index.js +2367 -244
  2. package/lib/cjs/{dom-a28e5c5f.js → dom-52a4f07a.js} +1 -1
  3. package/lib/cjs/duet-alert.cjs.entry.js +2 -2
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-button_2.cjs.entry.js +4 -4
  6. package/lib/cjs/duet-caption_4.cjs.entry.js +18 -11
  7. package/lib/cjs/duet-card.cjs.entry.js +3 -3
  8. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  9. package/lib/cjs/duet-choice_2.cjs.entry.js +39 -18
  10. package/lib/cjs/duet-collapsible.cjs.entry.js +5 -450
  11. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-date-picker.cjs.entry.js +7 -7
  13. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-editable-table-button.cjs.entry.js +96 -0
  15. package/lib/cjs/duet-editable-table_4.cjs.entry.js +1520 -0
  16. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-footer.cjs.entry.js +3 -3
  19. package/lib/cjs/duet-grid_2.cjs.entry.js +69 -4
  20. package/lib/cjs/duet-header_2.cjs.entry.js +216 -49
  21. package/lib/cjs/duet-hero.cjs.entry.js +2 -2
  22. package/lib/cjs/duet-icon.cjs.entry.js +8 -6
  23. package/lib/cjs/duet-input_2.cjs.entry.js +8 -9
  24. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-list_2.cjs.entry.js +3 -3
  26. package/lib/cjs/duet-modal.cjs.entry.js +3 -3
  27. package/lib/cjs/duet-notification_2.cjs.entry.js +3 -3
  28. package/lib/cjs/duet-number-input.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-progress.cjs.entry.js +75 -0
  30. package/lib/cjs/duet-radio_2.cjs.entry.js +2 -2
  31. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  32. package/lib/cjs/duet-select.cjs.entry.js +5 -5
  33. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-tab_2.cjs.entry.js +3 -3
  35. package/lib/cjs/duet-textarea.cjs.entry.js +5 -5
  36. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-tooltip.cjs.entry.js +2 -2
  38. package/lib/cjs/duet-tray.cjs.entry.js +3 -3
  39. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +100 -0
  40. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  41. package/lib/cjs/duet.cjs.js +4 -4
  42. package/lib/cjs/{focus-utils-55b5a616.js → focus-utils-480ea4e0.js} +1 -1
  43. package/lib/cjs/form-search-d61b2843.js +8 -0
  44. package/lib/cjs/{index-03ed1f55.js → index-6966a494.js} +5 -2
  45. package/lib/cjs/{language-utils-48b8860b.js → language-utils-aa282901.js} +6 -2
  46. package/lib/cjs/loader.cjs.js +3 -3
  47. package/lib/cjs/{shadow-css-6560c90c.js → shadow-css-e1b62a99.js} +9 -10
  48. package/lib/cjs/token-utils-05bd23b4.js +77 -0
  49. package/lib/cjs/tokens-8596cece.js +459 -0
  50. package/lib/cjs/{tokens.module-53b3bd92.js → tokens.module-6b2df1c2.js} +2 -0
  51. package/lib/cjs/{watch-options-3877c082.js → watch-options-d88afac0.js} +29 -6
  52. package/lib/collection/collection-manifest.json +17 -3
  53. package/lib/collection/components/duet-checkbox/duet-checkbox.css +1 -1
  54. package/lib/collection/components/duet-choice/duet-choice.js +94 -21
  55. package/lib/collection/components/duet-collapsible/duet-collapsible.js +4 -1
  56. package/lib/collection/components/duet-date-picker/duet-date-picker.js +9 -9
  57. package/lib/collection/components/duet-editable-table/duet-editable-table-button.css +32 -0
  58. package/lib/collection/components/duet-editable-table/duet-editable-table-button.js +225 -0
  59. package/lib/collection/components/duet-editable-table/duet-editable-table-item.css +36 -0
  60. package/lib/collection/components/duet-editable-table/duet-editable-table-item.js +225 -0
  61. package/lib/collection/components/duet-editable-table/duet-editable-table-tabledata.js +13 -0
  62. package/lib/collection/components/duet-editable-table/duet-editable-table.css +16 -0
  63. package/lib/collection/components/duet-editable-table/duet-editable-table.js +404 -0
  64. package/lib/collection/components/duet-footer/duet-footer.css +1 -0
  65. package/lib/collection/components/duet-grid/duet-grid.js +74 -6
  66. package/lib/collection/components/duet-header/duet-header-dropdown.js +27 -0
  67. package/lib/collection/components/duet-header/duet-header-hamburger.js +9 -0
  68. package/lib/collection/components/duet-header/duet-header-icon.js +9 -0
  69. package/lib/collection/components/duet-header/duet-header.css +272 -39
  70. package/lib/collection/components/duet-header/duet-header.js +310 -122
  71. package/lib/collection/components/duet-heading/duet-heading.css +3 -0
  72. package/lib/collection/components/duet-heading/duet-heading.js +7 -6
  73. package/lib/collection/components/duet-icon/duet-icon.js +5 -3
  74. package/lib/collection/components/duet-input/duet-input.css +15 -0
  75. package/lib/collection/components/duet-input/duet-input.js +4 -4
  76. package/lib/collection/components/duet-link/duet-link.js +4 -1
  77. package/lib/collection/components/duet-list-item/duet-list-item.css +1 -1
  78. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.css +4 -3
  79. package/lib/collection/components/duet-paragraph/duet-paragraph.css +6 -0
  80. package/lib/collection/components/duet-paragraph/duet-paragraph.js +34 -3
  81. package/lib/collection/components/duet-progress/duet-progress.css +103 -0
  82. package/lib/collection/components/duet-progress/duet-progress.js +240 -0
  83. package/lib/collection/components/duet-select/duet-select.css +15 -0
  84. package/lib/collection/components/duet-select/duet-select.js +3 -3
  85. package/lib/collection/components/duet-tab-group/duet-tab-group.css +2 -2
  86. package/lib/collection/components/duet-table/duet-table.css +42 -17
  87. package/lib/collection/components/duet-table/duet-table.js +2 -2
  88. package/lib/collection/components/duet-textarea/duet-textarea.css +19 -0
  89. package/lib/collection/components/duet-textarea/duet-textarea.js +5 -4
  90. package/lib/collection/components/duet-upload/duet-upload.css +64 -0
  91. package/lib/collection/components/duet-upload/duet-upload.js +1885 -0
  92. package/lib/collection/components/duet-upload/errorcodes.utils.js +32 -0
  93. package/lib/collection/components/duet-upload/mock.helpers.js +91 -0
  94. package/lib/collection/components/duet-upload/upload-editable-item-error.js +16 -0
  95. package/lib/collection/components/duet-upload/upload-editable-item-inprogres.js +8 -0
  96. package/lib/collection/components/duet-upload/upload-editable-item-success.js +30 -0
  97. package/lib/collection/components/duet-upload/upload-validators.js +93 -0
  98. package/lib/collection/components/duet-upload/upload.helpers.js +13 -0
  99. package/lib/collection/components/duet-upload/xhr.helpers.js +30 -0
  100. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +217 -0
  101. package/lib/collection/utils/js-utils.js +12 -0
  102. package/lib/collection/utils/language-utils.js +6 -3
  103. package/lib/collection/utils/template-utils.js +33 -0
  104. package/lib/collection/utils/token-utils.js +67 -14
  105. package/lib/collection/utils/watch-options.js +35 -6
  106. package/lib/custom-elements-bundle/index.d.ts +36 -0
  107. package/lib/custom-elements-bundle/index.js +2309 -334
  108. package/lib/duet/duet.esm.js +1 -1
  109. package/lib/duet/duet.js +1 -1
  110. package/lib/duet/{p-92103298.system.entry.js → p-07f43530.system.entry.js} +1 -1
  111. package/lib/duet/{p-cc0bd28f.system.entry.js → p-093bca2f.system.entry.js} +1 -1
  112. package/lib/duet/{p-a678da8c.entry.js → p-0aaf86ba.entry.js} +1 -1
  113. package/lib/duet/{p-94a5fd74.system.entry.js → p-0b0a05ed.system.entry.js} +1 -1
  114. package/lib/duet/{p-00eac879.system.entry.js → p-0be1c660.system.entry.js} +1 -1
  115. package/lib/duet/{p-3b3bac3f.system.entry.js → p-0d66e11b.system.entry.js} +1 -1
  116. package/lib/duet/{p-7331f2fe.system.entry.js → p-0de430e1.system.entry.js} +1 -1
  117. package/lib/duet/{p-3618aaee.entry.js → p-0ef8d711.entry.js} +1 -1
  118. package/lib/duet/p-12721178.js +4 -0
  119. package/lib/duet/{p-c19094dd.entry.js → p-12a08d77.entry.js} +1 -1
  120. package/lib/duet/p-15c9a17c.entry.js +4 -0
  121. package/lib/duet/{p-9cdd361e.js → p-183726f7.js} +0 -0
  122. package/lib/duet/{p-b75c5f13.entry.js → p-18c3eb54.entry.js} +1 -1
  123. package/lib/duet/{p-9542c540.entry.js → p-1b591fa4.entry.js} +1 -1
  124. package/lib/duet/{p-f364ce8b.system.entry.js → p-1bd0f4eb.system.entry.js} +1 -1
  125. package/lib/duet/p-2764f081.js +4 -0
  126. package/lib/duet/p-27bd8744.system.entry.js +4 -0
  127. package/lib/duet/p-289a31cb.entry.js +4 -0
  128. package/lib/duet/{p-8c511832.system.entry.js → p-29b352db.system.entry.js} +1 -1
  129. package/lib/duet/p-2a00f231.system.entry.js +4 -0
  130. package/lib/duet/p-3215e07e.system.entry.js +4 -0
  131. package/lib/duet/{p-ed479d09.system.entry.js → p-338b9955.system.entry.js} +1 -1
  132. package/lib/duet/{p-8740fa38.entry.js → p-33de1029.entry.js} +1 -1
  133. package/lib/duet/p-34ebff3b.entry.js +4 -0
  134. package/lib/duet/{p-b6a0caf8.system.entry.js → p-379d416f.system.entry.js} +1 -1
  135. package/lib/duet/{p-0b9b6393.entry.js → p-39a12eb9.entry.js} +1 -1
  136. package/lib/duet/{p-8652a7ab.system.entry.js → p-39fd8b43.system.entry.js} +1 -1
  137. package/lib/duet/{p-ffc2ffff.entry.js → p-3bafdf7c.entry.js} +1 -1
  138. package/lib/duet/{p-4fcbcecd.system.entry.js → p-3c1ce7e2.system.entry.js} +1 -1
  139. package/lib/duet/p-3da6b84e.entry.js +4 -0
  140. package/lib/duet/p-43c49a72.entry.js +4 -0
  141. package/lib/duet/{p-9f0f5674.entry.js → p-44f4b8ff.entry.js} +1 -1
  142. package/lib/duet/{p-b0bbbdba.system.entry.js → p-4c5ac0c2.system.entry.js} +1 -1
  143. package/lib/duet/p-50b4fb2c.js +4 -0
  144. package/lib/duet/p-51f7ae72.entry.js +4 -0
  145. package/lib/duet/p-52621211.js +15 -0
  146. package/lib/duet/{p-2a3411b5.system.entry.js → p-5443c9ca.system.entry.js} +1 -1
  147. package/lib/duet/{p-abd3bfb4.system.entry.js → p-5610db77.system.entry.js} +1 -1
  148. package/lib/duet/{p-2c0dd9ba.system.entry.js → p-5b409bfb.system.entry.js} +1 -1
  149. package/lib/duet/{p-807b2087.entry.js → p-6353407f.entry.js} +1 -1
  150. package/lib/duet/{p-a89e88a3.js → p-64bf94ee.js} +1 -1
  151. package/lib/duet/{p-2c679963.entry.js → p-64e915ae.entry.js} +1 -1
  152. package/lib/duet/{p-432ba72e.system.entry.js → p-6c237f21.system.entry.js} +1 -1
  153. package/lib/duet/p-6c8521f6.system.entry.js +4 -0
  154. package/lib/duet/{p-a962c8c1.system.js → p-6e4fd6ba.system.js} +0 -0
  155. package/lib/duet/p-70fafc98.system.js +4 -0
  156. package/lib/duet/{p-8002a095.entry.js → p-7347f4ac.entry.js} +1 -1
  157. package/lib/duet/{p-d13874cb.entry.js → p-781bd6db.entry.js} +1 -1
  158. package/lib/duet/{p-5a817929.system.entry.js → p-78e8a689.system.entry.js} +1 -1
  159. package/lib/duet/p-8143f3de.js +4 -0
  160. package/lib/duet/p-81e855e4.system.js +4 -0
  161. package/lib/duet/{p-84ece735.entry.js → p-8224d768.entry.js} +1 -1
  162. package/lib/duet/{p-43dde575.system.entry.js → p-848bb1c2.system.entry.js} +1 -1
  163. package/lib/duet/{p-1391ec53.entry.js → p-880a4afe.entry.js} +1 -1
  164. package/lib/duet/p-8c375429.entry.js +4 -0
  165. package/lib/duet/p-8cb71174.system.entry.js +4 -0
  166. package/lib/duet/p-8d7b68c4.entry.js +4 -0
  167. package/lib/duet/p-8f477bd6.system.js +4 -0
  168. package/lib/duet/p-969c6395.system.entry.js +4 -0
  169. package/lib/duet/p-9c234242.system.entry.js +4 -0
  170. package/lib/duet/{p-f13a0883.entry.js → p-9d7b9084.entry.js} +1 -1
  171. package/lib/duet/p-a0544097.system.entry.js +4 -0
  172. package/lib/duet/p-a16a58c1.system.js +4 -0
  173. package/lib/duet/{p-fb898d94.system.entry.js → p-a4a16d03.system.entry.js} +1 -1
  174. package/lib/duet/p-a4e3b44b.entry.js +4 -0
  175. package/lib/duet/{p-977f2826.entry.js → p-a91673cf.entry.js} +1 -1
  176. package/lib/duet/p-a926944f.entry.js +4 -0
  177. package/lib/duet/{p-2826f987.js → p-ad07f399.js} +1 -1
  178. package/lib/duet/p-b08bce4c.entry.js +4 -0
  179. package/lib/duet/{p-ec3eef3a.entry.js → p-b48a5f80.entry.js} +1 -1
  180. package/lib/duet/p-bb3e3777.entry.js +4 -0
  181. package/lib/duet/{p-fbb7d194.entry.js → p-bbe33d02.entry.js} +1 -1
  182. package/lib/duet/p-be8e1c48.system.entry.js +4 -0
  183. package/lib/duet/{p-68d09837.system.entry.js → p-c56c73ee.system.entry.js} +1 -1
  184. package/lib/duet/p-c63bdc6a.system.entry.js +4 -0
  185. package/lib/duet/{p-c723d36e.system.js → p-c83685a6.system.js} +1 -1
  186. package/lib/duet/p-c8dfc958.system.entry.js +4 -0
  187. package/lib/duet/{p-6cf41bfe.system.entry.js → p-c92f601f.system.entry.js} +1 -1
  188. package/lib/duet/p-d004da5f.js +4 -0
  189. package/lib/duet/p-d49416f8.entry.js +4 -0
  190. package/lib/duet/{p-7a868085.entry.js → p-d581d82d.entry.js} +1 -1
  191. package/lib/duet/p-d6bb4301.entry.js +4 -0
  192. package/lib/duet/p-d9aadc15.entry.js +4 -0
  193. package/lib/duet/p-ddb6344c.system.js +4 -0
  194. package/lib/duet/{p-3040debf.entry.js → p-dde63979.entry.js} +1 -1
  195. package/lib/duet/p-e15ccddc.system.entry.js +4 -0
  196. package/lib/duet/{p-0f2a478e.entry.js → p-e1be37a6.entry.js} +1 -1
  197. package/lib/duet/p-e5c1751e.system.js +16 -0
  198. package/lib/duet/{p-b9683731.entry.js → p-e9209e9f.entry.js} +1 -1
  199. package/lib/duet/p-eb55ccd2.system.js +4 -0
  200. package/lib/duet/{p-b374d7c2.system.js → p-ee1ba0d4.system.js} +1 -1
  201. package/lib/duet/{p-57cb58d4.system.entry.js → p-f4a29a8a.system.entry.js} +2 -2
  202. package/lib/duet/p-f8a0bd32.system.entry.js +4 -0
  203. package/lib/duet/p-f9599dd9.system.entry.js +4 -0
  204. package/lib/duet/p-fa99eaa4.system.js +4 -0
  205. package/lib/duet/p-fd7018e9.js +4 -0
  206. package/lib/duet/{p-19c28d99.system.entry.js → p-fe0cca67.system.entry.js} +1 -1
  207. package/lib/esm/{dom-8516b24e.js → dom-5d060ace.js} +1 -1
  208. package/lib/esm/duet-alert.entry.js +2 -2
  209. package/lib/esm/duet-badge.entry.js +1 -1
  210. package/lib/esm/duet-button_2.entry.js +4 -4
  211. package/lib/esm/duet-caption_4.entry.js +18 -11
  212. package/lib/esm/duet-card.entry.js +3 -3
  213. package/lib/esm/duet-checkbox.entry.js +2 -2
  214. package/lib/esm/duet-choice_2.entry.js +40 -19
  215. package/lib/esm/duet-collapsible.entry.js +4 -449
  216. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  217. package/lib/esm/duet-date-picker.entry.js +7 -7
  218. package/lib/esm/duet-divider_2.entry.js +1 -1
  219. package/lib/esm/duet-editable-table-button.entry.js +92 -0
  220. package/lib/esm/duet-editable-table_4.entry.js +1513 -0
  221. package/lib/esm/duet-empty-state.entry.js +1 -1
  222. package/lib/esm/duet-fieldset.entry.js +1 -1
  223. package/lib/esm/duet-footer.entry.js +3 -3
  224. package/lib/esm/duet-grid_2.entry.js +69 -4
  225. package/lib/esm/duet-header_2.entry.js +216 -49
  226. package/lib/esm/duet-hero.entry.js +2 -2
  227. package/lib/esm/duet-icon.entry.js +8 -6
  228. package/lib/esm/duet-input_2.entry.js +7 -8
  229. package/lib/esm/duet-layout.entry.js +1 -1
  230. package/lib/esm/duet-list_2.entry.js +3 -3
  231. package/lib/esm/duet-modal.entry.js +3 -3
  232. package/lib/esm/duet-notification_2.entry.js +3 -3
  233. package/lib/esm/duet-number-input.entry.js +2 -2
  234. package/lib/esm/duet-progress.entry.js +71 -0
  235. package/lib/esm/duet-radio_2.entry.js +2 -2
  236. package/lib/esm/duet-range-slider.entry.js +2 -2
  237. package/lib/esm/duet-select.entry.js +5 -5
  238. package/lib/esm/duet-step_2.entry.js +1 -1
  239. package/lib/esm/duet-tab_2.entry.js +3 -3
  240. package/lib/esm/duet-textarea.entry.js +5 -5
  241. package/lib/esm/duet-toggle.entry.js +1 -1
  242. package/lib/esm/duet-tooltip.entry.js +2 -2
  243. package/lib/esm/duet-tray.entry.js +3 -3
  244. package/lib/esm/duet-upload-aria-status.entry.js +96 -0
  245. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  246. package/lib/esm/duet.js +4 -4
  247. package/lib/esm/{focus-utils-6a282066.js → focus-utils-48837cfa.js} +1 -1
  248. package/lib/esm/form-search-ea8e19ae.js +6 -0
  249. package/lib/esm/{index-3a265449.js → index-80be4170.js} +5 -2
  250. package/lib/esm/{language-utils-d5c38f65.js → language-utils-344d894c.js} +6 -3
  251. package/lib/esm/loader.js +3 -3
  252. package/lib/esm/{shadow-css-9178c864.js → shadow-css-13d024f4.js} +9 -10
  253. package/lib/esm/token-utils-75f78ca4.js +75 -0
  254. package/lib/esm/tokens-e110dc89.js +453 -0
  255. package/lib/esm/{tokens.module-edb66c04.js → tokens.module-49cbf963.js} +3 -1
  256. package/lib/esm/watch-options-dd55bce8.js +57 -0
  257. package/lib/esm-es5/{dom-8516b24e.js → dom-5d060ace.js} +0 -0
  258. package/lib/esm-es5/duet-alert.entry.js +1 -1
  259. package/lib/esm-es5/duet-badge.entry.js +1 -1
  260. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  261. package/lib/esm-es5/duet-caption_4.entry.js +2 -2
  262. package/lib/esm-es5/duet-card.entry.js +1 -1
  263. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  264. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  265. package/lib/esm-es5/duet-collapsible.entry.js +2 -2
  266. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  267. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  268. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  269. package/lib/esm-es5/duet-editable-table-button.entry.js +4 -0
  270. package/lib/esm-es5/duet-editable-table_4.entry.js +4 -0
  271. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  272. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  273. package/lib/esm-es5/duet-footer.entry.js +1 -1
  274. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  275. package/lib/esm-es5/duet-header_2.entry.js +2 -2
  276. package/lib/esm-es5/duet-hero.entry.js +1 -1
  277. package/lib/esm-es5/duet-icon.entry.js +1 -1
  278. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  279. package/lib/esm-es5/duet-layout.entry.js +1 -1
  280. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  281. package/lib/esm-es5/duet-modal.entry.js +1 -1
  282. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  283. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  284. package/lib/esm-es5/duet-progress.entry.js +4 -0
  285. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  286. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  287. package/lib/esm-es5/duet-select.entry.js +1 -1
  288. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  289. package/lib/esm-es5/duet-tab_2.entry.js +2 -2
  290. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  291. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  292. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  293. package/lib/esm-es5/duet-tray.entry.js +1 -1
  294. package/lib/esm-es5/duet-upload-aria-status.entry.js +4 -0
  295. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  296. package/lib/esm-es5/duet.js +1 -1
  297. package/lib/esm-es5/focus-utils-48837cfa.js +4 -0
  298. package/lib/esm-es5/form-search-ea8e19ae.js +4 -0
  299. package/lib/esm-es5/index-80be4170.js +4 -0
  300. package/lib/esm-es5/{language-utils-d5c38f65.js → language-utils-344d894c.js} +1 -1
  301. package/lib/esm-es5/loader.js +1 -1
  302. package/lib/esm-es5/shadow-css-13d024f4.js +15 -0
  303. package/lib/esm-es5/token-utils-75f78ca4.js +4 -0
  304. package/lib/esm-es5/tokens-e110dc89.js +4 -0
  305. package/lib/esm-es5/tokens.module-49cbf963.js +4 -0
  306. package/lib/esm-es5/watch-options-dd55bce8.js +4 -0
  307. package/lib/types/common-types.d.ts +0 -1
  308. package/lib/types/components/duet-choice/duet-choice.d.ts +20 -1
  309. package/lib/types/components/duet-collapsible/duet-collapsible.d.ts +3 -0
  310. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +5 -5
  311. package/lib/types/components/duet-editable-table/duet-editable-table-button.d.ts +73 -0
  312. package/lib/types/components/duet-editable-table/duet-editable-table-item.d.ts +76 -0
  313. package/lib/types/components/duet-editable-table/duet-editable-table-tabledata.d.ts +8 -0
  314. package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +94 -0
  315. package/lib/types/components/duet-grid/duet-grid.d.ts +17 -2
  316. package/lib/types/components/duet-header/duet-header-dropdown.d.ts +16 -0
  317. package/lib/types/components/duet-header/duet-header-hamburger.d.ts +2 -0
  318. package/lib/types/components/duet-header/duet-header-icon.d.ts +8 -0
  319. package/lib/types/components/duet-header/duet-header.d.ts +41 -4
  320. package/lib/types/components/duet-heading/duet-heading.d.ts +2 -2
  321. package/lib/types/components/duet-link/duet-link.d.ts +3 -0
  322. package/lib/types/components/duet-paragraph/duet-paragraph.d.ts +9 -1
  323. package/lib/types/components/duet-progress/duet-progress.d.ts +64 -0
  324. package/lib/types/components/duet-table/duet-table.d.ts +1 -1
  325. package/lib/types/components/duet-upload/duet-upload.d.ts +408 -0
  326. package/lib/types/components/duet-upload/errorcodes.utils.d.ts +8 -0
  327. package/lib/types/components/duet-upload/mock.helpers.d.ts +2 -0
  328. package/lib/types/components/duet-upload/upload-editable-item-error.d.ts +7 -0
  329. package/lib/types/components/duet-upload/upload-editable-item-inprogres.d.ts +7 -0
  330. package/lib/types/components/duet-upload/upload-editable-item-success.d.ts +8 -0
  331. package/lib/types/components/duet-upload/upload-validators.d.ts +12 -0
  332. package/lib/types/components/duet-upload/upload.helpers.d.ts +1 -0
  333. package/lib/types/components/duet-upload/xhr.helpers.d.ts +18 -0
  334. package/lib/types/components/duet-upload-aria-status/duet-upload-aria-status.d.ts +49 -0
  335. package/lib/types/components.d.ts +835 -29
  336. package/lib/types/stencil-public-runtime.d.ts +6 -4
  337. package/lib/types/utils/js-utils.d.ts +1 -0
  338. package/lib/types/utils/language-utils.d.ts +5 -1
  339. package/lib/types/utils/template-utils.d.ts +13 -0
  340. package/lib/types/utils/token-utils.d.ts +8 -2
  341. package/lib/types/utils/watch-options.d.ts +2 -0
  342. package/package.json +13 -13
  343. package/lib/cjs/duet-table.cjs.entry.js +0 -132
  344. package/lib/cjs/token-utils-13e5d13e.js +0 -30
  345. package/lib/duet/p-0058512b.js +0 -4
  346. package/lib/duet/p-08729381.entry.js +0 -4
  347. package/lib/duet/p-0b00e8d6.system.js +0 -16
  348. package/lib/duet/p-15922601.system.js +0 -4
  349. package/lib/duet/p-194e25ce.system.entry.js +0 -4
  350. package/lib/duet/p-1d87ea02.system.entry.js +0 -4
  351. package/lib/duet/p-2d1e2b23.system.entry.js +0 -4
  352. package/lib/duet/p-322d1c38.js +0 -4
  353. package/lib/duet/p-40d68321.entry.js +0 -4
  354. package/lib/duet/p-418b2ce7.system.js +0 -4
  355. package/lib/duet/p-43e39d98.system.js +0 -4
  356. package/lib/duet/p-4603830b.entry.js +0 -4
  357. package/lib/duet/p-52d7fbec.entry.js +0 -4
  358. package/lib/duet/p-60478325.system.entry.js +0 -4
  359. package/lib/duet/p-64ed7add.entry.js +0 -4
  360. package/lib/duet/p-6a356ab1.system.js +0 -4
  361. package/lib/duet/p-72fd384a.entry.js +0 -4
  362. package/lib/duet/p-753b406c.entry.js +0 -4
  363. package/lib/duet/p-76c00d0c.entry.js +0 -4
  364. package/lib/duet/p-85fe1132.js +0 -4
  365. package/lib/duet/p-8c8e82aa.system.js +0 -4
  366. package/lib/duet/p-9a89ec39.js +0 -4
  367. package/lib/duet/p-a11df1b6.js +0 -15
  368. package/lib/duet/p-a1eccee1.system.entry.js +0 -4
  369. package/lib/duet/p-ade33230.entry.js +0 -4
  370. package/lib/duet/p-b04d738f.system.entry.js +0 -4
  371. package/lib/duet/p-cb827bb7.entry.js +0 -4
  372. package/lib/duet/p-d85fba2c.system.entry.js +0 -4
  373. package/lib/duet/p-dfa90f8a.system.entry.js +0 -4
  374. package/lib/duet/p-e6b9bd1d.entry.js +0 -4
  375. package/lib/duet/p-ee64d6be.system.entry.js +0 -4
  376. package/lib/duet/p-f113671b.system.entry.js +0 -4
  377. package/lib/duet/p-f2f04396.entry.js +0 -4
  378. package/lib/duet/p-fc6624fe.system.entry.js +0 -4
  379. package/lib/esm/duet-table.entry.js +0 -128
  380. package/lib/esm/token-utils-5a35377f.js +0 -28
  381. package/lib/esm/watch-options-de55ea78.js +0 -35
  382. package/lib/esm-es5/duet-table.entry.js +0 -4
  383. package/lib/esm-es5/focus-utils-6a282066.js +0 -4
  384. package/lib/esm-es5/index-3a265449.js +0 -4
  385. package/lib/esm-es5/shadow-css-9178c864.js +0 -15
  386. package/lib/esm-es5/token-utils-5a35377f.js +0 -4
  387. package/lib/esm-es5/tokens.module-edb66c04.js +0 -4
  388. package/lib/esm-es5/watch-options-de55ea78.js +0 -4
@@ -1,13 +1,20 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { Component, Element, h, Host, Prop, Watch } from "@stencil/core";
5
- import { watchForOptions } from "../../utils/watch-options";
4
+ import { media_query_large, media_query_medium, media_query_small } from "@duetds/tokens/lib/tokens.json";
5
+ import { Component, Element, h, Host, Prop, State, Watch } from "@stencil/core";
6
+ import { watchForElement, watchForOptions } from "../../utils/watch-options";
6
7
  function isGridItem(element) {
7
8
  return element.tagName.toLowerCase() === "duet-grid-item";
8
9
  }
9
10
  export class DuetGrid {
10
11
  constructor() {
12
+ this.mql = [
13
+ window.matchMedia(media_query_large.replace(/'/g, "")),
14
+ window.matchMedia(media_query_medium.replace(/'/g, "")),
15
+ window.matchMedia(media_query_small.replace(/'/g, "")),
16
+ ];
17
+ this.distributeFormElement = false;
11
18
  /**
12
19
  * Enable or disable the automatic responsive behaviour of the grid component.
13
20
  * Setting this option to "true" makes sure that contents are stacked vertically
@@ -24,7 +31,9 @@ export class DuetGrid {
24
31
  */
25
32
  this.direction = "horizontal";
26
33
  /**
27
- * Adjusts the vertical alignment of the grid items.
34
+ * Adjusts the vertical alignment of the grid items, if set to "form_distribute"
35
+ * the grid will try to calculate correct paddings for any duet-input fields inside duet-grid-items,
36
+ * so that they align even when displaying errors.
28
37
  */
29
38
  this.alignment = "top";
30
39
  /**
@@ -36,14 +45,39 @@ export class DuetGrid {
36
45
  */
37
46
  this.mobile = "";
38
47
  }
48
+ /**
49
+ * Private functions
50
+ */
51
+ /**
52
+ * Returns the element height including margins
53
+ * @param element - element
54
+ * @returns {number}
55
+ */
56
+ outerHeight(element) {
57
+ const height = element.offsetHeight, style = window.getComputedStyle(element);
58
+ return ["top", "bottom"]
59
+ .map(side => parseInt(style[`margin-${side}`]))
60
+ .reduce((total, side) => total + side, height);
61
+ }
39
62
  /**
40
63
  * Component lifecycle events.
41
64
  */
42
65
  async connectedCallback() {
43
66
  const el = this.element;
67
+ this.distributeFormElement = this.alignment === "form_distribute";
44
68
  this.mutationO = watchForOptions(el, "duet-grid-item", () => {
45
69
  this.updateGridItems();
46
70
  });
71
+ // the next two functions are used to watch for changes in the grid items, and are process intensive - so only run when needed
72
+ if (this.distributeFormElement) {
73
+ this.mutation1 = watchForElement(el, "duet-input", () => {
74
+ this.updateGridItemsWithInputFields();
75
+ });
76
+ // listen for potential mediaquery changes and reset layout
77
+ for (let i = 0; i < this.mql.length; i++) {
78
+ this.mql[i].addEventListener("change", this.updateGridItemsWithInputFields.bind(this));
79
+ }
80
+ }
47
81
  this.updateGridItems();
48
82
  }
49
83
  disconnectedCallback() {
@@ -51,6 +85,14 @@ export class DuetGrid {
51
85
  this.mutationO.disconnect();
52
86
  this.mutationO = undefined;
53
87
  }
88
+ if (this.mutation1) {
89
+ this.mutation1.disconnect();
90
+ this.mutation1 = undefined;
91
+ }
92
+ // listen for potential mediaquery changes and reset layout
93
+ for (let i = 0; i < this.mql.length; i++) {
94
+ this.mql[i].removeEventListener("change", this.updateGridItemsWithInputFields.bind(this));
95
+ }
54
96
  }
55
97
  /**
56
98
  * Local methods
@@ -62,6 +104,29 @@ export class DuetGrid {
62
104
  item.breakpoint = this.breakpoint;
63
105
  });
64
106
  }
107
+ async updateGridItemsWithInputFields() {
108
+ const items = Array.from(this.element.children).filter(isGridItem);
109
+ // if layout changes to columns instead of row, remove all padding
110
+ const hasColumnLayout = window ? window.getComputedStyle(this.element).flexDirection === "column" : false;
111
+ let maxHeight = 0;
112
+ const sizes = [];
113
+ items.forEach(item => {
114
+ const inputErrorDom = item.querySelector("span.duet-input-error");
115
+ const height = inputErrorDom ? this.outerHeight(inputErrorDom) : 0;
116
+ sizes.push(height);
117
+ });
118
+ maxHeight = Math.max(...sizes);
119
+ items.forEach(item => {
120
+ const inputErrorDom = item.querySelector("span.duet-input-error");
121
+ const height = inputErrorDom ? this.outerHeight(inputErrorDom) : 0;
122
+ if (height < maxHeight && !hasColumnLayout) {
123
+ item.setAttribute("style", `padding-bottom: ${maxHeight - height}px;`);
124
+ }
125
+ else if (height === maxHeight || hasColumnLayout) {
126
+ item.setAttribute("style", `padding-bottom: 0px;`);
127
+ }
128
+ });
129
+ }
65
130
  /**
66
131
  * render() function
67
132
  * Always the last one in the class.
@@ -71,7 +136,7 @@ export class DuetGrid {
71
136
  "duet-grid": true,
72
137
  "duet-no-stacking": !this.responsive,
73
138
  "duet-grid-align-top": this.alignment === "top",
74
- "duet-grid-align-bottom": this.alignment === "bottom",
139
+ "duet-grid-align-bottom": this.alignment === "bottom" || this.alignment === "form_distribute",
75
140
  "duet-grid-align-center": this.alignment === "center",
76
141
  "duet-grid-align-stretch": this.alignment === "stretch",
77
142
  "duet-grid-align-baseline": this.alignment === "baseline",
@@ -169,7 +234,7 @@ export class DuetGrid {
169
234
  "mutable": false,
170
235
  "complexType": {
171
236
  "original": "DuetGridAlignment",
172
- "resolved": "\"baseline\" | \"bottom\" | \"center\" | \"stretch\" | \"top\"",
237
+ "resolved": "\"baseline\" | \"bottom\" | \"center\" | \"form_distribute\" | \"stretch\" | \"top\"",
173
238
  "references": {
174
239
  "DuetGridAlignment": {
175
240
  "location": "local"
@@ -180,7 +245,7 @@ export class DuetGrid {
180
245
  "optional": false,
181
246
  "docs": {
182
247
  "tags": [],
183
- "text": "Adjusts the vertical alignment of the grid items."
248
+ "text": "Adjusts the vertical alignment of the grid items, if set to \"form_distribute\"\nthe grid will try to calculate correct paddings for any duet-input fields inside duet-grid-items,\nso that they align even when displaying errors."
184
249
  },
185
250
  "attribute": "alignment",
186
251
  "reflect": false,
@@ -231,6 +296,9 @@ export class DuetGrid {
231
296
  "defaultValue": "\"\""
232
297
  }
233
298
  }; }
299
+ static get states() { return {
300
+ "distributeFormElement": {}
301
+ }; }
234
302
  static get elementRef() { return "element"; }
235
303
  static get watchers() { return [{
236
304
  "propName": "responsive",
@@ -0,0 +1,27 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import arrowDownIcon from "@duetds/icons/lib/assets/action-arrow-down-small";
5
+ import { h } from "@stencil/core";
6
+ import { DuetHeaderIcon } from "./duet-header-icon";
7
+ export const DuetHeaderDropdown = (props, _children) => {
8
+ const accessibleLabel = props.accessibleText ? props.accessibleText : props.label;
9
+ return (h("div", { class: { ["duet-header-dropdown"]: true, [props.className]: !!props.className } },
10
+ h("button", { ref: props.toggleRef, "aria-haspopup": "listbox", "aria-controls": props.id, "aria-expanded": props.isOpen ? "true" : "false", "aria-labelledby": `${props.id}-accessible-label`, id: `${props.id}-button`, type: "button", class: {
11
+ [props.id]: true,
12
+ "duet-header-dropdown-toggle": true,
13
+ "duet-header-button": true,
14
+ active: props.active,
15
+ }, onClick: props.onToggle },
16
+ props.icon && h(DuetHeaderIcon, { icon: props.icon }),
17
+ h("span", { "aria-hidden": "true", id: `${props.id}-label`, class: "duet-header-dropdown-label" }, props.label),
18
+ props.badge && h("div", { class: "duet-header-badge" }),
19
+ h("div", { class: "duet-header-caret", "aria-hidden": "true" },
20
+ h("duet-icon", { margin: "none", size: "auto", icon: arrowDownIcon.svg, color: "currentColor" })),
21
+ h("duet-visually-hidden", { id: `${props.id}-accessible-label` }, accessibleLabel)),
22
+ h("div", { ref: props.itemsRef, tabindex: "-1", role: "menu", id: props.id, "aria-labelledby": `${props.id}-button`, class: {
23
+ "duet-header-dropdown-content": true,
24
+ [`${props.id}-items`]: true,
25
+ active: props.isOpen,
26
+ } }, _children)));
27
+ };
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { h } from "@stencil/core";
5
+ export const DuetHeaderHamburger = () => (h("div", { class: "duet-header-hamburger" },
6
+ h("span", { class: "duet-header-bar" }),
7
+ h("span", { class: "duet-header-bar" }),
8
+ h("span", { class: "duet-header-bar" }),
9
+ h("span", { class: "duet-header-bar" })));
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { h } from "@stencil/core";
5
+ export const DuetHeaderIcon = (props, _children) => {
6
+ const iconSize = props.iconSize ? props.iconSize : "x-small";
7
+ return (h("span", { class: "duet-header-icon" },
8
+ h("duet-icon", { margin: "none", size: iconSize, icon: props.icon, color: "currentColor" })));
9
+ };
@@ -38,6 +38,17 @@
38
38
  }
39
39
  }
40
40
 
41
+ @supports (position: -webkit-sticky) {
42
+ :host(.duet-header-multi-level-desktop-variation) {
43
+ top: 0;
44
+ }
45
+ }
46
+ @supports (position: sticky) {
47
+ :host(.duet-header-multi-level-desktop-variation) {
48
+ top: 0;
49
+ }
50
+ }
51
+
41
52
  .duet-header-reserved-space {
42
53
  height: 4rem;
43
54
  }
@@ -161,7 +172,7 @@
161
172
  width: 100%;
162
173
  overflow-y: auto;
163
174
  visibility: hidden;
164
- background: #f5f8fa;
175
+ background: #f3f9fc;
165
176
  opacity: 0;
166
177
  -webkit-overflow-scrolling: touch;
167
178
  }
@@ -242,50 +253,70 @@
242
253
  padding-left: 43.6363636364px;
243
254
  }
244
255
  }
245
- .duet-header-items a {
256
+ .duet-header-items .duet-header-item-container {
257
+ border-bottom: 1px solid #e1e3e6;
258
+ border-radius: 0;
259
+ }
260
+ @media (min-width: 62em) {
261
+ .duet-header-items .duet-header-item-container {
262
+ border: 0;
263
+ }
264
+ }
265
+ .duet-header-items .duet-header-second-level .duet-header-item {
266
+ padding: 0 40px;
267
+ border: 0;
268
+ }
269
+ .duet-header-items .duet-header-second-level .duet-header-button {
270
+ border: 0;
271
+ }
272
+ .duet-header-items .duet-header-second-level .duet-header-dropdown-content {
273
+ padding: 0;
274
+ border: 0;
275
+ }
276
+ .duet-header-items .duet-header-third-level .duet-header-item {
277
+ padding: 0 75px;
278
+ }
279
+ .duet-header-items .duet-header-item {
246
280
  position: relative;
247
- display: block;
281
+ display: flex;
282
+ align-items: center;
248
283
  width: 100%;
249
- height: 48px;
250
284
  padding: 0 20px;
251
285
  overflow: hidden;
252
286
  font-size: 1rem;
253
- font-weight: 600;
254
287
  line-height: 48px;
255
288
  color: #00294d;
256
289
  text-decoration: none;
257
290
  text-overflow: ellipsis;
258
291
  white-space: nowrap;
259
- border-bottom: 1px solid #e1e3e6;
260
- border-radius: 0;
261
292
  }
262
293
  @media (min-width: 62em) {
263
- .duet-header-items a {
294
+ .duet-header-items .duet-header-item {
264
295
  border-radius: 4px;
265
296
  }
266
297
  }
267
- .duet-theme-turva .duet-header-items a {
298
+ .duet-theme-turva .duet-header-items .duet-header-item {
268
299
  font-weight: 600;
269
300
  color: #171c3a;
270
301
  border-color: #e1e3e6;
271
302
  }
272
- .duet-header-items a:hover {
303
+ .duet-header-items .duet-header-item:hover {
273
304
  color: #004d80;
274
305
  }
275
- .duet-theme-turva .duet-header-items a:hover {
306
+ .duet-theme-turva .duet-header-items .duet-header-item:hover {
276
307
  color: #444445;
277
308
  }
278
- .duet-header-items a:focus {
309
+ .duet-header-items .duet-header-item:focus {
279
310
  outline: 0;
280
311
  }
281
- :host(.user-is-tabbing) .duet-header-items a:focus {
312
+ :host(.user-is-tabbing) .duet-header-items .duet-header-item:focus {
282
313
  box-shadow: 0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3;
283
314
  }
284
- :host(.user-is-tabbing) .duet-theme-turva .duet-header-items a:focus {
315
+ :host(.user-is-tabbing) .duet-theme-turva .duet-header-items .duet-header-item:focus {
285
316
  box-shadow: 0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a;
286
317
  }
287
318
  @media (min-width: 62em) {
288
- .duet-header-items a {
319
+ .duet-header-items .duet-header-item {
289
320
  width: auto;
290
321
  max-width: 300px;
291
322
  padding: 0 12px;
@@ -295,21 +326,21 @@
295
326
  border: 0;
296
327
  }
297
328
  }
298
- .duet-header-items a.active {
329
+ .duet-header-items .duet-header-item.active {
299
330
  color: #0077b3;
300
331
  -moz-osx-font-smoothing: auto;
301
332
  -webkit-font-smoothing: subpixel-antialiased;
302
333
  }
303
- .duet-theme-turva .duet-header-items a.active {
334
+ .duet-theme-turva .duet-header-items .duet-header-item.active {
304
335
  color: #c60c30;
305
336
  }
306
- .duet-header-items a.active:hover {
337
+ .duet-header-items .duet-header-item.active:hover {
307
338
  color: #0077b3;
308
339
  }
309
- .duet-theme-turva .duet-header-items a.active:hover {
340
+ .duet-theme-turva .duet-header-items .duet-header-item.active:hover {
310
341
  color: #c60c30;
311
342
  }
312
- .duet-header-items a.active::after {
343
+ .duet-header-items .duet-header-item.active::after {
313
344
  position: absolute;
314
345
  top: 0;
315
346
  bottom: 0;
@@ -318,17 +349,26 @@
318
349
  content: "";
319
350
  background: #0077b3;
320
351
  }
321
- .duet-theme-turva .duet-header-items a.active::after {
352
+ .duet-theme-turva .duet-header-items .duet-header-item.active::after {
322
353
  background: #c60c30;
323
354
  }
324
355
  @media (min-width: 62em) {
325
- .duet-header-items a.active::after {
356
+ .duet-header-items .duet-header-item.active::after {
326
357
  top: auto;
327
358
  left: 12px;
328
359
  width: calc(100% - 24px);
329
360
  height: 3px;
330
361
  }
331
362
  }
363
+ .duet-header-third-level-active .duet-header-items .duet-header-first-level.active {
364
+ color: #00294d;
365
+ }
366
+ .duet-header-third-level-active .duet-header-items .duet-header-first-level.active::after {
367
+ display: none;
368
+ }
369
+ .duet-header-third-level-active .duet-header-items .duet-header-second-level button {
370
+ color: #00294d;
371
+ }
332
372
 
333
373
  .duet-header-toggle {
334
374
  display: flex;
@@ -547,6 +587,36 @@ button {
547
587
  .duet-theme-turva .duet-header-button.active::after {
548
588
  color: #c60c30;
549
589
  }
590
+ .duet-header-utils .duet-header-button.duet-header-logout {
591
+ align-self: center;
592
+ justify-content: center;
593
+ width: auto;
594
+ height: 2.5rem;
595
+ margin: 2.25rem 0;
596
+ font-weight: 600;
597
+ border: 2px solid #00294d;
598
+ border-radius: 20rem;
599
+ }
600
+ .duet-theme-turva .duet-header-utils .duet-header-button.duet-header-logout {
601
+ border-color: #171c3a;
602
+ }
603
+ .duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon {
604
+ margin-right: 0.5rem;
605
+ }
606
+ .duet-header-utils .duet-header-button.duet-header-logout .duet-header-button-label {
607
+ font-size: 0.875rem;
608
+ }
609
+ @media (min-width: 62em) {
610
+ .duet-header-utils .duet-header-button.duet-header-logout {
611
+ height: 4rem;
612
+ margin: 0;
613
+ font-weight: 400;
614
+ border: 0;
615
+ }
616
+ .duet-header-utils .duet-header-button.duet-header-logout .duet-header-icon {
617
+ margin-right: 0.75rem;
618
+ }
619
+ }
550
620
 
551
621
  .duet-header-no-action {
552
622
  pointer-events: none;
@@ -635,7 +705,7 @@ button {
635
705
  display: inline-block;
636
706
  width: 6px;
637
707
  height: 6px;
638
- margin-top: 16px;
708
+ margin-top: -1rem;
639
709
  margin-left: 5px;
640
710
  vertical-align: top;
641
711
  background: #f7b228;
@@ -703,7 +773,7 @@ button {
703
773
  .duet-header-dropdown .duet-header-dropdown-content {
704
774
  display: none;
705
775
  padding-bottom: 16px;
706
- background: #f5f8fa;
776
+ background: #f3f9fc;
707
777
  border-bottom: 1px solid #e1e3e6;
708
778
  }
709
779
  .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content {
@@ -717,7 +787,7 @@ button {
717
787
  left: 0;
718
788
  z-index: 600;
719
789
  display: block;
720
- min-width: 170px;
790
+ min-width: 150px;
721
791
  padding-top: 16px;
722
792
  padding-left: 0;
723
793
  visibility: hidden;
@@ -731,6 +801,11 @@ button {
731
801
  transform: scale(0.85) translateZ(0) translateY(-20px);
732
802
  }
733
803
  }
804
+ @media (min-width: 64.0625em) {
805
+ .duet-header-dropdown .duet-header-dropdown-content {
806
+ min-width: 170px;
807
+ }
808
+ }
734
809
  .duet-header-dropdown .duet-header-dropdown-content.active {
735
810
  display: block;
736
811
  }
@@ -741,7 +816,7 @@ button {
741
816
  transform: translateZ(0) translateY(0);
742
817
  }
743
818
  }
744
- .duet-header-dropdown .duet-header-dropdown-content a {
819
+ .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item) {
745
820
  padding: 3px 8px 4px !important;
746
821
  position: relative;
747
822
  display: block;
@@ -759,46 +834,47 @@ button {
759
834
  cursor: pointer;
760
835
  transition: 300ms ease;
761
836
  }
762
- .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a {
837
+ .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item) {
763
838
  color: #171c3a;
764
839
  }
765
840
  @media (min-width: 62em) {
766
- .duet-header-dropdown .duet-header-dropdown-content a {
841
+ .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item) {
842
+ padding-right: 20px !important;
767
843
  padding-left: 20px !important;
768
844
  }
769
845
  }
770
846
  @media (min-width: 62em) {
771
- .duet-header-dropdown .duet-header-dropdown-content a:hover {
847
+ .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover {
772
848
  background: #e6f2f8;
773
849
  }
774
- .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:hover {
850
+ .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):hover {
775
851
  background: #f9e6ea;
776
852
  }
777
853
  }
778
- .duet-header-dropdown .duet-header-dropdown-content a:focus {
854
+ .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus {
779
855
  outline: 0;
780
856
  }
781
- :host(.user-is-tabbing) .duet-header-dropdown .duet-header-dropdown-content a:focus {
857
+ :host(.user-is-tabbing) .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus {
782
858
  box-shadow: 0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3;
783
859
  }
784
- :host(.user-is-tabbing) .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:focus {
860
+ :host(.user-is-tabbing) .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item):focus {
785
861
  box-shadow: 0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a;
786
862
  }
787
- .duet-header-dropdown .duet-header-dropdown-content a.active {
863
+ .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active {
788
864
  padding-right: 36px;
789
865
  font-weight: 600;
790
866
  vertical-align: baseline;
791
867
  pointer-events: none;
792
868
  }
793
- .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a.active {
869
+ .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active {
794
870
  font-weight: 700;
795
871
  }
796
872
  @media (min-width: 62em) {
797
- .duet-header-dropdown .duet-header-dropdown-content a.active {
873
+ .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active {
798
874
  color: white;
799
875
  background: #0077b3;
800
876
  }
801
- .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a.active {
877
+ .duet-theme-turva .duet-header-dropdown .duet-header-dropdown-content a:not(.duet-header-item).active {
802
878
  background: #c60c30;
803
879
  }
804
880
  }
@@ -830,13 +906,13 @@ button {
830
906
  }
831
907
 
832
908
  .duet-header-skip {
833
- padding: 8px 16px 9px !important;
909
+ padding: 15px 28px 16px !important;
834
910
  position: absolute;
835
911
  top: -100%;
836
912
  left: -100%;
837
913
  z-index: 200;
838
914
  width: 1px;
839
- min-width: 160px;
915
+ min-width: 190px;
840
916
  height: 1px;
841
917
  overflow: hidden;
842
918
  font-weight: 600;
@@ -870,4 +946,161 @@ button {
870
946
  height: auto;
871
947
  outline: 0;
872
948
  opacity: 1;
949
+ }
950
+
951
+ .duet-header-multi-level-desktop {
952
+ height: 6rem;
953
+ }
954
+ .duet-header-multi-level-desktop .duet-header-top {
955
+ justify-content: space-between;
956
+ height: 6rem;
957
+ }
958
+ .duet-header-multi-level-desktop .duet-header-button {
959
+ height: 6rem;
960
+ }
961
+ .duet-header-multi-level-desktop .logo-and-segment {
962
+ display: flex;
963
+ flex-basis: 0;
964
+ flex-direction: column;
965
+ flex-grow: 1;
966
+ padding-top: 1rem;
967
+ }
968
+ .duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown {
969
+ z-index: 400;
970
+ margin-left: 2rem;
971
+ }
972
+ .duet-header-multi-level-desktop .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content {
973
+ background: #f3f9fc;
974
+ }
975
+ .duet-header-multi-level-desktop .logo-and-segment button {
976
+ align-items: flex-start;
977
+ height: 2rem;
978
+ font-weight: 600;
979
+ line-height: 1rem;
980
+ }
981
+ .duet-header-multi-level-desktop .logo-and-segment button::before {
982
+ display: none;
983
+ }
984
+ .duet-header-multi-level-desktop .logo-and-segment .duet-header-caret {
985
+ top: 25%;
986
+ }
987
+ .duet-header-multi-level-desktop-nav {
988
+ display: flex;
989
+ }
990
+ .duet-header-multi-level-desktop-nav .duet-header-dropdown {
991
+ position: static;
992
+ }
993
+ .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle {
994
+ z-index: 400;
995
+ padding-right: 1rem;
996
+ font-size: 1rem;
997
+ font-weight: 600;
998
+ }
999
+ .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active {
1000
+ color: #0077b3;
1001
+ }
1002
+ .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content {
1003
+ z-index: 399;
1004
+ display: flex;
1005
+ justify-content: center;
1006
+ width: 100%;
1007
+ height: 4.5rem;
1008
+ padding: 0;
1009
+ background: #f3f9fc;
1010
+ border-top: 1px solid #e1e3e6;
1011
+ border-bottom: 1px solid #e1e3e6;
1012
+ box-shadow: 0 2px 6px 0 rgba(0, 41, 77, 0.07);
1013
+ transition: none;
1014
+ }
1015
+ .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a {
1016
+ position: relative;
1017
+ display: flex;
1018
+ flex-direction: column;
1019
+ align-items: center;
1020
+ justify-content: center;
1021
+ width: auto;
1022
+ min-width: 6rem;
1023
+ height: 100%;
1024
+ padding: 0 1rem !important;
1025
+ font-weight: 600;
1026
+ }
1027
+ .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after {
1028
+ position: absolute;
1029
+ top: auto;
1030
+ bottom: 0;
1031
+ left: 0;
1032
+ display: block !important;
1033
+ width: 100%;
1034
+ height: 3px;
1035
+ content: "";
1036
+ background: #0077b3;
1037
+ transition: 300ms ease;
1038
+ transform: translateY(3px);
1039
+ }
1040
+ .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active {
1041
+ font-weight: 600;
1042
+ color: #0077b3;
1043
+ background: none;
1044
+ }
1045
+ .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active::after {
1046
+ transform: translateY(0);
1047
+ }
1048
+ .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a .duet-header-icon {
1049
+ margin: 0;
1050
+ }
1051
+ .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content .duet-header-badge {
1052
+ position: absolute;
1053
+ margin-top: -2rem;
1054
+ margin-right: -2.25rem;
1055
+ }
1056
+ .duet-header-multi-level-desktop-nav button::before {
1057
+ display: none;
1058
+ }
1059
+ .duet-header-multi-level-desktop-nav .duet-header-caret {
1060
+ display: none;
1061
+ }
1062
+ .duet-header-multi-level-desktop-utils {
1063
+ display: flex;
1064
+ flex-basis: 0;
1065
+ flex-grow: 1;
1066
+ justify-content: flex-end;
1067
+ }
1068
+ .duet-header-multi-level-desktop-utils > :last-child::before {
1069
+ display: none;
1070
+ }
1071
+ .duet-header-multi-level-desktop-utils .duet-header-dropdown {
1072
+ z-index: 400;
1073
+ }
1074
+ .duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content {
1075
+ background: #f3f9fc;
1076
+ }
1077
+ .duet-header-multi-level-desktop-utils .duet-header-button-label,
1078
+ .duet-header-multi-level-desktop-utils .duet-header-dropdown-label {
1079
+ display: none;
1080
+ }
1081
+ @media (min-width: 64.0625em) {
1082
+ .duet-header-multi-level-desktop-utils .duet-header-button-label,
1083
+ .duet-header-multi-level-desktop-utils .duet-header-dropdown-label {
1084
+ display: initial;
1085
+ }
1086
+ }
1087
+ .duet-header-multi-level-desktop .duet-theme-turva .logo-and-segment .duet-header-dropdown .duet-header-dropdown-content {
1088
+ background: #fcf3f4;
1089
+ }
1090
+ .duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-toggle.active {
1091
+ color: #c60c30;
1092
+ }
1093
+ .duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content {
1094
+ background: #fcf3f4;
1095
+ border-color: #e4e4e6;
1096
+ }
1097
+ .duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a::after {
1098
+ background: #c60c30;
1099
+ }
1100
+ .duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-nav .duet-header-dropdown .duet-header-dropdown-content a.active {
1101
+ color: #c60c30;
1102
+ background: none;
1103
+ }
1104
+ .duet-header-multi-level-desktop .duet-theme-turva .duet-header-multi-level-desktop-utils .duet-header-dropdown .duet-header-dropdown-content {
1105
+ background: #fcf3f4;
873
1106
  }