@swisspost/design-system-components 10.5.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 (278) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/{create-validator-decorator-u-Byhihe.js → create-validator-decorator-Cy5yN6u9.js} +1 -1
  3. package/dist/cjs/{index-CXnlZiX8.js → index-B3PXzvDk.js} +1 -1
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/{one-of-LGG0uEIi.js → one-of-CRFrfihj.js} +1 -1
  6. package/dist/cjs/{package-DdU-rENe.js → package-pKyFPwiA.js} +1 -1
  7. package/dist/cjs/{pattern-B-csvfNt.js → pattern-D329DFcf.js} +1 -1
  8. package/dist/cjs/post-accordion_2.cjs.entry.js +5 -5
  9. package/dist/cjs/post-autocomplete.cjs.entry.js +5 -5
  10. package/dist/cjs/post-avatar.cjs.entry.js +6 -6
  11. package/dist/cjs/post-back-to-top.cjs.entry.js +5 -5
  12. package/dist/cjs/post-banner.cjs.entry.js +4 -4
  13. package/dist/cjs/post-breadcrumb-item.cjs.entry.js +32 -10
  14. package/dist/cjs/post-breadcrumbs.cjs.entry.js +158 -58
  15. package/dist/cjs/post-closebutton_14.cjs.entry.js +49 -45
  16. package/dist/cjs/post-collapsible_2.cjs.entry.js +7 -7
  17. package/dist/cjs/post-components.cjs.js +2 -2
  18. package/dist/cjs/post-date-picker.cjs.entry.js +17 -15
  19. package/dist/cjs/post-footer.cjs.entry.js +7 -7
  20. package/dist/cjs/post-linkarea.cjs.entry.js +3 -3
  21. package/dist/cjs/post-listbox-option.cjs.entry.js +4 -4
  22. package/dist/cjs/post-listbox.cjs.entry.js +3 -3
  23. package/dist/cjs/post-number-input.cjs.entry.js +4 -4
  24. package/dist/cjs/post-pagination.cjs.entry.js +5 -5
  25. package/dist/cjs/post-popover-trigger.cjs.entry.js +6 -6
  26. package/dist/cjs/post-popover.cjs.entry.js +9 -9
  27. package/dist/cjs/post-progressbar.cjs.entry.js +4 -4
  28. package/dist/cjs/post-rating.cjs.entry.js +6 -6
  29. package/dist/cjs/post-side-navigation-trigger.cjs.entry.js +6 -6
  30. package/dist/cjs/post-side-navigation.cjs.entry.js +7 -7
  31. package/dist/cjs/post-stepper-item.cjs.entry.js +3 -3
  32. package/dist/cjs/post-stepper.cjs.entry.js +7 -7
  33. package/dist/cjs/post-tab-item.cjs.entry.js +6 -6
  34. package/dist/cjs/post-tab-panel.cjs.entry.js +6 -6
  35. package/dist/cjs/post-tabs.cjs.entry.js +8 -8
  36. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +7 -7
  37. package/dist/cjs/post-tooltip.cjs.entry.js +5 -5
  38. package/dist/cjs/{required-bJzxBV-V.js → required-DhAEd0c7.js} +1 -1
  39. package/dist/cjs/{type-CGPnqGY1.js → type-2Ma9dvHs.js} +1 -1
  40. package/dist/cjs/{url-Dxdd6tWj.js → url-DePscsTj.js} +1 -1
  41. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.css +1 -1
  42. package/dist/collection/components/post-breadcrumb-item/post-breadcrumb-item.js +30 -3
  43. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.css +1 -1
  44. package/dist/collection/components/post-breadcrumbs/post-breadcrumbs.js +184 -57
  45. package/dist/collection/components/post-closebutton/post-closebutton.js +1 -1
  46. package/dist/collection/components/post-collapsible/post-collapsible.js +1 -1
  47. package/dist/collection/components/post-collapsible-trigger/post-collapsible-trigger.js +2 -2
  48. package/dist/collection/components/post-date-picker/native-mask-element.js +1 -1
  49. package/dist/collection/components/post-date-picker/post-date-picker.js +11 -9
  50. package/dist/collection/components/post-footer/post-footer.js +2 -2
  51. package/dist/collection/components/post-header/post-header.js +2 -2
  52. package/dist/collection/components/post-icon/post-icon.js +1 -1
  53. package/dist/collection/components/post-linkarea/post-linkarea.js +1 -1
  54. package/dist/collection/components/post-listbox/post-listbox.js +1 -1
  55. package/dist/collection/components/post-listbox-option/post-listbox-option.js +2 -2
  56. package/dist/collection/components/post-logo/post-logo.js +1 -1
  57. package/dist/collection/components/post-mainnavigation/post-mainnavigation.js +1 -1
  58. package/dist/collection/components/post-megadropdown/post-megadropdown.js +3 -3
  59. package/dist/collection/components/post-megadropdown-trigger/post-megadropdown-trigger.js +1 -1
  60. package/dist/collection/components/post-menu/post-menu.js +1 -1
  61. package/dist/collection/components/post-menu-item/post-menu-item.css +1 -1
  62. package/dist/collection/components/post-menu-trigger/post-menu-trigger.js +1 -1
  63. package/dist/collection/components/post-number-input/post-number-input.js +2 -2
  64. package/dist/collection/components/post-popover/post-popover.js +3 -3
  65. package/dist/collection/components/post-popover-trigger/post-popover-trigger.js +2 -2
  66. package/dist/collection/components/post-popovercontainer/post-popovercontainer.js +26 -22
  67. package/dist/collection/components/post-progressbar/post-progressbar.js +1 -1
  68. package/dist/collection/components/post-rating/post-rating.js +1 -1
  69. package/dist/collection/components/post-side-navigation/post-side-navigation.js +1 -1
  70. package/dist/collection/components/post-side-navigation-trigger/post-side-navigation-trigger.js +1 -1
  71. package/dist/collection/components/post-stepper/post-stepper.js +1 -1
  72. package/dist/collection/components/post-stepper-item/post-stepper-item.js +1 -1
  73. package/dist/collection/components/post-tab-item/post-tab-item.js +2 -2
  74. package/dist/collection/components/post-tab-panel/post-tab-panel.js +1 -1
  75. package/dist/collection/components/post-tabs/post-tabs.css +1 -1
  76. package/dist/collection/components/post-tabs/post-tabs.js +2 -2
  77. package/dist/collection/components/post-togglebutton/post-togglebutton.js +1 -1
  78. package/dist/collection/components/post-tooltip/post-tooltip.js +1 -1
  79. package/dist/collection/components/post-tooltip-trigger/post-tooltip-trigger.js +2 -2
  80. package/dist/collection/utils/floating-ui.js +1 -1
  81. package/dist/components/package.js +1 -1
  82. package/dist/components/post-breadcrumb-item.js +1 -1
  83. package/dist/components/post-breadcrumbs.js +1 -1
  84. package/dist/components/post-closebutton2.js +1 -1
  85. package/dist/components/post-collapsible-trigger2.js +1 -1
  86. package/dist/components/post-collapsible2.js +1 -1
  87. package/dist/components/post-date-picker.js +1 -1
  88. package/dist/components/post-footer.js +1 -1
  89. package/dist/components/post-header.js +1 -1
  90. package/dist/components/post-icon2.js +1 -1
  91. package/dist/components/post-linkarea.js +1 -1
  92. package/dist/components/post-listbox-option.js +1 -1
  93. package/dist/components/post-listbox.js +1 -1
  94. package/dist/components/post-logo.js +1 -1
  95. package/dist/components/post-mainnavigation.js +1 -1
  96. package/dist/components/post-megadropdown-trigger.js +1 -1
  97. package/dist/components/post-megadropdown.js +1 -1
  98. package/dist/components/post-menu-item2.js +1 -1
  99. package/dist/components/post-menu-trigger2.js +1 -1
  100. package/dist/components/post-menu2.js +1 -1
  101. package/dist/components/post-number-input.js +1 -1
  102. package/dist/components/post-popover-trigger.js +1 -1
  103. package/dist/components/post-popover.js +1 -1
  104. package/dist/components/post-popovercontainer2.js +1 -1
  105. package/dist/components/post-progressbar.js +1 -1
  106. package/dist/components/post-rating.js +1 -1
  107. package/dist/components/post-side-navigation-trigger.js +1 -1
  108. package/dist/components/post-side-navigation.js +1 -1
  109. package/dist/components/post-stepper-item.js +1 -1
  110. package/dist/components/post-stepper.js +1 -1
  111. package/dist/components/post-tab-item.js +1 -1
  112. package/dist/components/post-tab-panel.js +1 -1
  113. package/dist/components/post-tabs.js +1 -1
  114. package/dist/components/post-togglebutton2.js +1 -1
  115. package/dist/components/post-tooltip-trigger.js +1 -1
  116. package/dist/components/post-tooltip.js +1 -1
  117. package/dist/components/react/index.js +1 -1
  118. package/dist/components/react/{p-CoCua20S.js → p-3RU9XwVO.js} +1 -1
  119. package/dist/components/react/p-B1TcktiB.js +1 -0
  120. package/dist/components/react/p-BN2dfUQ0.js +1 -0
  121. package/dist/components/react/{p-CuVhOs8F.js → p-BPUhha1U.js} +1 -1
  122. package/dist/components/react/{p-PYoaz_Xl.js → p-Bnb_TyDh.js} +1 -1
  123. package/dist/components/react/{p-CLeWLMJn.js → p-CcDLIogT.js} +1 -1
  124. package/dist/components/react/{p-DD-Sl3Ji.js → p-CdggfEzz.js} +1 -1
  125. package/dist/components/react/{p-DasK590W.js → p-CzsG0uCA.js} +1 -1
  126. package/dist/components/react/{p-C8vlYfD-.js → p-DffT6evQ.js} +1 -1
  127. package/dist/components/react/p-T8T3po4z.js +1 -0
  128. package/dist/components/react/{p-DiFAKI9o.js → p-WXzzOdnl.js} +1 -1
  129. package/dist/components/react/{p-D3rq_-Qk.js → p-m1-sOx5T.js} +1 -1
  130. package/dist/components/react/post-accordion-item.js +1 -1
  131. package/dist/components/react/post-accordion.js +1 -1
  132. package/dist/components/react/post-autocomplete.js +1 -1
  133. package/dist/components/react/post-avatar.js +1 -1
  134. package/dist/components/react/post-back-to-top.js +1 -1
  135. package/dist/components/react/post-banner.js +1 -1
  136. package/dist/components/react/post-breadcrumb-item.js +1 -1
  137. package/dist/components/react/post-breadcrumbs.js +1 -1
  138. package/dist/components/react/post-closebutton.js +1 -1
  139. package/dist/components/react/post-collapsible-trigger.js +1 -1
  140. package/dist/components/react/post-collapsible.js +1 -1
  141. package/dist/components/react/post-date-picker.js +1 -1
  142. package/dist/components/react/post-footer.js +1 -1
  143. package/dist/components/react/post-header.js +1 -1
  144. package/dist/components/react/post-icon.js +1 -1
  145. package/dist/components/react/post-language-menu-item.js +1 -1
  146. package/dist/components/react/post-language-menu.js +1 -1
  147. package/dist/components/react/post-linkarea.js +1 -1
  148. package/dist/components/react/post-listbox-option.js +1 -1
  149. package/dist/components/react/post-listbox.js +1 -1
  150. package/dist/components/react/post-logo.js +1 -1
  151. package/dist/components/react/post-mainnavigation.js +1 -1
  152. package/dist/components/react/post-megadropdown-trigger.js +1 -1
  153. package/dist/components/react/post-megadropdown.js +1 -1
  154. package/dist/components/react/post-menu-item.js +1 -1
  155. package/dist/components/react/post-menu-trigger.js +1 -1
  156. package/dist/components/react/post-menu.js +1 -1
  157. package/dist/components/react/post-number-input.js +1 -1
  158. package/dist/components/react/post-pagination.js +1 -1
  159. package/dist/components/react/post-popover-trigger.js +1 -1
  160. package/dist/components/react/post-popover.js +1 -1
  161. package/dist/components/react/post-popovercontainer.js +1 -1
  162. package/dist/components/react/post-progressbar.js +1 -1
  163. package/dist/components/react/post-rating.js +1 -1
  164. package/dist/components/react/post-side-navigation-trigger.js +1 -1
  165. package/dist/components/react/post-side-navigation.js +1 -1
  166. package/dist/components/react/post-stepper-item.js +1 -1
  167. package/dist/components/react/post-stepper.js +1 -1
  168. package/dist/components/react/post-tab-item.js +1 -1
  169. package/dist/components/react/post-tab-panel.js +1 -1
  170. package/dist/components/react/post-tabs.js +1 -1
  171. package/dist/components/react/post-togglebutton.js +1 -1
  172. package/dist/components/react/post-tooltip-trigger.js +1 -1
  173. package/dist/components/react/post-tooltip.js +1 -1
  174. package/dist/docs.json +57 -12
  175. package/dist/esm/{create-validator-decorator-CbYxqPSB.js → create-validator-decorator-C2XlYkNB.js} +1 -1
  176. package/dist/esm/{index-D3NdvMgy.js → index-BjziJWh2.js} +1 -1
  177. package/dist/esm/loader.js +3 -3
  178. package/dist/esm/{one-of-Mx4vYjem.js → one-of-Do1iao-k.js} +1 -1
  179. package/dist/esm/{package-Ny5VnydI.js → package-T8T3po4z.js} +1 -1
  180. package/dist/esm/{pattern-CqQVrJPN.js → pattern-BZDucOTq.js} +1 -1
  181. package/dist/esm/post-accordion_2.entry.js +5 -5
  182. package/dist/esm/post-autocomplete.entry.js +5 -5
  183. package/dist/esm/post-avatar.entry.js +6 -6
  184. package/dist/esm/post-back-to-top.entry.js +5 -5
  185. package/dist/esm/post-banner.entry.js +4 -4
  186. package/dist/esm/post-breadcrumb-item.entry.js +32 -10
  187. package/dist/esm/post-breadcrumbs.entry.js +158 -58
  188. package/dist/esm/post-closebutton_14.entry.js +49 -45
  189. package/dist/esm/post-collapsible_2.entry.js +7 -7
  190. package/dist/esm/post-components.js +3 -3
  191. package/dist/esm/post-date-picker.entry.js +17 -15
  192. package/dist/esm/post-footer.entry.js +7 -7
  193. package/dist/esm/post-linkarea.entry.js +3 -3
  194. package/dist/esm/post-listbox-option.entry.js +4 -4
  195. package/dist/esm/post-listbox.entry.js +3 -3
  196. package/dist/esm/post-number-input.entry.js +4 -4
  197. package/dist/esm/post-pagination.entry.js +5 -5
  198. package/dist/esm/post-popover-trigger.entry.js +6 -6
  199. package/dist/esm/post-popover.entry.js +9 -9
  200. package/dist/esm/post-progressbar.entry.js +4 -4
  201. package/dist/esm/post-rating.entry.js +6 -6
  202. package/dist/esm/post-side-navigation-trigger.entry.js +6 -6
  203. package/dist/esm/post-side-navigation.entry.js +7 -7
  204. package/dist/esm/post-stepper-item.entry.js +3 -3
  205. package/dist/esm/post-stepper.entry.js +7 -7
  206. package/dist/esm/post-tab-item.entry.js +6 -6
  207. package/dist/esm/post-tab-panel.entry.js +6 -6
  208. package/dist/esm/post-tabs.entry.js +8 -8
  209. package/dist/esm/post-tooltip-trigger.entry.js +7 -7
  210. package/dist/esm/post-tooltip.entry.js +5 -5
  211. package/dist/esm/{required-CxvSCYJj.js → required-B0X7uy13.js} +1 -1
  212. package/dist/esm/{type-CYB7_Yi8.js → type-CF1dOg6D.js} +1 -1
  213. package/dist/esm/{url-DOwgyBfp.js → url-BL7d6iWZ.js} +1 -1
  214. package/dist/post-components/{p-4e2bb082.entry.js → p-0e922531.entry.js} +1 -1
  215. package/dist/post-components/{p-e8c19f72.entry.js → p-1ec27142.entry.js} +1 -1
  216. package/dist/post-components/{p-ffec1880.entry.js → p-2005eb98.entry.js} +1 -1
  217. package/dist/post-components/{p-894b20dd.entry.js → p-2cff5b3a.entry.js} +1 -1
  218. package/dist/post-components/p-53bd2128.entry.js +1 -0
  219. package/dist/post-components/{p-2379e498.entry.js → p-59b30e90.entry.js} +1 -1
  220. package/dist/post-components/{p-a9223467.entry.js → p-60550edb.entry.js} +1 -1
  221. package/dist/post-components/p-655ded00.entry.js +1 -0
  222. package/dist/post-components/{p-030bfaa1.entry.js → p-76cc3c9a.entry.js} +1 -1
  223. package/dist/post-components/{p-44718c1a.entry.js → p-8012cc3b.entry.js} +1 -1
  224. package/dist/post-components/{p-1d67c427.entry.js → p-819c93de.entry.js} +1 -1
  225. package/dist/post-components/p-840acd3c.entry.js +1 -0
  226. package/dist/post-components/{p-781efeb8.entry.js → p-87b1034f.entry.js} +1 -1
  227. package/dist/post-components/{p-e8268a8d.entry.js → p-88f754e9.entry.js} +1 -1
  228. package/dist/post-components/p-9S_5_Zh8.js +1 -0
  229. package/dist/post-components/p-BYfu3J2D.js +1 -0
  230. package/dist/post-components/p-BjziJWh2.js +2 -0
  231. package/dist/post-components/p-BoYe-VVx.js +1 -0
  232. package/dist/post-components/p-CbbADNiv.js +1 -0
  233. package/dist/post-components/{p-sgCfAEQU.js → p-DgnQe03V.js} +1 -1
  234. package/dist/post-components/p-DlKbBdcP.js +1 -0
  235. package/dist/post-components/p-T8T3po4z.js +1 -0
  236. package/dist/post-components/{p-2cb843f4.entry.js → p-a32d3050.entry.js} +1 -1
  237. package/dist/post-components/p-b4229624.entry.js +1 -0
  238. package/dist/post-components/{p-2ee255c1.entry.js → p-b9faa76b.entry.js} +1 -1
  239. package/dist/post-components/{p-b856263a.entry.js → p-ba1b4ba0.entry.js} +1 -1
  240. package/dist/post-components/p-c0ae13b7.entry.js +1 -0
  241. package/dist/post-components/p-c9dcdebb.entry.js +1 -0
  242. package/dist/post-components/{p-5a44b217.entry.js → p-ccf8020b.entry.js} +1 -1
  243. package/dist/post-components/p-cd68d3a2.entry.js +1 -0
  244. package/dist/post-components/p-cdc7b8d3.entry.js +1 -0
  245. package/dist/post-components/{p-e7f97f6d.entry.js → p-d7c9a969.entry.js} +1 -1
  246. package/dist/post-components/{p-9ad2216e.entry.js → p-db11f781.entry.js} +1 -1
  247. package/dist/post-components/p-dc285087.entry.js +1 -0
  248. package/dist/post-components/{p-b6e231a8.entry.js → p-de6f1816.entry.js} +1 -1
  249. package/dist/post-components/p-dec8bd99.entry.js +1 -0
  250. package/dist/post-components/{p-665d877f.entry.js → p-f9a8ee94.entry.js} +1 -1
  251. package/dist/post-components/post-components.css +2 -2
  252. package/dist/post-components/post-components.esm.js +1 -1
  253. package/dist/types/components/post-breadcrumb-item/post-breadcrumb-item.d.ts +8 -1
  254. package/dist/types/components/post-breadcrumbs/post-breadcrumbs.d.ts +39 -22
  255. package/dist/types/components.d.ts +18 -7
  256. package/hydrate/index.js +274 -137
  257. package/hydrate/index.mjs +274 -137
  258. package/package.json +28 -20
  259. package/dist/components/react/p-0nNMdSBr.js +0 -1
  260. package/dist/components/react/p-Ny5VnydI.js +0 -1
  261. package/dist/components/react/p-SBBBSmJM.js +0 -1
  262. package/dist/post-components/p-29e6c2a4.entry.js +0 -1
  263. package/dist/post-components/p-3a75186d.entry.js +0 -1
  264. package/dist/post-components/p-65e12f2c.entry.js +0 -1
  265. package/dist/post-components/p-795eb5ad.entry.js +0 -1
  266. package/dist/post-components/p-BmpkvdQk.js +0 -1
  267. package/dist/post-components/p-C-FunIfQ.js +0 -1
  268. package/dist/post-components/p-CCciE4QO.js +0 -1
  269. package/dist/post-components/p-D3NdvMgy.js +0 -2
  270. package/dist/post-components/p-Ny5VnydI.js +0 -1
  271. package/dist/post-components/p-X1vWfzMK.js +0 -1
  272. package/dist/post-components/p-c7a39444.entry.js +0 -1
  273. package/dist/post-components/p-cGcyMrvx.js +0 -1
  274. package/dist/post-components/p-cde00944.entry.js +0 -1
  275. package/dist/post-components/p-cf7493ab.entry.js +0 -1
  276. package/dist/post-components/p-e463e7ac.entry.js +0 -1
  277. package/dist/post-components/p-ecfc494e.entry.js +0 -1
  278. package/dist/post-components/p-eda4a376.entry.js +0 -1
