@affinda/wc 0.0.22 → 0.0.24

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 (348) hide show
  1. package/dist/affinda/affinda.esm.js +1 -1
  2. package/dist/affinda/p-04a096ee.entry.js +1 -0
  3. package/dist/affinda/{p-20fe557e.entry.js → p-0c408447.entry.js} +1 -1
  4. package/dist/affinda/{p-0ae3495c.entry.js → p-1d94a137.entry.js} +1 -1
  5. package/dist/affinda/p-1f51e065.entry.js +1 -0
  6. package/dist/affinda/{p-d9cfea73.entry.js → p-21b7ea67.entry.js} +1 -1
  7. package/dist/affinda/p-26362b90.entry.js +1 -0
  8. package/dist/affinda/{p-8742f8fe.entry.js → p-29fd5654.entry.js} +1 -1
  9. package/dist/affinda/p-2e1df315.entry.js +1 -0
  10. package/dist/affinda/{p-404f2cea.entry.js → p-39967eba.entry.js} +1 -1
  11. package/dist/affinda/{p-00a226ba.entry.js → p-3b4fb1a5.entry.js} +1 -1
  12. package/dist/affinda/p-40456eb5.entry.js +1 -0
  13. package/dist/affinda/{p-854f6a9e.entry.js → p-416836f3.entry.js} +1 -1
  14. package/dist/affinda/p-43c24797.entry.js +1 -0
  15. package/dist/affinda/{p-f825b81f.entry.js → p-45d62b98.entry.js} +1 -1
  16. package/dist/affinda/{p-26a60b00.entry.js → p-470b9a06.entry.js} +1 -1
  17. package/dist/affinda/p-4758f89c.entry.js +1 -0
  18. package/dist/affinda/{p-8c394de2.entry.js → p-4844d749.entry.js} +1 -1
  19. package/dist/affinda/p-4c362739.entry.js +1 -0
  20. package/dist/affinda/p-5636afa9.entry.js +1 -0
  21. package/dist/affinda/p-6059b95e.entry.js +1 -0
  22. package/dist/affinda/p-60cf2a82.entry.js +1 -0
  23. package/dist/affinda/p-65207722.entry.js +1 -0
  24. package/dist/affinda/{p-7ed6ee6a.entry.js → p-66dd6356.entry.js} +1 -1
  25. package/dist/affinda/{p-6c99b2bb.entry.js → p-678cb08c.entry.js} +1 -1
  26. package/dist/affinda/p-6c10d037.entry.js +1 -0
  27. package/dist/affinda/p-6d43ed06.entry.js +1 -0
  28. package/dist/affinda/p-6dc635ec.entry.js +1 -0
  29. package/dist/affinda/p-6f5d8680.entry.js +1 -0
  30. package/dist/affinda/p-7bc1ed79.entry.js +1 -0
  31. package/dist/affinda/{p-2d4c1202.entry.js → p-7c4f05a7.entry.js} +1 -1
  32. package/dist/affinda/p-821c1522.entry.js +1 -0
  33. package/dist/affinda/{p-81de8fbd.entry.js → p-8c34efbb.entry.js} +1 -1
  34. package/dist/affinda/p-9405394d.entry.js +1 -0
  35. package/dist/affinda/p-ad71a40c.entry.js +1 -0
  36. package/dist/affinda/{p-468d16b1.entry.js → p-b0babcae.entry.js} +1 -1
  37. package/dist/affinda/p-b435de99.entry.js +1 -0
  38. package/dist/affinda/{p-e61dfb97.entry.js → p-b563bb90.entry.js} +1 -1
  39. package/dist/affinda/{p-f79781ff.entry.js → p-c1cb8ef8.entry.js} +1 -1
  40. package/dist/affinda/{p-9018ddec.entry.js → p-c1df7855.entry.js} +1 -1
  41. package/dist/affinda/p-c83e8184.entry.js +1 -0
  42. package/dist/affinda/p-d3d9eac1.entry.js +1 -0
  43. package/dist/affinda/p-d3e3653e.entry.js +1 -0
  44. package/dist/affinda/{p-589a860a.entry.js → p-da9d1f7d.entry.js} +1 -1
  45. package/dist/affinda/{p-289cb56f.entry.js → p-dce846f2.entry.js} +1 -1
  46. package/dist/affinda/p-ddd41c87.entry.js +1 -0
  47. package/dist/affinda/{p-0264279f.entry.js → p-e169a37b.entry.js} +1 -1
  48. package/dist/affinda/p-e91ef47c.entry.js +1 -0
  49. package/dist/affinda/{p-b9f58a18.entry.js → p-fb01c4e0.entry.js} +1 -1
  50. package/dist/cjs/af-accordion-item.cjs.entry.js +27 -1
  51. package/dist/cjs/af-accordion.cjs.entry.js +1 -1
  52. package/dist/cjs/af-button.cjs.entry.js +4 -5
  53. package/dist/cjs/af-card.cjs.entry.js +2 -2
  54. package/dist/cjs/af-center.cjs.entry.js +1 -1
  55. package/dist/cjs/af-client-carousel.cjs.entry.js +30 -2
  56. package/dist/cjs/af-contact-item.cjs.entry.js +1 -1
  57. package/dist/cjs/af-container.cjs.entry.js +1 -1
  58. package/dist/cjs/af-divider.cjs.entry.js +1 -1
  59. package/dist/cjs/af-feature-accordion.cjs.entry.js +2 -2
  60. package/dist/cjs/af-feature-grid.cjs.entry.js +2 -2
  61. package/dist/cjs/af-footer-column.cjs.entry.js +1 -1
  62. package/dist/cjs/af-footer-link.cjs.entry.js +1 -1
  63. package/dist/cjs/af-footer.cjs.entry.js +2 -2
  64. package/dist/cjs/af-grid.cjs.entry.js +3 -3
  65. package/dist/cjs/af-heading_5.cjs.entry.js +98 -21
  66. package/dist/cjs/af-icon-box.cjs.entry.js +1 -1
  67. package/dist/cjs/af-icon-button.cjs.entry.js +1 -1
  68. package/dist/cjs/af-icon-text.cjs.entry.js +1 -1
  69. package/dist/cjs/af-illustrated-card.cjs.entry.js +1 -1
  70. package/dist/cjs/af-image.cjs.entry.js +2 -12
  71. package/dist/cjs/af-in-page-banner.cjs.entry.js +2 -2
  72. package/dist/cjs/af-inline.cjs.entry.js +1 -1
  73. package/dist/cjs/af-logo-well.cjs.entry.js +1 -1
  74. package/dist/cjs/af-nav-accordion-item.cjs.entry.js +17 -2
  75. package/dist/cjs/af-nav-accordion.cjs.entry.js +1 -1
  76. package/dist/cjs/af-nav-menu-nest.cjs.entry.js +2 -2
  77. package/dist/cjs/af-nav-menu.cjs.entry.js +1 -1
  78. package/dist/cjs/af-number-badge.cjs.entry.js +1 -1
  79. package/dist/cjs/af-progress-line.cjs.entry.js +2 -2
  80. package/dist/cjs/af-section.cjs.entry.js +3 -3
  81. package/dist/cjs/af-show.cjs.entry.js +2 -2
  82. package/dist/cjs/af-social-link.cjs.entry.js +1 -1
  83. package/dist/cjs/af-spacer.cjs.entry.js +1 -1
  84. package/dist/cjs/af-split-section.cjs.entry.js +2 -2
  85. package/dist/cjs/af-stack.cjs.entry.js +1 -1
  86. package/dist/cjs/af-stepper-step.cjs.entry.js +1 -1
  87. package/dist/cjs/af-stepper.cjs.entry.js +1 -1
  88. package/dist/cjs/af-tag.cjs.entry.js +8 -7
  89. package/dist/cjs/af-testimonial-carousel.cjs.entry.js +2 -2
  90. package/dist/cjs/af-testimonial-stat.cjs.entry.js +1 -1
  91. package/dist/cjs/af-testimonial.cjs.entry.js +3 -3
  92. package/dist/cjs/af-text-image-nest.cjs.entry.js +1 -1
  93. package/dist/cjs/af-text-image.cjs.entry.js +2 -1
  94. package/dist/cjs/af-theme-override.cjs.entry.js +2 -2
  95. package/dist/cjs/af-typography-lockup.cjs.entry.js +28 -3
  96. package/dist/cjs/af-video-container.cjs.entry.js +1 -1
  97. package/dist/cjs/af-visually-hidden.cjs.entry.js +1 -1
  98. package/dist/cjs/affinda.cjs.js +1 -1
  99. package/dist/cjs/loader.cjs.js +1 -1
  100. package/dist/collection/components/af-accordion/af-accordion.js +1 -1
  101. package/dist/collection/components/af-accordion-item/af-accordion-item.js +27 -1
  102. package/dist/collection/components/af-button/af-button.css +24 -24
  103. package/dist/collection/components/af-button/af-button.js +9 -10
  104. package/dist/collection/components/af-card/af-card.css +2 -2
  105. package/dist/collection/components/af-card/af-card.js +1 -1
  106. package/dist/collection/components/af-center/af-center.js +1 -1
  107. package/dist/collection/components/af-client-carousel/af-client-carousel.css +17 -2
  108. package/dist/collection/components/af-client-carousel/af-client-carousel.js +41 -5
  109. package/dist/collection/components/af-contact-item/af-contact-item.js +1 -1
  110. package/dist/collection/components/af-container/af-container.css +6 -11
  111. package/dist/collection/components/af-divider/af-divider.js +1 -1
  112. package/dist/collection/components/af-feature-accordion/af-feature-accordion.css +2 -0
  113. package/dist/collection/components/af-feature-accordion/af-feature-accordion.js +2 -2
  114. package/dist/collection/components/af-feature-card/af-feature-card.css +1 -0
  115. package/dist/collection/components/af-feature-grid/af-feature-grid.css +6 -4
  116. package/dist/collection/components/af-feature-grid/af-feature-grid.js +1 -1
  117. package/dist/collection/components/af-footer/af-footer.css +11 -4
  118. package/dist/collection/components/af-footer/af-footer.js +1 -1
  119. package/dist/collection/components/af-footer-column/af-footer-column.js +1 -1
  120. package/dist/collection/components/af-footer-link/af-footer-link.js +1 -1
  121. package/dist/collection/components/af-grid/af-grid.css +5 -2
  122. package/dist/collection/components/af-grid/af-grid.js +2 -2
  123. package/dist/collection/components/af-grid-callout/af-grid-callout.css +2 -0
  124. package/dist/collection/components/af-heading/af-heading.css +19 -32
  125. package/dist/collection/components/af-icon-box/af-icon-box.js +1 -1
  126. package/dist/collection/components/af-icon-button/af-icon-button.css +2 -2
  127. package/dist/collection/components/af-icon-text/af-icon-text.css +1 -0
  128. package/dist/collection/components/af-icon-text/af-icon-text.js +3 -3
  129. package/dist/collection/components/af-illustrated-card/af-illustrated-card.js +3 -4
  130. package/dist/collection/components/af-image/af-image.css +4 -21
  131. package/dist/collection/components/af-image/af-image.js +1 -33
  132. package/dist/collection/components/af-in-page-banner/af-in-page-banner.css +3 -3
  133. package/dist/collection/components/af-in-page-banner/af-in-page-banner.js +1 -11
  134. package/dist/collection/components/af-inline/af-inline.js +1 -1
  135. package/dist/collection/components/af-logo-well/af-logo-well.css +1 -0
  136. package/dist/collection/components/af-logo-well/af-logo-well.js +1 -1
  137. package/dist/collection/components/af-nav-accordion/af-nav-accordion.js +1 -1
  138. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.js +19 -4
  139. package/dist/collection/components/af-nav-item/af-nav-item.css +5 -8
  140. package/dist/collection/components/af-nav-item/af-nav-item.js +31 -4
  141. package/dist/collection/components/af-nav-menu/af-nav-menu.js +1 -1
  142. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.css +25 -1
  143. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.js +1 -1
  144. package/dist/collection/components/af-navbar/af-navbar.css +30 -14
  145. package/dist/collection/components/af-navbar/af-navbar.js +89 -14
  146. package/dist/collection/components/af-number-badge/af-number-badge.js +1 -1
  147. package/dist/collection/components/af-progress-line/af-progress-line.js +2 -2
  148. package/dist/collection/components/af-section/af-section.css +15 -15
  149. package/dist/collection/components/af-section/af-section.js +2 -2
  150. package/dist/collection/components/af-show/af-show.css +4 -4
  151. package/dist/collection/components/af-show/af-show.js +1 -1
  152. package/dist/collection/components/af-social-link/af-social-link.js +1 -1
  153. package/dist/collection/components/af-spacer/af-spacer.js +1 -1
  154. package/dist/collection/components/af-split-section/af-split-section.css +1 -0
  155. package/dist/collection/components/af-split-section/af-split-section.js +2 -2
  156. package/dist/collection/components/af-stack/af-stack.js +1 -1
  157. package/dist/collection/components/af-stepper/af-stepper.css +1 -0
  158. package/dist/collection/components/af-stepper/af-stepper.js +1 -1
  159. package/dist/collection/components/af-stepper-step/af-stepper-step.css +1 -0
  160. package/dist/collection/components/af-stepper-step/af-stepper-step.js +1 -1
  161. package/dist/collection/components/af-tag/af-tag.css +21 -41
  162. package/dist/collection/components/af-tag/af-tag.js +13 -16
  163. package/dist/collection/components/af-testimonial/af-testimonial.css +24 -29
  164. package/dist/collection/components/af-testimonial/af-testimonial.js +6 -14
  165. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.css +8 -0
  166. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js +1 -1
  167. package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js +1 -1
  168. package/dist/collection/components/af-text-image/af-text-image.css +10 -0
  169. package/dist/collection/components/af-text-image/af-text-image.js +4 -3
  170. package/dist/collection/components/af-text-image-nest/af-text-image-nest.css +1 -0
  171. package/dist/collection/components/af-text-image-nest/af-text-image-nest.js +1 -1
  172. package/dist/collection/components/af-theme-override/af-theme-override.css +15 -15
  173. package/dist/collection/components/af-theme-override/af-theme-override.js +1 -1
  174. package/dist/collection/components/af-typography-lockup/af-typography-lockup.css +4 -22
  175. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js +49 -3
  176. package/dist/collection/components/af-video-container/af-video-container.css +1 -0
  177. package/dist/collection/components/af-video-container/af-video-container.js +1 -1
  178. package/dist/collection/components/af-visually-hidden/af-visually-hidden.js +1 -1
  179. package/dist/components/af-accordion-item.js +1 -1
  180. package/dist/components/af-accordion.js +1 -1
  181. package/dist/components/af-button.js +1 -1
  182. package/dist/components/af-card.js +1 -1
  183. package/dist/components/af-center.js +1 -1
  184. package/dist/components/af-client-carousel.js +1 -1
  185. package/dist/components/af-contact-item.js +1 -1
  186. package/dist/components/af-container.js +1 -1
  187. package/dist/components/af-divider.js +1 -1
  188. package/dist/components/af-feature-accordion.js +1 -1
  189. package/dist/components/af-feature-card.js +1 -1
  190. package/dist/components/af-feature-grid.js +1 -1
  191. package/dist/components/af-footer-column.js +1 -1
  192. package/dist/components/af-footer-link.js +1 -1
  193. package/dist/components/af-footer.js +1 -1
  194. package/dist/components/af-grid-callout.js +1 -1
  195. package/dist/components/af-grid.js +1 -1
  196. package/dist/components/af-heading.js +1 -1
  197. package/dist/components/af-icon-box.js +1 -1
  198. package/dist/components/af-icon-button.js +1 -1
  199. package/dist/components/af-icon-text.js +1 -1
  200. package/dist/components/af-illustrated-card.js +1 -1
  201. package/dist/components/af-image.js +1 -1
  202. package/dist/components/af-in-page-banner.js +1 -1
  203. package/dist/components/af-inline.js +1 -1
  204. package/dist/components/af-logo-well.js +1 -1
  205. package/dist/components/af-nav-accordion-item.js +1 -1
  206. package/dist/components/af-nav-accordion.js +1 -1
  207. package/dist/components/af-nav-item.js +1 -1
  208. package/dist/components/af-nav-menu-nest.js +1 -1
  209. package/dist/components/af-nav-menu.js +1 -1
  210. package/dist/components/af-navbar.js +1 -1
  211. package/dist/components/af-number-badge.js +1 -1
  212. package/dist/components/af-progress-line.js +1 -1
  213. package/dist/components/af-section.js +1 -1
  214. package/dist/components/af-show.js +1 -1
  215. package/dist/components/af-social-link.js +1 -1
  216. package/dist/components/af-spacer.js +1 -1
  217. package/dist/components/af-split-section.js +1 -1
  218. package/dist/components/af-stack.js +1 -1
  219. package/dist/components/af-stepper-step.js +1 -1
  220. package/dist/components/af-stepper.js +1 -1
  221. package/dist/components/af-tag.js +1 -1
  222. package/dist/components/af-testimonial-carousel.js +1 -1
  223. package/dist/components/af-testimonial-stat.js +1 -1
  224. package/dist/components/af-testimonial.js +1 -1
  225. package/dist/components/af-text-image-nest.js +1 -1
  226. package/dist/components/af-text-image.js +1 -1
  227. package/dist/components/af-theme-override.js +1 -1
  228. package/dist/components/af-typography-lockup.js +1 -1
  229. package/dist/components/af-video-container.js +1 -1
  230. package/dist/components/af-visually-hidden.js +1 -1
  231. package/dist/components/index.js +1 -1
  232. package/dist/components/p-2f5xVWwF.js +1 -0
  233. package/dist/components/{p-DPujlxcb.js → p-B7-0t_dL.js} +1 -1
  234. package/dist/components/p-B7lJGMfD.js +1 -0
  235. package/dist/components/p-BAJW_4SY.js +1 -0
  236. package/dist/components/{p-9SgEr6QK.js → p-BE3eM0xx.js} +1 -1
  237. package/dist/components/p-BMwWkh8F.js +1 -0
  238. package/dist/components/p-BvLGR36l.js +1 -0
  239. package/dist/components/p-C5_nFNYV.js +1 -0
  240. package/dist/components/p-CB_hDYLo.js +1 -0
  241. package/dist/components/p-CRW9bpXa.js +1 -0
  242. package/dist/components/p-Cv9-Wbu_.js +1 -0
  243. package/dist/components/p-CwPFdy8d.js +1 -0
  244. package/dist/components/p-oawfHsaK.js +1 -0
  245. package/dist/components/p-wM1k9Wi7.js +1 -0
  246. package/dist/esm/af-accordion-item.entry.js +27 -1
  247. package/dist/esm/af-accordion.entry.js +1 -1
  248. package/dist/esm/af-button.entry.js +4 -5
  249. package/dist/esm/af-card.entry.js +2 -2
  250. package/dist/esm/af-center.entry.js +1 -1
  251. package/dist/esm/af-client-carousel.entry.js +31 -3
  252. package/dist/esm/af-contact-item.entry.js +1 -1
  253. package/dist/esm/af-container.entry.js +1 -1
  254. package/dist/esm/af-divider.entry.js +1 -1
  255. package/dist/esm/af-feature-accordion.entry.js +2 -2
  256. package/dist/esm/af-feature-grid.entry.js +2 -2
  257. package/dist/esm/af-footer-column.entry.js +1 -1
  258. package/dist/esm/af-footer-link.entry.js +1 -1
  259. package/dist/esm/af-footer.entry.js +2 -2
  260. package/dist/esm/af-grid.entry.js +3 -3
  261. package/dist/esm/af-heading_5.entry.js +98 -21
  262. package/dist/esm/af-icon-box.entry.js +1 -1
  263. package/dist/esm/af-icon-button.entry.js +1 -1
  264. package/dist/esm/af-icon-text.entry.js +1 -1
  265. package/dist/esm/af-illustrated-card.entry.js +1 -1
  266. package/dist/esm/af-image.entry.js +2 -12
  267. package/dist/esm/af-in-page-banner.entry.js +2 -2
  268. package/dist/esm/af-inline.entry.js +1 -1
  269. package/dist/esm/af-logo-well.entry.js +1 -1
  270. package/dist/esm/af-nav-accordion-item.entry.js +17 -2
  271. package/dist/esm/af-nav-accordion.entry.js +1 -1
  272. package/dist/esm/af-nav-menu-nest.entry.js +2 -2
  273. package/dist/esm/af-nav-menu.entry.js +1 -1
  274. package/dist/esm/af-number-badge.entry.js +1 -1
  275. package/dist/esm/af-progress-line.entry.js +2 -2
  276. package/dist/esm/af-section.entry.js +3 -3
  277. package/dist/esm/af-show.entry.js +2 -2
  278. package/dist/esm/af-social-link.entry.js +1 -1
  279. package/dist/esm/af-spacer.entry.js +1 -1
  280. package/dist/esm/af-split-section.entry.js +2 -2
  281. package/dist/esm/af-stack.entry.js +1 -1
  282. package/dist/esm/af-stepper-step.entry.js +1 -1
  283. package/dist/esm/af-stepper.entry.js +1 -1
  284. package/dist/esm/af-tag.entry.js +8 -7
  285. package/dist/esm/af-testimonial-carousel.entry.js +2 -2
  286. package/dist/esm/af-testimonial-stat.entry.js +1 -1
  287. package/dist/esm/af-testimonial.entry.js +3 -3
  288. package/dist/esm/af-text-image-nest.entry.js +1 -1
  289. package/dist/esm/af-text-image.entry.js +2 -1
  290. package/dist/esm/af-theme-override.entry.js +2 -2
  291. package/dist/esm/af-typography-lockup.entry.js +29 -4
  292. package/dist/esm/af-video-container.entry.js +1 -1
  293. package/dist/esm/af-visually-hidden.entry.js +1 -1
  294. package/dist/esm/affinda.js +1 -1
  295. package/dist/esm/loader.js +1 -1
  296. package/dist/types/components/af-button/af-button.d.ts +5 -6
  297. package/dist/types/components/af-client-carousel/af-client-carousel.d.ts +26 -3
  298. package/dist/types/components/af-icon-text/af-icon-text.d.ts +2 -2
  299. package/dist/types/components/af-illustrated-card/af-illustrated-card.d.ts +2 -3
  300. package/dist/types/components/af-image/af-image.d.ts +0 -10
  301. package/dist/types/components/af-in-page-banner/af-in-page-banner.d.ts +0 -10
  302. package/dist/types/components/af-nav-accordion-item/af-nav-accordion-item.d.ts +9 -0
  303. package/dist/types/components/af-nav-item/af-nav-item.d.ts +14 -0
  304. package/dist/types/components/af-navbar/af-navbar.d.ts +31 -8
  305. package/dist/types/components/af-tag/af-tag.d.ts +7 -10
  306. package/dist/types/components/af-testimonial/af-testimonial.d.ts +2 -11
  307. package/dist/types/components/af-text-image/af-text-image.d.ts +2 -1
  308. package/dist/types/components/af-typography-lockup/af-typography-lockup.d.ts +26 -1
  309. package/dist/types/components.d.ts +180 -115
  310. package/package.json +1 -1
  311. package/dist/affinda/p-09184969.entry.js +0 -1
  312. package/dist/affinda/p-0c6b7f0b.entry.js +0 -1
  313. package/dist/affinda/p-14c85efd.entry.js +0 -1
  314. package/dist/affinda/p-2c0c94c5.entry.js +0 -1
  315. package/dist/affinda/p-2ce405df.entry.js +0 -1
  316. package/dist/affinda/p-2f1e0c44.entry.js +0 -1
  317. package/dist/affinda/p-3899a278.entry.js +0 -1
  318. package/dist/affinda/p-46efe4e4.entry.js +0 -1
  319. package/dist/affinda/p-63e86a14.entry.js +0 -1
  320. package/dist/affinda/p-9fea6229.entry.js +0 -1
  321. package/dist/affinda/p-a5f7d3d6.entry.js +0 -1
  322. package/dist/affinda/p-a8af25d5.entry.js +0 -1
  323. package/dist/affinda/p-af9e25ea.entry.js +0 -1
  324. package/dist/affinda/p-bd3f81fc.entry.js +0 -1
  325. package/dist/affinda/p-ca14e17a.entry.js +0 -1
  326. package/dist/affinda/p-cb889d6b.entry.js +0 -1
  327. package/dist/affinda/p-cbf0911b.entry.js +0 -1
  328. package/dist/affinda/p-d7129564.entry.js +0 -1
  329. package/dist/affinda/p-df7b1b09.entry.js +0 -1
  330. package/dist/affinda/p-e0915179.entry.js +0 -1
  331. package/dist/affinda/p-e3cd6671.entry.js +0 -1
  332. package/dist/affinda/p-e6b4761c.entry.js +0 -1
  333. package/dist/affinda/p-ef754e65.entry.js +0 -1
  334. package/dist/affinda/p-f3d5d1be.entry.js +0 -1
  335. package/dist/affinda/p-fc1452ba.entry.js +0 -1
  336. package/dist/affinda/p-ffdd2c30.entry.js +0 -1
  337. package/dist/components/p-B6I3yxMd.js +0 -1
  338. package/dist/components/p-BUFbtjxU.js +0 -1
  339. package/dist/components/p-BXFj61qz.js +0 -1
  340. package/dist/components/p-BeVM-2kH.js +0 -1
  341. package/dist/components/p-BlfywPKX.js +0 -1
  342. package/dist/components/p-BzH2LxRQ.js +0 -1
  343. package/dist/components/p-CHNaDIj5.js +0 -1
  344. package/dist/components/p-CTcar4TG.js +0 -1
  345. package/dist/components/p-DOJEJFNa.js +0 -1
  346. package/dist/components/p-UTiuvQaz.js +0 -1
  347. package/dist/components/p-tB2jS8S_.js +0 -1
  348. package/dist/components/p-tF59ipRp.js +0 -1
