@duetds/components 10.6.0 → 10.8.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 (441) hide show
  1. package/hydrate/index.js +557 -271
  2. package/hydrate/index.mjs +557 -271
  3. package/lib/cjs/{a11y-utils-CgWjS7yq.js → a11y-utils-DZ42p33K.js} +1 -1
  4. package/lib/cjs/{app-globals-D68ciWsb.js → app-globals-DiBfle2l.js} +1 -1
  5. package/lib/cjs/duet-action-button.cjs.entry.js +3 -3
  6. package/lib/cjs/duet-alert.cjs.entry.js +4 -4
  7. package/lib/cjs/duet-badge.cjs.entry.js +6 -6
  8. package/lib/cjs/duet-banner.cjs.entry.js +8 -8
  9. package/lib/cjs/duet-breadcrumb.cjs.entry.js +6 -6
  10. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +5 -5
  11. package/lib/cjs/duet-button_2.cjs.entry.js +5 -5
  12. package/lib/cjs/duet-callout.cjs.entry.js +5 -5
  13. package/lib/cjs/duet-caption_4.cjs.entry.js +10 -10
  14. package/lib/cjs/duet-card.cjs.entry.js +10 -9
  15. package/lib/cjs/duet-checkbox.cjs.entry.js +3 -3
  16. package/lib/cjs/duet-checkmark.cjs.entry.js +4 -4
  17. package/lib/cjs/duet-chip.cjs.entry.js +3 -3
  18. package/lib/cjs/duet-choice_2.cjs.entry.js +16 -7
  19. package/lib/cjs/duet-collapsible.cjs.entry.js +3 -3
  20. package/lib/cjs/duet-combobox.cjs.entry.js +32 -25
  21. package/lib/cjs/duet-contact-card.cjs.entry.js +8 -7
  22. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  23. package/lib/cjs/duet-date-picker.cjs.entry.js +17 -13
  24. package/lib/cjs/duet-divider_2.cjs.entry.js +3 -3
  25. package/lib/cjs/duet-editable-table_3.cjs.entry.js +8 -8
  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 +4 -4
  30. package/lib/cjs/duet-grid_2.cjs.entry.js +12 -8
  31. package/lib/cjs/duet-header_2.cjs.entry.js +3 -3
  32. package/lib/cjs/duet-hero.cjs.entry.js +18 -13
  33. package/lib/cjs/duet-icon.cjs.entry.js +5 -5
  34. package/lib/cjs/duet-indicator.cjs.entry.js +3 -3
  35. package/lib/cjs/duet-input_2.cjs.entry.js +33 -19
  36. package/lib/cjs/duet-layout.cjs.entry.js +2 -2
  37. package/lib/cjs/duet-list_2.cjs.entry.js +4 -4
  38. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +4 -4
  39. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +4 -4
  40. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +6 -6
  41. package/lib/cjs/duet-menu-bar-item.cjs.entry.js +7 -7
  42. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +4 -4
  43. package/lib/cjs/duet-menu-bar.cjs.entry.js +3 -3
  44. package/lib/cjs/duet-modal.cjs.entry.js +12 -13
  45. package/lib/cjs/duet-multiselect.cjs.entry.js +10 -10
  46. package/lib/cjs/duet-nav.cjs.entry.js +3 -3
  47. package/lib/cjs/duet-notification_2.cjs.entry.js +9 -9
  48. package/lib/cjs/duet-number-input.cjs.entry.js +8 -8
  49. package/lib/cjs/duet-overlay.cjs.entry.js +3 -3
  50. package/lib/cjs/duet-page-heading.cjs.entry.js +6 -6
  51. package/lib/cjs/duet-pagination_2.cjs.entry.js +16 -16
  52. package/lib/cjs/duet-panel.cjs.entry.js +4 -4
  53. package/lib/cjs/duet-phone-input.cjs.entry.js +13 -5
  54. package/lib/cjs/duet-popup-menu_2.cjs.entry.js +22 -13
  55. package/lib/cjs/duet-progress.cjs.entry.js +3 -3
  56. package/lib/cjs/duet-promo-card.cjs.entry.js +8 -8
  57. package/lib/cjs/duet-radio_2.cjs.entry.js +7 -7
  58. package/lib/cjs/duet-range-slider.cjs.entry.js +6 -6
  59. package/lib/cjs/duet-scrollable_3.cjs.entry.js +15 -15
  60. package/lib/cjs/duet-section-layout.cjs.entry.js +4 -4
  61. package/lib/cjs/duet-select.cjs.entry.js +9 -9
  62. package/lib/cjs/duet-shaped-image.cjs.entry.js +4 -4
  63. package/lib/cjs/duet-share-chart-item.cjs.entry.js +2 -2
  64. package/lib/cjs/duet-share-chart.cjs.entry.js +6 -6
  65. package/lib/cjs/duet-show-more.cjs.entry.js +5 -5
  66. package/lib/cjs/duet-slideout-lang.cjs.entry.js +4 -4
  67. package/lib/cjs/duet-slideout-link.cjs.entry.js +7 -7
  68. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +6 -6
  69. package/lib/cjs/duet-slideout-panel.cjs.entry.js +11 -11
  70. package/lib/cjs/duet-slideout.cjs.entry.js +10 -10
  71. package/lib/cjs/duet-status-icon.cjs.entry.js +3 -3
  72. package/lib/cjs/duet-step_2.cjs.entry.js +6 -6
  73. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +4 -4
  74. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +6 -6
  75. package/lib/cjs/duet-submenu-bar-item.cjs.entry.js +6 -6
  76. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +3 -3
  77. package/lib/cjs/duet-submenu-bar.cjs.entry.js +7 -7
  78. package/lib/cjs/duet-teaser.cjs.entry.js +110 -0
  79. package/lib/cjs/duet-textarea.cjs.entry.js +20 -11
  80. package/lib/cjs/duet-toggle.cjs.entry.js +8 -8
  81. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +4 -4
  82. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +6 -6
  83. package/lib/cjs/duet-toolbar-item.cjs.entry.js +8 -8
  84. package/lib/cjs/duet-toolbar-link.cjs.entry.js +4 -4
  85. package/lib/cjs/duet-toolbar.cjs.entry.js +4 -4
  86. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +10 -10
  87. package/lib/cjs/duet-tooltip.cjs.entry.js +5 -5
  88. package/lib/cjs/duet-tray.cjs.entry.js +5 -5
  89. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +2 -2
  90. package/lib/cjs/duet-upload-item.cjs.entry.js +6 -6
  91. package/lib/cjs/duet-visually-hidden.cjs.entry.js +2 -2
  92. package/lib/cjs/duet.cjs.js +3 -3
  93. package/lib/cjs/{errorcodes.utils-C0tQ3k6Z.js → errorcodes.utils-MdC-C1Fa.js} +1 -1
  94. package/lib/cjs/{floating-ui.dom.browser.min-Cj0r5YDz.js → floating-ui.dom.browser.min-DaH62q3u.js} +83 -0
  95. package/lib/cjs/{focus-utils-tCoGOO7d.js → focus-utils-KpSp5WDp.js} +1 -1
  96. package/lib/cjs/{index-BeiMjjVl.js → index-BP4tQozH.js} +5 -1
  97. package/lib/cjs/{label-Cu4DNShe.js → label-CjvqwyJR.js} +1 -1
  98. package/lib/cjs/{language-utils-B3NubUDr.js → language-utils-BCJyRc_q.js} +1 -1
  99. package/lib/cjs/loader.cjs.js +3 -3
  100. package/lib/cjs/{picture-utils-D_HVgfq5.js → picture-utils-Dp6TiDHy.js} +7 -2
  101. package/lib/cjs/{slot-utils-Dny6EJ_G.js → slot-utils-DvtoWHAA.js} +1 -1
  102. package/lib/cjs/{themeable-component-Csdvrnsd.js → themeable-component-BXqwFhg-.js} +1 -1
  103. package/lib/collection/collection-manifest.json +1 -0
  104. package/lib/collection/components/duet-badge/duet-badge.js +2 -2
  105. package/lib/collection/components/duet-banner/duet-banner.js +23 -4
  106. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  107. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  108. package/lib/collection/components/duet-button/duet-button.css +3 -0
  109. package/lib/collection/components/duet-callout/duet-callout.js +2 -2
  110. package/lib/collection/components/duet-card/duet-card.css +13 -9
  111. package/lib/collection/components/duet-card/duet-card.js +24 -4
  112. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  113. package/lib/collection/components/duet-choice-group/duet-choice-group.js +12 -3
  114. package/lib/collection/components/duet-combobox/duet-combobox-select.js +1 -1
  115. package/lib/collection/components/duet-combobox/duet-combobox.js +30 -24
  116. package/lib/collection/components/duet-contact-card/duet-contact-card.js +23 -3
  117. package/lib/collection/components/duet-date-picker/date-picker-day.js +1 -1
  118. package/lib/collection/components/duet-date-picker/duet-date-picker.js +34 -7
  119. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  120. package/lib/collection/components/duet-grid/duet-grid.css +22 -0
  121. package/lib/collection/components/duet-grid/duet-grid.js +14 -5
  122. package/lib/collection/components/duet-grid-item/duet-grid-item.js +2 -2
  123. package/lib/collection/components/duet-hero/duet-hero.css +149 -136
  124. package/lib/collection/components/duet-hero/duet-hero.js +32 -7
  125. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  126. package/lib/collection/components/duet-input/duet-input.css +31 -0
  127. package/lib/collection/components/duet-input/duet-input.js +48 -14
  128. package/lib/collection/components/duet-link/duet-link.css +16 -0
  129. package/lib/collection/components/duet-link/duet-link.js +2 -2
  130. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  131. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  132. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  133. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  134. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  135. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  136. package/lib/collection/components/duet-modal/duet-modal.css +8 -1
  137. package/lib/collection/components/duet-modal/duet-modal.js +6 -7
  138. package/lib/collection/components/duet-multiselect/duet-multiselect.js +5 -5
  139. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  140. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  141. package/lib/collection/components/duet-notification-drawer/duet-notification-drawer.js +3 -3
  142. package/lib/collection/components/duet-number-input/duet-number-input.js +23 -4
  143. package/lib/collection/components/duet-overlay/duet-overlay.js +1 -1
  144. package/lib/collection/components/duet-page-heading/duet-page-heading.js +3 -3
  145. package/lib/collection/components/duet-pagination/duet-pagination.js +11 -11
  146. package/lib/collection/components/duet-panel/duet-panel.js +2 -2
  147. package/lib/collection/components/duet-paragraph/duet-paragraph.js +2 -2
  148. package/lib/collection/components/duet-phone-input/duet-phone-input.js +9 -1
  149. package/lib/collection/components/duet-popup-menu/duet-popup-menu.js +13 -4
  150. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.css +2 -0
  151. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  152. package/lib/collection/components/duet-promo-card/duet-promo-card.js +23 -4
  153. package/lib/collection/components/duet-radio/duet-radio.js +3 -3
  154. package/lib/collection/components/duet-radio-group/duet-radio-group.js +1 -1
  155. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  156. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -2
  157. package/lib/collection/components/duet-scrollable/duet-scrollable.js +5 -5
  158. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  159. package/lib/collection/components/duet-select/duet-select.js +5 -5
  160. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  161. package/lib/collection/components/duet-share-chart/duet-share-chart.js +2 -2
  162. package/lib/collection/components/duet-share-chart-item/duet-share-chart-item.js +1 -1
  163. package/lib/collection/components/duet-show-more/duet-show-more.js +2 -2
  164. package/lib/collection/components/duet-slideout/duet-slideout.js +4 -4
  165. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  166. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  167. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  168. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  169. package/lib/collection/components/duet-spacer/duet-spacer.js +1 -1
  170. package/lib/collection/components/duet-spinner/duet-spinner.js +1 -1
  171. package/lib/collection/components/duet-status-icon/duet-status-icon.js +2 -2
  172. package/lib/collection/components/duet-step/duet-step.js +2 -2
  173. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  174. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  175. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  176. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  177. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  178. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  179. package/lib/collection/components/duet-tab/duet-tab.js +2 -2
  180. package/lib/collection/components/duet-tab-group/duet-tab-group.js +4 -4
  181. package/lib/collection/components/duet-table/duet-table.js +2 -2
  182. package/lib/collection/components/duet-teaser/duet-teaser.css +127 -0
  183. package/lib/collection/components/duet-teaser/duet-teaser.js +462 -0
  184. package/lib/collection/components/duet-textarea/duet-textarea.css +8 -0
  185. package/lib/collection/components/duet-textarea/duet-textarea.js +35 -6
  186. package/lib/collection/components/duet-toggle/duet-toggle.js +3 -3
  187. package/lib/collection/components/duet-toolbar/duet-toolbar.js +2 -2
  188. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  189. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  190. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +3 -3
  191. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  192. package/lib/collection/components/duet-tooltip/duet-tooltip-button.css +6 -0
  193. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +3 -3
  194. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +3 -3
  195. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  196. package/lib/collection/components/duet-upload/duet-upload.js +2 -2
  197. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  198. package/lib/collection/components/duet-upload-item/duet-upload-item.js +2 -2
  199. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  200. package/lib/collection/utils/picture-utils.js +6 -1
  201. package/lib/duet/duet.esm.js +1 -1
  202. package/lib/duet/p-01a6e993.entry.js +4 -0
  203. package/lib/duet/{p-4e1c2676.entry.js → p-0476dabc.entry.js} +1 -1
  204. package/lib/duet/p-06e879d2.entry.js +4 -0
  205. package/lib/duet/p-0f433f55.entry.js +4 -0
  206. package/lib/duet/{p-1d7a9425.entry.js → p-126b3fd0.entry.js} +1 -1
  207. package/lib/duet/{p-c54ecb23.entry.js → p-1566e2ec.entry.js} +1 -1
  208. package/lib/duet/{p-4e5532c8.entry.js → p-1956dd8e.entry.js} +1 -1
  209. package/lib/duet/{p-20c8226c.entry.js → p-1db9e784.entry.js} +1 -1
  210. package/lib/duet/{p-6ce82324.entry.js → p-1deed1aa.entry.js} +1 -1
  211. package/lib/duet/{p-3b9d7f6a.entry.js → p-27894857.entry.js} +1 -1
  212. package/lib/duet/{p-4a041c60.entry.js → p-2c2e7c9b.entry.js} +1 -1
  213. package/lib/duet/{p-ee369233.entry.js → p-2c465a03.entry.js} +1 -1
  214. package/lib/duet/p-2d780739.entry.js +4 -0
  215. package/lib/duet/{p-4b07ce36.entry.js → p-2f092aed.entry.js} +1 -1
  216. package/lib/duet/p-304af2e5.entry.js +4 -0
  217. package/lib/duet/{p-6a11ba26.entry.js → p-34d16cbb.entry.js} +1 -1
  218. package/lib/duet/p-34ec25cb.entry.js +4 -0
  219. package/lib/duet/{p-f4de7ac0.entry.js → p-37d5a3c5.entry.js} +1 -1
  220. package/lib/duet/{p-2e44c6b8.entry.js → p-3932a89b.entry.js} +1 -1
  221. package/lib/duet/{p-46287d85.entry.js → p-3c8d76e2.entry.js} +1 -1
  222. package/lib/duet/{p-8fbcea55.entry.js → p-3d454072.entry.js} +1 -1
  223. package/lib/duet/{p-aa1256f9.entry.js → p-3e66035d.entry.js} +1 -1
  224. package/lib/duet/{p-83dcbb64.entry.js → p-471d4d75.entry.js} +1 -1
  225. package/lib/duet/{p-f4538e9d.entry.js → p-4ddf8009.entry.js} +1 -1
  226. package/lib/duet/{p-4acdc586.entry.js → p-5044e0ed.entry.js} +1 -1
  227. package/lib/duet/{p-304a9a55.entry.js → p-5103d5f4.entry.js} +1 -1
  228. package/lib/duet/{p-3533d6ee.entry.js → p-51693a7c.entry.js} +1 -1
  229. package/lib/duet/{p-f297f8f2.entry.js → p-54bfe081.entry.js} +1 -1
  230. package/lib/duet/p-588e75cd.entry.js +4 -0
  231. package/lib/duet/{p-174935bc.entry.js → p-5d70e259.entry.js} +1 -1
  232. package/lib/duet/p-618cfeef.entry.js +4 -0
  233. package/lib/duet/{p-12d7fdf6.entry.js → p-6449b1cc.entry.js} +1 -1
  234. package/lib/duet/{p-e442943d.entry.js → p-6502a274.entry.js} +1 -1
  235. package/lib/duet/p-69a72f22.entry.js +4 -0
  236. package/lib/duet/{p-512d18c8.entry.js → p-6e4536e3.entry.js} +1 -1
  237. package/lib/duet/{p-fdc4a97c.entry.js → p-6ed52261.entry.js} +1 -1
  238. package/lib/duet/{p-ac4fc44c.entry.js → p-712adcec.entry.js} +1 -1
  239. package/lib/duet/{p-4cee693b.entry.js → p-79afa773.entry.js} +1 -1
  240. package/lib/duet/p-7d61dc62.entry.js +4 -0
  241. package/lib/duet/p-7f9de2a6.entry.js +4 -0
  242. package/lib/duet/{p-e40d9c21.entry.js → p-870d3c78.entry.js} +1 -1
  243. package/lib/duet/{p-ae382e2e.entry.js → p-88bf42dc.entry.js} +1 -1
  244. package/lib/duet/{p-8927ccc1.entry.js → p-88e65283.entry.js} +1 -1
  245. package/lib/duet/{p-bc41d13d.entry.js → p-8aaf283d.entry.js} +1 -1
  246. package/lib/duet/p-8d939074.entry.js +4 -0
  247. package/lib/duet/{p-a01f3141.entry.js → p-908fca79.entry.js} +1 -1
  248. package/lib/duet/{p-9b2731b9.entry.js → p-93080f2d.entry.js} +1 -1
  249. package/lib/duet/{p-407d4e5a.entry.js → p-94d057ea.entry.js} +1 -1
  250. package/lib/duet/{p-84f8bee8.entry.js → p-99367980.entry.js} +1 -1
  251. package/lib/duet/{p-f30c3cfe.entry.js → p-9a248faf.entry.js} +1 -1
  252. package/lib/duet/p-9d405b35.entry.js +4 -0
  253. package/lib/duet/{p-30d8a1e4.entry.js → p-9ed154f5.entry.js} +1 -1
  254. package/lib/duet/{p-DI7IXBXp.js → p-B1GzOTNZ.js} +1 -1
  255. package/lib/duet/p-BQTM1aqo.js +4 -0
  256. package/lib/duet/{p-D3450NfA.js → p-CdcBxXLd.js} +1 -1
  257. package/lib/duet/{p-KbNgo0QF.js → p-CirNV9Vh.js} +1 -1
  258. package/lib/duet/{p-D9N9LBeD.js → p-Cj9zQLn2.js} +1 -1
  259. package/lib/duet/{p-JFwTD5kM.js → p-D3ladndz.js} +1 -1
  260. package/lib/duet/p-D4pJQwPW.js +4 -0
  261. package/lib/duet/p-Dbe-q7B5.js +4 -0
  262. package/lib/duet/{p-BDgGHTHh.js → p-DmLE9-rw.js} +1 -1
  263. package/lib/duet/{p-CcoGR9T9.js → p-DoEOuTZj.js} +1 -1
  264. package/lib/duet/{p-61abccd4.entry.js → p-a2514ad4.entry.js} +1 -1
  265. package/lib/duet/{p-0e10e36b.entry.js → p-a4a3febe.entry.js} +1 -1
  266. package/lib/duet/p-a517cdce.entry.js +4 -0
  267. package/lib/duet/{p-374b48f6.entry.js → p-a70bb08d.entry.js} +1 -1
  268. package/lib/duet/{p-d72dee5d.entry.js → p-aa2c3e0a.entry.js} +1 -1
  269. package/lib/duet/{p-95bb2a8d.entry.js → p-af7b2954.entry.js} +1 -1
  270. package/lib/duet/{p-9c41f1d5.entry.js → p-b37d4985.entry.js} +1 -1
  271. package/lib/duet/p-b4cf5f14.entry.js +4 -0
  272. package/lib/duet/{p-d7abb7fa.entry.js → p-b6233e75.entry.js} +1 -1
  273. package/lib/duet/{p-555e0c78.entry.js → p-b97098a6.entry.js} +1 -1
  274. package/lib/duet/{p-f8d640ba.entry.js → p-bd0263e4.entry.js} +1 -1
  275. package/lib/duet/{p-244bfbf9.entry.js → p-beaa4612.entry.js} +1 -1
  276. package/lib/duet/{p-264688ae.entry.js → p-c15c8dd2.entry.js} +1 -1
  277. package/lib/duet/{p-20066df8.entry.js → p-c223cd3e.entry.js} +1 -1
  278. package/lib/duet/{p-8bdcfd1f.entry.js → p-c35ae5a0.entry.js} +1 -1
  279. package/lib/duet/p-c435bb67.entry.js +4 -0
  280. package/lib/duet/{p-3def9480.entry.js → p-c6e3723f.entry.js} +1 -1
  281. package/lib/duet/{p-9b448008.entry.js → p-c7b32952.entry.js} +1 -1
  282. package/lib/duet/p-c95669be.entry.js +4 -0
  283. package/lib/duet/{p-1579bdf5.entry.js → p-c987a644.entry.js} +1 -1
  284. package/lib/duet/p-c9b8c2ba.entry.js +4 -0
  285. package/lib/duet/{p-ec1d2e0a.entry.js → p-c9bdf927.entry.js} +1 -1
  286. package/lib/duet/p-cdf0fb4c.entry.js +4 -0
  287. package/lib/duet/p-d069edf1.entry.js +4 -0
  288. package/lib/duet/p-ddafe27d.entry.js +4 -0
  289. package/lib/duet/{p-210bc161.entry.js → p-dfdec452.entry.js} +1 -1
  290. package/lib/duet/{p-829bccb7.entry.js → p-e0f729ad.entry.js} +1 -1
  291. package/lib/duet/{p-5f72134e.entry.js → p-e32af858.entry.js} +1 -1
  292. package/lib/duet/{p-5b322a86.entry.js → p-e353daaf.entry.js} +1 -1
  293. package/lib/duet/p-e5dbac7a.entry.js +4 -0
  294. package/lib/duet/p-ec2dcb1b.entry.js +4 -0
  295. package/lib/duet/{p-9889218e.entry.js → p-ed7fbc44.entry.js} +1 -1
  296. package/lib/duet/{p-914ee7ac.entry.js → p-ef6ce9dc.entry.js} +1 -1
  297. package/lib/duet/{p-fc2be136.entry.js → p-fcb9c0db.entry.js} +1 -1
  298. package/lib/duet/{p-48e77341.entry.js → p-fe821e46.entry.js} +1 -1
  299. package/lib/duet/p-qboSQpUe.js +4 -0
  300. package/lib/esm/{a11y-utils--wwGTL0T.js → a11y-utils-DbDY4hy4.js} +1 -1
  301. package/lib/esm/{app-globals-Diuuep9d.js → app-globals-COfbcvxE.js} +1 -1
  302. package/lib/esm/duet-action-button.entry.js +3 -3
  303. package/lib/esm/duet-alert.entry.js +4 -4
  304. package/lib/esm/duet-badge.entry.js +6 -6
  305. package/lib/esm/duet-banner.entry.js +8 -8
  306. package/lib/esm/duet-breadcrumb.entry.js +6 -6
  307. package/lib/esm/duet-breadcrumbs.entry.js +5 -5
  308. package/lib/esm/duet-button_2.entry.js +5 -5
  309. package/lib/esm/duet-callout.entry.js +5 -5
  310. package/lib/esm/duet-caption_4.entry.js +10 -10
  311. package/lib/esm/duet-card.entry.js +10 -9
  312. package/lib/esm/duet-checkbox.entry.js +3 -3
  313. package/lib/esm/duet-checkmark.entry.js +4 -4
  314. package/lib/esm/duet-chip.entry.js +3 -3
  315. package/lib/esm/duet-choice_2.entry.js +16 -7
  316. package/lib/esm/duet-collapsible.entry.js +3 -3
  317. package/lib/esm/duet-combobox.entry.js +32 -25
  318. package/lib/esm/duet-contact-card.entry.js +8 -7
  319. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  320. package/lib/esm/duet-date-picker.entry.js +17 -13
  321. package/lib/esm/duet-divider_2.entry.js +3 -3
  322. package/lib/esm/duet-editable-table_3.entry.js +8 -8
  323. package/lib/esm/duet-empty-state.entry.js +2 -2
  324. package/lib/esm/duet-fieldset.entry.js +6 -6
  325. package/lib/esm/duet-file-chooser.entry.js +2 -2
  326. package/lib/esm/duet-footer.entry.js +4 -4
  327. package/lib/esm/duet-grid_2.entry.js +12 -8
  328. package/lib/esm/duet-header_2.entry.js +3 -3
  329. package/lib/esm/duet-hero.entry.js +18 -13
  330. package/lib/esm/duet-icon.entry.js +5 -5
  331. package/lib/esm/duet-indicator.entry.js +3 -3
  332. package/lib/esm/duet-input_2.entry.js +33 -19
  333. package/lib/esm/duet-layout.entry.js +2 -2
  334. package/lib/esm/duet-list_2.entry.js +4 -4
  335. package/lib/esm/duet-menu-bar-button.entry.js +4 -4
  336. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +4 -4
  337. package/lib/esm/duet-menu-bar-dropdown.entry.js +6 -6
  338. package/lib/esm/duet-menu-bar-item.entry.js +7 -7
  339. package/lib/esm/duet-menu-bar-link.entry.js +4 -4
  340. package/lib/esm/duet-menu-bar.entry.js +3 -3
  341. package/lib/esm/duet-modal.entry.js +12 -13
  342. package/lib/esm/duet-multiselect.entry.js +10 -10
  343. package/lib/esm/duet-nav.entry.js +3 -3
  344. package/lib/esm/duet-notification_2.entry.js +9 -9
  345. package/lib/esm/duet-number-input.entry.js +8 -8
  346. package/lib/esm/duet-overlay.entry.js +3 -3
  347. package/lib/esm/duet-page-heading.entry.js +6 -6
  348. package/lib/esm/duet-pagination_2.entry.js +16 -16
  349. package/lib/esm/duet-panel.entry.js +4 -4
  350. package/lib/esm/duet-phone-input.entry.js +13 -5
  351. package/lib/esm/duet-popup-menu_2.entry.js +22 -13
  352. package/lib/esm/duet-progress.entry.js +3 -3
  353. package/lib/esm/duet-promo-card.entry.js +8 -8
  354. package/lib/esm/duet-radio_2.entry.js +7 -7
  355. package/lib/esm/duet-range-slider.entry.js +6 -6
  356. package/lib/esm/duet-scrollable_3.entry.js +15 -15
  357. package/lib/esm/duet-section-layout.entry.js +4 -4
  358. package/lib/esm/duet-select.entry.js +9 -9
  359. package/lib/esm/duet-shaped-image.entry.js +4 -4
  360. package/lib/esm/duet-share-chart-item.entry.js +2 -2
  361. package/lib/esm/duet-share-chart.entry.js +6 -6
  362. package/lib/esm/duet-show-more.entry.js +5 -5
  363. package/lib/esm/duet-slideout-lang.entry.js +4 -4
  364. package/lib/esm/duet-slideout-link.entry.js +7 -7
  365. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -6
  366. package/lib/esm/duet-slideout-panel.entry.js +11 -11
  367. package/lib/esm/duet-slideout.entry.js +10 -10
  368. package/lib/esm/duet-status-icon.entry.js +3 -3
  369. package/lib/esm/duet-step_2.entry.js +6 -6
  370. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +4 -4
  371. package/lib/esm/duet-submenu-bar-dropdown.entry.js +6 -6
  372. package/lib/esm/duet-submenu-bar-item.entry.js +6 -6
  373. package/lib/esm/duet-submenu-bar-link.entry.js +3 -3
  374. package/lib/esm/duet-submenu-bar.entry.js +7 -7
  375. package/lib/esm/duet-teaser.entry.js +108 -0
  376. package/lib/esm/duet-textarea.entry.js +20 -11
  377. package/lib/esm/duet-toggle.entry.js +8 -8
  378. package/lib/esm/duet-toolbar-dropdown-link.entry.js +4 -4
  379. package/lib/esm/duet-toolbar-dropdown.entry.js +6 -6
  380. package/lib/esm/duet-toolbar-item.entry.js +8 -8
  381. package/lib/esm/duet-toolbar-link.entry.js +4 -4
  382. package/lib/esm/duet-toolbar.entry.js +4 -4
  383. package/lib/esm/duet-tooltip-button_2.entry.js +10 -10
  384. package/lib/esm/duet-tooltip.entry.js +5 -5
  385. package/lib/esm/duet-tray.entry.js +5 -5
  386. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  387. package/lib/esm/duet-upload-item.entry.js +6 -6
  388. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  389. package/lib/esm/duet.js +4 -4
  390. package/lib/esm/{errorcodes.utils-S_WrUPeV.js → errorcodes.utils-0XnfYFAn.js} +1 -1
  391. package/lib/esm/{floating-ui.dom.browser.min-B_NkY9T0.js → floating-ui.dom.browser.min-BQTM1aqo.js} +83 -1
  392. package/lib/esm/{focus-utils-C4oaajGr.js → focus-utils-BwoMMpkj.js} +1 -1
  393. package/lib/esm/{index-D3450NfA.js → index-CdcBxXLd.js} +5 -1
  394. package/lib/esm/{label-C1HF2o4Y.js → label-D835wXCb.js} +1 -1
  395. package/lib/esm/{language-utils-D4WVl8Ph.js → language-utils-C-lpMyP9.js} +1 -1
  396. package/lib/esm/loader.js +4 -4
  397. package/lib/esm/{picture-utils-MSeJTkDk.js → picture-utils-Cl2qK3GJ.js} +7 -2
  398. package/lib/esm/{slot-utils-Dxcjtmp3.js → slot-utils-BSS0Em_Z.js} +1 -1
  399. package/lib/esm/{themeable-component-QHdUfcat.js → themeable-component-DQtSOD4i.js} +1 -1
  400. package/lib/types/components/duet-banner/duet-banner.d.ts +5 -0
  401. package/lib/types/components/duet-card/duet-card.d.ts +5 -0
  402. package/lib/types/components/duet-combobox/duet-combobox.d.ts +2 -1
  403. package/lib/types/components/duet-contact-card/duet-contact-card.d.ts +5 -0
  404. package/lib/types/components/duet-date-picker/duet-date-picker.d.ts +5 -1
  405. package/lib/types/components/duet-grid/duet-grid.d.ts +2 -1
  406. package/lib/types/components/duet-hero/duet-hero.d.ts +5 -0
  407. package/lib/types/components/duet-input/duet-input.d.ts +11 -1
  408. package/lib/types/components/duet-number-input/duet-number-input.d.ts +4 -0
  409. package/lib/types/components/duet-phone-input/duet-phone-input.d.ts +1 -0
  410. package/lib/types/components/duet-promo-card/duet-promo-card.d.ts +5 -0
  411. package/lib/types/components/duet-teaser/duet-teaser.d.ts +93 -0
  412. package/lib/types/components/duet-textarea/duet-textarea.d.ts +8 -1
  413. package/lib/types/components.d.ts +235 -12
  414. package/lib/types/utils/picture-utils.d.ts +4 -0
  415. package/package.json +5 -5
  416. package/lib/duet/p-054c334d.entry.js +0 -4
  417. package/lib/duet/p-2bf78fe4.entry.js +0 -4
  418. package/lib/duet/p-3445529c.entry.js +0 -4
  419. package/lib/duet/p-3fbe466a.entry.js +0 -4
  420. package/lib/duet/p-41230630.entry.js +0 -4
  421. package/lib/duet/p-44e53564.entry.js +0 -4
  422. package/lib/duet/p-4a251661.entry.js +0 -4
  423. package/lib/duet/p-4a4e5bb5.entry.js +0 -4
  424. package/lib/duet/p-6bd78205.entry.js +0 -4
  425. package/lib/duet/p-6c239923.entry.js +0 -4
  426. package/lib/duet/p-6d1d1199.entry.js +0 -4
  427. package/lib/duet/p-81c5d3e3.entry.js +0 -4
  428. package/lib/duet/p-985213bb.entry.js +0 -4
  429. package/lib/duet/p-BZev46O8.js +0 -4
  430. package/lib/duet/p-B_NkY9T0.js +0 -4
  431. package/lib/duet/p-CyfEm8iD.js +0 -4
  432. package/lib/duet/p-Dk60lC7n.js +0 -4
  433. package/lib/duet/p-a49b5d93.entry.js +0 -4
  434. package/lib/duet/p-a6dbe893.entry.js +0 -4
  435. package/lib/duet/p-aa7e4c81.entry.js +0 -4
  436. package/lib/duet/p-dbb9e1d4.entry.js +0 -4
  437. package/lib/duet/p-e43df9c2.entry.js +0 -4
  438. package/lib/duet/p-eb7bc989.entry.js +0 -4
  439. package/lib/duet/p-edcdf0b7.entry.js +0 -4
  440. package/lib/duet/p-f9db8670.entry.js +0 -4
  441. package/lib/duet/p-fc1a18f8.entry.js +0 -4
