@duetds/components 6.9.6 → 6.9.7

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 (506) hide show
  1. package/hydrate/index.js +1246 -58
  2. package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
  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-callout.cjs.entry.js +5 -2
  9. package/lib/cjs/duet-caption_4.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-choice_2.cjs.entry.js +5 -3
  14. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  19. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-editable-table_3.cjs.entry.js +12 -4
  21. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-hero.cjs.entry.js +4 -3
  27. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-menu-bar.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  37. package/lib/cjs/duet-multiselect.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-pagination_2.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  46. package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  48. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  49. package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
  50. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  51. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  52. package/lib/cjs/duet-slideout-panel.cjs.entry.js +2 -2
  53. package/lib/cjs/duet-slideout.cjs.entry.js +2 -2
  54. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  55. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-submenu-bar.cjs.entry.js +1 -1
  59. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  60. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  61. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
  62. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +1 -1
  63. package/lib/cjs/duet-toolbar-link.cjs.entry.js +1 -1
  64. package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
  65. package/lib/cjs/duet-tooltip.cjs.entry.js +1220 -48
  66. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  67. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  68. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  69. package/lib/cjs/duet.cjs.js +2 -2
  70. package/lib/cjs/{focus-utils-de2e491b.js → focus-utils-8852d70c.js} +1 -1
  71. package/lib/cjs/{index-978ec5b0.js → index-8baedc34.js} +1 -1
  72. package/lib/cjs/loader.cjs.js +2 -2
  73. package/lib/collection/components/duet-callout/duet-callout.js +4 -1
  74. package/lib/collection/components/duet-choice/duet-choice.js +3 -1
  75. package/lib/collection/components/duet-hero/duet-hero.css +10 -0
  76. package/lib/collection/components/duet-hero/duet-hero.js +3 -1
  77. package/lib/collection/components/duet-tooltip/duet-tooltip.css +39 -106
  78. package/lib/collection/components/duet-tooltip/duet-tooltip.js +53 -49
  79. package/lib/collection/components/duet-upload/duet-upload.js +3 -3
  80. package/lib/collection/components/duet-upload/upload-item.js +8 -2
  81. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  82. package/lib/dist-custom-elements/duet-alert.js +1 -1
  83. package/lib/dist-custom-elements/duet-badge.js +1 -1
  84. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  85. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  86. package/lib/dist-custom-elements/duet-button.js +1 -1
  87. package/lib/dist-custom-elements/duet-callout.js +7 -4
  88. package/lib/dist-custom-elements/duet-caption.js +1 -1
  89. package/lib/dist-custom-elements/duet-card.js +3 -3
  90. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  91. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  92. package/lib/dist-custom-elements/duet-choice-group.js +6 -6
  93. package/lib/dist-custom-elements/duet-choice.js +8 -6
  94. package/lib/dist-custom-elements/duet-collapsible.js +3 -3
  95. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  96. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  97. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  98. package/lib/dist-custom-elements/duet-date-picker.js +10 -10
  99. package/lib/dist-custom-elements/duet-divider.js +1 -1
  100. package/lib/dist-custom-elements/duet-editable-table.js +7 -7
  101. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  102. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  103. package/lib/dist-custom-elements/duet-footer.js +4 -4
  104. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  105. package/lib/dist-custom-elements/duet-grid.js +1 -1
  106. package/lib/dist-custom-elements/duet-header.js +9 -9
  107. package/lib/dist-custom-elements/duet-heading.js +1 -1
  108. package/lib/dist-custom-elements/duet-hero.js +12 -11
  109. package/lib/dist-custom-elements/duet-icon.js +1 -1
  110. package/lib/dist-custom-elements/duet-input.js +1 -1
  111. package/lib/dist-custom-elements/duet-label.js +1 -1
  112. package/lib/dist-custom-elements/duet-layout.js +1 -1
  113. package/lib/dist-custom-elements/duet-link.js +1 -1
  114. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  115. package/lib/dist-custom-elements/duet-list.js +1 -1
  116. package/lib/dist-custom-elements/duet-logo.js +1 -1
  117. package/lib/dist-custom-elements/duet-menu-bar-button.js +3 -3
  118. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
  119. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +3 -3
  120. package/lib/dist-custom-elements/duet-menu-bar-link.js +3 -3
  121. package/lib/dist-custom-elements/duet-menu-bar.js +3 -3
  122. package/lib/dist-custom-elements/duet-modal.js +7 -7
  123. package/lib/dist-custom-elements/duet-multiselect.js +8 -8
  124. package/lib/dist-custom-elements/duet-nav.js +1 -1
  125. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  126. package/lib/dist-custom-elements/duet-notification.js +2 -2
  127. package/lib/dist-custom-elements/duet-number-input.js +9 -9
  128. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  129. package/lib/dist-custom-elements/duet-pagination.js +7 -7
  130. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  131. package/lib/dist-custom-elements/duet-progress.js +1 -1
  132. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  133. package/lib/dist-custom-elements/duet-radio.js +1 -1
  134. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  135. package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
  136. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  137. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  138. package/lib/dist-custom-elements/duet-select.js +1 -1
  139. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  140. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  141. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  142. package/lib/dist-custom-elements/duet-slideout-panel.js +2 -2
  143. package/lib/dist-custom-elements/duet-slideout.js +2 -2
  144. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  145. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  146. package/lib/dist-custom-elements/duet-step.js +4 -4
  147. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  148. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  149. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +3 -3
  150. package/lib/dist-custom-elements/duet-submenu-bar-link.js +3 -3
  151. package/lib/dist-custom-elements/duet-submenu-bar.js +3 -3
  152. package/lib/dist-custom-elements/duet-tab-group.js +9 -9
  153. package/lib/dist-custom-elements/duet-tab.js +1 -1
  154. package/lib/dist-custom-elements/duet-table.js +1 -1
  155. package/lib/dist-custom-elements/duet-textarea.js +8 -8
  156. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  157. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  158. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  159. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  160. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  161. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  162. package/lib/dist-custom-elements/duet-tray.js +3 -3
  163. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  164. package/lib/dist-custom-elements/duet-upload.js +28 -20
  165. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  166. package/lib/dist-custom-elements/index.js +1 -1
  167. package/lib/dist-custom-elements/p-1635a5ff.js +1446 -0
  168. package/lib/dist-custom-elements/{p-6f0966d2.js → p-1d207f70.js} +4 -4
  169. package/lib/dist-custom-elements/{p-0a6a8f11.js → p-2a351223.js} +1 -1
  170. package/lib/dist-custom-elements/{p-f9c288b5.js → p-369a9e6b.js} +3 -3
  171. package/lib/dist-custom-elements/{p-9ed66812.js → p-3d6100be.js} +2 -2
  172. package/lib/dist-custom-elements/{p-4d0f9f83.js → p-4d20fcd1.js} +1 -1
  173. package/lib/dist-custom-elements/{p-70ef0e9d.js → p-5119f1dc.js} +5 -5
  174. package/lib/dist-custom-elements/{p-5962ecc8.js → p-5183d2cf.js} +1 -1
  175. package/lib/dist-custom-elements/{p-a2fa664a.js → p-53c27e8e.js} +1 -1
  176. package/lib/dist-custom-elements/{p-087e9427.js → p-62683175.js} +1 -1
  177. package/lib/dist-custom-elements/{p-d8ca2c64.js → p-649043a8.js} +2 -2
  178. package/lib/dist-custom-elements/{p-f5d77e8e.js → p-67365843.js} +1 -1
  179. package/lib/dist-custom-elements/{p-a78d941c.js → p-68be9a91.js} +1 -1
  180. package/lib/dist-custom-elements/{p-c4689e7b.js → p-783a8425.js} +2 -2
  181. package/lib/dist-custom-elements/{p-5c9bf9ba.js → p-7a905f45.js} +3 -3
  182. package/lib/dist-custom-elements/{p-0b141ef0.js → p-7e395433.js} +1 -1
  183. package/lib/dist-custom-elements/{p-57bb44bf.js → p-87df78c6.js} +1 -1
  184. package/lib/dist-custom-elements/{p-c638adb2.js → p-8bad78a6.js} +1 -1
  185. package/lib/dist-custom-elements/{p-4a060f56.js → p-93fab31d.js} +1 -1
  186. package/lib/dist-custom-elements/{p-8160f98e.js → p-99687f8f.js} +6 -6
  187. package/lib/dist-custom-elements/{p-cbc12626.js → p-9d1b018a.js} +1 -1
  188. package/lib/dist-custom-elements/{p-a3ba0ed5.js → p-c243ec01.js} +1 -1
  189. package/lib/{esm/tokens-0963dc8b.js → dist-custom-elements/p-cb9787ec.js} +1 -1
  190. package/lib/dist-custom-elements/{p-f5252ae4.js → p-cbb67f4e.js} +1 -1
  191. package/lib/dist-custom-elements/{p-75f47a29.js → p-d95944c8.js} +1 -1
  192. package/lib/dist-custom-elements/{p-a27921ba.js → p-e080ccaa.js} +1 -1
  193. package/lib/dist-custom-elements/{p-49ef7e25.js → p-e2a3c6fa.js} +2 -2
  194. package/lib/dist-custom-elements/{p-064985f6.js → p-e4e40736.js} +2 -2
  195. package/lib/dist-custom-elements/{p-a1863bda.js → p-efa5255b.js} +1 -1
  196. package/lib/dist-custom-elements/{p-db20025e.js → p-f0e99128.js} +8 -8
  197. package/lib/dist-custom-elements/{p-b5a87909.js → p-f2d8763d.js} +2 -2
  198. package/lib/dist-custom-elements/{p-d54ecc52.js → p-f83c1df9.js} +1 -1
  199. package/lib/duet/duet.esm.js +1 -1
  200. package/lib/duet/duet.js +1 -1
  201. package/lib/duet/p-01d38ac9.entry.js +4 -0
  202. package/lib/duet/{p-7ecff545.system.entry.js → p-029f96ec.system.entry.js} +1 -1
  203. package/lib/duet/{p-0c1051da.entry.js → p-03bd5373.entry.js} +1 -1
  204. package/lib/duet/{p-4c812d78.system.entry.js → p-04da22d7.system.entry.js} +1 -1
  205. package/lib/duet/{p-b154ecd8.system.entry.js → p-07d0ed0a.system.entry.js} +1 -1
  206. package/lib/duet/{p-b8705a85.entry.js → p-08693a37.entry.js} +1 -1
  207. package/lib/duet/{p-11749645.system.entry.js → p-097da893.system.entry.js} +1 -1
  208. package/lib/duet/{p-50ce994c.system.entry.js → p-09d4bac7.system.entry.js} +1 -1
  209. package/lib/duet/{p-9c483f1d.system.entry.js → p-0a03a862.system.entry.js} +1 -1
  210. package/lib/duet/{p-0626d8a9.entry.js → p-0a6ff475.entry.js} +1 -1
  211. package/lib/duet/{p-26f3b159.system.entry.js → p-0b752687.system.entry.js} +1 -1
  212. package/lib/duet/{p-0a317f12.entry.js → p-0cdc880e.entry.js} +1 -1
  213. package/lib/duet/{p-6e5abb84.system.entry.js → p-0e165a4e.system.entry.js} +1 -1
  214. package/lib/duet/{p-da5583ea.entry.js → p-0f80e2fc.entry.js} +1 -1
  215. package/lib/duet/{p-f6e2e71a.system.entry.js → p-0fc1b439.system.entry.js} +1 -1
  216. package/lib/duet/{p-49eef496.system.entry.js → p-1028e393.system.entry.js} +1 -1
  217. package/lib/duet/{p-940f11ad.system.entry.js → p-106abf71.system.entry.js} +1 -1
  218. package/lib/duet/{p-67176e9e.entry.js → p-12afe002.entry.js} +1 -1
  219. package/lib/duet/{p-5707ba42.system.entry.js → p-1396c277.system.entry.js} +1 -1
  220. package/lib/duet/p-151892ff.system.entry.js +4 -0
  221. package/lib/duet/{p-830be23d.system.entry.js → p-1677ce5c.system.entry.js} +1 -1
  222. package/lib/duet/{p-336c0409.system.entry.js → p-1a0b0fe9.system.entry.js} +1 -1
  223. package/lib/duet/{p-44268138.system.js → p-1c0453e0.system.js} +1 -1
  224. package/lib/duet/{p-5da36d9e.entry.js → p-1c0a39db.entry.js} +1 -1
  225. package/lib/duet/{p-ca405201.entry.js → p-2125b071.entry.js} +1 -1
  226. package/lib/duet/{p-a3b22a18.entry.js → p-2879b97d.entry.js} +1 -1
  227. package/lib/duet/{p-7a7ef869.entry.js → p-29b9e99e.entry.js} +1 -1
  228. package/lib/duet/{p-1eece5bf.system.entry.js → p-2bc4d34e.system.entry.js} +1 -1
  229. package/lib/duet/p-2c68ee2d.system.entry.js +4 -0
  230. package/lib/duet/{p-e6d1e0be.system.entry.js → p-2d5be93c.system.entry.js} +1 -1
  231. package/lib/duet/{p-4058cee8.entry.js → p-2d71fa26.entry.js} +1 -1
  232. package/lib/duet/{p-d656d96e.system.entry.js → p-32eecc8d.system.entry.js} +1 -1
  233. package/lib/duet/{p-a03c4dcd.system.entry.js → p-344134e5.system.entry.js} +1 -1
  234. package/lib/duet/{p-c9edd0bb.system.entry.js → p-36bca919.system.entry.js} +1 -1
  235. package/lib/duet/{p-a0876e2e.system.entry.js → p-3b1ff9be.system.entry.js} +1 -1
  236. package/lib/duet/{p-2c31977d.entry.js → p-3c88792b.entry.js} +1 -1
  237. package/lib/duet/{p-13540a69.system.entry.js → p-3d6d2012.system.entry.js} +1 -1
  238. package/lib/duet/{p-728c2f13.entry.js → p-3de9ea90.entry.js} +1 -1
  239. package/lib/duet/{p-482497cd.entry.js → p-3e2c87e6.entry.js} +1 -1
  240. package/lib/duet/{p-50df271c.entry.js → p-3e7b62a4.entry.js} +1 -1
  241. package/lib/duet/{p-653eb7ce.system.entry.js → p-401a454b.system.entry.js} +1 -1
  242. package/lib/duet/{p-aa79548d.system.entry.js → p-41a69e48.system.entry.js} +1 -1
  243. package/lib/duet/{p-3d31b17b.system.entry.js → p-42844e9d.system.entry.js} +1 -1
  244. package/lib/duet/{p-f2f60847.entry.js → p-44f22e6b.entry.js} +1 -1
  245. package/lib/duet/{p-0eb4217a.entry.js → p-458dd158.entry.js} +1 -1
  246. package/lib/duet/{p-c2757db1.entry.js → p-45fe4429.entry.js} +1 -1
  247. package/lib/duet/p-4634f44d.entry.js +4 -0
  248. package/lib/duet/{p-51adf63c.system.entry.js → p-466c4910.system.entry.js} +1 -1
  249. package/lib/duet/{p-475d42a8.system.entry.js → p-48ef2786.system.entry.js} +1 -1
  250. package/lib/duet/{p-bdc400cf.entry.js → p-4a4cbba5.entry.js} +1 -1
  251. package/lib/duet/{p-745645b0.entry.js → p-4c1fb962.entry.js} +1 -1
  252. package/lib/duet/{p-8b148f79.system.entry.js → p-4c7fb05f.system.entry.js} +1 -1
  253. package/lib/duet/{p-636e5f15.entry.js → p-4cb43c38.entry.js} +1 -1
  254. package/lib/duet/p-5074accf.entry.js +4 -0
  255. package/lib/duet/{p-81c05491.system.entry.js → p-5573222d.system.entry.js} +1 -1
  256. package/lib/duet/{p-b672280a.entry.js → p-57a26a2a.entry.js} +1 -1
  257. package/lib/duet/{p-a92d4f59.system.entry.js → p-5c17a74a.system.entry.js} +1 -1
  258. package/lib/duet/{p-c6793076.system.entry.js → p-5d15cd89.system.entry.js} +1 -1
  259. package/lib/duet/{p-d6149423.entry.js → p-5e6542bc.entry.js} +1 -1
  260. package/lib/duet/{p-c42f3a40.system.entry.js → p-5f7a2639.system.entry.js} +1 -1
  261. package/lib/duet/{p-83b776f5.system.entry.js → p-613156e6.system.entry.js} +2 -2
  262. package/lib/duet/{p-da4c713c.system.entry.js → p-62a63d5b.system.entry.js} +1 -1
  263. package/lib/duet/{p-4d0d61a7.entry.js → p-6325ae2d.entry.js} +1 -1
  264. package/lib/duet/p-66fbed51.entry.js +4 -0
  265. package/lib/duet/{p-4ec88753.entry.js → p-675f844b.entry.js} +1 -1
  266. package/lib/duet/{p-e66936a4.system.entry.js → p-68ee9bfa.system.entry.js} +1 -1
  267. package/lib/duet/{p-5b17dfea.system.entry.js → p-6a0f118b.system.entry.js} +1 -1
  268. package/lib/duet/{p-d71ba70b.system.entry.js → p-6ba40ef9.system.entry.js} +1 -1
  269. package/lib/duet/{p-5cfb7c71.entry.js → p-6dc868fd.entry.js} +1 -1
  270. package/lib/duet/{p-ffbb062e.system.entry.js → p-6dcce504.system.entry.js} +1 -1
  271. package/lib/duet/{p-955782ae.entry.js → p-70e49d00.entry.js} +1 -1
  272. package/lib/duet/p-752fb0a0.system.entry.js +4 -0
  273. package/lib/duet/{p-3429690e.entry.js → p-75316086.entry.js} +1 -1
  274. package/lib/duet/p-789a9af4.entry.js +4 -0
  275. package/lib/duet/{p-be4bb297.system.entry.js → p-79dd09a6.system.entry.js} +1 -1
  276. package/lib/duet/{p-825fa6d7.entry.js → p-79eb3572.entry.js} +1 -1
  277. package/lib/duet/{p-1f66cbb6.entry.js → p-7b99f674.entry.js} +1 -1
  278. package/lib/duet/{p-587e1ad0.system.js → p-7bab508c.system.js} +1 -1
  279. package/lib/duet/{p-35664bb6.system.entry.js → p-7cf776fa.system.entry.js} +1 -1
  280. package/lib/duet/{p-46e061d9.entry.js → p-7e3e70df.entry.js} +1 -1
  281. package/lib/duet/{p-02fd20f6.system.entry.js → p-7f94280a.system.entry.js} +1 -1
  282. package/lib/duet/p-7fefe439.entry.js +4 -0
  283. package/lib/duet/{p-49c7c6fb.system.entry.js → p-8349ff2d.system.entry.js} +1 -1
  284. package/lib/duet/{p-fbc7ad71.entry.js → p-853ac360.entry.js} +1 -1
  285. package/lib/duet/{p-9f1699dc.system.entry.js → p-8d5edbbe.system.entry.js} +1 -1
  286. package/lib/duet/{p-c192f269.system.entry.js → p-91be047f.system.entry.js} +1 -1
  287. package/lib/duet/{p-7345aff9.system.entry.js → p-92e94229.system.entry.js} +1 -1
  288. package/lib/duet/{p-0ec6a000.entry.js → p-93a2c807.entry.js} +1 -1
  289. package/lib/duet/{p-ce00f1fd.system.entry.js → p-97528238.system.entry.js} +1 -1
  290. package/lib/duet/{p-0bcdec8b.system.entry.js → p-9791ab1b.system.entry.js} +1 -1
  291. package/lib/duet/{p-d24ebe03.system.entry.js → p-97df072f.system.entry.js} +1 -1
  292. package/lib/duet/{p-b731849c.system.entry.js → p-981f2443.system.entry.js} +1 -1
  293. package/lib/duet/{p-af932bca.system.entry.js → p-98777ba0.system.entry.js} +1 -1
  294. package/lib/duet/{p-e078ba11.entry.js → p-991271a2.entry.js} +1 -1
  295. package/lib/duet/{p-14ab7ebe.system.entry.js → p-9916b7d2.system.entry.js} +1 -1
  296. package/lib/duet/{p-02b08c30.entry.js → p-9c127e8f.entry.js} +1 -1
  297. package/lib/duet/p-9ec19751.entry.js +4 -0
  298. package/lib/duet/p-9f81873c.entry.js +4 -0
  299. package/lib/duet/{p-8ab66620.system.entry.js → p-a042bc85.system.entry.js} +2 -2
  300. package/lib/duet/{p-01dc716d.entry.js → p-a1a8395b.entry.js} +1 -1
  301. package/lib/duet/{p-cafb90c2.entry.js → p-a341e9c3.entry.js} +1 -1
  302. package/lib/duet/{p-a74c2dff.entry.js → p-a653bb02.entry.js} +1 -1
  303. package/lib/duet/{p-474bacf0.entry.js → p-a6aba2d3.entry.js} +1 -1
  304. package/lib/duet/{p-628600fa.entry.js → p-a903a315.entry.js} +1 -1
  305. package/lib/duet/{p-8078b081.system.js → p-a9a7d16c.system.js} +1 -1
  306. package/lib/duet/{p-c03df848.entry.js → p-a9d7b38d.entry.js} +1 -1
  307. package/lib/duet/{p-de62f610.system.entry.js → p-afcfc528.system.entry.js} +1 -1
  308. package/lib/duet/{p-8d98f055.entry.js → p-b4ff5c09.entry.js} +1 -1
  309. package/lib/duet/{p-1522db1d.entry.js → p-b90cdb91.entry.js} +1 -1
  310. package/lib/duet/{p-b651d2d1.entry.js → p-bb97ab92.entry.js} +1 -1
  311. package/lib/duet/{p-c9854b35.system.entry.js → p-bef59086.system.entry.js} +1 -1
  312. package/lib/duet/{p-041b483b.entry.js → p-c39467e4.entry.js} +1 -1
  313. package/lib/duet/{p-e4faf457.entry.js → p-c50233e1.entry.js} +1 -1
  314. package/lib/duet/{p-7000ce85.system.entry.js → p-c504d7cd.system.entry.js} +1 -1
  315. package/lib/duet/{p-f3d588ab.entry.js → p-c56dd6d7.entry.js} +1 -1
  316. package/lib/duet/{p-d9ef6f51.system.entry.js → p-c6a321f1.system.entry.js} +1 -1
  317. package/lib/duet/{p-e65709fc.entry.js → p-c94a423f.entry.js} +1 -1
  318. package/lib/duet/{p-c4d8cad0.js → p-cb9787ec.js} +1 -1
  319. package/lib/duet/{p-cc5a3edc.js → p-cca182be.js} +1 -1
  320. package/lib/duet/{p-cdea33d4.entry.js → p-cff8b0b3.entry.js} +1 -1
  321. package/lib/duet/{p-22c2c6d5.system.entry.js → p-d1b6fd73.system.entry.js} +1 -1
  322. package/lib/duet/p-d3bba23f.entry.js +4 -0
  323. package/lib/duet/{p-23ec6f02.entry.js → p-d4d2569e.entry.js} +1 -1
  324. package/lib/duet/{p-cb9991a5.system.entry.js → p-d6196775.system.entry.js} +1 -1
  325. package/lib/duet/{p-d0857e1f.system.js → p-d7e6a4ed.system.js} +1 -1
  326. package/lib/duet/{p-4b457bad.system.entry.js → p-da04e483.system.entry.js} +1 -1
  327. package/lib/duet/{p-420af35d.system.entry.js → p-dc4b4a04.system.entry.js} +1 -1
  328. package/lib/duet/{p-40b5d6b7.entry.js → p-de82bfee.entry.js} +1 -1
  329. package/lib/duet/{p-9c5001ab.entry.js → p-df7481e8.entry.js} +1 -1
  330. package/lib/duet/{p-9d0b30a0.system.entry.js → p-e057d8c4.system.entry.js} +1 -1
  331. package/lib/duet/{p-d20fb807.entry.js → p-e05c4a5b.entry.js} +1 -1
  332. package/lib/duet/{p-56f913f0.system.entry.js → p-e0848924.system.entry.js} +1 -1
  333. package/lib/duet/{p-332dc9a8.entry.js → p-e5d2b68e.entry.js} +1 -1
  334. package/lib/duet/{p-a57772d2.system.entry.js → p-e65bc05f.system.entry.js} +1 -1
  335. package/lib/duet/{p-1eccf55b.system.entry.js → p-e6f92c08.system.entry.js} +1 -1
  336. package/lib/duet/{p-d82963c2.system.entry.js → p-ed16d00b.system.entry.js} +1 -1
  337. package/lib/duet/p-f5a74f01.js +4 -0
  338. package/lib/duet/p-f5fd8e55.entry.js +4 -0
  339. package/lib/duet/{p-9ebea289.entry.js → p-f691d0b6.entry.js} +1 -1
  340. package/lib/duet/{p-55bdc762.entry.js → p-f7fbc435.entry.js} +1 -1
  341. package/lib/duet/{p-e4f417fe.entry.js → p-f8d91f4b.entry.js} +1 -1
  342. package/lib/esm/duet-action-button.entry.js +1 -1
  343. package/lib/esm/duet-alert.entry.js +1 -1
  344. package/lib/esm/duet-badge.entry.js +1 -1
  345. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  346. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  347. package/lib/esm/duet-button_2.entry.js +1 -1
  348. package/lib/esm/duet-callout.entry.js +5 -2
  349. package/lib/esm/duet-caption_4.entry.js +1 -1
  350. package/lib/esm/duet-card.entry.js +1 -1
  351. package/lib/esm/duet-checkbox.entry.js +1 -1
  352. package/lib/esm/duet-checkmark.entry.js +1 -1
  353. package/lib/esm/duet-choice_2.entry.js +5 -3
  354. package/lib/esm/duet-collapsible.entry.js +2 -2
  355. package/lib/esm/duet-combobox.entry.js +1 -1
  356. package/lib/esm/duet-contact-card.entry.js +1 -1
  357. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  358. package/lib/esm/duet-date-picker.entry.js +2 -2
  359. package/lib/esm/duet-divider_2.entry.js +1 -1
  360. package/lib/esm/duet-editable-table_3.entry.js +12 -4
  361. package/lib/esm/duet-empty-state.entry.js +1 -1
  362. package/lib/esm/duet-fieldset.entry.js +1 -1
  363. package/lib/esm/duet-footer.entry.js +1 -1
  364. package/lib/esm/duet-grid_2.entry.js +2 -2
  365. package/lib/esm/duet-header_2.entry.js +2 -2
  366. package/lib/esm/duet-hero.entry.js +4 -3
  367. package/lib/esm/duet-icon.entry.js +1 -1
  368. package/lib/esm/duet-input_2.entry.js +1 -1
  369. package/lib/esm/duet-layout.entry.js +1 -1
  370. package/lib/esm/duet-list_2.entry.js +1 -1
  371. package/lib/esm/duet-menu-bar-button.entry.js +2 -2
  372. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
  373. package/lib/esm/duet-menu-bar-dropdown.entry.js +2 -2
  374. package/lib/esm/duet-menu-bar-link.entry.js +2 -2
  375. package/lib/esm/duet-menu-bar.entry.js +2 -2
  376. package/lib/esm/duet-modal.entry.js +2 -2
  377. package/lib/esm/duet-multiselect.entry.js +1 -1
  378. package/lib/esm/duet-nav.entry.js +1 -1
  379. package/lib/esm/duet-notification_2.entry.js +1 -1
  380. package/lib/esm/duet-number-input.entry.js +1 -1
  381. package/lib/esm/duet-page-heading.entry.js +1 -1
  382. package/lib/esm/duet-pagination_2.entry.js +1 -1
  383. package/lib/esm/duet-progress.entry.js +1 -1
  384. package/lib/esm/duet-radio_2.entry.js +1 -1
  385. package/lib/esm/duet-range-slider.entry.js +1 -1
  386. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  387. package/lib/esm/duet-section-layout.entry.js +1 -1
  388. package/lib/esm/duet-select.entry.js +1 -1
  389. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  390. package/lib/esm/duet-slideout-link.entry.js +1 -1
  391. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  392. package/lib/esm/duet-slideout-panel.entry.js +2 -2
  393. package/lib/esm/duet-slideout.entry.js +2 -2
  394. package/lib/esm/duet-step_2.entry.js +1 -1
  395. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  396. package/lib/esm/duet-submenu-bar-dropdown.entry.js +2 -2
  397. package/lib/esm/duet-submenu-bar-link.entry.js +2 -2
  398. package/lib/esm/duet-submenu-bar.entry.js +2 -2
  399. package/lib/esm/duet-textarea.entry.js +1 -1
  400. package/lib/esm/duet-toggle.entry.js +1 -1
  401. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  402. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  403. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  404. package/lib/esm/duet-toolbar.entry.js +1 -1
  405. package/lib/esm/duet-tooltip.entry.js +1220 -48
  406. package/lib/esm/duet-tray.entry.js +1 -1
  407. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  408. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  409. package/lib/esm/duet.js +3 -3
  410. package/lib/esm/{focus-utils-b482bcb1.js → focus-utils-1e6af8c1.js} +1 -1
  411. package/lib/esm/{index-5a68b13e.js → index-77de1d56.js} +1 -1
  412. package/lib/esm/loader.js +3 -3
  413. package/lib/{dist-custom-elements/p-c4d8cad0.js → esm/tokens-20d688dc.js} +1 -1
  414. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  415. package/lib/esm-es5/duet-alert.entry.js +1 -1
  416. package/lib/esm-es5/duet-badge.entry.js +1 -1
  417. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  418. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  419. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  420. package/lib/esm-es5/duet-callout.entry.js +1 -1
  421. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  422. package/lib/esm-es5/duet-card.entry.js +1 -1
  423. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  424. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  425. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  426. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  427. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  428. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  429. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  430. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  431. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  432. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  433. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  434. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  435. package/lib/esm-es5/duet-footer.entry.js +1 -1
  436. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  437. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  438. package/lib/esm-es5/duet-hero.entry.js +1 -1
  439. package/lib/esm-es5/duet-icon.entry.js +1 -1
  440. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  441. package/lib/esm-es5/duet-layout.entry.js +1 -1
  442. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  443. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  444. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  445. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  446. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  447. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  448. package/lib/esm-es5/duet-modal.entry.js +1 -1
  449. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  450. package/lib/esm-es5/duet-nav.entry.js +1 -1
  451. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  452. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  453. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  454. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  455. package/lib/esm-es5/duet-progress.entry.js +1 -1
  456. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  457. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  458. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  459. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  460. package/lib/esm-es5/duet-select.entry.js +1 -1
  461. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  462. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  463. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  464. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  465. package/lib/esm-es5/duet-slideout.entry.js +2 -2
  466. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  467. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  468. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  469. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  470. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  471. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  472. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  473. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  474. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  475. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  476. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  477. package/lib/esm-es5/duet-tooltip.entry.js +2 -2
  478. package/lib/esm-es5/duet-tray.entry.js +1 -1
  479. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  480. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  481. package/lib/esm-es5/duet.js +1 -1
  482. package/lib/esm-es5/{focus-utils-b482bcb1.js → focus-utils-1e6af8c1.js} +1 -1
  483. package/lib/esm-es5/{index-5a68b13e.js → index-77de1d56.js} +1 -1
  484. package/lib/esm-es5/loader.js +1 -1
  485. package/lib/esm-es5/{tokens-0963dc8b.js → tokens-20d688dc.js} +1 -1
  486. package/lib/types/components/duet-callout/duet-callout.d.ts +2 -0
  487. package/lib/types/components/duet-hero/duet-hero.d.ts +2 -0
  488. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +8 -7
  489. package/lib/types/components/duet-upload/duet-upload.d.ts +1 -1
  490. package/lib/types/components.d.ts +2 -2
  491. package/package.json +6 -5
  492. package/lib/dist-custom-elements/p-98c77c8d.js +0 -272
  493. package/lib/duet/p-2b1f8599.system.entry.js +0 -4
  494. package/lib/duet/p-3877d445.entry.js +0 -4
  495. package/lib/duet/p-42e60321.entry.js +0 -4
  496. package/lib/duet/p-4af2f77a.entry.js +0 -4
  497. package/lib/duet/p-60912840.entry.js +0 -4
  498. package/lib/duet/p-624d38a3.system.entry.js +0 -4
  499. package/lib/duet/p-673a6c11.entry.js +0 -4
  500. package/lib/duet/p-793dcfc2.js +0 -4
  501. package/lib/duet/p-95eb41b3.system.entry.js +0 -4
  502. package/lib/duet/p-a7953c81.entry.js +0 -4
  503. package/lib/duet/p-b1ae5c07.entry.js +0 -4
  504. package/lib/duet/p-b89cad4d.entry.js +0 -4
  505. package/lib/duet/p-bf4ceb06.entry.js +0 -4
  506. package/lib/duet/p-d5f65552.entry.js +0 -4
