@duetds/components 4.34.3 → 4.34.4

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 (241) hide show
  1. package/hydrate/index.js +114 -2
  2. package/lib/cjs/duet-alert.cjs.entry.js +1 -1
  3. package/lib/cjs/duet-badge.cjs.entry.js +2 -2
  4. package/lib/cjs/duet-breadcrumb.cjs.entry.js +48 -0
  5. package/lib/cjs/duet-breadcrumbs.cjs.entry.js +68 -0
  6. package/lib/cjs/duet-button_2.cjs.entry.js +2 -2
  7. package/lib/cjs/duet-caption_4.cjs.entry.js +1 -1
  8. package/lib/cjs/duet-card.cjs.entry.js +1 -1
  9. package/lib/cjs/duet-checkbox.cjs.entry.js +1 -1
  10. package/lib/cjs/duet-choice_2.cjs.entry.js +2 -2
  11. package/lib/cjs/duet-collapsible.cjs.entry.js +1 -1
  12. package/lib/cjs/duet-cookie-consent.cjs.entry.js +1 -1
  13. package/lib/cjs/duet-date-picker.cjs.entry.js +2 -2
  14. package/lib/cjs/duet-divider_2.cjs.entry.js +1 -1
  15. package/lib/cjs/duet-editable-table-button.cjs.entry.js +1 -1
  16. package/lib/cjs/duet-editable-table_4.cjs.entry.js +1 -1
  17. package/lib/cjs/duet-empty-state.cjs.entry.js +1 -1
  18. package/lib/cjs/duet-fieldset.cjs.entry.js +1 -1
  19. package/lib/cjs/duet-footer.cjs.entry.js +1 -1
  20. package/lib/cjs/duet-grid_2.cjs.entry.js +1 -1
  21. package/lib/cjs/duet-header_2.cjs.entry.js +1 -1
  22. package/lib/cjs/duet-hero.cjs.entry.js +1 -1
  23. package/lib/cjs/duet-icon.cjs.entry.js +1 -1
  24. package/lib/cjs/duet-input_2.cjs.entry.js +1 -1
  25. package/lib/cjs/duet-layout.cjs.entry.js +1 -1
  26. package/lib/cjs/duet-list_2.cjs.entry.js +1 -1
  27. package/lib/cjs/duet-modal.cjs.entry.js +2 -2
  28. package/lib/cjs/duet-notification_2.cjs.entry.js +1 -1
  29. package/lib/cjs/duet-number-input.cjs.entry.js +1 -1
  30. package/lib/cjs/duet-progress.cjs.entry.js +1 -1
  31. package/lib/cjs/duet-radio_2.cjs.entry.js +1 -1
  32. package/lib/cjs/duet-range-slider.cjs.entry.js +1 -1
  33. package/lib/cjs/duet-select.cjs.entry.js +1 -1
  34. package/lib/cjs/duet-step_2.cjs.entry.js +1 -1
  35. package/lib/cjs/duet-tab_2.cjs.entry.js +1 -1
  36. package/lib/cjs/duet-textarea.cjs.entry.js +1 -1
  37. package/lib/cjs/duet-toggle.cjs.entry.js +1 -1
  38. package/lib/cjs/duet-tooltip.cjs.entry.js +1 -1
  39. package/lib/cjs/duet-tray.cjs.entry.js +1 -1
  40. package/lib/cjs/duet-upload-aria-status.cjs.entry.js +1 -1
  41. package/lib/cjs/duet-visually-hidden.cjs.entry.js +1 -1
  42. package/lib/cjs/duet.cjs.js +2 -2
  43. package/lib/cjs/{focus-utils-3d73245e.js → focus-utils-0e3a744a.js} +1 -1
  44. package/lib/cjs/{index-b8c8ebe4.js → index-0bcb9cea.js} +1 -1
  45. package/lib/cjs/loader.cjs.js +2 -2
  46. package/lib/collection/collection-manifest.json +2 -0
  47. package/lib/collection/components/duet-badge/duet-badge.js +1 -1
  48. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.css +57 -0
  49. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumb.js +131 -0
  50. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.css +63 -0
  51. package/lib/collection/components/duet-breadcrumbs/duet-breadcrumbs.js +104 -0
  52. package/lib/collection/components/duet-button/duet-button.css +1 -0
  53. package/lib/custom-elements-bundle/index.d.ts +12 -0
  54. package/lib/custom-elements-bundle/index.js +104 -4
  55. package/lib/duet/duet.esm.js +1 -1
  56. package/lib/duet/duet.js +1 -1
  57. package/lib/duet/{p-6f35218d.entry.js → p-00b102b8.entry.js} +1 -1
  58. package/lib/duet/{p-5a6e464a.system.entry.js → p-07bec67d.system.entry.js} +1 -1
  59. package/lib/duet/{p-9d8421d4.entry.js → p-0945e0ac.entry.js} +1 -1
  60. package/lib/duet/{p-a35f849e.entry.js → p-09845306.entry.js} +1 -1
  61. package/lib/duet/{p-cd795dee.system.entry.js → p-0a664450.system.entry.js} +1 -1
  62. package/lib/duet/{p-d8ac3d77.entry.js → p-0aec7e4b.entry.js} +1 -1
  63. package/lib/duet/p-0cb07574.js +4 -0
  64. package/lib/duet/{p-7dadfd66.entry.js → p-0d18269c.entry.js} +1 -1
  65. package/lib/duet/{p-77434f16.entry.js → p-130476dc.entry.js} +1 -1
  66. package/lib/duet/{p-01927eb0.entry.js → p-1afec19f.entry.js} +1 -1
  67. package/lib/duet/{p-7232506d.system.entry.js → p-1c38354b.system.entry.js} +1 -1
  68. package/lib/duet/{p-daeb205a.system.entry.js → p-1f08d290.system.entry.js} +1 -1
  69. package/lib/duet/{p-4eca4ef3.entry.js → p-236cb8b6.entry.js} +1 -1
  70. package/lib/duet/{p-279aa668.system.entry.js → p-255bc205.system.entry.js} +1 -1
  71. package/lib/duet/{p-59d4e6b8.entry.js → p-29000070.entry.js} +1 -1
  72. package/lib/duet/{p-8fda2b95.entry.js → p-2f36de45.entry.js} +1 -1
  73. package/lib/duet/p-30410b67.system.js +4 -0
  74. package/lib/duet/p-32488531.system.entry.js +4 -0
  75. package/lib/duet/{p-c90c17c7.entry.js → p-35133bc9.entry.js} +1 -1
  76. package/lib/duet/{p-61a0e3f7.entry.js → p-36eae676.entry.js} +1 -1
  77. package/lib/duet/{p-aefca63e.system.entry.js → p-379e8ebb.system.entry.js} +1 -1
  78. package/lib/duet/{p-a01664b5.system.entry.js → p-3948a5c4.system.entry.js} +1 -1
  79. package/lib/duet/{p-fefe12f8.system.entry.js → p-3953b77a.system.entry.js} +1 -1
  80. package/lib/duet/{p-d30c3f2c.system.entry.js → p-4002454d.system.entry.js} +1 -1
  81. package/lib/duet/{p-c75bf5dd.system.entry.js → p-48ed41e6.system.entry.js} +1 -1
  82. package/lib/duet/{p-129bc252.system.entry.js → p-4b7f998d.system.entry.js} +1 -1
  83. package/lib/duet/{p-11f389cd.entry.js → p-4d30eee1.entry.js} +1 -1
  84. package/lib/duet/{p-7b4d646d.system.js → p-51d5b428.system.js} +1 -1
  85. package/lib/duet/{p-db33afbe.entry.js → p-55ad1bfb.entry.js} +1 -1
  86. package/lib/duet/{p-dd1bc83c.system.entry.js → p-56cda85e.system.entry.js} +1 -1
  87. package/lib/duet/{p-5e6e0547.system.entry.js → p-5818108d.system.entry.js} +1 -1
  88. package/lib/duet/{p-0b64cf3d.system.entry.js → p-5a9266c8.system.entry.js} +1 -1
  89. package/lib/duet/{p-c95b0a0e.system.entry.js → p-5b409624.system.entry.js} +1 -1
  90. package/lib/duet/p-5e15d8f8.js +4 -0
  91. package/lib/duet/{p-accaacf9.entry.js → p-5ea30033.entry.js} +1 -1
  92. package/lib/duet/{p-53fb919f.entry.js → p-63ac5acd.entry.js} +1 -1
  93. package/lib/duet/{p-04597b37.entry.js → p-67798ed0.entry.js} +1 -1
  94. package/lib/duet/{p-a43ed343.entry.js → p-6d05eb8c.entry.js} +1 -1
  95. package/lib/duet/{p-3c173e89.entry.js → p-6d62cb90.entry.js} +1 -1
  96. package/lib/duet/{p-b2e9e246.entry.js → p-6f7539a6.entry.js} +1 -1
  97. package/lib/duet/{p-8402709a.system.entry.js → p-719e38e3.system.entry.js} +1 -1
  98. package/lib/duet/{p-64f8c8e0.system.entry.js → p-7c5b396c.system.entry.js} +1 -1
  99. package/lib/duet/{p-75c48ba1.system.entry.js → p-8049159b.system.entry.js} +1 -1
  100. package/lib/duet/{p-032607e4.entry.js → p-808101d8.entry.js} +1 -1
  101. package/lib/duet/{p-1e3ec7dc.system.entry.js → p-842a43e7.system.entry.js} +1 -1
  102. package/lib/duet/{p-fdc358b8.entry.js → p-86013171.entry.js} +1 -1
  103. package/lib/duet/{p-bf246e5d.system.entry.js → p-87804904.system.entry.js} +1 -1
  104. package/lib/duet/{p-6f288b44.system.entry.js → p-8bbdfac5.system.entry.js} +1 -1
  105. package/lib/duet/{p-cb7921b9.system.entry.js → p-8ea50bd2.system.entry.js} +1 -1
  106. package/lib/duet/{p-d855249b.entry.js → p-927e83d1.entry.js} +1 -1
  107. package/lib/duet/p-98fabd8b.entry.js +4 -0
  108. package/lib/duet/{p-e9b95f7c.entry.js → p-9aa7cb17.entry.js} +1 -1
  109. package/lib/duet/{p-d992e2b5.entry.js → p-9c046b9a.entry.js} +1 -1
  110. package/lib/duet/{p-13058dc6.system.entry.js → p-9f6649ef.system.entry.js} +1 -1
  111. package/lib/duet/{p-5152f1e4.entry.js → p-a209e483.entry.js} +1 -1
  112. package/lib/duet/p-a5b9f195.system.entry.js +4 -0
  113. package/lib/duet/p-a63537e8.entry.js +4 -0
  114. package/lib/duet/{p-2ce50cc6.system.entry.js → p-aa379dec.system.entry.js} +1 -1
  115. package/lib/duet/{p-349c6990.system.entry.js → p-ab6109d6.system.entry.js} +1 -1
  116. package/lib/duet/{p-e1a40bab.system.entry.js → p-addff36a.system.entry.js} +1 -1
  117. package/lib/duet/{p-fae44e29.entry.js → p-b465ac62.entry.js} +1 -1
  118. package/lib/duet/{p-061d59b3.entry.js → p-b9fe29c7.entry.js} +1 -1
  119. package/lib/duet/{p-f137fdb6.system.entry.js → p-bb1271a8.system.entry.js} +1 -1
  120. package/lib/duet/{p-3839858e.entry.js → p-c6268af4.entry.js} +1 -1
  121. package/lib/duet/p-c6c768b9.system.entry.js +4 -0
  122. package/lib/duet/{p-117e0339.entry.js → p-cf886223.entry.js} +1 -1
  123. package/lib/duet/{p-f96efcb6.entry.js → p-d53bbad7.entry.js} +1 -1
  124. package/lib/duet/{p-de658899.system.entry.js → p-d701bd87.system.entry.js} +1 -1
  125. package/lib/duet/{p-16de4b21.entry.js → p-d9f076ed.entry.js} +1 -1
  126. package/lib/duet/{p-25aa7ac3.system.entry.js → p-db1a8956.system.entry.js} +1 -1
  127. package/lib/duet/{p-4bb35e6f.entry.js → p-db75f866.entry.js} +1 -1
  128. package/lib/duet/{p-a76ae6e9.system.entry.js → p-dc226f92.system.entry.js} +1 -1
  129. package/lib/duet/{p-7cdfbafd.system.entry.js → p-ddf5ecf5.system.entry.js} +1 -1
  130. package/lib/duet/{p-ed57e786.system.entry.js → p-ded5548b.system.entry.js} +1 -1
  131. package/lib/duet/{p-c414a7d0.entry.js → p-e339cb4f.entry.js} +1 -1
  132. package/lib/duet/{p-5d2ec61d.system.entry.js → p-e90db543.system.entry.js} +1 -1
  133. package/lib/duet/{p-7241b006.system.entry.js → p-e96fca2b.system.entry.js} +1 -1
  134. package/lib/duet/{p-3dc1e5c7.entry.js → p-ea232a29.entry.js} +1 -1
  135. package/lib/duet/{p-6aaf4be0.entry.js → p-ea934463.entry.js} +1 -1
  136. package/lib/duet/{p-8e70de92.entry.js → p-ee58a262.entry.js} +1 -1
  137. package/lib/duet/{p-62b3e73e.entry.js → p-f16213de.entry.js} +1 -1
  138. package/lib/duet/{p-3211cb0d.system.entry.js → p-f645b369.system.entry.js} +1 -1
  139. package/lib/duet/{p-08a34bd4.system.entry.js → p-fab77260.system.entry.js} +1 -1
  140. package/lib/duet/p-fe889838.system.js +4 -0
  141. package/lib/duet/{p-414a29ba.system.entry.js → p-fedad35b.system.entry.js} +1 -1
  142. package/lib/esm/duet-alert.entry.js +1 -1
  143. package/lib/esm/duet-badge.entry.js +2 -2
  144. package/lib/esm/duet-breadcrumb.entry.js +44 -0
  145. package/lib/esm/duet-breadcrumbs.entry.js +64 -0
  146. package/lib/esm/duet-button_2.entry.js +2 -2
  147. package/lib/esm/duet-caption_4.entry.js +1 -1
  148. package/lib/esm/duet-card.entry.js +1 -1
  149. package/lib/esm/duet-checkbox.entry.js +1 -1
  150. package/lib/esm/duet-choice_2.entry.js +2 -2
  151. package/lib/esm/duet-collapsible.entry.js +1 -1
  152. package/lib/esm/duet-cookie-consent.entry.js +1 -1
  153. package/lib/esm/duet-date-picker.entry.js +2 -2
  154. package/lib/esm/duet-divider_2.entry.js +1 -1
  155. package/lib/esm/duet-editable-table-button.entry.js +1 -1
  156. package/lib/esm/duet-editable-table_4.entry.js +1 -1
  157. package/lib/esm/duet-empty-state.entry.js +1 -1
  158. package/lib/esm/duet-fieldset.entry.js +1 -1
  159. package/lib/esm/duet-footer.entry.js +1 -1
  160. package/lib/esm/duet-grid_2.entry.js +1 -1
  161. package/lib/esm/duet-header_2.entry.js +1 -1
  162. package/lib/esm/duet-hero.entry.js +1 -1
  163. package/lib/esm/duet-icon.entry.js +1 -1
  164. package/lib/esm/duet-input_2.entry.js +1 -1
  165. package/lib/esm/duet-layout.entry.js +1 -1
  166. package/lib/esm/duet-list_2.entry.js +1 -1
  167. package/lib/esm/duet-modal.entry.js +2 -2
  168. package/lib/esm/duet-notification_2.entry.js +1 -1
  169. package/lib/esm/duet-number-input.entry.js +1 -1
  170. package/lib/esm/duet-progress.entry.js +1 -1
  171. package/lib/esm/duet-radio_2.entry.js +1 -1
  172. package/lib/esm/duet-range-slider.entry.js +1 -1
  173. package/lib/esm/duet-select.entry.js +1 -1
  174. package/lib/esm/duet-step_2.entry.js +1 -1
  175. package/lib/esm/duet-tab_2.entry.js +1 -1
  176. package/lib/esm/duet-textarea.entry.js +1 -1
  177. package/lib/esm/duet-toggle.entry.js +1 -1
  178. package/lib/esm/duet-tooltip.entry.js +1 -1
  179. package/lib/esm/duet-tray.entry.js +1 -1
  180. package/lib/esm/duet-upload-aria-status.entry.js +1 -1
  181. package/lib/esm/duet-visually-hidden.entry.js +1 -1
  182. package/lib/esm/duet.js +2 -2
  183. package/lib/esm/{focus-utils-6989cada.js → focus-utils-8d0688ae.js} +1 -1
  184. package/lib/esm/{index-ddb14345.js → index-ff4326da.js} +1 -1
  185. package/lib/esm/loader.js +2 -2
  186. package/lib/esm-es5/duet-alert.entry.js +1 -1
  187. package/lib/esm-es5/duet-badge.entry.js +1 -1
  188. package/lib/esm-es5/duet-breadcrumb.entry.js +4 -0
  189. package/lib/esm-es5/duet-breadcrumbs.entry.js +4 -0
  190. package/lib/esm-es5/duet-button_2.entry.js +1 -1
  191. package/lib/esm-es5/duet-caption_4.entry.js +1 -1
  192. package/lib/esm-es5/duet-card.entry.js +1 -1
  193. package/lib/esm-es5/duet-checkbox.entry.js +1 -1
  194. package/lib/esm-es5/duet-choice_2.entry.js +1 -1
  195. package/lib/esm-es5/duet-collapsible.entry.js +1 -1
  196. package/lib/esm-es5/duet-cookie-consent.entry.js +1 -1
  197. package/lib/esm-es5/duet-date-picker.entry.js +1 -1
  198. package/lib/esm-es5/duet-divider_2.entry.js +1 -1
  199. package/lib/esm-es5/duet-editable-table-button.entry.js +1 -1
  200. package/lib/esm-es5/duet-editable-table_4.entry.js +1 -1
  201. package/lib/esm-es5/duet-empty-state.entry.js +1 -1
  202. package/lib/esm-es5/duet-fieldset.entry.js +1 -1
  203. package/lib/esm-es5/duet-footer.entry.js +1 -1
  204. package/lib/esm-es5/duet-grid_2.entry.js +1 -1
  205. package/lib/esm-es5/duet-header_2.entry.js +1 -1
  206. package/lib/esm-es5/duet-hero.entry.js +1 -1
  207. package/lib/esm-es5/duet-icon.entry.js +1 -1
  208. package/lib/esm-es5/duet-input_2.entry.js +1 -1
  209. package/lib/esm-es5/duet-layout.entry.js +1 -1
  210. package/lib/esm-es5/duet-list_2.entry.js +1 -1
  211. package/lib/esm-es5/duet-modal.entry.js +1 -1
  212. package/lib/esm-es5/duet-notification_2.entry.js +1 -1
  213. package/lib/esm-es5/duet-number-input.entry.js +1 -1
  214. package/lib/esm-es5/duet-progress.entry.js +1 -1
  215. package/lib/esm-es5/duet-radio_2.entry.js +1 -1
  216. package/lib/esm-es5/duet-range-slider.entry.js +1 -1
  217. package/lib/esm-es5/duet-select.entry.js +1 -1
  218. package/lib/esm-es5/duet-step_2.entry.js +1 -1
  219. package/lib/esm-es5/duet-tab_2.entry.js +1 -1
  220. package/lib/esm-es5/duet-textarea.entry.js +1 -1
  221. package/lib/esm-es5/duet-toggle.entry.js +1 -1
  222. package/lib/esm-es5/duet-tooltip.entry.js +1 -1
  223. package/lib/esm-es5/duet-tray.entry.js +1 -1
  224. package/lib/esm-es5/duet-upload-aria-status.entry.js +1 -1
  225. package/lib/esm-es5/duet-visually-hidden.entry.js +1 -1
  226. package/lib/esm-es5/duet.js +1 -1
  227. package/lib/esm-es5/{focus-utils-6989cada.js → focus-utils-8d0688ae.js} +1 -1
  228. package/lib/esm-es5/index-ff4326da.js +4 -0
  229. package/lib/esm-es5/loader.js +1 -1
  230. package/lib/html.html-data.json +69 -3
  231. package/lib/types/components/duet-badge/duet-badge.d.ts +1 -1
  232. package/lib/types/components/duet-breadcrumbs/duet-breadcrumb.d.ts +31 -0
  233. package/lib/types/components/duet-breadcrumbs/duet-breadcrumbs.d.ts +23 -0
  234. package/lib/types/components.d.ts +66 -0
  235. package/package.json +5 -5
  236. package/lib/duet/p-715eb86e.system.js +0 -4
  237. package/lib/duet/p-79cc24ee.js +0 -4
  238. package/lib/duet/p-942856d9.system.js +0 -4
  239. package/lib/duet/p-a2373348.system.entry.js +0 -4
  240. package/lib/duet/p-fceb0df8.js +0 -4
  241. package/lib/esm-es5/index-ddb14345.js +0 -4
