@duetds/components 6.5.2 → 6.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/hydrate/index.js +227 -30
  2. package/lib/cjs/duet-action-button.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-alert.cjs.entry.js +2 -2
  4. package/lib/cjs/duet-badge.cjs.entry.js +1 -1
  5. package/lib/cjs/duet-breadcrumb.cjs.entry.js +1 -1
  6. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +1 -1
  7. package/lib/cjs/duet-button_2.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-caption_4.cjs.entry.js +4 -2
  9. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  11. package/lib/cjs/duet-checkmark.cjs.entry.js +38 -0
  12. package/lib/cjs/duet-choice_2.cjs.entry.js +8 -2
  13. package/lib/cjs/duet-collapsible.cjs.entry.js +5 -3
  14. package/lib/cjs/duet-combobox.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  17. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-editable-table_3.cjs.entry.js +2 -2
  19. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-icon.cjs.entry.js +4 -2
  26. package/lib/cjs/duet-input_2.cjs.entry.js +15 -3
  27. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  28. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-menu-bar-button.cjs.entry.js +13 -2
  30. package/lib/cjs/duet-menu-bar-dropdown-link.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-menu-bar-dropdown.cjs.entry.js +3 -2
  32. package/lib/cjs/duet-menu-bar-link.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-menu-bar.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  35. package/lib/cjs/duet-multiselect.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-nav.cjs.entry.js +2 -2
  37. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-page-heading.cjs.entry.js +41 -0
  40. package/lib/cjs/duet-pagination_2.cjs.entry.js +11 -5
  41. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  42. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  43. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  44. package/lib/cjs/duet-scrollable_3.cjs.entry.js +33 -7
  45. package/lib/cjs/duet-section-layout.cjs.entry.js +1 -1
  46. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  47. package/lib/cjs/duet-slideout-lang.cjs.entry.js +1 -1
  48. package/lib/cjs/duet-slideout-link.cjs.entry.js +4 -2
  49. package/lib/cjs/duet-slideout-panel-dropdown.cjs.entry.js +1 -1
  50. package/lib/cjs/duet-slideout-panel.cjs.entry.js +16 -5
  51. package/lib/cjs/duet-slideout.cjs.entry.js +3 -3
  52. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  53. package/lib/cjs/duet-submenu-bar-dropdown-link.cjs.entry.js +1 -1
  54. package/lib/cjs/duet-submenu-bar-dropdown.cjs.entry.js +1 -1
  55. package/lib/cjs/duet-submenu-bar-link.cjs.entry.js +1 -1
  56. package/lib/cjs/duet-submenu-bar.cjs.entry.js +1 -1
  57. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  58. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  59. package/lib/cjs/duet-toolbar-dropdown-link.cjs.entry.js +4 -2
  60. package/lib/cjs/duet-toolbar-dropdown.cjs.entry.js +1 -1
  61. package/lib/cjs/duet-toolbar-link.cjs.entry.js +1 -1
  62. package/lib/cjs/duet-toolbar.cjs.entry.js +1 -1
  63. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  64. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  65. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  66. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  67. package/lib/cjs/duet.cjs.js +2 -2
  68. package/lib/cjs/{focus-utils-e463fcd1.js → focus-utils-995144a1.js} +1 -1
  69. package/lib/cjs/{index-d28eaddf.js → index-7924dfe2.js} +1 -1
  70. package/lib/cjs/loader.cjs.js +2 -2
  71. package/lib/collection/collection-manifest.json +2 -0
  72. package/lib/collection/components/duet-alert/duet-alert.css +1 -0
  73. package/lib/collection/components/duet-choice/duet-checkmark.css +74 -0
  74. package/lib/collection/components/duet-choice/duet-checkmark.js +142 -0
  75. package/lib/collection/components/duet-choice/duet-choice.js +22 -0
  76. package/lib/collection/components/duet-collapsible/duet-collapsible.css +6 -1
  77. package/lib/collection/components/duet-collapsible/duet-collapsible.js +7 -2
  78. package/lib/collection/components/duet-icon/duet-icon.css +121 -2
  79. package/lib/collection/components/duet-icon/duet-icon.js +20 -0
  80. package/lib/collection/components/duet-input/duet-input.js +14 -2
  81. package/lib/collection/components/duet-link/duet-link.css +37 -0
  82. package/lib/collection/components/duet-link/duet-link.js +20 -0
  83. package/lib/collection/components/duet-menu-bar-button/duet-menu-bar-button.js +203 -1
  84. package/lib/collection/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.js +19 -1
  85. package/lib/collection/components/duet-nav/duet-nav.js +6 -1
  86. package/lib/collection/components/duet-page-heading/duet-page-heading.css +205 -0
  87. package/lib/collection/components/duet-page-heading/duet-page-heading.js +113 -0
  88. package/lib/collection/components/duet-pagination/duet-pagination.js +10 -4
  89. package/lib/collection/components/duet-slideout/duet-slideout.css +0 -3
  90. package/lib/collection/components/duet-slideout-link/duet-slideout-link.js +38 -1
  91. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.css +1 -8
  92. package/lib/collection/components/duet-slideout-panel/duet-slideout-panel.js +35 -2
  93. package/lib/collection/components/duet-tab/duet-tab.js +18 -0
  94. package/lib/collection/components/duet-tab-group/duet-tab-group.css +140 -0
  95. package/lib/collection/components/duet-tab-group/duet-tab-group.js +31 -6
  96. package/lib/collection/components/duet-table/duet-table.js +1 -1
  97. package/lib/collection/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.js +38 -1
  98. package/lib/dist-custom-elements/duet-action-button.js +1 -1
  99. package/lib/dist-custom-elements/duet-alert.js +1 -1
  100. package/lib/dist-custom-elements/duet-badge.js +1 -1
  101. package/lib/dist-custom-elements/duet-breadcrumb.js +2 -2
  102. package/lib/dist-custom-elements/duet-breadcrumbs.js +2 -2
  103. package/lib/dist-custom-elements/duet-button.js +1 -1
  104. package/lib/dist-custom-elements/duet-caption.js +1 -1
  105. package/lib/dist-custom-elements/duet-card.js +3 -3
  106. package/lib/dist-custom-elements/duet-checkbox.js +1 -1
  107. package/lib/dist-custom-elements/duet-checkmark.d.ts +11 -0
  108. package/lib/dist-custom-elements/duet-checkmark.js +9 -0
  109. package/lib/dist-custom-elements/duet-choice-group.js +6 -6
  110. package/lib/dist-custom-elements/duet-choice.js +13 -6
  111. package/lib/dist-custom-elements/duet-collapsible.js +6 -4
  112. package/lib/dist-custom-elements/duet-combobox.js +2 -2
  113. package/lib/dist-custom-elements/duet-cookie-consent.js +6 -6
  114. package/lib/dist-custom-elements/duet-date-picker.js +10 -10
  115. package/lib/dist-custom-elements/duet-divider.js +1 -1
  116. package/lib/dist-custom-elements/duet-editable-table.js +1 -1
  117. package/lib/dist-custom-elements/duet-empty-state.js +1 -1
  118. package/lib/dist-custom-elements/duet-fieldset.js +1 -1
  119. package/lib/dist-custom-elements/duet-footer.js +4 -4
  120. package/lib/dist-custom-elements/duet-grid-item.js +1 -1
  121. package/lib/dist-custom-elements/duet-grid.js +1 -1
  122. package/lib/dist-custom-elements/duet-header.js +8 -8
  123. package/lib/dist-custom-elements/duet-heading.js +1 -1
  124. package/lib/dist-custom-elements/duet-hero.js +9 -9
  125. package/lib/dist-custom-elements/duet-icon.js +1 -1
  126. package/lib/dist-custom-elements/duet-input.js +1 -1
  127. package/lib/dist-custom-elements/duet-label.js +1 -1
  128. package/lib/dist-custom-elements/duet-layout.js +1 -1
  129. package/lib/dist-custom-elements/duet-link.js +1 -1
  130. package/lib/dist-custom-elements/duet-list-item.js +1 -1
  131. package/lib/dist-custom-elements/duet-list.js +1 -1
  132. package/lib/dist-custom-elements/duet-logo.js +1 -1
  133. package/lib/dist-custom-elements/duet-menu-bar-button.js +25 -3
  134. package/lib/dist-custom-elements/duet-menu-bar-dropdown-link.js +2 -2
  135. package/lib/dist-custom-elements/duet-menu-bar-dropdown.js +5 -3
  136. package/lib/dist-custom-elements/duet-menu-bar-link.js +2 -2
  137. package/lib/dist-custom-elements/duet-menu-bar.js +2 -2
  138. package/lib/dist-custom-elements/duet-modal.js +7 -7
  139. package/lib/dist-custom-elements/duet-multiselect.js +8 -8
  140. package/lib/dist-custom-elements/duet-nav.js +2 -2
  141. package/lib/dist-custom-elements/duet-notification-drawer.js +4 -4
  142. package/lib/dist-custom-elements/duet-notification.js +2 -2
  143. package/lib/dist-custom-elements/duet-number-input.js +9 -9
  144. package/lib/dist-custom-elements/duet-page-heading.d.ts +11 -0
  145. package/lib/dist-custom-elements/duet-page-heading.js +65 -0
  146. package/lib/dist-custom-elements/duet-pagination.js +17 -11
  147. package/lib/dist-custom-elements/duet-paragraph.js +1 -1
  148. package/lib/dist-custom-elements/duet-progress.js +1 -1
  149. package/lib/dist-custom-elements/duet-radio-group.js +6 -6
  150. package/lib/dist-custom-elements/duet-radio.js +1 -1
  151. package/lib/dist-custom-elements/duet-range-slider.js +2 -2
  152. package/lib/dist-custom-elements/duet-range-stepper.js +4 -4
  153. package/lib/dist-custom-elements/duet-scrollable.js +1 -1
  154. package/lib/dist-custom-elements/duet-section-layout.js +1 -1
  155. package/lib/dist-custom-elements/duet-select.js +1 -1
  156. package/lib/dist-custom-elements/duet-slideout-lang.js +3 -3
  157. package/lib/dist-custom-elements/duet-slideout-link.js +7 -3
  158. package/lib/dist-custom-elements/duet-slideout-panel-dropdown.js +2 -2
  159. package/lib/dist-custom-elements/duet-slideout-panel.js +16 -5
  160. package/lib/dist-custom-elements/duet-slideout.js +3 -3
  161. package/lib/dist-custom-elements/duet-spacer.js +1 -1
  162. package/lib/dist-custom-elements/duet-spinner.js +1 -1
  163. package/lib/dist-custom-elements/duet-step.js +4 -4
  164. package/lib/dist-custom-elements/duet-stepper.js +2 -2
  165. package/lib/dist-custom-elements/duet-submenu-bar-dropdown-link.js +2 -2
  166. package/lib/dist-custom-elements/duet-submenu-bar-dropdown.js +2 -2
  167. package/lib/dist-custom-elements/duet-submenu-bar-link.js +2 -2
  168. package/lib/dist-custom-elements/duet-submenu-bar.js +2 -2
  169. package/lib/dist-custom-elements/duet-tab-group.js +46 -15
  170. package/lib/dist-custom-elements/duet-tab.js +3 -1
  171. package/lib/dist-custom-elements/duet-table.js +1 -1
  172. package/lib/dist-custom-elements/duet-textarea.js +8 -8
  173. package/lib/dist-custom-elements/duet-toggle.js +2 -2
  174. package/lib/dist-custom-elements/duet-toolbar-dropdown-link.js +7 -3
  175. package/lib/dist-custom-elements/duet-toolbar-dropdown.js +2 -2
  176. package/lib/dist-custom-elements/duet-toolbar-link.js +2 -2
  177. package/lib/dist-custom-elements/duet-toolbar.js +1 -1
  178. package/lib/dist-custom-elements/duet-tooltip.js +1 -1
  179. package/lib/dist-custom-elements/duet-tray.js +3 -3
  180. package/lib/dist-custom-elements/duet-upload-aria-status.js +1 -1
  181. package/lib/dist-custom-elements/duet-upload.js +18 -18
  182. package/lib/dist-custom-elements/duet-visually-hidden.js +1 -1
  183. package/lib/dist-custom-elements/index.d.ts +2 -0
  184. package/lib/dist-custom-elements/index.js +3 -1
  185. package/lib/dist-custom-elements/{p-68604dde.js → p-090c4f84.js} +1 -1
  186. package/lib/dist-custom-elements/{p-bed64271.js → p-0b3c5fd3.js} +4 -4
  187. package/lib/dist-custom-elements/{p-b93d2f59.js → p-0b46cf7c.js} +1 -1
  188. package/lib/dist-custom-elements/{p-c2cb9c20.js → p-1b40f099.js} +2 -2
  189. package/lib/dist-custom-elements/{p-b0973ee5.js → p-1edc6268.js} +1 -1
  190. package/lib/dist-custom-elements/{p-a515e4af.js → p-25e3ecf6.js} +1 -1
  191. package/lib/dist-custom-elements/{p-f3ac9547.js → p-2bed378b.js} +1 -1
  192. package/lib/dist-custom-elements/{p-9112f395.js → p-2e8d4cbb.js} +3 -3
  193. package/lib/dist-custom-elements/{p-a3dc0179.js → p-31869282.js} +2 -2
  194. package/lib/dist-custom-elements/{p-e4516cf4.js → p-47c90993.js} +1 -1
  195. package/lib/dist-custom-elements/{p-b49b6dfe.js → p-4da5814e.js} +7 -4
  196. package/lib/dist-custom-elements/{p-d2ba9048.js → p-4f601182.js} +2 -2
  197. package/lib/dist-custom-elements/{p-25b67c58.js → p-505b1084.js} +2 -2
  198. package/lib/dist-custom-elements/{p-d7d50d4f.js → p-5243162f.js} +1 -1
  199. package/lib/dist-custom-elements/{p-4cf27349.js → p-58d5e801.js} +1 -1
  200. package/lib/dist-custom-elements/{p-ab0944f2.js → p-5bd12ce0.js} +2 -2
  201. package/lib/dist-custom-elements/{p-4a9c90b4.js → p-62024326.js} +1 -1
  202. package/lib/dist-custom-elements/{p-99260df6.js → p-73fbb616.js} +1 -1
  203. package/lib/dist-custom-elements/{p-dda23bd9.js → p-7cd9c98d.js} +1 -1
  204. package/lib/dist-custom-elements/{p-cae5ee62.js → p-7fdcbaf8.js} +22 -10
  205. package/lib/dist-custom-elements/p-83dc78d3.js +186 -0
  206. package/lib/dist-custom-elements/{p-15968e9a.js → p-94317ac7.js} +1 -1
  207. package/lib/dist-custom-elements/{p-95e95871.js → p-9aaafcd5.js} +6 -6
  208. package/lib/dist-custom-elements/{p-c933203e.js → p-a0db949c.js} +6 -6
  209. package/lib/dist-custom-elements/{p-2646bc44.js → p-c1c93be7.js} +7 -7
  210. package/lib/dist-custom-elements/{p-9e3ea8a4.js → p-c1eea28e.js} +1 -1
  211. package/lib/dist-custom-elements/{p-98ae1730.js → p-d2842398.js} +1 -1
  212. package/lib/dist-custom-elements/{p-8cc35bc1.js → p-dab5118b.js} +1 -1
  213. package/lib/dist-custom-elements/p-db1a354c.js +54 -0
  214. package/lib/dist-custom-elements/{p-a623d58c.js → p-dc195b26.js} +3 -3
  215. package/lib/dist-custom-elements/{p-b80f18af.js → p-ee73ac71.js} +1 -1
  216. package/lib/dist-custom-elements/{p-43343a18.js → p-f3d819f9.js} +2 -2
  217. package/lib/duet/duet.esm.js +1 -1
  218. package/lib/duet/duet.js +1 -1
  219. package/lib/duet/p-0ae5fcca.entry.js +4 -0
  220. package/lib/duet/{p-1bb2ca48.system.entry.js → p-0f74b52f.system.entry.js} +1 -1
  221. package/lib/duet/{p-e5b23434.system.entry.js → p-1153165c.system.entry.js} +1 -1
  222. package/lib/duet/{p-03c19b62.system.entry.js → p-123a086a.system.entry.js} +1 -1
  223. package/lib/duet/{p-3cc241bf.entry.js → p-13177687.entry.js} +1 -1
  224. package/lib/duet/{p-67718cc3.entry.js → p-1490ab5a.entry.js} +1 -1
  225. package/lib/duet/{p-6869a12b.system.entry.js → p-16172210.system.entry.js} +1 -1
  226. package/lib/duet/p-1908e8bc.system.entry.js +4 -0
  227. package/lib/duet/{p-8d8d820a.entry.js → p-1bf30e42.entry.js} +1 -1
  228. package/lib/duet/{p-29749e15.system.entry.js → p-1ff8518c.system.entry.js} +1 -1
  229. package/lib/duet/{p-ec8178ca.system.entry.js → p-20e0e96a.system.entry.js} +1 -1
  230. package/lib/duet/{p-b9e81db8.entry.js → p-21a8e0eb.entry.js} +1 -1
  231. package/lib/duet/{p-186a18d8.entry.js → p-221ca56a.entry.js} +1 -1
  232. package/lib/duet/{p-00fd4357.entry.js → p-22d0724c.entry.js} +1 -1
  233. package/lib/duet/p-23a53ae7.entry.js +4 -0
  234. package/lib/duet/{p-98542cf6.entry.js → p-24179e4c.entry.js} +1 -1
  235. package/lib/duet/p-28fc49de.js +4 -0
  236. package/lib/duet/{p-c606f454.entry.js → p-2a48131b.entry.js} +1 -1
  237. package/lib/duet/{p-eaae6b36.system.js → p-2a7f92fa.system.js} +1 -1
  238. package/lib/duet/{p-8422b441.entry.js → p-2cd36122.entry.js} +1 -1
  239. package/lib/duet/{p-8f6a5e2c.system.entry.js → p-2dc966c6.system.entry.js} +1 -1
  240. package/lib/duet/p-31497c7f.entry.js +4 -0
  241. package/lib/duet/p-32b5532c.entry.js +4 -0
  242. package/lib/duet/{p-4649ec1d.entry.js → p-36aed263.entry.js} +1 -1
  243. package/lib/duet/{p-e57b9976.entry.js → p-36b14352.entry.js} +1 -1
  244. package/lib/duet/{p-c53f21c9.system.entry.js → p-3a44e66a.system.entry.js} +1 -1
  245. package/lib/duet/{p-491611e0.system.entry.js → p-3ae2bc39.system.entry.js} +1 -1
  246. package/lib/duet/{p-0eceb1fe.entry.js → p-3c5b1adb.entry.js} +1 -1
  247. package/lib/duet/{p-990418d6.entry.js → p-3cb7c2b8.entry.js} +1 -1
  248. package/lib/duet/{p-4544887e.system.entry.js → p-3d2a830f.system.entry.js} +1 -1
  249. package/lib/duet/{p-1aa70bf3.entry.js → p-3d82f269.entry.js} +1 -1
  250. package/lib/duet/p-3e0a6231.system.entry.js +4 -0
  251. package/lib/duet/p-3fb428e9.system.entry.js +4 -0
  252. package/lib/duet/{p-d567cab7.system.entry.js → p-4578d79a.system.entry.js} +1 -1
  253. package/lib/duet/{p-9864f91b.system.entry.js → p-45f6cac0.system.entry.js} +1 -1
  254. package/lib/duet/p-49bc849e.system.entry.js +4 -0
  255. package/lib/duet/{p-5a72573d.entry.js → p-4bb30628.entry.js} +1 -1
  256. package/lib/duet/{p-f82d3ee5.system.entry.js → p-4eda4e90.system.entry.js} +1 -1
  257. package/lib/duet/{p-63c45943.system.entry.js → p-4fdb8a65.system.entry.js} +1 -1
  258. package/lib/duet/{p-a8f0d3a9.entry.js → p-533787dd.entry.js} +1 -1
  259. package/lib/duet/{p-3b941474.system.entry.js → p-53ca7657.system.entry.js} +1 -1
  260. package/lib/duet/{p-2089a333.system.entry.js → p-53fb3b65.system.entry.js} +1 -1
  261. package/lib/duet/p-5710f613.entry.js +4 -0
  262. package/lib/duet/{p-867d4e87.system.entry.js → p-58c3a641.system.entry.js} +1 -1
  263. package/lib/duet/{p-9335c92f.entry.js → p-59bb59f1.entry.js} +1 -1
  264. package/lib/duet/{p-ba29d84e.entry.js → p-5f10cf32.entry.js} +1 -1
  265. package/lib/duet/{p-ce8d53d6.system.entry.js → p-5f1ed8ac.system.entry.js} +1 -1
  266. package/lib/duet/{p-45970c94.entry.js → p-5fac76f8.entry.js} +1 -1
  267. package/lib/duet/{p-edbf0850.system.entry.js → p-63913eab.system.entry.js} +1 -1
  268. package/lib/duet/{p-6cc4b6bd.system.entry.js → p-6973b44c.system.entry.js} +1 -1
  269. package/lib/duet/{p-732b050a.entry.js → p-6be424b0.entry.js} +1 -1
  270. package/lib/duet/{p-576b1a97.system.entry.js → p-6cdea556.system.entry.js} +1 -1
  271. package/lib/duet/{p-ae69645e.system.entry.js → p-6cf47dac.system.entry.js} +1 -1
  272. package/lib/duet/{p-1da6954c.js → p-707fc6cf.js} +1 -1
  273. package/lib/duet/{p-076d8525.system.entry.js → p-7090f15a.system.entry.js} +1 -1
  274. package/lib/duet/{p-964c9e93.system.entry.js → p-711fb114.system.entry.js} +1 -1
  275. package/lib/duet/p-714c2b56.entry.js +4 -0
  276. package/lib/duet/{p-8f72abcb.entry.js → p-72d7785c.entry.js} +1 -1
  277. package/lib/duet/{p-90e005cc.entry.js → p-7420063a.entry.js} +1 -1
  278. package/lib/duet/p-75019a0f.entry.js +4 -0
  279. package/lib/duet/p-7526cac0.system.js +4 -0
  280. package/lib/duet/{p-55ec59ba.system.entry.js → p-75817145.system.entry.js} +1 -1
  281. package/lib/duet/{p-ed67528b.system.entry.js → p-75c291a0.system.entry.js} +1 -1
  282. package/lib/duet/{p-8ebf07a2.entry.js → p-76669675.entry.js} +1 -1
  283. package/lib/duet/{p-6181ec36.entry.js → p-78bdcfdd.entry.js} +1 -1
  284. package/lib/duet/{p-6c473cbf.system.entry.js → p-7f52cc01.system.entry.js} +1 -1
  285. package/lib/duet/{p-e91b40e2.system.entry.js → p-80515ee1.system.entry.js} +1 -1
  286. package/lib/duet/{p-bcd2526b.system.entry.js → p-8143f9b5.system.entry.js} +1 -1
  287. package/lib/duet/p-8280a9fe.entry.js +4 -0
  288. package/lib/duet/{p-3669cb32.entry.js → p-84327fb5.entry.js} +1 -1
  289. package/lib/duet/{p-cd5055a1.system.entry.js → p-8dad489b.system.entry.js} +1 -1
  290. package/lib/duet/{p-2be1feb2.system.entry.js → p-8ffe50ff.system.entry.js} +1 -1
  291. package/lib/duet/{p-ff76aad3.entry.js → p-91203227.entry.js} +1 -1
  292. package/lib/duet/{p-c5b583e5.entry.js → p-934dc718.entry.js} +1 -1
  293. package/lib/duet/p-95c34866.system.entry.js +4 -0
  294. package/lib/duet/p-96f06f5b.entry.js +4 -0
  295. package/lib/duet/{p-8d019ca0.system.entry.js → p-9807e8a6.system.entry.js} +1 -1
  296. package/lib/duet/{p-8fcb7700.entry.js → p-9933a4cd.entry.js} +1 -1
  297. package/lib/duet/{p-d6f2d26c.entry.js → p-9b4aec27.entry.js} +1 -1
  298. package/lib/duet/p-9e24f4b5.entry.js +4 -0
  299. package/lib/duet/{p-a92b5519.entry.js → p-9ebaf967.entry.js} +1 -1
  300. package/lib/duet/{p-b3a0b737.entry.js → p-a14705b2.entry.js} +1 -1
  301. package/lib/duet/p-a1f24860.entry.js +4 -0
  302. package/lib/duet/{p-2c6c9c16.entry.js → p-a302c770.entry.js} +1 -1
  303. package/lib/duet/{p-c9e2607d.entry.js → p-a46504b6.entry.js} +1 -1
  304. package/lib/duet/{p-13d603f4.system.entry.js → p-a4c9a9ad.system.entry.js} +1 -1
  305. package/lib/duet/{p-7034d814.entry.js → p-a563600c.entry.js} +1 -1
  306. package/lib/duet/{p-a198ec6f.entry.js → p-a69cbaf1.entry.js} +1 -1
  307. package/lib/duet/{p-35206dee.system.entry.js → p-a7886157.system.entry.js} +1 -1
  308. package/lib/duet/{p-351daa15.entry.js → p-a9bbe66f.entry.js} +1 -1
  309. package/lib/duet/p-aa2ce92b.system.entry.js +4 -0
  310. package/lib/duet/{p-e27c8c99.entry.js → p-ad35ad40.entry.js} +1 -1
  311. package/lib/duet/p-b33f7ad2.entry.js +4 -0
  312. package/lib/duet/p-b5ff7b05.system.entry.js +4 -0
  313. package/lib/duet/{p-2db45e2b.system.entry.js → p-b6a10dd8.system.entry.js} +1 -1
  314. package/lib/duet/{p-433565c9.entry.js → p-b883c31c.entry.js} +1 -1
  315. package/lib/duet/{p-945de64d.system.entry.js → p-b9c37a63.system.entry.js} +1 -1
  316. package/lib/duet/{p-d032551e.entry.js → p-bbe654c7.entry.js} +1 -1
  317. package/lib/duet/p-bcbfe8f2.entry.js +4 -0
  318. package/lib/duet/{p-5ec2343b.system.entry.js → p-c0b2021e.system.entry.js} +1 -1
  319. package/lib/duet/{p-da79ce12.entry.js → p-c0de302a.entry.js} +1 -1
  320. package/lib/duet/{p-eacc99e2.system.entry.js → p-c0f70bd0.system.entry.js} +1 -1
  321. package/lib/duet/p-c1f19d12.entry.js +4 -0
  322. package/lib/duet/{p-584a9687.system.entry.js → p-c3604035.system.entry.js} +1 -1
  323. package/lib/duet/{p-6b6fd2dd.system.entry.js → p-c3d3e73a.system.entry.js} +1 -1
  324. package/lib/duet/{p-8ed60a7f.system.entry.js → p-c5559214.system.entry.js} +1 -1
  325. package/lib/duet/{p-94fca55e.system.js → p-c6acd578.system.js} +1 -1
  326. package/lib/duet/{p-111f753f.system.entry.js → p-c7201ad9.system.entry.js} +1 -1
  327. package/lib/duet/{p-70b6d01c.system.entry.js → p-c816445d.system.entry.js} +1 -1
  328. package/lib/duet/{p-5f4090c2.entry.js → p-c996eaa2.entry.js} +1 -1
  329. package/lib/duet/{p-f3a000ac.entry.js → p-c9defd29.entry.js} +1 -1
  330. package/lib/duet/{p-50827bbe.system.entry.js → p-ce1551ed.system.entry.js} +1 -1
  331. package/lib/duet/{p-41bc24a5.entry.js → p-ce2d5f1f.entry.js} +1 -1
  332. package/lib/duet/{p-54a98fee.system.entry.js → p-ce4d2c6a.system.entry.js} +1 -1
  333. package/lib/duet/{p-10bb0906.entry.js → p-d0516946.entry.js} +1 -1
  334. package/lib/duet/p-d547f6fe.system.entry.js +4 -0
  335. package/lib/duet/{p-7309e6ea.system.entry.js → p-d60301f1.system.entry.js} +1 -1
  336. package/lib/duet/{p-f5bf2165.entry.js → p-deaf017e.entry.js} +1 -1
  337. package/lib/duet/{p-3295c503.system.entry.js → p-df736b00.system.entry.js} +1 -1
  338. package/lib/duet/p-e272e778.system.entry.js +4 -0
  339. package/lib/duet/{p-15529d9c.system.entry.js → p-e5762e3e.system.entry.js} +2 -2
  340. package/lib/duet/p-ea3468e2.system.entry.js +4 -0
  341. package/lib/duet/{p-b277f3c9.entry.js → p-ea80c358.entry.js} +1 -1
  342. package/lib/duet/{p-074fa88a.system.entry.js → p-ecaf90fd.system.entry.js} +1 -1
  343. package/lib/duet/{p-aeacd894.system.entry.js → p-ecf5724b.system.entry.js} +1 -1
  344. package/lib/duet/{p-e06581ab.system.entry.js → p-edc1fa35.system.entry.js} +1 -1
  345. package/lib/duet/{p-357f64e4.system.entry.js → p-ef076528.system.entry.js} +1 -1
  346. package/lib/duet/{p-f692b21a.system.entry.js → p-ef76d461.system.entry.js} +1 -1
  347. package/lib/duet/{p-805c34c6.entry.js → p-f02d7e7d.entry.js} +1 -1
  348. package/lib/duet/{p-da8b3bee.entry.js → p-f1a7e606.entry.js} +1 -1
  349. package/lib/duet/p-f34f65af.entry.js +4 -0
  350. package/lib/duet/{p-172bc679.entry.js → p-f8a68dfd.entry.js} +1 -1
  351. package/lib/duet/{p-7ce5f24c.system.entry.js → p-fc98f0fe.system.entry.js} +1 -1
  352. package/lib/duet/{p-dc282755.entry.js → p-fcbdd6a3.entry.js} +1 -1
  353. package/lib/duet/{p-97e2494e.system.entry.js → p-feaa6888.system.entry.js} +1 -1
  354. package/lib/esm/duet-action-button.entry.js +1 -1
  355. package/lib/esm/duet-alert.entry.js +2 -2
  356. package/lib/esm/duet-badge.entry.js +1 -1
  357. package/lib/esm/duet-breadcrumb.entry.js +1 -1
  358. package/lib/esm/duet-breadcrumbs.entry.js +1 -1
  359. package/lib/esm/duet-button_2.entry.js +1 -1
  360. package/lib/esm/duet-caption_4.entry.js +4 -2
  361. package/lib/esm/duet-card.entry.js +1 -1
  362. package/lib/esm/duet-checkbox.entry.js +1 -1
  363. package/lib/esm/duet-checkmark.entry.js +34 -0
  364. package/lib/esm/duet-choice_2.entry.js +8 -2
  365. package/lib/esm/duet-collapsible.entry.js +5 -3
  366. package/lib/esm/duet-combobox.entry.js +1 -1
  367. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  368. package/lib/esm/duet-date-picker.entry.js +2 -2
  369. package/lib/esm/duet-divider_2.entry.js +1 -1
  370. package/lib/esm/duet-editable-table_3.entry.js +2 -2
  371. package/lib/esm/duet-empty-state.entry.js +1 -1
  372. package/lib/esm/duet-fieldset.entry.js +1 -1
  373. package/lib/esm/duet-footer.entry.js +1 -1
  374. package/lib/esm/duet-grid_2.entry.js +1 -1
  375. package/lib/esm/duet-header_2.entry.js +1 -1
  376. package/lib/esm/duet-hero.entry.js +1 -1
  377. package/lib/esm/duet-icon.entry.js +4 -2
  378. package/lib/esm/duet-input_2.entry.js +15 -3
  379. package/lib/esm/duet-layout.entry.js +1 -1
  380. package/lib/esm/duet-list_2.entry.js +1 -1
  381. package/lib/esm/duet-menu-bar-button.entry.js +13 -2
  382. package/lib/esm/duet-menu-bar-dropdown-link.entry.js +1 -1
  383. package/lib/esm/duet-menu-bar-dropdown.entry.js +3 -2
  384. package/lib/esm/duet-menu-bar-link.entry.js +1 -1
  385. package/lib/esm/duet-menu-bar.entry.js +1 -1
  386. package/lib/esm/duet-modal.entry.js +2 -2
  387. package/lib/esm/duet-multiselect.entry.js +1 -1
  388. package/lib/esm/duet-nav.entry.js +2 -2
  389. package/lib/esm/duet-notification_2.entry.js +1 -1
  390. package/lib/esm/duet-number-input.entry.js +1 -1
  391. package/lib/esm/duet-page-heading.entry.js +37 -0
  392. package/lib/esm/duet-pagination_2.entry.js +11 -5
  393. package/lib/esm/duet-progress.entry.js +1 -1
  394. package/lib/esm/duet-radio_2.entry.js +1 -1
  395. package/lib/esm/duet-range-slider.entry.js +1 -1
  396. package/lib/esm/duet-scrollable_3.entry.js +33 -7
  397. package/lib/esm/duet-section-layout.entry.js +1 -1
  398. package/lib/esm/duet-select.entry.js +1 -1
  399. package/lib/esm/duet-slideout-lang.entry.js +1 -1
  400. package/lib/esm/duet-slideout-link.entry.js +4 -2
  401. package/lib/esm/duet-slideout-panel-dropdown.entry.js +1 -1
  402. package/lib/esm/duet-slideout-panel.entry.js +16 -5
  403. package/lib/esm/duet-slideout.entry.js +3 -3
  404. package/lib/esm/duet-step_2.entry.js +1 -1
  405. package/lib/esm/duet-submenu-bar-dropdown-link.entry.js +1 -1
  406. package/lib/esm/duet-submenu-bar-dropdown.entry.js +1 -1
  407. package/lib/esm/duet-submenu-bar-link.entry.js +1 -1
  408. package/lib/esm/duet-submenu-bar.entry.js +1 -1
  409. package/lib/esm/duet-textarea.entry.js +1 -1
  410. package/lib/esm/duet-toggle.entry.js +1 -1
  411. package/lib/esm/duet-toolbar-dropdown-link.entry.js +4 -2
  412. package/lib/esm/duet-toolbar-dropdown.entry.js +1 -1
  413. package/lib/esm/duet-toolbar-link.entry.js +1 -1
  414. package/lib/esm/duet-toolbar.entry.js +1 -1
  415. package/lib/esm/duet-tooltip.entry.js +1 -1
  416. package/lib/esm/duet-tray.entry.js +1 -1
  417. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  418. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  419. package/lib/esm/duet.js +2 -2
  420. package/lib/esm/{focus-utils-1131b2e1.js → focus-utils-0619fdea.js} +1 -1
  421. package/lib/esm/{index-0d301ddd.js → index-11a2e0a0.js} +1 -1
  422. package/lib/esm/loader.js +2 -2
  423. package/lib/esm-es5/duet-action-button.entry.js +1 -1
  424. package/lib/esm-es5/duet-alert.entry.js +1 -1
  425. package/lib/esm-es5/duet-badge.entry.js +1 -1
  426. package/lib/esm-es5/duet-breadcrumb.entry.js +1 -1
  427. package/lib/esm-es5/duet-breadcrumbs.entry.js +1 -1
  428. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  429. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  430. package/lib/esm-es5/duet-card.entry.js +1 -1
  431. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  432. package/lib/esm-es5/duet-checkmark.entry.js +4 -0
  433. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  434. package/lib/esm-es5/duet-collapsible.entry.js +2 -2
  435. package/lib/esm-es5/duet-combobox.entry.js +1 -1
  436. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  437. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  438. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  439. package/lib/esm-es5/duet-editable-table_3.entry.js +1 -1
  440. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  441. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  442. package/lib/esm-es5/duet-footer.entry.js +1 -1
  443. package/lib/esm-es5/duet-grid_2.entry.js +2 -2
  444. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  445. package/lib/esm-es5/duet-hero.entry.js +1 -1
  446. package/lib/esm-es5/duet-icon.entry.js +2 -2
  447. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  448. package/lib/esm-es5/duet-layout.entry.js +1 -1
  449. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  450. package/lib/esm-es5/duet-menu-bar-button.entry.js +2 -2
  451. package/lib/esm-es5/duet-menu-bar-dropdown-link.entry.js +1 -1
  452. package/lib/esm-es5/duet-menu-bar-dropdown.entry.js +1 -1
  453. package/lib/esm-es5/duet-menu-bar-link.entry.js +1 -1
  454. package/lib/esm-es5/duet-menu-bar.entry.js +1 -1
  455. package/lib/esm-es5/duet-modal.entry.js +2 -2
  456. package/lib/esm-es5/duet-multiselect.entry.js +2 -2
  457. package/lib/esm-es5/duet-nav.entry.js +1 -1
  458. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  459. package/lib/esm-es5/duet-number-input.entry.js +2 -2
  460. package/lib/esm-es5/duet-page-heading.entry.js +4 -0
  461. package/lib/esm-es5/duet-pagination_2.entry.js +1 -1
  462. package/lib/esm-es5/duet-progress.entry.js +1 -1
  463. package/lib/esm-es5/duet-radio_2.entry.js +2 -2
  464. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  465. package/lib/esm-es5/duet-scrollable_3.entry.js +2 -2
  466. package/lib/esm-es5/duet-section-layout.entry.js +1 -1
  467. package/lib/esm-es5/duet-select.entry.js +1 -1
  468. package/lib/esm-es5/duet-slideout-lang.entry.js +1 -1
  469. package/lib/esm-es5/duet-slideout-link.entry.js +1 -1
  470. package/lib/esm-es5/duet-slideout-panel-dropdown.entry.js +1 -1
  471. package/lib/esm-es5/duet-slideout-panel.entry.js +1 -1
  472. package/lib/esm-es5/duet-slideout.entry.js +1 -1
  473. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  474. package/lib/esm-es5/duet-submenu-bar-dropdown-link.entry.js +1 -1
  475. package/lib/esm-es5/duet-submenu-bar-dropdown.entry.js +1 -1
  476. package/lib/esm-es5/duet-submenu-bar-link.entry.js +1 -1
  477. package/lib/esm-es5/duet-submenu-bar.entry.js +1 -1
  478. package/lib/esm-es5/duet-textarea.entry.js +2 -2
  479. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  480. package/lib/esm-es5/duet-toolbar-dropdown-link.entry.js +1 -1
  481. package/lib/esm-es5/duet-toolbar-dropdown.entry.js +1 -1
  482. package/lib/esm-es5/duet-toolbar-link.entry.js +1 -1
  483. package/lib/esm-es5/duet-toolbar.entry.js +1 -1
  484. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  485. package/lib/esm-es5/duet-tray.entry.js +1 -1
  486. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  487. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  488. package/lib/esm-es5/duet.js +1 -1
  489. package/lib/esm-es5/focus-utils-0619fdea.js +4 -0
  490. package/lib/esm-es5/{index-0d301ddd.js → index-11a2e0a0.js} +1 -1
  491. package/lib/esm-es5/loader.js +1 -1
  492. package/lib/types/components/duet-choice/duet-checkmark.d.ts +34 -0
  493. package/lib/types/components/duet-choice/duet-choice.d.ts +4 -0
  494. package/lib/types/components/duet-collapsible/duet-collapsible.d.ts +2 -0
  495. package/lib/types/components/duet-icon/duet-icon.d.ts +4 -0
  496. package/lib/types/components/duet-input/duet-input.d.ts +1 -0
  497. package/lib/types/components/duet-link/duet-link.d.ts +4 -0
  498. package/lib/types/components/duet-menu-bar-button/duet-menu-bar-button.d.ts +51 -1
  499. package/lib/types/components/duet-menu-bar-dropdown/duet-menu-bar-dropdown.d.ts +6 -0
  500. package/lib/types/components/duet-nav/duet-nav.d.ts +5 -0
  501. package/lib/types/components/duet-page-heading/duet-page-heading.d.ts +32 -0
  502. package/lib/types/components/duet-slideout-link/duet-slideout-link.d.ts +10 -0
  503. package/lib/types/components/duet-slideout-panel/duet-slideout-panel.d.ts +5 -1
  504. package/lib/types/components/duet-tab/duet-tab.d.ts +4 -0
  505. package/lib/types/components/duet-tab-group/duet-tab-group.d.ts +4 -1
  506. package/lib/types/components/duet-toolbar-dropdown-link/duet-toolbar-dropdown-link.d.ts +10 -0
  507. package/lib/types/components.d.ts +256 -1
  508. package/package.json +5 -5
  509. package/lib/dist-custom-elements/p-246bd550.js +0 -183
  510. package/lib/duet/p-172ff1de.system.entry.js +0 -4
  511. package/lib/duet/p-28280afb.system.js +0 -4
  512. package/lib/duet/p-337d152b.entry.js +0 -4
  513. package/lib/duet/p-385d60a2.entry.js +0 -4
  514. package/lib/duet/p-3a31f9c0.system.entry.js +0 -4
  515. package/lib/duet/p-3d53ec4a.system.entry.js +0 -4
  516. package/lib/duet/p-5687713d.js +0 -4
  517. package/lib/duet/p-57d581a0.entry.js +0 -4
  518. package/lib/duet/p-5cc1dae6.entry.js +0 -4
  519. package/lib/duet/p-5d6e4a9e.system.entry.js +0 -4
  520. package/lib/duet/p-7d6d0a89.system.entry.js +0 -4
  521. package/lib/duet/p-83b45db7.system.entry.js +0 -4
  522. package/lib/duet/p-87ffe2f3.entry.js +0 -4
  523. package/lib/duet/p-90c2dd61.entry.js +0 -4
  524. package/lib/duet/p-90f46d58.entry.js +0 -4
  525. package/lib/duet/p-bcb088de.entry.js +0 -4
  526. package/lib/duet/p-c485773b.entry.js +0 -4
  527. package/lib/duet/p-c5d9ca19.entry.js +0 -4
  528. package/lib/duet/p-dd383dac.entry.js +0 -4
  529. package/lib/duet/p-de97a5a0.system.entry.js +0 -4
  530. package/lib/duet/p-e800bb84.entry.js +0 -4
  531. package/lib/duet/p-f51f0dae.entry.js +0 -4
  532. package/lib/duet/p-f7a9305b.system.entry.js +0 -4
  533. package/lib/esm-es5/focus-utils-1131b2e1.js +0 -4