@@ -1,15 +1,15 @@
1
- import { r as registerInstance, h, H as Host, a as getElement } from './index-D3NdvMgy.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement } from './index-BjziJWh2.js';
2
2
  import './breakpoints-I1j7a0bW.js';
3
3
  import { c as componentOnReady } from './component-on-ready-lpWRZjJp.js';
4
4
  import { n as nanoid } from './nanoid-8LXe8Zt_.js';
5
- import { v as version } from './package-Ny5VnydI.js';
5
+ import { v as version } from './package-T8T3po4z.js';
6
6
  import { t as throttle } from './index-bR8vy6-s.js';
7
- import { R as Required } from './required-CxvSCYJj.js';
8
- import { U as Url } from './url-DOwgyBfp.js';
9
- import { T as Type } from './type-CYB7_Yi8.js';
10
- import './create-validator-decorator-CbYxqPSB.js';
7
+ import { R as Required } from './required-B0X7uy13.js';
8
+ import { U as Url } from './url-BL7d6iWZ.js';
9
+ import { T as Type } from './type-CF1dOg6D.js';
10
+ import './create-validator-decorator-C2XlYkNB.js';
11
11
 
12
- const postBreadcrumbsCss = () => `: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)}.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)}.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}`;
12
+ const postBreadcrumbsCss = () => `: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}`;
13
13
 
