@duetds/components 6.9.0 → 6.9.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 (564) hide show
  1. package/hydrate/index.js +332 -111
  2. package/lib/cjs/duet-action-button.cjs.entry.js +17 -2
  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 +1 -1
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +3 -3
  9. package/lib/cjs/duet-card.cjs.entry.js +9 -13
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  13. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-combobox.cjs.entry.js +12 -2
  15. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  18. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-editable-table_3.cjs.entry.js +27 -12
  20. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-fieldset.cjs.entry.js +6 -2
  22. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-grid_2.cjs.entry.js +4 -2
  24. package/lib/cjs/duet-header_2.cjs.entry.js +15 -1
  25. package/lib/cjs/duet-hero.cjs.entry.js +15 -3
  26. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-input_2.cjs.entry.js +9 -14
  28. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +3 -2
  32. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +3 -2
  34. package/lib/cjs/duet-menu-bar.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  36. package/lib/cjs/duet-multiselect.cjs.entry.js +23 -3
  37. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-notification_2.cjs.entry.js +15 -1
  39. package/lib/cjs/duet-number-input.cjs.entry.js +47 -27
  40. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-pagination_2.cjs.entry.js +16 -3
  42. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-scrollable_3.cjs.entry.js +19 -3
  46. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-select.cjs.entry.js +17 -4
  48. package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
  49. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  50. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  51. package/lib/cjs/duet-slideout-panel.cjs.entry.js +2 -2
  52. package/lib/cjs/duet-slideout.cjs.entry.js +3 -3
  53. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  54. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +1 -1
  55. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +22 -7
  56. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-submenu-bar.cjs.entry.js +2 -2
  58. package/lib/cjs/duet-textarea.cjs.entry.js +15 -4
  59. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
  61. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +1 -1
  62. package/lib/cjs/duet-toolbar-link.cjs.entry.js +3 -2
  63. package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
  64. package/lib/cjs/duet-tooltip.cjs.entry.js +22 -1
  65. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  66. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  67. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  68. package/lib/cjs/duet.cjs.js +2 -2
  69. package/lib/cjs/{focus-utils-5c2e36e8.js → focus-utils-76896ff7.js} +1 -1
  70. package/lib/cjs/{index-92f0a873.js → index-0000eab8.js} +1 -1
  71. package/lib/cjs/loader.cjs.js +2 -2
  72. package/lib/collection/components/duet-action-button/duet-action-button.js +25 -6
  73. package/lib/collection/components/duet-card/duet-card.css +13 -10
  74. package/lib/collection/components/duet-card/duet-card.js +7 -11
  75. package/lib/collection/components/duet-combobox/duet-combobox.js +16 -3
  76. package/lib/collection/components/duet-editable-table/duet-editable-table.js +15 -3
  77. package/lib/collection/components/duet-fieldset/duet-fieldset.js +5 -1
  78. package/lib/collection/components/duet-grid/duet-grid.css +18 -0
  79. package/lib/collection/components/duet-grid/duet-grid.js +20 -0
  80. package/lib/collection/components/duet-header/duet-header.js +20 -4
  81. package/lib/collection/components/duet-heading/duet-heading.js +4 -1
  82. package/lib/collection/components/duet-hero/duet-hero.css +23 -3
  83. package/lib/collection/components/duet-hero/duet-hero.js +17 -3
  84. package/lib/collection/components/duet-input/duet-input.js +8 -13
  85. package/lib/collection/components/duet-link/duet-link.css +3 -0
  86. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +19 -1
  87. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +19 -1
  88. package/lib/collection/components/duet-multiselect/duet-multiselect.js +42 -4
  89. package/lib/collection/components/duet-notification/duet-notification.js +22 -5
  90. package/lib/collection/components/duet-number-input/duet-number-input.js +46 -26
  91. package/lib/collection/components/duet-pagination/duet-pagination.js +21 -5
  92. package/lib/collection/components/duet-select/duet-select.css +0 -4
  93. package/lib/collection/components/duet-select/duet-select.js +15 -2
  94. package/lib/collection/components/duet-slideout/duet-slideout.css +2 -0
  95. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.css +5 -21
  96. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.css +1 -0
  97. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +21 -5
  98. package/lib/collection/components/duet-tab-group/duet-tab-group.js +55 -2
  99. package/lib/collection/components/duet-table/duet-table.js +17 -1
  100. package/lib/collection/components/duet-textarea/duet-textarea.js +14 -3
  101. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +19 -1
  102. package/lib/collection/components/duet-tooltip/duet-tooltip.js +33 -4
  103. package/lib/collection/components/duet-upload/duet-upload.css +23 -10
  104. package/lib/collection/components/duet-upload/duet-upload.js +1 -1
  105. package/lib/collection/components/duet-upload/upload-item-header.js +1 -1
  106. package/lib/collection/components/duet-upload/upload-item.js +3 -3
  107. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  108. package/lib/dist-custom-elements/duet-alert.js +1 -1
  109. package/lib/dist-custom-elements/duet-badge.js +1 -1
  110. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  111. package/lib/dist-custom-elements/duet-breadcrumbs.js +3 -3
  112. package/lib/dist-custom-elements/duet-button.js +1 -1
  113. package/lib/dist-custom-elements/duet-caption.js +1 -1
  114. package/lib/dist-custom-elements/duet-card.js +11 -15
  115. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  116. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  117. package/lib/dist-custom-elements/duet-choice-group.js +6 -6
  118. package/lib/dist-custom-elements/duet-choice.js +6 -6
  119. package/lib/dist-custom-elements/duet-collapsible.js +2 -2
  120. package/lib/dist-custom-elements/duet-combobox.js +16 -5
  121. package/lib/dist-custom-elements/duet-contact-card.js +9 -9
  122. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  123. package/lib/dist-custom-elements/duet-date-picker.js +11 -11
  124. package/lib/dist-custom-elements/duet-divider.js +1 -1
  125. package/lib/dist-custom-elements/duet-editable-table.js +19 -11
  126. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  127. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  128. package/lib/dist-custom-elements/duet-footer.js +5 -5
  129. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  130. package/lib/dist-custom-elements/duet-grid.js +1 -1
  131. package/lib/dist-custom-elements/duet-header.js +26 -12
  132. package/lib/dist-custom-elements/duet-heading.js +1 -1
  133. package/lib/dist-custom-elements/duet-hero.js +25 -13
  134. package/lib/dist-custom-elements/duet-icon.js +1 -1
  135. package/lib/dist-custom-elements/duet-input.js +1 -1
  136. package/lib/dist-custom-elements/duet-label.js +1 -1
  137. package/lib/dist-custom-elements/duet-layout.js +1 -1
  138. package/lib/dist-custom-elements/duet-link.js +1 -1
  139. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  140. package/lib/dist-custom-elements/duet-list.js +1 -1
  141. package/lib/dist-custom-elements/duet-logo.js +1 -1
  142. package/lib/dist-custom-elements/duet-menu-bar-button.js +2 -2
  143. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +6 -4
  144. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +2 -2
  145. package/lib/dist-custom-elements/duet-menu-bar-link.js +5 -3
  146. package/lib/dist-custom-elements/duet-menu-bar.js +2 -2
  147. package/lib/dist-custom-elements/duet-modal.js +8 -8
  148. package/lib/dist-custom-elements/duet-multiselect.js +33 -11
  149. package/lib/dist-custom-elements/duet-nav.js +1 -1
  150. package/lib/dist-custom-elements/duet-notification-drawer.js +5 -5
  151. package/lib/dist-custom-elements/duet-notification.js +19 -5
  152. package/lib/dist-custom-elements/duet-number-input.js +56 -36
  153. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  154. package/lib/dist-custom-elements/duet-pagination.js +26 -12
  155. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  156. package/lib/dist-custom-elements/duet-progress.js +1 -1
  157. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  158. package/lib/dist-custom-elements/duet-radio.js +1 -1
  159. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  160. package/lib/dist-custom-elements/duet-range-stepper.js +5 -5
  161. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  162. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  163. package/lib/dist-custom-elements/duet-select.js +1 -1
  164. package/lib/dist-custom-elements/duet-slideout-lang.js +3 -3
  165. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  166. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  167. package/lib/dist-custom-elements/duet-slideout-panel.js +3 -3
  168. package/lib/dist-custom-elements/duet-slideout.js +4 -4
  169. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  170. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  171. package/lib/dist-custom-elements/duet-step.js +4 -4
  172. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  173. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  174. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +24 -8
  175. package/lib/dist-custom-elements/duet-submenu-bar-link.js +2 -2
  176. package/lib/dist-custom-elements/duet-submenu-bar.js +3 -3
  177. package/lib/dist-custom-elements/duet-tab-group.js +29 -12
  178. package/lib/dist-custom-elements/duet-tab.js +2 -2
  179. package/lib/dist-custom-elements/duet-table.js +1 -1
  180. package/lib/dist-custom-elements/duet-textarea.js +22 -11
  181. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  182. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  183. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  184. package/lib/dist-custom-elements/duet-toolbar-link.js +6 -4
  185. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  186. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  187. package/lib/dist-custom-elements/duet-tray.js +4 -4
  188. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  189. package/lib/dist-custom-elements/duet-upload.js +24 -27
  190. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  191. package/lib/dist-custom-elements/index.js +1 -1
  192. package/lib/dist-custom-elements/{p-6c05e879.js → p-076452be.js} +1 -1
  193. package/lib/dist-custom-elements/{p-26d32594.js → p-0dee6e51.js} +28 -7
  194. package/lib/dist-custom-elements/{p-17d43428.js → p-148a04af.js} +5 -5
  195. package/lib/dist-custom-elements/{p-7a4bdb83.js → p-14d7b7b1.js} +1 -1
  196. package/lib/dist-custom-elements/{p-c820f65e.js → p-16da1a85.js} +2 -2
  197. package/lib/dist-custom-elements/{p-e1de0408.js → p-1b34ed71.js} +1 -1
  198. package/lib/dist-custom-elements/{p-41ef88f4.js → p-29b0c53d.js} +22 -6
  199. package/lib/dist-custom-elements/{p-9eba8647.js → p-2a7fe62b.js} +7 -3
  200. package/lib/dist-custom-elements/{p-d6bcc527.js → p-3ee0a1f0.js} +1 -1
  201. package/lib/dist-custom-elements/{p-a1ee31fb.js → p-427c3c85.js} +1 -1
  202. package/lib/dist-custom-elements/{p-353d6d0c.js → p-4672c5f9.js} +1 -1
  203. package/lib/dist-custom-elements/{p-c01c91d6.js → p-61d6063e.js} +2 -2
  204. package/lib/dist-custom-elements/p-685671d3.js +248 -0
  205. package/lib/dist-custom-elements/{p-49848110.js → p-6b75d471.js} +1 -1
  206. package/lib/dist-custom-elements/{p-4b4a086d.js → p-74eab201.js} +17 -22
  207. package/lib/dist-custom-elements/{p-29b2c3bb.js → p-773afd9d.js} +1 -1
  208. package/lib/dist-custom-elements/{p-d0dea200.js → p-80c873a7.js} +1 -1
  209. package/lib/dist-custom-elements/p-81ad703b.js +183 -0
  210. package/lib/dist-custom-elements/{p-dde8e436.js → p-8810d94c.js} +5 -5
  211. package/lib/dist-custom-elements/{p-47ba781e.js → p-a2640cf0.js} +15 -2
  212. package/lib/dist-custom-elements/{p-9d23386f.js → p-a98f3c53.js} +1 -1
  213. package/lib/dist-custom-elements/{p-85fd8f09.js → p-aa856cf3.js} +1 -1
  214. package/lib/dist-custom-elements/{p-c4a3d30d.js → p-b1c2d128.js} +1 -1
  215. package/lib/dist-custom-elements/{p-890a9b12.js → p-b8590b9e.js} +2 -2
  216. package/lib/dist-custom-elements/{p-1bf112be.js → p-b8bdb756.js} +1 -1
  217. package/lib/dist-custom-elements/{p-7199196e.js → p-b9713025.js} +3 -3
  218. package/lib/dist-custom-elements/{p-a56cc313.js → p-c06566bd.js} +2 -2
  219. package/lib/dist-custom-elements/{p-276e05ab.js → p-cf8e064c.js} +6 -6
  220. package/lib/dist-custom-elements/{p-0d1b84db.js → p-d0a476fa.js} +1 -1
  221. package/lib/dist-custom-elements/{p-945a2c0c.js → p-d6ebe136.js} +2 -2
  222. package/lib/dist-custom-elements/{p-19ad4945.js → p-d9374d44.js} +1 -1
  223. package/lib/dist-custom-elements/{p-d6a4de03.js → p-fb9ea1e2.js} +1 -1
  224. package/lib/duet/duet.esm.js +1 -1
  225. package/lib/duet/duet.js +1 -1
  226. package/lib/duet/p-00492553.entry.js +4 -0
  227. package/lib/duet/p-00a6021a.entry.js +4 -0
  228. package/lib/duet/{p-c832c83e.system.entry.js → p-04b466d9.system.entry.js} +1 -1
  229. package/lib/duet/{p-4ab70001.system.entry.js → p-0956191f.system.entry.js} +1 -1
  230. package/lib/duet/{p-a5b5f3e2.system.entry.js → p-0b99b63a.system.entry.js} +1 -1
  231. package/lib/duet/p-0c7ba24e.entry.js +4 -0
  232. package/lib/duet/p-0fd03676.entry.js +4 -0
  233. package/lib/duet/{p-d7c0027e.entry.js → p-0febc106.entry.js} +1 -1
  234. package/lib/duet/{p-7d4e2e96.system.entry.js → p-10c8dcce.system.entry.js} +1 -1
  235. package/lib/duet/p-18417d31.system.entry.js +4 -0
  236. package/lib/duet/{p-26ebc753.system.entry.js → p-1a494e83.system.entry.js} +1 -1
  237. package/lib/duet/{p-93f3e158.system.entry.js → p-1af260c2.system.entry.js} +1 -1
  238. package/lib/duet/{p-4136d211.entry.js → p-1b53a027.entry.js} +1 -1
  239. package/lib/duet/p-1d4d1191.entry.js +4 -0
  240. package/lib/duet/p-1d6d12db.entry.js +4 -0
  241. package/lib/duet/{p-8f0579d1.entry.js → p-1f782abb.entry.js} +1 -1
  242. package/lib/duet/{p-29193196.entry.js → p-255e7c67.entry.js} +1 -1
  243. package/lib/duet/p-25608db1.entry.js +4 -0
  244. package/lib/duet/{p-190507d4.system.entry.js → p-2578566b.system.entry.js} +1 -1
  245. package/lib/duet/{p-5743852f.system.js → p-2852d734.system.js} +1 -1
  246. package/lib/duet/{p-ce108a20.entry.js → p-2ee96e3b.entry.js} +1 -1
  247. package/lib/duet/{p-84eb3d96.system.entry.js → p-30574b01.system.entry.js} +1 -1
  248. package/lib/duet/{p-d8de0d06.entry.js → p-3337b7b5.entry.js} +1 -1
  249. package/lib/duet/{p-48bab8b6.entry.js → p-335ce078.entry.js} +1 -1
  250. package/lib/duet/p-39311463.system.entry.js +4 -0
  251. package/lib/duet/{p-c7507f6b.system.entry.js → p-3eb4385b.system.entry.js} +2 -2
  252. package/lib/duet/{p-f7ff8b67.entry.js → p-3f823f65.entry.js} +1 -1
  253. package/lib/duet/p-40c8612e.entry.js +4 -0
  254. package/lib/duet/{p-7dc36831.system.js → p-473e553e.system.js} +1 -1
  255. package/lib/duet/{p-2b4f4c85.system.entry.js → p-4cf4097a.system.entry.js} +1 -1
  256. package/lib/duet/{p-7a53ff56.entry.js → p-4f054589.entry.js} +1 -1
  257. package/lib/duet/{p-7c32523b.system.entry.js → p-51b95a0b.system.entry.js} +1 -1
  258. package/lib/duet/{p-ef31120e.system.entry.js → p-5368ccf3.system.entry.js} +1 -1
  259. package/lib/duet/{p-d503fd3d.entry.js → p-57a480c6.entry.js} +1 -1
  260. package/lib/duet/{p-17d1d5ee.entry.js → p-5925af50.entry.js} +1 -1
  261. package/lib/duet/p-59dbe033.system.entry.js +4 -0
  262. package/lib/duet/{p-65b119a7.system.entry.js → p-5a0a47c5.system.entry.js} +1 -1
  263. package/lib/duet/{p-5047ae3d.entry.js → p-5dc301ad.entry.js} +1 -1
  264. package/lib/duet/{p-4b02643a.system.entry.js → p-612c5794.system.entry.js} +1 -1
  265. package/lib/duet/{p-ad82c633.system.entry.js → p-619129a1.system.entry.js} +1 -1
  266. package/lib/duet/{p-d563682c.entry.js → p-6288a8f7.entry.js} +1 -1
  267. package/lib/duet/{p-8b123c27.system.entry.js → p-62e5eda4.system.entry.js} +1 -1
  268. package/lib/duet/p-62ee8769.system.entry.js +4 -0
  269. package/lib/duet/{p-1bfff197.system.entry.js → p-64a97121.system.entry.js} +1 -1
  270. package/lib/duet/{p-cc7f7692.entry.js → p-65c666a0.entry.js} +1 -1
  271. package/lib/duet/p-66d17a50.entry.js +4 -0
  272. package/lib/duet/{p-049f7427.entry.js → p-68436d9b.entry.js} +1 -1
  273. package/lib/duet/{p-fc8b03f3.system.entry.js → p-6a23db40.system.entry.js} +1 -1
  274. package/lib/duet/{p-f173da98.entry.js → p-6b3d47fc.entry.js} +1 -1
  275. package/lib/duet/{p-568c7b6d.entry.js → p-6bec8453.entry.js} +1 -1
  276. package/lib/duet/{p-e9cea31c.entry.js → p-6cccad3a.entry.js} +1 -1
  277. package/lib/duet/{p-643dd974.entry.js → p-6dd7d693.entry.js} +1 -1
  278. package/lib/duet/{p-07e54b8a.entry.js → p-71012a41.entry.js} +1 -1
  279. package/lib/duet/{p-bc89db28.entry.js → p-711128a1.entry.js} +1 -1
  280. package/lib/duet/{p-c3495075.system.entry.js → p-71da4ed1.system.entry.js} +1 -1
  281. package/lib/duet/{p-1de4b105.system.entry.js → p-74d84deb.system.entry.js} +1 -1
  282. package/lib/duet/{p-80bc3db3.entry.js → p-754a1a94.entry.js} +1 -1
  283. package/lib/duet/{p-702a9390.entry.js → p-779234b0.entry.js} +1 -1
  284. package/lib/duet/p-78ce7a07.entry.js +4 -0
  285. package/lib/duet/{p-2b94fb6c.entry.js → p-79f6c24a.entry.js} +1 -1
  286. package/lib/duet/p-7e739548.system.entry.js +4 -0
  287. package/lib/duet/{p-7fd9b8b6.system.entry.js → p-7e96a306.system.entry.js} +1 -1
  288. package/lib/duet/{p-de06c5ff.entry.js → p-7f9cc019.entry.js} +1 -1
  289. package/lib/duet/{p-c91aaa04.system.entry.js → p-81236c93.system.entry.js} +1 -1
  290. package/lib/duet/{p-38680e94.system.entry.js → p-815cbab7.system.entry.js} +1 -1
  291. package/lib/duet/p-82398d82.entry.js +4 -0
  292. package/lib/duet/{p-5576e447.system.entry.js → p-840cdccb.system.entry.js} +1 -1
  293. package/lib/duet/{p-aac361b8.entry.js → p-86fede3f.entry.js} +1 -1
  294. package/lib/duet/{p-c073eb55.system.entry.js → p-8d1ccbc2.system.entry.js} +1 -1
  295. package/lib/duet/{p-addd277e.system.entry.js → p-8d482808.system.entry.js} +1 -1
  296. package/lib/duet/p-8ef91f59.entry.js +4 -0
  297. package/lib/duet/{p-b1b1160e.system.entry.js → p-8efc476e.system.entry.js} +1 -1
  298. package/lib/duet/{p-be3c04fb.entry.js → p-8f2834ae.entry.js} +1 -1
  299. package/lib/duet/p-8f3d5e14.system.entry.js +4 -0
  300. package/lib/duet/{p-2faa3962.entry.js → p-905d2cc8.entry.js} +1 -1
  301. package/lib/duet/{p-628c4fc7.system.entry.js → p-911c761b.system.entry.js} +1 -1
  302. package/lib/duet/{p-b16b89c3.system.entry.js → p-93562bf8.system.entry.js} +1 -1
  303. package/lib/duet/{p-7f2a16b3.entry.js → p-93da242f.entry.js} +1 -1
  304. package/lib/duet/{p-2184a285.system.entry.js → p-9446df5b.system.entry.js} +1 -1
  305. package/lib/duet/p-94760aea.entry.js +4 -0
  306. package/lib/duet/{p-9f5446d7.system.entry.js → p-97d314bb.system.entry.js} +1 -1
  307. package/lib/duet/{p-95f020cc.system.entry.js → p-9885878c.system.entry.js} +1 -1
  308. package/lib/duet/{p-e71cb6f4.entry.js → p-98d99400.entry.js} +1 -1
  309. package/lib/duet/p-9b75cec2.system.entry.js +4 -0
  310. package/lib/duet/{p-72585f83.entry.js → p-9e1585bd.entry.js} +1 -1
  311. package/lib/duet/{p-fad8bcee.system.entry.js → p-9e3c843a.system.entry.js} +1 -1
  312. package/lib/duet/p-9fb2e28a.js +4 -0
  313. package/lib/duet/p-a2728f08.system.entry.js +4 -0
  314. package/lib/duet/{p-7a5077a2.system.entry.js → p-a8c9268c.system.entry.js} +1 -1
  315. package/lib/duet/{p-e8a6eda7.system.entry.js → p-ac25aad5.system.entry.js} +1 -1
  316. package/lib/duet/{p-44bbf984.entry.js → p-b12261bb.entry.js} +1 -1
  317. package/lib/duet/p-b31e663e.system.entry.js +4 -0
  318. package/lib/duet/{p-fa7a4245.entry.js → p-b44b12af.entry.js} +1 -1
  319. package/lib/duet/{p-faaa6249.entry.js → p-b78eeeff.entry.js} +1 -1
  320. package/lib/duet/{p-c518f7da.system.entry.js → p-b8c2b5f2.system.entry.js} +1 -1
  321. package/lib/duet/p-b92f06ff.system.entry.js +4 -0
  322. package/lib/duet/p-bc169783.entry.js +4 -0
  323. package/lib/duet/{p-2e822cf0.entry.js → p-bed02d40.entry.js} +1 -1
  324. package/lib/duet/p-bf097e1b.entry.js +4 -0
  325. package/lib/duet/{p-58b9c7b4.system.entry.js → p-c19e2d81.system.entry.js} +1 -1
  326. package/lib/duet/{p-2a80caf9.entry.js → p-c2d2a2d2.entry.js} +1 -1
  327. package/lib/duet/{p-2e69c81b.entry.js → p-c3164a3c.entry.js} +1 -1
  328. package/lib/duet/p-c4266675.entry.js +4 -0
  329. package/lib/duet/{p-78f49cbf.system.entry.js → p-c919efff.system.entry.js} +1 -1
  330. package/lib/duet/{p-12ee9a23.system.entry.js → p-c9dcf840.system.entry.js} +1 -1
  331. package/lib/duet/p-cf3c27e4.system.entry.js +4 -0
  332. package/lib/duet/p-cf5f89af.entry.js +4 -0
  333. package/lib/duet/{p-d3da2989.system.entry.js → p-cf8b0da5.system.entry.js} +1 -1
  334. package/lib/duet/{p-6fe5922d.system.entry.js → p-cfcfd3fd.system.entry.js} +1 -1
  335. package/lib/duet/p-d225444d.entry.js +4 -0
  336. package/lib/duet/{p-02e23372.entry.js → p-d2abe34b.entry.js} +1 -1
  337. package/lib/duet/p-d5ac7213.entry.js +4 -0
  338. package/lib/duet/p-d658b29d.entry.js +4 -0
  339. package/lib/duet/{p-c4738155.system.entry.js → p-da2b07eb.system.entry.js} +1 -1
  340. package/lib/duet/p-db8ef99d.entry.js +4 -0
  341. package/lib/duet/{p-8760c0ee.system.entry.js → p-dbd0293b.system.entry.js} +1 -1
  342. package/lib/duet/{p-6326cade.system.entry.js → p-dbff88b5.system.entry.js} +1 -1
  343. package/lib/duet/{p-2ff8c614.entry.js → p-dcc18bd4.entry.js} +1 -1
  344. package/lib/duet/{p-835ea0dc.system.entry.js → p-e0ea4e90.system.entry.js} +1 -1
  345. package/lib/duet/p-e27bd167.entry.js +4 -0
  346. package/lib/duet/{p-2b0d6d66.system.entry.js → p-e6c16681.system.entry.js} +1 -1
  347. package/lib/duet/{p-723308e1.entry.js → p-e741b72a.entry.js} +1 -1
  348. package/lib/duet/{p-b3584ef1.system.entry.js → p-e7ba7e64.system.entry.js} +1 -1
  349. package/lib/duet/{p-c22a97ea.system.entry.js → p-e94fb66d.system.entry.js} +1 -1
  350. package/lib/duet/p-ea68c9e4.system.entry.js +4 -0
  351. package/lib/duet/{p-39c34fde.system.entry.js → p-eb6ec3b0.system.entry.js} +1 -1
  352. package/lib/duet/p-ebf82712.system.entry.js +4 -0
  353. package/lib/duet/{p-2c0d4d3c.entry.js → p-eefb5300.entry.js} +1 -1
  354. package/lib/duet/{p-1ef436d2.js → p-f235b6ff.js} +1 -1
  355. package/lib/duet/{p-c3e4e6a2.system.entry.js → p-f61cf0d1.system.entry.js} +1 -1
  356. package/lib/duet/{p-9aae9d2a.system.entry.js → p-f7393070.system.entry.js} +1 -1
  357. package/lib/duet/p-f96bb9f9.system.js +4 -0
  358. package/lib/duet/p-fb021333.entry.js +4 -0
  359. package/lib/duet/{p-47fb8005.system.entry.js → p-fb8a741c.system.entry.js} +1 -1
  360. package/lib/duet/{p-893d0a53.entry.js → p-fd377d28.entry.js} +1 -1
  361. package/lib/duet/{p-e57b04f0.entry.js → p-feac6e72.entry.js} +1 -1
  362. package/lib/duet/{p-a79f86b5.system.entry.js → p-ffdc54ad.system.entry.js} +1 -1
  363. package/lib/esm/duet-action-button.entry.js +18 -3
  364. package/lib/esm/duet-alert.entry.js +1 -1
  365. package/lib/esm/duet-badge.entry.js +1 -1
  366. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  367. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  368. package/lib/esm/duet-button_2.entry.js +1 -1
  369. package/lib/esm/duet-caption_4.entry.js +3 -3
  370. package/lib/esm/duet-card.entry.js +9 -13
  371. package/lib/esm/duet-checkbox.entry.js +1 -1
  372. package/lib/esm/duet-checkmark.entry.js +1 -1
  373. package/lib/esm/duet-choice_2.entry.js +2 -2
  374. package/lib/esm/duet-collapsible.entry.js +1 -1
  375. package/lib/esm/duet-combobox.entry.js +13 -3
  376. package/lib/esm/duet-contact-card.entry.js +1 -1
  377. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  378. package/lib/esm/duet-date-picker.entry.js +2 -2
  379. package/lib/esm/duet-divider_2.entry.js +1 -1
  380. package/lib/esm/duet-editable-table_3.entry.js +28 -13
  381. package/lib/esm/duet-empty-state.entry.js +1 -1
  382. package/lib/esm/duet-fieldset.entry.js +6 -2
  383. package/lib/esm/duet-footer.entry.js +1 -1
  384. package/lib/esm/duet-grid_2.entry.js +4 -2
  385. package/lib/esm/duet-header_2.entry.js +15 -1
  386. package/lib/esm/duet-hero.entry.js +16 -4
  387. package/lib/esm/duet-icon.entry.js +1 -1
  388. package/lib/esm/duet-input_2.entry.js +9 -14
  389. package/lib/esm/duet-layout.entry.js +1 -1
  390. package/lib/esm/duet-list_2.entry.js +1 -1
  391. package/lib/esm/duet-menu-bar-button.entry.js +1 -1
  392. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +3 -2
  393. package/lib/esm/duet-menu-bar-dropdown.entry.js +1 -1
  394. package/lib/esm/duet-menu-bar-link.entry.js +3 -2
  395. package/lib/esm/duet-menu-bar.entry.js +1 -1
  396. package/lib/esm/duet-modal.entry.js +2 -2
  397. package/lib/esm/duet-multiselect.entry.js +24 -4
  398. package/lib/esm/duet-nav.entry.js +1 -1
  399. package/lib/esm/duet-notification_2.entry.js +16 -2
  400. package/lib/esm/duet-number-input.entry.js +47 -27
  401. package/lib/esm/duet-page-heading.entry.js +1 -1
  402. package/lib/esm/duet-pagination_2.entry.js +17 -4
  403. package/lib/esm/duet-progress.entry.js +1 -1
  404. package/lib/esm/duet-radio_2.entry.js +1 -1
  405. package/lib/esm/duet-range-slider.entry.js +1 -1
  406. package/lib/esm/duet-scrollable_3.entry.js +19 -3
  407. package/lib/esm/duet-section-layout.entry.js +1 -1
  408. package/lib/esm/duet-select.entry.js +17 -4
  409. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  410. package/lib/esm/duet-slideout-link.entry.js +1 -1
  411. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  412. package/lib/esm/duet-slideout-panel.entry.js +2 -2
  413. package/lib/esm/duet-slideout.entry.js +3 -3
  414. package/lib/esm/duet-step_2.entry.js +1 -1
  415. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  416. package/lib/esm/duet-submenu-bar-dropdown.entry.js +22 -7
  417. package/lib/esm/duet-submenu-bar-link.entry.js +1 -1
  418. package/lib/esm/duet-submenu-bar.entry.js +2 -2
  419. package/lib/esm/duet-textarea.entry.js +15 -4
  420. package/lib/esm/duet-toggle.entry.js +1 -1
  421. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  422. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  423. package/lib/esm/duet-toolbar-link.entry.js +3 -2
  424. package/lib/esm/duet-toolbar.entry.js +1 -1
  425. package/lib/esm/duet-tooltip.entry.js +23 -2
  426. package/lib/esm/duet-tray.entry.js +1 -1
  427. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  428. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  429. package/lib/esm/duet.js +3 -3
  430. package/lib/esm/{focus-utils-123e9cba.js → focus-utils-6a919f2a.js} +1 -1
  431. package/lib/esm/{index-9d169c3d.js → index-13f57135.js} +1 -1
  432. package/lib/esm/loader.js +3 -3
  433. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  434. package/lib/esm-es5/duet-alert.entry.js +1 -1
  435. package/lib/esm-es5/duet-badge.entry.js +1 -1
  436. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  437. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  438. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  439. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  440. package/lib/esm-es5/duet-card.entry.js +1 -1
  441. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  442. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  443. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  444. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  445. package/lib/esm-es5/duet-combobox.entry.js +2 -2
  446. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  447. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  448. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  449. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  450. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  451. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  452. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  453. package/lib/esm-es5/duet-footer.entry.js +1 -1
  454. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  455. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  456. package/lib/esm-es5/duet-hero.entry.js +1 -1
  457. package/lib/esm-es5/duet-icon.entry.js +2 -2
  458. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  459. package/lib/esm-es5/duet-layout.entry.js +1 -1
  460. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  461. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  462. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  463. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  464. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  465. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  466. package/lib/esm-es5/duet-modal.entry.js +1 -1
  467. package/lib/esm-es5/duet-multiselect.entry.js +2 -2
  468. package/lib/esm-es5/duet-nav.entry.js +1 -1
  469. package/lib/esm-es5/duet-notification_2.entry.js +2 -2
  470. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  471. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  472. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  473. package/lib/esm-es5/duet-progress.entry.js +1 -1
  474. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  475. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  476. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  477. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  478. package/lib/esm-es5/duet-select.entry.js +1 -1
  479. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  480. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  481. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  482. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  483. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  484. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  485. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  486. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  487. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  488. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  489. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  490. package/lib/esm-es5/duet-toggle.entry.js +2 -2
  491. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  492. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  493. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  494. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  495. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  496. package/lib/esm-es5/duet-tray.entry.js +1 -1
  497. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  498. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  499. package/lib/esm-es5/duet.js +1 -1
  500. package/lib/esm-es5/{focus-utils-123e9cba.js → focus-utils-6a919f2a.js} +1 -1
  501. package/lib/esm-es5/{index-9d169c3d.js → index-13f57135.js} +1 -1
  502. package/lib/esm-es5/loader.js +1 -1
  503. package/lib/types/components/duet-action-button/duet-action-button.d.ts +8 -1
  504. package/lib/types/components/duet-combobox/duet-combobox.d.ts +3 -1
  505. package/lib/types/components/duet-editable-table/duet-editable-table.d.ts +4 -1
  506. package/lib/types/components/duet-grid/duet-grid.d.ts +5 -0
  507. package/lib/types/components/duet-header/duet-header.d.ts +1 -0
  508. package/lib/types/components/duet-heading/duet-heading.d.ts +3 -0
  509. package/lib/types/components/duet-hero/duet-hero.d.ts +3 -0
  510. package/lib/types/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.d.ts +6 -0
  511. package/lib/types/components/duet-menu-bar-link/duet-menu-bar-link.d.ts +6 -0
  512. package/lib/types/components/duet-multiselect/duet-multiselect.d.ts +9 -1
  513. package/lib/types/components/duet-notification/duet-notification.d.ts +3 -0
  514. package/lib/types/components/duet-number-input/duet-number-input.d.ts +1 -0
  515. package/lib/types/components/duet-pagination/duet-pagination.d.ts +5 -1
  516. package/lib/types/components/duet-select/duet-select.d.ts +1 -0
  517. package/lib/types/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.d.ts +2 -1
  518. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +10 -0
  519. package/lib/types/components/duet-table/duet-table.d.ts +6 -1
  520. package/lib/types/components/duet-textarea/duet-textarea.d.ts +1 -0
  521. package/lib/types/components/duet-toolbar-link/duet-toolbar-link.d.ts +6 -0
  522. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +5 -0
  523. package/lib/types/components.d.ts +52 -0
  524. package/package.json +5 -5
  525. package/lib/dist-custom-elements/p-132f2514.js +0 -235
  526. package/lib/dist-custom-elements/p-e48e8201.js +0 -180
  527. package/lib/duet/p-00e57f9b.system.entry.js +0 -4
  528. package/lib/duet/p-1710310b.entry.js +0 -4
  529. package/lib/duet/p-18843061.entry.js +0 -4
  530. package/lib/duet/p-197dba64.system.entry.js +0 -4
  531. package/lib/duet/p-1d283741.system.entry.js +0 -4
  532. package/lib/duet/p-21d08944.entry.js +0 -4
  533. package/lib/duet/p-21d4df80.entry.js +0 -4
  534. package/lib/duet/p-2a89686a.entry.js +0 -4
  535. package/lib/duet/p-459b8e74.system.entry.js +0 -4
  536. package/lib/duet/p-45a64d20.entry.js +0 -4
  537. package/lib/duet/p-5127e9fb.entry.js +0 -4
  538. package/lib/duet/p-52766fb1.entry.js +0 -4
  539. package/lib/duet/p-58d08fb8.entry.js +0 -4
  540. package/lib/duet/p-5c083efb.system.entry.js +0 -4
  541. package/lib/duet/p-5f872140.entry.js +0 -4
  542. package/lib/duet/p-6023d419.system.entry.js +0 -4
  543. package/lib/duet/p-6fe463e6.entry.js +0 -4
  544. package/lib/duet/p-72264693.entry.js +0 -4
  545. package/lib/duet/p-850b95d7.entry.js +0 -4
  546. package/lib/duet/p-8a963cd7.system.entry.js +0 -4
  547. package/lib/duet/p-8f60b4a4.entry.js +0 -4
  548. package/lib/duet/p-98c7286c.entry.js +0 -4
  549. package/lib/duet/p-9f9a14d7.entry.js +0 -4
  550. package/lib/duet/p-a3782a14.entry.js +0 -4
  551. package/lib/duet/p-a6a5458a.entry.js +0 -4
  552. package/lib/duet/p-acb0fbdc.system.entry.js +0 -4
  553. package/lib/duet/p-afb58e46.js +0 -4
  554. package/lib/duet/p-b421ea8a.system.entry.js +0 -4
  555. package/lib/duet/p-c0ac70a9.entry.js +0 -4
  556. package/lib/duet/p-c360334a.system.js +0 -4
  557. package/lib/duet/p-cb2bd40e.entry.js +0 -4
  558. package/lib/duet/p-d5474f30.system.entry.js +0 -4
  559. package/lib/duet/p-d8d3f485.system.entry.js +0 -4
  560. package/lib/duet/p-daa0dccd.entry.js +0 -4
  561. package/lib/duet/p-dc71bc89.entry.js +0 -4
  562. package/lib/duet/p-dcce6bad.entry.js +0 -4
  563. package/lib/duet/p-e73937e1.system.entry.js +0 -4
  564. package/lib/duet/p-f9c26b20.system.entry.js +0 -4