@@ -1048,6 +1048,16 @@
1048
1048
  width: 80%;
1049
1049
  }
1050
1050
  }
1051
+ .duet-hero.duet-hero-content .duet-hero-text .duet-hero-pre {
1052
+ margin-top: 1rem;
1053
+ margin-bottom: 0.5rem;
1054
+ }
1055
+ @media (min-width: 62em) {
1056
+ .duet-hero.duet-hero-content .duet-hero-text .duet-hero-pre {
1057
+ margin-top: 1.5rem;
1058
+ margin-bottom: 0;
1059
+ }
1060
+ }
1051
1061
  .duet-hero.duet-hero-content.duet-theme-turva {
1052
1062
  background: rgb(255, 255, 255);
1053
1063
  }
@@ -13,6 +13,7 @@ import { parsePossibleJSON } from "../../utils/string-utils";
13
13
  * @slot default - This is an unamed slot for a text or extra button that is placed after any buttons (or list item)
14
14
  * @slot badge - This is a slot for a status badge that sits next to pre-heading inside the hero component.
15
15
  * @slot bottom - This is a slot for content under the main hero content.
16
+ * @slot pre-heading - This is a slot for pre-heading content inside the hero component.
16
17
  * @slot heading - This is a slot for heading content inside the hero component.
17
18
  * @slot subheading - This is a slot for heading content inside the hero component. Only usable with campaign, section variations.