@@ -50,6 +50,7 @@
50
50
  "./components/duet-badge/duet-badge.js",
51
51
  "./components/duet-breadcrumbs/duet-breadcrumb.js",
52
52
  "./components/duet-breadcrumbs/duet-breadcrumbs.js",
53
+ "./components/duet-choice/duet-checkmark.js",
53
54
  "./components/duet-choice-group/duet-choice-group.js",
54
55
  "./components/duet-fieldset/duet-fieldset.js",
55
56
  "./components/duet-grid-item/duet-grid-item.js",
@@ -62,6 +63,7 @@
62
63
  "./components/duet-menu-bar-link/duet-menu-bar-link.js",
63
64
  "./components/duet-nav/duet-nav.js",
64
65
  "./components/duet-notification/duet-notification.js",
66
+ "./components/duet-page-heading/duet-page-heading.js",
65
67
  "./components/duet-progress/duet-progress.js",
66
68
  "./components/duet-radio-group/duet-radio-group.js",
67
69
  "./components/duet-scrollable/duet-scrollable.js",
@@ -42,6 +42,7 @@
42
42
 
43
43
  :host(.duet-alert-is-dismissed) {
44
44
  max-height: 0;
45
+ overflow: hidden;
45
46
  visibility: hidden;
46
47
  opacity: 0;
47
48
  transform: scale(0.98);
@@ -0,0 +1,74 @@
1
+ .duet-checkmark-container {
2
+ position: relative;
3
+ width: 20px;
4
+ height: 20px;
5
+ margin-left: auto;
6
+ border: 1px solid #909599;
7
+ border-radius: 4px;
8
+ transition: border 300ms ease;
9
+ }
10
+ .duet-checkmark-container.center {
11
+ margin-right: auto;
12
+ }
13
+ .duet-theme-turva .duet-checkmark-container {
14
+ border-color: #747475;
15
+ }
16
+ .checked .duet-checkmark-container {
17
+ background: #0077b3;
18
+ border-color: #0077b3;
19
+ transition: none;
20
+ }
21
+ .duet-theme-turva .checked .duet-checkmark-container {
22
+ background: #171c3a;
23
+ border-color: #171c3a !important;
24
+ }
25
+ .duet-checkmark-container.duet-checkmark-radio {
26
+ border-radius: 50%;
27
+ }
28
+ [disabled] + label .duet-checkmark-container {
29
+ border-color: #cfd2d4 !important;
30
+ }
31
+ .duet-theme-turva [disabled] + label .duet-checkmark-container {
32
+ border-color: #cfcfd1 !important;
33
+ }
34
+ .checked [disabled] + label .duet-checkmark-container {
35
+ background: #cfd2d4 !important;
36
+ }
37
+ .duet-theme-turva .checked [disabled] + label .duet-checkmark-container {
38
+ background: #cfcfd1 !important;
39
+ }
40
+
41
+ .duet-checkmark {
42
+ position: absolute;
43
+ top: 10px;
44
+ left: 3px;
45
+ width: 5.3333333333px;
46
+ height: 11.8518518519px;
47
+ border-top: 2px solid white;
48
+ border-right: 2px solid white;
49
+ opacity: 1;
50
+ transform: scaleX(-1) rotate(135deg) translateZ(0);
51
+ transform-origin: left top;
52
+ animation-name: duet-checkmark;
53
+ animation-duration: 600ms;
54
+ animation-timing-function: ease-out;
55
+ animation-fill-mode: forwards;
56
+ }
57
+
58
+ @keyframes duet-checkmark {
59
+ 0% {
60
+ width: 0;
61
+ height: 0;
62
+ opacity: 1;
63
+ }
64
+ 20% {
65
+ width: 5.3333333333px;
66
+ height: 0;
67
+ opacity: 1;
68
+ }
69
+ 40%, 100% {
70
+ width: 5.3333333333px;
71
+ height: 11.8518518519px;
72
+ opacity: 1;
73
+ }
74
+ }
@@ -0,0 +1,142 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { h, Host } from "@stencil/core";
5
+ import { inheritGlobalTheme } from "../../common";
6
+ export class DuetCheckmark {
7
+ constructor() {
8
+ this.theme = "";
9
+ this.checked = false;
10
+ this.presentationOnly = false;
11
+ this.center = false;
12
+ this.type = "checkbox";
13
+ }
14
+ /**
15
+ * Component lifecycle events.
16
+ */
17
+ componentWillLoad() {
18
+ inheritGlobalTheme(this);
19
+ }
20
+ render() {
21
+ return (h(Host, { class: { "duet-theme-turva": this.theme === "turva" } }, h("div", { role: this.presentationOnly ? "presentation" : null, class: { checked: this.checked } }, h("div", { class: {
22
+ "duet-checkmark-container": true,
23
+ center: this.center,
24
+ "duet-checkmark-radio": this.type === "radio",
25
+ } }, this.checked && h("div", { class: "duet-checkmark" })))));
26
+ }
27
+ static get is() { return "duet-checkmark"; }
28
+ static get originalStyleUrls() {
29
+ return {
30
+ "$": ["duet-checkmark.scss"]
31
+ };
32
+ }
33
+ static get styleUrls() {
34
+ return {
35
+ "$": ["duet-checkmark.css"]
36
+ };
37
+ }
38
+ static get properties() {
39
+ return {
40
+ "theme": {
41
+ "type": "string",
42
+ "mutable": true,
43
+ "complexType": {
44
+ "original": "DuetTheme",
45
+ "resolved": "\"\" | \"default\" | \"turva\"",
46
+ "references": {
47
+ "DuetTheme": {
48
+ "location": "import",
49
+ "path": "../../common-types"
50
+ }
51
+ }
52
+ },
53
+ "required": false,
54
+ "optional": false,
55
+ "docs": {
56
+ "tags": [],
57
+ "text": "Theme"
58
+ },
59
+ "attribute": "theme",
60
+ "reflect": false,
61
+ "defaultValue": "\"\""
62
+ },
63
+ "checked": {
64
+ "type": "boolean",
65
+ "mutable": true,
66
+ "complexType": {
67
+ "original": "boolean",
68
+ "resolved": "boolean",
69
+ "references": {}
70
+ },
71
+ "required": false,
72
+ "optional": false,
73
+ "docs": {
74
+ "tags": [],
75
+ "text": "Checked"
76
+ },
77
+ "attribute": "checked",
78
+ "reflect": false,
79
+ "defaultValue": "false"
80
+ },
81
+ "presentationOnly": {
82
+ "type": "boolean",
83
+ "mutable": false,
84
+ "complexType": {
85
+ "original": "boolean",
86
+ "resolved": "boolean",
87
+ "references": {}
88
+ },
89
+ "required": false,
90
+ "optional": false,
91
+ "docs": {
92
+ "tags": [],
93
+ "text": "Checked"
94
+ },
95
+ "attribute": "presentation-only",
96
+ "reflect": false,
97
+ "defaultValue": "false"
98
+ },
99
+ "center": {
100
+ "type": "boolean",
101
+ "mutable": false,
102
+ "complexType": {
103
+ "original": "boolean",
104
+ "resolved": "boolean",
105
+ "references": {}
106
+ },
107
+ "required": false,
108
+ "optional": false,
109
+ "docs": {
110
+ "tags": [],
111
+ "text": "Checked"
112
+ },
113
+ "attribute": "center",
114
+ "reflect": false,
115
+ "defaultValue": "false"
116
+ },
117
+ "type": {
118
+ "type": "string",
119
+ "mutable": false,
120
+ "complexType": {
121
+ "original": "DuetChoiceType",
122
+ "resolved": "\"checkbox\" | \"radio\"",
123
+ "references": {
124
+ "DuetChoiceType": {
125
+ "location": "import",
126
+ "path": "./duet-choice"
127
+ }
128
+ }
129
+ },
130
+ "required": false,
131
+ "optional": false,
132
+ "docs": {
133
+ "tags": [],
134
+ "text": "Type"
135
+ },
136
+ "attribute": "type",
137
+ "reflect": true,
138
+ "defaultValue": "\"checkbox\""
139
+ }
140
+ };
141
+ }
142
+ }
@@ -174,6 +174,12 @@ export class DuetChoice {
174
174
  async setFocus(options) {
175
175
  this.nativeInput.focus(options);
176
176
  }
177
+ /**
178
+ * This method toggles the info section.
179
+ */
180
+ async toggleInfoMethod() {
181
+ this.isInfoOpen = !this.isInfoOpen;
182
+ }
177
183
  getAriaDescribedby() {
178
184
  if (this.accessibleDescribedBy) {
179
185
  return this.accessibleDescribedBy;
@@ -911,6 +917,22 @@ export class DuetChoice {
911
917
  "text": "Sets focus on the specified `duet-choice`. Use this method instead of the global\n`input.focus()`.",
912
918
  "tags": []
913
919
  }
920
+ },
921
+ "toggleInfoMethod": {
922
+ "complexType": {
923
+ "signature": "() => Promise<void>",
924
+ "parameters": [],
925
+ "references": {
926
+ "Promise": {
927
+ "location": "global"
928
+ }
929
+ },
930
+ "return": "Promise<void>"
931
+ },
932
+ "docs": {
933
+ "text": "This method toggles the info section.",
934
+ "tags": []
935
+ }
914
936
  }
915
937
  };
916
938
  }
@@ -85,7 +85,12 @@
85
85
  color: #171c3a;
86
86
  }
