@affinda/wc 0.1.0 → 0.3.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 (489) hide show
  1. package/dist/affinda/af-card.entry.esm.js.map +1 -1
  2. package/dist/affinda/af-client-carousel.entry.esm.js.map +1 -1
  3. package/dist/affinda/af-divider.entry.esm.js.map +1 -1
  4. package/dist/affinda/af-feature-card.entry.esm.js.map +1 -1
  5. package/dist/affinda/af-grid.entry.esm.js.map +1 -1
  6. package/dist/affinda/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.esm.js.map +1 -1
  7. package/dist/affinda/af-hero.entry.esm.js.map +1 -0
  8. package/dist/affinda/af-illustrated-card.entry.esm.js.map +1 -1
  9. package/dist/affinda/af-in-page-banner.entry.esm.js.map +1 -1
  10. package/dist/affinda/af-inline.entry.esm.js.map +1 -1
  11. package/dist/affinda/af-numbered-stepper-item.entry.esm.js.map +1 -0
  12. package/dist/affinda/af-numbered-stepper.entry.esm.js.map +1 -0
  13. package/dist/affinda/af-section.entry.esm.js.map +1 -1
  14. package/dist/affinda/af-split-section.entry.esm.js.map +1 -1
  15. package/dist/affinda/af-stack.entry.esm.js.map +1 -1
  16. package/dist/affinda/af-stat.entry.esm.js.map +1 -0
  17. package/dist/affinda/af-stats-row.entry.esm.js.map +1 -0
  18. package/dist/affinda/af-testimonial-carousel.entry.esm.js.map +1 -1
  19. package/dist/affinda/af-testimonial.entry.esm.js.map +1 -1
  20. package/dist/affinda/af-theme-override.entry.esm.js.map +1 -1
  21. package/dist/affinda/af-typography-lockup.entry.esm.js.map +1 -1
  22. package/dist/affinda/af-video-container.entry.esm.js.map +1 -1
  23. package/dist/affinda/affinda.esm.js +1 -1
  24. package/dist/affinda/index.esm.js +1 -1
  25. package/dist/affinda/index.esm.js.map +1 -1
  26. package/dist/affinda/{p-4cf65950.entry.js → p-068ac2fb.entry.js} +2 -2
  27. package/dist/affinda/{p-f10a31cb.entry.js → p-0acadf6f.entry.js} +2 -2
  28. package/dist/affinda/{p-6e40dbdf.entry.js → p-165c413d.entry.js} +2 -2
  29. package/dist/affinda/p-165c413d.entry.js.map +1 -0
  30. package/dist/affinda/{p-e1e98cd6.entry.js → p-1b4b0c88.entry.js} +2 -2
  31. package/dist/affinda/p-2237e652.entry.js +2 -0
  32. package/dist/affinda/{p-56fe6e6e.entry.js.map → p-2237e652.entry.js.map} +1 -1
  33. package/dist/affinda/p-2526604b.entry.js +2 -0
  34. package/dist/affinda/p-2526604b.entry.js.map +1 -0
  35. package/dist/affinda/{p-8c4e3047.entry.js → p-256970e3.entry.js} +2 -2
  36. package/dist/affinda/p-32d62fbb.entry.js +2 -0
  37. package/dist/affinda/{p-3ee906de.entry.js → p-342b08e5.entry.js} +2 -2
  38. package/dist/affinda/{p-a84ae4a5.entry.js → p-365a75e2.entry.js} +2 -2
  39. package/dist/affinda/p-3ed408f6.entry.js +2 -0
  40. package/dist/affinda/{p-edb1a010.entry.js → p-4058a1eb.entry.js} +2 -2
  41. package/dist/affinda/{p-94f51238.entry.js → p-41bbb218.entry.js} +2 -2
  42. package/dist/affinda/p-436673bb.entry.js +2 -0
  43. package/dist/affinda/p-436673bb.entry.js.map +1 -0
  44. package/dist/affinda/{p-c8c4783c.entry.js → p-44d960ca.entry.js} +2 -2
  45. package/dist/affinda/{p-e1cbe95a.entry.js → p-4a9b192b.entry.js} +2 -2
  46. package/dist/affinda/p-4eeeb8a1.entry.js +2 -0
  47. package/dist/affinda/{p-49521f2e.entry.js.map → p-4eeeb8a1.entry.js.map} +1 -1
  48. package/dist/affinda/{p-b2633acb.entry.js → p-5c163c5b.entry.js} +2 -2
  49. package/dist/affinda/{p-48aadea9.entry.js → p-5e5e7d75.entry.js} +2 -2
  50. package/dist/affinda/{p-da2d84f7.entry.js → p-61a6b43d.entry.js} +2 -2
  51. package/dist/affinda/{p-ea42c40b.entry.js → p-631d141c.entry.js} +2 -2
  52. package/dist/affinda/{p-6038a213.entry.js → p-6475796d.entry.js} +2 -2
  53. package/dist/affinda/{p-50a67fb6.entry.js → p-65dd559a.entry.js} +2 -2
  54. package/dist/affinda/p-6756aa66.entry.js +2 -0
  55. package/dist/affinda/p-6e181b2b.entry.js +2 -0
  56. package/dist/affinda/{p-0201c8bd.entry.js → p-6ea474a3.entry.js} +2 -2
  57. package/dist/affinda/{p-a71d528d.entry.js → p-7111051c.entry.js} +2 -2
  58. package/dist/affinda/p-7d3cdda1.entry.js +2 -0
  59. package/dist/affinda/p-7d3cdda1.entry.js.map +1 -0
  60. package/dist/affinda/{p-0137e7a5.entry.js → p-827f3050.entry.js} +2 -2
  61. package/dist/affinda/{p-78518e6c.entry.js → p-83bb96cc.entry.js} +2 -2
  62. package/dist/affinda/p-85cc55bb.entry.js +2 -0
  63. package/dist/affinda/p-85cc55bb.entry.js.map +1 -0
  64. package/dist/affinda/{p-2e6192eb.entry.js → p-9480f00d.entry.js} +2 -2
  65. package/dist/affinda/{p-e055407b.entry.js → p-9ce0adc2.entry.js} +2 -2
  66. package/dist/affinda/{p-81706709.entry.js → p-a02d6192.entry.js} +2 -2
  67. package/dist/affinda/p-a1e80460.entry.js +2 -0
  68. package/dist/affinda/{p-ef5857cf.entry.js.map → p-a1e80460.entry.js.map} +1 -1
  69. package/dist/affinda/{p-ad41f905.entry.js → p-a25d3257.entry.js} +2 -2
  70. package/dist/affinda/{p-5f6a5741.entry.js → p-a8d75eb1.entry.js} +2 -2
  71. package/dist/affinda/{p-5265e82e.entry.js → p-ae430873.entry.js} +2 -2
  72. package/dist/affinda/{p-081cc890.entry.js → p-b39eea31.entry.js} +2 -2
  73. package/dist/affinda/{p-4c4406bf.entry.js → p-b9ec0e75.entry.js} +2 -2
  74. package/dist/affinda/{p-feb3d03f.entry.js → p-bbfc9df6.entry.js} +2 -2
  75. package/dist/affinda/{p-6c58b283.entry.js → p-bed7d9a1.entry.js} +2 -2
  76. package/dist/affinda/{p-4b154e23.entry.js → p-d362651c.entry.js} +2 -2
  77. package/dist/affinda/p-d362651c.entry.js.map +1 -0
  78. package/dist/affinda/{p-3a0e45c3.entry.js → p-d7d82986.entry.js} +2 -2
  79. package/dist/affinda/p-dabd389a.entry.js +2 -0
  80. package/dist/affinda/p-dabd389a.entry.js.map +1 -0
  81. package/dist/affinda/{p-a35029eb.entry.js → p-dcc89b4c.entry.js} +2 -2
  82. package/dist/affinda/{p-f9315f9e.entry.js → p-e07e27f1.entry.js} +2 -2
  83. package/dist/affinda/{p-dbe7ab88.entry.js → p-eeda78ea.entry.js} +2 -2
  84. package/dist/affinda/{p-b2b28366.entry.js → p-f19cb091.entry.js} +2 -2
  85. package/dist/cjs/af-accordion-item.cjs.entry.js +1 -1
  86. package/dist/cjs/af-accordion.cjs.entry.js +1 -1
  87. package/dist/cjs/af-card.cjs.entry.js +1 -1
  88. package/dist/cjs/af-card.entry.cjs.js.map +1 -1
  89. package/dist/cjs/af-center.cjs.entry.js +1 -1
  90. package/dist/cjs/af-client-carousel.cjs.entry.js +1 -1
  91. package/dist/cjs/af-client-carousel.entry.cjs.js.map +1 -1
  92. package/dist/cjs/af-contact-item.cjs.entry.js +1 -1
  93. package/dist/cjs/af-divider.cjs.entry.js +1 -1
  94. package/dist/cjs/af-divider.entry.cjs.js.map +1 -1
  95. package/dist/cjs/af-feature-accordion.cjs.entry.js +2 -2
  96. package/dist/cjs/af-feature-card.entry.cjs.js.map +1 -1
  97. package/dist/cjs/af-feature-grid.cjs.entry.js +1 -1
  98. package/dist/cjs/af-footer-column.cjs.entry.js +1 -1
  99. package/dist/cjs/af-footer-link.cjs.entry.js +1 -1
  100. package/dist/cjs/af-footer.cjs.entry.js +1 -1
  101. package/dist/cjs/af-grid.cjs.entry.js +2 -2
  102. package/dist/cjs/af-grid.entry.cjs.js.map +1 -1
  103. package/dist/cjs/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.cjs.js.map +1 -1
  104. package/dist/cjs/af-heading_5.cjs.entry.js +1 -1
  105. package/dist/cjs/af-hero.cjs.entry.js +94 -0
  106. package/dist/cjs/af-hero.entry.cjs.js.map +1 -0
  107. package/dist/cjs/af-icon-box.cjs.entry.js +1 -1
  108. package/dist/cjs/af-icon-text.cjs.entry.js +1 -1
  109. package/dist/cjs/af-illustrated-card.cjs.entry.js +1 -1
  110. package/dist/cjs/af-illustrated-card.entry.cjs.js.map +1 -1
  111. package/dist/cjs/af-image.cjs.entry.js +1 -1
  112. package/dist/cjs/af-in-page-banner.cjs.entry.js +1 -1
  113. package/dist/cjs/af-in-page-banner.entry.cjs.js.map +1 -1
  114. package/dist/cjs/af-inline.cjs.entry.js +1 -1
  115. package/dist/cjs/af-inline.entry.cjs.js.map +1 -1
  116. package/dist/cjs/af-logo-well.cjs.entry.js +1 -1
  117. package/dist/cjs/af-nav-accordion-item.cjs.entry.js +2 -2
  118. package/dist/cjs/af-nav-accordion.cjs.entry.js +1 -1
  119. package/dist/cjs/af-nav-menu-nest.cjs.entry.js +1 -1
  120. package/dist/cjs/af-nav-menu.cjs.entry.js +1 -1
  121. package/dist/cjs/af-number-badge.cjs.entry.js +1 -1
  122. package/dist/cjs/af-numbered-stepper-item.cjs.entry.js +25 -0
  123. package/dist/cjs/af-numbered-stepper-item.entry.cjs.js.map +1 -0
  124. package/dist/cjs/af-numbered-stepper.cjs.entry.js +36 -0
  125. package/dist/cjs/af-numbered-stepper.entry.cjs.js.map +1 -0
  126. package/dist/cjs/af-paperclip-decoration.cjs.entry.js +1 -1
  127. package/dist/cjs/af-progress-line.cjs.entry.js +2 -2
  128. package/dist/cjs/af-section.cjs.entry.js +2 -2
  129. package/dist/cjs/af-section.entry.cjs.js.map +1 -1
  130. package/dist/cjs/af-show.cjs.entry.js +1 -1
  131. package/dist/cjs/af-social-link.cjs.entry.js +1 -1
  132. package/dist/cjs/af-spacer.cjs.entry.js +1 -1
  133. package/dist/cjs/af-split-section.cjs.entry.js +2 -2
  134. package/dist/cjs/af-split-section.entry.cjs.js.map +1 -1
  135. package/dist/cjs/af-stack.cjs.entry.js +1 -1
  136. package/dist/cjs/af-stack.entry.cjs.js.map +1 -1
  137. package/dist/cjs/af-stat.cjs.entry.js +18 -0
  138. package/dist/cjs/af-stat.entry.cjs.js.map +1 -0
  139. package/dist/cjs/af-stats-row.cjs.entry.js +18 -0
  140. package/dist/cjs/af-stats-row.entry.cjs.js.map +1 -0
  141. package/dist/cjs/af-stepper-step.cjs.entry.js +1 -1
  142. package/dist/cjs/af-stepper.cjs.entry.js +1 -1
  143. package/dist/cjs/af-testimonial-carousel.cjs.entry.js +1 -1
  144. package/dist/cjs/af-testimonial-carousel.entry.cjs.js.map +1 -1
  145. package/dist/cjs/af-testimonial-stat.cjs.entry.js +1 -1
  146. package/dist/cjs/af-testimonial.cjs.entry.js +6 -6
  147. package/dist/cjs/af-testimonial.entry.cjs.js.map +1 -1
  148. package/dist/cjs/af-text-image-nest.cjs.entry.js +1 -1
  149. package/dist/cjs/af-theme-override.cjs.entry.js +1 -1
  150. package/dist/cjs/af-theme-override.entry.cjs.js.map +1 -1
  151. package/dist/cjs/af-typography-lockup.cjs.entry.js +1 -1
  152. package/dist/cjs/af-typography-lockup.entry.cjs.js.map +1 -1
  153. package/dist/cjs/af-video-container.cjs.entry.js +3 -3
  154. package/dist/cjs/af-video-container.entry.cjs.js.map +1 -1
  155. package/dist/cjs/af-visually-hidden.cjs.entry.js +1 -1
  156. package/dist/cjs/affinda.cjs.js +1 -1
  157. package/dist/cjs/index.cjs.js +2 -0
  158. package/dist/cjs/index.cjs.js.map +1 -1
  159. package/dist/cjs/loader.cjs.js +1 -1
  160. package/dist/collection/collection-manifest.json +5 -0
  161. package/dist/collection/components/af-accordion/af-accordion.js +1 -1
  162. package/dist/collection/components/af-accordion-item/af-accordion-item.js +1 -1
  163. package/dist/collection/components/af-card/af-card.js +9 -3
  164. package/dist/collection/components/af-card/af-card.js.map +1 -1
  165. package/dist/collection/components/af-center/af-center.js +1 -1
  166. package/dist/collection/components/af-client-carousel/af-client-carousel.js +4 -3
  167. package/dist/collection/components/af-client-carousel/af-client-carousel.js.map +1 -1
  168. package/dist/collection/components/af-contact-item/af-contact-item.js +1 -1
  169. package/dist/collection/components/af-divider/af-divider.js +1 -1
  170. package/dist/collection/components/af-divider/af-divider.js.map +1 -1
  171. package/dist/collection/components/af-feature-accordion/af-feature-accordion.js +2 -2
  172. package/dist/collection/components/af-feature-card/af-feature-card.js +8 -2
  173. package/dist/collection/components/af-feature-card/af-feature-card.js.map +1 -1
  174. package/dist/collection/components/af-feature-grid/af-feature-grid.js +1 -1
  175. package/dist/collection/components/af-footer/af-footer.js +1 -1
  176. package/dist/collection/components/af-footer-column/af-footer-column.js +1 -1
  177. package/dist/collection/components/af-footer-link/af-footer-link.js +1 -1
  178. package/dist/collection/components/af-grid/af-grid.js +5 -4
  179. package/dist/collection/components/af-grid/af-grid.js.map +1 -1
  180. package/dist/collection/components/af-hero/af-hero.css +282 -0
  181. package/dist/collection/components/af-hero/af-hero.js +314 -0
  182. package/dist/collection/components/af-hero/af-hero.js.map +1 -0
  183. package/dist/collection/components/af-icon-box/af-icon-box.js +1 -1
  184. package/dist/collection/components/af-icon-text/af-icon-text.js +1 -1
  185. package/dist/collection/components/af-illustrated-card/af-illustrated-card.js +9 -3
  186. package/dist/collection/components/af-illustrated-card/af-illustrated-card.js.map +1 -1
  187. package/dist/collection/components/af-image/af-image.js +1 -1
  188. package/dist/collection/components/af-in-page-banner/af-in-page-banner.js +7 -6
  189. package/dist/collection/components/af-in-page-banner/af-in-page-banner.js.map +1 -1
  190. package/dist/collection/components/af-inline/af-inline.js +4 -3
  191. package/dist/collection/components/af-inline/af-inline.js.map +1 -1
  192. package/dist/collection/components/af-logo-well/af-logo-well.js +1 -1
  193. package/dist/collection/components/af-nav-accordion/af-nav-accordion.js +1 -1
  194. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.js +2 -2
  195. package/dist/collection/components/af-nav-menu/af-nav-menu.js +1 -1
  196. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.js +1 -1
  197. package/dist/collection/components/af-navbar/af-navbar.js +10 -4
  198. package/dist/collection/components/af-navbar/af-navbar.js.map +1 -1
  199. package/dist/collection/components/af-number-badge/af-number-badge.js +1 -1
  200. package/dist/collection/components/af-numbered-stepper/af-numbered-stepper.css +30 -0
  201. package/dist/collection/components/af-numbered-stepper/af-numbered-stepper.js +92 -0
  202. package/dist/collection/components/af-numbered-stepper/af-numbered-stepper.js.map +1 -0
  203. package/dist/collection/components/af-numbered-stepper-item/af-numbered-stepper-item.css +113 -0
  204. package/dist/collection/components/af-numbered-stepper-item/af-numbered-stepper-item.js +66 -0
  205. package/dist/collection/components/af-numbered-stepper-item/af-numbered-stepper-item.js.map +1 -0
  206. package/dist/collection/components/af-paperclip-decoration/af-paperclip-decoration.js +1 -1
  207. package/dist/collection/components/af-progress-line/af-progress-line.js +2 -2
  208. package/dist/collection/components/af-section/af-section.js +18 -6
  209. package/dist/collection/components/af-section/af-section.js.map +1 -1
  210. package/dist/collection/components/af-show/af-show.js +1 -1
  211. package/dist/collection/components/af-social-link/af-social-link.js +1 -1
  212. package/dist/collection/components/af-spacer/af-spacer.js +1 -1
  213. package/dist/collection/components/af-split-section/af-split-section.js +16 -8
  214. package/dist/collection/components/af-split-section/af-split-section.js.map +1 -1
  215. package/dist/collection/components/af-stack/af-stack.js +4 -3
  216. package/dist/collection/components/af-stack/af-stack.js.map +1 -1
  217. package/dist/collection/components/af-stat/af-stat.css +25 -0
  218. package/dist/collection/components/af-stat/af-stat.js +69 -0
  219. package/dist/collection/components/af-stat/af-stat.js.map +1 -0
  220. package/dist/collection/components/af-stats-row/af-stats-row.css +32 -0
  221. package/dist/collection/components/af-stats-row/af-stats-row.js +33 -0
  222. package/dist/collection/components/af-stats-row/af-stats-row.js.map +1 -0
  223. package/dist/collection/components/af-stepper/af-stepper.js +1 -1
  224. package/dist/collection/components/af-stepper-step/af-stepper-step.js +1 -1
  225. package/dist/collection/components/af-testimonial/af-testimonial.js +8 -8
  226. package/dist/collection/components/af-testimonial/af-testimonial.js.map +1 -1
  227. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js +3 -3
  228. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js.map +1 -1
  229. package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js +1 -1
  230. package/dist/collection/components/af-text-image-nest/af-text-image-nest.js +1 -1
  231. package/dist/collection/components/af-theme-override/af-theme-override.js +9 -3
  232. package/dist/collection/components/af-theme-override/af-theme-override.js.map +1 -1
  233. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js +9 -3
  234. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js.map +1 -1
  235. package/dist/collection/components/af-video-container/af-video-container.js +4 -4
  236. package/dist/collection/components/af-video-container/af-video-container.js.map +1 -1
  237. package/dist/collection/components/af-visually-hidden/af-visually-hidden.js +1 -1
  238. package/dist/collection/components.js +1 -0
  239. package/dist/collection/components.js.map +1 -1
  240. package/dist/collection/types.js +2 -0
  241. package/dist/collection/types.js.map +1 -0
  242. package/dist/components/af-accordion-item.js +1 -1
  243. package/dist/components/af-accordion.js +1 -1
  244. package/dist/components/af-card.js +1 -1
  245. package/dist/components/af-center.js +1 -1
  246. package/dist/components/af-client-carousel.js +1 -1
  247. package/dist/components/af-client-carousel.js.map +1 -1
  248. package/dist/components/af-contact-item.js +1 -1
  249. package/dist/components/af-divider.js +1 -1
  250. package/dist/components/af-divider.js.map +1 -1
  251. package/dist/components/af-feature-accordion.js +2 -2
  252. package/dist/components/af-feature-card.js +1 -1
  253. package/dist/components/af-feature-grid.js +2 -2
  254. package/dist/components/af-footer-column.js +1 -1
  255. package/dist/components/af-footer-link.js +1 -1
  256. package/dist/components/af-footer.js +1 -1
  257. package/dist/components/af-grid-callout.js +1 -1
  258. package/dist/components/af-grid.js +2 -2
  259. package/dist/components/af-grid.js.map +1 -1
  260. package/dist/components/af-hero.d.ts +11 -0
  261. package/dist/components/af-hero.js +9 -0
  262. package/dist/components/af-hero.js.map +1 -0
  263. package/dist/components/af-icon-box.js +1 -1
  264. package/dist/components/af-icon-text.js +3 -3
  265. package/dist/components/af-illustrated-card.js +1 -1
  266. package/dist/components/af-image.js +1 -1
  267. package/dist/components/af-in-page-banner.js +1 -1
  268. package/dist/components/af-in-page-banner.js.map +1 -1
  269. package/dist/components/af-inline.js +1 -1
  270. package/dist/components/af-inline.js.map +1 -1
  271. package/dist/components/af-logo-well.js +1 -1
  272. package/dist/components/af-nav-accordion-item.js +2 -2
  273. package/dist/components/af-nav-accordion.js +1 -1
  274. package/dist/components/af-nav-menu-nest.js +1 -1
  275. package/dist/components/af-nav-menu.js +1 -1
  276. package/dist/components/af-navbar.js +1 -1
  277. package/dist/components/af-number-badge.js +1 -58
  278. package/dist/components/af-number-badge.js.map +1 -1
  279. package/dist/components/af-numbered-stepper-item.d.ts +11 -0
  280. package/dist/components/af-numbered-stepper-item.js +58 -0
  281. package/dist/components/af-numbered-stepper-item.js.map +1 -0
  282. package/dist/components/af-numbered-stepper.d.ts +11 -0
  283. package/dist/components/af-numbered-stepper.js +57 -0
  284. package/dist/components/af-numbered-stepper.js.map +1 -0
  285. package/dist/components/af-paperclip-decoration.js +1 -1
  286. package/dist/components/af-progress-line.js +1 -1
  287. package/dist/components/af-section.js +1 -46
  288. package/dist/components/af-section.js.map +1 -1
  289. package/dist/components/af-show.js +1 -1
  290. package/dist/components/af-social-link.js +1 -1
  291. package/dist/components/af-spacer.js +1 -1
  292. package/dist/components/af-split-section.js +2 -2
  293. package/dist/components/af-split-section.js.map +1 -1
  294. package/dist/components/af-stack.js +1 -1
  295. package/dist/components/af-stack.js.map +1 -1
  296. package/dist/components/af-stat.d.ts +11 -0
  297. package/dist/components/af-stat.js +53 -0
  298. package/dist/components/af-stat.js.map +1 -0
  299. package/dist/components/af-stats-row.d.ts +11 -0
  300. package/dist/components/af-stats-row.js +37 -0
  301. package/dist/components/af-stats-row.js.map +1 -0
  302. package/dist/components/af-stepper-step.js +1 -1
  303. package/dist/components/af-stepper.js +1 -1
  304. package/dist/components/af-testimonial-carousel.js +3 -3
  305. package/dist/components/af-testimonial-carousel.js.map +1 -1
  306. package/dist/components/af-testimonial-stat.js +1 -1
  307. package/dist/components/af-testimonial.js +6 -6
  308. package/dist/components/af-testimonial.js.map +1 -1
  309. package/dist/components/af-text-image-nest.js +1 -1
  310. package/dist/components/af-text-image.js +1 -1
  311. package/dist/components/af-theme-override.js +1 -1
  312. package/dist/components/af-theme-override.js.map +1 -1
  313. package/dist/components/af-typography-lockup.js +1 -1
  314. package/dist/components/af-video-container.js +3 -3
  315. package/dist/components/af-video-container.js.map +1 -1
  316. package/dist/components/af-visually-hidden.js +1 -1
  317. package/dist/components/index.js +5 -4
  318. package/dist/components/index.js.map +1 -1
  319. package/dist/components/{p-C6-JATRR.js → p-3Gzh4deR.js} +5 -5
  320. package/dist/components/p-3Gzh4deR.js.map +1 -0
  321. package/dist/components/{p-DO9J0XTo.js → p-BXmiPS9x.js} +4 -4
  322. package/dist/components/{p-DO9J0XTo.js.map → p-BXmiPS9x.js.map} +1 -1
  323. package/dist/components/{p-CKLkuSI3.js → p-CJxqw006.js} +3 -3
  324. package/dist/components/{p-CKLkuSI3.js.map → p-CJxqw006.js.map} +1 -1
  325. package/dist/components/p-CRnEuh5f.js +136 -0
  326. package/dist/components/p-CRnEuh5f.js.map +1 -0
  327. package/dist/components/{p-DNeNJhuM.js → p-ClZAZSzR.js} +3 -3
  328. package/dist/components/{p-DNeNJhuM.js.map → p-ClZAZSzR.js.map} +1 -1
  329. package/dist/components/{p-HMlLQQwp.js → p-DqJRvNOl.js} +3 -3
  330. package/dist/components/{p-HMlLQQwp.js.map → p-DqJRvNOl.js.map} +1 -1
  331. package/dist/components/{p-Bh6Cfgtj.js → p-LRPXnaSx.js} +3 -3
  332. package/dist/components/{p-Bh6Cfgtj.js.map → p-LRPXnaSx.js.map} +1 -1
  333. package/dist/components/p-O26uYJSV.js +51 -0
  334. package/dist/components/p-O26uYJSV.js.map +1 -0
  335. package/dist/components/p-QoDae21y.js +63 -0
  336. package/dist/components/p-QoDae21y.js.map +1 -0
  337. package/dist/components/{p-CNzQtskW.js → p-mbl86-w6.js} +4 -4
  338. package/dist/components/p-mbl86-w6.js.map +1 -0
  339. package/dist/components/{p-i_6TLQJ5.js → p-nA3Uvhwb.js} +3 -3
  340. package/dist/components/{p-i_6TLQJ5.js.map → p-nA3Uvhwb.js.map} +1 -1
  341. package/dist/esm/af-accordion-item.entry.js +1 -1
  342. package/dist/esm/af-accordion.entry.js +1 -1
  343. package/dist/esm/af-card.entry.js +1 -1
  344. package/dist/esm/af-card.entry.js.map +1 -1
  345. package/dist/esm/af-center.entry.js +1 -1
  346. package/dist/esm/af-client-carousel.entry.js +1 -1
  347. package/dist/esm/af-client-carousel.entry.js.map +1 -1
  348. package/dist/esm/af-contact-item.entry.js +1 -1
  349. package/dist/esm/af-divider.entry.js +1 -1
  350. package/dist/esm/af-divider.entry.js.map +1 -1
  351. package/dist/esm/af-feature-accordion.entry.js +2 -2
  352. package/dist/esm/af-feature-card.entry.js.map +1 -1
  353. package/dist/esm/af-feature-grid.entry.js +1 -1
  354. package/dist/esm/af-footer-column.entry.js +1 -1
  355. package/dist/esm/af-footer-link.entry.js +1 -1
  356. package/dist/esm/af-footer.entry.js +1 -1
  357. package/dist/esm/af-grid.entry.js +2 -2
  358. package/dist/esm/af-grid.entry.js.map +1 -1
  359. package/dist/esm/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js.map +1 -1
  360. package/dist/esm/af-heading_5.entry.js +1 -1
  361. package/dist/esm/af-hero.entry.js +92 -0
  362. package/dist/esm/af-hero.entry.js.map +1 -0
  363. package/dist/esm/af-icon-box.entry.js +1 -1
  364. package/dist/esm/af-icon-text.entry.js +1 -1
  365. package/dist/esm/af-illustrated-card.entry.js +1 -1
  366. package/dist/esm/af-illustrated-card.entry.js.map +1 -1
  367. package/dist/esm/af-image.entry.js +1 -1
  368. package/dist/esm/af-in-page-banner.entry.js +1 -1
  369. package/dist/esm/af-in-page-banner.entry.js.map +1 -1
  370. package/dist/esm/af-inline.entry.js +1 -1
  371. package/dist/esm/af-inline.entry.js.map +1 -1
  372. package/dist/esm/af-logo-well.entry.js +1 -1
  373. package/dist/esm/af-nav-accordion-item.entry.js +2 -2
  374. package/dist/esm/af-nav-accordion.entry.js +1 -1
  375. package/dist/esm/af-nav-menu-nest.entry.js +1 -1
  376. package/dist/esm/af-nav-menu.entry.js +1 -1
  377. package/dist/esm/af-number-badge.entry.js +1 -1
  378. package/dist/esm/af-numbered-stepper-item.entry.js +23 -0
  379. package/dist/esm/af-numbered-stepper-item.entry.js.map +1 -0
  380. package/dist/esm/af-numbered-stepper.entry.js +34 -0
  381. package/dist/esm/af-numbered-stepper.entry.js.map +1 -0
  382. package/dist/esm/af-paperclip-decoration.entry.js +1 -1
  383. package/dist/esm/af-progress-line.entry.js +2 -2
  384. package/dist/esm/af-section.entry.js +2 -2
  385. package/dist/esm/af-section.entry.js.map +1 -1
  386. package/dist/esm/af-show.entry.js +1 -1
  387. package/dist/esm/af-social-link.entry.js +1 -1
  388. package/dist/esm/af-spacer.entry.js +1 -1
  389. package/dist/esm/af-split-section.entry.js +2 -2
  390. package/dist/esm/af-split-section.entry.js.map +1 -1
  391. package/dist/esm/af-stack.entry.js +1 -1
  392. package/dist/esm/af-stack.entry.js.map +1 -1
  393. package/dist/esm/af-stat.entry.js +16 -0
  394. package/dist/esm/af-stat.entry.js.map +1 -0
  395. package/dist/esm/af-stats-row.entry.js +16 -0
  396. package/dist/esm/af-stats-row.entry.js.map +1 -0
  397. package/dist/esm/af-stepper-step.entry.js +1 -1
  398. package/dist/esm/af-stepper.entry.js +1 -1
  399. package/dist/esm/af-testimonial-carousel.entry.js +1 -1
  400. package/dist/esm/af-testimonial-carousel.entry.js.map +1 -1
  401. package/dist/esm/af-testimonial-stat.entry.js +1 -1
  402. package/dist/esm/af-testimonial.entry.js +6 -6
  403. package/dist/esm/af-testimonial.entry.js.map +1 -1
  404. package/dist/esm/af-text-image-nest.entry.js +1 -1
  405. package/dist/esm/af-theme-override.entry.js +1 -1
  406. package/dist/esm/af-theme-override.entry.js.map +1 -1
  407. package/dist/esm/af-typography-lockup.entry.js +1 -1
  408. package/dist/esm/af-typography-lockup.entry.js.map +1 -1
  409. package/dist/esm/af-video-container.entry.js +3 -3
  410. package/dist/esm/af-video-container.entry.js.map +1 -1
  411. package/dist/esm/af-visually-hidden.entry.js +1 -1
  412. package/dist/esm/affinda.js +1 -1
  413. package/dist/esm/index.js +1 -0
  414. package/dist/esm/index.js.map +1 -1
  415. package/dist/esm/loader.js +1 -1
  416. package/dist/types/components/af-card/af-card.d.ts +2 -1
  417. package/dist/types/components/af-client-carousel/af-client-carousel.d.ts +1 -1
  418. package/dist/types/components/af-divider/af-divider.d.ts +2 -1
  419. package/dist/types/components/af-feature-card/af-feature-card.d.ts +2 -1
  420. package/dist/types/components/af-grid/af-grid.d.ts +1 -1
  421. package/dist/types/components/af-hero/af-hero.d.ts +93 -0
  422. package/dist/types/components/af-illustrated-card/af-illustrated-card.d.ts +2 -1
  423. package/dist/types/components/af-in-page-banner/af-in-page-banner.d.ts +2 -3
  424. package/dist/types/components/af-inline/af-inline.d.ts +1 -1
  425. package/dist/types/components/af-navbar/af-navbar.d.ts +2 -1
  426. package/dist/types/components/af-numbered-stepper/af-numbered-stepper.d.ts +38 -0
  427. package/dist/types/components/af-numbered-stepper-item/af-numbered-stepper-item.d.ts +22 -0
  428. package/dist/types/components/af-section/af-section.d.ts +3 -2
  429. package/dist/types/components/af-split-section/af-split-section.d.ts +2 -3
  430. package/dist/types/components/af-stack/af-stack.d.ts +1 -1
  431. package/dist/types/components/af-stat/af-stat.d.ts +15 -0
  432. package/dist/types/components/af-stats-row/af-stats-row.d.ts +17 -0
  433. package/dist/types/components/af-testimonial/af-testimonial.d.ts +2 -2
  434. package/dist/types/components/af-theme-override/af-theme-override.d.ts +2 -1
  435. package/dist/types/components/af-typography-lockup/af-typography-lockup.d.ts +2 -1
  436. package/dist/types/components/af-video-container/af-video-container.d.ts +1 -1
  437. package/dist/types/components.d.ts +575 -26
  438. package/dist/types/types.d.ts +57 -0
  439. package/package.json +2 -2
  440. package/dist/affinda/p-083fc528.entry.js +0 -2
  441. package/dist/affinda/p-0e469ad2.entry.js +0 -2
  442. package/dist/affinda/p-41643147.entry.js +0 -2
  443. package/dist/affinda/p-49521f2e.entry.js +0 -2
  444. package/dist/affinda/p-4b154e23.entry.js.map +0 -1
  445. package/dist/affinda/p-56fe6e6e.entry.js +0 -2
  446. package/dist/affinda/p-6e40dbdf.entry.js.map +0 -1
  447. package/dist/affinda/p-a6eda8af.entry.js +0 -2
  448. package/dist/affinda/p-ef5857cf.entry.js +0 -2
  449. package/dist/components/p-C6-JATRR.js.map +0 -1
  450. package/dist/components/p-CNzQtskW.js.map +0 -1
  451. /package/dist/affinda/{p-4cf65950.entry.js.map → p-068ac2fb.entry.js.map} +0 -0
  452. /package/dist/affinda/{p-f10a31cb.entry.js.map → p-0acadf6f.entry.js.map} +0 -0
  453. /package/dist/affinda/{p-e1e98cd6.entry.js.map → p-1b4b0c88.entry.js.map} +0 -0
  454. /package/dist/affinda/{p-8c4e3047.entry.js.map → p-256970e3.entry.js.map} +0 -0
  455. /package/dist/affinda/{p-a6eda8af.entry.js.map → p-32d62fbb.entry.js.map} +0 -0
  456. /package/dist/affinda/{p-3ee906de.entry.js.map → p-342b08e5.entry.js.map} +0 -0
  457. /package/dist/affinda/{p-a84ae4a5.entry.js.map → p-365a75e2.entry.js.map} +0 -0
  458. /package/dist/affinda/{p-41643147.entry.js.map → p-3ed408f6.entry.js.map} +0 -0
  459. /package/dist/affinda/{p-edb1a010.entry.js.map → p-4058a1eb.entry.js.map} +0 -0
  460. /package/dist/affinda/{p-94f51238.entry.js.map → p-41bbb218.entry.js.map} +0 -0
  461. /package/dist/affinda/{p-c8c4783c.entry.js.map → p-44d960ca.entry.js.map} +0 -0
  462. /package/dist/affinda/{p-e1cbe95a.entry.js.map → p-4a9b192b.entry.js.map} +0 -0
  463. /package/dist/affinda/{p-b2633acb.entry.js.map → p-5c163c5b.entry.js.map} +0 -0
  464. /package/dist/affinda/{p-48aadea9.entry.js.map → p-5e5e7d75.entry.js.map} +0 -0
  465. /package/dist/affinda/{p-da2d84f7.entry.js.map → p-61a6b43d.entry.js.map} +0 -0
  466. /package/dist/affinda/{p-ea42c40b.entry.js.map → p-631d141c.entry.js.map} +0 -0
  467. /package/dist/affinda/{p-6038a213.entry.js.map → p-6475796d.entry.js.map} +0 -0
  468. /package/dist/affinda/{p-50a67fb6.entry.js.map → p-65dd559a.entry.js.map} +0 -0
  469. /package/dist/affinda/{p-083fc528.entry.js.map → p-6756aa66.entry.js.map} +0 -0
  470. /package/dist/affinda/{p-0e469ad2.entry.js.map → p-6e181b2b.entry.js.map} +0 -0
  471. /package/dist/affinda/{p-0201c8bd.entry.js.map → p-6ea474a3.entry.js.map} +0 -0
  472. /package/dist/affinda/{p-a71d528d.entry.js.map → p-7111051c.entry.js.map} +0 -0
  473. /package/dist/affinda/{p-0137e7a5.entry.js.map → p-827f3050.entry.js.map} +0 -0
  474. /package/dist/affinda/{p-78518e6c.entry.js.map → p-83bb96cc.entry.js.map} +0 -0
  475. /package/dist/affinda/{p-2e6192eb.entry.js.map → p-9480f00d.entry.js.map} +0 -0
  476. /package/dist/affinda/{p-e055407b.entry.js.map → p-9ce0adc2.entry.js.map} +0 -0
  477. /package/dist/affinda/{p-81706709.entry.js.map → p-a02d6192.entry.js.map} +0 -0
  478. /package/dist/affinda/{p-ad41f905.entry.js.map → p-a25d3257.entry.js.map} +0 -0
  479. /package/dist/affinda/{p-5f6a5741.entry.js.map → p-a8d75eb1.entry.js.map} +0 -0
  480. /package/dist/affinda/{p-5265e82e.entry.js.map → p-ae430873.entry.js.map} +0 -0
  481. /package/dist/affinda/{p-081cc890.entry.js.map → p-b39eea31.entry.js.map} +0 -0
  482. /package/dist/affinda/{p-4c4406bf.entry.js.map → p-b9ec0e75.entry.js.map} +0 -0
  483. /package/dist/affinda/{p-feb3d03f.entry.js.map → p-bbfc9df6.entry.js.map} +0 -0
  484. /package/dist/affinda/{p-6c58b283.entry.js.map → p-bed7d9a1.entry.js.map} +0 -0
  485. /package/dist/affinda/{p-3a0e45c3.entry.js.map → p-d7d82986.entry.js.map} +0 -0
  486. /package/dist/affinda/{p-a35029eb.entry.js.map → p-dcc89b4c.entry.js.map} +0 -0
  487. /package/dist/affinda/{p-f9315f9e.entry.js.map → p-e07e27f1.entry.js.map} +0 -0
  488. /package/dist/affinda/{p-dbe7ab88.entry.js.map → p-eeda78ea.entry.js.map} +0 -0
  489. /package/dist/affinda/{p-b2b28366.entry.js.map → p-f19cb091.entry.js.map} +0 -0