@@ -248,23 +248,26 @@
248
248
  .duet-card-image-mask + .duet-card-heading {
249
249
  border-radius: 0;
250
250
  }
251
- .duet-card-heading[role=button] {
252
- -webkit-user-select: none;
253
- user-select: none;
251
+ .duet-card-heading.duet-card-heading--collapsible {
252
+ cursor: pointer;
253
+ }
254
+ .duet-card-heading.duet-card-heading--collapsible button {
255
+ width: 100%;
256
+ font-family: inherit;
257
+ font-size: inherit;
258
+ font-weight: inherit;
259
+ color: inherit;
260
+ text-align: left;
254
261
  cursor: pointer;
255
- border-radius: 4px;
256
- -webkit-appearance: none;
257
- -webkit-tap-highlight-color: transparent;
258
- appearance: none;
259
262
  }
260
- .duet-card-heading[role=button]:focus {
263
+ .duet-card-heading.duet-card-heading--collapsible button:focus {
261
264
  outline: 0;
262
265
  }
263
- :host(.user-is-tabbing) .duet-card-heading[role=button]:focus {
266
+ :host(.user-is-tabbing) .duet-card-heading.duet-card-heading--collapsible button:focus {
264
267
  border-radius: 4px;
265
268
  box-shadow: 0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179);
266
269
  }
267
- :host(.user-is-tabbing) .duet-theme-turva .duet-card-heading[role=button]:focus {
270
+ :host(.user-is-tabbing) .duet-theme-turva .duet-card-heading.duet-card-heading--collapsible button:focus {
268
271
  box-shadow: 0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58);
269
272
  }
270
273
  .duet-card-collapsed .duet-card-heading {
@@ -63,20 +63,16 @@ export class DuetCard {
63
63
  renderHeading() {
64
64
  const safeHeadingLevel = sanitizeString(this.headingLevel);
65
65
  const HeadingTag = [...duetHeadingLevels, duetBlock].some(tag => tag === safeHeadingLevel) ? safeHeadingLevel : "h2";
66
- const headingProps = this.collapsible
67
- ? {
68
- role: "button",
69
- tabindex: "0",
70
- "aria-controls": this.cardId,
71
- "aria-expanded": this.open ? "true" : "false",
72
- onClick: this.togglePanel,
73
- onKeyDown: this.handleKeyDown,
74
- }
75
- : {};
76
66
  const headingStyles = {
77
67
  backgroundColor: getColorByName(this.headingBackground),
78
68
  };
79
- return (h(HeadingTag, Object.assign({ style: headingStyles, class: "duet-card-heading" }, headingProps), h("div", { class: "duet-card-heading-grid" }, this.icon && (h(Fragment, null, h("duet-icon", { class: "duet-card-icon", name: this.icon, size: "medium", margin: "none", color: "currentColor" }), h("duet-spacer", { direction: "horizontal", size: "small" }))), h("div", { class: "duet-card-heading-text" }, this.heading ? this.heading : h("slot", { name: "heading" })), this.secondaryHeading && (h(Fragment, null, h("duet-spacer", { direction: "horizontal", size: "small" }), h("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--inline" }, this.secondaryHeading))), this.collapsible && (h(Fragment, null, h("duet-spacer", { direction: "horizontal", size: "small" }), h("duet-icon", { class: "duet-card-caret", icon: arrowUpIcon.svg, size: "small", margin: "none", color: "currentColor" })))), this.secondaryHeading && (h("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--new-line" }, this.secondaryHeading)), h("slot", { name: "below-heading" })));
69
+ const headingContent = (h(Fragment, null, h("div", { class: "duet-card-heading-grid" }, this.icon && (h(Fragment, null, h("duet-icon", { class: "duet-card-icon", name: this.icon, size: "medium", margin: "none", color: "currentColor" }), h("duet-spacer", { direction: "horizontal", size: "small" }))), h("div", { class: "duet-card-heading-text" }, this.heading ? this.heading : h("slot", { name: "heading" })), this.secondaryHeading && (h(Fragment, null, h("duet-spacer", { direction: "horizontal", size: "small" }), h("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--inline" }, this.secondaryHeading))), this.collapsible && (h(Fragment, null, h("duet-spacer", { direction: "horizontal", size: "small" }), h("duet-icon", { class: "duet-card-caret", icon: arrowUpIcon.svg, size: "small", margin: "none", color: "currentColor" })))), this.secondaryHeading && (h("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--new-line" }, this.secondaryHeading)), h("slot", { name: "below-heading" })));
70
+ if (this.collapsible) {
71
+ return (h(HeadingTag, { style: headingStyles, class: "duet-card-heading duet-card-heading--collapsible", onClick: this.togglePanel, onKeyDown: this.handleKeyDown }, h("button", { "aria-controls": this.cardId, "aria-expanded": this.open ? "true" : "false" }, headingContent)));
72
+ }
73
+ else {
74
+ return (h(HeadingTag, { style: headingStyles, class: "duet-card-heading" }, headingContent));
75
+ }
80
76
  }
