@duetds/components 10.0.0-alpha.24 → 10.0.0-alpha.26

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 (429) hide show
  1. package/hydrate/index.js +488 -287
  2. package/hydrate/index.mjs +488 -287
  3. package/lib/cjs/{a11y-utils-CZnG1VYN.js → a11y-utils-CnLnSK4z.js} +1 -1
  4. package/lib/cjs/{app-globals-B36JTAfq.js → app-globals-B3iie8Hv.js} +1 -1
  5. package/lib/cjs/{common-strings-DQ3xONmA.js → common-strings-CSqtNIxt.js} +23 -0
  6. package/lib/cjs/duet-action-button.cjs.entry.js +4 -4
  7. package/lib/cjs/duet-alert.cjs.entry.js +24 -33
  8. package/lib/cjs/duet-badge.cjs.entry.js +16 -4
  9. package/lib/cjs/duet-banner.cjs.entry.js +7 -7
  10. package/lib/cjs/duet-breadcrumb.cjs.entry.js +7 -7
  11. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +6 -6
  12. package/lib/cjs/duet-button_2.cjs.entry.js +13 -13
  13. package/lib/cjs/duet-callout.cjs.entry.js +5 -5
  14. package/lib/cjs/duet-caption_4.cjs.entry.js +15 -14
  15. package/lib/cjs/duet-card.cjs.entry.js +14 -8
  16. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-checkmark.cjs.entry.js +4 -4
  18. package/lib/cjs/duet-chip.cjs.entry.js +3 -3
  19. package/lib/cjs/duet-choice_2.cjs.entry.js +35 -28
  20. package/lib/cjs/duet-collapsible.cjs.entry.js +3 -3
  21. package/lib/cjs/duet-combobox.cjs.entry.js +4 -4
  22. package/lib/cjs/duet-contact-card.cjs.entry.js +5 -5
  23. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  24. package/lib/cjs/duet-date-picker.cjs.entry.js +19 -9
  25. package/lib/cjs/duet-divider_2.cjs.entry.js +4 -4
  26. package/lib/cjs/duet-editable-table_3.cjs.entry.js +9 -9
  27. package/lib/cjs/duet-empty-state.cjs.entry.js +2 -2
  28. package/lib/cjs/duet-fieldset.cjs.entry.js +6 -6
  29. package/lib/cjs/duet-file-chooser.cjs.entry.js +2 -2
  30. package/lib/cjs/duet-footer.cjs.entry.js +5 -5
  31. package/lib/cjs/duet-grid_2.cjs.entry.js +4 -4
  32. package/lib/cjs/duet-header_2.cjs.entry.js +7 -6
  33. package/lib/cjs/duet-hero.cjs.entry.js +6 -6
  34. package/lib/cjs/duet-icon.cjs.entry.js +6 -6
  35. package/lib/cjs/duet-input_2.cjs.entry.js +7 -7
  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 +8 -8
  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 +38 -21
  45. package/lib/cjs/duet-multiselect.cjs.entry.js +5 -5
  46. package/lib/cjs/duet-nav.cjs.entry.js +3 -3
  47. package/lib/cjs/duet-notification_2.cjs.entry.js +5 -5
  48. package/lib/cjs/duet-number-input.cjs.entry.js +14 -9
  49. package/lib/cjs/duet-overlay.cjs.entry.js +2 -2
  50. package/lib/cjs/duet-page-heading.cjs.entry.js +4 -4
  51. package/lib/cjs/duet-pagination_2.cjs.entry.js +6 -6
  52. package/lib/cjs/duet-panel.cjs.entry.js +53 -0
  53. package/lib/cjs/duet-phone-input.cjs.entry.js +4 -4
  54. package/lib/cjs/duet-popup-menu_2.cjs.entry.js +6 -6
  55. package/lib/cjs/duet-progress.cjs.entry.js +3 -3
  56. package/lib/cjs/duet-promo-card.cjs.entry.js +6 -6
  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 +26 -23
  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 +9 -7
  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 +8 -8
  68. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +6 -6
  69. package/lib/cjs/duet-slideout-panel.cjs.entry.js +12 -12
  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 +7 -7
  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 +7 -7
  76. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +3 -3
  77. package/lib/cjs/duet-submenu-bar.cjs.entry.js +7 -7
  78. package/lib/cjs/duet-textarea.cjs.entry.js +8 -8
  79. package/lib/cjs/duet-toggle.cjs.entry.js +6 -6
  80. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +4 -4
  81. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +6 -6
  82. package/lib/cjs/duet-toolbar-item.cjs.entry.js +9 -9
  83. package/lib/cjs/duet-toolbar-link.cjs.entry.js +4 -4
  84. package/lib/cjs/duet-toolbar.cjs.entry.js +4 -4
  85. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +8 -8
  86. package/lib/cjs/duet-tooltip.cjs.entry.js +4 -4
  87. package/lib/cjs/duet-tray.cjs.entry.js +5 -5
  88. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +2 -2
  89. package/lib/cjs/duet-upload-item.cjs.entry.js +6 -6
  90. package/lib/cjs/duet-visually-hidden.cjs.entry.js +2 -2
  91. package/lib/cjs/duet.cjs.js +3 -3
  92. package/lib/cjs/{errorcodes.utils-C58jiu8o.js → errorcodes.utils-BgHe-1YU.js} +1 -1
  93. package/lib/cjs/{focus-utils-tY80LFI3.js → focus-utils-CT74z9Qb.js} +1 -1
  94. package/lib/cjs/{index-C1crwqC7.js → index-C6D9Bly8.js} +5 -1
  95. package/lib/cjs/{label-ClSVuKQ_.js → label-tyZX3oPG.js} +1 -1
  96. package/lib/cjs/{language-utils-BtiS-RGS.js → language-utils-DcgSN-KH.js} +1 -1
  97. package/lib/cjs/loader.cjs.js +3 -3
  98. package/lib/cjs/{slot-utils-DZVD8m30.js → slot-utils-ByPWwvPp.js} +1 -1
  99. package/lib/cjs/{themeable-component-6YQpZOSC.js → themeable-component-Doq36ycm.js} +1 -1
  100. package/lib/cjs/{token-utils-CHLLcMzU.js → token-utils-DsVwGXGM.js} +75 -7
  101. package/lib/collection/collection-manifest.json +1 -0
  102. package/lib/collection/common-strings.js +22 -0
  103. package/lib/collection/components/duet-alert/duet-alert.js +21 -30
  104. package/lib/collection/components/duet-badge/duet-badge.js +13 -2
  105. package/lib/collection/components/duet-banner/duet-banner.css +1 -0
  106. package/lib/collection/components/duet-banner/duet-banner.js +3 -3
  107. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  108. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  109. package/lib/collection/components/duet-button/duet-button.css +14 -5
  110. package/lib/collection/components/duet-button/duet-button.js +5 -5
  111. package/lib/collection/components/duet-callout/duet-callout.js +2 -2
  112. package/lib/collection/components/duet-card/duet-card.js +36 -4
  113. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  114. package/lib/collection/components/duet-choice/duet-choice.js +6 -27
  115. package/lib/collection/components/duet-choice-group/duet-choice-group.js +24 -15
  116. package/lib/collection/components/duet-contact-card/duet-contact-card.js +2 -2
  117. package/lib/collection/components/duet-date-picker/date-picker-day.js +6 -1
  118. package/lib/collection/components/duet-date-picker/date-utils.js +6 -1
  119. package/lib/collection/components/duet-date-picker/duet-date-picker.css +2 -2
  120. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  121. package/lib/collection/components/duet-grid-item/duet-grid-item.js +2 -2
  122. package/lib/collection/components/duet-header/duet-header.js +3 -2
  123. package/lib/collection/components/duet-heading/duet-heading.css +1 -0
  124. package/lib/collection/components/duet-hero/duet-hero.css +95 -0
  125. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  126. package/lib/collection/components/duet-label/duet-label.js +1 -1
  127. package/lib/collection/components/duet-link/duet-link.js +5 -4
  128. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  129. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  130. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  131. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  132. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  133. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  134. package/lib/collection/components/duet-modal/duet-modal.js +96 -15
  135. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  136. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  137. package/lib/collection/components/duet-number-input/duet-number-input.js +11 -6
  138. package/lib/collection/components/duet-page-heading/duet-page-heading.js +2 -2
  139. package/lib/collection/components/duet-panel/duet-panel.css +98 -0
  140. package/lib/collection/components/duet-panel/duet-panel.js +234 -0
  141. package/lib/collection/components/duet-paragraph/duet-paragraph.js +2 -2
  142. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  143. package/lib/collection/components/duet-promo-card/duet-promo-card.js +3 -3
  144. package/lib/collection/components/duet-radio/duet-radio.js +3 -3
  145. package/lib/collection/components/duet-radio-group/duet-radio-group.js +1 -1
  146. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  147. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -2
  148. package/lib/collection/components/duet-scrollable/duet-scrollable.js +6 -6
  149. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  150. package/lib/collection/components/duet-select/duet-select.js +5 -5
  151. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  152. package/lib/collection/components/duet-share-chart/duet-share-chart.js +4 -2
  153. package/lib/collection/components/duet-share-chart-item/duet-share-chart-item.js +1 -1
  154. package/lib/collection/components/duet-show-more/duet-show-more.js +2 -2
  155. package/lib/collection/components/duet-slideout/duet-slideout.js +4 -4
  156. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  157. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  158. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  159. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  160. package/lib/collection/components/duet-spacer/duet-spacer.js +1 -1
  161. package/lib/collection/components/duet-spinner/duet-spinner.js +2 -2
  162. package/lib/collection/components/duet-status-icon/duet-status-icon.js +2 -2
  163. package/lib/collection/components/duet-step/duet-step.js +2 -2
  164. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  165. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  166. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  167. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  168. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  169. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  170. package/lib/collection/components/duet-tab/duet-tab.js +2 -2
  171. package/lib/collection/components/duet-tab-group/duet-tab-group.js +14 -11
  172. package/lib/collection/components/duet-table/duet-table.js +2 -2
  173. package/lib/collection/components/duet-textarea/duet-textarea.js +3 -3
  174. package/lib/collection/components/duet-toggle/duet-toggle.js +2 -2
  175. package/lib/collection/components/duet-toolbar/duet-toolbar.js +2 -2
  176. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  177. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  178. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +3 -3
  179. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  180. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +3 -3
  181. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +2 -2
  182. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  183. package/lib/collection/components/duet-upload/duet-upload.js +2 -2
  184. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  185. package/lib/collection/components/duet-upload-item/duet-upload-item.js +2 -2
  186. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  187. package/lib/collection/utils/token-utils.js +59 -7
  188. package/lib/collection/utils/turva2-color-tokens.js +42 -0
  189. package/lib/duet/duet.esm.js +1 -1
  190. package/lib/duet/{p-8a852600.entry.js → p-02ba799f.entry.js} +1 -1
  191. package/lib/duet/{p-5018b536.entry.js → p-066f855b.entry.js} +1 -1
  192. package/lib/duet/p-0864a12e.entry.js +4 -0
  193. package/lib/duet/{p-9ef5fe85.entry.js → p-0964b56d.entry.js} +1 -1
  194. package/lib/duet/{p-034efb8b.entry.js → p-0e15fd30.entry.js} +1 -1
  195. package/lib/duet/p-0fccda7b.entry.js +4 -0
  196. package/lib/duet/{p-156d2362.entry.js → p-117970c7.entry.js} +1 -1
  197. package/lib/duet/{p-3cee5337.entry.js → p-148b6203.entry.js} +1 -1
  198. package/lib/duet/p-15859eb3.entry.js +4 -0
  199. package/lib/duet/{p-ca626317.entry.js → p-15a7a9be.entry.js} +1 -1
  200. package/lib/duet/{p-db110424.entry.js → p-16f691fd.entry.js} +1 -1
  201. package/lib/duet/p-1ec554c6.entry.js +4 -0
  202. package/lib/duet/{p-ff564afe.entry.js → p-1f9c5d58.entry.js} +1 -1
  203. package/lib/duet/{p-5f18c78a.entry.js → p-22641f21.entry.js} +1 -1
  204. package/lib/duet/{p-f4a44d9d.entry.js → p-23475050.entry.js} +1 -1
  205. package/lib/duet/{p-f234f837.entry.js → p-288da581.entry.js} +1 -1
  206. package/lib/duet/{p-2bc683b8.entry.js → p-2a563d22.entry.js} +1 -1
  207. package/lib/duet/{p-32ac2068.entry.js → p-2d62148e.entry.js} +1 -1
  208. package/lib/duet/{p-f6c347b4.entry.js → p-2f150cd4.entry.js} +1 -1
  209. package/lib/duet/{p-c28dc621.entry.js → p-34706bbb.entry.js} +1 -1
  210. package/lib/duet/{p-b0484b68.entry.js → p-433a9f98.entry.js} +1 -1
  211. package/lib/duet/{p-7c19dac5.entry.js → p-44deeddc.entry.js} +1 -1
  212. package/lib/duet/{p-bb468aae.entry.js → p-4a325ef1.entry.js} +1 -1
  213. package/lib/duet/p-4c118ad6.entry.js +4 -0
  214. package/lib/duet/{p-da1914c5.entry.js → p-4c37165a.entry.js} +1 -1
  215. package/lib/duet/p-4cd019a5.entry.js +4 -0
  216. package/lib/duet/{p-be397530.entry.js → p-4da25e3d.entry.js} +1 -1
  217. package/lib/duet/{p-3d8dc9a3.entry.js → p-4da439ae.entry.js} +1 -1
  218. package/lib/duet/{p-b4e2e77d.entry.js → p-4fc62376.entry.js} +1 -1
  219. package/lib/duet/p-534180fa.entry.js +4 -0
  220. package/lib/duet/p-57165bf0.entry.js +4 -0
  221. package/lib/duet/{p-908b3a74.entry.js → p-5a6fd350.entry.js} +1 -1
  222. package/lib/duet/p-5bfa5e5d.entry.js +4 -0
  223. package/lib/duet/{p-bf586daf.entry.js → p-5fdfb13d.entry.js} +1 -1
  224. package/lib/duet/{p-7dceae70.entry.js → p-62df87ea.entry.js} +1 -1
  225. package/lib/duet/{p-a2a94d9a.entry.js → p-66cb6021.entry.js} +1 -1
  226. package/lib/duet/{p-416cbbf6.entry.js → p-6b2697ad.entry.js} +1 -1
  227. package/lib/duet/{p-b463cb8b.entry.js → p-6dca8f77.entry.js} +1 -1
  228. package/lib/duet/p-6fa7de01.entry.js +4 -0
  229. package/lib/duet/{p-abec4876.entry.js → p-6fdb09d1.entry.js} +1 -1
  230. package/lib/duet/{p-815c955b.entry.js → p-78a9b684.entry.js} +1 -1
  231. package/lib/duet/p-7b849d35.entry.js +4 -0
  232. package/lib/duet/p-7c1e8291.entry.js +4 -0
  233. package/lib/duet/{p-f4a0f95a.entry.js → p-7f0aa937.entry.js} +1 -1
  234. package/lib/duet/{p-038b8ea1.entry.js → p-804b326c.entry.js} +1 -1
  235. package/lib/duet/{p-db50a06b.entry.js → p-806121b1.entry.js} +1 -1
  236. package/lib/duet/p-8194b05d.entry.js +4 -0
  237. package/lib/duet/{p-58bd2e53.entry.js → p-829482da.entry.js} +1 -1
  238. package/lib/duet/{p-4427fd7d.entry.js → p-84777c03.entry.js} +1 -1
  239. package/lib/duet/{p-72ad01cb.entry.js → p-8625d3ce.entry.js} +1 -1
  240. package/lib/duet/{p-662331c7.entry.js → p-88216acf.entry.js} +1 -1
  241. package/lib/duet/p-92b13088.entry.js +4 -0
  242. package/lib/duet/{p-caf145ea.entry.js → p-9440a479.entry.js} +1 -1
  243. package/lib/duet/{p-6104db31.entry.js → p-98aa7ac5.entry.js} +1 -1
  244. package/lib/duet/{p-88422e6a.entry.js → p-9a7382a4.entry.js} +1 -1
  245. package/lib/duet/p-9c838ec0.entry.js +4 -0
  246. package/lib/duet/p-B5RO_CRT.js +4 -0
  247. package/lib/duet/{p-CsVaeVlH.js → p-BPFqbaxm.js} +1 -1
  248. package/lib/duet/p-BWvtXbhA.js +4 -0
  249. package/lib/duet/{p-DglOA-oE.js → p-BkHWWyft.js} +1 -1
  250. package/lib/duet/{p-uJz71_4x.js → p-C-YpEPL-.js} +1 -1
  251. package/lib/duet/p-C2xFZ1pZ.js +4 -0
  252. package/lib/duet/{p-wJIv584C.js → p-CwVyzidG.js} +1 -1
  253. package/lib/duet/p-D5MfS1RP.js +4 -0
  254. package/lib/duet/p-DixsuovU.js +4 -0
  255. package/lib/duet/p-DoTAjqzf.js +4 -0
  256. package/lib/duet/p-Dr2j33H2.js +4 -0
  257. package/lib/duet/{p-D5_4M8f7.js → p-Z0D6Gy9e.js} +1 -1
  258. package/lib/duet/{p-688ea42b.entry.js → p-a64da31d.entry.js} +1 -1
  259. package/lib/duet/{p-b8c10f92.entry.js → p-a704d617.entry.js} +1 -1
  260. package/lib/duet/{p-2ba227ae.entry.js → p-a745298d.entry.js} +1 -1
  261. package/lib/duet/{p-1d5bdc66.entry.js → p-ad08429f.entry.js} +1 -1
  262. package/lib/duet/p-ad3d8ac8.entry.js +4 -0
  263. package/lib/duet/{p-6cafd585.entry.js → p-b1f362dc.entry.js} +1 -1
  264. package/lib/duet/p-b9acaca1.entry.js +4 -0
  265. package/lib/duet/{p-66861503.entry.js → p-babe244b.entry.js} +1 -1
  266. package/lib/duet/{p-42539282.entry.js → p-c35c9198.entry.js} +1 -1
  267. package/lib/duet/{p-f4be7b00.entry.js → p-c62aeb2e.entry.js} +1 -1
  268. package/lib/duet/p-c8a66d4b.entry.js +4 -0
  269. package/lib/duet/p-cfd5c934.entry.js +4 -0
  270. package/lib/duet/{p-933da99a.entry.js → p-d05bbd77.entry.js} +1 -1
  271. package/lib/duet/{p-d8b7a8da.entry.js → p-d079278e.entry.js} +1 -1
  272. package/lib/duet/p-d110954d.entry.js +4 -0
  273. package/lib/duet/p-d71a366e.entry.js +4 -0
  274. package/lib/duet/{p-218b0dc3.entry.js → p-d92c5cfa.entry.js} +1 -1
  275. package/lib/duet/p-dbab30ea.entry.js +4 -0
  276. package/lib/duet/p-dd8216e7.entry.js +4 -0
  277. package/lib/duet/{p-545e9dd3.entry.js → p-e18a1599.entry.js} +1 -1
  278. package/lib/duet/p-e76051c3.entry.js +4 -0
  279. package/lib/duet/{p-1c2d8dfc.entry.js → p-e9886226.entry.js} +1 -1
  280. package/lib/duet/{p-3aeaed85.entry.js → p-e9becc58.entry.js} +1 -1
  281. package/lib/duet/{p-74d7480d.entry.js → p-ec72f3a2.entry.js} +1 -1
  282. package/lib/duet/{p-7bc24df3.entry.js → p-ecb4e99d.entry.js} +1 -1
  283. package/lib/duet/p-f2ae56b2.entry.js +4 -0
  284. package/lib/duet/{p-0e288f30.entry.js → p-f51c072f.entry.js} +1 -1
  285. package/lib/duet/{p-f237085e.entry.js → p-f82079f2.entry.js} +1 -1
  286. package/lib/duet/{p-9b757818.entry.js → p-f82a2ab7.entry.js} +1 -1
  287. package/lib/esm/{a11y-utils-ehCV15cK.js → a11y-utils-C6cn5C3e.js} +1 -1
  288. package/lib/esm/{app-globals-BWEEyeBa.js → app-globals-CcxHDwb4.js} +1 -1
  289. package/lib/esm/{common-strings-MxsWrBCY.js → common-strings-BWvtXbhA.js} +23 -1
  290. package/lib/esm/duet-action-button.entry.js +5 -5
  291. package/lib/esm/duet-alert.entry.js +24 -33
  292. package/lib/esm/duet-badge.entry.js +16 -4
  293. package/lib/esm/duet-banner.entry.js +8 -8
  294. package/lib/esm/duet-breadcrumb.entry.js +7 -7
  295. package/lib/esm/duet-breadcrumbs.entry.js +7 -7
  296. package/lib/esm/duet-button_2.entry.js +14 -14
  297. package/lib/esm/duet-callout.entry.js +5 -5
  298. package/lib/esm/duet-caption_4.entry.js +16 -15
  299. package/lib/esm/duet-card.entry.js +15 -9
  300. package/lib/esm/duet-checkbox.entry.js +2 -2
  301. package/lib/esm/duet-checkmark.entry.js +4 -4
  302. package/lib/esm/duet-chip.entry.js +3 -3
  303. package/lib/esm/duet-choice_2.entry.js +35 -28
  304. package/lib/esm/duet-collapsible.entry.js +3 -3
  305. package/lib/esm/duet-combobox.entry.js +4 -4
  306. package/lib/esm/duet-contact-card.entry.js +5 -5
  307. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  308. package/lib/esm/duet-date-picker.entry.js +19 -9
  309. package/lib/esm/duet-divider_2.entry.js +5 -5
  310. package/lib/esm/duet-editable-table_3.entry.js +10 -10
  311. package/lib/esm/duet-empty-state.entry.js +2 -2
  312. package/lib/esm/duet-fieldset.entry.js +6 -6
  313. package/lib/esm/duet-file-chooser.entry.js +2 -2
  314. package/lib/esm/duet-footer.entry.js +5 -5
  315. package/lib/esm/duet-grid_2.entry.js +4 -4
  316. package/lib/esm/duet-header_2.entry.js +8 -7
  317. package/lib/esm/duet-hero.entry.js +6 -6
  318. package/lib/esm/duet-icon.entry.js +7 -7
  319. package/lib/esm/duet-input_2.entry.js +8 -8
  320. package/lib/esm/duet-layout.entry.js +2 -2
  321. package/lib/esm/duet-list_2.entry.js +4 -4
  322. package/lib/esm/duet-menu-bar-button.entry.js +4 -4
  323. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +4 -4
  324. package/lib/esm/duet-menu-bar-dropdown.entry.js +6 -6
  325. package/lib/esm/duet-menu-bar-item.entry.js +8 -8
  326. package/lib/esm/duet-menu-bar-link.entry.js +4 -4
  327. package/lib/esm/duet-menu-bar.entry.js +3 -3
  328. package/lib/esm/duet-modal.entry.js +38 -21
  329. package/lib/esm/duet-multiselect.entry.js +5 -5
  330. package/lib/esm/duet-nav.entry.js +3 -3
  331. package/lib/esm/duet-notification_2.entry.js +5 -5
  332. package/lib/esm/duet-number-input.entry.js +14 -9
  333. package/lib/esm/duet-overlay.entry.js +2 -2
  334. package/lib/esm/duet-page-heading.entry.js +4 -4
  335. package/lib/esm/duet-pagination_2.entry.js +7 -7
  336. package/lib/esm/duet-panel.entry.js +51 -0
  337. package/lib/esm/duet-phone-input.entry.js +4 -4
  338. package/lib/esm/duet-popup-menu_2.entry.js +7 -7
  339. package/lib/esm/duet-progress.entry.js +3 -3
  340. package/lib/esm/duet-promo-card.entry.js +7 -7
  341. package/lib/esm/duet-radio_2.entry.js +7 -7
  342. package/lib/esm/duet-range-slider.entry.js +7 -7
  343. package/lib/esm/duet-scrollable_3.entry.js +27 -24
  344. package/lib/esm/duet-section-layout.entry.js +4 -4
  345. package/lib/esm/duet-select.entry.js +9 -9
  346. package/lib/esm/duet-shaped-image.entry.js +4 -4
  347. package/lib/esm/duet-share-chart-item.entry.js +2 -2
  348. package/lib/esm/duet-share-chart.entry.js +10 -8
  349. package/lib/esm/duet-show-more.entry.js +5 -5
  350. package/lib/esm/duet-slideout-lang.entry.js +4 -4
  351. package/lib/esm/duet-slideout-link.entry.js +8 -8
  352. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -6
  353. package/lib/esm/duet-slideout-panel.entry.js +13 -13
  354. package/lib/esm/duet-slideout.entry.js +11 -11
  355. package/lib/esm/duet-status-icon.entry.js +3 -3
  356. package/lib/esm/duet-step_2.entry.js +7 -7
  357. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +4 -4
  358. package/lib/esm/duet-submenu-bar-dropdown.entry.js +6 -6
  359. package/lib/esm/duet-submenu-bar-item.entry.js +7 -7
  360. package/lib/esm/duet-submenu-bar-link.entry.js +3 -3
  361. package/lib/esm/duet-submenu-bar.entry.js +7 -7
  362. package/lib/esm/duet-textarea.entry.js +8 -8
  363. package/lib/esm/duet-toggle.entry.js +6 -6
  364. package/lib/esm/duet-toolbar-dropdown-link.entry.js +4 -4
  365. package/lib/esm/duet-toolbar-dropdown.entry.js +6 -6
  366. package/lib/esm/duet-toolbar-item.entry.js +9 -9
  367. package/lib/esm/duet-toolbar-link.entry.js +4 -4
  368. package/lib/esm/duet-toolbar.entry.js +4 -4
  369. package/lib/esm/duet-tooltip-button_2.entry.js +8 -8
  370. package/lib/esm/duet-tooltip.entry.js +4 -4
  371. package/lib/esm/duet-tray.entry.js +6 -6
  372. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  373. package/lib/esm/duet-upload-item.entry.js +6 -6
  374. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  375. package/lib/esm/duet.js +4 -4
  376. package/lib/esm/{errorcodes.utils-DM0J2eP4.js → errorcodes.utils-CEyBUBSM.js} +1 -1
  377. package/lib/esm/{focus-utils-BSQKWOQJ.js → focus-utils-BhO5oz9w.js} +1 -1
  378. package/lib/esm/{index-CsVaeVlH.js → index-BPFqbaxm.js} +5 -1
  379. package/lib/esm/{label-J3UGBylH.js → label-BGqhM4kx.js} +1 -1
  380. package/lib/esm/{language-utils-B79DRNQM.js → language-utils-CNMTW_pZ.js} +1 -1
  381. package/lib/esm/loader.js +4 -4
  382. package/lib/esm/{slot-utils-DYWEum3Y.js → slot-utils-BABbKvvc.js} +1 -1
  383. package/lib/esm/{themeable-component-CcmXnsoX.js → themeable-component-Csv1RXxf.js} +1 -1
  384. package/lib/esm/{token-utils-orOLyKQw.js → token-utils-BGFYWQ6j.js} +76 -9
  385. package/lib/esm/{tokens.module-D5_4M8f7.js → tokens.module-Z0D6Gy9e.js} +1 -1
  386. package/lib/types/common-strings.d.ts +2 -0
  387. package/lib/types/components/duet-alert/duet-alert.d.ts +5 -2
  388. package/lib/types/components/duet-badge/duet-badge.d.ts +1 -0
  389. package/lib/types/components/duet-card/duet-card.d.ts +6 -0
  390. package/lib/types/components/duet-choice/duet-choice.d.ts +0 -4
  391. package/lib/types/components/duet-choice-group/duet-choice-group.d.ts +2 -2
  392. package/lib/types/components/duet-modal/duet-modal.d.ts +17 -1
  393. package/lib/types/components/duet-number-input/duet-number-input.d.ts +3 -1
  394. package/lib/types/components/duet-panel/duet-panel.d.ts +47 -0
  395. package/lib/types/components.d.ts +123 -11
  396. package/lib/types/utils/token-utils.d.ts +4 -0
  397. package/lib/types/utils/turva2-color-tokens.d.ts +39 -0
  398. package/package.json +3 -3
  399. package/lib/duet/p-08f98123.entry.js +0 -4
  400. package/lib/duet/p-0b358066.entry.js +0 -4
  401. package/lib/duet/p-11a4fb44.entry.js +0 -4
  402. package/lib/duet/p-24d04bd7.entry.js +0 -4
  403. package/lib/duet/p-3897c6bf.entry.js +0 -4
  404. package/lib/duet/p-3baa3eaa.entry.js +0 -4
  405. package/lib/duet/p-3d904355.entry.js +0 -4
  406. package/lib/duet/p-3e42346e.entry.js +0 -4
  407. package/lib/duet/p-41ef0467.entry.js +0 -4
  408. package/lib/duet/p-5816e147.entry.js +0 -4
  409. package/lib/duet/p-5c2e03bf.entry.js +0 -4
  410. package/lib/duet/p-64731e35.entry.js +0 -4
  411. package/lib/duet/p-6f635395.entry.js +0 -4
  412. package/lib/duet/p-70757ffa.entry.js +0 -4
  413. package/lib/duet/p-86669a06.entry.js +0 -4
  414. package/lib/duet/p-90efef7f.entry.js +0 -4
  415. package/lib/duet/p-C4JF-vDv.js +0 -4
  416. package/lib/duet/p-DpD8uhf3.js +0 -4
  417. package/lib/duet/p-DyjhCDQL.js +0 -4
  418. package/lib/duet/p-MxsWrBCY.js +0 -4
  419. package/lib/duet/p-R41sfCqP.js +0 -4
  420. package/lib/duet/p-SyNakUqS.js +0 -4
  421. package/lib/duet/p-a6173e93.entry.js +0 -4
  422. package/lib/duet/p-aad8dac7.entry.js +0 -4
  423. package/lib/duet/p-abda9682.entry.js +0 -4
  424. package/lib/duet/p-bae186c7.entry.js +0 -4
  425. package/lib/duet/p-d4a03e18.entry.js +0 -4
  426. package/lib/duet/p-e99bccef.entry.js +0 -4
  427. package/lib/duet/p-ee3ca3a8.entry.js +0 -4
  428. package/lib/duet/p-ef3083e7.entry.js +0 -4
  429. package/lib/duet/p-ymqr0QD0.js +0 -4