@@ -4,20 +4,8 @@ import { h, Host } from "@stencil/core";
4
4
  * Provides consistent image styling across the design system.
5
5
  */
6
6
  export class AfImage {
7
- constructor() {
8
- /**
9
- * Shape / corner rounding variant. Matches Webflow's `.image-fill.rounded-*`
10
- * patterns where only one edge is rounded so the image bleeds into a
11
- * neighbouring section.
12
- * - `rounded` (default) — symmetric rounded corners on all four sides.
13
- * - `rounded-left` — rounded only on the left edge (top-left + bottom-left).
14
- * - `rounded-right` — rounded only on the right edge.
15
- * - `square` — no corner rounding.
16
- */
17
- this.shape = 'rounded';
18
- }
19
7
  render() {
20
- return (h(Host, { key: 'c9f455572ade2527ebe2fa3cf6d25799b1dcdadd' }, h("div", { key: 'bd5742851ebe8c860eff32bc0583052ffe12c664', class: `image-container image-container--${this.shape}` }, h("img", { key: 'c8f13e1b129c75dee5a2f2c39ca5928a2680fc11', src: this.src, alt: this.alt, class: "image" }), h("div", { key: '19b82389db1ceb1cc37d6824340ce2937396e766', class: "image-border", "aria-hidden": "true" }))));
8
+ return (h(Host, { key: '4cb4ea9887de4a009e044ff094061e776439c3a1' }, h("div", { key: 'e4db690fe52d08361b3420028aa80a7407e155c6', class: "image-container" }, h("img", { key: 'a3475febafc35e240ece6be513340bfb004e5315', src: this.src, alt: this.alt, class: "image" }), h("div", { key: 'c1d492a212f6ad3c4b7eac4c56bf5b91b2ea1809', class: "image-border", "aria-hidden": "true" }))));
21
9
  }
22
10
  static get is() { return "af-image"; }
23
11
  static get encapsulation() { return "scoped"; }
@@ -70,26 +58,6 @@ export class AfImage {
70
58
  "setter": false,
71
59
  "reflect": false,
72
60
  "attribute": "alt"
73
- },
74
- "shape": {
75
- "type": "string",
76
- "mutable": false,
77
- "complexType": {
78
- "original": "'rounded' | 'rounded-left' | 'rounded-right' | 'square'",
79
- "resolved": "\"rounded\" | \"rounded-left\" | \"rounded-right\" | \"square\"",
80
- "references": {}
81
- },
82
- "required": false,
83
- "optional": false,
84
- "docs": {
85
- "tags": [],
86
- "text": "Shape / corner rounding variant. Matches Webflow's `.image-fill.rounded-*`\npatterns where only one edge is rounded so the image bleeds into a\nneighbouring section.\n- `rounded` (default) \u2014 symmetric rounded corners on all four sides.\n- `rounded-left` \u2014 rounded only on the left edge (top-left + bottom-left).\n- `rounded-right` \u2014 rounded only on the right edge.\n- `square` \u2014 no corner rounding."
87
- },
88
- "getter": false,
89
- "setter": false,
90
- "reflect": false,
91
- "attribute": "shape",
92
- "defaultValue": "'rounded'"
93
61
  }
94
62
  };