@@ -0,0 +1,57 @@
1
+ *,
2
+ *::after,
3
+ *::before {
4
+ box-sizing: border-box;
5
+ padding: 0;
6
+ margin: 0;
7
+ background: transparent;
8
+ border: 0;
9
+ -moz-appearance: none;
10
+ -webkit-appearance: none;
11
+ appearance: none;
12
+ }
13
+
14
+ :host {
15
+ box-sizing: border-box;
16
+ padding: 0;
17
+ margin: 0;
18
+ background: transparent;
19
+ border: 0;
20
+ -moz-appearance: none;
21
+ -webkit-appearance: none;
22
+ appearance: none;
23
+ display: block;
24
+ width: 100%;
25
+ }
26
+
27
+ .duet-breadcrumb {
28
+ display: flex;
29
+ flex-direction: row;
30
+ align-items: center;
31
+ justify-content: flex-start;
32
+ height: 100%;
33
+ font-size: 0.875rem;
34
+ color: #00294d;
35
+ text-decoration: none;
36
+ }
37
+ .duet-breadcrumb:hover {
38
+ color: #004d80;
39
+ }
40
+ .duet-breadcrumb.duet-theme-turva {
41
+ color: #171c3a;
42
+ }
43
+ .duet-breadcrumb.duet-theme-turva:hover {
44
+ color: #940925;
45
+ }
46
+ .duet-breadcrumb:focus {
47
+ outline: 0;
48
+ }
49
+ .duet-breadcrumb:active {
50
+ opacity: 0.75;
51
+ }
52
+ :host(.user-is-tabbing) .duet-breadcrumb:focus {
53
+ box-shadow: 0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3;
54
+ }
55
+ :host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus {
56
+ box-shadow: 0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a;
57
+ }
@@ -0,0 +1,131 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import { Component, h, Host, Prop } from "@stencil/core";
5
+ import { inheritGlobalTheme } from "../../utils/themeable-component";
6
+ export class DuetBreadcrumb {
7
+ constructor() {
8
+ /**
9
+ * Theme
10
+ */
11
+ this.theme = "";
12
+ /**
13
+ * Href
14
+ */
15
+ this.href = "";
16
+ /**
17
+ * Icon
18
+ */
19
+ this.icon = "";
20
+ }
21
+ /**
22
+ * Component lifecycle events.
23
+ */
24
+ componentWillLoad() {
25
+ inheritGlobalTheme(this);
26
+ }
27
+ /**
28
+ * render() function
29
+ * Always the last one in the class.
30
+ */
31
+ render() {
32
+ return (h(Host, null,
33
+ h("a", { class: {
34
+ "duet-breadcrumb": true,
35
+ "duet-theme-turva": this.theme === "turva",
36
+ }, href: this.href, "aria-label": this.accessibleLabel },
37
+ this.icon && h("duet-icon", { size: "x-small", name: this.icon, margin: "none", color: "currentColor" }),
38
+ !this.icon && h("slot", null))));
39
+ }
40
+ static get is() { return "duet-breadcrumb"; }
41
+ static get encapsulation() { return "shadow"; }
42
+ static get originalStyleUrls() { return {
43
+ "$": ["duet-breadcrumb.scss"]
44
+ }; }
45
+ static get styleUrls() { return {
46
+ "$": ["duet-breadcrumb.css"]
47
+ }; }
48
+ static get properties() { return {
49
+ "theme": {
50
+ "type": "string",
51
+ "mutable": true,
52
+ "complexType": {
53
+ "original": "DuetTheme",
54
+ "resolved": "\"\" | \"default\" | \"turva\"",
55
+ "references": {
56
+ "DuetTheme": {
57
+ "location": "import",
58
+ "path": "../../common-types"
59
+ }
60
+ }
61
+ },
62
+ "required": false,
63
+ "optional": false,
64
+ "docs": {
65
+ "tags": [],
66
+ "text": "Theme"
67
+ },
68
+ "attribute": "theme",
69
+ "reflect": false,
70
+ "defaultValue": "\"\""
71
+ },
72
+ "href": {
73
+ "type": "string",
74
+ "mutable": true,
75
+ "complexType": {
76
+ "original": "string",
77
+ "resolved": "string",
78
+ "references": {}
79
+ },
80
+ "required": false,
81
+ "optional": false,
82
+ "docs": {
83
+ "tags": [],
84
+ "text": "Href"
85
+ },
86
+ "attribute": "href",
87
+ "reflect": false,
88
+ "defaultValue": "\"\""
89
+ },
90
+ "icon": {
91
+ "type": "string",
92
+ "mutable": true,
93
+ "complexType": {
94
+ "original": "DuetIconName",
95
+ "resolved": "string",
96
+ "references": {
97
+ "DuetIconName": {
98
+ "location": "import",
99
+ "path": "../../common-types"
100
+ }
101
+ }
102
+ },
103
+ "required": false,
104
+ "optional": false,
105
+ "docs": {
106
+ "tags": [],
107
+ "text": "Icon"
108
+ },
109
+ "attribute": "icon",
110
+ "reflect": false,
111
+ "defaultValue": "\"\""
112
+ },
113
+ "accessibleLabel": {
114
+ "type": "string",
115
+ "mutable": false,
116
+ "complexType": {
117
+ "original": "string",
118
+ "resolved": "string",
119
+ "references": {}
120
+ },
121
+ "required": false,
122
+ "optional": false,
123
+ "docs": {
124
+ "tags": [],
125
+ "text": "Adds accessible label for the link that is only shown for screen readers.\nTypically, this label text replaces the visible text on the link for users\nwho use assistive technology."
126
+ },
127
+ "attribute": "accessible-label",
128
+ "reflect": false
129
+ }
130
+ }; }
131
+ }
@@ -0,0 +1,63 @@
1
+ *,
2
+ *::after,
3
+ *::before {
4
+ box-sizing: border-box;
5
+ padding: 0;
6
+ margin: 0;
7
+ background: transparent;
8
+ border: 0;
9
+ -moz-appearance: none;
10
+ -webkit-appearance: none;
11
+ appearance: none;
12
+ }
13
+
14
+ :host {
15
+ box-sizing: border-box;
16
+ padding: 0;
17
+ margin: 0;
18
+ background: transparent;
19
+ border: 0;
20
+ -moz-appearance: none;
21
+ -webkit-appearance: none;
22
+ appearance: none;
23
+ display: block;
24
+ }
25
+
26
+ .duet-breadcrumbs {
27
+ font-family: "localtapiola-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
28
+ }
29
+ .duet-breadcrumbs ol {
30
+ display: flex;
31
+ flex-direction: row;
32
+ flex-wrap: wrap;
33
+ gap: 8px;
34
+ align-items: center;
35
+ justify-content: flex-start;
36
+ padding: 10px 16px;
37
+ color: #00294d;
38
+ list-style: none;
39
+ background: #f3f9fc;
40
+ border-bottom: 1px solid #e1e3e6;
41
+ }
42
+ @media (min-width: 62em) {
43
+ .duet-breadcrumbs ol {
44
+ padding: 10px 36px;
45
+ }
46
+ }
47
+ .duet-breadcrumbs.duet-theme-turva {
48
+ font-family: "turva-sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
49
+ }
50
+ .duet-breadcrumbs.duet-theme-turva ol {
51
+ color: #171c3a;
52
+ background: #fcf3f4;
53
+ }
54
+ .duet-breadcrumbs .duet-breadrumbs-arrow {
55
+ display: inherit;
56
+ align-items: center;
57
+ justify-content: center;
58
+ width: 0.375rem;
59
+ height: 0.375rem;
60
+ }
61
+ .duet-breadcrumbs .hide {
62
+ display: none;
63
+ }
@@ -0,0 +1,104 @@
1
+ /*!
2
+ * Built with Duet Design System
3
+ */
4
+ import arrowRightSmallIcon from "@duetds/icons/lib/assets/action-arrow-right-small";
5
+ import { Build, Component, Element, Fragment, h, Host, Prop, State } from "@stencil/core";
6
+ import { getLocaleString } from "../../utils/language-utils";
7
+ import { inheritGlobalTheme } from "../../utils/themeable-component";
8
+ export class DuetBreadcrumbs {
9
+ constructor() {
10
+ this.observers = [];
11
+ this.breadcrumbsAriaLabel = getLocaleString({
12
+ fi: "Murupolku",
13
+ sv: "Ströbröd",
14
+ en: "Breadcrumbs",
15
+ });
16
+ /**
17
+ * Theme
18
+ */
19
+ this.theme = "";
20
+ }
21
+ /**
22
+ * Component lifecycle events.
23
+ */
24
+ componentWillLoad() {
25
+ inheritGlobalTheme(this);
26
+ this.children = Array.from(this.element.children);
27
+ }
28
+ connectedCallback() {
29
+ if (Build.isServer) {
30
+ return;
31
+ }
32
+ Array.from(this.element.children).forEach(child => {
33
+ const observer = new MutationObserver(() => (this.children = Array.from(this.element.children)));
34
+ observer.observe(child, {
35
+ childList: true,
36
+ subtree: true,
37
+ attributes: true,
38
+ characterData: true,
39
+ });
40
+ this.observers = [...this.observers, observer];
41
+ });
42
+ }
43
+ disconnectedCallback() {
44
+ if (Build.isServer) {
45
+ return;
46
+ }
47
+ this.observers.forEach(observer => observer.disconnect());
48
+ this.observers = [];
49
+ }
50
+ /**
51
+ * render() function
52
+ * Always the last one in the class.
53
+ */
54
+ render() {
55
+ return (h(Host, null,
56
+ h("nav", { "aria-label": this.breadcrumbsAriaLabel, class: {
57
+ "duet-breadcrumbs": true,
58
+ "duet-theme-turva": this.theme === "turva",
59
+ } },
60
+ h("ol", null, this.children.map((child, index) => (h(Fragment, null,
61
+ index > 0 && (h("li", { "aria-hidden": "true" },
62
+ h("duet-icon", { class: "duet-breadrumbs-arrow", size: "auto", icon: arrowRightSmallIcon.svg, margin: "none", color: "currentColor" }))),
63
+ h("li", { innerHTML: child.outerHTML }),
64
+ h("div", { class: "hide" },
65
+ h("slot", null)))))))));
66
+ }
67
+ static get is() { return "duet-breadcrumbs"; }
68
+ static get encapsulation() { return "shadow"; }
69
+ static get originalStyleUrls() { return {
70
+ "$": ["duet-breadcrumbs.scss"]
71
+ }; }
72
+ static get styleUrls() { return {
73
+ "$": ["duet-breadcrumbs.css"]
74
+ }; }
75
+ static get properties() { return {
76
+ "theme": {
77
+ "type": "string",
78
+ "mutable": true,
79
+ "complexType": {
80
+ "original": "DuetTheme",
81
+ "resolved": "\"\" | \"default\" | \"turva\"",
82
+ "references": {
83
+ "DuetTheme": {
84
+ "location": "import",
85
+ "path": "../../common-types"
86
+ }
87
+ }
88
+ },
89
+ "required": false,
90
+ "optional": false,
91
+ "docs": {
92
+ "tags": [],
93
+ "text": "Theme"
94
+ },
95
+ "attribute": "theme",
96
+ "reflect": false,
97
+ "defaultValue": "\"\""
98
+ }
99
+ }; }
100
+ static get states() { return {
101
+ "children": {}
102
+ }; }
103
+ static get elementRef() { return "element"; }
104
+ }
@@ -330,6 +330,7 @@
330
330
  }
