@duetds/components 6.9.5 → 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 (531) hide show
  1. package/hydrate/index.js +1347 -69
  2. package/lib/cjs/duet-action-button.cjs.entry.js +2 -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 +2 -2
  8. package/lib/cjs/duet-callout.cjs.entry.js +46 -0
  9. package/lib/cjs/duet-caption_4.cjs.entry.js +2 -2
  10. package/lib/cjs/duet-card.cjs.entry.js +2 -2
  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 +2 -2
  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 +2 -2
  20. package/lib/cjs/duet-editable-table_3.cjs.entry.js +16 -5
  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 +19 -8
  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 +2 -2
  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 +3 -3
  53. package/lib/cjs/duet-slideout.cjs.entry.js +3 -3
  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 +23 -5
  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-8edb1dd0.js → focus-utils-8852d70c.js} +1 -1
  71. package/lib/cjs/{index-81121cf7.js → index-8baedc34.js} +1 -1
  72. package/lib/cjs/loader.cjs.js +2 -2
  73. package/lib/cjs/{token-utils-4bfb15d4.js → token-utils-966776e9.js} +9 -0
  74. package/lib/collection/collection-manifest.json +1 -0
  75. package/lib/collection/components/duet-callout/duet-callout.css +51 -0
  76. package/lib/collection/components/duet-callout/duet-callout.js +101 -0
  77. package/lib/collection/components/duet-choice/duet-choice.js +3 -1
  78. package/lib/collection/components/duet-collapsible/duet-collapsible.css +1 -1
  79. package/lib/collection/components/duet-hero/duet-hero.css +10 -0
  80. package/lib/collection/components/duet-hero/duet-hero.js +3 -1
  81. package/lib/collection/components/duet-icon/duet-icon.js +60 -7
  82. package/lib/collection/components/duet-menu-bar/duet-menu-bar.css +12 -0
  83. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.css +43 -3
  84. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +23 -4
  85. package/lib/collection/components/duet-tooltip/duet-tooltip.css +39 -106
  86. package/lib/collection/components/duet-tooltip/duet-tooltip.js +53 -49
  87. package/lib/collection/components/duet-upload/duet-upload.js +6 -3
  88. package/lib/collection/components/duet-upload/upload-item.js +8 -2
  89. package/lib/collection/utils/token-utils.js +8 -0
  90. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  91. package/lib/dist-custom-elements/duet-alert.js +1 -1
  92. package/lib/dist-custom-elements/duet-badge.js +1 -1
  93. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  94. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  95. package/lib/dist-custom-elements/duet-button.js +1 -1
  96. package/lib/dist-custom-elements/duet-callout.d.ts +11 -0
  97. package/lib/dist-custom-elements/duet-callout.js +75 -0
  98. package/lib/dist-custom-elements/duet-caption.js +1 -1
  99. package/lib/dist-custom-elements/duet-card.js +4 -4
  100. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  101. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  102. package/lib/dist-custom-elements/duet-choice-group.js +6 -6
  103. package/lib/dist-custom-elements/duet-choice.js +8 -6
  104. package/lib/dist-custom-elements/duet-collapsible.js +4 -4
  105. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  106. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  107. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  108. package/lib/dist-custom-elements/duet-date-picker.js +10 -10
  109. package/lib/dist-custom-elements/duet-divider.js +1 -1
  110. package/lib/dist-custom-elements/duet-editable-table.js +7 -7
  111. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  112. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  113. package/lib/dist-custom-elements/duet-footer.js +4 -4
  114. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  115. package/lib/dist-custom-elements/duet-grid.js +1 -1
  116. package/lib/dist-custom-elements/duet-header.js +9 -9
  117. package/lib/dist-custom-elements/duet-heading.js +1 -1
  118. package/lib/dist-custom-elements/duet-hero.js +12 -11
  119. package/lib/dist-custom-elements/duet-icon.js +1 -1
  120. package/lib/dist-custom-elements/duet-input.js +1 -1
  121. package/lib/dist-custom-elements/duet-label.js +1 -1
  122. package/lib/dist-custom-elements/duet-layout.js +1 -1
  123. package/lib/dist-custom-elements/duet-link.js +1 -1
  124. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  125. package/lib/dist-custom-elements/duet-list.js +1 -1
  126. package/lib/dist-custom-elements/duet-logo.js +1 -1
  127. package/lib/dist-custom-elements/duet-menu-bar-button.js +3 -3
  128. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
  129. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +3 -3
  130. package/lib/dist-custom-elements/duet-menu-bar-link.js +3 -3
  131. package/lib/dist-custom-elements/duet-menu-bar.js +4 -4
  132. package/lib/dist-custom-elements/duet-modal.js +7 -7
  133. package/lib/dist-custom-elements/duet-multiselect.js +8 -8
  134. package/lib/dist-custom-elements/duet-nav.js +1 -1
  135. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  136. package/lib/dist-custom-elements/duet-notification.js +2 -2
  137. package/lib/dist-custom-elements/duet-number-input.js +9 -9
  138. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  139. package/lib/dist-custom-elements/duet-pagination.js +7 -7
  140. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  141. package/lib/dist-custom-elements/duet-progress.js +1 -1
  142. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  143. package/lib/dist-custom-elements/duet-radio.js +1 -1
  144. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  145. package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
  146. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  147. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  148. package/lib/dist-custom-elements/duet-select.js +1 -1
  149. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  150. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  151. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  152. package/lib/dist-custom-elements/duet-slideout-panel.js +3 -3
  153. package/lib/dist-custom-elements/duet-slideout.js +3 -3
  154. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  155. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  156. package/lib/dist-custom-elements/duet-step.js +4 -4
  157. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  158. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  159. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +3 -3
  160. package/lib/dist-custom-elements/duet-submenu-bar-link.js +3 -3
  161. package/lib/dist-custom-elements/duet-submenu-bar.js +26 -7
  162. package/lib/dist-custom-elements/duet-tab-group.js +9 -9
  163. package/lib/dist-custom-elements/duet-tab.js +1 -1
  164. package/lib/dist-custom-elements/duet-table.js +1 -1
  165. package/lib/dist-custom-elements/duet-textarea.js +8 -8
  166. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  167. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  168. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  169. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  170. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  171. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  172. package/lib/dist-custom-elements/duet-tray.js +3 -3
  173. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  174. package/lib/dist-custom-elements/duet-upload.js +31 -20
  175. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  176. package/lib/dist-custom-elements/index.js +1 -1
  177. package/lib/dist-custom-elements/p-1635a5ff.js +1446 -0
  178. package/lib/dist-custom-elements/{p-a81b913d.js → p-1d207f70.js} +5 -5
  179. package/lib/dist-custom-elements/{p-bd0dd4e8.js → p-2a351223.js} +2 -2
  180. package/lib/dist-custom-elements/{p-00622251.js → p-369a9e6b.js} +4 -4
  181. package/lib/dist-custom-elements/{p-2ea5174d.js → p-3d6100be.js} +2 -2
  182. package/lib/dist-custom-elements/{p-e873b671.js → p-4d20fcd1.js} +2 -2
  183. package/lib/dist-custom-elements/{p-57b9edb8.js → p-5119f1dc.js} +5 -5
  184. package/lib/dist-custom-elements/{p-e051482f.js → p-5183d2cf.js} +2 -2
  185. package/lib/dist-custom-elements/{p-4c1f4126.js → p-53c27e8e.js} +1 -1
  186. package/lib/dist-custom-elements/{p-95f8531c.js → p-62683175.js} +1 -1
  187. package/lib/dist-custom-elements/{p-f8646bdd.js → p-649043a8.js} +2 -2
  188. package/lib/dist-custom-elements/{p-a6f793fc.js → p-67365843.js} +21 -8
  189. package/lib/dist-custom-elements/{p-de83b878.js → p-68be9a91.js} +1 -1
  190. package/lib/dist-custom-elements/{p-d2e453e5.js → p-783a8425.js} +2 -2
  191. package/lib/dist-custom-elements/{p-ca210b87.js → p-7a905f45.js} +3 -3
  192. package/lib/dist-custom-elements/{p-27f66954.js → p-7e395433.js} +2 -2
  193. package/lib/dist-custom-elements/{p-20c82fbd.js → p-87df78c6.js} +1 -1
  194. package/lib/dist-custom-elements/{p-68024252.js → p-890d1070.js} +9 -1
  195. package/lib/dist-custom-elements/{p-aacb3b95.js → p-8bad78a6.js} +1 -1
  196. package/lib/dist-custom-elements/{p-27efb5f6.js → p-93fab31d.js} +1 -1
  197. package/lib/dist-custom-elements/{p-4b87207e.js → p-99687f8f.js} +6 -6
  198. package/lib/dist-custom-elements/{p-0acc5ed6.js → p-9d1b018a.js} +1 -1
  199. package/lib/dist-custom-elements/{p-5808a711.js → p-c243ec01.js} +1 -1
  200. package/lib/{esm/tokens-0963dc8b.js → dist-custom-elements/p-cb9787ec.js} +1 -1
  201. package/lib/dist-custom-elements/{p-b385a866.js → p-cbb67f4e.js} +1 -1
  202. package/lib/dist-custom-elements/{p-eb0f0871.js → p-d95944c8.js} +2 -2
  203. package/lib/dist-custom-elements/{p-82cb614b.js → p-e080ccaa.js} +1 -1
  204. package/lib/dist-custom-elements/{p-a4a81077.js → p-e2a3c6fa.js} +2 -2
  205. package/lib/dist-custom-elements/{p-a7109746.js → p-e4e40736.js} +2 -2
  206. package/lib/dist-custom-elements/{p-2ff017a8.js → p-efa5255b.js} +1 -1
  207. package/lib/dist-custom-elements/{p-98983cf5.js → p-f0e99128.js} +8 -8
  208. package/lib/dist-custom-elements/{p-111c553d.js → p-f2d8763d.js} +2 -2
  209. package/lib/dist-custom-elements/{p-7ccd5f61.js → p-f83c1df9.js} +1 -1
  210. package/lib/duet/duet.esm.js +1 -1
  211. package/lib/duet/duet.js +1 -1
  212. package/lib/duet/p-01d38ac9.entry.js +4 -0
  213. package/lib/duet/{p-2743b8e3.system.entry.js → p-029f96ec.system.entry.js} +1 -1
  214. package/lib/duet/{p-398cb719.entry.js → p-03bd5373.entry.js} +1 -1
  215. package/lib/duet/{p-03a69a82.system.entry.js → p-04da22d7.system.entry.js} +1 -1
  216. package/lib/duet/{p-2c0520ca.system.entry.js → p-07d0ed0a.system.entry.js} +1 -1
  217. package/lib/duet/{p-0d21f532.entry.js → p-08693a37.entry.js} +1 -1
  218. package/lib/duet/{p-2bed99fa.system.entry.js → p-097da893.system.entry.js} +1 -1
  219. package/lib/duet/{p-c86e5e36.system.entry.js → p-09d4bac7.system.entry.js} +1 -1
  220. package/lib/duet/{p-9a784d29.system.entry.js → p-0a03a862.system.entry.js} +1 -1
  221. package/lib/duet/{p-da91528a.entry.js → p-0a6ff475.entry.js} +1 -1
  222. package/lib/duet/{p-0dd90f16.system.entry.js → p-0b752687.system.entry.js} +1 -1
  223. package/lib/duet/{p-ac7ea81a.entry.js → p-0cdc880e.entry.js} +1 -1
  224. package/lib/duet/{p-07b5abec.system.entry.js → p-0e165a4e.system.entry.js} +1 -1
  225. package/lib/duet/{p-6d204f7f.entry.js → p-0f80e2fc.entry.js} +1 -1
  226. package/lib/duet/{p-5ab222b7.system.entry.js → p-0fc1b439.system.entry.js} +1 -1
  227. package/lib/duet/{p-676730a8.system.entry.js → p-1028e393.system.entry.js} +1 -1
  228. package/lib/duet/p-106abf71.system.entry.js +4 -0
  229. package/lib/duet/{p-58fb7a22.entry.js → p-12afe002.entry.js} +1 -1
  230. package/lib/duet/{p-ddd374b4.system.entry.js → p-1396c277.system.entry.js} +1 -1
  231. package/lib/duet/p-151892ff.system.entry.js +4 -0
  232. package/lib/duet/{p-663247df.system.entry.js → p-1677ce5c.system.entry.js} +1 -1
  233. package/lib/duet/{p-6020bc32.system.entry.js → p-1a0b0fe9.system.entry.js} +1 -1
  234. package/lib/duet/p-1c0453e0.system.js +4 -0
  235. package/lib/duet/{p-8442ce22.entry.js → p-1c0a39db.entry.js} +1 -1
  236. package/lib/duet/{p-bbcb7a1d.entry.js → p-2125b071.entry.js} +1 -1
  237. package/lib/duet/{p-e76b6f2f.entry.js → p-2879b97d.entry.js} +1 -1
  238. package/lib/duet/{p-e9c70c19.entry.js → p-29b9e99e.entry.js} +1 -1
  239. package/lib/duet/{p-a57d2cd7.system.entry.js → p-2bc4d34e.system.entry.js} +1 -1
  240. package/lib/duet/p-2c68ee2d.system.entry.js +4 -0
  241. package/lib/duet/{p-d08acf37.system.entry.js → p-2d5be93c.system.entry.js} +1 -1
  242. package/lib/duet/{p-c76d7cab.entry.js → p-2d71fa26.entry.js} +1 -1
  243. package/lib/duet/{p-95c7021f.system.entry.js → p-32eecc8d.system.entry.js} +1 -1
  244. package/lib/duet/{p-ad18ed23.system.entry.js → p-344134e5.system.entry.js} +1 -1
  245. package/lib/duet/{p-59efa9e0.system.entry.js → p-36bca919.system.entry.js} +1 -1
  246. package/lib/duet/{p-b6e15be0.system.entry.js → p-3b1ff9be.system.entry.js} +1 -1
  247. package/lib/duet/{p-5b93cff5.entry.js → p-3c88792b.entry.js} +1 -1
  248. package/lib/duet/{p-28f4474e.system.entry.js → p-3d6d2012.system.entry.js} +1 -1
  249. package/lib/duet/{p-e016d27b.entry.js → p-3de9ea90.entry.js} +1 -1
  250. package/lib/duet/{p-9b4096ae.entry.js → p-3e2c87e6.entry.js} +1 -1
  251. package/lib/duet/{p-6da60c3a.entry.js → p-3e7b62a4.entry.js} +1 -1
  252. package/lib/duet/{p-cce99a1d.system.entry.js → p-401a454b.system.entry.js} +2 -2
  253. package/lib/duet/{p-26e5f323.system.entry.js → p-41a69e48.system.entry.js} +1 -1
  254. package/lib/duet/{p-450469cd.system.entry.js → p-42844e9d.system.entry.js} +1 -1
  255. package/lib/duet/{p-fe039b5e.entry.js → p-44f22e6b.entry.js} +1 -1
  256. package/lib/duet/p-450e63a4.system.js +4 -0
  257. package/lib/duet/{p-1c667631.entry.js → p-458dd158.entry.js} +1 -1
  258. package/lib/duet/{p-37aa45f3.entry.js → p-45fe4429.entry.js} +1 -1
  259. package/lib/duet/p-4634f44d.entry.js +4 -0
  260. package/lib/duet/{p-76d453ec.system.entry.js → p-466c4910.system.entry.js} +1 -1
  261. package/lib/duet/p-48ef2786.system.entry.js +4 -0
  262. package/lib/duet/{p-d119935f.entry.js → p-4a4cbba5.entry.js} +1 -1
  263. package/lib/duet/{p-f3fa09d1.entry.js → p-4c1fb962.entry.js} +1 -1
  264. package/lib/duet/{p-248a1e70.system.entry.js → p-4c7fb05f.system.entry.js} +1 -1
  265. package/lib/duet/{p-8c9438d3.entry.js → p-4cb43c38.entry.js} +1 -1
  266. package/lib/duet/p-5074accf.entry.js +4 -0
  267. package/lib/duet/{p-413a3ebd.system.entry.js → p-5573222d.system.entry.js} +1 -1
  268. package/lib/duet/{p-76c6eef8.entry.js → p-57a26a2a.entry.js} +1 -1
  269. package/lib/duet/{p-b5813a0f.system.entry.js → p-5c17a74a.system.entry.js} +1 -1
  270. package/lib/duet/{p-76ac794f.system.entry.js → p-5d15cd89.system.entry.js} +1 -1
  271. package/lib/duet/{p-920d58da.entry.js → p-5e6542bc.entry.js} +1 -1
  272. package/lib/duet/{p-dbc4a1f6.system.entry.js → p-5f7a2639.system.entry.js} +1 -1
  273. package/lib/duet/{p-f6adb078.system.entry.js → p-613156e6.system.entry.js} +2 -2
  274. package/lib/duet/{p-1c1a784e.system.entry.js → p-62a63d5b.system.entry.js} +1 -1
  275. package/lib/duet/{p-4e75e28e.entry.js → p-6325ae2d.entry.js} +1 -1
  276. package/lib/duet/p-66fbed51.entry.js +4 -0
  277. package/lib/duet/{p-50495b74.entry.js → p-675f844b.entry.js} +1 -1
  278. package/lib/duet/{p-e4e8671a.system.entry.js → p-68ee9bfa.system.entry.js} +1 -1
  279. package/lib/duet/{p-29864af5.system.entry.js → p-6a0f118b.system.entry.js} +1 -1
  280. package/lib/duet/{p-11c9648d.system.entry.js → p-6ba40ef9.system.entry.js} +1 -1
  281. package/lib/duet/{p-d5a9a127.entry.js → p-6dc868fd.entry.js} +1 -1
  282. package/lib/duet/{p-a3b02dfe.system.entry.js → p-6dcce504.system.entry.js} +1 -1
  283. package/lib/duet/{p-92a86be1.entry.js → p-70e49d00.entry.js} +1 -1
  284. package/lib/duet/p-73f9efad.js +4 -0
  285. package/lib/duet/p-752fb0a0.system.entry.js +4 -0
  286. package/lib/duet/{p-b323c9dd.entry.js → p-75316086.entry.js} +1 -1
  287. package/lib/duet/p-789a9af4.entry.js +4 -0
  288. package/lib/duet/{p-152af7a3.system.entry.js → p-79dd09a6.system.entry.js} +1 -1
  289. package/lib/duet/{p-576caf16.entry.js → p-79eb3572.entry.js} +1 -1
  290. package/lib/duet/{p-b6ba60c4.entry.js → p-7b99f674.entry.js} +1 -1
  291. package/lib/duet/{p-81e5dfca.system.js → p-7bab508c.system.js} +1 -1
  292. package/lib/duet/{p-7454a974.system.entry.js → p-7cf776fa.system.entry.js} +1 -1
  293. package/lib/duet/{p-7e401d44.entry.js → p-7e3e70df.entry.js} +1 -1
  294. package/lib/duet/{p-8151dad5.system.entry.js → p-7f94280a.system.entry.js} +1 -1
  295. package/lib/duet/p-7fefe439.entry.js +4 -0
  296. package/lib/duet/{p-5e68175c.system.entry.js → p-8349ff2d.system.entry.js} +1 -1
  297. package/lib/duet/{p-e483eaf7.entry.js → p-853ac360.entry.js} +1 -1
  298. package/lib/duet/{p-b5e831ad.system.entry.js → p-8d5edbbe.system.entry.js} +1 -1
  299. package/lib/duet/{p-258e74a2.system.entry.js → p-91be047f.system.entry.js} +1 -1
  300. package/lib/duet/{p-cee25077.system.entry.js → p-92e94229.system.entry.js} +1 -1
  301. package/lib/duet/{p-59187969.entry.js → p-93a2c807.entry.js} +1 -1
  302. package/lib/duet/{p-dee6ebe6.system.entry.js → p-97528238.system.entry.js} +1 -1
  303. package/lib/duet/{p-b5bc42d3.system.entry.js → p-9791ab1b.system.entry.js} +1 -1
  304. package/lib/duet/{p-d6280581.system.entry.js → p-97df072f.system.entry.js} +1 -1
  305. package/lib/duet/{p-f31f949c.system.entry.js → p-981f2443.system.entry.js} +1 -1
  306. package/lib/duet/{p-a38015bf.system.entry.js → p-98777ba0.system.entry.js} +1 -1
  307. package/lib/duet/{p-7caf9f8c.entry.js → p-991271a2.entry.js} +1 -1
  308. package/lib/duet/{p-82e72de8.system.entry.js → p-9916b7d2.system.entry.js} +1 -1
  309. package/lib/duet/{p-33196e22.entry.js → p-9c127e8f.entry.js} +1 -1
  310. package/lib/duet/p-9ec19751.entry.js +4 -0
  311. package/lib/duet/p-9f81873c.entry.js +4 -0
  312. package/lib/duet/{p-d38eb818.system.entry.js → p-a042bc85.system.entry.js} +1 -1
  313. package/lib/duet/{p-9711aa31.entry.js → p-a1a8395b.entry.js} +1 -1
  314. package/lib/duet/{p-7df39ae6.entry.js → p-a341e9c3.entry.js} +1 -1
  315. package/lib/duet/{p-35872d73.entry.js → p-a653bb02.entry.js} +1 -1
  316. package/lib/duet/{p-d398189d.entry.js → p-a6aba2d3.entry.js} +1 -1
  317. package/lib/duet/{p-e98fe1b4.entry.js → p-a903a315.entry.js} +1 -1
  318. package/lib/duet/{p-8078b081.system.js → p-a9a7d16c.system.js} +1 -1
  319. package/lib/duet/p-a9d7b38d.entry.js +4 -0
  320. package/lib/duet/{p-3791056c.system.entry.js → p-afcfc528.system.entry.js} +1 -1
  321. package/lib/duet/{p-354090fc.entry.js → p-b4ff5c09.entry.js} +1 -1
  322. package/lib/duet/{p-f7c3b41f.entry.js → p-b90cdb91.entry.js} +1 -1
  323. package/lib/duet/{p-a5f307cc.entry.js → p-bb97ab92.entry.js} +1 -1
  324. package/lib/duet/{p-19bb927c.system.entry.js → p-bef59086.system.entry.js} +1 -1
  325. package/lib/duet/{p-c820689f.entry.js → p-c39467e4.entry.js} +1 -1
  326. package/lib/duet/{p-53ec70ad.entry.js → p-c50233e1.entry.js} +1 -1
  327. package/lib/duet/{p-3bffc1ba.system.entry.js → p-c504d7cd.system.entry.js} +1 -1
  328. package/lib/duet/{p-bd426f15.entry.js → p-c56dd6d7.entry.js} +1 -1
  329. package/lib/duet/{p-b3693e82.system.entry.js → p-c6a321f1.system.entry.js} +1 -1
  330. package/lib/duet/{p-8bd0fbf8.entry.js → p-c94a423f.entry.js} +1 -1
  331. package/lib/duet/{p-c4d8cad0.js → p-cb9787ec.js} +1 -1
  332. package/lib/duet/{p-540a243d.js → p-cca182be.js} +1 -1
  333. package/lib/duet/{p-66ab4869.entry.js → p-cff8b0b3.entry.js} +1 -1
  334. package/lib/duet/p-d1b6fd73.system.entry.js +4 -0
  335. package/lib/duet/p-d3bba23f.entry.js +4 -0
  336. package/lib/duet/p-d4d2569e.entry.js +4 -0
  337. package/lib/duet/{p-7286fe0a.system.entry.js → p-d6196775.system.entry.js} +1 -1
  338. package/lib/duet/{p-0cd46f36.system.js → p-d7e6a4ed.system.js} +1 -1
  339. package/lib/duet/{p-5e97f333.system.entry.js → p-da04e483.system.entry.js} +1 -1
  340. package/lib/duet/{p-7f8e1e3e.system.entry.js → p-dc4b4a04.system.entry.js} +1 -1
  341. package/lib/duet/{p-afc5adae.entry.js → p-de82bfee.entry.js} +1 -1
  342. package/lib/duet/{p-b32b8786.entry.js → p-df7481e8.entry.js} +1 -1
  343. package/lib/duet/{p-21241efd.system.entry.js → p-e057d8c4.system.entry.js} +1 -1
  344. package/lib/duet/{p-230e5380.entry.js → p-e05c4a5b.entry.js} +1 -1
  345. package/lib/duet/{p-f3221a0e.system.entry.js → p-e0848924.system.entry.js} +1 -1
  346. package/lib/duet/{p-0d8f3f8b.entry.js → p-e5d2b68e.entry.js} +1 -1
  347. package/lib/duet/{p-9a5d8dc8.system.entry.js → p-e65bc05f.system.entry.js} +1 -1
  348. package/lib/duet/{p-d54e170f.system.entry.js → p-e6f92c08.system.entry.js} +1 -1
  349. package/lib/duet/{p-1b2cc0ed.system.entry.js → p-ed16d00b.system.entry.js} +1 -1
  350. package/lib/duet/{p-12fd0273.js → p-f5a74f01.js} +1 -1
  351. package/lib/duet/p-f5fd8e55.entry.js +4 -0
  352. package/lib/duet/{p-5df2cedc.entry.js → p-f691d0b6.entry.js} +1 -1
  353. package/lib/duet/{p-ce6e2909.entry.js → p-f7fbc435.entry.js} +1 -1
  354. package/lib/duet/{p-5632e848.entry.js → p-f8d91f4b.entry.js} +1 -1
  355. package/lib/esm/duet-action-button.entry.js +2 -2
  356. package/lib/esm/duet-alert.entry.js +1 -1
  357. package/lib/esm/duet-badge.entry.js +1 -1
  358. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  359. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  360. package/lib/esm/duet-button_2.entry.js +2 -2
  361. package/lib/esm/duet-callout.entry.js +42 -0
  362. package/lib/esm/duet-caption_4.entry.js +2 -2
  363. package/lib/esm/duet-card.entry.js +2 -2
  364. package/lib/esm/duet-checkbox.entry.js +1 -1
  365. package/lib/esm/duet-checkmark.entry.js +1 -1
  366. package/lib/esm/duet-choice_2.entry.js +5 -3
  367. package/lib/esm/duet-collapsible.entry.js +3 -3
  368. package/lib/esm/duet-combobox.entry.js +1 -1
  369. package/lib/esm/duet-contact-card.entry.js +1 -1
  370. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  371. package/lib/esm/duet-date-picker.entry.js +2 -2
  372. package/lib/esm/duet-divider_2.entry.js +2 -2
  373. package/lib/esm/duet-editable-table_3.entry.js +16 -5
  374. package/lib/esm/duet-empty-state.entry.js +1 -1
  375. package/lib/esm/duet-fieldset.entry.js +1 -1
  376. package/lib/esm/duet-footer.entry.js +1 -1
  377. package/lib/esm/duet-grid_2.entry.js +2 -2
  378. package/lib/esm/duet-header_2.entry.js +2 -2
  379. package/lib/esm/duet-hero.entry.js +4 -3
  380. package/lib/esm/duet-icon.entry.js +19 -8
  381. package/lib/esm/duet-input_2.entry.js +1 -1
  382. package/lib/esm/duet-layout.entry.js +1 -1
  383. package/lib/esm/duet-list_2.entry.js +1 -1
  384. package/lib/esm/duet-menu-bar-button.entry.js +2 -2
  385. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
  386. package/lib/esm/duet-menu-bar-dropdown.entry.js +2 -2
  387. package/lib/esm/duet-menu-bar-link.entry.js +2 -2
  388. package/lib/esm/duet-menu-bar.entry.js +3 -3
  389. package/lib/esm/duet-modal.entry.js +2 -2
  390. package/lib/esm/duet-multiselect.entry.js +1 -1
  391. package/lib/esm/duet-nav.entry.js +1 -1
  392. package/lib/esm/duet-notification_2.entry.js +1 -1
  393. package/lib/esm/duet-number-input.entry.js +1 -1
  394. package/lib/esm/duet-page-heading.entry.js +1 -1
  395. package/lib/esm/duet-pagination_2.entry.js +1 -1
  396. package/lib/esm/duet-progress.entry.js +1 -1
  397. package/lib/esm/duet-radio_2.entry.js +1 -1
  398. package/lib/esm/duet-range-slider.entry.js +1 -1
  399. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  400. package/lib/esm/duet-section-layout.entry.js +1 -1
  401. package/lib/esm/duet-select.entry.js +1 -1
  402. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  403. package/lib/esm/duet-slideout-link.entry.js +1 -1
  404. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  405. package/lib/esm/duet-slideout-panel.entry.js +3 -3
  406. package/lib/esm/duet-slideout.entry.js +3 -3
  407. package/lib/esm/duet-step_2.entry.js +1 -1
  408. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  409. package/lib/esm/duet-submenu-bar-dropdown.entry.js +2 -2
  410. package/lib/esm/duet-submenu-bar-link.entry.js +2 -2
  411. package/lib/esm/duet-submenu-bar.entry.js +24 -6
  412. package/lib/esm/duet-textarea.entry.js +1 -1
  413. package/lib/esm/duet-toggle.entry.js +1 -1
  414. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  415. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  416. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  417. package/lib/esm/duet-toolbar.entry.js +1 -1
  418. package/lib/esm/duet-tooltip.entry.js +1220 -48
  419. package/lib/esm/duet-tray.entry.js +1 -1
  420. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  421. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  422. package/lib/esm/duet.js +3 -3
  423. package/lib/esm/{focus-utils-21faee80.js → focus-utils-1e6af8c1.js} +1 -1
  424. package/lib/esm/{index-ccc5c541.js → index-77de1d56.js} +1 -1
  425. package/lib/esm/loader.js +3 -3
  426. package/lib/esm/{token-utils-6e0e2653.js → token-utils-5f4f3897.js} +9 -1
  427. package/lib/{dist-custom-elements/p-c4d8cad0.js → esm/tokens-20d688dc.js} +1 -1
  428. package/lib/esm-es5/duet-action-button.entry.js +2 -2
  429. package/lib/esm-es5/duet-alert.entry.js +1 -1
  430. package/lib/esm-es5/duet-badge.entry.js +1 -1
  431. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  432. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  433. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  434. package/lib/esm-es5/duet-callout.entry.js +4 -0
  435. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  436. package/lib/esm-es5/duet-card.entry.js +1 -1
  437. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  438. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  439. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  440. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  441. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  442. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  443. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  444. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  445. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  446. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  447. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  448. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  449. package/lib/esm-es5/duet-footer.entry.js +1 -1
  450. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  451. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  452. package/lib/esm-es5/duet-hero.entry.js +1 -1
  453. package/lib/esm-es5/duet-icon.entry.js +2 -2
  454. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  455. package/lib/esm-es5/duet-layout.entry.js +1 -1
  456. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  457. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  458. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  459. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  460. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  461. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  462. package/lib/esm-es5/duet-modal.entry.js +1 -1
  463. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  464. package/lib/esm-es5/duet-nav.entry.js +1 -1
  465. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  466. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  467. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  468. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  469. package/lib/esm-es5/duet-progress.entry.js +1 -1
  470. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  471. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  472. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  473. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  474. package/lib/esm-es5/duet-select.entry.js +1 -1
  475. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  476. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  477. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  478. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  479. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  480. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  481. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  482. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  483. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  484. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  485. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  486. package/lib/esm-es5/duet-toggle.entry.js +2 -2
  487. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  488. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  489. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  490. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  491. package/lib/esm-es5/duet-tooltip.entry.js +2 -2
  492. package/lib/esm-es5/duet-tray.entry.js +1 -1
  493. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  494. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  495. package/lib/esm-es5/duet.js +1 -1
  496. package/lib/esm-es5/focus-utils-1e6af8c1.js +4 -0
  497. package/lib/esm-es5/{index-ccc5c541.js → index-77de1d56.js} +1 -1
  498. package/lib/esm-es5/loader.js +1 -1
  499. package/lib/esm-es5/token-utils-5f4f3897.js +4 -0
  500. package/lib/esm-es5/{tokens-0963dc8b.js → tokens-20d688dc.js} +1 -1
  501. package/lib/types/components/duet-callout/duet-callout.d.ts +28 -0
  502. package/lib/types/components/duet-hero/duet-hero.d.ts +2 -0
  503. package/lib/types/components/duet-icon/duet-icon.d.ts +10 -0
  504. package/lib/types/components/duet-submenu-bar/duet-submenu-bar.d.ts +1 -0
  505. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +8 -7
  506. package/lib/types/components/duet-upload/duet-upload.d.ts +1 -1
  507. package/lib/types/components.d.ts +33 -2
  508. package/lib/types/utils/token-utils.d.ts +1 -0
  509. package/package.json +6 -5
  510. package/lib/dist-custom-elements/p-d6aa9453.js +0 -272
  511. package/lib/duet/p-01470001.system.entry.js +0 -4
  512. package/lib/duet/p-0ee30eab.system.entry.js +0 -4
  513. package/lib/duet/p-1acbcfe5.entry.js +0 -4
  514. package/lib/duet/p-277d8df3.system.entry.js +0 -4
  515. package/lib/duet/p-2fd74d57.system.entry.js +0 -4
  516. package/lib/duet/p-50dad157.entry.js +0 -4
  517. package/lib/duet/p-5ee88d22.entry.js +0 -4
  518. package/lib/duet/p-621e8af8.js +0 -4
  519. package/lib/duet/p-68750bf4.entry.js +0 -4
  520. package/lib/duet/p-756f81d6.system.js +0 -4
  521. package/lib/duet/p-84abe886.entry.js +0 -4
  522. package/lib/duet/p-8acfaf91.system.entry.js +0 -4
  523. package/lib/duet/p-94c122ea.entry.js +0 -4
  524. package/lib/duet/p-984e12ad.entry.js +0 -4
  525. package/lib/duet/p-a35708d9.entry.js +0 -4
  526. package/lib/duet/p-bd29e941.entry.js +0 -4
  527. package/lib/duet/p-c85acd95.entry.js +0 -4
  528. package/lib/duet/p-dfa1a8cd.entry.js +0 -4
  529. package/lib/duet/p-eb6c4a2a.system.js +0 -4
  530. package/lib/esm-es5/focus-utils-21faee80.js +0 -4
  531. package/lib/esm-es5/token-utils-6e0e2653.js +0 -4