@@ -33,7 +33,7 @@ export class AfCenter {
33
33
  if (this.minHeight) {
34
34
  style.minHeight = this.minHeight;
35
35
  }
36
- return (h(Host, { key: 'fc1bcaef9b11c0c5f69e9ef95d58adf61b4f244a', style: style }, h("slot", { key: '09dc75e0a80760d56e370ad0b52231f4143549e8' })));
36
+ return (h(Host, { key: '0b93a207374e7665f06187ae2f8837f251ea1312', style: style }, h("slot", { key: 'c5d0fb0f3a37effb8e8cd466bd13d86c88958229' })));
37
37
  }
38
38
  static get is() { return "af-center"; }
39
39
  static get encapsulation() { return "shadow"; }
@@ -78,7 +78,7 @@ export class AfClientCarousel {
78
78
  // Direction classes are left on in static mode too — the `.mode-static`
79
79
  // CSS rule overrides `animation` to `none`, so the direction is a no-op
80
80
  // visually but keeps the markup shape consistent across modes.
81
- return (h(Host, { key: 'a60dab195d08a5afa44c871598584c1175cff4af', class: `theme-${this.theme} mode-${this.mode}` }, h("div", { key: 'dafd6b1501a592ceaa0b9babc27d2437ccfb2c62', class: `client-carousel theme-${this.theme} rows-${rows} mode-${this.mode}` }, h("div", { key: 'c318457802deebbc34b289b2d83d0dd50c15cc5c', class: "carousel-container" }, h("div", { key: '878d1a443b488828f54e6915cede096654624435', class: "carousel-row scroll-left" }, h("div", { key: '1e8751fc3ed7429196b6d7e5e9e6fb0255ab277c', class: "logo-track", ref: (el) => (this.row1TrackRef = el) }, h("slot", { key: 'd030308358617334fa318abd95780133d13a0b01', name: "row-1" }, h("slot", { key: '230f591311b0245946dd64c465fe7e9634a9ab99' })))), rows === 2 && (h("div", { key: 'd942aaa3e6994e73f1ad52a2deedc9564f6105fd', class: "carousel-row scroll-right" }, h("div", { key: '96e438271bee8bd840a7645b1634fc0e125617de', class: "logo-track", ref: (el) => (this.row2TrackRef = el) }, h("slot", { key: '90661d285bc8f65b1d1188f66a15edf60503b1a3', name: "row-2" }))))))));
81
+ return (h(Host, { key: 'ca25bfa9d9ca4bcf2b9326e48c89e7f5fb0599b3', class: `theme-${this.theme} mode-${this.mode}` }, h("div", { key: 'ea36aed6990f569561dce562510f88a9a50b5653', class: `client-carousel theme-${this.theme} rows-${rows} mode-${this.mode}` }, h("div", { key: 'a96a00ea379f9908f01845e9d2e515146bc2de1e', class: "carousel-container" }, h("div", { key: '1a5d6c4298b9229ee1ef3c3cf2fd0f358e5bf0e8', class: "carousel-row scroll-left" }, h("div", { key: '825e3e9149cc95c97892bb89becc2ea3eccddde5', class: "logo-track", ref: (el) => (this.row1TrackRef = el) }, h("slot", { key: '6e03784bd1f196374f0b73bb45b54f6dc1db66a2', name: "row-1" }, h("slot", { key: 'ed18d97e06d91a10ed6914cafa488ffc59f385ff' })))), rows === 2 && (h("div", { key: '7143c9333e29ffaaf5b8bcf8d1cf905d60236a7a', class: "carousel-row scroll-right" }, h("div", { key: '8446a3dcf958b370b4cc14a27ec4bd7c0228ded2', class: "logo-track", ref: (el) => (this.row2TrackRef = el) }, h("slot", { key: '2d4de0f0697f22ac4742cebe0e20ed94b218f030', name: "row-2" }))))))));
82
82
  }