95
63
  }
@@ -212,7 +212,7 @@
212
212
  gap: 16px;
213
213
  max-width: 840px;
214
214
  width: 100%;
215
- white-space: normal;
215
+ white-space: pre-wrap;
216
216
  }
217
217
 
218
218
  /* ==========================================================================
@@ -232,7 +232,7 @@
232
232
  letter-spacing: -0.88px;
233
233
  color: var(--banner-heading-color, var(--colour-brand-inkwell, #14343b));
234
234
  margin: 0;
235
- white-space: normal;
235
+ white-space: pre-wrap;
236
236
  }
237
237
 
238
238
  /* ==========================================================================
@@ -252,7 +252,7 @@
252
252
  line-height: 26px;
253
253
  color: var(--banner-body-color, var(--colour-inkwell-400, #2b484f));
254
254
  margin: 0;
255
- white-space: normal;
255
+ white-space: pre-wrap;
256
256
  }
257
257
 
258
258
  /* ==========================================================================
@@ -22,16 +22,6 @@ import { h, Host } from "@stencil/core";
22
22
  * ```
23
23
  *
24
24
  * Alternatively, use the `illustration` slot for completely custom content.
25
- *
26
- * **Slot-based composition (preferred for rich content):**
27
- * - `heading` — heading markup (overrides the `heading` prop when provided).
28
- * - `description` — description markup (overrides the `description` prop).
29
- * - `buttons` — custom button group (overrides the primary/secondary button
30
- * props; use when you need ghost variants, more than two buttons, or
31
- * per-button icons).
32
- * - `illustration` — custom illustration markup.
33
- *
34
- * The string props remain supported for simple cases.
35
25
  */