@@ -10,6 +10,7 @@ import { isEscapeKey } from "../../utils/keyboard-utils";
10
10
  import { connectLanguageChangeObserver, disconnectLanguageChangeObserver, getLanguage, getLocaleString, } from "../../utils/language-utils";
11
11
  import { hasSlot } from "../../utils/slot-utils";
12
12
  import { Teleport } from "../../utils/teleport";
13
+ import { postfixTheme } from "../../utils/token-utils";
13
14
  // The transition below is slightly higher than the actual CSS transition as VoiceOver on
14
15
  // iOS has otherwise problems moving the focus from modal back to the original element.
15
16
  // This issue is similar to what we’ve seen in Duet Date Picker + iOS VoiceOver.
@@ -169,9 +170,18 @@ export class DuetModal {
169
170
  enableBodyScroll(this.variation === "slide-up" ? this.modalContentEl : this.modalEl);
170
171
  this.duetClose.emit();
171
172
  this.teleport.removeInertFromSiblings();
172
- setTimeout(() => {
173
- focusElement(this.focusedElBeforeOpen);
174
- }, TRANSITION_MS);
173
+ if (this.focusElementOnClose !== "") {
174
+ setTimeout(() => {
175
+ let focusEl = this.focusedElBeforeOpen;
176
+ if (typeof this.focusElementOnClose === "string") {
177
+ focusEl = document.getElementById(this.focusElementOnClose) || focusEl;
178
+ }
179
+ else {
180
+ focusEl = this.focusElementOnClose || focusEl;
181
+ }
182
+ focusElement(focusEl);
183
+ }, TRANSITION_MS);
184
+ }
175
185
  if (this.isAndroidDevice) {
176
186
  window.removeEventListener("resize", this.handleAndroidResizeEvents);
177
187
  }
@@ -247,6 +257,12 @@ export class DuetModal {
247
257
  async hide() {
248
258
  this.open = false;
249
259
  }
260
+ /**
261
+ * Set focus on the close button of the modal.
262
+ */
263
+ async focusCloseButton() {
264
+ this.buttonEl.setFocus();
265
+ }
250
266
  /**
251
267
  * Scolls the top of the modal's content into view
252
268
  *
@@ -308,20 +324,16 @@ export class DuetModal {
308
324
  */
309
325
  render() {
310
326
  var _a, _b;
311
- let iconColor = "primary";
312
- let closeColor = "secondary";
313
- const closingButton = (h("div", { key: '16ecdebdff260207b978a3c14686bb27f99369bc', class: "duet-modal-close" }, h("duet-button", { key: '832185b0eb84406145281ec31a310cba640f42db', ref: button => (this.buttonEl = button), variation: "plain", accessibleLabel: this.accessibleCloseLabel, color: closeColor, iconSize: "large", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: ev => this.closeModal(ev), fixed: true })));
314
- if (this.theme === "turva") {
315
- iconColor = "primary-turva";
316
- closeColor = "secondary-turva";
317
- }
318
- return (h("div", { key: 'ff98af4d04d36b5967954bae9fad52d8a3c92af1', ref: modal => (this.modalEl = modal), "aria-label": (_a = this.accessibleLabel) !== null && _a !== void 0 ? _a : this.heading, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-describedby": this.accessibleDescribedBy, role: this.variation === "loader" ? "alert" : "dialog", "aria-modal": this.isSafariBrowser ? false : true, tabindex: "-1", class: {
327
+ const iconColor = postfixTheme("primary", this.theme);
328
+ const closeColor = postfixTheme("secondary", this.theme);
329
+ const closingButton = (h("div", { key: '39d89598c50f59be771033542b474cc6b7e1df0b', class: "duet-modal-close" }, h("duet-button", { key: 'b5c6f0c486eaa24d4c7747a839288562e63808bf', ref: button => (this.buttonEl = button), variation: "plain", accessibleLabel: this.accessibleCloseLabel, color: closeColor, iconSize: "large", icon: "navigation-close", iconOnly: true, margin: "none", theme: this.theme, onClick: ev => this.closeModal(ev), fixed: true })));
330
+ return (h("div", { key: '07de0b18de78d147afa8cdaeadc39c877cd32dca', ref: modal => (this.modalEl = modal), "aria-label": (_a = this.accessibleLabel) !== null && _a !== void 0 ? _a : this.heading, "aria-details": this.accessibleDetails, "aria-description": this.accessibleDescription, "aria-describedby": this.accessibleDescribedBy, role: this.variation === "loader" ? "alert" : "dialog", "aria-modal": this.isSafariBrowser ? false : true, tabindex: "-1", class: {
319
331
  "duet-modal-container": true,
320
332
  "duet-theme-turva": this.theme === "turva",
321
333
  "duet-modal-active": this.open,
322
334
  "duet-modal-slide-up": this.variation === "slide-up",
323
335
  "duet-modal-has-sticky-header": this.hasStickyHeader,
324
- } }, h("duet-overlay", { key: 'f5b45235e96cfe9afc7e698f58758f3889c3fd18', "z-index": "-1", visible: this.open, variation: this.variation === "loader" ? "white" : "default" }), h("div", { key: '8e01ae356b01d920b2dc99fb9012d0b36e1160c2', ref: modalInner => (this.modalInnerEl = modalInner), class: {
336
+ } }, h("duet-overlay", { key: '08d67fe06635ffce14ed2151c9b7211740f5366f', "z-index": "-1", visible: this.open, variation: this.variation === "loader" ? "white" : "default" }), h("div", { key: '83d7365182d8a008dbceca7d19d5f110d4e3e39a', ref: modalInner => (this.modalInnerEl = modalInner), class: {
325
337
  "duet-modal-inner": true,
326
338
  [this.size]: true,
327
339
  "duet-modal-slide-up": this.variation === "slide-up",
@@ -332,18 +344,22 @@ export class DuetModal {
332
344
  this.closeModal(e);
333
345
  }
334
346
  }
335
- } }, h("div", { key: '4b67fe5599c29429e2e43d2fa3ec1e4bb2362f5a', ref: modalContentEl => (this.modalContentEl = modalContentEl), class: {
347
+ } }, h("div", { key: '926f82204442851d8fa4d3b83c49fa1b3e0970f0', ref: modalContentEl => (this.modalContentEl = modalContentEl), "aria-live": this.accessibleAnnounceChanges === "all" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "all" ? "true" : null, class: {
336
348
  "duet-modal": true,
337
349
  "duet-modal-has-sticky-header": this.hasStickyHeader,
338
350
  [this.size]: true,
339
351
  [this.variation]: true,
340
- } }, this.gutterSize !== "none" && !this.hasStickyHeader && h("duet-spacer", { key: '1fc3a1a23142493d5a384fcd1dfbc5e0cb471de4' }), this.hasStickyHeader ? (h("div", { class: "duet-modal-sticky-header" }, closingButton, h("slot", { name: "sticky-header" }))) : (closingButton), h("div", { key: '2f216eb1c8db56490a684203edfdb93bcfd736c7', class: {
352
+ } }, this.gutterSize !== "none" && !this.hasStickyHeader && h("duet-spacer", { key: 'b1b6c5d0fab63540a89c585e09db2044a9944957' }), this.hasStickyHeader ? (h("div", { class: "duet-modal-sticky-header" }, closingButton, h("slot", { name: "sticky-header" }))) : (closingButton), h("div", { key: '55e0891ac4dc8e5eaebd53740ccc2afb4759c45c', class: {
341
353
  "duet-modal-body": true,
342
354
  "duet-modal-gutter-none": this.gutterSize === "none",
343
355
  "duet-modal-gutter-small": this.gutterSize === "small",
344
356
  "duet-modal-gutter-medium": this.gutterSize === "medium",
345
357
  "duet-modal-gutter-large": this.gutterSize === "large",
346
- } }, h("div", { key: 'e727afc6bd9c81124f632929b840cc0beaac6537', class: "duet-modal-header" }, h("span", { key: '8a55cf9f79f46df6f7d15961f7d1300cc42fe345', class: "duet-modal-inner-slot-top" }, h("slot", { key: 'c79cbee03e0bce0b44b4d816b5c4d02b05605a10', name: "top" })), this.icon && h("duet-icon", { key: '278d6e8d84de7394267291e0fb294c577e7be718', name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (h("duet-heading", { key: 'fad28910b603089cfd9f3bf4fb1e9dc4df6a4d6a', "visual-level": (_b = this.headingVisualLevel) !== null && _b !== void 0 ? _b : this.headingLevel, level: this.headingLevel, theme: this.theme }, this.heading))), this.variation === "loader" && (h("div", { key: '67d1778db551a40565263f39968e8a7f3e3d148d', class: "duet-modal-spinner" }, h("duet-spinner", { key: '71fddb78ad12e0ce90c14a725ac017431bf8864a', size: "large", color: "primary" }))), h("div", { key: 'e0a601e11fa6761658d6f74af02a509b835e6f37', class: "duet-modal-inner-slot-default", ref: el => (this.slotContainerEl = el), "aria-live": this.variation === "loader" ? "assertive" : "off" }, h("slot", { key: 'a0ef6dab10ebc813443950cbb369303fd2b305a4' })))))));
358
+ }, "aria-live": this.accessibleAnnounceChanges === "heading" ? "polite" : null, "aria-atomic": this.accessibleAnnounceChanges === "heading" ? "true" : null }, h("div", { key: '1cab42f970d7b12c6684ac63e37324516180d168', class: "duet-modal-header" }, h("span", { key: 'a3e9c69a6eb8ebcc8e0cbb282e14438c20153f7c', class: "duet-modal-inner-slot-top" }, h("slot", { key: 'b719c6a7ae968b6687f259d061ec414326ad9301', name: "top" })), this.icon && h("duet-icon", { key: '378d48739073800b81634af0441e5b82013df9a6', name: this.icon, size: "xx-large", color: this.color || iconColor }), this.heading && (h("duet-heading", { key: '8052f57a3d06363e38bcf748d81e37ec8d9e7928', "visual-level": (_b = this.headingVisualLevel) !== null && _b !== void 0 ? _b : this.headingLevel, level: this.headingLevel, theme: this.theme }, this.heading))), this.variation === "loader" && (h("div", { key: 'c98e91827794451431e8f875994446ee09d5bd9f', class: "duet-modal-spinner" }, h("duet-spinner", { key: '08f09524dd18e633063e5a5ac5fced5103610d7d', size: "large", color: postfixTheme("primary", this.theme) }))), h("div", { key: 'b237e8483fd62056b4f99507a78580983b1135a8', "aria-live": this.variation === "loader"
359
+ ? "assertive"
360
+ : this.accessibleAnnounceChanges === "body"
361
+ ? "polite"
362
+ : null, "aria-atomic": this.accessibleAnnounceChanges === "body" ? "true" : null, class: "duet-modal-inner-slot-default", ref: el => (this.slotContainerEl = el) }, h("slot", { key: 'f9ed9945e262cbb20ff4c51d1a2e67329eae9a5e' })))))));
347
363
  }
348
364
  static get is() { return "duet-modal"; }
349
365
  static get encapsulation() { return "shadow"; }
@@ -800,6 +816,54 @@ export class DuetModal {
800
816
  "setter": false,
801
817
  "reflect": false,
802
818
  "defaultValue": "false"
819
+ },
820
+ "focusElementOnClose": {
821
+ "type": "string",
822
+ "attribute": "focus-element-on-close",
823
+ "mutable": false,
824
+ "complexType": {
825
+ "original": "FocusableComponent | HTMLElement | string",
826
+ "resolved": "FocusableComponent | HTMLElement | string",
827
+ "references": {
828
+ "FocusableComponent": {
829
+ "location": "import",
830
+ "path": "../../common",
831
+ "id": "src/common/index.ts::FocusableComponent"
832
+ },
833
+ "HTMLElement": {
834
+ "location": "global",
835
+ "id": "global::HTMLElement"
836
+ }
837
+ }
838
+ },
839
+ "required": false,
840
+ "optional": false,
841
+ "docs": {
842
+ "tags": [],
843
+ "text": "Where to move focus when the modal is closed, either set the element dirctly with JS or give the id of the\nelement as a string. Use empty string to disable focus moving on close - do this if after closing there is\nanother element that automatically gets the focus or you handle focusing manually."
844
+ },
845
+ "getter": false,
846
+ "setter": false,
847
+ "reflect": false
848
+ },
849
+ "accessibleAnnounceChanges": {
850
+ "type": "string",
851
+ "attribute": "accessible-announce-changes",
852
+ "mutable": false,
853
+ "complexType": {
854
+ "original": "\"all\" | \"heading\" | \"body\"",
855
+ "resolved": "\"all\" | \"body\" | \"heading\"",
856
+ "references": {}
857
+ },
858
+ "required": false,
859
+ "optional": false,
860
+ "docs": {
861
+ "tags": [],
862
+ "text": "Makes either the entire modal (\"all\"), headign and body content (\"heading\"), or just its body content (\"body\")\nan aria-live region, so that changes are announced by the screen readers. Do not use with loader variation,\nas it handles aria-live separately."
863
+ },
864
+ "getter": false,
865
+ "setter": false,
866
+ "reflect": false
803
867
  }
804
868
  };
805
869
  }