@@ -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"; }
@@ -130,6 +130,9 @@ export class DuetUpload {
130
130
  const fileItem = this.files.get(item);
131
131
  fileItem[key] = value;
132
132
  this.files.set(item, fileItem);
133
+ if (this.external && key !== "url") {
134
+ this.trackProgress(item, key === "uploaded");
135
+ }
133
136
  }
134
137
  catch (e) {
135
138
  // if a users tries to update entries on a file that doesn't exist,
@@ -496,7 +499,7 @@ export class DuetUpload {
496
499
  inProgress: "Lähetetään {filesUploaded} lähetettävästä {filesTotal} tiedostosta",
497
500
  inProgressWithErrors: "Lähetetään {filesInProgress} tiedostoa, lähetetty {filesUploaded} lähetettävästä {filesTotal} tiedostosta, {filesWithErrors} tiedostossa on virheitä",
498
501
  done: "Kaikki {filesTotal} tiedostoa lähetetty onnistuneesti",
499
- 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ä",
500
503
  files: "tiedostot",
501
504
  file: "tiedosto",
502
505
  },
@@ -1075,13 +1078,13 @@ export class DuetUpload {
1075
1078
  "docs": {
1076
1079
  "tags": [{
1077
1080
  "name": "default",
1078
- "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}"
1079
1082
  }],
1080
1083
  "text": "Property to change the aria upload progress text read aloud by screenreaders"
1081
1084
  },
1082
1085
  "attribute": "status-label-default",
1083
1086
  "reflect": false,
1084
- "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 }"
1085
1088
  },
1086
1089
  "statusMessageLabel": {
1087
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
  };
@@ -103,6 +103,14 @@ export function getFontSizeByName(name) {
103
103
  export function getFontWeightByName(name) {
104
104
  return getTokenByName("fontWeight", name);
105
105
  }
106
+ export function rgbaColorFromRgb(color, opacity) {
107
+ if (!color || (opacity !== 0 && !opacity)) {
108
+ return undefined;
109
+ }
110
+ const f = color.split(",");
111
+ const R = parseInt(f[0].slice(4)), G = parseInt(f[1]), B = parseInt(f[2]);
112
+ return `rgba(${R},${G},${B},${opacity})`;
113
+ }
106
114
  export function shadeRGBColor(color, percent) {
107
115
  const f = color.split(","), t = percent < 0 ? 0 : 255, p = percent < 0 ? percent * -1 : percent;
108
116
  let R = parseInt(f[0].slice(4)), G = parseInt(f[1]), B = parseInt(f[2]);
@@ -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-00622251.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-57b9edb8.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-b385a866.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-2ff017a8.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-a6f793fc.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-2ff017a8.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-a6f793fc.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-a81b913d.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;
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface DuetCallout extends Components.DuetCallout, HTMLElement {}
4
+ export const DuetCallout: {
5
+ prototype: DuetCallout;
6
+ new (): DuetCallout;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,75 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { p as proxyCustomElement, H, h, d as Host } from './p-efa5255b.js';
5
+ import { i as inheritGlobalTheme } from './p-4ebf1618.js';
6
+ import { d as defineCustomElement$3 } from './p-67365843.js';
7
+ import { d as defineCustomElement$2 } from './p-5183d2cf.js';
8
+
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
+
11
+ const DuetCallout$1 = /*@__PURE__*/ proxyCustomElement(class extends H {
12
+ constructor() {
13
+ super();
14
+ this.__registerHost();
15
+ this.__attachShadow();
16
+ this.hasAuthorSlot = false;
17
+ this.theme = "";
18
+ this.margin = "auto";
19
+ }
20
+ /**
21
+ * Component lifecycle events.
22
+ */
23
+ componentWillLoad() {
24
+ inheritGlobalTheme(this);
25
+ this.hasAuthorSlot = !!this.element.querySelector('[slot="author"]');
26
+ }
27
+ /**
28
+ * render() function
29
+ * Always the last one in the class.
30
+ */
31
+ render() {
32
+ const icon = `<svg viewBox="0 0 22 17" fill="none" xmlns="http://www.w3.org/2000/svg">
33
+ <path d="M6.6591 0.557547L9.2031 2.33355C7.0911 5.21355 6.1311 7.18155 5.8431 8.90955C7.4751 9.34155 8.7231 10.5415 8.7231 12.6535C8.7231 15.2935 6.9471 16.9255 4.6431 16.9255C2.0511 16.9255 0.227096 15.1975 0.227096 12.2695C0.227096 8.28555 2.3871 4.34955 6.6591 0.557547ZM17.9871 8.95755C19.6191 9.34155 20.8671 10.5415 20.8671 12.6535C20.8671 15.2935 19.1391 16.9255 16.8351 16.9255C14.2431 16.9255 12.4191 15.1975 12.4191 12.2695C12.4191 8.28555 14.5791 4.34955 18.8511 0.557547L21.3951 2.33355C19.2351 5.21355 18.3231 7.18155 17.9871 8.95755Z"/>
34
+ </svg>
35
+ `;
36
+ return (h(Host, null, h("div", { class: {
37
+ "duet-callout": true,
38
+ "duet-theme-turva": this.theme === "turva",
39
+ "duet-m-0": this.margin === "none",
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" }))))))));
41
+ }
42
+ get element() { return this; }
43
+ static get style() { return duetCalloutCss; }
44
+ }, [1, "duet-callout", {
45
+ "theme": [1025],
46
+ "margin": [1]
47
+ }]);
48
+ function defineCustomElement$1() {
49
+ if (typeof customElements === "undefined") {
50
+ return;
51
+ }
52
+ const components = ["duet-callout", "duet-icon", "duet-paragraph"];
53
+ components.forEach(tagName => { switch (tagName) {
54
+ case "duet-callout":
55
+ if (!customElements.get(tagName)) {
56
+ customElements.define(tagName, DuetCallout$1);
57
+ }
58
+ break;
59
+ case "duet-icon":
60
+ if (!customElements.get(tagName)) {
61
+ defineCustomElement$3();
62
+ }
63
+ break;
64
+ case "duet-paragraph":
65
+ if (!customElements.get(tagName)) {
66
+ defineCustomElement$2();
67
+ }
68
+ break;
69
+ } });
70
+ }
71
+
72
+ const DuetCallout = DuetCallout$1;
73
+ const defineCustomElement = defineCustomElement$1;
74
+
75
+ export { DuetCallout, defineCustomElement };
@@ -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-aacb3b95.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;