14
14
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15
15
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -28,17 +28,33 @@ const PostBreadcrumbs = class {
28
28
  registerInstance(this, hostRef);
29
29
  this.debounceUpdateCollapsedItems = throttle(MEASUREMENT_DEBOUNCE_MS, this.updateCollapsedItems.bind(this));
30
30
  this.resizeObserver = new ResizeObserver(this.debounceUpdateCollapsedItems);
31
- this.mutationObserver = new MutationObserver(this.updateHiddenNav.bind(this));
31
+ this.mutationObserver = new MutationObserver(() => {
32
+ void this.updateAfterMutation();
33
+ });
32
34
  this.loaded = false;
33
- /** The number of breadcrumb items, counted from the start, that are moved into the overflow menu. */
35
+ /** 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. */
36
+ this.hasSlottedHomeAnchor = false;
37
+ /** Whether the slotted home anchor contains a post-icon. */
38
+ this.hasSlottedHomeIcon = false;
39
+ /** The number of breadcrumb items, counted from the start, moved into the overflow menu. */
34
40
  this.collapsed = 0;
41
+ /** Whether the home item is collapsed into its own overflow menu. */
42
+ this.homeCollapsed = false;
43
+ /** Whether the last (selected) item wraps onto multiple lines. */
44
+ this.lastItemWraps = false;
35
45
  /** The visible breadcrumb navigation. */
36
46
  this.nav = null;
37
47
  /** An off-screen copy of the breadcrumb navigation used for measurement. */
38
48
  this.hiddenNav = null;
49
+ /**
50
+ * Whether `text-home` content is displayed instead of the home icon, enabling segment specific
51
+ * breadcrumbs (like "Private customers" or "About us").
52
+ */
53
+ this.homeTextOnly = false;
39
54
  }
40
55
  componentWillLoad() {
41
56
  this.id = this.host.id || `b${nanoid(6)}`;
57
+ this.checkSlottedHomeAnchor();
42
58
  }
