@duetds/components 10.4.0 → 10.5.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 (426) hide show
  1. package/hydrate/index.js +405 -275
  2. package/hydrate/index.mjs +405 -275
  3. package/lib/cjs/{a11y-utils-BXDHn_nL.js → a11y-utils-DaAO4N9d.js} +1 -1
  4. package/lib/cjs/{app-globals-Bs3-XKhd.js → app-globals-CHNvdfQj.js} +1 -1
  5. package/lib/cjs/duet-action-button.cjs.entry.js +3 -3
  6. package/lib/cjs/duet-alert.cjs.entry.js +4 -4
  7. package/lib/cjs/duet-badge.cjs.entry.js +29 -6
  8. package/lib/cjs/duet-banner.cjs.entry.js +3 -3
  9. package/lib/cjs/duet-breadcrumb.cjs.entry.js +6 -6
  10. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +5 -5
  11. package/lib/cjs/duet-button_2.cjs.entry.js +5 -5
  12. package/lib/cjs/duet-callout.cjs.entry.js +5 -5
  13. package/lib/cjs/duet-caption_4.cjs.entry.js +11 -11
  14. package/lib/cjs/duet-card.cjs.entry.js +3 -3
  15. package/lib/cjs/duet-checkbox.cjs.entry.js +3 -3
  16. package/lib/cjs/duet-checkmark.cjs.entry.js +4 -4
  17. package/lib/cjs/duet-chip.cjs.entry.js +5 -8
  18. package/lib/cjs/duet-choice_2.cjs.entry.js +19 -21
  19. package/lib/cjs/duet-collapsible.cjs.entry.js +3 -3
  20. package/lib/cjs/duet-combobox.cjs.entry.js +4 -5
  21. package/lib/cjs/duet-contact-card.cjs.entry.js +5 -5
  22. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  23. package/lib/cjs/duet-date-picker.cjs.entry.js +10 -9
  24. package/lib/cjs/duet-divider_2.cjs.entry.js +4 -4
  25. package/lib/cjs/duet-editable-table_3.cjs.entry.js +10 -10
  26. package/lib/cjs/duet-empty-state.cjs.entry.js +4 -4
  27. package/lib/cjs/duet-fieldset.cjs.entry.js +6 -6
  28. package/lib/cjs/duet-file-chooser.cjs.entry.js +3 -3
  29. package/lib/cjs/duet-footer.cjs.entry.js +8 -8
  30. package/lib/cjs/duet-grid_2.cjs.entry.js +7 -7
  31. package/lib/cjs/duet-header_2.cjs.entry.js +4 -4
  32. package/lib/cjs/duet-hero.cjs.entry.js +9 -9
  33. package/lib/cjs/duet-icon.cjs.entry.js +5 -5
  34. package/lib/cjs/duet-indicator.cjs.entry.js +5 -5
  35. package/lib/cjs/duet-input_2.cjs.entry.js +75 -18
  36. package/lib/cjs/duet-layout.cjs.entry.js +7 -7
  37. package/lib/cjs/duet-list_2.cjs.entry.js +5 -5
  38. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +4 -4
  39. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +4 -4
  40. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +6 -6
  41. package/lib/cjs/duet-menu-bar-item.cjs.entry.js +7 -7
  42. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +4 -4
  43. package/lib/cjs/duet-menu-bar.cjs.entry.js +6 -6
  44. package/lib/cjs/duet-modal.cjs.entry.js +12 -12
  45. package/lib/cjs/duet-multiselect.cjs.entry.js +10 -10
  46. package/lib/cjs/duet-nav.cjs.entry.js +3 -3
  47. package/lib/cjs/duet-notification_2.cjs.entry.js +9 -9
  48. package/lib/cjs/duet-number-input.cjs.entry.js +13 -11
  49. package/lib/cjs/duet-overlay.cjs.entry.js +3 -3
  50. package/lib/cjs/duet-page-heading.cjs.entry.js +20 -5
  51. package/lib/cjs/duet-pagination_2.cjs.entry.js +17 -18
  52. package/lib/cjs/duet-panel.cjs.entry.js +4 -4
  53. package/lib/cjs/duet-phone-input.cjs.entry.js +17 -5
  54. package/lib/cjs/duet-popup-menu_2.cjs.entry.js +8 -8
  55. package/lib/cjs/duet-progress.cjs.entry.js +3 -3
  56. package/lib/cjs/duet-promo-card.cjs.entry.js +5 -5
  57. package/lib/cjs/duet-radio_2.cjs.entry.js +7 -10
  58. package/lib/cjs/duet-range-slider.cjs.entry.js +6 -6
  59. package/lib/cjs/duet-scrollable_3.cjs.entry.js +15 -15
  60. package/lib/cjs/duet-section-layout.cjs.entry.js +4 -4
  61. package/lib/cjs/duet-select.cjs.entry.js +9 -9
  62. package/lib/cjs/duet-shaped-image.cjs.entry.js +4 -4
  63. package/lib/cjs/duet-share-chart-item.cjs.entry.js +2 -2
  64. package/lib/cjs/duet-share-chart.cjs.entry.js +6 -6
  65. package/lib/cjs/duet-show-more.cjs.entry.js +5 -5
  66. package/lib/cjs/duet-slideout-lang.cjs.entry.js +4 -4
  67. package/lib/cjs/duet-slideout-link.cjs.entry.js +7 -7
  68. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +6 -6
  69. package/lib/cjs/duet-slideout-panel.cjs.entry.js +11 -11
  70. package/lib/cjs/duet-slideout.cjs.entry.js +10 -10
  71. package/lib/cjs/duet-status-icon.cjs.entry.js +3 -3
  72. package/lib/cjs/duet-step_2.cjs.entry.js +6 -6
  73. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +4 -4
  74. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +6 -6
  75. package/lib/cjs/duet-submenu-bar-item.cjs.entry.js +6 -6
  76. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +3 -3
  77. package/lib/cjs/duet-submenu-bar.cjs.entry.js +7 -7
  78. package/lib/cjs/duet-textarea.cjs.entry.js +8 -8
  79. package/lib/cjs/duet-toggle.cjs.entry.js +8 -8
  80. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +4 -4
  81. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +6 -6
  82. package/lib/cjs/duet-toolbar-item.cjs.entry.js +8 -8
  83. package/lib/cjs/duet-toolbar-link.cjs.entry.js +4 -4
  84. package/lib/cjs/duet-toolbar.cjs.entry.js +4 -4
  85. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +13 -11
  86. package/lib/cjs/duet-tooltip.cjs.entry.js +24 -7
  87. package/lib/cjs/duet-tray.cjs.entry.js +5 -5
  88. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +2 -2
  89. package/lib/cjs/duet-upload-item.cjs.entry.js +6 -6
  90. package/lib/cjs/duet-visually-hidden.cjs.entry.js +2 -2
  91. package/lib/cjs/duet.cjs.js +3 -3
  92. package/lib/cjs/{errorcodes.utils-W6UQ3hgy.js → errorcodes.utils-Dkf_MfrJ.js} +1 -1
  93. package/lib/cjs/{focus-utils-KTKpjKRi.js → focus-utils-BuGg0Oha.js} +1 -1
  94. package/lib/cjs/{index-C7Yvi8y8.js → index-ZxE6MB5V.js} +1 -1
  95. package/lib/cjs/{label-DZ63Z3SI.js → label-CpPOBfjS.js} +1 -1
  96. package/lib/cjs/{language-utils-BsevPDrN.js → language-utils-C7Z0KYg-.js} +1 -1
  97. package/lib/cjs/loader.cjs.js +3 -3
  98. package/lib/cjs/{slot-utils-DIDW777s.js → slot-utils-BXdHT3A1.js} +1 -1
  99. package/lib/cjs/{themeable-component-hQ83w5_A.js → themeable-component-CIDaln0Z.js} +1 -1
  100. package/lib/collection/components/duet-badge/duet-badge.css +66 -5
  101. package/lib/collection/components/duet-badge/duet-badge.js +49 -2
  102. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  103. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  104. package/lib/collection/components/duet-button/duet-button.css +5 -0
  105. package/lib/collection/components/duet-callout/duet-callout.js +2 -2
  106. package/lib/collection/components/duet-chip/duet-chip.js +2 -5
  107. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  108. package/lib/collection/components/duet-choice/duet-choice.js +9 -9
  109. package/lib/collection/components/duet-choice-group/duet-choice-group.js +6 -8
  110. package/lib/collection/components/duet-combobox/duet-combobox.js +0 -1
  111. package/lib/collection/components/duet-contact-card/duet-contact-card.js +2 -2
  112. package/lib/collection/components/duet-date-picker/duet-date-picker.js +5 -2
  113. package/lib/collection/components/duet-divider/duet-divider.js +1 -1
  114. package/lib/collection/components/duet-editable-table/duet-editable-table.js +2 -2
  115. package/lib/collection/components/duet-empty-state/duet-empty-state.js +2 -2
  116. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  117. package/lib/collection/components/duet-file-chooser/duet-file-chooser.js +1 -1
  118. package/lib/collection/components/duet-footer/duet-footer.js +4 -4
  119. package/lib/collection/components/duet-grid/duet-grid.js +2 -2
  120. package/lib/collection/components/duet-grid-item/duet-grid-item.css +5 -0
  121. package/lib/collection/components/duet-grid-item/duet-grid-item.js +2 -2
  122. package/lib/collection/components/duet-heading/duet-heading.js +2 -2
  123. package/lib/collection/components/duet-hero/duet-hero.js +5 -5
  124. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  125. package/lib/collection/components/duet-indicator/duet-indicator.js +2 -2
  126. package/lib/collection/components/duet-input/duet-input.css +38 -3
  127. package/lib/collection/components/duet-input/duet-input.js +148 -15
  128. package/lib/collection/components/duet-layout/duet-layout.js +5 -5
  129. package/lib/collection/components/duet-link/duet-link.js +2 -2
  130. package/lib/collection/components/duet-list/duet-list.js +1 -1
  131. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  132. package/lib/collection/components/duet-logo/duet-logo.js +1 -1
  133. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +3 -3
  134. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  135. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  136. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  137. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  138. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  139. package/lib/collection/components/duet-modal/duet-modal.js +7 -7
  140. package/lib/collection/components/duet-multiselect/duet-multiselect.js +5 -5
  141. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  142. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  143. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +3 -3
  144. package/lib/collection/components/duet-number-input/duet-number-input.js +10 -9
  145. package/lib/collection/components/duet-overlay/duet-overlay.js +1 -1
  146. package/lib/collection/components/duet-page-heading/duet-page-heading.css +20 -1
  147. package/lib/collection/components/duet-page-heading/duet-page-heading.js +58 -2
  148. package/lib/collection/components/duet-pagination/duet-pagination.js +12 -13
  149. package/lib/collection/components/duet-panel/duet-panel.js +2 -2
  150. package/lib/collection/components/duet-paragraph/duet-paragraph.js +2 -2
  151. package/lib/collection/components/duet-phone-input/duet-phone-input.js +13 -1
  152. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  153. package/lib/collection/components/duet-promo-card/duet-promo-card.js +2 -2
  154. package/lib/collection/components/duet-radio/duet-radio.js +3 -6
  155. package/lib/collection/components/duet-radio-group/duet-radio-group.js +1 -1
  156. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  157. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -2
  158. package/lib/collection/components/duet-scrollable/duet-scrollable.js +5 -5
  159. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  160. package/lib/collection/components/duet-select/duet-select.js +5 -5
  161. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  162. package/lib/collection/components/duet-share-chart/duet-share-chart.js +2 -2
  163. package/lib/collection/components/duet-share-chart-item/duet-share-chart-item.js +1 -1
  164. package/lib/collection/components/duet-show-more/duet-show-more.js +2 -2
  165. package/lib/collection/components/duet-slideout/duet-slideout.js +4 -4
  166. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  167. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  168. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  169. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  170. package/lib/collection/components/duet-spacer/duet-spacer.js +1 -1
  171. package/lib/collection/components/duet-spinner/duet-spinner.js +1 -1
  172. package/lib/collection/components/duet-status-icon/duet-status-icon.js +2 -2
  173. package/lib/collection/components/duet-step/duet-step.js +2 -2
  174. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  175. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  176. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  177. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  178. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  179. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  180. package/lib/collection/components/duet-tab/duet-tab.js +2 -2
  181. package/lib/collection/components/duet-tab-group/duet-tab-group.js +4 -4
  182. package/lib/collection/components/duet-table/duet-table.js +2 -2
  183. package/lib/collection/components/duet-textarea/duet-textarea.js +3 -3
  184. package/lib/collection/components/duet-toggle/duet-toggle.js +3 -3
  185. package/lib/collection/components/duet-toolbar/duet-toolbar.js +2 -2
  186. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  187. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  188. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +3 -3
  189. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  190. package/lib/collection/components/duet-tooltip/duet-tooltip-button.css +18 -4
  191. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +25 -3
  192. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.css +1 -1
  193. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +3 -3
  194. package/lib/collection/components/duet-tooltip/duet-tooltip.js +47 -4
  195. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  196. package/lib/collection/components/duet-upload/duet-upload.js +2 -2
  197. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  198. package/lib/collection/components/duet-upload-item/duet-upload-item.js +2 -2
  199. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  200. package/lib/collection/utils/math.utils.js +1 -0
  201. package/lib/duet/duet.esm.js +1 -1
  202. package/lib/duet/{p-14d4a45a.entry.js → p-02d8e844.entry.js} +1 -1
  203. package/lib/duet/p-06297bd8.entry.js +4 -0
  204. package/lib/duet/p-0c04f9f5.entry.js +4 -0
  205. package/lib/duet/p-110c7572.entry.js +4 -0
  206. package/lib/duet/{p-eab349f2.entry.js → p-18a8ea12.entry.js} +1 -1
  207. package/lib/duet/{p-1ee400e7.entry.js → p-19863cdf.entry.js} +1 -1
  208. package/lib/duet/p-1bca9931.entry.js +4 -0
  209. package/lib/duet/{p-a690a165.entry.js → p-1da7703d.entry.js} +1 -1
  210. package/lib/duet/{p-84420fbf.entry.js → p-20a8ef81.entry.js} +1 -1
  211. package/lib/duet/{p-526fa31c.entry.js → p-268b3066.entry.js} +1 -1
  212. package/lib/duet/{p-61b6962a.entry.js → p-2dd7d75e.entry.js} +1 -1
  213. package/lib/duet/{p-1666aeaf.entry.js → p-2f8a47e2.entry.js} +1 -1
  214. package/lib/duet/{p-c1d4542d.entry.js → p-30108edc.entry.js} +1 -1
  215. package/lib/duet/{p-b3ec9b98.entry.js → p-317a1fc0.entry.js} +1 -1
  216. package/lib/duet/{p-2e413951.entry.js → p-317e81f3.entry.js} +1 -1
  217. package/lib/duet/{p-81332db1.entry.js → p-3277233e.entry.js} +1 -1
  218. package/lib/duet/{p-6988c81c.entry.js → p-3690576a.entry.js} +1 -1
  219. package/lib/duet/{p-adecab91.entry.js → p-38973524.entry.js} +1 -1
  220. package/lib/duet/{p-2d43de54.entry.js → p-3b2fba0f.entry.js} +1 -1
  221. package/lib/duet/{p-01f3e30c.entry.js → p-3f35fce3.entry.js} +1 -1
  222. package/lib/duet/p-3f3c6e64.entry.js +4 -0
  223. package/lib/duet/{p-494755d0.entry.js → p-3f7afd87.entry.js} +1 -1
  224. package/lib/duet/p-407f7f03.entry.js +4 -0
  225. package/lib/duet/{p-d181c624.entry.js → p-40fa7371.entry.js} +1 -1
  226. package/lib/duet/p-42ec7305.entry.js +4 -0
  227. package/lib/duet/p-43e076b5.entry.js +4 -0
  228. package/lib/duet/p-443af533.entry.js +4 -0
  229. package/lib/duet/{p-a4a1b8e3.entry.js → p-461d4089.entry.js} +1 -1
  230. package/lib/duet/{p-7e640c8e.entry.js → p-4af6a8ed.entry.js} +1 -1
  231. package/lib/duet/{p-4d39941c.entry.js → p-4b7f1244.entry.js} +1 -1
  232. package/lib/duet/{p-a63327c3.entry.js → p-516397ba.entry.js} +1 -1
  233. package/lib/duet/{p-cd4f52a9.entry.js → p-5284c707.entry.js} +1 -1
  234. package/lib/duet/{p-d2c91ed0.entry.js → p-52beb436.entry.js} +1 -1
  235. package/lib/duet/p-5c9f443c.entry.js +4 -0
  236. package/lib/duet/{p-dc87f3f4.entry.js → p-5f5f72d4.entry.js} +1 -1
  237. package/lib/duet/{p--fmK3qPb.js → p-5lFzA17H.js} +1 -1
  238. package/lib/duet/{p-376f9d06.entry.js → p-61ec0e1c.entry.js} +1 -1
  239. package/lib/duet/{p-eebf150c.entry.js → p-6b469225.entry.js} +1 -1
  240. package/lib/duet/p-6ef683d5.entry.js +4 -0
  241. package/lib/duet/{p-d2c04a7e.entry.js → p-70612314.entry.js} +1 -1
  242. package/lib/duet/{p-5ffc4081.entry.js → p-70961edb.entry.js} +1 -1
  243. package/lib/duet/p-7294c37d.entry.js +4 -0
  244. package/lib/duet/p-72b504ef.entry.js +4 -0
  245. package/lib/duet/{p-5dde8fbb.entry.js → p-734249e0.entry.js} +1 -1
  246. package/lib/duet/{p-bcced6eb.entry.js → p-7353ee4c.entry.js} +1 -1
  247. package/lib/duet/p-74aac967.entry.js +4 -0
  248. package/lib/duet/{p-870dc953.entry.js → p-7c08fd87.entry.js} +1 -1
  249. package/lib/duet/{p-e8bd6dab.entry.js → p-7eea47d5.entry.js} +1 -1
  250. package/lib/duet/{p-3bd45b5b.entry.js → p-7fd39204.entry.js} +1 -1
  251. package/lib/duet/{p-816caa58.entry.js → p-8012c7bc.entry.js} +1 -1
  252. package/lib/duet/{p-46300680.entry.js → p-829db926.entry.js} +1 -1
  253. package/lib/duet/p-83238bf3.entry.js +4 -0
  254. package/lib/duet/{p-b64b3e2f.entry.js → p-833802f9.entry.js} +1 -1
  255. package/lib/duet/p-86ffd3cb.entry.js +4 -0
  256. package/lib/duet/{p-0eb0e582.entry.js → p-871620d3.entry.js} +1 -1
  257. package/lib/duet/{p-afd7d87a.entry.js → p-8ace1eb4.entry.js} +1 -1
  258. package/lib/duet/{p-3648404d.entry.js → p-8b0dfbd7.entry.js} +1 -1
  259. package/lib/duet/{p-1dcbbd67.entry.js → p-93ff8fe4.entry.js} +1 -1
  260. package/lib/duet/{p-428db44b.entry.js → p-9ae7aaef.entry.js} +1 -1
  261. package/lib/duet/{p-73ed0008.entry.js → p-9c9811ba.entry.js} +1 -1
  262. package/lib/duet/{p-1bdef0e0.entry.js → p-9e1a59d1.entry.js} +1 -1
  263. package/lib/duet/{p-Cwhi6_oZ.js → p-B2cboDWM.js} +1 -1
  264. package/lib/duet/{p-Chf7ZRmW.js → p-B8-N_qjs.js} +1 -1
  265. package/lib/duet/{p-D2EBd3cT.js → p-BzYmwX5_.js} +1 -1
  266. package/lib/duet/{p-2HU78SJ-.js → p-C5Yfx2kd.js} +1 -1
  267. package/lib/duet/{p-DWIjWGAD.js → p-CFqvB5PA.js} +1 -1
  268. package/lib/duet/{p-CtBx3Trd.js → p-Cg4m_WHe.js} +1 -1
  269. package/lib/duet/{p-BW3SZS4F.js → p-R3pTP2Oy.js} +1 -1
  270. package/lib/duet/{p-9d8027aa.entry.js → p-a068c086.entry.js} +1 -1
  271. package/lib/duet/p-a483117e.entry.js +4 -0
  272. package/lib/duet/{p-0395eb34.entry.js → p-a5177d32.entry.js} +1 -1
  273. package/lib/duet/{p-fbce84d5.entry.js → p-a8876b3d.entry.js} +1 -1
  274. package/lib/duet/{p-3361387d.entry.js → p-a9104184.entry.js} +1 -1
  275. package/lib/duet/{p-184d53a7.entry.js → p-b1326cbb.entry.js} +1 -1
  276. package/lib/duet/{p-fea479fd.entry.js → p-b747f6e9.entry.js} +1 -1
  277. package/lib/duet/{p-7a5066b8.entry.js → p-bdbf0fae.entry.js} +1 -1
  278. package/lib/duet/{p-3c26d300.entry.js → p-c1afac0d.entry.js} +1 -1
  279. package/lib/duet/p-c2026c6b.entry.js +4 -0
  280. package/lib/duet/{p-1ed82a27.entry.js → p-c216e746.entry.js} +1 -1
  281. package/lib/duet/{p-0453edd0.entry.js → p-c54be349.entry.js} +1 -1
  282. package/lib/duet/{p-13b7f4e0.entry.js → p-cb6c4158.entry.js} +1 -1
  283. package/lib/duet/{p-4c5a8ed3.entry.js → p-cbcee3e2.entry.js} +1 -1
  284. package/lib/duet/{p-12e4e9b6.entry.js → p-d3b5c997.entry.js} +1 -1
  285. package/lib/duet/{p-7a668cee.entry.js → p-d3baa815.entry.js} +1 -1
  286. package/lib/duet/{p-1705b6cf.entry.js → p-d5f90dbc.entry.js} +1 -1
  287. package/lib/duet/{p-07c4b435.entry.js → p-d6f0afa5.entry.js} +1 -1
  288. package/lib/duet/{p-dfd55180.entry.js → p-d779fe42.entry.js} +1 -1
  289. package/lib/duet/{p-f210e405.entry.js → p-dedf6a32.entry.js} +1 -1
  290. package/lib/duet/{p-d0a54e6d.entry.js → p-e08dce92.entry.js} +1 -1
  291. package/lib/duet/{p-c71f6942.entry.js → p-e7f2359a.entry.js} +1 -1
  292. package/lib/duet/p-efa4eecc.entry.js +4 -0
  293. package/lib/duet/p-f040706c.entry.js +4 -0
  294. package/lib/duet/{p-7eaa1fb5.entry.js → p-fa13ffe9.entry.js} +1 -1
  295. package/lib/duet/{p-87bb797c.entry.js → p-fe829b53.entry.js} +1 -1
  296. package/lib/duet/p-s8EL6NG5.js +4 -0
  297. package/lib/esm/{a11y-utils-sgAajRY0.js → a11y-utils-ChN5Nhxh.js} +1 -1
  298. package/lib/esm/{app-globals-NNQmI_gc.js → app-globals-4kCk2rkO.js} +1 -1
  299. package/lib/esm/duet-action-button.entry.js +3 -3
  300. package/lib/esm/duet-alert.entry.js +4 -4
  301. package/lib/esm/duet-badge.entry.js +29 -6
  302. package/lib/esm/duet-banner.entry.js +3 -3
  303. package/lib/esm/duet-breadcrumb.entry.js +6 -6
  304. package/lib/esm/duet-breadcrumbs.entry.js +5 -5
  305. package/lib/esm/duet-button_2.entry.js +5 -5
  306. package/lib/esm/duet-callout.entry.js +5 -5
  307. package/lib/esm/duet-caption_4.entry.js +11 -11
  308. package/lib/esm/duet-card.entry.js +3 -3
  309. package/lib/esm/duet-checkbox.entry.js +3 -3
  310. package/lib/esm/duet-checkmark.entry.js +4 -4
  311. package/lib/esm/duet-chip.entry.js +5 -8
  312. package/lib/esm/duet-choice_2.entry.js +19 -21
  313. package/lib/esm/duet-collapsible.entry.js +3 -3
  314. package/lib/esm/duet-combobox.entry.js +4 -5
  315. package/lib/esm/duet-contact-card.entry.js +5 -5
  316. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  317. package/lib/esm/duet-date-picker.entry.js +10 -9
  318. package/lib/esm/duet-divider_2.entry.js +4 -4
  319. package/lib/esm/duet-editable-table_3.entry.js +10 -10
  320. package/lib/esm/duet-empty-state.entry.js +4 -4
  321. package/lib/esm/duet-fieldset.entry.js +6 -6
  322. package/lib/esm/duet-file-chooser.entry.js +3 -3
  323. package/lib/esm/duet-footer.entry.js +8 -8
  324. package/lib/esm/duet-grid_2.entry.js +7 -7
  325. package/lib/esm/duet-header_2.entry.js +4 -4
  326. package/lib/esm/duet-hero.entry.js +9 -9
  327. package/lib/esm/duet-icon.entry.js +5 -5
  328. package/lib/esm/duet-indicator.entry.js +5 -5
  329. package/lib/esm/duet-input_2.entry.js +75 -18
  330. package/lib/esm/duet-layout.entry.js +7 -7
  331. package/lib/esm/duet-list_2.entry.js +5 -5
  332. package/lib/esm/duet-menu-bar-button.entry.js +4 -4
  333. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +4 -4
  334. package/lib/esm/duet-menu-bar-dropdown.entry.js +6 -6
  335. package/lib/esm/duet-menu-bar-item.entry.js +7 -7
  336. package/lib/esm/duet-menu-bar-link.entry.js +4 -4
  337. package/lib/esm/duet-menu-bar.entry.js +6 -6
  338. package/lib/esm/duet-modal.entry.js +12 -12
  339. package/lib/esm/duet-multiselect.entry.js +10 -10
  340. package/lib/esm/duet-nav.entry.js +3 -3
  341. package/lib/esm/duet-notification_2.entry.js +9 -9
  342. package/lib/esm/duet-number-input.entry.js +13 -11
  343. package/lib/esm/duet-overlay.entry.js +3 -3
  344. package/lib/esm/duet-page-heading.entry.js +20 -5
  345. package/lib/esm/duet-pagination_2.entry.js +17 -18
  346. package/lib/esm/duet-panel.entry.js +4 -4
  347. package/lib/esm/duet-phone-input.entry.js +17 -5
  348. package/lib/esm/duet-popup-menu_2.entry.js +8 -8
  349. package/lib/esm/duet-progress.entry.js +3 -3
  350. package/lib/esm/duet-promo-card.entry.js +5 -5
  351. package/lib/esm/duet-radio_2.entry.js +7 -10
  352. package/lib/esm/duet-range-slider.entry.js +6 -6
  353. package/lib/esm/duet-scrollable_3.entry.js +15 -15
  354. package/lib/esm/duet-section-layout.entry.js +4 -4
  355. package/lib/esm/duet-select.entry.js +9 -9
  356. package/lib/esm/duet-shaped-image.entry.js +4 -4
  357. package/lib/esm/duet-share-chart-item.entry.js +2 -2
  358. package/lib/esm/duet-share-chart.entry.js +6 -6
  359. package/lib/esm/duet-show-more.entry.js +5 -5
  360. package/lib/esm/duet-slideout-lang.entry.js +4 -4
  361. package/lib/esm/duet-slideout-link.entry.js +7 -7
  362. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -6
  363. package/lib/esm/duet-slideout-panel.entry.js +11 -11
  364. package/lib/esm/duet-slideout.entry.js +10 -10
  365. package/lib/esm/duet-status-icon.entry.js +3 -3
  366. package/lib/esm/duet-step_2.entry.js +6 -6
  367. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +4 -4
  368. package/lib/esm/duet-submenu-bar-dropdown.entry.js +6 -6
  369. package/lib/esm/duet-submenu-bar-item.entry.js +6 -6
  370. package/lib/esm/duet-submenu-bar-link.entry.js +3 -3
  371. package/lib/esm/duet-submenu-bar.entry.js +7 -7
  372. package/lib/esm/duet-textarea.entry.js +8 -8
  373. package/lib/esm/duet-toggle.entry.js +8 -8
  374. package/lib/esm/duet-toolbar-dropdown-link.entry.js +4 -4
  375. package/lib/esm/duet-toolbar-dropdown.entry.js +6 -6
  376. package/lib/esm/duet-toolbar-item.entry.js +8 -8
  377. package/lib/esm/duet-toolbar-link.entry.js +4 -4
  378. package/lib/esm/duet-toolbar.entry.js +4 -4
  379. package/lib/esm/duet-tooltip-button_2.entry.js +13 -11
  380. package/lib/esm/duet-tooltip.entry.js +25 -8
  381. package/lib/esm/duet-tray.entry.js +5 -5
  382. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  383. package/lib/esm/duet-upload-item.entry.js +6 -6
  384. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  385. package/lib/esm/duet.js +4 -4
  386. package/lib/esm/{errorcodes.utils-CqW0-HM8.js → errorcodes.utils-DuFCu_27.js} +1 -1
  387. package/lib/esm/{focus-utils-Dokkd7xz.js → focus-utils-CFswdkeD.js} +1 -1
  388. package/lib/esm/{index-Cwhi6_oZ.js → index-B2cboDWM.js} +1 -1
  389. package/lib/esm/{label-CyQlly6Z.js → label-CJxIWUOT.js} +1 -1
  390. package/lib/esm/{language-utils-LZh-sc2s.js → language-utils-C4M4ASkT.js} +1 -1
  391. package/lib/esm/loader.js +4 -4
  392. package/lib/esm/{slot-utils-CEZnAp61.js → slot-utils--sNK1DNn.js} +1 -1
  393. package/lib/esm/{themeable-component-D_FVcjsD.js → themeable-component-BBi3552X.js} +1 -1
  394. package/lib/types/components/duet-badge/duet-badge.d.ts +14 -0
  395. package/lib/types/components/duet-chip/duet-chip.d.ts +1 -1
  396. package/lib/types/components/duet-input/duet-input.d.ts +31 -3
  397. package/lib/types/components/duet-number-input/duet-number-input.d.ts +2 -1
  398. package/lib/types/components/duet-page-heading/duet-page-heading.d.ts +10 -0
  399. package/lib/types/components/duet-phone-input/duet-phone-input.d.ts +2 -0
  400. package/lib/types/components/duet-radio/duet-radio.d.ts +0 -1
  401. package/lib/types/components/duet-tooltip/duet-tooltip-button.d.ts +1 -0
  402. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +6 -0
  403. package/lib/types/components.d.ts +79 -8
  404. package/lib/types/utils/math.utils.d.ts +1 -0
  405. package/package.json +5 -5
  406. package/lib/duet/p-07aa40df.entry.js +0 -4
  407. package/lib/duet/p-104ddbf2.entry.js +0 -4
  408. package/lib/duet/p-2168e431.entry.js +0 -4
  409. package/lib/duet/p-4420973e.entry.js +0 -4
  410. package/lib/duet/p-455e8ebe.entry.js +0 -4
  411. package/lib/duet/p-4f7b0699.entry.js +0 -4
  412. package/lib/duet/p-58496fb1.entry.js +0 -4
  413. package/lib/duet/p-58a70b3d.entry.js +0 -4
  414. package/lib/duet/p-592a6542.entry.js +0 -4
  415. package/lib/duet/p-5c8c691b.entry.js +0 -4
  416. package/lib/duet/p-7a2ca711.entry.js +0 -4
  417. package/lib/duet/p-DCDM41Ef.js +0 -4
  418. package/lib/duet/p-a4db8c29.entry.js +0 -4
  419. package/lib/duet/p-a7bb038a.entry.js +0 -4
  420. package/lib/duet/p-af9c8169.entry.js +0 -4
  421. package/lib/duet/p-c7851c15.entry.js +0 -4
  422. package/lib/duet/p-cbd1069e.entry.js +0 -4
  423. package/lib/duet/p-d3dac8af.entry.js +0 -4
  424. package/lib/duet/p-e9ed96cf.entry.js +0 -4
  425. package/lib/duet/p-f600e215.entry.js +0 -4
  426. package/lib/duet/p-f652a9c7.entry.js +0 -4