81
77
  /**
82
78
  * Sets focus on the specified `duet-card`. Use this method instead of the global
@@ -5,7 +5,7 @@ import { Build, h, Host, } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common";
6
6
  import { debounce } from "../../utils/js-utils";
7
7
  import { isArrowDownKey, isArrowUpKey, isEnterKey, isEscapeKey, isTabKey } from "../../utils/keyboard-utils";
8
- import { getLanguage, getLocaleString } from "../../utils/language-utils";
8
+ import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
9
9
  import { parsePossibleJSON } from "../../utils/string-utils";
10
10
  import { DuetComboBoxSelect } from "./duet-combobox-select";
11
11
  export class DuetCombobox {
@@ -26,6 +26,7 @@ export class DuetCombobox {
26
26
  this.listOpen = false;
27
27
  this.selectedItems = new Set();
28
28
  this.activeItem = undefined;
29
+ this.language = getLanguage();
29
30
  this.accessibleLabelDefaults = {
30
31
  en: {
31
32
  heading: "Select:",
@@ -56,6 +57,12 @@ export class DuetCombobox {
56
57
  activeItemHandler(state) {
57
58
  this.input.accessibleActiveDescendant = this.listOpen && (state || state === 0) ? `active_item` : "";
58
59
  }
60
+ watchLanguageStateHandler(newValue, oldValue) {
61
+ if (newValue !== oldValue &&
62
+ this.accessibleLabels === getLocaleString(parsePossibleJSON(this.accessibleLabelDefaults), oldValue)) {
63
+ this.accessibleLabels = getLocaleString(parsePossibleJSON(this.accessibleLabelDefaults), newValue);
64
+ }
65
+ }
59
66
  handleDocumentClick(e) {
60
67
  //we want to remove all user text if they have NOT selected from the dropdown
61
68
  const path = e.composedPath();
@@ -94,6 +101,7 @@ export class DuetCombobox {
94
101
  }
95
102
  });
96
103
  this.element.addEventListener("keydown", this.handleInputKeyDownEvent.bind(this));
104
+ connectLanguageChangeObserver(this);
97
105
  //add correct aria attributes to the input element
98
106
  this.input.accessibleAutocomplete = "list";
99
107
  this.input.accessibleControls = "duet-combobox-list-element";
@@ -109,6 +117,7 @@ export class DuetCombobox {
109
117
  e.stopPropagation();
110
118
  });
111
119
  this.resizeObserver.disconnect();
120
+ disconnectLanguageChangeObserver(this);
112
121
  }
113
122
  componentDidLoad() {
114
123
  // observe resize events to dynamically adjust size of dropdown area
@@ -380,7 +389,7 @@ export class DuetCombobox {
380
389
  },
381
390
  "accessibleLabels": {
382
391
  "type": "unknown",
383
- "mutable": false,
392
+ "mutable": true,
384
393
  "complexType": {
385
394
  "original": "Record<string, string>",
386
395
  "resolved": "{ [x: string]: string; }",
@@ -567,7 +576,8 @@ export class DuetCombobox {
567
576
  "selectionMsg": {},
568
577
  "listOpen": {},
569
578
  "selectedItems": {},
570
- "activeItem": {}
579
+ "activeItem": {},
580
+ "language": {}
571
581
  };
572
582
  }
573
583
  static get events() {
@@ -631,6 +641,9 @@ export class DuetCombobox {
631
641
  return [{
632
642
  "propName": "activeItem",
633
643
  "methodName": "activeItemHandler"
644
+ }, {
645
+ "propName": "language",
646
+ "methodName": "watchLanguageStateHandler"
634
647
  }];
635
648
  }
636
649
  static get listeners() {
@@ -5,7 +5,7 @@ import { h, Host } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
6
  import { fieldSorter } from "../../utils/js-utils";
7
7
  import { isKeyboardClick } from "../../utils/keyboard-utils";
8
- import { getLocaleString } from "../../utils/language-utils";
8
+ import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
9
9
  import { TableData } from "./duet-editable-table-tabledata";
10
10
  export class DuetEditableTable {
11
11
  constructor() {
@@ -41,6 +41,7 @@ export class DuetEditableTable {
41
41
  this.toggleColumn(column, e);
42
42
  }
43
43
  };
44
+ this.language = getLanguage();
44
45
  this.margin = "auto";
45
46
  this.variation = "striped";
46
47
  this.sticky = false;
@@ -63,6 +64,12 @@ export class DuetEditableTable {
63
64
  this.hasHeadSlotFirst = !!this.element.querySelector("[slot='thead-first']");
64
65
  this.hasHeadSlotLast = !!this.element.querySelector("[slot='thead-last']");
65
66
  }
67
+ connectedCallback() {
68
+ connectLanguageChangeObserver(this);
69
+ }
70
+ disconnectedCallback() {
71
+ disconnectLanguageChangeObserver(this);
72
+ }
66
73
  createLabel(column) {
67
74
  const { sort_order, direction, index, label } = column;
68
75
  const i18nLabel = getLocaleString(label);
@@ -81,7 +88,7 @@ export class DuetEditableTable {
81
88
  }
82
89
  return "action-subtract-small";
83
90
  };
84
- return (h("span", { class: "duet-table-label", "data-index": index }, h("duet-button", { size: "small", icon: getButtonIcon(), "icon-size": "medium-small", "accessible-label": getLocaleString(this.sortableDefaultLabel), variation: "plain", margin: "none", "icon-right": true, onClick: event => this.toggleColumn(column, event), onKeyDown: event => this.handleKeyDown(column, event) }, i18nLabel)));
91
+ return (h("span", { class: "duet-table-label", "data-index": index }, h("duet-button", { size: "small", icon: getButtonIcon(), "icon-size": "medium-small", "accessible-label": this.sortableDefaultLabel[this.language], variation: "plain", margin: "none", "icon-right": true, onClick: event => this.toggleColumn(column, event), onKeyDown: event => this.handleKeyDown(column, event) }, i18nLabel)));
85
92
  }
86
93
  getSortedColumns() {
87
94
  //create a new array from sort instead of mutating original
@@ -110,7 +117,7 @@ export class DuetEditableTable {
110
117
  const label = this.createLabel(column);
111
118
  return label !== "" ? h("th", { scope: "col" }, label) : h("td", null);
112
119
  }
113
- }), this.actions && (h("th", { scope: "col", class: "duet-table-action-header-heading" }, this.actions && h("duet-visually-hidden", null, getLocaleString(this.actionColumnLabel))))));
120
+ }), this.actions && (h("th", { scope: "col", class: "duet-table-action-header-heading" }, this.actions && h("duet-visually-hidden", null, this.actionColumnLabel[this.language])))));
114
121
  }
115
122
  renderActions(rowItem, index) {
116
123
  // escape early
@@ -448,6 +455,11 @@ export class DuetEditableTable {
448
455
  }
449
456
  };
450
457
  }
458
+ static get states() {
459
+ return {
460
+ "language": {}
461
+ };
462
+ }
451
463
  static get events() {
452
464
  return [{
453
465
  "method": "duetTableToggle",
@@ -35,7 +35,11 @@ export class DuetFieldset {
35
35
  * Always the last one in the class.
36
36
  */