87
87
  .duet-collapsible-heading .duet-collapsible-heading-content {
88
- flex: 1;
88
+ flex: 0 auto;
89
+ min-width: 0;
90
+ }
91
+ .duet-collapsible-heading.has-after-heading .duet-collapsible-heading-content + div {
92
+ flex: 1 0 auto;
93
+ margin-left: 16px;
89
94
  }
90
95
  .duet-collapsible-heading:focus {
91
96
  outline: 0;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import icon from "@duetds/icons/lib/assets/action-arrow-down-small";
5
5
  import * as tokens from "@duetds/tokens/lib/tokens.json";
6
- import { h, Host } from "@stencil/core";
6
+ import { Build, h, Host } from "@stencil/core";
7
7
  import { inheritGlobalTheme } from "../../common/themeable-component";
8
8
  import { createID } from "../../utils/create-id";
9
9
  import { isKeyboardClick } from "../../utils/keyboard-utils";
@@ -11,6 +11,7 @@ import { sanitizeString } from "../../utils/string-utils";
11
11
  /**
12
12
  * @part duet-collapsible-heading-content - piercing selector for styling the heading content
13
13
  * @part duet-collapsible-content - piercing selector for styling the content
14
+ * @slot after-heading - Content after the heading can be for example badges.
14
15
  */
15
16
  export class DuetCollapsible {
16
17
  constructor() {
@@ -74,6 +75,9 @@ export class DuetCollapsible {
74
75
  */
75
76
  componentWillLoad() {
76
77
  inheritGlobalTheme(this);
78
+ this.hasAfterHeading = Build.isServer
79
+ ? Array.from(this.element.children).filter(el => el.matches("[slot='after-heading']")).length > 0
80
+ : !!this.element.querySelector(":scope > [slot='after-heading']");
77
81
  }
78
82
  /**
79
83
  * Sets focus on the specified `duet-collapsible`. Use this method instead of the global
@@ -95,7 +99,8 @@ export class DuetCollapsible {
95
99
  "duet-collapsible-heading": true,
96
100
  "duet-theme-turva": this.theme === "turva",
97
101
  "duet-collapsible-normal-weight": this.headingWeight === "normal",
98
- }, style: { "font-size": this.getFontSizeFromTokens() }, role: "button", tabindex: "0", ref: button => (this.nativeButton = button), "aria-expanded": this.open ? "true" : "false", "aria-controls": this.id, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, h("div", { class: "duet-collapsible-heading-icon" }, h("duet-icon", { margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary", size: this.getEquivalentIconSize(), icon: icon.svg })), h("div", { class: "duet-collapsible-heading-content", part: "duet-collapsible-heading-content" }, this.heading)), h("div", { id: this.id, class: { "duet-collapsible-content": true, "duet-theme-turva": this.theme === "turva" }, part: "duet-collapsible-content" }, h("slot", null))));
102
+ "has-after-heading": this.hasAfterHeading,
103
+ }, style: { "font-size": this.getFontSizeFromTokens() }, role: "button", tabindex: "0", ref: button => (this.nativeButton = button), "aria-expanded": this.open ? "true" : "false", "aria-controls": this.id, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, h("div", { class: "duet-collapsible-heading-icon" }, h("duet-icon", { margin: "none", color: this.theme === "turva" ? "secondary-turva" : "secondary", size: this.getEquivalentIconSize(), icon: icon.svg })), h("div", { class: "duet-collapsible-heading-content", part: "duet-collapsible-heading-content" }, this.heading), this.hasAfterHeading && (h("div", null, h("slot", { name: "after-heading" })))), h("div", { id: this.id, class: { "duet-collapsible-content": true, "duet-theme-turva": this.theme === "turva" }, part: "duet-collapsible-content" }, h("slot", null))));
99
104
  }
100
105
  static get is() { return "duet-collapsible"; }
101
106
  static get encapsulation() { return "scoped"; }
@@ -60,7 +60,6 @@
60
60
  padding: 12px;
61
61
  border-style: solid;
62
62
  border-width: 1px;
63
- border-radius: 50%;
64
63
  }
65
64
  @media (max-width: 35.9375em) {
66
65
  .duet-icon.duet-icon-has-outline {
@@ -71,7 +70,6 @@
71
70
  .duet-icon.duet-icon-has-background {
72
71
  padding: 16px;
73
72
  color: white;
74
- border-radius: 50%;
75
73
  }
76
74
  @media (max-width: 35.9375em) {
77
75
  .duet-icon.duet-icon-has-background {
@@ -82,6 +80,12 @@
82
80
  .duet-icon.duet-icon-has-background.duet-theme-turva, .duet-icon.duet-icon-has-background.duet-theme-default {
83
81
  color: white;
84
82
  }
83
+ .duet-icon.duet-icon-shape-circle {
84
+ border-radius: 50%;
85
+ }
86
+ .duet-icon.duet-icon-shape-brand {
87
+ border-radius: 25%;
88
+ }
85
89
  .duet-icon.duet-icon-has-background.xxx-small .duet-icon-svg, .duet-icon.duet-icon-has-outline.xxx-small .duet-icon-svg {
86
90
  width: 10px;
87
91
  height: 10px;
@@ -164,6 +168,121 @@
164
168
  height: 72px;
165
169
  }
166
170
  }
171
+ .duet-icon.duet-icon-shape-brand.duet-theme-turva {
172
+ display: flex;
173
+ align-items: center;
174
+ justify-content: center;
175
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 144 130' fill='currentColor' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M67.4002 0.00277722C71.354 0.0260204 75.7751 0.261773 80.1626 0.90262C83.3916 1.37412 86.6046 1.97513 89.824 2.51802C91.5585 2.81022 93.3026 3.05925 95.0291 3.3996C102.623 4.89215 109.884 7.35924 116.592 11.4152C122.597 15.0478 127.726 19.7163 131.919 25.4756C135.024 29.7374 137.515 34.3662 139.4 39.3319C140.317 41.7459 141.075 44.2262 141.854 46.695C142.021 47.2196 141.984 47.8157 142.021 48.3801C142.354 53.5833 142.664 58.7864 143.018 63.9879C143.237 67.2021 143.528 70.4097 143.768 73.6206C144.067 77.5985 144.095 81.578 143.746 85.5576C143.501 88.3567 143.106 91.1293 142.437 93.8537C141.117 99.2395 138.941 104.207 135.603 108.58C132.414 112.759 128.49 116.036 123.975 118.561C120.429 120.544 116.702 122.058 112.824 123.175C109.121 124.241 105.361 125.011 101.548 125.493C100.916 125.572 100.351 125.768 99.783 126.074C98.1525 126.95 96.3956 127.47 94.6163 127.912C91.4225 128.705 88.1775 129.168 84.9149 129.495C83.0572 129.681 81.1978 129.838 79.3385 129.995C79.1337 130.012 78.9097 129.985 78.7161 129.916C76.2087 129.009 73.6566 128.255 71.0356 127.825C68.8547 127.467 66.6529 127.135 64.4512 127.047C58.4156 126.809 52.54 125.717 46.7989 123.809C40.8193 121.822 35.1245 119.181 29.8458 115.634C24.3911 111.97 19.5668 107.566 15.4705 102.313C10.9582 96.5267 7.406 90.1597 4.73864 83.2598C2.95772 78.6544 1.67604 73.8978 0.898394 68.9935C0.328759 65.3975 0.0183391 61.7798 0.000737963 58.1373C-0.0120628 55.3132 0.141547 52.4992 0.471168 49.6934C0.867992 46.3131 1.46643 42.9728 2.35449 39.6955C2.6121 38.7458 3.02813 37.8327 3.44735 36.9395C4.105 35.5366 4.70343 34.0773 5.54829 32.8006C7.15959 30.3683 8.51487 27.8182 9.53734 25.0705C9.60134 24.8962 9.71655 24.7302 9.84136 24.5957C12.1119 22.1535 14.5201 19.8674 17.0514 17.7191C23.9622 11.8551 31.6315 7.39743 40.0769 4.39076C44.0019 2.99285 48.023 1.97015 52.1144 1.24795C56.6011 0.45934 62.4495 -0.0420489 67.4002 0.00277722Z' /%3E%3C/svg%3E");
176
+ -webkit-mask-repeat: no-repeat;
177
+ mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 144 130' fill='currentColor' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M67.4002 0.00277722C71.354 0.0260204 75.7751 0.261773 80.1626 0.90262C83.3916 1.37412 86.6046 1.97513 89.824 2.51802C91.5585 2.81022 93.3026 3.05925 95.0291 3.3996C102.623 4.89215 109.884 7.35924 116.592 11.4152C122.597 15.0478 127.726 19.7163 131.919 25.4756C135.024 29.7374 137.515 34.3662 139.4 39.3319C140.317 41.7459 141.075 44.2262 141.854 46.695C142.021 47.2196 141.984 47.8157 142.021 48.3801C142.354 53.5833 142.664 58.7864 143.018 63.9879C143.237 67.2021 143.528 70.4097 143.768 73.6206C144.067 77.5985 144.095 81.578 143.746 85.5576C143.501 88.3567 143.106 91.1293 142.437 93.8537C141.117 99.2395 138.941 104.207 135.603 108.58C132.414 112.759 128.49 116.036 123.975 118.561C120.429 120.544 116.702 122.058 112.824 123.175C109.121 124.241 105.361 125.011 101.548 125.493C100.916 125.572 100.351 125.768 99.783 126.074C98.1525 126.95 96.3956 127.47 94.6163 127.912C91.4225 128.705 88.1775 129.168 84.9149 129.495C83.0572 129.681 81.1978 129.838 79.3385 129.995C79.1337 130.012 78.9097 129.985 78.7161 129.916C76.2087 129.009 73.6566 128.255 71.0356 127.825C68.8547 127.467 66.6529 127.135 64.4512 127.047C58.4156 126.809 52.54 125.717 46.7989 123.809C40.8193 121.822 35.1245 119.181 29.8458 115.634C24.3911 111.97 19.5668 107.566 15.4705 102.313C10.9582 96.5267 7.406 90.1597 4.73864 83.2598C2.95772 78.6544 1.67604 73.8978 0.898394 68.9935C0.328759 65.3975 0.0183391 61.7798 0.000737963 58.1373C-0.0120628 55.3132 0.141547 52.4992 0.471168 49.6934C0.867992 46.3131 1.46643 42.9728 2.35449 39.6955C2.6121 38.7458 3.02813 37.8327 3.44735 36.9395C4.105 35.5366 4.70343 34.0773 5.54829 32.8006C7.15959 30.3683 8.51487 27.8182 9.53734 25.0705C9.60134 24.8962 9.71655 24.7302 9.84136 24.5957C12.1119 22.1535 14.5201 19.8674 17.0514 17.7191C23.9622 11.8551 31.6315 7.39743 40.0769 4.39076C44.0019 2.99285 48.023 1.97015 52.1144 1.24795C56.6011 0.45934 62.4495 -0.0420489 67.4002 0.00277722Z' /%3E%3C/svg%3E");
178
+ mask-repeat: no-repeat;
179
+ }
180
+ .duet-icon.duet-icon-shape-brand.duet-theme-turva .duet-icon-svg {
181
+ min-width: auto;
182
+ }
183
+ .duet-icon.duet-icon-shape-brand.duet-theme-turva.xx-small {
184
+ width: 18px;
185
+ height: 15px;
186
+ padding: 0;
187
+ }
188
+ .duet-icon.duet-icon-shape-brand.duet-theme-turva.x-small {
189
+ width: 32px;
190
+ height: 30px;
191
+ padding: 0;
192
+ }
193
+ .duet-icon.duet-icon-shape-brand.duet-theme-turva.small {
194
+ width: 36px;
195
+ height: 34px;
196
+ padding: 0;
197
+ }
198
+ .duet-icon.duet-icon-shape-brand.duet-theme-turva.medium {
199
+ width: 48px;
200
+ height: 44px;
201
+ padding: 0;
202
+ }
203
+ .duet-icon.duet-icon-shape-brand.duet-theme-turva.large {
204
+ width: 62px;
205
+ height: 56px;
206
+ padding: 0;
207
+ }
208
+ .duet-icon.duet-icon-shape-brand.duet-theme-turva.x-large {
209
+ width: 76px;
210
+ height: 68px;
211
+ padding: 0;
212
+ }
213
+ .duet-icon.duet-icon-shape-brand.duet-theme-turva.xx-large {
214
+ width: 95px;
215
+ height: 86px;
216
+ padding: 0;
217
+ }
218
+ .duet-icon.duet-icon-shape-brand.duet-theme-turva.xxx-large {
219
+ width: 144px;
220
+ height: 130px;
221
+ padding: 0;
222
+ }
223
+ .duet-icon.duet-icon-shape-brand.xxx-small {
224
+ padding: 0;
225
+ }
226
+ .duet-icon.duet-icon-shape-brand.xxx-small .duet-icon-svg {
227
+ width: 0;
228
+ height: 0;
229
+ }
230
+ .duet-icon.duet-icon-shape-brand.xx-small {
231
+ padding: 4px;
232
+ }
233
+ .duet-icon.duet-icon-shape-brand.xx-small .duet-icon-svg {
234
+ width: 10px;
235
+ height: 10px;
236
+ }
237
+ .duet-icon.duet-icon-shape-brand.x-small {
238
+ padding: 8px;
239
+ }
240
+ .duet-icon.duet-icon-shape-brand.x-small .duet-icon-svg {
241
+ width: 16px;
242
+ height: 16px;
243
+ }
244
+ .duet-icon.duet-icon-shape-brand.small {
245
+ padding: 8px;
246
+ }
247
+ .duet-icon.duet-icon-shape-brand.small .duet-icon-svg {
248
+ width: 20px;
249
+ height: 20px;
250
+ }
251
+ .duet-icon.duet-icon-shape-brand.medium {
252
+ padding: 12px;
253
+ }
254
+ .duet-icon.duet-icon-shape-brand.medium .duet-icon-svg {
255
+ width: 24px;
256
+ height: 24px;
257
+ }
258
+ .duet-icon.duet-icon-shape-brand.large {
259
+ padding: 16px;
260
+ }
261
+ .duet-icon.duet-icon-shape-brand.large .duet-icon-svg {
262
+ width: 30px;
263
+ height: 30px;
264
+ }
265
+ .duet-icon.duet-icon-shape-brand.x-large {
266
+ padding: 20px;
267
+ }
268
+ .duet-icon.duet-icon-shape-brand.x-large .duet-icon-svg {
269
+ width: 36px;
270
+ height: 36px;
271
+ }
272
+ .duet-icon.duet-icon-shape-brand.xx-large {
273
+ padding: 24px;
274
+ }
275
+ .duet-icon.duet-icon-shape-brand.xx-large .duet-icon-svg {
276
+ width: 48px;
277
+ height: 48px;
278
+ }
279
+ .duet-icon.duet-icon-shape-brand.xxx-large {
280
+ padding: 36px;
281
+ }
282
+ .duet-icon.duet-icon-shape-brand.xxx-large .duet-icon-svg {
283
+ width: 72px;
284
+ height: 72px;
285
+ }
167
286
  .duet-icon .duet-icon-svg {
168
287
  display: block;
169
288
  width: 24px;
@@ -18,6 +18,7 @@ export class DuetIcon {
18
18
  this.background = "";
19
19
  this.size = "medium";
20
20
  this.outline = "";
21
+ this.shape = "circle";
21
22
  }
22
23
  /**
23
24
  * Component lifecycle events.
@@ -72,6 +73,7 @@ export class DuetIcon {
72
73
  "duet-theme-default": this.theme === "default",
73
74
  "duet-icon-has-outline": !!this.outline,
74
75
  "duet-icon-has-background": !!this.background,
76
+ [`duet-icon-shape-${this.shape}`]: true,
75
77
  "duet-icon-not-responsive": !this.responsive,
76
78
  } }, h("span", { "aria-hidden": "true", class: "duet-icon-svg", innerHTML: this.svgContent }))));
77
79
  }
@@ -300,6 +302,24 @@ export class DuetIcon {
300
302
  "attribute": "outline",
301
303
  "reflect": false,
302
304
  "defaultValue": "\"\""
305
+ },
306
+ "shape": {
307
+ "type": "string",
308
+ "mutable": false,
309
+ "complexType": {
310
+ "original": "\"circle\" | \"brand\"",
311
+ "resolved": "\"brand\" | \"circle\"",
312
+ "references": {}
313
+ },
314
+ "required": false,
315
+ "optional": false,
316
+ "docs": {
317
+ "tags": [],
318
+ "text": "Shape of the background. Brand follows new designs and currently doesn't support xxx-small size."
319
+ },
320
+ "attribute": "shape",
321
+ "reflect": false,
322
+ "defaultValue": "\"circle\""
303
323
  }
304
324
  };
305
325
  }
@@ -70,6 +70,13 @@ export class DuetInput {
70
70
  });
71
71
  };
72
72
  this.onBlur = (ev) => {
73
+ // prevent blur event when focus moves to the reveal password button or the input itself
74
+ if (ev.relatedTarget === this.nativeInput || ev.relatedTarget === this.togglePasswordRevealedButton) {
75
+ return;
76
+ }
77
+ if (this.variation === "revealable") {
78
+ this.isPasswordRevealed = false;
79
+ }
73
80
  this.isFocused = false;
74
81
  this.duetBlur.emit({
75
82
  originalEvent: ev,
@@ -121,7 +128,12 @@ export class DuetInput {
121
128
  this.handleClearClick(event);
122
129
  }
123
130
  if (isEnterKey(event) && this.variation === "revealable") {
124
- this.isPasswordRevealed = false;
131
+ if (event.target === this.togglePasswordRevealedButton) {
132
+ event.stopPropagation();
133
+ }
134
+ else {
135
+ this.isPasswordRevealed = false;
136
+ }
125
137
  }
126
138
  return event;
127
139
  };
@@ -305,7 +317,7 @@ export class DuetInput {
305
317
  "duet-input-clear-icon-single": !hasInputIcon,
306
318
  "duet-input-clear-icon-double": !!this.icon,
307
319
  "duet-input-clear-icon-button": this.variation === "button",
308
- } }, h("button", { onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel, "aria-keyshortcuts": "Escape" }, h("duet-icon", { margin: "none", size: "medium", name: "action-clear-input", color: "currentColor" })))), this.icon && this.variation !== "button" && (h("div", { class: "duet-input-icon" }, h("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && h("slot", { name: "button" }), this.variation === "revealable" && (h("duet-button", { onClick: this.togglePasswordRevealed, icon: this.isPasswordRevealed ? "action-hide" : "action-show", accessibleLabel: this.isPasswordRevealed ? this.hidePasswordLabel : this.showPasswordLabel, margin: "none", variation: "input-button-embedded", fixed: true, iconOnly: true })), this.variation === "revealable" && (h("duet-visually-hidden", null, h("span", { "aria-live": "polite" }, this.isPasswordRevealed ? this.passwordShownAriaAnnouncement : this.passwordHiddenAriaAnnouncement))), h("slot", null)), h("span", { class: "duet-input-help", id: this.errorId, "aria-atomic": "true", "aria-live": "polite", "aria-relevant": "additions removals" }, this.error && h("span", { class: "duet-input-error" }, this.error)))));
320
+ } }, h("button", { onClick: this.handleClearClick, id: this.clearId, "aria-label": this.clearLabel, "aria-keyshortcuts": "Escape" }, h("duet-icon", { margin: "none", size: "medium", name: "action-clear-input", color: "currentColor" })))), this.icon && this.variation !== "button" && (h("div", { class: "duet-input-icon" }, h("duet-icon", { margin: "none", size: "small", name: this.icon, color: "currentColor" }))), this.variation === "button" && h("slot", { name: "button" }), this.variation === "revealable" && (h("duet-button", { ref: button => (this.togglePasswordRevealedButton = button), onBlur: this.onBlur, onFocus: this.onFocus, onClick: this.togglePasswordRevealed, icon: this.isPasswordRevealed ? "action-hide" : "action-show", accessibleLabel: this.isPasswordRevealed ? this.hidePasswordLabel : this.showPasswordLabel, margin: "none", variation: "input-button-embedded", fixed: true, iconOnly: true })), this.variation === "revealable" && (h("duet-visually-hidden", null, h("span", { "aria-live": "polite" }, this.isPasswordRevealed ? this.passwordShownAriaAnnouncement : this.passwordHiddenAriaAnnouncement))), h("slot", null)), h("span", { class: "duet-input-help", id: this.errorId, "aria-atomic": "true", "aria-live": "polite", "aria-relevant": "additions removals" }, this.error && h("span", { class: "duet-input-error" }, this.error)))));
309
321
  }
310
322
  static get is() { return "duet-input"; }
311
323
  static get encapsulation() { return "scoped"; }
@@ -58,4 +58,41 @@
58
58
 
59
59
  .duet-link-external {
60
60
  margin-left: 4px;
61
+ }
62
+
63
+ .duet-tab-to-link {
64
+ padding: 15px 28px 16px !important;
65
+ position: absolute;
66
+ top: -100%;
67
+ left: -100%;
68
+ z-index: 200;
69
+ width: 1px;
70
+ min-width: 190px;
71
+ height: 1px;
72
+ overflow: hidden;
73
+ font-weight: 600;
74
+ color: #0077b3;
75
+ text-align: center;
76
+ text-decoration: none;
77
+ background: white;
78
+ border-radius: 4px;
79
+ opacity: 0;
80
+ transition: none;
81
+ }
82
+ .duet-tab-to-link.duet-theme-turva {
83
+ min-width: 120px;
84
+ color: #171c3a;
85
+ }
86
+ @media (min-width: 106.25em) {
87
+ .duet-tab-to-link {
88
+ margin-left: 20px;
89
+ }
90
+ }
91
+ .duet-tab-to-link:focus {
92
+ top: 12px;
93
+ left: 20px;
94
+ width: auto;
95
+ height: auto;
96
+ outline: 0;
97
+ opacity: 1;
61
98
  }
@@ -19,6 +19,7 @@ export class DuetLink {
19
19
  this.theme = "";
20
20
  this.url = "#";
21
21
  this.external = false;
22
+ this.tabToLink = false;
22
23
  }
23
24
  /**
24
25
  * Component lifecycle events.
@@ -41,6 +42,7 @@ export class DuetLink {
41
42
  return (h(Host, null, h("a", { href: this.url, class: {
42
43
  "duet-link": true,
43
44
  "duet-link-is-external": this.external,
45
+ "duet-tab-to-link": this.tabToLink,
44
46
  "duet-theme-turva": this.theme === "turva",
45
47
  }, target: this.external ? "_blank" : "_self", "aria-label": this.accessibleLabel, id: this.identifier, ref: el => (this.nativeLink = el), part: "duet-link", rel: this.external ? "noopener" : undefined }, h("slot", null), Build.isBrowser && this.external && (h(Fragment, null, h("duet-visually-hidden", null, this.accessibleLabelExternal), h("span", { class: "duet-link-external" }, h("duet-icon", { icon: newWindowIcon.svg, size: "xx-small", margin: "none", color: "currentColor" })))))));
46
48
  }
@@ -227,6 +229,24 @@ export class DuetLink {
227
229
  "attribute": "external",
228
230
  "reflect": false,
229
231
  "defaultValue": "false"
232
+ },
233
+ "tabToLink": {
234
+ "type": "boolean",
235
+ "mutable": false,
236
+ "complexType": {
237
+ "original": "boolean",
238
+ "resolved": "boolean",
239
+ "references": {}
240
+ },
241
+ "required": false,
242
+ "optional": false,
243
+ "docs": {
244
+ "tags": [],
245
+ "text": "Initially visually hidden link, which is shown on focus."
246
+ },
247
+ "attribute": "tab-to-link",
248
+ "reflect": false,
249
+ "defaultValue": "false"
230
250
  }
231
251
  };
232
252
  }