@@ -144,11 +144,11 @@ export class DuetIcon {
144
144
  : {};
145
145
  const iconStyles = Object.assign({}, iconRotationStyles);
146
146
  const shapeStyle = this.shape === "brand-rotated" ? "duet-icon-shape-brand" : `duet-icon-shape-${this.shape}`;
147
- return (h(Host, { key: '2a800d3292964b5a1dd5fd454662f690ce9e6b5a', class: {
147
+ return (h(Host, { key: 'f6a74ccabd59055d22eec3654bde9c81fd4a9ce3', class: {
148
148
  "duet-m-0": this.margin === "none",
149
149
  "duet-icon-has-outline": !!this.outline,
150
150
  "duet-icon-has-background": !!this.background,
151
- } }, h("span", { key: '4d5d3fc155d6d2e4f677d8753c116c82eb865a2c', "aria-hidden": "true", style: styles, class: {
151
+ } }, h("span", { key: 'f2ea10e9ec8459d5a5995781e193c6d8df7fb1ef', "aria-hidden": "true", style: styles, class: {
152
152
  "duet-icon": true,
153
153
  "duet-theme-turva": this.theme === "turva",
154
154
  "duet-theme-default": this.theme === "default",
@@ -157,7 +157,7 @@ export class DuetIcon {
157
157
  [shapeStyle]: true,
158
158
  rotated: this.shape === "brand-rotated" && this.theme !== "turva",
159
159
  "duet-icon-not-responsive": !this.responsive,
160
- } }, h("span", { key: '6c79866426237ff75ff36401a9117dca1a68cf19', "aria-hidden": "true", class: { "duet-icon-svg": true, rotated: this.shape === "brand-rotated" && this.theme !== "turva" }, "data-name": this.name, innerHTML: this.svgContent, style: iconStyles }))));
160
+ } }, h("span", { key: '3d93b31d1831fa77b71a5f574a38d838636c7757', "aria-hidden": "true", class: { "duet-icon-svg": true, rotated: this.shape === "brand-rotated" && this.theme !== "turva" }, "data-name": this.name, innerHTML: this.svgContent, style: iconStyles }))));
161
161
  }
162
162
  static get is() { return "duet-icon"; }
163
163
  static get encapsulation() { return "shadow"; }
@@ -45,11 +45,11 @@ export class DuetIndicator {
45
45
  inheritGlobalTheme(this);
46
46
  }
47
47
  render() {
48
- return (h(Host, { key: '0513ee5c8cb2770eb10e753901e8db638c665112' }, h("span", { key: '64ec0e8625b9cf03ed41d6cbe6ae9e286f5cd08a', class: {
48
+ return (h(Host, { key: '6c412435545134515ed6bb4eb8f5e1ec8701dce7' }, h("span", { key: 'f7c0f6b5019c3d9abcd01b8da701ad123910b5b3', class: {
49
49
  "duet-indicator": true,
50
50
  [`duet-indicator-${this.variation}`]: true,
51
51
  "duet-theme-turva": this.theme === "turva",
52
- } }), h("duet-visually-hidden", { key: 'ae27d7871ca7bbde4e8e62d3c389c4f0c5b17090' }, this.getAccessibleLabel())));
52
+ } }), h("duet-visually-hidden", { key: 'c4ceeb86a4ab008a251f1ce9f4f6271c3fab73ef' }, this.getAccessibleLabel())));
53
53
  }
54
54
  static get is() { return "duet-indicator"; }
55
55
  static get encapsulation() { return "shadow"; }
@@ -525,27 +525,35 @@ duet-caption:not(:last-of-type) {
525
525
  border-color: rgb(214, 28, 82) !important;
526
526
  }
527
527
 
528
+ .duet-input-container.has-adornment.has-focus .duet-input-relative,
528
529
  .duet-input-container.has-chips.has-focus .duet-input-relative {
529
530
  outline: 2px solid;
530
531
  outline-color: rgb(0, 119, 179) !important;
531
532
  outline-offset: -1px;
532
533
  }
533
- .duet-theme-turva .duet-input-container.has-chips.has-focus .duet-input-relative, .duet-input-container.has-chips.has-focus .duet-input-relative.duet-theme-turva {
534
+ .duet-theme-turva .duet-input-container.has-adornment.has-focus .duet-input-relative, .duet-input-container.has-adornment.has-focus .duet-input-relative.duet-theme-turva,
535
+ .duet-theme-turva .duet-input-container.has-chips.has-focus .duet-input-relative,
536
+ .duet-input-container.has-chips.has-focus .duet-input-relative.duet-theme-turva {
534
537
  outline-color: rgb(23, 42, 59) !important;
535
538
  }
539
+ .duet-input-container.has-adornment:hover:not(:disabled):not(.has-focus) .duet-input-relative,
536
540
  .duet-input-container.has-chips:hover:not(:disabled):not(.has-focus) .duet-input-relative {
537
541
  outline: 2px solid;
538
542
  outline-color: rgb(127, 150, 165) !important;
539
543
  outline-offset: -1px;
540
544
  }
541
- .duet-theme-turva .duet-input-container.has-chips:hover:not(:disabled):not(.has-focus) .duet-input-relative, .duet-input-container.has-chips:hover:not(:disabled):not(.has-focus) .duet-input-relative.duet-theme-turva {
545
+ .duet-theme-turva .duet-input-container.has-adornment:hover:not(:disabled):not(.has-focus) .duet-input-relative, .duet-input-container.has-adornment:hover:not(:disabled):not(.has-focus) .duet-input-relative.duet-theme-turva,
546
+ .duet-theme-turva .duet-input-container.has-chips:hover:not(:disabled):not(.has-focus) .duet-input-relative,
547
+ .duet-input-container.has-chips:hover:not(:disabled):not(.has-focus) .duet-input-relative.duet-theme-turva {
542
548
  outline-color: rgb(120, 145, 164) !important;
543
549
  }
550
+ .duet-input-container.has-adornment.has-error .duet-input-relative,
544
551
  .duet-input-container.has-chips.has-error .duet-input-relative {
545
552
  outline-offset: -1px;
546
553
  background-color: rgb(255, 240, 243) !important;
547
554
  border-color: rgb(214, 28, 82) !important;
548
555
  }
556
+ .duet-input-container.has-adornment.has-error.has-focus .duet-input-relative,
549
557
  .duet-input-container.has-chips.has-error.has-focus .duet-input-relative {
550
558
  outline-offset: -1px;
551
559
  background-color: rgb(255, 240, 243) !important;
@@ -554,6 +562,7 @@ duet-caption:not(:last-of-type) {
554
562
  outline-color: rgb(214, 28, 82) !important;
555
563
  background: rgb(255, 255, 255) !important;
556
564
  }
565
+ .duet-input-container.has-adornment.has-error:hover:not(:disabled):not(.has-focus) .duet-input-relative,
557
566
  .duet-input-container.has-chips.has-error:hover:not(:disabled):not(.has-focus) .duet-input-relative {
558
567
  outline-offset: -1px;
559
568
  background-color: rgb(255, 240, 243) !important;
@@ -561,6 +570,7 @@ duet-caption:not(:last-of-type) {
561
570
  outline-width: 2px;
562
571
  outline-color: rgb(214, 28, 82) !important;
563
572
  }
573
+ .duet-input-container.has-adornment .duet-input-relative,
564
574
  .duet-input-container.has-chips .duet-input-relative {
565
575
  display: flex;
566
576
  flex-direction: row;
@@ -574,6 +584,7 @@ duet-caption:not(:last-of-type) {
574
584
  border-radius: 4px;
575
585
  transition: border 150ms ease;
576
586
  }
587
+ .duet-input-container.has-adornment .duet-input-relative .duet-input,
577
588
  .duet-input-container.has-chips .duet-input-relative .duet-input {
578
589
  flex-grow: 1;
579
590
  flex-basis: 4rem;
@@ -581,11 +592,35 @@ duet-caption:not(:last-of-type) {
581
592
  margin-left: 12px !important;
582
593
  border-width: 0 !important;
583
594
  }
584
- .duet-input-container.has-chips .duet-input-relative .duet-input:focus, .duet-input-container.has-chips .duet-input-relative .duet-input:hover {
595
+ .duet-input-container.has-adornment .duet-input-relative .duet-input:focus, .duet-input-container.has-adornment .duet-input-relative .duet-input:hover,
596
+ .duet-input-container.has-chips .duet-input-relative .duet-input:focus,
597
+ .duet-input-container.has-chips .duet-input-relative .duet-input:hover {
585
598
  outline: none !important;
586
599
  border-width: 0 !important;
587
600
  }
588
601
 
602
+ .duet-input-container.has-adornment .duet-input-relative .duet-input {
603
+ padding: 12px 14px !important;
604
+ margin: initial !important;
605
+ }
606
+ .duet-input-container.has-adornment .duet-input-relative .input-adornment {
607
+ color: rgb(98, 121, 138);
608
+ }
609
+ .duet-input-container.has-adornment .duet-input-relative .input-adornment.prefix {
610
+ padding-left: 14px;
611
+ }
612
+ .duet-input-container.has-adornment .duet-input-relative .input-adornment.suffix {
613
+ padding-right: 14px;
614
+ }
615
+
616
+ .duet-input-container.has-prefix .duet-input-relative .duet-input {
617
+ padding-left: 8px !important;
618
+ }
619
+
620
+ .duet-input-container.has-suffix .duet-input-relative .duet-input {
621
+ padding-right: 8px !important;
622
+ }
623
+
589
624
  .duet-theme-turva .duet-input-icon {
590
625
  color: rgb(23, 42, 59);
591
626
  }
@@ -27,6 +27,8 @@ export class DuetInput {
27
27
  this.proxyId = createID("DuetInput");
28
28
  this.clearId = createID("DuetInputClear");
29
29
  this.labelId = createID("DuetLabel");
30
+ this.prefixId = createID("DuetInputPrefix");
31
+ this.suffixId = createID("DuetInputSuffix");
30
32
  this.topCaptionId = createID("DuetCaptionTop");
31
33
  this.topCaptionPlaceholderId = createID("DuetCaptionPlaceholderTop");
32
34
  this.chipCountId = createID("DuetInputChipCount");
@@ -173,7 +175,7 @@ export class DuetInput {
173
175
  */
174
176
  this.labelHidden = false;
175
177
  /**
176
- * Enable numeric keyboard for the input.
178
+ * Enable numeric keyboard for the input. Note that on iOS the numeric keyboard does not contain minus.
177
179
  */
178
180
  this.numericKeyboard = false;
179
181
  /**
@@ -182,7 +184,9 @@ export class DuetInput {
182
184
  */
183
185
  this.component = "input";
184
186
  /**
185
- * Enable or disable automatic completion by the browser
187
+ * Set the type of automatic completion by the browser. If possible use the standard tokens like "name", "given-name",
188
+ * "family-name", "postal-code", "street-address" etc. The component adds automatically "tel" and "email". If you must
189
+ * disable autocomplete use "off" (but avoid disabling unless absolutely necessary).
186
190
  */
187
191
  this.autoComplete = "on";
188
192
  /**
@@ -255,6 +259,8 @@ export class DuetInput {
255
259
  /**
256
260
  * Private functions
257
261
  */
262
+ // As comma may be used as decimal separator normalize value to have dot before parsing as number
263
+ this.valueAsNormalizedFloat = () => { var _a; return Number.parseFloat((_a = this.value) === null || _a === void 0 ? void 0 : _a.replace(/,/g, ".")); };
258
264
  this.getAriaDescribedBy = () => {
259
265
  const describedBy = [];
260
266
  if (this.isCaptionVisible && this.topCaptionId) {
@@ -275,6 +281,19 @@ export class DuetInput {
275
281
  }
276
282
  return describedBy.length > 0 ? describedBy.join(" ") : null;
277
283
  };
284
+ this.getAriaLabelledBy = () => {
285
+ const labelledBy = [this.labelId];
286
+ if (!!this.fieldPrefix) {
287
+ labelledBy.push(this.prefixId);
288
+ }
289
+ if (!!this.fieldSuffix) {
290
+ labelledBy.push(this.suffixId);
291
+ }
292
+ if (!!this.accessibleLabelledBy) {
293
+ labelledBy.push(this.accessibleLabelledBy);
294
+ }
295
+ return labelledBy.join(" ");
296
+ };
278
297
  this.handleClearClick = (event) => {
279
298
  const clearing = this.clearInput();
280
299
  this.onClear(event);
@@ -365,7 +384,31 @@ export class DuetInput {
365
384
  * This is a proxy for the enclosed native inputs validity
366
385
  */
367
386
  get validity() {
368
- return this.nativeInput.validity;
387
+ var _a, _b;
388
+ // Copy the value of the native validity state to a proxy object, as native validity is readonly.
389
+ const validity = {
390
+ badInput: false,
391
+ customError: false,
392
+ patternMismatch: false,
393
+ rangeOverflow: false,
394
+ rangeUnderflow: false,
395
+ stepMismatch: false,
396
+ tooLong: false,
397
+ tooShort: false,
398
+ typeMismatch: false,
399
+ valid: true,
400
+ valueMissing: false,
401
+ };
402
+ Object.keys(validity).forEach(key => (validity[key] = this.nativeInput.validity[key]));
403
+ if (typeof this.max !== "undefined" && ((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) && this.max < this.valueAsNormalizedFloat()) {
404
+ validity.rangeOverflow = true;
405
+ validity.valid = false;
406
+ }
407
+ if (typeof this.min !== "undefined" && ((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) && this.min > this.valueAsNormalizedFloat()) {
408
+ validity.rangeUnderflow = true;
409
+ validity.valid = false;
410
+ }
411
+ return validity;
369
412
  }
370
413
  /**
371
414
  * @internal
@@ -380,7 +423,8 @@ export class DuetInput {
380
423
  inheritGlobalTheme(this);
381
424
  this.disallowedPatternChange();
382
425
  this.isCaptionVisible = !!this.caption;
383
- checkNamedSlotElement(this.element, "tooltip", "duet-tooltip", 1, true);
426
+ // Accept also slot element so that other components using duet-input can pass their tooltip slots here.
427
+ checkNamedSlotElement(this.element, "tooltip", "duet-tooltip, slot", 1, true);
384
428
  }
385
429
  componentDidLoad() {
386
430
  if (this.variation === "revealable" && this.nativeInput.form) {
@@ -488,6 +532,16 @@ export class DuetInput {
488
532
  }
489
533
  }
490
534
  }
535
+ getAutocomplete() {
536
+ if (this.type === "password") {
537
+ return "off";
538
+ }
539
+ // If attribute includes "email", e.g. "work email", don't overwrite it
540
+ if (this.type === "email" && this.autoComplete !== "off" && !this.autoComplete.includes("email")) {
541
+ return "email";
542
+ }
543
+ return this.autoComplete;
544
+ }
491
545
  /**
492
546
  * Add a chip to the input. Property "chips" must be true.
493
547
  */
@@ -527,7 +581,7 @@ export class DuetInput {
527
581
  const identifier = this.identifier || this.inputId;
528
582
  const inputProps = {};
529
583
  if (this.numericKeyboard) {
530
- inputProps.inputmode = "numeric";
584
+ inputProps.inputmode = "decimal";
531
585
  }
532
586
  // Set validation regexes
533
587
  if (this.pattern && this.type !== "tel") {
@@ -552,7 +606,7 @@ export class DuetInput {
552
606
  this.type !== "password" &&
553
607
  this.type !== "time" &&
554
608
  this.variation !== "button";
555
- return (h(Host, { key: 'c36aabb598d1ab24aede9cacbbc0f8dfeaf7ff2f', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" }, onKeyUp: e => this.keyHandler(e) }, this.type === "time" && (h("duet-visually-hidden", { key: 'ee9481c94a8beeeb5b22e5f9f3dc92a96111e3e8', "aria-live": "polite", "aria-atomic": "true" }, selectedTime ? `${this.timeAnnouncement[this.language]} ${selectedTime.toLocaleTimeString()}` : "")), h("div", { key: 'a75cdb69696761e21eb42620bc3162f3ffbe062e', class: {
609
+ return (h(Host, { key: '776ea6ee90a20ff356574b64890a7b98d9947e6c', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" }, onKeyUp: e => this.keyHandler(e) }, this.type === "time" && (h("duet-visually-hidden", { key: 'a56addb34f4bcf57a59e060921e3dacab36a98b7', "aria-live": "polite", "aria-atomic": "true" }, selectedTime ? `${this.timeAnnouncement[this.language]} ${selectedTime.toLocaleTimeString()}` : "")), h("div", { key: '04447fa85e1470adbfc2307f7b2fd5758454e0b7', class: {
556
610
  "duet-input-container": true,
557
611
  "duet-theme-turva": this.theme === "turva",
558
612
  [`duet-input-variation-${this.variation}`]: true,
@@ -565,12 +619,15 @@ export class DuetInput {
565
619
  "has-chips": this.chips,
566
620
  "has-clear": this.clear,
567
621
  "has-focus": this.isFocused,
622
+ "has-adornment": !!this.fieldPrefix || !!this.fieldSuffix,
623
+ "has-prefix": !!this.fieldPrefix,
624
+ "has-suffix": !!this.fieldSuffix,
568
625
  disabled: this.disabled,
569
- } }, h("div", { key: '84b4ba43c2fbbdf7b390dba0a7f0dc839626b5ed', class: "duet-input-label-container" }, h(DuetInternalLabel, { key: 'a7134e94f657eab2c9c5156a81269712c83ec270', theme: this.theme === "turva" ? "turva" : "default", margin: this.isCaptionVisible ? "small" : "auto", color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-tooltip", { key: '669a1461aedfebd1c2e66077beda1c298b77458c', class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), h("slot", { key: 'ad5e55d3a36ade247c1508eeffe9de96df514c51', name: "tooltip" })), this.caption && (h("duet-caption", { key: '5c4bfb71d79efe8be226ba521c95c5d8fbec67de', id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { key: '4dfa6f211f3d00f6906d8e18ea9c4fdcc8ec3877', class: {
626
+ } }, h("div", { key: 'f5f3de4654fac36f5ffb7e0302ffccb56263728a', class: "duet-input-label-container" }, h(DuetInternalLabel, { key: '566d4df4f7cfe09b50f4aedaf342cef70e7fc80a', theme: this.theme === "turva" ? "turva" : "default", margin: this.isCaptionVisible ? "small" : "auto", color: this.labelColor, weight: this.labelWeight, id: this.labelId, for: identifier }, this.label), this.tooltip && (h("duet-tooltip", { key: '7560dd36ade42746228061727b2fb2b38dce7ed6', class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), h("slot", { key: '9b8a15f4f79269696a24c9fd989186f95dfc1e62', name: "tooltip" })), this.caption && (h("duet-caption", { key: 'c425ac21ec5942adfe5a4e48ae20080ab661bf4d', id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { key: 'ac98b112529396687ec21a938c55ce1b3d86f091', class: {
570
627
  "duet-input-relative": true,
571
628
  "duet-theme-turva": this.theme === "turva",
572
629
  "has-error": !!this.error,
573
- } }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (h("duet-caption", { key: 'f7811efcc2acfa5b01b1efd6d334a35c35350ca1', id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), this.chips && (h("duet-visually-hidden", { key: 'f4c6f4a8974bfca86248b528b05f84d50c73ba4c', id: this.chipCountId }, ", ", `${this.getAllChips().length} ${getLocaleString(this.chipsSelectedDesriptionLabel)}`, ",")), this.variation === "button-left" && h("slot", { key: 'b270e8b1fe5c958c76b9ba82e7c25aedf35ae710', name: "button-left" }), h("input", Object.assign({ key: 'ee3e9844d6fd27bafb895d0f08a2ce2282237024', ref: input => (this.nativeInput = input), onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, type: this.getInputType(), class: {
630
+ } }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (h("duet-caption", { key: 'db332864c2b97112aa2b9347da3d6c2468f77b0b', id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), this.chips && (h("duet-visually-hidden", { key: 'e92de63c87071f00143ee9db06c94361970b704a', id: this.chipCountId }, ", ", `${this.getAllChips().length} ${getLocaleString(this.chipsSelectedDesriptionLabel)}`, ",")), this.variation === "button-left" && h("slot", { key: '274e2fe6a604c30aa879ac72a33154f1fb3c8fc9', name: "button-left" }), this.fieldPrefix && (h("span", { key: '2bd5154e89d13c7562283684a3087c3c48481fb9', class: "input-adornment prefix", id: this.prefixId }, this.fieldPrefix)), h("input", Object.assign({ key: '0b77d2e90b3acdb1452d73ad2a736e924200009a', ref: input => (this.nativeInput = input), onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, type: this.getInputType(), class: {
574
631
  "duet-input": true,
575
632
  disabled: this.disabled,
576
633
  "is-number": this.component === "number",
@@ -578,17 +635,17 @@ export class DuetInput {
578
635
  "after-chip": this.getAllChips().length > 0,
579
636
  "align-right": this.inputAlign === "right",
580
637
  [`input-padding-${this.inputPadding}`]: true,
581
- }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": this.accessibleLabelledBy ? `${this.labelId} ${this.accessibleLabelledBy}` : this.labelId, "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.type === "password" ? "off" : this.autoComplete, required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), !this.value && hasInputIcon && (h("div", { key: 'f021ac46e0c9738775a03965e2c3497d80c4dced', class: "duet-input-icon" }, h("duet-icon", { key: '56bff364b7c70d530c3dd809b2a8a2f7fe1fff5b', margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && (h("div", { key: '7eb63087db85f1095034e2584cf4d1d4b124c82a', class: {
638
+ }, value: this.value, disabled: this.disabled, "aria-invalid": this.error ? "true" : "false", "aria-labelledby": this.getAriaLabelledBy(), "aria-controls": this.accessibleControls, "aria-autocomplete": this.accessibleAutocomplete, "aria-activedescendant": this.accessibleActiveDescendant, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-expanded": this.accessibleExpanded, "aria-haspopup": this.accessibleHasPopup, "aria-owns": this.accessibleOwns, "aria-describedby": this.getAriaDescribedBy(), placeholder: this.placeholder, spellcheck: "false", minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.getAutocomplete(), required: this.required, role: this.role, name: this.name, id: identifier }, inputProps)), this.fieldSuffix && (h("span", { key: '00f86f44a74b91127a1c11b696b51983d62a7c28', class: "input-adornment suffix", id: this.suffixId }, this.fieldSuffix)), !this.value && hasInputIcon && (h("div", { key: 'f1d531cc26ab9de06b90e38a4b790069fe920d88', class: "duet-input-icon" }, h("duet-icon", { key: 'fb14ea462e583a24e6bbd0337666dfa4ef9c9a1a', margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && (h("div", { key: 'f2e415cb5d8c5eaa0bbb1bb0cad942d8a976e9a5', class: {
582
639
  "duet-input-clear-icon": true,
583
640
  "duet-input-clear-icon-single": !hasInputIcon,
584
641
  "duet-input-clear-icon-double": !!this.icon,
585
642
  "duet-input-clear-icon-button": this.variation === "button",
586
643
  [`input-padding-${this.inputPadding}`]: true,
587
- } }, h("button", { key: '72fb4efe7f5d0ea161c7401acb59f2b20a77adac', onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel[this.language], "aria-keyshortcuts": "Escape" }, h("duet-icon", { key: 'f9df024692c1be597b37cedc74c8203e8fabb908', margin: "none", size: "medium", name: "action-clear-input", color: "currentColor" })))), this.icon && this.variation !== "button" && (h("div", { key: 'bca090dc2f20e1febe6674059e0a3b22c2d79d2f', class: "duet-input-icon" }, h("duet-icon", { key: '9066e27643ad85bc683cd36a5998e7bd0fcad572', margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && h("slot", { key: 'c83a2b95a969c7f1c2f7a3915cdfce56d1c525b8', name: "button" }), this.variation === "revealable" && (h("duet-button", { key: '86fc4aaddb775f76d602b699bdc8c811f41f2561', ref: button => (this.togglePasswordRevealedButton = button), onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.togglePasswordRevealed, icon: this.isPasswordRevealed ? "action-hide" : "action-show", accessibleLabel: this.isPasswordRevealed
644
+ } }, h("button", { key: '7046a5f2c94bf429f4fc46dd4a9d590171975f04', onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel[this.language], "aria-keyshortcuts": "Escape" }, h("duet-icon", { key: 'd33b0603197b14c98b4b8d76773f0c2325d365a9', margin: "none", size: "medium", name: "action-clear-input", color: "currentColor" })))), this.icon && this.variation !== "button" && (h("div", { key: 'f5b6861e2cd8f9affe011fc08700092296ef50c8', class: "duet-input-icon" }, h("duet-icon", { key: 'af0f1a819e505da950eec079950eb2a6c13c5254', margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && h("slot", { key: 'db2a27e9e1683615a207b34f63a2981e0bbfe3e8', name: "button" }), this.variation === "revealable" && (h("duet-button", { key: 'f2c727cd4f07ea799ad033e737f490d14a285ded', ref: button => (this.togglePasswordRevealedButton = button), onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.togglePasswordRevealed, icon: this.isPasswordRevealed ? "action-hide" : "action-show", accessibleLabel: this.isPasswordRevealed
588
645
  ? this.hidePasswordLabel[this.language]
589
- : this.showPasswordLabel[this.language], margin: "none", variation: "input-button-embedded", fixed: true, iconOnly: true })), this.variation === "revealable" && this.isPasswordRevealed !== undefined && (h("duet-visually-hidden", { key: 'dfa0a59d038af09b5115dae28772c108918154ab' }, h("span", { key: '00408d3c2616c8e1aa64b41503ae7760c1fd60af', "aria-live": "polite" }, this.isPasswordRevealed
646
+ : this.showPasswordLabel[this.language], margin: "none", variation: "input-button-embedded", fixed: true, iconOnly: true })), this.variation === "revealable" && this.isPasswordRevealed !== undefined && (h("duet-visually-hidden", { key: 'd240447d7431097c99bd50fa6241a48d87b48ae0' }, h("span", { key: '47d29c787f119d0dae23436a69b192855b7bca63', "aria-live": "polite" }, this.isPasswordRevealed
590
647
  ? this.passwordShownAriaAnnouncement[this.language]
591
- : this.passwordHiddenAriaAnnouncement[this.language]))), h("slot", { key: '3b539164f49b311fcdc82ce75cb75d360e148c4b' })), h("span", { key: '2f2f5abff72831b7257d404dfedecb8bea316762', class: "duet-input-help", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && h("span", { key: '63e8da0c2b2638d8af7f0b87f4e00ab5d5b7aa8c', class: "duet-input-error" }, this.error)))));
648
+ : this.passwordHiddenAriaAnnouncement[this.language]))), h("slot", { key: 'cd872ef0355479149e3b926e98e33ebccc1d0faa' })), h("span", { key: 'bbbbc5e7b7b1ddd8064bdda229ad110686075dd2', class: "duet-input-help", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && h("span", { key: '91876b01063f2de6147210b06daad0e5a3c71b3c', class: "duet-input-error" }, this.error)))));
592
649
  }
593
650
  static get is() { return "duet-input"; }
594
651
  static get encapsulation() { return "shadow"; }
@@ -636,7 +693,7 @@ export class DuetInput {
636
693
  "optional": false,
637
694
  "docs": {
638
695
  "tags": [],
639
- "text": "Indicates what kind of user input completion suggestions are provided."
696
+ "text": "Indicates in what mode user input completion suggestions are provided. Valid values are: \"none\", \"inline\",\n\"list\", \"both\""
640
697
  },
641
698
  "getter": false,
642
699
  "setter": false,
@@ -1274,6 +1331,44 @@ export class DuetInput {
1274
1331
  "reflect": false,
1275
1332
  "defaultValue": "false"
1276
1333
  },
1334
+ "fieldPrefix": {
1335
+ "type": "string",
1336
+ "attribute": "field-prefix",
1337
+ "mutable": false,
1338
+ "complexType": {
1339
+ "original": "string",
1340
+ "resolved": "string",
1341
+ "references": {}
1342
+ },
1343
+ "required": false,
1344
+ "optional": false,
1345
+ "docs": {
1346
+ "tags": [],
1347
+ "text": "Text to show before the start (left) of the input's editable area. Also used in accessible labelling."
1348
+ },
1349
+ "getter": false,
1350
+ "setter": false,
1351
+ "reflect": false
1352
+ },
1353
+ "fieldSuffix": {
1354
+ "type": "string",
1355
+ "attribute": "field-suffix",
1356
+ "mutable": false,
1357
+ "complexType": {
1358
+ "original": "string",
1359
+ "resolved": "string",
1360
+ "references": {}
1361
+ },
1362
+ "required": false,
1363
+ "optional": false,
1364
+ "docs": {
1365
+ "tags": [],
1366
+ "text": "Text to show after the end (right) of the input's editable area. Also used in accessible labelling."
1367
+ },
1368
+ "getter": false,
1369
+ "setter": false,
1370
+ "reflect": false
1371
+ },
1277
1372
  "numericKeyboard": {
1278
1373
  "type": "boolean",
1279
1374
  "attribute": "numeric-keyboard",
@@ -1287,7 +1382,7 @@ export class DuetInput {
1287
1382
  "optional": false,
1288
1383
  "docs": {
1289
1384
  "tags": [],
1290
- "text": "Enable numeric keyboard for the input."
1385
+ "text": "Enable numeric keyboard for the input. Note that on iOS the numeric keyboard does not contain minus."
1291
1386
  },
1292
1387
  "getter": false,
1293
1388
  "setter": false,
@@ -1370,6 +1465,44 @@ export class DuetInput {
1370
1465
  "setter": false,
1371
1466
  "reflect": false
1372
1467
  },
1468
+ "max": {
1469
+ "type": "number",
1470
+ "attribute": "max",
1471
+ "mutable": false,
1472
+ "complexType": {
1473
+ "original": "number",
1474
+ "resolved": "number",
1475
+ "references": {}
1476
+ },
1477
+ "required": false,
1478
+ "optional": false,
1479
+ "docs": {
1480
+ "tags": [],
1481
+ "text": "When max is set and getting validity, the value of the input is interpreted as a number - possible comma as\ndecimal seprator changed to dot and the value then parsed as float - and compared to max and validity set\naccordingly. This simulates the behavior of max attribute of input[type=number]."
1482
+ },
1483
+ "getter": false,
1484
+ "setter": false,
1485
+ "reflect": false
1486
+ },
1487
+ "min": {
1488
+ "type": "number",
1489
+ "attribute": "min",
1490
+ "mutable": false,
1491
+ "complexType": {
1492
+ "original": "number",
1493
+ "resolved": "number",
1494
+ "references": {}
1495
+ },
1496
+ "required": false,
1497
+ "optional": false,
1498
+ "docs": {
1499
+ "tags": [],
1500
+ "text": "When min is set and getting validity, the value of the input is interpreted as a number - possible comma as\ndecimal seprator changed to dot and the value then parsed as float - and compared to min and validity set\naccordingly. This simulates the behavior of min attribute of input[type=number]."
1501
+ },
1502
+ "getter": false,
1503
+ "setter": false,
1504
+ "reflect": false
1505
+ },
1373
1506
  "placeholder": {
1374
1507
  "type": "string",
1375
1508
  "attribute": "placeholder",
@@ -1475,7 +1608,7 @@ export class DuetInput {
1475
1608
  "optional": false,
1476
1609
  "docs": {
1477
1610
  "tags": [],
1478
- "text": "Enable or disable automatic completion by the browser"
1611
+ "text": "Set the type of automatic completion by the browser. If possible use the standard tokens like \"name\", \"given-name\",\n\"family-name\", \"postal-code\", \"street-address\" etc. The component adds automatically \"tel\" and \"email\". If you must\ndisable autocomplete use \"off\" (but avoid disabling unless absolutely necessary)."
1479
1612
  },
1480
1613
  "getter": false,
1481
1614
  "setter": false,
@@ -66,24 +66,24 @@ export class DuetLayout {
66
66
  * Always the last one in the class.
67
67
  */
68
68
  render() {
69
- return (h(Host, { key: '53712da1e22dc258d30906570bf1271624379ed8', class: {
69
+ return (h(Host, { key: '7796cda5c4db65768c100838b80382b318b3ac73', class: {
70
70
  center: this.center,
71
71
  "duet-middle": this.middle,
72
72
  "duet-ie": isInternetExplorer(),
73
- } }, h("div", { key: '80dc2f3b86a02c22c7aebd8802bd332154c4a273', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, this.hasTop && (h("div", { key: '9f3f4c713d5b921ad78480072e3dcea4d4867d04', class: {
73
+ } }, h("div", { key: '1b4f06b0ccaf2a93e30cb57085b3260c9d138d1f', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, this.hasTop && (h("div", { key: '9b64258743ef0f5802e2853b2251788fc3c7f02d', class: {
74
74
  "duet-layout-top": true,
75
75
  "duet-center": this.center,
76
- } }, h("div", { key: '7cd44f76b96b5e2bd6033cc044f08e75a10760ed', class: "duet-layout-top-wrapper" }, h("slot", { key: '7743f1fe659f31925b27a85a970e934506b935e7', name: "top" })))), h("div", { key: '637a68f8376e073f146c63f2c866b6f52722577e', class: {
76
+ } }, h("div", { key: '8de64147ed6cd7c0942f5f477da01c1ee4a8a0ce', class: "duet-layout-top-wrapper" }, h("slot", { key: '5b3dcec144e1e7a7707f52b18b8b1dc1d3cb13e7', name: "top" })))), h("div", { key: '57ef787cdd754a6749f76ce151ed15bb779b110b', class: {
77
77
  "duet-layout": true,
78
78
  "has-sidebar": this.hasSidebar,
79
79
  "duet-center": this.center,
80
80
  [`padding-${this.paddingBreakpoint}`]: !!this.paddingBreakpoint,
81
- } }, h("main", { key: 'f6b2682dfb675be08976b23a485cf1a7ad76de0c', class: "duet-main" }, this.hasPageHeading && h("slot", { key: '9ec618959d54d768b880f95e05df0e5aaf76de75', name: "page-heading" }), h("slot", { key: 'b3c960b48d55fb863854fc34e126b1a143b3d194', name: "main" })), this.hasSidebar && (h("aside", { key: '68671aab139ba365d60284909e489a78bd7438d3', class: "duet-sidebar" }, h("div", { key: '60a53e1fa61ccec8fa2b85f20b475c52e016b963', class: {
81
+ } }, h("main", { key: '11712887cb73595787e00eb4ae51be583e222d69', class: "duet-main" }, this.hasPageHeading && h("slot", { key: '024128c99761e9ce2df803f1a7af98da0bb39d48', name: "page-heading" }), h("slot", { key: '5ec1793d46d607633b527d9497e9c160f1879f4a', name: "main" })), this.hasSidebar && (h("aside", { key: 'c68315f8b323267fabd94fb2f45fa29294c6e17a', class: "duet-sidebar" }, h("div", { key: '5222f4a3bc1b36710f1efc85cd09c31cd676d661', class: {
82
82
  "duet-sidebar-container": true,
83
83
  "has-tabs": this.tabs,
84
84
  sticky: this.sticky,
85
85
  [this.stickyDistance]: this.sticky,
86
- } }, h("slot", { key: 'a6131a1af98bb5cf2c6c808b15cea9e6996143f3', name: "sidebar" }))))))));
86
+ } }, h("slot", { key: '2c51db0affb26210fbbf38b7776d66f64c530f6f', name: "sidebar" }))))))));
87
87
  }
88
88
  static get is() { return "duet-layout"; }
89
89
  static get encapsulation() { return "shadow"; }
@@ -187,10 +187,10 @@ export class DuetLink {
187
187
  const Tag = !this.url && this.variation !== "default" ? "button" : "a";
188
188
  const role = !this.url && this.variation === "default" ? "button" : null;
189
189
  const isButton = Tag === "button";
190
- return (h(Host, { key: '7fc9958dae390b84feaddc854bf6b039d3bd00a4', class: {
190
+ return (h(Host, { key: '63ea212c967fed116f28d316bf7b4dc6f7bed88d', class: {
191
191
  [`duet-link-${this.variation}`]: true,
192
192
  "duet-m-0": this.margin === "none",
193
- } }, h(Tag, { key: '1d0baa8ee391bbfc51eb30936564d9e7d1a7de97', href: this.url, class: {
193
+ } }, h(Tag, { key: 'c799db0446fbca186340c781f23ccecaf58e4336', href: this.url, class: {
194
194
  "duet-link": true,
195
195
  "duet-link-is-external": this.external,
196
196
  "duet-link-is-download": !!this.download,
@@ -101,7 +101,7 @@ export class DuetList {
101
101
  * Always the last one in the class.
102
102
  */
103
103
  render() {
104
- return (h("dl", { key: '82930dea1fe1193f295b5888ed5f06a85693faaa', class: { "duet-list-component": true, "duet-m-0": this.margin === "none" } }, h("slot", { key: '44602efe41782f5dc0221b0fe2dd2ac6dc905ae3' })));
104
+ return (h("dl", { key: '8b5a83409655ee3c79b0d076851d5f35ac038766', class: { "duet-list-component": true, "duet-m-0": this.margin === "none" } }, h("slot", { key: 'f9e3dfbf22a5055c0ee910c4347f2d69b7971d59' })));
105
105
  }
106
106
  static get is() { return "duet-list"; }
107
107
  static get encapsulation() { return "shadow"; }
@@ -34,7 +34,7 @@ export class DuetListItem {
34
34
  * Always the last one in the class.
35
35
  */
36
36
  render() {
37
- return (h(Host, { key: 'e4cd01b6b0c03f3d82beba7c85400711e49f6582', class: {
37
+ return (h(Host, { key: '2fc646c6ec771484ba741b13db4e05af02190613', class: {
38
38
  "duet-theme-turva": this.theme === "turva",
39
39
  "duet-no-stacking": !this.responsive,
40
40
  "duet-list-item-breakpoint-x-small": this.breakpoint === "x-small",
@@ -42,7 +42,7 @@ export class DuetListItem {
42
42
  "duet-list-item-breakpoint-medium": this.breakpoint === "medium",
43
43
  "duet-list-item-breakpoint-large": this.breakpoint === "large",
44
44
  "duet-list-item-breakpoint-x-large": this.breakpoint === "x-large",
45
- } }, h("dt", { key: '9644bd50dfb2d6b45bd136bedcb6968f9a2675ba' }, h("slot", { key: 'db3550984b29dd4dad07eb4ab7d047652e83ac22', name: "label" })), h("dd", { key: '1e01b0449b667d1de8e9ba3ed9593725c5ce8353' }, h("slot", { key: 'c0662c72ff8ba3c2a13041b741b15ee1f9b0f544', name: "value" }))));
45
+ } }, h("dt", { key: 'a6f04cd679b723dec94b73f49a1f01e765cc2c2c' }, h("slot", { key: '3406e6b4499bc4e1ccbb65c8c20861a940058120', name: "label" })), h("dd", { key: '12904de4492dd50e266c323d2d038a514e4ed4f1' }, h("slot", { key: '1b5922436da8b77d4687c2fe55e7f58c5af37647', name: "value" }))));
46
46
  }
47
47
  static get is() { return "duet-list-item"; }
48
48
  static get encapsulation() { return "shadow"; }
@@ -123,7 +123,7 @@ export class DuetLogo {
123
123
  */
124
124
  render() {
125
125
  const TagName = this.href ? "a" : "div";
126
- return (h(Host, { key: '31d7e480f3c9ef37d87d5af511489b235731973c', class: { "duet-m-0": this.margin === "none" } }, h(TagName, { key: 'f280ec89b183ee99be0449f35a824b77aff8a2d0', href: this.href, ref: link => (this.nativeLink = link), "aria-label": this.accessibleLabel, class: {
126
+ return (h(Host, { key: 'e210c4ffcf033bc1f53fb90ae2d1a9c98c8f61f6', class: { "duet-m-0": this.margin === "none" } }, h(TagName, { key: 'cabf21f4898aab94d08a9de35222313124a6645c', href: this.href, ref: link => (this.nativeLink = link), "aria-label": this.accessibleLabel, class: {
127
127
  "duet-logo": true,
128
128
  [this.size]: true,
129
129
  "duet-logo-inverse": this.inverse,
@@ -132,17 +132,17 @@ export class DuetMenuBar {
132
132
  render() {
133
133
  const slideoutAvailable = document.querySelectorAll("duet-slideout").length > 0;
134
134
  const isUsedAsAdditionalHorizontalNav = slideoutAvailable && !this.logo;
135
- return (h(Host, { key: 'da384aec934b8177658bc5b2ba9126dabe8b44cc' }, h("nav", { key: 'eb7dd8d958e964d1b0e5d2cf96a20a4d0c0c70dc', class: {
135
+ return (h(Host, { key: '0ebf784bb990ec8bd12412e38dd2ba2a78fb52b7' }, h("nav", { key: '64c163dbdfb5179dae0026489a795e2834141a8a', class: {
136
136
  "duet-menu-bar": true,
137
137
  "duet-theme-turva": this.theme === "turva",
138
138
  "horizontal-nav": isUsedAsAdditionalHorizontalNav,
139
139
  "duet-menu-bar-slim": !this.centerSlotUsed,
140
140
  hidden: this.hidden && this.hideOnScroll,
141
141
  bottom: this.onBottom,
142
- }, "aria-label": this.accessibleLabel }, h("div", { key: '4a8a38d9fd5457b716bff3252791d35eb8441aec', class: "top" }), h("div", { key: 'dfe385565d075aba16005d29790111cc51b5a464', class: { container: true, "with-info-text": !!this.logoInfoText && !this.centerSlotUsed }, ref: el => (this.container = el), onScroll: () => this.scrollbarCheck() }, this.logo && (h("div", { key: 'd7fa21e1f8b0f3ea5eeb5eff037790a47c57be22' }, h("duet-logo", { key: '081cd1b58c97e71196ff421dbb7b1ed4f2e2278e', class: "medium", size: "medium", margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), h("duet-logo", { key: '41b6ffe971ec6c9ff78c2f79834df3c9dceb3482', class: "large", size: "large", margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), h("duet-logo", { key: '16cc7621a8d50d64d63fd7b8af07f074e30a49d0', class: "only-symbol", onlySymbol: true, margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), this.logoInfoText && !this.centerSlotUsed && (h("div", { key: '2f0bcec90b8c9f508d95fb31d8ad9904ea7bf652', class: {
142
+ }, "aria-label": this.accessibleLabel }, h("div", { key: 'f98ccc695bc530e42a1301dfd641cc370657db84', class: "top" }), h("div", { key: 'd642b8235270592ef2fe2f8a0e09efc1f7c6642a', class: { container: true, "with-info-text": !!this.logoInfoText && !this.centerSlotUsed }, ref: el => (this.container = el), onScroll: () => this.scrollbarCheck() }, this.logo && (h("div", { key: '0af4e7323cad0bd980ed583c1fca8d84d8bb91e5' }, h("duet-logo", { key: 'f6c4faec9956d31df570be2e37dcff785eb716e3', class: "medium", size: "medium", margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), h("duet-logo", { key: 'b32ee7cfe7ffdffe9daadb6a3e134fbd8f1a979a', class: "large", size: "large", margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), h("duet-logo", { key: '2051733dc6d65e369f731cc2060cc7ffd64433a9', class: "only-symbol", onlySymbol: true, margin: "none", theme: this.theme, href: this.logoHref, accessibleLabel: this.logoLinkAccessibleLabel, onClick: this.handleLogoClick, language: this.language }), this.logoInfoText && !this.centerSlotUsed && (h("div", { key: '3e4aabaf4fe328670b3c0aac894219ed8d8948b8', class: {
143
143
  "duet-logo-info-text": true,
144
144
  "duet-theme-turva": this.theme === "turva",
145
- } }, this.logoInfoText)))), h("div", { key: '0630a90a58cfcfdd4255c018db1ea172240b5611', class: "list center", role: "list" }, h("div", { key: '6e9f9d06775216dfa9ec70b2c768d5957ba67f10', class: "more-left", hidden: !this.leftMoreVisible, role: "presentation" }), h("slot", { key: '03f6a07cf3633d2ba2c62b76d40d2f74bba6f366', name: "center" }), h("div", { key: '7baeb903a2656bb33129bac0cf6007fce4604bd1', class: "more-right", hidden: !this.rightMoreVisible, role: "presentation" })), h("div", { key: '8a183192d62d7040c1ab2a8a684d8a7678803436', class: "list right", role: "list" }, h("slot", { key: 'd2f48181bf06824a5901fdc37f7f9eb729460c68', name: "right" }))), h("div", { key: '3b1e931eb638ea04b5a0743d2ab03413ca220a33', class: "bottom" }))));
145
+ } }, this.logoInfoText)))), h("div", { key: '69a656950f585ea5a403c2cbef0fe43a187c3fb9', class: "list center", role: "list" }, h("div", { key: 'c09b81f8d1445a9a6e160a17e8b2ae8385e48c32', class: "more-left", hidden: !this.leftMoreVisible, role: "presentation" }), h("slot", { key: '73b85aa0012107a492b4193248889d19dc4f0284', name: "center" }), h("div", { key: 'd63135139588f5edde15aa4fe06db312f81c2d16', class: "more-right", hidden: !this.rightMoreVisible, role: "presentation" })), h("div", { key: '2e226edcf43265cfe66c6d593b852e22bc0b184c', class: "list right", role: "list" }, h("slot", { key: 'ff09b9aca19634847dec1ae050e29378cffee6eb', name: "right" }))), h("div", { key: '037e499130954d66e9a319da25bbf134fa53acec', class: "bottom" }))));
146
146
  }
147
147
  static get is() { return "duet-menu-bar"; }
148
148
  static get encapsulation() { return "shadow"; }
@@ -49,10 +49,10 @@ export class DuetMenuBarButton {
49
49
  * Always the last one in the class.
50
50
  */
51
51
  render() {
52
- return (h(Host, { key: '0e1e537a15d9a7b7d94a2ce24a71281b4757b1d5', role: "listitem", onfocus: () => this.setFocus() }, h("button", { key: 'c7ab5d711a28d54af476fdf133e8f92bce25f020', ref: button => (this.nativeButton = button), class: {
52
+ return (h(Host, { key: '27fb2c633e88b04b7397830d15c881240d29a91b', role: "listitem", onfocus: () => this.setFocus() }, h("button", { key: '29791cfd8473dc9407238460bcb1e169f183f074', ref: button => (this.nativeButton = button), class: {
53
53
  "duet-menu-bar-button": true,
54
54
  "duet-theme-turva": this.theme === "turva",
55
- }, "aria-controls": this.accessibleControls, "aria-label": this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined }, this.icon && (h("duet-icon", { key: '922a6e2fa015b52aac218ce9e803c75a57465310', class: "menu-bar-button-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: 'd85350f1fb803be4e524803b0bea4acc62f569fb' }))));
55
+ }, "aria-controls": this.accessibleControls, "aria-label": this.accessibleLabel, "aria-expanded": this.accessibleExpanded != null ? this.accessibleExpanded.toString() : undefined, "aria-activedescendant": this.accessibleActiveDescendant, "aria-owns": this.accessibleOwns, "aria-describedby": this.accessibleDescribedBy, "aria-labelledby": this.accessibleLabelledBy, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined }, this.icon && (h("duet-icon", { key: 'e037dac1385bef39b070602ba5bfb278470a49dd', class: "menu-bar-button-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: '95fd0aef38328dece2756ceed18c904c0c447d76' }))));
56
56
  }
57
57
  static get is() { return "duet-menu-bar-button"; }
58
58
  static get encapsulation() { return "shadow"; }
@@ -62,17 +62,17 @@ export class DuetMenuBarDropdown {
62
62
  * Always the last one in the class.
63
63
  */
64
64
  render() {
65
- return (h(Host, { key: '549451747b5d958dcac03314e5571631ddb5681c', role: "listitem" }, h("div", { key: '91c7c1f71d878251370fd14fbe8a5f7e53a4d8bd', class: {
65
+ return (h(Host, { key: 'c46c77a3b37d72d4f026c5027a8bed6dc33621c5', role: "listitem" }, h("div", { key: 'bed24491075bfc2c5dcf225c5262a1af76e7a34f', class: {
66
66
  "duet-menu-bar-dropdown": true,
67
67
  "duet-theme-turva": this.theme === "turva",
68
68
  active: this.open,
69
69
  [`duet-menu-bar-dropdown--slot-${this.getVariant()}`]: true,
70
- } }, h("button", { key: 'a1bc6d43c28b9070c8f351111312cf436b02b3a2', ref: element => (this.button = element), "aria-label": this.accessibleLabel, "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
70
+ } }, h("button", { key: 'bee18f72f97fe86364cdf6afa685602feea7f694', ref: element => (this.button = element), "aria-label": this.accessibleLabel, "aria-haspopup": "menu", "aria-controls": "menu", "aria-expanded": this.open ? "true" : "false", id: "button", type: "button", class: {
71
71
  active: this.open,
72
- }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (h("duet-icon", { key: '612895f551ed8c5045b2a5946b3528948fb34468', class: "menu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), h("div", { key: '92d067edbc9fd30ed9113f20153943cfe99030fa', class: "label" }, h("slot", { key: '2dc4b402f56b0e45f4590a563bdbff368bf9e761', name: "label" }), h("duet-icon", { key: '97c55f40d40e52c267bdc2f0edf127c8868b91d2', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), h("div", { key: '625909f147e2f0d3ac7d74197d787621afd5ad5e', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
72
+ }, onClick: this.onClick, onKeyUp: e => this.handleEscape(e) }, this.icon && (h("duet-icon", { key: '9b5beb13681712fe262c14ba74de6b30ab481dff', class: "menu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), h("div", { key: 'debea3ea41d1b4358dbf774b54558d8921b92006', class: "label" }, h("slot", { key: 'fffcc54cdfb0032577c066e374c3465eafac3206', name: "label" }), h("duet-icon", { key: 'a36c591292ca2c2b445e04f53721f788a4005934', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), h("div", { key: '3794aa5366239e4db4286303ef75f30778e3b911', tabindex: "-1", role: "menu", id: "menu", "aria-labelledby": "button", class: {
73
73
  items: true,
74
74
  hidden: !this.open,
75
- } }, h("slot", { key: '927e1629164029ae374bf2a0828246865e682f21' })))));
75
+ } }, h("slot", { key: '4a0657ee88ab885d6e177b654e0e9231d0027ec1' })))));
76
76
  }
77
77
  static get is() { return "duet-menu-bar-dropdown"; }
78
78
  static get encapsulation() { return "shadow"; }