@duetds/components 6.11.1 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (674) hide show
  1. package/hydrate/index.js +479 -289
  2. package/lib/cjs/duet-action-button.cjs.entry.js +3 -3
  3. package/lib/cjs/duet-alert.cjs.entry.js +14 -2
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-banner.cjs.entry.js +3 -3
  6. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-button_2.cjs.entry.js +4 -4
  9. package/lib/cjs/duet-callout.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-caption_4.cjs.entry.js +3 -3
  11. package/lib/cjs/duet-card.cjs.entry.js +3 -3
  12. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-checkmark.cjs.entry.js +1 -1
  14. package/lib/cjs/duet-chip.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  16. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-contact-card.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  21. package/lib/cjs/duet-divider_2.cjs.entry.js +3 -3
  22. package/lib/cjs/duet-editable-table_3.cjs.entry.js +75 -22
  23. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-fieldset.cjs.entry.js +3 -2
  25. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-header_2.cjs.entry.js +14 -9
  28. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-icon.cjs.entry.js +3 -3
  30. package/lib/cjs/duet-input_2.cjs.entry.js +2 -2
  31. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-menu-bar.cjs.entry.js +3 -2
  38. package/lib/cjs/duet-modal.cjs.entry.js +6 -2
  39. package/lib/cjs/duet-multiselect.cjs.entry.js +23 -4
  40. package/lib/cjs/duet-nav.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-number-input.cjs.entry.js +4 -1
  43. package/lib/cjs/duet-page-heading.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-pagination_2.cjs.entry.js +1 -1
  45. package/lib/cjs/duet-popup-menu-item.cjs.entry.js +1 -1
  46. package/lib/cjs/duet-popup-menu.cjs.entry.js +4 -31
  47. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  48. package/lib/cjs/duet-promo-card.cjs.entry.js +3 -3
  49. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  50. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  51. package/lib/cjs/duet-scrollable_3.cjs.entry.js +1 -1
  52. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  53. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  54. package/lib/cjs/duet-shaped-image.cjs.entry.js +1 -1
  55. package/lib/cjs/duet-show-more.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-slideout-link.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  59. package/lib/cjs/duet-slideout-panel.cjs.entry.js +4 -4
  60. package/lib/cjs/duet-slideout.cjs.entry.js +4 -4
  61. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  62. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +1 -1
  63. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +1 -1
  64. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +1 -1
  65. package/lib/cjs/duet-submenu-bar.cjs.entry.js +1 -1
  66. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  67. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  68. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +1 -1
  69. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +1 -1
  70. package/lib/cjs/duet-toolbar-link.cjs.entry.js +1 -1
  71. package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
  72. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +92 -0
  73. package/lib/cjs/duet-tooltip.cjs.entry.js +33 -48
  74. package/lib/cjs/duet-tray.cjs.entry.js +2 -2
  75. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  76. package/lib/cjs/duet-upload-item.cjs.entry.js +5 -4
  77. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  78. package/lib/cjs/duet.cjs.js +2 -2
  79. package/lib/cjs/{floating-ui.dom.esm-3801794e.js → floating-ui.dom.esm-d537b048.js} +154 -159
  80. package/lib/cjs/{focus-utils-832cb087.js → focus-utils-6d4f01d9.js} +1 -1
  81. package/lib/cjs/{index-f9a10385.js → index-b7f668db.js} +1 -1
  82. package/lib/cjs/loader.cjs.js +2 -2
  83. package/lib/cjs/teleport-04ad16c2.js +88 -0
  84. package/lib/cjs/{token-utils-18a05118.js → token-utils-c1864408.js} +1 -1
  85. package/lib/cjs/{tokens.module-d30fb52a.js → tokens.module-5fe478ed.js} +0 -1
  86. package/lib/collection/collection-manifest.json +2 -1
  87. package/lib/collection/components/duet-action-button/duet-action-button.js +2 -2
  88. package/lib/collection/components/duet-alert/duet-alert.js +54 -2
  89. package/lib/collection/components/duet-button/duet-button.css +22 -1
  90. package/lib/collection/components/duet-button/duet-button.js +5 -5
  91. package/lib/collection/components/duet-caption/duet-caption.js +1 -1
  92. package/lib/collection/components/duet-card/duet-card.js +3 -3
  93. package/lib/collection/components/duet-checkbox/duet-checkbox.js +3 -3
  94. package/lib/collection/components/duet-chip/duet-chip.js +4 -4
  95. package/lib/collection/components/duet-choice/duet-choice.js +3 -3
  96. package/lib/collection/components/duet-collapsible/duet-collapsible.js +3 -3
  97. package/lib/collection/components/duet-combobox/duet-combobox.js +3 -3
  98. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.js +1 -1
  99. package/lib/collection/components/duet-date-picker/duet-date-picker.js +4 -4
  100. package/lib/collection/components/duet-divider/duet-divider.js +1 -1
  101. package/lib/collection/components/duet-editable-table/duet-editable-table.js +5 -5
  102. package/lib/collection/components/duet-empty-state/duet-empty-state.js +1 -1
  103. package/lib/collection/components/duet-fieldset/duet-fieldset.js +25 -1
  104. package/lib/collection/components/duet-footer/duet-footer.js +7 -7
  105. package/lib/collection/components/duet-grid/duet-grid.js +3 -3
  106. package/lib/collection/components/duet-header/duet-header.js +28 -23
  107. package/lib/collection/components/duet-heading/duet-heading.js +1 -1
  108. package/lib/collection/components/duet-hero/duet-hero.js +5 -5
  109. package/lib/collection/components/duet-icon/duet-icon.js +1 -1
  110. package/lib/collection/components/duet-input/duet-input.css +1 -1
  111. package/lib/collection/components/duet-input/duet-input.js +8 -8
  112. package/lib/collection/components/duet-label/duet-label.js +2 -2
  113. package/lib/collection/components/duet-layout/duet-layout.js +1 -1
  114. package/lib/collection/components/duet-list/duet-list.js +3 -3
  115. package/lib/collection/components/duet-logo/duet-logo.js +1 -1
  116. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +3 -2
  117. package/lib/collection/components/duet-modal/duet-modal.js +7 -3
  118. package/lib/collection/components/duet-multiselect/duet-multiselect.css +36 -0
  119. package/lib/collection/components/duet-multiselect/duet-multiselect.js +44 -7
  120. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +1 -1
  121. package/lib/collection/components/duet-number-input/duet-number-input.js +4 -4
  122. package/lib/collection/components/duet-pagination/duet-pagination.js +2 -2
  123. package/lib/collection/components/duet-paragraph/duet-paragraph.js +3 -3
  124. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +1 -1
  125. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  126. package/lib/collection/components/duet-radio/duet-radio.js +3 -3
  127. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  128. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +1 -1
  129. package/lib/collection/components/duet-select/duet-select.js +5 -5
  130. package/lib/collection/components/duet-show-more/duet-show-more.js +1 -1
  131. package/lib/collection/components/duet-slideout/duet-slideout.js +1 -1
  132. package/lib/collection/components/duet-spacer/duet-spacer.js +2 -2
  133. package/lib/collection/components/duet-spinner/duet-spinner.js +1 -1
  134. package/lib/collection/components/duet-step/duet-step.js +2 -2
  135. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  136. package/lib/collection/components/duet-tab-group/duet-tab-group.js +5 -5
  137. package/lib/collection/components/duet-table/duet-table.css +13 -11
  138. package/lib/collection/components/duet-table/duet-table.js +10 -1
  139. package/lib/collection/components/duet-textarea/duet-textarea.js +4 -4
  140. package/lib/collection/components/duet-toggle/duet-toggle.js +1 -1
  141. package/lib/collection/components/duet-tooltip/duet-tooltip-button.css +87 -0
  142. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +175 -0
  143. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.css +2 -0
  144. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +9 -12
  145. package/lib/collection/components/duet-tooltip/duet-tooltip.css +4 -61
  146. package/lib/collection/components/duet-tooltip/duet-tooltip.js +39 -48
  147. package/lib/collection/components/duet-upload/duet-upload.js +66 -32
  148. package/lib/collection/components/duet-upload/upload-item-header.js +6 -1
  149. package/lib/collection/components/duet-upload/upload-validators.js +19 -0
  150. package/lib/collection/components/duet-upload-item/duet-upload-item.js +5 -4
  151. package/lib/collection/utils/math.utils.js +3 -0
  152. package/lib/collection/utils/teleport.js +64 -10
  153. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  154. package/lib/dist-custom-elements/duet-alert.js +1 -1
  155. package/lib/dist-custom-elements/duet-badge.js +1 -1
  156. package/lib/dist-custom-elements/duet-banner.js +5 -5
  157. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  158. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  159. package/lib/dist-custom-elements/duet-button.js +1 -1
  160. package/lib/dist-custom-elements/duet-callout.js +3 -3
  161. package/lib/dist-custom-elements/duet-caption.js +1 -1
  162. package/lib/dist-custom-elements/duet-card.js +4 -4
  163. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  164. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  165. package/lib/dist-custom-elements/duet-chip.js +2 -2
  166. package/lib/dist-custom-elements/duet-choice-group.js +17 -11
  167. package/lib/dist-custom-elements/duet-choice.js +5 -5
  168. package/lib/dist-custom-elements/duet-collapsible.js +2 -2
  169. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  170. package/lib/dist-custom-elements/duet-contact-card.js +8 -8
  171. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  172. package/lib/dist-custom-elements/duet-date-picker.js +25 -19
  173. package/lib/dist-custom-elements/duet-divider.js +1 -1
  174. package/lib/dist-custom-elements/duet-editable-table.js +7 -7
  175. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  176. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  177. package/lib/dist-custom-elements/duet-footer.js +4 -4
  178. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  179. package/lib/dist-custom-elements/duet-grid.js +1 -1
  180. package/lib/dist-custom-elements/duet-header.js +20 -15
  181. package/lib/dist-custom-elements/duet-heading.js +1 -1
  182. package/lib/dist-custom-elements/duet-hero.js +9 -9
  183. package/lib/dist-custom-elements/duet-icon.js +1 -1
  184. package/lib/dist-custom-elements/duet-input.js +1 -1
  185. package/lib/dist-custom-elements/duet-label.js +1 -1
  186. package/lib/dist-custom-elements/duet-layout.js +1 -1
  187. package/lib/dist-custom-elements/duet-link.js +1 -1
  188. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  189. package/lib/dist-custom-elements/duet-list.js +1 -1
  190. package/lib/dist-custom-elements/duet-logo.js +1 -1
  191. package/lib/dist-custom-elements/duet-menu-bar-button.js +2 -2
  192. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
  193. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +2 -2
  194. package/lib/dist-custom-elements/duet-menu-bar-link.js +2 -2
  195. package/lib/dist-custom-elements/duet-menu-bar.js +4 -3
  196. package/lib/dist-custom-elements/duet-modal.js +11 -7
  197. package/lib/dist-custom-elements/duet-multiselect.js +44 -18
  198. package/lib/dist-custom-elements/duet-nav.js +1 -1
  199. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  200. package/lib/dist-custom-elements/duet-notification.js +2 -2
  201. package/lib/dist-custom-elements/duet-number-input.js +26 -17
  202. package/lib/dist-custom-elements/duet-page-heading.js +2 -2
  203. package/lib/dist-custom-elements/duet-pagination.js +7 -7
  204. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  205. package/lib/dist-custom-elements/duet-popup-menu-item.js +2 -2
  206. package/lib/dist-custom-elements/duet-popup-menu.js +3 -30
  207. package/lib/dist-custom-elements/duet-progress.js +1 -1
  208. package/lib/dist-custom-elements/duet-promo-card.js +4 -4
  209. package/lib/dist-custom-elements/duet-radio-group.js +17 -11
  210. package/lib/dist-custom-elements/duet-radio.js +1 -1
  211. package/lib/dist-custom-elements/duet-range-slider.js +3 -3
  212. package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
  213. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  214. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  215. package/lib/dist-custom-elements/duet-select.js +1 -1
  216. package/lib/dist-custom-elements/duet-shaped-image.js +1 -1
  217. package/lib/dist-custom-elements/duet-show-more.js +5 -5
  218. package/lib/dist-custom-elements/duet-slideout-lang.js +2 -2
  219. package/lib/dist-custom-elements/duet-slideout-link.js +2 -2
  220. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  221. package/lib/dist-custom-elements/duet-slideout-panel.js +3 -3
  222. package/lib/dist-custom-elements/duet-slideout.js +3 -3
  223. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  224. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  225. package/lib/dist-custom-elements/duet-step.js +4 -4
  226. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  227. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  228. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +2 -2
  229. package/lib/dist-custom-elements/duet-submenu-bar-link.js +2 -2
  230. package/lib/dist-custom-elements/duet-submenu-bar.js +2 -2
  231. package/lib/dist-custom-elements/duet-tab-group.js +27 -21
  232. package/lib/dist-custom-elements/duet-tab.js +1 -1
  233. package/lib/dist-custom-elements/duet-table.js +1 -1
  234. package/lib/dist-custom-elements/duet-textarea.js +21 -15
  235. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  236. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +2 -2
  237. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  238. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  239. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  240. package/lib/dist-custom-elements/duet-tooltip-button.d.ts +11 -0
  241. package/lib/dist-custom-elements/duet-tooltip-button.js +9 -0
  242. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  243. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  244. package/lib/dist-custom-elements/duet-tray.js +4 -4
  245. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  246. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  247. package/lib/dist-custom-elements/duet-upload.js +80 -35
  248. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  249. package/lib/dist-custom-elements/index.js +1 -1
  250. package/lib/dist-custom-elements/{p-98bca605.js → p-19b04293.js} +1 -1
  251. package/lib/dist-custom-elements/{p-fc2fdeba.js → p-1fef65c4.js} +1 -1
  252. package/lib/dist-custom-elements/{p-b5568c37.js → p-20d8a7ab.js} +14 -13
  253. package/lib/dist-custom-elements/{p-b1c2af98.js → p-28facbdc.js} +2 -2
  254. package/lib/dist-custom-elements/{p-fa37a369.js → p-32a42529.js} +4 -4
  255. package/lib/dist-custom-elements/{p-95d44d0f.js → p-34d193a7.js} +1 -1
  256. package/lib/dist-custom-elements/p-371290d2.js +145 -0
  257. package/lib/dist-custom-elements/{p-09ac696c.js → p-47bc3fc6.js} +1 -1
  258. package/lib/dist-custom-elements/{p-74b72454.js → p-4fa0d10e.js} +3 -3
  259. package/lib/dist-custom-elements/{p-8badaab4.js → p-507ae246.js} +2 -2
  260. package/lib/dist-custom-elements/{p-4fb34519.js → p-591040e5.js} +1 -1
  261. package/lib/dist-custom-elements/p-63c149ab.js +86 -0
  262. package/lib/dist-custom-elements/{p-215e9694.js → p-66206ea5.js} +1 -1
  263. package/lib/dist-custom-elements/{p-48b731bc.js → p-80bd412e.js} +22 -16
  264. package/lib/dist-custom-elements/{p-5db7fd87.js → p-84003069.js} +5 -3
  265. package/lib/dist-custom-elements/{p-a8b46969.js → p-86f35893.js} +1 -1
  266. package/lib/{esm/floating-ui.dom.esm-37dc174a.js → dist-custom-elements/p-8adb9463.js} +154 -159
  267. package/lib/dist-custom-elements/{p-67064f22.js → p-8dbc5e4b.js} +1 -1
  268. package/lib/dist-custom-elements/{p-8319ca94.js → p-8e9d78b5.js} +1 -1
  269. package/lib/dist-custom-elements/{p-cb811b5c.js → p-91f98ca2.js} +5 -5
  270. package/lib/dist-custom-elements/{p-0d04d137.js → p-93609c40.js} +2 -2
  271. package/lib/dist-custom-elements/{p-841186f0.js → p-960b00e1.js} +2 -2
  272. package/lib/dist-custom-elements/{p-e41a8579.js → p-9fb22951.js} +2 -2
  273. package/lib/dist-custom-elements/{p-184261b3.js → p-a7cc7bd9.js} +2 -2
  274. package/lib/dist-custom-elements/p-b1fa6ee7.js +72 -0
  275. package/lib/dist-custom-elements/{p-7be4444a.js → p-b95006a5.js} +2 -2
  276. package/lib/dist-custom-elements/{p-217bb82f.js → p-c2a056b1.js} +2 -2
  277. package/lib/dist-custom-elements/{p-0c3282a0.js → p-c85f0028.js} +17 -11
  278. package/lib/dist-custom-elements/{p-05ab48bf.js → p-cbc43bac.js} +21 -7
  279. package/lib/dist-custom-elements/{p-1888263b.js → p-da75f5d9.js} +1 -1
  280. package/lib/dist-custom-elements/p-dd112690.js +273 -0
  281. package/lib/dist-custom-elements/{p-37f86174.js → p-de10f837.js} +45 -55
  282. package/lib/dist-custom-elements/{p-661e7864.js → p-de68431d.js} +1 -1
  283. package/lib/dist-custom-elements/p-e78bd379.js +87 -0
  284. package/lib/dist-custom-elements/{p-cd9b5f96.js → p-e8475b3c.js} +1 -1
  285. package/lib/dist-custom-elements/{p-3366d1ff.js → p-eb0475d3.js} +1 -1
  286. package/lib/dist-custom-elements/{p-841f9d02.js → p-f3ffb5b4.js} +2 -2
  287. package/lib/dist-custom-elements/{p-b7cc653b.js → p-f933f857.js} +1 -1
  288. package/lib/duet/duet.esm.js +1 -1
  289. package/lib/duet/duet.js +1 -1
  290. package/lib/duet/{p-d9886ef0.system.entry.js → p-01aaac6a.system.entry.js} +1 -1
  291. package/lib/duet/{p-a306b058.system.entry.js → p-01f3e23e.system.entry.js} +1 -1
  292. package/lib/duet/{p-c7f097e8.entry.js → p-02ce139d.entry.js} +1 -1
  293. package/lib/duet/p-02fa277e.system.entry.js +4 -0
  294. package/lib/duet/{p-2a14f9c7.system.entry.js → p-04dd24ca.system.entry.js} +1 -1
  295. package/lib/duet/p-05545e81.entry.js +4 -0
  296. package/lib/duet/{p-1ebe62cb.entry.js → p-07871336.entry.js} +1 -1
  297. package/lib/duet/{p-54589f3a.entry.js → p-090b0eb4.entry.js} +1 -1
  298. package/lib/duet/{p-5cc44de5.system.entry.js → p-0c3cfb88.system.entry.js} +1 -1
  299. package/lib/duet/{p-f3a4805a.entry.js → p-0ec7bc0d.entry.js} +1 -1
  300. package/lib/duet/{p-ff28d71a.entry.js → p-104758cf.entry.js} +1 -1
  301. package/lib/duet/{p-65bef373.entry.js → p-10b014f5.entry.js} +1 -1
  302. package/lib/duet/{p-1830770c.entry.js → p-1137a234.entry.js} +1 -1
  303. package/lib/duet/{p-3cfd5322.system.entry.js → p-11a22107.system.entry.js} +1 -1
  304. package/lib/duet/{p-933417e6.system.entry.js → p-125fff3c.system.entry.js} +1 -1
  305. package/lib/duet/{p-50180a44.system.entry.js → p-15c364ef.system.entry.js} +1 -1
  306. package/lib/duet/p-180b9ef7.entry.js +4 -0
  307. package/lib/duet/{p-09f48cb9.entry.js → p-1e2689a2.entry.js} +1 -1
  308. package/lib/duet/p-231e217b.entry.js +4 -0
  309. package/lib/duet/{p-fda4e4a4.system.entry.js → p-2362c81c.system.entry.js} +1 -1
  310. package/lib/duet/{p-05bfc8ff.system.entry.js → p-236348a6.system.entry.js} +1 -1
  311. package/lib/duet/{p-77cbe175.entry.js → p-26082482.entry.js} +1 -1
  312. package/lib/duet/{p-6910113f.entry.js → p-27831ad1.entry.js} +1 -1
  313. package/lib/duet/p-27cbcb00.system.entry.js +4 -0
  314. package/lib/duet/{p-9c464273.entry.js → p-28cbcde9.entry.js} +1 -1
  315. package/lib/duet/{p-f23c11c2.system.entry.js → p-2b90e0bf.system.entry.js} +1 -1
  316. package/lib/duet/{p-31562410.entry.js → p-2f8baf13.entry.js} +1 -1
  317. package/lib/duet/{p-34293dad.entry.js → p-2f8ff010.entry.js} +1 -1
  318. package/lib/duet/{p-305f20a0.system.entry.js → p-31f51b63.system.entry.js} +1 -1
  319. package/lib/duet/{p-8d288b4f.entry.js → p-3351f110.entry.js} +1 -1
  320. package/lib/duet/p-33620d03.js +4 -0
  321. package/lib/duet/p-3493bd62.entry.js +4 -0
  322. package/lib/duet/{p-59dde679.system.entry.js → p-361a40a6.system.entry.js} +1 -1
  323. package/lib/duet/{p-bea6e5e0.entry.js → p-399ae33f.entry.js} +1 -1
  324. package/lib/duet/{p-9bbda8a9.system.entry.js → p-3a48878a.system.entry.js} +1 -1
  325. package/lib/duet/{p-25aa9da5.entry.js → p-3addfa0b.entry.js} +1 -1
  326. package/lib/duet/{p-34e93067.system.entry.js → p-3bd38a60.system.entry.js} +1 -1
  327. package/lib/duet/{p-9b5f71df.entry.js → p-3bdaca53.entry.js} +1 -1
  328. package/lib/duet/{p-95dbb7e9.system.entry.js → p-3bf13db2.system.entry.js} +1 -1
  329. package/lib/duet/{p-daf609a8.entry.js → p-3ddc61bc.entry.js} +1 -1
  330. package/lib/duet/p-3e3f76cc.entry.js +4 -0
  331. package/lib/duet/{p-11090514.entry.js → p-407bc2e8.entry.js} +1 -1
  332. package/lib/duet/{p-58491286.entry.js → p-4525bb7b.entry.js} +1 -1
  333. package/lib/duet/p-45d92a24.system.js +4 -0
  334. package/lib/duet/{p-f9625065.system.entry.js → p-46ae0197.system.entry.js} +1 -1
  335. package/lib/duet/{p-15e3eca0.system.entry.js → p-4908aa39.system.entry.js} +1 -1
  336. package/lib/duet/p-491006e1.system.js +4 -0
  337. package/lib/duet/{p-617c03dc.system.entry.js → p-494e7691.system.entry.js} +1 -1
  338. package/lib/duet/{p-212651b5.system.entry.js → p-49e39bc1.system.entry.js} +1 -1
  339. package/lib/duet/p-4b3bef47.entry.js +4 -0
  340. package/lib/duet/{p-9180e7f5.system.entry.js → p-4b57b898.system.entry.js} +1 -1
  341. package/lib/duet/{p-4e6ad0aa.entry.js → p-4d272de8.entry.js} +1 -1
  342. package/lib/duet/{p-47ec0bce.system.entry.js → p-4ee4938c.system.entry.js} +1 -1
  343. package/lib/duet/{p-5b4e316c.system.entry.js → p-4f99c879.system.entry.js} +1 -1
  344. package/lib/duet/{p-cc70ab4a.entry.js → p-5003f2f7.entry.js} +1 -1
  345. package/lib/duet/p-501d76ac.system.entry.js +4 -0
  346. package/lib/duet/{p-be7a7b77.entry.js → p-51ea8a1e.entry.js} +1 -1
  347. package/lib/duet/{p-130d0e42.entry.js → p-56e8e51e.entry.js} +1 -1
  348. package/lib/duet/{p-e2c354ef.system.entry.js → p-5700d7df.system.entry.js} +1 -1
  349. package/lib/duet/{p-3dc8596c.system.entry.js → p-5726b0c6.system.entry.js} +1 -1
  350. package/lib/duet/{p-c405af98.system.entry.js → p-57c81cdf.system.entry.js} +1 -1
  351. package/lib/duet/{p-57708d82.entry.js → p-58d191e0.entry.js} +1 -1
  352. package/lib/duet/{p-86991900.system.entry.js → p-5bb44d21.system.entry.js} +1 -1
  353. package/lib/duet/{p-c37c86ef.entry.js → p-5be89661.entry.js} +1 -1
  354. package/lib/duet/{p-a05fa71c.entry.js → p-5c682b2c.entry.js} +1 -1
  355. package/lib/duet/{p-732d4693.system.entry.js → p-5d06caee.system.entry.js} +1 -1
  356. package/lib/duet/{p-88501e6a.entry.js → p-5d1f9c44.entry.js} +1 -1
  357. package/lib/duet/{p-6d9e809f.system.entry.js → p-61c551d2.system.entry.js} +1 -1
  358. package/lib/duet/{p-f0173106.system.entry.js → p-63330f08.system.entry.js} +1 -1
  359. package/lib/duet/{p-0c72528c.system.entry.js → p-63566970.system.entry.js} +1 -1
  360. package/lib/duet/p-63c149ab.js +4 -0
  361. package/lib/duet/{p-bb64f25d.system.entry.js → p-66ab3c0e.system.entry.js} +2 -2
  362. package/lib/duet/{p-5e965627.system.entry.js → p-6c1482e6.system.entry.js} +1 -1
  363. package/lib/duet/{p-fe3dbb59.entry.js → p-715db5f9.entry.js} +1 -1
  364. package/lib/duet/{p-277d9e45.system.js → p-71a46879.system.js} +1 -1
  365. package/lib/duet/{p-3db4b9e1.entry.js → p-720ffaf8.entry.js} +1 -1
  366. package/lib/duet/{p-a727e03a.entry.js → p-74bee1d0.entry.js} +1 -1
  367. package/lib/duet/p-7709b117.entry.js +4 -0
  368. package/lib/duet/{p-5e2c8e38.entry.js → p-7a3c5568.entry.js} +1 -1
  369. package/lib/duet/{p-3117f16c.system.entry.js → p-7d1b0468.system.entry.js} +1 -1
  370. package/lib/duet/{p-66cc34da.entry.js → p-7d5e5659.entry.js} +1 -1
  371. package/lib/duet/{p-312656b2.entry.js → p-7e43823e.entry.js} +1 -1
  372. package/lib/duet/p-8894b5f8.system.entry.js +4 -0
  373. package/lib/duet/p-892b0784.system.js +5 -0
  374. package/lib/duet/p-8ace7a8f.entry.js +4 -0
  375. package/lib/duet/{p-d2cbaed2.entry.js → p-8adadd0e.entry.js} +1 -1
  376. package/lib/duet/p-8adb9463.js +4 -0
  377. package/lib/duet/{p-b959ac63.system.entry.js → p-8aee7f16.system.entry.js} +1 -1
  378. package/lib/duet/{p-fe5705fe.system.entry.js → p-8b01d5ae.system.entry.js} +1 -1
  379. package/lib/duet/p-8be782cb.system.entry.js +4 -0
  380. package/lib/duet/{p-f2b11d36.system.entry.js → p-8bfe774e.system.entry.js} +1 -1
  381. package/lib/duet/{p-10695d55.system.js → p-8c6e3c4f.system.js} +1 -1
  382. package/lib/duet/{p-00fc5376.system.entry.js → p-8e64876c.system.entry.js} +1 -1
  383. package/lib/duet/p-90b90630.system.entry.js +4 -0
  384. package/lib/duet/p-90d5fb9a.entry.js +4 -0
  385. package/lib/duet/{p-8548fc3a.system.entry.js → p-9116810a.system.entry.js} +1 -1
  386. package/lib/duet/{p-b66706de.entry.js → p-91e92ff0.entry.js} +1 -1
  387. package/lib/duet/p-92a26eb7.system.entry.js +4 -0
  388. package/lib/duet/{p-36fafe5f.entry.js → p-939bceb1.entry.js} +1 -1
  389. package/lib/duet/{p-52fdd651.system.entry.js → p-968c8724.system.entry.js} +1 -1
  390. package/lib/duet/p-9837720e.system.entry.js +4 -0
  391. package/lib/duet/{p-22a436ef.entry.js → p-99a6c65d.entry.js} +1 -1
  392. package/lib/duet/{p-9d3deabb.system.entry.js → p-9a9f4f83.system.entry.js} +1 -1
  393. package/lib/duet/{p-66ce877b.entry.js → p-9ad54264.entry.js} +1 -1
  394. package/lib/duet/{p-42242eb4.entry.js → p-9bad6410.entry.js} +1 -1
  395. package/lib/duet/{p-df03f394.entry.js → p-9ef41dff.entry.js} +1 -1
  396. package/lib/duet/{p-97162b31.system.entry.js → p-a04538da.system.entry.js} +1 -1
  397. package/lib/duet/{p-f75b8801.system.entry.js → p-a4dc39b7.system.entry.js} +1 -1
  398. package/lib/duet/{p-e3d40270.entry.js → p-a61f629f.entry.js} +1 -1
  399. package/lib/duet/p-a659351d.system.js +4 -0
  400. package/lib/duet/{p-c1ec3ad4.entry.js → p-a6a78989.entry.js} +1 -1
  401. package/lib/duet/{p-75f7a572.js → p-a76ceaf6.js} +1 -1
  402. package/lib/duet/{p-293d6a2b.entry.js → p-acfd55b1.entry.js} +1 -1
  403. package/lib/duet/{p-896fff8f.entry.js → p-afd647b4.entry.js} +1 -1
  404. package/lib/duet/{p-daa1595d.entry.js → p-b150413c.entry.js} +1 -1
  405. package/lib/duet/{p-4ca5d008.system.entry.js → p-b4548652.system.entry.js} +1 -1
  406. package/lib/duet/{p-419b1bec.system.entry.js → p-b50fe6a3.system.entry.js} +1 -1
  407. package/lib/duet/p-b63e9d32.system.entry.js +4 -0
  408. package/lib/duet/p-b63fdf97.entry.js +4 -0
  409. package/lib/duet/{p-ced4679a.entry.js → p-b70632f4.entry.js} +1 -1
  410. package/lib/duet/{p-930c8f3c.system.entry.js → p-b8f45b9b.system.entry.js} +1 -1
  411. package/lib/duet/{p-5847fbcf.system.entry.js → p-ba8d654e.system.entry.js} +1 -1
  412. package/lib/duet/{p-6fcc9de8.entry.js → p-c047dce3.entry.js} +1 -1
  413. package/lib/duet/{p-fde10739.system.entry.js → p-c06dd7ff.system.entry.js} +1 -1
  414. package/lib/duet/{p-45043c9d.system.entry.js → p-c1aa415d.system.entry.js} +1 -1
  415. package/lib/duet/p-c6265d54.system.entry.js +4 -0
  416. package/lib/duet/{p-615a393c.system.entry.js → p-c7f078b4.system.entry.js} +1 -1
  417. package/lib/duet/{p-7f9909ed.entry.js → p-ca587193.entry.js} +1 -1
  418. package/lib/duet/{p-9fb4f41a.system.entry.js → p-cc2c3bda.system.entry.js} +1 -1
  419. package/lib/duet/{p-5c37dda9.system.entry.js → p-ccbd26f8.system.entry.js} +1 -1
  420. package/lib/duet/{p-a6d18e87.system.entry.js → p-cd494ec0.system.entry.js} +1 -1
  421. package/lib/duet/{p-655275ec.entry.js → p-d0517764.entry.js} +1 -1
  422. package/lib/duet/{p-c905c010.entry.js → p-d1ada824.entry.js} +1 -1
  423. package/lib/duet/{p-d1ee4298.system.entry.js → p-d23f5574.system.entry.js} +1 -1
  424. package/lib/duet/{p-1e161672.entry.js → p-d38f4401.entry.js} +1 -1
  425. package/lib/duet/{p-d649d264.system.entry.js → p-d5a72abd.system.entry.js} +1 -1
  426. package/lib/duet/{p-41c64229.system.entry.js → p-d976e355.system.entry.js} +1 -1
  427. package/lib/duet/p-dafb7efd.js +5 -0
  428. package/lib/duet/{p-1eada326.system.entry.js → p-dc00285e.system.entry.js} +1 -1
  429. package/lib/duet/{p-d6e7f2d1.entry.js → p-ddec1906.entry.js} +1 -1
  430. package/lib/duet/{p-27b9e751.system.entry.js → p-dfecd542.system.entry.js} +1 -1
  431. package/lib/duet/{p-c65b31df.entry.js → p-e1a2ad9b.entry.js} +1 -1
  432. package/lib/duet/{p-222548cd.entry.js → p-e26224c8.entry.js} +1 -1
  433. package/lib/duet/{p-17f95bce.entry.js → p-e2674cbd.entry.js} +1 -1
  434. package/lib/duet/{p-889fc0c6.entry.js → p-e464c127.entry.js} +1 -1
  435. package/lib/duet/{p-f31b839f.system.entry.js → p-e62bcf02.system.entry.js} +1 -1
  436. package/lib/duet/{p-78eb3378.system.entry.js → p-e73904ab.system.entry.js} +1 -1
  437. package/lib/duet/{p-a7d43918.entry.js → p-e775f206.entry.js} +1 -1
  438. package/lib/duet/{p-08945ef7.entry.js → p-e8496052.entry.js} +1 -1
  439. package/lib/duet/{p-e591257f.entry.js → p-e8e50fdb.entry.js} +1 -1
  440. package/lib/duet/{p-653fd5d0.system.entry.js → p-ecfdc7d9.system.entry.js} +1 -1
  441. package/lib/duet/p-edddef22.entry.js +4 -0
  442. package/lib/duet/{p-a7f9f585.system.entry.js → p-ee2dc527.system.entry.js} +1 -1
  443. package/lib/duet/{p-4bae7f7e.entry.js → p-ee3d6a73.entry.js} +1 -1
  444. package/lib/duet/{p-26f8a5e3.entry.js → p-ef194759.entry.js} +1 -1
  445. package/lib/duet/{p-2ba628cc.system.entry.js → p-f06b4b03.system.entry.js} +1 -1
  446. package/lib/duet/{p-ab07e9c2.entry.js → p-f29123b4.entry.js} +1 -1
  447. package/lib/duet/{p-f22404fe.system.js → p-f36c856d.system.js} +1 -1
  448. package/lib/duet/{p-81ef610a.system.entry.js → p-f36ee41c.system.entry.js} +1 -1
  449. package/lib/duet/p-fa56fe59.entry.js +4 -0
  450. package/lib/duet/{p-c2a407e8.system.entry.js → p-fa7cdc28.system.entry.js} +1 -1
  451. package/lib/duet/{p-69abe752.system.entry.js → p-fc3275ba.system.entry.js} +1 -1
  452. package/lib/duet/p-fd4785ab.js +4 -0
  453. package/lib/duet/{p-d00f7632.system.entry.js → p-fd54a219.system.entry.js} +1 -1
  454. package/lib/duet/p-fe4cd626.entry.js +4 -0
  455. package/lib/esm/duet-action-button.entry.js +3 -3
  456. package/lib/esm/duet-alert.entry.js +14 -2
  457. package/lib/esm/duet-badge.entry.js +1 -1
  458. package/lib/esm/duet-banner.entry.js +3 -3
  459. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  460. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  461. package/lib/esm/duet-button_2.entry.js +4 -4
  462. package/lib/esm/duet-callout.entry.js +1 -1
  463. package/lib/esm/duet-caption_4.entry.js +3 -3
  464. package/lib/esm/duet-card.entry.js +3 -3
  465. package/lib/esm/duet-checkbox.entry.js +1 -1
  466. package/lib/esm/duet-checkmark.entry.js +1 -1
  467. package/lib/esm/duet-chip.entry.js +1 -1
  468. package/lib/esm/duet-choice_2.entry.js +2 -2
  469. package/lib/esm/duet-collapsible.entry.js +1 -1
  470. package/lib/esm/duet-combobox.entry.js +1 -1
  471. package/lib/esm/duet-contact-card.entry.js +1 -1
  472. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  473. package/lib/esm/duet-date-picker.entry.js +2 -2
  474. package/lib/esm/duet-divider_2.entry.js +3 -3
  475. package/lib/esm/duet-editable-table_3.entry.js +75 -22
  476. package/lib/esm/duet-empty-state.entry.js +1 -1
  477. package/lib/esm/duet-fieldset.entry.js +3 -2
  478. package/lib/esm/duet-footer.entry.js +1 -1
  479. package/lib/esm/duet-grid_2.entry.js +1 -1
  480. package/lib/esm/duet-header_2.entry.js +14 -9
  481. package/lib/esm/duet-hero.entry.js +1 -1
  482. package/lib/esm/duet-icon.entry.js +3 -3
  483. package/lib/esm/duet-input_2.entry.js +2 -2
  484. package/lib/esm/duet-layout.entry.js +1 -1
  485. package/lib/esm/duet-list_2.entry.js +1 -1
  486. package/lib/esm/duet-menu-bar-button.entry.js +1 -1
  487. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
  488. package/lib/esm/duet-menu-bar-dropdown.entry.js +1 -1
  489. package/lib/esm/duet-menu-bar-link.entry.js +1 -1
  490. package/lib/esm/duet-menu-bar.entry.js +3 -2
  491. package/lib/esm/duet-modal.entry.js +6 -2
  492. package/lib/esm/duet-multiselect.entry.js +23 -4
  493. package/lib/esm/duet-nav.entry.js +1 -1
  494. package/lib/esm/duet-notification_2.entry.js +1 -1
  495. package/lib/esm/duet-number-input.entry.js +4 -1
  496. package/lib/esm/duet-page-heading.entry.js +1 -1
  497. package/lib/esm/duet-pagination_2.entry.js +1 -1
  498. package/lib/esm/duet-popup-menu-item.entry.js +1 -1
  499. package/lib/esm/duet-popup-menu.entry.js +3 -30
  500. package/lib/esm/duet-progress.entry.js +1 -1
  501. package/lib/esm/duet-promo-card.entry.js +3 -3
  502. package/lib/esm/duet-radio_2.entry.js +1 -1
  503. package/lib/esm/duet-range-slider.entry.js +2 -2
  504. package/lib/esm/duet-scrollable_3.entry.js +1 -1
  505. package/lib/esm/duet-section-layout.entry.js +1 -1
  506. package/lib/esm/duet-select.entry.js +1 -1
  507. package/lib/esm/duet-shaped-image.entry.js +1 -1
  508. package/lib/esm/duet-show-more.entry.js +1 -1
  509. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  510. package/lib/esm/duet-slideout-link.entry.js +1 -1
  511. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  512. package/lib/esm/duet-slideout-panel.entry.js +4 -4
  513. package/lib/esm/duet-slideout.entry.js +4 -4
  514. package/lib/esm/duet-step_2.entry.js +1 -1
  515. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  516. package/lib/esm/duet-submenu-bar-dropdown.entry.js +1 -1
  517. package/lib/esm/duet-submenu-bar-link.entry.js +1 -1
  518. package/lib/esm/duet-submenu-bar.entry.js +1 -1
  519. package/lib/esm/duet-textarea.entry.js +1 -1
  520. package/lib/esm/duet-toggle.entry.js +1 -1
  521. package/lib/esm/duet-toolbar-dropdown-link.entry.js +1 -1
  522. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  523. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  524. package/lib/esm/duet-toolbar.entry.js +1 -1
  525. package/lib/esm/duet-tooltip-button_2.entry.js +87 -0
  526. package/lib/esm/duet-tooltip.entry.js +33 -48
  527. package/lib/esm/duet-tray.entry.js +2 -2
  528. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  529. package/lib/esm/duet-upload-item.entry.js +5 -4
  530. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  531. package/lib/esm/duet.js +3 -3
  532. package/lib/{dist-custom-elements/p-df10a767.js → esm/floating-ui.dom.esm-6025c98f.js} +154 -159
  533. package/lib/esm/{focus-utils-08d27c67.js → focus-utils-8a8cfffd.js} +1 -1
  534. package/lib/esm/{index-729ef6e7.js → index-d48e2c74.js} +1 -1
  535. package/lib/esm/loader.js +3 -3
  536. package/lib/esm/teleport-4ede216d.js +86 -0
  537. package/lib/esm/{token-utils-058d6220.js → token-utils-a1dcaa4b.js} +1 -1
  538. package/lib/esm/{tokens.module-f436c2cd.js → tokens.module-ed773027.js} +1 -1
  539. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  540. package/lib/esm-es5/duet-alert.entry.js +2 -2
  541. package/lib/esm-es5/duet-badge.entry.js +1 -1
  542. package/lib/esm-es5/duet-banner.entry.js +1 -1
  543. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  544. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  545. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  546. package/lib/esm-es5/duet-callout.entry.js +1 -1
  547. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  548. package/lib/esm-es5/duet-card.entry.js +1 -1
  549. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  550. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  551. package/lib/esm-es5/duet-chip.entry.js +1 -1
  552. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  553. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  554. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  555. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  556. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  557. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  558. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  559. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  560. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  561. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  562. package/lib/esm-es5/duet-footer.entry.js +1 -1
  563. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  564. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  565. package/lib/esm-es5/duet-hero.entry.js +1 -1
  566. package/lib/esm-es5/duet-icon.entry.js +1 -1
  567. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  568. package/lib/esm-es5/duet-layout.entry.js +1 -1
  569. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  570. package/lib/esm-es5/duet-menu-bar-button.entry.js +1 -1
  571. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  572. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  573. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  574. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  575. package/lib/esm-es5/duet-modal.entry.js +1 -1
  576. package/lib/esm-es5/duet-multiselect.entry.js +2 -2
  577. package/lib/esm-es5/duet-nav.entry.js +1 -1
  578. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  579. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  580. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  581. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  582. package/lib/esm-es5/duet-popup-menu-item.entry.js +1 -1
  583. package/lib/esm-es5/duet-popup-menu.entry.js +1 -1
  584. package/lib/esm-es5/duet-progress.entry.js +1 -1
  585. package/lib/esm-es5/duet-promo-card.entry.js +1 -1
  586. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  587. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  588. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  589. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  590. package/lib/esm-es5/duet-select.entry.js +1 -1
  591. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  592. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  593. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  594. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  595. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  596. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  597. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  598. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  599. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  600. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  601. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  602. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  603. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  604. package/lib/esm-es5/duet-toggle.entry.js +2 -2
  605. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  606. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +2 -2
  607. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  608. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  609. package/lib/esm-es5/duet-tooltip-button_2.entry.js +4 -0
  610. package/lib/esm-es5/duet-tooltip.entry.js +2 -2
  611. package/lib/esm-es5/duet-tray.entry.js +1 -1
  612. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  613. package/lib/esm-es5/duet-upload-item.entry.js +1 -1
  614. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  615. package/lib/esm-es5/duet.js +1 -1
  616. package/lib/esm-es5/floating-ui.dom.esm-6025c98f.js +4 -0
  617. package/lib/esm-es5/focus-utils-8a8cfffd.js +4 -0
  618. package/lib/esm-es5/index-d48e2c74.js +5 -0
  619. package/lib/esm-es5/loader.js +1 -1
  620. package/lib/esm-es5/teleport-4ede216d.js +4 -0
  621. package/lib/esm-es5/{token-utils-058d6220.js → token-utils-a1dcaa4b.js} +1 -1
  622. package/lib/esm-es5/{tokens.module-f436c2cd.js → tokens.module-ed773027.js} +1 -1
  623. package/lib/types/components/duet-alert/duet-alert.d.ts +12 -0
  624. package/lib/types/components/duet-fieldset/duet-fieldset.d.ts +6 -1
  625. package/lib/types/components/duet-header/duet-header.d.ts +3 -0
  626. package/lib/types/components/duet-modal/duet-modal.d.ts +1 -0
  627. package/lib/types/components/duet-multiselect/duet-multiselect.d.ts +9 -0
  628. package/lib/types/components/duet-tooltip/duet-tooltip-button.d.ts +29 -0
  629. package/lib/types/components/duet-tooltip/duet-tooltip-popup.d.ts +4 -7
  630. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +3 -2
  631. package/lib/types/components/duet-upload/duet-upload.d.ts +21 -16
  632. package/lib/types/components/duet-upload/upload-validators.d.ts +1 -0
  633. package/lib/types/components.d.ts +71 -7
  634. package/lib/types/utils/teleport.d.ts +15 -2
  635. package/package.json +5 -5
  636. package/lib/cjs/duet-tooltip-popup.cjs.entry.js +0 -56
  637. package/lib/dist-custom-elements/p-95109364.js +0 -136
  638. package/lib/dist-custom-elements/p-d6238b66.js +0 -88
  639. package/lib/dist-custom-elements/p-f3b91052.js +0 -273
  640. package/lib/duet/p-00215a97.entry.js +0 -4
  641. package/lib/duet/p-106940dd.js +0 -5
  642. package/lib/duet/p-1700211f.system.js +0 -5
  643. package/lib/duet/p-1760b8d4.system.entry.js +0 -4
  644. package/lib/duet/p-1ea89299.entry.js +0 -4
  645. package/lib/duet/p-2a64f169.system.entry.js +0 -4
  646. package/lib/duet/p-2d68f259.entry.js +0 -4
  647. package/lib/duet/p-340e36a8.system.js +0 -4
  648. package/lib/duet/p-3a417fd2.entry.js +0 -4
  649. package/lib/duet/p-61fb382d.entry.js +0 -4
  650. package/lib/duet/p-6494c48e.entry.js +0 -4
  651. package/lib/duet/p-6c24d8b4.entry.js +0 -4
  652. package/lib/duet/p-7084c7fa.system.entry.js +0 -4
  653. package/lib/duet/p-7649b95e.js +0 -4
  654. package/lib/duet/p-7e64358b.entry.js +0 -4
  655. package/lib/duet/p-8040b3f3.system.entry.js +0 -4
  656. package/lib/duet/p-82b5380b.system.js +0 -4
  657. package/lib/duet/p-86dc2ebb.entry.js +0 -4
  658. package/lib/duet/p-90ad5759.system.entry.js +0 -4
  659. package/lib/duet/p-a1057e50.js +0 -4
  660. package/lib/duet/p-a8af0ea4.entry.js +0 -4
  661. package/lib/duet/p-bd751ea4.system.entry.js +0 -4
  662. package/lib/duet/p-d3910688.entry.js +0 -4
  663. package/lib/duet/p-d759b718.system.entry.js +0 -4
  664. package/lib/duet/p-d7fa5f72.system.entry.js +0 -4
  665. package/lib/duet/p-df10a767.js +0 -4
  666. package/lib/duet/p-e0cfe3d5.entry.js +0 -4
  667. package/lib/duet/p-e73a1930.entry.js +0 -4
  668. package/lib/duet/p-ebbb398a.system.entry.js +0 -4
  669. package/lib/duet/p-f3c3932d.system.entry.js +0 -4
  670. package/lib/esm/duet-tooltip-popup.entry.js +0 -52
  671. package/lib/esm-es5/duet-tooltip-popup.entry.js +0 -4
  672. package/lib/esm-es5/floating-ui.dom.esm-37dc174a.js +0 -4
  673. package/lib/esm-es5/focus-utils-08d27c67.js +0 -4
  674. package/lib/esm-es5/index-729ef6e7.js +0 -5
