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

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 (403) hide show
  1. package/hydrate/index.js +348 -195
  2. package/hydrate/index.mjs +348 -195
  3. package/lib/cjs/{a11y-utils-CZnG1VYN.js → a11y-utils-BeS3x4Hg.js} +1 -1
  4. package/lib/cjs/{app-globals-B36JTAfq.js → app-globals-BvljEFtV.js} +1 -1
  5. package/lib/cjs/duet-action-button.cjs.entry.js +4 -4
  6. package/lib/cjs/duet-alert.cjs.entry.js +4 -4
  7. package/lib/cjs/duet-badge.cjs.entry.js +4 -4
  8. package/lib/cjs/duet-banner.cjs.entry.js +7 -7
  9. package/lib/cjs/duet-breadcrumb.cjs.entry.js +7 -7
  10. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +6 -6
  11. package/lib/cjs/duet-button_2.cjs.entry.js +12 -12
  12. package/lib/cjs/duet-callout.cjs.entry.js +5 -5
  13. package/lib/cjs/duet-caption_4.cjs.entry.js +13 -12
  14. package/lib/cjs/duet-card.cjs.entry.js +4 -4
  15. package/lib/cjs/duet-checkbox.cjs.entry.js +2 -2
  16. package/lib/cjs/duet-checkmark.cjs.entry.js +4 -4
  17. package/lib/cjs/duet-chip.cjs.entry.js +3 -3
  18. package/lib/cjs/duet-choice_2.cjs.entry.js +6 -6
  19. package/lib/cjs/duet-collapsible.cjs.entry.js +3 -3
  20. package/lib/cjs/duet-combobox.cjs.entry.js +4 -4
  21. package/lib/cjs/duet-contact-card.cjs.entry.js +5 -5
  22. package/lib/cjs/duet-cookie-consent.cjs.entry.js +2 -2
  23. package/lib/cjs/duet-date-picker.cjs.entry.js +6 -6
  24. package/lib/cjs/duet-divider_2.cjs.entry.js +4 -4
  25. package/lib/cjs/duet-editable-table_3.cjs.entry.js +9 -9
  26. package/lib/cjs/duet-empty-state.cjs.entry.js +2 -2
  27. package/lib/cjs/duet-fieldset.cjs.entry.js +6 -6
  28. package/lib/cjs/duet-file-chooser.cjs.entry.js +2 -2
  29. package/lib/cjs/duet-footer.cjs.entry.js +4 -4
  30. package/lib/cjs/duet-grid_2.cjs.entry.js +4 -4
  31. package/lib/cjs/duet-header_2.cjs.entry.js +6 -5
  32. package/lib/cjs/duet-hero.cjs.entry.js +4 -4
  33. package/lib/cjs/duet-icon.cjs.entry.js +6 -6
  34. package/lib/cjs/duet-input_2.cjs.entry.js +7 -7
  35. package/lib/cjs/duet-layout.cjs.entry.js +2 -2
  36. package/lib/cjs/duet-list_2.cjs.entry.js +4 -4
  37. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +4 -4
  38. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +4 -4
  39. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +6 -6
  40. package/lib/cjs/duet-menu-bar-item.cjs.entry.js +7 -7
  41. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +4 -4
  42. package/lib/cjs/duet-menu-bar.cjs.entry.js +3 -3
  43. package/lib/cjs/duet-modal.cjs.entry.js +37 -20
  44. package/lib/cjs/duet-multiselect.cjs.entry.js +5 -5
  45. package/lib/cjs/duet-nav.cjs.entry.js +3 -3
  46. package/lib/cjs/duet-notification_2.cjs.entry.js +5 -5
  47. package/lib/cjs/duet-number-input.cjs.entry.js +14 -9
  48. package/lib/cjs/duet-overlay.cjs.entry.js +2 -2
  49. package/lib/cjs/duet-page-heading.cjs.entry.js +4 -4
  50. package/lib/cjs/duet-pagination_2.cjs.entry.js +6 -6
  51. package/lib/cjs/duet-panel.cjs.entry.js +53 -0
  52. package/lib/cjs/duet-phone-input.cjs.entry.js +4 -4
  53. package/lib/cjs/duet-popup-menu_2.cjs.entry.js +6 -6
  54. package/lib/cjs/duet-progress.cjs.entry.js +3 -3
  55. package/lib/cjs/duet-promo-card.cjs.entry.js +6 -6
  56. package/lib/cjs/duet-radio_2.cjs.entry.js +7 -7
  57. package/lib/cjs/duet-range-slider.cjs.entry.js +6 -6
  58. package/lib/cjs/duet-scrollable_3.cjs.entry.js +16 -16
  59. package/lib/cjs/duet-section-layout.cjs.entry.js +4 -4
  60. package/lib/cjs/duet-select.cjs.entry.js +9 -9
  61. package/lib/cjs/duet-shaped-image.cjs.entry.js +4 -4
  62. package/lib/cjs/duet-share-chart-item.cjs.entry.js +2 -2
  63. package/lib/cjs/duet-share-chart.cjs.entry.js +7 -7
  64. package/lib/cjs/duet-show-more.cjs.entry.js +5 -5
  65. package/lib/cjs/duet-slideout-lang.cjs.entry.js +4 -4
  66. package/lib/cjs/duet-slideout-link.cjs.entry.js +7 -7
  67. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +6 -6
  68. package/lib/cjs/duet-slideout-panel.cjs.entry.js +12 -12
  69. package/lib/cjs/duet-slideout.cjs.entry.js +10 -10
  70. package/lib/cjs/duet-status-icon.cjs.entry.js +3 -3
  71. package/lib/cjs/duet-step_2.cjs.entry.js +6 -6
  72. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +4 -4
  73. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +6 -6
  74. package/lib/cjs/duet-submenu-bar-item.cjs.entry.js +6 -6
  75. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +3 -3
  76. package/lib/cjs/duet-submenu-bar.cjs.entry.js +7 -7
  77. package/lib/cjs/duet-textarea.cjs.entry.js +8 -8
  78. package/lib/cjs/duet-toggle.cjs.entry.js +6 -6
  79. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +4 -4
  80. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +6 -6
  81. package/lib/cjs/duet-toolbar-item.cjs.entry.js +8 -8
  82. package/lib/cjs/duet-toolbar-link.cjs.entry.js +4 -4
  83. package/lib/cjs/duet-toolbar.cjs.entry.js +4 -4
  84. package/lib/cjs/duet-tooltip-button_2.cjs.entry.js +8 -8
  85. package/lib/cjs/duet-tooltip.cjs.entry.js +4 -4
  86. package/lib/cjs/duet-tray.cjs.entry.js +5 -5
  87. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +2 -2
  88. package/lib/cjs/duet-upload-item.cjs.entry.js +6 -6
  89. package/lib/cjs/duet-visually-hidden.cjs.entry.js +2 -2
  90. package/lib/cjs/duet.cjs.js +3 -3
  91. package/lib/cjs/{errorcodes.utils-C58jiu8o.js → errorcodes.utils-CwTzu57-.js} +1 -1
  92. package/lib/cjs/{focus-utils-tY80LFI3.js → focus-utils-Dh4b8BiX.js} +1 -1
  93. package/lib/cjs/{index-C1crwqC7.js → index-D3O_5Hr7.js} +5 -1
  94. package/lib/cjs/{label-ClSVuKQ_.js → label-8AXhdqJy.js} +1 -1
  95. package/lib/cjs/{language-utils-BtiS-RGS.js → language-utils-CMK9eR4Q.js} +1 -1
  96. package/lib/cjs/loader.cjs.js +3 -3
  97. package/lib/cjs/{slot-utils-DZVD8m30.js → slot-utils-BIdgEejh.js} +1 -1
  98. package/lib/cjs/{themeable-component-6YQpZOSC.js → themeable-component-B3llZmjN.js} +1 -1
  99. package/lib/cjs/{token-utils-CHLLcMzU.js → token-utils-DsVwGXGM.js} +75 -7
  100. package/lib/collection/collection-manifest.json +1 -0
  101. package/lib/collection/components/duet-badge/duet-badge.js +2 -2
  102. package/lib/collection/components/duet-banner/duet-banner.css +1 -0
  103. package/lib/collection/components/duet-banner/duet-banner.js +3 -3
  104. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +4 -4
  105. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +2 -2
  106. package/lib/collection/components/duet-button/duet-button.css +14 -5
  107. package/lib/collection/components/duet-button/duet-button.js +5 -5
  108. package/lib/collection/components/duet-callout/duet-callout.js +2 -2
  109. package/lib/collection/components/duet-choice/duet-checkmark.js +2 -2
  110. package/lib/collection/components/duet-choice-group/duet-choice-group.js +2 -2
  111. package/lib/collection/components/duet-contact-card/duet-contact-card.js +2 -2
  112. package/lib/collection/components/duet-fieldset/duet-fieldset.js +3 -3
  113. package/lib/collection/components/duet-grid-item/duet-grid-item.js +2 -2
  114. package/lib/collection/components/duet-header/duet-header.js +3 -2
  115. package/lib/collection/components/duet-icon/duet-icon.js +3 -3
  116. package/lib/collection/components/duet-label/duet-label.js +1 -1
  117. package/lib/collection/components/duet-link/duet-link.js +5 -4
  118. package/lib/collection/components/duet-list-item/duet-list-item.js +2 -2
  119. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +2 -2
  120. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +4 -4
  121. package/lib/collection/components/duet-menu-bar-dropdown-link/duet-menu-bar-dropdown-link.js +2 -2
  122. package/lib/collection/components/duet-menu-bar-item/duet-menu-bar-item.js +2 -2
  123. package/lib/collection/components/duet-menu-bar-link/duet-menu-bar-link.js +2 -2
  124. package/lib/collection/components/duet-modal/duet-modal.js +96 -15
  125. package/lib/collection/components/duet-nav/duet-nav.js +1 -1
  126. package/lib/collection/components/duet-notification/duet-notification.js +2 -2
  127. package/lib/collection/components/duet-number-input/duet-number-input.js +11 -6
  128. package/lib/collection/components/duet-page-heading/duet-page-heading.js +2 -2
  129. package/lib/collection/components/duet-panel/duet-panel.css +98 -0
  130. package/lib/collection/components/duet-panel/duet-panel.js +234 -0
  131. package/lib/collection/components/duet-paragraph/duet-paragraph.js +2 -2
  132. package/lib/collection/components/duet-popup-menu-item/duet-popup-menu-item.js +2 -2
  133. package/lib/collection/components/duet-promo-card/duet-promo-card.js +3 -3
  134. package/lib/collection/components/duet-radio/duet-radio.js +3 -3
  135. package/lib/collection/components/duet-radio-group/duet-radio-group.js +1 -1
  136. package/lib/collection/components/duet-range-slider/duet-range-slider.js +2 -2
  137. package/lib/collection/components/duet-range-stepper/duet-range-stepper.js +2 -2
  138. package/lib/collection/components/duet-scrollable/duet-scrollable.js +5 -5
  139. package/lib/collection/components/duet-section-layout/duet-section-layout.js +3 -3
  140. package/lib/collection/components/duet-select/duet-select.js +5 -5
  141. package/lib/collection/components/duet-shaped-image/duet-shaped-image.js +2 -2
  142. package/lib/collection/components/duet-share-chart/duet-share-chart.js +2 -2
  143. package/lib/collection/components/duet-share-chart-item/duet-share-chart-item.js +1 -1
  144. package/lib/collection/components/duet-show-more/duet-show-more.js +2 -2
  145. package/lib/collection/components/duet-slideout/duet-slideout.js +4 -4
  146. package/lib/collection/components/duet-slideout-lang/duet-slideout-lang.js +1 -1
  147. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +2 -2
  148. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +6 -6
  149. package/lib/collection/components/duet-slideout-panel-dropdown/duet-slideout-panel-dropdown.js +4 -4
  150. package/lib/collection/components/duet-spacer/duet-spacer.js +1 -1
  151. package/lib/collection/components/duet-spinner/duet-spinner.js +2 -2
  152. package/lib/collection/components/duet-status-icon/duet-status-icon.js +2 -2
  153. package/lib/collection/components/duet-step/duet-step.js +2 -2
  154. package/lib/collection/components/duet-stepper/duet-stepper.js +1 -1
  155. package/lib/collection/components/duet-submenu-bar/duet-submenu-bar.js +5 -5
  156. package/lib/collection/components/duet-submenu-bar-dropdown/duet-submenu-bar-dropdown.js +4 -4
  157. package/lib/collection/components/duet-submenu-bar-dropdown-link/duet-submenu-bar-dropdown-link.js +2 -2
  158. package/lib/collection/components/duet-submenu-bar-item/duet-submenu-bar-item.js +1 -1
  159. package/lib/collection/components/duet-submenu-bar-link/duet-submenu-bar-link.js +1 -1
  160. package/lib/collection/components/duet-tab/duet-tab.js +2 -2
  161. package/lib/collection/components/duet-tab-group/duet-tab-group.js +4 -4
  162. package/lib/collection/components/duet-table/duet-table.js +2 -2
  163. package/lib/collection/components/duet-textarea/duet-textarea.js +3 -3
  164. package/lib/collection/components/duet-toggle/duet-toggle.js +2 -2
  165. package/lib/collection/components/duet-toolbar/duet-toolbar.js +2 -2
  166. package/lib/collection/components/duet-toolbar-dropdown/duet-toolbar-dropdown.js +4 -4
  167. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +2 -2
  168. package/lib/collection/components/duet-toolbar-item/duet-toolbar-item.js +3 -3
  169. package/lib/collection/components/duet-toolbar-link/duet-toolbar-link.js +2 -2
  170. package/lib/collection/components/duet-tooltip/duet-tooltip-button.js +3 -3
  171. package/lib/collection/components/duet-tooltip/duet-tooltip-popup.js +2 -2
  172. package/lib/collection/components/duet-tray/duet-tray.js +2 -2
  173. package/lib/collection/components/duet-upload/duet-upload.js +2 -2
  174. package/lib/collection/components/duet-upload-aria-status/duet-upload-aria-status.js +1 -1
  175. package/lib/collection/components/duet-upload-item/duet-upload-item.js +2 -2
  176. package/lib/collection/components/duet-visually-hidden/duet-visually-hidden.js +1 -1
  177. package/lib/collection/utils/token-utils.js +59 -7
  178. package/lib/collection/utils/turva2-color-tokens.js +42 -0
  179. package/lib/duet/duet.esm.js +1 -1
  180. package/lib/duet/{p-b8c10f92.entry.js → p-04ce95ba.entry.js} +1 -1
  181. package/lib/duet/{p-6104db31.entry.js → p-05766552.entry.js} +1 -1
  182. package/lib/duet/{p-5816e147.entry.js → p-065f7e81.entry.js} +1 -1
  183. package/lib/duet/{p-f234f837.entry.js → p-06ed84cb.entry.js} +1 -1
  184. package/lib/duet/{p-bae186c7.entry.js → p-08ed76c2.entry.js} +1 -1
  185. package/lib/duet/{p-64731e35.entry.js → p-0a448068.entry.js} +1 -1
  186. package/lib/duet/{p-b4e2e77d.entry.js → p-0dc4fe1d.entry.js} +1 -1
  187. package/lib/duet/{p-688ea42b.entry.js → p-0ebeee02.entry.js} +1 -1
  188. package/lib/duet/{p-0e288f30.entry.js → p-106d3089.entry.js} +1 -1
  189. package/lib/duet/p-15593e3e.entry.js +4 -0
  190. package/lib/duet/{p-bb468aae.entry.js → p-2057cc55.entry.js} +1 -1
  191. package/lib/duet/{p-662331c7.entry.js → p-2792ec0b.entry.js} +1 -1
  192. package/lib/duet/p-28a998f9.entry.js +4 -0
  193. package/lib/duet/{p-416cbbf6.entry.js → p-2d3d11db.entry.js} +1 -1
  194. package/lib/duet/{p-2bc683b8.entry.js → p-2e34dd28.entry.js} +1 -1
  195. package/lib/duet/{p-74d7480d.entry.js → p-30ade10d.entry.js} +1 -1
  196. package/lib/duet/{p-58bd2e53.entry.js → p-35ac072d.entry.js} +1 -1
  197. package/lib/duet/p-37222c50.entry.js +4 -0
  198. package/lib/duet/p-39169420.entry.js +4 -0
  199. package/lib/duet/{p-7dceae70.entry.js → p-3dd4fbf1.entry.js} +1 -1
  200. package/lib/duet/{p-a2a94d9a.entry.js → p-402c8cd9.entry.js} +1 -1
  201. package/lib/duet/{p-908b3a74.entry.js → p-4628e002.entry.js} +1 -1
  202. package/lib/duet/{p-c28dc621.entry.js → p-466ef37c.entry.js} +1 -1
  203. package/lib/duet/{p-32ac2068.entry.js → p-4aece4f9.entry.js} +1 -1
  204. package/lib/duet/{p-3897c6bf.entry.js → p-4ee576a2.entry.js} +1 -1
  205. package/lib/duet/p-500d799b.entry.js +4 -0
  206. package/lib/duet/{p-1c2d8dfc.entry.js → p-5564a39c.entry.js} +1 -1
  207. package/lib/duet/{p-a6173e93.entry.js → p-5848a34c.entry.js} +1 -1
  208. package/lib/duet/{p-5f18c78a.entry.js → p-5ab64521.entry.js} +1 -1
  209. package/lib/duet/{p-42539282.entry.js → p-60be3836.entry.js} +1 -1
  210. package/lib/duet/{p-7c19dac5.entry.js → p-625347d3.entry.js} +1 -1
  211. package/lib/duet/{p-db110424.entry.js → p-64ebf5e9.entry.js} +1 -1
  212. package/lib/duet/{p-3aeaed85.entry.js → p-64f8d654.entry.js} +1 -1
  213. package/lib/duet/{p-3baa3eaa.entry.js → p-652eefa8.entry.js} +1 -1
  214. package/lib/duet/{p-3cee5337.entry.js → p-65a8dd89.entry.js} +1 -1
  215. package/lib/duet/{p-2ba227ae.entry.js → p-66c7af01.entry.js} +1 -1
  216. package/lib/duet/{p-be397530.entry.js → p-67290546.entry.js} +1 -1
  217. package/lib/duet/{p-abec4876.entry.js → p-693fda6b.entry.js} +1 -1
  218. package/lib/duet/{p-545e9dd3.entry.js → p-6a6e4d82.entry.js} +1 -1
  219. package/lib/duet/{p-5018b536.entry.js → p-6aa6ce7d.entry.js} +1 -1
  220. package/lib/duet/{p-ca626317.entry.js → p-71603edd.entry.js} +1 -1
  221. package/lib/duet/{p-156d2362.entry.js → p-71a6b137.entry.js} +1 -1
  222. package/lib/duet/{p-3d8dc9a3.entry.js → p-72c2ba6b.entry.js} +1 -1
  223. package/lib/duet/p-73290da8.entry.js +4 -0
  224. package/lib/duet/{p-f6c347b4.entry.js → p-73ce0ef8.entry.js} +1 -1
  225. package/lib/duet/p-767afcf4.entry.js +4 -0
  226. package/lib/duet/{p-f4a44d9d.entry.js → p-774cf9f5.entry.js} +1 -1
  227. package/lib/duet/{p-ff564afe.entry.js → p-7a9f3475.entry.js} +1 -1
  228. package/lib/duet/{p-6cafd585.entry.js → p-7c814d9a.entry.js} +1 -1
  229. package/lib/duet/{p-038b8ea1.entry.js → p-7f1fb1a9.entry.js} +1 -1
  230. package/lib/duet/{p-88422e6a.entry.js → p-83f6beb5.entry.js} +1 -1
  231. package/lib/duet/{p-f4be7b00.entry.js → p-8596c993.entry.js} +1 -1
  232. package/lib/duet/{p-815c955b.entry.js → p-867aab83.entry.js} +1 -1
  233. package/lib/duet/p-86b74914.entry.js +4 -0
  234. package/lib/duet/{p-f4a0f95a.entry.js → p-8ed6f7c7.entry.js} +1 -1
  235. package/lib/duet/{p-bf586daf.entry.js → p-94e33308.entry.js} +1 -1
  236. package/lib/duet/p-960f95b4.entry.js +4 -0
  237. package/lib/duet/{p-66861503.entry.js → p-9973c0dc.entry.js} +1 -1
  238. package/lib/duet/{p-8a852600.entry.js → p-9a1f29ac.entry.js} +1 -1
  239. package/lib/duet/{p-6f635395.entry.js → p-9fade6a0.entry.js} +1 -1
  240. package/lib/duet/{p-b0484b68.entry.js → p-9fff2189.entry.js} +1 -1
  241. package/lib/duet/{p-CsVaeVlH.js → p-B_VBeM3r.js} +1 -1
  242. package/lib/duet/{p-DglOA-oE.js → p-BaR6ufr4.js} +1 -1
  243. package/lib/duet/p-BdUQgQFn.js +4 -0
  244. package/lib/duet/{p-uJz71_4x.js → p-DdwVwK5C.js} +1 -1
  245. package/lib/duet/p-Dr2j33H2.js +4 -0
  246. package/lib/duet/p-DyXNfxdT.js +4 -0
  247. package/lib/duet/p-DzerL_yn.js +4 -0
  248. package/lib/duet/p-KocOARXM.js +4 -0
  249. package/lib/duet/p-OdY4DjJa.js +4 -0
  250. package/lib/duet/p-T5kkooky.js +4 -0
  251. package/lib/duet/{p-D5_4M8f7.js → p-Z0D6Gy9e.js} +1 -1
  252. package/lib/duet/{p-b463cb8b.entry.js → p-a09c6e42.entry.js} +1 -1
  253. package/lib/duet/{p-41ef0467.entry.js → p-a3a2e89e.entry.js} +1 -1
  254. package/lib/duet/{p-da1914c5.entry.js → p-a440c5b3.entry.js} +1 -1
  255. package/lib/duet/{p-034efb8b.entry.js → p-a4a768bf.entry.js} +1 -1
  256. package/lib/duet/{p-1d5bdc66.entry.js → p-a72b8cf4.entry.js} +1 -1
  257. package/lib/duet/p-ab0cd4e5.entry.js +4 -0
  258. package/lib/duet/{p-9ef5fe85.entry.js → p-aefcd222.entry.js} +1 -1
  259. package/lib/duet/p-b84ac47b.entry.js +4 -0
  260. package/lib/duet/{p-218b0dc3.entry.js → p-ba0fcce1.entry.js} +1 -1
  261. package/lib/duet/p-ba2b47d3.entry.js +4 -0
  262. package/lib/duet/{p-90efef7f.entry.js → p-baeb1090.entry.js} +1 -1
  263. package/lib/duet/{p-db50a06b.entry.js → p-bcbe4d11.entry.js} +1 -1
  264. package/lib/duet/{p-caf145ea.entry.js → p-bf5fae27.entry.js} +1 -1
  265. package/lib/duet/p-c6479694.entry.js +4 -0
  266. package/lib/duet/{p-72ad01cb.entry.js → p-c8308bec.entry.js} +1 -1
  267. package/lib/duet/p-d0f3a2e6.entry.js +4 -0
  268. package/lib/duet/{p-e99bccef.entry.js → p-d28a8bc4.entry.js} +1 -1
  269. package/lib/duet/p-d2ceafd6.entry.js +4 -0
  270. package/lib/duet/{p-7bc24df3.entry.js → p-d96af9c9.entry.js} +1 -1
  271. package/lib/duet/{p-9b757818.entry.js → p-dee8ff90.entry.js} +1 -1
  272. package/lib/duet/p-e9421a0e.entry.js +4 -0
  273. package/lib/duet/p-ec6e097b.entry.js +4 -0
  274. package/lib/duet/{p-08f98123.entry.js → p-effefdec.entry.js} +1 -1
  275. package/lib/duet/{p-4427fd7d.entry.js → p-fb3b8e0f.entry.js} +1 -1
  276. package/lib/esm/{a11y-utils-ehCV15cK.js → a11y-utils-CXqm1pj1.js} +1 -1
  277. package/lib/esm/{app-globals-BWEEyeBa.js → app-globals-s-_CGo5t.js} +1 -1
  278. package/lib/esm/duet-action-button.entry.js +5 -5
  279. package/lib/esm/duet-alert.entry.js +4 -4
  280. package/lib/esm/duet-badge.entry.js +4 -4
  281. package/lib/esm/duet-banner.entry.js +8 -8
  282. package/lib/esm/duet-breadcrumb.entry.js +7 -7
  283. package/lib/esm/duet-breadcrumbs.entry.js +7 -7
  284. package/lib/esm/duet-button_2.entry.js +13 -13
  285. package/lib/esm/duet-callout.entry.js +5 -5
  286. package/lib/esm/duet-caption_4.entry.js +14 -13
  287. package/lib/esm/duet-card.entry.js +5 -5
  288. package/lib/esm/duet-checkbox.entry.js +2 -2
  289. package/lib/esm/duet-checkmark.entry.js +4 -4
  290. package/lib/esm/duet-chip.entry.js +3 -3
  291. package/lib/esm/duet-choice_2.entry.js +6 -6
  292. package/lib/esm/duet-collapsible.entry.js +3 -3
  293. package/lib/esm/duet-combobox.entry.js +4 -4
  294. package/lib/esm/duet-contact-card.entry.js +5 -5
  295. package/lib/esm/duet-cookie-consent.entry.js +2 -2
  296. package/lib/esm/duet-date-picker.entry.js +6 -6
  297. package/lib/esm/duet-divider_2.entry.js +5 -5
  298. package/lib/esm/duet-editable-table_3.entry.js +10 -10
  299. package/lib/esm/duet-empty-state.entry.js +2 -2
  300. package/lib/esm/duet-fieldset.entry.js +6 -6
  301. package/lib/esm/duet-file-chooser.entry.js +2 -2
  302. package/lib/esm/duet-footer.entry.js +4 -4
  303. package/lib/esm/duet-grid_2.entry.js +4 -4
  304. package/lib/esm/duet-header_2.entry.js +7 -6
  305. package/lib/esm/duet-hero.entry.js +4 -4
  306. package/lib/esm/duet-icon.entry.js +7 -7
  307. package/lib/esm/duet-input_2.entry.js +8 -8
  308. package/lib/esm/duet-layout.entry.js +2 -2
  309. package/lib/esm/duet-list_2.entry.js +4 -4
  310. package/lib/esm/duet-menu-bar-button.entry.js +4 -4
  311. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +4 -4
  312. package/lib/esm/duet-menu-bar-dropdown.entry.js +6 -6
  313. package/lib/esm/duet-menu-bar-item.entry.js +7 -7
  314. package/lib/esm/duet-menu-bar-link.entry.js +4 -4
  315. package/lib/esm/duet-menu-bar.entry.js +3 -3
  316. package/lib/esm/duet-modal.entry.js +37 -20
  317. package/lib/esm/duet-multiselect.entry.js +5 -5
  318. package/lib/esm/duet-nav.entry.js +3 -3
  319. package/lib/esm/duet-notification_2.entry.js +5 -5
  320. package/lib/esm/duet-number-input.entry.js +14 -9
  321. package/lib/esm/duet-overlay.entry.js +2 -2
  322. package/lib/esm/duet-page-heading.entry.js +4 -4
  323. package/lib/esm/duet-pagination_2.entry.js +7 -7
  324. package/lib/esm/duet-panel.entry.js +51 -0
  325. package/lib/esm/duet-phone-input.entry.js +4 -4
  326. package/lib/esm/duet-popup-menu_2.entry.js +7 -7
  327. package/lib/esm/duet-progress.entry.js +3 -3
  328. package/lib/esm/duet-promo-card.entry.js +7 -7
  329. package/lib/esm/duet-radio_2.entry.js +7 -7
  330. package/lib/esm/duet-range-slider.entry.js +7 -7
  331. package/lib/esm/duet-scrollable_3.entry.js +17 -17
  332. package/lib/esm/duet-section-layout.entry.js +4 -4
  333. package/lib/esm/duet-select.entry.js +9 -9
  334. package/lib/esm/duet-shaped-image.entry.js +4 -4
  335. package/lib/esm/duet-share-chart-item.entry.js +2 -2
  336. package/lib/esm/duet-share-chart.entry.js +8 -8
  337. package/lib/esm/duet-show-more.entry.js +5 -5
  338. package/lib/esm/duet-slideout-lang.entry.js +4 -4
  339. package/lib/esm/duet-slideout-link.entry.js +7 -7
  340. package/lib/esm/duet-slideout-panel-dropdown.entry.js +6 -6
  341. package/lib/esm/duet-slideout-panel.entry.js +13 -13
  342. package/lib/esm/duet-slideout.entry.js +11 -11
  343. package/lib/esm/duet-status-icon.entry.js +3 -3
  344. package/lib/esm/duet-step_2.entry.js +6 -6
  345. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +4 -4
  346. package/lib/esm/duet-submenu-bar-dropdown.entry.js +6 -6
  347. package/lib/esm/duet-submenu-bar-item.entry.js +6 -6
  348. package/lib/esm/duet-submenu-bar-link.entry.js +3 -3
  349. package/lib/esm/duet-submenu-bar.entry.js +7 -7
  350. package/lib/esm/duet-textarea.entry.js +8 -8
  351. package/lib/esm/duet-toggle.entry.js +6 -6
  352. package/lib/esm/duet-toolbar-dropdown-link.entry.js +4 -4
  353. package/lib/esm/duet-toolbar-dropdown.entry.js +6 -6
  354. package/lib/esm/duet-toolbar-item.entry.js +8 -8
  355. package/lib/esm/duet-toolbar-link.entry.js +4 -4
  356. package/lib/esm/duet-toolbar.entry.js +4 -4
  357. package/lib/esm/duet-tooltip-button_2.entry.js +8 -8
  358. package/lib/esm/duet-tooltip.entry.js +4 -4
  359. package/lib/esm/duet-tray.entry.js +6 -6
  360. package/lib/esm/duet-upload-aria-status.entry.js +2 -2
  361. package/lib/esm/duet-upload-item.entry.js +6 -6
  362. package/lib/esm/duet-visually-hidden.entry.js +2 -2
  363. package/lib/esm/duet.js +4 -4
  364. package/lib/esm/{errorcodes.utils-DM0J2eP4.js → errorcodes.utils-Bre55Njd.js} +1 -1
  365. package/lib/esm/{focus-utils-BSQKWOQJ.js → focus-utils-vvgYykmM.js} +1 -1
  366. package/lib/esm/{index-CsVaeVlH.js → index-B_VBeM3r.js} +5 -1
  367. package/lib/esm/{label-J3UGBylH.js → label-l-Eza5H3.js} +1 -1
  368. package/lib/esm/{language-utils-B79DRNQM.js → language-utils-B7PXWqpg.js} +1 -1
  369. package/lib/esm/loader.js +4 -4
  370. package/lib/esm/{slot-utils-DYWEum3Y.js → slot-utils-aDCRCdc4.js} +1 -1
  371. package/lib/esm/{themeable-component-CcmXnsoX.js → themeable-component-DPqozkF4.js} +1 -1
  372. package/lib/esm/{token-utils-orOLyKQw.js → token-utils-BGFYWQ6j.js} +76 -9
  373. package/lib/esm/{tokens.module-D5_4M8f7.js → tokens.module-Z0D6Gy9e.js} +1 -1
  374. package/lib/types/components/duet-modal/duet-modal.d.ts +17 -1
  375. package/lib/types/components/duet-number-input/duet-number-input.d.ts +3 -1
  376. package/lib/types/components/duet-panel/duet-panel.d.ts +47 -0
  377. package/lib/types/components.d.ts +111 -4
  378. package/lib/types/utils/token-utils.d.ts +4 -0
  379. package/lib/types/utils/turva2-color-tokens.d.ts +39 -0
  380. package/package.json +3 -3
  381. package/lib/duet/p-0b358066.entry.js +0 -4
  382. package/lib/duet/p-11a4fb44.entry.js +0 -4
  383. package/lib/duet/p-24d04bd7.entry.js +0 -4
  384. package/lib/duet/p-3d904355.entry.js +0 -4
  385. package/lib/duet/p-3e42346e.entry.js +0 -4
  386. package/lib/duet/p-5c2e03bf.entry.js +0 -4
  387. package/lib/duet/p-70757ffa.entry.js +0 -4
  388. package/lib/duet/p-86669a06.entry.js +0 -4
  389. package/lib/duet/p-933da99a.entry.js +0 -4
  390. package/lib/duet/p-C4JF-vDv.js +0 -4
  391. package/lib/duet/p-DpD8uhf3.js +0 -4
  392. package/lib/duet/p-DyjhCDQL.js +0 -4
  393. package/lib/duet/p-R41sfCqP.js +0 -4
  394. package/lib/duet/p-SyNakUqS.js +0 -4
  395. package/lib/duet/p-aad8dac7.entry.js +0 -4
  396. package/lib/duet/p-abda9682.entry.js +0 -4
  397. package/lib/duet/p-d4a03e18.entry.js +0 -4
  398. package/lib/duet/p-d8b7a8da.entry.js +0 -4
  399. package/lib/duet/p-ee3ca3a8.entry.js +0 -4
  400. package/lib/duet/p-ef3083e7.entry.js +0 -4
  401. package/lib/duet/p-f237085e.entry.js +0 -4
  402. package/lib/duet/p-wJIv584C.js +0 -4
  403. 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: 'fff23e9c9f994ed80cebebdf7bb16d05a0b13281' }, h("div", { key: 'bf9f4a0d164a27073a8f3be2fc14e7f14f39e479', class: { container: true, sticky: this.sticky } }, h("slot", { key: '4fa7cc506db4c4b6fa9ff5219ba7b7e56107a8da' }), h("slot", { key: 'e9e8c0e724f76feb3aa320207f5a3ef7a7ab5ac9', name: "mobile" }), h("slot", { key: '49e37c33533e3ba9c733660c0420d85a3a63e80f', 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: '16098cf5ca86dd0bd72d9429d1e78557246f850b', 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: '440018559e85d3ae11cde70edbaa3848cb453995', ref: element => (this.linkElement = element), href: this.url, target: this.external ? "_blank" : "_self" }, h("div", { key: '6b14d618dda184d06f059b1a3acf99e38e5c17f3', class: "duet-notification-container" }, h("div", { key: 'f65f90dc005eb72c52335cc5c8ca39bffdd88c8a', class: "duet-notification-badge-container" }, this.highlight && (h("div", { key: '7e64283158dd4015c8f676f6ee03efe2cefae043', class: "duet-notification-badge" }, h("duet-visually-hidden", { key: 'c306ae4dc490d35c8aff9259ba3fdf182a5f7e00' }, this.accessibleLabelUnread, ":")))), h("div", { key: '444db9cd85d2dab3181834ba371e1d01f2e6b596', class: "duet-notification-content" }, h("slot", { key: 'efebf98a71ddb109a1bf26729ca0365a624e9f18' })), h("div", { key: 'e9dd7f7817e9e5fd06f38c33225d0821db760cd4', 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: '7580ec6ad47222aa71f87e9b030152fcbc230a6c', 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: '41d70adffe75142d1bb229064c284c6b6ce447e7', class: "background" }, this.theme === "turva" && h("div", { key: '44a17513b00dfec52ee689008fec882a083d467f', class: "background-mask" }), this.theme !== "turva" && h("div", { key: 'd9d50fca7431f9d49058030b51b5548e4db8af04', class: "brand-shape" }), this.theme !== "turva" && h("div", { key: '1b93a6948bf23c1bc9bc7dafa64b6df7eea10a91', class: "brand-shape second-shape" }), this.icon && (h("div", { key: '4007f3e9d29cbfd246dc8ae43074ef7ea53fd694', class: "brand-shaped-icon" }, h("duet-icon", { key: 'efe66977b0559e745a17e6da691f8390af017c56', background: "none", name: this.icon, margin: "none", size: "auto", responsive: false })))), h("div", { key: '50070a51cbd61ddcd380063f9635cfb9edbb8b24', class: "heading" }, h("slot", { key: '1ae7e6e3261bb8dd1104bc47b1b87142a5f1cfdd', name: "heading" }), this.progressCurrentStep && this.progressTotalSteps && (h("div", { key: '01bf2c3472defbd1a7fe6c0af2b9cb4cc99185db' }, h("duet-spacer", { key: '723e327a2c3913b0e130d4326a163e326e57eaf4', size: "large" }), h("div", { key: '0bb28f56e6b92b7990467fcca1a16a0893380ce1', 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
+ }