43
59
  async componentDidLoad() {
44
60
  this.resizeObserver?.observe(document.body);
@@ -56,69 +72,95 @@ const PostBreadcrumbs = class {
56
72
  this.mutationObserver?.disconnect();
57
73
  this.debounceUpdateCollapsedItems.cancel();
58
74
  }
59
- /**
60
- * Measures the space available in the breadcrumb navigation and moves the items that do not fit
61
- * into the overflow menu.
62
- */
75
+ checkSlottedHomeAnchor() {
76
+ const homeSlotElement = Array.from(this.host.children).find(child => child.getAttribute('slot') === 'home');
77
+ this.hasSlottedHomeAnchor = homeSlotElement?.tagName === 'A';
78
+ this.hasSlottedHomeIcon =
79
+ this.hasSlottedHomeAnchor && !!homeSlotElement?.querySelector('post-icon');
80
+ }
81
+ get usesHomeText() {
82
+ return this.hasSlottedHomeAnchor ? !this.hasSlottedHomeIcon : this.homeTextOnly;
83
+ }
84
+ // Degrade order: collapse middle items -> collapse home -> wrap the last item.
85
+ /** Measures the available space and updates all three degrade-stage states. */
63
86
  async updateCollapsedItems() {
64
87
  if (!this.nav)
65
88
  return;
66
- this.collapsed = await this.calculateCollapsedItems();
89
+ const { overflowing, homeOverflows, lastItemWraps } = await this.calculateCollapsedItems();
90
+ this.collapsed = overflowing;
91
+ this.homeCollapsed = homeOverflows;
92
+ this.lastItemWraps = lastItemWraps;
67
93
  }
68
- /**
69
- * Determines how many items have to be collapsed, either because they do not fit the breadcrumb
70
- * navigation or because they exceed the maximum number of visible items.
71
- */
72
94
  async calculateCollapsedItems() {
73
95
  const items = this.host.querySelectorAll('post-breadcrumb-item');
74
- const overflowing = await this.calculateOverflowingItems();
96
+ const { overflowing, homeOverflows, lastItemWraps } = await this.calculateOverflowingItems();
75
97
  // Never show more than `MAX_VISIBLE_ITEMS`, even if the nav is wide enough to fit them all.
76
- return Math.max(overflowing, items.length - MAX_VISIBLE_ITEMS);
98
+ return {
99
+ overflowing: Math.max(overflowing, items.length - MAX_VISIBLE_ITEMS),
100
+ homeOverflows,
101
+ lastItemWraps,
102
+ };
77
103
  }
78
- /**
79
- * Determines how many items overflow the width of the breadcrumb navigation.
80
- */
104
+ /** Runs the three degrade stages in order against the off-screen measurement clone. */
81
105
  async calculateOverflowingItems() {
82
- // Fallback to zero if the hidden nav is not available for measurement.
83
106
  if (!this.hiddenNav)
84
- return 0;
85
- const gap = Number.parseFloat(getComputedStyle(this.hiddenNav.firstElementChild).gap);
86
- const menu = this.hiddenNav.querySelector('.menu').clientWidth;
87
- // The last item can never be collapsed, so it is ignored when measuring the width of the items.
88
- const items = Array.from(this.hiddenNav.querySelectorAll('post-breadcrumb-item')).slice(0, -1);
89
- // Start from the assumption that all items fit and that no menu is shown.
90
- // Therefore, subtract the width of the overflow menu.
91
- let width = this.hiddenNav.scrollWidth - menu + gap;
107
+ return { overflowing: 0, homeOverflows: false, lastItemWraps: false };
108
+ const nav = this.hiddenNav;
109
+ const availableWidth = nav.clientWidth;
110
+ const gap = Number.parseFloat(getComputedStyle(nav.firstElementChild).gap);
111
+ const menuWidth = nav.querySelector('.menu')?.clientWidth ?? 0;
112
+ const homeWidth = nav.querySelector('.home')?.clientWidth ?? 0;
113
+ // Stage 1: collapse middle items, starting closest to home, until the rest fits.
114
+ const middleItems = Array.from(nav.querySelectorAll('post-breadcrumb-item')).slice(0, -1);
115
+ const { overflowing, remainingWidth } = this.collapseMiddleItems(middleItems, gap, menuWidth, availableWidth);
116
+ // Stage 2: home + last item, single-line. Text home can collapse into the menu, while the
117
+ // icon-only home remains visible and lets the last item wrap instead.
118
+ const homeOverflows = this.usesHomeText && remainingWidth > availableWidth;
119
+ // Stage 3: home joins the existing menu when middle items have collapsed. If no middle item
120
+ // collapsed, the menu needs to be added when home moves into it.
121
+ const widthWithHomeCollapsed = remainingWidth - homeWidth + (overflowing === 0 ? menuWidth : 0);
122
+ const lastItemWraps = this.usesHomeText
123
+ ? homeOverflows && widthWithHomeCollapsed > availableWidth
124
+ : remainingWidth > availableWidth;
125
+ return { overflowing, homeOverflows, lastItemWraps };
126
+ }
127
+ /** Stage 1: collapses middle items until the rest fits, or none are left. */
128
+ collapseMiddleItems(items, gap, menuWidth, availableWidth) {
129
+ // Start from the assumption that all items fit and that no menu is shown, so subtract the
130
+ // overflow menu's width from the total.
131
+ let width = this.hiddenNav.scrollWidth - menuWidth + gap;
92
132
  let overflowing = 0;
93
- // Discard items from the start until the remaining ones fit the available width.
94
- while (overflowing < items.length && width > this.hiddenNav.clientWidth) {
133
+ while (overflowing < items.length && width > availableWidth) {
95
134
  // The overflow menu needs to be displayed as soon as the first item is moved into it, so its
96
135
  // width needs to be taken into account when measuring the remaining items.
97
136
  if (overflowing === 0)
98
- width += menu;
137
+ width += menuWidth;
99
138
  width -= items[overflowing++].clientWidth + gap;
100
139
  }
101
- return overflowing;
140
+ return { overflowing, remainingWidth: width };
102
141
  }
103
- /**
104
- * Moves `collapsed` items into the overflow menu and marks the last item as selected.
105
- */
106
- updateItems(items, collapsed) {
142
+ /** Applies the degrade states to the `<post-breadcrumb-item>` elements. */
143
+ updateItems(items, collapsed, lastItemWraps) {
107
144
  items.forEach((item, index) => {
145
+ const isLast = index === items.length - 1;
108
146
  item.setAttribute('variant', index < collapsed ? 'menuitem' : 'listitem');
109
- item.setAttribute('selected', String(index === items.length - 1));
110
- item.setAttribute('standalone', String(index === items.length - 1 && index === collapsed));
147
+ item.setAttribute('selected', String(isLast));
148
+ item.setAttribute('standalone', String(isLast && index === collapsed && lastItemWraps));
111
149
  });
112
150
  }
113
- /**
114
- * Rebuilds the off-screen copy of the breadcrumb navigation.
115
- */
151
+ /** Rebuilds the off-screen copy of the breadcrumb navigation. */
116
152
  async updateHiddenNav() {
117
153
  this.hiddenNav?.remove();
118
154
  this.hiddenNav = await this.renderHiddenNav();
119
155
  }
156
+ async updateAfterMutation() {
157
+ await this.updateHiddenNav();
158
+ await this.updateCollapsedItems();
159
+ }
120
160
  /**
121
- * Renders an off-screen copy of the breadcrumb navigation that is used for measurements.
161
+ * Renders an off-screen copy of the nav for measurements. `.home` is rebuilt independently (see
162
+ * `buildMeasurementHomeElement`) rather than cloned, since the live nav may show the home item
163
+ * in the overflow menu instead if it is already collapsed.
122
164
  */
123
165
  async renderHiddenNav() {
124
166
  const shadowRoot = this.host.shadowRoot;
@@ -129,12 +171,29 @@ const PostBreadcrumbs = class {
129
171
  // Deep clone the breadcrumb navigation and flatten its slots into the clone.
130
172
  this.nav.querySelectorAll('slot').forEach((source, index) => {
131
173
  const target = slots[index];
132
- // Insert the assigned elements where the slot used to be, then drop the now empty slot
133
- source.assignedElements().forEach(element => {
134
- target.insertAdjacentElement('beforebegin', element.cloneNode(true));
135
- });
136
- target.remove();
174
+ const assignedElements = source.assignedElements();
175
+ if (assignedElements.length > 0) {
176
+ // Insert the assigned elements where the slot used to be, then drop the now empty slot.
177
+ assignedElements.forEach(element => {
178
+ target.insertAdjacentElement('beforebegin', element.cloneNode(true));
179
+ });
180
+ target.remove();
181
+ }
182
+ else {
183
+ // Nothing assigned: keep the slot's own fallback content (e.g. the default home link) by
184
+ // unwrap the <slot> in place, move its children to where it was, then remove it.
185
+ const parent = target.parentNode;
186
+ if (parent) {
187
+ Array.from(target.childNodes).forEach(child => parent.insertBefore(child, target));
188
+ target.remove();
189
+ }
190
+ }
137
191
  });
192
+ // Always measure the full, uncollapsed home item — see the method doc above. Uses
193
+ // replaceChild rather than replaceWith, since the latter isn't implemented by Stencil's
194
+ // mock-doc DOM used during SSR/hydration.
195
+ const existingHome = clone.querySelector('.home');
196
+ existingHome?.parentNode?.replaceChild(this.buildMeasurementHomeElement(), existingHome);
138
197
  clone.classList.remove('loading');
139
198
  clone.classList.add('invisible');
140
199
  // Show the overflow menu so that we can include the space it takes up in the measurement.
@@ -143,31 +202,72 @@ const PostBreadcrumbs = class {
143
202
  // Wait for all items to be fully hydrated before measuring.
144
203
  const items = clone.querySelectorAll('post-breadcrumb-item');
145
204
  await Promise.all(Array.from(items).map(item => componentOnReady(item)));
146
- // Move the items out of the overflow menu so that the uncollapsed layout can be measured.
147
- this.updateItems(items, 0);
205
+ // Uncollapsed layout, both single-line, for measurement.
206
+ this.updateItems(items, 0, false);
148
207
  return clone;
149
208
  }
209
+ /** Builds `.home` in its full, uncollapsed form for measurement. Mirrors `renderHomeContent`, but as plain DOM since this runs outside the render cycle. */
210
+ buildMeasurementHomeElement() {
211
+ const home = document.createElement('div');
212
+ home.className = `breadcrumb-item home${this.usesHomeText ? '' : ' icon'}`;
213
+ home.setAttribute('role', 'listitem');
214
+ const slottedAnchor = this.hasSlottedHomeAnchor
215
+ ? Array.from(this.host.children).find(child => child.getAttribute('slot') === 'home')
216
+ : null;
217
+ if (slottedAnchor) {
218
+ home.append(slottedAnchor.cloneNode(true));
219
+ return home;
220
+ }
221
+ const anchor = document.createElement('a');
222
+ if (this.homeUrl)
223
+ anchor.href = this.homeUrl;
224
+ const label = document.createElement('span');
225
+ if (!this.usesHomeText)
226
+ label.className = 'visually-hidden';
227
+ label.textContent = this.textHome;
228
+ anchor.append(label);
229
+ if (!this.usesHomeText) {
230
+ const icon = document.createElement('post-icon');
231
+ icon.setAttribute('aria-hidden', 'true');
232
+ icon.setAttribute('name', 'home');
233
+ anchor.append(icon);
234
+ }
235
+ home.append(anchor);
236
+ return home;
237
+ }
150
238
  renderMenu() {
151
239
  const menuId = `${this.id}-menu`;
152
- return (h("div", { class: `breadcrumb-item menu ${this.collapsed === 0 ? '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" }, h("slot", { name: "menu" }))));
240
+ 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" }))));
241
+ }
242
+ /** Reused by the plain home item and the home menu — a slot can only be assigned once. */
243
+ renderHomeContent() {
244
+ 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" }))));
245
+ }
246
+ /** Degrade stage 2: home renders in full, single-line, not yet collapsed. */
247
+ renderHome() {
248
+ return (h("div", { class: `breadcrumb-item home${this.usesHomeText ? '' : ' icon'}`, role: "listitem" }, this.renderHomeContent()));
153
249
  }
154
250
  render() {
155
251
  if (this.loaded) {
156
252
  const items = this.host.querySelectorAll('post-breadcrumb-item');
157
- this.updateItems(items, this.collapsed);
253
+ this.updateItems(items, this.collapsed, this.lastItemWraps);
158
254
  }
159
- return (h(Host, { key: '501384cb07b2deac87a21800fc4d39d695747341', "data-version": version }, h("nav", { key: '20aa57da865967458169544dec75d975926eb675', "aria-label": this.textBreadcrumbs, ref: el => (this.nav = el), class: this.loaded ? '' : 'loading' }, h("div", { key: 'cf8f21f2ee9de01bac0edf9379ba5c183b938d70', role: "list" }, h("div", { key: '9bd29a83cb976d67f3c6ea24cf23b2a07e40ca84', class: "breadcrumb-item home", role: "listitem" }, h("a", { key: '675638668994f074951491040c6043819e6f7282', href: this.homeUrl }, h("span", { key: '3ce1f8ea5ba5738925bff000ec5a8c32603ae963', class: "visually-hidden" }, this.textHome), h("post-icon", { key: '1b35b22788d4e70c948e1067d99265e8af9c74e7', "aria-hidden": "true", name: "home" }))), this.renderMenu(), h("slot", { key: 'f7fe7cd0b16a9064aba28149756f785c47133351' }), h("slot", { key: 'c62ce84877203586c184e1adaea1ecb6ed8a0912', name: "selected" })))));
255
+ 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" })))));
160
256
  }
161
257
  get host() { return getElement(this); }
162
258
  };
163
259
  __decorate([
164
- Required(),
260
+ Required({ when: 'hasSlottedHomeAnchor', truthy: false }),
165
261
  Url()
166
262
  ], PostBreadcrumbs.prototype, "homeUrl", void 0);
167
263
  __decorate([
168
- Required(),
264
+ Required({ when: 'hasSlottedHomeAnchor', truthy: false }),
169
265
  Type('string')
170
266
  ], PostBreadcrumbs.prototype, "textHome", void 0);
267
+ __decorate([
268
+ Required(),
269
+ Type('boolean')
270
+ ], PostBreadcrumbs.prototype, "homeTextOnly", void 0);
171
271
  __decorate([
172
272
  Required(),
173
273
  Type('string')
@@ -1,21 +1,21 @@
1
- import { r as registerInstance, h, H as Host, a as getElement, c as createEvent } from './index-D3NdvMgy.js';
1
+ import { r as registerInstance, h, H as Host, a as getElement, c as createEvent } from './index-BjziJWh2.js';
2
2
  import { b as breakpoint } from './breakpoints-I1j7a0bW.js';
3
3
  import { f as findClosestAcrossShadow, E as EventFrom } from './event-from-BEcxHjuM.js';
4
- import { v as version } from './package-Ny5VnydI.js';
5
- import { O as OneOf } from './one-of-Mx4vYjem.js';
6
- import { R as Required } from './required-CxvSCYJj.js';
4
+ import { v as version } from './package-T8T3po4z.js';
5
+ import { O as OneOf } from './one-of-Do1iao-k.js';
6
+ import { R as Required } from './required-B0X7uy13.js';
7
7
  import { f as fade } from './fade-DsgPYmAa.js';
8
8
  import { g as getDeepFocusableChildren, a as getFocusableChildren } from './get-focusable-children-DxYnH2ye.js';
9
9
  import { t as throttle } from './index-bR8vy6-s.js';
10
- import { T as Type } from './type-CYB7_Yi8.js';
10
+ import { T as Type } from './type-CF1dOg6D.js';
11
11
  import { n as nanoid } from './nanoid-8LXe8Zt_.js';
12
- import { P as Pattern } from './pattern-CqQVrJPN.js';
13
- import { U as Url } from './url-DOwgyBfp.js';
12
+ import { P as Pattern } from './pattern-BZDucOTq.js';
13
+ import { U as Url } from './url-BL7d6iWZ.js';
14
14
  import { r as resolveEasing } from './utils-CoDiS_Ik.js';
15
15
  import { f as fadeSlide } from './fade-slide-CvOvauo9.js';
16
16
  import { P as PLACEMENT_TYPES } from './placement-DRiVosES.js';
17
17
  import { g as getRoot } from './get-root-08F-DB-d.js';
18
- import './create-validator-decorator-CbYxqPSB.js';
18
+ import './create-validator-decorator-C2XlYkNB.js';
19
19
 
20
20
  const CLOSABLE_TARGETS = [
21
21
  {
@@ -123,7 +123,7 @@ const PostClosebutton = class {
123
123
  }
124
124
  }
125
125
  render() {
126
- return (h(Host, { key: 'f46ba6cbd82793b2a3d3a72c2f89236f0904eb68', "data-version": version }, h("button", { key: 'd014e76ccce88a087f8dd9caaac002eb09f64699', type: this.buttonType, class: "btn btn-icon btn-secondary btn-sm", onClick: this.handleClick }, h("post-icon", { key: '442305b327aabe61f259b98694118ec1b4ed2f09', "aria-hidden": "true", name: "closex" }), h("span", { key: '530149339a2a983d1e5d23c149abd0faf6f912b5', ref: el => (this.visuallyHidden = el), class: "visually-hidden" }, h("slot", { key: 'b90d5bea08c70c6df33dc5fc74bcf06eb2b6cd14' })))));
126
+ 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' })))));
127
127
  }
128
128
  static get formAssociated() { return true; }
129
129
  get host() { return getElement(this); }
@@ -470,10 +470,10 @@ const PostHeader = class {
470
470
  render() {
471
471
  const onDesktop = this.device === 'desktop';
472
472
  const onTabletAndMobile = this.device !== 'desktop';
473
- return (h(Host, { key: '4ae4873c57cd307d3a4073f3d712bcf975528a90', "data-version": version, "data-color-scheme": "light", "data-burger-menu": this.hasBurgerMenu, "data-menu-extended": this.burgerMenuExtended }, h("header", { key: 'cbc743a8981f4bbc3d42807244d88edba88e6a6c' }, h("div", { key: 'f39c122246336d0de803353d9abb9e573459073e', class: "global-header" }, h("div", { key: 'a76628c6501851bbfd597e0106847da12dc0b705', class: "section" }, h("div", { key: 'b703c54159955ae272378aab5172f0bcd1b638d1', class: "logo" }, h("slot", { key: 'a55336f3bee22b2c9a2cb0426b5e04ba5c8f29c4', name: "post-logo" })), h("div", { key: '9b6db729465dae5c503d461a115af296730b2ce6', class: "sliding-controls" }, onDesktop && (h("div", { key: 'cf4124ae4aaf47c2445499ce08ebb15076ac4bf2', class: "audience" }, h("slot", { key: '830003c8b3b50abeb9d82bdfde83212f20a4da3d', name: "audience" }))), h("slot", { key: '458afb2da52853fbc9bc066fc487fcf77df0d2a0', name: "global-nav-primary" }), (onDesktop || !this.hasMainNav) && [
473
+ return (h(Host, { key: 'd288ef2e58942c2cbc5da673076548c97eef04ed', "data-version": version, "data-color-scheme": "light", "data-burger-menu": this.hasBurgerMenu, "data-menu-extended": this.burgerMenuExtended }, h("header", { key: '5357f3edf382dec9b552fdfe9fb51d0878de697c' }, h("div", { key: 'bafa11390b33056e5a3d1a8a2922fd3a43a25020', class: "global-header" }, h("div", { key: '2d54e8d2931864880ff7a28aea64625e775ce327', class: "section" }, h("div", { key: 'b3a87bbf3b87213e22043d58a7298d0cff530cdf', class: "logo" }, h("slot", { key: '9d559b9231dc23841e277d3f4633cdeba2da12b2', name: "post-logo" })), h("div", { key: '64ebd463868ce8b417023651e745e33331feb908', class: "sliding-controls" }, onDesktop && (h("div", { key: 'b4e7d7231a0d8bebe620d41cb655c3686449b19f', class: "audience" }, h("slot", { key: '0781a76b1853a842dc74ec2a2a649f7de487e148', name: "audience" }))), h("slot", { key: '25f1d5b34a5aa950014214f810f3acca95dbbe80', name: "global-nav-primary" }), (onDesktop || !this.hasMainNav) && [
474
474
  h("slot", { key: "global-nav-secondary", name: "global-nav-secondary" }),
475
475
  h("slot", { key: "language-menu", name: "language-menu" }),
476
- ], h("slot", { key: 'ffab20101950b7472c97ff0675f36903a6a66ebd', name: "post-login" }), onTabletAndMobile && this.hasMainNav && (h("post-togglebutton", { key: 'd1cb44efb5ae024bc225487be4e592a406acf138', class: "burger-button", ref: el => (this.burgerMenuButton = el), onClick: () => this.toggleBurgerMenu() }, h("span", { key: 'c33d2bb5c415f58829ad10026b9811684eac3d35' }, this.textMenu), h("post-icon", { key: '7acb3d93aec23ef1c1efd9c9d52832395e66abf0', "aria-hidden": "true", name: "burger", "data-showwhen": "untoggled" }), h("post-icon", { key: '7b6fb17d50df4474ddd282d7e202a43c324c3b87', "aria-hidden": "true", name: "closex", "data-showwhen": "toggled" })))))), h("div", { key: 'c7e6d91a0cd4a286b7186d0f41abdf9dc1e9ffd4', ref: el => (this.localHeader = el), class: { 'local-header': true, 'megadropdown-open': this.megadropdownOpen } }, h("div", { key: '670d00fb0a79ecc1f2bb45645887db13c7ea500f', class: "section" }, h("slot", { key: '5d3b0c9b97be561875fc908b2b7bf4d558513318', name: "side-nav" }), h("slot", { key: '39348fb8869f5623da026ed08ce69f727d9de7e6', name: "title" }), this.hasTitle && h("slot", { key: '883097731548de45adec9cbbf7df1c80a37b76b5', name: "local-nav" }), onDesktop && h("slot", { key: 'fbc77dee6ed73d8a13da75d3d695af80ce32c3af', name: "main-nav" }), onDesktop && !this.hasTitle && h("slot", { key: '94a989295ae04cd8259ba22e583d41bcb4701881', name: "local-nav" }))), this.hasBurgerMenu && this.renderBurgerMenu())));
476
+ ], h("slot", { key: 'd7121e5e9ddf825f96a3a82e65ff135c61891adb', name: "post-login" }), onTabletAndMobile && this.hasMainNav && (h("post-togglebutton", { key: 'dd0bcf9cfd96d4ffa44fc549d518d7b39d287156', class: "burger-button", ref: el => (this.burgerMenuButton = el), onClick: () => this.toggleBurgerMenu() }, h("span", { key: '23004cb12733a7081f828d33327cc26adafe3888' }, this.textMenu), h("post-icon", { key: '7fb36892eadfcce0a85d964c411aeafc3fbbde1b', "aria-hidden": "true", name: "burger", "data-showwhen": "untoggled" }), h("post-icon", { key: 'a41292205573c03f25d225d4f4296f75ffe6c7ce', "aria-hidden": "true", name: "closex", "data-showwhen": "toggled" })))))), h("div", { key: '7d6d1424881bb5277210c86b194dfb9e5dcb7c59', ref: el => (this.localHeader = el), class: { 'local-header': true, 'megadropdown-open': this.megadropdownOpen } }, h("div", { key: '724a8d3f79112875ba343470f9d0b753ce5d4861', class: "section" }, h("slot", { key: '688aafdec4e4d5565f3d0a9d9bd9bb7bc78152be', name: "side-nav" }), h("slot", { key: '12590bfb4bfcc8c565f008a8e3d75b5951eb73bc', name: "title" }), this.hasTitle && h("slot", { key: 'd862de0f3aaba5ea22a26c387ea7e93dc0c5e79c', name: "local-nav" }), onDesktop && h("slot", { key: '1a25ec6694bc8b2c06e21449dc566f36595afbb5', name: "main-nav" }), onDesktop && !this.hasTitle && h("slot", { key: '987c26ee73fb19049fdd19de79b537b71e2771de', name: "local-nav" }))), this.hasBurgerMenu && this.renderBurgerMenu())));
477
477
  }
478
478
  get host() { return getElement(this); }
479
479
  static get watchers() { return {
@@ -603,7 +603,7 @@ const PostIcon = class {
603
603
  }).filter(([_key, value]) => value !== null));
604
604
  }
605
605
  render() {
606
- return (h(Host, { key: '917a78dbe4db46244348298b08a2176c9028048e', "data-version": version }, h("span", { key: '06f07755212e2b6a9a5957d7fd37751c62343be6', style: this.getStyles() })));
606
+ return (h(Host, { key: '405ccfde4206c14f044575d0b23998d93a03ffb6', "data-version": version }, h("span", { key: 'ad70ccf63add4b881ef6096ae460e13fba09f508', style: this.getStyles() })));
607
607
  }
608
608
  get host() { return getElement(this); }
609
609
  };
@@ -836,7 +836,7 @@ const PostLogo = class {
836
836
  render() {
837
837
  const logoLink = this.url && (typeof this.url === 'string' ? this.url : this.url.href);
838
838
  const LogoTag = logoLink ? 'a' : 'span';
839
- return (h(Host, { key: 'dd8ddb0dcbed8062ee5adecf2a26ad98b42c94b1', "data-version": version }, h(LogoTag, { key: 'f4d8ad34cdd455c3e2096ce26db7bc775d7e05c3', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, h("span", { key: '87a58c2904f3dae5406b5652787ca1d99dbda0dc', class: "description" }, h("slot", { key: 'ae69c86c4bfed42b25aafa948f13989c31833466', onSlotchange: () => this.checkDescription() })), h("svg", { key: 'e51164151a1a53971414ea37af5085f99575fc36', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, h("g", { key: 'fa946d3ded62128ca4469b160103b464eb59329b', id: "Logo" }, h("rect", { key: '18424ee0ca3256f9169d8dac6223df3d49cb09b9', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), h("polygon", { key: '96381aeedbc8536fd551ec8ac4161db842b3bfc9', fill: "#ff0000", points: "34,32.3 34,19 19.7,19 19.7,29.1 10,29.1 10,42.9 19.7,42.9 19.7,53 34,53 34,39.7 30.6,39.7 30.6,49.8 23.1,49.8 23.1,39.7 13.4,39.7 13.4,32.3 23.1,32.3 23.1,22.2 30.6,22.2 30.6,32.3" }), h("path", { key: 'c1bbdb1bb687390d59ec2e6dcf83e80d1606582f', d: "M53.56234,31.10526c0,2.41272-1.99154,4.29475-4.51723,4.29475H45.2v-8.3h3.84511C51.66802,27.1,53.56234,28.78889,53.56234,31.10526z M50.69666,19H36v34h9.2V42.9h5.49666c6.75131,0,11.9971-5.15137,11.9971-11.8057C62.69376,24.39136,57.35099,19,50.69666,19z" }))))));
839
+ return (h(Host, { key: '1f69b0ddc0ecf2fde47423cd7824fcbe76e4a529', "data-version": version }, h(LogoTag, { key: '096736bd50a6dd43e02a104e7e81897cb286db60', class: `logo ${logoLink ? 'logo-link' : ''}`, ...(logoLink ? { href: logoLink } : {}) }, h("span", { key: 'bc49b9591424f02744f771eb1079911f02ceca33', class: "description" }, h("slot", { key: 'ea905eac805e2a9940bfe50aa222bef738d15d27', onSlotchange: () => this.checkDescription() })), h("svg", { key: '482d94c38347017269dabd0ab3d15f4ede14f187', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 72 72", "aria-hidden": "true" }, h("g", { key: 'fcd3dc56e8a0e448abe65b557639a8bea8ca580f', id: "Logo" }, h("rect", { key: '11ed7bad596ee07301f1c1101ddded089ef2bf99', fill: "#ffcc00", x: "0", y: "0", width: "72", height: "72" }), h("polygon", { key: '6ab9d28c8492c746a2620cff62dbd92a59a00aff', fill: "#ff0000", points: "34,32.3 34,19 19.7,19 19.7,29.1 10,29.1 10,42.9 19.7,42.9 19.7,53 34,53 34,39.7 30.6,39.7 30.6,49.8 23.1,49.8 23.1,39.7 13.4,39.7 13.4,32.3 23.1,32.3 23.1,22.2 30.6,22.2 30.6,32.3" }), h("path", { key: '8b96cee7ee8ad1ec3c22aaf7928f7a711c05c828', d: "M53.56234,31.10526c0,2.41272-1.99154,4.29475-4.51723,4.29475H45.2v-8.3h3.84511C51.66802,27.1,53.56234,28.78889,53.56234,31.10526z M50.69666,19H36v34h9.2V42.9h5.49666c6.75131,0,11.9971-5.15137,11.9971-11.8057C62.69376,24.39136,57.35099,19,50.69666,19z" }))))));
840
840
  }
841
841
  get host() { return getElement(this); }
842
842
  };
@@ -976,7 +976,7 @@ const PostMainnavigation = class {
976
976
  }, NAVBAR_DISABLE_DURATION);
977
977
  }
978
978
  render() {
979
- return (h(Host, { key: '9fe43f86cab360591a15a033e0dc657096a69c00', version: version, class: this.canScroll ? 'scrollable' : '' }, h("div", { key: 'f68ea70e332336e99c0b51b19e33647b40fcfbb4', "aria-hidden": "true", class: { 'scroll-control scroll-left': true, 'd-none': !this.canScrollLeft }, onMouseDown: e => this.handleScrollButtonClick(e, 'left') }, h("post-icon", { key: 'fac01a93fd7cbfe2548a4d049d59f0bc6d01af63', "aria-hidden": "true", name: "chevronleft" })), h("nav", { key: '7787a27e76350e9e86a97a58a20abe1286786ff7', ref: el => (this.navbar = el), "aria-label": this.textMain }, h("slot", { key: '357a8f5fe1e7b6bea5ae67d87c979f785ea24b82' })), h("div", { key: 'ce6091a9466fcd17aca39fcb5d6c204e1782c95d', "aria-hidden": "true", class: { 'scroll-control scroll-right': true, 'd-none': !this.canScrollRight }, onMouseDown: e => this.handleScrollButtonClick(e, 'right') }, h("post-icon", { key: '92d35b38a453326701a0837e6187abf82fa37bf4', "aria-hidden": "true", name: "chevronright" }))));
979
+ return (h(Host, { key: 'cf7b2328a41b41ca28956120b8042590655e7bb2', version: version, class: this.canScroll ? 'scrollable' : '' }, h("div", { key: 'a25c55cf7b11a11ce86fb134dd57dbdad3d30301', "aria-hidden": "true", class: { 'scroll-control scroll-left': true, 'd-none': !this.canScrollLeft }, onMouseDown: e => this.handleScrollButtonClick(e, 'left') }, h("post-icon", { key: '013778591637d5ee0ac2cd2bf3f23c677ba2a13f', "aria-hidden": "true", name: "chevronleft" })), h("nav", { key: 'a007b7be57429580de35865e5eff0c54378d0a8e', ref: el => (this.navbar = el), "aria-label": this.textMain }, h("slot", { key: 'bc8e1db18430ee43b5963539fbaa65e1fb1b0c55' })), h("div", { key: 'cdb413fedc9a90c712db0fe5d6ab760a426ff632', "aria-hidden": "true", class: { 'scroll-control scroll-right': true, 'd-none': !this.canScrollRight }, onMouseDown: e => this.handleScrollButtonClick(e, 'right') }, h("post-icon", { key: 'b2df569a79881b3a044556ba9c0f2e2b0646e78b', "aria-hidden": "true", name: "chevronright" }))));
980
980
  }
981
981
  get host() { return getElement(this); }
982
982
  };
@@ -999,6 +999,8 @@ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators,
999
999
  return c > 3 && r && Object.defineProperty(target, key, r), r;
1000
1000
  };
1001
1001
  const PostMegadropdown = class {
1002
+ /** Tracks the currently active dropdown instance. */
1003
+ static { this.activeDropdown = null; }
1002
1004
  get megadropdownTrigger() {
1003
1005
  const hostId = this.host.getAttribute('id');
1004
1006
  return hostId ? document.querySelector(`post-megadropdown-trigger[for="${hostId}"]`) : null;
@@ -1280,12 +1282,10 @@ const PostMegadropdown = class {
1280
1282
  }
1281
1283
  render() {
1282
1284
  const containerStyle = this.isVisible ? {} : { display: 'none' };
1283
- return (h(Host, { key: '2cc8228a628b2a0380acf4fcac8daa1ef1a7bf2f', version: version }, h("div", { key: '709fe50f23fd355bd97add916b451d5abf653780', ref: el => (this.animatedContainer = el), class: "megadropdown", style: containerStyle }, h("div", { key: 'e2bac29e70e39800ee55c8454f78b6889b241121', class: "section" }, this.device !== 'desktop' && this.megadropdownTitle && (h("p", { key: '6c28bc5d3e3b8c8dab385f13a4b9b8a7b7ba70b9', class: "megadropdown-title" }, this.megadropdownTitle)), h("div", { key: 'bf71d0d7b4a84ae1238f27373d195403d8a1f812', class: "megadropdown-content" }, h("slot", { key: '9812bec733ca678b1a3681d90859082e57fbd64a' })), this.device === 'desktop' ? (h("post-closebutton", { onClick: () => this.hide(true), class: "close-button", size: "small", placement: "manual" }, this.textClose)) : (h("button", { onClick: () => this.hide(true), class: "back-button" }, h("post-icon", { name: "arrowleft" }), this.textBack))))));
1285
+ return (h(Host, { key: 'c0854fff62bf5e8de1597e46051aea5f300ee686', version: version }, h("div", { key: '1f4f66b74d7129481d76f1eec15a924b2c37718c', ref: el => (this.animatedContainer = el), class: "megadropdown", style: containerStyle }, h("div", { key: 'af743442fe3ad6211cddccddf5d0803de9f501b5', class: "section" }, this.device !== 'desktop' && this.megadropdownTitle && (h("p", { key: '35a03b2ee32498aa157140d4e6916cbf66655e5c', class: "megadropdown-title" }, this.megadropdownTitle)), h("div", { key: '6c4efb52e7bb04c4f40d5b3f739ca69771c48602', class: "megadropdown-content" }, h("slot", { key: '2b3200495cf23fe049734de9de9a5a1f4c9b09f3' })), this.device === 'desktop' ? (h("post-closebutton", { onClick: () => this.hide(true), class: "close-button", size: "small", placement: "manual" }, this.textClose)) : (h("button", { onClick: () => this.hide(true), class: "back-button" }, h("post-icon", { name: "arrowleft" }), this.textBack))))));
1284
1286
  }
1285
1287
  get host() { return getElement(this); }
1286
1288
  };
1287
- /** Tracks the currently active dropdown instance. */
1288
- PostMegadropdown.activeDropdown = null;
1289
1289
  __decorate$4([
1290
1290
  Required(),
1291
1291
  Type('string')
@@ -1367,7 +1367,7 @@ const PostMegadropdownTrigger = class {
1367
1367
  this.megadropdown.toggle();
1368
1368
  }
1369
1369
  render() {
1370
- return (h(Host, { key: 'd5242fd9126f3486f731ed6f369f3a6c38a5d1e9', "data-version": version }, h("button", { key: '6af086a50a9c788b35ba542531950b69a5e249da', ref: el => (this.interactiveButton = el), type: "button", "aria-haspopup": "menu", "aria-expanded": this.isMegadropdownExpanded.toString(), onClick: this.onClick.bind(this), onKeyDown: this.onKeyDown.bind(this), class: { active: this.active } }, h("span", { key: 'dacf0bd6dc576fa7c70353c98eacb3d81ddf83e5' }, h("span", { key: '0c7b950ea9bfcae62b367900d78f155edc49de72', innerHTML: this.slottedContent }), h("span", { key: '999325546eb3196f6e704ebeb18f436ff3d53756', "aria-hidden": "true" }, h("slot", { key: '08fa107b944a87edf156ea7d5e12692eba64952d' }))), h("post-icon", { key: 'eb32199b1ff6951b6025c1e4919674f5419f7d49', name: "chevrondown" }))));
1370
+ return (h(Host, { key: '7e6201e3cdea96113bbebdeeb805acff557c8bbb', "data-version": version }, h("button", { key: '1863f48dbd6e98b7a2b226b7c3b25b16a38c644b', ref: el => (this.interactiveButton = el), type: "button", "aria-haspopup": "menu", "aria-expanded": this.isMegadropdownExpanded.toString(), onClick: this.onClick.bind(this), onKeyDown: this.onKeyDown.bind(this), class: { active: this.active } }, h("span", { key: 'dee7e77e45914a3e40a9f5027570bef0035dfdf2' }, h("span", { key: '362865f7946f14f45ecdb240e81f09370e3f6d10', innerHTML: this.slottedContent }), h("span", { key: 'd61eb63433aa65631f787646df2c6705c3d6e7a1', "aria-hidden": "true" }, h("slot", { key: 'c831f7299fe3c80b8229c861e01e09a2ee481bc8' }))), h("post-icon", { key: 'bcc8ed53293e16d4571e989a491760f98425b298', name: "chevrondown" }))));
1371
1371
  }
1372
1372
  get host() { return getElement(this); }
1373
1373
  };
@@ -1575,7 +1575,7 @@ const PostMenu = class {
1575
1575
  ]));
1576
1576
  }
1577
1577
  render() {
1578
- return (h(Host, { key: 'cc6ede4cdacb722006475de88385b041d7e42dcb', "data-version": version }, h("post-popovercontainer", { key: '3931f604aad477441112fd0b5a4800c8f034abbb', onPostShow: this.handlePostShown.bind(this), onPostBeforeToggle: this.handlePostBeforeToggle.bind(this), placement: this.placement, ref: e => (this.popoverRef = e) }, h("div", { key: '1b0adb12bb1369d14a6bcfac3c956090eb66572a', part: "post-menu" }, h("slot", { key: '9c2518e7e9e6ccaa64d486a90b5fc7eec15c24b8', name: "header" }), h("slot", { key: 'd28df1e411010aabe083255cd5e5ece4bd62424d' })))));
1578
+ return (h(Host, { key: '22441c2bef0402f10e77b96b8a5d48a0648615f7', "data-version": version }, h("post-popovercontainer", { key: '8b37fe55d58a3a486e947266348b55408999a8bb', onPostShow: this.handlePostShown.bind(this), onPostBeforeToggle: this.handlePostBeforeToggle.bind(this), placement: this.placement, ref: e => (this.popoverRef = e) }, h("div", { key: '2679eb9c4a95585b8aaf74e29f026c84b10aa6f3', part: "post-menu" }, h("slot", { key: '0da58a1bde1bdb4c1f8b7b19ca8cbde14d7946fc', name: "header" }), h("slot", { key: '801f7bc59d4d3267728b9adf0750dbea76a7652c' })))));
1579
1579
  }
1580
1580
  get host() { return getElement(this); }
1581
1581
  };
@@ -1594,7 +1594,7 @@ __decorate$2([
1594
1594
  ], PostMenu.prototype, "handlePostBeforeToggle", null);
1595
1595
  PostMenu.style = postMenuCss();
1596
1596
 
1597
- const postMenuItemCss = () => `post-menu-item button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;width:100%}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-item button{background-color:ButtonFace !important}post-menu-item button:hover{background-color:Highlight !important}}post-menu-item a{text-decoration:none}post-menu-item button,post-menu-item a{position:relative;display:flex;align-items:center;padding:8px 12px 8px 16px;gap:12px;font-size:.875rem;color:#050400;border-radius:0}post-menu-item button post-icon,post-menu-item a post-icon{width:16px;height:16px;margin-block:4px}@media screen and (min-width: 780px){post-menu-item button,post-menu-item a{font-size:1rem;padding-block:12px;gap:16px}post-menu-item button post-icon,post-menu-item a post-icon{width:24px;height:24px;margin:0}}@media screen and (min-width: 1024px){post-menu-item button,post-menu-item a{font-size:1.25rem;padding-block:13px}}post-menu-item button:focus-visible,post-menu-item a:focus-visible{outline-offset:2px !important;border-radius:4px}post-menu-item button:hover,post-menu-item a:hover{background-color:#504f4b;color:#fff}`;
1597
+ const postMenuItemCss = () => `post-menu-item button{padding:0;overflow:visible;border:0;background:none;color:var(--post-scheme-color-interactive-button-secondary-enabled-fg);font:inherit;-webkit-user-select:none;user-select:none;appearance:button;width:100%}@media (forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){post-menu-item button{background-color:ButtonFace !important}post-menu-item button:hover{background-color:Highlight !important}}post-menu-item button,post-menu-item 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}@media screen and (min-width: 780px){post-menu-item button,post-menu-item a{font-size:1rem;padding-block:12px;gap:16px}}@media screen and (min-width: 1024px){post-menu-item button,post-menu-item a{font-size:1.25rem;padding-block:13px}}post-menu-item button:focus-visible,post-menu-item a:focus-visible{outline-offset:2px !important;border-radius:4px}post-menu-item button:hover,post-menu-item a:hover{background-color:#504f4b;color:#fff}post-menu-item button post-icon,post-menu-item a post-icon{width:16px;height:16px;margin-block:4px}@media screen and (min-width: 780px){post-menu-item button post-icon,post-menu-item a post-icon{width:24px;height:24px;margin:0}}`;
1598
1598
 
1599
1599
  const PostMenuItem = class {
1600
1600
  constructor(hostRef) {
@@ -1674,7 +1674,7 @@ const PostMenuTrigger = class {
1674
1674
  return null;
1675
1675
  }
1676
1676
  render() {
1677
- return (h(Host, { key: 'fcdfd58ba24cd5269461477ac3d00a53ccf2ea1b', "data-version": version }, h("slot", { key: 'b3a6b137bf61accd32eb1bec5af5e39e68ec6613' })));
1677
+ return (h(Host, { key: 'f75522d28e9a45c80846a191cff3ea2eb51b5bde', "data-version": version }, h("slot", { key: 'bc70e3ddc8dc372611c00a4cda52cd35ede02a3f' })));
1678
1678
  }
1679
1679
  get host() { return getElement(this); }
1680
1680
  };
@@ -4544,7 +4544,7 @@ function applySafeArea(clippingRect, element) {
4544
4544
  */
4545
4545
  const computePositionWithSafeArea = (reference, floating, options) => {
4546
4546
  // Adapted from https://github.com/floating-ui/floating-ui/blob/27629b74ba36ab8ceb2a968051927b9b69511a3b/packages/dom/src/index.ts#L15
4547
- options ?? (options = {});
4547
+ options ??= {};
4548
4548
  return computePosition(reference, floating, {
4549
4549
  ...options,
4550
4550
  platform: {
@@ -4571,6 +4571,30 @@ const ANIMATIONS = {
4571
4571
  'pop-in': popIn,
4572
4572
  };
4573
4573
  const PostPopovercontainer = class {
4574
+ static {
4575
+ this.STATIC_SIDES = {
4576
+ top: 'bottom',
4577
+ right: 'left',
4578
+ bottom: 'top',
4579
+ left: 'right',
4580
+ };
4581
+ }
4582
+ static {
4583
+ this.PROPERTIES_TO_CLEAR = [
4584
+ '--post-safe-space-popover-x',
4585
+ '--post-safe-space-popover-y',
4586
+ '--post-safe-space-popover-x-start',
4587
+ '--post-safe-space-popover-x-end',
4588
+ '--post-safe-space-popover-y-start',
4589
+ '--post-safe-space-popover-y-end',
4590
+ '--post-safe-space-trigger-x',
4591
+ '--post-safe-space-trigger-y',
4592
+ '--post-safe-space-trigger-x-start',
4593
+ '--post-safe-space-trigger-x-end',
4594
+ '--post-safe-space-trigger-y-start',
4595
+ '--post-safe-space-trigger-y-end',
4596
+ ];
4597
+ }
4574
4598
  constructor(hostRef) {
4575
4599
  registerInstance(this, hostRef);
4576
4600
  this.postBeforeShow = createEvent(this, "postBeforeShow");
@@ -4906,32 +4930,12 @@ const PostPopovercontainer = class {
4906
4930
  }
4907
4931
  }
4908
4932
  render() {
4909
- return (h(Host, { key: 'a6f41ad3ef982f9e9ec0d6450837d1cfdca73d16', "data-version": version, popover: "auto" }, h("div", { key: '40afab436d5550fda44c8995139080161eab5b09', part: "post-popovercontainer-content", class: "popover-content" }, this.arrow && (h("span", { key: '580bd8fcaecb89334aca05001137a4d7cccd254a', "dynamic-placement": this.dynamicPlacement, class: "arrow", ref: el => {
4933
+ return (h(Host, { key: 'f3ea4bfc9a59faa2fbf1e413a1ec648f598a6779', "data-version": version, popover: "auto" }, h("div", { key: 'a328c73c7e08eca1e423fcbe736798188cca2a87', part: "post-popovercontainer-content", class: "popover-content" }, this.arrow && (h("span", { key: '8fad0095fb8d8c903ba84a639b4efc3e321c6aef', "dynamic-placement": this.dynamicPlacement, class: "arrow", ref: el => {
4910
4934
  this.arrowRef = el;
4911
- } })), h("span", { key: '61a6e4e8026832afc188edd5a74535716db65945', part: "post-popovercontainer-border-mask" }), h("slot", { key: 'd79cb69a77dbba13ffa3c30e0393db4f3a669a12' }))));
4935
+ } })), h("span", { key: 'deadbcc5892ed545a64b4a0e5e0936e0dd1feb70', part: "post-popovercontainer-border-mask" }), h("slot", { key: '48c4db7ab222f3ef18157ce19d8ba15d75441f98' }))));
4912
4936
  }
4913
4937
  get host() { return getElement(this); }
4914
4938
  };
4915
- PostPopovercontainer.STATIC_SIDES = {
4916
- top: 'bottom',
4917
- right: 'left',
4918
- bottom: 'top',
4919
- left: 'right',
4920
- };
4921
- PostPopovercontainer.PROPERTIES_TO_CLEAR = [
4922
- '--post-safe-space-popover-x',
4923
- '--post-safe-space-popover-y',
4924
- '--post-safe-space-popover-x-start',
4925
- '--post-safe-space-popover-x-end',
4926
- '--post-safe-space-popover-y-start',
4927
- '--post-safe-space-popover-y-end',
4928
- '--post-safe-space-trigger-x',
4929
- '--post-safe-space-trigger-y',
4930
- '--post-safe-space-trigger-x-start',
4931
- '--post-safe-space-trigger-x-end',
4932
- '--post-safe-space-trigger-y-start',
4933
- '--post-safe-space-trigger-y-end',
4934
- ];
4935
4939
  __decorate([
4936
4940
  OneOf(PLACEMENT_TYPES)
4937
4941
  ], PostPopovercontainer.prototype, "placement", void 0);
@@ -4972,7 +4976,7 @@ const PostTogglebutton = class {
4972
4976
  });
4973
4977
  }
4974
4978
  render() {
4975
- return (h(Host, { key: 'ae46e9fcd82766abcf76c4b37d0341cfd29f2f4f', "data-version": version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, h("slot", { key: '9c71c065225f0f5c68e76fa2cec6d75bdf29fed0' })));
4979
+ return (h(Host, { key: '81fa9d922480059096e4146c10cf2ef72357b482', "data-version": version, role: "button", tabindex: "0", "aria-pressed": this.toggled.toString() }, h("slot", { key: '4e8d793e3867ba4c9c8e17d509652309a79f032a' })));
4976
4980
  }
4977
4981
  get host() { return getElement(this); }
4978
4982
  };