36
26
  export class AfInPageBanner {
37
27
  constructor() {
@@ -66,7 +56,7 @@ export class AfInPageBanner {
66
56
  return (h("div", { class: "banner__wave-overlay", "aria-hidden": "true" }, h("svg", { viewBox: "0 0 521 323", fill: "none", xmlns: "http://www.w3.org/2000/svg", class: "banner__wave-svg" }, h("path", { d: "M473.775 46.273C443.539 15.92 403.701 -0.631616 361.351 0.0184478H154.183L112.67 67.225H361.893C362.189 67.225 362.533 67.225 362.829 67.225C387.155 67.225 410.004 76.7259 427.289 94.0776C445.017 111.879 454.816 135.682 454.816 161.134C454.816 213.389 412.959 255.843 361.548 255.843H108.041C84.9457 255.843 66.1345 236.742 66.1345 213.289C66.1345 189.837 84.9949 170.435 107.992 169.735H334.957L377.799 102.528H106.859C47.9636 104.029 0 153.683 0 213.289C0 272.895 48.456 323 108.041 323H361.548C449.449 323 521 250.343 521 161.084C521 117.53 504.257 76.7759 473.824 46.2229L473.775 46.273Z", fill: "currentColor" }))));
67
57
  }
68
58
  render() {
69
- return (h(Host, { key: '6310f0f7600c2e19d1445065cccee4579939e0dc' }, h("div", { key: '61f59b11a415d70336106b7a61a257e30cbaca07', class: `banner theme-${this.theme}` }, this.showWaveDecoration && this.renderWaveOverlay(), h("div", { key: '338ca3f897b8da2ee01f7ccfa6f3289cc6826fc8', class: "banner__illustration" }, this.illustrationUrl ? (h("img", { src: this.illustrationUrl, alt: "", class: "banner__illustration-img", loading: "lazy" })) : (h("slot", { name: "illustration" }))), h("div", { key: '5bb803e4ae874c0422500d021683d24db0bcb390', class: "banner__content" }, h("div", { key: '64bdea0fed6cbd21fa361a139d16cf5793c827d9', class: "banner__copy" }, h("h2", { key: 'f537189a2e05202aa6b0bc7be09dad21ddb1c787', class: "banner__heading" }, h("slot", { key: 'ddb9b2a0f6be237f603333ccad962a0f9f283b45', name: "heading" }, this.heading)), h("div", { key: 'a83c28686b9ab76046df820a5750f5fff3f650d4', class: "banner__description" }, h("slot", { key: 'd3e4350761df809b4f1d97de93a0d9c58008dd93', name: "description" }, this.description))), h("div", { key: 'e6cc39eab622e5e6ea0732f94c11ca200ebb6324', class: "banner__buttons" }, h("slot", { key: '6aedd028e64940f7250054ede53ed22b5a524e2d', name: "buttons" }, this.primaryButtonText && (h("af-button", { key: 'aadec6e904ceb326d3e9e8d12f543d733551f8a3', href: this.primaryButtonUrl, variant: "primary" }, this.primaryButtonText)), this.secondaryButtonText && (h("af-button", { key: 'd9c4ade6266820459eaf5d61a5e21bf9019f2cad', href: this.secondaryButtonUrl, variant: "secondary" }, this.secondaryButtonText))))))));
59
+ return (h(Host, { key: '2720fd3ccb0d8f2e37144265de17ce7ec40d5197' }, h("div", { key: 'edfa5812b8de06a50fd4502ee57a4590bab7891c', class: `banner theme-${this.theme}` }, this.showWaveDecoration && this.renderWaveOverlay(), h("div", { key: '401c710a4642b04cae3ad4795db1a9444a25ca13', class: "banner__illustration" }, this.illustrationUrl ? (h("img", { src: this.illustrationUrl, alt: "", class: "banner__illustration-img", loading: "lazy" })) : (h("slot", { name: "illustration" }))), h("div", { key: 'f09c44f258171263a035081af7918085e11aede6', class: "banner__content" }, h("div", { key: '3badcdab323c0c16b9d484d4fc55989b37cdbe08', class: "banner__copy" }, this.heading && (h("h2", { key: 'c35214a8429164d16bbb024292daf8d18fbeba29', class: "banner__heading" }, this.heading)), this.description && (h("p", { key: 'ecbfa1ff0649d77d8d874582b2d09b60c8e193c6', class: "banner__description" }, this.description))), (this.primaryButtonText || this.secondaryButtonText) && (h("div", { key: '6ef15b587a684ac9d4cc9ce4af81fca6d0a23446', class: "banner__buttons" }, this.primaryButtonText && (h("af-button", { key: 'ef632338bc8a8e9332f12c30ada3ad2c83201688', href: this.primaryButtonUrl, variant: "primary" }, this.primaryButtonText)), this.secondaryButtonText && (h("af-button", { key: '6265d2595f6e7ad3f45bb1284b9b2953f03e0cfe', href: this.secondaryButtonUrl, variant: "secondary" }, this.secondaryButtonText))))))));
70
60
  }
71
61
  static get is() { return "af-in-page-banner"; }
72
62
  static get encapsulation() { return "scoped"; }
@@ -49,7 +49,7 @@ export class AfInline {
49
49
  justifyContent: justifyMap[this.justify],
50
50
  flexWrap: this.wrap ? 'wrap' : 'nowrap',
51
51
  };
52
- return (h(Host, { key: 'bbd38c1051d630e3fe9d14f426e6f3325550876f', style: style }, h("slot", { key: 'e0cc5cc812936fc771173b21ff7ed1686ac75a5c' })));
52
+ return (h(Host, { key: '98aab1aa94a068796ee7abdd00d44cac516f6be1', style: style }, h("slot", { key: '2c700f8333f3c010344d499b7d8bc5126d139745' })));
53
53
  }
54
54
  static get is() { return "af-inline"; }
55
55
  static get encapsulation() { return "shadow"; }
@@ -45,6 +45,7 @@
45
45
  }
