@duetds/components 10.3.0 → 10.4.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 (507) hide show
  1. package/hydrate/index.js +782 -325
  2. package/hydrate/index.mjs +782 -325
  3. package/lib/cjs/{a11y-utils-b27OEdFX.js → a11y-utils-BXDHn_nL.js} +1 -1
  4. package/lib/cjs/{app-globals-DhPOoPl1.js → app-globals-Bs3-XKhd.js} +1 -1
  5. package/lib/cjs/duet-action-button.cjs.entry.js +5 -5
  6. package/lib/cjs/duet-alert.cjs.entry.js +4 -4
  7. package/lib/cjs/duet-badge.cjs.entry.js +5 -5
  8. package/lib/cjs/duet-banner.cjs.entry.js +13 -9
  9. package/lib/cjs/duet-breadcrumb.cjs.entry.js +6 -6
  10. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +7 -7
  11. package/lib/cjs/duet-button_2.cjs.entry.js +27 -12
  12. package/lib/cjs/duet-callout.cjs.entry.js +5 -5
  13. package/lib/cjs/duet-caption_4.cjs.entry.js +16 -16
  14. package/lib/cjs/duet-card.cjs.entry.js +8 -8
  15. package/lib/cjs/duet-checkbox.cjs.entry.js +5 -5
  16. package/lib/cjs/duet-checkmark.cjs.entry.js +4 -4
  17. package/lib/cjs/duet-chip.cjs.entry.js +7 -5
  18. package/lib/cjs/duet-choice_2.cjs.entry.js +15 -13
  19. package/lib/cjs/duet-collapsible.cjs.entry.js +6 -6
  20. package/lib/cjs/duet-combobox.cjs.entry.js +27 -10
  21. package/lib/cjs/duet-contact-card.cjs.entry.js +5 -5
  22. package/lib/cjs/duet-cookie-consent.cjs.entry.js +3 -3
  23. package/lib/cjs/duet-date-picker.cjs.entry.js +30 -34
  24. package/lib/cjs/duet-divider_2.cjs.entry.js +6 -6
  25. package/lib/cjs/duet-editable-table_3.cjs.entry.js +12 -12
  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 +14 -7
  31. package/lib/cjs/duet-header_2.cjs.entry.js +7 -7
  32. package/lib/cjs/duet-hero.cjs.entry.js +9 -9
  33. package/lib/cjs/duet-icon.cjs.entry.js +7 -7
  34. package/lib/cjs/duet-indicator.cjs.entry.js +5 -5
  35. package/lib/cjs/duet-input_2.cjs.entry.js +22 -14
  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 +14 -14
  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 +8 -8
  49. package/lib/cjs/duet-overlay.cjs.entry.js +3 -3
  50. package/lib/cjs/duet-page-heading.cjs.entry.js +4 -4
  51. package/lib/cjs/duet-pagination_2.cjs.entry.js +18 -18
  52. package/lib/cjs/duet-panel.cjs.entry.js +4 -4
  53. package/lib/cjs/duet-phone-input.cjs.entry.js +4 -4
  54. package/lib/cjs/duet-popup-menu_2.cjs.entry.js +30 -18
  55. package/lib/cjs/duet-progress.cjs.entry.js +3 -3
  56. package/lib/cjs/duet-promo-card.cjs.entry.js +13 -9
  57. package/lib/cjs/duet-radio_2.cjs.entry.js +10 -8
  58. package/lib/cjs/duet-range-slider.cjs.entry.js +7 -7
  59. package/lib/cjs/duet-scrollable_3.cjs.entry.js +17 -17
  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 +8 -8
  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 +13 -13
  70. package/lib/cjs/duet-slideout.cjs.entry.js +20 -18
  71. package/lib/cjs/duet-status-icon.cjs.entry.js +8 -4
  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 +7 -7
  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 +8 -8
  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 +9 -9
  86. package/lib/cjs/duet-tooltip.cjs.entry.js +5 -5
  87. package/lib/cjs/duet-tray.cjs.entry.js +6 -6
  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-BlVVWFcS.js → errorcodes.utils-W6UQ3hgy.js} +1 -1
  93. package/lib/cjs/{focus-utils-DIeiBu1A.js → focus-utils-KTKpjKRi.js} +1 -1
  94. package/lib/cjs/{index-CeCDgexG.js → index-C7Yvi8y8.js} +5 -5
  95. package/lib/cjs/{label-BK_7MvDR.js → label-DZ63Z3SI.js} +1 -1
  96. package/lib/cjs/{language-utils-BmMgyx0x.js → language-utils-BsevPDrN.js} +1 -1
  97. package/lib/cjs/loader.cjs.js +3 -3
  98. package/lib/cjs/{slot-utils-PLQ1zjHe.js → slot-utils-DIDW777s.js} +2 -2
  99. package/lib/cjs/{themeable-component-DD3okLL-.js → themeable-component-hQ83w5_A.js} +1 -1
  100. package/lib/cjs/{token-utils-CaLsk40I.js → token-utils-DY3-olMV.js} +1 -1
  101. package/lib/cjs/{tokens-DWngQgYY.js → tokens-COLlUECP.js} +226 -4
  102. package/lib/cjs/{tokens.module-BMAWZwue.js → tokens.module-CTbvyezn.js} +152 -4
  103. package/lib/collection/components/duet-action-button/duet-action-button.css +1 -1
  104. package/lib/collection/components/duet-badge/duet-badge.js +2 -2
  105. package/lib/collection/components/duet-banner/duet-banner.css +7 -0
  106. package/lib/collection/components/duet-banner/duet-banner.js +8 -4
  107. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.css +1 -1
  108. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  109. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  110. package/lib/collection/components/duet-button/duet-button.css +14 -8
  111. package/lib/collection/components/duet-button/duet-button.js +20 -5
  112. package/lib/collection/components/duet-callout/duet-callout.js +2 -2
  113. package/lib/collection/components/duet-caption/duet-caption.js +2 -2
  114. package/lib/collection/components/duet-card/duet-card.css +2 -2
  115. package/lib/collection/components/duet-card/duet-card.js +3 -3
  116. package/lib/collection/components/duet-checkbox/duet-checkbox.css +1 -1
  117. package/lib/collection/components/duet-checkbox/duet-checkbox.js +2 -2
  118. package/lib/collection/components/duet-chip/duet-chip.css +1 -3
  119. package/lib/collection/components/duet-chip/duet-chip.js +4 -2
  120. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  121. package/lib/collection/components/duet-choice/duet-choice.css +3 -3
  122. package/lib/collection/components/duet-choice/duet-choice.js +9 -36
  123. package/lib/collection/components/duet-choice-group/duet-choice-group.js +2 -2
  124. package/lib/collection/components/duet-collapsible/duet-collapsible.css +1 -1
  125. package/lib/collection/components/duet-collapsible/duet-collapsible.js +2 -2
  126. package/lib/collection/components/duet-combobox/duet-combobox.js +22 -5
  127. package/lib/collection/components/duet-contact-card/duet-contact-card.js +2 -2
  128. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.css +2 -2
  129. package/lib/collection/components/duet-cookie-consent/duet-cookie-consent.js +1 -1
  130. package/lib/collection/components/duet-date-picker/date-utils.js +2 -1
  131. package/lib/collection/components/duet-date-picker/duet-date-picker.css +8 -9
  132. package/lib/collection/components/duet-date-picker/duet-date-picker.js +23 -29
  133. package/lib/collection/components/duet-divider/duet-divider.js +1 -1
  134. package/lib/collection/components/duet-editable-table/duet-editable-table.js +2 -2
  135. package/lib/collection/components/duet-empty-state/duet-empty-state.css +55 -2
  136. package/lib/collection/components/duet-empty-state/duet-empty-state.js +124 -6
  137. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  138. package/lib/collection/components/duet-file-chooser/duet-file-chooser.js +1 -1
  139. package/lib/collection/components/duet-footer/duet-footer.css +1 -1
  140. package/lib/collection/components/duet-footer/duet-footer.js +4 -4
  141. package/lib/collection/components/duet-grid/duet-grid.css +23 -0
  142. package/lib/collection/components/duet-grid/duet-grid.js +29 -2
  143. package/lib/collection/components/duet-grid-item/duet-grid-item.js +2 -2
  144. package/lib/collection/components/duet-header/duet-header.css +6 -6
  145. package/lib/collection/components/duet-heading/duet-heading.css +62 -0
  146. package/lib/collection/components/duet-heading/duet-heading.js +40 -2
  147. package/lib/collection/components/duet-hero/duet-hero.css +1 -1
  148. package/lib/collection/components/duet-hero/duet-hero.js +5 -5
  149. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  150. package/lib/collection/components/duet-indicator/duet-indicator.js +2 -2
  151. package/lib/collection/components/duet-input/duet-input.css +81 -64
  152. package/lib/collection/components/duet-input/duet-input.js +14 -6
  153. package/lib/collection/components/duet-layout/duet-layout.js +5 -5
  154. package/lib/collection/components/duet-link/duet-link.css +1 -1
  155. package/lib/collection/components/duet-link/duet-link.js +2 -2
  156. package/lib/collection/components/duet-list/duet-list.js +1 -1
  157. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  158. package/lib/collection/components/duet-logo/duet-logo.css +1 -1
  159. package/lib/collection/components/duet-logo/duet-logo.js +1 -1
  160. package/lib/collection/components/duet-menu-bar/duet-menu-bar.js +3 -3
  161. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.css +1 -1
  162. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  163. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.css +1 -1
  164. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  165. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.css +1 -1
  166. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  167. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.css +1 -1
  168. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  169. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.css +1 -1
  170. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  171. package/lib/collection/components/duet-modal/duet-modal.js +7 -7
  172. package/lib/collection/components/duet-multiselect/duet-multiselect.css +33 -48
  173. package/lib/collection/components/duet-multiselect/duet-multiselect.js +5 -5
  174. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  175. package/lib/collection/components/duet-notification/duet-notification.css +1 -1
  176. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  177. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.css +1 -1
  178. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +3 -3
  179. package/lib/collection/components/duet-number-input/duet-number-input.css +1 -1
  180. package/lib/collection/components/duet-number-input/duet-number-input.js +4 -4
  181. package/lib/collection/components/duet-overlay/duet-overlay.js +1 -1
  182. package/lib/collection/components/duet-page-heading/duet-page-heading.js +2 -2
  183. package/lib/collection/components/duet-pagination/duet-pagination.js +11 -11
  184. package/lib/collection/components/duet-panel/duet-panel.js +2 -2
  185. package/lib/collection/components/duet-paragraph/duet-paragraph.js +2 -2
  186. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +21 -9
  187. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.css +2 -2
  188. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  189. package/lib/collection/components/duet-promo-card/duet-promo-card.css +8 -1
  190. package/lib/collection/components/duet-promo-card/duet-promo-card.js +8 -4
  191. package/lib/collection/components/duet-radio/duet-radio.css +1 -1
  192. package/lib/collection/components/duet-radio/duet-radio.js +6 -4
  193. package/lib/collection/components/duet-radio-group/duet-radio-group.js +1 -1
  194. package/lib/collection/components/duet-range-slider/duet-range-slider.css +1 -1
  195. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  196. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -2
  197. package/lib/collection/components/duet-scrollable/duet-scrollable.js +5 -5
  198. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  199. package/lib/collection/components/duet-select/duet-select.css +29 -37
  200. package/lib/collection/components/duet-select/duet-select.js +5 -5
  201. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  202. package/lib/collection/components/duet-share-chart/duet-share-chart.js +2 -2
  203. package/lib/collection/components/duet-share-chart-item/duet-share-chart-item.js +1 -1
  204. package/lib/collection/components/duet-show-more/duet-show-more.css +1 -1
  205. package/lib/collection/components/duet-show-more/duet-show-more.js +2 -2
  206. package/lib/collection/components/duet-slideout/duet-slideout.css +1 -1
  207. package/lib/collection/components/duet-slideout/duet-slideout.js +12 -10
  208. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  209. package/lib/collection/components/duet-slideout-link/duet-slideout-link.css +1 -1
  210. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  211. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.css +2 -4
  212. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  213. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.css +1 -1
  214. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  215. package/lib/collection/components/duet-spacer/duet-spacer.js +1 -1
  216. package/lib/collection/components/duet-spinner/duet-spinner.js +1 -1
  217. package/lib/collection/components/duet-status-icon/duet-status-icon.css +39 -0
  218. package/lib/collection/components/duet-status-icon/duet-status-icon.js +13 -2
  219. package/lib/collection/components/duet-step/duet-step.css +1 -1
  220. package/lib/collection/components/duet-step/duet-step.js +2 -2
  221. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  222. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.css +1 -1
  223. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  224. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.css +1 -1
  225. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  226. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.css +1 -1
  227. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  228. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.css +1 -1
  229. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  230. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.css +1 -1
  231. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  232. package/lib/collection/components/duet-tab/duet-tab.css +1 -1
  233. package/lib/collection/components/duet-tab/duet-tab.js +2 -2
  234. package/lib/collection/components/duet-tab-group/duet-tab-group.css +3 -3
  235. package/lib/collection/components/duet-tab-group/duet-tab-group.js +4 -4
  236. package/lib/collection/components/duet-table/duet-table.js +2 -2
  237. package/lib/collection/components/duet-textarea/duet-textarea.css +41 -77
  238. package/lib/collection/components/duet-textarea/duet-textarea.js +8 -15
  239. package/lib/collection/components/duet-toggle/duet-toggle.css +1 -1
  240. package/lib/collection/components/duet-toggle/duet-toggle.js +3 -3
  241. package/lib/collection/components/duet-toolbar/duet-toolbar.js +2 -2
  242. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.css +1 -1
  243. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  244. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.css +1 -1
  245. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  246. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.css +1 -1
  247. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +3 -3
  248. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.css +1 -1
  249. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  250. package/lib/collection/components/duet-tooltip/duet-tooltip-button.css +1 -1
  251. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +3 -3
  252. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.css +2 -2
  253. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +3 -3
  254. package/lib/collection/components/duet-tray/duet-tray.css +2 -2
  255. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  256. package/lib/collection/components/duet-upload/duet-upload.js +2 -2
  257. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  258. package/lib/collection/components/duet-upload-item/duet-upload-item.js +2 -2
  259. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  260. package/lib/collection/utils/slot-utils.js +1 -1
  261. package/lib/duet/duet.esm.js +1 -1
  262. package/lib/duet/p--fmK3qPb.js +4 -0
  263. package/lib/duet/{p-9240c039.entry.js → p-01f3e30c.entry.js} +1 -1
  264. package/lib/duet/p-0395eb34.entry.js +4 -0
  265. package/lib/duet/{p-7609417a.entry.js → p-0453edd0.entry.js} +1 -1
  266. package/lib/duet/p-07aa40df.entry.js +4 -0
  267. package/lib/duet/{p-bc5b4e44.entry.js → p-07c4b435.entry.js} +1 -1
  268. package/lib/duet/p-0eb0e582.entry.js +4 -0
  269. package/lib/duet/p-104ddbf2.entry.js +4 -0
  270. package/lib/duet/{p-137e710f.entry.js → p-12e4e9b6.entry.js} +1 -1
  271. package/lib/duet/{p-3a4dcdbd.entry.js → p-13b7f4e0.entry.js} +1 -1
  272. package/lib/duet/{p-11847d3e.entry.js → p-14d4a45a.entry.js} +1 -1
  273. package/lib/duet/{p-f31a6b2e.entry.js → p-1666aeaf.entry.js} +1 -1
  274. package/lib/duet/{p-d9963958.entry.js → p-1705b6cf.entry.js} +1 -1
  275. package/lib/duet/{p-6ff3fc39.entry.js → p-184d53a7.entry.js} +1 -1
  276. package/lib/duet/{p-6ca30a68.entry.js → p-1bdef0e0.entry.js} +1 -1
  277. package/lib/duet/p-1dcbbd67.entry.js +4 -0
  278. package/lib/duet/{p-c0785349.entry.js → p-1ed82a27.entry.js} +1 -1
  279. package/lib/duet/{p-a5b9e098.entry.js → p-1ee400e7.entry.js} +1 -1
  280. package/lib/duet/p-2168e431.entry.js +4 -0
  281. package/lib/duet/p-2HU78SJ-.js +4 -0
  282. package/lib/duet/{p-408ace89.entry.js → p-2d43de54.entry.js} +1 -1
  283. package/lib/duet/{p-20aefca2.entry.js → p-2e413951.entry.js} +1 -1
  284. package/lib/duet/{p-32c7c0c1.entry.js → p-3361387d.entry.js} +1 -1
  285. package/lib/duet/p-3648404d.entry.js +4 -0
  286. package/lib/duet/{p-1da05915.entry.js → p-376f9d06.entry.js} +1 -1
  287. package/lib/duet/p-3bd45b5b.entry.js +4 -0
  288. package/lib/duet/{p-9da7ffc9.entry.js → p-3c26d300.entry.js} +1 -1
  289. package/lib/duet/{p-6f08e639.entry.js → p-428db44b.entry.js} +1 -1
  290. package/lib/duet/p-4420973e.entry.js +4 -0
  291. package/lib/duet/{p-90ab8a57.entry.js → p-455e8ebe.entry.js} +1 -1
  292. package/lib/duet/{p-565bcf84.entry.js → p-46300680.entry.js} +1 -1
  293. package/lib/duet/{p-f9f25386.entry.js → p-494755d0.entry.js} +1 -1
  294. package/lib/duet/{p-70d7a04d.entry.js → p-4c5a8ed3.entry.js} +1 -1
  295. package/lib/duet/{p-c504dc42.entry.js → p-4d39941c.entry.js} +1 -1
  296. package/lib/duet/p-4f7b0699.entry.js +4 -0
  297. package/lib/duet/p-526fa31c.entry.js +4 -0
  298. package/lib/duet/p-58496fb1.entry.js +4 -0
  299. package/lib/duet/{p-62954ecf.entry.js → p-58a70b3d.entry.js} +1 -1
  300. package/lib/duet/{p-9f941e06.entry.js → p-592a6542.entry.js} +1 -1
  301. package/lib/duet/p-5c8c691b.entry.js +4 -0
  302. package/lib/duet/{p-ab939713.entry.js → p-5dde8fbb.entry.js} +1 -1
  303. package/lib/duet/{p-73263349.entry.js → p-5ffc4081.entry.js} +1 -1
  304. package/lib/duet/{p-5a576bae.entry.js → p-61b6962a.entry.js} +1 -1
  305. package/lib/duet/{p-faf6d461.entry.js → p-6988c81c.entry.js} +1 -1
  306. package/lib/duet/p-73ed0008.entry.js +4 -0
  307. package/lib/duet/p-7a2ca711.entry.js +4 -0
  308. package/lib/duet/{p-43723ce5.entry.js → p-7a5066b8.entry.js} +1 -1
  309. package/lib/duet/{p-d36dabf1.entry.js → p-7a668cee.entry.js} +1 -1
  310. package/lib/duet/p-7e640c8e.entry.js +4 -0
  311. package/lib/duet/{p-00e0f919.entry.js → p-7eaa1fb5.entry.js} +1 -1
  312. package/lib/duet/{p-93bfe3dd.entry.js → p-81332db1.entry.js} +1 -1
  313. package/lib/duet/{p-caf9df46.entry.js → p-816caa58.entry.js} +1 -1
  314. package/lib/duet/{p-098d7665.entry.js → p-84420fbf.entry.js} +1 -1
  315. package/lib/duet/p-870dc953.entry.js +4 -0
  316. package/lib/duet/{p-22143e3e.entry.js → p-87bb797c.entry.js} +1 -1
  317. package/lib/duet/p-9d8027aa.entry.js +4 -0
  318. package/lib/duet/p-BW3SZS4F.js +4 -0
  319. package/lib/duet/p-Ce9HQd35.js +4 -0
  320. package/lib/duet/{p-DNW9B4-w.js → p-Chf7ZRmW.js} +1 -1
  321. package/lib/duet/p-CtBx3Trd.js +4 -0
  322. package/lib/duet/{p-FlJJ5tdo.js → p-Cwhi6_oZ.js} +1 -1
  323. package/lib/duet/{p-BEzfNXw0.js → p-D2EBd3cT.js} +1 -1
  324. package/lib/duet/{p-D8k4CqJb.js → p-D2ly4TZR.js} +1 -1
  325. package/lib/duet/p-DCDM41Ef.js +4 -0
  326. package/lib/duet/p-DEzE2U5T.js +4 -0
  327. package/lib/duet/{p-Bo0igXOs.js → p-DWIjWGAD.js} +1 -1
  328. package/lib/duet/{p-713cc11f.entry.js → p-a4a1b8e3.entry.js} +1 -1
  329. package/lib/duet/p-a4db8c29.entry.js +4 -0
  330. package/lib/duet/p-a63327c3.entry.js +4 -0
  331. package/lib/duet/{p-1eb20304.entry.js → p-a690a165.entry.js} +1 -1
  332. package/lib/duet/{p-c8f8acf7.entry.js → p-a7bb038a.entry.js} +1 -1
  333. package/lib/duet/{p-2736a400.entry.js → p-adecab91.entry.js} +1 -1
  334. package/lib/duet/p-af9c8169.entry.js +4 -0
  335. package/lib/duet/{p-e19d51b1.entry.js → p-afd7d87a.entry.js} +1 -1
  336. package/lib/duet/{p-b7865974.entry.js → p-b3ec9b98.entry.js} +1 -1
  337. package/lib/duet/{p-42105616.entry.js → p-b64b3e2f.entry.js} +1 -1
  338. package/lib/duet/{p-4de84b4d.entry.js → p-bcced6eb.entry.js} +1 -1
  339. package/lib/duet/{p-91370277.entry.js → p-c1d4542d.entry.js} +1 -1
  340. package/lib/duet/{p-6e98887f.entry.js → p-c71f6942.entry.js} +1 -1
  341. package/lib/duet/p-c7851c15.entry.js +4 -0
  342. package/lib/duet/p-cbd1069e.entry.js +4 -0
  343. package/lib/duet/p-cd4f52a9.entry.js +4 -0
  344. package/lib/duet/{p-a745eb10.entry.js → p-d0a54e6d.entry.js} +1 -1
  345. package/lib/duet/p-d181c624.entry.js +4 -0
  346. package/lib/duet/{p-c23accaf.entry.js → p-d2c04a7e.entry.js} +1 -1
  347. package/lib/duet/{p-014c965f.entry.js → p-d2c91ed0.entry.js} +1 -1
  348. package/lib/duet/p-d3dac8af.entry.js +4 -0
  349. package/lib/duet/{p-9ceede7a.entry.js → p-dc87f3f4.entry.js} +1 -1
  350. package/lib/duet/{p-bb0567b4.entry.js → p-dfd55180.entry.js} +1 -1
  351. package/lib/duet/{p-b0622412.entry.js → p-e8bd6dab.entry.js} +1 -1
  352. package/lib/duet/p-e9ed96cf.entry.js +4 -0
  353. package/lib/duet/p-eab349f2.entry.js +4 -0
  354. package/lib/duet/{p-2d9e573a.entry.js → p-eebf150c.entry.js} +1 -1
  355. package/lib/duet/{p-ed252dd9.entry.js → p-f210e405.entry.js} +1 -1
  356. package/lib/duet/{p-2981f32d.entry.js → p-f600e215.entry.js} +1 -1
  357. package/lib/duet/p-f652a9c7.entry.js +4 -0
  358. package/lib/duet/{p-ae714f68.entry.js → p-fbce84d5.entry.js} +1 -1
  359. package/lib/duet/{p-6db9ac4d.entry.js → p-fea479fd.entry.js} +1 -1
  360. package/lib/esm/{a11y-utils-DAo2lcPY.js → a11y-utils-sgAajRY0.js} +1 -1
  361. package/lib/esm/{app-globals-CzrvWXbM.js → app-globals-NNQmI_gc.js} +1 -1
  362. package/lib/esm/duet-action-button.entry.js +5 -5
  363. package/lib/esm/duet-alert.entry.js +4 -4
  364. package/lib/esm/duet-badge.entry.js +5 -5
  365. package/lib/esm/duet-banner.entry.js +13 -9
  366. package/lib/esm/duet-breadcrumb.entry.js +6 -6
  367. package/lib/esm/duet-breadcrumbs.entry.js +7 -7
  368. package/lib/esm/duet-button_2.entry.js +27 -12
  369. package/lib/esm/duet-callout.entry.js +5 -5
  370. package/lib/esm/duet-caption_4.entry.js +16 -16
  371. package/lib/esm/duet-card.entry.js +8 -8
  372. package/lib/esm/duet-checkbox.entry.js +5 -5
  373. package/lib/esm/duet-checkmark.entry.js +4 -4
  374. package/lib/esm/duet-chip.entry.js +7 -5
  375. package/lib/esm/duet-choice_2.entry.js +15 -13
  376. package/lib/esm/duet-collapsible.entry.js +6 -6
  377. package/lib/esm/duet-combobox.entry.js +27 -10
  378. package/lib/esm/duet-contact-card.entry.js +5 -5
  379. package/lib/esm/duet-cookie-consent.entry.js +3 -3
  380. package/lib/esm/duet-date-picker.entry.js +30 -34
  381. package/lib/esm/duet-divider_2.entry.js +6 -6
  382. package/lib/esm/duet-editable-table_3.entry.js +12 -12
  383. package/lib/esm/duet-empty-state.entry.js +33 -7
  384. package/lib/esm/duet-fieldset.entry.js +6 -6
  385. package/lib/esm/duet-file-chooser.entry.js +3 -3
  386. package/lib/esm/duet-footer.entry.js +8 -8
  387. package/lib/esm/duet-grid_2.entry.js +14 -7
  388. package/lib/esm/duet-header_2.entry.js +7 -7
  389. package/lib/esm/duet-hero.entry.js +9 -9
  390. package/lib/esm/duet-icon.entry.js +7 -7
  391. package/lib/esm/duet-indicator.entry.js +5 -5
  392. package/lib/esm/duet-input_2.entry.js +22 -14
  393. package/lib/esm/duet-layout.entry.js +7 -7
  394. package/lib/esm/duet-list_2.entry.js +5 -5
  395. package/lib/esm/duet-menu-bar-button.entry.js +4 -4
  396. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +4 -4
  397. package/lib/esm/duet-menu-bar-dropdown.entry.js +6 -6
  398. package/lib/esm/duet-menu-bar-item.entry.js +7 -7
  399. package/lib/esm/duet-menu-bar-link.entry.js +4 -4
  400. package/lib/esm/duet-menu-bar.entry.js +6 -6
  401. package/lib/esm/duet-modal.entry.js +14 -14
  402. package/lib/esm/duet-multiselect.entry.js +11 -11
  403. package/lib/esm/duet-nav.entry.js +3 -3
  404. package/lib/esm/duet-notification_2.entry.js +9 -9
  405. package/lib/esm/duet-number-input.entry.js +8 -8
  406. package/lib/esm/duet-overlay.entry.js +3 -3
  407. package/lib/esm/duet-page-heading.entry.js +4 -4
  408. package/lib/esm/duet-pagination_2.entry.js +18 -18
  409. package/lib/esm/duet-panel.entry.js +4 -4
  410. package/lib/esm/duet-phone-input.entry.js +4 -4
  411. package/lib/esm/duet-popup-menu_2.entry.js +30 -18
  412. package/lib/esm/duet-progress.entry.js +3 -3
  413. package/lib/esm/duet-promo-card.entry.js +13 -9
  414. package/lib/esm/duet-radio_2.entry.js +10 -8
  415. package/lib/esm/duet-range-slider.entry.js +7 -7
  416. package/lib/esm/duet-scrollable_3.entry.js +17 -17
  417. package/lib/esm/duet-section-layout.entry.js +4 -4
  418. package/lib/esm/duet-select.entry.js +10 -10
  419. package/lib/esm/duet-shaped-image.entry.js +4 -4
  420. package/lib/esm/duet-share-chart-item.entry.js +2 -2
  421. package/lib/esm/duet-share-chart.entry.js +8 -8
  422. package/lib/esm/duet-show-more.entry.js +5 -5
  423. package/lib/esm/duet-slideout-lang.entry.js +4 -4
  424. package/lib/esm/duet-slideout-link.entry.js +7 -7
  425. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -6
  426. package/lib/esm/duet-slideout-panel.entry.js +13 -13
  427. package/lib/esm/duet-slideout.entry.js +20 -18
  428. package/lib/esm/duet-status-icon.entry.js +8 -4
  429. package/lib/esm/duet-step_2.entry.js +6 -6
  430. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +4 -4
  431. package/lib/esm/duet-submenu-bar-dropdown.entry.js +7 -7
  432. package/lib/esm/duet-submenu-bar-item.entry.js +6 -6
  433. package/lib/esm/duet-submenu-bar-link.entry.js +3 -3
  434. package/lib/esm/duet-submenu-bar.entry.js +8 -8
  435. package/lib/esm/duet-textarea.entry.js +14 -21
  436. package/lib/esm/duet-toggle.entry.js +8 -8
  437. package/lib/esm/duet-toolbar-dropdown-link.entry.js +4 -4
  438. package/lib/esm/duet-toolbar-dropdown.entry.js +6 -6
  439. package/lib/esm/duet-toolbar-item.entry.js +8 -8
  440. package/lib/esm/duet-toolbar-link.entry.js +4 -4
  441. package/lib/esm/duet-toolbar.entry.js +4 -4
  442. package/lib/esm/duet-tooltip-button_2.entry.js +9 -9
  443. package/lib/esm/duet-tooltip.entry.js +5 -5
  444. package/lib/esm/duet-tray.entry.js +6 -6
  445. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  446. package/lib/esm/duet-upload-item.entry.js +6 -6
  447. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  448. package/lib/esm/duet.js +4 -4
  449. package/lib/esm/{errorcodes.utils-DFNtyigo.js → errorcodes.utils-CqW0-HM8.js} +1 -1
  450. package/lib/esm/{focus-utils-BMaSpIw7.js → focus-utils-Dokkd7xz.js} +1 -1
  451. package/lib/esm/{index-FlJJ5tdo.js → index-Cwhi6_oZ.js} +5 -5
  452. package/lib/esm/{label-B8qZstXv.js → label-CyQlly6Z.js} +1 -1
  453. package/lib/esm/{language-utils-D6DmVtHY.js → language-utils-LZh-sc2s.js} +1 -1
  454. package/lib/esm/loader.js +4 -4
  455. package/lib/esm/{slot-utils-CNDJ1X0N.js → slot-utils-CEZnAp61.js} +2 -2
  456. package/lib/esm/{themeable-component-r_Tw1vqr.js → themeable-component-D_FVcjsD.js} +1 -1
  457. package/lib/esm/{token-utils-D46K_pN4.js → token-utils-B0KAgyj_.js} +1 -1
  458. package/lib/esm/{tokens-vvm7i9oY.js → tokens-Ce9HQd35.js} +226 -4
  459. package/lib/esm/{tokens.module-D84A7Xf6.js → tokens.module-DEzE2U5T.js} +152 -4
  460. package/lib/types/common-types.d.ts +11 -28
  461. package/lib/types/components/duet-banner/duet-banner.d.ts +1 -0
  462. package/lib/types/components/duet-combobox/duet-combobox.d.ts +1 -0
  463. package/lib/types/components/duet-date-picker/date-utils.d.ts +1 -1
  464. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +1 -2
  465. package/lib/types/components/duet-empty-state/duet-empty-state.d.ts +24 -4
  466. package/lib/types/components/duet-grid/duet-grid.d.ts +5 -0
  467. package/lib/types/components/duet-heading/duet-heading.d.ts +10 -0
  468. package/lib/types/components/duet-promo-card/duet-promo-card.d.ts +1 -0
  469. package/lib/types/components/duet-textarea/duet-textarea.d.ts +0 -5
  470. package/lib/types/components.d.ts +72 -6
  471. package/package.json +5 -5
  472. package/lib/duet/p-0c653c09.entry.js +0 -4
  473. package/lib/duet/p-0ef804e4.entry.js +0 -4
  474. package/lib/duet/p-1a28bbe1.entry.js +0 -4
  475. package/lib/duet/p-1d81fcf9.entry.js +0 -4
  476. package/lib/duet/p-1f2469d6.entry.js +0 -4
  477. package/lib/duet/p-2b489051.entry.js +0 -4
  478. package/lib/duet/p-2e967dc9.entry.js +0 -4
  479. package/lib/duet/p-30190152.entry.js +0 -4
  480. package/lib/duet/p-44d1fafb.entry.js +0 -4
  481. package/lib/duet/p-47070cce.entry.js +0 -4
  482. package/lib/duet/p-554d9373.entry.js +0 -4
  483. package/lib/duet/p-59553aa5.entry.js +0 -4
  484. package/lib/duet/p-5dc3f346.entry.js +0 -4
  485. package/lib/duet/p-5dc8a394.entry.js +0 -4
  486. package/lib/duet/p-6359eb27.entry.js +0 -4
  487. package/lib/duet/p-831e210d.entry.js +0 -4
  488. package/lib/duet/p-846b040f.entry.js +0 -4
  489. package/lib/duet/p-8ff66f04.entry.js +0 -4
  490. package/lib/duet/p-9fd00141.entry.js +0 -4
  491. package/lib/duet/p-BZkhQa5F.js +0 -4
  492. package/lib/duet/p-BsJux4JM.js +0 -4
  493. package/lib/duet/p-Bv3O2yFB.js +0 -4
  494. package/lib/duet/p-D84A7Xf6.js +0 -4
  495. package/lib/duet/p-Dd0j805V.js +0 -4
  496. package/lib/duet/p-a4b62f2f.entry.js +0 -4
  497. package/lib/duet/p-b8648d7a.entry.js +0 -4
  498. package/lib/duet/p-c18726af.entry.js +0 -4
  499. package/lib/duet/p-c2572d80.entry.js +0 -4
  500. package/lib/duet/p-d3b4339e.entry.js +0 -4
  501. package/lib/duet/p-dZaxsCbb.js +0 -4
  502. package/lib/duet/p-dfab71df.entry.js +0 -4
  503. package/lib/duet/p-e655dd7d.entry.js +0 -4
  504. package/lib/duet/p-f0eda0e2.entry.js +0 -4
  505. package/lib/duet/p-f58c0527.entry.js +0 -4
  506. package/lib/duet/p-fc0cb6fb.entry.js +0 -4
  507. package/lib/duet/p-vvm7i9oY.js +0 -4
