@duetds/components 9.13.0 → 9.15.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 (769) hide show
  1. package/hydrate/index.js +460 -251
  2. package/lib/cjs/{a11y-utils-7f0f44ac.js → a11y-utils-741fad59.js} +1 -1
  3. package/lib/cjs/{app-globals-7f261ff1.js → app-globals-c5cb9046.js} +1 -1
  4. package/lib/cjs/{common-strings-a54bbf77.js → common-strings-92c2f034.js} +23 -0
  5. package/lib/cjs/duet-action-button.cjs.entry.js +4 -4
  6. package/lib/cjs/duet-alert.cjs.entry.js +20 -32
  7. package/lib/cjs/duet-badge.cjs.entry.js +16 -4
  8. package/lib/cjs/duet-banner.cjs.entry.js +7 -7
  9. package/lib/cjs/duet-breadcrumb.cjs.entry.js +7 -7
  10. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +6 -6
  11. package/lib/cjs/duet-button_2.cjs.entry.js +13 -13
  12. package/lib/cjs/duet-callout.cjs.entry.js +5 -5
  13. package/lib/cjs/duet-caption_4.cjs.entry.js +15 -14
  14. package/lib/cjs/duet-card.cjs.entry.js +9 -8
  15. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  16. package/lib/cjs/duet-checkmark.cjs.entry.js +4 -4
  17. package/lib/cjs/duet-chip.cjs.entry.js +3 -3
  18. package/lib/cjs/duet-choice_2.cjs.entry.js +28 -21
  19. package/lib/cjs/duet-collapsible.cjs.entry.js +3 -3
  20. package/lib/cjs/duet-combobox.cjs.entry.js +4 -4
  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 +18 -8
  24. package/lib/cjs/duet-divider_2.cjs.entry.js +4 -4
  25. package/lib/cjs/duet-editable-table_3.cjs.entry.js +9 -9
  26. package/lib/cjs/duet-empty-state.cjs.entry.js +2 -2
  27. package/lib/cjs/duet-fieldset.cjs.entry.js +6 -6
  28. package/lib/cjs/duet-file-chooser.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-footer.cjs.entry.js +5 -5
  30. package/lib/cjs/duet-grid_2.cjs.entry.js +2 -2
  31. package/lib/cjs/duet-header_2.cjs.entry.js +7 -6
  32. package/lib/cjs/duet-hero.cjs.entry.js +6 -6
  33. package/lib/cjs/duet-icon.cjs.entry.js +6 -6
  34. package/lib/cjs/duet-input_2.cjs.entry.js +6 -6
  35. package/lib/cjs/duet-layout.cjs.entry.js +2 -2
  36. package/lib/cjs/duet-list_2.cjs.entry.js +4 -4
  37. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +4 -4
  38. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +4 -4
  39. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +6 -6
  40. package/lib/cjs/duet-menu-bar-item.cjs.entry.js +8 -8
  41. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +4 -4
  42. package/lib/cjs/duet-menu-bar.cjs.entry.js +3 -3
  43. package/lib/cjs/duet-modal.cjs.entry.js +40 -21
  44. package/lib/cjs/duet-multiselect.cjs.entry.js +4 -4
  45. package/lib/cjs/duet-nav.cjs.entry.js +3 -3
  46. package/lib/cjs/duet-notification_2.cjs.entry.js +5 -5
  47. package/lib/cjs/duet-number-input.cjs.entry.js +11 -7
  48. package/lib/cjs/duet-overlay.cjs.entry.js +2 -2
  49. package/lib/cjs/duet-page-heading.cjs.entry.js +4 -4
  50. package/lib/cjs/duet-pagination_2.cjs.entry.js +6 -6
  51. package/lib/cjs/duet-panel.cjs.entry.js +47 -0
  52. package/lib/cjs/duet-phone-input.cjs.entry.js +4 -4
  53. package/lib/cjs/duet-popup-menu_2.cjs.entry.js +6 -6
  54. package/lib/cjs/duet-progress.cjs.entry.js +3 -3
  55. package/lib/cjs/duet-promo-card.cjs.entry.js +6 -6
  56. package/lib/cjs/duet-radio_2.cjs.entry.js +3 -3
  57. package/lib/cjs/duet-range-slider.cjs.entry.js +2 -2
  58. package/lib/cjs/duet-scrollable_3.cjs.entry.js +24 -21
  59. package/lib/cjs/duet-section-layout.cjs.entry.js +4 -4
  60. package/lib/cjs/duet-select.cjs.entry.js +4 -4
  61. package/lib/cjs/duet-shaped-image.cjs.entry.js +4 -4
  62. package/lib/cjs/duet-share-chart-item.cjs.entry.js +2 -2
  63. package/lib/cjs/duet-share-chart.cjs.entry.js +9 -7
  64. package/lib/cjs/duet-show-more.cjs.entry.js +5 -5
  65. package/lib/cjs/duet-slideout-lang.cjs.entry.js +4 -4
  66. package/lib/cjs/duet-slideout-link.cjs.entry.js +8 -8
  67. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +6 -6
  68. package/lib/cjs/duet-slideout-panel.cjs.entry.js +12 -12
  69. package/lib/cjs/duet-slideout.cjs.entry.js +10 -10
  70. package/lib/cjs/duet-status-icon.cjs.entry.js +3 -3
  71. package/lib/cjs/duet-step_2.cjs.entry.js +5 -5
  72. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +4 -4
  73. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +6 -6
  74. package/lib/cjs/duet-submenu-bar-item.cjs.entry.js +7 -7
  75. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +3 -3
  76. package/lib/cjs/duet-submenu-bar.cjs.entry.js +7 -7
  77. package/lib/cjs/duet-textarea.cjs.entry.js +4 -4
  78. package/lib/cjs/duet-toggle.cjs.entry.js +2 -2
  79. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +4 -4
  80. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +6 -6
  81. package/lib/cjs/duet-toolbar-item.cjs.entry.js +9 -9
  82. package/lib/cjs/duet-toolbar-link.cjs.entry.js +4 -4
  83. package/lib/cjs/duet-toolbar.cjs.entry.js +4 -4
  84. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +8 -8
  85. package/lib/cjs/duet-tooltip.cjs.entry.js +3 -3
  86. package/lib/cjs/duet-tray.cjs.entry.js +5 -5
  87. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +2 -2
  88. package/lib/cjs/duet-upload-item.cjs.entry.js +6 -6
  89. package/lib/cjs/duet-visually-hidden.cjs.entry.js +2 -2
  90. package/lib/cjs/duet.cjs.js +3 -3
  91. package/lib/cjs/{errorcodes.utils-cde5cb76.js → errorcodes.utils-699bddbb.js} +1 -1
  92. package/lib/cjs/{focus-utils-3b3e2586.js → focus-utils-4a07d896.js} +1 -1
  93. package/lib/cjs/{index-4babbdda.js → index-80fa07e3.js} +5 -1
  94. package/lib/cjs/{language-utils-83791d57.js → language-utils-ce60d2a9.js} +1 -1
  95. package/lib/cjs/loader.cjs.js +3 -3
  96. package/lib/cjs/{slot-utils-c565d8b9.js → slot-utils-9c5efe2a.js} +1 -1
  97. package/lib/cjs/{themeable-component-a007f8ee.js → themeable-component-1307284b.js} +1 -1
  98. package/lib/cjs/{token-utils-6258d3f7.js → token-utils-658c4c54.js} +103 -7
  99. package/lib/collection/collection-manifest.json +1 -0
  100. package/lib/collection/common-strings.js +22 -0
  101. package/lib/collection/components/duet-alert/duet-alert.js +17 -29
  102. package/lib/collection/components/duet-badge/duet-badge.js +13 -2
  103. package/lib/collection/components/duet-banner/duet-banner.css +1 -0
  104. package/lib/collection/components/duet-banner/duet-banner.js +3 -3
  105. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  106. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  107. package/lib/collection/components/duet-button/duet-button.css +14 -5
  108. package/lib/collection/components/duet-button/duet-button.js +5 -5
  109. package/lib/collection/components/duet-callout/duet-callout.js +2 -2
  110. package/lib/collection/components/duet-card/duet-card.js +31 -4
  111. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  112. package/lib/collection/components/duet-choice/duet-choice.js +0 -21
  113. package/lib/collection/components/duet-choice-group/duet-choice-group.js +23 -14
  114. package/lib/collection/components/duet-contact-card/duet-contact-card.js +2 -2
  115. package/lib/collection/components/duet-date-picker/date-picker-day.js +6 -1
  116. package/lib/collection/components/duet-date-picker/date-utils.js +6 -1
  117. package/lib/collection/components/duet-date-picker/duet-date-picker.css +2 -2
  118. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  119. package/lib/collection/components/duet-header/duet-header.js +3 -2
  120. package/lib/collection/components/duet-heading/duet-heading.css +1 -0
  121. package/lib/collection/components/duet-hero/duet-hero.css +95 -0
  122. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  123. package/lib/collection/components/duet-label/duet-label.js +1 -1
  124. package/lib/collection/components/duet-link/duet-link.js +5 -4
  125. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  126. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  127. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  128. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  129. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  130. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  131. package/lib/collection/components/duet-modal/duet-modal.js +98 -15
  132. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  133. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  134. package/lib/collection/components/duet-number-input/duet-number-input.js +8 -4
  135. package/lib/collection/components/duet-page-heading/duet-page-heading.js +2 -2
  136. package/lib/collection/components/duet-panel/duet-panel.css +98 -0
  137. package/lib/collection/components/duet-panel/duet-panel.js +225 -0
  138. package/lib/collection/components/duet-paragraph/duet-paragraph.js +2 -2
  139. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  140. package/lib/collection/components/duet-promo-card/duet-promo-card.js +3 -3
  141. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -2
  142. package/lib/collection/components/duet-scrollable/duet-scrollable.js +6 -6
  143. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  144. package/lib/collection/components/duet-select/duet-select.js +1 -1
  145. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  146. package/lib/collection/components/duet-share-chart/duet-share-chart.js +4 -2
  147. package/lib/collection/components/duet-share-chart-item/duet-share-chart-item.js +1 -1
  148. package/lib/collection/components/duet-show-more/duet-show-more.js +2 -2
  149. package/lib/collection/components/duet-slideout/duet-slideout.js +4 -4
  150. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  151. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  152. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  153. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  154. package/lib/collection/components/duet-spacer/duet-spacer.js +1 -1
  155. package/lib/collection/components/duet-spinner/duet-spinner.js +2 -2
  156. package/lib/collection/components/duet-status-icon/duet-status-icon.js +2 -2
  157. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  158. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  159. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  160. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  161. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  162. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  163. package/lib/collection/components/duet-tab-group/duet-tab-group.js +14 -11
  164. package/lib/collection/components/duet-table/duet-table.js +2 -2
  165. package/lib/collection/components/duet-toolbar/duet-toolbar.js +2 -2
  166. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  167. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  168. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +3 -3
  169. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  170. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +3 -3
  171. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +2 -2
  172. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  173. package/lib/collection/components/duet-upload/duet-upload.js +2 -2
  174. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  175. package/lib/collection/components/duet-upload-item/duet-upload-item.js +2 -2
  176. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  177. package/lib/collection/utils/token-utils.js +59 -7
  178. package/lib/collection/utils/turva2-color-tokens.js +42 -0
  179. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  180. package/lib/dist-custom-elements/duet-alert.js +1 -1
  181. package/lib/dist-custom-elements/duet-badge.js +1 -1
  182. package/lib/dist-custom-elements/duet-banner.js +7 -7
  183. package/lib/dist-custom-elements/duet-breadcrumb.js +7 -7
  184. package/lib/dist-custom-elements/duet-breadcrumbs.js +4 -4
  185. package/lib/dist-custom-elements/duet-button.js +1 -1
  186. package/lib/dist-custom-elements/duet-callout.js +4 -4
  187. package/lib/dist-custom-elements/duet-caption.js +1 -1
  188. package/lib/dist-custom-elements/duet-card.js +10 -8
  189. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  190. package/lib/dist-custom-elements/duet-checkmark.js +1 -1
  191. package/lib/dist-custom-elements/duet-chip.js +1 -1
  192. package/lib/dist-custom-elements/duet-choice-group.js +31 -22
  193. package/lib/dist-custom-elements/duet-choice.js +5 -7
  194. package/lib/dist-custom-elements/duet-collapsible.js +3 -3
  195. package/lib/dist-custom-elements/duet-combobox.js +15 -15
  196. package/lib/dist-custom-elements/duet-contact-card.js +10 -10
  197. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  198. package/lib/dist-custom-elements/duet-date-picker.js +26 -16
  199. package/lib/dist-custom-elements/duet-divider.js +1 -1
  200. package/lib/dist-custom-elements/duet-editable-table.js +7 -7
  201. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  202. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  203. package/lib/dist-custom-elements/duet-file-chooser.js +2 -2
  204. package/lib/dist-custom-elements/duet-footer.js +8 -8
  205. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  206. package/lib/dist-custom-elements/duet-grid.js +1 -1
  207. package/lib/dist-custom-elements/duet-header.js +12 -11
  208. package/lib/dist-custom-elements/duet-heading.js +1 -1
  209. package/lib/dist-custom-elements/duet-hero.js +11 -11
  210. package/lib/dist-custom-elements/duet-icon.js +1 -1
  211. package/lib/dist-custom-elements/duet-input.js +1 -1
  212. package/lib/dist-custom-elements/duet-label.js +1 -1
  213. package/lib/dist-custom-elements/duet-layout.js +1 -1
  214. package/lib/dist-custom-elements/duet-link.js +1 -1
  215. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  216. package/lib/dist-custom-elements/duet-list.js +1 -1
  217. package/lib/dist-custom-elements/duet-logo.js +1 -1
  218. package/lib/dist-custom-elements/duet-menu-bar-button.js +4 -4
  219. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +4 -4
  220. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +6 -6
  221. package/lib/dist-custom-elements/duet-menu-bar-item.js +5 -5
  222. package/lib/dist-custom-elements/duet-menu-bar-link.js +4 -4
  223. package/lib/dist-custom-elements/duet-menu-bar.js +2 -2
  224. package/lib/dist-custom-elements/duet-modal.js +45 -24
  225. package/lib/dist-custom-elements/duet-multiselect.js +9 -9
  226. package/lib/dist-custom-elements/duet-nav.js +2 -2
  227. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  228. package/lib/dist-custom-elements/duet-notification.js +4 -4
  229. package/lib/dist-custom-elements/duet-number-input.js +18 -14
  230. package/lib/dist-custom-elements/duet-overlay.js +1 -1
  231. package/lib/dist-custom-elements/duet-page-heading.js +5 -5
  232. package/lib/dist-custom-elements/duet-pagination.js +14 -14
  233. package/lib/dist-custom-elements/duet-panel.d.ts +11 -0
  234. package/lib/dist-custom-elements/duet-panel.js +70 -0
  235. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  236. package/lib/dist-custom-elements/duet-phone-input.js +16 -16
  237. package/lib/dist-custom-elements/duet-popup-menu-item.js +1 -1
  238. package/lib/dist-custom-elements/duet-popup-menu.js +1 -1
  239. package/lib/dist-custom-elements/duet-progress.js +1 -1
  240. package/lib/dist-custom-elements/duet-promo-card.js +6 -6
  241. package/lib/dist-custom-elements/duet-radio-group.js +8 -8
  242. package/lib/dist-custom-elements/duet-radio.js +1 -1
  243. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  244. package/lib/dist-custom-elements/duet-range-stepper.js +6 -6
  245. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  246. package/lib/dist-custom-elements/duet-section-layout.js +4 -4
  247. package/lib/dist-custom-elements/duet-select.js +1 -1
  248. package/lib/dist-custom-elements/duet-shaped-image.js +3 -3
  249. package/lib/dist-custom-elements/duet-share-chart-item.js +2 -2
  250. package/lib/dist-custom-elements/duet-share-chart.js +7 -5
  251. package/lib/dist-custom-elements/duet-show-more.js +1 -1
  252. package/lib/dist-custom-elements/duet-slideout-lang.js +3 -3
  253. package/lib/dist-custom-elements/duet-slideout-link.js +5 -5
  254. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +6 -6
  255. package/lib/dist-custom-elements/duet-slideout-panel.js +9 -9
  256. package/lib/dist-custom-elements/duet-slideout.js +8 -8
  257. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  258. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  259. package/lib/dist-custom-elements/duet-status-icon.js +1 -1
  260. package/lib/dist-custom-elements/duet-step.js +4 -4
  261. package/lib/dist-custom-elements/duet-stepper.js +4 -4
  262. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +4 -4
  263. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +6 -6
  264. package/lib/dist-custom-elements/duet-submenu-bar-item.js +4 -4
  265. package/lib/dist-custom-elements/duet-submenu-bar-link.js +3 -3
  266. package/lib/dist-custom-elements/duet-submenu-bar.js +8 -8
  267. package/lib/dist-custom-elements/duet-tab-group.js +21 -18
  268. package/lib/dist-custom-elements/duet-tab.js +2 -2
  269. package/lib/dist-custom-elements/duet-table.js +1 -1
  270. package/lib/dist-custom-elements/duet-textarea.js +10 -10
  271. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  272. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +4 -4
  273. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +6 -6
  274. package/lib/dist-custom-elements/duet-toolbar-item.js +6 -6
  275. package/lib/dist-custom-elements/duet-toolbar-link.js +4 -4
  276. package/lib/dist-custom-elements/duet-toolbar.js +3 -3
  277. package/lib/dist-custom-elements/duet-tooltip-button.js +1 -1
  278. package/lib/dist-custom-elements/duet-tooltip-popup.js +1 -1
  279. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  280. package/lib/dist-custom-elements/duet-tray.js +5 -5
  281. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  282. package/lib/dist-custom-elements/duet-upload-item.js +1 -1
  283. package/lib/dist-custom-elements/duet-upload.js +22 -22
  284. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  285. package/lib/dist-custom-elements/index.js +1 -1
  286. package/lib/dist-custom-elements/{p-135f668d.js → p-0a932f51.js} +1 -1
  287. package/lib/dist-custom-elements/{p-f80dea81.js → p-15d1bb49.js} +4 -4
  288. package/lib/dist-custom-elements/{p-8c472242.js → p-1901a05e.js} +1 -1
  289. package/lib/dist-custom-elements/{p-e8dc8877.js → p-1b1d5047.js} +4 -4
  290. package/lib/dist-custom-elements/{p-cdf4b7f6.js → p-1b591fcd.js} +4 -4
  291. package/lib/dist-custom-elements/{p-47d05b62.js → p-1f2176b1.js} +1 -1
  292. package/lib/dist-custom-elements/{p-2582f9a3.js → p-2e95d393.js} +3 -3
  293. package/lib/dist-custom-elements/{p-ad927290.js → p-2fa067ff.js} +3 -3
  294. package/lib/dist-custom-elements/{p-63a0bdcd.js → p-307aa29d.js} +1 -1
  295. package/lib/dist-custom-elements/{p-4e53b45e.js → p-31316d91.js} +2 -2
  296. package/lib/dist-custom-elements/{p-70b67cdd.js → p-35af6d7a.js} +4 -4
  297. package/lib/dist-custom-elements/{p-d60c7d74.js → p-3b352cea.js} +1 -1
  298. package/lib/dist-custom-elements/{p-77260ba8.js → p-499da71e.js} +103 -8
  299. package/lib/dist-custom-elements/{p-55c477f3.js → p-49fcb05d.js} +2 -2
  300. package/lib/dist-custom-elements/{p-e3280064.js → p-4b8be370.js} +12 -12
  301. package/lib/dist-custom-elements/{p-3c558254.js → p-4c68ba95.js} +12 -12
  302. package/lib/dist-custom-elements/{p-2e148296.js → p-5d684af3.js} +23 -35
  303. package/lib/dist-custom-elements/{p-de35873c.js → p-5ee14292.js} +1 -1
  304. package/lib/dist-custom-elements/{p-653d2256.js → p-6098c129.js} +10 -10
  305. package/lib/dist-custom-elements/{p-80bbbb3a.js → p-62a4796f.js} +5 -5
  306. package/lib/dist-custom-elements/{p-67e54308.js → p-66c6751e.js} +12 -12
  307. package/lib/dist-custom-elements/{p-be9b9c9d.js → p-6b02ba40.js} +5 -5
  308. package/lib/dist-custom-elements/{p-c7002b0e.js → p-8a6a51b2.js} +1 -1
  309. package/lib/dist-custom-elements/{p-276a59a3.js → p-8d68da95.js} +4 -4
  310. package/lib/dist-custom-elements/{p-13082a20.js → p-8debf5b8.js} +2 -2
  311. package/lib/dist-custom-elements/{p-b660d362.js → p-92467a66.js} +11 -11
  312. package/lib/dist-custom-elements/{p-7fd99694.js → p-9654a846.js} +7 -7
  313. package/lib/dist-custom-elements/{p-06beac61.js → p-9a9b2708.js} +2 -2
  314. package/lib/dist-custom-elements/{p-f7d93067.js → p-9dc1ec50.js} +5 -5
  315. package/lib/dist-custom-elements/{p-0c829768.js → p-9efbcc67.js} +1 -1
  316. package/lib/dist-custom-elements/{p-ca899a3c.js → p-a1876945.js} +9 -8
  317. package/lib/dist-custom-elements/{p-1271d1b9.js → p-a20321ec.js} +3 -3
  318. package/lib/{esm/common-strings-a48b3fba.js → dist-custom-elements/p-b7a93f1c.js} +23 -1
  319. package/lib/dist-custom-elements/{p-46749593.js → p-d17f51c7.js} +3 -3
  320. package/lib/dist-custom-elements/{p-911326a0.js → p-d3345442.js} +2 -2
  321. package/lib/dist-custom-elements/{p-aa4ebea4.js → p-dd16af35.js} +5 -5
  322. package/lib/dist-custom-elements/{p-a000e044.js → p-e371f35d.js} +2 -2
  323. package/lib/dist-custom-elements/{p-c1e381e3.js → p-e54a1871.js} +21 -4
  324. package/lib/dist-custom-elements/{p-1027ea53.js → p-ea21cb5d.js} +5 -5
  325. package/lib/dist-custom-elements/{p-12884dcf.js → p-f214be38.js} +4 -4
  326. package/lib/dist-custom-elements/{p-2dcb2900.js → p-f5b135c5.js} +9 -9
  327. package/lib/dist-custom-elements/{p-16151d9e.js → p-ff94cac9.js} +3 -3
  328. package/lib/duet/duet.esm.js +1 -1
  329. package/lib/duet/duet.js +1 -1
  330. package/lib/duet/p-0018881b.entry.js +4 -0
  331. package/lib/duet/{p-0aaac3fd.system.entry.js → p-007eb67f.system.entry.js} +1 -1
  332. package/lib/duet/{p-d1c7c87b.entry.js → p-039cbd8d.entry.js} +1 -1
  333. package/lib/duet/{p-cc22486b.system.entry.js → p-05f7f78d.system.entry.js} +1 -1
  334. package/lib/duet/{p-01965153.entry.js → p-08f39b32.entry.js} +1 -1
  335. package/lib/duet/{p-d5a2f426.entry.js → p-0ad0afe1.entry.js} +1 -1
  336. package/lib/duet/{p-4421763f.entry.js → p-0bbfb836.entry.js} +1 -1
  337. package/lib/duet/{p-bc44defc.system.entry.js → p-0beb2a3f.system.entry.js} +1 -1
  338. package/lib/duet/{p-9e4e3a7d.entry.js → p-0d9f34ae.entry.js} +1 -1
  339. package/lib/duet/{p-d5ad1dca.system.entry.js → p-0dcf3c74.system.entry.js} +1 -1
  340. package/lib/duet/{p-7d050716.system.entry.js → p-0e442247.system.entry.js} +1 -1
  341. package/lib/duet/{p-dd011cf1.system.entry.js → p-0ff4932b.system.entry.js} +2 -2
  342. package/lib/duet/{p-62ba7ee2.entry.js → p-1192e8c9.entry.js} +1 -1
  343. package/lib/duet/{p-b6578600.system.entry.js → p-137beb16.system.entry.js} +1 -1
  344. package/lib/duet/p-14ffb5c1.system.entry.js +4 -0
  345. package/lib/duet/{p-4509c90e.entry.js → p-15694ea7.entry.js} +1 -1
  346. package/lib/duet/{p-3c438fec.entry.js → p-17a1f7cd.entry.js} +1 -1
  347. package/lib/duet/{p-8c1442ff.entry.js → p-18b56724.entry.js} +1 -1
  348. package/lib/duet/{p-7789db31.system.entry.js → p-18c66326.system.entry.js} +1 -1
  349. package/lib/duet/p-1a46c899.system.entry.js +4 -0
  350. package/lib/duet/{p-8a02bd75.system.entry.js → p-1b393d78.system.entry.js} +1 -1
  351. package/lib/duet/{p-b5eb657a.system.js → p-1cc2eb98.system.js} +1 -1
  352. package/lib/duet/{p-c23c9c77.entry.js → p-1daaef7a.entry.js} +1 -1
  353. package/lib/duet/{p-e5716306.entry.js → p-1dc4442a.entry.js} +1 -1
  354. package/lib/duet/p-1dd1cd21.entry.js +4 -0
  355. package/lib/duet/{p-d0b648c5.system.entry.js → p-200f57b6.system.entry.js} +1 -1
  356. package/lib/duet/{p-b9af2990.system.entry.js → p-2179e714.system.entry.js} +2 -2
  357. package/lib/duet/{p-0dd78a56.system.entry.js → p-22ab0759.system.entry.js} +1 -1
  358. package/lib/duet/{p-3aecf400.system.entry.js → p-24749596.system.entry.js} +1 -1
  359. package/lib/duet/p-24954951.js +4 -0
  360. package/lib/duet/{p-077813ae.entry.js → p-2500e9bc.entry.js} +1 -1
  361. package/lib/duet/{p-e9e59d73.entry.js → p-26b49f30.entry.js} +1 -1
  362. package/lib/duet/{p-0a405da0.system.entry.js → p-2bc08ca1.system.entry.js} +1 -1
  363. package/lib/duet/{p-7686eb1f.entry.js → p-2dc5c7c5.entry.js} +1 -1
  364. package/lib/duet/{p-43c4d670.entry.js → p-2dddb575.entry.js} +1 -1
  365. package/lib/duet/{p-1425b59f.entry.js → p-3455bcd6.entry.js} +1 -1
  366. package/lib/duet/{p-ad43bd23.system.entry.js → p-367a3dd8.system.entry.js} +1 -1
  367. package/lib/duet/{p-7adab44d.system.entry.js → p-38f30c2b.system.entry.js} +1 -1
  368. package/lib/duet/{p-5c48b80a.system.entry.js → p-3b816caf.system.entry.js} +1 -1
  369. package/lib/duet/{p-97393e12.system.entry.js → p-3f3571ae.system.entry.js} +1 -1
  370. package/lib/duet/{p-ab7e07be.system.entry.js → p-3f8dd0b3.system.entry.js} +1 -1
  371. package/lib/duet/{p-808d9dc7.system.entry.js → p-431b0896.system.entry.js} +2 -2
  372. package/lib/duet/{p-f78b9d60.system.js → p-43d6b171.system.js} +1 -1
  373. package/lib/duet/{p-e4bda446.system.entry.js → p-451fe5ef.system.entry.js} +1 -1
  374. package/lib/duet/p-460c0029.system.entry.js +4 -0
  375. package/lib/duet/{p-25bfda5f.system.entry.js → p-47fd41c6.system.entry.js} +1 -1
  376. package/lib/duet/{p-22ae0db4.entry.js → p-48452fe6.entry.js} +1 -1
  377. package/lib/duet/{p-7761f427.system.entry.js → p-484c1cc2.system.entry.js} +1 -1
  378. package/lib/duet/{p-f482b5af.system.entry.js → p-4a7a6dcb.system.entry.js} +1 -1
  379. package/lib/duet/p-4ac878dd.system.entry.js +4 -0
  380. package/lib/duet/p-50cb674e.js +4 -0
  381. package/lib/duet/p-510aee05.entry.js +4 -0
  382. package/lib/duet/{p-a51a1f94.system.entry.js → p-531d399b.system.entry.js} +1 -1
  383. package/lib/duet/{p-33ee2b28.entry.js → p-544a2e7d.entry.js} +1 -1
  384. package/lib/duet/{p-7194f790.entry.js → p-552be4d4.entry.js} +1 -1
  385. package/lib/duet/{p-a04ebea2.system.entry.js → p-55eab330.system.entry.js} +1 -1
  386. package/lib/duet/{p-98feb289.system.entry.js → p-56c024f4.system.entry.js} +1 -1
  387. package/lib/duet/{p-5a1dbce7.system.entry.js → p-57b716e6.system.entry.js} +1 -1
  388. package/lib/duet/p-583b4f49.js +4 -0
  389. package/lib/duet/{p-17ed0be9.system.entry.js → p-58b34a23.system.entry.js} +1 -1
  390. package/lib/duet/{p-8bed4283.system.entry.js → p-58d2375e.system.entry.js} +1 -1
  391. package/lib/duet/p-58f4c4ef.system.entry.js +4 -0
  392. package/lib/duet/p-59777da7.system.js +4 -0
  393. package/lib/duet/{p-2fe6628e.system.entry.js → p-5afe6d8e.system.entry.js} +1 -1
  394. package/lib/duet/{p-f740cd96.entry.js → p-5b0337d8.entry.js} +1 -1
  395. package/lib/duet/p-5b0f2f3d.entry.js +4 -0
  396. package/lib/duet/{p-cf5551f7.entry.js → p-5bcce1c4.entry.js} +1 -1
  397. package/lib/duet/{p-080a85af.system.entry.js → p-5cb10012.system.entry.js} +2 -2
  398. package/lib/duet/{p-e124ed8c.system.entry.js → p-5d987b8d.system.entry.js} +2 -2
  399. package/lib/duet/{p-14f51a29.entry.js → p-5e1045dc.entry.js} +1 -1
  400. package/lib/duet/p-5e658b40.js +4 -0
  401. package/lib/duet/{p-8c66abfb.system.entry.js → p-6015aa05.system.entry.js} +1 -1
  402. package/lib/duet/{p-8da3b624.entry.js → p-601e275c.entry.js} +1 -1
  403. package/lib/duet/p-60636c0f.js +4 -0
  404. package/lib/duet/{p-45cb4d7f.system.entry.js → p-6106103e.system.entry.js} +1 -1
  405. package/lib/duet/{p-f7a30994.system.entry.js → p-612fe73a.system.entry.js} +1 -1
  406. package/lib/duet/p-61b2c1c9.entry.js +4 -0
  407. package/lib/duet/{p-c4eb60a1.system.entry.js → p-61bb70ea.system.entry.js} +2 -2
  408. package/lib/duet/{p-9f1e07cc.entry.js → p-6314d434.entry.js} +1 -1
  409. package/lib/duet/p-63d23d82.entry.js +4 -0
  410. package/lib/duet/{p-570a2d5c.entry.js → p-66dd8b2f.entry.js} +1 -1
  411. package/lib/duet/{p-73666dbd.entry.js → p-6703c635.entry.js} +1 -1
  412. package/lib/duet/{p-d63c92fc.system.js → p-694e5a97.system.js} +1 -1
  413. package/lib/duet/{p-442cac9c.entry.js → p-69b7e6dc.entry.js} +1 -1
  414. package/lib/duet/{p-8e5de54a.entry.js → p-6b97b58c.entry.js} +1 -1
  415. package/lib/duet/{p-79562f98.entry.js → p-6cdc13f4.entry.js} +1 -1
  416. package/lib/duet/{p-41a3f8ed.entry.js → p-6ceeb4c1.entry.js} +1 -1
  417. package/lib/duet/{p-1830fafe.entry.js → p-6ec3fa80.entry.js} +1 -1
  418. package/lib/duet/{p-618a0f3a.entry.js → p-6eed12c2.entry.js} +1 -1
  419. package/lib/duet/p-6fb7afac.system.entry.js +4 -0
  420. package/lib/duet/{p-3c29e0ba.entry.js → p-71507957.entry.js} +1 -1
  421. package/lib/duet/p-729bb657.entry.js +4 -0
  422. package/lib/duet/p-72baa999.entry.js +4 -0
  423. package/lib/duet/{p-bb71c581.entry.js → p-72e617b1.entry.js} +1 -1
  424. package/lib/duet/{p-0990faec.system.entry.js → p-72f4c54a.system.entry.js} +1 -1
  425. package/lib/duet/{p-89a1d75a.js → p-75a66b82.js} +1 -1
  426. package/lib/duet/p-75eda30d.entry.js +4 -0
  427. package/lib/duet/p-78df5993.entry.js +4 -0
  428. package/lib/duet/p-7c597c01.entry.js +4 -0
  429. package/lib/duet/{p-519fef05.system.js → p-7d4fb1da.system.js} +1 -1
  430. package/lib/duet/{p-d977fe38.system.entry.js → p-7f50e5e3.system.entry.js} +1 -1
  431. package/lib/duet/{p-80c89ac1.entry.js → p-7f5b3bb1.entry.js} +1 -1
  432. package/lib/duet/{p-1be0f96f.system.entry.js → p-80121038.system.entry.js} +2 -2
  433. package/lib/duet/{p-3372296f.entry.js → p-8173aad1.entry.js} +1 -1
  434. package/lib/duet/{p-e8059b67.system.entry.js → p-81dbbba7.system.entry.js} +1 -1
  435. package/lib/duet/{p-ecb06d44.entry.js → p-8303c23a.entry.js} +1 -1
  436. package/lib/duet/{p-24cc3a49.entry.js → p-8497c4a3.entry.js} +1 -1
  437. package/lib/duet/p-87633fff.system.js +4 -0
  438. package/lib/duet/p-8911207e.entry.js +4 -0
  439. package/lib/duet/p-894105da.entry.js +4 -0
  440. package/lib/duet/{p-af3397e6.entry.js → p-8a7cfab8.entry.js} +1 -1
  441. package/lib/duet/{p-f01d0296.system.entry.js → p-8c80b769.system.entry.js} +1 -1
  442. package/lib/duet/{p-85696a8e.entry.js → p-8ef88917.entry.js} +1 -1
  443. package/lib/duet/{p-e2e84fa3.system.entry.js → p-8fa3a4db.system.entry.js} +1 -1
  444. package/lib/duet/{p-c6c01a4f.system.entry.js → p-930ea887.system.entry.js} +1 -1
  445. package/lib/duet/{p-38baa305.entry.js → p-95137492.entry.js} +1 -1
  446. package/lib/duet/{p-3b760329.entry.js → p-969327bd.entry.js} +1 -1
  447. package/lib/duet/p-9715fa3d.entry.js +4 -0
  448. package/lib/duet/p-9bff6ed8.entry.js +4 -0
  449. package/lib/duet/{p-9c201da2.entry.js → p-9e93e46d.entry.js} +1 -1
  450. package/lib/duet/{p-20baa68b.entry.js → p-9f6fe3bd.entry.js} +1 -1
  451. package/lib/duet/{p-5026ba81.system.entry.js → p-9fe084e8.system.entry.js} +1 -1
  452. package/lib/duet/p-a12e5499.entry.js +4 -0
  453. package/lib/duet/{p-964cab98.entry.js → p-a20eeb3a.entry.js} +1 -1
  454. package/lib/duet/{p-4dd14bc1.system.entry.js → p-a3c50037.system.entry.js} +1 -1
  455. package/lib/duet/p-a48a6cf9.system.entry.js +4 -0
  456. package/lib/duet/{p-bffda5ab.entry.js → p-a4f3a6d6.entry.js} +1 -1
  457. package/lib/duet/{p-8c2abe91.js → p-a68a90f3.js} +1 -1
  458. package/lib/duet/{p-61198184.system.entry.js → p-aa224793.system.entry.js} +1 -1
  459. package/lib/duet/{p-024c34d9.system.entry.js → p-aca600ee.system.entry.js} +1 -1
  460. package/lib/duet/{p-0a72cb14.system.entry.js → p-acac731e.system.entry.js} +1 -1
  461. package/lib/duet/{p-9faf2ac2.system.entry.js → p-ae3c38ec.system.entry.js} +1 -1
  462. package/lib/duet/{p-33a9413f.system.entry.js → p-aee53cdc.system.entry.js} +1 -1
  463. package/lib/duet/{p-a03fcf76.system.js → p-b197d195.system.js} +1 -1
  464. package/lib/duet/{p-13dce266.entry.js → p-b21962b0.entry.js} +1 -1
  465. package/lib/duet/{p-c6e60d08.system.entry.js → p-b230c327.system.entry.js} +1 -1
  466. package/lib/duet/{p-844d9170.entry.js → p-b275f92a.entry.js} +1 -1
  467. package/lib/duet/{p-71a70553.system.entry.js → p-b57e1a16.system.entry.js} +1 -1
  468. package/lib/duet/{p-9004d8ff.entry.js → p-b70e378a.entry.js} +1 -1
  469. package/lib/duet/p-b7f0f071.entry.js +4 -0
  470. package/lib/duet/p-bb3cd264.system.entry.js +4 -0
  471. package/lib/duet/{p-17029aad.entry.js → p-c1652045.entry.js} +1 -1
  472. package/lib/duet/{p-e762de37.entry.js → p-c16d08b2.entry.js} +1 -1
  473. package/lib/duet/{p-9eed5f82.js → p-c4a1cfd6.js} +1 -1
  474. package/lib/duet/{p-d610918e.system.entry.js → p-c57ed342.system.entry.js} +1 -1
  475. package/lib/duet/{p-1ca12248.entry.js → p-c6b0afdd.entry.js} +1 -1
  476. package/lib/duet/{p-e538f43c.system.entry.js → p-c7302b85.system.entry.js} +1 -1
  477. package/lib/duet/{p-5122eee8.system.js → p-c9798a8d.system.js} +1 -1
  478. package/lib/duet/{p-9608ad22.system.js → p-cddad487.system.js} +1 -1
  479. package/lib/duet/p-cdfca639.system.entry.js +4 -0
  480. package/lib/duet/{p-ece11bcb.entry.js → p-ce447833.entry.js} +1 -1
  481. package/lib/duet/{p-c59fbbb1.system.entry.js → p-d08d078b.system.entry.js} +1 -1
  482. package/lib/duet/{p-5c01b990.entry.js → p-d1814664.entry.js} +1 -1
  483. package/lib/duet/{p-aadd382f.system.entry.js → p-d28853ae.system.entry.js} +1 -1
  484. package/lib/duet/p-d3b64256.entry.js +4 -0
  485. package/lib/duet/{p-b5191612.system.entry.js → p-d3f723cf.system.entry.js} +1 -1
  486. package/lib/duet/{p-18e13eb6.system.entry.js → p-d42f9e4f.system.entry.js} +1 -1
  487. package/lib/duet/{p-662c351a.system.js → p-d4630d55.system.js} +1 -1
  488. package/lib/duet/{p-0e4fe522.system.entry.js → p-d4859ceb.system.entry.js} +1 -1
  489. package/lib/duet/{p-b094d253.entry.js → p-d5f395c0.entry.js} +1 -1
  490. package/lib/duet/p-d67c45eb.entry.js +4 -0
  491. package/lib/duet/{p-526bce13.system.entry.js → p-d71b8774.system.entry.js} +1 -1
  492. package/lib/duet/{p-05fc82b0.entry.js → p-d9a2772b.entry.js} +1 -1
  493. package/lib/duet/{p-e5f1e38a.js → p-d9cafc77.js} +1 -1
  494. package/lib/duet/{p-71a2b27b.system.entry.js → p-db82eb02.system.entry.js} +2 -2
  495. package/lib/duet/{p-328f8f18.entry.js → p-dc812f17.entry.js} +1 -1
  496. package/lib/duet/{p-8b350472.system.entry.js → p-de0a91b3.system.entry.js} +1 -1
  497. package/lib/duet/{p-333f7ae7.entry.js → p-e007c11a.entry.js} +1 -1
  498. package/lib/duet/p-e24ab988.system.entry.js +4 -0
  499. package/lib/duet/{p-5aeec4ac.system.entry.js → p-e2949e43.system.entry.js} +1 -1
  500. package/lib/duet/p-e34ddfda.system.entry.js +4 -0
  501. package/lib/duet/{p-590505a4.system.entry.js → p-e3a21063.system.entry.js} +1 -1
  502. package/lib/duet/p-e63f5ff5.js +4 -0
  503. package/lib/duet/p-e6cd1ffb.system.js +4 -0
  504. package/lib/duet/{p-04e49b2e.system.entry.js → p-eb157d71.system.entry.js} +1 -1
  505. package/lib/duet/{p-02aca5ee.system.entry.js → p-f052ccf2.system.entry.js} +1 -1
  506. package/lib/duet/{p-7d10302e.entry.js → p-f0dce24e.entry.js} +1 -1
  507. package/lib/duet/{p-7930882f.entry.js → p-f1a06e83.entry.js} +1 -1
  508. package/lib/duet/{p-60ef6c46.system.entry.js → p-f38175f1.system.entry.js} +1 -1
  509. package/lib/duet/{p-03e76030.system.entry.js → p-f3a26af1.system.entry.js} +1 -1
  510. package/lib/duet/p-f69dc290.entry.js +4 -0
  511. package/lib/duet/{p-b3f5912a.system.entry.js → p-f756e03d.system.entry.js} +1 -1
  512. package/lib/duet/{p-85167dd4.entry.js → p-f80ef600.entry.js} +1 -1
  513. package/lib/duet/{p-c45ddc7a.system.entry.js → p-f83e4a46.system.entry.js} +1 -1
  514. package/lib/duet/{p-4ead37f9.entry.js → p-f9536c83.entry.js} +1 -1
  515. package/lib/duet/{p-a8e26d38.entry.js → p-fa2d27c3.entry.js} +1 -1
  516. package/lib/duet/{p-68d50809.system.entry.js → p-fcb5179d.system.entry.js} +1 -1
  517. package/lib/duet/{p-22f40c48.system.entry.js → p-fe7ba159.system.entry.js} +1 -1
  518. package/lib/duet/{p-88dda3dd.entry.js → p-ff139142.entry.js} +1 -1
  519. package/lib/duet/{p-35d651a8.system.entry.js → p-ffe9f317.system.entry.js} +1 -1
  520. package/lib/duet/p-fff88e02.entry.js +4 -0
  521. package/lib/esm/{a11y-utils-d44f1172.js → a11y-utils-fb6d24ef.js} +1 -1
  522. package/lib/esm/{app-globals-5ec0d260.js → app-globals-595167e1.js} +1 -1
  523. package/lib/{dist-custom-elements/p-9b044291.js → esm/common-strings-1274857d.js} +23 -1
  524. package/lib/esm/duet-action-button.entry.js +4 -4
  525. package/lib/esm/duet-alert.entry.js +20 -32
  526. package/lib/esm/duet-badge.entry.js +16 -4
  527. package/lib/esm/duet-banner.entry.js +7 -7
  528. package/lib/esm/duet-breadcrumb.entry.js +7 -7
  529. package/lib/esm/duet-breadcrumbs.entry.js +6 -6
  530. package/lib/esm/duet-button_2.entry.js +13 -13
  531. package/lib/esm/duet-callout.entry.js +5 -5
  532. package/lib/esm/duet-caption_4.entry.js +15 -14
  533. package/lib/esm/duet-card.entry.js +9 -8
  534. package/lib/esm/duet-checkbox.entry.js +2 -2
  535. package/lib/esm/duet-checkmark.entry.js +4 -4
  536. package/lib/esm/duet-chip.entry.js +3 -3
  537. package/lib/esm/duet-choice_2.entry.js +28 -21
  538. package/lib/esm/duet-collapsible.entry.js +3 -3
  539. package/lib/esm/duet-combobox.entry.js +4 -4
  540. package/lib/esm/duet-contact-card.entry.js +5 -5
  541. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  542. package/lib/esm/duet-date-picker.entry.js +18 -8
  543. package/lib/esm/duet-divider_2.entry.js +4 -4
  544. package/lib/esm/duet-editable-table_3.entry.js +9 -9
  545. package/lib/esm/duet-empty-state.entry.js +2 -2
  546. package/lib/esm/duet-fieldset.entry.js +6 -6
  547. package/lib/esm/duet-file-chooser.entry.js +2 -2
  548. package/lib/esm/duet-footer.entry.js +5 -5
  549. package/lib/esm/duet-grid_2.entry.js +2 -2
  550. package/lib/esm/duet-header_2.entry.js +7 -6
  551. package/lib/esm/duet-hero.entry.js +6 -6
  552. package/lib/esm/duet-icon.entry.js +6 -6
  553. package/lib/esm/duet-input_2.entry.js +6 -6
  554. package/lib/esm/duet-layout.entry.js +2 -2
  555. package/lib/esm/duet-list_2.entry.js +4 -4
  556. package/lib/esm/duet-menu-bar-button.entry.js +4 -4
  557. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +4 -4
  558. package/lib/esm/duet-menu-bar-dropdown.entry.js +6 -6
  559. package/lib/esm/duet-menu-bar-item.entry.js +8 -8
  560. package/lib/esm/duet-menu-bar-link.entry.js +4 -4
  561. package/lib/esm/duet-menu-bar.entry.js +3 -3
  562. package/lib/esm/duet-modal.entry.js +40 -21
  563. package/lib/esm/duet-multiselect.entry.js +4 -4
  564. package/lib/esm/duet-nav.entry.js +3 -3
  565. package/lib/esm/duet-notification_2.entry.js +5 -5
  566. package/lib/esm/duet-number-input.entry.js +11 -7
  567. package/lib/esm/duet-overlay.entry.js +2 -2
  568. package/lib/esm/duet-page-heading.entry.js +4 -4
  569. package/lib/esm/duet-pagination_2.entry.js +6 -6
  570. package/lib/esm/duet-panel.entry.js +43 -0
  571. package/lib/esm/duet-phone-input.entry.js +4 -4
  572. package/lib/esm/duet-popup-menu_2.entry.js +6 -6
  573. package/lib/esm/duet-progress.entry.js +3 -3
  574. package/lib/esm/duet-promo-card.entry.js +6 -6
  575. package/lib/esm/duet-radio_2.entry.js +3 -3
  576. package/lib/esm/duet-range-slider.entry.js +2 -2
  577. package/lib/esm/duet-scrollable_3.entry.js +24 -21
  578. package/lib/esm/duet-section-layout.entry.js +4 -4
  579. package/lib/esm/duet-select.entry.js +4 -4
  580. package/lib/esm/duet-shaped-image.entry.js +4 -4
  581. package/lib/esm/duet-share-chart-item.entry.js +2 -2
  582. package/lib/esm/duet-share-chart.entry.js +9 -7
  583. package/lib/esm/duet-show-more.entry.js +5 -5
  584. package/lib/esm/duet-slideout-lang.entry.js +4 -4
  585. package/lib/esm/duet-slideout-link.entry.js +8 -8
  586. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -6
  587. package/lib/esm/duet-slideout-panel.entry.js +12 -12
  588. package/lib/esm/duet-slideout.entry.js +10 -10
  589. package/lib/esm/duet-status-icon.entry.js +3 -3
  590. package/lib/esm/duet-step_2.entry.js +5 -5
  591. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +4 -4
  592. package/lib/esm/duet-submenu-bar-dropdown.entry.js +6 -6
  593. package/lib/esm/duet-submenu-bar-item.entry.js +7 -7
  594. package/lib/esm/duet-submenu-bar-link.entry.js +3 -3
  595. package/lib/esm/duet-submenu-bar.entry.js +7 -7
  596. package/lib/esm/duet-textarea.entry.js +4 -4
  597. package/lib/esm/duet-toggle.entry.js +2 -2
  598. package/lib/esm/duet-toolbar-dropdown-link.entry.js +4 -4
  599. package/lib/esm/duet-toolbar-dropdown.entry.js +6 -6
  600. package/lib/esm/duet-toolbar-item.entry.js +9 -9
  601. package/lib/esm/duet-toolbar-link.entry.js +4 -4
  602. package/lib/esm/duet-toolbar.entry.js +4 -4
  603. package/lib/esm/duet-tooltip-button_2.entry.js +8 -8
  604. package/lib/esm/duet-tooltip.entry.js +3 -3
  605. package/lib/esm/duet-tray.entry.js +5 -5
  606. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  607. package/lib/esm/duet-upload-item.entry.js +6 -6
  608. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  609. package/lib/esm/duet.js +4 -4
  610. package/lib/esm/{errorcodes.utils-4ce3105d.js → errorcodes.utils-7effaab9.js} +1 -1
  611. package/lib/esm/{focus-utils-0d727936.js → focus-utils-2ff60ebe.js} +1 -1
  612. package/lib/esm/{index-5757a151.js → index-4cc3ec50.js} +5 -1
  613. package/lib/esm/{language-utils-1aea3619.js → language-utils-aa864aed.js} +1 -1
  614. package/lib/esm/loader.js +4 -4
  615. package/lib/esm/{slot-utils-03502471.js → slot-utils-28b6b964.js} +1 -1
  616. package/lib/esm/{themeable-component-e507940b.js → themeable-component-35ed7853.js} +1 -1
  617. package/lib/esm/{token-utils-7360bb84.js → token-utils-06ae5c10.js} +103 -8
  618. package/lib/esm-es5/{a11y-utils-d44f1172.js → a11y-utils-fb6d24ef.js} +1 -1
  619. package/lib/esm-es5/{app-globals-5ec0d260.js → app-globals-595167e1.js} +1 -1
  620. package/lib/esm-es5/{common-strings-a48b3fba.js → common-strings-1274857d.js} +1 -1
  621. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  622. package/lib/esm-es5/duet-alert.entry.js +1 -1
  623. package/lib/esm-es5/duet-badge.entry.js +1 -1
  624. package/lib/esm-es5/duet-banner.entry.js +1 -1
  625. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  626. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  627. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  628. package/lib/esm-es5/duet-callout.entry.js +1 -1
  629. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  630. package/lib/esm-es5/duet-card.entry.js +1 -1
  631. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  632. package/lib/esm-es5/duet-checkmark.entry.js +1 -1
  633. package/lib/esm-es5/duet-chip.entry.js +1 -1
  634. package/lib/esm-es5/duet-choice_2.entry.js +2 -2
  635. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  636. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  637. package/lib/esm-es5/duet-contact-card.entry.js +1 -1
  638. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  639. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  640. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  641. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  642. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  643. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  644. package/lib/esm-es5/duet-file-chooser.entry.js +1 -1
  645. package/lib/esm-es5/duet-footer.entry.js +1 -1
  646. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  647. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  648. package/lib/esm-es5/duet-hero.entry.js +2 -2
  649. package/lib/esm-es5/duet-icon.entry.js +1 -1
  650. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  651. package/lib/esm-es5/duet-layout.entry.js +1 -1
  652. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  653. package/lib/esm-es5/duet-menu-bar-button.entry.js +2 -2
  654. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  655. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  656. package/lib/esm-es5/duet-menu-bar-item.entry.js +1 -1
  657. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  658. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  659. package/lib/esm-es5/duet-modal.entry.js +2 -2
  660. package/lib/esm-es5/duet-multiselect.entry.js +1 -1
  661. package/lib/esm-es5/duet-nav.entry.js +1 -1
  662. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  663. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  664. package/lib/esm-es5/duet-overlay.entry.js +1 -1
  665. package/lib/esm-es5/duet-page-heading.entry.js +1 -1
  666. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  667. package/lib/esm-es5/duet-panel.entry.js +4 -0
  668. package/lib/esm-es5/duet-phone-input.entry.js +1 -1
  669. package/lib/esm-es5/duet-popup-menu_2.entry.js +1 -1
  670. package/lib/esm-es5/duet-progress.entry.js +1 -1
  671. package/lib/esm-es5/duet-promo-card.entry.js +2 -2
  672. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  673. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  674. package/lib/esm-es5/duet-scrollable_3.entry.js +1 -1
  675. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  676. package/lib/esm-es5/duet-select.entry.js +1 -1
  677. package/lib/esm-es5/duet-shaped-image.entry.js +1 -1
  678. package/lib/esm-es5/duet-share-chart-item.entry.js +1 -1
  679. package/lib/esm-es5/duet-share-chart.entry.js +1 -1
  680. package/lib/esm-es5/duet-show-more.entry.js +1 -1
  681. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  682. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  683. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +2 -2
  684. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  685. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  686. package/lib/esm-es5/duet-status-icon.entry.js +1 -1
  687. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  688. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  689. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  690. package/lib/esm-es5/duet-submenu-bar-item.entry.js +1 -1
  691. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  692. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  693. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  694. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  695. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  696. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  697. package/lib/esm-es5/duet-toolbar-item.entry.js +1 -1
  698. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  699. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  700. package/lib/esm-es5/duet-tooltip-button_2.entry.js +1 -1
  701. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  702. package/lib/esm-es5/duet-tray.entry.js +1 -1
  703. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  704. package/lib/esm-es5/duet-upload-item.entry.js +1 -1
  705. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  706. package/lib/esm-es5/duet.js +1 -1
  707. package/lib/esm-es5/{errorcodes.utils-4ce3105d.js → errorcodes.utils-7effaab9.js} +1 -1
  708. package/lib/esm-es5/focus-utils-2ff60ebe.js +4 -0
  709. package/lib/esm-es5/index-4cc3ec50.js +4 -0
  710. package/lib/esm-es5/{language-utils-1aea3619.js → language-utils-aa864aed.js} +1 -1
  711. package/lib/esm-es5/loader.js +1 -1
  712. package/lib/esm-es5/{slot-utils-03502471.js → slot-utils-28b6b964.js} +1 -1
  713. package/lib/esm-es5/{themeable-component-e507940b.js → themeable-component-35ed7853.js} +1 -1
  714. package/lib/esm-es5/token-utils-06ae5c10.js +4 -0
  715. package/lib/types/common-strings.d.ts +2 -0
  716. package/lib/types/components/duet-alert/duet-alert.d.ts +5 -2
  717. package/lib/types/components/duet-badge/duet-badge.d.ts +1 -0
  718. package/lib/types/components/duet-card/duet-card.d.ts +6 -0
  719. package/lib/types/components/duet-choice/duet-choice.d.ts +0 -4
  720. package/lib/types/components/duet-choice-group/duet-choice-group.d.ts +2 -2
  721. package/lib/types/components/duet-modal/duet-modal.d.ts +17 -1
  722. package/lib/types/components/duet-number-input/duet-number-input.d.ts +3 -1
  723. package/lib/types/components/duet-panel/duet-panel.d.ts +47 -0
  724. package/lib/types/components.d.ts +113 -11
  725. package/lib/types/utils/token-utils.d.ts +4 -0
  726. package/lib/types/utils/turva2-color-tokens.d.ts +39 -0
  727. package/package.json +4 -4
  728. package/lib/duet/p-0e1d879e.system.js +0 -4
  729. package/lib/duet/p-1390ae19.entry.js +0 -4
  730. package/lib/duet/p-144182a4.entry.js +0 -4
  731. package/lib/duet/p-1657ff9a.entry.js +0 -4
  732. package/lib/duet/p-1b355115.entry.js +0 -4
  733. package/lib/duet/p-1fe5a7e9.js +0 -4
  734. package/lib/duet/p-20669a1b.system.entry.js +0 -4
  735. package/lib/duet/p-2519a1b2.entry.js +0 -4
  736. package/lib/duet/p-2d6cd3b0.system.entry.js +0 -4
  737. package/lib/duet/p-3c2cf893.system.entry.js +0 -4
  738. package/lib/duet/p-3cbeb209.system.entry.js +0 -4
  739. package/lib/duet/p-3cd37502.entry.js +0 -4
  740. package/lib/duet/p-3ea64651.entry.js +0 -4
  741. package/lib/duet/p-40edc180.system.entry.js +0 -4
  742. package/lib/duet/p-435ed67f.entry.js +0 -4
  743. package/lib/duet/p-473febb8.entry.js +0 -4
  744. package/lib/duet/p-4cae058e.entry.js +0 -4
  745. package/lib/duet/p-5de30279.js +0 -4
  746. package/lib/duet/p-63a67247.js +0 -4
  747. package/lib/duet/p-76332920.system.js +0 -4
  748. package/lib/duet/p-78033ea5.js +0 -4
  749. package/lib/duet/p-836bee60.system.entry.js +0 -4
  750. package/lib/duet/p-8522541f.entry.js +0 -4
  751. package/lib/duet/p-8975b5ee.entry.js +0 -4
  752. package/lib/duet/p-9508ee67.system.js +0 -4
  753. package/lib/duet/p-9615338f.system.entry.js +0 -4
  754. package/lib/duet/p-a41a83dc.system.entry.js +0 -4
  755. package/lib/duet/p-b036d747.entry.js +0 -4
  756. package/lib/duet/p-b16705db.js +0 -4
  757. package/lib/duet/p-b5cb52b3.entry.js +0 -4
  758. package/lib/duet/p-baf03e8b.entry.js +0 -4
  759. package/lib/duet/p-bfa13cf6.entry.js +0 -4
  760. package/lib/duet/p-c658fdf2.system.entry.js +0 -4
  761. package/lib/duet/p-cc531319.js +0 -4
  762. package/lib/duet/p-d4e9333f.entry.js +0 -4
  763. package/lib/duet/p-d87768a3.entry.js +0 -4
  764. package/lib/duet/p-ecf25e2f.system.entry.js +0 -4
  765. package/lib/duet/p-f38adc18.entry.js +0 -4
  766. package/lib/duet/p-f6ada3f6.entry.js +0 -4
  767. package/lib/esm-es5/focus-utils-0d727936.js +0 -4
  768. package/lib/esm-es5/index-5757a151.js +0 -4
  769. package/lib/esm-es5/token-utils-7360bb84.js +0 -4
