@duetds/components 10.3.1 → 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 (452) hide show
  1. package/hydrate/index.js +501 -306
  2. package/hydrate/index.mjs +501 -306
  3. package/lib/cjs/{a11y-utils-dXXDBTyF.js → a11y-utils-DaAO4N9d.js} +1 -1
  4. package/lib/cjs/{app-globals-CyPV2FZK.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 +12 -12
  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 +8 -9
  18. package/lib/cjs/duet-choice_2.cjs.entry.js +22 -22
  19. package/lib/cjs/duet-collapsible.cjs.entry.js +3 -3
  20. package/lib/cjs/duet-combobox.cjs.entry.js +26 -10
  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 +11 -10
  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 +33 -7
  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 +15 -8
  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 +79 -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 +11 -11
  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 +21 -11
  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 +10 -11
  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 +10 -10
  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 +7 -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 +14 -21
  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-DQ-I8x2z.js → errorcodes.utils-Dkf_MfrJ.js} +1 -1
  93. package/lib/cjs/{focus-utils-DstNW4_h.js → focus-utils-BuGg0Oha.js} +1 -1
  94. package/lib/cjs/{index-B_QTwXEx.js → index-ZxE6MB5V.js} +5 -5
  95. package/lib/cjs/{label-yAj5CKm3.js → label-CpPOBfjS.js} +1 -1
  96. package/lib/cjs/{language-utils-DjtvVntE.js → language-utils-C7Z0KYg-.js} +1 -1
  97. package/lib/cjs/loader.cjs.js +3 -3
  98. package/lib/cjs/{slot-utils-YUU0XWn9.js → slot-utils-BXdHT3A1.js} +2 -2
  99. package/lib/cjs/{themeable-component-h3OzJgCb.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 +5 -6
  107. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  108. package/lib/collection/components/duet-choice/duet-choice.js +12 -39
  109. package/lib/collection/components/duet-choice-group/duet-choice-group.js +6 -8
  110. package/lib/collection/components/duet-combobox/duet-combobox.js +22 -6
  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.css +0 -1
  113. package/lib/collection/components/duet-date-picker/duet-date-picker.js +5 -2
  114. package/lib/collection/components/duet-divider/duet-divider.js +1 -1
  115. package/lib/collection/components/duet-editable-table/duet-editable-table.js +2 -2
  116. package/lib/collection/components/duet-empty-state/duet-empty-state.css +55 -2
  117. package/lib/collection/components/duet-empty-state/duet-empty-state.js +124 -6
  118. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  119. package/lib/collection/components/duet-file-chooser/duet-file-chooser.js +1 -1
  120. package/lib/collection/components/duet-footer/duet-footer.js +4 -4
  121. package/lib/collection/components/duet-grid/duet-grid.css +23 -0
  122. package/lib/collection/components/duet-grid/duet-grid.js +29 -2
  123. package/lib/collection/components/duet-grid-item/duet-grid-item.css +5 -0
  124. package/lib/collection/components/duet-grid-item/duet-grid-item.js +2 -2
  125. package/lib/collection/components/duet-heading/duet-heading.css +62 -0
  126. package/lib/collection/components/duet-heading/duet-heading.js +40 -2
  127. package/lib/collection/components/duet-hero/duet-hero.js +5 -5
  128. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  129. package/lib/collection/components/duet-indicator/duet-indicator.js +2 -2
  130. package/lib/collection/components/duet-input/duet-input.css +49 -5
  131. package/lib/collection/components/duet-input/duet-input.js +152 -15
  132. package/lib/collection/components/duet-layout/duet-layout.js +5 -5
  133. package/lib/collection/components/duet-link/duet-link.js +2 -2
  134. package/lib/collection/components/duet-list/duet-list.js +1 -1
  135. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  136. package/lib/collection/components/duet-logo/duet-logo.js +1 -1
  137. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +3 -3
  138. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  139. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  140. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  141. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  142. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  143. package/lib/collection/components/duet-modal/duet-modal.js +7 -7
  144. package/lib/collection/components/duet-multiselect/duet-multiselect.css +11 -2
  145. package/lib/collection/components/duet-multiselect/duet-multiselect.js +5 -5
  146. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  147. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  148. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +3 -3
  149. package/lib/collection/components/duet-number-input/duet-number-input.js +10 -9
  150. package/lib/collection/components/duet-overlay/duet-overlay.js +1 -1
  151. package/lib/collection/components/duet-page-heading/duet-page-heading.css +20 -1
  152. package/lib/collection/components/duet-page-heading/duet-page-heading.js +58 -2
  153. package/lib/collection/components/duet-pagination/duet-pagination.js +12 -13
  154. package/lib/collection/components/duet-panel/duet-panel.js +2 -2
  155. package/lib/collection/components/duet-paragraph/duet-paragraph.js +2 -2
  156. package/lib/collection/components/duet-phone-input/duet-phone-input.js +13 -1
  157. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +13 -3
  158. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  159. package/lib/collection/components/duet-promo-card/duet-promo-card.js +2 -2
  160. package/lib/collection/components/duet-radio/duet-radio.js +6 -7
  161. package/lib/collection/components/duet-radio-group/duet-radio-group.js +1 -1
  162. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  163. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -2
  164. package/lib/collection/components/duet-scrollable/duet-scrollable.js +5 -5
  165. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  166. package/lib/collection/components/duet-select/duet-select.css +11 -2
  167. package/lib/collection/components/duet-select/duet-select.js +5 -5
  168. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  169. package/lib/collection/components/duet-share-chart/duet-share-chart.js +2 -2
  170. package/lib/collection/components/duet-share-chart-item/duet-share-chart-item.js +1 -1
  171. package/lib/collection/components/duet-show-more/duet-show-more.js +2 -2
  172. package/lib/collection/components/duet-slideout/duet-slideout.js +4 -4
  173. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  174. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  175. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  176. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  177. package/lib/collection/components/duet-spacer/duet-spacer.js +1 -1
  178. package/lib/collection/components/duet-spinner/duet-spinner.js +1 -1
  179. package/lib/collection/components/duet-status-icon/duet-status-icon.css +39 -0
  180. package/lib/collection/components/duet-status-icon/duet-status-icon.js +13 -2
  181. package/lib/collection/components/duet-step/duet-step.js +2 -2
  182. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  183. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  184. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  185. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  186. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  187. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  188. package/lib/collection/components/duet-tab/duet-tab.js +2 -2
  189. package/lib/collection/components/duet-tab-group/duet-tab-group.js +4 -4
  190. package/lib/collection/components/duet-table/duet-table.js +2 -2
  191. package/lib/collection/components/duet-textarea/duet-textarea.css +11 -2
  192. package/lib/collection/components/duet-textarea/duet-textarea.js +8 -15
  193. package/lib/collection/components/duet-toggle/duet-toggle.js +3 -3
  194. package/lib/collection/components/duet-toolbar/duet-toolbar.js +2 -2
  195. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  196. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  197. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +3 -3
  198. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  199. package/lib/collection/components/duet-tooltip/duet-tooltip-button.css +18 -4
  200. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +25 -3
  201. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.css +1 -1
  202. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +3 -3
  203. package/lib/collection/components/duet-tooltip/duet-tooltip.js +47 -4
  204. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  205. package/lib/collection/components/duet-upload/duet-upload.js +2 -2
  206. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  207. package/lib/collection/components/duet-upload-item/duet-upload-item.js +2 -2
  208. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  209. package/lib/collection/utils/math.utils.js +1 -0
  210. package/lib/collection/utils/slot-utils.js +1 -1
  211. package/lib/duet/duet.esm.js +1 -1
  212. package/lib/duet/{p-c8e520b6.entry.js → p-02d8e844.entry.js} +1 -1
  213. package/lib/duet/p-06297bd8.entry.js +4 -0
  214. package/lib/duet/p-0c04f9f5.entry.js +4 -0
  215. package/lib/duet/p-110c7572.entry.js +4 -0
  216. package/lib/duet/p-18a8ea12.entry.js +4 -0
  217. package/lib/duet/{p-d8bc628c.entry.js → p-19863cdf.entry.js} +1 -1
  218. package/lib/duet/p-1bca9931.entry.js +4 -0
  219. package/lib/duet/{p-0cc2921b.entry.js → p-1da7703d.entry.js} +1 -1
  220. package/lib/duet/{p-690beb31.entry.js → p-20a8ef81.entry.js} +1 -1
  221. package/lib/duet/p-268b3066.entry.js +4 -0
  222. package/lib/duet/{p-2e126e15.entry.js → p-2dd7d75e.entry.js} +1 -1
  223. package/lib/duet/{p-5fb1092c.entry.js → p-2f8a47e2.entry.js} +1 -1
  224. package/lib/duet/{p-608ebd47.entry.js → p-30108edc.entry.js} +1 -1
  225. package/lib/duet/{p-3a45c3a4.entry.js → p-317a1fc0.entry.js} +1 -1
  226. package/lib/duet/{p-ae778cb1.entry.js → p-317e81f3.entry.js} +1 -1
  227. package/lib/duet/p-3277233e.entry.js +4 -0
  228. package/lib/duet/{p-efa1cd0b.entry.js → p-3690576a.entry.js} +1 -1
  229. package/lib/duet/{p-d7506eaa.entry.js → p-38973524.entry.js} +1 -1
  230. package/lib/duet/{p-3d00efb7.entry.js → p-3b2fba0f.entry.js} +1 -1
  231. package/lib/duet/{p-4b8293b3.entry.js → p-3f35fce3.entry.js} +1 -1
  232. package/lib/duet/p-3f3c6e64.entry.js +4 -0
  233. package/lib/duet/{p-06f17fe7.entry.js → p-3f7afd87.entry.js} +1 -1
  234. package/lib/duet/p-407f7f03.entry.js +4 -0
  235. package/lib/duet/p-40fa7371.entry.js +4 -0
  236. package/lib/duet/p-42ec7305.entry.js +4 -0
  237. package/lib/duet/p-43e076b5.entry.js +4 -0
  238. package/lib/duet/p-443af533.entry.js +4 -0
  239. package/lib/duet/{p-2d963ab0.entry.js → p-461d4089.entry.js} +1 -1
  240. package/lib/duet/p-4af6a8ed.entry.js +4 -0
  241. package/lib/duet/{p-ecf69f6d.entry.js → p-4b7f1244.entry.js} +1 -1
  242. package/lib/duet/{p-18eada94.entry.js → p-516397ba.entry.js} +1 -1
  243. package/lib/duet/p-5284c707.entry.js +4 -0
  244. package/lib/duet/{p-1e168d4b.entry.js → p-52beb436.entry.js} +1 -1
  245. package/lib/duet/p-5c9f443c.entry.js +4 -0
  246. package/lib/duet/{p-968546f6.entry.js → p-5f5f72d4.entry.js} +1 -1
  247. package/lib/duet/p-5lFzA17H.js +4 -0
  248. package/lib/duet/{p-a6bec2da.entry.js → p-61ec0e1c.entry.js} +1 -1
  249. package/lib/duet/{p-07b9b6c3.entry.js → p-6b469225.entry.js} +1 -1
  250. package/lib/duet/{p-10a326fa.entry.js → p-6ef683d5.entry.js} +1 -1
  251. package/lib/duet/{p-de4b0518.entry.js → p-70612314.entry.js} +1 -1
  252. package/lib/duet/{p-6cffc5b7.entry.js → p-70961edb.entry.js} +1 -1
  253. package/lib/duet/p-7294c37d.entry.js +4 -0
  254. package/lib/duet/{p-7ce31e10.entry.js → p-72b504ef.entry.js} +1 -1
  255. package/lib/duet/p-734249e0.entry.js +4 -0
  256. package/lib/duet/{p-4856f07c.entry.js → p-7353ee4c.entry.js} +1 -1
  257. package/lib/duet/p-74aac967.entry.js +4 -0
  258. package/lib/duet/{p-ed750cdf.entry.js → p-7c08fd87.entry.js} +1 -1
  259. package/lib/duet/{p-44a97d21.entry.js → p-7eea47d5.entry.js} +1 -1
  260. package/lib/duet/{p-86166f8d.entry.js → p-7fd39204.entry.js} +1 -1
  261. package/lib/duet/{p-898d5701.entry.js → p-8012c7bc.entry.js} +1 -1
  262. package/lib/duet/{p-162a0691.entry.js → p-829db926.entry.js} +1 -1
  263. package/lib/duet/p-83238bf3.entry.js +4 -0
  264. package/lib/duet/{p-25b4886a.entry.js → p-833802f9.entry.js} +1 -1
  265. package/lib/duet/{p-2ac11077.entry.js → p-86ffd3cb.entry.js} +1 -1
  266. package/lib/duet/{p-8a28f86e.entry.js → p-871620d3.entry.js} +1 -1
  267. package/lib/duet/{p-d2e74e89.entry.js → p-8ace1eb4.entry.js} +1 -1
  268. package/lib/duet/p-8b0dfbd7.entry.js +4 -0
  269. package/lib/duet/p-93ff8fe4.entry.js +4 -0
  270. package/lib/duet/{p-a8229728.entry.js → p-9ae7aaef.entry.js} +1 -1
  271. package/lib/duet/{p-f71d04ce.entry.js → p-9c9811ba.entry.js} +1 -1
  272. package/lib/duet/{p-f15ab3b8.entry.js → p-9e1a59d1.entry.js} +1 -1
  273. package/lib/duet/{p-DrqQiRTn.js → p-B2cboDWM.js} +1 -1
  274. package/lib/duet/{p-CW11pVgw.js → p-B8-N_qjs.js} +1 -1
  275. package/lib/duet/p-BzYmwX5_.js +4 -0
  276. package/lib/duet/{p-BUWuSkQW.js → p-C5Yfx2kd.js} +1 -1
  277. package/lib/duet/{p-DFAnksuG.js → p-CFqvB5PA.js} +1 -1
  278. package/lib/duet/p-Cg4m_WHe.js +4 -0
  279. package/lib/duet/{p-B6Z_1gqI.js → p-R3pTP2Oy.js} +1 -1
  280. package/lib/duet/p-a068c086.entry.js +4 -0
  281. package/lib/duet/p-a483117e.entry.js +4 -0
  282. package/lib/duet/p-a5177d32.entry.js +4 -0
  283. package/lib/duet/{p-65350441.entry.js → p-a8876b3d.entry.js} +1 -1
  284. package/lib/duet/{p-5c9530f1.entry.js → p-a9104184.entry.js} +1 -1
  285. package/lib/duet/{p-b4c18ee6.entry.js → p-b1326cbb.entry.js} +1 -1
  286. package/lib/duet/{p-17413943.entry.js → p-b747f6e9.entry.js} +1 -1
  287. package/lib/duet/{p-12b2d402.entry.js → p-bdbf0fae.entry.js} +1 -1
  288. package/lib/duet/{p-b6dc4395.entry.js → p-c1afac0d.entry.js} +1 -1
  289. package/lib/duet/p-c2026c6b.entry.js +4 -0
  290. package/lib/duet/{p-301b8664.entry.js → p-c216e746.entry.js} +1 -1
  291. package/lib/duet/{p-bfc75bb9.entry.js → p-c54be349.entry.js} +1 -1
  292. package/lib/duet/{p-fca9c5c4.entry.js → p-cb6c4158.entry.js} +1 -1
  293. package/lib/duet/{p-278ef4d8.entry.js → p-cbcee3e2.entry.js} +1 -1
  294. package/lib/duet/{p-0ccecf5b.entry.js → p-d3b5c997.entry.js} +1 -1
  295. package/lib/duet/{p-ec689a7c.entry.js → p-d3baa815.entry.js} +1 -1
  296. package/lib/duet/{p-f55f8bd9.entry.js → p-d5f90dbc.entry.js} +1 -1
  297. package/lib/duet/{p-b9a54319.entry.js → p-d6f0afa5.entry.js} +1 -1
  298. package/lib/duet/{p-d83f38c7.entry.js → p-d779fe42.entry.js} +1 -1
  299. package/lib/duet/{p-806c4ab8.entry.js → p-dedf6a32.entry.js} +1 -1
  300. package/lib/duet/{p-5fb783eb.entry.js → p-e08dce92.entry.js} +1 -1
  301. package/lib/duet/{p-fe00331c.entry.js → p-e7f2359a.entry.js} +1 -1
  302. package/lib/duet/{p-419b96b6.entry.js → p-efa4eecc.entry.js} +1 -1
  303. package/lib/duet/p-f040706c.entry.js +4 -0
  304. package/lib/duet/{p-17c063a3.entry.js → p-fa13ffe9.entry.js} +1 -1
  305. package/lib/duet/{p-93abd97a.entry.js → p-fe829b53.entry.js} +1 -1
  306. package/lib/duet/p-s8EL6NG5.js +4 -0
  307. package/lib/esm/{a11y-utils-D66Lzlz5.js → a11y-utils-ChN5Nhxh.js} +1 -1
  308. package/lib/esm/{app-globals-G9KPoeGD.js → app-globals-4kCk2rkO.js} +1 -1
  309. package/lib/esm/duet-action-button.entry.js +3 -3
  310. package/lib/esm/duet-alert.entry.js +4 -4
  311. package/lib/esm/duet-badge.entry.js +29 -6
  312. package/lib/esm/duet-banner.entry.js +3 -3
  313. package/lib/esm/duet-breadcrumb.entry.js +6 -6
  314. package/lib/esm/duet-breadcrumbs.entry.js +5 -5
  315. package/lib/esm/duet-button_2.entry.js +5 -5
  316. package/lib/esm/duet-callout.entry.js +5 -5
  317. package/lib/esm/duet-caption_4.entry.js +12 -12
  318. package/lib/esm/duet-card.entry.js +3 -3
  319. package/lib/esm/duet-checkbox.entry.js +3 -3
  320. package/lib/esm/duet-checkmark.entry.js +4 -4
  321. package/lib/esm/duet-chip.entry.js +8 -9
  322. package/lib/esm/duet-choice_2.entry.js +22 -22
  323. package/lib/esm/duet-collapsible.entry.js +3 -3
  324. package/lib/esm/duet-combobox.entry.js +26 -10
  325. package/lib/esm/duet-contact-card.entry.js +5 -5
  326. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  327. package/lib/esm/duet-date-picker.entry.js +11 -10
  328. package/lib/esm/duet-divider_2.entry.js +4 -4
  329. package/lib/esm/duet-editable-table_3.entry.js +10 -10
  330. package/lib/esm/duet-empty-state.entry.js +33 -7
  331. package/lib/esm/duet-fieldset.entry.js +6 -6
  332. package/lib/esm/duet-file-chooser.entry.js +3 -3
  333. package/lib/esm/duet-footer.entry.js +8 -8
  334. package/lib/esm/duet-grid_2.entry.js +15 -8
  335. package/lib/esm/duet-header_2.entry.js +4 -4
  336. package/lib/esm/duet-hero.entry.js +9 -9
  337. package/lib/esm/duet-icon.entry.js +5 -5
  338. package/lib/esm/duet-indicator.entry.js +5 -5
  339. package/lib/esm/duet-input_2.entry.js +79 -18
  340. package/lib/esm/duet-layout.entry.js +7 -7
  341. package/lib/esm/duet-list_2.entry.js +5 -5
  342. package/lib/esm/duet-menu-bar-button.entry.js +4 -4
  343. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +4 -4
  344. package/lib/esm/duet-menu-bar-dropdown.entry.js +6 -6
  345. package/lib/esm/duet-menu-bar-item.entry.js +7 -7
  346. package/lib/esm/duet-menu-bar-link.entry.js +4 -4
  347. package/lib/esm/duet-menu-bar.entry.js +6 -6
  348. package/lib/esm/duet-modal.entry.js +12 -12
  349. package/lib/esm/duet-multiselect.entry.js +11 -11
  350. package/lib/esm/duet-nav.entry.js +3 -3
  351. package/lib/esm/duet-notification_2.entry.js +9 -9
  352. package/lib/esm/duet-number-input.entry.js +13 -11
  353. package/lib/esm/duet-overlay.entry.js +3 -3
  354. package/lib/esm/duet-page-heading.entry.js +20 -5
  355. package/lib/esm/duet-pagination_2.entry.js +17 -18
  356. package/lib/esm/duet-panel.entry.js +4 -4
  357. package/lib/esm/duet-phone-input.entry.js +17 -5
  358. package/lib/esm/duet-popup-menu_2.entry.js +21 -11
  359. package/lib/esm/duet-progress.entry.js +3 -3
  360. package/lib/esm/duet-promo-card.entry.js +5 -5
  361. package/lib/esm/duet-radio_2.entry.js +10 -11
  362. package/lib/esm/duet-range-slider.entry.js +6 -6
  363. package/lib/esm/duet-scrollable_3.entry.js +15 -15
  364. package/lib/esm/duet-section-layout.entry.js +4 -4
  365. package/lib/esm/duet-select.entry.js +10 -10
  366. package/lib/esm/duet-shaped-image.entry.js +4 -4
  367. package/lib/esm/duet-share-chart-item.entry.js +2 -2
  368. package/lib/esm/duet-share-chart.entry.js +6 -6
  369. package/lib/esm/duet-show-more.entry.js +5 -5
  370. package/lib/esm/duet-slideout-lang.entry.js +4 -4
  371. package/lib/esm/duet-slideout-link.entry.js +7 -7
  372. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -6
  373. package/lib/esm/duet-slideout-panel.entry.js +11 -11
  374. package/lib/esm/duet-slideout.entry.js +10 -10
  375. package/lib/esm/duet-status-icon.entry.js +7 -3
  376. package/lib/esm/duet-step_2.entry.js +6 -6
  377. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +4 -4
  378. package/lib/esm/duet-submenu-bar-dropdown.entry.js +6 -6
  379. package/lib/esm/duet-submenu-bar-item.entry.js +6 -6
  380. package/lib/esm/duet-submenu-bar-link.entry.js +3 -3
  381. package/lib/esm/duet-submenu-bar.entry.js +7 -7
  382. package/lib/esm/duet-textarea.entry.js +14 -21
  383. package/lib/esm/duet-toggle.entry.js +8 -8
  384. package/lib/esm/duet-toolbar-dropdown-link.entry.js +4 -4
  385. package/lib/esm/duet-toolbar-dropdown.entry.js +6 -6
  386. package/lib/esm/duet-toolbar-item.entry.js +8 -8
  387. package/lib/esm/duet-toolbar-link.entry.js +4 -4
  388. package/lib/esm/duet-toolbar.entry.js +4 -4
  389. package/lib/esm/duet-tooltip-button_2.entry.js +13 -11
  390. package/lib/esm/duet-tooltip.entry.js +25 -8
  391. package/lib/esm/duet-tray.entry.js +5 -5
  392. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  393. package/lib/esm/duet-upload-item.entry.js +6 -6
  394. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  395. package/lib/esm/duet.js +4 -4
  396. package/lib/esm/{errorcodes.utils-C6zptXiM.js → errorcodes.utils-DuFCu_27.js} +1 -1
  397. package/lib/esm/{focus-utils-YZ2ticmM.js → focus-utils-CFswdkeD.js} +1 -1
  398. package/lib/esm/{index-DrqQiRTn.js → index-B2cboDWM.js} +5 -5
  399. package/lib/esm/{label-CnTwCD-3.js → label-CJxIWUOT.js} +1 -1
  400. package/lib/esm/{language-utils-BEG0cFmw.js → language-utils-C4M4ASkT.js} +1 -1
  401. package/lib/esm/loader.js +4 -4
  402. package/lib/esm/{slot-utils-Dzrezpl3.js → slot-utils--sNK1DNn.js} +2 -2
  403. package/lib/esm/{themeable-component-BLql61nC.js → themeable-component-BBi3552X.js} +1 -1
  404. package/lib/types/common-types.d.ts +11 -28
  405. package/lib/types/components/duet-badge/duet-badge.d.ts +14 -0
  406. package/lib/types/components/duet-chip/duet-chip.d.ts +1 -1
  407. package/lib/types/components/duet-combobox/duet-combobox.d.ts +1 -0
  408. package/lib/types/components/duet-empty-state/duet-empty-state.d.ts +24 -4
  409. package/lib/types/components/duet-grid/duet-grid.d.ts +5 -0
  410. package/lib/types/components/duet-heading/duet-heading.d.ts +10 -0
  411. package/lib/types/components/duet-input/duet-input.d.ts +31 -3
  412. package/lib/types/components/duet-number-input/duet-number-input.d.ts +2 -1
  413. package/lib/types/components/duet-page-heading/duet-page-heading.d.ts +10 -0
  414. package/lib/types/components/duet-phone-input/duet-phone-input.d.ts +2 -0
  415. package/lib/types/components/duet-radio/duet-radio.d.ts +0 -1
  416. package/lib/types/components/duet-textarea/duet-textarea.d.ts +0 -5
  417. package/lib/types/components/duet-tooltip/duet-tooltip-button.d.ts +1 -0
  418. package/lib/types/components/duet-tooltip/duet-tooltip.d.ts +6 -0
  419. package/lib/types/components.d.ts +151 -14
  420. package/lib/types/utils/math.utils.d.ts +1 -0
  421. package/package.json +5 -5
  422. package/lib/duet/p-0a80de40.entry.js +0 -4
  423. package/lib/duet/p-162993d2.entry.js +0 -4
  424. package/lib/duet/p-234f4365.entry.js +0 -4
  425. package/lib/duet/p-245c0535.entry.js +0 -4
  426. package/lib/duet/p-29599dc5.entry.js +0 -4
  427. package/lib/duet/p-3d0a716c.entry.js +0 -4
  428. package/lib/duet/p-3eba33cd.entry.js +0 -4
  429. package/lib/duet/p-550bfab9.entry.js +0 -4
  430. package/lib/duet/p-5c60eca3.entry.js +0 -4
  431. package/lib/duet/p-67b3a01a.entry.js +0 -4
  432. package/lib/duet/p-6e1b9cc8.entry.js +0 -4
  433. package/lib/duet/p-9172ba70.entry.js +0 -4
  434. package/lib/duet/p-BQVGvl4H.js +0 -4
  435. package/lib/duet/p-CLZq8YfV.js +0 -4
  436. package/lib/duet/p-D2JvSVnG.js +0 -4
  437. package/lib/duet/p-ELbbzMVZ.js +0 -4
  438. package/lib/duet/p-a3ad5622.entry.js +0 -4
  439. package/lib/duet/p-a73b7110.entry.js +0 -4
  440. package/lib/duet/p-b1d91a91.entry.js +0 -4
  441. package/lib/duet/p-b9be36c8.entry.js +0 -4
  442. package/lib/duet/p-bdae48d3.entry.js +0 -4
  443. package/lib/duet/p-bdf6a296.entry.js +0 -4
  444. package/lib/duet/p-c8d10c67.entry.js +0 -4
  445. package/lib/duet/p-ce4d9add.entry.js +0 -4
  446. package/lib/duet/p-da275568.entry.js +0 -4
  447. package/lib/duet/p-dc5682d8.entry.js +0 -4
  448. package/lib/duet/p-e050ed5c.entry.js +0 -4
  449. package/lib/duet/p-e9c2eb66.entry.js +0 -4
  450. package/lib/duet/p-ec5f40a5.entry.js +0 -4
  451. package/lib/duet/p-f68a4a23.entry.js +0 -4
  452. package/lib/duet/p-f8e26f21.entry.js +0 -4
@@ -45,11 +45,11 @@ export class DuetIndicator {
45
45
  inheritGlobalTheme(this);
46
46
  }
47
47
  render() {
48
- return (h(Host, { key: 'dec9ae44791d7c11742399064ae9f5abcb25a0da' }, h("span", { key: '869ad4db73c79b071b6b1cc4667926874f836351', 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: '95d24f44ddab59732430691a257eebe5de008870' }, 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"; }
@@ -339,11 +339,11 @@ duet-caption:not(:last-of-type) {
339
339
  color: rgb(181, 198, 208);
340
340
  }
341
341
  .duet-input[disabled] {
342
- color: rgb(8, 42, 77) !important;
342
+ color: rgb(98, 121, 138) !important;
343
343
  cursor: not-allowed !important;
344
344
  outline: none !important;
345
345
  background: rgb(228, 236, 239) !important;
346
- border-color: rgb(228, 236, 239) !important;
346
+ border-color: rgb(181, 198, 208) !important;
347
347
  opacity: 1 !important;
348
348
  -webkit-text-fill-color: rgb(8, 42, 77) !important;
349
349
  }
@@ -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
  }
@@ -602,6 +637,15 @@ duet-caption:not(:last-of-type) {
602
637
  font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
603
638
  color: rgb(23, 42, 59) !important;
604
639
  }
640
+ .duet-theme-turva .duet-input[disabled] {
641
+ color: rgb(95, 122, 143) !important;
642
+ cursor: not-allowed !important;
643
+ outline: none !important;
644
+ background: rgb(228, 233, 237) !important;
645
+ border-color: rgb(178, 194, 205) !important;
646
+ opacity: 1 !important;
647
+ -webkit-text-fill-color: rgb(23, 42, 59) !important;
648
+ }
605
649
  .duet-theme-turva .duet-input::placeholder {
606
650
  color: rgb(120, 145, 164);
607
651
  }
@@ -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
  /**
@@ -204,6 +208,10 @@ export class DuetInput {
204
208
  * Component event handling.
205
209
  */
206
210
  this.onInput = (ev) => {
211
+ if (this.maxlength && this.nativeInput.value.length > this.maxlength) {
212
+ // Android doesn't honor maxlength
213
+ this.nativeInput.value = this.nativeInput.value.slice(0, this.maxlength);
214
+ }
207
215
  if (this.disallowPatternRegex) {
208
216
  cleanValue(this.nativeInput, this.disallowPatternRegex);
209
217
  }
@@ -251,6 +259,8 @@ export class DuetInput {
251
259
  /**
252
260
  * Private functions
253
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, ".")); };
254
264
  this.getAriaDescribedBy = () => {
255
265
  const describedBy = [];
256
266
  if (this.isCaptionVisible && this.topCaptionId) {
@@ -271,6 +281,19 @@ export class DuetInput {
271
281
  }
272
282
  return describedBy.length > 0 ? describedBy.join(" ") : null;
273
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
+ };
274
297
  this.handleClearClick = (event) => {
275
298
  const clearing = this.clearInput();
276
299
  this.onClear(event);
@@ -361,7 +384,31 @@ export class DuetInput {
361
384
  * This is a proxy for the enclosed native inputs validity
362
385
  */
363
386
  get validity() {
364
- 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;
365
412
  }
366
413
  /**
367
414
  * @internal
@@ -376,7 +423,8 @@ export class DuetInput {
376
423
  inheritGlobalTheme(this);
377
424
  this.disallowedPatternChange();
378
425
  this.isCaptionVisible = !!this.caption;
379
- 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);
380
428
  }
381
429
  componentDidLoad() {
382
430
  if (this.variation === "revealable" && this.nativeInput.form) {
@@ -484,6 +532,16 @@ export class DuetInput {
484
532
  }
485
533
  }
486
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
+ }
487
545
  /**
488
546
  * Add a chip to the input. Property "chips" must be true.
489
547
  */
@@ -523,7 +581,7 @@ export class DuetInput {
523
581
  const identifier = this.identifier || this.inputId;
524
582
  const inputProps = {};
525
583
  if (this.numericKeyboard) {
526
- inputProps.inputmode = "numeric";
584
+ inputProps.inputmode = "decimal";
527
585
  }
528
586
  // Set validation regexes
529
587
  if (this.pattern && this.type !== "tel") {
@@ -548,7 +606,7 @@ export class DuetInput {
548
606
  this.type !== "password" &&
549
607
  this.type !== "time" &&
550
608
  this.variation !== "button";
551
- return (h(Host, { key: '1eb6191aaab4c5bd1077c68882b28d04fe1affef', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" }, onKeyUp: e => this.keyHandler(e) }, this.type === "time" && (h("duet-visually-hidden", { key: '606e2f2ae2ab2b48318b7fd8f4d2192e9c1d9ea8', "aria-live": "polite", "aria-atomic": "true" }, selectedTime ? `${this.timeAnnouncement[this.language]} ${selectedTime.toLocaleTimeString()}` : "")), h("div", { key: '80a74a720c101407751f1004d0ded71d9f5b0cca', 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: {
552
610
  "duet-input-container": true,
553
611
  "duet-theme-turva": this.theme === "turva",
554
612
  [`duet-input-variation-${this.variation}`]: true,
@@ -561,12 +619,15 @@ export class DuetInput {
561
619
  "has-chips": this.chips,
562
620
  "has-clear": this.clear,
563
621
  "has-focus": this.isFocused,
622
+ "has-adornment": !!this.fieldPrefix || !!this.fieldSuffix,
623
+ "has-prefix": !!this.fieldPrefix,
624
+ "has-suffix": !!this.fieldSuffix,
564
625
  disabled: this.disabled,
565
- } }, h("div", { key: 'e75d978a35f9329df71ec9e85f0eed8433addb13', class: "duet-input-label-container" }, h(DuetInternalLabel, { key: '42155bef67e2f2ed2bc401abbed050e9b147c5b0', 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: '0b17713442d9e85a071fd8f891ad8b18e6d41c1b', class: "duet-input-tooltip", direction: this.tooltipDirection, accessibleInputLabel: this.label, theme: this.theme === "turva" ? "turva" : "default" }, this.tooltip)), h("slot", { key: '574024190707b602760edf56f6f081cdc5ce3a06', name: "tooltip" })), this.caption && (h("duet-caption", { key: '3bfd4db6bcb18def8439d3b3532fed1f4ec2c3ed', id: this.topCaptionId, size: "medium" }, this.caption)), h("div", { key: '0db5fecd76df4b90a6990d382e5af5ea655597a2', 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: {
566
627
  "duet-input-relative": true,
567
628
  "duet-theme-turva": this.theme === "turva",
568
629
  "has-error": !!this.error,
569
- } }, this.placeholder && this.echoPlaceholder && (this.value || this.type === "time") && (h("duet-caption", { key: 'd501c8b4037074997020bca7c3ea488e85eecd00', id: this.topCaptionPlaceholderId, class: "duet-input-placeholder", margin: "none", size: "small" }, this.placeholder)), this.chips && (h("duet-visually-hidden", { key: '80ada9143fc5d0a80be79225176321dde4c2b751', id: this.chipCountId }, ", ", `${this.getAllChips().length} ${getLocaleString(this.chipsSelectedDesriptionLabel)}`, ",")), this.variation === "button-left" && h("slot", { key: 'd2f2297577b918f9b00dffe210310f8b5902b8f4', name: "button-left" }), h("input", Object.assign({ key: 'c73b07336a423b55fc1365d51db107df4ec3c9d0', 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: {
570
631
  "duet-input": true,
571
632
  disabled: this.disabled,
572
633
  "is-number": this.component === "number",
@@ -574,17 +635,17 @@ export class DuetInput {
574
635
  "after-chip": this.getAllChips().length > 0,
575
636
  "align-right": this.inputAlign === "right",
576
637
  [`input-padding-${this.inputPadding}`]: true,
577
- }, 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: '1c17a9d9d010a4f780603790a88dee696a2b9cc4', class: "duet-input-icon" }, h("duet-icon", { key: '31a464daf54eb879f7e29821dfea02e2e0a3ea1a', margin: "none", size: "small", icon: icons[this.type].svg, color: "currentColor" }))), this.clear && this.value && (h("div", { key: 'ceeb34206ddc6e2b5aa413e1811cf9884b88aa02', 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: {
578
639
  "duet-input-clear-icon": true,
579
640
  "duet-input-clear-icon-single": !hasInputIcon,
580
641
  "duet-input-clear-icon-double": !!this.icon,
581
642
  "duet-input-clear-icon-button": this.variation === "button",
582
643
  [`input-padding-${this.inputPadding}`]: true,
583
- } }, h("button", { key: '1857977acef2e30274a24d1d79f517e2f4c85622', onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel[this.language], "aria-keyshortcuts": "Escape" }, h("duet-icon", { key: '7873a22bdde0030f84d65a12eb9eef6f7e5b4f05', margin: "none", size: "medium", name: "action-clear-input", color: "currentColor" })))), this.icon && this.variation !== "button" && (h("div", { key: '772cbb355e2e10bd6ed14b8f5f3f7759943d564e', class: "duet-input-icon" }, h("duet-icon", { key: 'a814a80c20d9b449b780bfb76300c0bfd2a81179', margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && h("slot", { key: 'e5dc657f02e11f18fce79ac4ae100ec22d7c6262', name: "button" }), this.variation === "revealable" && (h("duet-button", { key: 'f6f4f1af8a5597235245bfa13c569a3b8b15b58c', 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
584
645
  ? this.hidePasswordLabel[this.language]
585
- : 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: '8194008037516aa17ab2ee14066ee3b936dee6dd' }, h("span", { key: '3eaba770a22e3c7fce643f29204cba36837ae6ca', "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
586
647
  ? this.passwordShownAriaAnnouncement[this.language]
587
- : this.passwordHiddenAriaAnnouncement[this.language]))), h("slot", { key: '85d82cb13cee107e0bbf8a45a882954cb680b1ef' })), h("span", { key: '7dc23251785bd369b7485d5e07c7b13b8594b3bd', class: "duet-input-help", id: this.errorId, "aria-atomic": "true", "aria-live": this.accessibleLiveError, "aria-relevant": "additions removals" }, this.error && h("span", { key: '6e5d9037b73b4aac9643ce004fafa25eb0a2ad9d', 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)))));
588
649
  }
589
650
  static get is() { return "duet-input"; }
590
651
  static get encapsulation() { return "shadow"; }
@@ -632,7 +693,7 @@ export class DuetInput {
632
693
  "optional": false,
633
694
  "docs": {
634
695
  "tags": [],
635
- "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\""
636
697
  },
637
698
  "getter": false,
638
699
  "setter": false,
@@ -1270,6 +1331,44 @@ export class DuetInput {
1270
1331
  "reflect": false,
1271
1332
  "defaultValue": "false"
1272
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
+ },
1273
1372
  "numericKeyboard": {
1274
1373
  "type": "boolean",
1275
1374
  "attribute": "numeric-keyboard",
@@ -1283,7 +1382,7 @@ export class DuetInput {
1283
1382
  "optional": false,
1284
1383
  "docs": {
1285
1384
  "tags": [],
1286
- "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."
1287
1386
  },
1288
1387
  "getter": false,
1289
1388
  "setter": false,
@@ -1366,6 +1465,44 @@ export class DuetInput {
1366
1465
  "setter": false,
1367
1466
  "reflect": false
1368
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
+ },
1369
1506
  "placeholder": {
1370
1507
  "type": "string",
1371
1508
  "attribute": "placeholder",
@@ -1471,7 +1608,7 @@ export class DuetInput {
1471
1608
  "optional": false,
1472
1609
  "docs": {
1473
1610
  "tags": [],
1474
- "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)."
1475
1612
  },
1476
1613
  "getter": false,
1477
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: '2cdbe38f663ea0d8cc15fd500ecda5f411b9e0ad', 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: '3844cb119e6ee20b71358c128536e493c0cefa10', class: { "duet-layout-wrapper": true, "duet-m-0": this.margin === "none" } }, this.hasTop && (h("div", { key: 'fc18a4c1bf4b0779f72fbe64409a7b34bf352761', 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: '3737558d8a28f5d5036e7a80dcaaf0b4414e62fb', class: "duet-layout-top-wrapper" }, h("slot", { key: '7fb843ff9f8debeb3690193a15fd76c1bcf4e12d', name: "top" })))), h("div", { key: 'adfd7395cbb2e39f853b88a14f991b00f8476090', 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: '0506f7e5ae428fbab490af792a6c9662b7b4e9fd', class: "duet-main" }, this.hasPageHeading && h("slot", { key: '820596fd9584dc5abfc82f2aae4b1fafe6d1f7a5', name: "page-heading" }), h("slot", { key: '8f513267e5becd3d5f079983895ebd7c4a409e74', name: "main" })), this.hasSidebar && (h("aside", { key: 'c3689c4105724962cffbedef78edbfa5d51e114b', class: "duet-sidebar" }, h("div", { key: 'b327b7c652bf43acaf36442b9aa47e0289d52d0c', 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: '75ea637d7fc09abde7ffb80b306b4f688811e415', 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: 'b7bc738a8b128a9e56337a4ddc2b3d8cb87d4cf6', 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: '5b530346d4036ccf8d777a2114ab74385d390eb9', 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: '8db79297c536ab67ccc4692ce3fba04812ad38f0', class: { "duet-list-component": true, "duet-m-0": this.margin === "none" } }, h("slot", { key: '9644e8591deac7c8e4ac380f65e93ffb54154e70' })));
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: '47185c0399f547a7d80ac43adf617b617e33e604', 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: '6ae3c144789f6f61efd296b660b88b180a5e0e38' }, h("slot", { key: 'c33e76c13b822b05a938e421d6eb53ef95e403f7', name: "label" })), h("dd", { key: '31bda43d4a91ec3b4a44746a0ddde2f7b91845c2' }, h("slot", { key: 'c1ce54a0b9a7dd7256a7dcf3a32bef70bb063621', 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: 'd99854962d44321597d2a365ebb9a1cc9ea96ef5', class: { "duet-m-0": this.margin === "none" } }, h(TagName, { key: 'a68c65c4e68571831417a0c6ae7e8ae339f7fe29', 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: '20953eddb5841bc9c3270486dd3734ec5cc3a952' }, h("nav", { key: '1c25040ecad0544d6875be135b0e37d228d252ac', 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: '8f97938d286808eeaac40b082bce5e01011d23be', class: "top" }), h("div", { key: '1e9f311e8d1cfd877a927a8088b898446dd180ac', class: { container: true, "with-info-text": !!this.logoInfoText && !this.centerSlotUsed }, ref: el => (this.container = el), onScroll: () => this.scrollbarCheck() }, this.logo && (h("div", { key: 'c294599cde52e8fcabd0412fcd803e472bf97e45' }, h("duet-logo", { key: '0a25bba9944d981a0c0a0fc030df98c3ab191a20', 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: '93471aa81e550289950f4bf1334ec780bbffa658', 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: '08c23b2467aa25bb26f2d63b6bcf282b66930ece', 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: '56afacfd12bbaf8221f0054098db968d6cf48821', 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: 'f0c2016af395fbf2b559d04250b37e615ec6aa6d', class: "list center", role: "list" }, h("div", { key: 'f22dc0cbdccf64d0eca130fadaa5ce0a94a49652', class: "more-left", hidden: !this.leftMoreVisible, role: "presentation" }), h("slot", { key: '013cb15f8cf0e113f61ee79951145ba591643c8e', name: "center" }), h("div", { key: '261f3b02c4a5479c55f14d184d1f62f0e1b423e5', class: "more-right", hidden: !this.rightMoreVisible, role: "presentation" })), h("div", { key: '340de122eae1f45e67510326ed7853d554620629', class: "list right", role: "list" }, h("slot", { key: '4e06e5759df443ea2f958eb3337714b353c46a1a', name: "right" }))), h("div", { key: 'd7cf80a004bef36a8d4ddd7b15276ba703393e11', 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: '5e64c2ede59d8e16972663cace2e98dffca3a060', role: "listitem", onfocus: () => this.setFocus() }, h("button", { key: '362525c4f563bd1a5ffad7b8fee029d904fb72c8', 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: '439d74e7bdfb1396a7c1e2940c3bcf142c3150b6', class: "menu-bar-button-icon", theme: this.theme, size: "auto", name: this.icon, margin: "none", color: "currentColor" })), h("slot", { key: '61a36d95ee1b2962b3f966dc99678c7e00c00692' }))));
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: '870e7ba2d40001532dabdb4c9468b73570e1ade7', role: "listitem" }, h("div", { key: '7c60bf682acd9d11e8633f862f07391a706de817', 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: 'c0bdf57ef46ae179d3c0d6e7f45bdd7ffe10769b', 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: 'c97e52d72933959ecbd6b9519940427735cdeccc', class: "menu-bar-dropdown-icon", theme: this.theme, name: this.icon, size: "auto", margin: "none", color: "currentColor" })), h("div", { key: 'd831c0f2defb108643ac9a11f6be93f4f98a8dbc', class: "label" }, h("slot", { key: 'c396567614cd3badd2b373a1922ea907f75750a8', name: "label" }), h("duet-icon", { key: '4e8adfdf9998028a514fa386275affa9c4fe29be', class: "caret", theme: this.theme, name: "action-arrow-down-small", margin: "none", size: "xxx-small", color: "currentColor" }))), h("div", { key: '683257ed3f02ee4cde289c0efe48af7f06fa50c5', 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: '281de42fd56a1c9be76c9b4218d4354032a56834' })))));
75
+ } }, h("slot", { key: '4a0657ee88ab885d6e177b654e0e9231d0027ec1' })))));
76
76
  }
77
77
  static get is() { return "duet-menu-bar-dropdown"; }
78
78
  static get encapsulation() { return "shadow"; }