@swisspost/design-system-components 10.4.0 → 10.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 (340) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/breakpoints-Kruvy8Dm.js +47 -0
  3. package/dist/cjs/{create-validator-decorator-BtgLWaMJ.js → create-validator-decorator-Cy5yN6u9.js} +1 -1
  4. package/dist/cjs/{event-from-CwMw19f8.js → event-from-CTcQxB9-.js} +19 -13
  5. package/dist/cjs/{index-CW10QvjR.js → index-B3PXzvDk.js} +1 -1
  6. package/dist/cjs/{breakpoints-B0Olgvgc.js → index-CggFmZ8n.js} +0 -42
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/cjs/{one-of-vJeW7S4_.js → one-of-CRFrfihj.js} +1 -1
  9. package/dist/cjs/{package-CL8OSAS4.js → package-pKyFPwiA.js} +1 -1
  10. package/dist/cjs/{pattern-Zmn3wpyp.js → pattern-D329DFcf.js} +1 -1
  11. package/dist/cjs/post-accordion_2.cjs.entry.js +7 -7
  12. package/dist/cjs/post-autocomplete.cjs.entry.js +70 -55
  13. package/dist/cjs/post-avatar.cjs.entry.js +7 -7
  14. package/dist/cjs/post-back-to-top.cjs.entry.js +25 -13
  15. package/dist/cjs/post-banner.cjs.entry.js +6 -13
  16. package/dist/cjs/post-breadcrumb-item.cjs.entry.js +42 -12
  17. package/dist/cjs/post-breadcrumbs.cjs.entry.js +222 -71
  18. package/dist/cjs/post-closebutton_14.cjs.entry.js +431 -233
  19. package/dist/cjs/post-collapsible_2.cjs.entry.js +9 -9
  20. package/dist/cjs/post-components.cjs.js +2 -2
  21. package/dist/cjs/post-date-picker.cjs.entry.js +18 -16
  22. package/dist/cjs/post-footer.cjs.entry.js +8 -8
  23. package/dist/cjs/post-linkarea.cjs.entry.js +3 -3
  24. package/dist/cjs/post-listbox-option.cjs.entry.js +4 -4
  25. package/dist/cjs/post-listbox.cjs.entry.js +6 -6
  26. package/dist/cjs/post-number-input.cjs.entry.js +7 -6
  27. package/dist/cjs/post-pagination.cjs.entry.js +6 -6
  28. package/dist/cjs/post-popover-trigger.cjs.entry.js +8 -8
  29. package/dist/cjs/post-popover.cjs.entry.js +11 -11
  30. package/dist/cjs/post-progressbar.cjs.entry.js +5 -5
  31. package/dist/cjs/post-rating.cjs.entry.js +7 -7
  32. package/dist/cjs/post-side-navigation-trigger.cjs.entry.js +8 -8
  33. package/dist/cjs/post-side-navigation.cjs.entry.js +9 -9
  34. package/dist/cjs/post-stepper-item.cjs.entry.js +3 -3
  35. package/dist/cjs/post-stepper.cjs.entry.js +8 -8
  36. package/dist/cjs/post-tab-item.cjs.entry.js +7 -7
  37. package/dist/cjs/post-tab-panel.cjs.entry.js +7 -7
  38. package/dist/cjs/post-tabs.cjs.entry.js +9 -9
  39. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +8 -8
  40. package/dist/cjs/post-tooltip.cjs.entry.js +6 -6
  41. package/dist/cjs/{required-DRnPokVn.js → required-DhAEd0c7.js} +1 -1
  42. package/dist/cjs/{type-CNcU_-B2.js → type-2Ma9dvHs.js} +1 -1
  43. package/dist/cjs/{url-DgJ3lXQz.js → url-DePscsTj.js} +1 -1
  44. package/dist/collection/components/post-autocomplete/post-autocomplete.js +65 -50
  45. package/dist/collection/components/post-back-to-top/post-back-to-top.js +19 -7
  46. package/dist/collection/components/post-banner/post-banner.js +2 -17
  47. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +1 -1
  48. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +59 -4
  49. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.css +1 -1
  50. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +249 -71
  51. package/dist/collection/components/post-closebutton/post-closebutton.js +7 -8
  52. package/dist/collection/components/post-collapsible/post-collapsible.js +1 -1
  53. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +2 -2
  54. package/dist/collection/components/post-date-picker/native-mask-element.js +1 -1
  55. package/dist/collection/components/post-date-picker/post-date-picker.js +11 -9
  56. package/dist/collection/components/post-footer/post-footer.js +2 -2
  57. package/dist/collection/components/post-header/post-header.js +2 -2
  58. package/dist/collection/components/post-icon/post-icon.js +1 -1
  59. package/dist/collection/components/post-language-menu/post-language-menu.js +1 -1
  60. package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
  61. package/dist/collection/components/post-listbox/post-listbox.js +2 -2
  62. package/dist/collection/components/post-listbox-option/post-listbox-option.js +2 -2
  63. package/dist/collection/components/post-logo/post-logo.js +1 -1
  64. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +1 -1
  65. package/dist/collection/components/post-megadropdown/post-megadropdown.js +3 -3
  66. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +1 -1
  67. package/dist/collection/components/post-menu/post-menu.js +23 -8
  68. package/dist/collection/components/post-menu-item/post-menu-item.css +1 -1
  69. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
  70. package/dist/collection/components/post-number-input/post-number-input.js +2 -2
  71. package/dist/collection/components/post-popover/post-popover.css +1 -1
  72. package/dist/collection/components/post-popover/post-popover.js +4 -4
  73. package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +3 -3
  74. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +71 -43
  75. package/dist/collection/components/post-progressbar/post-progressbar.js +1 -1
  76. package/dist/collection/components/post-rating/post-rating.js +1 -1
  77. package/dist/collection/components/post-side-navigation/post-side-navigation.css +1 -1
  78. package/dist/collection/components/post-side-navigation/post-side-navigation.js +1 -1
  79. package/dist/collection/components/post-side-navigation-trigger/post-side-navigation-trigger.js +1 -1
  80. package/dist/collection/components/post-stepper/post-stepper.js +1 -1
  81. package/dist/collection/components/post-stepper-item/post-stepper-item.js +1 -1
  82. package/dist/collection/components/post-tab-item/post-tab-item.js +2 -2
  83. package/dist/collection/components/post-tab-panel/post-tab-panel.js +1 -1
  84. package/dist/collection/components/post-tabs/post-tabs.css +1 -1
  85. package/dist/collection/components/post-tabs/post-tabs.js +2 -2
  86. package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
  87. package/dist/collection/components/post-tooltip/post-tooltip.js +2 -2
  88. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +2 -2
  89. package/dist/collection/utils/breakpoints.js +11 -9
  90. package/dist/collection/utils/closable-target.js +38 -0
  91. package/dist/collection/utils/event-from.js +18 -13
  92. package/dist/collection/utils/floating-ui.js +72 -0
  93. package/dist/collection/utils/index.js +1 -0
  94. package/dist/components/breakpoints.js +1 -1
  95. package/dist/components/event-from.js +1 -1
  96. package/dist/components/index2.js +1 -0
  97. package/dist/components/package.js +1 -1
  98. package/dist/components/post-autocomplete.js +1 -1
  99. package/dist/components/post-back-to-top.js +1 -1
  100. package/dist/components/post-banner.js +1 -1
  101. package/dist/components/post-breadcrumb-item.js +1 -1
  102. package/dist/components/post-breadcrumbs.js +1 -1
  103. package/dist/components/post-closebutton2.js +1 -1
  104. package/dist/components/post-collapsible-trigger2.js +1 -1
  105. package/dist/components/post-collapsible2.js +1 -1
  106. package/dist/components/post-date-picker.js +1 -1
  107. package/dist/components/post-footer.js +1 -1
  108. package/dist/components/post-header.js +1 -1
  109. package/dist/components/post-icon2.js +1 -1
  110. package/dist/components/post-linkarea.js +1 -1
  111. package/dist/components/post-listbox-option.js +1 -1
  112. package/dist/components/post-listbox.js +1 -1
  113. package/dist/components/post-logo.js +1 -1
  114. package/dist/components/post-mainnavigation.js +1 -1
  115. package/dist/components/post-megadropdown-trigger.js +1 -1
  116. package/dist/components/post-megadropdown.js +1 -1
  117. package/dist/components/post-menu-item2.js +1 -1
  118. package/dist/components/post-menu-trigger2.js +1 -1
  119. package/dist/components/post-menu2.js +1 -1
  120. package/dist/components/post-number-input.js +1 -1
  121. package/dist/components/post-popover-trigger.js +1 -1
  122. package/dist/components/post-popover.js +1 -1
  123. package/dist/components/post-popovercontainer2.js +1 -1
  124. package/dist/components/post-progressbar.js +1 -1
  125. package/dist/components/post-rating.js +1 -1
  126. package/dist/components/post-side-navigation-trigger.js +1 -1
  127. package/dist/components/post-side-navigation.js +1 -1
  128. package/dist/components/post-stepper-item.js +1 -1
  129. package/dist/components/post-stepper.js +1 -1
  130. package/dist/components/post-tab-item.js +1 -1
  131. package/dist/components/post-tab-panel.js +1 -1
  132. package/dist/components/post-tabs.js +1 -1
  133. package/dist/components/post-togglebutton2.js +1 -1
  134. package/dist/components/post-tooltip-trigger.js +1 -1
  135. package/dist/components/post-tooltip.js +1 -1
  136. package/dist/components/react/index.js +1 -1
  137. package/dist/components/react/{p-Bwko4UKh.js → p-3RU9XwVO.js} +1 -1
  138. package/dist/components/react/p-5LuCes5o.js +1 -0
  139. package/dist/components/react/p-B1TcktiB.js +1 -0
  140. package/dist/components/react/{p-4wtxqxXu.js → p-B2jsM_Ov.js} +1 -1
  141. package/dist/components/react/p-BEcxHjuM.js +1 -0
  142. package/dist/components/react/p-BN2dfUQ0.js +1 -0
  143. package/dist/components/react/p-BPUhha1U.js +1 -0
  144. package/dist/{post-components/p-C-lLRsYC.js → components/react/p-BdLRXQqY.js} +1 -1
  145. package/dist/components/react/{p-BSb74xQy.js → p-Bnb_TyDh.js} +1 -1
  146. package/dist/components/react/p-CVVXnYLU.js +1 -0
  147. package/dist/components/react/{p-9RCG8BWM.js → p-CcDLIogT.js} +1 -1
  148. package/dist/components/react/{p-CSmrQ__L.js → p-CdggfEzz.js} +1 -1
  149. package/dist/components/react/p-CnN4Jdtv.js +1 -0
  150. package/dist/components/react/{p-D-imniYA.js → p-CzsG0uCA.js} +1 -1
  151. package/dist/components/react/p-DeO0rZ1T.js +1 -0
  152. package/dist/components/react/p-DffT6evQ.js +1 -0
  153. package/dist/components/react/p-T8T3po4z.js +1 -0
  154. package/dist/components/react/p-WXzzOdnl.js +1 -0
  155. package/dist/components/react/p-bR8vy6-s.js +1 -0
  156. package/dist/components/react/{p-B1kYo1K9.js → p-m1-sOx5T.js} +1 -1
  157. package/dist/components/react/post-accordion-item.js +1 -1
  158. package/dist/components/react/post-accordion.js +1 -1
  159. package/dist/components/react/post-autocomplete.js +1 -1
  160. package/dist/components/react/post-avatar.js +1 -1
  161. package/dist/components/react/post-back-to-top.js +1 -1
  162. package/dist/components/react/post-banner.js +1 -1
  163. package/dist/components/react/post-breadcrumb-item.js +1 -1
  164. package/dist/components/react/post-breadcrumbs.js +1 -1
  165. package/dist/components/react/post-closebutton.js +1 -1
  166. package/dist/components/react/post-collapsible-trigger.js +1 -1
  167. package/dist/components/react/post-collapsible.js +1 -1
  168. package/dist/components/react/post-date-picker.js +1 -1
  169. package/dist/components/react/post-footer.js +1 -1
  170. package/dist/components/react/post-header.js +1 -1
  171. package/dist/components/react/post-icon.js +1 -1
  172. package/dist/components/react/post-language-menu-item.js +1 -1
  173. package/dist/components/react/post-language-menu.js +1 -1
  174. package/dist/components/react/post-linkarea.js +1 -1
  175. package/dist/components/react/post-listbox-option.js +1 -1
  176. package/dist/components/react/post-listbox.js +1 -1
  177. package/dist/components/react/post-logo.js +1 -1
  178. package/dist/components/react/post-mainnavigation.js +1 -1
  179. package/dist/components/react/post-megadropdown-trigger.js +1 -1
  180. package/dist/components/react/post-megadropdown.js +1 -1
  181. package/dist/components/react/post-menu-item.js +1 -1
  182. package/dist/components/react/post-menu-trigger.js +1 -1
  183. package/dist/components/react/post-menu.js +1 -1
  184. package/dist/components/react/post-number-input.js +1 -1
  185. package/dist/components/react/post-pagination.js +1 -1
  186. package/dist/components/react/post-popover-trigger.js +1 -1
  187. package/dist/components/react/post-popover.js +1 -1
  188. package/dist/components/react/post-popovercontainer.js +1 -1
  189. package/dist/components/react/post-progressbar.js +1 -1
  190. package/dist/components/react/post-rating.js +1 -1
  191. package/dist/components/react/post-side-navigation-trigger.js +1 -1
  192. package/dist/components/react/post-side-navigation.js +1 -1
  193. package/dist/components/react/post-stepper-item.js +1 -1
  194. package/dist/components/react/post-stepper.js +1 -1
  195. package/dist/components/react/post-tab-item.js +1 -1
  196. package/dist/components/react/post-tab-panel.js +1 -1
  197. package/dist/components/react/post-tabs.js +1 -1
  198. package/dist/components/react/post-togglebutton.js +1 -1
  199. package/dist/components/react/post-tooltip-trigger.js +1 -1
  200. package/dist/components/react/post-tooltip.js +1 -1
  201. package/dist/docs.json +118 -27
  202. package/dist/esm/breakpoints-I1j7a0bW.js +45 -0
  203. package/dist/esm/{create-validator-decorator-CNUaQboh.js → create-validator-decorator-C2XlYkNB.js} +1 -1
  204. package/dist/esm/{event-from-rEfV4v4a.js → event-from-BEcxHjuM.js} +19 -14
  205. package/dist/esm/{index-sn7oKSwC.js → index-BjziJWh2.js} +1 -1
  206. package/dist/esm/{breakpoints-BQ3HlJPr.js → index-bR8vy6-s.js} +1 -42
  207. package/dist/esm/loader.js +3 -3
  208. package/dist/esm/{one-of-C6Ironyj.js → one-of-Do1iao-k.js} +1 -1
  209. package/dist/esm/{package-tTf1w3A9.js → package-T8T3po4z.js} +1 -1
  210. package/dist/esm/{pattern-57oD--q3.js → pattern-BZDucOTq.js} +1 -1
  211. package/dist/esm/post-accordion_2.entry.js +7 -7
  212. package/dist/esm/post-autocomplete.entry.js +70 -55
  213. package/dist/esm/post-avatar.entry.js +7 -7
  214. package/dist/esm/post-back-to-top.entry.js +25 -13
  215. package/dist/esm/post-banner.entry.js +6 -13
  216. package/dist/esm/post-breadcrumb-item.entry.js +42 -12
  217. package/dist/esm/post-breadcrumbs.entry.js +222 -71
  218. package/dist/esm/post-closebutton_14.entry.js +430 -232
  219. package/dist/esm/post-collapsible_2.entry.js +9 -9
  220. package/dist/esm/post-components.js +3 -3
  221. package/dist/esm/post-date-picker.entry.js +18 -16
  222. package/dist/esm/post-footer.entry.js +8 -8
  223. package/dist/esm/post-linkarea.entry.js +3 -3
  224. package/dist/esm/post-listbox-option.entry.js +4 -4
  225. package/dist/esm/post-listbox.entry.js +6 -6
  226. package/dist/esm/post-number-input.entry.js +6 -5
  227. package/dist/esm/post-pagination.entry.js +6 -6
  228. package/dist/esm/post-popover-trigger.entry.js +8 -8
  229. package/dist/esm/post-popover.entry.js +11 -11
  230. package/dist/esm/post-progressbar.entry.js +5 -5
  231. package/dist/esm/post-rating.entry.js +7 -7
  232. package/dist/esm/post-side-navigation-trigger.entry.js +8 -8
  233. package/dist/esm/post-side-navigation.entry.js +9 -9
  234. package/dist/esm/post-stepper-item.entry.js +3 -3
  235. package/dist/esm/post-stepper.entry.js +8 -8
  236. package/dist/esm/post-tab-item.entry.js +7 -7
  237. package/dist/esm/post-tab-panel.entry.js +7 -7
  238. package/dist/esm/post-tabs.entry.js +9 -9
  239. package/dist/esm/post-tooltip-trigger.entry.js +8 -8
  240. package/dist/esm/post-tooltip.entry.js +6 -6
  241. package/dist/esm/{required-D2rl2XZJ.js → required-B0X7uy13.js} +1 -1
  242. package/dist/esm/{type-CGynDrfh.js → type-CF1dOg6D.js} +1 -1
  243. package/dist/esm/{url-1wyUfUv-.js → url-BL7d6iWZ.js} +1 -1
  244. package/dist/post-components/{p-167191e5.entry.js → p-0e922531.entry.js} +1 -1
  245. package/dist/post-components/{p-cf6eacab.entry.js → p-1ec27142.entry.js} +1 -1
  246. package/dist/post-components/{p-da217dbc.entry.js → p-2005eb98.entry.js} +1 -1
  247. package/dist/post-components/p-2cff5b3a.entry.js +1 -0
  248. package/dist/post-components/p-53bd2128.entry.js +1 -0
  249. package/dist/post-components/{p-212c71e4.entry.js → p-59b30e90.entry.js} +1 -1
  250. package/dist/post-components/{p-beed9922.entry.js → p-60550edb.entry.js} +1 -1
  251. package/dist/post-components/p-655ded00.entry.js +1 -0
  252. package/dist/post-components/p-76cc3c9a.entry.js +1 -0
  253. package/dist/post-components/{p-3149d866.entry.js → p-8012cc3b.entry.js} +1 -1
  254. package/dist/post-components/p-819c93de.entry.js +1 -0
  255. package/dist/post-components/p-840acd3c.entry.js +1 -0
  256. package/dist/post-components/p-87b1034f.entry.js +1 -0
  257. package/dist/post-components/p-88f754e9.entry.js +1 -0
  258. package/dist/post-components/p-9S_5_Zh8.js +1 -0
  259. package/dist/post-components/p-BEcxHjuM.js +1 -0
  260. package/dist/post-components/p-BYfu3J2D.js +1 -0
  261. package/dist/post-components/p-BjziJWh2.js +2 -0
  262. package/dist/post-components/p-BoYe-VVx.js +1 -0
  263. package/dist/post-components/p-CbbADNiv.js +1 -0
  264. package/dist/post-components/p-DgnQe03V.js +1 -0
  265. package/dist/post-components/p-DlKbBdcP.js +1 -0
  266. package/dist/post-components/p-I1j7a0bW.js +1 -0
  267. package/dist/post-components/p-T8T3po4z.js +1 -0
  268. package/dist/post-components/{p-a01ea634.entry.js → p-a32d3050.entry.js} +1 -1
  269. package/dist/post-components/p-b4229624.entry.js +1 -0
  270. package/dist/post-components/{p-96bf6b01.entry.js → p-b9faa76b.entry.js} +1 -1
  271. package/dist/post-components/p-bR8vy6-s.js +1 -0
  272. package/dist/post-components/{p-70fbe469.entry.js → p-ba1b4ba0.entry.js} +1 -1
  273. package/dist/post-components/p-c0ae13b7.entry.js +1 -0
  274. package/dist/post-components/p-c9dcdebb.entry.js +1 -0
  275. package/dist/post-components/p-ccf8020b.entry.js +1 -0
  276. package/dist/post-components/p-cd68d3a2.entry.js +1 -0
  277. package/dist/post-components/p-cdc7b8d3.entry.js +1 -0
  278. package/dist/post-components/{p-1cf5bc67.entry.js → p-d7c9a969.entry.js} +1 -1
  279. package/dist/post-components/p-db11f781.entry.js +1 -0
  280. package/dist/post-components/{p-0323b0f3.entry.js → p-dc285087.entry.js} +1 -1
  281. package/dist/post-components/{p-e8d9723e.entry.js → p-de6f1816.entry.js} +1 -1
  282. package/dist/post-components/p-dec8bd99.entry.js +1 -0
  283. package/dist/post-components/p-f9a8ee94.entry.js +1 -0
  284. package/dist/post-components/post-components.css +2 -2
  285. package/dist/post-components/post-components.esm.js +1 -1
  286. package/dist/types/components/post-autocomplete/post-autocomplete.d.ts +18 -6
  287. package/dist/types/components/post-back-to-top/post-back-to-top.d.ts +2 -1
  288. package/dist/types/components/post-banner/post-banner.d.ts +0 -1
  289. package/dist/types/components/post-breadcrumb-item/post-breadcrumb-item.d.ts +12 -1
  290. package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +54 -14
  291. package/dist/types/components/post-closebutton/post-closebutton.d.ts +1 -1
  292. package/dist/types/components/post-menu/post-menu.d.ts +1 -0
  293. package/dist/types/components/post-popovercontainer/post-popovercontainer.d.ts +8 -5
  294. package/dist/types/components.d.ts +38 -7
  295. package/dist/types/utils/breakpoints.d.ts +1 -0
  296. package/dist/types/utils/closable-target.d.ts +5 -0
  297. package/dist/types/utils/event-from.d.ts +8 -0
  298. package/dist/types/utils/floating-ui.d.ts +12 -0
  299. package/dist/types/utils/index.d.ts +1 -0
  300. package/hydrate/index.js +1085 -665
  301. package/hydrate/index.mjs +1085 -665
  302. package/package.json +31 -22
  303. package/dist/components/react/p-BXqGI600.js +0 -1
  304. package/dist/components/react/p-B_WnO-QF.js +0 -1
  305. package/dist/components/react/p-BaB8wJvk.js +0 -1
  306. package/dist/components/react/p-Bji_4dfL.js +0 -1
  307. package/dist/components/react/p-CX2E_IXB.js +0 -1
  308. package/dist/components/react/p-CwmQwirr.js +0 -1
  309. package/dist/components/react/p-D17tCsFk.js +0 -1
  310. package/dist/components/react/p-DD1c_IgL.js +0 -1
  311. package/dist/components/react/p-Df31eVdi.js +0 -1
  312. package/dist/components/react/p-I0dqoE80.js +0 -1
  313. package/dist/components/react/p-rEfV4v4a.js +0 -1
  314. package/dist/components/react/p-tTf1w3A9.js +0 -1
  315. package/dist/post-components/p-06ddd73b.entry.js +0 -1
  316. package/dist/post-components/p-090e52db.entry.js +0 -1
  317. package/dist/post-components/p-292a9784.entry.js +0 -1
  318. package/dist/post-components/p-2de6fe62.entry.js +0 -1
  319. package/dist/post-components/p-39ff8127.entry.js +0 -1
  320. package/dist/post-components/p-3a968b19.entry.js +0 -1
  321. package/dist/post-components/p-472_tiaS.js +0 -1
  322. package/dist/post-components/p-58422de1.entry.js +0 -1
  323. package/dist/post-components/p-5873a90c.entry.js +0 -1
  324. package/dist/post-components/p-986fa1c1.entry.js +0 -1
  325. package/dist/post-components/p-BQ3HlJPr.js +0 -1
  326. package/dist/post-components/p-B_FOhVrp.js +0 -1
  327. package/dist/post-components/p-CeNqFJV7.js +0 -1
  328. package/dist/post-components/p-DYDdaLz-.js +0 -1
  329. package/dist/post-components/p-DoNhJ2D7.js +0 -1
  330. package/dist/post-components/p-b1d2384a.entry.js +0 -1
  331. package/dist/post-components/p-b535fc10.entry.js +0 -1
  332. package/dist/post-components/p-b99e6621.entry.js +0 -1
  333. package/dist/post-components/p-bf83a3fb.entry.js +0 -1
  334. package/dist/post-components/p-c46bc56f.entry.js +0 -1
  335. package/dist/post-components/p-ce8132a9.entry.js +0 -1
  336. package/dist/post-components/p-d72e830b.entry.js +0 -1
  337. package/dist/post-components/p-e08d26f4.entry.js +0 -1
  338. package/dist/post-components/p-rEfV4v4a.js +0 -1
  339. package/dist/post-components/p-sn7oKSwC.js +0 -2
  340. package/dist/post-components/p-tTf1w3A9.js +0 -1