@@ -110,7 +110,7 @@ export class DuetTab {
110
110
  * Always the last one in the class.
111
111
  */
112
112
  render() {
113
- return (h("div", { key: 'df1d38a00ae486704755f845444bbb3d99c63017', ref: element => {
113
+ return (h("div", { key: '52685c26793f37570debd51c11fd6d9c0eacb7a1', ref: element => {
114
114
  if (!this.contentId) {
115
115
  this.tabpanelElement = element;
116
116
  }
@@ -119,7 +119,7 @@ export class DuetTab {
119
119
  "duet-tab": true,
120
120
  selected: this.selected,
121
121
  "has-content-id": !!this.contentId,
122
- }, "aria-description": this.accessibleDescription, "aria-labelledby": this.accessibleLabelledBy, tabindex: "-1" }, h("slot", { key: '31ef9a143a4015fd0fe6eb0ce190dc4b5bbbd582' })));
122
+ }, "aria-description": this.accessibleDescription, "aria-labelledby": this.accessibleLabelledBy, tabindex: "-1" }, h("slot", { key: 'bc08f9d93e9cb6653bfb2a97f5cc5fb9f67a1fe9' })));
123
123
  }
124
124
  static get is() { return "duet-tab"; }
125
125
  static get encapsulation() { return "shadow"; }
@@ -281,13 +281,13 @@ export class DuetTabGroup {
281
281
  [largeBreakpoint]: ["default", "plain", "plain-scrolling"].includes(this.variation) ? true : false,
282
282
  "duet-theme-turva": this.theme === "turva",
283
283
  }, onClick: () => this.onTabSelect(index), onKeyDown: ev => this.handleKeyDown(ev) }, this.variation === "checked" ? (h("div", { class: { "checked-tab-content": true, "stackable-checked-tab-content": this.tabs.length <= 3 } }, h("div", { class: { "checked-tab-description": true, "stackable-description": this.tabs.length <= 3 } }, h("p", null, element.label), h("p", { class: { "tab-caption": true, selected: element.selected } }, element.caption)), h("div", { class: { "stackable-checkmark": this.tabs.length <= 3 } }, h("duet-checkmark", { theme: this.theme, checked: element.selected, type: "radio", "presentation-only": true, center: true })))) : (element.label), element.indicator && (h("duet-indicator", { variation: element.indicator, "accessible-label": element.indicatorAccessibleLabel })))));