@@ -20,7 +20,6 @@
20
20
  -moz-appearance: none;
21
21
  -webkit-appearance: none;
22
22
  appearance: none;
23
- position: relative;
24
23
  z-index: 200;
25
24
  display: inline-flex;
26
25
  width: auto;
@@ -29,66 +28,10 @@
29
28
  -webkit-tap-highlight-color: transparent;
30
29
  }
31
30
 
32
- .duet-tooltip-button {
33
- z-index: 100;
34
- display: inline-block;
35
- align-items: center;
36
- justify-content: center;
37
- min-width: 48px;
38
- height: 48px;
39
- padding: 0 !important;
40
- margin-right: -12px;
41
- line-height: normal !important;
42
- color: rgb(0, 119, 179);
43
- white-space: nowrap;
44
- cursor: pointer;
45
- background: transparent !important;
46
- border-radius: 4px;
47
- }
48
- .duet-tooltip-button.duet-theme-turva {
49
- color: rgb(198, 12, 48);
50
- }
51
- .duet-tooltip-button:hover {
52
- color: rgb(0, 77, 128);
53
- }
54
- .duet-tooltip-button:hover.duet-theme-turva {
55
- color: rgb(148, 9, 37);
56
- }
57
- .duet-tooltip-button:focus {
58
- background: transparent !important;
59
- outline: 0;
60
- }
61
- :host(.user-is-tabbing) .duet-tooltip-button:focus {
62
- background: transparent !important;
63
- box-shadow: 0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px rgb(0, 119, 179) !important;
64
- }
65
- :host(.user-is-tabbing) .duet-tooltip-button.duet-theme-turva:focus {
66
- box-shadow: 0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px rgb(23, 28, 58) !important;
67
- }
68
- .duet-tooltip-button svg {
69
- width: 20px;
70
- height: 20px;
71
- pointer-events: none;
72
- }
73
-
74
- .duet-tooltip-button-has-label {
75
- margin-right: 0;
76
- }
77
-
78
- .duet-tooltip-label {
31
+ duet-tooltip-button {
79
32
  position: relative;
80
- z-index: 100;
81
- display: inline-block;
82
- max-width: calc(100% - 30px);
83
- margin-left: 12px !important;
84
- font-family: "localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
85
- font-size: 1rem;
86
- font-weight: 600;
87
- line-height: 1.25;
88
- text-align: left;
89
- white-space: normal;
90
- vertical-align: top;
91
33
  }
92
- .duet-theme-turva .duet-tooltip-label {
93
- font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
34
+
35
+ duet-tooltip-popup {
36
+ position: absolute;
94
37
  }
@@ -6,7 +6,9 @@ import { arrow, computePosition, flip, shift } from "@floating-ui/dom";
6
6
  import { Build, h, Host } from "@stencil/core";
7
7
  import { inheritGlobalTheme } from "../../common";
8
8
  import { createID } from "../../utils/create-id";
9
+ import { isEscapeKey } from "../../utils/keyboard-utils";
9
10
  import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
11
+ import { Teleport } from "../../utils/teleport";
10
12
  export class DuetTooltip {
11
13
  constructor() {
12
14
  /**
@@ -21,42 +23,23 @@ export class DuetTooltip {
21
23
  * Local methods
22
24
  */
23
25
  this.openTooltip = () => {
24
- this.focusTarget = "tooltip";
25
26
  this.active = true;
27
+ this.focusTarget = "tooltip";
28
+ this.teleport.go();
26
29
  };
27
30
  this.closeTooltip = (moveFocusToButton = false) => {
31
+ this.active = false;
28
32
  if (moveFocusToButton) {
29
33
  this.focusTarget = "trigger";
30
34
  }
31
- this.active = false;
35
+ setTimeout(() => {
36
+ this.teleport.resume();
37
+ this.updatePlacement();
38
+ }, 200);
32
39
  };
33
40
  this.toggleOpen = () => {
34
41
  this.active ? this.closeTooltip() : this.openTooltip();
35
42
  };
36
- this.handleFocusOut = (e) => {
37
- if (!this.active) {
38
- return;
39
- }
40
- const relatedTarget = e.relatedTarget;
41
- if (
42
- // if we don't know where focus went
43
- relatedTarget == null ||
44
- // if focus is within the tooltip itself
45
- this.element.shadowRoot.contains(relatedTarget) ||
46
- // if focus is within the tooltip light DOM
47
- this.element.contains(relatedTarget)) {
48
- // then we can skip closing
49
- return;
50
- }
51
- this.closeTooltip();
52
- };
53
- this.handleKeyDown = (e) => {
54
- const isEscapeKey = e.keyCode === 27;
55
- const isTabbingOut = e.target === this.popupElement && e.shiftKey && e.keyCode === 9;
56
- if (isEscapeKey || isTabbingOut) {
57
- this.closeTooltip(true);
58
- }
59
- };
60
43
  this.updatePlacement = async () => {
61
44
  var _a, _b;
62
45
  let preferRight = true;
@@ -77,7 +60,6 @@ export class DuetTooltip {
77
60
  placement,
78
61
  middleware: [flip(), shift({ padding: 5 }), arrow({ element: this.arrowEl })],
79
62
  });
80
- // magic number adjustment for the tooltip position to cater for the arrow
81
63
  this.tooltipY = position.y;
82
64
  this.tooltipX = position.x;
83
65
  this.placement = position.placement;
@@ -128,24 +110,25 @@ export class DuetTooltip {
128
110
  async componentDidLoad() {
129
111
  this.arrowEl = await this.popupElement.getArrowElement();
130
112
  this.contentEl = await this.popupElement.getContentElement();
113
+ this.teleport = new Teleport(this.popupElement);
131
114
  if (!Build.isServer) {
132
115
  this.updatePlacement();
133
116
  }
117
+ if (this.active) {
118
+ this.openTooltip();
119
+ }
120
+ this.intersectionObserver = new IntersectionObserver(this.updatePlacement, { root: document.body });
121
+ this.intersectionObserver.observe(this.element);
134
122
  }
135
123
  componentDidUpdate() {
136
124
  switch (this.focusTarget) {
137
125
  case "tooltip":
138
- this.contentEl.focus({ preventScroll: true });
139
- // workaround for "user-is-tabbing" class not being applied inside shadow DOM
140
- if (this.element.classList.contains("user-is-tabbing")) {
141
- this.popupElement.classList.add("user-is-tabbing");
142
- }
143
- else {
144
- this.popupElement.classList.remove("user-is-tabbing");
145
- }
126
+ // delay focus so button is correctly announced as "expanded"
127
+ setTimeout(() => this.contentEl.focus({ preventScroll: true }));
146
128
  break;
147
129
  case "trigger":
148
- this.buttonEl.focus({ preventScroll: true });
130
+ // delay focus so button is correctly announced as "collapsed"
131
+ setTimeout(() => this.buttonEl.setFocus({ preventScroll: true }));
149
132
  break;
150
133
  }
151
134
  this.focusTarget = null;
@@ -178,13 +161,20 @@ export class DuetTooltip {
178
161
  return;
179
162
  }
180
163
  const path = e.composedPath();
181
- const isClickOutside = path.every(el => el !== this.element);
164
+ const isClickOutside = path.every(el => el !== this.element && el !== this.contentEl);
182
165
  if (isClickOutside) {
183
166
  this.closeTooltip();
184
167
  }
185
168
  }
169
+ handleKeyDown(e) {
170
+ if (this.active && isEscapeKey(e)) {
171
+ this.closeTooltip(true);
172
+ }
173
+ }
186
174
  handlePopupClose() {
187
- this.closeTooltip(true);
175
+ if (this.active) {
176
+ this.closeTooltip(true);
177
+ }
188
178
  }
189
179
  async handleActiveChange(newActiveValue) {
190
180
  if (newActiveValue) {
@@ -209,21 +199,16 @@ export class DuetTooltip {
209
199
  top: `${this.tooltipY}px`,
210
200
  left: `${this.tooltipX}px`,
211
201
  display: "block",
202
+ "pointer-events": this.active ? "auto" : "none",
212
203
  };
213
204
  const arrowStyles = {
214
205
  top: this.arrowY ? `${this.arrowY}px` : undefined,
215
206
  left: this.arrowX ? `${this.arrowX}px` : undefined,
216
207
  };
217
- 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: {
218
- "duet-tooltip-button": true,
219
- "duet-tooltip-button-has-label": !!this.label,
220
- "duet-theme-turva": this.theme === "turva",
221
- } }, 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
222
- ? `${this.accessibleInputLabel}, ${this.accessibleLabel}`
223
- : this.accessibleLabel))), h("duet-tooltip-popup", { ref: element => (this.popupElement = element), active: this.active, tooltipId: this.tooltipId, arrowStyles: arrowStyles, style: positionStyles, placement: this.placement, accessibleCloseLabel: this.accessibleCloseLabel, onKeyDown: this.handleKeyDown, onFocusout: this.handleFocusOut }, h("slot", null))));
208
+ return (h(Host, { style: tooltipStyles }, h("duet-tooltip-button", { ref: element => (this.buttonEl = element), active: this.active, tooltipId: this.tooltipId, label: this.label, accessibleLabel: this.accessibleInputLabel ? `${this.accessibleInputLabel}, ${this.accessibleLabel}` : this.accessibleLabel, onClick: this.toggleOpen }), h("duet-tooltip-popup", { ref: element => (this.popupElement = element), active: this.active, tooltipId: this.tooltipId, arrowStyles: arrowStyles, style: positionStyles, placement: this.placement, accessibleCloseLabel: this.accessibleCloseLabel }, h("slot", null))));
224
209
  }