37
37
  render() {
38
- return (h(Host, { class: { "duet-m-0": this.margin === "none" } }, h("fieldset", { "aria-labelledby": `${this.errorId} ${this.labelId}`, "aria-errormessage": this.error ? this.errorId : null, class: {
38
+ return (h(Host, { class: { "duet-m-0": this.margin === "none" } }, h("fieldset", { "aria-labelledby": this.labelId, "aria-describedby": this.error ? this.errorId : null,
39
+ // NVDA and VoiceOver do not yet support aria-errormessage
40
+ // once they do, we can remove errors from the aria-describedby
41
+ // aria-errormessage={this.error ? this.errorId : null}
42
+ class: {
39
43
  "duet-fieldset": true,
40
44
  "duet-theme-turva": this.theme === "turva",
41
45
  } }, h("legend", { id: this.labelId }, h("span", null, this.label), this.caption && h("span", null, this.caption)), h("div", { class: {
@@ -19,6 +19,9 @@
19
19
  :host(.duet-grid-breakpoint-x-small) {
20
20
  flex-direction: row !important;
21
21
  }
22
+ :host(.duet-grid-breakpoint-x-small).duet-grid-row-reverse {
23
+ flex-direction: row-reverse !important;
24
+ }
22
25
  @media (max-width: 22.5em) {
23
26
  :host(.duet-grid-breakpoint-x-small) {
24
27
  flex-direction: column !important;
@@ -29,24 +32,36 @@
29
32
  :host(.duet-grid-breakpoint-small) {
30
33
  flex-direction: row !important;
31
34
  }
35
+ :host(.duet-grid-breakpoint-small).duet-grid-row-reverse {
36
+ flex-direction: row-reverse !important;
37
+ }
32
38
  }
33
39
 
34
40
  @media (min-width: 48em) {
35
41
  :host(.duet-grid-breakpoint-medium) {
36
42
  flex-direction: row !important;
37
43
  }
44
+ :host(.duet-grid-breakpoint-medium).duet-grid-row-reverse {
45
+ flex-direction: row-reverse !important;
46
+ }
38
47
  }
39
48
 
40
49
  @media (min-width: 62em) {
41
50
  :host(.duet-grid-breakpoint-large) {
42
51
  flex-direction: row !important;
43
52
  }
53
+ :host(.duet-grid-breakpoint-large).duet-grid-row-reverse {
54
+ flex-direction: row-reverse !important;
55
+ }
44
56
  }
45
57
 
46
58
  @media (min-width: 64.0625em) {
47
59
  :host(.duet-grid-breakpoint-x-large) {
48
60
  flex-direction: row !important;
49
61
  }
62
+ :host(.duet-grid-breakpoint-x-large).duet-grid-row-reverse {
63
+ flex-direction: row-reverse !important;
64
+ }
50
65
  }
51
66
 
52
67
  :host(.duet-grid-wrap) {
@@ -56,6 +71,9 @@
56
71
  :host(.duet-no-stacking) {
57
72
  flex-direction: row !important;
58
73
  }
74
+ :host(.duet-no-stacking).duet-grid-row-reverse {
75
+ flex-direction: row-reverse !important;
76
+ }
59
77
 
60
78
  :host(.duet-grid-direction-vertical.duet-grid-breakpoint-x-small) {
61
79
  flex-direction: column !important;
@@ -18,6 +18,7 @@ export class DuetGrid {
18
18
  this.responsive = false;
19
19
  this.breakpoint = "small";
20
20
  this.direction = "horizontal";
21
+ this.rowReverse = false;
21
22
  this.alignment = "top";
22
23
  this.distribution = "default";
23
24
  this.mobile = "";
@@ -140,6 +141,7 @@ export class DuetGrid {
140
141
  "duet-grid-breakpoint-medium": this.breakpoint === "medium",
141
142
  "duet-grid-breakpoint-large": this.breakpoint === "large",
142
143
  "duet-grid-breakpoint-x-large": this.breakpoint === "x-large",
144
+ "duet-grid-row-reverse": this.rowReverse,
143
145
  } }));
144
146
  }
145
147
  static get is() { return "duet-grid"; }
@@ -220,6 +222,24 @@ export class DuetGrid {
220
222
  "reflect": false,
221
223
  "defaultValue": "\"horizontal\""
222
224
  },
225
+ "rowReverse": {
226
+ "type": "boolean",
227
+ "mutable": false,
228
+ "complexType": {
229
+ "original": "boolean",
230
+ "resolved": "boolean",
231
+ "references": {}
232
+ },
233
+ "required": false,
234
+ "optional": false,
235
+ "docs": {
236
+ "tags": [],
237
+ "text": "Reverse the order of the grid items when horizontal. Usefull when we want the primary item\nto be on bottom right on desktop, but on top on mobile and the first for screen readers."
238
+ },
239
+ "attribute": "row-reverse",
240
+ "reflect": false,
241
+ "defaultValue": "false"
242
+ },
223
243
  "alignment": {
224
244
  "type": "string",
225
245
  "mutable": false,
@@ -13,7 +13,7 @@ import { disableBodyScroll, enableBodyScroll } from "body-scroll-lock/lib/bodySc
13
13
  import { DuetStringsExternalDefaults } from "../../common-strings";
14
14
  import { inheritGlobalTheme } from "../../common/themeable-component";
15
15
  import { isArrowDownKey, isArrowLeftKey, isArrowRightKey, isArrowUpKey, isEscapeKey, isSpaceKey, } from "../../utils/keyboard-utils";
16
- import { getLanguage, getLocaleString } from "../../utils/language-utils";
16
+ import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
17
17
  import { parsePossibleJSON } from "../../utils/string-utils";
18
18
  import { DuetHeaderDropdown } from "./duet-header-dropdown";
19
19
  import { DuetHeaderHamburger } from "./duet-header-hamburger";
@@ -251,6 +251,17 @@ export class DuetHeader {
251
251
  this.contactItems = undefined;
252
252
  this.languageItems = undefined;
253
253
  }
254
+ watchLanguageStateHandler(newValue, oldValue) {
255
+ if (newValue !== oldValue && this.accessibleLabel === this.accessibleLabelDefaults[oldValue]) {
256
+ this.accessibleLabel = getLocaleString(this.accessibleLabelDefaults, newValue);
257
+ }
258
+ if (newValue !== oldValue && this.accessibleI18nLabels === this.accessibleI18nLabelsDefaults[oldValue]) {
259
+ this.accessibleI18nLabels = getLocaleString(this.accessibleI18nLabelsDefaults, newValue);
260
+ }
261
+ if (newValue !== oldValue && this.accessibleLabelExternal === this.accessibleLabelExternalDefaults[oldValue]) {
262
+ this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults, newValue);
263
+ }
264
+ }
254
265
  /**
255
266
  * Component lifecycle events.
256
267
  */
@@ -267,6 +278,7 @@ export class DuetHeader {
267
278
  this.boundMqlFunctions[i] = bound;
268
279
  }
269
280
  }
281
+ connectLanguageChangeObserver(this);
270
282
  }
271
283
  disconnectedCallback() {
272
284
  if (this.navigationEl) {
@@ -279,6 +291,7 @@ export class DuetHeader {
279
291
  }
280
292
  }
281
293
  this.boundMqlFunctions = [];
294
+ disconnectLanguageChangeObserver(this);
282
295
  }
283
296
  /**
284
297
  * Component event handling.
@@ -614,7 +627,7 @@ export class DuetHeader {
614
627
  },
615
628
  "accessibleI18nLabels": {
616
629
  "type": "unknown",
617
- "mutable": false,
630
+ "mutable": true,
618
631
  "complexType": {
619
632
  "original": "I18nText",
620
633
  "resolved": "I18nText",
@@ -664,7 +677,7 @@ export class DuetHeader {
664
677
  },
665
678
  "accessibleLabelExternal": {
666
679
  "type": "string",
667
- "mutable": false,
680
+ "mutable": true,
668
681
  "complexType": {
669
682
  "original": "string",
670
683
  "resolved": "string",
@@ -708,7 +721,7 @@ export class DuetHeader {
708
721
  },
709
722
  "accessibleLabel": {
710
723
  "type": "string",
711
- "mutable": false,
724
+ "mutable": true,
712
725
  "complexType": {
713
726
  "original": "string",
714
727
  "resolved": "string",
@@ -1271,6 +1284,9 @@ export class DuetHeader {
1271
1284
  static get elementRef() { return "element"; }
1272
1285
  static get watchers() {
1273
1286
  return [{
1287
+ "propName": "language",
1288
+ "methodName": "watchLanguageStateHandler"
1289
+ }, {
1274
1290
  "propName": "user",
1275
1291
  "methodName": "refresh"
1276
1292
  }, {
@@ -5,6 +5,9 @@ import { h } from "@stencil/core";
5
5
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
6
  import { sanitizeString } from "../../utils/string-utils";
7
7
  import { getColorByName } from "../../utils/token-utils";
8
+ /**
9
+ * @part duet-heading - piercing selector for styling the heading element that should be used only in special circumstances
10
+ */
8
11
  export class DuetHeading {
9
12
  constructor() {
10
13
  this.level = "h2";
@@ -39,7 +42,7 @@ export class DuetHeading {
39
42
  "duet-m-0": this.margin === "none",
40
43
  [this.visualLevel ? this.visualLevel : this.level]: true,
41
44
  "duet-theme-turva": this.theme === "turva",
42
- }, style: { color } }, h("slot", null)));
45
+ }, style: { color }, part: "duet-heading" }, h("slot", null)));
43
46
  }
44
47
  static get is() { return "duet-heading"; }
45
48
  static get encapsulation() { return "shadow"; }
@@ -227,7 +227,7 @@
227
227
  }
228
228
  @media (min-width: 22.5em) {
229
229
  .duet-hero.duet-hero-campaign .brand-shape, .duet-hero.duet-hero-section .brand-shape {
230
- top: 155px;
230
+ top: 160px;
231
231
  width: 450px;
232
232
  height: 450px;
233
233
  }
@@ -266,6 +266,19 @@
266
266
  .duet-hero.duet-hero-campaign .duet-hero-text, .duet-hero.duet-hero-section .duet-hero-text {
267
267
  width: 100%;
268
268
  }
269
+ .duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading), .duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading) {
270
+ font-size: 36px;
271
+ }
272
+ @media (min-width: 36em) {
273
+ .duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading), .duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading) {
274
+ font-size: 48px;
275
+ }
276
+ }
277
+ @media (min-width: 62em) {
278
+ .duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-heading::part(duet-heading), .duet-hero.duet-hero-section .duet-hero-text .duet-hero-heading::part(duet-heading) {
279
+ font-size: 64px;
280
+ }
281
+ }
269
282
  .duet-hero.duet-hero-campaign .duet-hero-text .duet-hero-subheading,