284
- return (h("div", { key: '417e3a0eb99cdf3d6df636586be7435cad2144ac', class: {
284
+ return (h("div", { key: '494ac1333a13dd37b390174ca79a3a90e89f13d0', class: {
285
285
  "duet-tab-group": true,
286
286
  "duet-theme-turva": this.theme === "turva",
287
287
  [variationClass]: true,
288
288
  "duet-tab-plain-scrolling": this.variation === "plain-scrolling",
289
289
  "duet-tab-group-scrolls": true,
290
- }, "aria-label": this.accessibleLabel }, h("div", { key: 'da12d48bcbb77d4e88ca34c63ee54c63db53eacd', role: "tablist", class: {
290
+ }, "aria-label": this.accessibleLabel }, h("div", { key: 'eb4e340563793bfda1941a66200f6d07929bccb2', role: "tablist", class: {
291
291
  "duet-m-0": this.margin === "none" || this.variation === "checked",
292
292
  "duet-tab-group-tabs": true,
293
293
  "duet-tab-group-hidden": this.tabs.length > 3 && !isSwipeScrollable,
@@ -298,11 +298,11 @@ export class DuetTabGroup {
298
298
  } }, this.variation === "checked" ? (buttons) : (h("div", { class: {
299
299
  "duet-tab-group-scrollable-wrapper": true,
300
300
  "duet-tab-group-fill-space-wrapper": this.fillSpace && this.variation === "default",
301
- } }, this.fillSpace && !this.stretch && this.variation === "default" && (h("div", { class: "duet-scrollable-stretch-overlay" }, h("div", { class: "background" }), h("div", { class: "border" }))), h("duet-scrollable", { selected: this.selected, identifier: this.identifier, gap: ["default", "plain", "plain-scrolling"].includes(this.variation) ? "none" : "large", buttonPosition: this.variation === "default" ? "absolute" : "relative", center: this.isCentered() ? this.isCentered() : this.element.style.textAlign == "center", theme: this.theme, stretch: this.stretch }, buttons)))), h("div", { key: '25e346444619db75d262e11a84acdfaaafa2257c', class: {
301
+ } }, this.fillSpace && !this.stretch && this.variation === "default" && (h("div", { class: "duet-scrollable-stretch-overlay" }, h("div", { class: "background" }), h("div", { class: "border" }))), h("duet-scrollable", { selected: this.selected, identifier: this.identifier, gap: ["default", "plain", "plain-scrolling"].includes(this.variation) ? "none" : "large", buttonPosition: this.variation === "default" ? "absolute" : "relative", center: this.isCentered() ? this.isCentered() : this.element.style.textAlign == "center", theme: this.theme, stretch: this.stretch }, buttons)))), h("div", { key: 'fc769c72a4f684dc6f6cf0e893b93215b98b2d87', class: {
302
302
  "duet-tab-group-content": true,
303
303
  "duet-m-0": this.margin === "none",
304
304
  "checked-group-content": this.variation === "checked",
305
- } }, h("slot", { key: 'c63f225ca6cd084bb78f4f3bcc046d21c9d47e0a' }))));
305
+ } }, h("slot", { key: '20db6ecc342cbd347bdf35885289259106a07442' }))));
306
306
  }