331
331
  .duet-button.destructive-primary:hover {
332
332
  background: #b21c4e;
333
+ border-color: #b21c4e;
333
334
  box-shadow: 0 4px 20px rgba(34, 34, 34, 0.1);
334
335
  }
335
336
  .duet-theme-turva .duet-button.destructive-primary:hover {
@@ -14,6 +14,18 @@ export const DuetBadge: {
14
14
  new (): DuetBadge;
15
15
  };
16
16
 
17
+ interface DuetBreadcrumb extends Components.DuetBreadcrumb, HTMLElement {}
18
+ export const DuetBreadcrumb: {
19
+ prototype: DuetBreadcrumb;
20
+ new (): DuetBreadcrumb;
21
+ };
22
+
23
+ interface DuetBreadcrumbs extends Components.DuetBreadcrumbs, HTMLElement {}
24
+ export const DuetBreadcrumbs: {
25
+ prototype: DuetBreadcrumbs;
26
+ new (): DuetBreadcrumbs;
27
+ };
28
+
17
29
  interface DuetButton extends Components.DuetButton, HTMLElement {}
18
30
  export const DuetButton: {
19
31
  prototype: DuetButton;
@@ -2,7 +2,7 @@
2
2
  * Built with Duet Design System
3
3
  */
4
4
  const NAMESPACE = 'duet';
5
- const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.2.9"};
5
+ const Env = /* duet */ {"cdnURILocal":"http://0.0.0.0:3334","cdnURIProd":"https://cdn.duetds.com/api","duetIconVersion":"2.2.10"};
6
6
 
7
7
  let scopeId;
8
8
  let contentRef;
@@ -1924,7 +1924,7 @@ let DuetBadge$1 = class extends H {
1924
1924
  }
1925
1925
  /**
1926
1926
  * render() function
1927
- * Always the last one in the class.
1927
+ * Always the last one of the class.
1928
1928
  */
1929
1929
  render() {
1930
1930
  return (h$1(Host, { class: { "duet-m-0": this.margin === "none" } }, h$1("div", { class: {
@@ -1936,6 +1936,102 @@ let DuetBadge$1 = class extends H {
1936
1936
  static get style() { return duetBadgeCss; }
1937
1937
  };
1938
1938
 
1939
+ const duetBreadcrumbCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block;width:100%}.duet-breadcrumb{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:100%;font-size:0.875rem;color:#00294d;text-decoration:none}.duet-breadcrumb:hover{color:#004d80}.duet-breadcrumb.duet-theme-turva{color:#171c3a}.duet-breadcrumb.duet-theme-turva:hover{color:#940925}.duet-breadcrumb:focus{outline:0}.duet-breadcrumb:active{opacity:0.75}:host(.user-is-tabbing) .duet-breadcrumb:focus{box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}:host(.user-is-tabbing) .duet-breadcrumb.duet-theme-turva:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}";
1940
+
1941
+ let DuetBreadcrumb$1 = class extends H {
1942
+ constructor() {
1943
+ super();
1944
+ this.__registerHost();
1945
+ this.__attachShadow();
1946
+ /**
1947
+ * Theme
1948
+ */
1949
+ this.theme = "";
1950
+ /**
1951
+ * Href
1952
+ */
1953
+ this.href = "";
1954
+ /**
1955
+ * Icon
1956
+ */
1957
+ this.icon = "";
1958
+ }
1959
+ /**
1960
+ * Component lifecycle events.
1961
+ */
1962
+ componentWillLoad() {
1963
+ inheritGlobalTheme(this);
1964
+ }
1965
+ /**
1966
+ * render() function
1967
+ * Always the last one in the class.
1968
+ */
1969
+ render() {
1970
+ return (h$1(Host, null, h$1("a", { class: {
1971
+ "duet-breadcrumb": true,
1972
+ "duet-theme-turva": this.theme === "turva",
1973
+ }, href: this.href, "aria-label": this.accessibleLabel }, this.icon && h$1("duet-icon", { size: "x-small", name: this.icon, margin: "none", color: "currentColor" }), !this.icon && h$1("slot", null))));
1974
+ }
1975
+ static get style() { return duetBreadcrumbCss; }
1976
+ };
1977
+
1978
+ var actionArrowRightSmall={"title":"action-arrow-right-small","tags":"action arrow right small caret","svg":"<svg fill=\"currentColor\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\"><path d=\"M19.5 12a2.3 2.3 0 0 1-.78 1.729L7.568 23.54a1.847 1.847 0 0 1-2.439-2.773l9.752-8.579a.25.25 0 0 0 0-.376L5.129 3.233A1.847 1.847 0 0 1 7.568.46l11.148 9.808A2.31 2.31 0 0 1 19.5 12z\"/></svg>"};
1979
+
1980
+ const duetBreadcrumbsCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;display:block}.duet-breadcrumbs{font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-breadcrumbs ol{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start;padding:10px 16px;color:#00294d;list-style:none;background:#f3f9fc;border-bottom:1px solid #e1e3e6}@media (min-width: 62em){.duet-breadcrumbs ol{padding:10px 36px}}.duet-breadcrumbs.duet-theme-turva{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}.duet-breadcrumbs.duet-theme-turva ol{color:#171c3a;background:#fcf3f4}.duet-breadcrumbs .duet-breadrumbs-arrow{display:inherit;align-items:center;justify-content:center;width:0.375rem;height:0.375rem}.duet-breadcrumbs .hide{display:none}";
1981
+
1982
+ let DuetBreadcrumbs$1 = class extends H {
1983
+ constructor() {
1984
+ super();
1985
+ this.__registerHost();
1986
+ this.__attachShadow();
1987
+ this.observers = [];
1988
+ this.breadcrumbsAriaLabel = getLocaleString({
1989
+ fi: "Murupolku",
1990
+ sv: "Ströbröd",
1991
+ en: "Breadcrumbs",
1992
+ });
1993
+ /**
1994
+ * Theme
1995
+ */
1996
+ this.theme = "";
1997
+ }
1998
+ /**
1999
+ * Component lifecycle events.
2000
+ */
2001
+ componentWillLoad() {
2002
+ inheritGlobalTheme(this);
2003
+ this.children = Array.from(this.element.children);
2004
+ }
2005
+ connectedCallback() {
2006
+ Array.from(this.element.children).forEach(child => {
2007
+ const observer = new MutationObserver(() => (this.children = Array.from(this.element.children)));
2008
+ observer.observe(child, {
2009
+ childList: true,
2010
+ subtree: true,
2011
+ attributes: true,
2012
+ characterData: true,
2013
+ });
2014
+ this.observers = [...this.observers, observer];
2015
+ });
2016
+ }
2017
+ disconnectedCallback() {
2018
+ this.observers.forEach(observer => observer.disconnect());
2019
+ this.observers = [];
2020
+ }
2021
+ /**
2022
+ * render() function
2023
+ * Always the last one in the class.
2024
+ */
2025
+ render() {
2026
+ return (h$1(Host, null, h$1("nav", { "aria-label": this.breadcrumbsAriaLabel, class: {
2027
+ "duet-breadcrumbs": true,
2028
+ "duet-theme-turva": this.theme === "turva",
2029
+ } }, h$1("ol", null, this.children.map((child, index) => (h$1(Fragment, null, index > 0 && (h$1("li", { "aria-hidden": "true" }, h$1("duet-icon", { class: "duet-breadrumbs-arrow", size: "auto", icon: actionArrowRightSmall.svg, margin: "none", color: "currentColor" }))), h$1("li", { innerHTML: child.outerHTML }), h$1("div", { class: "hide" }, h$1("slot", null)))))))));
2030
+ }
2031
+ get element() { return this; }
2032
+ static get style() { return duetBreadcrumbsCss; }
2033
+ };
2034
+
1939
2035
  const DuetStringsExternalDefaults = {
1940
2036
  fi: "Avautuu uuteen ikkunaan",
1941
2037
  sv: "Öppnas i nytt fönster",
@@ -2310,7 +2406,7 @@ function convertToColorName(name = "", theme = "") {
2310
2406
  return colorResolution;
2311
2407
  }
2312
2408
 
2313
- const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}:host:last-child,:host:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.duet-small){margin-right:2px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host(.duet-small){width:auto}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;width:100%}.duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}.duet-button.duet-p-0{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon{padding-left:48px !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}.duet-theme-turva .duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}.duet-button .duet-button-contents{position:relative;display:inline-block;margin:0 auto;pointer-events:none}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button.icon{padding-left:52px !important}.duet-button.icon-right{padding-right:52px !important;padding-left:28px !important}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}.duet-button .duet-button-icon duet-icon{width:16px;height:16px}.duet-button .duet-button-icon.right{right:-28px;left:auto}.duet-button .duet-button-icon.large{left:-32px;width:20px;height:20px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.large.right{right:-32px;left:auto}.duet-button .duet-button-icon.medium-small{left:-16px;width:10px;height:10px;padding-top:1px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.medium-small.right{right:-16px;left:auto}.duet-button .duet-button-icon.small{left:-16px;width:7px;height:7px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button .duet-button-icon.small.right{right:-16px;left:auto}.duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-button:active{opacity:0.75;transition:none}.duet-button.default{border-color:#e1e3e6}.duet-theme-turva .duet-button.default{color:#c60c30 !important;border-color:#e4e4e6}.duet-button.default:hover{border-color:#0077b3}.duet-theme-turva .duet-button.default:hover{border-color:#c60c30}.duet-button.default.duet-button-negative{background-color:white}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:#e4e4e6 !important}.duet-button.default.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.primary{color:white !important;background:#0077b3;border-color:#0077b3}.duet-theme-turva .duet-button.primary{color:white !important;background:#c60c30;border-color:#c60c30}.duet-button.primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.primary:hover{background:#940925;border-color:#940925}.duet-button.primary:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}.duet-theme-turva .duet-button.primary:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}.duet-button.secondary{color:#00294d !important;background:transparent;border-color:#00294d}.duet-theme-turva .duet-button.secondary{color:#171c3a !important;border-color:#171c3a}.duet-button.secondary:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.secondary.duet-button-negative{color:#e1e3e6 !important;border-color:white}.duet-theme-turva .duet-button.secondary.duet-button-negative{color:#e4e4e6 !important}.duet-button.secondary.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.negative{color:#00294d !important;background:white;border-color:white}.duet-theme-turva .duet-button.negative{color:#171c3a !important}.duet-button.negative:hover{color:white !important;background:transparent;border-color:white}.duet-button.negative:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-theme-turva .duet-button.negative:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-button.destructive-primary{color:white !important;background:#de2362;border-color:#de2362}.duet-theme-turva .duet-button.destructive-primary{color:white !important;background:#e02a0d;border-color:#e02a0d}.duet-button.destructive-primary:hover{background:#b21c4e;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.destructive-primary:hover{background:#b3220a}.duet-button.destructive,.duet-button.destructive-secondary{color:#de2362 !important;background:white;border-color:#de2362}.duet-theme-turva .duet-button.destructive,.duet-theme-turva .duet-button.destructive-secondary{color:#e02a0d !important;background:white;border-color:#e02a0d}.duet-button.destructive:hover,.duet-button.destructive-secondary:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}.duet-theme-turva .duet-button.destructive:hover,.duet-theme-turva .duet-button.destructive-secondary:hover{color:white !important;background:#b3220a;border-color:#b3220a}.duet-button.plain{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}.duet-theme-turva .duet-button.plain{color:#c60c30 !important;background:transparent;border-color:transparent}.duet-button.plain.icon{padding-left:20px !important}.duet-button.plain.icon.icon-right{padding-right:20px !important;padding-left:0 !important}.duet-button.plain.icon.medium{padding-left:24px !important}.duet-button.plain.icon.medium.icon-right{padding-right:24px !important;padding-left:0 !important}.duet-button.plain.icon.large{padding-left:30px !important}.duet-button.plain.icon.large.icon-right{padding-right:30px !important;padding-left:0 !important}.duet-button.plain .duet-button-icon.left{left:-16.6666666667px !important}.duet-button.plain .duet-button-icon.left.medium{left:-24px !important}.duet-button.plain .duet-button-icon.left.large{left:-30px !important}.duet-button.plain .duet-button-icon.right{right:-16.6666666667px !important}.duet-button.plain .duet-button-icon.right.medium{right:-24px !important}.duet-button.plain .duet-button-icon.right.large{right:-30px !important}.duet-button.plain[disabled]{color:#657787 !important;background:transparent !important;border-color:transparent !important}.duet-theme-turva .duet-button.plain[disabled]{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}.duet-button.plain:hover{color:#004d80 !important;background:transparent !important}.duet-theme-turva .duet-button.plain:hover{color:#940925 !important}.duet-button.plain.duet-button-negative{color:white !important}.duet-theme-turva .duet-button.plain.duet-button-negative{color:#e4e4e6 !important}.duet-button.plain.duet-button-negative:hover{color:#0077b3 !important}.duet-theme-turva .duet-button.plain.duet-button-negative:hover{color:#c60c30 !important}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button[disabled],.duet-button[disabled]:hover,.duet-button.duet-button-negative[disabled],.duet-button.duet-button-negative[disabled]:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}.duet-theme-turva .duet-button[disabled],.duet-theme-turva .duet-button[disabled]:hover,.duet-theme-turva .duet-button.duet-button-negative [disabled],.duet-theme-turva .duet-button.duet-button-negative [disabled]:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-button-is-loading.primary{color:white}.duet-button-is-loading.default{color:#0077b3}.duet-button-is-loading.default.duet-theme-turva{color:#c60c30}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}";
2409
+ const duetButtonCss = "*,*::after,*::before{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none}:host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;margin-right:8px !important;margin-bottom:12px !important;position:relative;z-index:1;display:inline-flex;width:auto;max-width:100%;vertical-align:bottom;-webkit-tap-highlight-color:transparent}:host:last-child,:host:last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host{width:100%}}:host(.duet-small){margin-right:2px !important;margin-bottom:8px !important}:host(.duet-small):last-child,:host(.duet-small):last-of-type{margin-right:0 !important}@media (max-width: 35.9375em){:host(.duet-small){width:auto}}:host(.duet-expand){width:100% !important}:host(.duet-m-0){margin:0 !important}:host(.duet-fixed){width:auto !important}:host(:last-child){margin-right:0 !important}.duet-button-container{position:relative;width:100%}.duet-button{padding:14px 27px 15px !important;-webkit-user-select:none;user-select:none;position:relative;z-index:100;display:block;width:100%;min-width:8rem;font-family:\"localtapiola-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums;-webkit-hyphens:auto;hyphens:auto;line-height:1.1;color:#0077b3 !important;text-align:center;text-decoration:none;cursor:pointer;background:transparent;border-style:solid;border-width:2px;border-radius:20rem;transition:background-color 300ms ease, color 300ms ease, border 300ms ease, box-shadow 300ms ease}.duet-button.duet-p-0{padding:0 !important}.duet-button.duet-m-0{margin:0 !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only){padding:9px 19px 10px !important;min-width:5.3333333333rem;font-size:0.875rem}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon{padding-left:48px !important}.duet-button.duet-button-is-small:not(.duet-button-icon-only).icon-right{padding-right:48px !important;padding-left:20px !important}.duet-theme-turva .duet-button{font-family:\"turva-sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#c60c30 !important}.duet-button .duet-button-contents{position:relative;display:inline-block;margin:0 auto;pointer-events:none}.duet-button.duet-no-wrap{white-space:nowrap}.duet-button.icon{padding-left:52px !important}.duet-button.icon-right{padding-right:52px !important;padding-left:28px !important}.duet-button svg{width:100%;min-width:100%;fill:currentColor}.duet-button .duet-button-icon{position:absolute;top:50%;left:-28px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin:0 !important;transform:translateY(-50%)}.duet-button .duet-button-icon duet-icon{width:16px;height:16px}.duet-button .duet-button-icon.right{right:-28px;left:auto}.duet-button .duet-button-icon.large{left:-32px;width:20px;height:20px}.duet-button .duet-button-icon.large duet-icon{width:20px;height:20px}.duet-button .duet-button-icon.large.right{right:-32px;left:auto}.duet-button .duet-button-icon.medium-small{left:-16px;width:10px;height:10px;padding-top:1px}.duet-button .duet-button-icon.medium-small duet-icon{width:10px;height:10px}.duet-button .duet-button-icon.medium-small.right{right:-16px;left:auto}.duet-button .duet-button-icon.small{left:-16px;width:7px;height:7px}.duet-button .duet-button-icon.small duet-icon{width:7px;height:7px}.duet-button .duet-button-icon.small.right{right:-16px;left:auto}.duet-button:focus{outline:0;box-shadow:0 0 0 4px rgba(0, 119, 179, 0.3), 0 0 0 1px #0077b3}.duet-theme-turva .duet-button:focus{box-shadow:0 0 0 4px rgba(23, 28, 58, 0.2), 0 0 0 1px #171c3a}.duet-button:active{opacity:0.75;transition:none}.duet-button.default{border-color:#e1e3e6}.duet-theme-turva .duet-button.default{color:#c60c30 !important;border-color:#e4e4e6}.duet-button.default:hover{border-color:#0077b3}.duet-theme-turva .duet-button.default:hover{border-color:#c60c30}.duet-button.default.duet-button-negative{background-color:white}.duet-theme-turva .duet-button.default.duet-button-negative{background-color:#e4e4e6 !important}.duet-button.default.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.default.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.primary{color:white !important;background:#0077b3;border-color:#0077b3}.duet-theme-turva .duet-button.primary{color:white !important;background:#c60c30;border-color:#c60c30}.duet-button.primary:hover{background:#005f8f;border-color:#005f8f;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.primary:hover{background:#940925;border-color:#940925}.duet-button.primary:focus{outline:0;box-shadow:0 0 0 1px white, 0 0 0 4px rgba(0, 119, 179, 0.75)}.duet-theme-turva .duet-button.primary:focus{box-shadow:0 0 0 1px white, 0 0 0 4px rgba(23, 28, 58, 0.7)}.duet-button.secondary{color:#00294d !important;background:transparent;border-color:#00294d}.duet-theme-turva .duet-button.secondary{color:#171c3a !important;border-color:#171c3a}.duet-button.secondary:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.secondary.duet-button-negative{color:#e1e3e6 !important;border-color:white}.duet-theme-turva .duet-button.secondary.duet-button-negative{color:#e4e4e6 !important}.duet-button.secondary.duet-button-negative:hover{color:#0077b3 !important;border-color:#0077b3}.duet-theme-turva .duet-button.secondary.duet-button-negative:hover{color:#c60c30 !important;border-color:#c60c30}.duet-button.negative{color:#00294d !important;background:white;border-color:white}.duet-theme-turva .duet-button.negative{color:#171c3a !important}.duet-button.negative:hover{color:white !important;background:transparent;border-color:white}.duet-button.negative:focus{outline:0;box-shadow:0 0 0 1px #00294d, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-theme-turva .duet-button.negative:focus{box-shadow:0 0 0 1px #171c3a, 0 0 0 4px rgba(255, 255, 255, 0.7)}.duet-button.destructive-primary{color:white !important;background:#de2362;border-color:#de2362}.duet-theme-turva .duet-button.destructive-primary{color:white !important;background:#e02a0d;border-color:#e02a0d}.duet-button.destructive-primary:hover{background:#b21c4e;border-color:#b21c4e;box-shadow:0 4px 20px rgba(34, 34, 34, 0.1)}.duet-theme-turva .duet-button.destructive-primary:hover{background:#b3220a}.duet-button.destructive,.duet-button.destructive-secondary{color:#de2362 !important;background:white;border-color:#de2362}.duet-theme-turva .duet-button.destructive,.duet-theme-turva .duet-button.destructive-secondary{color:#e02a0d !important;background:white;border-color:#e02a0d}.duet-button.destructive:hover,.duet-button.destructive-secondary:hover{color:white !important;background:#b21c4e;border-color:#b21c4e}.duet-theme-turva .duet-button.destructive:hover,.duet-theme-turva .duet-button.destructive-secondary:hover{color:white !important;background:#b3220a;border-color:#b3220a}.duet-button.plain{min-width:48px;padding-right:0 !important;padding-left:0 !important;line-height:1.5;text-align:left;background:transparent;border:0;border-color:transparent;border-radius:4px}.duet-theme-turva .duet-button.plain{color:#c60c30 !important;background:transparent;border-color:transparent}.duet-button.plain.icon{padding-left:20px !important}.duet-button.plain.icon.icon-right{padding-right:20px !important;padding-left:0 !important}.duet-button.plain.icon.medium{padding-left:24px !important}.duet-button.plain.icon.medium.icon-right{padding-right:24px !important;padding-left:0 !important}.duet-button.plain.icon.large{padding-left:30px !important}.duet-button.plain.icon.large.icon-right{padding-right:30px !important;padding-left:0 !important}.duet-button.plain .duet-button-icon.left{left:-16.6666666667px !important}.duet-button.plain .duet-button-icon.left.medium{left:-24px !important}.duet-button.plain .duet-button-icon.left.large{left:-30px !important}.duet-button.plain .duet-button-icon.right{right:-16.6666666667px !important}.duet-button.plain .duet-button-icon.right.medium{right:-24px !important}.duet-button.plain .duet-button-icon.right.large{right:-30px !important}.duet-button.plain[disabled]{color:#657787 !important;background:transparent !important;border-color:transparent !important}.duet-theme-turva .duet-button.plain[disabled]{color:transparent !important;background:transparent !important;border-color:#e4e4e6 !important}.duet-button.plain:hover{color:#004d80 !important;background:transparent !important}.duet-theme-turva .duet-button.plain:hover{color:#940925 !important}.duet-button.plain.duet-button-negative{color:white !important}.duet-theme-turva .duet-button.plain.duet-button-negative{color:#e4e4e6 !important}.duet-button.plain.duet-button-negative:hover{color:#0077b3 !important}.duet-theme-turva .duet-button.plain.duet-button-negative:hover{color:#c60c30 !important}.duet-button.duet-button-icon-only{min-width:48px;min-height:48px;padding:0 !important}.duet-button.duet-button-icon-only .duet-button-contents{position:static}.duet-button.duet-button-icon-only .duet-button-icon.left.large,.duet-button.duet-button-icon-only .duet-button-icon.left.medium,.duet-button.duet-button-icon-only .duet-button-icon.left.small{position:absolute;top:50% !important;left:50% !important;padding:0;margin:0;transform:translateX(-50%) translateY(-50%)}.duet-button[disabled],.duet-button[disabled]:hover,.duet-button.duet-button-negative[disabled],.duet-button.duet-button-negative[disabled]:hover{color:#657787 !important;background:#e1e3e6 !important;border-color:#e1e3e6 !important;box-shadow:none !important}.duet-theme-turva .duet-button[disabled],.duet-theme-turva .duet-button[disabled]:hover,.duet-theme-turva .duet-button.duet-button-negative [disabled],.duet-theme-turva .duet-button.duet-button-negative [disabled]:hover{color:#747475 !important;background:#e4e4e6 !important;border-color:#e4e4e6 !important}.duet-button-is-loading.primary{color:white}.duet-button-is-loading.default{color:#0077b3}.duet-button-is-loading.default.duet-theme-turva{color:#c60c30}.duet-button-is-loading .duet-button-contents{visibility:hidden;opacity:0}";
2314
2410
 
2315
2411
  let DuetButton$1 = class extends H {
2316
2412
  constructor() {
@@ -11664,6 +11760,8 @@ let DuetVisuallyHidden$1 = class extends H {
11664
11760
  globalScripts();
11665
11761
  const DuetAlert = /*@__PURE__*/proxyCustomElement(DuetAlert$1, [1,"duet-alert",{"theme":[1025],"accessibleLabelDefaults":[1,"accessible-label-default"],"accessibleLabel":[1,"accessible-label"],"announcements":[4],"icon":[1],"autoDismiss":[2,"auto-dismiss"],"margin":[1],"padding":[1],"variation":[1],"dismissible":[4],"isDismissed":[32],"timeoutID":[32]}]);
11666
11762
  const DuetBadge = /*@__PURE__*/proxyCustomElement(DuetBadge$1, [1,"duet-badge",{"theme":[1025],"variation":[1],"margin":[1]}]);
11763
+ const DuetBreadcrumb = /*@__PURE__*/proxyCustomElement(DuetBreadcrumb$1, [1,"duet-breadcrumb",{"theme":[1025],"href":[1025],"icon":[1025],"accessibleLabel":[1,"accessible-label"]}]);
11764
+ const DuetBreadcrumbs = /*@__PURE__*/proxyCustomElement(DuetBreadcrumbs$1, [1,"duet-breadcrumbs",{"theme":[1025],"children":[32]}]);
11667
11765
  const DuetButton = /*@__PURE__*/proxyCustomElement(DuetButton$1, [1,"duet-button",{"accessibleLabel":[1,"accessible-label"],"accessibleControls":[1,"accessible-controls"],"accessibleActiveDescendant":[1,"accessible-active-descendant"],"accessibleOwns":[1,"accessible-owns"],"accessibleDescribedBy":[1,"accessible-described-by"],"accessibleExpanded":[4,"accessible-expanded"],"accessiblePressed":[4,"accessible-pressed"],"loading":[4],"variation":[1],"negative":[4],"theme":[1025],"margin":[1],"padding":[1],"wrapping":[1],"expand":[4],"fixed":[4],"disabled":[516],"name":[1],"value":[1],"identifier":[1],"submit":[516],"external":[4],"language":[1],"accessibleLabelExternalDefaults":[1,"accessible-label-external-default"],"accessibleLabelExternal":[1,"accessible-label-external"],"icon":[1],"color":[1],"iconRight":[4,"icon-right"],"iconSize":[1,"icon-size"],"size":[1],"iconOnly":[4,"icon-only"],"url":[513]}]);
11668
11766
  const DuetCaption = /*@__PURE__*/proxyCustomElement(DuetCaption$1, [1,"duet-caption",{"theme":[1025],"margin":[1],"selected":[4],"size":[1]}]);
11669
11767
  const DuetCard = /*@__PURE__*/proxyCustomElement(DuetCard$1, [1,"duet-card",{"accessibleLabel":[1,"accessible-label"],"heading":[1],"secondaryHeading":[1,"secondary-heading"],"variation":[1],"collapsible":[4],"open":[1540],"headingLevel":[1,"heading-level"],"icon":[1],"image":[1],"background":[1],"padding":[1],"margin":[1],"theme":[1025],"url":[1]}]);
@@ -11722,6 +11820,8 @@ const defineCustomElements = (opts) => {
11722
11820
  [
11723
11821
  DuetAlert,
11724
11822
  DuetBadge,
11823
+ DuetBreadcrumb,
11824
+ DuetBreadcrumbs,
11725
11825
  DuetButton,
11726
11826
  DuetCaption,
11727
11827
  DuetCard,
@@ -12175,4 +12275,4 @@ const shadowCss = /*#__PURE__*/Object.freeze({
12175
12275
  scopeCss: scopeCss
12176
12276
  });
12177
12277
 
12178
- export { DuetAlert, DuetBadge, DuetButton, DuetCaption, DuetCard, DuetCheckbox, DuetChoice, DuetChoiceGroup, DuetCollapsible, DuetCookieConsent, DuetDatePicker, DuetDivider, DuetEditableTable, DuetEditableTableButton, DuetEditableTableItem, DuetEmptyState, DuetFieldset, DuetFooter, DuetGrid, DuetGridItem, DuetHeader, DuetHeading, DuetHero, DuetIcon, DuetInput, DuetLabel, DuetLayout, DuetLink, DuetList, DuetListItem, DuetLogo, DuetModal, DuetNotification, DuetNotificationDrawer, DuetNumberInput, DuetParagraph, DuetProgress, DuetRadio, DuetRadioGroup, DuetRangeSlider, DuetSelect, DuetSpacer, DuetSpinner, DuetStep, DuetStepper, DuetTab, DuetTabGroup, DuetTable, DuetTextarea, DuetToggle, DuetTooltip, DuetTray, DuetUpload, DuetUploadAriaStatus, DuetVisuallyHidden, defineCustomElements, setAssetPath, setPlatformOptions };
12278
+ export { DuetAlert, DuetBadge, DuetBreadcrumb, DuetBreadcrumbs, DuetButton, DuetCaption, DuetCard, DuetCheckbox, DuetChoice, DuetChoiceGroup, DuetCollapsible, DuetCookieConsent, DuetDatePicker, DuetDivider, DuetEditableTable, DuetEditableTableButton, DuetEditableTableItem, DuetEmptyState, DuetFieldset, DuetFooter, DuetGrid, DuetGridItem, DuetHeader, DuetHeading, DuetHero, DuetIcon, DuetInput, DuetLabel, DuetLayout, DuetLink, DuetList, DuetListItem, DuetLogo, DuetModal, DuetNotification, DuetNotificationDrawer, DuetNumberInput, DuetParagraph, DuetProgress, DuetRadio, DuetRadioGroup, DuetRangeSlider, DuetSelect, DuetSpacer, DuetSpinner, DuetStep, DuetStepper, DuetTab, DuetTabGroup, DuetTable, DuetTextarea, DuetToggle, DuetTooltip, DuetTray, DuetUpload, DuetUploadAriaStatus, DuetVisuallyHidden, defineCustomElements, setAssetPath, setPlatformOptions };