46
46
 
47
47
  /* Mobile adjustments */
48
+ /* ≤ mobile */
48
49
  @media (max-width: 767px) {
49
50
  .logo-well {
50
51
  border-radius: var(--radius-logo-well-mobile, 12px);
@@ -4,7 +4,7 @@ import { h, Host } from "@stencil/core";
4
4
  */
5
5
  export class AfLogoWell {
6
6
  render() {
7
- return (h(Host, { key: '5af92f4b7a36ef209a7b93541590dfd210fba093' }, h("div", { key: 'd3cbe389d4f5007c819a27fe54763de73053d5c3', class: "logo-well" }, h("slot", { key: '37044ab145a5be26ac15ac69840f3dc792fe2f15' }))));
7
+ return (h(Host, { key: '8101d42a68af7c5cfc90e6a13706e93823da27c3' }, h("div", { key: '2403b1d1f5b365cc2f7e37cb9387e9c2009efd5f', class: "logo-well" }, h("slot", { key: 'da5724c0fb823b8aa7f85fd7d95b94c2841c2f70' }))));
8
8
  }
9
9
  static get is() { return "af-logo-well"; }
10
10
  static get encapsulation() { return "shadow"; }
@@ -71,7 +71,7 @@ export class AfNavAccordion {
71
71
  this.syncItems();
72
72
  }
73
73
  render() {
74
- return (h(Host, { key: 'ffb96d7b9f49689a0d35cb54beaead039ca286f7', class: { [`breakpoint-${this.breakpoint}`]: true, [`mode-${this.mode}`]: true } }, h("div", { key: 'fd20f9141c3cef43992756234531998900562e22', class: "nav-accordion" }, h("slot", { key: 'ea11fb80a9700b8ce5c661e31251add479692011' }))));
74
+ return (h(Host, { key: '9764092415b6f501cdbf38649e00d172bbbf8e12', class: { [`breakpoint-${this.breakpoint}`]: true, [`mode-${this.mode}`]: true } }, h("div", { key: 'c8dbefa2fcffc74ade77432b4a97e0decbc15823', class: "nav-accordion" }, h("slot", { key: '688c01dc567713e5e1040b766f32f8d1a67b8d0f' }))));
75
75
  }
76
76
  static get is() { return "af-nav-accordion"; }
77
77
  static get encapsulation() { return "scoped"; }
@@ -22,6 +22,7 @@ export class AfNavAccordionItem {
22
22
  this.breakpoint = 'mobile';
23
23
  this.contentHeight = 0;
24
24
  this.hasTriggerSlot = false;
25
+ this.hasContent = false;
25
26
  this.handleTriggerClick = (event) => {
26
27
  // If it's a link, let it navigate (unless they clicked the chevron specifically)
27
28
  if (this.href) {
@@ -46,6 +47,16 @@ export class AfNavAccordionItem {
46
47
  this.measureContent();
47
48
  }
48
49
  }
50
+ /**
51
+ * Detect whether the host has any default-slot children — i.e. whether
52
+ * this item expands to reveal a sub-menu, or is just a simple link.
53
+ * We check in componentWillLoad (before render) because after render
54
+ * Stencil has appended its own output to the host and this.el.children
55
+ * would include that.
56
+ */
57
+ componentWillLoad() {
58
+ this.hasContent = Array.from(this.el.children).some((child) => !child.hasAttribute('slot'));
59
+ }
49
60
  componentDidLoad() {
50
61
  if (this.open) {
51
62
  this.measureContent();
@@ -69,12 +80,15 @@ export class AfNavAccordionItem {
69
80
  const contentStyle = {
70
81
  maxHeight: this.open ? `${this.contentHeight}px` : '0px'
71
82
  };
72
- const hasDropdownContent = true; // Assume content is always present for accordion items
73
- return (h(Host, { key: 'd0d5a77a9cf697837b850c72e4d6a59d2b9ec7cd', class: {
83
+ // Only render the chevron toggle when this item actually has
84
+ // sub-content to expand. A plain href item with no children is a
85
+ // direct link and shouldn't show a disclosure affordance.
86
+ const hasDropdownContent = this.hasContent;
87
+ return (h(Host, { key: '959165c0c1ba72e3e3e33956862a47a9e080ce91', class: {
74
88
  'is-open': this.open,
75
89
  'is-disabled': this.disabled,
76
90
  [`breakpoint-${this.breakpoint}`]: true
77
- } }, h("div", { key: '42289d70de54e228b73cb45b8ca0e15510fd917d', class: "nav-accordion-item" }, this.href ? (h("a", { href: this.href, class: "trigger", "aria-expanded": this.open ? 'true' : 'false', "aria-controls": `content-${this.itemId}` }, h("div", { class: "trigger-content" }, h("slot", { name: "trigger", onSlotchange: this.handleSlotChange }, h("span", { class: "label" }, this.label))), hasDropdownContent && (h("button", { class: "chevron-button", onClick: (e) => { e.preventDefault(); e.stopPropagation(); this.toggle(); }, "aria-label": this.open ? 'Collapse' : 'Expand', type: "button" }, h("div", { class: { 'chevron': true, 'is-open': this.open } }, h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M6 9l6 6 6-6", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))))))) : (h("button", { class: "trigger", onClick: this.handleTriggerClick, onKeyDown: this.handleKeyDown, "aria-expanded": this.open ? 'true' : 'false', "aria-controls": `content-${this.itemId}`, disabled: this.disabled, type: "button" }, h("div", { class: "trigger-content" }, h("slot", { name: "trigger", onSlotchange: this.handleSlotChange }, h("span", { class: "label" }, this.label))), h("div", { class: { 'chevron': true, 'is-open': this.open } }, h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M6 9l6 6 6-6", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))))), h("div", { key: '20489f3802a9d702e06779ffd047a6adcb0eb880', id: `content-${this.itemId}`, class: "content-wrapper", style: contentStyle, "aria-hidden": !this.open ? 'true' : 'false' }, h("div", { key: '39d7e3a3f3f544db582a91510bb5c721660861c8', class: "content", ref: (el) => (this.contentRef = el) }, h("slot", { key: 'b8f7e2c89facfe9a65225b6f16b1188ab979f4b8' }))))));
91
+ } }, h("div", { key: '7edc90a2480aa453ca8407acf31c6af8c44bc9ab', class: "nav-accordion-item" }, this.href ? (h("a", { href: this.href, class: "trigger", "aria-expanded": this.open ? 'true' : 'false', "aria-controls": `content-${this.itemId}` }, h("div", { class: "trigger-content" }, h("slot", { name: "trigger", onSlotchange: this.handleSlotChange }, h("span", { class: "label" }, this.label))), hasDropdownContent && (h("button", { class: "chevron-button", onClick: (e) => { e.preventDefault(); e.stopPropagation(); this.toggle(); }, "aria-label": this.open ? 'Collapse' : 'Expand', type: "button" }, h("div", { class: { 'chevron': true, 'is-open': this.open } }, h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M6 9l6 6 6-6", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))))))) : (h("button", { class: "trigger", onClick: this.handleTriggerClick, onKeyDown: this.handleKeyDown, "aria-expanded": this.open ? 'true' : 'false', "aria-controls": `content-${this.itemId}`, disabled: this.disabled, type: "button" }, h("div", { class: "trigger-content" }, h("slot", { name: "trigger", onSlotchange: this.handleSlotChange }, h("span", { class: "label" }, this.label))), hasDropdownContent && (h("div", { class: { 'chevron': true, 'is-open': this.open } }, h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M6 9l6 6 6-6", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))))), h("div", { key: '826855c6ca16a807c1f4dec417c771c8bbdc0966', id: `content-${this.itemId}`, class: "content-wrapper", style: contentStyle, "aria-hidden": !this.open ? 'true' : 'false' }, h("div", { key: '9a614290248120ad48b7658fbeecb8d4e83e53db', class: "content", ref: (el) => (this.contentRef = el) }, h("slot", { key: 'dd22fe45b6ad6f7a7c39b1a0a1055421b7b80a51' }))))));
78
92
  }
79
93
  static get is() { return "af-nav-accordion-item"; }
80
94
  static get encapsulation() { return "scoped"; }
@@ -212,7 +226,8 @@ export class AfNavAccordionItem {
212
226
  static get states() {
213
227
  return {
214
228
  "contentHeight": {},
215
- "hasTriggerSlot": {}
229
+ "hasTriggerSlot": {},
230
+ "hasContent": {}
216
231
  };
217
232
  }
218
233
  static get events() {
@@ -210,13 +210,9 @@
210
210
  color: var(--af-nav-item-secondary, var(--af-typography-body-default, #2b484f));
211
211
  }
212
212
 
213
- /* Icon rotation on hover for desktop primary with dropdown indicator */
214
- .hierarchy-primary.variant-01.breakpoint-desktop:hover ::slotted([slot="icon-right"]),
215
- .hierarchy-primary.variant-01.breakpoint-desktop.active ::slotted([slot="icon-right"]) {
216
- transform: rotate(180deg);
217
- }
218
-
219
- /* Icon rotation on active for mobile primary with dropdown indicator */
213
+ /* Icon rotation on active for mobile primary with dropdown indicator.
214
+ Desktop chevrons stay static — rotating on hover/active felt fidgety
215
+ and the open/closed state is already clear from the dropdown panel. */
220
216
  .hierarchy-primary.breakpoint-mobile.active ::slotted([slot="icon-right"]) {
221
217
  transform: rotate(180deg);
222
218
  }
@@ -237,7 +233,8 @@
237
233
  }
238
234
 
239
235
  /* Fallback media query for when breakpoint prop is not set */
240
- @media (max-width: 991px) {
236
+ /* tablet */
237
+ @media (max-width: 1023px) {
241
238
  :host([breakpoint="auto"]) .hierarchy-primary,
242
239
  :host(:not([breakpoint])) .hierarchy-primary {
243
240
  padding: 20px 12px;
@@ -2,6 +2,13 @@ import { h, Host } from "@stencil/core";
2
2
  /**
3
3
  * A generic navigation item component that can be used in navigation bars, menus, and sidebars.
4
4
  * Supports multiple hierarchy levels, variants, and states (active, hover).
5
+ *
6
+ * **Dropdown trigger a11y:** when the host carries a `data-dropdown="id"`
7
+ * attribute and has no `href`, the inner wrapper is promoted to
8
+ * `role="button"` with `tabindex="0"` and keyboard activation (Enter/Space),
9
+ * so keyboard users can open the matching dropdown panel just like a
10
+ * pointer click. The companion `af-navbar` keeps `aria-expanded` on the
11
+ * host in sync with the active dropdown.
5
12
  */
6
13
  export class AfNavItem {
7
14
  constructor() {
@@ -27,6 +34,17 @@ export class AfNavItem {
27
34
  * Whether this nav item is currently active/selected
28
35
  */
29
36
  this.active = false;
37
+ /**
38
+ * Promote Enter and Space on a focused trigger into a synthetic click
39
+ * so the surrounding af-navbar (which listens on click) treats the
40
+ * keyboard activation identically to a pointer click.
41
+ */
42
+ this.handleTriggerKeyDown = (event) => {
43
+ if (event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar') {
44
+ event.preventDefault();
45
+ this.el.click();
46
+ }
47
+ };
30
48
  }
31
49
  render() {
32
50
  const classes = {
@@ -34,13 +52,21 @@ export class AfNavItem {
34
52
  [`hierarchy-${this.hierarchy}`]: true,
35
53
  [`variant-${this.variant}`]: true,
36
54
  [`breakpoint-${this.breakpoint}`]: true,
37
- 'active': this.active
55
+ 'active': this.active,
38
56
  };
39
- const content = (h("div", { class: classes }, h("slot", { name: "icon-left" }), h("div", { class: "label-container" }, h("slot", null)), h("slot", { name: "icon-right" })));
57
+ const innerContent = [
58
+ h("slot", { name: "icon-left" }),
59
+ h("div", { class: "label-container" }, h("slot", null)),
60
+ h("slot", { name: "icon-right" }),
61
+ ];
40
62
  if (this.href) {
41
- return (h(Host, null, h("a", { href: this.href, class: "nav-link" }, content)));
63
+ return (h(Host, null, h("a", { href: this.href, class: "nav-link" }, h("div", { class: classes }, innerContent))));
64
+ }
65
+ const isDropdownTrigger = this.el.hasAttribute('data-dropdown');
66
+ if (isDropdownTrigger) {
67
+ return (h(Host, null, h("div", { class: classes, role: "button", tabindex: 0, "aria-haspopup": "menu", onKeyDown: this.handleTriggerKeyDown }, innerContent)));
42
68
  }
43
- return h(Host, null, content);
69
+ return h(Host, null, h("div", { class: classes }, innerContent));
44
70
  }
45
71
  static get is() { return "af-nav-item"; }
46
72
  static get encapsulation() { return "scoped"; }
@@ -157,4 +183,5 @@ export class AfNavItem {
157
183
  }
158
184
  };
159
185
  }
186
+ static get elementRef() { return "el"; }
160
187
  }
@@ -30,7 +30,7 @@ export class AfNavMenu {
30
30
  'has-border': this.showBorder,
31
31
  'card-style': this.cardStyle
32
32
  };
33
- return (h(Host, { key: '6f7e20f1aa44b4b624411a4eb035a25d864632e6' }, h("div", { key: 'd3ac164858b0b6330e659baf660fc1d5de15f6da', class: classes }, this.heading && (h("div", { key: 'eb44abd861273745f894c2ccd16108458bb30837', class: "menu-header" }, h("h3", { key: 'c903ebe2ab7fa5aebf6a83b9559ab6ccae32a396', class: "menu-heading" }, this.heading))), h("div", { key: '606abd19e501a5962cd907da1afcbf697e0aad6c', class: "menu-items" }, h("slot", { key: 'a9399b33983fb425bad9ed5ae4a534c9aadd8884' })))));
33
+ return (h(Host, { key: '11f883b5cc420ee5cb99c723cc492b7346c3761d' }, h("div", { key: 'c3261a46a80fcbbdbfc3d82ee43e4cb31f6de4d8', class: classes }, this.heading && (h("div", { key: 'fd6f90c2bc9f34ef30efc22b49eb36bd6fd7ae52', class: "menu-header" }, h("h3", { key: '5e80c33bdd36dcc23d3445fd92af76f69f28a7c8', class: "menu-heading" }, this.heading))), h("div", { key: '6b62d13e30422c7f331350ec39ab2429f5a50294', class: "menu-items" }, h("slot", { key: '49740ab88d6c957395b902f98526b60353af4be5' })))));
34
34
  }
35
35
  static get is() { return "af-nav-menu"; }
36
36
  static get encapsulation() { return "scoped"; }
@@ -36,8 +36,13 @@
36
36
  margin-top: 16px;
37
37
  }
38
38
 
39
- /* Slotted NavMenu in columns - add border and spacing */
39
+ /* Slotted NavMenu in columns - equal-width flex items with border and
40
+ * spacing. `flex: 1 1 0` gives every column the same width regardless of
41
+ * content; `min-width: 0` lets the content wrap within its column rather
42
+ * than forcing the whole row to grow. */
40
43
  .nav-menu-nest.breakpoint-desktop .menu-columns ::slotted(af-nav-menu) {
44
+ flex: 1 1 0;
45
+ min-width: 0;
41
46
  border-right: 1px solid var(--af-background-border-subtle, #e8eeed);
42
47
  padding-right: 32px;
43
48
  padding-top: 16px;
@@ -55,6 +60,25 @@
55
60
  padding-right: 32px;
56
61
  }
57
62
 
63
+ /* Tighter layout in the 992–1199px band where the desktop nav is still
64
+ * shown but horizontal room is limited — reduces gap/padding so the
65
+ * four-column layout doesn't read as cramped. */
66
+ @media (max-width: 1199px) {
67
+ .nav-menu-nest.breakpoint-desktop .menu-columns {
68
+ gap: 20px;
69
+ padding: 20px 0 24px 24px;
70
+ }
71
+ .nav-menu-nest.breakpoint-desktop .menu-sidebar {
72
+ padding: 20px 24px 24px 20px;
73
+ }
74
+ .nav-menu-nest.breakpoint-desktop .menu-columns ::slotted(af-nav-menu) {
75
+ padding-right: 20px;
76
+ }
77
+ :host([show-sidebar-border]) .nav-menu-nest.breakpoint-desktop .menu-columns ::slotted(af-nav-menu:last-of-type) {
78
+ padding-right: 20px;
79
+ }
80
+ }
81
+
58
82
  /* Mobile layout */
59
83
  .nav-menu-nest.breakpoint-mobile {
60
84
  flex-direction: column;
@@ -48,7 +48,7 @@ export class AfNavMenuNest {
48
48
  [`type-${this.type}`]: true,
49
49
  [`breakpoint-${this.breakpoint}`]: true
50
50
  };
51
- return (h(Host, { key: '3d7ca814a3fbd4c435d6bb998303b4d1c8efbe24' }, h("div", { key: 'df70f98501743e2b6965add93d5ae864172ebab8', class: classes }, h("div", { key: '62cca1b06b0526c697724aa03337045e80e9f496', class: "menu-columns" }, h("slot", { key: 'febdb583fd0bd016a00dadf37a2e694a36ab2c83' })), h("div", { key: 'e70fb1c00cfe2cd6bc346c9b88eaffe360c5aee6', class: "menu-sidebar" }, h("slot", { key: '2f5425aeaf2be2ea14f880288472f7a88a8ac8b7', name: "sidebar" })))));
51
+ return (h(Host, { key: '8b256672578e162c65c1dd83b735f3fd8af8bb56' }, h("div", { key: '1f009f9f0986790e3b330eec97fa5e9f63604108', class: classes }, h("div", { key: 'db3540b0259d8474093e1d31c51e7ae1311700c0', class: "menu-columns" }, h("slot", { key: '06c90ac9305b96d64bc86fcf16ba639db31c4d08' })), h("div", { key: '5ad8cb59dd4c88c6dadf38aac88df6697541ad52', class: "menu-sidebar" }, h("slot", { key: '98a73cb259c755fa1efc70294772abf89d233581', name: "sidebar" })))));
52
52
  }
53
53
  static get is() { return "af-nav-menu-nest"; }
54
54
  static get encapsulation() { return "scoped"; }
@@ -28,11 +28,15 @@
28
28
  /* Sticky navbar that floats above the spacer */
29
29
  .navbar-container {
30
30
  position: fixed;
31
- top: 32px;
31
+ /* Add safe-area-inset-top so the pill drops below the iOS notch / status bar
32
+ when the page uses viewport-fit=cover. Falls back to the original 32px. */
33
+ top: max(32px, env(safe-area-inset-top));
32
34
  left: 0;
33
35
  right: 0;
34
36
  z-index: 10;
35
- padding: 0 80px;
37
+ /* Horizontal padding honours safe-area-inset-left/right for landscape on
38
+ notched devices; the inset is added on top of the existing 80px gutter. */
39
+ padding: 0 calc(80px + env(safe-area-inset-right)) 0 calc(80px + env(safe-area-inset-left));
36
40
  box-sizing: border-box;
37
41
  }
38
42
 
@@ -101,13 +105,19 @@
101
105
  align-items: center;
102
106
  }
103
107
 
104
- /* Dropdown container */
108
+ /* Dropdown container. The container's top is raised 8px into what
109
+ was previously a blank gap between the nav pill and the panel, and
110
+ that 8px is absorbed as container top-padding — so the visible panel
111
+ stays put, but the hoverable region is now continuous between the
112
+ nav pill and the dropdown. Without this, the mouse crosses an
113
+ un-hovered strip on its way from trigger to panel and the navbar's
114
+ mouseleave handler fires a close. */
105
115
  .dropdown-container {
106
116
  position: absolute;
107
- top: 108px;
117
+ top: 100px;
108
118
  left: 0;
109
119
  right: 0;
110
- padding: 0 80px;
120
+ padding: 8px 80px 0;
111
121
  pointer-events: none;
112
122
  opacity: 0;
113
123
  transform: translateY(-8px);
@@ -142,7 +152,13 @@
142
152
  bottom: 0;
143
153
  background: var(--colour-background-base, #ffffff);
144
154
  z-index: 9;
145
- padding: 100px 16px 24px 16px;
155
+ /* Full-viewport drawer: pad the top below the notch, the bottom above the
156
+ home indicator, and the sides away from landscape edge cutouts. */
157
+ padding:
158
+ max(100px, calc(100px + env(safe-area-inset-top)))
159
+ calc(16px + env(safe-area-inset-right))
160
+ max(24px, env(safe-area-inset-bottom))
161
+ calc(16px + env(safe-area-inset-left));
146
162
  overflow-y: auto;
147
163
  opacity: 0;
148
164
  pointer-events: none;
@@ -199,8 +215,8 @@
199
215
  }
200
216
 
201
217
  .navbar-container {
202
- top: 24px;
203
- padding: 0 40px;
218
+ top: max(24px, env(safe-area-inset-top));
219
+ padding: 0 calc(40px + env(safe-area-inset-right)) 0 calc(40px + env(safe-area-inset-left));
204
220
  }
205
221
 
206
222
  .navbar-left {
@@ -226,8 +242,8 @@
226
242
  }
227
243
 
228
244
  .navbar-container {
229
- top: 16px;
230
- padding: 0 16px;
245
+ top: max(16px, env(safe-area-inset-top));
246
+ padding: 0 calc(16px + env(safe-area-inset-right)) 0 calc(16px + env(safe-area-inset-left));
231
247
  z-index: 11; /* Above mobile menu panel */
232
248
  }
233
249
 
@@ -277,7 +293,7 @@
277
293
 
278
294
  /* Mobile menu panel adjustments */
279
295
  .mobile-menu-panel {
280
- padding-top: 88px; /* Accounts for navbar height */
296
+ padding-top: max(88px, calc(88px + env(safe-area-inset-top))); /* Accounts for navbar height + notch */
281
297
  }
282
298
 
283
299
  .mobile-button-container {
@@ -303,8 +319,8 @@
303
319
  }
304
320
 
305
321
  :host([force-mobile]) .navbar-container {
306
- top: 16px;
307
- padding: 0 16px;
322
+ top: max(16px, env(safe-area-inset-top));
323
+ padding: 0 calc(16px + env(safe-area-inset-right)) 0 calc(16px + env(safe-area-inset-left));
308
324
  z-index: 11;
309
325
  }
310
326
 
@@ -353,7 +369,7 @@
353
369
  }
354
370
 
355
371
  :host([force-mobile]) .mobile-menu-panel {
356
- padding-top: 88px;
372
+ padding-top: max(88px, calc(88px + env(safe-area-inset-top)));
357
373
  }
358
374
 
359
375
  :host([force-mobile]) .mobile-menu-panel.is-open {
@@ -58,9 +58,8 @@ export class AfNavbar {
58
58
  };
59
59
  }
60
60
  /**
61
- * Open the dropdown matching the clicked `[data-dropdown]` trigger.
62
- * Runs on capture so we intercept the click before nav-item's own
63
- * navigation behaviour.
61
+ * Open the dropdown matching a `[data-dropdown]` trigger on click —
62
+ * acts as a toggle so keyboard/touch users can still dismiss it.
64
63
  */
65
64
  handleTriggerClick(event) {
66
65
  const target = event.target;
@@ -72,8 +71,52 @@ export class AfNavbar {
72
71
  return;
73
72
  event.preventDefault();
74
73
  event.stopPropagation();
74
+ this.cancelScheduledClose();
75
+ this.lastActiveTrigger = trigger;
75
76
  this.toggleDropdown(id);
76
77
  }
78
+ /**
79
+ * Open the dropdown matching a `[data-dropdown]` trigger on hover.
80
+ * Uses mouseover (which bubbles) and checks for the trigger ancestor.
81
+ */
82
+ handleHover(event) {
83
+ const target = event.target;
84
+ const trigger = target?.closest?.('[data-dropdown]');
85
+ if (!trigger || !this.el.contains(trigger))
86
+ return;
87
+ const id = trigger.getAttribute('data-dropdown');
88
+ if (!id || this.activeDropdown === id) {
89
+ this.cancelScheduledClose();
90
+ return;
91
+ }
92
+ this.cancelScheduledClose();
93
+ this.lastActiveTrigger = trigger;
94
+ this.openDropdown(id);
95
+ }
96
+ /**
97
+ * When the pointer leaves the navbar entirely (including any open
98
+ * dropdown panel), schedule a close. Re-entering cancels it.
99
+ */
100
+ handleHostLeave() {
101
+ this.scheduleClose();
102
+ }
103
+ handleHostEnter() {
104
+ this.cancelScheduledClose();
105
+ }
106
+ scheduleClose() {
107
+ // Close immediately on mouseleave. The css change in af-navbar.css
108
+ // bridges the former 8px dead-zone between the nav pill and the
109
+ // dropdown panel into a single hoverable region, so there's no
110
+ // longer a mid-transit mouseleave to swallow with a debounce.
111
+ this.cancelScheduledClose();
112
+ this.closeDropdown();
113
+ }
114
+ cancelScheduledClose() {
115
+ if (this.closeTimer !== undefined) {
116
+ clearTimeout(this.closeTimer);
117
+ this.closeTimer = undefined;
118
+ }
119
+ }
77
120
  /**
78
121
  * Handle clicks outside the navbar to close dropdowns
79
122
  */
@@ -84,35 +127,49 @@ export class AfNavbar {
84
127
  }
85
128
  }
86
129
  /**
87
- * Keep the visibility of slotted dropdown panels in sync with the
88
- * currently active dropdown. Each panel lives in the `dropdowns` slot
89
- * and carries a `data-for` attribute that matches its trigger's id.
130
+ * Keep the visibility of slotted dropdown panels, and the `data-active`
131
+ * flag on their triggers, in sync with the currently active dropdown.
132
+ * Each panel lives in the `dropdowns` slot and carries a `data-for`
133
+ * attribute that matches its trigger's id.
90
134
  */
91
135
  componentDidLoad() {
92
- this.syncDropdownPanels();
136
+ this.syncDropdownState();
93
137
  }
94
138
  componentDidUpdate() {
95
- this.syncDropdownPanels();
139
+ this.syncDropdownState();
96
140
  }
97
- syncDropdownPanels() {
98
- const panels = this.el.querySelectorAll('[slot="dropdowns"] [data-for], [data-for]');
99
- panels.forEach((panel) => {
141
+ syncDropdownState() {
142
+ this.el.querySelectorAll('[data-for]').forEach((panel) => {
100
143
  if (!this.el.contains(panel))
101
144
  return;
102
145
  panel.hidden = panel.getAttribute('data-for') !== this.activeDropdown;
103
146
  });
147
+ this.el.querySelectorAll('[data-dropdown]').forEach((trigger) => {
148
+ if (!this.el.contains(trigger))
149
+ return;
150
+ const active = trigger.getAttribute('data-dropdown') === this.activeDropdown;
151
+ if (active)
152
+ trigger.setAttribute('data-active', '');
153
+ else
154
+ trigger.removeAttribute('data-active');
155
+ trigger.setAttribute('aria-expanded', active ? 'true' : 'false');
156
+ });
104
157
  }
105
158
  /**
106
- * Handle escape key to close dropdowns
159
+ * Handle escape key to close dropdowns. If a dropdown is open, restore
160
+ * focus to the trigger that opened it so keyboard users don't lose
161
+ * their place in the tab order.
107
162
  */
108
163
  handleKeyDown(event) {
109
- if (event.key === 'Escape') {
164
+ if (event.key === 'Escape' && this.activeDropdown !== null) {
165
+ const toFocus = this.lastActiveTrigger;
110
166
  this.closeDropdown();
167
+ toFocus?.focus?.();
111
168
  }
112
169
  }
113
170
  render() {
114
171
  const hasDropdown = this.activeDropdown !== null;
115
- return (h(Host, { key: '9bd335da2d3dbae95c22d28a82747ca9a7473e1b', class: { 'has-dropdown-open': hasDropdown } }, h("div", { key: 'ce19c383cc51490b460dd10c43598f1dedf912ed', class: `navbar-spacer${this.theme ? ` theme-${this.theme}` : ''}` }), h("nav", { key: '2efdf324378327710d4cb40b8b8acfa820746a05', class: "navbar-container" }, h("div", { key: '0af404d555c0c69b4d88ac24d9a37ab845f66927', class: "navbar theme-white" }, h("div", { key: '20cd6e5215e9e326e9cb128a1f6442584580130a', class: "navbar-left" }, h("div", { key: '6f54915c28bd36a41a402e94d69484d9515ab9ae', class: "logo" }, h("slot", { key: '27a2a236703414dcd341a86e826bcf956e078896', name: "logo" }, this.showDefaultLogo && h("af-logo", { key: '3fcf375f8c2ad79cea3cf47b6cda1215f9509f6e' }))), h("button", { key: '4f4ad8f1954bac594ca120c6c2ef636491a644a5', class: "mobile-menu-toggle", onClick: this.toggleMobileMenu, "aria-label": "Toggle navigation menu", "aria-expanded": this.mobileMenuOpen ? 'true' : 'false' }, this.mobileMenuOpen ? (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M18 6L6 18M6 6l12 12", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))) : (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M3 12h18M3 6h18M3 18h18", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("div", { key: 'bb541ead48855a7ef125afb10463b3ef39b215bf', class: `nav-links ${this.mobileMenuOpen ? 'mobile-open' : ''}` }, h("slot", { key: '64760e34dbdc8e8b11840c4705639a971318414b', name: "start" }))), h("div", { key: '0b42ee972bf9325e9080374662c4b01cee912065', class: `navbar-right ${this.mobileMenuOpen ? 'mobile-open' : ''}` }, h("div", { key: '0236e0072f2cd65937afd2c1d1b98f9c9122005d', class: "nav-actions" }, h("slot", { key: '410e7bc54406db754f3478e92614f0835b3f3432', name: "end" })), h("div", { key: '6366c0e743fad848e768b4ec50a3cac4f9e1d89a', class: "nav-button" }, h("slot", { key: '62774a0c921181ebfe7c14037aaa3eb3c0bf0de1', name: "button" })))), h("div", { key: '7251669348de83743ecfa899575a7a7ca49a69a4', class: `dropdown-container ${hasDropdown ? 'is-open' : ''}` }, h("div", { key: 'f1a6cfd8624a45e7027842382ed2281455a6d224', class: "dropdown-panel theme-white" }, h("slot", { key: 'ba6317a597aded558de5a63c447dce037817def2', name: "dropdowns" })))), h("div", { key: '7eace5d5cce7939a076390b585d1b1fcc0d8e754', class: `mobile-menu-panel theme-white ${this.mobileMenuOpen ? 'is-open' : ''}` }, h("div", { key: 'c5ba7214853db2dce96cf35d4270a1e096eb9ff9', class: "mobile-button-container" }, h("slot", { key: 'c2f0f8109794c79e6af81682c5bf55b58bf6780e', name: "mobile-button" }, h("slot", { key: '3812764b1c9757d734b16b83f78242bdc3e394e2', name: "button" }))), h("div", { key: '3b9403ca3e9de2435d3d5cfa87393886639a9223', class: "mobile-menu-content" }, h("slot", { key: '3e85515b1ffdbad63ec8afe3caddab62121f789a', name: "mobile-menu" })))));
172
+ return (h(Host, { key: 'c92f2eb42ee2a82970d6d0173a2a2f06749519c4', class: { 'has-dropdown-open': hasDropdown } }, h("div", { key: 'c395ed813e5e0a2ee40005492d750c45ade71b52', class: `navbar-spacer${this.theme ? ` theme-${this.theme}` : ''}` }), h("nav", { key: '172a9748e455a0eed9d0c403eec9264174330c52', class: "navbar-container" }, h("div", { key: '1208708b75f9a1c5f48c3301e2288553f85de763', class: "navbar theme-white" }, h("div", { key: '4aeea43bcf455af574450195bdc2612728609c8f', class: "navbar-left" }, h("div", { key: '833f39108ba12057f952b10cd082c2c96a2f0f0d', class: "logo" }, h("slot", { key: 'acd75c0ce9ed06ed0ca25347c90c3048851ec247', name: "logo" }, this.showDefaultLogo && h("af-logo", { key: '03efa58fd39bc47901749d0e573313b9cb5e62ec' }))), h("button", { key: '6cbeadaf552bed6ff5ea5b237173908446a67409', class: "mobile-menu-toggle", onClick: this.toggleMobileMenu, "aria-label": "Toggle navigation menu", "aria-expanded": this.mobileMenuOpen ? 'true' : 'false' }, this.mobileMenuOpen ? (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M18 6L6 18M6 6l12 12", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))) : (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M3 12h18M3 6h18M3 18h18", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("div", { key: 'a9a2adecf1cbbc99d2f40067fcc911d9bccd7a6f', class: `nav-links ${this.mobileMenuOpen ? 'mobile-open' : ''}` }, h("slot", { key: '379e4561319583d8c06f7326b9e496f5c9e53563', name: "start" }))), h("div", { key: 'd81e54abc11534835c87c6d035bd3c6d1f532557', class: `navbar-right ${this.mobileMenuOpen ? 'mobile-open' : ''}` }, h("div", { key: 'e5e2b70ccf406e11d061cd178876ee939e028f76', class: "nav-actions" }, h("slot", { key: '3b268fd03cb76a820d7d0a17a08752eb2c92ba6e', name: "end" })), h("div", { key: 'b8320a6e68a3a63b2ea9864691a910879295f65f', class: "nav-button" }, h("slot", { key: 'c8d021843b572c57eb79162e8129bdea98503938', name: "button" })))), h("div", { key: 'a84301f02c46413d795aaa531ae7300d1a872957', class: `dropdown-container ${hasDropdown ? 'is-open' : ''}` }, h("div", { key: '86231e59e9e35b2b1d766ec51f5e72fbe0788882', class: "dropdown-panel theme-white" }, h("slot", { key: 'e57c57fc13dc9fd7194ac92063c1ddb1bd5d078f', name: "dropdowns" })))), h("div", { key: 'dd1ee04b61f0882a73e2254dee676cc94b4db63d', class: `mobile-menu-panel theme-white ${this.mobileMenuOpen ? 'is-open' : ''}` }, h("div", { key: '0fa91c6f29a2cdbd3a67788194f9dc0c7eb9d0e5', class: "mobile-button-container" }, h("slot", { key: 'f6766b2ca0001ad68ea47b3d2ba661a663612019', name: "mobile-button" }, h("slot", { key: 'efd0c11aeabf2cdc147317e98cb3429bd14ad31c', name: "button" }))), h("div", { key: '9d4d65978dfe70c22383e77fbc57c9889433b58b', class: "mobile-menu-content" }, h("slot", { key: '7be698d9e1460cc780a5df9f80b919c932af00a5', name: "mobile-menu" })))));
116
173
  }
117
174
  static get is() { return "af-navbar"; }
118
175
  static get encapsulation() { return "scoped"; }
@@ -203,6 +260,24 @@ export class AfNavbar {
203
260
  "target": undefined,
204
261
  "capture": false,
205
262
  "passive": false
263
+ }, {
264
+ "name": "mouseover",
265
+ "method": "handleHover",
266
+ "target": undefined,
267
+ "capture": false,
268
+ "passive": true
269
+ }, {
270
+ "name": "mouseleave",
271
+ "method": "handleHostLeave",
272
+ "target": undefined,
273
+ "capture": false,
274
+ "passive": true
275
+ }, {
276
+ "name": "mouseenter",
277
+ "method": "handleHostEnter",
278
+ "target": undefined,
279
+ "capture": false,
280
+ "passive": true
206
281
  }, {
207
282
  "name": "click",
208
283
  "method": "handleDocumentClick",