225
210
  static get is() { return "duet-tooltip"; }
226
- static get encapsulation() { return "shadow"; }
211
+ static get encapsulation() { return "scoped"; }
227
212
  static get originalStyleUrls() {
228
213
  return {
229
214
  "$": ["duet-tooltip.scss"]
@@ -429,7 +414,7 @@ export class DuetTooltip {
429
414
  "references": {
430
415
  "DuetTooltipBreakpoint": {
431
416
  "location": "local",
432
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-tooltip/duet-tooltip.tsx"
417
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-tooltip/duet-tooltip.tsx"
433
418
  }
434
419
  }
435
420
  },
@@ -560,10 +545,16 @@ export class DuetTooltip {
560
545
  "target": "document",
561
546
  "capture": false,
562
547
  "passive": false
548
+ }, {
549
+ "name": "keydown",
550
+ "method": "handleKeyDown",
551
+ "target": "document",
552
+ "capture": false,
553
+ "passive": false
563
554
  }, {
564
555
  "name": "tooltipPopupClosed",
565
556
  "method": "handlePopupClose",
566
- "target": undefined,
557
+ "target": "document",
567
558
  "capture": false,
568
559
  "passive": false
569
560
  }];
@@ -9,7 +9,7 @@ import { getLocaleString, sanitizeString } from "../../utils/language-utils";
9
9
  import errorCodes from "./errorcodes.json";
10
10
  import { getI18nError } from "./errorcodes.utils";
11
11
  import { UploadItemHeader } from "./upload-item-header";
12
- import { filesToUploadCountAboveMax, validateFile, validateTotalAmountIsAboveMax, validateTotalSizeIsAboveMax, } from "./upload-validators";
12
+ import { filesToUploadCountAboveMax, filesToUploadTotalSizeIsAboveMax, validateFile, validateTotalAmountIsAboveMax, validateTotalSizeIsAboveMax, } from "./upload-validators";
13
13
  import { makeXhrRequest, } from "./xhr.helpers";
14
14
  /**
15
15
  * @slot header - named slot - to place content after description / caption (if caption is on top)
@@ -33,6 +33,7 @@ export class DuetUpload {
33
33
  this.fileMaxReached = false;
34
34
  this.bytesMaxReached = false;
35
35
  this.filesToUploadExceedsLimit = false;
36
+ this.filesToUploadTotalSizeIsAboveMax = false;
36
37
  this.internalStatusMessageLabel = undefined;
37
38
  this.itemRefs = new Map();
38
39
  /**
@@ -523,27 +524,27 @@ export class DuetUpload {
523
524
  this.caption = undefined;
524
525
  this.statusLabelDefaults = {
525
526
  fi: {
526
- inProgress: "Lähetetään {filesUploaded} lähetettävästä {filesTotal} tiedostosta",
527
- inProgressWithErrors: "Lähetetään {filesInProgress} tiedostoa, lähetetty {filesUploaded} lähetettävästä {filesTotal} tiedostosta, {filesWithErrors} tiedostossa on virheitä",
528
- done: "Kaikki {filesTotal} tiedostoa lähetetty onnistuneesti",
529
- doneWithErrors: "Lataus valmis, {filesUploaded} tiedostoa ladattu onnistuneesti, {filesWithErrors} tiedostossa oli virheitä",
530
- files: "tiedostot",
527
+ inProgress: "Lähetetään {filesUploaded}, yhteensä lähetettävänä {filesTotal}.",
528
+ inProgressWithErrors: "Lähetetään {filesInProgress}, lähetetty {filesUploaded}, yhteensä lähetettävänä {filesTotal}, {filesWithErrors} epäonnistui",
529
+ done: "Lähetys valmis, {filesTotal} lisätty onnistuneesti",
530
+ doneWithErrors: "Lähetys valmis, {filesUploaded} lisätty onnistuneesti, {filesWithErrors} epäonnistui",
531
+ files: "tiedostoa",
531
532
  file: "tiedosto",
532
533
  },
533
534
  sv: {
534
- inProgress: "Adding {filesUploaded} of {filesTotal}",
535
+ inProgress: "Laddar upp {filesUploaded} av {filesTotal}",
535
536
  inProgressWithErrors: "Laddar upp {filesInProgress}, {filesUploaded} uppladdad av {filesTotal}, {filesWithErrors} misslyckades",
536
- done: "Alla {filesTotal} har lagts till",
537
- doneWithErrors: "Handling slutförd, {filesUploaded} har lagts till, {filesWithErrors} misslyckades",
537
+ done: "Uppladdningen slutförd, {filesTotal} har lagts till",
538
+ doneWithErrors: "Uppladdningen slutförd, {filesUploaded} har lagts till, {filesWithErrors} misslyckades",
538
539
  files: "filer",
539
540
  file: "fil",
540
541
  },
541
542
  en: {
542
- inProgress: "Adding {filesUploaded} of {filesTotal}",
543
+ inProgress: "Uploading {filesUploaded} of {filesTotal}",
543
544
  inProgressWithErrors: "Uploading {filesInProgress}, {filesUploaded} uploaded of {filesTotal}, {filesWithErrors} failed",
544
- done: "All {filesTotal} added successfully",
545
- doneWithErrors: "Action completed, {filesUploaded} has been added successfully, {filesWithErrors} had errors",
546
- files: "File",
545
+ done: "Upload completed, {filesTotal} added successfully",
546
+ doneWithErrors: "Upload completed, {filesUploaded} added successfully, {filesWithErrors} failed.",
547
+ files: "files",
547
548
  file: "file",
548
549
  },
549
550
  };
@@ -589,7 +590,7 @@ export class DuetUpload {
589
590
  this.maxBytesTotal = undefined;
590
591
  this.maxFiles = 99;
591
592
  this.allowedExtensions = "all";
592
- this.allowedMimetypes = "*";
593
+ this.allowedMimetypes = "";
593
594
  this.multiple = true;
594
595
  this.limitSelection = false;
595
596
  this.value = undefined;
@@ -601,6 +602,7 @@ export class DuetUpload {
601
602
  sv: "Lägg till en bilaga",
602
603
  en: "Uploaded file",
603
604
  };
605
+ this.headerHeadingLevel = "h3";
604
606
  this.hideHeader = false;
605
607
  this.emitEvent = false;
606
608
  this.groups = [
@@ -737,7 +739,10 @@ export class DuetUpload {
737
739
  this.externalUploadButton.ariaLabel = caption;
738
740
  }
739
741
  // @ts-ignore
740
- return (h(Host, { class: { "duet-m-0": this.margin === "none" } }, h("duet-fieldset", { "label-hidden": this.hideHeader, label: this.label, caption: !this.captionOnBottom ? caption : undefined }, h("slot", { name: "header" }), !this.files.size && (h("duet-empty-state", { id: this.labelId, part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", icon: "messaging-attachment" }, h("duet-paragraph", { margin: "none" }, this.fileListEmpty))), !!this.files.size && h("slot", { name: "fileheader" }), !!this.files.size && (h("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })), !!this.files.size && this.renderUploadedItems(), !!this.files.size && h("slot", { name: "filefooter" }), h("slot", { name: "uploadfooter" }), this.captionOnBottom && (h("duet-caption", { margin: "none", size: "small" }, h("div", { class: "upload-bottom-caption" }, caption))), h("slot", { name: "afterfooter" }), !this.hideButton && (h(Fragment, null, h("duet-spacer", { size: "large" }), h("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle", part: this.identifier ? `${this.identifier}-button-upload` : "duet-upload-button-upload" }, this.buttonLabel))), (this.fileMaxReached || this.bytesMaxReached || this.filesToUploadExceedsLimit) && (h(Fragment, null, h("duet-spacer", { size: "medium" }), h("duet-alert", { part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301", this.errorCodes), this.bytesMaxReached && getI18nError("duet-upload-202", this.errorCodes), this.filesToUploadExceedsLimit && getI18nError("duet-upload-302", this.errorCodes)))), h("duet-visually-hidden", { "aria-hidden": "true" }, h("input", { ref: input => {
742
+ return (h(Host, { class: { "duet-m-0": this.margin === "none" } }, h("duet-fieldset", { "label-heading-level": this.headerHeadingLevel, "label-hidden": this.hideHeader, label: this.label, caption: !this.captionOnBottom ? caption : undefined }, h("slot", { name: "header" }), !this.files.size && (h("duet-empty-state", { id: this.labelId, part: this.identifier ? `${this.identifier}-empty-state` : "duet-upload-empty-state", icon: "messaging-attachment" }, h("duet-paragraph", { margin: "none" }, this.fileListEmpty))), !!this.files.size && h("slot", { name: "fileheader" }), !!this.files.size && (h("duet-upload-aria-status", { invalid: this.getFilesAsArray().invalid.length, valid: this.getFilesAsArray().valid.length, inprogress: this.filesInProgress.size, total: this.files.size, statusMessageLabel: this.internalStatusMessageLabel })), !!this.files.size && this.renderUploadedItems(), !!this.files.size && h("slot", { name: "filefooter" }), h("slot", { name: "uploadfooter" }), this.captionOnBottom && (h("duet-caption", { margin: "none", size: "small" }, h("div", { class: "upload-bottom-caption" }, caption))), h("slot", { name: "afterfooter" }), !this.hideButton && (h(Fragment, null, h("duet-spacer", { size: "large" }), h("duet-button", { id: this.buttonId, onClick: this.startUpload, "accessible-controls": identifier, disabled: this.fileMaxReached, "accessible-label": this.accessibleButtonLabel, "accessible-owns": identifier, size: "small", variation: "secondary", fixed: true, icon: "action-add-circle", part: this.identifier ? `${this.identifier}-button-upload` : "duet-upload-button-upload" }, this.buttonLabel))), (this.fileMaxReached ||
743
+ this.bytesMaxReached ||
744
+ this.filesToUploadExceedsLimit ||
745
+ this.filesToUploadTotalSizeIsAboveMax) && (h(Fragment, null, h("duet-spacer", { size: "medium" }), h("duet-alert", { part: this.identifier ? `${this.identifier}-error-notification` : "duet-upload-error-notification" }, this.fileMaxReached && getI18nError("duet-upload-301", this.errorCodes), this.bytesMaxReached && getI18nError("duet-upload-202", this.errorCodes), this.filesToUploadExceedsLimit && getI18nError("duet-upload-302", this.errorCodes), this.filesToUploadTotalSizeIsAboveMax && getI18nError("duet-upload-203", this.errorCodes)))), h("duet-visually-hidden", { "aria-hidden": "true" }, h("input", { ref: input => {
741
746
  this.nativeInput = input;
742
747
  }, accept: !this.limitSelection ? undefined : `${this.allowedMimetypes},${this.allowedExtensions}`, onBlur: this.onBlur, onFocus: this.onFocus, onChange: e => this.onChange(e), type: "file", class: {
743
748
  "duet-upload": true,
@@ -814,6 +819,12 @@ export class DuetUpload {
814
819
  this.kick();
815
820
  return;
816
821
  }
822
+ this.filesToUploadTotalSizeIsAboveMax = false;
823
+ if (filesToUploadTotalSizeIsAboveMax(this.files, selectedFiles, this.maxBytesTotal)) {
824
+ this.filesToUploadTotalSizeIsAboveMax = true;
825
+ this.kick();
826
+ return;
827
+ }
817
828
  if (selectedFiles) {
818
829
  for (const item of selectedFiles) {
819
830
  const { valid, errorMessage, errorType, errorSystem } = validateFile(item, {
@@ -973,7 +984,7 @@ export class DuetUpload {
973
984
  "references": {
974
985
  "XHRInternalMiddleWare": {
975
986
  "location": "local",
976
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
987
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
977
988
  }
978
989
  }
979
990
  },
@@ -1112,13 +1123,13 @@ export class DuetUpload {
1112
1123
  "docs": {
1113
1124
  "tags": [{
1114
1125
  "name": "default",
1115
- "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}"
1126
+ "text": "{\nfi: {\ninProgress: \"L\u00E4hetet\u00E4\u00E4n {filesUploaded}, yhteens\u00E4 l\u00E4hetett\u00E4v\u00E4n\u00E4 {filesTotal}.\",\ninProgressWithErrors:\n\"L\u00E4hetet\u00E4\u00E4n {filesInProgress}, l\u00E4hetetty {filesUploaded}, yhteens\u00E4 l\u00E4hetett\u00E4v\u00E4n\u00E4 {filesTotal}, {filesWithErrors} ep\u00E4onnistui\",\ndone: \"L\u00E4hetys valmis, {filesTotal} lis\u00E4tty onnistuneesti\",\ndoneWithErrors: \"L\u00E4hetys valmis, {filesUploaded} lis\u00E4tty onnistuneesti, {filesWithErrors} ep\u00E4onnistui\",\nfiles: \"tiedostoa\",\nfile: \"tiedosto\",\n},\nsv: {\ninProgress: \"Laddar upp {filesUploaded} av {filesTotal}\",\ninProgressWithErrors:\n\"Laddar upp {filesInProgress}, {filesUploaded} uppladdad av {filesTotal}, {filesWithErrors} misslyckades\",\ndone: \"Uppladdningen slutf\u00F6rd, {filesTotal} har lagts till\",\ndoneWithErrors: \"Uppladdningen slutf\u00F6rd, {filesUploaded} har lagts till, {filesWithErrors} misslyckades\",\nfiles: \"filer\",\nfile: \"fil\",\n},\nen: {\ninProgress: \"Uploading {filesUploaded} of {filesTotal}\",\ninProgressWithErrors:\n\"Uploading {filesInProgress}, {filesUploaded} uploaded of {filesTotal}, {filesWithErrors} failed\",\ndone: \"Upload completed, {filesTotal} added successfully\",\ndoneWithErrors: \"Upload completed, {filesUploaded} added successfully, {filesWithErrors} failed.\",\nfiles: \"files\",\nfile: \"file\",\n},\n}"
1116
1127
  }],
1117
1128
  "text": "Property to change the aria upload progress text read aloud by screenreaders"
1118
1129
  },
1119
1130
  "attribute": "status-label-default",
1120
1131
  "reflect": false,
1121
- "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 }"
1132
+ "defaultValue": "{\n fi: {\n inProgress: \"L\u00E4hetet\u00E4\u00E4n {filesUploaded}, yhteens\u00E4 l\u00E4hetett\u00E4v\u00E4n\u00E4 {filesTotal}.\",\n inProgressWithErrors:\n \"L\u00E4hetet\u00E4\u00E4n {filesInProgress}, l\u00E4hetetty {filesUploaded}, yhteens\u00E4 l\u00E4hetett\u00E4v\u00E4n\u00E4 {filesTotal}, {filesWithErrors} ep\u00E4onnistui\",\n done: \"L\u00E4hetys valmis, {filesTotal} lis\u00E4tty onnistuneesti\",\n doneWithErrors: \"L\u00E4hetys valmis, {filesUploaded} lis\u00E4tty onnistuneesti, {filesWithErrors} ep\u00E4onnistui\",\n files: \"tiedostoa\",\n file: \"tiedosto\",\n },\n sv: {\n inProgress: \"Laddar upp {filesUploaded} av {filesTotal}\",\n inProgressWithErrors:\n \"Laddar upp {filesInProgress}, {filesUploaded} uppladdad av {filesTotal}, {filesWithErrors} misslyckades\",\n done: \"Uppladdningen slutf\u00F6rd, {filesTotal} har lagts till\",\n doneWithErrors: \"Uppladdningen slutf\u00F6rd, {filesUploaded} har lagts till, {filesWithErrors} misslyckades\",\n files: \"filer\",\n file: \"fil\",\n },\n en: {\n inProgress: \"Uploading {filesUploaded} of {filesTotal}\",\n inProgressWithErrors:\n \"Uploading {filesInProgress}, {filesUploaded} uploaded of {filesTotal}, {filesWithErrors} failed\",\n done: \"Upload completed, {filesTotal} added successfully\",\n doneWithErrors: \"Upload completed, {filesUploaded} added successfully, {filesWithErrors} failed.\",\n files: \"files\",\n file: \"file\",\n },\n }"
1122
1133
  },
1123
1134
  "statusMessageLabel": {
1124
1135
  "type": "string",
@@ -1352,7 +1363,7 @@ export class DuetUpload {
1352
1363
  "references": {
1353
1364
  "StringMap": {
1354
1365
  "location": "local",
1355
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
1366
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
1356
1367
  }
1357
1368
  }
1358
1369
  },
@@ -1673,7 +1684,7 @@ export class DuetUpload {
1673
1684
  },
1674
1685
  "attribute": "allowed-mimetypes",
1675
1686
  "reflect": false,
1676
- "defaultValue": "\"*\""
1687
+ "defaultValue": "\"\""
1677
1688
  },
1678
1689
  "multiple": {
1679
1690
  "type": "boolean",
@@ -1805,6 +1816,29 @@ export class DuetUpload {
1805
1816
  },
1806
1817
  "defaultValue": "{\n fi: \"Ladattu tiedosto\",\n sv: \"L\u00E4gg till en bilaga\",\n en: \"Uploaded file\",\n }"
1807
1818
  },
1819
+ "headerHeadingLevel": {
1820
+ "type": "string",
1821
+ "mutable": false,
1822
+ "complexType": {
1823
+ "original": "DuetHeadingLevel",
1824
+ "resolved": "\"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\"",
1825
+ "references": {
1826
+ "DuetHeadingLevel": {
1827
+ "location": "import",
1828
+ "path": "../../common-types"
1829
+ }
1830
+ }
1831
+ },
1832
+ "required": false,
1833
+ "optional": false,
1834
+ "docs": {
1835
+ "tags": [],
1836
+ "text": "Heading level for the label in the legend element. This is only used to give screen readers better logical structure.\nThis does not affect visual appearance."
1837
+ },
1838
+ "attribute": "header-heading-level",
1839
+ "reflect": false,
1840
+ "defaultValue": "\"h3\""
1841
+ },
1808
1842
  "hideHeader": {
1809
1843
  "type": "boolean",
1810
1844
  "mutable": false,
@@ -1850,7 +1884,7 @@ export class DuetUpload {
1850
1884
  "references": {
1851
1885
  "DuetUploadTableGroupName": {
1852
1886
  "location": "local",
1853
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
1887
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
1854
1888
  }
1855
1889
  }
1856
1890
  },
@@ -1892,7 +1926,7 @@ export class DuetUpload {
1892
1926
  "references": {
1893
1927
  "DuetUploadEvent": {
1894
1928
  "location": "local",
1895
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
1929
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
1896
1930
  }
1897
1931
  }
1898
1932
  }
@@ -1912,7 +1946,7 @@ export class DuetUpload {
1912
1946
  "references": {
1913
1947
  "DuetUploadEvent": {
1914
1948
  "location": "local",
1915
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
1949
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
1916
1950
  }
1917
1951
  }
1918
1952
  }
@@ -1932,7 +1966,7 @@ export class DuetUpload {
1932
1966
  "references": {
1933
1967
  "DuetUploadEvent": {
1934
1968
  "location": "local",
1935
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
1969
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
1936
1970
  }
1937
1971
  }
1938
1972
  }
@@ -1952,7 +1986,7 @@ export class DuetUpload {
1952
1986
  "references": {
1953
1987
  "DuetUploadEvent": {
1954
1988
  "location": "local",
1955
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
1989
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
1956
1990
  }
1957
1991
  }
1958
1992
  }
@@ -1972,7 +2006,7 @@ export class DuetUpload {
1972
2006
  "references": {
1973
2007
  "DuetUploadEvent": {
1974
2008
  "location": "local",
1975
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
2009
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
1976
2010
  }
1977
2011
  }
1978
2012
  }
@@ -1992,7 +2026,7 @@ export class DuetUpload {
1992
2026
  "references": {
1993
2027
  "DuetUploadEvent": {
1994
2028
  "location": "local",
1995
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
2029
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
1996
2030
  }
1997
2031
  }
1998
2032
  }
@@ -2012,7 +2046,7 @@ export class DuetUpload {
2012
2046
  "references": {
2013
2047
  "DuetUploadEvent": {
2014
2048
  "location": "local",
2015
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
2049
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
2016
2050
  }
2017
2051
  }
2018
2052
  }
@@ -2032,7 +2066,7 @@ export class DuetUpload {
2032
2066
  "references": {
2033
2067
  "DuetUploadEvent": {
2034
2068
  "location": "local",
2035
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
2069
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
2036
2070
  }
2037
2071
  }
2038
2072
  }
@@ -2052,7 +2086,7 @@ export class DuetUpload {
2052
2086
  "references": {
2053
2087
  "DuetUploadEvent": {
2054
2088
  "location": "local",
2055
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
2089
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
2056
2090
  }
2057
2091
  }
2058
2092
  }
@@ -2072,7 +2106,7 @@ export class DuetUpload {
2072
2106
  "references": {
2073
2107
  "DuetUploadEvent": {
2074
2108
  "location": "local",
2075
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
2109
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
2076
2110
  }
2077
2111
  }
2078
2112
  }
@@ -2092,7 +2126,7 @@ export class DuetUpload {
2092
2126
  "references": {
2093
2127
  "DuetUploadEvent": {
2094
2128
  "location": "local",
2095
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload/duet-upload.tsx"
2129
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload/duet-upload.tsx"
2096
2130
  }
2097
2131
  }
2098
2132
  }
@@ -3,6 +3,11 @@
3
3
  */
4
4
  import { h } from "@stencil/core";
5
5
  import { getLocaleString } from "../../utils/language-utils";
6
+ const headerAriaLabel = {
7
+ fi: "Liiteluettelo",
8
+ sv: "Lista över bilagor",
9
+ en: "Attachments list",
10
+ };
6
11
  export const UploadItemHeader = ({ label, categoryLabel }) => {
7
- return (h("div", { class: "items-header" }, categoryLabel && (h("duet-heading", { class: "category-header", border: "solid", color: "gray-darker", level: "h3", "visual-level": "h6", weight: "semibold", margin: "none" }, getLocaleString(categoryLabel))), h("duet-heading", { class: { "filename-header": true, "no-category": !categoryLabel }, border: "solid", color: "gray-darker", level: "h3", "visual-level": "h6", weight: "semibold", margin: "none" }, getLocaleString(label))));
12
+ return (h("div", { class: "items-header", tabindex: "0", "aria-label": getLocaleString(headerAriaLabel) }, categoryLabel && (h("duet-heading", { class: "category-header", border: "solid", color: "gray-darker", level: "h3", "visual-level": "h6", weight: "semibold", margin: "none", "aria-hidden": "true" }, getLocaleString(categoryLabel))), h("duet-heading", { class: { "filename-header": true, "no-category": !categoryLabel }, border: "solid", color: "gray-darker", level: "h3", "visual-level": "h6", weight: "semibold", margin: "none", "aria-hidden": "true" }, getLocaleString(label))));
8
13
  };
@@ -102,3 +102,22 @@ export const filesToUploadCountAboveMax = (currentFilesCount, filesToUploadCount
102
102
  }
103
103
  return false;
104
104
  };