@@ -1 +1 @@
1
- a{-webkit-text-decoration:var(--post-core-text-decoration-underline);text-decoration:var(--post-core-text-decoration-underline);border-radius:var(--post-device-border-radius-focus);color:var(--post-current-fg)}a:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}a{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}a:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){a:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){a:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){a:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){a,a:focus{color:LinkText !important}a:hover{text-decoration-thickness:2px}a:visited{color:VisitedText}a.btn:not(.btn-link){border-color:ButtonBorder !important}a.btn.btn-tertiary.px-0{border:0 !important}a.btn.btn-tertiary.px-0:not(:hover){text-decoration:underline}}:host(:not([variant=menuitem])){display:flex;align-items:flex-start;padding-block:var(--post-device-spacing-padding-block-6);gap:var(--post-device-spacing-gap-inline-5)}:host(:not([variant=menuitem])) :is(button,a){display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;font:inherit;padding:unset;border:unset;color:var(--post-scheme-color-interactive-primary-enabled-fg1);border-radius:var(--post-device-border-radius-focus);text-decoration:var(--post-core-text-decoration-none)}:host(:not([variant=menuitem])) :is(button,a):not(:disabled):hover{text-decoration:none}:host(:not([variant=menuitem])) :is(button,a):disabled{border-style:var(--post-core-border-style-dash);cursor:unset}:host(:not([variant=menuitem])) :is(button,a){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host(:not([variant=menuitem])) :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(:not([variant=menuitem])) :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:host(:not([variant=menuitem])) :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(:not([variant=menuitem])) :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host(:not([variant=menuitem])) :is(button,a){border-width:1px !important;transition:none}:host(:not([variant=menuitem])) :is(button,a):is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}:host(:not([variant=menuitem])) :is(button,a):hover{color:var(--post-scheme-color-interactive-primary-hover-fg1);text-decoration:var(--post-core-text-decoration-underline)}:host(:not([variant=menuitem]))::before{mask-image:var(--post-icon-chevronright);background-color:currentColor;flex:0 0 auto;content:"";display:block;height:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);margin-block:calc(var(--post-device-spacing-padding-35) - 1*var(--post-device-spacing-padding-block-6));margin-inline:var(--post-core-dimension-4)}:root,:host{--post-icon-chevronright: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzeW1ib2wgaWQ9ImktY2hldnJvbnJpZ2h0Ij48c3ltYm9sIGlkPSJzMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuMzggMTRjLS4xOSAwLS4zOC0uMDctLjUzLS4yMmEuNzU0Ljc1NCAwIDAgMSAwLTEuMDZMOS41NyA4IDQuODUgMy4yOGMtLjI5LS4yOS0uMjktLjc3IDAtMS4wNnMuNzctLjI5IDEuMDYgMEwxMS42OSA4bC01Ljc4IDUuNzhjLS4xNS4xNS0uMzQuMjItLjUzLjIyIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik04LjA3IDIwLjcyYy0uMjIgMC0uNDUtLjA4LS42Mi0uMjZhLjg4Ljg4IDAgMCAxIDAtMS4yNGw3LjI2LTcuMjZMNy40NSA0LjdhLjg4Ljg4IDAgMCAxIDAtMS4yNGMuMzQtLjM0LjktLjM0IDEuMjQgMGw4LjUgOC41LTguNDkgOC40OWMtLjE3LjE3LS40LjI2LS42Mi4yNloiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZD0iTTEwLjc2IDI3LjVjLS4yNiAwLS41MS0uMS0uNzEtLjI5YS45OTYuOTk2IDAgMCAxIDAtMS40MWw5Ljc5LTkuNzktOS43OS05LjgxYS45OTYuOTk2IDAgMSAxIDEuNDEtMS40MUwyMi42NyAxNiAxMS40NiAyNy4yMWMtLjIuMi0uNDUuMjktLjcxLjI5WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTMuNSAzNC4yMmExLjEyMyAxLjEyMyAwIDAgMS0uOC0xLjkybDEyLjMzLTEyLjMzTDEyLjcgNy42M2MtLjQ0LS40NC0uNDQtMS4xNSAwLTEuNTlzMS4xNS0uNDQgMS41OSAwbDEzLjkzIDEzLjkzTDE0LjMgMzMuODljLS4yMi4yMi0uNTEuMzMtLjguMzMiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZD0iTTE2LjE0IDQxYy0uMzIgMC0uNjQtLjEyLS44OC0uMzdhMS4yNSAxLjI1IDAgMCAxIDAtMS43N2wxNC44Ny0xNC44N0wxNS4yNSA5LjExYy0uNDktLjQ5LS40OS0xLjI4IDAtMS43N3MxLjI4LS40OSAxLjc3IDBsMTYuNjQgMTYuNjQtMTYuNjMgMTYuNjNjLS4yNC4yNC0uNTYuMzctLjg4LjM3WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij48cGF0aCBkPSJNMjEuNTEgNTQuNGExLjM3NiAxLjM3NiAwIDAgMS0uOTctMi4zNWwyMC4wMy0yMC4wMy0yMC4wNC0yMC4wM2MtLjU0LS41NC0uNTQtMS40MSAwLTEuOTVzMS40MS0uNTQgMS45NSAwbDIxLjk4IDIxLjk5TDIyLjQ5IDU0Yy0uMjcuMjctLjYyLjQtLjk3LjRaIi8+PC9zeW1ib2w+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczE2LCBub25lKSIgaHJlZj0iI3MxNiIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXMyNCwgbm9uZSkiIGhyZWY9IiNzMjQiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zMzIsIG5vbmUpIiBocmVmPSIjczMyIi8+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczQwLCBub25lKSIgaHJlZj0iI3M0MCIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXM0OCwgbm9uZSkiIGhyZWY9IiNzNDgiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zNjQsIG5vbmUpIiBocmVmPSIjczY0Ii8+PC9zeW1ib2w+PC9kZWZzPjxzdHlsZT5AbWVkaWEgKG1heC13aWR0aDogMjMuOThweCkge2d7LS1zMTY6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogMjRweCkgYW5kIChtYXgtd2lkdGg6IDMxLjk4cHgpIHtney0tczI0OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDMycHgpIGFuZCAobWF4LXdpZHRoOiAzOS45OHB4KSB7Z3stLXMzMjpibG9jazt9fUBtZWRpYSAobWluLXdpZHRoOiA0MHB4KSBhbmQgKG1heC13aWR0aDogNDcuOThweCkge2d7LS1zNDA6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogNDhweCkgYW5kIChtYXgtd2lkdGg6IDYzLjk4cHgpIHtney0tczQ4OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDY0cHgpIHtney0tczY0OmJsb2NrO319PC9zdHlsZT48Zz48dXNlIGhyZWY9IiNpLWNoZXZyb25yaWdodCIvPjwvZz48L3N2Zz4=")}:is(a,span){white-space:var(--post-breadcrumb-item-wrap, normal) !important;overflow-wrap:anywhere;hyphens:auto;line-break:strict}:host([selected]:not([selected=false])){display:flex;align-items:flex-start;padding-block:var(--post-device-spacing-padding-block-6);gap:var(--post-device-spacing-gap-inline-5)}:host([selected]:not([selected=false])) :is(button,a){display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;font:inherit;padding:unset;border:unset;color:var(--post-scheme-color-interactive-primary-enabled-fg1);border-radius:var(--post-device-border-radius-focus);text-decoration:var(--post-core-text-decoration-none)}:host([selected]:not([selected=false])) :is(button,a):not(:disabled):hover{text-decoration:none}:host([selected]:not([selected=false])) :is(button,a):disabled{border-style:var(--post-core-border-style-dash);cursor:unset}:host([selected]:not([selected=false])) :is(button,a){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host([selected]:not([selected=false])) :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host([selected]:not([selected=false])) :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:host([selected]:not([selected=false])) :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host([selected]:not([selected=false])) :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host([selected]:not([selected=false])) :is(button,a){border-width:1px !important;transition:none}:host([selected]:not([selected=false])) :is(button,a):is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}:host([selected]:not([selected=false])) :is(button,a):hover{color:var(--post-scheme-color-interactive-primary-hover-fg1);text-decoration:var(--post-core-text-decoration-underline)}:host([selected]:not([selected=false]))::before{mask-image:var(--post-icon-chevronright);background-color:currentColor;flex:0 0 auto;content:"";display:block;height:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);margin-block:calc(var(--post-device-spacing-padding-35) - 1*var(--post-device-spacing-padding-block-6));margin-inline:var(--post-core-dimension-4)}:root,:host{--post-icon-chevronright: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzeW1ib2wgaWQ9ImktY2hldnJvbnJpZ2h0Ij48c3ltYm9sIGlkPSJzMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuMzggMTRjLS4xOSAwLS4zOC0uMDctLjUzLS4yMmEuNzU0Ljc1NCAwIDAgMSAwLTEuMDZMOS41NyA4IDQuODUgMy4yOGMtLjI5LS4yOS0uMjktLjc3IDAtMS4wNnMuNzctLjI5IDEuMDYgMEwxMS42OSA4bC01Ljc4IDUuNzhjLS4xNS4xNS0uMzQuMjItLjUzLjIyIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik04LjA3IDIwLjcyYy0uMjIgMC0uNDUtLjA4LS42Mi0uMjZhLjg4Ljg4IDAgMCAxIDAtMS4yNGw3LjI2LTcuMjZMNy40NSA0LjdhLjg4Ljg4IDAgMCAxIDAtMS4yNGMuMzQtLjM0LjktLjM0IDEuMjQgMGw4LjUgOC41LTguNDkgOC40OWMtLjE3LjE3LS40LjI2LS42Mi4yNloiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZD0iTTEwLjc2IDI3LjVjLS4yNiAwLS41MS0uMS0uNzEtLjI5YS45OTYuOTk2IDAgMCAxIDAtMS40MWw5Ljc5LTkuNzktOS43OS05LjgxYS45OTYuOTk2IDAgMSAxIDEuNDEtMS40MUwyMi42NyAxNiAxMS40NiAyNy4yMWMtLjIuMi0uNDUuMjktLjcxLjI5WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTMuNSAzNC4yMmExLjEyMyAxLjEyMyAwIDAgMS0uOC0xLjkybDEyLjMzLTEyLjMzTDEyLjcgNy42M2MtLjQ0LS40NC0uNDQtMS4xNSAwLTEuNTlzMS4xNS0uNDQgMS41OSAwbDEzLjkzIDEzLjkzTDE0LjMgMzMuODljLS4yMi4yMi0uNTEuMzMtLjguMzMiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZD0iTTE2LjE0IDQxYy0uMzIgMC0uNjQtLjEyLS44OC0uMzdhMS4yNSAxLjI1IDAgMCAxIDAtMS43N2wxNC44Ny0xNC44N0wxNS4yNSA5LjExYy0uNDktLjQ5LS40OS0xLjI4IDAtMS43N3MxLjI4LS40OSAxLjc3IDBsMTYuNjQgMTYuNjQtMTYuNjMgMTYuNjNjLS4yNC4yNC0uNTYuMzctLjg4LjM3WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij48cGF0aCBkPSJNMjEuNTEgNTQuNGExLjM3NiAxLjM3NiAwIDAgMS0uOTctMi4zNWwyMC4wMy0yMC4wMy0yMC4wNC0yMC4wM2MtLjU0LS41NC0uNTQtMS40MSAwLTEuOTVzMS40MS0uNTQgMS45NSAwbDIxLjk4IDIxLjk5TDIyLjQ5IDU0Yy0uMjcuMjctLjYyLjQtLjk3LjRaIi8+PC9zeW1ib2w+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczE2LCBub25lKSIgaHJlZj0iI3MxNiIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXMyNCwgbm9uZSkiIGhyZWY9IiNzMjQiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zMzIsIG5vbmUpIiBocmVmPSIjczMyIi8+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczQwLCBub25lKSIgaHJlZj0iI3M0MCIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXM0OCwgbm9uZSkiIGhyZWY9IiNzNDgiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zNjQsIG5vbmUpIiBocmVmPSIjczY0Ii8+PC9zeW1ib2w+PC9kZWZzPjxzdHlsZT5AbWVkaWEgKG1heC13aWR0aDogMjMuOThweCkge2d7LS1zMTY6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogMjRweCkgYW5kIChtYXgtd2lkdGg6IDMxLjk4cHgpIHtney0tczI0OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDMycHgpIGFuZCAobWF4LXdpZHRoOiAzOS45OHB4KSB7Z3stLXMzMjpibG9jazt9fUBtZWRpYSAobWluLXdpZHRoOiA0MHB4KSBhbmQgKG1heC13aWR0aDogNDcuOThweCkge2d7LS1zNDA6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogNDhweCkgYW5kIChtYXgtd2lkdGg6IDYzLjk4cHgpIHtney0tczQ4OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDY0cHgpIHtney0tczY0OmJsb2NrO319PC9zdHlsZT48Zz48dXNlIGhyZWY9IiNpLWNoZXZyb25yaWdodCIvPjwvZz48L3N2Zz4=")}:host([selected]:not([selected=false])) :is(a,span){color:var(--post-scheme-color-interactive-primary-selected-fg1);font-weight:var(--post-device-font-weight-bold);text-decoration:var(--post-core-text-decoration-none)}
1
+ a{-webkit-text-decoration:var(--post-core-text-decoration-underline);text-decoration:var(--post-core-text-decoration-underline);border-radius:var(--post-device-border-radius-focus);color:var(--post-current-fg)}a:hover{color:var(--post-scheme-color-interactive-primary-hover-fg1)}a{outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}a:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){a:is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){a:is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){a:is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){a,a:focus{color:LinkText !important}a:hover{text-decoration-thickness:2px}a:visited{color:VisitedText}a.btn:not(.btn-link){border-color:ButtonBorder !important}a.btn.btn-tertiary.px-0{border:0 !important}a.btn.btn-tertiary.px-0:not(:hover){text-decoration:underline}}:host([variant=menuitem]) :is(a,span),:host([variant=menuitem]) ::slotted(a){white-space:normal;overflow-wrap:anywhere;hyphens:auto;line-break:strict}:host([variant=listitem]){display:flex;align-items:flex-start;padding-block:var(--post-device-spacing-padding-block-6);gap:var(--post-device-spacing-gap-inline-5)}:host([variant=listitem]) :is(button,a){display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;font:inherit;padding:unset;border:unset;border-radius:var(--post-device-border-radius-focus);color:var(--post-scheme-color-interactive-primary-enabled-fg1);text-decoration:var(--post-core-text-decoration-none)}:host([variant=listitem]) :is(button,a):not(:disabled):hover{text-decoration:none}:host([variant=listitem]) :is(button,a):disabled{border-style:var(--post-core-border-style-dash);cursor:unset}:host([variant=listitem]) :is(button,a){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}:host([variant=listitem]) :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host([variant=listitem]) :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){:host([variant=listitem]) :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host([variant=listitem]) :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){:host([variant=listitem]) :is(button,a){border-width:1px !important;transition:none}:host([variant=listitem]) :is(button,a):is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}:host([variant=listitem]) :is(button,a):hover{color:var(--post-scheme-color-interactive-primary-hover-fg1);text-decoration:var(--post-core-text-decoration-underline)}:host([variant=listitem])::before{mask-image:var(--post-icon-chevronright);background-color:currentColor;flex:0 0 auto;content:"";display:block;height:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);margin-block:calc(var(--post-device-spacing-padding-35) - 1*var(--post-device-spacing-padding-block-6));margin-inline:var(--post-core-dimension-4)}:root,:host{--post-icon-chevronright: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzeW1ib2wgaWQ9ImktY2hldnJvbnJpZ2h0Ij48c3ltYm9sIGlkPSJzMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuMzggMTRjLS4xOSAwLS4zOC0uMDctLjUzLS4yMmEuNzU0Ljc1NCAwIDAgMSAwLTEuMDZMOS41NyA4IDQuODUgMy4yOGMtLjI5LS4yOS0uMjktLjc3IDAtMS4wNnMuNzctLjI5IDEuMDYgMEwxMS42OSA4bC01Ljc4IDUuNzhjLS4xNS4xNS0uMzQuMjItLjUzLjIyIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik04LjA3IDIwLjcyYy0uMjIgMC0uNDUtLjA4LS42Mi0uMjZhLjg4Ljg4IDAgMCAxIDAtMS4yNGw3LjI2LTcuMjZMNy40NSA0LjdhLjg4Ljg4IDAgMCAxIDAtMS4yNGMuMzQtLjM0LjktLjM0IDEuMjQgMGw4LjUgOC41LTguNDkgOC40OWMtLjE3LjE3LS40LjI2LS42Mi4yNloiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZD0iTTEwLjc2IDI3LjVjLS4yNiAwLS41MS0uMS0uNzEtLjI5YS45OTYuOTk2IDAgMCAxIDAtMS40MWw5Ljc5LTkuNzktOS43OS05LjgxYS45OTYuOTk2IDAgMSAxIDEuNDEtMS40MUwyMi42NyAxNiAxMS40NiAyNy4yMWMtLjIuMi0uNDUuMjktLjcxLjI5WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTMuNSAzNC4yMmExLjEyMyAxLjEyMyAwIDAgMS0uOC0xLjkybDEyLjMzLTEyLjMzTDEyLjcgNy42M2MtLjQ0LS40NC0uNDQtMS4xNSAwLTEuNTlzMS4xNS0uNDQgMS41OSAwbDEzLjkzIDEzLjkzTDE0LjMgMzMuODljLS4yMi4yMi0uNTEuMzMtLjguMzMiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZD0iTTE2LjE0IDQxYy0uMzIgMC0uNjQtLjEyLS44OC0uMzdhMS4yNSAxLjI1IDAgMCAxIDAtMS43N2wxNC44Ny0xNC44N0wxNS4yNSA5LjExYy0uNDktLjQ5LS40OS0xLjI4IDAtMS43N3MxLjI4LS40OSAxLjc3IDBsMTYuNjQgMTYuNjQtMTYuNjMgMTYuNjNjLS4yNC4yNC0uNTYuMzctLjg4LjM3WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij48cGF0aCBkPSJNMjEuNTEgNTQuNGExLjM3NiAxLjM3NiAwIDAgMS0uOTctMi4zNWwyMC4wMy0yMC4wMy0yMC4wNC0yMC4wM2MtLjU0LS41NC0uNTQtMS40MSAwLTEuOTVzMS40MS0uNTQgMS45NSAwbDIxLjk4IDIxLjk5TDIyLjQ5IDU0Yy0uMjcuMjctLjYyLjQtLjk3LjRaIi8+PC9zeW1ib2w+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczE2LCBub25lKSIgaHJlZj0iI3MxNiIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXMyNCwgbm9uZSkiIGhyZWY9IiNzMjQiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zMzIsIG5vbmUpIiBocmVmPSIjczMyIi8+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczQwLCBub25lKSIgaHJlZj0iI3M0MCIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXM0OCwgbm9uZSkiIGhyZWY9IiNzNDgiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zNjQsIG5vbmUpIiBocmVmPSIjczY0Ii8+PC9zeW1ib2w+PC9kZWZzPjxzdHlsZT5AbWVkaWEgKG1heC13aWR0aDogMjMuOThweCkge2d7LS1zMTY6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogMjRweCkgYW5kIChtYXgtd2lkdGg6IDMxLjk4cHgpIHtney0tczI0OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDMycHgpIGFuZCAobWF4LXdpZHRoOiAzOS45OHB4KSB7Z3stLXMzMjpibG9jazt9fUBtZWRpYSAobWluLXdpZHRoOiA0MHB4KSBhbmQgKG1heC13aWR0aDogNDcuOThweCkge2d7LS1zNDA6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogNDhweCkgYW5kIChtYXgtd2lkdGg6IDYzLjk4cHgpIHtney0tczQ4OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDY0cHgpIHtney0tczY0OmJsb2NrO319PC9zdHlsZT48Zz48dXNlIGhyZWY9IiNpLWNoZXZyb25yaWdodCIvPjwvZz48L3N2Zz4=")}:host([variant=listitem]):not([standalone]:not([standalone=false])) ::slotted(a){white-space:nowrap}:host([variant=listitem]):host([selected]:not([selected=false])){flex-shrink:0}:host([variant=listitem]):host([selected]:not([selected=false])) :is(a,span){color:var(--post-scheme-color-interactive-primary-selected-fg1);font-weight:var(--post-device-font-weight-bold);text-decoration:var(--post-core-text-decoration-none)}:host([variant=listitem]):host([standalone]:not([standalone=false])){flex-shrink:1}:host([variant=listitem]):host([standalone]:not([standalone=false])) :is(a,span),:host([variant=listitem]):host([standalone]:not([standalone=false])) ::slotted(a){white-space:normal;overflow-wrap:anywhere;hyphens:auto;line-break:strict}
@@ -13,10 +13,14 @@ import { version } from "../../../../package";
13
13
  import { h, Host } from "@stencil/core";
14
14
  import { VARIANTS } from "./variants";
15
15
  /**
16
- * @slot default - The content displayed inside the breadcrumb item.
16
+ * @slot default - The content displayed inside the breadcrumb item. Can contain text or an <a> element, so consumers can slot their own routing-aware link instead of relying on the `url` prop.
17
17
  */
18
18
  export class PostBreadcrumbItem {
19
19
  constructor() {
20
+ /**
21
+ * Whether the consumer slotted their own <a>. When true, the component renders only the <slot>, leaving the slotted anchor untouched so the host app's router can handle clicks.
22
+ */
23
+ this.hasSlottedAnchor = false;
20
24
  /**
21
25
  * Controls how the item is rendered, either as a standard list item or within an overflow menu.
22
26
  */
@@ -25,11 +29,33 @@ export class PostBreadcrumbItem {
25
29
  * Indicates that the item represents the current page, applying appropriate styling.
26
30
  */
27
31
  this.selected = false;
32
+ /**
33
+ * Indicates that this is the only visible item, applying appropriate styling.
34
+ */
35
+ this.standalone = false;
28
36
  }
29
- render() {
37
+ componentWillLoad() {
38
+ this.checkSlottedAnchor();
39
+ }
40
+ checkSlottedAnchor() {
41
+ this.hasSlottedAnchor = Array.from(this.host.children).some(child => child.tagName === 'A');
42
+ }
43
+ renderContent() {
44
+ const slot = h("slot", { onSlotchange: () => this.checkSlottedAnchor() });
30
45
  const href = this.url instanceof URL ? this.url.href : this.url;
31
- const content = href ? (h("a", { href: href, "aria-current": this.selected ? 'page' : undefined, "aria-label": this.label, "aria-description": this.description }, h("slot", null))) : (h("span", null, h("slot", null)));
32
- return this.variant === 'listitem' || this.selected ? (h(Host, { "data-version": version, role: "listitem", slot: this.selected ? 'selected' : undefined }, content)) : (h(Host, { "data-version": version }, h("post-menu-item", null, content)));
46
+ if (this.hasSlottedAnchor) {
47
+ return slot;
48
+ }
49
+ else if (!href) {
50
+ return h("span", null, slot);
51
+ }
52
+ else {
53
+ return (h("a", { href: href, "aria-current": this.selected ? 'page' : undefined, "aria-label": this.label, "aria-description": this.description }, slot));
54
+ }
55
+ }
56
+ render() {
57
+ const content = this.renderContent();
58
+ return this.variant === 'listitem' || this.selected ? (h(Host, { "data-version": version, role: "listitem", slot: this.selected ? 'selected' : undefined }, content)) : (h(Host, { "data-version": version, slot: "menu" }, h("post-menu-item", null, content)));
33
59
  }
34
60
  static get is() { return "post-breadcrumb-item"; }
35
61
  static get encapsulation() { return "shadow"; }
@@ -153,9 +179,34 @@ export class PostBreadcrumbItem {
153
179
  "reflect": true,
154
180
  "attribute": "selected",
155
181
  "defaultValue": "false"
182
+ },
183
+ "standalone": {
184
+ "type": "boolean",
185
+ "mutable": false,
186
+ "complexType": {
187
+ "original": "boolean",
188
+ "resolved": "boolean",
189
+ "references": {}
190
+ },
191
+ "required": false,
192
+ "optional": false,
193
+ "docs": {
194
+ "tags": [],
195
+ "text": "Indicates that this is the only visible item, applying appropriate styling."
196
+ },
197
+ "getter": false,
198
+ "setter": false,
199
+ "reflect": true,
200
+ "attribute": "standalone",
201
+ "defaultValue": "false"
156
202
  }
157
203
  };
158
204
  }
205
+ static get states() {
206
+ return {
207
+ "hasSlottedAnchor": {}
208
+ };
209
+ }
159
210
  static get elementRef() { return "host"; }
160
211
  }
161
212
  __decorate([
@@ -174,3 +225,7 @@ __decorate([
174
225
  Required(),
175
226
  Type('boolean')
176
227
  ], PostBreadcrumbItem.prototype, "selected", void 0);
228
+ __decorate([
229
+ Required(),
230
+ Type('boolean')
231
+ ], PostBreadcrumbItem.prototype, "standalone", void 0);
@@ -1 +1 @@
1
- :host{display:block;position:relative}nav{max-width:100%}nav.invisible{--post-breadcrumb-item-wrap: nowrap;visibility:hidden;overflow:hidden;position:absolute;inset:0;padding-inline:1px}[role=list]{display:flex;align-items:flex-start;gap:var(--post-device-spacing-gap-inline-4)}.breadcrumb-item{display:flex;align-items:flex-start;padding-block:var(--post-device-spacing-padding-block-6);gap:var(--post-device-spacing-gap-inline-5)}.breadcrumb-item :is(button,a){display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;font:inherit;padding:unset;border:unset;color:var(--post-scheme-color-interactive-primary-enabled-fg1);border-radius:var(--post-device-border-radius-focus);text-decoration:var(--post-core-text-decoration-none)}.breadcrumb-item :is(button,a):not(:disabled):hover{text-decoration:none}.breadcrumb-item :is(button,a):disabled{border-style:var(--post-core-border-style-dash);cursor:unset}.breadcrumb-item :is(button,a){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.breadcrumb-item :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.breadcrumb-item :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.breadcrumb-item :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.breadcrumb-item :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.breadcrumb-item :is(button,a){border-width:1px !important;transition:none}.breadcrumb-item :is(button,a):is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}.breadcrumb-item :is(button,a):hover{color:var(--post-scheme-color-interactive-primary-hover-fg1);text-decoration:var(--post-core-text-decoration-underline)}.breadcrumb-item::before{mask-image:var(--post-icon-chevronright);background-color:currentColor;flex:0 0 auto;content:"";display:block;height:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);margin-block:calc(var(--post-device-spacing-padding-35) - 1*var(--post-device-spacing-padding-block-6));margin-inline:var(--post-core-dimension-4)}:root,:host{--post-icon-chevronright: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzeW1ib2wgaWQ9ImktY2hldnJvbnJpZ2h0Ij48c3ltYm9sIGlkPSJzMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuMzggMTRjLS4xOSAwLS4zOC0uMDctLjUzLS4yMmEuNzU0Ljc1NCAwIDAgMSAwLTEuMDZMOS41NyA4IDQuODUgMy4yOGMtLjI5LS4yOS0uMjktLjc3IDAtMS4wNnMuNzctLjI5IDEuMDYgMEwxMS42OSA4bC01Ljc4IDUuNzhjLS4xNS4xNS0uMzQuMjItLjUzLjIyIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik04LjA3IDIwLjcyYy0uMjIgMC0uNDUtLjA4LS42Mi0uMjZhLjg4Ljg4IDAgMCAxIDAtMS4yNGw3LjI2LTcuMjZMNy40NSA0LjdhLjg4Ljg4IDAgMCAxIDAtMS4yNGMuMzQtLjM0LjktLjM0IDEuMjQgMGw4LjUgOC41LTguNDkgOC40OWMtLjE3LjE3LS40LjI2LS42Mi4yNloiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZD0iTTEwLjc2IDI3LjVjLS4yNiAwLS41MS0uMS0uNzEtLjI5YS45OTYuOTk2IDAgMCAxIDAtMS40MWw5Ljc5LTkuNzktOS43OS05LjgxYS45OTYuOTk2IDAgMSAxIDEuNDEtMS40MUwyMi42NyAxNiAxMS40NiAyNy4yMWMtLjIuMi0uNDUuMjktLjcxLjI5WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTMuNSAzNC4yMmExLjEyMyAxLjEyMyAwIDAgMS0uOC0xLjkybDEyLjMzLTEyLjMzTDEyLjcgNy42M2MtLjQ0LS40NC0uNDQtMS4xNSAwLTEuNTlzMS4xNS0uNDQgMS41OSAwbDEzLjkzIDEzLjkzTDE0LjMgMzMuODljLS4yMi4yMi0uNTEuMzMtLjguMzMiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZD0iTTE2LjE0IDQxYy0uMzIgMC0uNjQtLjEyLS44OC0uMzdhMS4yNSAxLjI1IDAgMCAxIDAtMS43N2wxNC44Ny0xNC44N0wxNS4yNSA5LjExYy0uNDktLjQ5LS40OS0xLjI4IDAtMS43N3MxLjI4LS40OSAxLjc3IDBsMTYuNjQgMTYuNjQtMTYuNjMgMTYuNjNjLS4yNC4yNC0uNTYuMzctLjg4LjM3WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij48cGF0aCBkPSJNMjEuNTEgNTQuNGExLjM3NiAxLjM3NiAwIDAgMS0uOTctMi4zNWwyMC4wMy0yMC4wMy0yMC4wNC0yMC4wM2MtLjU0LS41NC0uNTQtMS40MSAwLTEuOTVzMS40MS0uNTQgMS45NSAwbDIxLjk4IDIxLjk5TDIyLjQ5IDU0Yy0uMjcuMjctLjYyLjQtLjk3LjRaIi8+PC9zeW1ib2w+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczE2LCBub25lKSIgaHJlZj0iI3MxNiIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXMyNCwgbm9uZSkiIGhyZWY9IiNzMjQiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zMzIsIG5vbmUpIiBocmVmPSIjczMyIi8+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczQwLCBub25lKSIgaHJlZj0iI3M0MCIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXM0OCwgbm9uZSkiIGhyZWY9IiNzNDgiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zNjQsIG5vbmUpIiBocmVmPSIjczY0Ii8+PC9zeW1ib2w+PC9kZWZzPjxzdHlsZT5AbWVkaWEgKG1heC13aWR0aDogMjMuOThweCkge2d7LS1zMTY6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogMjRweCkgYW5kIChtYXgtd2lkdGg6IDMxLjk4cHgpIHtney0tczI0OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDMycHgpIGFuZCAobWF4LXdpZHRoOiAzOS45OHB4KSB7Z3stLXMzMjpibG9jazt9fUBtZWRpYSAobWluLXdpZHRoOiA0MHB4KSBhbmQgKG1heC13aWR0aDogNDcuOThweCkge2d7LS1zNDA6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogNDhweCkgYW5kIChtYXgtd2lkdGg6IDYzLjk4cHgpIHtney0tczQ4OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDY0cHgpIHtney0tczY0OmJsb2NrO319PC9zdHlsZT48Zz48dXNlIGhyZWY9IiNpLWNoZXZyb25yaWdodCIvPjwvZz48L3N2Zz4=")}.home{padding-block:var(--post-device-spacing-padding-47)}.home::before{content:unset}.home post-icon{width:var(--post-device-sizing-interactive-icon-size2);height:var(--post-device-sizing-interactive-icon-size2)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}
1
+ :host{display:block;position:relative}nav{max-width:100%}nav.invisible{overflow:hidden;visibility:hidden;position:absolute;inset:0}nav.loading>div>:not(.home){display:none}[role=list]{display:flex;align-items:flex-start;gap:var(--post-device-spacing-gap-inline-4)}[role=list]>.menu:first-child::before{content:none}.breadcrumb-item{display:flex;align-items:flex-start;padding-block:var(--post-device-spacing-padding-block-6);gap:var(--post-device-spacing-gap-inline-5)}.breadcrumb-item :is(button,a){display:inline-flex;position:relative;align-items:center;justify-content:center;max-width:100%;overflow:hidden;transition:opacity 250ms,border-color 250ms,background-color 250ms,color 250ms;border-width:var(--post-device-border-width-default);border-style:solid;border-color:rgba(0,0,0,0);border-radius:var(--post-device-border-radius-round);background-color:rgba(0,0,0,0);box-shadow:none;font-family:inherit;font-size:var(--post-device-font-size-6);font-weight:var(--post-device-font-weight-bold);text-decoration:none;white-space:nowrap;cursor:pointer;font:inherit;padding:unset;border:unset;border-radius:var(--post-device-border-radius-focus);color:var(--post-scheme-color-interactive-primary-enabled-fg1);text-decoration:var(--post-core-text-decoration-none)}.breadcrumb-item :is(button,a):not(:disabled):hover{text-decoration:none}.breadcrumb-item :is(button,a):disabled{border-style:var(--post-core-border-style-dash);cursor:unset}.breadcrumb-item :is(button,a){outline-offset:var(--post-device-spacing-padding-2) !important;outline:var(--post-scheme-color-interactive-focus-stroke) none var(--post-device-border-width-focus) !important}.breadcrumb-item :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.breadcrumb-item :is(button,a):is(:focus-visible,:has(:focus-visible),.pretend-focus){outline-color:Highlight !important}}@supports not selector(:has(:focus-visible)){.breadcrumb-item :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-style:var(--post-core-border-style-solid) !important}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.breadcrumb-item :is(button,a):is(:focus-visible,:focus-within,.pretend-focus){outline-color:Highlight !important}}}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){.breadcrumb-item :is(button,a){border-width:1px !important;transition:none}.breadcrumb-item :is(button,a):is(button){background-color:ButtonFace !important;border-color:ButtonBorder !important}}.breadcrumb-item :is(button,a):hover{color:var(--post-scheme-color-interactive-primary-hover-fg1);text-decoration:var(--post-core-text-decoration-underline)}.breadcrumb-item::before{mask-image:var(--post-icon-chevronright);background-color:currentColor;flex:0 0 auto;content:"";display:block;height:var(--post-device-sizing-interactive-icon-size4);width:var(--post-device-sizing-interactive-icon-size4);margin-block:calc(var(--post-device-spacing-padding-35) - 1*var(--post-device-spacing-padding-block-6));margin-inline:var(--post-core-dimension-4)}:root,:host{--post-icon-chevronright: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzeW1ib2wgaWQ9ImktY2hldnJvbnJpZ2h0Ij48c3ltYm9sIGlkPSJzMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZD0iTTUuMzggMTRjLS4xOSAwLS4zOC0uMDctLjUzLS4yMmEuNzU0Ljc1NCAwIDAgMSAwLTEuMDZMOS41NyA4IDQuODUgMy4yOGMtLjI5LS4yOS0uMjktLjc3IDAtMS4wNnMuNzctLjI5IDEuMDYgMEwxMS42OSA4bC01Ljc4IDUuNzhjLS4xNS4xNS0uMzQuMjItLjUzLjIyIi8+PC9zeW1ib2w+PHN5bWJvbCBpZD0iczI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik04LjA3IDIwLjcyYy0uMjIgMC0uNDUtLjA4LS42Mi0uMjZhLjg4Ljg4IDAgMCAxIDAtMS4yNGw3LjI2LTcuMjZMNy40NSA0LjdhLjg4Ljg4IDAgMCAxIDAtMS4yNGMuMzQtLjM0LjktLjM0IDEuMjQgMGw4LjUgOC41LTguNDkgOC40OWMtLjE3LjE3LS40LjI2LS42Mi4yNloiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZD0iTTEwLjc2IDI3LjVjLS4yNiAwLS41MS0uMS0uNzEtLjI5YS45OTYuOTk2IDAgMCAxIDAtMS40MWw5Ljc5LTkuNzktOS43OS05LjgxYS45OTYuOTk2IDAgMSAxIDEuNDEtMS40MUwyMi42NyAxNiAxMS40NiAyNy4yMWMtLjIuMi0uNDUuMjktLjcxLjI5WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM0MCIgdmlld0JveD0iMCAwIDQwIDQwIj48cGF0aCBkPSJNMTMuNSAzNC4yMmExLjEyMyAxLjEyMyAwIDAgMS0uOC0xLjkybDEyLjMzLTEyLjMzTDEyLjcgNy42M2MtLjQ0LS40NC0uNDQtMS4xNSAwLTEuNTlzMS4xNS0uNDQgMS41OSAwbDEzLjkzIDEzLjkzTDE0LjMgMzMuODljLS4yMi4yMi0uNTEuMzMtLjguMzMiLz48L3N5bWJvbD48c3ltYm9sIGlkPSJzNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZD0iTTE2LjE0IDQxYy0uMzIgMC0uNjQtLjEyLS44OC0uMzdhMS4yNSAxLjI1IDAgMCAxIDAtMS43N2wxNC44Ny0xNC44N0wxNS4yNSA5LjExYy0uNDktLjQ5LS40OS0xLjI4IDAtMS43N3MxLjI4LS40OSAxLjc3IDBsMTYuNjQgMTYuNjQtMTYuNjMgMTYuNjNjLS4yNC4yNC0uNTYuMzctLjg4LjM3WiIvPjwvc3ltYm9sPjxzeW1ib2wgaWQ9InM2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij48cGF0aCBkPSJNMjEuNTEgNTQuNGExLjM3NiAxLjM3NiAwIDAgMS0uOTctMi4zNWwyMC4wMy0yMC4wMy0yMC4wNC0yMC4wM2MtLjU0LS41NC0uNTQtMS40MSAwLTEuOTVzMS40MS0uNTQgMS45NSAwbDIxLjk4IDIxLjk5TDIyLjQ5IDU0Yy0uMjcuMjctLjYyLjQtLjk3LjRaIi8+PC9zeW1ib2w+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczE2LCBub25lKSIgaHJlZj0iI3MxNiIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXMyNCwgbm9uZSkiIGhyZWY9IiNzMjQiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zMzIsIG5vbmUpIiBocmVmPSIjczMyIi8+PHVzZSBzdHlsZT0iZGlzcGxheTogdmFyKC0tczQwLCBub25lKSIgaHJlZj0iI3M0MCIvPjx1c2Ugc3R5bGU9ImRpc3BsYXk6IHZhcigtLXM0OCwgbm9uZSkiIGhyZWY9IiNzNDgiLz48dXNlIHN0eWxlPSJkaXNwbGF5OiB2YXIoLS1zNjQsIG5vbmUpIiBocmVmPSIjczY0Ii8+PC9zeW1ib2w+PC9kZWZzPjxzdHlsZT5AbWVkaWEgKG1heC13aWR0aDogMjMuOThweCkge2d7LS1zMTY6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogMjRweCkgYW5kIChtYXgtd2lkdGg6IDMxLjk4cHgpIHtney0tczI0OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDMycHgpIGFuZCAobWF4LXdpZHRoOiAzOS45OHB4KSB7Z3stLXMzMjpibG9jazt9fUBtZWRpYSAobWluLXdpZHRoOiA0MHB4KSBhbmQgKG1heC13aWR0aDogNDcuOThweCkge2d7LS1zNDA6YmxvY2s7fX1AbWVkaWEgKG1pbi13aWR0aDogNDhweCkgYW5kIChtYXgtd2lkdGg6IDYzLjk4cHgpIHtney0tczQ4OmJsb2NrO319QG1lZGlhIChtaW4td2lkdGg6IDY0cHgpIHtney0tczY0OmJsb2NrO319PC9zdHlsZT48Zz48dXNlIGhyZWY9IiNpLWNoZXZyb25yaWdodCIvPjwvZz48L3N2Zz4=")}post-menu-item>slot[name=home]>a{position:relative;display:flex;align-items:center;padding:8px 12px 8px 16px;gap:12px;font-size:.875rem;color:#050400;border-radius:0;text-decoration:none;min-width:0;white-space:normal;overflow:visible;text-overflow:unset;justify-content:start;overflow-wrap:anywhere;hyphens:auto;line-break:strict}@media screen and (min-width: 780px){post-menu-item>slot[name=home]>a{font-size:1rem;padding-block:12px;gap:16px}}@media screen and (min-width: 1024px){post-menu-item>slot[name=home]>a{font-size:1.25rem;padding-block:13px}}post-menu-item>slot[name=home]>a:focus-visible{outline-offset:2px !important;border-radius:4px}post-menu-item>slot[name=home]>a:hover{background-color:#504f4b;color:#fff}.home{flex:none}.home::before{content:unset}.home.icon{padding-block:var(--post-device-spacing-padding-47)}.home.icon post-icon{width:var(--post-device-sizing-interactive-icon-size2);height:var(--post-device-sizing-interactive-icon-size2)}.menu{margin-inline-end:calc(-1*var(--post-device-spacing-gap-inline-4))}.menu.empty{display:none}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}
@@ -10,93 +10,242 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
10
10
  };