@@ -20,6 +20,7 @@ export class DuetCombobox {
20
20
  this.activeDescendantId = createID("duet-combobox-active-descendant");
21
21
  this.isAndroidDevice = ((_b = (_a = navigator === null || navigator === void 0 ? void 0 : navigator.userAgent) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.indexOf("android")) > -1 || null;
22
22
  this.isInsideModal = false;
23
+ this.labelClick = false;
23
24
  this.resizeObserver = new ResizeObserver(debounce(entries => {
24
25
  var _a, _b, _c;
25
26
  // otherwise, something is wrong, expecting 1 element only
@@ -104,8 +105,18 @@ export class DuetCombobox {
104
105
  const newValue = e.detail.value;
105
106
  this.inputValue = newValue;
106
107
  };
107
- this.onInputClick = () => {
108
- this.popupMenuController = this.input.nativeInputElement;
108
+ this.onInputClick = e => {
109
+ const composedPath = e.composedPath();
110
+ if (composedPath && composedPath[1].nodeName === "LABEL") {
111
+ this.labelClick = true;
112
+ this.listOpen = false;
113
+ return;
114
+ }
115
+ if (this.labelClick || (composedPath && composedPath[0].nodeName !== "INPUT")) {
116
+ this.labelClick = false;
117
+ this.listOpen = false;
118
+ return;
119
+ }
109
120
  // change listOpen on next tick so popup controller is set when open changes
110
121
  setTimeout(() => {
111
122
  var _a, _b;
@@ -183,7 +194,6 @@ export class DuetCombobox {
183
194
  return;
184
195
  }
185
196
  nextActiveItem = this.listOpen ? this.activeItem + 1 : this.activeItem;
186
- this.popupMenuController = this.input.nativeInputElement;
187
197
  // change listOpen on next tick so popup controller is set when open changes
188
198
  setTimeout(() => {
189
199
  this.listOpen = true;
@@ -356,7 +366,7 @@ export class DuetCombobox {
356
366
  this.input.chips = this.multiple;
357
367
  this.input.addEventListener("duetChange", this.onInputChange);
358
368
  this.input.addEventListener("duetInput", this.onInputTyping);
359
- this.input.addEventListener("click", this.onInputClick);
369
+ this.element.addEventListener("click", this.onInputClick);
360
370
  //add correct aria attributes to the input element
361
371
  this.input.role = "combobox";
362
372
  this.input.accessibleExpanded = this.listOpen ? "true" : "false";
@@ -366,13 +376,20 @@ export class DuetCombobox {
366
376
  this.element.addEventListener("keydown", this.onKeyDown);
367
377
  connectLanguageChangeObserver(this, { prop: "accessibleLabels", defaults: "accessibleLabelDefaults" });
368
378
  this.processListOpenChange();
379
+ setTimeout(() => {
380
+ var _a;
381
+ const nativeInputElement = (_a = this.input) === null || _a === void 0 ? void 0 : _a.nativeInputElement;
382
+ if (nativeInputElement && this.popupMenuController !== nativeInputElement) {
383
+ this.popupMenuController = nativeInputElement;
384
+ }
385
+ }, 100);
369
386
  }
370
387
  disconnectedCallback() {
371
388
  if (Build.isServer) {
372
389
  return;
373
390
  }
374
391
  this.input.removeEventListener("duetChange", this.onInputChange);
375
- this.input.removeEventListener("click", this.onInputClick);
392
+ this.element.removeEventListener("click", this.onInputClick);
376
393
  this.element.removeEventListener("keydown", this.onKeyDown);
377
394
  this.resizeObserver.disconnect();
378
395
  disconnectLanguageChangeObserver(this);
@@ -47,10 +47,10 @@ export class DuetContactCard {
47
47
  render() {
48
48
  const isTurva = this.theme === "turva";
49
49
  const theme = isTurva ? "turva" : "default";
50
- return (h(Host, { key: '6cf20cb225b22fbb826b136c3909234684d30e3d', class: { "duet-m-0": this.margin === "none" } }, h("div", { key: '24e57cbe34b4d01ff024fe8128d3168b61e61af6', class: {
50
+ return (h(Host, { key: 'a29a3dab2ac7fb3079f2c1a159af7f4e7b5c226b', class: { "duet-m-0": this.margin === "none" } }, h("div", { key: '14753b1f4fc3901aa2285d438c612e66619fabb5', class: {
51
51
  "duet-contact-card": true,
52
52
  "duet-theme-turva": this.theme === "turva",
53
- }, role: "group", "aria-label": this.name }, this.image ? h("img", { class: "image", src: this.image, alt: this.name }) : h("div", null), h("div", { key: 'f3c40c440d2d9dd97e3c1e24817d60e62f6347f0' }, this.name && (h("duet-heading", { key: 'cde7a70f10cfdd45e801c9ef923e116b2ee12e42', class: "name", level: "h3", margin: "none", theme: theme }, this.name)), this.description && (h("duet-paragraph", { key: '1c855114d2101701a8b39f75fe8b2ae76d5ffe57', class: "description", margin: "none", theme: theme }, this.description)), this.email && (h("div", { key: 'b552b0f0de5e16059e77ee518e2087d24a2171c4', class: "email" }, h("duet-icon", { key: '2048a5cb8e29d7d664c984c72031cdfd1894e0a6', name: "navigation-message", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: '6e2a9b632e0fb1df3efd51dc66d6df1891eaa3a1', url: `mailto:${this.email}`, accessibleLabel: `Email: ${this.email}`, theme: theme }, this.email))), this.phone && (h("div", { key: '1a263f67d1844f9c2ba334ba24ebc32d9faf4b86', class: "phone" }, h("duet-icon", { key: 'dab3c18ed7f4c092aa8644ef6d9a915854c9e33d', name: "form-tel", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: '68c6b2ff4480300f563b7d8d65fb4d47160fcd8b', url: `tel:${this.phone}`, accessibleLabel: `${this.phoneLabel[this.language]}: ${this.phone}`, theme: theme }, this.phone)))), this.buttonUrl && this.buttonText && (h("div", { key: '70288a25480b39a333831a129def567c99f202b7', class: "call-to-action" }, h("duet-button", { key: 'c5fccd74b8b2b6b4917b464c5e723c657e326bb0', variation: "default", icon: this.buttonIcon, fixed: true, margin: "none", url: this.buttonUrl, theme: theme }, this.buttonText))), h("div", { key: '9fd8e574534d15aa89eaac786c257586a6f9f845' }), h("slot", { key: 'ab0fa1cc3232c70441d441e4c673b8b562ffbe92' }))));
53
+ }, role: "group", "aria-label": this.name }, this.image ? h("img", { class: "image", src: this.image, alt: this.name }) : h("div", null), h("div", { key: 'dc77c6904966d2b6438391dd2c827832ffe86325' }, this.name && (h("duet-heading", { key: 'a10e331782d05726446653615ba8effbb1de3257', class: "name", level: "h3", margin: "none", theme: theme }, this.name)), this.description && (h("duet-paragraph", { key: '3f49dc9a8933eb5551f259e2dcca7f434f8e5082', class: "description", margin: "none", theme: theme }, this.description)), this.email && (h("div", { key: '99ad9df72533f48e298153aeadf18cb50e37d1e9', class: "email" }, h("duet-icon", { key: 'cbe804f4877e52df6f678ace315efe098b3ef914', name: "navigation-message", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: 'e909d9bc1096700ef5fb6d7a1e87c499d585d4dd', url: `mailto:${this.email}`, accessibleLabel: `Email: ${this.email}`, theme: theme }, this.email))), this.phone && (h("div", { key: 'fe217c26608f2f461999844a3a00fe335c1e4509', class: "phone" }, h("duet-icon", { key: '1194445745ecb176f6fcc39a18c3e233921524d9', name: "form-tel", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: 'b83e145b7909c3ef697932ff1cf95d223d4a4b14', url: `tel:${this.phone}`, accessibleLabel: `${this.phoneLabel[this.language]}: ${this.phone}`, theme: theme }, this.phone)))), this.buttonUrl && this.buttonText && (h("div", { key: 'fdb27957cd0b60be23e8b4df7f062da5cc3eafc1', class: "call-to-action" }, h("duet-button", { key: 'f7cd81b4f2712057ee507a9f0f01e59121e7960e', variation: "default", icon: this.buttonIcon, fixed: true, margin: "none", url: this.buttonUrl, theme: theme }, this.buttonText))), h("div", { key: 'b3a716a438e7793ef194ae0b1067d926b75e0925' }), h("slot", { key: '3d4bea81e03b40457deb9fd0731c14a9b80d465e' }))));
54
54
  }
55
55
  static get is() { return "duet-contact-card"; }
56
56
  static get encapsulation() { return "shadow"; }
@@ -48,7 +48,7 @@
48
48
  outline-color: rgba(0, 119, 179, 0.8);
49
49
  border-radius: 4px;
50
50
  }
51
- .duet-theme-turva :host(.user-is-tabbing:not(.descendant-focused):focus), :host(.user-is-tabbing:not(.descendant-focused):focus).duet-theme-turva, .duet-theme-turva :host(.user-is-tabbing:not(.descendant-focused):focus), :host(.user-is-tabbing:not(.descendant-focused):focus).duet-theme-turva {
51
+ .duet-theme-turva :host(.user-is-tabbing:not(.descendant-focused):focus), :host(.user-is-tabbing:not(.descendant-focused):focus).duet-theme-turva {
52
52
  outline-color: rgba(53, 79, 101, 0.8);
53
53
  }
54
54
 
@@ -101,7 +101,7 @@
101
101
  outline-offset: 2px;
102
102
  outline-color: rgba(0, 119, 179, 0.8);
103
103
  }
104
- .duet-theme-turva ::slotted(a:focus), ::slotted(a:focus).duet-theme-turva, .duet-theme-turva ::slotted(a:focus), ::slotted(a:focus).duet-theme-turva {
104
+ .duet-theme-turva ::slotted(a:focus), ::slotted(a:focus).duet-theme-turva {
105
105
  outline-color: rgba(53, 79, 101, 0.8);
106
106
  }
107
107
 
@@ -46,7 +46,7 @@ export class DuetCookieConsent {
46
46
  * Always the last one in the class.
47
47
  */
48
48
  render() {
49
- return (h(Host, { key: 'a0945b87dc3ca428ebb77b5bafc937d26fe77b58', tabindex: "-1", class: { "duet-theme-turva": this.theme === "turva" } }, h("div", { key: 'e4870573df557f7b4d7a6075afbd04fc23f54ff1', class: { "duet-cookie-consent": true, "duet-theme-turva": this.theme === "turva" } }, h("div", { key: 'd0f1b43a014ccc35c9845c8c4117a8552eee8209', class: "duet-cookie-consent-content" }, h("div", { key: '98d8e55937ee5afda2a8d975ebb0d4e5aefc0014', class: "expand" }, h("slot", { key: '5529c9819da700b849bbf3e0f4b4c93cf4da6015' })), h("duet-spacer", { key: '82e710ce0de7d91f931cbb2177d6470f77701ec4', size: "large", direction: "horizontal" }), h("div", { key: '9cbf5dd3a7d82025a0912ca016b67e1b0f0022fc' }, h("duet-button", { key: '50a246e22443b54c881d40063c0405f07d7190dc', variation: "negative", size: "small", onClick: this.handleClick, margin: "none", "aria-label": this.accessibleLabel, theme: this.theme }, "OK"))))));
49
+ return (h(Host, { key: 'e79333a51d76cf03ac4fdaee8e2795e98d79319d', tabindex: "-1", class: { "duet-theme-turva": this.theme === "turva" } }, h("div", { key: 'befef096fcaaf1b57daa84ff54cbe665e84f3a86', class: { "duet-cookie-consent": true, "duet-theme-turva": this.theme === "turva" } }, h("div", { key: '78b54949afed67ada604c2ce9dea9c2fcb87a39f', class: "duet-cookie-consent-content" }, h("div", { key: '84a2a875986036aad4ba0b68fa2f902cf1148b01', class: "expand" }, h("slot", { key: 'd6402515233aaa20e4c1a3ff9b59647c674fe03d' })), h("duet-spacer", { key: 'aa7b8ad14f32db64dd72219593c7217567920556', size: "large", direction: "horizontal" }), h("div", { key: '9e7c71566df83cc4e3b6224b2fcf623e81a80db2' }, h("duet-button", { key: '5dc91aa2ae5b05394f1dce473b831d490d62eeae', variation: "negative", size: "small", onClick: this.handleClick, margin: "none", "aria-label": this.accessibleLabel, theme: this.theme }, "OK"))))));
50
50
  }
51
51
  static get is() { return "duet-cookie-consent"; }
52
52
  static get encapsulation() { return "shadow"; }
@@ -25,13 +25,14 @@ function createDate(year, month, day) {
25
25
  }
26
26
  return date;
27
27
  }
28
+ return undefined;
28
29
  }
29
30
  /**
30
31
  * @param value date string in format dd.mm.yyyy
31
32
  */
32
33
  export function parseDate(value) {
33
34
  if (!value) {
34
- return;
35
+ return undefined;
35
36
  }
36
37
  const matches = value.match(DATE_FORMAT);
37
38
  if (matches) {
@@ -169,17 +169,16 @@
169
169
  }
170
170
  .duet-date-button:hover:not(:disabled) {
171
171
  outline: 2px solid;
172
- outline-color: rgb(98, 121, 138);
172
+ outline-color: rgb(127, 150, 165) !important;
173
173
  outline-offset: -1px;
174
174
  }
175
- .duet-theme-turva .duet-date-button:hover:not(:disabled), .duet-date-button:hover:not(:disabled).duet-theme-turva, .duet-theme-turva .duet-date-button:hover:not(:disabled), .duet-date-button:hover:not(:disabled).duet-theme-turva {
176
- outline-color: rgb(120, 145, 164);
175
+ .duet-theme-turva .duet-date-button:hover:not(:disabled), .duet-date-button:hover:not(:disabled).duet-theme-turva {
176
+ outline-color: rgb(120, 145, 164) !important;
177
177
  }
178
178
  .duet-date-button:disabled {
179
179
  pointer-events: none;
180
180
  cursor: not-allowed;
181
181
  background: rgb(245, 248, 250) !important;
182
- border: 0 !important;
183
182
  }
184
183
  .duet-date-button:disabled::before {
185
184
  display: none;
@@ -202,7 +201,7 @@
202
201
  outline-offset: 2px;
203
202
  outline-color: rgba(0, 119, 179, 0.8);
204
203
  }
205
- .duet-theme-turva .duet-date-input-has-focus .duet-date-button:focus, .duet-date-input-has-focus .duet-date-button:focus.duet-theme-turva, .duet-theme-turva .duet-date-input-has-focus .duet-date-button:focus, .duet-date-input-has-focus .duet-date-button:focus.duet-theme-turva, .duet-theme-turva .duet-date-button:focus:focus, .duet-date-button:focus:focus.duet-theme-turva, .duet-theme-turva .duet-date-button:focus:focus, .duet-date-button:focus:focus.duet-theme-turva {
204
+ .duet-theme-turva .duet-date-input-has-focus .duet-date-button:focus, .duet-date-input-has-focus .duet-date-button:focus.duet-theme-turva, .duet-theme-turva .duet-date-button:focus:focus, .duet-date-button:focus:focus.duet-theme-turva {
206
205
  outline: 2px solid;
207
206
  outline-offset: 2px;
208
207
  outline-color: rgba(53, 79, 101, 0.8);
@@ -371,7 +370,7 @@
371
370
  color: rgb(255, 255, 255) !important;
372
371
  background: rgb(0, 119, 179) !important;
373
372
  }
374
- .duet-theme-turva .duet-date-table-button:active, .duet-date-table-button:active.duet-theme-turva, .duet-theme-turva .duet-date-table-button:active, .duet-date-table-button:active.duet-theme-turva {
373
+ .duet-theme-turva .duet-date-table-button:active, .duet-date-table-button:active.duet-theme-turva {
375
374
  outline-color: rgba(53, 79, 101, 0.8);
376
375
  }
377
376
  :focus .duet-date-table-button {
@@ -380,7 +379,7 @@
380
379
  outline-color: rgba(0, 119, 179, 0.8);
381
380
  z-index: 200;
382
381
  }
383
- .duet-theme-turva :focus .duet-date-table-button, :focus .duet-date-table-button.duet-theme-turva, .duet-theme-turva :focus .duet-date-table-button, :focus .duet-date-table-button.duet-theme-turva {
382
+ .duet-theme-turva :focus .duet-date-table-button, :focus .duet-date-table-button.duet-theme-turva {
384
383
  outline-color: rgba(53, 79, 101, 0.8);
385
384
  }
386
385
  .duet-date-table-button.disabled {
@@ -452,7 +451,7 @@
452
451
  outline-offset: 2px;
453
452
  outline-color: rgba(0, 119, 179, 0.8);
454
453
  }
455
- .duet-theme-turva .duet-date-dialog-select select:focus + .duet-date-dialog-select-label, .duet-date-dialog-select select:focus + .duet-date-dialog-select-label.duet-theme-turva, .duet-theme-turva .duet-date-dialog-select select:focus + .duet-date-dialog-select-label, .duet-date-dialog-select select:focus + .duet-date-dialog-select-label.duet-theme-turva {
454
+ .duet-theme-turva .duet-date-dialog-select select:focus + .duet-date-dialog-select-label, .duet-date-dialog-select select:focus + .duet-date-dialog-select-label.duet-theme-turva {
456
455
  outline-color: rgba(53, 79, 101, 0.8);
457
456
  }
458
457
 
@@ -522,7 +521,7 @@
522
521
  outline-offset: 2px;
523
522
  outline-color: rgba(0, 119, 179, 0.8);
524
523
  }
525
- .duet-theme-turva .duet-date-picker-close:focus, .duet-date-picker-close:focus.duet-theme-turva, .duet-theme-turva .duet-date-picker-close:focus, .duet-date-picker-close:focus.duet-theme-turva {
524
+ .duet-theme-turva .duet-date-picker-close:focus, .duet-date-picker-close:focus.duet-theme-turva {
526
525
  outline-color: rgba(53, 79, 101, 0.8);
527
526
  }
528
527
  @media (min-width: 36em) {
@@ -51,7 +51,6 @@ export class DuetDatePicker {
51
51
  this.focusedDay = new Date();
52
52
  this.inputValue = "";
53
53
  this.inputHasFocus = false;
54
- this.internalValidityError = "";
55
54
  /**
56
55
  * Theme of the component.
57
56
  */
@@ -179,10 +178,9 @@ export class DuetDatePicker {
179
178
  this.handleBlur = (event) => {
180
179
  event.stopPropagation();
181
180
  this.inputHasFocus = false;
182
- if (!this._validity.valid) {
183
- this.value = null;
181
+ if (!this._validity.valid && !this.disableBuiltInErrors) {
184
182
  const errorKey = Object.entries(this._validity).find(entry => !!entry[1])[0];
185
- this.internalValidityError = getLocaleString(this.dateErrorMessages[errorKey]);
183
+ this.error = getLocaleString(this.dateErrorMessages[errorKey]);
186
184
  }
187
185
  this.duetBlur.emit({
188
186
  component: "duet-date-picker",
@@ -258,7 +256,6 @@ export class DuetDatePicker {
258
256
  this.handleDaySelect = (_event, day) => {
259
257
  const min = parseISODate(this.min);
260
258
  const max = parseISODate(this.max);
261
- this.determineValidity(day);
262
259
  if (inRange(day, min, max)) {
263
260
  this.setValue(day);
264
261
  this.hide();
@@ -273,10 +270,7 @@ export class DuetDatePicker {
273
270
  this.handleInputChange = (e) => {
274
271
  this.inputValue = e.detail.value;
275
272
  const parsed = parseDate(this.inputValue);
276
- this.determineValidity(parsed);
277
- if (parsed || this.inputValue === "") {
278
- this.setValue(parsed);
279
- }
273
+ this.setValue(parsed);
280
274
  };
281
275
  }
282
276
  /**
@@ -285,19 +279,15 @@ export class DuetDatePicker {
285
279
  * Useful properties to inspect are badInput, valueMissing, rangeOverflow, rangeUnderflow.
286
280
  */
287
281
  get validity() {
282
+ this.determineValidity();
288
283
  return this._validity;
289
284
  }
290
- updateValidity(newValue, _oldValue, propName) {
291
- if (propName === "value" && newValue === null) {
292
- return;
293
- }
294
- this.determineValidity(parseISODate(this.value));
295
- if (this._validity.valid) {
296
- this.internalValidityError = "";
297
- }
285
+ updateValidity() {
286
+ this.determineValidity();
298
287
  }
299
288
  updateInternalValue() {
300
- if (this.value === null) {
289
+ // don't clear input when user has focus there
290
+ if (!this.value && this.inputHasFocus) {
301
291
  return;
302
292
  }
303
293
  const parsedValue = parseISODate(this.value);
@@ -316,7 +306,7 @@ export class DuetDatePicker {
316
306
  */
317
307
  componentWillLoad() {
318
308
  inheritGlobalTheme(this);
319
- this.determineValidity(parseISODate(this.value));
309
+ this.determineValidity();
320
310
  this.updateInternalValue();
321
311
  checkNamedSlotElement(this.element, "tooltip", "duet-tooltip", 1, true);
322
312
  }
@@ -403,13 +393,14 @@ export class DuetDatePicker {
403
393
  setFocusedDay(day) {
404
394
  this.focusedDay = clamp(day, parseISODate(this.min), parseISODate(this.max));
405
395
  }
406
- determineValidity(date) {
396
+ determineValidity() {
407
397
  var _a, _b;
398
+ const valueAsDate = parseISODate(this.value);
408
399
  const inputValue = (_b = (_a = this.datePickerInput) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : "";
409
- const badInput = inputValue !== "" && date == null;
410
- const valueMissing = this.required && date == null;
411
- const rangeOverflow = date ? !inRange(date, null, parseISODate(this.max)) : false;
412
- const rangeUnderflow = date ? !inRange(date, parseISODate(this.min)) : false;
400
+ const badInput = !valueAsDate && inputValue !== "";
401
+ const valueMissing = !valueAsDate && this.required;
402
+ const rangeOverflow = valueAsDate ? !inRange(valueAsDate, null, parseISODate(this.max)) : false;
403
+ const rangeUnderflow = valueAsDate ? !inRange(valueAsDate, parseISODate(this.min)) : false;
413
404
  this._validity = {
414
405
  patternMismatch: false,
415
406
  customError: false,
@@ -423,6 +414,9 @@ export class DuetDatePicker {
423
414
  valueMissing,
424
415
  valid: !(valueMissing || badInput || rangeUnderflow || rangeOverflow),
425
416
  };
417
+ if (this._validity.valid) {
418
+ this.error = "";
419
+ }
426
420
  }
427
421
  setValue(date) {
428
422
  const newValue = printISODate(date);
@@ -430,6 +424,7 @@ export class DuetDatePicker {
430
424
  return;
431
425
  }
432
426
  this.value = newValue;
427
+ this.determineValidity();
433
428
  this.duetChange.emit({
434
429
  component: "duet-date-picker",
435
430
  value: this.value,
@@ -480,13 +475,13 @@ export class DuetDatePicker {
480
475
  if (maxDate) {
481
476
  maxYear = Math.min(maxYear, maxDate.getFullYear());
482
477
  }
483
- return (h(Host, { key: '2f9dd355a80f9ed65cc0cfa90d674f426bad4c59', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" } }, h("div", { key: '8c023088cf474e2b460139486e85974f53963981', class: "duet-date" }, h(DatePickerInput, { key: '0c678c083138be043f01d6df1522e385a7ee122a', hasFocus: this.inputHasFocus, value: this.value, valueAsDate: valueAsDate, formattedValue: this.inputValue, language: this.language, onInput: this.handleInputChange, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.toggleOpen, name: this.name, disabled: this.disabled, error: this.error || (!this.disableBuiltInErrors && this.internalValidityError) || null, role: this.role, required: this.required, theme: this.theme, tooltip: this.tooltip, tooltipDirection: this.tooltipDirection, labelHidden: this.labelHidden, placeholder: this.placeholder, inputLabel: this.label, identifier: this.identifier, buttonRef: element => (this.datePickerButton = element), inputRef: element => (this.datePickerInput = element), accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy, accessibleLiveError: this.accessibleLiveError, echoPlaceholder: this.echoPlaceholder, caption: this.caption })), h("div", { key: 'efec9f5c773e36d4e418dac06036390b50bff2a5', class: {
478
+ return (h(Host, { key: '5ebd34bf6ba1033b890138e5523f45fecd17eaf4', class: { "duet-expand": this.expand, "duet-m-0": this.margin === "none" } }, h("div", { key: '8c4b995485be3c6b070ce738f3416db0d9683771', class: "duet-date" }, h(DatePickerInput, { key: 'c0b308099cd5c56790a1160d10a682551ce9da7e', hasFocus: this.inputHasFocus, value: this.value, valueAsDate: valueAsDate, formattedValue: this.inputValue, language: this.language, onInput: this.handleInputChange, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.toggleOpen, name: this.name, disabled: this.disabled, error: this.error, role: this.role, required: this.required, theme: this.theme, tooltip: this.tooltip, tooltipDirection: this.tooltipDirection, labelHidden: this.labelHidden, placeholder: this.placeholder, inputLabel: this.label, identifier: this.identifier, buttonRef: element => (this.datePickerButton = element), inputRef: element => (this.datePickerInput = element), accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy, accessibleLiveError: this.accessibleLiveError, echoPlaceholder: this.echoPlaceholder, caption: this.caption })), h("div", { key: 'cca008327d5a939054a1b2abd748b08170b19a07', class: {
484
479
  "duet-theme-turva": this.theme === "turva",
485
480
  "duet-date-dialog": true,
486
481
  left: this.direction === "left",
487
482
  error: !!this.error,
488
483
  active: this.open,
489
- }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, h("duet-overlay", { key: '130f52a0f0194b1186619bf6426f97a68c079c11', visible: this.open, "display-device": "x-small" }), h(FocusGuard, { key: 'b4c229e9d91c822d87702677e213f8753f344017', moveFocusTo: this.focusedDayNode }), h("div", { key: '3ce07367a559781b9872669665186af5572305ca', class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, h("duet-visually-hidden", { key: '7740bce6549fc3423947947f68d7e8950baa440d', "aria-live": "polite" }, text.keyboardInstruction), h("div", { key: '2d80551888be784d8ea12b74c43df593c4701e83', class: "duet-date-dialog-mobile-header" }, h(DuetInternalLabel, { key: '27d2994191b94efe00484fbd25d96537d6ed11b2', margin: "none" }, this.label), h("button", { key: '82cf74d2d7aff047562d13320496248d352c1e82', class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, h("duet-icon", { key: '92b2e5fd52e4206c00acfd56e0d515d08e4527b1', name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), h("duet-visually-hidden", { key: '738da11657cbac3ed52ef22490165f4ac76c6ea6' }, text.closeLabel))), h("div", { key: 'e8922fed8ac11149bb603c912d278c0b3843b214', class: "duet-date-dialog-header" }, h("div", { key: 'e922554dbea94dfa70e62983ee6a0b08f8e159d7', class: "duet-date-dialog-dropdowns" }, h("duet-visually-hidden", { key: '873ba9c661e3c280c88fffc510dcceab0b2d5863' }, h("h2", { key: 'c769e12a0c0c668164d25d7864a711d0f9268f09', id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), h("duet-visually-hidden", { key: '5941e8d2cd0f5baec6001808c68cb4c51b37db86' }, h("label", { key: 'bee65da8486f65afe8d18e90b1daed308dda8864', htmlFor: this.monthSelectId }, text.monthSelectLabel)), h("div", { key: 'f9fd8b52eaa90fd555d737e2691b51260592101a', class: "duet-date-dialog-select" }, h("select", { key: '83b7003769bf0042228e2ed36ad4118e8f0f1ab2', id: this.monthSelectId, class: "duet-date-month-select", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, text.monthLabels.map((month, i) => (h("option", { key: month, value: i, selected: i === focusedMonth, disabled: !inRange(new Date(focusedYear, i, 1), minDate ? startOfMonth(minDate) : null, maxDate ? endOfMonth(maxDate) : null) }, month)))), h("div", { key: '1d9bbde4fcc96fbcaf2d714ecc34a58c755dfc7d', class: "duet-date-dialog-select-label", "aria-hidden": "true" }, h("span", { key: '3c4be7bf8fefa6ee1f5cede7eeb34ebfeaae35a1' }, text.monthLabelsShort[focusedMonth]), h("duet-icon", { key: '4eece4a65cb58ba45a30e4fd2cf179d61b05625f', name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), h("duet-visually-hidden", { key: '700e9f50a74a6113c33f149427169ae9917badc0' }, h("label", { key: 'c5f8403791830d9b0ad68ed66af8c3f1c26310e3', htmlFor: this.yearSelectId }, text.yearSelectLabel)), h("div", { key: '2c69022a45ab3effd4c907cc6d5c5a508bbb99f7', class: "duet-date-dialog-select" }, h("select", { key: 'fee0495e004775929f7b7aeb66278ac8b4fd003d', id: this.yearSelectId, class: "duet-date-year-select", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (h("option", { key: year, selected: year === focusedYear }, year)))), h("div", { key: 'e50ff66c34ee36e965843e68e1fb3d26690ce1ed', class: "duet-date-dialog-select-label", "aria-hidden": "true" }, h("span", { key: '9808b372ac9fea0ce5c51acee5ee407d5906e3f1' }, this.focusedDay.getFullYear()), h("duet-icon", { key: '90c5c74c91d9e3df13e70987f66c2964feca8cf5', name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), h("div", { key: 'f66a8e9e9fba23a7a8c9d871f1ff0bbfa6b39b37', class: "duet-date-dialog-buttons" }, h("duet-action-button", { key: 'fe1df2d1456357c2ae731b66c302c45a33f40d06', accessibleLabel: i18n[this.language].prevMonthLabel, actionName: i18n[this.language].prevMonthLabel, class: "duet-date-dialog-prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, "icon-name": "action-arrow-left-small" }, text.prevMonthLabel), h("duet-action-button", { key: '86db10ad2c3d1ab190690ae65d4c778084194089', accessibleLabel: i18n[this.language].nextMonthLabel, actionName: i18n[this.language].nextMonthLabel, class: "duet-date-dialog-next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, "icon-name": "action-arrow-right-small" }, text.nextMonthLabel))), h(DatePickerMonth, { key: '741527916476f5959328595373dc3e11b02b0df2', selectedDate: valueAsDate, focusedDate: this.focusedDay, onDateSelect: this.handleDaySelect, onKeyboardNavigation: this.handleKeyboardNavigation, labelledById: this.dialogLabelId, language: this.language, theme: this.theme, min: minDate, max: maxDate, focusedDayRef: element => (this.focusedDayNode = element), onFocusEnter: this.enableActiveFocus, onFocusExit: this.disableActiveFocus })), h(FocusGuard, { key: 'de920ae43a19a7ca9790056fd3a9f51a08039d4f', moveFocusTo: this.closeButtonNode }))));
484
+ }, role: "dialog", "aria-modal": "true", "aria-hidden": this.open ? "false" : "true", "aria-labelledby": this.dialogLabelId, onTouchMove: this.handleTouchMove, onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, h("duet-overlay", { key: 'fcb2d3f3fd5333529c2ebc82590a6a543112a5f4', visible: this.open, "display-device": "x-small" }), h(FocusGuard, { key: '0de38fdb796337ec9448bcff1bb652776fdf6f60', moveFocusTo: this.focusedDayNode }), h("div", { key: '9950afbc58987e498e2e6734fd6af177c65d94a8', class: "duet-date-dialog-wrapper", onKeyDown: this.handleEscKey, ref: element => (this.dialogWrapperNode = element) }, h("duet-visually-hidden", { key: '2394f33f1efd2e0626b2a1bc3642a73193798b13', "aria-live": "polite" }, text.keyboardInstruction), h("div", { key: '74b68ad35d92ab0c2616be5466ea6b8b2c1a1451', class: "duet-date-dialog-mobile-header" }, h(DuetInternalLabel, { key: '7385d9ef814cf4557cf903f705b38a7571369d0f', margin: "none" }, this.label), h("button", { key: '5ba61af3c6b024f1f3ef531b412e5c20243d83ca', class: "duet-date-picker-close", ref: element => (this.closeButtonNode = element), onClick: () => this.hide(), type: "button" }, h("duet-icon", { key: '14e320af49eb06c184cfe918a67f278bdac888bf', name: "navigation-close-small", margin: "none", color: "currentColor", size: "xx-small" }), h("duet-visually-hidden", { key: 'b58668ebd6f0849ae6e8f0454800b4ceb916443e' }, text.closeLabel))), h("div", { key: '79a07d6373ca479f45808ff3eef1ea6239148b26', class: "duet-date-dialog-header" }, h("div", { key: '6f08a300db74dd1562c658334c8220fc1569228c', class: "duet-date-dialog-dropdowns" }, h("duet-visually-hidden", { key: '400b1451a2180e0a189a5c1e7c27139647ec5539' }, h("h2", { key: '47225d656584304da5b114f0430e17cb74a38e53', id: this.dialogLabelId, "aria-live": "polite", "aria-atomic": "true" }, text.monthLabels[focusedMonth], " ", this.focusedDay.getFullYear())), h("duet-visually-hidden", { key: 'b66a24df41db7807ed3c0d3f36d380a897360fa6' }, h("label", { key: 'aae8cf780c5452e1399421e177309ad7a9179803', htmlFor: this.monthSelectId }, text.monthSelectLabel)), h("div", { key: 'f2bad2498489114a7bc0ffd6fc8c4f842b507e43', class: "duet-date-dialog-select" }, h("select", { key: '9d58e711523ace0781cc27947fb9ecc52bda8499', id: this.monthSelectId, class: "duet-date-month-select", ref: element => (this.monthSelectNode = element), onChange: this.handleMonthSelect }, text.monthLabels.map((month, i) => (h("option", { key: month, value: i, selected: i === focusedMonth, disabled: !inRange(new Date(focusedYear, i, 1), minDate ? startOfMonth(minDate) : null, maxDate ? endOfMonth(maxDate) : null) }, month)))), h("div", { key: '914f0bef1d172d4d5391991fd9f8206f7d0576df', class: "duet-date-dialog-select-label", "aria-hidden": "true" }, h("span", { key: '7aebf3e0cbc22a117a5e155e0dd4518189f9b946' }, text.monthLabelsShort[focusedMonth]), h("duet-icon", { key: 'faf140d4032093b37db295f06e23ea761fa27c65', name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" }))), h("duet-visually-hidden", { key: '66399d5d57f605fe4db9c13ee13bcf89f4d38efd' }, h("label", { key: '76256efb6db83d4165a903420b70e9a6d43a2e49', htmlFor: this.yearSelectId }, text.yearSelectLabel)), h("div", { key: 'e871aa90559d85cad33752f52a6e538571e6984f', class: "duet-date-dialog-select" }, h("select", { key: 'af2e90cb3d28123c36c83853753be30beff06400', id: this.yearSelectId, class: "duet-date-year-select", onChange: this.handleYearSelect }, range(minYear, maxYear).map(year => (h("option", { key: year, selected: year === focusedYear }, year)))), h("div", { key: 'a1487d1853c56fc62c20bf2b3df60cc73d666017', class: "duet-date-dialog-select-label", "aria-hidden": "true" }, h("span", { key: 'ad43c7efa4a93e4417c2051e000fe0f786b35612' }, this.focusedDay.getFullYear()), h("duet-icon", { key: '5c42115e3dd7c4a48e5cae87b5f03ed274087ba5', name: "action-arrow-down-small", color: "currentColor", margin: "none", size: "xxx-small" })))), h("div", { key: 'bc63edbea7a3b069774fc0b8766983f570479501', class: "duet-date-dialog-buttons" }, h("duet-action-button", { key: 'e3cb3ade86eeedbaf914d104ce9b638109708eb6', accessibleLabel: i18n[this.language].prevMonthLabel, actionName: i18n[this.language].prevMonthLabel, class: "duet-date-dialog-prev", onClick: this.handlePreviousMonthClick, disabled: prevMonthDisabled, "icon-name": "action-arrow-left-small" }, text.prevMonthLabel), h("duet-action-button", { key: '3d1b9df7ab5852d770d6c98285b73e002a9f4468', accessibleLabel: i18n[this.language].nextMonthLabel, actionName: i18n[this.language].nextMonthLabel, class: "duet-date-dialog-next", onClick: this.handleNextMonthClick, disabled: nextMonthDisabled, "icon-name": "action-arrow-right-small" }, text.nextMonthLabel))), h(DatePickerMonth, { key: 'fb66dbdf2065a158a265490a6f7c0ace038919d5', selectedDate: valueAsDate, focusedDate: this.focusedDay, onDateSelect: this.handleDaySelect, onKeyboardNavigation: this.handleKeyboardNavigation, labelledById: this.dialogLabelId, language: this.language, theme: this.theme, min: minDate, max: maxDate, focusedDayRef: element => (this.focusedDayNode = element), onFocusEnter: this.enableActiveFocus, onFocusExit: this.disableActiveFocus })), h(FocusGuard, { key: 'b40a59659930ae4a47fb6d8dd45f334e5fcdf026', moveFocusTo: this.closeButtonNode }))));
490
485
  }
491
486
  static get is() { return "duet-date-picker"; }
492
487
  static get encapsulation() { return "shadow"; }
@@ -780,7 +775,7 @@ export class DuetDatePicker {
780
775
  "error": {
781
776
  "type": "string",
782
777
  "attribute": "error",
783
- "mutable": false,
778
+ "mutable": true,
784
779
  "complexType": {
785
780
  "original": "string",
786
781
  "resolved": "string",
@@ -1154,8 +1149,7 @@ export class DuetDatePicker {
1154
1149
  "open": {},
1155
1150
  "focusedDay": {},
1156
1151
  "inputValue": {},
1157
- "inputHasFocus": {},
1158
- "internalValidityError": {}
1152
+ "inputHasFocus": {}
1159
1153
  };
1160
1154
  }
1161
1155
  static get events() {
@@ -32,7 +32,7 @@ export class DuetDivider {
32
32
  */
33
33
  render() {
34
34
  const background = getColorByName(this.color);
35
- return (h("div", { key: 'fc0e7562cb30da77115c7a07938f9d586df909d5', class: {
35
+ return (h("div", { key: 'a833c22a31c93caea94753696848ad720b5dc06d', class: {
36
36
  "duet-m-0": this.margin === "none",
37
37
  "duet-m-s": this.margin === "small",
38
38
  "duet-divider": true,
@@ -206,7 +206,7 @@ export class DuetEditableTable {
206
206
  * Render Methods
207
207
  */
208
208
  render() {
209
- return (h(Host, { key: '5b1b28e6321b07a1d385c1945f15b0c110a8b068', class: {
209
+ return (h(Host, { key: 'a0c3202194fcc3910b50193f2a4fcb3bd7d3a5d8', class: {
210
210
  [`duet-editable-table-${this.variation}`]: true,
211
211
  "duet-editable-table": true,
212
212
  [`duet-editable-table-${this.theme}`]: true,
@@ -216,7 +216,7 @@ export class DuetEditableTable {
216
216
  "duet-editable-table-actions": !!this.actions,
217
217
  "duet-m-0": this.margin === "none",
218
218
  "duet-theme-turva": this.theme === "turva",
219
- } }, h("duet-table", { key: '47a4b4e9d3acf3ca83e70c1aa4e7758e1f6cbbbe', class: "duet-editable-table-table", sticky: this.sticky, stickyDistance: this.stickyDistance, margin: this.margin, theme: this.theme, variation: this.variation, breakpoint: this.breakpoint, "hide-head-visually": this.hideHeadVisually }, h("table", { key: '975344f17b9271b8ffa4264751aa2dae69279f45', role: this.accessibleRole }, h("caption", { key: 'e9039bfd4c5bf90f96856d13d993be7f13fa2d73' }, h("slot", { key: '38a7cd2c82e45ebcc080e1e20f3f77aa2a46973d', name: "tcaption" })), h("thead", { key: 'c4a02a18bfae96669f45328f6198dc52f43dd887' }, this.hasHeadSlotFirst && (h("tr", { key: 'af846dfeba040ddec43065803327195bea76a404' }, h("td", { key: 'c002827f8c8c6cce8d8d4415c80e4f39d4bb1ed6', class: "duet-editable-table-actions-menu", colSpan: 99 }, h("slot", { key: '5673bc937f4bc87b67f6112f59a1981ff7f02c79', name: "thead-first" })))), this.renderTableHeader(), this.hasHeadSlotLast && (h("tr", { key: '79a45db93db0d6e5e35aade928f23032efdb821b' }, h("td", { key: 'fddd1434bf5a20188be229e5c3d9bde03b8d8dca', class: "duet-editable-table-actions-menu", colSpan: 99 }, h("slot", { key: '53b1ea3494b7e0f39426232f922a040eacf3a0f0', name: "thead-last" }))))), h("tbody", { key: 'b5d38eed528592d29f64f749e1938d0ff5b772b3' }, this.renderTableBody()), this.hasFootSlot && (h("tfoot", { key: 'e2ef34f7d078a7ac7b4a38cd5953b449ce682a23' }, h("tr", { key: '9f2a92be2f425c419abd5fa1a0a7fb763cc0426b' }, h("td", { key: 'da2eeda1f65004cc2c197dad36038dc4a60c2e8e', class: "duet-editable-table-footer-menu", colSpan: 99 }, h("slot", { key: '988c400cb8046f0544293b8e1555f7b213f9def6', name: "tfoot" })))))))));
219
+ } }, h("duet-table", { key: '6e53631c212527e8702f9e9c8a1b9bc2b390c830', class: "duet-editable-table-table", sticky: this.sticky, stickyDistance: this.stickyDistance, margin: this.margin, theme: this.theme, variation: this.variation, breakpoint: this.breakpoint, "hide-head-visually": this.hideHeadVisually }, h("table", { key: '990481c1affeb11d6a6541a36a8f0118c961915c', role: this.accessibleRole }, h("caption", { key: 'f7b1bc44ab9fef0194485fdd6e49e11a306e365c' }, h("slot", { key: '2caecec6e5c024bdde6fa6bf72917914e2626752', name: "tcaption" })), h("thead", { key: 'c892dcd586814dcecddc46fbaf0319b04b6d9f16' }, this.hasHeadSlotFirst && (h("tr", { key: 'bfbac21dbab8afab7f34e952bd5803954be4991d' }, h("td", { key: '0a491ed1c4855d55b4dbc493a52029d657a08cc5', class: "duet-editable-table-actions-menu", colSpan: 99 }, h("slot", { key: '87c033e72a1bd3b87a51a4981b1b4939de66578d', name: "thead-first" })))), this.renderTableHeader(), this.hasHeadSlotLast && (h("tr", { key: '2ab66f9b14fe592f7ee7e6293cdd56b3aed0190e' }, h("td", { key: 'edb3ae066371b6f5dc990f10f088246c0d9388d9', class: "duet-editable-table-actions-menu", colSpan: 99 }, h("slot", { key: 'f57ebf07ee01c40cb47469b2fa07a706c4724dae', name: "thead-last" }))))), h("tbody", { key: '538b2de606132fcb272e5af1650cafb947fc5b2a' }, this.renderTableBody()), this.hasFootSlot && (h("tfoot", { key: '2f1a98dd550705933222f7179bc3ff4d6554d117' }, h("tr", { key: 'ecb9667d57ea85de7efa6fa0035fbfbb16c78a9e' }, h("td", { key: 'c78b25495de0621c55f70cce5131b1d192fc5e0e', class: "duet-editable-table-footer-menu", colSpan: 99 }, h("slot", { key: 'ed051b0e66c28fdbee565b33c1c394034a817a82', name: "tfoot" })))))))));
220
220
  }
221
221
  static get is() { return "duet-editable-table"; }
222
222
  static get encapsulation() { return "shadow"; }
@@ -40,10 +40,63 @@
40
40
  color: rgb(8, 42, 77);
41
41
  text-align: center;
42
42
  background: rgb(245, 248, 250);
43
- border-radius: 4px;
43
+ border-radius: 12px;
44
+ }
45
+ .duet-empty-state.padding-small {
46
+ padding: 36px;
47
+ }
48
+ .duet-empty-state.padding-large {
49
+ padding: 72px;
50
+ }
51
+ .duet-empty-state.warning {
52
+ background: rgb(255, 247, 221);
53
+ }
54
+ .duet-empty-state.duet-no-background {
55
+ background: none;
56
+ }
57
+ .duet-empty-state > div {
58
+ max-width: 800px;
59
+ margin: auto;
60
+ }
61
+ .duet-empty-state .duet-empty-state-heading {
62
+ font-size: 4vw;
63
+ font-family: "localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
64
+ font-style: normal;
65
+ font-weight: 600;
66
+ line-height: 1.25;
67
+ color: rgb(8, 42, 77);
68
+ letter-spacing: 0;
69
+ }
70
+ @media (max-width: 27.5rem) {
71
+ .duet-empty-state .duet-empty-state-heading {
72
+ font-size: 1.1rem;
73
+ }
74
+ }
75
+ @media (min-width: 28.4090909091rem) {
76
+ .duet-empty-state .duet-empty-state-heading {
77
+ font-size: 1.1363636364rem;
78
+ }
79
+ }
80
+ @container (width < 576px) {
81
+ .duet-empty-state {
82
+ padding: 36px;
83
+ }
84
+ .duet-empty-state.padding-small {
85
+ padding: 28px;
86
+ }
87
+ .duet-empty-state.padding-large {
88
+ padding: 48px;
89
+ }
44
90
  }
45
91
 
46
- .duet-empty-state.duet-theme-turva {
92
+ .duet-theme-turva.duet-empty-state {
47
93
  color: rgb(23, 42, 59);
94
+ }
95
+ .duet-theme-turva.duet-empty-state:not(.warning):not(.duet-no-background) {
48
96
  background: rgb(245, 246, 247);
97
+ }
98
+ .duet-theme-turva.duet-empty-state .duet-empty-state-heading {
99
+ font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
100
+ font-weight: 700;
101
+ color: rgb(23, 42, 59);
49
102
  }