105
+ export const filesToUploadTotalSizeIsAboveMax = (currentFiles, filesToUpload, maxTotalBytes) => {
106
+ let total = 0;
107
+ if (maxTotalBytes) {
108
+ currentFiles.forEach(item => {
109
+ if (item.valid && item.size) {
110
+ total += item.size;
111
+ }
112
+ });
113
+ filesToUpload.forEach(item => {
114
+ if (item.size) {
115
+ total += item.size;
116
+ }
117
+ });
118
+ if (total >= maxTotalBytes) {
119
+ return true;
120
+ }
121
+ }
122
+ return false;
123
+ };
@@ -42,7 +42,8 @@ export class DuetUploadItem {
42
42
  }
43
43
  async focusActionButton() {
44
44
  if (this.actionButton) {
45
- await this.actionButton.setFocus();
45
+ await this.actionButton.setFocus({ preventScroll: true });
46
+ this.actionButton.scrollIntoView({ behavior: "smooth", block: "center", inline: "nearest" });
46
47
  }
47
48
  }
48
49
  getFileNameLine() {
@@ -62,9 +63,9 @@ export class DuetUploadItem {
62
63
  }
63
64
  }
64
65
  render() {
65
- const { uid, meta } = this.data;
66
+ const { uid, meta, item } = this.data;
66
67
  const Badges = meta && meta.badges ? (h("span", null, meta.badges.map(badgeText => (h("duet-badge", { color: "primary" }, badgeText))))) : undefined;
67
- const actionDescription = `${meta && meta.badges ? meta.badges.join(",") : ""} ${name}`;
68
+ const actionDescription = `${meta && meta.badges ? meta.badges.join(",") : ""} ${item.name}`;
68
69
  return (h("div", { class: {
69
70
  "upload-item-row": true,
70
71
  } }, this.showCategory && (h("div", { class: "item-categories" }, h("duet-heading", { class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(this.categoryLabel)), Badges)), h("div", { class: { "item-name": true, "no-category": !this.showCategory } }, !!this.label && (h("duet-heading", { class: "heading", color: "color-secondary", level: "h6", weight: "semibold" }, getLocaleString(this.label))), this.getFileNameLine()), h("div", { class: "item-actions" }, this.actions.map(actionItem => {
@@ -126,7 +127,7 @@ export class DuetUploadItem {
126
127
  "references": {
127
128
  "ItemType": {
128
129
  "location": "local",
129
- "path": "/Users/laaksju3/duetds/packages/components/src/components/duet-upload-item/duet-upload-item.tsx"
130
+ "path": "/Users/mgibas/workspace/duet/packages/components/src/components/duet-upload-item/duet-upload-item.tsx"
130
131
  }
131
132
  }
132
133
  },
@@ -11,6 +11,9 @@
11
11
  export function SafeParseFloat(value, locale) {
12
12
  let results;
13
13
  if (typeof value === "string") {
14
+ if (value === "") {
15
+ return null;
16
+ }
14
17
  //the minuses are NOT the same characters, they differ in unicode for some languages
15
18
  // "‐", "−", "–", and "—"
16
19
  let convertedMinus = value.replace("−", "-").replace("‐", "-").replace("−", "-").replace("–", "-").replace("—", "-");