270
283
  .duet-hero.duet-hero-campaign .duet-hero-text duet-paragraph, .duet-hero.duet-hero-section .duet-hero-text .duet-hero-subheading,
271
284
  .duet-hero.duet-hero-section .duet-hero-text duet-paragraph {
@@ -351,7 +364,7 @@
351
364
  background: none;
352
365
  }
353
366
  .duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape {
354
- top: 115px;
367
+ top: 125px;
355
368
  left: -10px;
356
369
  width: 350px;
357
370
  height: 350px;
@@ -364,7 +377,7 @@
364
377
  }
365
378
  @media (min-width: 22.5em) {
366
379
  .duet-hero.duet-hero-campaign.duet-theme-turva .brand-shape, .duet-hero.duet-hero-section.duet-theme-turva .brand-shape {
367
- top: 140px;
380
+ top: 143px;
368
381
  left: -30px;
369
382
  width: 450px;
370
383
  height: 450px;
@@ -468,6 +481,7 @@
468
481
  }
469
482
  @media (min-width: 62em) {
470
483
  .duet-hero.duet-hero-product {
484
+ min-height: 375px;
471
485
  padding-top: 0;
472
486
  }
473
487
  .duet-hero.duet-hero-product.duet-hero-narrow {
@@ -485,6 +499,9 @@
485
499
  .duet-hero.duet-hero-product .background-area {
486
500
  top: -112px;
487
501
  }
502
+ .duet-hero.duet-hero-product .background-area.narrow {
503
+ top: 0;
504
+ }
488
505
  }
489
506
  .duet-hero.duet-hero-product .background-container {
490
507
  position: absolute;
@@ -497,6 +514,9 @@
497
514
  .duet-hero.duet-hero-product .background-container {
498
515
  top: -48px;
499
516
  }
517
+ .duet-hero.duet-hero-product .background-container.narrow {
518
+ top: -160px;
519
+ }
500
520
  }
501
521
  .duet-hero.duet-hero-product .background {
502
522
  position: absolute;
@@ -5,7 +5,7 @@ import newWindowIcon from "@duetds/icons/lib/assets/action-new-window-small";
5
5
  import { h } from "@stencil/core";
6
6
  import { DuetStringsExternalDefaults } from "../../common-strings";
7
7
  import { inheritGlobalTheme } from "../../common/themeable-component";
8
- import { getLanguage, getLocaleString } from "../../utils/language-utils";
8
+ import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
9
9
  import { parsePossibleJSON } from "../../utils/string-utils";
10
10
  /**
11
11
  * @part duet-hero - piercing selector for styling the hero container
@@ -60,6 +60,11 @@ export class DuetHero {
60
60
  this.actions = undefined;
61
61
  this.layout = "narrow";
62
62
  }
63
+ watchLanguageStateHandler(newValue, oldValue) {
64
+ if (newValue !== oldValue && this.accessibleLabelExternal === this.accessibleLabelExternalDefaults[oldValue]) {
65
+ this.accessibleLabelExternal = getLocaleString(this.accessibleLabelExternalDefaults, newValue);
66
+ }
67
+ }
63
68
  /**
64
69
  * Component lifecycle events.
65
70
  */
@@ -69,6 +74,12 @@ export class DuetHero {
69
74
  this.hasSubHeadingSlot = !!this.element.querySelector('[slot="subheading"]');
70
75
  this.refresh();
71
76
  }
77
+ connectedCallback() {
78
+ connectLanguageChangeObserver(this);
79
+ }
80
+ disconnectedCallback() {
81
+ disconnectLanguageChangeObserver(this);
82
+ }
72
83
  /**
73
84
  * Local methods.
74
85
  */
@@ -155,7 +166,7 @@ export class DuetHero {
155
166
  "duet-hero-text-center": (this.textCenter && !this.leftAlign) || campaignOrSection,
156
167
  "duet-hero-left-align": this.leftAlign && !campaignOrSection,
157
168
  "duet-hero-narrow": this.layout === "narrow",
158
- }, part: "duet-hero" }, campaignOrSection && this.image && (h("div", { class: "background-area" }, h("div", { class: "background-container" }, h("div", { class: "background" }, h("img", { src: this.image, alt: "", role: "presentation" })), h("div", { class: "brand-shape" })))), this.variation === "product" && this.image && (h("div", { class: "background-area" }, h("div", { class: "background-container" }, h("div", { class: { background: true, [this.layout]: true } }, h("div", { class: { "background-mask": true, [this.layout]: true } }), this.theme !== "turva" && h("div", { class: { "brand-shape": true, [this.layout]: true } }), h("div", { class: { "brand-shaped-image": true, [this.layout]: true } }, h("div", { class: { "brand-shaped-image-wrapper": true, [this.layout]: true } }, h("div", { class: { "brand-shaped-image-bg": true, [this.layout]: true }, style: styles }))), this.categoryIcon && (h("div", { class: { "brand-shaped-icon": true, [this.layout]: true } }, h("duet-icon", { class: { [this.layout]: true }, background: "none", name: this.categoryIcon, margin: "none", size: "auto", responsive: false }))))))), this.variation === "content" && this.image && (h("div", { class: "background-area" }, h("div", { class: "background" }, h("div", { class: "background-mask" }), this.theme !== "turva" && h("div", { class: "brand-shape" }), h("div", { class: "brand-shaped-image" }, h("div", { class: "brand-shaped-image-wrapper" }, h("div", { class: "brand-shaped-image-bg", style: styles })))))), h("div", { class: { "duet-hero-wrapper": true, [this.layout]: true } }, this.image && this.variation === "image" && (h("div", { class: "duet-hero-image-mask" }, h("div", { class: "duet-hero-image-wrapper" }, h("div", { class: "duet-hero-image", style: styles })))), (this.variation === "gray" || this.variation === "light" || this.variation === "minimal") &&
169
+ }, part: "duet-hero" }, campaignOrSection && this.image && (h("div", { class: "background-area" }, h("div", { class: "background-container" }, h("div", { class: "background" }, h("img", { src: this.image, alt: "", role: "presentation" })), h("div", { class: "brand-shape" })))), this.variation === "product" && this.image && (h("div", { class: { "background-area": true, [this.layout]: true } }, h("div", { class: { "background-container": true, [this.layout]: true } }, h("div", { class: { background: true, [this.layout]: true } }, h("div", { class: { "background-mask": true, [this.layout]: true } }), this.theme !== "turva" && h("div", { class: { "brand-shape": true, [this.layout]: true } }), h("div", { class: { "brand-shaped-image": true, [this.layout]: true } }, h("div", { class: { "brand-shaped-image-wrapper": true, [this.layout]: true } }, h("div", { class: { "brand-shaped-image-bg": true, [this.layout]: true }, style: styles }))), this.categoryIcon && (h("div", { class: { "brand-shaped-icon": true, [this.layout]: true } }, h("duet-icon", { class: { [this.layout]: true }, background: "none", name: this.categoryIcon, margin: "none", size: "auto", responsive: false }))))))), this.variation === "content" && this.image && (h("div", { class: "background-area" }, h("div", { class: "background" }, h("div", { class: "background-mask" }), this.theme !== "turva" && h("div", { class: "brand-shape" }), h("div", { class: "brand-shaped-image" }, h("div", { class: "brand-shaped-image-wrapper" }, h("div", { class: "brand-shaped-image-bg", style: styles })))))), h("div", { class: { "duet-hero-wrapper": true, [this.layout]: true } }, this.image && this.variation === "image" && (h("div", { class: "duet-hero-image-mask" }, h("div", { class: "duet-hero-image-wrapper" }, h("div", { class: "duet-hero-image", style: styles })))), (this.variation === "gray" || this.variation === "light" || this.variation === "minimal") &&
159
170
  this.processedBack && (h("div", { class: "duet-hero-back" }, h("duet-button", { style: buttonStyles, variation: "plain", icon: "action-arrow-left-small", theme: this.theme, iconSize: "small", color: buttonColor, padding: "none", margin: "none", fixed: true, url: this.processedBack.href, identifier: this.processedBack.id, onClick: event => this.handleClick(event, {
160
171
  label: this.processedBack.label,
161
172
  href: this.processedBack.href,
@@ -492,7 +503,7 @@ export class DuetHero {
492
503
  },
493
504
  "accessibleLabelExternal": {
494
505
  "type": "string",
495
- "mutable": false,
506
+ "mutable": true,
496
507
  "complexType": {
497
508
  "original": "string",
498
509
  "resolved": "string",
@@ -768,6 +779,9 @@ export class DuetHero {
768
779
  static get elementRef() { return "element"; }
769
780
  static get watchers() {
770
781
  return [{
782
+ "propName": "language",
783
+ "methodName": "watchLanguageStateHandler"
784
+ }, {
771
785
  "propName": "back",
772
786
  "methodName": "refresh"
773
787
  }, {
@@ -103,20 +103,17 @@ export class DuetInput {
103
103
  * Private functions
104
104
  */
105
105
  this.getDescribedBy = () => {
106
- let describedBy = "";
106
+ const describedBy = [];
107
107
  if (this.isCaptionVisible && this.topCaptionId) {
108
- describedBy = this.topCaptionId;
109
- if (this.accessibleDescribedBy) {
110
- describedBy += " " + this.accessibleDescribedBy;
111
- }
108
+ describedBy.push(this.topCaptionId);
112
109
  }
113
- else if (this.accessibleDescribedBy.length > 0) {
114
- describedBy = this.accessibleDescribedBy;
110
+ if (this.accessibleDescribedBy) {
111
+ describedBy.push(this.accessibleDescribedBy);
115
112
  }
116
- else {
117
- describedBy = undefined;
113
+ if (this.error) {
114
+ describedBy.push(this.errorId);
118
115
  }
119
- return describedBy;
116
+ return describedBy.length > 0 ? describedBy.join(" ") : null;
120
117
  };
121
118
  this.handleClearClick = event => {
122
119
  const clearing = this.clearInput();
@@ -317,9 +314,7 @@ export class DuetInput {
317
314
  disabled: this.disabled,
318
315
  "is-number": this.component === "number",
319
316
  "is-date": this.component === "date",
320
- }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": this.accessibleLabelledBy
321
- ? `${this.errorId} ${this.labelId} ${this.accessibleLabelledBy}`
322
- : `${this.errorId} ${this.labelId}`, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-details": this.accessibleDetails, "aria-errormessage": this.error ? this.errorId : null, "aria-description": this.accessibleDescription, "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.type === "password" ? "off" : this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.value && hasInputIcon && (h("div", { class: "duet-input-icon" }, h("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && (h("div", { class: {
317
+ }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": this.accessibleLabelledBy ? `${this.labelId} ${this.accessibleLabelledBy}` : this.labelId, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "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.type === "password" ? "off" : this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.value && hasInputIcon && (h("div", { class: "duet-input-icon" }, h("duet-icon", { margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && (h("div", { class: {
323
318
  "duet-input-clear-icon": true,
324
319
  "duet-input-clear-icon-single": !hasInputIcon,
325
320
  "duet-input-clear-icon-double": !!this.icon,
@@ -66,6 +66,9 @@
66
66
  height: 20px;
67
67
  margin-left: -15px;
68
68
  }
69
+ .duet-theme-turva .duet-link-external {
70
+ margin-left: -12px;
71
+ }
69
72
 
70
73
  .duet-tab-to-link {
71
74
  padding: 15px 28px 16px !important;
@@ -20,6 +20,7 @@ export class DuetMenuBarDropdownLink {
20
20
  this.theme = "";
21
21
  this.href = "#";
22
22
  this.icon = undefined;
23
+ this.accessibleLabel = undefined;
23
24
  }
24
25
  /**
25
26
  * Component lifecycle events.
@@ -43,7 +44,7 @@ export class DuetMenuBarDropdownLink {
43
44
  "duet-menu-bar-dropdown-link": true,
44
45
  [`duet-menu-bar-dropdown-link--slot-${this.getVariant()}`]: true,
45
46
  "duet-theme-turva": this.theme === "turva",
46
- }, href: this.href, role: "menuitem", onKeyUp: e => this.handleEscape(e) }, this.icon && (h("duet-icon", { theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), h("slot", null))));
47
+ }, href: this.href, role: "menuitem", onKeyUp: e => this.handleEscape(e), "aria-label": this.accessibleLabel }, this.icon && (h("duet-icon", { theme: this.theme, name: this.icon, size: "x-small", margin: "none", color: "currentColor" })), h("slot", null))));
47
48
  }
48
49
  static get is() { return "duet-menu-bar-dropdown-link"; }
49
50
  static get encapsulation() { return "shadow"; }
@@ -117,6 +118,23 @@ export class DuetMenuBarDropdownLink {
117
118
  "attribute": "icon",
118
119
  "reflect": true,
119
120
  "defaultValue": "undefined"
121
+ },
122
+ "accessibleLabel": {
123
+ "type": "string",
124
+ "mutable": false,
125
+ "complexType": {
126
+ "original": "string",
127
+ "resolved": "string",
128
+ "references": {}
129
+ },
130
+ "required": false,
131
+ "optional": false,
132
+ "docs": {
133
+ "tags": [],
134
+ "text": "Adds accessible label for the link that is only shown for screen readers.\nTypically, this label text replaces the visible text on the link for users\nwho use assistive technology."
135
+ },
136
+ "attribute": "accessible-label",
137
+ "reflect": false
120
138
  }
121
139
  };
122
140
  }