307
307
  static get is() { return "duet-tab-group"; }
308
308
  static get encapsulation() { return "shadow"; }
@@ -144,7 +144,7 @@ export class DuetTable {
144
144
  });
145
145
  }
146
146
  render() {
147
- return (h(Host, { key: '968bf1e9fea756e09fd9c3c26596fcf857ad8a61', class: {
147
+ return (h(Host, { key: '5416b5f7a33d4e5c30e826f1f41c03005bf5511b', class: {
148
148
  [`duet-table-${this.variation}`]: true,
149
149
  "duet-table-flattened": !this.matchesBreakpoint,
150
150
  // sticky only valid when in regular table layout
@@ -153,7 +153,7 @@ export class DuetTable {
153
153
  "duet-m-0": this.margin === "none",
154
154
  "duet-theme-turva": this.theme === "turva",
155
155
  "duet-table-hide-head-visually": this.hideHeadVisually,
156
- } }, h("slot", { key: 'ccde2e16ca1aea0af30556faad3207a61a8219d0' })));
156
+ } }, h("slot", { key: '517ff1c0cda9e306cb0ea05f1e56a1d74e9a74d3' })));
157
157
  }
158
158
  static get is() { return "duet-table"; }
159
159
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,127 @@
1
+ *,
2
+ *::after,
3
+ *::before {
4
+ box-sizing: border-box;
5
+ padding: 0;
6
+ margin: 0;
7
+ -moz-appearance: none;
8
+ -webkit-appearance: none;
9
+ appearance: none;
10
+ background: transparent;
11
+ border: 0;
12
+ }
13
+
14
+ :host {
15
+ box-sizing: border-box;
16
+ padding: 0;
17
+ margin: 0;
18
+ -moz-appearance: none;
19
+ -webkit-appearance: none;
20
+ appearance: none;
21
+ background: transparent;
22
+ border: 0;
23
+ display: block;
24
+ width: auto;
25
+ container-type: inline-size;
26
+ }
27
+
28
+ .duet-teaser {
29
+ display: flex;
30
+ flex-direction: column;
31
+ width: 100%;
32
+ height: 100%;
33
+ border-radius: 16px;
34
+ }
35
+ .duet-teaser .image-wrap,
36
+ .duet-teaser .icon-wrap {
37
+ margin-bottom: 16px;
38
+ }
39
+ .duet-teaser .image-wrap {
40
+ display: inline-block;
41
+ overflow: hidden;
42
+ border-radius: 16px;
43
+ }
44
+ .duet-teaser .image-wrap .duet-teaser-image {
45
+ display: block;
46
+ width: 100%;
47
+ aspect-ratio: 16/10;
48
+ object-fit: cover;
49
+ }
50
+ .duet-teaser .icon-wrap .duet-teaser-icon {
51
+ display: block;
52
+ width: 30px;
53
+ width: 62px;
54
+ height: 30px;
55
+ height: 62px;
56
+ }
57
+ @container (width > 450px) {
58
+ .duet-teaser .icon-wrap .duet-teaser-icon {
59
+ width: 36px;
60
+ width: 76px;
61
+ height: 36px;
62
+ height: 76px;
63
+ }
64
+ }
65
+ .duet-teaser ::slotted(.teaser-heading) {
66
+ margin: 0 0 1rem 0;
67
+ font-size: 1.5rem;
68
+ font-weight: 700;
69
+ line-height: 1.25;
70
+ }
71
+ .duet-teaser ::slotted(.teaser-heading-h5) {
72
+ font-size: 1.25rem;
73
+ font-weight: 600;
74
+ line-height: 1.25;
75
+ }
76
+ .duet-teaser .duet-teaser-body {
77
+ display: flex;
78
+ flex-direction: column;
79
+ }
80
+ .duet-teaser .duet-teaser-body .duet-teaser-meta {
81
+ order: -1;
82
+ padding-top: 8px;
83
+ }
84
+ .duet-teaser.duet-teaser-link {
85
+ text-decoration: none;
86
+ }
87
+ .duet-teaser.duet-teaser-link:focus {
88
+ outline: 2px solid;
89
+ outline-offset: 2px;
90
+ outline-color: rgba(0, 119, 179, 0.8);
91
+ }
92
+ .duet-theme-turva .duet-teaser.duet-teaser-link:focus, .duet-teaser.duet-teaser-link:focus.duet-theme-turva {
93
+ outline: 2px solid;
94
+ outline-offset: 2px;
95
+ outline-color: rgba(53, 79, 101, 0.8);
96
+ }
97
+ .duet-teaser.duet-teaser-link .image-wrap {
98
+ display: inline-block;
99
+ overflow: hidden;
100
+ }
101
+ .duet-teaser.duet-teaser-link .image-wrap img {
102
+ transition: transform 300ms ease;
103
+ }
104
+ .duet-teaser.duet-teaser-link ::slotted(.teaser-heading) {
105
+ color: rgb(0, 75, 129);
106
+ }
107
+ .duet-teaser.duet-teaser-link:hover .teaser-heading {
108
+ color: rgb(0, 97, 155);
109
+ }
110
+ .duet-teaser.duet-teaser-link:hover .image-wrap img {
111
+ transform: scale(1.1);
112
+ transition: transform 300ms ease;
113
+ }
114
+ .duet-teaser.duet-teaser-link:hover ::slotted(.teaser-heading) {
115
+ color: rgb(0, 97, 155);
116
+ text-decoration: underline;
117
+ }
118
+
119
+ .duet-theme-turva.duet-teaser {
120
+ font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
121
+ }
122
+ .duet-theme-turva.duet-teaser-link ::slotted(.teaser-heading) {
123
+ color: rgb(140, 0, 30);
124
+ }
125
+ .duet-theme-turva.duet-teaser-link:hover ::slotted(.teaser-heading) {
126
+ color: rgb(185, 3, 41);
127
+ }
@@ -0,0 +1,462 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { h, Host } from "@stencil/core";
5
+ import { inheritGlobalTheme } from "../../common/themeable-component";
6
+ import { DuetPicture } from "../../utils/picture-utils";
7
+ import { checkNamedSlotElement, hasSlot } from "../../utils/slot-utils";
8
+ import { parsePossibleJSON } from "../../utils/string-utils";
9
+ const LONG_HEADING_LENGTH = 60;
10
+ /**
11
+ * @slot links - Slot for links or buttons related to the teaser. Only default duet-link and plain duet-button components should be used in this slot. Not rendered when the `url` property is set.
12
+ */
13
+ export class DuetTeaser {
14
+ constructor() {
15
+ /**
16
+ * Theme.
17
+ */
18
+ this.theme = "";
19
+ /**
20
+ * The actual heading level used in the HTML markup.
21
+ */
22
+ this.headingLevel = "h3";
23
+ /**
24
+ * Controls the visual size of the heading. Headings longer than 60 characters
25
+ * always use "h5" visually, regardless of this setting.
26
+ */
27
+ this.headingVisualLevel = "h3";
28
+ /**
29
+ * Background color for the icon
30
+ */
31
+ this.iconBackground = "color-background-accent-secondary";
32
+ /**
33
+ * Color for the icon
34
+ */
35
+ this.iconColor = "color-foreground-accent-secondary";
36
+ /**
37
+ * Creates/updates the actual heading element as a light DOM child of the
38
+ * host, slotted into the "heading" slot.
39
+ */
40
+ this.headingSetUp = () => {
41
+ const existing = this.element.querySelector(":scope > [slot='heading']");
42
+ if (!this.heading) {
43
+ existing === null || existing === void 0 ? void 0 : existing.remove();
44
+ return;
45
+ }
46
+ const tagMatches = (existing === null || existing === void 0 ? void 0 : existing.tagName.toLowerCase()) === this.headingLevel;
47
+ const headingElement = tagMatches ? existing : document.createElement(this.headingLevel);
48
+ headingElement.slot = "heading";
49
+ headingElement.textContent = this.heading;
50
+ headingElement.className = `teaser-heading teaser-heading-${this.getHeadingVisualLevel()}`;
51
+ if (!tagMatches) {
52
+ existing === null || existing === void 0 ? void 0 : existing.remove();
53
+ this.element.appendChild(headingElement);
54
+ }
55
+ };
56
+ }
57
+ /**
58
+ * Component lifecycle events.
59
+ */
60
+ componentWillLoad() {
61
+ inheritGlobalTheme(this);
62
+ this.hasLinksSlot = hasSlot(this.element, "links");
63
+ checkNamedSlotElement(this.element, "links", "duet-link[variation=default],duet-link:not([variation]),duet-button[variation=plain]", 0, true);
64
+ }
65
+ componentDidRender() {
66
+ this.headingSetUp();
67
+ }
68
+ /**
69
+ * Sets focus on underlying a element.
70
+ * Available only when url attribute is used.
71
+ * Use this method instead of the native `focus()`.
72
+ */
73
+ async setFocus(options) {
74
+ if (this.url && this.aOrDivElement) {
75
+ this.aOrDivElement.focus(options);
76
+ }
77
+ }
78
+ getHeadingVisualLevel() {
79
+ return this.heading && this.heading.length > LONG_HEADING_LENGTH ? "h5" : this.headingVisualLevel;
80
+ }
81
+ /**
82
+ * render() function
83
+ * Always the last one of the class.
84
+ */
85
+ render() {
86
+ const TagName = this.url ? "a" : "div";
87
+ const pictureSource = {
88
+ img: {
89
+ src: this.image,
90
+ alt: this.imageAlt || "",
91
+ loading: this.imagePriority === "high" ? "eager" : "lazy",
92
+ fetchpriority: this.imagePriority,
93
+ class: "duet-teaser-image",
94
+ },
95
+ sources: parsePossibleJSON(this.sources),
96
+ };
97
+ return (h(Host, { key: '2177fb25347d6718b106ee8ae29a47da6ae543b2' }, h(TagName, { key: '4485125a5e29b14c00da4a7ff1ab55ae30ae03fd', href: this.url, class: {
98
+ "duet-teaser": true,
99
+ "duet-theme-turva": this.theme === "turva",
100
+ "duet-teaser-link": !!this.url,
101
+ }, ref: element => (this.aOrDivElement = element) }, this.image ? (h("div", { class: "image-wrap" }, h(DuetPicture, Object.assign({}, pictureSource)))) : (this.icon && (h("div", { class: "icon-wrap" }, h("duet-icon", { class: "duet-teaser-icon", shape: "brand", color: this.iconColor, background: this.iconBackground, name: this.icon, margin: "none" })))), h("div", { key: 'c1bf8197236423d2c89e927609b46bf541f2ff2c', class: "duet-teaser-body" }, this.heading && (h("div", { key: 'f217f4e9e0ef3304743f40e2fff01054ca029f70' }, h("slot", { key: '4a57d8a71a89df56fff5f1be801425a26cac3e54', name: "heading" }))), this.meta && (h("duet-paragraph", { key: 'cacaa63522817218386da1de2ef6ab41dcf7927e', class: "duet-teaser-meta", margin: "none" }, this.meta)), this.description && h("duet-paragraph", { key: '575cb467ffd41ab0a5fb5f71f8995a4a8db15d48' }, this.description), !this.url && this.hasLinksSlot && (h("duet-grid", { key: '02c90e874e6c2b45b5e43194d161b30045effd31', direction: "vertical" }, h("slot", { key: 'fd2c221a55bbb1433355d189632eaf7795576561', name: "links" })))))));
102
+ }
103
+ static get is() { return "duet-teaser"; }
104
+ static get encapsulation() { return "shadow"; }
105
+ static get originalStyleUrls() {
106
+ return {
107
+ "$": ["duet-teaser.scss"]
108
+ };
109
+ }
110
+ static get styleUrls() {
111
+ return {
112
+ "$": ["duet-teaser.css"]
113
+ };
114
+ }
115
+ static get properties() {
116
+ return {
117
+ "theme": {
118
+ "type": "string",
119
+ "attribute": "theme",
120
+ "mutable": true,
121
+ "complexType": {
122
+ "original": "DuetTheme",
123
+ "resolved": "\"\" | \"default\" | \"turva\"",
124
+ "references": {
125
+ "DuetTheme": {
126
+ "location": "import",
127
+ "path": "../../common-types",
128
+ "id": "src/common-types.d.ts::DuetTheme"
129
+ }
130
+ }
131
+ },
132
+ "required": false,
133
+ "optional": false,
134
+ "docs": {
135
+ "tags": [],
136
+ "text": "Theme."
137
+ },
138
+ "getter": false,
139
+ "setter": false,
140
+ "reflect": false,
141
+ "defaultValue": "\"\""
142
+ },
143
+ "heading": {
144
+ "type": "string",
145
+ "attribute": "heading",
146
+ "mutable": false,
147
+ "complexType": {
148
+ "original": "string",
149
+ "resolved": "string",
150
+ "references": {}
151
+ },
152
+ "required": false,
153
+ "optional": false,
154
+ "docs": {
155
+ "tags": [],
156
+ "text": "The heading text."
157
+ },
158
+ "getter": false,
159
+ "setter": false,
160
+ "reflect": false
161
+ },
162
+ "headingLevel": {
163
+ "type": "string",
164
+ "attribute": "heading-level",
165
+ "mutable": false,
166
+ "complexType": {
167
+ "original": "DuetHeadingLevel",
168
+ "resolved": "\"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\"",
169
+ "references": {
170
+ "DuetHeadingLevel": {
171
+ "location": "import",
172
+ "path": "../../common-types",
173
+ "id": "src/common-types.d.ts::DuetHeadingLevel"
174
+ }
175
+ }
176
+ },
177
+ "required": false,
178
+ "optional": false,
179
+ "docs": {
180
+ "tags": [],
181
+ "text": "The actual heading level used in the HTML markup."
182
+ },
183
+ "getter": false,
184
+ "setter": false,
185
+ "reflect": false,
186
+ "defaultValue": "\"h3\""
187
+ },
188
+ "headingVisualLevel": {
189
+ "type": "string",
190
+ "attribute": "heading-visual-level",
191
+ "mutable": false,
192
+ "complexType": {
193
+ "original": "DuetTeaserHeadingVisualLevel",
194
+ "resolved": "\"h3\" | \"h5\"",
195
+ "references": {
196
+ "DuetTeaserHeadingVisualLevel": {
197
+ "location": "local",
198
+ "path": "/Users/kasimir/projects/lahitapiola/duet-design-system/packages/components/src/components/duet-teaser/duet-teaser.tsx",
199
+ "id": "src/components/duet-teaser/duet-teaser.tsx::DuetTeaserHeadingVisualLevel"
200
+ }
201
+ }
202
+ },
203
+ "required": false,
204
+ "optional": false,
205
+ "docs": {
206
+ "tags": [],
207
+ "text": "Controls the visual size of the heading. Headings longer than 60 characters\nalways use \"h5\" visually, regardless of this setting."
208
+ },
209
+ "getter": false,
210
+ "setter": false,
211
+ "reflect": false,
212
+ "defaultValue": "\"h3\""
213
+ },
214
+ "description": {
215
+ "type": "string",
216
+ "attribute": "description",
217
+ "mutable": false,
218
+ "complexType": {
219
+ "original": "string",
220
+ "resolved": "string",
221
+ "references": {}
222
+ },
223
+ "required": false,
224
+ "optional": false,
225
+ "docs": {
226
+ "tags": [],
227
+ "text": "Description text shown below the heading."
228
+ },
229
+ "getter": false,
230
+ "setter": false,
231
+ "reflect": false
232
+ },
233
+ "meta": {
234
+ "type": "string",
235
+ "attribute": "meta",
236
+ "mutable": false,
237
+ "complexType": {
238
+ "original": "string",
239
+ "resolved": "string",
240
+ "references": {}
241
+ },
242
+ "required": false,
243
+ "optional": false,
244
+ "docs": {
245
+ "tags": [],
246
+ "text": "Meta text (date, category, etc.). Placed after the heading in source order, but rendered visually above it."
247
+ },
248
+ "getter": false,
249
+ "setter": false,
250
+ "reflect": false
251
+ },
252
+ "url": {
253
+ "type": "string",
254
+ "attribute": "url",
255
+ "mutable": false,
256
+ "complexType": {
257
+ "original": "string",
258
+ "resolved": "string",
259
+ "references": {}
260
+ },
261
+ "required": false,
262
+ "optional": false,
263
+ "docs": {
264
+ "tags": [],
265
+ "text": "A destination to link to, rendered in the href attribute of a link. Makes\nthe whole teaser act as a link and disables the links slot."
266
+ },
267
+ "getter": false,
268
+ "setter": false,
269
+ "reflect": false
270
+ },
271
+ "image": {
272
+ "type": "string",
273
+ "attribute": "image",
274
+ "mutable": false,
275
+ "complexType": {
276
+ "original": "string",
277
+ "resolved": "string",
278
+ "references": {}
279
+ },
280
+ "required": false,
281
+ "optional": false,
282
+ "docs": {
283
+ "tags": [],
284
+ "text": "Image URL. If provided, the icon property is ignored."
285
+ },
286
+ "getter": false,
287
+ "setter": false,
288
+ "reflect": false
289
+ },
290
+ "imageAlt": {
291
+ "type": "string",
292
+ "attribute": "image-alt",
293
+ "mutable": false,
294
+ "complexType": {
295
+ "original": "string",
296
+ "resolved": "string",
297
+ "references": {}
298
+ },
299
+ "required": false,
300
+ "optional": false,
301
+ "docs": {
302
+ "tags": [],
303
+ "text": "Alt attribute text for the image. If not provided, image is assigned presentation role."
304
+ },
305
+ "getter": false,
306
+ "setter": false,
307
+ "reflect": false
308
+ },
309
+ "imagePriority": {
310
+ "type": "string",
311
+ "attribute": "image-priority",
312
+ "mutable": false,
313
+ "complexType": {
314
+ "original": "\"high\" | \"low\"",
315
+ "resolved": "\"high\" | \"low\"",
316
+ "references": {}
317
+ },
318
+ "required": false,
319
+ "optional": false,
320
+ "docs": {
321
+ "tags": [],
322
+ "text": "Make the image load with higher or lower priority. Value \"high\" sets the img's attributes fetchpriority and loading to\n\"high\" and \"eager\", while value \"low\" sets those attributes to \"low\" and \"lazy\""
323
+ },
324
+ "getter": false,
325
+ "setter": false,
326
+ "reflect": false
327
+ },
328
+ "sources": {
329
+ "type": "string",
330
+ "attribute": "sources",
331
+ "mutable": false,
332
+ "complexType": {
333
+ "original": "DuetSource[] | string",
334
+ "resolved": "DuetSource[] | string",
335
+ "references": {
336
+ "DuetSource": {
337
+ "location": "import",
338
+ "path": "../../utils/picture-utils",
339
+ "id": "src/utils/picture-utils.tsx::DuetSource"
340
+ }
341
+ }
342
+ },
343
+ "required": false,
344
+ "optional": false,
345
+ "docs": {
346
+ "tags": [],
347
+ "text": "Array of sources for responsive images. Sources have the properties of <source> element."
348
+ },
349
+ "getter": false,
350
+ "setter": false,
351
+ "reflect": false
352
+ },
353
+ "icon": {
354
+ "type": "string",
355
+ "attribute": "icon",
356
+ "mutable": false,
357
+ "complexType": {
358
+ "original": "DuetIconName",
359
+ "resolved": "string",
360
+ "references": {
361
+ "DuetIconName": {
362
+ "location": "import",
363
+ "path": "../../common-types",
364
+ "id": "src/common-types.d.ts::DuetIconName"
365
+ }
366
+ }
367
+ },
368
+ "required": false,
369
+ "optional": false,
370
+ "docs": {
371
+ "tags": [],
372
+ "text": "Icon to display when no image is set. Not used if the image property is given."
373
+ },
374
+ "getter": false,
375
+ "setter": false,
376
+ "reflect": false
377
+ },
378
+ "iconBackground": {
379
+ "type": "string",
380
+ "attribute": "icon-background",
381
+ "mutable": false,
382
+ "complexType": {
383
+ "original": "DuetColor",
384
+ "resolved": "string",
385
+ "references": {
386
+ "DuetColor": {
387
+ "location": "import",
388
+ "path": "../../common-types",
389
+ "id": "src/common-types.d.ts::DuetColor"
390
+ }
391
+ }
392
+ },
393
+ "required": false,
394
+ "optional": false,
395
+ "docs": {
396
+ "tags": [],
397
+ "text": "Background color for the icon"
398
+ },
399
+ "getter": false,
400
+ "setter": false,
401
+ "reflect": false,
402
+ "defaultValue": "\"color-background-accent-secondary\""
403
+ },
404
+ "iconColor": {
405
+ "type": "string",
406
+ "attribute": "icon-color",
407
+ "mutable": false,
408
+ "complexType": {
409
+ "original": "DuetIconColor",
410
+ "resolved": "string",
411
+ "references": {
412
+ "DuetIconColor": {
413
+ "location": "import",
414
+ "path": "../../common-types",
415
+ "id": "src/common-types.d.ts::DuetIconColor"
416
+ }
417
+ }
418
+ },
419
+ "required": false,
420
+ "optional": false,
421
+ "docs": {
422
+ "tags": [],
423
+ "text": "Color for the icon"
424
+ },
425
+ "getter": false,
426
+ "setter": false,
427
+ "reflect": false,
428
+ "defaultValue": "\"color-foreground-accent-secondary\""
429
+ }
430
+ };
431
+ }
432
+ static get methods() {
433
+ return {
434
+ "setFocus": {
435
+ "complexType": {
436
+ "signature": "(options?: FocusOptions) => Promise<void>",
437
+ "parameters": [{
438
+ "name": "options",
439
+ "type": "FocusOptions",
440
+ "docs": ""
441
+ }],
442
+ "references": {
443
+ "Promise": {
444
+ "location": "global",
445
+ "id": "global::Promise"
446
+ },
447
+ "FocusOptions": {
448
+ "location": "global",
449
+ "id": "global::FocusOptions"
450
+ }
451
+ },
452
+ "return": "Promise<void>"
453
+ },
454
+ "docs": {
455
+ "text": "Sets focus on underlying a element.\nAvailable only when url attribute is used.\nUse this method instead of the native `focus()`.",
456
+ "tags": []
457
+ }
458
+ }
459
+ };
460
+ }
461
+ static get elementRef() { return "element"; }
462
+ }
@@ -217,6 +217,10 @@ duet-tooltip,
217
217
  color: rgb(8, 42, 77);
218
218
  opacity: 1 !important;
219
219
  }
220
+ .duet-textarea[readonly] {
221
+ color: rgb(62, 84, 102) !important;
222
+ border-color: rgb(212, 223, 229);
223
+ }
220
224
  .duet-textarea:hover:not(:disabled):not(:focus) {
221
225
  outline: 2px solid;
222
226
  outline-color: rgb(127, 150, 165) !important;
@@ -307,6 +311,10 @@ duet-tooltip,
307
311
  opacity: 1 !important;
308
312
  -webkit-text-fill-color: rgb(23, 42, 59) !important;
309
313
  }
314
+ .duet-theme-turva .duet-textarea[readonly] {
315
+ color: rgb(53, 79, 101) !important;
316
+ border-color: rgb(212, 221, 226);
317
+ }
310
318
  .duet-theme-turva.has-error .duet-textarea-help {
311
319
  color: rgb(214, 28, 82);
312
320
  }