83
83
  static get is() { return "af-client-carousel"; }
84
84
  static get encapsulation() { return "scoped"; }
@@ -102,8 +102,9 @@ export class AfClientCarousel {
102
102
  "resolved": "\"inkwell\" | \"mist-green\" | \"soft-clay\" | \"white\" | \"white-ivory\"",
103
103
  "references": {
104
104
  "Theme": {
105
- "location": "global",
106
- "id": "global::Theme"
105
+ "location": "import",
106
+ "path": "../../types",
107
+ "id": "src/types.ts::Theme"
107
108
  }
108
109
  }
109
110
  },
@@ -1 +1 @@
1
- {"version":3,"file":"af-client-carousel.js","sourceRoot":"","sources":["../../../src/components/af-client-carousel/af-client-carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAKlE;;;;;;;;;;;;;;;;;;;;GAoBG;AAUH,MAAM,OAAO,gBAAgB;IAT7B;QAYE,2EAA2E;QACnE,UAAK,GAAU,SAAS,CAAC;QAEjC;;;;;;;WAOG;QACK,SAAI,GAAU,CAAC,CAAC;QAExB;;;;;;WAMG;QACK,SAAI,GAAS,QAAQ,CAAC;KAmE/B;IA9DC,gBAAgB;QACd,iEAAiE;QACjE,iDAAiD;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,qBAAqB,CAAC,KAA8B;QAC1D,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CACjD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE,KAAqB,CAAC,YAAY,CAAC,qBAAqB,CAAC,CACvE,CAAC;QACF,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;YAChD,KAAK,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC9C,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC1C,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,wEAAwE;QACxE,wEAAwE;QACxE,+DAA+D;QAC/D,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAE,SAAS,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,EAAE;YAClD,4DAAK,KAAK,EAAE,yBAAyB,IAAI,CAAC,KAAK,SAAS,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE;gBAC9E,4DAAK,KAAK,EAAC,oBAAoB;oBAC7B,4DAAK,KAAK,EAAC,0BAA0B;wBACnC,4DAAK,KAAK,EAAC,YAAY,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;4BAC3D,6DAAM,IAAI,EAAC,OAAO;gCAChB,8DAAa,CACR,CACH,CACF;oBAEL,IAAI,KAAK,CAAC,IAAI,CACb,4DAAK,KAAK,EAAC,2BAA2B;wBACpC,4DAAK,KAAK,EAAC,YAAY,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;4BAC3D,6DAAM,IAAI,EAAC,OAAO,GAAQ,CACtB,CACF,CACP,CACG,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Host, Prop } from '@stencil/core';\n\ntype Theme = 'white' | 'inkwell' | 'mist-green' | 'soft-clay' | 'white-ivory';\ntype Mode = 'scroll' | 'static';\n\n/**\n * Full-width row of client logos, either infinite-scrolling (default)\n * or a centred static row.\n *\n * This is a section-level component that spans full width.\n * Renders one or two rows; single row matches the Webflow reference,\n * two rows is the denser variant. When `mode=\"scroll\"` (default) rows\n * animate in opposite directions; when `mode=\"static\"` rows are centred\n * and the animation is disabled.\n *\n * For headlines, use a separate TypographyLockup or Heading component\n * above this carousel.\n *\n * **Seamless loop (scroll mode only):** the CSS animation translates\n * the track from 0% to -50% (or vice versa), which only looks continuous\n * if the track holds two identical copies of the content end-to-end.\n * Shadow DOM slots can only project content once, so we clone the\n * slotted nodes in `componentDidLoad` and append the copies to the track.\n * Static mode skips the clone — nothing is animating, so duplicating\n * the logos would just render them twice.\n */\n@Component({\n tag: 'af-client-carousel',\n styleUrl: 'af-client-carousel.css',\n // Scoped (not shadow) so that cloned nodes inherit the consumer's\n // external CSS (e.g. Astro-scoped `.logo-pill` on the SiteHeader\n // carousel). Shadow DOM would seal the clones off from outer styles.\n shadow: false,\n scoped: true,\n})\nexport class AfClientCarousel {\n @Element() el!: HTMLElement;\n\n /** Theme - sets background color and provides theme context to children */\n @Prop() theme: Theme = 'inkwell';\n\n /**\n * Number of rows.\n * - `1` (default) — single row, matches the Webflow reference.\n * - `2` — two rows (scroll in opposite directions, or stacked when static).\n *\n * When `rows=\"2\"`, slot `row-1` and `row-2` independently.\n * When `rows=\"1\"`, slot the default slot (unnamed) or `row-1`.\n */\n @Prop() rows: 1 | 2 = 1;\n\n /**\n * Layout mode.\n * - `scroll` (default) — infinite animated scroll; rows fill the full\n * width and are cloned for a seamless loop.\n * - `static` — no animation, logos centred horizontally. Use when the\n * logo set is small enough to fit on screen without scrolling.\n */\n @Prop() mode: Mode = 'scroll';\n\n private row1TrackRef?: HTMLElement;\n private row2TrackRef?: HTMLElement;\n\n componentDidLoad() {\n // Static mode doesn't animate, so the clone trick isn't needed —\n // skipping it avoids rendering every logo twice.\n if (this.mode === 'static') return;\n this.duplicateTrackContent(this.row1TrackRef);\n if (Number(this.rows) === 2) {\n this.duplicateTrackContent(this.row2TrackRef);\n }\n }\n\n /**\n * Append clones of every existing track child into the track so the\n * -50% translate animation loops seamlessly. Marks clones with\n * `aria-hidden` and `data-carousel-clone` so assistive tech ignores\n * them and we can skip them when re-duplicating.\n *\n * In scoped mode, slotted content is moved into the track as regular\n * children (there's no `<slot>` element to read from), so we just\n * iterate direct children that aren't themselves prior clones.\n */\n private duplicateTrackContent(track: HTMLElement | undefined) {\n if (!track) return;\n const originals = Array.from(track.children).filter(\n (child) => !(child as HTMLElement).hasAttribute('data-carousel-clone'),\n );\n originals.forEach((el) => {\n const clone = el.cloneNode(true) as HTMLElement;\n clone.setAttribute('data-carousel-clone', '');\n clone.setAttribute('aria-hidden', 'true');\n track.appendChild(clone);\n });\n }\n\n render() {\n const rows = Number(this.rows);\n // Direction classes are left on in static mode too — the `.mode-static`\n // CSS rule overrides `animation` to `none`, so the direction is a no-op\n // visually but keeps the markup shape consistent across modes.\n return (\n <Host class={`theme-${this.theme} mode-${this.mode}`}>\n <div class={`client-carousel theme-${this.theme} rows-${rows} mode-${this.mode}`}>\n <div class=\"carousel-container\">\n <div class=\"carousel-row scroll-left\">\n <div class=\"logo-track\" ref={(el) => (this.row1TrackRef = el)}>\n <slot name=\"row-1\">\n <slot></slot>\n </slot>\n </div>\n </div>\n\n {rows === 2 && (\n <div class=\"carousel-row scroll-right\">\n <div class=\"logo-track\" ref={(el) => (this.row2TrackRef = el)}>\n <slot name=\"row-2\"></slot>\n </div>\n </div>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"af-client-carousel.js","sourceRoot":"","sources":["../../../src/components/af-client-carousel/af-client-carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAKlE;;;;;;;;;;;;;;;;;;;;GAoBG;AAUH,MAAM,OAAO,gBAAgB;IAT7B;QAYE,2EAA2E;QACnE,UAAK,GAAU,SAAS,CAAC;QAEjC;;;;;;;WAOG;QACK,SAAI,GAAU,CAAC,CAAC;QAExB;;;;;;WAMG;QACK,SAAI,GAAS,QAAQ,CAAC;KAmE/B;IA9DC,gBAAgB;QACd,iEAAiE;QACjE,iDAAiD;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QACnC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,qBAAqB,CAAC,KAA8B;QAC1D,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CACjD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE,KAAqB,CAAC,YAAY,CAAC,qBAAqB,CAAC,CACvE,CAAC;QACF,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;YAChD,KAAK,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC9C,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC1C,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,wEAAwE;QACxE,wEAAwE;QACxE,+DAA+D;QAC/D,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAE,SAAS,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,EAAE;YAClD,4DAAK,KAAK,EAAE,yBAAyB,IAAI,CAAC,KAAK,SAAS,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE;gBAC9E,4DAAK,KAAK,EAAC,oBAAoB;oBAC7B,4DAAK,KAAK,EAAC,0BAA0B;wBACnC,4DAAK,KAAK,EAAC,YAAY,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;4BAC3D,6DAAM,IAAI,EAAC,OAAO;gCAChB,8DAAa,CACR,CACH,CACF;oBAEL,IAAI,KAAK,CAAC,IAAI,CACb,4DAAK,KAAK,EAAC,2BAA2B;wBACpC,4DAAK,KAAK,EAAC,YAAY,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;4BAC3D,6DAAM,IAAI,EAAC,OAAO,GAAQ,CACtB,CACF,CACP,CACG,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Host, Prop } from '@stencil/core';\nimport type { Theme } from '../../types';\n\ntype Mode = 'scroll' | 'static';\n\n/**\n * Full-width row of client logos, either infinite-scrolling (default)\n * or a centred static row.\n *\n * This is a section-level component that spans full width.\n * Renders one or two rows; single row matches the Webflow reference,\n * two rows is the denser variant. When `mode=\"scroll\"` (default) rows\n * animate in opposite directions; when `mode=\"static\"` rows are centred\n * and the animation is disabled.\n *\n * For headlines, use a separate TypographyLockup or Heading component\n * above this carousel.\n *\n * **Seamless loop (scroll mode only):** the CSS animation translates\n * the track from 0% to -50% (or vice versa), which only looks continuous\n * if the track holds two identical copies of the content end-to-end.\n * Shadow DOM slots can only project content once, so we clone the\n * slotted nodes in `componentDidLoad` and append the copies to the track.\n * Static mode skips the clone — nothing is animating, so duplicating\n * the logos would just render them twice.\n */\n@Component({\n tag: 'af-client-carousel',\n styleUrl: 'af-client-carousel.css',\n // Scoped (not shadow) so that cloned nodes inherit the consumer's\n // external CSS (e.g. Astro-scoped `.logo-pill` on the SiteHeader\n // carousel). Shadow DOM would seal the clones off from outer styles.\n shadow: false,\n scoped: true,\n})\nexport class AfClientCarousel {\n @Element() el!: HTMLElement;\n\n /** Theme - sets background color and provides theme context to children */\n @Prop() theme: Theme = 'inkwell';\n\n /**\n * Number of rows.\n * - `1` (default) — single row, matches the Webflow reference.\n * - `2` — two rows (scroll in opposite directions, or stacked when static).\n *\n * When `rows=\"2\"`, slot `row-1` and `row-2` independently.\n * When `rows=\"1\"`, slot the default slot (unnamed) or `row-1`.\n */\n @Prop() rows: 1 | 2 = 1;\n\n /**\n * Layout mode.\n * - `scroll` (default) — infinite animated scroll; rows fill the full\n * width and are cloned for a seamless loop.\n * - `static` — no animation, logos centred horizontally. Use when the\n * logo set is small enough to fit on screen without scrolling.\n */\n @Prop() mode: Mode = 'scroll';\n\n private row1TrackRef?: HTMLElement;\n private row2TrackRef?: HTMLElement;\n\n componentDidLoad() {\n // Static mode doesn't animate, so the clone trick isn't needed —\n // skipping it avoids rendering every logo twice.\n if (this.mode === 'static') return;\n this.duplicateTrackContent(this.row1TrackRef);\n if (Number(this.rows) === 2) {\n this.duplicateTrackContent(this.row2TrackRef);\n }\n }\n\n /**\n * Append clones of every existing track child into the track so the\n * -50% translate animation loops seamlessly. Marks clones with\n * `aria-hidden` and `data-carousel-clone` so assistive tech ignores\n * them and we can skip them when re-duplicating.\n *\n * In scoped mode, slotted content is moved into the track as regular\n * children (there's no `<slot>` element to read from), so we just\n * iterate direct children that aren't themselves prior clones.\n */\n private duplicateTrackContent(track: HTMLElement | undefined) {\n if (!track) return;\n const originals = Array.from(track.children).filter(\n (child) => !(child as HTMLElement).hasAttribute('data-carousel-clone'),\n );\n originals.forEach((el) => {\n const clone = el.cloneNode(true) as HTMLElement;\n clone.setAttribute('data-carousel-clone', '');\n clone.setAttribute('aria-hidden', 'true');\n track.appendChild(clone);\n });\n }\n\n render() {\n const rows = Number(this.rows);\n // Direction classes are left on in static mode too — the `.mode-static`\n // CSS rule overrides `animation` to `none`, so the direction is a no-op\n // visually but keeps the markup shape consistent across modes.\n return (\n <Host class={`theme-${this.theme} mode-${this.mode}`}>\n <div class={`client-carousel theme-${this.theme} rows-${rows} mode-${this.mode}`}>\n <div class=\"carousel-container\">\n <div class=\"carousel-row scroll-left\">\n <div class=\"logo-track\" ref={(el) => (this.row1TrackRef = el)}>\n <slot name=\"row-1\">\n <slot></slot>\n </slot>\n </div>\n </div>\n\n {rows === 2 && (\n <div class=\"carousel-row scroll-right\">\n <div class=\"logo-track\" ref={(el) => (this.row2TrackRef = el)}>\n <slot name=\"row-2\"></slot>\n </div>\n </div>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -11,7 +11,7 @@ export class AfContactItem {
11
11
  this.value = '';
12
12
  }
13
13
  render() {
14
- return (h(Host, { key: '1a52a5ea61e7ef04f3b86e8338ed6984a57101a2' }, h("div", { key: '9c69396e916f489d572f045e78daf990a72e0d24', class: "contact-item" }, this.label && (h("h5", { key: '7575301c7a83aa2034aaaf9b9bdb2a0bd5e072bb', class: "contact-item__label" }, this.label)), this.value && (h("p", { key: '5cbca2b4420b2184fb08ac7f1edb22bce50b9c4c', class: "contact-item__value" }, this.value)), h("slot", { key: '45624be318ed9146a9ec0f2b81af110f8cb82ff6' }))));
14
+ return (h(Host, { key: '96c81142044b30c89d0b57ca51796bb11b20a939' }, h("div", { key: '91e097ce9e31a20896a2df199c905a848a35065b', class: "contact-item" }, this.label && (h("h5", { key: '8ed3a89a50249ca99f50637ec1486b0def63a057', class: "contact-item__label" }, this.label)), this.value && (h("p", { key: '1503e602ac07c85a88b612eb600f07c4cb152e00', class: "contact-item__value" }, this.value)), h("slot", { key: '700f83924b662a99f5450a97b79b48c9b21e9cd0' }))));
15
15
  }
16
16
  static get is() { return "af-contact-item"; }
17
17
  static get encapsulation() { return "scoped"; }
@@ -28,7 +28,7 @@ export class AfDivider {
28
28
  marginTop: spacingValue,
29
29
  marginBottom: spacingValue,
30
30
  };
31
- return (h(Host, { key: '6d986be8da228de6f6203c3e3fc38f79751c1e97', class: {
31
+ return (h(Host, { key: 'b8c2649ffe99bf4c816cf3e9d0be51c1a40fe43a', class: {
32
32
  'divider': true,
33
33
  'divider--horizontal': !isVertical,
34
34
  'divider--vertical': isVertical,
@@ -1 +1 @@
1
- {"version":3,"file":"af-divider.js","sourceRoot":"","sources":["../../../src/components/af-divider/af-divider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAKzD;;;GAGG;AAMH,MAAM,OAAO,SAAS;IALtB;QAME;;WAEG;QACK,gBAAW,GAAgB,YAAY,CAAC;QAEhD;;;;WAIG;QACK,YAAO,GAAY,GAAG,CAAC;KA6BhC;IA3BC,MAAM;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,OAAO,GAAG,CAAC;QAEpF,MAAM,KAAK,GAA2B,UAAU;YAC9C,CAAC,CAAC;gBACE,UAAU,EAAE,YAAY;gBACxB,WAAW,EAAE,YAAY;aAC1B;YACH,CAAC,CAAC;gBACE,SAAS,EAAE,YAAY;gBACvB,YAAY,EAAE,YAAY;aAC3B,CAAC;QAEN,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,SAAS,EAAE,IAAI;gBACf,qBAAqB,EAAE,CAAC,UAAU;gBAClC,mBAAmB,EAAE,UAAU;aAChC,EACD,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,WAAW,sBACE,IAAI,CAAC,WAAW,GAC5B,CACT,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\ntype Orientation = 'horizontal' | 'vertical';\ntype Spacing = 'none' | '1' | '2' | '3' | '4' | '5' | '6' | '8';\n\n/**\n * Divider component for visual separation between content.\n * Supports horizontal and vertical orientations with theme-aware styling.\n */\n@Component({\n tag: 'af-divider',\n styleUrl: 'af-divider.css',\n shadow: true,\n})\nexport class AfDivider {\n /**\n * Orientation of the divider.\n */\n @Prop() orientation: Orientation = 'horizontal';\n\n /**\n * Spacing (margin) around the divider using space tokens.\n * For horizontal: margin-top and margin-bottom\n * For vertical: margin-left and margin-right\n */\n @Prop() spacing: Spacing = '4';\n\n render() {\n const isVertical = this.orientation === 'vertical';\n const spacingValue = this.spacing === 'none' ? '0' : `var(--space-${this.spacing})`;\n\n const style: Record<string, string> = isVertical\n ? {\n marginLeft: spacingValue,\n marginRight: spacingValue,\n }\n : {\n marginTop: spacingValue,\n marginBottom: spacingValue,\n };\n\n return (\n <Host\n class={{\n 'divider': true,\n 'divider--horizontal': !isVertical,\n 'divider--vertical': isVertical,\n }}\n style={style}\n role=\"separator\"\n aria-orientation={this.orientation}\n ></Host>\n );\n }\n}\n\n"]}
1
+ {"version":3,"file":"af-divider.js","sourceRoot":"","sources":["../../../src/components/af-divider/af-divider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAMzD;;;GAGG;AAMH,MAAM,OAAO,SAAS;IALtB;QAME;;WAEG;QACK,gBAAW,GAAgB,YAAY,CAAC;QAEhD;;;;WAIG;QACK,YAAO,GAAY,GAAG,CAAC;KA6BhC;IA3BC,MAAM;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,OAAO,GAAG,CAAC;QAEpF,MAAM,KAAK,GAA2B,UAAU;YAC9C,CAAC,CAAC;gBACE,UAAU,EAAE,YAAY;gBACxB,WAAW,EAAE,YAAY;aAC1B;YACH,CAAC,CAAC;gBACE,SAAS,EAAE,YAAY;gBACvB,YAAY,EAAE,YAAY;aAC3B,CAAC;QAEN,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,SAAS,EAAE,IAAI;gBACf,qBAAqB,EAAE,CAAC,UAAU;gBAClC,mBAAmB,EAAE,UAAU;aAChC,EACD,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,WAAW,sBACE,IAAI,CAAC,WAAW,GAC5B,CACT,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\nimport type { Gap } from '../../types';\n\ntype Orientation = 'horizontal' | 'vertical';\ntype Spacing = Gap | 'none';\n\n/**\n * Divider component for visual separation between content.\n * Supports horizontal and vertical orientations with theme-aware styling.\n */\n@Component({\n tag: 'af-divider',\n styleUrl: 'af-divider.css',\n shadow: true,\n})\nexport class AfDivider {\n /**\n * Orientation of the divider.\n */\n @Prop() orientation: Orientation = 'horizontal';\n\n /**\n * Spacing (margin) around the divider using space tokens.\n * For horizontal: margin-top and margin-bottom\n * For vertical: margin-left and margin-right\n */\n @Prop() spacing: Spacing = '4';\n\n render() {\n const isVertical = this.orientation === 'vertical';\n const spacingValue = this.spacing === 'none' ? '0' : `var(--space-${this.spacing})`;\n\n const style: Record<string, string> = isVertical\n ? {\n marginLeft: spacingValue,\n marginRight: spacingValue,\n }\n : {\n marginTop: spacingValue,\n marginBottom: spacingValue,\n };\n\n return (\n <Host\n class={{\n 'divider': true,\n 'divider--horizontal': !isVertical,\n 'divider--vertical': isVertical,\n }}\n style={style}\n role=\"separator\"\n aria-orientation={this.orientation}\n ></Host>\n );\n }\n}\n\n"]}
@@ -98,13 +98,13 @@ export class AfFeatureAccordion {
98
98
  render() {
99
99
  const items = this.getItems();
100
100
  const currentItem = items[this.expandedIndex];
101
- return (h(Host, { key: '03ae097e99c77b487ca8fe64571840c63e7da862' }, h("div", { key: '2ad42ea20ce150e762763a3fb58ba8c52f1b31a9', class: "feature-accordion" }, h("div", { key: 'e6952ea34da35c5ee7e77c0f43cfc328b4ecbb05', class: "feature-accordion__container" }, h("h2", { key: '8d360f7af4c0de8ddad629d209c41fcc56a55a95', class: "feature-accordion__heading" }, this.heading), h("div", { key: '56b3155755a3b0d68ff89727df3ae9aae70defd4', class: "feature-accordion__content" }, h("div", { key: 'bc15d1c26cb079ea19b817e729d0dfb29d5858bb', class: "feature-accordion__list" }, items.map((item, index) => (h("div", { class: {
101
+ return (h(Host, { key: '335d71685c8aad8e3ffc0b32c95b8ddd3b670491' }, h("div", { key: '03d0f317865722652ad21e8dfd38e3806e890993', class: "feature-accordion" }, h("div", { key: 'ddc8fa8c2690f670cd3fdd7efa55c7c11ff29e14', class: "feature-accordion__container" }, h("h2", { key: '2d81b47cdc05b6924f2a5a17407bd5d073b6f955', class: "feature-accordion__heading" }, this.heading), h("div", { key: 'ea1c924a393afab5a8dfe223d3404798a7cacf46', class: "feature-accordion__content" }, h("div", { key: '64edad33b88cc793e93debad5f2f051f795deb65', class: "feature-accordion__list" }, items.map((item, index) => (h("div", { class: {
102
102
  'accordion-item': true,
103
103
  'accordion-item--expanded': this.expandedIndex === index
104
104
  }, key: index }, h("button", { class: "accordion-item__header", onClick: () => this.handleItemClick(index), "aria-expanded": this.expandedIndex === index ? 'true' : 'false' }, h("h4", { class: "accordion-item__title" }, item.title), h("span", { class: "accordion-item__icon" }, this.expandedIndex === index ? (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M5 12H19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))) : (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M12 5V19M5 12H19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))))), h("div", { class: "accordion-item__content", style: {
105
105
  maxHeight: this.expandedIndex === index ? '200px' : '0',
106
106
  opacity: this.expandedIndex === index ? '1' : '0'
107
- } }, h("p", { class: "accordion-item__description" }, item.description), this.expandedIndex === index && this.autoCycle && (h("div", { class: "accordion-item__timer-track" }, h("div", { class: "accordion-item__timer-progress", style: { width: `${this.timerProgress}%` } })))))))), h("div", { key: '3e160193fdb6a45b2d7e493ddb6925dbee121150', class: "feature-accordion__image-container" }, h("div", { key: '7ab7c3b54a88009f38379dc19c59ba4650ab4ce9', class: "feature-accordion__image-wrapper" }, currentItem?.imageUrl && (h("img", { key: 'cd3f5b1ea37b55d1c7183070c98cc44af3d90694', src: currentItem.imageUrl, alt: currentItem.imageAlt || currentItem.title, class: "feature-accordion__image" })), !currentItem?.imageUrl && (h("div", { key: '0956c500e38f588edb6a4e570d2cfc4f152453fb', class: "feature-accordion__image-placeholder" }, h("slot", { key: '36f7ed6e0554c429c891f71589296159e7531385', name: "image" }))))))))));
107
+ } }, h("p", { class: "accordion-item__description" }, item.description), this.expandedIndex === index && this.autoCycle && (h("div", { class: "accordion-item__timer-track" }, h("div", { class: "accordion-item__timer-progress", style: { width: `${this.timerProgress}%` } })))))))), h("div", { key: 'ca61ce3c070f35e9084dcd2bdd4c0fdf8c873fb5', class: "feature-accordion__image-container" }, h("div", { key: 'f741bd15d6fdd17b8947a099a94ba37c5d9a797b', class: "feature-accordion__image-wrapper" }, currentItem?.imageUrl && (h("img", { key: '8f8dbccdfb3ac4857d0a8bb8bcc317b00ac1cb87', src: currentItem.imageUrl, alt: currentItem.imageAlt || currentItem.title, class: "feature-accordion__image" })), !currentItem?.imageUrl && (h("div", { key: 'a06a0cb9eccf2504e9515c9da650cb9b2717173b', class: "feature-accordion__image-placeholder" }, h("slot", { key: '31097d47af5bb4f131aecfddb2ed370bb84c3b34', name: "image" }))))))))));
108
108
  }
109
109
  static get is() { return "af-feature-accordion"; }
110
110
  static get encapsulation() { return "scoped"; }
@@ -78,9 +78,15 @@ export class AfFeatureCard {
78
78
  "type": "string",
79
79
  "mutable": false,
80
80
  "complexType": {
81
- "original": "'white' | 'white-ivory' | 'inkwell' | 'mist-green' | 'soft-clay'",
81
+ "original": "Theme",
82
82
  "resolved": "\"inkwell\" | \"mist-green\" | \"soft-clay\" | \"white\" | \"white-ivory\" | undefined",
83
- "references": {}
83
+ "references": {
84
+ "Theme": {
85
+ "location": "import",
86
+ "path": "../../types",
87
+ "id": "src/types.ts::Theme"
88
+ }
89
+ }
84
90
  },
85
91
  "required": false,
86
92
  "optional": true,
@@ -1 +1 @@
1
- {"version":3,"file":"af-feature-card.js","sourceRoot":"","sources":["../../../src/components/af-feature-card/af-feature-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AAOH,MAAM,OAAO,aAAa;IAN1B;QAOE;;;WAGG;QACK,UAAK,GAAsE,YAAY,CAAC;QAEhG;;;;WAIG;QACK,WAAM,GAA8B,UAAU,CAAC;QAEvD;;;;;WAKG;QACsB,aAAQ,GAAqC,SAAS,CAAC;QAEhF;;WAEG;QACK,gBAAW,GAAsB,CAAC,CAAC;QAO3C;;;;WAIG;QACK,aAAQ,GAAW,EAAE,CAAC;KAkF/B;IAhFC,MAAM;QACJ,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC;QAEjD,MAAM,cAAc,GAAG;YACrB,cAAc,EAAE,IAAI;YACpB,CAAC,wBAAwB,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI;YAC7C,CAAC,sBAAsB,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI;SAC9C,CAAC;QAEF,iDAAiD;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CACL,EAAC,IAAI;gBACH,WAAK,KAAK,EAAE,cAAc;oBAEvB,QAAQ,IAAI,CACX,WAAK,KAAK,EAAC,0BAA0B;wBACnC,WACE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,KAAK,EAAC,gCAAgC,GACtC,CACE,CACP;oBAGD,WAAK,KAAK,EAAC,uBAAuB;wBAChC,4BACE,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAC,MAAM,EACpB,eAAe,EAAC,UAAU;4BAE1B,eAAa;4BACb,YAAM,IAAI,EAAC,aAAa;gCACtB,YAAM,IAAI,EAAC,MAAM,GAAQ,CACpB,CACc,CACnB,CACF,CACD,CACR,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC;QAEhD,OAAO,CACL,EAAC,IAAI;YACH,WAAK,KAAK,EAAE,cAAc;gBACxB,eAAS,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU;oBAE7C,WAAK,KAAK,EAAC,uBAAuB;wBAChC,4BACE,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAC,MAAM,EACpB,eAAe,EAAC,UAAU;4BAE1B,eAAa;4BACb,YAAM,IAAI,EAAC,aAAa;gCACtB,YAAM,IAAI,EAAC,MAAM,GAAQ,CACpB,CACc,CACnB;oBAGL,QAAQ,IAAI,CACX,WAAK,KAAK,EAAC,0BAA0B;wBACnC,WACE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,KAAK,EAAC,qBAAqB,GAC3B,CACE,CACP,CACO,CACN,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\n\n/**\n * Feature Card molecule component that combines a card with an image.\n * \n * Two layout modes:\n * - `standard`: Theme background with text at top and image at bottom\n * - `full-bleed`: Image covers entire card with text overlay at bottom\n * \n * Responsive: Automatically adapts to mobile viewport (≤768px).\n * \n * Uses af-card atom internally and af-typography-lockup for text hierarchy.\n * \n * @slot - Heading text content\n * @slot body - Description/body text content\n */\n@Component({\n tag: 'af-feature-card',\n styleUrl: 'af-feature-card.css',\n shadow: false,\n scoped: true,\n})\nexport class AfFeatureCard {\n /**\n * Theme variant - sets background color and provides theme context.\n * Only applies to 'standard' layout mode. Defaults to 'mist-green'.\n */\n @Prop() theme?: 'white' | 'white-ivory' | 'inkwell' | 'mist-green' | 'soft-clay' = 'mist-green';\n\n /**\n * Layout mode for the card.\n * - 'standard': Theme background with text at top and image at bottom\n * - 'full-bleed': Image covers entire card with text overlay at bottom\n */\n @Prop() layout: 'standard' | 'full-bleed' = 'standard';\n\n /**\n * Card size variant.\n * - 'default': Fixed 544px × 420px\n * - 'large': Fixed 777px × 480px \n * - 'flexible': Fills container (for grid layouts)\n */\n @Prop({ reflect: true }) cardSize: 'default' | 'large' | 'flexible' = 'default';\n\n /**\n * Heading size for typography lockup (1-5, where 1 is largest).\n */\n @Prop() headingSize: 1 | 2 | 3 | 4 | 5 = 3;\n\n /**\n * Background/feature image URL.\n */\n @Prop() imageSrc?: string;\n\n /**\n * Image alt text for accessibility.\n * Provide meaningful alt text for feature images.\n * Only use empty string for purely decorative images.\n */\n @Prop() imageAlt: string = '';\n\n render() {\n const hasImage = !!this.imageSrc;\n const isFullBleed = this.layout === 'full-bleed';\n\n const wrapperClasses = {\n 'feature-card': true,\n [`feature-card--layout-${this.layout}`]: true,\n [`feature-card--size-${this.cardSize}`]: true,\n };\n\n // Full-bleed mode: image background with overlay\n if (isFullBleed) {\n return (\n <Host>\n <div class={wrapperClasses}>\n {/* Background image */}\n {hasImage && (\n <div class=\"feature-card__background\">\n <img\n src={this.imageSrc}\n alt={this.imageAlt}\n class=\"feature-card__background-image\"\n />\n </div>\n )}\n\n {/* Content overlay with gradient */}\n <div class=\"feature-card__overlay\">\n <af-typography-lockup\n headingSize={this.headingSize}\n textAlignment=\"left\"\n buttonAlignment=\"vertical\"\n >\n <slot></slot>\n <span slot=\"description\">\n <slot name=\"body\"></slot>\n </span>\n </af-typography-lockup>\n </div>\n </div>\n </Host>\n );\n }\n\n // Standard mode: theme card with image at bottom\n const isFlexible = this.cardSize === 'flexible';\n \n return (\n <Host>\n <div class={wrapperClasses}>\n <af-card theme={this.theme} stretch={isFlexible}>\n {/* Content area with typography lockup */}\n <div class=\"feature-card__content\">\n <af-typography-lockup\n headingSize={this.headingSize}\n textAlignment=\"left\"\n buttonAlignment=\"vertical\"\n >\n <slot></slot>\n <span slot=\"description\">\n <slot name=\"body\"></slot>\n </span>\n </af-typography-lockup>\n </div>\n\n {/* Image area at bottom */}\n {hasImage && (\n <div class=\"feature-card__image-area\">\n <img\n src={this.imageSrc}\n alt={this.imageAlt}\n class=\"feature-card__image\"\n />\n </div>\n )}\n </af-card>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"af-feature-card.js","sourceRoot":"","sources":["../../../src/components/af-feature-card/af-feature-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGzD;;;;;;;;;;;;;GAaG;AAOH,MAAM,OAAO,aAAa;IAN1B;QAOE;;;WAGG;QACK,UAAK,GAAW,YAAY,CAAC;QAErC;;;;WAIG;QACK,WAAM,GAA8B,UAAU,CAAC;QAEvD;;;;;WAKG;QACsB,aAAQ,GAAqC,SAAS,CAAC;QAEhF;;WAEG;QACK,gBAAW,GAAsB,CAAC,CAAC;QAO3C;;;;WAIG;QACK,aAAQ,GAAW,EAAE,CAAC;KAkF/B;IAhFC,MAAM;QACJ,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC;QAEjD,MAAM,cAAc,GAAG;YACrB,cAAc,EAAE,IAAI;YACpB,CAAC,wBAAwB,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI;YAC7C,CAAC,sBAAsB,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI;SAC9C,CAAC;QAEF,iDAAiD;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CACL,EAAC,IAAI;gBACH,WAAK,KAAK,EAAE,cAAc;oBAEvB,QAAQ,IAAI,CACX,WAAK,KAAK,EAAC,0BAA0B;wBACnC,WACE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,KAAK,EAAC,gCAAgC,GACtC,CACE,CACP;oBAGD,WAAK,KAAK,EAAC,uBAAuB;wBAChC,4BACE,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAC,MAAM,EACpB,eAAe,EAAC,UAAU;4BAE1B,eAAa;4BACb,YAAM,IAAI,EAAC,aAAa;gCACtB,YAAM,IAAI,EAAC,MAAM,GAAQ,CACpB,CACc,CACnB,CACF,CACD,CACR,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC;QAEhD,OAAO,CACL,EAAC,IAAI;YACH,WAAK,KAAK,EAAE,cAAc;gBACxB,eAAS,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU;oBAE7C,WAAK,KAAK,EAAC,uBAAuB;wBAChC,4BACE,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,aAAa,EAAC,MAAM,EACpB,eAAe,EAAC,UAAU;4BAE1B,eAAa;4BACb,YAAM,IAAI,EAAC,aAAa;gCACtB,YAAM,IAAI,EAAC,MAAM,GAAQ,CACpB,CACc,CACnB;oBAGL,QAAQ,IAAI,CACX,WAAK,KAAK,EAAC,0BAA0B;wBACnC,WACE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,KAAK,EAAC,qBAAqB,GAC3B,CACE,CACP,CACO,CACN,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\nimport type { Theme } from '../../types';\n\n/**\n * Feature Card molecule component that combines a card with an image.\n * \n * Two layout modes:\n * - `standard`: Theme background with text at top and image at bottom\n * - `full-bleed`: Image covers entire card with text overlay at bottom\n * \n * Responsive: Automatically adapts to mobile viewport (≤768px).\n * \n * Uses af-card atom internally and af-typography-lockup for text hierarchy.\n * \n * @slot - Heading text content\n * @slot body - Description/body text content\n */\n@Component({\n tag: 'af-feature-card',\n styleUrl: 'af-feature-card.css',\n shadow: false,\n scoped: true,\n})\nexport class AfFeatureCard {\n /**\n * Theme variant - sets background color and provides theme context.\n * Only applies to 'standard' layout mode. Defaults to 'mist-green'.\n */\n @Prop() theme?: Theme = 'mist-green';\n\n /**\n * Layout mode for the card.\n * - 'standard': Theme background with text at top and image at bottom\n * - 'full-bleed': Image covers entire card with text overlay at bottom\n */\n @Prop() layout: 'standard' | 'full-bleed' = 'standard';\n\n /**\n * Card size variant.\n * - 'default': Fixed 544px × 420px\n * - 'large': Fixed 777px × 480px \n * - 'flexible': Fills container (for grid layouts)\n */\n @Prop({ reflect: true }) cardSize: 'default' | 'large' | 'flexible' = 'default';\n\n /**\n * Heading size for typography lockup (1-5, where 1 is largest).\n */\n @Prop() headingSize: 1 | 2 | 3 | 4 | 5 = 3;\n\n /**\n * Background/feature image URL.\n */\n @Prop() imageSrc?: string;\n\n /**\n * Image alt text for accessibility.\n * Provide meaningful alt text for feature images.\n * Only use empty string for purely decorative images.\n */\n @Prop() imageAlt: string = '';\n\n render() {\n const hasImage = !!this.imageSrc;\n const isFullBleed = this.layout === 'full-bleed';\n\n const wrapperClasses = {\n 'feature-card': true,\n [`feature-card--layout-${this.layout}`]: true,\n [`feature-card--size-${this.cardSize}`]: true,\n };\n\n // Full-bleed mode: image background with overlay\n if (isFullBleed) {\n return (\n <Host>\n <div class={wrapperClasses}>\n {/* Background image */}\n {hasImage && (\n <div class=\"feature-card__background\">\n <img\n src={this.imageSrc}\n alt={this.imageAlt}\n class=\"feature-card__background-image\"\n />\n </div>\n )}\n\n {/* Content overlay with gradient */}\n <div class=\"feature-card__overlay\">\n <af-typography-lockup\n headingSize={this.headingSize}\n textAlignment=\"left\"\n buttonAlignment=\"vertical\"\n >\n <slot></slot>\n <span slot=\"description\">\n <slot name=\"body\"></slot>\n </span>\n </af-typography-lockup>\n </div>\n </div>\n </Host>\n );\n }\n\n // Standard mode: theme card with image at bottom\n const isFlexible = this.cardSize === 'flexible';\n \n return (\n <Host>\n <div class={wrapperClasses}>\n <af-card theme={this.theme} stretch={isFlexible}>\n {/* Content area with typography lockup */}\n <div class=\"feature-card__content\">\n <af-typography-lockup\n headingSize={this.headingSize}\n textAlignment=\"left\"\n buttonAlignment=\"vertical\"\n >\n <slot></slot>\n <span slot=\"description\">\n <slot name=\"body\"></slot>\n </span>\n </af-typography-lockup>\n </div>\n\n {/* Image area at bottom */}\n {hasImage && (\n <div class=\"feature-card__image-area\">\n <img\n src={this.imageSrc}\n alt={this.imageAlt}\n class=\"feature-card__image\"\n />\n </div>\n )}\n </af-card>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -82,7 +82,7 @@ export class AfFeatureGrid {
82
82
  [`feature-grid--mobile-${this.mobileLayout}`]: true,
83
83
  };
84
84
  const showProgressLine = this.mobileLayout === 'scroll';
85
- return (h(Host, { key: 'eb0a98e3493d564f6728613ef1c0b949dcbe7816' }, h("div", { key: 'c91f2fa779d050d9e9419eff301ba8fd80242bc0', class: gridClasses }, h("div", { key: '82989034a3f94cad6747429a1587c3ada160571f', class: "feature-grid__cards" }, h("slot", { key: '9ba0222a8ca2455fd83fbb054e1e4fc2c6f4e598' })), showProgressLine && (h("div", { key: '9c510e8f5366762546829210f5ec1f50788b4ecf', class: "feature-grid__progress" }, h("af-progress-line", { key: '584cd3da69b1b219743338bd6deb0a2c1bbab6b9', progress: this.scrollProgress }))))));
85
+ return (h(Host, { key: '9aacf2968c1723a036ab7583b052f56d7673543f' }, h("div", { key: 'c965c986ee73a4913e45406b461824927a541331', class: gridClasses }, h("div", { key: '177edb18e1342d60eda11adad85dad87a6c002c3', class: "feature-grid__cards" }, h("slot", { key: 'e0f15eba0bd58263f7a33474f34093785158f03d' })), showProgressLine && (h("div", { key: 'b952584d6b23121bfb820ebdcc1a526a34597f67', class: "feature-grid__progress" }, h("af-progress-line", { key: '97b4ac99e10078b6345a5567a6603290b8467af5', progress: this.scrollProgress }))))));
86
86
  }
87
87
  static get is() { return "af-feature-grid"; }
88
88
  static get encapsulation() { return "scoped"; }
@@ -18,7 +18,7 @@ export class AfFooter {
18
18
  this.showStatus = true;
19
19
  }
20
20
  render() {
21
- return (h(Host, { key: 'b0fceb1896656d8a17b3afda396dd74a9181668e' }, h("footer", { key: '6b48abc3e62d21f96fb3c4aa84b2eedd292e3386', class: "footer" }, h("div", { key: 'ba192ee7d600ddce8e1c2fcc5631259c5eff89db', class: "footer__container" }, h("div", { key: 'f7fa42a5d13aacf16bd49ab2a3257b80156383dd', class: "footer__top" }, h("div", { key: '25c7452fbba9a33805fa419e1d91da04c97e3843', class: "footer__brand" }, h("div", { key: 'd3e0c2b52ce7e6a1f399c13ed9d6f1a1c75d5c35', class: "footer__brand-card" }, h("div", { key: '197934823ea93f20575e3f737c777bd3fe6bdec9', class: "footer__logo" }, h("slot", { key: 'f2b8ab9d513704d6c5e3c2e78cd73a264e78225a', name: "logo" })), h("div", { key: 'c00e0d6bad4a5c99e6e39dab101b77c2fae36495', class: "footer__social" }, h("slot", { key: 'de662f1f8e9deb052eb79aed4a05a98c2d9f65aa', name: "social" }))), h("div", { key: '3c678879008647c05a60803ca7a067c4e4e61746', class: "footer__contact-card" }, h("slot", { key: '58071ccf22c23b1ef5341505dcf1d0ba57357512', name: "contact" }))), h("div", { key: '1eed42db812f2dce3aa935ab5ac1096625848ae6', class: "footer__nav" }, h("div", { key: '50aef430fdb85c2087dd2e2d87ad8cf1d16c7c8b', class: "footer__nav-columns" }, h("slot", { key: 'b900525b63c6072707a5b0d35f72237d1b2fe6a9', name: "nav" })), this.showStatus && (h("div", { key: 'fe957d27c0cbaf5a4e2627c3f37de884a87d09d7', class: "footer__status" }, h("span", { key: 'c123f1e69a1b8958eefede7510ae65395c58d948', class: `footer__status-dot ${this.systemsOperational ? 'footer__status-dot--operational' : 'footer__status-dot--issue'}` }), h("span", { key: '9524fa81546c3755e0f28d1f335915dfadf0c08a', class: "footer__status-text" }, this.statusText), this.statusUrl && (h("a", { key: 'adac84ed1240b1587ad4dd730813243009bb55b7', href: this.statusUrl, target: "_blank", rel: "noopener noreferrer", class: "footer__status-link" }, "Learn more")))))), h("div", { key: 'e662a65603a58375ecda64c12f60936ef4bf7535', class: "footer__bottom" }, this.copyrightText && (h("p", { key: '88688f225266e295d4f97ed64fdfe1a67a26561a', class: "footer__copyright" }, this.copyrightText)), h("div", { key: '9e37465b342340a36b309f2da9b5a0d68d5d3bec', class: "footer__legal" }, h("slot", { key: 'c4f6763e9affaf59c7740a78e738938ab25576d0', name: "legal" })), h("div", { key: 'ccdd834682869e69d9c09d2b8f1a6cb3648b671b', class: "footer__badges" }, h("slot", { key: 'cd10ff8b4e90f9a38270b5ed5d7884cea7f241a2', name: "badges" })))))));
21
+ return (h(Host, { key: '0f0b3ac453f4bf2f17d0185484c312aae99d4f5e' }, h("footer", { key: '017d608cb00c9fb3da012fe9941e80cd9d5135e8', class: "footer" }, h("div", { key: '545a499bd2b75a1efea1efe1659e336753bcce46', class: "footer__container" }, h("div", { key: '66ed8e54b1af9445e15cb4e650d54a240f158c8c', class: "footer__top" }, h("div", { key: 'b4b442dbcaf2e52aae6c76706ecff5aa928bf2f5', class: "footer__brand" }, h("div", { key: '73ad4e70efa91fe96c6de0b80f270c470c73c8e4', class: "footer__brand-card" }, h("div", { key: '0ef27728bb86632b9451ed94220528f527ba62bb', class: "footer__logo" }, h("slot", { key: '5f6de1e2b9f7e9523ce49414ec1bf88a8411478b', name: "logo" })), h("div", { key: 'fdc742da1adce4e0a874c2ee1998e051aea5f10a', class: "footer__social" }, h("slot", { key: '3073881efc66cf692b3d986e11798587cba6f272', name: "social" }))), h("div", { key: '5fe296475d338597af763acb3957a406b5fdf887', class: "footer__contact-card" }, h("slot", { key: '38be1a96c41c246fba05b7ec080b50330ab43f22', name: "contact" }))), h("div", { key: 'e12c9774d5d4806728b375386a0491ed2e7a1d74', class: "footer__nav" }, h("div", { key: '6c5e293d11a87f48add7799c86fe5ff14618094c', class: "footer__nav-columns" }, h("slot", { key: '5d189a739cbdb1b989eb77008aac4b3f91be4940', name: "nav" })), this.showStatus && (h("div", { key: '29f8108dfd88e8f83f75dc765870621055bb952a', class: "footer__status" }, h("span", { key: '4e61880dc288cfc19fbef5a91fdc5295512d725a', class: `footer__status-dot ${this.systemsOperational ? 'footer__status-dot--operational' : 'footer__status-dot--issue'}` }), h("span", { key: 'dd1055516d076ac8a814e7b60bedf6989341225c', class: "footer__status-text" }, this.statusText), this.statusUrl && (h("a", { key: '7ddb72ef4df731dcadc479a6ecbe059b1ca569cb', href: this.statusUrl, target: "_blank", rel: "noopener noreferrer", class: "footer__status-link" }, "Learn more")))))), h("div", { key: 'c5acf298a42067cad20c914350e6f89b98e16162', class: "footer__bottom" }, this.copyrightText && (h("p", { key: 'ed923670ea3258db98b0eb7a5e197e87b5f45784', class: "footer__copyright" }, this.copyrightText)), h("div", { key: '7a71bf0cf0f44bb38c4c696fd151ecbea2d3de1b', class: "footer__legal" }, h("slot", { key: 'afef7ce942c8fe362fb83d03438604378b4ac8f7', name: "legal" })), h("div", { key: 'b8940476d2cae97bc70916f4252e2a3337da37b8', class: "footer__badges" }, h("slot", { key: '3b076b800f2771237ea8f7fc2f1cc2c46c2e4ccc', name: "badges" })))))));
22
22
  }
23
23
  static get is() { return "af-footer"; }
24
24
  static get encapsulation() { return "scoped"; }
@@ -9,7 +9,7 @@ export class AfFooterColumn {
9
9
  this.heading = '';
10
10
  }
11
11
  render() {
12
- return (h(Host, { key: 'aff327dcb95b40e2835062053b7e59ee38d1e251' }, h("div", { key: '1f08aa09e7ffc52dda5603f5b3a1bb8ab8b42426', class: "footer-column" }, this.heading && (h("h5", { key: 'ef2532c50e755acb21f786edfbc23ade0097e385', class: "footer-column__heading" }, this.heading)), h("ul", { key: 'c96d5cda9bef99805eb17af7689a294adf80e33b', class: "footer-column__list" }, h("slot", { key: '5efdffcd7fc885e71a9460bc21a2d40bf486c14d' })))));
12
+ return (h(Host, { key: '02afc8f33ad0417467d4e795e77a1da74c7ede57' }, h("div", { key: 'f24cbe4720cf6e5df7351e9fe8cec05cca8753b0', class: "footer-column" }, this.heading && (h("h5", { key: '1f615da8d2c755dd0ab5a9679275538d4bb5945e', class: "footer-column__heading" }, this.heading)), h("ul", { key: '0ecdc874412334c418e049dcb0fff738cfdaa52b', class: "footer-column__list" }, h("slot", { key: '148b478bbd04204b3467329f98171a538b22d650' })))));
13
13
  }
14
14
  static get is() { return "af-footer-column"; }
15
15
  static get encapsulation() { return "scoped"; }
@@ -11,7 +11,7 @@ export class AfFooterLink {
11
11
  this.external = false;
12
12
  }
13
13
  render() {
14
- return (h(Host, { key: '6a353087c08983e0e8a962ba97a2d1fa0afd1003' }, h("li", { key: '746175585030c809e05bd697a518f0ae0bc93d89' }, h("a", { key: '5409787ffbcd34661bbcd643fe68ba2e8354d127', href: this.href, class: "footer-link", target: this.external ? '_blank' : undefined, rel: this.external ? 'noopener noreferrer' : undefined }, h("slot", { key: '506e4056466d3764b4a2a55927932ad5fe5ea0ba' }), this.external && (h("svg", { key: '93e6405e6252095281d63cfbcf1548af54582c24', class: "footer-link__external-icon", width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" }, h("path", { key: '72370b0a31dccb15f92bf8fa67fa868e2f0f33ee', d: "M10 6.5v3a1 1 0 0 1-1 1H2.5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3M7.5 1.5h3v3M5.5 6.5l5-5", stroke: "currentColor", "stroke-width": "1.2", "stroke-linecap": "round", "stroke-linejoin": "round" })))))));
14
+ return (h(Host, { key: 'f6c6f0433dc6bcffe507c33c0dec2590a7b167c6' }, h("li", { key: 'c2e69faa620fe59b1cec6e5c32ed37d3a34d9fb7' }, h("a", { key: '35330c42625be987164190b40d1ed1649a259a7f', href: this.href, class: "footer-link", target: this.external ? '_blank' : undefined, rel: this.external ? 'noopener noreferrer' : undefined }, h("slot", { key: '43940df1b20b76d4f9dbec8a94ec39cd56080af3' }), this.external && (h("svg", { key: '7a3e086ead102abed43ed7e765d3012c5e963306', class: "footer-link__external-icon", width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" }, h("path", { key: 'e3c266072bca65c154cf925fadc4beb59dfe8f86', d: "M10 6.5v3a1 1 0 0 1-1 1H2.5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3M7.5 1.5h3v3M5.5 6.5l5-5", stroke: "currentColor", "stroke-width": "1.2", "stroke-linecap": "round", "stroke-linejoin": "round" })))))));
15
15
  }
16
16
  static get is() { return "af-footer-link"; }
17
17
  static get encapsulation() { return "scoped"; }
@@ -28,14 +28,14 @@ export class AfGrid {
28
28
  end: 'end',
29
29
  stretch: 'stretch',
30
30
  };
31
- return (h(Host, { key: 'bcc57cad4861ded2353d7668fa76281f327efac8', style: {
31
+ return (h(Host, { key: '440c50dbd3a572f292b6a5b4b31845a70b5871bf', style: {
32
32
  '--grid-columns': String(this.columns),
33
33
  '--grid-columns-lg': String(this.columnsLg ?? this.columns),
34
34
  '--grid-columns-md': String(this.columnsMd ?? this.columnsLg ?? this.columns),
35
35
  '--grid-columns-sm': String(this.columnsSm ?? this.columnsMd ?? this.columnsLg ?? 1),
36
36
  '--grid-gap': `var(--space-${this.gap})`,
37
37
  '--grid-align': alignMap[this.align],
38
- } }, h("div", { key: 'e4aaf0f25478b42470f24b7eb831f6598be15423', class: "grid" }, h("slot", { key: 'bc40be3d30c45c2af348bb67804c25f29d606895' }))));
38
+ } }, h("div", { key: '76ddac9b00743e64fa4e49e9fa80d02088dc858c', class: "grid" }, h("slot", { key: 'ac6ce8acf4e1ca3acabff3176b06a57eee265b72' }))));
39
39
  }
40
40
  static get is() { return "af-grid"; }
41
41
  static get encapsulation() { return "shadow"; }
@@ -156,8 +156,9 @@ export class AfGrid {
156
156
  "resolved": "\"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" | \"8\"",
157
157
  "references": {
158
158
  "Gap": {
159
- "location": "global",
160
- "id": "global::Gap"
159
+ "location": "import",
160
+ "path": "../../types",
161
+ "id": "src/types.ts::Gap"
161
162
  }
162
163
  }
163
164
  },
@@ -1 +1 @@
1
- {"version":3,"file":"af-grid.js","sourceRoot":"","sources":["../../../src/components/af-grid/af-grid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAMzD;;;;;GAKG;AAMH,MAAM,OAAO,MAAM;IALnB;QAME;;WAEG;QACK,YAAO,GAAY,CAAC,CAAC;QAiB7B;;;WAGG;QACK,QAAG,GAAQ,GAAG,CAAC;QAEvB;;WAEG;QACK,UAAK,GAAU,SAAS,CAAC;KA2BlC;IAzBC,MAAM;QACJ,MAAM,QAAQ,GAA0B;YACtC,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,KAAK;YACV,OAAO,EAAE,SAAS;SACnB,CAAC;QAEF,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;gBACtC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC;gBAC3D,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC;gBAC7E,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;gBACpF,YAAY,EAAE,eAAe,IAAI,CAAC,GAAG,GAAG;gBACxC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;aACX;YAE3B,4DAAK,KAAK,EAAC,MAAM;gBACf,8DAAa,CACT,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\ntype Gap = '1' | '2' | '3' | '4' | '5' | '6' | '8';\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | 12;\ntype Align = 'start' | 'center' | 'end' | 'stretch';\n\n/**\n * Generic CSS Grid component for flexible column layouts.\n * Supports responsive column counts at different breakpoints.\n *\n * @slot - Grid items\n */\n@Component({\n tag: 'af-grid',\n styleUrl: 'af-grid.css',\n shadow: true,\n})\nexport class AfGrid {\n /**\n * Number of columns at the default (largest) breakpoint.\n */\n @Prop() columns: Columns = 3;\n\n /**\n * Number of columns at the large breakpoint (1024px and below).\n */\n @Prop() columnsLg?: Columns;\n\n /**\n * Number of columns at the medium breakpoint (768px and below).\n */\n @Prop() columnsMd?: Columns;\n\n /**\n * Number of columns at the small breakpoint (375px and below).\n */\n @Prop() columnsSm?: Columns;\n\n /**\n * Gap between grid items using space tokens (1-8).\n * Maps to --space-1 through --space-8 (4px to 32px).\n */\n @Prop() gap: Gap = '4';\n\n /**\n * Align items within their grid cells.\n */\n @Prop() align: Align = 'stretch';\n\n render() {\n const alignMap: Record<Align, string> = {\n start: 'start',\n center: 'center',\n end: 'end',\n stretch: 'stretch',\n };\n\n return (\n <Host\n style={{\n '--grid-columns': String(this.columns),\n '--grid-columns-lg': String(this.columnsLg ?? this.columns),\n '--grid-columns-md': String(this.columnsMd ?? this.columnsLg ?? this.columns),\n '--grid-columns-sm': String(this.columnsSm ?? this.columnsMd ?? this.columnsLg ?? 1),\n '--grid-gap': `var(--space-${this.gap})`,\n '--grid-align': alignMap[this.align],\n } as Record<string, string>}\n >\n <div class=\"grid\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"]}
1
+ {"version":3,"file":"af-grid.js","sourceRoot":"","sources":["../../../src/components/af-grid/af-grid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAMzD;;;;;GAKG;AAMH,MAAM,OAAO,MAAM;IALnB;QAME;;WAEG;QACK,YAAO,GAAY,CAAC,CAAC;QAiB7B;;;WAGG;QACK,QAAG,GAAQ,GAAG,CAAC;QAEvB;;WAEG;QACK,UAAK,GAAU,SAAS,CAAC;KA2BlC;IAzBC,MAAM;QACJ,MAAM,QAAQ,GAA0B;YACtC,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,KAAK;YACV,OAAO,EAAE,SAAS;SACnB,CAAC;QAEF,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;gBACtC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC;gBAC3D,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC;gBAC7E,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;gBACpF,YAAY,EAAE,eAAe,IAAI,CAAC,GAAG,GAAG;gBACxC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;aACX;YAE3B,4DAAK,KAAK,EAAC,MAAM;gBACf,8DAAa,CACT,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\nimport type { Gap } from '../../types';\n\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | 12;\ntype Align = 'start' | 'center' | 'end' | 'stretch';\n\n/**\n * Generic CSS Grid component for flexible column layouts.\n * Supports responsive column counts at different breakpoints.\n *\n * @slot - Grid items\n */\n@Component({\n tag: 'af-grid',\n styleUrl: 'af-grid.css',\n shadow: true,\n})\nexport class AfGrid {\n /**\n * Number of columns at the default (largest) breakpoint.\n */\n @Prop() columns: Columns = 3;\n\n /**\n * Number of columns at the large breakpoint (1024px and below).\n */\n @Prop() columnsLg?: Columns;\n\n /**\n * Number of columns at the medium breakpoint (768px and below).\n */\n @Prop() columnsMd?: Columns;\n\n /**\n * Number of columns at the small breakpoint (375px and below).\n */\n @Prop() columnsSm?: Columns;\n\n /**\n * Gap between grid items using space tokens (1-8).\n * Maps to --space-1 through --space-8 (4px to 32px).\n */\n @Prop() gap: Gap = '4';\n\n /**\n * Align items within their grid cells.\n */\n @Prop() align: Align = 'stretch';\n\n render() {\n const alignMap: Record<Align, string> = {\n start: 'start',\n center: 'center',\n end: 'end',\n stretch: 'stretch',\n };\n\n return (\n <Host\n style={{\n '--grid-columns': String(this.columns),\n '--grid-columns-lg': String(this.columnsLg ?? this.columns),\n '--grid-columns-md': String(this.columnsMd ?? this.columnsLg ?? this.columns),\n '--grid-columns-sm': String(this.columnsSm ?? this.columnsMd ?? this.columnsLg ?? 1),\n '--grid-gap': `var(--space-${this.gap})`,\n '--grid-align': alignMap[this.align],\n } as Record<string, string>}\n >\n <div class=\"grid\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"]}
@@ -0,0 +1,282 @@
1
+ :host {
2
+ display: block;
3
+ position: relative;
4
+ width: 100%;
5
+ /* Image-lift custom property — consumers override per-page via inline
6
+ style or a page-level rule. The negative value pulls the photo's
7
+ crown above the hero top so it reads behind the floating navbar
8
+ pill. Matches the live Webflow stack (~-260px on .page-banner). */
9
+ --af-hero-image-lift: -260px;
10
+ /* Blob mask container size override — rarely needed; defaults to the
11
+ photo column's natural dimensions. */
12
+ --af-hero-image-min-height: 360px;
13
+ }
14
+
15
+ .hero__section {
16
+ position: relative;
17
+ overflow: hidden;
18
+ }
19
+
20
+ /* -----------------------------------------------------------------
21
+ Paperclip watermark slot (inkwell-centered only)
22
+ ----------------------------------------------------------------- */
23
+ .hero__paperclip {
24
+ position: absolute;
25
+ top: 50%;
26
+ right: 0;
27
+ transform: translateY(-50%);
28
+ pointer-events: none;
29
+ z-index: 0;
30
+ /* Default size — consumers can resize the slotted decoration via its
31
+ own width/height props. */
32
+ width: 655px;
33
+ height: 754px;
34
+ }
35
+
36
+ @media (max-width: 991px) {
37
+ .hero__paperclip {
38
+ width: 480px;
39
+ height: 552px;
40
+ }
41
+ }
42
+
43
+ @media (max-width: 767px) {
44
+ .hero__paperclip {
45
+ display: none;
46
+ }
47
+ }
48
+
49
+ /* -----------------------------------------------------------------
50
+ Inner wrapper — top/bottom padding
51
+ ----------------------------------------------------------------- */
52
+ .hero__inner {
53
+ position: relative;
54
+ z-index: 1;
55
+ padding-bottom: 40px;
56
+ }
57
+
58
+ :host(.hero--pad-default) .hero__inner {
59
+ padding-top: 124px;
60
+ }
61
+
62
+ :host(.hero--pad-loose) .hero__inner {
63
+ padding-top: 164px;
64
+ }
65
+
66
+ /* Centered variant uses slightly tighter top padding to match the live
67
+ /platform hero (80px), since the lockup is typically tall. */
68
+ :host(.hero--inkwell-centered.hero--pad-default) .hero__inner {
69
+ padding-top: 80px;
70
+ }
71
+
72
+ /* -----------------------------------------------------------------
73
+ Grid layout (photo + illustration variants)
74
+ ----------------------------------------------------------------- */
75
+ .hero__grid {
76
+ display: grid;
77
+ grid-template-columns: 5fr 7fr;
78
+ gap: 40px;
79
+ align-items: center;
80
+ }
81
+
82
+ /* Illustration variants use a looser two-column split so the art
83
+ doesn't dominate. */
84
+ :host(.hero--soft-clay-illustration) .hero__grid,
85
+ :host(.hero--mist-green-illustration) .hero__grid {
86
+ grid-template-columns: 1fr auto;
87
+ gap: 48px;
88
+ }
89
+
90
+ .hero__copy {
91
+ /* Small inset pushes heading inward from the hard container edge —
92
+ matches the live .page-banner-text treatment. Only applied to
93
+ left-aligned variants. */
94
+ padding-left: 16px;
95
+ }
96
+
97
+ :host(.hero--inkwell-photo.hero--pad-loose) .hero__copy {
98
+ /* Mirrors ListingHero's `padding-bottom: 120px` — combined with
99
+ `align-items: center` on the grid, this shifts the heading visually
100
+ upward so the subtitle lines up near the image's vertical centre. */
101
+ padding-bottom: 120px;
102
+ }
103
+
104
+ :host(.hero--inkwell-centered) .hero__copy {
105
+ padding-left: 0;
106
+ text-align: center;
107
+ }
108
+
109
+ .hero__badge:not(:has(*)) {
110
+ display: none;
111
+ }
112
+
113
+ .hero__badge:has(*) {
114
+ margin-bottom: 16px;
115
+ }
116
+
117
+ .hero__copy ::slotted([slot='badge']) {
118
+ display: inline-block;
119
+ }
120
+
121
+ .hero__buttons {
122
+ margin-top: 32px;
123
+ }
124
+
125
+ .hero__buttons:empty {
126
+ display: none;
127
+ }
128
+
129
+ :host(.hero--inkwell-centered) .hero__buttons {
130
+ display: flex;
131
+ justify-content: center;
132
+ }
133
+
134
+ /* -----------------------------------------------------------------
135
+ Photo (inkwell-photo)
136
+ Blob-mask shape defined once as a CSS custom property so Stencil
137
+ doesn't duplicate the giant base64 URL for prefixed/unprefixed pairs.
138
+ ----------------------------------------------------------------- */
139
+ :host {
140
+ --af-hero-blob-mask: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3NDEgOTQwIj48cGF0aCBkPSJNMTcwLjA2MyAxODEuOTQ1QzIzNC4xNTYgMzAuOTUxNCA0MDguNTE4IC0zOS40OTU1IDU1OS41MTIgMjQuNTk3NUM3MTAuNTA2IDg4LjY5MDQgNzgwLjk1MiAyNjMuMDUzIDcxNi44NTkgNDE0LjA0Nkw1NzAuODQ3IDc1OC4wMzFDNTA2Ljc1NCA5MDkuMDI0IDMzMi4zOTIgOTc5LjQ3MSAxODEuMzk4IDkxNS4zNzhDMzAuNDA0NSA4NTEuMjg1IC00MC4wNDI0IDY3Ni45MjMgMjQuMDUwNiA1MjUuOTI5TDE3MC4wNjMgMTgxLjk0NVoiIGZpbGw9IiMwMDAiLz48L3N2Zz4=');
141
+ --af-hero-blob-mask-mobile: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 768"><path fill="%23000" d="M1024 0H384A384 384 0 0 0 384 768H1024V0Z"/></svg>');
142
+ }
143
+
144
+ .hero__image {
145
+ min-height: var(--af-hero-image-min-height);
146
+ overflow: visible;
147
+ margin-top: var(--af-hero-image-lift);
148
+ position: relative;
149
+ z-index: 1;
150
+ }
151
+
152
+ .hero__image--masked ::slotted(img),
153
+ .hero__image--masked ::slotted(picture img),
154
+ .hero__image--masked ::slotted(.af-hero-image) {
155
+ display: block;
156
+ width: 100%;
157
+ height: auto;
158
+ -webkit-mask-image: var(--af-hero-blob-mask);
159
+ mask-image: var(--af-hero-blob-mask);
160
+ -webkit-mask-size: 100% 100%;
161
+ mask-size: 100% 100%;
162
+ -webkit-mask-repeat: no-repeat;
163
+ mask-repeat: no-repeat;
164
+ -webkit-mask-position: center;
165
+ mask-position: center;
166
+ mask-mode: alpha;
167
+ }
168
+
169
+ /* Fallback: some consumers slot a raw <img> wrapped in a container.
170
+ Descendant selector per repo convention. */
171
+ .hero__image--masked img {
172
+ -webkit-mask-image: var(--af-hero-blob-mask);
173
+ mask-image: var(--af-hero-blob-mask);
174
+ -webkit-mask-size: 100% 100%;
175
+ mask-size: 100% 100%;
176
+ -webkit-mask-repeat: no-repeat;
177
+ mask-repeat: no-repeat;
178
+ -webkit-mask-position: center;
179
+ mask-position: center;
180
+ mask-mode: alpha;
181
+ }
182
+
183
+ /* -----------------------------------------------------------------
184
+ Illustration (inkwell/soft-clay/mist-green -illustration)
185
+ ----------------------------------------------------------------- */
186
+ .hero__illustration {
187
+ flex: 0 0 auto;
188
+ width: 100%;
189
+ max-width: 432px;
190
+ line-height: 0;
191
+ justify-self: end;
192
+ }
193
+
194
+ .hero__illustration ::slotted(svg),
195
+ .hero__illustration ::slotted(img) {
196
+ width: 100%;
197
+ height: auto;
198
+ display: block;
199
+ border-radius: 16px;
200
+ }
201
+
202
+ :host(.hero--inkwell-illustration) .hero__illustration {
203
+ max-width: none;
204
+ }
205
+
206
+ /* -----------------------------------------------------------------
207
+ Logos-below overlap
208
+ Painted in the theme's background token so the strip cleanly overlaps
209
+ the bottom of the photo on the -photo variant. Empty = collapsed.
210
+ ----------------------------------------------------------------- */
211
+ .hero__logos {
212
+ position: relative;
213
+ z-index: 2;
214
+ }
215
+
216
+ .hero__logos:not(:has(*)) {
217
+ display: none;
218
+ }
219
+
220
+ /* Photo variant pulls the logos row up so it covers the image's bottom
221
+ edge — matches the ListingHero `.listing-hero__footer` treatment. */
222
+ :host(.hero--inkwell-photo) .hero__logos:has(*) {
223
+ margin-top: -240px;
224
+ padding-top: 48px;
225
+ padding-bottom: 48px;
226
+ background: var(--af-background-base, var(--colour-brand-inkwell, #14343b));
227
+ border-top: 1px solid
228
+ var(--af-background-border-subtle, var(--colour-inkwell-450, #203e45));
229
+ }
230
+
231
+ /* -----------------------------------------------------------------
232
+ Mobile / tablet
233
+ ----------------------------------------------------------------- */
234
+ @media (max-width: 991px) {
235
+ :host(.hero--pad-default) .hero__inner,
236
+ :host(.hero--pad-loose) .hero__inner {
237
+ padding-top: 112px;
238
+ }
239
+
240
+ .hero__grid {
241
+ grid-template-columns: 1fr;
242
+ gap: 32px;
243
+ }
244
+
245
+ :host(.hero--soft-clay-illustration) .hero__grid,
246
+ :host(.hero--mist-green-illustration) .hero__grid {
247
+ grid-template-columns: 1fr;
248
+ }
249
+
250
+ .hero__copy {
251
+ padding-left: 0;
252
+ padding-bottom: 0;
253
+ }
254
+
255
+ .hero__illustration {
256
+ max-width: 360px;
257
+ margin-inline: auto;
258
+ justify-self: center;
259
+ }
260
+
261
+ /* Photo on mobile: swap the desktop blob mask for the softer D-curve
262
+ mobile variant, and drop the lift so the image doesn't crash into
263
+ the navbar. */
264
+ .hero__image {
265
+ margin-top: 0;
266
+ min-height: auto;
267
+ }
268
+
269
+ :host(.hero--inkwell-photo) .hero__image--masked ::slotted(img),
270
+ :host(.hero--inkwell-photo) .hero__image--masked img {
271
+ -webkit-mask-image: var(--af-hero-blob-mask-mobile);
272
+ mask-image: var(--af-hero-blob-mask-mobile);
273
+ }
274
+
275
+ :host(.hero--inkwell-photo) .hero__logos:has(*) {
276
+ margin-top: 24px;
277
+ padding-top: 32px;
278
+ padding-bottom: 32px;
279
+ background: transparent;
280
+ border-top: none;
281
+ }
282
+ }