11
11
  import { componentOnReady, nanoid, Required, Type, Url } from "../../utils/index";
12
12
  import { version } from "../../../../package";
13
- import { h, Host } from "@stencil/core";
13
+ import { Host, h } from "@stencil/core";
14
14
  import { throttle } from "throttle-debounce";
15
+ const MAX_VISIBLE_ITEMS = 6;
16
+ const MEASUREMENT_DEBOUNCE_MS = 50;
17
+ /**
18
+ * @slot home - The content of the root (home) breadcrumb item. Can contain an `<a>` element, so consumers can slot their own routing-aware link instead of relying on the `home-url` prop.
19
+ */
15
20
  export class PostBreadcrumbs {
16
21
  constructor() {
17
- this.shouldRenderMenu = false;
22
+ this.debounceUpdateCollapsedItems = throttle(MEASUREMENT_DEBOUNCE_MS, this.updateCollapsedItems.bind(this));
23
+ this.resizeObserver = new ResizeObserver(this.debounceUpdateCollapsedItems);
24
+ this.mutationObserver = new MutationObserver(() => {
25
+ void this.updateAfterMutation();
26
+ });
27
+ this.loaded = false;
28
+ /** Whether the consumer slotted their own `<a>` into the `home` slot. When true, `home-url` is not required, since the internal fallback link is not rendered. */
29
+ this.hasSlottedHomeAnchor = false;
30
+ /** Whether the slotted home anchor contains a post-icon. */
31
+ this.hasSlottedHomeIcon = false;
32
+ /** The number of breadcrumb items, counted from the start, moved into the overflow menu. */
33
+ this.collapsed = 0;
34
+ /** Whether the home item is collapsed into its own overflow menu. */
35
+ this.homeCollapsed = false;
36
+ /** Whether the last (selected) item wraps onto multiple lines. */
37
+ this.lastItemWraps = false;
38
+ /** The visible breadcrumb navigation. */
39
+ this.nav = null;
40
+ /** An off-screen copy of the breadcrumb navigation used for measurement. */
41
+ this.hiddenNav = null;
42
+ /**
43
+ * Whether `text-home` content is displayed instead of the home icon, enabling segment specific
44
+ * breadcrumbs (like "Private customers" or "About us").
45
+ */
46
+ this.homeTextOnly = false;
18
47
  }
19
48
  componentWillLoad() {
20
49
  this.id = this.host.id || `b${nanoid(6)}`;
50
+ this.checkSlottedHomeAnchor();
21
51
  }
22
- componentDidLoad() {
23
- this.createMutationObserver();
24
- this.createResizeObserver();
25
- }
26
- disconnectedCallback() {
27
- this.mutationObserver?.disconnect();
28
- this.resizeObserver?.disconnect();
29
- }
30
- createMutationObserver() {
31
- this.mutationObserver = new MutationObserver(this.duplicateNavElement.bind(this));
32
- this.mutationObserver.observe(this.host, {
52
+ async componentDidLoad() {
53
+ this.resizeObserver?.observe(document.body);
54
+ this.mutationObserver?.observe(this.host, {
33
55
  childList: true,
34
56
  characterData: true,
35
57
  subtree: true,
36
58
  });
37
- this.duplicateNavElement();
59
+ await this.updateHiddenNav();
60
+ await this.updateCollapsedItems();
61
+ this.loaded = true;
38
62
  }
39
- createResizeObserver() {
40
- this.resizeObserver = new ResizeObserver(throttle(50, this.checkOverflow.bind(this)));
41
- this.resizeObserver.observe(document.body);
63
+ disconnectedCallback() {
64
+ this.resizeObserver?.disconnect();
65
+ this.mutationObserver?.disconnect();
66
+ this.debounceUpdateCollapsedItems.cancel();
42
67
  }
43
- /**
44
- * To measure overflow, we duplicate the entire breadcrumb so an inline version is always available.
45
- */
46
- duplicateNavElement() {
47
- const shadowRoot = this.host.shadowRoot;
48
- const nav = shadowRoot?.querySelector('nav');
49
- if (!shadowRoot || !nav)
50
- return;
51
- this.prepareBreadcrumbItemsForClone();
52
- const clone = nav.cloneNode(true);
53
- clone.classList.add('invisible');
54
- shadowRoot.querySelector('nav.invisible')?.remove();
55
- shadowRoot.append(clone);
56
- requestAnimationFrame(() => {
57
- this.duplicateSlottedElements(clone, 'slot:not([name])');
58
- this.duplicateSlottedElements(clone, 'slot[name="selected"]');
59
- this.checkOverflow();
60
- });
68
+ checkSlottedHomeAnchor() {
69
+ const homeSlotElement = Array.from(this.host.children).find(child => child.getAttribute('slot') === 'home');
70
+ this.hasSlottedHomeAnchor = homeSlotElement?.tagName === 'A';
71
+ this.hasSlottedHomeIcon =
72
+ this.hasSlottedHomeAnchor && !!homeSlotElement?.querySelector('post-icon');
61
73
  }
62
- duplicateSlottedElements(clone, slotSelector) {
63
- const originalSlot = this.host.shadowRoot?.querySelector(slotSelector);
64
- const clonedSlot = clone.querySelector(slotSelector);
65
- if (!originalSlot || !clonedSlot)
66
- return;
67
- originalSlot.assignedElements().forEach(element => {
68
- clonedSlot.insertAdjacentElement('beforebegin', element.cloneNode(true));
69
- });
70
- clonedSlot.remove();
74
+ get usesHomeText() {
75
+ return this.hasSlottedHomeAnchor ? !this.hasSlottedHomeIcon : this.homeTextOnly;
71
76
  }
72
- checkOverflow() {
73
- const hiddenNav = this.host.shadowRoot?.querySelector('nav.invisible');
74
- if (!hiddenNav)
77
+ // Degrade order: collapse middle items -> collapse home -> wrap the last item.
78
+ /** Measures the available space and updates all three degrade-stage states. */
79
+ async updateCollapsedItems() {
80
+ if (!this.nav)
75
81
  return;
76
- const breadcrumbItems = Array.from(hiddenNav.querySelectorAll('post-breadcrumb-item'));
77
- Promise.all(breadcrumbItems.map(item => componentOnReady(item))).then(() => {
78
- this.shouldRenderMenu =
79
- hiddenNav.scrollWidth > hiddenNav.clientWidth && breadcrumbItems.length > 1;
80
- this.updateBreadcrumbItemProps();
82
+ const { overflowing, homeOverflows, lastItemWraps } = await this.calculateCollapsedItems();
83
+ this.collapsed = overflowing;
84
+ this.homeCollapsed = homeOverflows;
85
+ this.lastItemWraps = lastItemWraps;
86
+ }
87
+ async calculateCollapsedItems() {
88
+ const items = this.host.querySelectorAll('post-breadcrumb-item');
89
+ const { overflowing, homeOverflows, lastItemWraps } = await this.calculateOverflowingItems();
90
+ // Never show more than `MAX_VISIBLE_ITEMS`, even if the nav is wide enough to fit them all.
91
+ return {
92
+ overflowing: Math.max(overflowing, items.length - MAX_VISIBLE_ITEMS),
93
+ homeOverflows,
94
+ lastItemWraps,
95
+ };
96
+ }
97
+ /** Runs the three degrade stages in order against the off-screen measurement clone. */
98
+ async calculateOverflowingItems() {
99
+ if (!this.hiddenNav)
100
+ return { overflowing: 0, homeOverflows: false, lastItemWraps: false };
101
+ const nav = this.hiddenNav;
102
+ const availableWidth = nav.clientWidth;
103
+ const gap = Number.parseFloat(getComputedStyle(nav.firstElementChild).gap);
104
+ const menuWidth = nav.querySelector('.menu')?.clientWidth ?? 0;
105
+ const homeWidth = nav.querySelector('.home')?.clientWidth ?? 0;
106
+ // Stage 1: collapse middle items, starting closest to home, until the rest fits.
107
+ const middleItems = Array.from(nav.querySelectorAll('post-breadcrumb-item')).slice(0, -1);
108
+ const { overflowing, remainingWidth } = this.collapseMiddleItems(middleItems, gap, menuWidth, availableWidth);
109
+ // Stage 2: home + last item, single-line. Text home can collapse into the menu, while the
110
+ // icon-only home remains visible and lets the last item wrap instead.
111
+ const homeOverflows = this.usesHomeText && remainingWidth > availableWidth;
112
+ // Stage 3: home joins the existing menu when middle items have collapsed. If no middle item
113
+ // collapsed, the menu needs to be added when home moves into it.
114
+ const widthWithHomeCollapsed = remainingWidth - homeWidth + (overflowing === 0 ? menuWidth : 0);
115
+ const lastItemWraps = this.usesHomeText
116
+ ? homeOverflows && widthWithHomeCollapsed > availableWidth
117
+ : remainingWidth > availableWidth;
118
+ return { overflowing, homeOverflows, lastItemWraps };
119
+ }
120
+ /** Stage 1: collapses middle items until the rest fits, or none are left. */
121
+ collapseMiddleItems(items, gap, menuWidth, availableWidth) {
122
+ // Start from the assumption that all items fit and that no menu is shown, so subtract the
123
+ // overflow menu's width from the total.
124
+ let width = this.hiddenNav.scrollWidth - menuWidth + gap;
125
+ let overflowing = 0;
126
+ while (overflowing < items.length && width > availableWidth) {
127
+ // The overflow menu needs to be displayed as soon as the first item is moved into it, so its
128
+ // width needs to be taken into account when measuring the remaining items.
129
+ if (overflowing === 0)
130
+ width += menuWidth;
131
+ width -= items[overflowing++].clientWidth + gap;
132
+ }
133
+ return { overflowing, remainingWidth: width };
134
+ }
135
+ /** Applies the degrade states to the `<post-breadcrumb-item>` elements. */
136
+ updateItems(items, collapsed, lastItemWraps) {
137
+ items.forEach((item, index) => {
138
+ const isLast = index === items.length - 1;
139
+ item.setAttribute('variant', index < collapsed ? 'menuitem' : 'listitem');
140
+ item.setAttribute('selected', String(isLast));
141
+ item.setAttribute('standalone', String(isLast && index === collapsed && lastItemWraps));
81
142
  });
82
143
  }
83
- prepareBreadcrumbItemsForClone() {
84
- this.shouldRenderMenu = false;
85
- this.updateBreadcrumbItemProps();
144
+ /** Rebuilds the off-screen copy of the breadcrumb navigation. */
145
+ async updateHiddenNav() {
146
+ this.hiddenNav?.remove();
147
+ this.hiddenNav = await this.renderHiddenNav();
148
+ }
149
+ async updateAfterMutation() {
150
+ await this.updateHiddenNav();
151
+ await this.updateCollapsedItems();
86
152
  }
87
- updateBreadcrumbItemProps() {
88
- const breadcrumbItems = this.host.querySelectorAll('post-breadcrumb-item');
89
- breadcrumbItems.forEach((item, index) => {
90
- item.setAttribute('variant', this.shouldRenderMenu ? 'menuitem' : 'listitem');
91
- item.setAttribute('selected', String(index === breadcrumbItems.length - 1));
153
+ /**
154
+ * Renders an off-screen copy of the nav for measurements. `.home` is rebuilt independently (see
155
+ * `buildMeasurementHomeElement`) rather than cloned, since the live nav may show the home item
156
+ * in the overflow menu instead if it is already collapsed.
157
+ */
158
+ async renderHiddenNav() {
159
+ const shadowRoot = this.host.shadowRoot;
160
+ if (!shadowRoot || !this.nav)
161
+ return null;
162
+ const clone = this.nav.cloneNode(true);
163
+ const slots = clone.querySelectorAll('slot');
164
+ // Deep clone the breadcrumb navigation and flatten its slots into the clone.
165
+ this.nav.querySelectorAll('slot').forEach((source, index) => {
166
+ const target = slots[index];
167
+ const assignedElements = source.assignedElements();
168
+ if (assignedElements.length > 0) {
169
+ // Insert the assigned elements where the slot used to be, then drop the now empty slot.
170
+ assignedElements.forEach(element => {
171
+ target.insertAdjacentElement('beforebegin', element.cloneNode(true));
172
+ });
173
+ target.remove();
174
+ }
175
+ else {
176
+ // Nothing assigned: keep the slot's own fallback content (e.g. the default home link) by
177
+ // unwrap the <slot> in place, move its children to where it was, then remove it.
178
+ const parent = target.parentNode;
179
+ if (parent) {
180
+ Array.from(target.childNodes).forEach(child => parent.insertBefore(child, target));
181
+ target.remove();
182
+ }
183
+ }
92
184
  });
185
+ // Always measure the full, uncollapsed home item — see the method doc above. Uses
186
+ // replaceChild rather than replaceWith, since the latter isn't implemented by Stencil's
187
+ // mock-doc DOM used during SSR/hydration.
188
+ const existingHome = clone.querySelector('.home');
189
+ existingHome?.parentNode?.replaceChild(this.buildMeasurementHomeElement(), existingHome);
190
+ clone.classList.remove('loading');
191
+ clone.classList.add('invisible');
192
+ // Show the overflow menu so that we can include the space it takes up in the measurement.
193
+ clone.querySelector('.menu').classList.remove('empty');
194
+ shadowRoot.append(clone);
195
+ // Wait for all items to be fully hydrated before measuring.
196
+ const items = clone.querySelectorAll('post-breadcrumb-item');
197
+ await Promise.all(Array.from(items).map(item => componentOnReady(item)));
198
+ // Uncollapsed layout, both single-line, for measurement.
199
+ this.updateItems(items, 0, false);
200
+ return clone;
201
+ }
202
+ /** Builds `.home` in its full, uncollapsed form for measurement. Mirrors `renderHomeContent`, but as plain DOM since this runs outside the render cycle. */
203
+ buildMeasurementHomeElement() {
204
+ const home = document.createElement('div');
205
+ home.className = `breadcrumb-item home${this.usesHomeText ? '' : ' icon'}`;
206
+ home.setAttribute('role', 'listitem');
207
+ const slottedAnchor = this.hasSlottedHomeAnchor
208
+ ? Array.from(this.host.children).find(child => child.getAttribute('slot') === 'home')
209
+ : null;
210
+ if (slottedAnchor) {
211
+ home.append(slottedAnchor.cloneNode(true));
212
+ return home;
213
+ }
214
+ const anchor = document.createElement('a');
215
+ if (this.homeUrl)
216
+ anchor.href = this.homeUrl;
217
+ const label = document.createElement('span');
218
+ if (!this.usesHomeText)
219
+ label.className = 'visually-hidden';
220
+ label.textContent = this.textHome;
221
+ anchor.append(label);
222
+ if (!this.usesHomeText) {
223
+ const icon = document.createElement('post-icon');
224
+ icon.setAttribute('aria-hidden', 'true');
225
+ icon.setAttribute('name', 'home');
226
+ anchor.append(icon);
227
+ }
228
+ home.append(anchor);
229
+ return home;
93
230
  }
94
231
  renderMenu() {
95
232
  const menuId = `${this.id}-menu`;
96
- return (h("div", { role: "listitem" }, h("div", { class: "breadcrumb-item" }, h("post-menu-trigger", { for: menuId }, h("button", null, h("span", { class: "visually-hidden" }, this.textMoreItems), h("span", { "aria-hidden": "true" }, "...")))), h("post-menu", { id: menuId, label: this.textMoreItems, placement: "bottom-start" }, h("slot", null))));
233
+ return (h("div", { class: `breadcrumb-item menu ${this.collapsed === 0 && !this.homeCollapsed ? 'empty' : ''}`, role: "listitem" }, h("post-menu-trigger", { for: menuId }, h("button", null, h("span", { class: "visually-hidden" }, this.textMoreItems), h("span", { "aria-hidden": "true" }, "..."))), h("post-menu", { id: menuId, label: this.textMoreItems, placement: "bottom-start" }, this.homeCollapsed && this.usesHomeText && (h("post-menu-item", null, this.renderHomeContent())), h("slot", { name: "menu" }))));
234
+ }
235
+ /** Reused by the plain home item and the home menu — a slot can only be assigned once. */
236
+ renderHomeContent() {
237
+ return (h("slot", { name: "home", onSlotchange: () => this.checkSlottedHomeAnchor() }, h("a", { href: this.homeUrl }, h("span", { class: this.usesHomeText ? undefined : 'visually-hidden' }, this.textHome), !this.usesHomeText && h("post-icon", { "aria-hidden": "true", name: "home" }))));
238
+ }
239
+ /** Degrade stage 2: home renders in full, single-line, not yet collapsed. */
240
+ renderHome() {
241
+ return (h("div", { class: `breadcrumb-item home${this.usesHomeText ? '' : ' icon'}`, role: "listitem" }, this.renderHomeContent()));
97
242
  }
98
243
  render() {
99
- return (h(Host, { key: '2640a012ada112396ea3c954cda45c7bfaf2968d', "data-version": version }, h("nav", { key: '397a017f326459c433e0f8fae5766badfad52e29', "aria-label": this.textBreadcrumbs }, h("div", { key: 'eb1d83aeb4aca599350918ba6be9df2a5ce86453', role: "list" }, h("div", { key: '217b359f3da4afc3ca8c28d8fc0d352f4198c9b1', class: "breadcrumb-item home", role: "listitem" }, h("a", { key: '1c2c3754bc0ef04e48ab95b5dad62e2d4cbb85e9', href: this.homeUrl }, h("span", { key: '15878d068a9901a2c7b4f6726e6962dc9158a86f', class: "visually-hidden" }, this.textHome), h("post-icon", { key: '0d755bcc61c49ccd7944b4a9370198ed41ab1c34', "aria-hidden": "true", name: "home" }))), this.shouldRenderMenu ? this.renderMenu() : h("slot", null), h("slot", { key: 'a0bafe06eab2346ea12bd00aec40c91b5e5347d0', name: "selected" })))));
244
+ if (this.loaded) {
245
+ const items = this.host.querySelectorAll('post-breadcrumb-item');
246
+ this.updateItems(items, this.collapsed, this.lastItemWraps);
247
+ }
248
+ return (h(Host, { key: '8d5f457a7c6a2df0cfaf5c31f3ffc6937de76e57', "data-version": version, class: this.homeCollapsed && this.usesHomeText ? 'home-collapsed' : undefined }, h("nav", { key: 'ce3fd7ad69060dd6968afaad6170e27eee72682f', "aria-label": this.textBreadcrumbs, ref: el => (this.nav = el), class: this.loaded ? '' : 'loading' }, h("div", { key: '1c400c8c1e1b625203876cc9804936782a2202c6', role: "list" }, (!this.homeCollapsed || !this.usesHomeText) && this.renderHome(), this.renderMenu(), h("slot", { key: '5cf6618b487961c0e7d70637f5396d023660ec55' }), h("slot", { key: 'f4fb662d04d9966c76a22444844d692611472b2d', name: "selected" })))));
100
249
  }
101
250
  static get is() { return "post-breadcrumbs"; }
102
251
  static get encapsulation() { return "shadow"; }
@@ -120,8 +269,8 @@ export class PostBreadcrumbs {
120
269
  "resolved": "string",
121
270
  "references": {}
122
271
  },
123
- "required": true,
124
- "optional": false,
272
+ "required": false,
273
+ "optional": true,
125
274
  "docs": {
126
275
  "tags": [],
127
276
  "text": "The URL for the root (home) breadcrumb item."
@@ -139,17 +288,37 @@ export class PostBreadcrumbs {
139
288
  "resolved": "string",
140
289
  "references": {}
141
290
  },
142
- "required": true,
143
- "optional": false,
291
+ "required": false,
292
+ "optional": true,
144
293
  "docs": {
145
294
  "tags": [],
146
- "text": "An accessible label for the root (home) breadcrumb item."
295
+ "text": "The label of the root (home) breadcrumb item. Displayed visibly when `home-text-only` is\n`true`, otherwise used as an accessible label alongside the home icon."
147
296
  },
148
297
  "getter": false,
149
298
  "setter": false,
150
299
  "reflect": true,
151
300
  "attribute": "text-home"
152
301
  },
302
+ "homeTextOnly": {
303
+ "type": "boolean",
304
+ "mutable": false,
305
+ "complexType": {
306
+ "original": "boolean",
307
+ "resolved": "boolean",
308
+ "references": {}
309
+ },
310
+ "required": false,
311
+ "optional": false,
312
+ "docs": {
313
+ "tags": [],
314
+ "text": "Whether `text-home` content is displayed instead of the home icon, enabling segment specific\nbreadcrumbs (like \"Private customers\" or \"About us\")."
315
+ },
316
+ "getter": false,
317
+ "setter": false,
318
+ "reflect": true,
319
+ "attribute": "home-text-only",
320
+ "defaultValue": "false"
321
+ },
153
322
  "textBreadcrumbs": {
154
323
  "type": "string",
155
324
  "mutable": false,
@@ -192,20 +361,29 @@ export class PostBreadcrumbs {
192
361
  }
193
362
  static get states() {
194
363
  return {
195
- "shouldRenderMenu": {},
196
- "id": {}
364
+ "id": {},
365
+ "loaded": {},
366
+ "hasSlottedHomeAnchor": {},
367
+ "hasSlottedHomeIcon": {},
368
+ "collapsed": {},
369
+ "homeCollapsed": {},
370
+ "lastItemWraps": {}
197
371
  };
198
372
  }
199
373
  static get elementRef() { return "host"; }
200
374
  }
201
375
  __decorate([
202
- Required(),
376
+ Required({ when: 'hasSlottedHomeAnchor', truthy: false }),
203
377
  Url()
204
378
  ], PostBreadcrumbs.prototype, "homeUrl", void 0);
205
379
  __decorate([
206
- Required(),
380
+ Required({ when: 'hasSlottedHomeAnchor', truthy: false }),
207
381
  Type('string')
208
382
  ], PostBreadcrumbs.prototype, "textHome", void 0);
383
+ __decorate([
384
+ Required(),
385
+ Type('boolean')
386
+ ], PostBreadcrumbs.prototype, "homeTextOnly", void 0);
209
387
  __decorate([
210
388
  Required(),
211
389
  Type('string')
@@ -8,7 +8,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
9
  return c > 3 && r && Object.defineProperty(target, key, r), r;
10
10
  };
11
- import { OneOf, Required } from "../../utils/index";
11
+ import { findClosableTarget, OneOf, Required } from "../../utils/index";
12
12
  import { version } from "../../../../package";
13
13
  import { h, Host } from "@stencil/core";
14
14
  import { BUTTON_TYPES, PLACEMENT, SIZE } from "./types";
@@ -19,7 +19,7 @@ export class PostClosebutton {
19
19
  constructor() {
20
20
  /**
21
21
  * The "type" attribute used for the close button
22
-
22
+
23
23
  */
24
24
  this.buttonType = 'button';
25
25
  /**
@@ -30,6 +30,10 @@ export class PostClosebutton {
30
30
  * The size of the close button.
31
31
  */
32
32
  this.size = 'default';
33
+ this.handleClick = () => {
34
+ const target = findClosableTarget(this.host);
35
+ target?.close();
36
+ };
33
37
  }
34
38
  componentDidLoad() {
35
39
  if (globalThis.MutationObserver) {
@@ -54,13 +58,8 @@ export class PostClosebutton {
54
58
  console.error(`The \`${this.host.localName}\` component requires content for accessibility.`);
55
59
  }
56
60
  }
57
- handleClick() {
58
- if (this.buttonType === 'reset')
59
- this.internals.form?.reset();
60
- this.host.closest('dialog')?.close();
61
- }
62
61
  render() {
63
- return (h(Host, { key: '22ac2b07e9a8a8f8d157423fea1bcedb2c4f9b11', "data-version": version }, h("button", { key: '91eb413a2546f131e4c97c28340374addbf2c7a7', type: this.buttonType, class: "btn btn-icon btn-secondary btn-sm", onClick: () => this.handleClick() }, h("post-icon", { key: '02202b3df2e5830aeb267921c924c1e75508d546', "aria-hidden": "true", name: "closex" }), h("span", { key: 'c691c845dd58b4f975c33791d29518428ade6ee8', ref: el => (this.visuallyHidden = el), class: "visually-hidden" }, h("slot", { key: '3fd42b82ef1d1ea76343e0c69f421a2916c26006' })))));
62
+ return (h(Host, { key: 'b8e2214b904f5167fa3753aab947418891236fcf', "data-version": version }, h("button", { key: '224ca42d3be187062ba9717e4a534ff34eeafaf7', type: this.buttonType, class: "btn btn-icon btn-secondary btn-sm", onClick: this.handleClick }, h("post-icon", { key: '5b289691599d6f9a3bb0fa7a28c71eecd1f5aee7', "aria-hidden": "true", name: "closex" }), h("span", { key: 'e22045f15b3dc8b8b228eb4282114e10db68b186', ref: el => (this.visuallyHidden = el), class: "visually-hidden" }, h("slot", { key: 'e492390c995a993ffc8988a1c90a41e59fbe39f5' })))));
64
63
  }
65
64
  static get is() { return "post-closebutton"; }
66
65
  static get encapsulation() { return "shadow"; }
@@ -66,7 +66,7 @@ export class PostCollapsible {
66
66
  triggers.forEach(trigger => trigger.update());
67
67
  }
68
68
  render() {
69
- return (h(Host, { key: 'd4fef8eff9b716e9dff0e570f5993221ca631ed5', "data-version": version, tabindex: this.collapsed ? -1 : undefined, style: this.collapsed ? collapsedKeyframe : undefined }, h("slot", { key: 'ee957da050187c1cfd752e0dcb6b5f86505f5089' })));
69
+ return (h(Host, { key: '243dad696871a08bc07325d4511f5baeb937c194', "data-version": version, tabindex: this.collapsed ? -1 : undefined, style: this.collapsed ? collapsedKeyframe : undefined }, h("slot", { key: '5f4f8a9bb698f6558b114c760e5eeb355ac35b80' })));
70
70
  }
71
71
  static get is() { return "post-collapsible"; }
72
72
  static get encapsulation() { return "shadow"; }