18
19
  */
@@ -70,6 +71,7 @@ export class DuetHero {
70
71
  */
71
72
  componentWillLoad() {
72
73
  inheritGlobalTheme(this);
74
+ this.hasPreHeadingSlot = !!this.element.querySelector('[slot="pre-heading"]');
73
75
  this.hasHeadingSlot = !!this.element.querySelector('[slot="heading"]');
74
76
  this.hasSubHeadingSlot = !!this.element.querySelector('[slot="subheading"]');
75
77
  this.refresh();
@@ -172,7 +174,7 @@ export class DuetHero {
172
174
  href: this.processedBack.href,
173
175
  id: this.processedBack.id,
174
176
  analyticsId: this.processedBack.analyticsId,
175
- }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (h("duet-icon", { class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), h("div", { class: { "duet-hero-text": true }, part: "duet-hero-text" }, this.preHeading && (h("duet-paragraph", { margin: "none", class: "duet-hero-pre" }, this.preHeading)), h("slot", { name: "badge" }), (this.heading || this.hasHeadingSlot) && (h("duet-heading", { theme: this.theme, level: this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: headingColor, visualLevel: headingVisualLevel, margin: campaignOrSection ? "none" : "auto" }, this.heading ? this.heading : h("slot", { name: "heading" }))), campaignOrSection && this.hasSubHeadingSlot && (h("duet-heading", { theme: this.theme, level: this.subHeadingLevel, class: { "duet-hero-subheading": true }, color: this.theme === "turva" ? "secondary-turva" : "secondary", visualLevel: "h2" }, h("slot", { name: "subheading" }))), this.description && (h("duet-paragraph", { theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (h("duet-list", { theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (h("duet-list-item", null, h("span", { slot: "label" }, item.label), h("span", { slot: "value" }, item.value)))))), this.buttonLabel && (h("duet-button", { url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), h("span", { class: "duet-hero-slot-unnamed" }, h("slot", null))), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (h("div", { class: "duet-hero-links" }, this.processedActions.map(item => (h("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, h("div", { class: "duet-hero-action-icon" }, h("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), h("span", null, item.label), item.external && h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (h("div", { class: "duet-hero-action-arrow" }, h("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image &&
177
+ }) }, this.processedBack.label))), (this.variation === "gray" || this.variation === "minimal") && this.categoryIcon && (h("duet-icon", { class: { "duet-hero-icon": true, "duet-hero-icon-has-heading": this.preHeading !== "" }, size: "x-large", background: this.categoryIconColor, name: this.categoryIcon })), h("div", { class: { "duet-hero-text": true }, part: "duet-hero-text" }, (this.preHeading || this.hasPreHeadingSlot) && (h("duet-paragraph", { margin: "none", class: "duet-hero-pre", size: this.variation === "content" ? "small" : "medium" }, this.preHeading ? this.preHeading : h("slot", { name: "pre-heading" }))), h("slot", { name: "badge" }), (this.heading || this.hasHeadingSlot) && (h("duet-heading", { theme: this.theme, level: this.level, class: { "duet-hero-heading": true, "duet-hero-heading-has-pre": this.preHeading !== "" }, color: headingColor, visualLevel: headingVisualLevel, margin: campaignOrSection ? "none" : "auto" }, this.heading ? this.heading : h("slot", { name: "heading" }))), campaignOrSection && this.hasSubHeadingSlot && (h("duet-heading", { theme: this.theme, level: this.subHeadingLevel, class: { "duet-hero-subheading": true }, color: this.theme === "turva" ? "secondary-turva" : "secondary", visualLevel: "h2" }, h("slot", { name: "subheading" }))), this.description && (h("duet-paragraph", { theme: this.theme, color: textColor, variation: "intro" }, this.description)), (this.variation === "gray" || this.variation === "minimal") && this.processedListItems && (h("duet-list", { theme: this.theme, "label-width": "30", breakpoint: "large", mobile: this.leftAlign ? undefined : "center" }, this.processedListItems.map(item => (h("duet-list-item", null, h("span", { slot: "label" }, item.label), h("span", { slot: "value" }, item.value)))))), this.buttonLabel && (h("duet-button", { url: this.buttonUrl, icon: this.icon, iconRight: this.iconRight, iconSize: this.iconSize, variation: buttonVariation, theme: this.theme, identifier: this.buttonId, onClick: event => this.handleClick(event, this.buttonData), fixed: true }, this.buttonLabel)), h("span", { class: "duet-hero-slot-unnamed" }, h("slot", null))), (this.variation === "gray" || this.variation === "minimal") && this.processedActions && (h("div", { class: "duet-hero-links" }, this.processedActions.map(item => (h("a", { class: "duet-hero-link", href: item.href, id: item.id, target: item.external ? "_blank" : "_self", onClick: event => this.handleClick(event, item) }, h("div", { class: "duet-hero-action-icon" }, h("duet-icon", { size: "small", margin: "none", name: item.icon, color: "currentColor", outline: outlineColor })), h("span", null, item.label), item.external && h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal), item.external && (h("div", { class: "duet-hero-action-arrow" }, h("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))))))), this.image &&
176
178
  this.variation !== "image" &&
177
179
  !campaignOrSection &&
178
180
  this.variation !== "product" &&
@@ -31,10 +31,8 @@
31
31
 
32
32
  .duet-tooltip {
33
33
  position: absolute;
34
- right: -141px;
35
- bottom: 100%;
36
34
  z-index: 950;
37
- display: block;
35
+ display: none;
38
36
  width: 282px;
39
37
  min-height: 48px;
40
38
  max-height: 340px;
@@ -50,7 +48,6 @@
50
48
  box-shadow: 0 2px 10px 0 rgba(0, 41, 77, 0.07);
51
49
  opacity: 0;
52
50
  transition: 300ms ease;
53
- transform: scale(0.9) translateZ(0) translateY(20px);
54
51
  transform-origin: 100% 100%;
55
52
  }
56
53
  .duet-tooltip.duet-theme-turva {
@@ -59,78 +56,66 @@
59
56
  border-color: rgb(228, 228, 230);
60
57
  box-shadow: 0 2px 10px 0 rgba(117, 117, 117, 0.13);
61
58
  }
62
- .duet-tooltip::after {
59
+ .duet-tooltip .arrow {
60
+ position: absolute;
61
+ width: 22px;
62
+ height: 22px;
63
+ pointer-events: none;
64
+ }
65
+ .duet-tooltip .arrow.bottom, .duet-tooltip .arrow.bottom-start, .duet-tooltip .arrow.bottom-end {
66
+ top: -21px;
67
+ }
68
+ .duet-tooltip .arrow-container {
69
+ position: relative;
70
+ width: 100%;
71
+ height: 100%;
72
+ pointer-events: none;
73
+ }
74
+ .duet-tooltip .arrow-container::after {
63
75
  position: absolute;
64
- right: 142px;
65
- bottom: -20px;
66
76
  z-index: 200;
67
77
  width: 0;
68
78
  height: 0;
79
+ pointer-events: none;
69
80
  content: "";
70
- border: 10px solid transparent;
71
- border-top: 10px solid rgb(255, 255, 255);
72
81
  }
73
- .duet-tooltip::before {
82
+ .duet-tooltip .arrow-container::before {
74
83
  position: absolute;
75
- right: 141px;
76
- bottom: -22px;
77
84
  z-index: 100;
78
85
  width: 0;
79
86
  height: 0;
87
+ pointer-events: none;
80
88
  content: "";
89
+ }
90
+ .duet-tooltip .arrow-container.top::after, .duet-tooltip .arrow-container.top-start::after, .duet-tooltip .arrow-container.top-end::after {
91
+ bottom: 2px;
92
+ left: 2px;
93
+ border: 10px solid transparent;
94
+ border-top: 10px solid rgb(255, 255, 255);
95
+ }
96
+ .duet-tooltip .arrow-container.top::before, .duet-tooltip .arrow-container.top-start::before, .duet-tooltip .arrow-container.top-end::before {
97
+ bottom: -1px;
98
+ left: 1px;
81
99
  border: 11px solid transparent;
82
100
  border-top: 11px solid rgb(225, 227, 230);
83
101
  }
84
- .duet-theme-turva .duet-tooltip::before {
102
+ .duet-theme-turva .duet-tooltip .arrow-container.top::before, .duet-theme-turva .duet-tooltip .arrow-container.top-start::before, .duet-theme-turva .duet-tooltip .arrow-container.top-end::before {
85
103
  border-top: 11px solid rgb(228, 228, 230);
86
104
  }
87
- .duet-tooltip.duet-tooltip-down {
88
- top: 100%;
89
- bottom: auto;
90
- transform: scale(0.9) translateZ(0) translateY(-20px);
91
- transform-origin: 100% 0;
92
- }
93
- .duet-tooltip.duet-tooltip-down::after {
94
- top: -20px;
95
- bottom: auto;
105
+ .duet-tooltip .arrow-container.bottom::after, .duet-tooltip .arrow-container.bottom-start::after, .duet-tooltip .arrow-container.bottom-end::after {
106
+ bottom: 1px;
107
+ left: 2px;
96
108
  border: 10px solid transparent;
97
109
  border-bottom: 10px solid rgb(255, 255, 255);
98
110
  }
99
- .duet-tooltip.duet-tooltip-down::before {
100
- top: -22px;
101
- bottom: auto;
111
+ .duet-tooltip .arrow-container.bottom::before, .duet-tooltip .arrow-container.bottom-start::before, .duet-tooltip .arrow-container.bottom-end::before {
112
+ bottom: 1px;
113
+ left: 1px;
102
114
  border: 11px solid transparent;
103
115
  border-bottom: 11px solid rgb(225, 227, 230);
104
116
  }
105
- .duet-theme-turva .duet-tooltip.duet-tooltip-down::before {
106
- border-bottom: 11px solid rgb(228, 228, 230);
107
- }
108
- .duet-tooltip.duet-tooltip-left {
109
- right: -21px !important;
110
- transform-origin: 100% 100% !important;
111
- }
112
- .duet-tooltip.duet-tooltip-left::after {
113
- right: 22px !important;
114
- transform: none !important;
115
- }
116
- .duet-tooltip.duet-tooltip-left::before {
117
- right: 21px !important;
118
- transform: none !important;
119
- }
120
- .duet-tooltip.duet-tooltip-right {
121
- right: auto !important;
122
- left: -9px !important;
123
- transform-origin: 100% 100% !important;
124
- }
125
- .duet-tooltip.duet-tooltip-right::after {
126
- right: auto !important;
127
- left: 22px !important;
128
- transform: none !important;
129
- }
130
- .duet-tooltip.duet-tooltip-right::before {
131
- right: auto !important;
132
- left: 21px !important;
133
- transform: none !important;
117
+ .duet-theme-turva .duet-tooltip .arrow-container.bottom::before, .duet-theme-turva .duet-tooltip .arrow-container.bottom-start::before, .duet-theme-turva .duet-tooltip .arrow-container.bottom-end::before {
118
+ border-top: 11px solid rgb(228, 228, 230);
134
119
  }
135
120
  .duet-tooltip.duet-tooltip-has-label {
136
121
  right: auto !important;
@@ -138,24 +123,10 @@
138
123
  width: 282px !important;
139
124
  transform-origin: 0 0 !important;
140
125
  }
141
- .duet-tooltip.duet-tooltip-has-label::after {
142
- right: auto !important;
143
- left: 1px !important;
144
- transform: none !important;
145
- }
146
- .duet-tooltip.duet-tooltip-has-label::before {
147
- right: auto !important;
148
- left: 0 !important;
149
- transform: none !important;
150
- }
151
126
  .duet-tooltip.duet-tooltip-active {
152
127
  visibility: visible;
153
128
  opacity: 1;
154
129
  transition-property: transform, opacity;
155
- transform: scale(1.0001) translateZ(0) translateY(-8px);
156
- }
157
- .duet-tooltip.duet-tooltip-active.duet-tooltip-down {
158
- transform: scale(1.0001) translateZ(0) translateY(8px);
159
130
  }
160
131
 
161
132
  .duet-tooltip-button {
@@ -283,42 +254,4 @@
283
254
  .duet-theme-turva .duet-tooltip-close:focus {
284
255
  color: rgb(23, 28, 58);
285
256
  box-shadow: 0 0 0 2px rgb(23, 28, 58);
286
- }
287
-
288
- @media (min-width: 48em) {
289
- .duet-tooltip.duet-mq-medium {
290
- right: -148px;
291
- width: 320px;
292
- transform-origin: 50% 100%;
293
- }
294
- .duet-tooltip.duet-mq-medium::after {
295
- right: 50%;
296
- transform: translateX(50%);
297
- }
298
- .duet-tooltip.duet-mq-medium::before {
299
- right: 50%;
300
- transform: translateX(50%);
301
- }
302
- .duet-tooltip.duet-mq-medium.duet-tooltip-down {
303
- transform-origin: 50% 0;
304
- }
305
- }
306
-
307
- @media (min-width: 62em) {
308
- .duet-tooltip.duet-mq-large {
309
- right: -148px;
310
- width: 320px;
311
- transform-origin: 50% 100%;
312
- }
313
- .duet-tooltip.duet-mq-large::after {
314
- right: 50%;
315
- transform: translateX(50%);
316
- }
317
- .duet-tooltip.duet-mq-large::before {
318
- right: 50%;
319
- transform: translateX(50%);
320
- }
321
- .duet-tooltip.duet-mq-large.duet-tooltip-down {
322
- transform-origin: 50% 0;
323
- }
324
257
  }
@@ -1,6 +1,8 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
+ import { media_query_large, media_query_medium } from "@duetds/tokens/lib/tokens.json";
5
+ import { arrow, computePosition, flip, shift } from "@floating-ui/dom";
4
6
  import { h, Host } from "@stencil/core";
5
7
  import { inheritGlobalTheme } from "../../common";
6
8
  import { createID } from "../../utils/create-id";
@@ -10,8 +12,11 @@ export class DuetTooltip {
10
12
  /**
11
13
  * Own Properties.
12
14
  */
15
+ this.mql = [
16
+ window.matchMedia(media_query_medium.replace(/'/g, "")),
17
+ window.matchMedia(media_query_large.replace(/'/g, "")),
18
+ ];
13
19
  this.tooltipId = createID("DuetTooltip");
14
- this.lastScrollTop = 0;
15
20
  /**
16
21
  * Local methods
17
22
  */
@@ -55,42 +60,37 @@ export class DuetTooltip {
55
60
  this.handleCloseClick = () => {
56
61
  this.closeTooltip(true);
57
62
  };
58
- this.isElementInViewportVertically = () => {
59
- if (!this.tooltipEl) {
60
- return false;
63
+ this.updatePlacement = async () => {
64
+ var _a, _b;
65
+ let preferRight = true;
66
+ if (this.breakpoint === "large" && !this.mql[1].matches) {
67
+ preferRight = false;
61
68
  }
62
- var rect = this.tooltipEl.getBoundingClientRect();
63
- return (
64
- // This takes the possible Nav component into account
65
- rect.top >= 100 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight));
66
- };
67
- this.handleVerticalVisibility = () => {
68
- const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
69
- if (!this.isElementInViewportVertically()) {
70
- this.openDown = scrollTop > this.lastScrollTop;
71
- }
72
- this.lastScrollTop = Math.max(0, scrollTop);
73
- };
74
- this.handleHorizontalVisibility = () => {
75
- var rect = this.tooltipEl.getBoundingClientRect();
76
- const isLeftSideVisible = rect.left >= 0;
77
- const isRightSideVisible = rect.right < (window.innerWidth || document.documentElement.clientWidth);
78
- if (!isLeftSideVisible || (this.direction !== "right" && this.openRight)) {
79
- this.openRight = true;
69
+ else if (this.breakpoint === "medium" && !this.mql[0].matches) {
70
+ preferRight = false;
80
71
  }
81
- else {
82
- this.openRight = this.direction === "right";
72
+ let placement = preferRight ? "top-start" : "top-end";
73
+ if (this.direction === "left") {
74
+ placement = "top-end";
83
75
  }
84
- if (!isRightSideVisible || (this.direction !== "left" && this.openLeft)) {
85
- this.openLeft = true;
86
- }
87
- else {
88
- this.openLeft = this.direction === "left";
76
+ else if (this.direction === "right") {
77
+ placement = "top-start";
89
78
  }
79
+ const position = await computePosition(this.buttonEl, this.tooltipEl, {
80
+ placement,
81
+ middleware: [flip(), shift({ padding: 5 }), arrow({ element: this.arrowEl })],
82
+ });
83
+ this.tooltipY = position.y;
84
+ this.tooltipX = position.x;
85
+ this.placement = position.placement;
86
+ this.arrowY = (_a = position.middlewareData.arrow) === null || _a === void 0 ? void 0 : _a.y;
87
+ this.arrowX = (_b = position.middlewareData.arrow) === null || _b === void 0 ? void 0 : _b.x;
90
88
  };
91
- this.openDown = false;
92
- this.openLeft = false;
93
- this.openRight = false;
89
+ this.placement = "bottom";
90
+ this.tooltipY = undefined;
91
+ this.tooltipX = undefined;
92
+ this.arrowX = undefined;
93
+ this.arrowY = undefined;
94
94
  this.theme = "";
95
95
  this.language = getLanguage();
96
96
  this.accessibleLabelDefault = {
@@ -128,7 +128,7 @@ export class DuetTooltip {
128
128
  inheritGlobalTheme(this);
129
129
  }
130
130
  componentDidLoad() {
131
- this.handleHorizontalVisibility();
131
+ this.updatePlacement();
132
132
  }
133
133
  componentDidUpdate() {
134
134
  switch (this.focusTarget) {
@@ -154,15 +154,14 @@ export class DuetTooltip {
154
154
  clearTimeout(this.scrollTimer);
155
155
  this.scrollTimer = setTimeout(() => {
156
156
  if (this.active) {
157
- this.handleHorizontalVisibility();
158
- this.handleVerticalVisibility();
157
+ this.updatePlacement();
159
158
  }
160
159
  }, 100);
161
160
  }
162
161
  handleWindowResize() {
163
162
  clearTimeout(this.resizeTimer);
164
163
  this.resizeTimer = setTimeout(() => {
165
- this.handleHorizontalVisibility();
164
+ this.updatePlacement();
166
165
  }, 100);
167
166
  }
168
167
  handleDocumentClick(e) {
@@ -177,11 +176,10 @@ export class DuetTooltip {
177
176
  }
178
177
  async handleActiveChange(newActiveValue) {
179
178
  if (newActiveValue) {
180
- this.handleHorizontalVisibility();
181
- this.openDown = !this.isElementInViewportVertically();
179
+ this.updatePlacement();
182
180
  }
183
181
  else {
184
- setTimeout(() => (this.openDown = false), 300);
182
+ setTimeout(() => this.updatePlacement(), 300);
185
183
  }
186
184
  }
187
185
  /**
@@ -195,23 +193,27 @@ export class DuetTooltip {
195
193
  // top of other tooltips and the header.
196
194
  zIndex: this.active ? "201" : "",
197
195
  };
196
+ const positionStyles = {
197
+ top: `${this.tooltipY}px`,
198
+ left: `${this.tooltipX}px`,
199
+ display: "block",
200
+ };
201
+ const arrowStyles = {
202
+ top: this.arrowY ? `${this.arrowY}px` : undefined,
203
+ left: this.arrowX ? `${this.arrowX}px` : undefined,
204
+ };
198
205
  return (h(Host, { style: tooltipStyles }, h("button", { ref: element => (this.buttonEl = element), "aria-controls": this.tooltipId, "aria-expanded": this.active ? "true" : "false", onClick: this.toggleOpen, type: "button", class: {
199
206
  "duet-tooltip-button": true,
200
207
  "duet-tooltip-button-has-label": !!this.label,
201
208
  "duet-theme-turva": this.theme === "turva",
202
209
  } }, h("svg", { "aria-hidden": "true", role: "img", fill: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "m13.5 17.25c-1.241 0-2.25-1.009-2.25-2.25v-3.75h-.75c-.414 0-.75-.336-.75-.75s.336-.75.75-.75h.75c.827 0 1.5.673 1.5 1.5v3.75c0 .414.336.75.75.75h.75c.414 0 .75.336.75.75s-.336.75-.75.75z" }), h("circle", { cx: "11.625", cy: "7.125", r: "1.125" }), h("path", { d: "m12 24c-6.617 0-12-5.383-12-12s5.383-12 12-12 12 5.383 12 12-5.383 12-12 12zm0-22.5c-5.79 0-10.5 4.71-10.5 10.5s4.71 10.5 10.5 10.5 10.5-4.71 10.5-10.5-4.71-10.5-10.5-10.5z" })), this.label ? (h("span", { class: "duet-tooltip-label" }, this.label)) : (h("duet-visually-hidden", null, this.accessibleInputLabel
203
210
  ? `${this.accessibleInputLabel}, ${this.accessibleLabel}`
204
- : this.accessibleLabel))), h("div", { ref: element => (this.tooltipEl = element), class: {
211
+ : this.accessibleLabel))), h("div", { ref: element => (this.tooltipEl = element), style: positionStyles, class: {
205
212
  "duet-tooltip": true,
206
- "duet-mq-large": this.breakpoint === "large",
207
- "duet-mq-medium": this.breakpoint === "medium",
208
213
  "duet-theme-turva": this.theme === "turva",
209
- "duet-tooltip-down": this.openDown,
210
214
  "duet-tooltip-has-label": !!this.label,
211
- "duet-tooltip-left": this.openLeft,
212
- "duet-tooltip-right": this.openRight,
213
215
  "duet-tooltip-active": this.active === true,
214
- }, onClick: e => e.stopPropagation(), onKeyDown: this.handleKeyDown, onFocusout: this.handleFocusOut }, h("div", { ref: element => (this.scrollableEl = element), class: "duet-tooltip-scrollable", tabindex: "0", id: this.tooltipId }, h("slot", null)), h("button", { type: "button", class: "duet-tooltip-close", onClick: this.handleCloseClick }, h("duet-icon", { name: "navigation-close-small", margin: "none", color: "currentColor", size: "xxx-small" }), h("duet-visually-hidden", null, this.accessibleCloseLabel)))));
216
+ }, onClick: e => e.stopPropagation(), onKeyDown: this.handleKeyDown, onFocusout: this.handleFocusOut }, h("div", { ref: element => (this.scrollableEl = element), class: "duet-tooltip-scrollable", tabindex: "0", id: this.tooltipId }, h("slot", null)), h("div", { ref: element => (this.arrowEl = element), class: { arrow: true, [this.placement]: true }, style: arrowStyles }, h("div", { class: { "arrow-container": true, [this.placement]: true } })), h("button", { type: "button", class: "duet-tooltip-close", onClick: this.handleCloseClick }, h("duet-icon", { name: "navigation-close-small", margin: "none", color: "currentColor", size: "xxx-small" }), h("duet-visually-hidden", null, this.accessibleCloseLabel)))));
215
217
  }
216
218
  static get is() { return "duet-tooltip"; }
217
219
  static get encapsulation() { return "shadow"; }
@@ -515,9 +517,11 @@ export class DuetTooltip {
515
517
  }
516
518
  static get states() {
517
519
  return {
518
- "openDown": {},
519
- "openLeft": {},
520
- "openRight": {}
520
+ "placement": {},
521
+ "tooltipY": {},
522
+ "tooltipX": {},
523
+ "arrowX": {},
524
+ "arrowY": {}
521
525
  };
522
526
  }
523
527
  static get elementRef() { return "element"; }
@@ -499,7 +499,7 @@ export class DuetUpload {
499
499
  inProgress: "Lähetetään {filesUploaded} lähetettävästä {filesTotal} tiedostosta",
500
500
  inProgressWithErrors: "Lähetetään {filesInProgress} tiedostoa, lähetetty {filesUploaded} lähetettävästä {filesTotal} tiedostosta, {filesWithErrors} tiedostossa on virheitä",
501
501
  done: "Kaikki {filesTotal} tiedostoa lähetetty onnistuneesti",
502
- doneWithErrors: "Lähetys valmis, {filesUploaded} tiedostoa on lähetetty onnistuneesti, {filesWithErrors} tiedostossa oli virheitä",
502
+ doneWithErrors: "Lataus valmis, {filesUploaded} tiedostoa ladattu onnistuneesti, {filesWithErrors} tiedostossa oli virheitä",
503
503
  files: "tiedostot",
504
504
  file: "tiedosto",
505
505
  },
@@ -1078,13 +1078,13 @@ export class DuetUpload {
1078
1078
  "docs": {
1079
1079
  "tags": [{
1080
1080
  "name": "default",
1081
- "text": "{\nfi: {\ninProgress: \"L\u00E4hetet\u00E4\u00E4n {filesUploaded} l\u00E4hetett\u00E4v\u00E4st\u00E4 {filesTotal} tiedostosta\",\ninProgressWithErrors:\n\"L\u00E4hetet\u00E4\u00E4n {filesInProgress} tiedostoa, l\u00E4hetetty {filesUploaded} l\u00E4hetett\u00E4v\u00E4st\u00E4 {filesTotal} tiedostosta, {filesWithErrors} tiedostossa on virheit\u00E4\",\ndone: \"Kaikki {filesTotal} tiedostoa l\u00E4hetetty onnistuneesti\",\ndoneWithErrors:\n\"L\u00E4hetys valmis, {filesUploaded} tiedostoa on l\u00E4hetetty onnistuneesti, {filesWithErrors} tiedostossa oli virheit\u00E4\",\nfiles: \"tiedostot\",\nfile: \"tiedosto\",\n},\nsv: {\ninProgress: \"Adding {filesUploaded} of {filesTotal}\",\ninProgressWithErrors:\n\"Laddar upp {filesInProgress}, {filesUploaded} uppladdad av {filesTotal}, {filesWithErrors} misslyckades\",\ndone: \"Alla {filesTotal} har lagts till\",\ndoneWithErrors: \"Handling slutf\u00F6rd, {filesUploaded} har lagts till, {filesWithErrors} misslyckades\",\nfiles: \"filer\",\nfile: \"fil\",\n},\nen: {\ninProgress: \"Adding {filesUploaded} of {filesTotal}\",\ninProgressWithErrors:\n\"Uploading {filesInProgress}, {filesUploaded} uploaded of {filesTotal}, {filesWithErrors} failed\",\ndone: \"All {filesTotal} added successfully\",\ndoneWithErrors: \"Action completed, {filesUploaded} has been added successfully, {filesWithErrors} had errors\",\nfiles: \"tiedostoa\",\nfile: \"tiedosto\",\n},\n}"
1081
+ "text": "{\nfi: {\ninProgress: \"L\u00E4hetet\u00E4\u00E4n {filesUploaded} l\u00E4hetett\u00E4v\u00E4st\u00E4 {filesTotal} tiedostosta\",\ninProgressWithErrors:\n\"L\u00E4hetet\u00E4\u00E4n {filesInProgress} tiedostoa, l\u00E4hetetty {filesUploaded} l\u00E4hetett\u00E4v\u00E4st\u00E4 {filesTotal} tiedostosta, {filesWithErrors} tiedostossa on virheit\u00E4\",\ndone: \"Kaikki {filesTotal} tiedostoa l\u00E4hetetty onnistuneesti\",\ndoneWithErrors:\n\"Lataus valmis, {filesUploaded} tiedostoa ladattu onnistuneesti, {filesWithErrors} tiedostossa oli virheit\u00E4\",\nfiles: \"tiedostot\",\nfile: \"tiedosto\",\n},\nsv: {\ninProgress: \"Adding {filesUploaded} of {filesTotal}\",\ninProgressWithErrors:\n\"Laddar upp {filesInProgress}, {filesUploaded} uppladdad av {filesTotal}, {filesWithErrors} misslyckades\",\ndone: \"Alla {filesTotal} har lagts till\",\ndoneWithErrors: \"Handling slutf\u00F6rd, {filesUploaded} har lagts till, {filesWithErrors} misslyckades\",\nfiles: \"filer\",\nfile: \"fil\",\n},\nen: {\ninProgress: \"Adding {filesUploaded} of {filesTotal}\",\ninProgressWithErrors:\n\"Uploading {filesInProgress}, {filesUploaded} uploaded of {filesTotal}, {filesWithErrors} failed\",\ndone: \"All {filesTotal} added successfully\",\ndoneWithErrors: \"Action completed, {filesUploaded} has been added successfully, {filesWithErrors} had errors\",\nfiles: \"tiedostoa\",\nfile: \"tiedosto\",\n},\n}"
1082
1082
  }],
1083
1083
  "text": "Property to change the aria upload progress text read aloud by screenreaders"
1084
1084
  },
1085
1085
  "attribute": "status-label-default",
1086
1086
  "reflect": false,
1087
- "defaultValue": "{\n fi: {\n inProgress: \"L\u00E4hetet\u00E4\u00E4n {filesUploaded} l\u00E4hetett\u00E4v\u00E4st\u00E4 {filesTotal} tiedostosta\",\n inProgressWithErrors:\n \"L\u00E4hetet\u00E4\u00E4n {filesInProgress} tiedostoa, l\u00E4hetetty {filesUploaded} l\u00E4hetett\u00E4v\u00E4st\u00E4 {filesTotal} tiedostosta, {filesWithErrors} tiedostossa on virheit\u00E4\",\n done: \"Kaikki {filesTotal} tiedostoa l\u00E4hetetty onnistuneesti\",\n doneWithErrors:\n \"L\u00E4hetys valmis, {filesUploaded} tiedostoa on l\u00E4hetetty onnistuneesti, {filesWithErrors} tiedostossa oli virheit\u00E4\",\n files: \"tiedostot\",\n file: \"tiedosto\",\n },\n sv: {\n inProgress: \"Adding {filesUploaded} of {filesTotal}\",\n inProgressWithErrors:\n \"Laddar upp {filesInProgress}, {filesUploaded} uppladdad av {filesTotal}, {filesWithErrors} misslyckades\",\n done: \"Alla {filesTotal} har lagts till\",\n doneWithErrors: \"Handling slutf\u00F6rd, {filesUploaded} har lagts till, {filesWithErrors} misslyckades\",\n files: \"filer\",\n file: \"fil\",\n },\n en: {\n inProgress: \"Adding {filesUploaded} of {filesTotal}\",\n inProgressWithErrors:\n \"Uploading {filesInProgress}, {filesUploaded} uploaded of {filesTotal}, {filesWithErrors} failed\",\n done: \"All {filesTotal} added successfully\",\n doneWithErrors: \"Action completed, {filesUploaded} has been added successfully, {filesWithErrors} had errors\",\n files: \"File\",\n file: \"file\",\n },\n }"
1087
+ "defaultValue": "{\n fi: {\n inProgress: \"L\u00E4hetet\u00E4\u00E4n {filesUploaded} l\u00E4hetett\u00E4v\u00E4st\u00E4 {filesTotal} tiedostosta\",\n inProgressWithErrors:\n \"L\u00E4hetet\u00E4\u00E4n {filesInProgress} tiedostoa, l\u00E4hetetty {filesUploaded} l\u00E4hetett\u00E4v\u00E4st\u00E4 {filesTotal} tiedostosta, {filesWithErrors} tiedostossa on virheit\u00E4\",\n done: \"Kaikki {filesTotal} tiedostoa l\u00E4hetetty onnistuneesti\",\n doneWithErrors:\n \"Lataus valmis, {filesUploaded} tiedostoa ladattu onnistuneesti, {filesWithErrors} tiedostossa oli virheit\u00E4\",\n files: \"tiedostot\",\n file: \"tiedosto\",\n },\n sv: {\n inProgress: \"Adding {filesUploaded} of {filesTotal}\",\n inProgressWithErrors:\n \"Laddar upp {filesInProgress}, {filesUploaded} uppladdad av {filesTotal}, {filesWithErrors} misslyckades\",\n done: \"Alla {filesTotal} har lagts till\",\n doneWithErrors: \"Handling slutf\u00F6rd, {filesUploaded} har lagts till, {filesWithErrors} misslyckades\",\n files: \"filer\",\n file: \"fil\",\n },\n en: {\n inProgress: \"Adding {filesUploaded} of {filesTotal}\",\n inProgressWithErrors:\n \"Uploading {filesInProgress}, {filesUploaded} uploaded of {filesTotal}, {filesWithErrors} failed\",\n done: \"All {filesTotal} added successfully\",\n doneWithErrors: \"Action completed, {filesUploaded} has been added successfully, {filesWithErrors} had errors\",\n files: \"File\",\n file: \"file\",\n },\n }"
1088
1088
  },
1089
1089
  "statusMessageLabel": {
1090
1090
  "type": "string",
@@ -5,13 +5,19 @@ import { h } from "@stencil/core";
5
5
  import { getLocaleString } from "../../utils/language-utils";
6
6
  import { getI18nError } from "./errorcodes.utils";
7
7
  import { formatBytes } from "./upload.helpers";
8
+ //tiedosto latautuu
9
+ const fileUploadingInfo = {
10
+ fi: "Tiedosto latautuu",
11
+ sv: "Filen laddas upp",
12
+ en: "File is uploading",
13
+ };
8
14
  export const UploadItem = ({ data, showLinks, type, actions, errorCodes, theme, label, categoryLabel, showCategory, }) => {
9
15
  const { uid, item, size, uploaded, url, meta, progress, error } = data;
10
16
  const { name } = item;
11
17
  const getFileNameLine = () => {
12
18
  switch (type) {
13
19
  case "inprogress":
14
- return (h("span", { class: "duet-upload-item-name" }, h("duet-paragraph", { class: "duet-upload-item-name", color: "gray-darker", margin: "none", weight: "semi-bold" }, h("duet-icon", { margin: "none", size: "x-small", name: "messaging-attachment" }), h("duet-spacer", { size: "xx-small", direction: "horizontal" }), name), h("duet-progress", { progress: Math.ceil(progress), "aria-hidden": true })));
20
+ return (h("span", { class: "duet-upload-item-name", role: "status" }, h("duet-paragraph", { class: "duet-upload-item-name", color: "gray-darker", margin: "none", weight: "semi-bold" }, h("duet-icon", { margin: "none", size: "x-small", name: "messaging-attachment" }), h("duet-spacer", { size: "xx-small", direction: "horizontal" }), name), h("visually-hidden", null, h("duet-paragraph", null, getLocaleString(fileUploadingInfo))), h("duet-progress", { progress: Math.ceil(progress), "aria-hidden": true })));
15
21
  case "pending":
16
22
  return (h("span", { class: "duet-upload-item-name" }, h("duet-icon", { margin: "none", size: "x-small", name: "messaging-attachment" }), h("duet-spacer", { size: "xx-small", direction: "horizontal" }), name));
17
23
  case "failure":
@@ -27,6 +33,6 @@ export const UploadItem = ({ data, showLinks, type, actions, errorCodes, theme,
27
33
  return (h("div", { class: {
28
34
  "upload-item-row": true,
29
35
  } }, showCategory && (h("div", { class: "item-categories" }, h("duet-heading", { class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(categoryLabel)), Badges)), h("div", { class: { "item-name": true, "no-category": !showCategory } }, !!label && (h("duet-heading", { class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(label))), getFileNameLine()), h("div", { class: "item-actions" }, actions.map(actionItem => {
30
- return (h("duet-action-button", { actionMeta: Object.assign({}, meta || {}), actionId: uid || null, actionName: actionItem.name, theme: theme, iconName: actionItem.icon, iconColor: actionItem.color, iconSize: actionItem.size, background: actionItem.background, "accessible-label": `${actionDescription} ${getLocaleString(actionItem.label)} ` }));
36
+ return (h("duet-action-button", { actionMeta: Object.assign({}, meta || {}), actionId: uid || null, actionName: actionItem.name, theme: theme, iconName: actionItem.icon, iconColor: actionItem.color, iconSize: actionItem.size, background: actionItem.background, "accessible-label": `${actionDescription} ${getLocaleString(actionItem.label)} `, accessibleTitle: false }));
31
37
  }))));
32
38
  };
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { D as DuetActionButton$1, d as defineCustomElement$1 } from './p-f9c288b5.js';
4
+ import { D as DuetActionButton$1, d as defineCustomElement$1 } from './p-369a9e6b.js';
5
5
 
6
6
  const DuetActionButton = DuetActionButton$1;
7
7
  const defineCustomElement = defineCustomElement$1;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { D as DuetAlert$1, d as defineCustomElement$1 } from './p-70ef0e9d.js';
4
+ import { D as DuetAlert$1, d as defineCustomElement$1 } from './p-5119f1dc.js';
5
5
 
6
6
  const DuetAlert = DuetAlert$1;
7
7
  const defineCustomElement = defineCustomElement$1;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { D as DuetBadge$1, d as defineCustomElement$1 } from './p-f5252ae4.js';
4
+ import { D as DuetBadge$1, d as defineCustomElement$1 } from './p-cbb67f4e.js';
5
5
 
6
6
  const DuetBadge = DuetBadge$1;
7
7
  const defineCustomElement = defineCustomElement$1;
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { p as proxyCustomElement, H, h, d as Host } from './p-a1863bda.js';
4
+ import { p as proxyCustomElement, H, h, d as Host } from './p-efa5255b.js';
5
5
  import { i as inheritGlobalTheme } from './p-4ebf1618.js';
6
- import { d as defineCustomElement$2 } from './p-f5d77e8e.js';
6
+ import { d as defineCustomElement$2 } from './p-67365843.js';
7
7
 
8
8
  const duetBreadcrumbCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-breadcrumb{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100%;font-size:0.875rem;font-weight:inherit;color:inherit;text-decoration:none}.duet-breadcrumb:focus{outline:0}:host(.user-is-tabbing) .duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179)}:host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58)}";
9
9
 
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { p as proxyCustomElement, H, h, F as Fragment, d as Host } from './p-a1863bda.js';
4
+ import { p as proxyCustomElement, H, h, F as Fragment, d as Host } from './p-efa5255b.js';
5
5
  import { i as inheritGlobalTheme } from './p-4ebf1618.js';
6
6
  import { a as getLocaleString } from './p-076452be.js';
7
- import { d as defineCustomElement$2 } from './p-f5d77e8e.js';
7
+ import { d as defineCustomElement$2 } from './p-67365843.js';
8
8
 
9
9
  var actionArrowRightSmall={"title":"action-arrow-right-small","tags":"action arrow right small caret","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M19.5 12a2.3 2.3 0 0 1-.78 1.729L7.568 23.54a1.847 1.847 0 0 1-2.439-2.773l9.752-8.579a.25.25 0 0 0 0-.376L5.129 3.233A1.847 1.847 0 0 1 7.568.46l11.148 9.808A2.31 2.31 0 0 1 19.5 12z\"/></svg>"};
10
10
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { D as DuetButton$1, d as defineCustomElement$1 } from './p-6f0966d2.js';
4
+ import { D as DuetButton$1, d as defineCustomElement$1 } from './p-1d207f70.js';
5
5
 
6
6
  const DuetButton = DuetButton$1;
7
7
  const defineCustomElement = defineCustomElement$1;
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { p as proxyCustomElement, H, h, d as Host } from './p-a1863bda.js';
4
+ import { p as proxyCustomElement, H, h, d as Host } from './p-efa5255b.js';
5
5
  import { i as inheritGlobalTheme } from './p-4ebf1618.js';
6
- import { d as defineCustomElement$3 } from './p-f5d77e8e.js';
7
- import { d as defineCustomElement$2 } from './p-5962ecc8.js';
6
+ import { d as defineCustomElement$3 } from './p-67365843.js';
7
+ import { d as defineCustomElement$2 } from './p-5183d2cf.js';
8
8
 
9
9
  const duetCalloutCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:100%}blockquote,figure{margin:0}.duet-callout{margin-bottom:28px !important;display:flex;align-items:center;justify-content:center;width:100%;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-callout .container{display:flex;flex-direction:column;gap:8px;align-items:center;max-width:688px;text-align:center}.duet-callout .callout-icon{width:50px;padding-bottom:8px}.duet-callout .author{color:rgb(0, 41, 77)}.duet-callout.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-callout.duet-theme-turva .author{color:rgb(23, 28, 58)}.duet-callout.duet-m-0{margin:0 !important}";
10
10
 
@@ -13,6 +13,7 @@ const DuetCallout$1 = /*@__PURE__*/ proxyCustomElement(class extends H {
13
13
  super();
14
14
  this.__registerHost();
15
15
  this.__attachShadow();
16
+ this.hasAuthorSlot = false;
16
17
  this.theme = "";
17
18
  this.margin = "auto";
18
19
  }
@@ -21,6 +22,7 @@ const DuetCallout$1 = /*@__PURE__*/ proxyCustomElement(class extends H {
21
22
  */
22
23
  componentWillLoad() {
23
24
  inheritGlobalTheme(this);
25
+ this.hasAuthorSlot = !!this.element.querySelector('[slot="author"]');
24
26
  }
25
27
  /**
26
28
  * render() function
@@ -35,8 +37,9 @@ const DuetCallout$1 = /*@__PURE__*/ proxyCustomElement(class extends H {
35
37
  "duet-callout": true,
36
38
  "duet-theme-turva": this.theme === "turva",
37
39
  "duet-m-0": this.margin === "none",
38
- } }, h("figure", { class: "container" }, h("duet-icon", { class: "callout-icon", shape: "brand-rotated", background: "primary-lighter", "background-opacity": "0.75", "background-rotation": this.theme === "turva" ? "0" : "7", color: "secondary", icon: icon, size: "auto", margin: "none" }), h("blockquote", null, h("duet-paragraph", { variation: "intro", weight: "semi-bold", margin: "none" }, h("slot", null))), h("figcaption", { class: "author" }, h("span", null, "\u2014 "), h("span", null, h("slot", { name: "author" })))))));
40
+ } }, h("figure", { class: "container" }, h("duet-icon", { class: "callout-icon", shape: "brand-rotated", background: "primary-lighter", "background-opacity": "0.75", "background-rotation": this.theme === "turva" ? "0" : "7", color: "secondary", icon: icon, size: "auto", margin: "none", theme: this.theme }), h("blockquote", null, h("duet-paragraph", { variation: "intro", weight: "semi-bold", margin: "none", theme: this.theme }, h("slot", null))), this.hasAuthorSlot && (h("figcaption", { class: "author" }, h("span", null, "\u2014 "), h("span", null, h("slot", { name: "author" }))))))));
39
41
  }
42
+ get element() { return this; }
40
43
  static get style() { return duetCalloutCss; }
41
44
  }, [1, "duet-callout", {
42
45
  "theme": [1025],
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Built with Duet Design System
3
3
  */
4
- import { D as DuetCaption$1, d as defineCustomElement$1 } from './p-c638adb2.js';
4
+ import { D as DuetCaption$1, d as defineCustomElement$1 } from './p-8bad78a6.js';
5
5
 
6
6
  const DuetCaption = DuetCaption$1;
7
7
  const defineCustomElement = defineCustomElement$1;