@@ -2,6 +2,7 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  import { h, Host } from "@stencil/core";
5
+ import { DuetStatusLabels } from "../../common-strings";
5
6
  import { inheritGlobalTheme } from "../../common/themeable-component";
6
7
  import { createID } from "../../utils/create-id";
7
8
  import { subscribeTabbingChange, unsubscribeTabbingChange } from "../../utils/keyboard-utils";
@@ -15,28 +16,6 @@ export class DuetAlert {
15
16
  constructor() {
16
17
  this.descriptiveId = createID("DuetAlert");
17
18
  this.hasShowMoreSlot = false;
18
- this.labels = {
19
- default: {
20
- fi: "Huomioithan",
21
- en: "Please note",
22
- sv: "Observera",
23
- },
24
- success: {
25
- fi: "Onnistunut toiminto",
26
- en: "Action completed successfully",
27
- sv: "Lyckad åtgärd",
28
- },
29
- danger: {
30
- fi: "Tärkeä varoitus",
31
- en: "Important warning",
32
- sv: "Viktig varning",
33
- },
34
- warning: {
35
- fi: "Varoitus",
36
- en: "Warning",
37
- sv: "Varning",
38
- },
39
- };
40
19
  this.handleDismiss = (ev) => {
41
20
  this.handleHide();
42
21
  this.duetDismiss.emit({
@@ -54,6 +33,15 @@ export class DuetAlert {
54
33
  this.handleExpandToggle = () => {
55
34
  this.isExpanded = !this.isExpanded;
56
35
  };
36
+ this.getRole = () => {
37
+ if (!this.announcements) {
38
+ return undefined;
39
+ }
40
+ if (["warning", "danger"].includes(this.variation)) {
41
+ return "alert";
42
+ }
43
+ return "status";
44
+ };
57
45
  this.theme = "";
58
46
  this.isDismissed = false;
59
47
  this.isExpanded = false;
@@ -132,18 +120,18 @@ export class DuetAlert {
132
120
  const variation = ["default", "success", "danger", "warning"].includes(this.variation)
133
121
  ? this.variation
134
122
  : "default";
135
- const variationLabel = getLocaleString(this.labels[variation]);
136
- return (h(Host, { key: '5584475286356ac3d444c97e9429aaddc5e6153e', class: {
123
+ const variationLabel = getLocaleString(DuetStatusLabels[variation]);
124
+ return (h(Host, { key: 'b204a657de629955d04058f3c43813aa00980c1e', class: {
137
125
  "duet-theme-turva": this.theme === "turva",
138
126
  "duet-alert-is-dismissed": this.isDismissed,
139
- }, role: this.announcements ? "alert" : undefined }, h("div", { key: '7a3ef0cee9f7e304eac829dfbfd834f1123867fd', class: {
127
+ }, role: this.getRole() }, h("div", { key: '0d573c37ae4013f7fdef0d89a7d2cfff38157b44', class: {
140
128
  "duet-alert-wrapper": true,
141
129
  "duet-p-0": this.padding === "none",
142
130
  "duet-m-0": this.margin === "none",
143
131
  [variation]: true,
144
132
  [this.position]: true,
145
133
  "duet-theme-turva": this.theme === "turva",
146
- } }, h("div", { key: '27797a4ea2296ac70ac133f3ec1a4fedaa07b78d', class: {
134
+ } }, h("div", { key: 'ecb946bd29811c5ee207804498810a6cd3c83889', class: {
147
135
  "duet-alert": true,
148
136
  "duet-alert-expandable": !!this.expandingTitle,
149
137
  "duet-alert-expanded": this.isExpanded,
@@ -154,9 +142,9 @@ export class DuetAlert {
154
142
  "duet-m-0": this.margin === "none",
155
143
  [variation]: true,
156
144
  "duet-theme-turva": this.theme === "turva",
157
- } }, h("div", { key: '3030a95fb19791465f75a74a6803a1bbd0f9b5dd', class: "duet-alert-container", ref: element => {
145
+ } }, h("div", { key: '88e63f17d9d316a933266a2d98be63f1cf6fa939', class: "duet-alert-container", ref: element => {
158
146
  this.alertContainer = element;
159
- }, tabindex: this.focusable ? "0" : undefined }, this.position !== "below-nav" && (h("div", { key: 'e990ae6cf89ef89c0c3445af06402f8202583796', class: "duet-alert-icon" }, (this.icon && h("duet-icon", { key: 'f4b0bd5ca292239cb7a98379b10dd965d4173509', size: "auto", name: this.icon, color: "currentColor" })) || (h("duet-status-icon", { key: 'ad9b6952c1af47501fe6bf7298d69a66bb1223b9', strong: true, variation: variation, margin: "none", size: "auto" })))), this.position === "below-nav" && (h("div", { key: '479a41fafb16793a51eb71e8e892088b6ede41ef', class: "duet-alert-icon below-nav" }, h("duet-status-icon", { key: '249c1b1f9a763ce5725982a2c0a00597698bccc7', strong: true, variation: variation, margin: "none", size: "auto" }))), h("div", { key: '577fa13d2a0682a3fe079a4a098e11bb99fc8dc9', class: "duet-alert-content", id: this.descriptiveId }, this.expandingTitle && (h("button", { key: '4fb68ee1545889ee3c0090bcbc3cd7e952e4d6c9', "aria-expanded": this.isExpanded.toString(), "aria-controls": `${this.descriptiveId}-content`, class: "duet-alert-expander", onClick: this.handleExpandToggle }, h("span", { key: '9ab35209919d1fe4aa6f3db6c16e593828985434', class: "expanding-title" }, this.expandingTitle), h("duet-icon", { key: 'd387939b25c676cd7c17ec6962da00383935ade3', name: "action-arrow-down", color: variation === "default" ? "lt-blue-800" : `${variation}-800`, margin: "none", size: "x-small" }))), (!this.expandingTitle || this.isExpanded) && (h("div", { key: '989a79e16a74690dc7c78da3cc40ef4d02ecb513', id: `${this.descriptiveId}-content` }, h("duet-visually-hidden", { key: '4792b5aa92cefc69907c6325a3c89bd5d9476ae3' }, variationLabel), h("slot", { key: '662c5673bd1118e9effdd083eba7b13ea349ac39' }))))), this.hasShowMoreSlot && (h("duet-show-more", { key: '7b7b917b785c74924ef13550a9866ab4d724f9ce', margin: "none", class: "duet-alert-show-more" }, h("slot", { key: '6370fcc4b7e689d1997c7e224e6f71ca27772689', name: "show-more" }))), this.dismissible && !this.expandingTitle && (h("div", { key: '70e609bdf62b90448894c3f107c435d9b9b9f7ca', class: "duet-alert-dismiss" }, h("duet-button", { key: '1b230dc424387b18799431608c1aab1e63e7035f', variation: "plain", accessibleLabel: this.accessibleLabel, accessibleDescribedBy: this.descriptiveId, iconSize: "medium", icon: "navigation-close", iconOnly: true, margin: "none", color: variation === "default" ? "lt-blue-800" : `${variation}-800`, theme: this.theme, onClick: this.handleDismiss, fixed: true })))))));
147
+ }, tabindex: this.focusable ? "0" : undefined }, this.position !== "below-nav" && (h("div", { key: 'd0e266b3c576ec9c2532053c292c3bfbbc9d92b0', class: "duet-alert-icon" }, (this.icon && h("duet-icon", { key: 'efa5d1133ba832aa3e88fb419b8f2b454b5536c1', size: "auto", name: this.icon, color: "currentColor" })) || (h("duet-status-icon", { key: '7e00c8f29fb7a33a041acfbd82d1c359eadaf605', strong: true, variation: variation, margin: "none", size: "auto" })))), this.position === "below-nav" && (h("div", { key: '0314c3a000a06a357a7850f6c72002df3d32a541', class: "duet-alert-icon below-nav" }, h("duet-status-icon", { key: 'aec093d7be9e0c0d8940a5e0813495f707daefc0', strong: true, variation: variation, margin: "none", size: "auto" }))), h("div", { key: '97522cbf67c23477ae71603418f85f3d1a13d3c2', class: "duet-alert-content", id: this.descriptiveId }, this.expandingTitle && (h("button", { key: '08d8a6d3b089bad3c54727907f6ba1df213a9103', "aria-expanded": this.isExpanded.toString(), "aria-controls": `${this.descriptiveId}-content`, class: "duet-alert-expander", onClick: this.handleExpandToggle }, h("span", { key: '4efe686cc2dff3077ea3efed7a52c79c3b8c090a', class: "expanding-title" }, this.expandingTitle), h("duet-icon", { key: '2da0cd85883d2e850d65e0682c391079bcce2001', name: "action-arrow-down", color: variation === "default" ? "lt-blue-800" : `${variation}-800`, margin: "none", size: "x-small" }))), (!this.expandingTitle || this.isExpanded) && (h("div", { key: 'dd67482dc47bb4b23d8ff7fdbc7f50a09fd7f355', id: `${this.descriptiveId}-content` }, h("duet-visually-hidden", { key: '0f892f87996b79076b9c04e9d66fadbe681cf913' }, variationLabel), h("slot", { key: 'fac36116e1b9128ad398c4cf997d8c0fd3bca795' }))))), this.hasShowMoreSlot && (h("duet-show-more", { key: '10530ff533c94cb9c85eb23cae9ed3475f3567f2', margin: "none", class: "duet-alert-show-more" }, h("slot", { key: '06e77a909ef86b0ae2e83e818e88c75b8caa9969', name: "show-more" }))), this.dismissible && !this.expandingTitle && (h("div", { key: '65f541e6bf54abcfa91757571cffb18013188c39', class: "duet-alert-dismiss" }, h("duet-button", { key: 'a2e00a7f2d07d04bf388544893ddb56d332c8929', variation: "plain", accessibleLabel: this.accessibleLabel, accessibleDescribedBy: this.descriptiveId, iconSize: "medium", icon: "navigation-close", iconOnly: true, margin: "none", color: variation === "default" ? "lt-blue-800" : `${variation}-800`, theme: this.theme, onClick: this.handleDismiss, fixed: true })))))));
160
148
  }
161
149
  static get is() { return "duet-alert"; }
162
150
  static get encapsulation() { return "shadow"; }
@@ -385,7 +373,7 @@ export class DuetAlert {
385
373
  "optional": false,
386
374
  "docs": {
387
375
  "tags": [],
388
- "text": "Style variation of the alert."
376
+ "text": "Status variation of the alert. \"danger\" and \"warning\" will render the alert with role \"alert\" (unless announcements\nhas been set to false). Other variations will have role \"status\". Use \"danger\" only when something serious has happened\nor the user must take immediate action. Use \"warning\" for unexpected situations that are potentially harmful, but\ndon't require immediate action."
389
377
  },
390
378
  "getter": false,
391
379
  "setter": false,
@@ -2,9 +2,20 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  import { h, Host } from "@stencil/core";
5
+ import { DuetStatusLabels } from "../../common-strings";
5
6
  import { inheritGlobalTheme } from "../../common/themeable-component";
7
+ import { getLocaleString } from "../../utils/language-utils";
6
8
  export class DuetBadge {
7
9
  constructor() {
10
+ this.getVariationLabel = () => {
11
+ if (this.variation === "subtle") {
12
+ return "";
13
+ }
14
+ const variation = ["default", "success", "danger", "warning"].includes(this.variation)
15
+ ? this.variation
16
+ : "default";
17
+ return getLocaleString(DuetStatusLabels[variation]);
18
+ };
8
19
  this.theme = "";
9
20
  this.variation = "default";
10
21
  this.background = "normal";
@@ -22,12 +33,12 @@ export class DuetBadge {
22
33
  */
23
34
  render() {
24
35
  const backgroundClass = `background-${this.background}`;
25
- return (h(Host, { key: 'fa6c996be60aa738c5324d36785910a2df451fda', class: { "duet-m-0": this.margin === "none" } }, h("span", { key: 'fb20eeca5e56a6b530468e01b0c50fdfc62dab5b', class: {
36
+ return (h(Host, { key: 'b5b72e3b5f864b73bce84a71479839775b338bcb', class: { "duet-m-0": this.margin === "none" } }, h("span", { key: '1899d1dcb61d08f5fd4fb27a6c8d901f339a9523', class: {
26
37
  "duet-badge": true,
27
38
  [this.variation]: true,
28
39
  [backgroundClass]: true,
29
40
  "duet-theme-turva": this.theme === "turva",
30
- } }, h("slot", { key: 'e8a75efc4cfa0fffd6ec03c37550b967ceec0a9a' }))));
41
+ } }, h("duet-visually-hidden", { key: '0087704e55bd0bea3df8eb18f802dcdc2eb95c3a' }, this.getVariationLabel()), h("slot", { key: '38911f0a5a1212057f7809726d6130d6a274fb0f' }))));
31
42
  }
32
43
  static get is() { return "duet-badge"; }
33
44
  static get encapsulation() { return "shadow"; }
@@ -87,6 +87,7 @@
87
87
  width: 100%;
88
88
  height: 100%;
89
89
  mask-image: url("data:image/svg+xml,%3Csvg%20%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20160%20344%22%20fill%3D%22none%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M2.72641e-07%2091.1902C0.000476976%2097.9034%200.626077%20104.726%201.92282%20111.592L42.7493%20327.771C43.8045%20333.358%2045.2667%20338.776%2047.0996%20344H160V0H51.1439C19.7799%2019.1253%200.00268143%2053.4178%202.72641e-07%2091.1749C-9.08807e-08%2091.18%20-9.08875e-08%2091.1851%202.72641e-07%2091.1902Z%22%20fill%3D%22%23E6F2F8%22%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fsvg%3E");
90
+ transform: scale(101%);
90
91
  }
91
92
  .duet-banner .content {
92
93
  display: flex;
@@ -6,7 +6,7 @@ import { inheritGlobalTheme } from "../../common/themeable-component";
6
6
  import { DuetPicture } from "../../utils/picture-utils";
7
7
  import { checkNamedSlotElement, hasSlot } from "../../utils/slot-utils";
8
8
  import { parsePossibleJSON } from "../../utils/string-utils";
9
- import { getColorByName } from "../../utils/token-utils";
9
+ import { getColorByName, postfixTheme } from "../../utils/token-utils";
10
10
  /**
11
11
  * @slot heading - Slot for heading content. Only span should be used in this slot.
12
12
  * @slot description - Slot for description content.
@@ -91,14 +91,14 @@ export class DuetBanner {
91
91
  img: { src: this.image, alt: "", loading: "lazy", class: "image", role: "presentation" },
92
92
  sources: parsePossibleJSON(this.sources),
93
93
  };
94
- return (h(Host, { key: 'd279b27f54fba40d358a850d94118a0caa571737', class: { "duet-m-0": this.margin === "none" } }, h("aside", { key: 'fa270dd8231b5b22d2c0157105df3171fd56f450', class: {
94
+ return (h(Host, { key: '12cea619c3a29693b7bbb7189962468eee715f68', class: { "duet-m-0": this.margin === "none" } }, h("aside", { key: 'b4e70162ea52e299c8cc3481961e1354f7a348d0', class: {
95
95
  "duet-banner": true,
96
96
  "duet-theme-turva": this.theme === "turva",
97
97
  [this.currentSize]: true,
98
98
  "size-medium": this.size === "medium" || this.size === "large",
99
99
  "size-large": this.size === "large",
100
100
  "no-image": !this.image,
101
- }, style: bannerStyles }, h("div", { key: 'c3cbef43ed49f67f5c429692c0d673f65341cbf8', class: "visual" }, h("div", { key: '6e1defb61acf399734e5843f100d17a467acc52c', class: "image-container" }, this.image && h(DuetPicture, Object.assign({ key: '9b8cf3946c557db548bf9e4a63a9f77e1a528eca' }, pictureSource))), 1 > 2 && this.icon && (h("duet-icon", { key: '085984857a79590e75ed9d3bb7d6ead48c82f429', theme: this.theme, class: "icon", name: this.icon, shape: "brand", size: this.currentSize === "large" ? "xx-large" : "x-large", color: this.iconColor, background: this.iconBackgroundColor, "background-rotation": "7", "background-opacity": "0.85", margin: "none" })), h("div", { key: 'de431601a73be43d79f29e7e4cc4e943ae00e545', style: bannerStyles, class: "brand-shape" })), h("div", { key: '50f7a5fc5f4ade0905bc272e29e7d0c4912c1020', class: "content" }, this.hasHeadingSlot && (h("div", { key: '73cd6a4f3f4022f897df0ce57a2316043f403dba', class: "heading" }, h("duet-heading", { key: '1d7d47b81255653206534bb228d11e8eee154c2c', theme: this.theme, level: this.headingLevel, "visual-level": this.currentSize === "large" ? "h2" : "h3", "fixed-size": true, margin: "none", color: this.textColor }, h("span", { key: 'f340c4b1e80fdd5a64ed8d61512879b290662b37' }, h("slot", { key: '2041e9d5b57a5adb5a325e4bf2052cece9d59d83', name: "heading" }))))), this.hasDescriptionSlot && (h("div", { key: '77bee71dfd8d16749a238336fb0ca182dc6da387', class: "description", style: { color } }, h("slot", { key: 'bc10b7a951bf3ca738bb2214d4f78a2258f373d3', name: "description" }))), this.hasActionSlot && (h("div", { key: 'c842a4bd1a20ff10617c0df53b0491e897de4371', class: "action" }, h("slot", { key: 'a17d57f164e2973eb0bdaa8902b93eaafdc3b96e', name: "action" })))))));
101
+ }, style: bannerStyles }, h("div", { key: '77b6658e115f6c6ad322e4d81607a842de28ad7f', class: "visual" }, h("div", { key: '1140037769c9615f7fc233d5ef7db5e93e5b1434', class: "image-container" }, this.image && h(DuetPicture, Object.assign({ key: '63b777ee272d5fe8c7df6f6a8bff7b84a44c9dff' }, pictureSource))), 1 > 2 && this.icon && (h("duet-icon", { key: '655da70b348510e6a4686a2a51af635bcd3b1572', theme: this.theme, class: "icon", name: this.icon, shape: "brand", size: this.currentSize === "large" ? "xx-large" : "x-large", color: this.iconColor, background: this.iconBackgroundColor, "background-rotation": "7", "background-opacity": "0.85", margin: "none" })), h("div", { key: '5af78573b362552f7bdc061be9bed68373255aae', style: bannerStyles, class: "brand-shape" })), h("div", { key: '99f371a78ff9d7e85cff37c9c5eb2d49f51e7aaa', class: "content" }, this.hasHeadingSlot && (h("div", { key: '8684e9cbd15cd42e8bce73271543ce7fc91b63fc', class: "heading" }, h("duet-heading", { key: '2d3348662100fc98f088ac9dee4a5a38681ce9d7', theme: this.theme, level: this.headingLevel, "visual-level": this.currentSize === "large" ? "h2" : "h3", "fixed-size": true, margin: "none", color: postfixTheme(this.textColor, this.theme) }, h("span", { key: '692332080a527df5d5ed15773ef34efbda983f15' }, h("slot", { key: '8a0a0e72edfcf4c55f66b8565fe90b948e86c4bc', name: "heading" }))))), this.hasDescriptionSlot && (h("div", { key: 'daba4eb6a51dc590ea3591132b8cddebb5cf9756', class: "description", style: { color } }, h("slot", { key: '5d8e3bc1324a170bf266b89e8815896c470a512a', name: "description" }))), this.hasActionSlot && (h("div", { key: 'c9d0e0f700ef91081cad82c8edb5db69ee38ef56', class: "action" }, h("slot", { key: 'e72dfb579efb7ad822de3f59d3d828fffd3ef015', name: "action" })))))));
102
102
  }
103
103
  static get is() { return "duet-banner"; }
104
104
  static get encapsulation() { return "shadow"; }
@@ -42,14 +42,14 @@ export class DuetBreadcrumb {
42
42
  */
43
43
  render() {
44
44
  var _a;
45
- return (h(Host, { key: '689d0258e18fdfbbd6f4d01c8ab355a1a8312c2f', role: "listitem" }, h("div", { key: '909354599a3a41ee94fd902605d5299666bd599b', class: "container" }, this.icon === "arrow-right-small-icon" && (h("duet-icon", { key: '9fc66ffab8615edd97b3bedefd33f7fa80491694', class: "duet-breadrumbs-arrow", size: "auto", icon: arrowRightSmallIcon.svg, margin: "none", color: "currentColor" })), h("a", { key: 'ed4010eedd8d1da13bde66c21a9885d8831c580b', class: {
45
+ return (h(Host, { key: '0c4e563b15c117968dd17a152949276c8c1d0c4d', role: "listitem" }, h("div", { key: '33cf7e873107f60b9b6efe03bcb1836325fc53f6', class: "container" }, this.icon === "arrow-right-small-icon" && (h("duet-icon", { key: '8857a5707b046b177fd430d9192cce2d74c6c865', class: "duet-breadrumbs-arrow", size: "auto", icon: arrowRightSmallIcon.svg, margin: "none", color: "currentColor" })), h("a", { key: 'c4ec61942b341cc2ff809e6f63aaf57fd259c73a', class: {
46
46
  "duet-breadcrumb": true,
47
47
  "duet-theme-turva": this.theme === "turva",
48
48
  }, href: this.href ? this.href : undefined, "aria-label": `${!this.href ? `${getLocaleString(this.currentCrumb)} ` : ""}${(_a = this.accessibleLabel) !== null && _a !== void 0 ? _a : this.element.innerHTML}`, role: "link" }, this.icon !== "arrow-right-small-icon" &&
49
49
  this.icon && [
50
- h("duet-icon", { key: '9b0d1364911cb1737106f201a2c4db931133f38e', size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" }),
51
- this.hasSlottedContent && h("duet-spacer", { key: '27f506daef53b848c270e8be99c0f2aaebb80004', size: "x-small", direction: "horizontal" }),
52
- ], h("slot", { key: '2bc8ee802dc29cc82123e91b9178e5f51e9709c9' })))));
50
+ h("duet-icon", { key: 'd695d025e458817fd3e493f2422174accea100ed', size: this.iconSize, name: this.icon, margin: "none", color: "currentColor" }),
51
+ this.hasSlottedContent && h("duet-spacer", { key: '2dadd430403b4443b75fa002ff399d53a2a9647e', size: "x-small", direction: "horizontal" }),
52
+ ], h("slot", { key: '1a4a88d2db38dedb772c64d224b235b8b33ce289' })))));
53
53
  }
54
54
  static get is() { return "duet-breadcrumb"; }
55
55
  static get encapsulation() { return "shadow"; }
@@ -53,11 +53,11 @@ export class DuetBreadcrumbs {
53
53
  */
54
54
  render() {
55
55
  const color = getColorByName(this.color);
56
- return (h(Host, { key: '996e5aefa1bd4292a2ef8e9defb42967032c8011' }, h("nav", { key: '5971870c10d1faabc65248ee6113cd8a84e7a2ae', "aria-label": this.breadcrumbsAriaLabel, class: {
56
+ return (h(Host, { key: '6e650879eddb8fcb225b17f12a41ba4836cc3fbe' }, h("nav", { key: 'ac3a235fd392e9cb00e493312526c01dfeaf4379', "aria-label": this.breadcrumbsAriaLabel, class: {
57
57
  "duet-breadcrumbs": true,
58
58
  "duet-theme-turva": this.theme === "turva",
59
59
  [this.variation]: true,
60
- } }, h("div", { key: 'e13adcf97e2a6fefb2e73a302b09776418d81272', class: "container" }, h("div", { key: 'a628bb7c78faaa9952d40bc5dab4171e1bfb9f00', role: "list", class: "list", style: { color } }, h("slot", { key: 'bde592b8806f2e74c1031d2ac4ca58b2b0279c55' })), h("div", { key: 'c6c7386a1148b7173eae0919a4c3ba7cee0322c1', class: "bottom-border bottom-border--container" })), h("div", { key: '668a74528b4859e29e226f3c33311557191a9bc3', class: "bottom-border bottom-border--nav" }))));
60
+ } }, h("div", { key: '6a3d880402188ad4a7929cb0e4c8917dc60c8c4e', class: "container" }, h("div", { key: 'bb053ec6b0ae87f09f66ebeb38b2c9769e27d525', role: "list", class: "list", style: { color } }, h("slot", { key: '46d9ce4b6a18eb83f52b33067614efd6d5b798b5' })), h("div", { key: '1fbac06ea41a81f62a2574676cd1738572d17327', class: "bottom-border bottom-border--container" })), h("div", { key: 'd762fd5644e210ddcbdb2ae8f93b028254e1293b', class: "bottom-border bottom-border--nav" }))));
61
61
  }
62
62
  static get is() { return "duet-breadcrumbs"; }
63
63
  static get encapsulation() { return "shadow"; }
@@ -456,14 +456,14 @@
456
456
  .duet-button.plain.duet-p-0 .duet-button-contents {
457
457
  height: auto;
458
458
  }
459
- .duet-button.plain[disabled] {
459
+ .duet-button.plain[disabled], .duet-button.plain[disabled]:hover {
460
460
  color: rgb(98, 121, 138) !important;
461
461
  cursor: not-allowed;
462
462
  background: transparent !important;
463
463
  border-color: transparent !important;
464
464
  }
465
- .duet-theme-turva .duet-button.plain[disabled] {
466
- color: transparent !important;
465
+ .duet-theme-turva .duet-button.plain[disabled], .duet-theme-turva .duet-button.plain[disabled]:hover {
466
+ color: rgb(113, 118, 132) !important;
467
467
  cursor: not-allowed;
468
468
  background: transparent !important;
469
469
  border-color: rgb(222, 224, 228) !important;
@@ -665,9 +665,11 @@
665
665
  color: rgb(255, 255, 255) !important;
666
666
  }
667
667
  :host(.duet-theme-turva2) .duet-theme-turva .duet-button.plain:hover {
668
- color: rgba(255, 255, 255, 0.8) !important;
668
+ color: #8c001e !important;
669
669
  }
670
- :host(.duet-theme-turva2) .duet-theme-turva .duet-button.plain[disabled] {
670
+ :host(.duet-theme-turva2) .duet-theme-turva .duet-button.plain[disabled], :host(.duet-theme-turva2) .duet-theme-turva .duet-button.plain[disabled]:hover {
671
+ color: #5f7a8f !important;
672
+ background: transparent !important;
671
673
  border-color: #fbe1d1 !important;
672
674
  }
673
675
  :host(.duet-theme-turva2) .duet-theme-turva .duet-button.square {
@@ -681,6 +683,13 @@
681
683
  border-color: #e61740;
682
684
  outline-color: #e61740;
683
685
  }
686
+ :host(.duet-theme-turva2) .duet-theme-turva .duet-button[disabled], :host(.duet-theme-turva2) .duet-theme-turva .duet-button[disabled]:hover, :host(.duet-theme-turva2) .duet-theme-turva .duet-button.duet-button-negative [disabled], :host(.duet-theme-turva2) .duet-theme-turva .duet-button.duet-button-negative [disabled]:hover {
687
+ color: #7891a4 !important;
688
+ cursor: not-allowed;
689
+ background: #d4dde2 !important;
690
+ border-color: #d4dde2 !important;
691
+ outline-color: #d4dde2 !important;
692
+ }
684
693
  :host(.duet-theme-turva2) .duet-theme-turva .duet-button-is-loading.default {
685
694
  color: #e61740;
686
695
  }
@@ -173,12 +173,12 @@ export class DuetButton {
173
173
  // enforce consistency for external links
174
174
  const icon = isExternalLink ? "action-new-window" : this.icon;
175
175
  const iconRight = isExternalLink ? true : this.iconRight;
176
- const commonChildren = (h("span", { key: 'dad881c4e315cee7e2fa16020ab44f3b8518ce8b', class: { "duet-button-contents": true, "icon-right": iconRight }, style: { color: getColorByName(this.color) } }, icon && (h("span", { key: '08d196d1bc190ccb57d8f4961a78e1999f69a6f1', "aria-hidden": "true", class: {
176
+ const commonChildren = (h("span", { key: '4b6618222c037ec329c118f7ad247b9fd514e878', class: { "duet-button-contents": true, "icon-right": iconRight }, style: { color: getColorByName(this.color, this.theme) } }, icon && (h("span", { key: '67492c9b50231879ba232f7c6bcdadcb2d219875', "aria-hidden": "true", class: {
177
177
  "duet-button-icon": true,
178
178
  left: !iconRight,
179
179
  right: iconRight,
180
180
  [this.getButtonIconSize()]: true,
181
- } }, h("duet-icon", { key: '24ffeda883152bfe0123a828ed037aa7bdf365aa', size: "auto", margin: "none", name: icon, color: "currentColor" }))), h("span", { key: '60cbc950fc893b105e13e98769341697d3065e87', class: "duet-button-contents-slot" }, h("slot", { key: '236c0748e32a96046fe4bf1c79b6822ebf5c0b9d' }))));
181
+ } }, h("duet-icon", { key: 'fce0630d78df187c2a7f3946ff3d262c43e5ce95', size: "auto", margin: "none", name: icon, color: "currentColor" }))), h("span", { key: '34d608211bac6921c4aec51f71a9b33e2ac2b7b0', class: "duet-button-contents-slot" }, h("slot", { key: 'b2478d851993c148be6a83a76f9f725469bc9944' }))));
182
182
  const size = this.size == "medium" || this.size == "small" || this.size == "x-small" ? this.size : "medium";
183
183
  const commonProps = {
184
184
  onFocus: this.onFocus,
@@ -213,7 +213,7 @@ export class DuetButton {
213
213
  "aria-details": this.accessibleDetails,
214
214
  "aria-description": this.accessibleDescription,
215
215
  };
216
- return (h(Host, { key: '2f71565d21679c2161cbebaa8b3bfaa7aa4183a0', class: {
216
+ return (h(Host, { key: 'c70e2d9cbe884c7b6cc3012721f01ce6d54b4555', class: {
217
217
  "duet-m-0": this.margin === "none",
218
218
  "duet-small": this.size === "small",
219
219
  "duet-x-small": this.size === "x-small",
@@ -221,13 +221,13 @@ export class DuetButton {
221
221
  "duet-expand": this.expand,
222
222
  [this.variation]: true,
223
223
  "input-button": (_b = this.variation) === null || _b === void 0 ? void 0 : _b.startsWith("input-button"),
224
- } }, h("span", { key: '2a2d449975f67608f602eaca489e4ff865496ed8', onClick: this.handleClick, class: {
224
+ } }, h("span", { key: 'c8be7792d2ae572befbfbe921a3ec453c073637d', onClick: this.handleClick, class: {
225
225
  "duet-button-container": true,
226
226
  "duet-button-is-loading": this.loading,
227
227
  "duet-theme-turva": this.theme === "turva",
228
228
  "duet-button-negative": this.negative || this.variation === "negative",
229
229
  [this.variation]: true,
230
- } }, this.url ? (h("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (h("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, "aria-disabled": this.disabled }), commonChildren, this.loading && h("duet-visually-hidden", null, " ", this.accessibleLabelLoading, " "))), this.loading && h("duet-spinner", { key: 'e27fdd855b9191cdd22c9b74746f3144890d3837', color: "currentColor" })), h("slot", { key: '5f1fec755bfdf56ed261b893fa647308c1e21a7f', name: "proxybutton" })));
230
+ } }, this.url ? (h("a", Object.assign({}, commonProps, { href: this.url, target: this.external ? "_blank" : "_self", rel: this.external ? "noopener" : undefined }), commonChildren, this.external && h("duet-visually-hidden", null, ", ", this.accessibleLabelExternal))) : (h("button", Object.assign({}, commonProps, { type: this.getButtonType(), disabled: this.disabled, name: this.name, value: this.value, "aria-pressed": this.accessiblePressed != null ? this.accessiblePressed.toString() : undefined, "aria-haspopup": this.accessiblePopup != null ? this.accessiblePopup.toString() : undefined, "aria-disabled": this.disabled }), commonChildren, this.loading && h("duet-visually-hidden", null, " ", this.accessibleLabelLoading, " "))), this.loading && h("duet-spinner", { key: 'da956cda627d2afc5084ee69629b54ffabcb672b', color: "currentColor" })), h("slot", { key: '0ead01a475d6242c0049a259f9b9c725830d4b80', name: "proxybutton" })));
231
231
  }
232
232
  static get is() { return "duet-button"; }
233
233
  static get encapsulation() { return "shadow"; }
@@ -31,11 +31,11 @@ export class DuetCallout {
31
31
  <path d="M6.6591 0.557547L9.2031 2.33355C7.0911 5.21355 6.1311 7.18155 5.8431 8.90955C7.4751 9.34155 8.7231 10.5415 8.7231 12.6535C8.7231 15.2935 6.9471 16.9255 4.6431 16.9255C2.0511 16.9255 0.227096 15.1975 0.227096 12.2695C0.227096 8.28555 2.3871 4.34955 6.6591 0.557547ZM17.9871 8.95755C19.6191 9.34155 20.8671 10.5415 20.8671 12.6535C20.8671 15.2935 19.1391 16.9255 16.8351 16.9255C14.2431 16.9255 12.4191 15.1975 12.4191 12.2695C12.4191 8.28555 14.5791 4.34955 18.8511 0.557547L21.3951 2.33355C19.2351 5.21355 18.3231 7.18155 17.9871 8.95755Z"/>
32
32
  </svg>
33
33
  `;
34
- return (h(Host, { key: '2d1eadb42a67c31dd1d5e3498f00254e08b9b2cd' }, h("div", { key: '6e5be94e6e61eaf272e52f9de9070f8de6a9484d', class: {
34
+ return (h(Host, { key: '51d88bf47fa6dd7c93c69184bdc3bee596dddf09' }, h("div", { key: '4719f4e4bfc4ae0f11d8950c5039d290097710bf', class: {
35
35
  "duet-callout": true,
36
36
  "duet-theme-turva": this.theme === "turva",
37
37
  "duet-m-0": this.margin === "none",
38
- } }, h("figure", { key: '1652580bcf78ac7c5ddb8b0a254de66725b98e9b', class: "container" }, h("duet-icon", { key: '541cfe32ac9e9155924e22e7bf00850b70b79602', class: "callout-icon", shape: "brand-rotated", background: "primary-lighter", "background-opacity": "0.75", "background-rotation": this.theme === "turva" ? "0" : "7", color: "secondary", icon: icon, size: "auto", margin: "none", theme: this.theme }), h("blockquote", { key: '59af18b18c95e816e8dc446a3bcbe45f9c13f4fe' }, h("slot", { key: 'f90f9674baa8d9e81c688920babcccc9e3e20468' })), this.hasAuthorSlot && (h("figcaption", { key: 'ee4f1307e15ebfa58d6b7d29a7bdea93b3b5868f', class: "author" }, h("span", { key: 'e6861f2ba21ba016d94cf482d93c614e5433e805' }, "\u2014 "), h("slot", { key: 'c9cede4ee6f69cbf35c591d4c23787ccc7c7c8d1', name: "author" })))))));
38
+ } }, h("figure", { key: '2a56ac7e93a32bb0c81ec60c5e1ca9f657a47726', class: "container" }, h("duet-icon", { key: '59ecda6ea09d0286d5917904ce4b9b0d47abc65a', class: "callout-icon", shape: "brand-rotated", background: "primary-lighter", "background-opacity": "0.75", "background-rotation": this.theme === "turva" ? "0" : "7", color: "secondary", icon: icon, size: "auto", margin: "none", theme: this.theme }), h("blockquote", { key: 'c67e199bd4cef08dd3ad337f906de20ec67e0e84' }, h("slot", { key: 'bb64a939ab2e5f92e329da0af6a67fc3d5a5af07' })), this.hasAuthorSlot && (h("figcaption", { key: '29ebc5c818ede819d058a3d4e9b93d0e57fd4ecf', class: "author" }, h("span", { key: '0a61a2a2cdda4a9fa60dc8e4ba1d51a2a61ae1aa' }, "\u2014 "), h("slot", { key: '08b1248c915dfcd2c5491864e14fee6df303460e', name: "author" })))))));
39
39
  }
40
40
  static get is() { return "duet-callout"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -43,6 +43,7 @@ export class DuetCard {
43
43
  this.headingLevel = "h2";
44
44
  this.headingBackground = undefined;
45
45
  this.icon = undefined;
46
+ this.iconColor = "currentColor";
46
47
  this.image = undefined;
47
48
  this.background = "gray-lightest";
48
49
  this.padding = "small";
@@ -74,7 +75,7 @@ export class DuetCard {
74
75
  const headingStyles = {
75
76
  backgroundColor: getColorByName(this.headingBackground),
76
77
  };
77
- const headingContent = (h(Fragment, null, h("div", { class: "duet-card-heading-grid" }, this.icon && (h(Fragment, null, h("duet-icon", { class: "duet-card-icon", name: this.icon, size: "medium", margin: "none", color: "currentColor" }), h("duet-spacer", { direction: "horizontal", size: "small" }))), h("div", { class: "duet-card-heading-text" }, this.heading ? this.heading : h("slot", { name: "heading" })), this.secondaryHeading && (h(Fragment, null, h("duet-spacer", { direction: "horizontal", size: "small" }), h("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--inline" }, this.secondaryHeading))), this.collapsible && (h(Fragment, null, h("duet-spacer", { direction: "horizontal", size: "small" }), h("duet-icon", { class: "duet-card-caret", icon: arrowUpIcon.svg, size: "small", margin: "none", color: "currentColor" })))), this.secondaryHeading && (h("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--new-line" }, this.secondaryHeading)), h("slot", { name: "below-heading" })));
78
+ const headingContent = (h(Fragment, null, h("div", { class: "duet-card-heading-grid" }, this.icon && (h(Fragment, null, h("duet-icon", { class: "duet-card-icon", name: this.icon, size: "medium", margin: "none", color: this.iconColor }), h("duet-spacer", { direction: "horizontal", size: "small" }))), h("div", { class: "duet-card-heading-text" }, this.heading ? this.heading : h("slot", { name: "heading" })), this.secondaryHeading && (h(Fragment, null, h("duet-spacer", { direction: "horizontal", size: "small" }), h("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--inline" }, this.secondaryHeading))), this.collapsible && (h(Fragment, null, h("duet-spacer", { direction: "horizontal", size: "small" }), h("duet-icon", { class: "duet-card-caret", icon: arrowUpIcon.svg, size: "small", margin: "none", color: "currentColor" })))), this.secondaryHeading && (h("div", { class: "duet-card-secondary-heading duet-card-secondary-heading--new-line" }, this.secondaryHeading)), h("slot", { name: "below-heading" })));
78
79
  if (this.collapsible) {
79
80
  const ariaLabel = (_a = getElementsFromNamedSlot(this.element, "heading")) === null || _a === void 0 ? void 0 : _a.map(e => e.textContent).join(" ");
80
81
  return (h(HeadingTag, { style: headingStyles, class: "duet-card-heading duet-card-heading--collapsible", onClick: this.togglePanel, onKeyDown: this.handleKeyDown }, h("button", { type: "button", "aria-controls": this.cardId, "aria-expanded": this.open ? "true" : "false", "aria-label": ariaLabel }, headingContent)));
@@ -102,10 +103,10 @@ export class DuetCard {
102
103
  const styles = {
103
104
  backgroundColor: getColorByName(this.background),
104
105
  };
105
- return (h(Host, { key: '611705991716b0c002889bf3a9e980f8da1d95f0', class: {
106
+ return (h(Host, { key: 'b229fd28e5e5058ba357db373f25c9de68dc2694', class: {
106
107
  "duet-m-0": this.margin === "none",
107
108
  "duet-card-info": this.variation === "info",
108
- } }, h(TagName, { key: '89e99da5b6adc642345ba6f7a21c7081b9d4e9f3', href: this.url, style: styles, ref: card => (this.nativeCard = card), "aria-label": this.accessibleLabel, class: {
109
+ } }, h(TagName, { key: 'b80082cae6d0e4d564bc1eca68f57749b6975e0e', href: this.url, style: styles, ref: card => (this.nativeCard = card), "aria-label": this.accessibleLabel, class: {
109
110
  "duet-card": true,
110
111
  [this.padding]: true,
111
112
  [this.variation]: true,
@@ -115,7 +116,7 @@ export class DuetCard {
115
116
  "duet-card-has-bg": this.background !== "gray-lightest",
116
117
  "duet-card-has-icon": !!this.icon,
117
118
  "duet-card-collapsed": this.collapsible && !this.open,
118
- } }, this.image && (h("div", { key: '0aa60ed3e1bebc94ee7842d3982256c9373aa516', class: "duet-card-image-mask" }, h("img", { key: '84e7c1f6a0b6c9132ec82041fad87cc4577d6b1e', src: this.image, class: "duet-card-image", loading: "lazy", alt: "", "aria-hidden": "true" }))), (this.heading || this.hasHeadingSlot) && this.renderHeading(), h("div", { key: 'f86cc5808fdc33c29d5c1aeaa20de6b840b9bb87', class: "duet-card-content", id: this.cardId }, h("slot", { key: '5fb3cbdad3362c23720c00b1cc3a37c6e7c0df7a' }), this.hasFooter && (h("div", { key: '469c322c7f5b971194563825844cd26f854f7a4d', class: "duet-card-footer" }, h("slot", { key: '8a72444bea6b916c253e8aa87967046338e690ee', name: "footer" })))))));
119
+ } }, this.image && (h("div", { key: 'c4c9c8772d432e52fb78f2bf0a457d4a026d6b3a', class: "duet-card-image-mask" }, h("img", { key: '828ed65b312a0e50257adfa39f25307b13e7d51a', src: this.image, class: "duet-card-image", loading: "lazy", alt: "", "aria-hidden": "true" }))), (this.heading || this.hasHeadingSlot) && this.renderHeading(), h("div", { key: '081d59770bc88f9b7bd2a9b25d0bf905ea0d141b', class: "duet-card-content", id: this.cardId }, h("slot", { key: 'ad92895c2eea7a7697bd4924165656e72ee9b1da' }), this.hasFooter && (h("div", { key: '9a920473b4242e87a36032511f982b3e890df463', class: "duet-card-footer" }, h("slot", { key: '41350a63089d579579bca4454a1fcbc27a60b445', name: "footer" })))))));
119
120
  }
120
121
  static get is() { return "duet-card"; }
121
122
  static get encapsulation() { return "shadow"; }
@@ -332,6 +333,32 @@ export class DuetCard {
332
333
  "attribute": "icon",
333
334
  "reflect": false
334
335
  },
336
+ "iconColor": {
337
+ "type": "string",
338
+ "mutable": false,
339
+ "complexType": {
340
+ "original": "DuetColor",
341
+ "resolved": "string",
342
+ "references": {
343
+ "DuetColor": {
344
+ "location": "import",
345
+ "path": "../../common-types",
346
+ "id": "src/common-types.d.ts::DuetColor"
347
+ }
348
+ }
349
+ },
350
+ "required": false,
351
+ "optional": false,
352
+ "docs": {
353
+ "tags": [],
354
+ "text": "Custom color to be used for the icon, as a design token entered in camelCase\nor kebab-case. Example: \"color-primary\". This property can also be set to\n\"currentColor\"."
355
+ },
356
+ "getter": false,
357
+ "setter": false,
358
+ "attribute": "icon-color",
359
+ "reflect": true,
360
+ "defaultValue": "\"currentColor\""
361
+ },
335
362
  "image": {
336
363
  "type": "string",
337
364
  "mutable": false,
@@ -18,11 +18,11 @@ export class DuetCheckmark {
18
18
  inheritGlobalTheme(this);
19
19
  }
20
20
  render() {
21
- return (h(Host, { key: '0c46b037eeb1d3a569233716e3931bb9e6d36a3b', class: { "duet-theme-turva": this.theme === "turva" } }, h("div", { key: '77315f3c12b6d27a6e2736eac734c6830704d15a', role: this.presentationOnly ? "presentation" : null, class: { checked: this.checked } }, h("div", { key: '1b895cb3066e53481dae93943c90c4fa57fa1f3d', class: {
21
+ return (h(Host, { key: 'd29491eace218119aab4bb8742a44ef92ea3e377', class: { "duet-theme-turva": this.theme === "turva" } }, h("div", { key: '3d5882eeb89eec6debf9ac38c167335fca22c65b', role: this.presentationOnly ? "presentation" : null, class: { checked: this.checked } }, h("div", { key: '2745649a462f339b630a4a46ea314c89c91dbe52', class: {
22
22
  "duet-checkmark-container": true,
23
23
  center: this.center,
24
24
  "duet-checkmark-radio": this.type === "radio",
25
- } }, this.checked && h("div", { key: '2edba7cb3c44eed2b9af34c9a1afd893cadc3bfa', class: "duet-checkmark" })))));
25
+ } }, this.checked && h("div", { key: '910ba85c8709d99174d0a0c6a5208fccdfe9456e', class: "duet-checkmark" })))));
26
26
  }
27
27
  static get is() { return "duet-checkmark"; }
28
28
  static get originalStyleUrls() {
@@ -166,7 +166,6 @@ export class DuetChoice {
166
166
  disconnectedCallback() {
167
167
  disconnectLanguageChangeObserver(this);
168
168
  unsubscribeTabbingChange(this);
169
- this.duetChoiceRemove.emit();
170
169
  }
171
170
  /**
172
171
  * Sets focus on the specified `duet-choice`. Use this method instead of the global
@@ -1026,26 +1025,6 @@ export class DuetChoice {
1026
1025
  }
1027
1026
  }
1028
1027
  }
1029
- }, {
1030
- "method": "duetChoiceRemove",
1031
- "name": "duetChoiceRemove",
1032
- "bubbles": true,
1033
- "cancelable": true,
1034
- "composed": true,
1035
- "docs": {
1036
- "tags": [],
1037
- "text": "Emitted when the component is removed from the DOM."
1038
- },
1039
- "complexType": {
1040
- "original": "CustomEvent",
1041
- "resolved": "CustomEvent<any>",
1042
- "references": {
1043
- "CustomEvent": {
1044
- "location": "global",
1045
- "id": "global::CustomEvent"
1046
- }
1047
- }
1048
- }
1049
1028
  }, {
1050
1029
  "method": "duetChange",
1051
1030
  "name": "duetChange",
@@ -11,6 +11,16 @@ export class DuetChoiceGroup {
11
11
  constructor() {
12
12
  this.choiceGroupName = "duet-choice-group";
13
13
  this.choices = new Set();
14
+ // Call this.updateChoices when a child choice has been removed - addtions are handled by events
15
+ this.childObserverCallback = (mutationList) => {
16
+ if (mutationList.some(r => {
17
+ var _a;
18
+ return ((_a = r.removedNodes) === null || _a === void 0 ? void 0 : _a.length) > 0 &&
19
+ Array.from(r.removedNodes.values()).some(n => n.nodeName.toLowerCase() === "duet-choice");
20
+ })) {
21
+ this.updateChoices();
22
+ }
23
+ };
14
24
  /**
15
25
  * Component event handling.
16
26
  */
@@ -23,16 +33,7 @@ export class DuetChoiceGroup {
23
33
  this.value = selectedChoice.value;
24
34
  }
25
35
  };
26
- this.onChoiceReady = (ev) => {
27
- const choice = ev.target;
28
- if (choice.closest("duet-choice-group") === this.element && !this.choices.has(choice)) {
29
- this.choices.add(choice);
30
- this.updateChoices();
31
- }
32
- };
33
- this.onChoiceRemove = (ev) => {
34
- const choice = ev.target;
35
- this.choices.delete(choice);
36
+ this.onChoiceReady = () => {
36
37
  this.updateChoices();
37
38
  };
38
39
  this.direction = "vertical";
@@ -64,6 +65,8 @@ export class DuetChoiceGroup {
64
65
  if (Build.isServer) {
65
66
  return;
66
67
  }
68
+ this.childObserver = new MutationObserver(this.childObserverCallback.bind(this));
69
+ this.childObserver.observe(this.element, { childList: true, subtree: true });
67
70
  this.setInitialValue();
68
71
  this.updateChoices();
69
72
  }
@@ -71,9 +74,9 @@ export class DuetChoiceGroup {
71
74
  if (Build.isServer) {
72
75
  return;
73
76
  }
74
- if (this.mutationO) {
75
- this.mutationO.disconnect();
76
- this.mutationO = undefined;
77
+ if (this.childObserver) {
78
+ this.childObserver.disconnect();
79
+ this.childObserver = undefined;
77
80
  }
78
81
  }
79
82
  componentWillLoad() {
@@ -100,6 +103,12 @@ export class DuetChoiceGroup {
100
103
  var _a;
101
104
  const value = (_a = this.value) !== null && _a !== void 0 ? _a : this.initialValue;
102
105
  let hasChecked = false;
106
+ this.choices.clear();
107
+ this.element.querySelectorAll("duet-choice").forEach((choice) => {
108
+ if (choice.closest("duet-choice-group") === this.element) {
109
+ this.choices.add(choice);
110
+ }
111
+ });
103
112
  // Walk the DOM in reverse order, since the last selected one wins
104
113
  for (const choice of Array.from(this.choices)) {
105
114
  choice.name = this.name;
@@ -134,7 +143,7 @@ export class DuetChoiceGroup {
134
143
  if (Build.isServer) {
135
144
  return;
136
145
  }
137
- return (h(Host, { onDuetChange: this.onSelect, onDuetChoiceReady: this.onChoiceReady, onDuetChoiceRemove: this.onChoiceRemove, class: {
146
+ return (h(Host, { onDuetChange: this.onSelect, onDuetChoiceReady: this.onChoiceReady, class: {
138
147
  horizontal: this.direction === "horizontal",
139
148
  "duet-choice-group-breakpoint-x-small": this.responsive && this.breakpoint === "x-small",
140
149
  "duet-choice-group-breakpoint-small": this.responsive && this.breakpoint === "small",
@@ -45,10 +45,10 @@ export class DuetContactCard {
45
45
  render() {
46
46
  const isTurva = this.theme === "turva";
47
47
  const theme = isTurva ? "turva" : "default";
48
- return (h(Host, { key: '27e103c0c5049f7fab515607764a54b61951c1e0', class: { "duet-m-0": this.margin === "none" } }, h("div", { key: 'c574b5e46c7fa008821587bb36154641b390b903', class: {
48
+ return (h(Host, { key: '5e0b606ff3d78d1d6496ec02de6f5b5a0bf5121a', class: { "duet-m-0": this.margin === "none" } }, h("div", { key: '326fff7243be5a6fe726d2dd958a407facbc2ba6', class: {
49
49
  "duet-contact-card": true,
50
50
  "duet-theme-turva": this.theme === "turva",
51
- }, role: "group", "aria-label": this.name }, this.image ? h("img", { class: "image", src: this.image, alt: this.name }) : h("div", null), h("div", { key: 'ad527316cf8b63feb34bd4dd79f77324b7f48c80' }, this.name && (h("duet-heading", { key: '6774b39b0bbd63f84d262fcf3f2ecad255664ce0', class: "name", level: "h3", margin: "none", theme: theme }, this.name)), this.description && (h("duet-paragraph", { key: 'f8dcb174650b2bc6f9ab36f8995c9e4629cd4cb7', class: "description", margin: "none", theme: theme }, this.description)), this.email && (h("div", { key: '73e0f30a03c566d15e338a87506fcf537f8c5cfd', class: "email" }, h("duet-icon", { key: '362a6a97716c3a14aee0aa4f922b46752a512fe0', name: "navigation-message", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: '86f261b33c3199a7e02d697417f835d70f3300fa', url: `mailto:${this.email}`, accessibleLabel: `Email: ${this.email}`, theme: theme }, this.email))), this.phone && (h("div", { key: 'fefe6fcb46d1113762849f95e2dcb7c4625d2472', class: "phone" }, h("duet-icon", { key: '55a47952ffee9a4d97c714aa749219bc6d7aa2b8', name: "form-tel", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: '618acf848c98219d2a05233a8f072401a33c5507', url: `tel:${this.phone}`, accessibleLabel: `${this.phoneLabel[this.language]}: ${this.phone}`, theme: theme }, this.phone)))), this.buttonUrl && this.buttonText && (h("div", { key: 'bc881ffff92c8433241d886ebd054090356ffece', class: "call-to-action" }, h("duet-button", { key: '8147b7ed59d0c12d235059e6a1d1ec7551f1e184', variation: "default", icon: this.buttonIcon, fixed: true, margin: "none", url: this.buttonUrl, theme: theme }, this.buttonText))), h("div", { key: '1d06de992fe79882232166faca835f6468ce796f' }), h("slot", { key: 'ade5d1b926723e45fc1ff45faeef9fa14bd5af56' }))));
51
+ }, role: "group", "aria-label": this.name }, this.image ? h("img", { class: "image", src: this.image, alt: this.name }) : h("div", null), h("div", { key: '66d4f7fe8b7ee4c0832c2cd6083adae45e452d56' }, this.name && (h("duet-heading", { key: '2ee8e38b16b69e30bdae8b2e567a0fa321591349', class: "name", level: "h3", margin: "none", theme: theme }, this.name)), this.description && (h("duet-paragraph", { key: 'c27dd3836821a7e44b31feb1ee6c281fc0d9fa9c', class: "description", margin: "none", theme: theme }, this.description)), this.email && (h("div", { key: 'f89f4e94e9519798954104f934b59b0860552088', class: "email" }, h("duet-icon", { key: '8ddd1c63f78947b491ca0e3ae1e2b4378defaa53', name: "navigation-message", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: '3ef856aead9f3a024cc8b9d5070ec380e22dd01f', url: `mailto:${this.email}`, accessibleLabel: `Email: ${this.email}`, theme: theme }, this.email))), this.phone && (h("div", { key: 'a4a434ffa32b6bc202d8b766aaa094d5956fb50d', class: "phone" }, h("duet-icon", { key: '685ab55882de242d23455e17445351846b8aa69b', name: "form-tel", size: "x-small", color: "primary-dark", margin: "none", theme: theme }), h("duet-link", { key: '8647d8c2842a401007dff5bda3d3941f90c8957a', url: `tel:${this.phone}`, accessibleLabel: `${this.phoneLabel[this.language]}: ${this.phone}`, theme: theme }, this.phone)))), this.buttonUrl && this.buttonText && (h("div", { key: 'c57ab6d37ed120444703dafae51afc47d7dab9ab', class: "call-to-action" }, h("duet-button", { key: 'e6192686bf25181fcdfca4bccab5af1d6b99fa62', variation: "default", icon: this.buttonIcon, fixed: true, margin: "none", url: this.buttonUrl, theme: theme }, this.buttonText))), h("div", { key: '59a0888e641e778ff33a97a120914ceb7e35f80f' }), h("slot", { key: '8a48a71e6d41bbbcfcc662b840a8909e464a592c' }))));
52
52
  }
53
53
  static get is() { return "duet-contact-card"; }
54
54
  static get encapsulation() { return "shadow"; }
@@ -4,6 +4,11 @@
4
4
  import { h } from "@stencil/core";
5
5
  import i18n from "./date-i18n";
6
6
  import { isEqual, printISODate } from "./date-utils";
7
+ const selectedDayLabel = {
8
+ fi: "Valittu päivä",
9
+ en: "Selected day",
10
+ sv: "Vald dag",
11
+ };
7
12
  export const DatePickerDay = ({ focusedDay, today, day, language, onDaySelect, onKeyboardNavigation, ref, inRange, isSelected, }) => {
8
13
  const isToday = isEqual(day, today);
9
14
  const isFocused = isEqual(day, focusedDay);
@@ -13,5 +18,5 @@ export const DatePickerDay = ({ focusedDay, today, day, language, onDaySelect, o
13
18
  function handleClick(e) {
14
19
  onDaySelect(e, day);
15
20
  }
16
- return (h("td", { "data-day": printISODate(day), class: "duet-date-table-cell", "aria-label": formatterShort.format(day), role: "button", tabIndex: isFocused ? 0 : -1, onClick: handleClick, onKeyDown: onKeyboardNavigation, "aria-disabled": isOutsideRange || isDisabled, "aria-pressed": isSelected ? "true" : "false", ref: ref }, h("span", { class: { "duet-date-table-button": true, outside: isOutsideRange, disabled: isDisabled, today: isToday } }, day.getDate())));
21
+ return (h("td", { "data-day": printISODate(day), class: { "duet-date-table-cell": true, selected: isSelected }, "aria-label": `${formatterShort.format(day)}${isSelected ? `, ${selectedDayLabel[language]}` : undefined}`, role: "button", tabIndex: isFocused ? 0 : -1, onClick: handleClick, onKeyDown: onKeyboardNavigation, "aria-disabled": isOutsideRange || isDisabled, ref: ref }, h("span", { class: { "duet-date-table-button": true, outside: isOutsideRange, disabled: isDisabled, today: isToday } }, day.getDate())));
17
22
  };
@@ -18,7 +18,12 @@ function createDate(year, month, day) {
18
18
  dayInt <= 31 &&
19
19
  yearInt > 0;
20
20
  if (isValid) {
21
- return new Date(yearInt, monthInt - 1, dayInt);
21
+ const date = new Date(yearInt, monthInt - 1, dayInt);
22
+ // Reject dates where JS overflowed to a different month/day (e.g. Feb 31 → Mar 3)
23
+ if (date.getDate() !== dayInt || date.getMonth() !== monthInt - 1) {
24
+ return undefined;
25
+ }
26
+ return date;
22
27
  }
23
28
  }
24
29
  /**