@@ -913,6 +977,23 @@ export class DuetModal {
913
977
  "tags": []
914
978
  }
915
979
  },
980
+ "focusCloseButton": {
981
+ "complexType": {
982
+ "signature": "() => Promise<void>",
983
+ "parameters": [],
984
+ "references": {
985
+ "Promise": {
986
+ "location": "global",
987
+ "id": "global::Promise"
988
+ }
989
+ },
990
+ "return": "Promise<void>"
991
+ },
992
+ "docs": {
993
+ "text": "Set focus on the close button of the modal.",
994
+ "tags": []
995
+ }
996
+ },
916
997
  "scrollToTop": {
917
998
  "complexType": {
918
999
  "signature": "(smooth?: boolean) => Promise<void>",
@@ -31,7 +31,7 @@ export class DuetNav {
31
31
  * Always the last one in the class.
32
32
  */
33
33
  render() {
34
- return (h(Host, { key: '67b6010525da471d8f1d39cdd64cf6a9cbdecba5' }, h("div", { key: '7f7d7cb7e76887002c1bd4116e14780261458c07', class: { container: true, sticky: this.sticky } }, h("slot", { key: '2667b3a0e765609fcd3b77d621dbc59a335dfe32' }), h("slot", { key: '7fc113b96d80e1677ca7661b7504e41638686690', name: "mobile" }), h("slot", { key: 'b6c714e94df2ffe4c94b1c9e56f512b71d3bcde6', name: "desktop" }))));
34
+ return (h(Host, { key: 'f7a8ed09a94df6c749849af4fa57746415c1ed35' }, h("div", { key: '0698cb914b2069f402b0771c748a488e3523aa67', class: { container: true, sticky: this.sticky } }, h("slot", { key: 'dbac0328ad41f8a9bde92011b654dc8640021b0d' }), h("slot", { key: '9b3161669471c6505d0aab172afe2c6953e09ec2', name: "mobile" }), h("slot", { key: 'd6067606d1a4544c027d36edf530ec1488c15ce9', name: "desktop" }))));
35
35
  }
36
36
  static get is() { return "duet-nav"; }
37
37
  static get encapsulation() { return "shadow"; }
@@ -72,11 +72,11 @@ export class DuetNotification {
72
72
  this.linkElement.focus(options);
73
73
  }
74
74
  render() {
75
- return (h("div", { key: 'ad950e443ce4d6f4584dc9721d571a80fe8436b2', role: "listitem", class: {
75
+ return (h("div", { key: '38f589ecc0f7bfacef51a99bcdc34e11972a623c', role: "listitem", class: {
76
76
  "duet-notification": true,
77
77
  "duet-notification-highlight": this.highlight,
78
78
  "duet-theme-turva": this.theme === "turva",
79
- } }, h("a", { key: '95bebd9b5dab41ca48f1cd17dacdd314e2e7b310', ref: element => (this.linkElement = element), href: this.url, target: this.external ? "_blank" : "_self" }, h("div", { key: '959973ede9244668649f97b4b196c9d49ce3013d', class: "duet-notification-container" }, h("div", { key: '1fec3042cfba91fb3331b2ba854c2d96078ec452', class: "duet-notification-badge-container" }, this.highlight && (h("div", { key: '44c93136aaefeb3d9e1247c9fb390097346b89e4', class: "duet-notification-badge" }, h("duet-visually-hidden", { key: 'dc0f50e9d0dd7d1d8894d834fc8b43d911a5fcaa' }, this.accessibleLabelUnread, ":")))), h("div", { key: 'a41b7b634dafc5ac0c9b518caedbef53a508f6ae', class: "duet-notification-content" }, h("slot", { key: 'cb2850efc2259436c894c2317342212f4a49ef4b' })), h("div", { key: 'd970b769771b3196e29882ba2d8e8587bdad68f7', class: "duet-notification-date" }, this.date)))));
79
+ } }, h("a", { key: '1baa41acae73931933c8fd7cb844cc9565486168', ref: element => (this.linkElement = element), href: this.url, target: this.external ? "_blank" : "_self" }, h("div", { key: '86b846fbd0624d5a01f339cb65875300681610e9', class: "duet-notification-container" }, h("div", { key: '41cc6cb349bce5689c3f31b08beb985a0aff4677', class: "duet-notification-badge-container" }, this.highlight && (h("div", { key: 'd51af06ea2f23509bb96299c0b75e04a5e42d41d', class: "duet-notification-badge" }, h("duet-visually-hidden", { key: '6d7f78247068a68e8e2a8eb1157f2788ecb871ab' }, this.accessibleLabelUnread, ":")))), h("div", { key: 'f0ccd721e329487b11e3ccd7dda1a9c252445d9a', class: "duet-notification-content" }, h("slot", { key: '0e583c14cdea246a712a99880b9a39f9d0a4504e' })), h("div", { key: 'ba4174a98f6f89b9cba21ab077c30c85b23675e1', class: "duet-notification-date" }, this.date)))));
80
80
  }
81
81
  static get is() { return "duet-notification"; }
82
82
  static get encapsulation() { return "shadow"; }
@@ -55,7 +55,8 @@ export class DuetNumberInput {
55
55
  sv: "{current} euro valt",
56
56
  };
57
57
  /**
58
- * Format of message used to announce current amount when switching between amounts.
58
+ * Format of message used to announce current amount when switching between amounts. Note that the default has "euros"
59
+ * so if you use another unit is is essential you set this attribute to reflect that unit.
59
60
  * The string {current} is replaced with the current amount.
60
61
  * @default {fi: "{current} euroa valittuna", en: "{current} euros selected", sv: "{current} valda euro"}
61
62
  */
@@ -273,7 +274,7 @@ export class DuetNumberInput {
273
274
  // Set the localized prop value.
274
275
  this.value = this.localizeValue(value);
275
276
  // Finally also set the visible input value and unit.
276
- this.duetInputElement.value = `${this.value} ${this.unit}`;
277
+ this.duetInputElement.value = `${this.value}${this.getUnitString()}`;
277
278
  };
278
279
  this.add = (ev) => {
279
280
  // If this was called via a html button, prevent the default functionality
@@ -371,6 +372,10 @@ export class DuetNumberInput {
371
372
  this.emitNull(ev);
372
373
  }
373
374
  }
375
+ // prefix existing unit with white space or return empty string if no unit
376
+ getUnitString() {
377
+ return this.unit ? ` ${this.unit}` : "";
378
+ }
374
379
  formatAnnouncement() {
375
380
  const current = !!this.value ? SafeParseFloat(this.value, this.locale) : null;
376
381
  if (current == null) {
@@ -384,13 +389,13 @@ export class DuetNumberInput {
384
389
  */
385
390
  render() {
386
391
  const identifier = this.identifier || this.inputId;
387
- const maxlength = `${this.localizeValue(this.max)} ${this.unit}`.length;
392
+ const maxlength = `${this.localizeValue(this.max)}${this.getUnitString()}`.length;
388
393
  const cleanedValue = !!this.value ? SafeParseFloat(this.value, this.locale) : null;
389
- return (h(Host, { key: '49a555df21c951b795e625c4799ecb5419fc474e', class: {
394
+ return (h(Host, { key: 'ff7a3b099b6146f8db869268ecc2609fefa88ca6', class: {
390
395
  "duet-theme-turva": this.theme === "turva",
391
396
  "duet-expand": this.expand,
392
397
  "duet-m-0": this.margin === "none",
393
- } }, h("div", { key: '95905465685b005ca2589d1934c237473fac78a7', class: "duet-number-container" }, h("duet-input", { key: '6bac3f4ba516dd43f2681d21fcd530d35c772cb5', ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value} ${this.unit}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, h("slot", { key: '52a0896ccb3fd7c716625da4c8de5f2f09622a1c', name: "tooltip" }), h("div", { key: 'af1c978396037b1e1e5d8d0d0e8c25904d519098', class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, h("button", { key: 'b0bc1e76994b2c22b70a259962adac524b1ca5eb', disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, h("duet-visually-hidden", { key: 'c6c374074fe1e74907374d89cba0679bf9f5189d' }, this.accessibleSubtract, " ", this.step), h("duet-icon", { key: '135624fed93bbe112fecdd3b46d95aaf5f416b64', icon: subtractIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), h("button", { key: 'c65086cc05992d5120765da78e2eac86183e5630', disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, h("duet-visually-hidden", { key: '7f025ffd2816298087614a7d449739631d0ff9c6' }, this.accessibleAdd, " ", this.step), h("duet-icon", { key: 'f232ce3d5c1ad08b350d02b5c65bd21ec7dcf9c5', icon: addIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (h("duet-visually-hidden", { key: '03a758593f10d9c55307c3622b8a68b14c720f97', "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
398
+ } }, h("div", { key: '04d204f9d0dc1bf334606a101b0b4b5e165d36a3', class: "duet-number-container" }, h("duet-input", { key: '464c323e615b8978944cdeec09e0e1a1503391a0', ref: input => (this.duetInputElement = input), onDuetChange: event => this.handleChange(event), onDuetFocus: this.handleFocus, onDuetBlur: event => this.handleBlur(event), onKeyDown: event => this.handleKeyDown(event), label: this.label, value: this.value ? `${this.value}${this.getUnitString()}` : "", error: this.error, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": cleanedValue != null ? cleanedValue : "", maxlength: maxlength, name: this.name, component: "number", required: this.required, disabled: this.disabled, role: this.role, labelHidden: this.labelHidden, tooltip: this.tooltip, identifier: identifier, theme: this.theme, margin: "none", expand: true, numericKeyboard: true, autoComplete: "off", type: "text", accessibleActiveDescendant: this.accessibleActiveDescendant, accessibleLabelledBy: this.accessibleLabelledBy, accessibleDescription: this.accessibleDescription, accessibleDetails: this.accessibleDetails, accessibleControls: this.accessibleControls, accessibleOwns: this.accessibleOwns, accessibleDescribedBy: this.accessibleDescribedBy }, h("slot", { key: '876fa9e487574bd143648c8649105ac9f5972829', name: "tooltip" }), h("div", { key: '60053c4b4c4602d494693804539eff2149fe2a64', class: { "duet-number-buttons": true, "duet-no-label": this.labelHidden } }, h("button", { key: '083dc0860543ddc7e2532620e345ad9d8d163d13', disabled: this.disabled, "aria-disabled": cleanedValue == null || cleanedValue === this.min ? "true" : "false", class: "duet-number-button duet-number-button-subtract", onClick: this.subtract, type: "button" }, h("duet-visually-hidden", { key: '5323ecaf1f86fa97f9267b70bc048dadcca7d34f' }, this.accessibleSubtract, " ", this.step), h("duet-icon", { key: 'd6ab1819fe4c96d6e379570c5a5c4eb41a1a775f', icon: subtractIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })), h("button", { key: '82b9a72bfeba3653c85f853c2e9d295d146b2152', disabled: this.disabled, "aria-disabled": cleanedValue === this.max ? "true" : "false", class: "duet-number-button duet-number-button-add", onClick: this.add, type: "button" }, h("duet-visually-hidden", { key: '697550e4c1f874401d2e17f60c6c4f324fc97bd8' }, this.accessibleAdd, " ", this.step), h("duet-icon", { key: '7947d70d3a48a3ea7e36a46aa79c6abc82d52565', icon: addIcon.svg, size: "small", margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary" })))), this.accessibleLiveEnabled && (h("duet-visually-hidden", { key: '0759711664742966c214cb765c179706affc7b2f', "aria-live": "polite", "aria-atomic": "true", "aria-relevant": "all" }, this.formatAnnouncement())))));
394
399
  }
395
400
  static get is() { return "duet-number-input"; }
396
401
  static get encapsulation() { return "shadow"; }
@@ -665,7 +670,7 @@ export class DuetNumberInput {
665
670
  "name": "default",
666
671
  "text": "{fi: \"{current} euroa valittuna\", en: \"{current} euros selected\", sv: \"{current} valda euro\"}"
667
672
  }],
668
- "text": "Format of message used to announce current amount when switching between amounts.\nThe string {current} is replaced with the current amount."
673
+ "text": "Format of message used to announce current amount when switching between amounts. Note that the default has \"euros\"\nso if you use another unit is is essential you set this attribute to reflect that unit.\nThe string {current} is replaced with the current amount."
669
674
  },
670
675
  "getter": false,
671
676
  "setter": false,
@@ -43,12 +43,12 @@ export class DuetPageHeading {
43
43
  */
44
44
  render() {
45
45
  const layout = this.layout === "narrow" ? "narrow" : this.layout === "fluid" ? "fluid" : "auto";
46
- return (h("div", { key: '628273f674969acc5d8a49ea87897fe30a0aa73b', class: {
46
+ return (h("div", { key: 'c8965538a92caf79f80e48d48064860b3fba4a1c', class: {
47
47
  "duet-page-heading": true,
48
48
  "duet-theme-turva": this.theme === "turva",
49
49
  "has-icon": !!this.icon,
50
50
  [layout]: true,
51
- } }, h("div", { key: 'e92f86a1b315431caa574ff42342c9ebfe944802', class: "background" }, this.theme === "turva" && h("div", { key: '6c2b46cc3961a2c01cf55dd4ee998930e0203138', class: "background-mask" }), this.theme !== "turva" && h("div", { key: '223d19ded0f680af3a98cc57886344e15ad3e89e', class: "brand-shape" }), this.theme !== "turva" && h("div", { key: '8879e5620c44051f5d913b72228142151aaed976', class: "brand-shape second-shape" }), this.icon && (h("div", { key: '41eb8c4b1b270b3ec17dd00c9b3ae88305287c8c', class: "brand-shaped-icon" }, h("duet-icon", { key: '00fb325f70fb2730c261ad492e2990d481ac0cc9', background: "none", name: this.icon, margin: "none", size: "auto", responsive: false })))), h("div", { key: '23af280baecc0cb0b71382269236fd32d362356c', class: "heading" }, h("slot", { key: '29a66ba008d7e796ba317c115a12756bc0b00f94', name: "heading" }), this.progressCurrentStep && this.progressTotalSteps && (h("div", { key: '6161bb90ecf741d67298184ed058f6857a26726c' }, h("duet-spacer", { key: 'b3bb416d59727ab64ff4b2cd601c1846ad7a64da', size: "large" }), h("div", { key: 'c771ce9dc543006f93a072f2062fbb580064764d', role: "presentation" }, this.progressIndicator()))))));
51
+ } }, h("div", { key: '845fe8135a9ae4814633cc083a4b87b7ef7b716f', class: "background" }, this.theme === "turva" && h("div", { key: 'c6d6d61458c267811e1b3bd2f5c53a0e69b6fd4e', class: "background-mask" }), this.theme !== "turva" && h("div", { key: '8f17b5fbb587dd2628c8928da6019f00e4d74f53', class: "brand-shape" }), this.theme !== "turva" && h("div", { key: '125cb3cdd58e3f0f43927446c57759efd2d6473d', class: "brand-shape second-shape" }), this.icon && (h("div", { key: 'b547fb58f9df92aeb648bb37f3d28b0d3982fe41', class: "brand-shaped-icon" }, h("duet-icon", { key: 'e74873b15c8f7f2dac7e7589c107308b60bb4ff0', background: "none", name: this.icon, margin: "none", size: "auto", responsive: false })))), h("div", { key: 'e75036eaeaa3a4665202b042acbd9a58a896f2bd', class: "heading" }, h("slot", { key: '3aa3b62846356cf5e5aa8b25dcd7cce2f6d9867f', name: "heading" }), this.progressCurrentStep && this.progressTotalSteps && (h("div", { key: 'cb1b3dcd21c496a3ba752b3ce718d054c6a317ca' }, h("duet-spacer", { key: '08ab03a19f3d5a495cdbad4f5e06f6ed36bd6819', size: "large" }), h("div", { key: 'c7c2fe589b8c599a82403408c9e3bda91d8b01ac', role: "presentation" }, this.progressIndicator()))))));
52
52
  }
53
53
  static get is() { return "duet-page-heading"; }
54
54
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,98 @@
1
+ :host {
2
+ box-sizing: border-box;
3
+ padding: 0;
4
+ margin: 0;
5
+ background: transparent;
6
+ border: 0;
7
+ -moz-appearance: none;
8
+ -webkit-appearance: none;
9
+ appearance: none;
10
+ position: relative;
11
+ display: block;
12
+ width: 100%;
13
+ margin: 8px 0 20px 0;
14
+ }
15
+ @media (min-width: 36em) {
16
+ :host {
17
+ margin: 12px 0 28px 0;
18
+ }
19
+ }
20
+ :host .duet-m-0 {
21
+ margin: 0 !important;
22
+ }
23
+
24
+ .duet-panel {
25
+ font-family: "localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
26
+ color: rgb(8, 42, 77);
27
+ background-color: rgb(255, 255, 255);
28
+ border: 0 solid rgb(212, 223, 229);
29
+ border-radius: 16px;
30
+ }
31
+ .duet-panel.duet-theme-turva {
32
+ font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
33
+ color: rgb(23, 28, 58);
34
+ border-color: rgb(222, 224, 228);
35
+ }
36
+ .duet-panel.padding-small {
37
+ padding: 16px;
38
+ border-radius: 12px;
39
+ }
40
+ @media (min-width: 36em) {
41
+ .duet-panel.padding-small {
42
+ padding: 20px;
43
+ }
44
+ }
45
+ .duet-panel.padding-medium {
46
+ padding: 20px;
47
+ }
48
+ @media (min-width: 36em) {
49
+ .duet-panel.padding-medium {
50
+ padding: 28px;
51
+ }
52
+ }
53
+ .duet-panel.padding-large {
54
+ padding: 28px;
55
+ }
56
+ @media (min-width: 36em) {
57
+ .duet-panel.padding-large {
58
+ padding: 36px;
59
+ }
60
+ }
61
+ .duet-panel.border {
62
+ border-width: 1px;
63
+ }
64
+ .duet-panel.secondary {
65
+ background-color: rgb(245, 248, 250);
66
+ }
67
+ .duet-panel.secondary.duet-theme-turva {
68
+ background-color: rgb(245, 247, 250);
69
+ }
70
+ .duet-panel.accent {
71
+ background-color: rgb(240, 247, 250);
72
+ border-color: rgb(198, 225, 238);
73
+ }
74
+ .duet-panel.accent.duet-theme-turva {
75
+ background-color: rgb(245, 247, 250);
76
+ border-color: rgb(199, 202, 207);
77
+ }
78
+ .duet-panel.accent.secondary {
79
+ background-color: rgb(217, 236, 245);
80
+ }
81
+ .duet-panel.accent.secondary.duet-theme-turva {
82
+ background-color: rgb(222, 224, 228);
83
+ }
84
+
85
+ :host(.duet-theme-turva2) .duet-panel.duet-theme-turva {
86
+ color: #172a3b;
87
+ border-color: #d4dde2;
88
+ }
89
+ :host(.duet-theme-turva2) .duet-panel.duet-theme-turva.secondary {
90
+ background-color: #f5f6f7;
91
+ }
92
+ :host(.duet-theme-turva2) .duet-panel.duet-theme-turva.accent {
93
+ background-color: #fdf7f2;
94
+ border-color: #f1cab2;
95
+ }
96
+ :host(.duet-theme-turva2) .duet-panel.duet-theme-turva.accent.secondary {
97
+ background-color: #fbe1d1;
98
+ }
@@ -0,0 +1,234 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { h, Host } from "@stencil/core";
5
+ import { inheritGlobalTheme } from "../../common/themeable-component";
6
+ export class DuetPanel {
7
+ constructor() {
8
+ /**
9
+ * Theme of the panel.
10
+ */
11
+ this.theme = "";
12
+ /**
13
+ * Controls the padding of the component. Padding is automatically responsive.
14
+ */
15
+ this.padding = "medium";
16
+ /**
17
+ * The color variation of the panel. Combination of palette ("default", "accent") and palette variation ("primary",
18
+ * "secondary"). You can ommit "default" and "primary" - they are the defaults.
19
+ */
20
+ this.variation = "";
21
+ /**
22
+ * Controls the margin of the component.
23
+ */
24
+ this.margin = "auto";
25
+ }
26
+ /**
27
+ * Component lifecycle events.
28
+ */
29
+ componentWillLoad() {
30
+ inheritGlobalTheme(this);
31
+ }
32
+ render() {
33
+ return (h(Host, { key: 'ce2c9ad02ea4b482491120c4564322a7ab1b97c8' }, h("section", { key: '058ae2c34b915888645f0a0fbce8c905f9a99330', "aria-label": this.accessibleLabel, "aria-labelledby": this.accessibleLabelledBy, "aria-describedby": this.accessibleDescribedBy, class: {
34
+ "duet-panel": true,
35
+ "duet-theme-turva": this.theme === "turva",
36
+ [this.variation.split("-")[0]]: true,
37
+ [this.variation.split("-")[1]]: true,
38
+ [`padding-${this.padding}`]: true,
39
+ border: this.border,
40
+ "duet-m-0": this.margin === "none",
41
+ } }, h("slot", { key: 'eabfa138724309e78227fb8e48507a2a065c5822' }))));
42
+ }
43
+ static get is() { return "duet-panel"; }
44
+ static get encapsulation() { return "shadow"; }
45
+ static get originalStyleUrls() {
46
+ return {
47
+ "$": ["duet-panel.scss"]
48
+ };
49
+ }
50
+ static get styleUrls() {
51
+ return {
52
+ "$": ["duet-panel.css"]
53
+ };
54
+ }
55
+ static get properties() {
56
+ return {
57
+ "theme": {
58
+ "type": "string",
59
+ "attribute": "theme",
60
+ "mutable": true,
61
+ "complexType": {
62
+ "original": "DuetTheme",
63
+ "resolved": "\"\" | \"default\" | \"turva\"",
64
+ "references": {
65
+ "DuetTheme": {
66
+ "location": "import",
67
+ "path": "../../common-types",
68
+ "id": "src/common-types.d.ts::DuetTheme"
69
+ }
70
+ }
71
+ },
72
+ "required": false,
73
+ "optional": false,
74
+ "docs": {
75
+ "tags": [],
76
+ "text": "Theme of the panel."
77
+ },
78
+ "getter": false,
79
+ "setter": false,
80
+ "reflect": false,
81
+ "defaultValue": "\"\""
82
+ },
83
+ "padding": {
84
+ "type": "string",
85
+ "attribute": "padding",
86
+ "mutable": false,
87
+ "complexType": {
88
+ "original": "\"small\" | \"medium\" | \"large\"",
89
+ "resolved": "\"large\" | \"medium\" | \"small\"",
90
+ "references": {}
91
+ },
92
+ "required": false,
93
+ "optional": false,
94
+ "docs": {
95
+ "tags": [],
96
+ "text": "Controls the padding of the component. Padding is automatically responsive."
97
+ },
98
+ "getter": false,
99
+ "setter": false,
100
+ "reflect": false,
101
+ "defaultValue": "\"medium\""
102
+ },
103
+ "variation": {
104
+ "type": "string",
105
+ "attribute": "variation",
106
+ "mutable": false,
107
+ "complexType": {
108
+ "original": "DuetPanelVariation",
109
+ "resolved": "\"\" | \"accent\" | \"accent-primary\" | \"accent-secondary\" | \"default\" | \"default-primary\" | \"default-secondary\" | \"primary\" | \"primary-accent\" | \"primary-default\" | \"secondary\" | \"secondary-accent\" | \"secondary-default\"",
110
+ "references": {
111
+ "DuetPanelVariation": {
112
+ "location": "local",
113
+ "path": "/Users/juha-matti.laaksonen/duetds/packages/components/src/components/duet-panel/duet-panel.tsx",
114
+ "id": "src/components/duet-panel/duet-panel.tsx::DuetPanelVariation"
115
+ }
116
+ }
117
+ },
118
+ "required": false,
119
+ "optional": false,
120
+ "docs": {
121
+ "tags": [],
122
+ "text": "The color variation of the panel. Combination of palette (\"default\", \"accent\") and palette variation (\"primary\",\n\"secondary\"). You can ommit \"default\" and \"primary\" - they are the defaults."
123
+ },
124
+ "getter": false,
125
+ "setter": false,
126
+ "reflect": false,
127
+ "defaultValue": "\"\""
128
+ },
129
+ "margin": {
130
+ "type": "string",
131
+ "attribute": "margin",
132
+ "mutable": false,
133
+ "complexType": {
134
+ "original": "DuetMargin",
135
+ "resolved": "\"auto\" | \"none\"",
136
+ "references": {
137
+ "DuetMargin": {
138
+ "location": "import",
139
+ "path": "../../common-types",
140
+ "id": "src/common-types.d.ts::DuetMargin"
141
+ }
142
+ }
143
+ },
144
+ "required": false,
145
+ "optional": false,
146
+ "docs": {
147
+ "tags": [],
148
+ "text": "Controls the margin of the component."
149
+ },
150
+ "getter": false,
151
+ "setter": false,
152
+ "reflect": false,
153
+ "defaultValue": "\"auto\""
154
+ },
155
+ "border": {
156
+ "type": "boolean",
157
+ "attribute": "border",
158
+ "mutable": false,
159
+ "complexType": {
160
+ "original": "boolean",
161
+ "resolved": "boolean",
162
+ "references": {}
163
+ },
164
+ "required": false,
165
+ "optional": false,
166
+ "docs": {
167
+ "tags": [],
168
+ "text": "Set this attribute to draw a border around the panel."
169
+ },
170
+ "getter": false,
171
+ "setter": false,
172
+ "reflect": false
173
+ },
174
+ "accessibleLabel": {
175
+ "type": "string",
176
+ "attribute": "accessible-label",
177
+ "mutable": false,
178
+ "complexType": {
179
+ "original": "string",
180
+ "resolved": "string",
181
+ "references": {}
182
+ },
183
+ "required": false,
184
+ "optional": false,
185
+ "docs": {
186
+ "tags": [],
187
+ "text": "Adds accessible label for the panel that is only shown for screen readers."
188
+ },
189
+ "getter": false,
190
+ "setter": false,
191
+ "reflect": false
192
+ },
193
+ "accessibleLabelledBy": {
194
+ "type": "string",
195
+ "attribute": "accessible-labelled-by",
196
+ "mutable": false,
197
+ "complexType": {
198
+ "original": "string",
199
+ "resolved": "string",
200
+ "references": {}
201
+ },
202
+ "required": false,
203
+ "optional": false,
204
+ "docs": {
205
+ "tags": [],
206
+ "text": "Indicates the id of a component that labels the panel."
207
+ },
208
+ "getter": false,
209
+ "setter": false,
210
+ "reflect": false
211
+ },
212
+ "accessibleDescribedBy": {
213
+ "type": "string",
214
+ "attribute": "accessible-described-by",
215
+ "mutable": false,
216
+ "complexType": {
217
+ "original": "string",
218
+ "resolved": "string",
219
+ "references": {}
220
+ },
221
+ "required": false,
222
+ "optional": false,
223
+ "docs": {
224
+ "tags": [],
225
+ "text": "Indicates the id of a component that describes the panel."
226
+ },
227
+ "getter": false,
228
+ "setter": false,
229
+ "reflect": false
230
+ }
231
+ };
232
+ }
233
+ static get elementRef() { return "element"; }
234
+ }