@affinda/wc 0.1.0 → 0.2.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 (470) 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-theme-override.entry.esm.js.map +1 -1
  19. package/dist/affinda/af-typography-lockup.entry.esm.js.map +1 -1
  20. package/dist/affinda/affinda.esm.js +1 -1
  21. package/dist/affinda/index.esm.js +1 -1
  22. package/dist/affinda/index.esm.js.map +1 -1
  23. package/dist/affinda/{p-4cf65950.entry.js → p-068ac2fb.entry.js} +2 -2
  24. package/dist/affinda/{p-4b154e23.entry.js → p-09dfcd40.entry.js} +2 -2
  25. package/dist/affinda/{p-f10a31cb.entry.js → p-0acadf6f.entry.js} +2 -2
  26. package/dist/affinda/{p-e1e98cd6.entry.js → p-1b4b0c88.entry.js} +2 -2
  27. package/dist/affinda/p-2237e652.entry.js +2 -0
  28. package/dist/affinda/{p-56fe6e6e.entry.js.map → p-2237e652.entry.js.map} +1 -1
  29. package/dist/affinda/p-2526604b.entry.js +2 -0
  30. package/dist/affinda/p-2526604b.entry.js.map +1 -0
  31. package/dist/affinda/{p-8c4e3047.entry.js → p-256970e3.entry.js} +2 -2
  32. package/dist/affinda/p-32d62fbb.entry.js +2 -0
  33. package/dist/affinda/{p-3ee906de.entry.js → p-342b08e5.entry.js} +2 -2
  34. package/dist/affinda/{p-a84ae4a5.entry.js → p-365a75e2.entry.js} +2 -2
  35. package/dist/affinda/p-3ed408f6.entry.js +2 -0
  36. package/dist/affinda/{p-edb1a010.entry.js → p-4058a1eb.entry.js} +2 -2
  37. package/dist/affinda/{p-94f51238.entry.js → p-41bbb218.entry.js} +2 -2
  38. package/dist/affinda/p-436673bb.entry.js +2 -0
  39. package/dist/affinda/p-436673bb.entry.js.map +1 -0
  40. package/dist/affinda/{p-c8c4783c.entry.js → p-44d960ca.entry.js} +2 -2
  41. package/dist/affinda/{p-e1cbe95a.entry.js → p-4a9b192b.entry.js} +2 -2
  42. package/dist/affinda/p-4eeeb8a1.entry.js +2 -0
  43. package/dist/affinda/{p-49521f2e.entry.js.map → p-4eeeb8a1.entry.js.map} +1 -1
  44. package/dist/affinda/{p-b2633acb.entry.js → p-5c163c5b.entry.js} +2 -2
  45. package/dist/affinda/{p-48aadea9.entry.js → p-5e5e7d75.entry.js} +2 -2
  46. package/dist/affinda/{p-da2d84f7.entry.js → p-61a6b43d.entry.js} +2 -2
  47. package/dist/affinda/{p-ea42c40b.entry.js → p-631d141c.entry.js} +2 -2
  48. package/dist/affinda/{p-6038a213.entry.js → p-6475796d.entry.js} +2 -2
  49. package/dist/affinda/p-6756aa66.entry.js +2 -0
  50. package/dist/affinda/p-6e181b2b.entry.js +2 -0
  51. package/dist/affinda/{p-0201c8bd.entry.js → p-6ea474a3.entry.js} +2 -2
  52. package/dist/affinda/{p-a71d528d.entry.js → p-7111051c.entry.js} +2 -2
  53. package/dist/affinda/p-7d3cdda1.entry.js +2 -0
  54. package/dist/affinda/p-7d3cdda1.entry.js.map +1 -0
  55. package/dist/affinda/{p-0137e7a5.entry.js → p-827f3050.entry.js} +2 -2
  56. package/dist/affinda/{p-78518e6c.entry.js → p-83bb96cc.entry.js} +2 -2
  57. package/dist/affinda/p-85cc55bb.entry.js +2 -0
  58. package/dist/affinda/p-85cc55bb.entry.js.map +1 -0
  59. package/dist/affinda/{p-2e6192eb.entry.js → p-9480f00d.entry.js} +2 -2
  60. package/dist/affinda/{p-e055407b.entry.js → p-9ce0adc2.entry.js} +2 -2
  61. package/dist/affinda/{p-81706709.entry.js → p-a02d6192.entry.js} +2 -2
  62. package/dist/affinda/p-a1e80460.entry.js +2 -0
  63. package/dist/affinda/{p-ef5857cf.entry.js.map → p-a1e80460.entry.js.map} +1 -1
  64. package/dist/affinda/{p-ad41f905.entry.js → p-a25d3257.entry.js} +2 -2
  65. package/dist/affinda/{p-50a67fb6.entry.js → p-a7a8f18c.entry.js} +2 -2
  66. package/dist/affinda/{p-5f6a5741.entry.js → p-a8d75eb1.entry.js} +2 -2
  67. package/dist/affinda/{p-5265e82e.entry.js → p-ae430873.entry.js} +2 -2
  68. package/dist/affinda/{p-081cc890.entry.js → p-b39eea31.entry.js} +2 -2
  69. package/dist/affinda/{p-4c4406bf.entry.js → p-b9ec0e75.entry.js} +2 -2
  70. package/dist/affinda/{p-feb3d03f.entry.js → p-bbfc9df6.entry.js} +2 -2
  71. package/dist/affinda/{p-6c58b283.entry.js → p-bed7d9a1.entry.js} +2 -2
  72. package/dist/affinda/{p-3a0e45c3.entry.js → p-d7d82986.entry.js} +2 -2
  73. package/dist/affinda/p-dabd389a.entry.js +2 -0
  74. package/dist/affinda/p-dabd389a.entry.js.map +1 -0
  75. package/dist/affinda/{p-a35029eb.entry.js → p-dcc89b4c.entry.js} +2 -2
  76. package/dist/affinda/{p-6e40dbdf.entry.js → p-de75cb4f.entry.js} +2 -2
  77. package/dist/affinda/{p-f9315f9e.entry.js → p-e07e27f1.entry.js} +2 -2
  78. package/dist/affinda/{p-dbe7ab88.entry.js → p-eeda78ea.entry.js} +2 -2
  79. package/dist/affinda/{p-b2b28366.entry.js → p-f19cb091.entry.js} +2 -2
  80. package/dist/cjs/af-accordion-item.cjs.entry.js +1 -1
  81. package/dist/cjs/af-accordion.cjs.entry.js +1 -1
  82. package/dist/cjs/af-card.cjs.entry.js +1 -1
  83. package/dist/cjs/af-card.entry.cjs.js.map +1 -1
  84. package/dist/cjs/af-center.cjs.entry.js +1 -1
  85. package/dist/cjs/af-client-carousel.cjs.entry.js +1 -1
  86. package/dist/cjs/af-client-carousel.entry.cjs.js.map +1 -1
  87. package/dist/cjs/af-contact-item.cjs.entry.js +1 -1
  88. package/dist/cjs/af-divider.cjs.entry.js +1 -1
  89. package/dist/cjs/af-divider.entry.cjs.js.map +1 -1
  90. package/dist/cjs/af-feature-accordion.cjs.entry.js +2 -2
  91. package/dist/cjs/af-feature-card.entry.cjs.js.map +1 -1
  92. package/dist/cjs/af-feature-grid.cjs.entry.js +1 -1
  93. package/dist/cjs/af-footer-column.cjs.entry.js +1 -1
  94. package/dist/cjs/af-footer-link.cjs.entry.js +1 -1
  95. package/dist/cjs/af-footer.cjs.entry.js +1 -1
  96. package/dist/cjs/af-grid.cjs.entry.js +2 -2
  97. package/dist/cjs/af-grid.entry.cjs.js.map +1 -1
  98. package/dist/cjs/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.cjs.js.map +1 -1
  99. package/dist/cjs/af-heading_5.cjs.entry.js +1 -1
  100. package/dist/cjs/af-hero.cjs.entry.js +94 -0
  101. package/dist/cjs/af-hero.entry.cjs.js.map +1 -0
  102. package/dist/cjs/af-icon-box.cjs.entry.js +1 -1
  103. package/dist/cjs/af-icon-text.cjs.entry.js +1 -1
  104. package/dist/cjs/af-illustrated-card.cjs.entry.js +1 -1
  105. package/dist/cjs/af-illustrated-card.entry.cjs.js.map +1 -1
  106. package/dist/cjs/af-image.cjs.entry.js +1 -1
  107. package/dist/cjs/af-in-page-banner.cjs.entry.js +1 -1
  108. package/dist/cjs/af-in-page-banner.entry.cjs.js.map +1 -1
  109. package/dist/cjs/af-inline.cjs.entry.js +1 -1
  110. package/dist/cjs/af-inline.entry.cjs.js.map +1 -1
  111. package/dist/cjs/af-logo-well.cjs.entry.js +1 -1
  112. package/dist/cjs/af-nav-accordion-item.cjs.entry.js +2 -2
  113. package/dist/cjs/af-nav-accordion.cjs.entry.js +1 -1
  114. package/dist/cjs/af-nav-menu-nest.cjs.entry.js +1 -1
  115. package/dist/cjs/af-nav-menu.cjs.entry.js +1 -1
  116. package/dist/cjs/af-number-badge.cjs.entry.js +1 -1
  117. package/dist/cjs/af-numbered-stepper-item.cjs.entry.js +25 -0
  118. package/dist/cjs/af-numbered-stepper-item.entry.cjs.js.map +1 -0
  119. package/dist/cjs/af-numbered-stepper.cjs.entry.js +36 -0
  120. package/dist/cjs/af-numbered-stepper.entry.cjs.js.map +1 -0
  121. package/dist/cjs/af-paperclip-decoration.cjs.entry.js +1 -1
  122. package/dist/cjs/af-progress-line.cjs.entry.js +2 -2
  123. package/dist/cjs/af-section.cjs.entry.js +2 -2
  124. package/dist/cjs/af-section.entry.cjs.js.map +1 -1
  125. package/dist/cjs/af-show.cjs.entry.js +1 -1
  126. package/dist/cjs/af-social-link.cjs.entry.js +1 -1
  127. package/dist/cjs/af-spacer.cjs.entry.js +1 -1
  128. package/dist/cjs/af-split-section.cjs.entry.js +2 -2
  129. package/dist/cjs/af-split-section.entry.cjs.js.map +1 -1
  130. package/dist/cjs/af-stack.cjs.entry.js +1 -1
  131. package/dist/cjs/af-stack.entry.cjs.js.map +1 -1
  132. package/dist/cjs/af-stat.cjs.entry.js +18 -0
  133. package/dist/cjs/af-stat.entry.cjs.js.map +1 -0
  134. package/dist/cjs/af-stats-row.cjs.entry.js +18 -0
  135. package/dist/cjs/af-stats-row.entry.cjs.js.map +1 -0
  136. package/dist/cjs/af-stepper-step.cjs.entry.js +1 -1
  137. package/dist/cjs/af-stepper.cjs.entry.js +1 -1
  138. package/dist/cjs/af-testimonial-carousel.cjs.entry.js +1 -1
  139. package/dist/cjs/af-testimonial-stat.cjs.entry.js +1 -1
  140. package/dist/cjs/af-testimonial.cjs.entry.js +2 -2
  141. package/dist/cjs/af-text-image-nest.cjs.entry.js +1 -1
  142. package/dist/cjs/af-theme-override.cjs.entry.js +1 -1
  143. package/dist/cjs/af-theme-override.entry.cjs.js.map +1 -1
  144. package/dist/cjs/af-typography-lockup.cjs.entry.js +1 -1
  145. package/dist/cjs/af-typography-lockup.entry.cjs.js.map +1 -1
  146. package/dist/cjs/af-video-container.cjs.entry.js +1 -1
  147. package/dist/cjs/af-visually-hidden.cjs.entry.js +1 -1
  148. package/dist/cjs/affinda.cjs.js +1 -1
  149. package/dist/cjs/index.cjs.js +2 -0
  150. package/dist/cjs/index.cjs.js.map +1 -1
  151. package/dist/cjs/loader.cjs.js +1 -1
  152. package/dist/collection/collection-manifest.json +5 -0
  153. package/dist/collection/components/af-accordion/af-accordion.js +1 -1
  154. package/dist/collection/components/af-accordion-item/af-accordion-item.js +1 -1
  155. package/dist/collection/components/af-card/af-card.js +9 -3
  156. package/dist/collection/components/af-card/af-card.js.map +1 -1
  157. package/dist/collection/components/af-center/af-center.js +1 -1
  158. package/dist/collection/components/af-client-carousel/af-client-carousel.js +4 -3
  159. package/dist/collection/components/af-client-carousel/af-client-carousel.js.map +1 -1
  160. package/dist/collection/components/af-contact-item/af-contact-item.js +1 -1
  161. package/dist/collection/components/af-divider/af-divider.js +1 -1
  162. package/dist/collection/components/af-divider/af-divider.js.map +1 -1
  163. package/dist/collection/components/af-feature-accordion/af-feature-accordion.js +2 -2
  164. package/dist/collection/components/af-feature-card/af-feature-card.js +8 -2
  165. package/dist/collection/components/af-feature-card/af-feature-card.js.map +1 -1
  166. package/dist/collection/components/af-feature-grid/af-feature-grid.js +1 -1
  167. package/dist/collection/components/af-footer/af-footer.js +1 -1
  168. package/dist/collection/components/af-footer-column/af-footer-column.js +1 -1
  169. package/dist/collection/components/af-footer-link/af-footer-link.js +1 -1
  170. package/dist/collection/components/af-grid/af-grid.js +5 -4
  171. package/dist/collection/components/af-grid/af-grid.js.map +1 -1
  172. package/dist/collection/components/af-hero/af-hero.css +282 -0
  173. package/dist/collection/components/af-hero/af-hero.js +314 -0
  174. package/dist/collection/components/af-hero/af-hero.js.map +1 -0
  175. package/dist/collection/components/af-icon-box/af-icon-box.js +1 -1
  176. package/dist/collection/components/af-icon-text/af-icon-text.js +1 -1
  177. package/dist/collection/components/af-illustrated-card/af-illustrated-card.js +9 -3
  178. package/dist/collection/components/af-illustrated-card/af-illustrated-card.js.map +1 -1
  179. package/dist/collection/components/af-image/af-image.js +1 -1
  180. package/dist/collection/components/af-in-page-banner/af-in-page-banner.js +7 -6
  181. package/dist/collection/components/af-in-page-banner/af-in-page-banner.js.map +1 -1
  182. package/dist/collection/components/af-inline/af-inline.js +4 -3
  183. package/dist/collection/components/af-inline/af-inline.js.map +1 -1
  184. package/dist/collection/components/af-logo-well/af-logo-well.js +1 -1
  185. package/dist/collection/components/af-nav-accordion/af-nav-accordion.js +1 -1
  186. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.js +2 -2
  187. package/dist/collection/components/af-nav-menu/af-nav-menu.js +1 -1
  188. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.js +1 -1
  189. package/dist/collection/components/af-navbar/af-navbar.js +10 -4
  190. package/dist/collection/components/af-navbar/af-navbar.js.map +1 -1
  191. package/dist/collection/components/af-number-badge/af-number-badge.js +1 -1
  192. package/dist/collection/components/af-numbered-stepper/af-numbered-stepper.css +30 -0
  193. package/dist/collection/components/af-numbered-stepper/af-numbered-stepper.js +92 -0
  194. package/dist/collection/components/af-numbered-stepper/af-numbered-stepper.js.map +1 -0
  195. package/dist/collection/components/af-numbered-stepper-item/af-numbered-stepper-item.css +113 -0
  196. package/dist/collection/components/af-numbered-stepper-item/af-numbered-stepper-item.js +66 -0
  197. package/dist/collection/components/af-numbered-stepper-item/af-numbered-stepper-item.js.map +1 -0
  198. package/dist/collection/components/af-paperclip-decoration/af-paperclip-decoration.js +1 -1
  199. package/dist/collection/components/af-progress-line/af-progress-line.js +2 -2
  200. package/dist/collection/components/af-section/af-section.js +18 -6
  201. package/dist/collection/components/af-section/af-section.js.map +1 -1
  202. package/dist/collection/components/af-show/af-show.js +1 -1
  203. package/dist/collection/components/af-social-link/af-social-link.js +1 -1
  204. package/dist/collection/components/af-spacer/af-spacer.js +1 -1
  205. package/dist/collection/components/af-split-section/af-split-section.js +16 -8
  206. package/dist/collection/components/af-split-section/af-split-section.js.map +1 -1
  207. package/dist/collection/components/af-stack/af-stack.js +4 -3
  208. package/dist/collection/components/af-stack/af-stack.js.map +1 -1
  209. package/dist/collection/components/af-stat/af-stat.css +25 -0
  210. package/dist/collection/components/af-stat/af-stat.js +69 -0
  211. package/dist/collection/components/af-stat/af-stat.js.map +1 -0
  212. package/dist/collection/components/af-stats-row/af-stats-row.css +32 -0
  213. package/dist/collection/components/af-stats-row/af-stats-row.js +33 -0
  214. package/dist/collection/components/af-stats-row/af-stats-row.js.map +1 -0
  215. package/dist/collection/components/af-stepper/af-stepper.js +1 -1
  216. package/dist/collection/components/af-stepper-step/af-stepper-step.js +1 -1
  217. package/dist/collection/components/af-testimonial/af-testimonial.js +2 -2
  218. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js +1 -1
  219. package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js +1 -1
  220. package/dist/collection/components/af-text-image-nest/af-text-image-nest.js +1 -1
  221. package/dist/collection/components/af-theme-override/af-theme-override.js +9 -3
  222. package/dist/collection/components/af-theme-override/af-theme-override.js.map +1 -1
  223. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js +9 -3
  224. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js.map +1 -1
  225. package/dist/collection/components/af-video-container/af-video-container.js +1 -1
  226. package/dist/collection/components/af-visually-hidden/af-visually-hidden.js +1 -1
  227. package/dist/collection/components.js +1 -0
  228. package/dist/collection/components.js.map +1 -1
  229. package/dist/collection/types.js +2 -0
  230. package/dist/collection/types.js.map +1 -0
  231. package/dist/components/af-accordion-item.js +1 -1
  232. package/dist/components/af-accordion.js +1 -1
  233. package/dist/components/af-card.js +1 -1
  234. package/dist/components/af-center.js +1 -1
  235. package/dist/components/af-client-carousel.js +1 -1
  236. package/dist/components/af-client-carousel.js.map +1 -1
  237. package/dist/components/af-contact-item.js +1 -1
  238. package/dist/components/af-divider.js +1 -1
  239. package/dist/components/af-divider.js.map +1 -1
  240. package/dist/components/af-feature-accordion.js +2 -2
  241. package/dist/components/af-feature-card.js +1 -1
  242. package/dist/components/af-feature-grid.js +2 -2
  243. package/dist/components/af-footer-column.js +1 -1
  244. package/dist/components/af-footer-link.js +1 -1
  245. package/dist/components/af-footer.js +1 -1
  246. package/dist/components/af-grid-callout.js +1 -1
  247. package/dist/components/af-grid.js +2 -2
  248. package/dist/components/af-grid.js.map +1 -1
  249. package/dist/components/af-hero.d.ts +11 -0
  250. package/dist/components/af-hero.js +9 -0
  251. package/dist/components/af-hero.js.map +1 -0
  252. package/dist/components/af-icon-box.js +1 -1
  253. package/dist/components/af-icon-text.js +3 -3
  254. package/dist/components/af-illustrated-card.js +1 -1
  255. package/dist/components/af-image.js +1 -1
  256. package/dist/components/af-in-page-banner.js +1 -1
  257. package/dist/components/af-in-page-banner.js.map +1 -1
  258. package/dist/components/af-inline.js +1 -1
  259. package/dist/components/af-inline.js.map +1 -1
  260. package/dist/components/af-logo-well.js +1 -1
  261. package/dist/components/af-nav-accordion-item.js +2 -2
  262. package/dist/components/af-nav-accordion.js +1 -1
  263. package/dist/components/af-nav-menu-nest.js +1 -1
  264. package/dist/components/af-nav-menu.js +1 -1
  265. package/dist/components/af-navbar.js +1 -1
  266. package/dist/components/af-number-badge.js +1 -58
  267. package/dist/components/af-number-badge.js.map +1 -1
  268. package/dist/components/af-numbered-stepper-item.d.ts +11 -0
  269. package/dist/components/af-numbered-stepper-item.js +58 -0
  270. package/dist/components/af-numbered-stepper-item.js.map +1 -0
  271. package/dist/components/af-numbered-stepper.d.ts +11 -0
  272. package/dist/components/af-numbered-stepper.js +57 -0
  273. package/dist/components/af-numbered-stepper.js.map +1 -0
  274. package/dist/components/af-paperclip-decoration.js +1 -1
  275. package/dist/components/af-progress-line.js +1 -1
  276. package/dist/components/af-section.js +1 -46
  277. package/dist/components/af-section.js.map +1 -1
  278. package/dist/components/af-show.js +1 -1
  279. package/dist/components/af-social-link.js +1 -1
  280. package/dist/components/af-spacer.js +1 -1
  281. package/dist/components/af-split-section.js +2 -2
  282. package/dist/components/af-split-section.js.map +1 -1
  283. package/dist/components/af-stack.js +1 -1
  284. package/dist/components/af-stack.js.map +1 -1
  285. package/dist/components/af-stat.d.ts +11 -0
  286. package/dist/components/af-stat.js +53 -0
  287. package/dist/components/af-stat.js.map +1 -0
  288. package/dist/components/af-stats-row.d.ts +11 -0
  289. package/dist/components/af-stats-row.js +37 -0
  290. package/dist/components/af-stats-row.js.map +1 -0
  291. package/dist/components/af-stepper-step.js +1 -1
  292. package/dist/components/af-stepper.js +1 -1
  293. package/dist/components/af-testimonial-carousel.js +2 -2
  294. package/dist/components/af-testimonial-stat.js +1 -1
  295. package/dist/components/af-testimonial.js +2 -2
  296. package/dist/components/af-text-image-nest.js +1 -1
  297. package/dist/components/af-text-image.js +1 -1
  298. package/dist/components/af-theme-override.js +1 -1
  299. package/dist/components/af-theme-override.js.map +1 -1
  300. package/dist/components/af-typography-lockup.js +1 -1
  301. package/dist/components/af-video-container.js +1 -1
  302. package/dist/components/af-visually-hidden.js +1 -1
  303. package/dist/components/index.js +5 -4
  304. package/dist/components/index.js.map +1 -1
  305. package/dist/components/{p-C6-JATRR.js → p-3Gzh4deR.js} +5 -5
  306. package/dist/components/p-3Gzh4deR.js.map +1 -0
  307. package/dist/components/{p-DO9J0XTo.js → p-BXmiPS9x.js} +4 -4
  308. package/dist/components/{p-DO9J0XTo.js.map → p-BXmiPS9x.js.map} +1 -1
  309. package/dist/components/{p-CKLkuSI3.js → p-CJxqw006.js} +3 -3
  310. package/dist/components/{p-CKLkuSI3.js.map → p-CJxqw006.js.map} +1 -1
  311. package/dist/components/p-CRnEuh5f.js +136 -0
  312. package/dist/components/p-CRnEuh5f.js.map +1 -0
  313. package/dist/components/{p-DNeNJhuM.js → p-ClZAZSzR.js} +3 -3
  314. package/dist/components/{p-DNeNJhuM.js.map → p-ClZAZSzR.js.map} +1 -1
  315. package/dist/components/{p-HMlLQQwp.js → p-DqJRvNOl.js} +3 -3
  316. package/dist/components/{p-HMlLQQwp.js.map → p-DqJRvNOl.js.map} +1 -1
  317. package/dist/components/{p-Bh6Cfgtj.js → p-LRPXnaSx.js} +3 -3
  318. package/dist/components/{p-Bh6Cfgtj.js.map → p-LRPXnaSx.js.map} +1 -1
  319. package/dist/components/p-O26uYJSV.js +51 -0
  320. package/dist/components/p-O26uYJSV.js.map +1 -0
  321. package/dist/components/p-QoDae21y.js +63 -0
  322. package/dist/components/p-QoDae21y.js.map +1 -0
  323. package/dist/components/{p-CNzQtskW.js → p-mbl86-w6.js} +4 -4
  324. package/dist/components/p-mbl86-w6.js.map +1 -0
  325. package/dist/components/{p-i_6TLQJ5.js → p-nA3Uvhwb.js} +3 -3
  326. package/dist/components/{p-i_6TLQJ5.js.map → p-nA3Uvhwb.js.map} +1 -1
  327. package/dist/esm/af-accordion-item.entry.js +1 -1
  328. package/dist/esm/af-accordion.entry.js +1 -1
  329. package/dist/esm/af-card.entry.js +1 -1
  330. package/dist/esm/af-card.entry.js.map +1 -1
  331. package/dist/esm/af-center.entry.js +1 -1
  332. package/dist/esm/af-client-carousel.entry.js +1 -1
  333. package/dist/esm/af-client-carousel.entry.js.map +1 -1
  334. package/dist/esm/af-contact-item.entry.js +1 -1
  335. package/dist/esm/af-divider.entry.js +1 -1
  336. package/dist/esm/af-divider.entry.js.map +1 -1
  337. package/dist/esm/af-feature-accordion.entry.js +2 -2
  338. package/dist/esm/af-feature-card.entry.js.map +1 -1
  339. package/dist/esm/af-feature-grid.entry.js +1 -1
  340. package/dist/esm/af-footer-column.entry.js +1 -1
  341. package/dist/esm/af-footer-link.entry.js +1 -1
  342. package/dist/esm/af-footer.entry.js +1 -1
  343. package/dist/esm/af-grid.entry.js +2 -2
  344. package/dist/esm/af-grid.entry.js.map +1 -1
  345. package/dist/esm/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js.map +1 -1
  346. package/dist/esm/af-heading_5.entry.js +1 -1
  347. package/dist/esm/af-hero.entry.js +92 -0
  348. package/dist/esm/af-hero.entry.js.map +1 -0
  349. package/dist/esm/af-icon-box.entry.js +1 -1
  350. package/dist/esm/af-icon-text.entry.js +1 -1
  351. package/dist/esm/af-illustrated-card.entry.js +1 -1
  352. package/dist/esm/af-illustrated-card.entry.js.map +1 -1
  353. package/dist/esm/af-image.entry.js +1 -1
  354. package/dist/esm/af-in-page-banner.entry.js +1 -1
  355. package/dist/esm/af-in-page-banner.entry.js.map +1 -1
  356. package/dist/esm/af-inline.entry.js +1 -1
  357. package/dist/esm/af-inline.entry.js.map +1 -1
  358. package/dist/esm/af-logo-well.entry.js +1 -1
  359. package/dist/esm/af-nav-accordion-item.entry.js +2 -2
  360. package/dist/esm/af-nav-accordion.entry.js +1 -1
  361. package/dist/esm/af-nav-menu-nest.entry.js +1 -1
  362. package/dist/esm/af-nav-menu.entry.js +1 -1
  363. package/dist/esm/af-number-badge.entry.js +1 -1
  364. package/dist/esm/af-numbered-stepper-item.entry.js +23 -0
  365. package/dist/esm/af-numbered-stepper-item.entry.js.map +1 -0
  366. package/dist/esm/af-numbered-stepper.entry.js +34 -0
  367. package/dist/esm/af-numbered-stepper.entry.js.map +1 -0
  368. package/dist/esm/af-paperclip-decoration.entry.js +1 -1
  369. package/dist/esm/af-progress-line.entry.js +2 -2
  370. package/dist/esm/af-section.entry.js +2 -2
  371. package/dist/esm/af-section.entry.js.map +1 -1
  372. package/dist/esm/af-show.entry.js +1 -1
  373. package/dist/esm/af-social-link.entry.js +1 -1
  374. package/dist/esm/af-spacer.entry.js +1 -1
  375. package/dist/esm/af-split-section.entry.js +2 -2
  376. package/dist/esm/af-split-section.entry.js.map +1 -1
  377. package/dist/esm/af-stack.entry.js +1 -1
  378. package/dist/esm/af-stack.entry.js.map +1 -1
  379. package/dist/esm/af-stat.entry.js +16 -0
  380. package/dist/esm/af-stat.entry.js.map +1 -0
  381. package/dist/esm/af-stats-row.entry.js +16 -0
  382. package/dist/esm/af-stats-row.entry.js.map +1 -0
  383. package/dist/esm/af-stepper-step.entry.js +1 -1
  384. package/dist/esm/af-stepper.entry.js +1 -1
  385. package/dist/esm/af-testimonial-carousel.entry.js +1 -1
  386. package/dist/esm/af-testimonial-stat.entry.js +1 -1
  387. package/dist/esm/af-testimonial.entry.js +2 -2
  388. package/dist/esm/af-text-image-nest.entry.js +1 -1
  389. package/dist/esm/af-theme-override.entry.js +1 -1
  390. package/dist/esm/af-theme-override.entry.js.map +1 -1
  391. package/dist/esm/af-typography-lockup.entry.js +1 -1
  392. package/dist/esm/af-typography-lockup.entry.js.map +1 -1
  393. package/dist/esm/af-video-container.entry.js +1 -1
  394. package/dist/esm/af-visually-hidden.entry.js +1 -1
  395. package/dist/esm/affinda.js +1 -1
  396. package/dist/esm/index.js +1 -0
  397. package/dist/esm/index.js.map +1 -1
  398. package/dist/esm/loader.js +1 -1
  399. package/dist/types/components/af-card/af-card.d.ts +2 -1
  400. package/dist/types/components/af-client-carousel/af-client-carousel.d.ts +1 -1
  401. package/dist/types/components/af-divider/af-divider.d.ts +2 -1
  402. package/dist/types/components/af-feature-card/af-feature-card.d.ts +2 -1
  403. package/dist/types/components/af-grid/af-grid.d.ts +1 -1
  404. package/dist/types/components/af-hero/af-hero.d.ts +93 -0
  405. package/dist/types/components/af-illustrated-card/af-illustrated-card.d.ts +2 -1
  406. package/dist/types/components/af-in-page-banner/af-in-page-banner.d.ts +2 -3
  407. package/dist/types/components/af-inline/af-inline.d.ts +1 -1
  408. package/dist/types/components/af-navbar/af-navbar.d.ts +2 -1
  409. package/dist/types/components/af-numbered-stepper/af-numbered-stepper.d.ts +38 -0
  410. package/dist/types/components/af-numbered-stepper-item/af-numbered-stepper-item.d.ts +22 -0
  411. package/dist/types/components/af-section/af-section.d.ts +3 -2
  412. package/dist/types/components/af-split-section/af-split-section.d.ts +2 -3
  413. package/dist/types/components/af-stack/af-stack.d.ts +1 -1
  414. package/dist/types/components/af-stat/af-stat.d.ts +15 -0
  415. package/dist/types/components/af-stats-row/af-stats-row.d.ts +17 -0
  416. package/dist/types/components/af-theme-override/af-theme-override.d.ts +2 -1
  417. package/dist/types/components/af-typography-lockup/af-typography-lockup.d.ts +2 -1
  418. package/dist/types/components.d.ts +569 -20
  419. package/dist/types/types.d.ts +57 -0
  420. package/package.json +2 -2
  421. package/dist/affinda/p-083fc528.entry.js +0 -2
  422. package/dist/affinda/p-0e469ad2.entry.js +0 -2
  423. package/dist/affinda/p-41643147.entry.js +0 -2
  424. package/dist/affinda/p-49521f2e.entry.js +0 -2
  425. package/dist/affinda/p-56fe6e6e.entry.js +0 -2
  426. package/dist/affinda/p-a6eda8af.entry.js +0 -2
  427. package/dist/affinda/p-ef5857cf.entry.js +0 -2
  428. package/dist/components/p-C6-JATRR.js.map +0 -1
  429. package/dist/components/p-CNzQtskW.js.map +0 -1
  430. /package/dist/affinda/{p-4cf65950.entry.js.map → p-068ac2fb.entry.js.map} +0 -0
  431. /package/dist/affinda/{p-4b154e23.entry.js.map → p-09dfcd40.entry.js.map} +0 -0
  432. /package/dist/affinda/{p-f10a31cb.entry.js.map → p-0acadf6f.entry.js.map} +0 -0
  433. /package/dist/affinda/{p-e1e98cd6.entry.js.map → p-1b4b0c88.entry.js.map} +0 -0
  434. /package/dist/affinda/{p-8c4e3047.entry.js.map → p-256970e3.entry.js.map} +0 -0
  435. /package/dist/affinda/{p-a6eda8af.entry.js.map → p-32d62fbb.entry.js.map} +0 -0
  436. /package/dist/affinda/{p-3ee906de.entry.js.map → p-342b08e5.entry.js.map} +0 -0
  437. /package/dist/affinda/{p-a84ae4a5.entry.js.map → p-365a75e2.entry.js.map} +0 -0
  438. /package/dist/affinda/{p-41643147.entry.js.map → p-3ed408f6.entry.js.map} +0 -0
  439. /package/dist/affinda/{p-edb1a010.entry.js.map → p-4058a1eb.entry.js.map} +0 -0
  440. /package/dist/affinda/{p-94f51238.entry.js.map → p-41bbb218.entry.js.map} +0 -0
  441. /package/dist/affinda/{p-c8c4783c.entry.js.map → p-44d960ca.entry.js.map} +0 -0
  442. /package/dist/affinda/{p-e1cbe95a.entry.js.map → p-4a9b192b.entry.js.map} +0 -0
  443. /package/dist/affinda/{p-b2633acb.entry.js.map → p-5c163c5b.entry.js.map} +0 -0
  444. /package/dist/affinda/{p-48aadea9.entry.js.map → p-5e5e7d75.entry.js.map} +0 -0
  445. /package/dist/affinda/{p-da2d84f7.entry.js.map → p-61a6b43d.entry.js.map} +0 -0
  446. /package/dist/affinda/{p-ea42c40b.entry.js.map → p-631d141c.entry.js.map} +0 -0
  447. /package/dist/affinda/{p-6038a213.entry.js.map → p-6475796d.entry.js.map} +0 -0
  448. /package/dist/affinda/{p-083fc528.entry.js.map → p-6756aa66.entry.js.map} +0 -0
  449. /package/dist/affinda/{p-0e469ad2.entry.js.map → p-6e181b2b.entry.js.map} +0 -0
  450. /package/dist/affinda/{p-0201c8bd.entry.js.map → p-6ea474a3.entry.js.map} +0 -0
  451. /package/dist/affinda/{p-a71d528d.entry.js.map → p-7111051c.entry.js.map} +0 -0
  452. /package/dist/affinda/{p-0137e7a5.entry.js.map → p-827f3050.entry.js.map} +0 -0
  453. /package/dist/affinda/{p-78518e6c.entry.js.map → p-83bb96cc.entry.js.map} +0 -0
  454. /package/dist/affinda/{p-2e6192eb.entry.js.map → p-9480f00d.entry.js.map} +0 -0
  455. /package/dist/affinda/{p-e055407b.entry.js.map → p-9ce0adc2.entry.js.map} +0 -0
  456. /package/dist/affinda/{p-81706709.entry.js.map → p-a02d6192.entry.js.map} +0 -0
  457. /package/dist/affinda/{p-ad41f905.entry.js.map → p-a25d3257.entry.js.map} +0 -0
  458. /package/dist/affinda/{p-50a67fb6.entry.js.map → p-a7a8f18c.entry.js.map} +0 -0
  459. /package/dist/affinda/{p-5f6a5741.entry.js.map → p-a8d75eb1.entry.js.map} +0 -0
  460. /package/dist/affinda/{p-5265e82e.entry.js.map → p-ae430873.entry.js.map} +0 -0
  461. /package/dist/affinda/{p-081cc890.entry.js.map → p-b39eea31.entry.js.map} +0 -0
  462. /package/dist/affinda/{p-4c4406bf.entry.js.map → p-b9ec0e75.entry.js.map} +0 -0
  463. /package/dist/affinda/{p-feb3d03f.entry.js.map → p-bbfc9df6.entry.js.map} +0 -0
  464. /package/dist/affinda/{p-6c58b283.entry.js.map → p-bed7d9a1.entry.js.map} +0 -0
  465. /package/dist/affinda/{p-3a0e45c3.entry.js.map → p-d7d82986.entry.js.map} +0 -0
  466. /package/dist/affinda/{p-a35029eb.entry.js.map → p-dcc89b4c.entry.js.map} +0 -0
  467. /package/dist/affinda/{p-6e40dbdf.entry.js.map → p-de75cb4f.entry.js.map} +0 -0
  468. /package/dist/affinda/{p-f9315f9e.entry.js.map → p-e07e27f1.entry.js.map} +0 -0
  469. /package/dist/affinda/{p-dbe7ab88.entry.js.map → p-eeda78ea.entry.js.map} +0 -0
  470. /package/dist/affinda/{p-b2b28366.entry.js.map → p-f19cb091.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"af-theme-override.js","mappings":";;AAAA,MAAM,kBAAkB,GAAG,8gfAA8gf;;MCkB5hfA,iBAAe,iBAAAC,kBAAA,CAAA,MAAA,eAAA,SAAAC,CAAA,CAAA;AAN5B,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;AAOE;;;AAGG;AACK,QAAA,IAAK,CAAA,KAAA,GAAqE,OAAO;AAW1F;IATC,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,CAAA,qBAAA,EAAwB,IAAI,CAAC,KAAK,EAAE,EAAA,EAC9C,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;;;;;;;;;;;;;;;;;;;","names":["AfThemeOverride","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-theme-override/af-theme-override.css?tag=af-theme-override&encapsulation=scoped","src/components/af-theme-override/af-theme-override.tsx"],"sourcesContent":["/**\n * Theme Override Component Styles\n * \n * Sets theme CSS custom properties WITHOUT applying background color.\n * This allows overriding the theme context for child components while\n * maintaining the parent's visual background.\n */\n\n:host {\n display: contents;\n}\n\n.theme-override {\n display: contents;\n}\n\n/* ==========================================================================\n WHITE THEME\n ========================================================================== */\n\n.theme-white {\n /* Background tokens */\n --af-background-base: var(--colour-brand-white, #FFFFFF);\n --af-background-base-hover: var(--colour-mistgreen-100, #f4f7f6);\n --af-background-contrast: var(--colour-brand-mist-green, #c6d5d1);\n --af-background-level-1: var(--colour-mistgreen-200, #e8eeed);\n --af-background-level-1-hover: var(--colour-mistgreen-300, #dde6e3);\n --af-background-border-subtle: var(--colour-mistgreen-200, #e8eeed);\n --af-background-border-default: var(--colour-mistgreen-400, #d1ddda);\n --af-background-border-heavy: var(--colour-mistgreen-500, #c6d5d1);\n --af-background-border-active: var(--colour-softclay-800, #8a7049);\n --af-background-icon-default: var(--colour-brand-inkwell, #14343b);\n --af-background-icon-accent: var(--colour-brand-soft-clay, #b09670);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-soft-clay, #b09670);\n --af-typography-body-dark: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-typography-body-subtle: var(--colour-inkwell-350, #60767b);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(0, 0, 0, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-stroke: var(--colour-brand-soft-clay, #B09670);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-brand-white, #ffffff);\n --af-input-bg-hover: var(--colour-mistgreen-100, #f4f7f6);\n --af-input-bg-disabled: var(--af-background-level-1);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--af-typography-body-dark);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--af-typography-body-dark);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-brand-white, #ffffff);\n --af-form-control-bg-checked: var(--colour-brand-inkwell, #14343b);\n --af-form-control-bg-disabled: var(--colour-mistgreen-200, #e8ebeb);\n --af-form-control-bg-checked-disabled: var(--colour-inkwell-350, #708380);\n --af-form-control-stroke: var(--colour-mistgreen-500, #d0d6d8);\n --af-form-control-stroke-hover: var(--colour-brand-inkwell, #14343b);\n --af-form-control-stroke-disabled: var(--colour-mistgreen-500, #d0d6d8);\n --af-form-control-icon: var(--colour-brand-white, #ffffff);\n --af-form-control-label: var(--colour-brand-inkwell, #14343b);\n}\n\n/* ==========================================================================\n INKWELL THEME (Dark)\n ========================================================================== */\n\n.theme-inkwell {\n /* Background tokens */\n --af-background-base: var(--colour-brand-inkwell, #14343b);\n --af-background-base-hover: var(--colour-inkwell-600, #102a2f);\n --af-background-contrast: var(--colour-inkwell-700, #102a2f);\n --af-background-level-1: var(--colour-inkwell-450, #203e45);\n --af-background-level-1-hover: var(--colour-inkwell-400, #2b484f);\n --af-background-border-subtle: var(--colour-inkwell-450, #203e45);\n --af-background-border-default: var(--colour-inkwell-400, #2b484f);\n --af-background-border-heavy: var(--colour-inkwell-700, #102a2f);\n --af-background-border-active: var(--colour-brand-ice, #a6fffb);\n --af-background-icon-default: var(--colour-brand-white, #ffffff);\n --af-background-icon-accent: var(--colour-brand-ice, #a6fffb);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-mist-green, #c6d5d1);\n --af-typography-heading-secondary: var(--colour-brand-white, #ffffff);\n --af-typography-body-dark: var(--colour-brand-white, #ffffff);\n --af-typography-body-default: var(--colour-inkwell-100, #d0d6d8);\n --af-typography-body-subtle: var(--colour-inkwell-200, #a1aeb1);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-white, #ffffff);\n --af-button-secondary-icon: var(--colour-brand-white, #ffffff);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(255, 255, 255, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-white, #ffffff);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-white, #ffffff);\n --af-button-ghost-icon: var(--colour-brand-white, #ffffff);\n --af-button-ghost-stroke: var(--colour-brand-ice, #A6FFFB);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-inkwell-450, #203e45);\n --af-input-bg-hover: var(--colour-inkwell-400, #2b484f);\n --af-input-bg-disabled: var(--colour-inkwell-600, #102a2f);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--colour-brand-ice, #a6fffb);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--colour-brand-ice, #a6fffb);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-inkwell-450, #203e45);\n --af-form-control-bg-checked: var(--colour-brand-mist-green, #c6d5d1);\n --af-form-control-bg-disabled: var(--colour-inkwell-400, #2b484f);\n --af-form-control-bg-checked-disabled: var(--colour-mistgreen-700, #9eaaa7);\n --af-form-control-stroke: var(--colour-inkwell-350, #60767b);\n --af-form-control-stroke-hover: var(--colour-brand-white, #ffffff);\n --af-form-control-stroke-disabled: var(--colour-inkwell-400, #2b484f);\n --af-form-control-icon: var(--colour-brand-inkwell, #14343b);\n --af-form-control-label: var(--colour-brand-white, #ffffff);\n}\n\n/* ==========================================================================\n MIST-GREEN THEME\n ========================================================================== */\n\n.theme-mist-green {\n /* Background tokens */\n --af-background-base: var(--colour-brand-mist-green, #c6d5d1);\n --af-background-base-hover: var(--colour-mistgreen-600, #b2c0bc);\n --af-background-contrast: var(--colour-brand-soft-clay, #b09670);\n --af-background-level-1: var(--colour-mistgreen-300, #dde6e3);\n --af-background-level-1-hover: var(--colour-mistgreen-400, #d1ddda);\n --af-background-border-subtle: var(--colour-mistgreen-600, #b2c0bc);\n --af-background-border-default: var(--colour-mistgreen-700, #9eaaa7);\n --af-background-border-heavy: var(--colour-mistgreen-700, #9eaaa7);\n --af-background-border-active: var(--colour-softclay-800, #8a7049);\n --af-background-icon-default: var(--colour-brand-inkwell, #14343b);\n --af-background-icon-accent: var(--colour-brand-soft-clay, #b09670);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-soft-clay, #b09670);\n --af-typography-body-dark: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-typography-body-subtle: var(--colour-inkwell-350, #60767b);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(0, 0, 0, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-stroke: var(--colour-brand-soft-clay, #B09670);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-brand-white, #ffffff);\n --af-input-bg-hover: var(--colour-mistgreen-100, #f4f7f6);\n --af-input-bg-disabled: var(--af-background-level-1);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--af-typography-body-dark);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--af-typography-body-dark);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-brand-white, #ffffff);\n --af-form-control-bg-checked: var(--colour-brand-inkwell, #14343b);\n --af-form-control-bg-disabled: var(--colour-mistgreen-300, #dde6e3);\n --af-form-control-bg-checked-disabled: var(--colour-inkwell-350, #708380);\n --af-form-control-stroke: var(--colour-mistgreen-700, #9eaaa7);\n --af-form-control-stroke-hover: var(--colour-brand-inkwell, #14343b);\n --af-form-control-stroke-disabled: var(--colour-mistgreen-600, #b2c0bc);\n --af-form-control-icon: var(--colour-brand-white, #ffffff);\n --af-form-control-label: var(--colour-brand-inkwell, #14343b);\n}\n\n/* ==========================================================================\n SOFT-CLAY THEME\n ========================================================================== */\n\n.theme-soft-clay {\n /* Background tokens */\n --af-background-base: var(--colour-softclay-400, #c0ab8d);\n --af-background-base-hover: var(--colour-softclay-500, #b09670);\n --af-background-contrast: var(--colour-brand-mist-green, #c6d5d1);\n --af-background-level-1: var(--colour-softclay-500, #b09670);\n --af-background-level-1-hover: var(--colour-softclay-600, #9e8765);\n --af-background-border-subtle: var(--colour-softclay-600, #9e8765);\n --af-background-border-default: var(--colour-softclay-700, #8d785a);\n --af-background-border-heavy: var(--colour-brand-inkwell, #14343b);\n --af-background-border-active: var(--colour-brand-ice, #a6fffb);\n --af-background-icon-default: var(--colour-brand-inkwell, #14343b);\n --af-background-icon-accent: var(--colour-brand-ivory-paper, #fff9ee);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-ivory-paper, #fff9ee);\n --af-typography-body-dark: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-typography-body-subtle: var(--colour-inkwell-350, #60767b);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(0, 0, 0, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-brand-white, #ffffff);\n --af-input-bg-hover: var(--colour-mistgreen-100, #f4f7f6);\n --af-input-bg-disabled: var(--af-background-level-1);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--af-typography-body-dark);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--af-typography-body-dark);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-brand-white, #ffffff);\n --af-form-control-bg-checked: var(--colour-brand-inkwell, #14343b);\n --af-form-control-bg-disabled: var(--colour-softclay-300, #d0c1a8);\n --af-form-control-bg-checked-disabled: var(--colour-inkwell-350, #708380);\n --af-form-control-stroke: var(--colour-softclay-700, #8d785a);\n --af-form-control-stroke-hover: var(--colour-brand-inkwell, #14343b);\n --af-form-control-stroke-disabled: var(--colour-softclay-600, #9e8765);\n --af-form-control-icon: var(--colour-brand-white, #ffffff);\n --af-form-control-label: var(--colour-brand-inkwell, #14343b);\n}\n\n/* ==========================================================================\n WHITE-IVORY THEME\n ========================================================================== */\n\n.theme-white-ivory {\n /* Background tokens */\n --af-background-base: var(--colour-brand-ivory-paper, #fff9ee);\n --af-background-base-hover: var(--colour-ivory-100, #fff5e0);\n --af-background-contrast: var(--colour-brand-mist-green, #c6d5d1);\n --af-background-level-1: var(--colour-ivory-200, #ffefcc);\n --af-background-level-1-hover: var(--colour-ivory-300, #ffe9b8);\n --af-background-border-subtle: var(--colour-ivory-200, #ffefcc);\n --af-background-border-default: var(--colour-ivory-400, #ffe3a3);\n --af-background-border-heavy: var(--colour-brand-soft-clay, #b09670);\n --af-background-border-active: var(--colour-brand-soft-clay, #b09670);\n --af-background-icon-default: var(--colour-brand-inkwell, #14343b);\n --af-background-icon-accent: var(--colour-brand-soft-clay, #b09670);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-soft-clay, #b09670);\n --af-typography-body-dark: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-typography-body-subtle: var(--colour-inkwell-350, #60767b);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(0, 0, 0, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-stroke: var(--colour-brand-soft-clay, #b09670);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-brand-white, #ffffff);\n --af-input-bg-hover: var(--colour-ivory-100, #fff5e0);\n --af-input-bg-disabled: var(--af-background-level-1);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--af-typography-body-dark);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--af-typography-body-dark);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-brand-white, #ffffff);\n --af-form-control-bg-checked: var(--colour-brand-inkwell, #14343b);\n --af-form-control-bg-disabled: var(--colour-ivory-200, #ffefcc);\n --af-form-control-bg-checked-disabled: var(--colour-inkwell-350, #708380);\n --af-form-control-stroke: var(--colour-ivory-400, #ffe3a3);\n --af-form-control-stroke-hover: var(--colour-brand-inkwell, #14343b);\n --af-form-control-stroke-disabled: var(--colour-ivory-300, #ffe9b8);\n --af-form-control-icon: var(--colour-brand-white, #ffffff);\n --af-form-control-label: var(--colour-brand-inkwell, #14343b);\n}\n\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Theme Override utility component.\n * Wraps content and applies an explicit theme, overriding any inherited theme\n * from parent containers like AfSection or AfCard.\n * \n * Unlike AfSection, this component does NOT apply a background color - \n * it only sets the CSS custom properties that child components consume.\n * \n * @slot - Content to be themed\n */\n@Component({\n tag: 'af-theme-override',\n styleUrl: 'af-theme-override.css',\n shadow: false,\n scoped: true,\n})\nexport class AfThemeOverride {\n /** \n * The theme to apply to child components.\n * Overrides any inherited theme from parent containers.\n */\n @Prop() theme: 'white' | 'inkwell' | 'mist-green' | 'soft-clay' | 'white-ivory' = 'white';\n\n render() {\n return (\n <Host>\n <div class={`theme-override theme-${this.theme}`}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"],"version":3}
1
+ {"file":"af-theme-override.js","mappings":";;AAAA,MAAM,kBAAkB,GAAG,8gfAA8gf;;MCmB5hfA,iBAAe,iBAAAC,kBAAA,CAAA,MAAA,eAAA,SAAAC,CAAA,CAAA;AAN5B,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;AAOE;;;AAGG;AACK,QAAA,IAAK,CAAA,KAAA,GAAU,OAAO;AAW/B;IATC,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,CAAA,qBAAA,EAAwB,IAAI,CAAC,KAAK,EAAE,EAAA,EAC9C,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;;;;;;;;;;;;;;;;;;;","names":["AfThemeOverride","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-theme-override/af-theme-override.css?tag=af-theme-override&encapsulation=scoped","src/components/af-theme-override/af-theme-override.tsx"],"sourcesContent":["/**\n * Theme Override Component Styles\n * \n * Sets theme CSS custom properties WITHOUT applying background color.\n * This allows overriding the theme context for child components while\n * maintaining the parent's visual background.\n */\n\n:host {\n display: contents;\n}\n\n.theme-override {\n display: contents;\n}\n\n/* ==========================================================================\n WHITE THEME\n ========================================================================== */\n\n.theme-white {\n /* Background tokens */\n --af-background-base: var(--colour-brand-white, #FFFFFF);\n --af-background-base-hover: var(--colour-mistgreen-100, #f4f7f6);\n --af-background-contrast: var(--colour-brand-mist-green, #c6d5d1);\n --af-background-level-1: var(--colour-mistgreen-200, #e8eeed);\n --af-background-level-1-hover: var(--colour-mistgreen-300, #dde6e3);\n --af-background-border-subtle: var(--colour-mistgreen-200, #e8eeed);\n --af-background-border-default: var(--colour-mistgreen-400, #d1ddda);\n --af-background-border-heavy: var(--colour-mistgreen-500, #c6d5d1);\n --af-background-border-active: var(--colour-softclay-800, #8a7049);\n --af-background-icon-default: var(--colour-brand-inkwell, #14343b);\n --af-background-icon-accent: var(--colour-brand-soft-clay, #b09670);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-soft-clay, #b09670);\n --af-typography-body-dark: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-typography-body-subtle: var(--colour-inkwell-350, #60767b);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(0, 0, 0, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-stroke: var(--colour-brand-soft-clay, #B09670);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-brand-white, #ffffff);\n --af-input-bg-hover: var(--colour-mistgreen-100, #f4f7f6);\n --af-input-bg-disabled: var(--af-background-level-1);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--af-typography-body-dark);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--af-typography-body-dark);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-brand-white, #ffffff);\n --af-form-control-bg-checked: var(--colour-brand-inkwell, #14343b);\n --af-form-control-bg-disabled: var(--colour-mistgreen-200, #e8ebeb);\n --af-form-control-bg-checked-disabled: var(--colour-inkwell-350, #708380);\n --af-form-control-stroke: var(--colour-mistgreen-500, #d0d6d8);\n --af-form-control-stroke-hover: var(--colour-brand-inkwell, #14343b);\n --af-form-control-stroke-disabled: var(--colour-mistgreen-500, #d0d6d8);\n --af-form-control-icon: var(--colour-brand-white, #ffffff);\n --af-form-control-label: var(--colour-brand-inkwell, #14343b);\n}\n\n/* ==========================================================================\n INKWELL THEME (Dark)\n ========================================================================== */\n\n.theme-inkwell {\n /* Background tokens */\n --af-background-base: var(--colour-brand-inkwell, #14343b);\n --af-background-base-hover: var(--colour-inkwell-600, #102a2f);\n --af-background-contrast: var(--colour-inkwell-700, #102a2f);\n --af-background-level-1: var(--colour-inkwell-450, #203e45);\n --af-background-level-1-hover: var(--colour-inkwell-400, #2b484f);\n --af-background-border-subtle: var(--colour-inkwell-450, #203e45);\n --af-background-border-default: var(--colour-inkwell-400, #2b484f);\n --af-background-border-heavy: var(--colour-inkwell-700, #102a2f);\n --af-background-border-active: var(--colour-brand-ice, #a6fffb);\n --af-background-icon-default: var(--colour-brand-white, #ffffff);\n --af-background-icon-accent: var(--colour-brand-ice, #a6fffb);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-mist-green, #c6d5d1);\n --af-typography-heading-secondary: var(--colour-brand-white, #ffffff);\n --af-typography-body-dark: var(--colour-brand-white, #ffffff);\n --af-typography-body-default: var(--colour-inkwell-100, #d0d6d8);\n --af-typography-body-subtle: var(--colour-inkwell-200, #a1aeb1);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-white, #ffffff);\n --af-button-secondary-icon: var(--colour-brand-white, #ffffff);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(255, 255, 255, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-white, #ffffff);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-white, #ffffff);\n --af-button-ghost-icon: var(--colour-brand-white, #ffffff);\n --af-button-ghost-stroke: var(--colour-brand-ice, #A6FFFB);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-inkwell-450, #203e45);\n --af-input-bg-hover: var(--colour-inkwell-400, #2b484f);\n --af-input-bg-disabled: var(--colour-inkwell-600, #102a2f);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--colour-brand-ice, #a6fffb);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--colour-brand-ice, #a6fffb);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-inkwell-450, #203e45);\n --af-form-control-bg-checked: var(--colour-brand-mist-green, #c6d5d1);\n --af-form-control-bg-disabled: var(--colour-inkwell-400, #2b484f);\n --af-form-control-bg-checked-disabled: var(--colour-mistgreen-700, #9eaaa7);\n --af-form-control-stroke: var(--colour-inkwell-350, #60767b);\n --af-form-control-stroke-hover: var(--colour-brand-white, #ffffff);\n --af-form-control-stroke-disabled: var(--colour-inkwell-400, #2b484f);\n --af-form-control-icon: var(--colour-brand-inkwell, #14343b);\n --af-form-control-label: var(--colour-brand-white, #ffffff);\n}\n\n/* ==========================================================================\n MIST-GREEN THEME\n ========================================================================== */\n\n.theme-mist-green {\n /* Background tokens */\n --af-background-base: var(--colour-brand-mist-green, #c6d5d1);\n --af-background-base-hover: var(--colour-mistgreen-600, #b2c0bc);\n --af-background-contrast: var(--colour-brand-soft-clay, #b09670);\n --af-background-level-1: var(--colour-mistgreen-300, #dde6e3);\n --af-background-level-1-hover: var(--colour-mistgreen-400, #d1ddda);\n --af-background-border-subtle: var(--colour-mistgreen-600, #b2c0bc);\n --af-background-border-default: var(--colour-mistgreen-700, #9eaaa7);\n --af-background-border-heavy: var(--colour-mistgreen-700, #9eaaa7);\n --af-background-border-active: var(--colour-softclay-800, #8a7049);\n --af-background-icon-default: var(--colour-brand-inkwell, #14343b);\n --af-background-icon-accent: var(--colour-brand-soft-clay, #b09670);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-soft-clay, #b09670);\n --af-typography-body-dark: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-typography-body-subtle: var(--colour-inkwell-350, #60767b);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(0, 0, 0, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-stroke: var(--colour-brand-soft-clay, #B09670);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-brand-white, #ffffff);\n --af-input-bg-hover: var(--colour-mistgreen-100, #f4f7f6);\n --af-input-bg-disabled: var(--af-background-level-1);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--af-typography-body-dark);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--af-typography-body-dark);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-brand-white, #ffffff);\n --af-form-control-bg-checked: var(--colour-brand-inkwell, #14343b);\n --af-form-control-bg-disabled: var(--colour-mistgreen-300, #dde6e3);\n --af-form-control-bg-checked-disabled: var(--colour-inkwell-350, #708380);\n --af-form-control-stroke: var(--colour-mistgreen-700, #9eaaa7);\n --af-form-control-stroke-hover: var(--colour-brand-inkwell, #14343b);\n --af-form-control-stroke-disabled: var(--colour-mistgreen-600, #b2c0bc);\n --af-form-control-icon: var(--colour-brand-white, #ffffff);\n --af-form-control-label: var(--colour-brand-inkwell, #14343b);\n}\n\n/* ==========================================================================\n SOFT-CLAY THEME\n ========================================================================== */\n\n.theme-soft-clay {\n /* Background tokens */\n --af-background-base: var(--colour-softclay-400, #c0ab8d);\n --af-background-base-hover: var(--colour-softclay-500, #b09670);\n --af-background-contrast: var(--colour-brand-mist-green, #c6d5d1);\n --af-background-level-1: var(--colour-softclay-500, #b09670);\n --af-background-level-1-hover: var(--colour-softclay-600, #9e8765);\n --af-background-border-subtle: var(--colour-softclay-600, #9e8765);\n --af-background-border-default: var(--colour-softclay-700, #8d785a);\n --af-background-border-heavy: var(--colour-brand-inkwell, #14343b);\n --af-background-border-active: var(--colour-brand-ice, #a6fffb);\n --af-background-icon-default: var(--colour-brand-inkwell, #14343b);\n --af-background-icon-accent: var(--colour-brand-ivory-paper, #fff9ee);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-ivory-paper, #fff9ee);\n --af-typography-body-dark: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-typography-body-subtle: var(--colour-inkwell-350, #60767b);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(0, 0, 0, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-brand-white, #ffffff);\n --af-input-bg-hover: var(--colour-mistgreen-100, #f4f7f6);\n --af-input-bg-disabled: var(--af-background-level-1);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--af-typography-body-dark);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--af-typography-body-dark);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-brand-white, #ffffff);\n --af-form-control-bg-checked: var(--colour-brand-inkwell, #14343b);\n --af-form-control-bg-disabled: var(--colour-softclay-300, #d0c1a8);\n --af-form-control-bg-checked-disabled: var(--colour-inkwell-350, #708380);\n --af-form-control-stroke: var(--colour-softclay-700, #8d785a);\n --af-form-control-stroke-hover: var(--colour-brand-inkwell, #14343b);\n --af-form-control-stroke-disabled: var(--colour-softclay-600, #9e8765);\n --af-form-control-icon: var(--colour-brand-white, #ffffff);\n --af-form-control-label: var(--colour-brand-inkwell, #14343b);\n}\n\n/* ==========================================================================\n WHITE-IVORY THEME\n ========================================================================== */\n\n.theme-white-ivory {\n /* Background tokens */\n --af-background-base: var(--colour-brand-ivory-paper, #fff9ee);\n --af-background-base-hover: var(--colour-ivory-100, #fff5e0);\n --af-background-contrast: var(--colour-brand-mist-green, #c6d5d1);\n --af-background-level-1: var(--colour-ivory-200, #ffefcc);\n --af-background-level-1-hover: var(--colour-ivory-300, #ffe9b8);\n --af-background-border-subtle: var(--colour-ivory-200, #ffefcc);\n --af-background-border-default: var(--colour-ivory-400, #ffe3a3);\n --af-background-border-heavy: var(--colour-brand-soft-clay, #b09670);\n --af-background-border-active: var(--colour-brand-soft-clay, #b09670);\n --af-background-icon-default: var(--colour-brand-inkwell, #14343b);\n --af-background-icon-accent: var(--colour-brand-soft-clay, #b09670);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-soft-clay, #b09670);\n --af-typography-body-dark: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-typography-body-subtle: var(--colour-inkwell-350, #60767b);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(0, 0, 0, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-stroke: var(--colour-brand-soft-clay, #b09670);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-brand-white, #ffffff);\n --af-input-bg-hover: var(--colour-ivory-100, #fff5e0);\n --af-input-bg-disabled: var(--af-background-level-1);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--af-typography-body-dark);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--af-typography-body-dark);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-brand-white, #ffffff);\n --af-form-control-bg-checked: var(--colour-brand-inkwell, #14343b);\n --af-form-control-bg-disabled: var(--colour-ivory-200, #ffefcc);\n --af-form-control-bg-checked-disabled: var(--colour-inkwell-350, #708380);\n --af-form-control-stroke: var(--colour-ivory-400, #ffe3a3);\n --af-form-control-stroke-hover: var(--colour-brand-inkwell, #14343b);\n --af-form-control-stroke-disabled: var(--colour-ivory-300, #ffe9b8);\n --af-form-control-icon: var(--colour-brand-white, #ffffff);\n --af-form-control-label: var(--colour-brand-inkwell, #14343b);\n}\n\n","import { Component, h, Host, Prop } from '@stencil/core';\nimport type { Theme } from '../../types';\n\n/**\n * Theme Override utility component.\n * Wraps content and applies an explicit theme, overriding any inherited theme\n * from parent containers like AfSection or AfCard.\n * \n * Unlike AfSection, this component does NOT apply a background color - \n * it only sets the CSS custom properties that child components consume.\n * \n * @slot - Content to be themed\n */\n@Component({\n tag: 'af-theme-override',\n styleUrl: 'af-theme-override.css',\n shadow: false,\n scoped: true,\n})\nexport class AfThemeOverride {\n /** \n * The theme to apply to child components.\n * Overrides any inherited theme from parent containers.\n */\n @Prop() theme: Theme = 'white';\n\n render() {\n return (\n <Host>\n <div class={`theme-override theme-${this.theme}`}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { A as AfTypographyLockup$1, d as defineCustomElement$1 } from './p-DNeNJhuM.js';
1
+ import { A as AfTypographyLockup$1, d as defineCustomElement$1 } from './p-ClZAZSzR.js';
2
2
 
3
3
  const AfTypographyLockup = AfTypographyLockup$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -29,7 +29,7 @@ const AfVideoContainer$1 = /*@__PURE__*/ proxyCustomElement(class AfVideoContain
29
29
  };
30
30
  }
31
31
  render() {
32
- return (h(Host, { key: 'f05355faddc6ea71285398ae46a648b11d919969' }, h("div", { key: '98bb4043023aefe2a9a75d60ff8c3d3349464c39', class: "video-container" }, h("div", { key: 'e72cf9ebebc3fa965bc676b14eed7272d6216c0e', class: "video-container__top" }, h("slot", { key: '638a975a8b805e802ea4a6badcff49b35001da5c', name: "top" })), h("div", { key: '7cbbf984f3680bd6a120a1d5e74bef034334a8bb', class: "video-container__video" }, h("af-aspect-ratio", { key: '76e845c0c959584fa0cd41ac88f33028591c63f6', ratio: "16:9" }, h("div", { key: '796aba9a4180d9ed69e821159a981a1043e0ac8c', class: "video-container__thumbnail-wrapper" }, this.videoThumbnailUrl && (h("img", { key: '0762654f68c216ad26152279174a2b124e5d5150', src: this.videoThumbnailUrl, alt: this.videoAlt, class: "video-container__thumbnail", loading: "lazy" })), h("button", { key: 'e39fe70e65f54a1075d77ea5d4314e88e69febe6', class: "video-container__play-button", onClick: this.handlePlayClick, "aria-label": "Play video", type: "button" }, h("af-icon", { key: '44ef1e1d5ef606e8cf3cb2adb1ee2845da85d910', name: "play", size: 24 }))))), h("div", { key: '861da1a01d91cefad8bd379f75113cfc978be76b', class: "video-container__bottom" }, h("slot", { key: 'ba43d1a4104a69048b5e38965f613734231e9dcb', name: "bottom" })))));
32
+ return (h(Host, { key: '2bef13cab427a55363cd89b0398bfb5187d33424' }, h("div", { key: 'ecd350d7cc04482a4e04fa0d22ff2b57a91374ad', class: "video-container" }, h("div", { key: 'd855f0cb2a805b9fff46008f360f8643f91e9a5e', class: "video-container__top" }, h("slot", { key: '87d02b710b110573e2ee3b177665ae6d277f1533', name: "top" })), h("div", { key: 'a9f263a746850568c487f84f889ff55ce8b68f56', class: "video-container__video" }, h("af-aspect-ratio", { key: 'f6473ffa87a633d101094bb4d34b85c9edf8d0fa', ratio: "16:9" }, h("div", { key: '042a90b134fa35101b56be745561fb729ac912d8', class: "video-container__thumbnail-wrapper" }, this.videoThumbnailUrl && (h("img", { key: '4fc0ee51ac96f79b496a16d9a43004c2fa1111a9', src: this.videoThumbnailUrl, alt: this.videoAlt, class: "video-container__thumbnail", loading: "lazy" })), h("button", { key: '1dbe720ac679b9fac1405e1d7b28ae3f7c6bf234', class: "video-container__play-button", onClick: this.handlePlayClick, "aria-label": "Play video", type: "button" }, h("af-icon", { key: '7d8db3173c20d105c7371765255a3046c9ee1b07', name: "play", size: 24 }))))), h("div", { key: 'f0da765eb52e956a8d77df2158e0e2fe984d672c', class: "video-container__bottom" }, h("slot", { key: '1cb4acc596c066f5ac1c9981d4aeab4c6a249072', name: "bottom" })))));
33
33
  }
34
34
  static get style() { return afVideoContainerCss; }
35
35
  }, [262, "af-video-container", {
@@ -16,7 +16,7 @@ const AfVisuallyHidden$1 = /*@__PURE__*/ proxyCustomElement(class AfVisuallyHidd
16
16
  this.focusable = false;
17
17
  }
18
18
  render() {
19
- return (h(Host, { key: 'f687eddee200aa53700847e5bf237656db0d33df', class: { 'focusable': this.focusable } }, h("slot", { key: '96e16af57c3b73cc0a338325b9baec14ae4cce1b' })));
19
+ return (h(Host, { key: '7d0224d1f120153733e77b38281f8f9ebe9841b8', class: { 'focusable': this.focusable } }, h("slot", { key: '3a355db9347be885ba5c1b1bf1aa89ec4c4c1e06' })));
20
20
  }
21
21
  static get style() { return afVisuallyHiddenCss; }
22
22
  }, [257, "af-visually-hidden", {
@@ -5,12 +5,12 @@ export { A as AfColorSwatch } from './p-NtJ_O8-z.js';
5
5
  export { A as AfContainer } from './p-CYKk6Qhi.js';
6
6
  export { A as AfAspectRatio } from './p-CoL_hRAR.js';
7
7
  export { A as AfNavItem } from './p-Dd3nOGt_.js';
8
- export { A as AfNavbar } from './p-HMlLQQwp.js';
8
+ export { A as AfNavbar } from './p-DqJRvNOl.js';
9
9
  export { A as AfLogo } from './p-BRDu9zN1.js';
10
10
  export { A as AfButton } from './p--gChEc0P.js';
11
11
  export { A as AfIconButton } from './p-BW-FxZwa.js';
12
12
  export { A as AfButtonGroup } from './p-kEqwmn80.js';
13
- export { A as AfTypographyLockup } from './p-DNeNJhuM.js';
13
+ export { A as AfTypographyLockup } from './p-ClZAZSzR.js';
14
14
  export { A as AfCheckbox } from './p-DbVc-b1e.js';
15
15
  export { A as AfRadio } from './p-CP8rLe_C.js';
16
16
  export { A as AfSwitch } from './p-BROLmNeM.js';
@@ -20,8 +20,9 @@ export { A as AfTextarea } from './p-BT13eL0Y.js';
20
20
  export { A as AfTag } from './p-Dx_UXI2a.js';
21
21
  export { A as AfTab } from './p-D8DmhESZ.js';
22
22
  export { A as AfTabBar } from './p-C4G6votC.js';
23
- export { A as AfFeatureCard } from './p-CNzQtskW.js';
24
- export { A as AfIllustratedCard } from './p-C6-JATRR.js';
23
+ export { A as AfFeatureCard } from './p-mbl86-w6.js';
24
+ export { A as AfIllustratedCard } from './p-3Gzh4deR.js';
25
+ export { A as AfHero } from './p-CRnEuh5f.js';
25
26
  //# sourceMappingURL=index.js.map
26
27
 
27
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
1
+ {"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -1,6 +1,6 @@
1
1
  import { p as proxyCustomElement, H, h, c as Host } from './p-DOgb6SUj.js';
2
- import { d as defineCustomElement$2 } from './p-CKLkuSI3.js';
3
- import { d as defineCustomElement$1 } from './p-DNeNJhuM.js';
2
+ import { d as defineCustomElement$2 } from './p-CJxqw006.js';
3
+ import { d as defineCustomElement$1 } from './p-ClZAZSzR.js';
4
4
 
5
5
  const afIllustratedCardCss = ".sc-af-illustrated-card-h{display:flex;flex-direction:column;width:100%;--af-card-padding:0;--af-card-gap:0}.illustrated-card.sc-af-illustrated-card{min-height:400px}.illustrated-card__content.sc-af-illustrated-card{position:relative;display:flex;flex-direction:column;box-sizing:border-box;z-index:1}.illustrated-card--breakpoint-desktop.illustrated-card--size-default.sc-af-illustrated-card .illustrated-card__content.sc-af-illustrated-card{padding:40px 32px 12px 32px}.illustrated-card--breakpoint-desktop.illustrated-card--size-large.sc-af-illustrated-card .illustrated-card__content.sc-af-illustrated-card{padding:40px 40px 0 40px}.illustrated-card--breakpoint-mobile.sc-af-illustrated-card .illustrated-card__content.sc-af-illustrated-card{padding:32px 24px 12px 24px}.illustrated-card__illustration-area.sc-af-illustrated-card{position:relative;width:100%;flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}.illustrated-card--breakpoint-desktop.sc-af-illustrated-card .illustrated-card__illustration-area.sc-af-illustrated-card{min-height:160px}.illustrated-card--breakpoint-mobile.sc-af-illustrated-card .illustrated-card__illustration-area.sc-af-illustrated-card{min-height:192px}.illustrated-card__illustration-placeholder.sc-af-illustrated-card{width:100%;height:100%;min-height:120px;display:flex;align-items:center;justify-content:center}.illustrated-card__illustration-area.sc-af-illustrated-card-s>img,.illustrated-card__illustration-area .sc-af-illustrated-card-s>img,.illustrated-card__illustration-area.sc-af-illustrated-card img.sc-af-illustrated-card{max-width:100%;max-height:200px;height:auto;object-fit:contain;border-radius:var(--radius-lg, 20px)}.illustrated-card.sc-af-illustrated-card af-typography-lockup.sc-af-illustrated-card{--colour-typography-heading-primary:var(--af-typography-heading-primary);--colour-typography-body-default:var(--af-typography-body-default)}";
6
6
 
@@ -30,7 +30,7 @@ const AfIllustratedCard = /*@__PURE__*/ proxyCustomElement(class AfIllustratedCa
30
30
  [`illustrated-card--breakpoint-${this.breakpoint}`]: true,
31
31
  [`illustrated-card--size-${this.cardSize}`]: true,
32
32
  };
33
- return (h(Host, { key: 'afe7b84219cbe07a6949825042295def34dafe5e' }, h("div", { key: '9b5697ca0732d5bc5ac8170869bf04db5c3e9b07', class: wrapperClasses }, h("af-card", { key: '0de8d7d93eb225298664e9edcd7efec821c341c6', theme: this.theme }, h("div", { key: '4a691832606f011d996f005c533f423acc960ea2', class: "illustrated-card__content" }, h("af-typography-lockup", { key: '59d8417922cffd552df7610b72b4f2ec6c222105', headingSize: 3, breakpoint: this.breakpoint, textAlignment: "left", buttonLayout: "vertical" }, h("slot", { key: 'ee18abb24d0637f3bea71b48ccafdd3c6df0ea45' }), h("span", { key: 'be0bebfef478da4491ba1137ba1975052f4dcb5c', slot: "description" }, h("slot", { key: 'b05c91bd5d5085f74d94fabd22d8b79a2b008719', name: "body" })), h("span", { key: '79c1f836418dd6d2d2c96a1ea680bf05ade2b0d8', slot: "buttons" }, h("slot", { key: '03a5aff63f8225bf2323abe44e8e830562cf0c6c', name: "buttons" })))), h("div", { key: '1c75154af4e7cc89eceda3f16a958ca720f17450', class: "illustrated-card__illustration-area" }, h("slot", { key: '46071088a5aad6cbf64635a3961aa78e1f7b3fee', name: "illustration" }))))));
33
+ return (h(Host, { key: 'ef2bef2685ff1c476d6cdffcac8dba7d8bb0f9e9' }, h("div", { key: '7a9fab8ac214d2715b2f96186e4cbb2978b53137', class: wrapperClasses }, h("af-card", { key: '9967cb01f648bb29b33743d50f733c21883ae6fd', theme: this.theme }, h("div", { key: 'eb791121145c80101fdb5109636a990de735074f', class: "illustrated-card__content" }, h("af-typography-lockup", { key: 'f5f39cc0cfa368df8cd8f44b4f259af6dcf25fdb', headingSize: 3, breakpoint: this.breakpoint, textAlignment: "left", buttonLayout: "vertical" }, h("slot", { key: '0ed9b6ef9c8af21b239d505bd4a55f19d6aff418' }), h("span", { key: '1e7af14cfbd40cedf7c4cacc67d0232560ca6a18', slot: "description" }, h("slot", { key: '1a63ad36fd61d5140201c0d62a37e36dad5470a3', name: "body" })), h("span", { key: '9fe3673d3aee02dae3f2d541a332a68e37794427', slot: "buttons" }, h("slot", { key: '932d6a3ca09ef215818dfca3353ceca2764b3ac2', name: "buttons" })))), h("div", { key: 'ceb3132f1986c70766e897aad8c71b155eb3d84e', class: "illustrated-card__illustration-area" }, h("slot", { key: '1b2456a9b4a87823832555b0836381336e44ee83', name: "illustration" }))))));
34
34
  }
35
35
  static get style() { return afIllustratedCardCss; }
36
36
  }, [262, "af-illustrated-card", {
@@ -63,6 +63,6 @@ function defineCustomElement() {
63
63
  }
64
64
 
65
65
  export { AfIllustratedCard as A, defineCustomElement as d };
66
- //# sourceMappingURL=p-C6-JATRR.js.map
66
+ //# sourceMappingURL=p-3Gzh4deR.js.map
67
67
 
68
- //# sourceMappingURL=p-C6-JATRR.js.map
68
+ //# sourceMappingURL=p-3Gzh4deR.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-3Gzh4deR.js","mappings":";;;;AAAA,MAAM,oBAAoB,GAAG,w6DAAw6D;;MCsBx7D,iBAAiB,iBAAAA,kBAAA,CAAA,MAAA,iBAAA,SAAAC,CAAA,CAAA;AAN9B,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;AAOE;;;AAGG;AACK,QAAA,IAAK,CAAA,KAAA,GAAW,YAAY;AAEpC;;AAEG;AACK,QAAA,IAAU,CAAA,UAAA,GAAyB,SAAS;AAEpD;;AAEG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAwB,SAAS;AAwClD;IAtCC,MAAM,GAAA;AACJ,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,kBAAkB,EAAE,IAAI;AACxB,YAAA,CAAC,gCAAgC,IAAI,CAAC,UAAU,CAAE,CAAA,GAAG,IAAI;AACzD,YAAA,CAAC,0BAA0B,IAAI,CAAC,QAAQ,CAAE,CAAA,GAAG,IAAI;SAClD;QAED,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,cAAc,EAAA,EACxB,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,KAAK,EAAE,IAAI,CAAC,KAAK,EAAA,EAExB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAA,EACpC,CAAA,CAAA,sBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,WAAW,EAAE,CAAC,EACd,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,aAAa,EAAC,MAAM,EACpB,YAAY,EAAC,UAAU,EAAA,EAEvB,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,EACb,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,aAAa,EAAA,EACtB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,MAAM,EAAA,CAAQ,CACpB,EACP,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,SAAS,EAAA,EAClB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,SAAS,EAAQ,CAAA,CACvB,CACc,CACnB,EAGN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,qCAAqC,EAAA,EAC9C,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,cAAc,EAAA,CAAQ,CAC7B,CACE,CACN,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-illustrated-card/af-illustrated-card.css?tag=af-illustrated-card&encapsulation=scoped","src/components/af-illustrated-card/af-illustrated-card.tsx"],"sourcesContent":[":host {\n display: flex;\n flex-direction: column;\n width: 100%;\n \n /* Override card atom defaults - illustrated card handles its own spacing */\n --af-card-padding: 0;\n --af-card-gap: 0;\n}\n\n/* ==========================================================================\n Base Illustrated Card Styles\n ========================================================================== */\n\n.illustrated-card {\n min-height: 400px;\n}\n\n/* ==========================================================================\n Content Area\n ========================================================================== */\n\n.illustrated-card__content {\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n z-index: 1;\n}\n\n/* Desktop default size spacing */\n.illustrated-card--breakpoint-desktop.illustrated-card--size-default .illustrated-card__content {\n padding: 40px 32px 12px 32px;\n}\n\n/* Desktop large size spacing */\n.illustrated-card--breakpoint-desktop.illustrated-card--size-large .illustrated-card__content {\n padding: 40px 40px 0 40px;\n}\n\n/* Mobile spacing */\n.illustrated-card--breakpoint-mobile .illustrated-card__content {\n padding: 32px 24px 12px 24px;\n}\n\n/* ==========================================================================\n Illustration Area\n ========================================================================== */\n\n.illustrated-card__illustration-area {\n position: relative;\n width: 100%;\n flex: 1;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n box-sizing: border-box;\n}\n\n/* Desktop illustration area height */\n.illustrated-card--breakpoint-desktop .illustrated-card__illustration-area {\n min-height: 160px;\n}\n\n/* Mobile illustration area height */\n.illustrated-card--breakpoint-mobile .illustrated-card__illustration-area {\n min-height: 192px;\n}\n\n/* Illustration placeholder for when using data attributes */\n.illustrated-card__illustration-placeholder {\n width: 100%;\n height: 100%;\n min-height: 120px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Illustration image styling. The inner image gets the same corner radius\n * (radius-lg / 20px) as the outer af-card so art with a photographic edge\n * stays within the card's rounded frame. Consumers of af-illustrated-card\n * previously hand-rolled this value; it now comes from the token ladder. */\n.illustrated-card__illustration-area ::slotted(img),\n.illustrated-card__illustration-area img {\n max-width: 100%;\n max-height: 200px;\n height: auto;\n object-fit: contain;\n border-radius: var(--radius-lg, 20px);\n}\n\n/* ==========================================================================\n Typography Lockup Styling\n ========================================================================== */\n\n/* Pass theme colors to typography lockup */\n.illustrated-card af-typography-lockup {\n --colour-typography-heading-primary: var(--af-typography-heading-primary);\n --colour-typography-body-default: var(--af-typography-body-default);\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\nimport type { Theme } from '../../types';\n\n/**\n * Illustrated Card molecule component that combines a card with an illustration.\n *\n * Uses a theme background with text at top, a button row in the middle, and\n * an illustration from @affinda/illustrations at the bottom.\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 * @slot buttons - Action buttons (rendered below the description, above the illustration)\n * @slot illustration - Illustration image element\n */\n@Component({\n tag: 'af-illustrated-card',\n styleUrl: 'af-illustrated-card.css',\n shadow: false,\n scoped: true,\n})\nexport class AfIllustratedCard {\n /**\n * Theme variant - sets background color and provides theme context.\n * Defaults to 'mist-green'.\n */\n @Prop() theme?: Theme = 'mist-green';\n\n /**\n * Responsive breakpoint for typography sizing.\n */\n @Prop() breakpoint: 'desktop' | 'mobile' = 'desktop';\n\n /**\n * Card size variant (applies to desktop only).\n */\n @Prop() cardSize: 'default' | 'large' = 'default';\n\n render() {\n const wrapperClasses = {\n 'illustrated-card': true,\n [`illustrated-card--breakpoint-${this.breakpoint}`]: true,\n [`illustrated-card--size-${this.cardSize}`]: true,\n };\n\n return (\n <Host>\n <div class={wrapperClasses}>\n <af-card theme={this.theme}>\n {/* Content area with typography lockup */}\n <div class=\"illustrated-card__content\">\n <af-typography-lockup\n headingSize={3}\n breakpoint={this.breakpoint}\n textAlignment=\"left\"\n buttonLayout=\"vertical\"\n >\n <slot></slot>\n <span slot=\"description\">\n <slot name=\"body\"></slot>\n </span>\n <span slot=\"buttons\">\n <slot name=\"buttons\"></slot>\n </span>\n </af-typography-lockup>\n </div>\n\n {/* Illustration area at bottom */}\n <div class=\"illustrated-card__illustration-area\">\n <slot name=\"illustration\"></slot>\n </div>\n </af-card>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -22,10 +22,10 @@ const AfProgressLine = /*@__PURE__*/ proxyCustomElement(class AfProgressLine ext
22
22
  // Clamp progress between 0 and 1
23
23
  const clampedProgress = Math.max(0, Math.min(1, this.progress));
24
24
  const progressPercent = clampedProgress * 100;
25
- return (h(Host, { key: 'e831de02f8d1263448cf0441085cee677230374e' }, h("div", { key: '57eec77244c1f0c2a1a763d04b22751651069dbc', class: {
25
+ return (h(Host, { key: '7d8dc150bf0fa9647926d2b6bcf2ff7d37527e46' }, h("div", { key: '5d09009a197599029b15ae3f601c7243ef07f8e3', class: {
26
26
  'progress-line': true,
27
27
  [`progress-line--${this.orientation}`]: true,
28
- }, role: "progressbar", "aria-valuenow": Math.round(progressPercent), "aria-valuemin": 0, "aria-valuemax": 100 }, h("div", { key: '9b3229746fef82f644953a189959c109104be511', class: "progress-line__background" }), h("div", { key: '0f5ec3a4a51b350b3b9cb26ea446167a40ce4ae4', class: "progress-line__active", style: { width: `${progressPercent}%` } }))));
28
+ }, role: "progressbar", "aria-valuenow": Math.round(progressPercent), "aria-valuemin": 0, "aria-valuemax": 100 }, h("div", { key: '9f861e5aec9f676e2cf2740bd5b83a2c220eec86', class: "progress-line__background" }), h("div", { key: 'bb5457650f19f05435330d429950a3b7f7946fb8', class: "progress-line__active", style: { width: `${progressPercent}%` } }))));
29
29
  }
30
30
  static get style() { return afProgressLineCss; }
31
31
  }, [258, "af-progress-line", {
@@ -47,6 +47,6 @@ function defineCustomElement() {
47
47
  }
48
48
 
49
49
  export { AfProgressLine as A, defineCustomElement as d };
50
- //# sourceMappingURL=p-DO9J0XTo.js.map
50
+ //# sourceMappingURL=p-BXmiPS9x.js.map
51
51
 
52
- //# sourceMappingURL=p-DO9J0XTo.js.map
52
+ //# sourceMappingURL=p-BXmiPS9x.js.map
@@ -1 +1 @@
1
- {"file":"p-DO9J0XTo.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,0mBAA0mB;;MCcvnB,cAAc,iBAAAA,kBAAA,CAAA,MAAA,cAAA,SAAAC,CAAA,CAAA;AAN3B,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;AAOE;;AAEG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAW,CAAC;AAE5B;;;AAGG;AACK,QAAA,IAAW,CAAA,WAAA,GAAiB,YAAY;AA4BjD;IA1BC,MAAM,GAAA;;AAEJ,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/D,QAAA,MAAM,eAAe,GAAG,eAAe,GAAG,GAAG;QAE7C,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,eAAe,EAAE,IAAI;AACrB,gBAAA,CAAC,kBAAkB,IAAI,CAAC,WAAW,CAAE,CAAA,GAAG,IAAI;AAC7C,aAAA,EACD,IAAI,EAAC,aAAa,EAAA,eAAA,EACH,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAC3B,eAAA,EAAA,CAAC,mBACD,GAAG,EAAA,EAElB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAG,CAAA,EACzC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,uBAAuB,EAC7B,KAAK,EAAE,EAAE,KAAK,EAAE,CAAG,EAAA,eAAe,CAAG,CAAA,CAAA,EAAE,GACvC,CACE,CACD;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-progress-line/af-progress-line.css?tag=af-progress-line&encapsulation=scoped","src/components/af-progress-line/af-progress-line.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n/* ==========================================================================\n Progress Line Base Styles\n ========================================================================== */\n\n.progress-line {\n position: relative;\n overflow: hidden;\n}\n\n.progress-line--horizontal {\n height: 3px;\n width: 100%;\n}\n\n/* ==========================================================================\n Background Track\n ========================================================================== */\n\n.progress-line__background {\n position: absolute;\n inset: 0;\n background: var(--af-background-border-default, var(--colour-background-border-default, #d1ddda));\n height: 1px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n/* ==========================================================================\n Active Progress\n ========================================================================== */\n\n.progress-line__active {\n position: relative;\n height: 100%;\n min-width: 1px;\n background: var(--af-background-border-active, var(--colour-background-border-active, #8a7049));\n transition: width 0.15s ease-out;\n}\n\n","import { Component, Prop, h, Host } from '@stencil/core';\n\n/**\n * Progress Line atom component for displaying scroll or completion progress.\n * \n * Shows a horizontal bar with a filled portion indicating progress.\n * Used primarily for carousel scroll indicators.\n */\n@Component({\n tag: 'af-progress-line',\n styleUrl: 'af-progress-line.css',\n shadow: false,\n scoped: true,\n})\nexport class AfProgressLine {\n /**\n * Progress value from 0 to 1 (0 = 0%, 1 = 100%).\n */\n @Prop() progress: number = 0;\n\n /**\n * Orientation of the progress line.\n * Currently only horizontal is supported.\n */\n @Prop() orientation: 'horizontal' = 'horizontal';\n\n render() {\n // Clamp progress between 0 and 1\n const clampedProgress = Math.max(0, Math.min(1, this.progress));\n const progressPercent = clampedProgress * 100;\n\n return (\n <Host>\n <div\n class={{\n 'progress-line': true,\n [`progress-line--${this.orientation}`]: true,\n }}\n role=\"progressbar\"\n aria-valuenow={Math.round(progressPercent)}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n <div class=\"progress-line__background\" />\n <div\n class=\"progress-line__active\"\n style={{ width: `${progressPercent}%` }}\n />\n </div>\n </Host>\n );\n }\n}\n\n"],"version":3}
1
+ {"file":"p-BXmiPS9x.js","mappings":";;AAAA,MAAM,iBAAiB,GAAG,0mBAA0mB;;MCcvnB,cAAc,iBAAAA,kBAAA,CAAA,MAAA,cAAA,SAAAC,CAAA,CAAA;AAN3B,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;AAOE;;AAEG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAW,CAAC;AAE5B;;;AAGG;AACK,QAAA,IAAW,CAAA,WAAA,GAAiB,YAAY;AA4BjD;IA1BC,MAAM,GAAA;;AAEJ,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/D,QAAA,MAAM,eAAe,GAAG,eAAe,GAAG,GAAG;QAE7C,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,eAAe,EAAE,IAAI;AACrB,gBAAA,CAAC,kBAAkB,IAAI,CAAC,WAAW,CAAE,CAAA,GAAG,IAAI;AAC7C,aAAA,EACD,IAAI,EAAC,aAAa,EAAA,eAAA,EACH,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAC3B,eAAA,EAAA,CAAC,mBACD,GAAG,EAAA,EAElB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,2BAA2B,EAAG,CAAA,EACzC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,uBAAuB,EAC7B,KAAK,EAAE,EAAE,KAAK,EAAE,CAAG,EAAA,eAAe,CAAG,CAAA,CAAA,EAAE,GACvC,CACE,CACD;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-progress-line/af-progress-line.css?tag=af-progress-line&encapsulation=scoped","src/components/af-progress-line/af-progress-line.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n/* ==========================================================================\n Progress Line Base Styles\n ========================================================================== */\n\n.progress-line {\n position: relative;\n overflow: hidden;\n}\n\n.progress-line--horizontal {\n height: 3px;\n width: 100%;\n}\n\n/* ==========================================================================\n Background Track\n ========================================================================== */\n\n.progress-line__background {\n position: absolute;\n inset: 0;\n background: var(--af-background-border-default, var(--colour-background-border-default, #d1ddda));\n height: 1px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n/* ==========================================================================\n Active Progress\n ========================================================================== */\n\n.progress-line__active {\n position: relative;\n height: 100%;\n min-width: 1px;\n background: var(--af-background-border-active, var(--colour-background-border-active, #8a7049));\n transition: width 0.15s ease-out;\n}\n\n","import { Component, Prop, h, Host } from '@stencil/core';\n\n/**\n * Progress Line atom component for displaying scroll or completion progress.\n * \n * Shows a horizontal bar with a filled portion indicating progress.\n * Used primarily for carousel scroll indicators.\n */\n@Component({\n tag: 'af-progress-line',\n styleUrl: 'af-progress-line.css',\n shadow: false,\n scoped: true,\n})\nexport class AfProgressLine {\n /**\n * Progress value from 0 to 1 (0 = 0%, 1 = 100%).\n */\n @Prop() progress: number = 0;\n\n /**\n * Orientation of the progress line.\n * Currently only horizontal is supported.\n */\n @Prop() orientation: 'horizontal' = 'horizontal';\n\n render() {\n // Clamp progress between 0 and 1\n const clampedProgress = Math.max(0, Math.min(1, this.progress));\n const progressPercent = clampedProgress * 100;\n\n return (\n <Host>\n <div\n class={{\n 'progress-line': true,\n [`progress-line--${this.orientation}`]: true,\n }}\n role=\"progressbar\"\n aria-valuenow={Math.round(progressPercent)}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n <div class=\"progress-line__background\" />\n <div\n class=\"progress-line__active\"\n style={{ width: `${progressPercent}%` }}\n />\n </div>\n </Host>\n );\n }\n}\n\n"],"version":3}
@@ -26,7 +26,7 @@ const AfCard = /*@__PURE__*/ proxyCustomElement(class AfCard extends H {
26
26
  'card': true,
27
27
  [`theme-${this.theme}`]: true
28
28
  };
29
- return (h(Host, { key: '9847c934dc643291c0b19a5bbd7a5a1f95171573' }, h("div", { key: 'ef75699eb880055c79cfb605821167e5e9958aa5', class: classes }, h("div", { key: '48b0ca5f605d7af698564d6907e38dedf2a4beef', class: "card__content" }, h("slot", { key: 'fa2832e5ff3796fc80b72d5a4cb630e978a4b083' })))));
29
+ return (h(Host, { key: '18e2c6aa8f9053223d51f13520dab6f94ac7a024' }, h("div", { key: 'e697dbc8f1c8d88cfe2e6f40039305513f875c3a', class: classes }, h("div", { key: '16e5f233fa1bc8e9f0a192ddc4905a252b51623c', class: "card__content" }, h("slot", { key: 'dbc326c5b175ec0633c1d6688b2cef7434664a0a' })))));
30
30
  }
31
31
  static get style() { return afCardCss; }
32
32
  }, [262, "af-card", {
@@ -48,6 +48,6 @@ function defineCustomElement() {
48
48
  }
49
49
 
50
50
  export { AfCard as A, defineCustomElement as d };
51
- //# sourceMappingURL=p-CKLkuSI3.js.map
51
+ //# sourceMappingURL=p-CJxqw006.js.map
52
52
 
53
- //# sourceMappingURL=p-CKLkuSI3.js.map
53
+ //# sourceMappingURL=p-CJxqw006.js.map
@@ -1 +1 @@
1
- {"file":"p-CKLkuSI3.js","mappings":";;AAAA,MAAM,SAAS,GAAG,u/FAAu/F;;MCe5/F,MAAM,iBAAAA,kBAAA,CAAA,MAAA,MAAA,SAAAC,CAAA,CAAA;AANnB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;AAOE;;;AAGG;AACK,QAAA,IAAK,CAAA,KAAA,GAAsE,YAAY;AAE/F;;;;;AAKG;AACsB,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAkBlD;IAhBC,MAAM,GAAA;AACJ,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,CAAC,SAAS,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG;SAC1B;QAED,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,OAAO,EAAA,EACjB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,eAAe,EAAA,EACxB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACF,CACD;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-card/af-card.css?tag=af-card&encapsulation=scoped","src/components/af-card/af-card.tsx"],"sourcesContent":["/* Theme CSS custom properties follow the global token structure from @affinda/tokens */\n\n:host {\n display: block;\n width: 100%;\n}\n\n/* ==========================================================================\n Stretch Mode\n \n When stretch attribute is present, the card fills its container height\n and uses flexbox to distribute space between children. This enables\n equal-height cards in grid/flex layouts.\n ========================================================================== */\n\n:host([stretch]) {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n:host([stretch]) .card {\n flex: 1 1 auto;\n}\n\n:host([stretch]) .card__content {\n flex: 1 1 auto;\n}\n\n/* ==========================================================================\n Base Card Styles\n ========================================================================== */\n\n.card {\n /* radius-lg (20px) is the Affinda card corner — replaces the bespoke\n * `--border-radius-card-level-1` that previously shimmed in at 32px.\n * Consumers can still override by setting `--af-card-radius` on the host. */\n border-radius: var(--af-card-radius, var(--radius-lg, 20px));\n overflow: hidden;\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n/* ==========================================================================\n Theme Variants\n \n Background colors from Figma tokens:\n - white: #ffffff (Colour/Brand/White)\n - white-ivory: #fff9ee (Colour/Brand/Ivory-Paper)\n - inkwell: #14343b (Colour/Brand/Inkwell)\n - mist-green: #c6d5d1 (Colour/Brand/Mist-Green)\n - soft-clay: #c0ab8d (Colour/Softclay/400)\n ========================================================================== */\n\n/* WHITE THEME */\n.card.theme-white {\n background-color: var(--colour-brand-white, #ffffff);\n \n /* Typography */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-background-level-1: var(--colour-mistgreen-200, #e8eeed);\n}\n\n/* WHITE-IVORY THEME */\n.card.theme-white-ivory {\n background-color: var(--colour-brand-ivory-paper, #fff9ee);\n \n /* Typography */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-background-level-1: var(--colour-ivory-200, #ffefcc);\n}\n\n/* INKWELL THEME (Dark) */\n.card.theme-inkwell {\n background-color: var(--colour-brand-inkwell, #14343b);\n \n /* Typography - light colors on dark background */\n --af-typography-heading-primary: var(--colour-brand-mist-green, #c6d5d1);\n --af-typography-body-default: var(--colour-inkwell-100, #d0d6d8);\n --af-background-level-1: var(--colour-inkwell-450, #203e45);\n \n /* Button variants for dark theme */\n --af-button-secondary-text: var(--colour-brand-white, #ffffff);\n --af-button-secondary-stroke: var(--colour-brand-white, #ffffff);\n --af-button-ghost-text: var(--colour-brand-white, #ffffff);\n --af-button-ghost-icon: var(--colour-brand-white, #ffffff);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-inkwell-450, #203e45);\n --af-form-control-bg-checked: var(--colour-brand-mist-green, #c6d5d1);\n --af-form-control-bg-disabled: var(--colour-inkwell-400, #2b484f);\n --af-form-control-bg-checked-disabled: var(--colour-mistgreen-700, #9eaaa7);\n --af-form-control-stroke: var(--colour-inkwell-350, #60767b);\n --af-form-control-stroke-hover: var(--colour-brand-white, #ffffff);\n --af-form-control-stroke-disabled: var(--colour-inkwell-400, #2b484f);\n --af-form-control-icon: var(--colour-brand-inkwell, #14343b);\n --af-form-control-label: var(--colour-brand-white, #ffffff);\n}\n\n/* MIST-GREEN THEME */\n.card.theme-mist-green {\n background-color: var(--colour-brand-mist-green, #c6d5d1);\n \n /* Typography */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-background-level-1: var(--colour-mistgreen-300, #dde6e3);\n}\n\n/* SOFT-CLAY THEME */\n.card.theme-soft-clay {\n background-color: var(--colour-softclay-400, #c0ab8d);\n \n /* Typography */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-ivory-paper, #fff9ee);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-background-level-1: var(--colour-softclay-500, #b09670);\n}\n\n/* ==========================================================================\n Card Content\n ========================================================================== */\n\n.card__content {\n position: relative;\n padding: var(--af-card-padding, 40px);\n display: flex;\n flex-direction: column;\n gap: var(--af-card-gap, 24px);\n flex: 1;\n box-sizing: border-box;\n z-index: 1;\n}\n\n/* Heading spacing within cards */\n.card__content ::slotted(af-heading) {\n margin-bottom: 0;\n}\n\n/* Text line-height within cards */\n.card__content ::slotted(af-text) {\n line-height: 1.44;\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\n\n/**\n * Card atom component - a themed container with consistent styling.\n * Provides theme context to children via CSS custom properties.\n * \n * This is a base building block used by molecule components like\n * af-feature-card and af-illustrated-card.\n */\n@Component({\n tag: 'af-card',\n styleUrl: 'af-card.css',\n shadow: false,\n scoped: true,\n})\nexport class AfCard {\n /**\n * Theme - sets background color and provides theme context to children.\n * Defaults to 'mist-green' if not specified.\n */\n @Prop() theme?: 'white' | 'white-ivory' | 'inkwell' | 'mist-green' | 'soft-clay' = 'mist-green';\n\n /**\n * When true, the card stretches to fill its container height.\n * Use this when the card is in a flex/grid container and needs to\n * participate in equal-height layouts. The card's content will use\n * flexbox to distribute space between children.\n */\n @Prop({ reflect: true }) stretch: boolean = false;\n\n render() {\n const classes = {\n 'card': true,\n [`theme-${this.theme}`]: true\n };\n\n return (\n <Host>\n <div class={classes}>\n <div class=\"card__content\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-CJxqw006.js","mappings":";;AAAA,MAAM,SAAS,GAAG,u/FAAu/F;;MCgB5/F,MAAM,iBAAAA,kBAAA,CAAA,MAAA,MAAA,SAAAC,CAAA,CAAA;AANnB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;AAOE;;;AAGG;AACK,QAAA,IAAK,CAAA,KAAA,GAAW,YAAY;AAEpC;;;;;AAKG;AACsB,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAkBlD;IAhBC,MAAM,GAAA;AACJ,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,CAAC,SAAS,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG;SAC1B;QAED,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,OAAO,EAAA,EACjB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,eAAe,EAAA,EACxB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACF,CACD;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-card/af-card.css?tag=af-card&encapsulation=scoped","src/components/af-card/af-card.tsx"],"sourcesContent":["/* Theme CSS custom properties follow the global token structure from @affinda/tokens */\n\n:host {\n display: block;\n width: 100%;\n}\n\n/* ==========================================================================\n Stretch Mode\n \n When stretch attribute is present, the card fills its container height\n and uses flexbox to distribute space between children. This enables\n equal-height cards in grid/flex layouts.\n ========================================================================== */\n\n:host([stretch]) {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n:host([stretch]) .card {\n flex: 1 1 auto;\n}\n\n:host([stretch]) .card__content {\n flex: 1 1 auto;\n}\n\n/* ==========================================================================\n Base Card Styles\n ========================================================================== */\n\n.card {\n /* radius-lg (20px) is the Affinda card corner — replaces the bespoke\n * `--border-radius-card-level-1` that previously shimmed in at 32px.\n * Consumers can still override by setting `--af-card-radius` on the host. */\n border-radius: var(--af-card-radius, var(--radius-lg, 20px));\n overflow: hidden;\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n/* ==========================================================================\n Theme Variants\n \n Background colors from Figma tokens:\n - white: #ffffff (Colour/Brand/White)\n - white-ivory: #fff9ee (Colour/Brand/Ivory-Paper)\n - inkwell: #14343b (Colour/Brand/Inkwell)\n - mist-green: #c6d5d1 (Colour/Brand/Mist-Green)\n - soft-clay: #c0ab8d (Colour/Softclay/400)\n ========================================================================== */\n\n/* WHITE THEME */\n.card.theme-white {\n background-color: var(--colour-brand-white, #ffffff);\n \n /* Typography */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-background-level-1: var(--colour-mistgreen-200, #e8eeed);\n}\n\n/* WHITE-IVORY THEME */\n.card.theme-white-ivory {\n background-color: var(--colour-brand-ivory-paper, #fff9ee);\n \n /* Typography */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-background-level-1: var(--colour-ivory-200, #ffefcc);\n}\n\n/* INKWELL THEME (Dark) */\n.card.theme-inkwell {\n background-color: var(--colour-brand-inkwell, #14343b);\n \n /* Typography - light colors on dark background */\n --af-typography-heading-primary: var(--colour-brand-mist-green, #c6d5d1);\n --af-typography-body-default: var(--colour-inkwell-100, #d0d6d8);\n --af-background-level-1: var(--colour-inkwell-450, #203e45);\n \n /* Button variants for dark theme */\n --af-button-secondary-text: var(--colour-brand-white, #ffffff);\n --af-button-secondary-stroke: var(--colour-brand-white, #ffffff);\n --af-button-ghost-text: var(--colour-brand-white, #ffffff);\n --af-button-ghost-icon: var(--colour-brand-white, #ffffff);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-inkwell-450, #203e45);\n --af-form-control-bg-checked: var(--colour-brand-mist-green, #c6d5d1);\n --af-form-control-bg-disabled: var(--colour-inkwell-400, #2b484f);\n --af-form-control-bg-checked-disabled: var(--colour-mistgreen-700, #9eaaa7);\n --af-form-control-stroke: var(--colour-inkwell-350, #60767b);\n --af-form-control-stroke-hover: var(--colour-brand-white, #ffffff);\n --af-form-control-stroke-disabled: var(--colour-inkwell-400, #2b484f);\n --af-form-control-icon: var(--colour-brand-inkwell, #14343b);\n --af-form-control-label: var(--colour-brand-white, #ffffff);\n}\n\n/* MIST-GREEN THEME */\n.card.theme-mist-green {\n background-color: var(--colour-brand-mist-green, #c6d5d1);\n \n /* Typography */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-background-level-1: var(--colour-mistgreen-300, #dde6e3);\n}\n\n/* SOFT-CLAY THEME */\n.card.theme-soft-clay {\n background-color: var(--colour-softclay-400, #c0ab8d);\n \n /* Typography */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-ivory-paper, #fff9ee);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-background-level-1: var(--colour-softclay-500, #b09670);\n}\n\n/* ==========================================================================\n Card Content\n ========================================================================== */\n\n.card__content {\n position: relative;\n padding: var(--af-card-padding, 40px);\n display: flex;\n flex-direction: column;\n gap: var(--af-card-gap, 24px);\n flex: 1;\n box-sizing: border-box;\n z-index: 1;\n}\n\n/* Heading spacing within cards */\n.card__content ::slotted(af-heading) {\n margin-bottom: 0;\n}\n\n/* Text line-height within cards */\n.card__content ::slotted(af-text) {\n line-height: 1.44;\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\nimport type { Theme } from '../../types';\n\n/**\n * Card atom component - a themed container with consistent styling.\n * Provides theme context to children via CSS custom properties.\n * \n * This is a base building block used by molecule components like\n * af-feature-card and af-illustrated-card.\n */\n@Component({\n tag: 'af-card',\n styleUrl: 'af-card.css',\n shadow: false,\n scoped: true,\n})\nexport class AfCard {\n /**\n * Theme - sets background color and provides theme context to children.\n * Defaults to 'mist-green' if not specified.\n */\n @Prop() theme?: Theme = 'mist-green';\n\n /**\n * When true, the card stretches to fill its container height.\n * Use this when the card is in a flex/grid container and needs to\n * participate in equal-height layouts. The card's content will use\n * flexbox to distribute space between children.\n */\n @Prop({ reflect: true }) stretch: boolean = false;\n\n render() {\n const classes = {\n 'card': true,\n [`theme-${this.theme}`]: true\n };\n\n return (\n <Host>\n <div class={classes}>\n <div class=\"card__content\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,136 @@
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-DOgb6SUj.js';
2
+ import { d as defineCustomElement$3 } from './p-CYKk6Qhi.js';
3
+ import { d as defineCustomElement$2 } from './p-O26uYJSV.js';
4
+ import { d as defineCustomElement$1 } from './p-ClZAZSzR.js';
5
+
6
+ const afHeroCss = ".sc-af-hero-h{display:block;position:relative;width:100%;--af-hero-image-lift:-260px;--af-hero-image-min-height:360px}.hero__section.sc-af-hero{position:relative;overflow:hidden}.hero__paperclip.sc-af-hero{position:absolute;top:50%;right:0;transform:translateY(-50%);pointer-events:none;z-index:0;width:655px;height:754px}@media (max-width: 991px){.hero__paperclip.sc-af-hero{width:480px;height:552px}}@media (max-width: 767px){.hero__paperclip.sc-af-hero{display:none}}.hero__inner.sc-af-hero{position:relative;z-index:1;padding-bottom:40px}.hero--pad-default.sc-af-hero-h .hero__inner.sc-af-hero{padding-top:124px}.hero--pad-loose.sc-af-hero-h .hero__inner.sc-af-hero{padding-top:164px}.hero--inkwell-centered.hero--pad-default.sc-af-hero-h .hero__inner.sc-af-hero{padding-top:80px}.hero__grid.sc-af-hero{display:grid;grid-template-columns:5fr 7fr;gap:40px;align-items:center}.hero--soft-clay-illustration.sc-af-hero-h .hero__grid.sc-af-hero,.hero--mist-green-illustration.sc-af-hero-h .hero__grid.sc-af-hero{grid-template-columns:1fr auto;gap:48px}.hero__copy.sc-af-hero{padding-left:16px}.hero--inkwell-photo.hero--pad-loose.sc-af-hero-h .hero__copy.sc-af-hero{padding-bottom:120px}.hero--inkwell-centered.sc-af-hero-h .hero__copy.sc-af-hero{padding-left:0;text-align:center}.hero__badge.sc-af-hero:not(:has(*)){display:none}.hero__badge.sc-af-hero:has(*){margin-bottom:16px}.hero__copy.sc-af-hero-s>[slot='badge'],.hero__copy .sc-af-hero-s>[slot='badge']{display:inline-block}.hero__buttons.sc-af-hero{margin-top:32px}.hero__buttons.sc-af-hero:empty{display:none}.hero--inkwell-centered.sc-af-hero-h .hero__buttons.sc-af-hero{display:flex;justify-content:center}.sc-af-hero-h{--af-hero-blob-mask:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3NDEgOTQwIj48cGF0aCBkPSJNMTcwLjA2MyAxODEuOTQ1QzIzNC4xNTYgMzAuOTUxNCA0MDguNTE4IC0zOS40OTU1IDU1OS41MTIgMjQuNTk3NUM3MTAuNTA2IDg4LjY5MDQgNzgwLjk1MiAyNjMuMDUzIDcxNi44NTkgNDE0LjA0Nkw1NzAuODQ3IDc1OC4wMzFDNTA2Ljc1NCA5MDkuMDI0IDMzMi4zOTIgOTc5LjQ3MSAxODEuMzk4IDkxNS4zNzhDMzAuNDA0NSA4NTEuMjg1IC00MC4wNDI0IDY3Ni45MjMgMjQuMDUwNiA1MjUuOTI5TDE3MC4wNjMgMTgxLjk0NVoiIGZpbGw9IiMwMDAiLz48L3N2Zz4=');--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>')}.hero__image.sc-af-hero{min-height:var(--af-hero-image-min-height);overflow:visible;margin-top:var(--af-hero-image-lift);position:relative;z-index:1}.hero__image--masked.sc-af-hero-s>img,.hero__image--masked .sc-af-hero-s>img,.hero__image--masked.sc-af-hero-s>picture img,.hero__image--masked .sc-af-hero-s>picture img,.hero__image--masked.sc-af-hero-s>.af-hero-image,.hero__image--masked .sc-af-hero-s>.af-hero-image{display:block;width:100%;height:auto;-webkit-mask-image:var(--af-hero-blob-mask);mask-image:var(--af-hero-blob-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;mask-mode:alpha}.hero__image--masked.sc-af-hero img.sc-af-hero{-webkit-mask-image:var(--af-hero-blob-mask);mask-image:var(--af-hero-blob-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;mask-mode:alpha}.hero__illustration.sc-af-hero{flex:0 0 auto;width:100%;max-width:432px;line-height:0;justify-self:end}.hero__illustration.sc-af-hero-s>svg,.hero__illustration .sc-af-hero-s>svg,.hero__illustration.sc-af-hero-s>img,.hero__illustration .sc-af-hero-s>img{width:100%;height:auto;display:block;border-radius:16px}.hero--inkwell-illustration.sc-af-hero-h .hero__illustration.sc-af-hero{max-width:none}.hero__logos.sc-af-hero{position:relative;z-index:2}.hero__logos.sc-af-hero:not(:has(*)){display:none}.hero--inkwell-photo.sc-af-hero-h .hero__logos.sc-af-hero:has(*){margin-top:-240px;padding-top:48px;padding-bottom:48px;background:var(--af-background-base, var(--colour-brand-inkwell, #14343b));border-top:1px solid\n var(--af-background-border-subtle, var(--colour-inkwell-450, #203e45))}@media (max-width: 991px){.hero--pad-default.sc-af-hero-h .hero__inner.sc-af-hero,.hero--pad-loose.sc-af-hero-h .hero__inner.sc-af-hero{padding-top:112px}.hero__grid.sc-af-hero{grid-template-columns:1fr;gap:32px}.hero--soft-clay-illustration.sc-af-hero-h .hero__grid.sc-af-hero,.hero--mist-green-illustration.sc-af-hero-h .hero__grid.sc-af-hero{grid-template-columns:1fr}.hero__copy.sc-af-hero{padding-left:0;padding-bottom:0}.hero__illustration.sc-af-hero{max-width:360px;margin-inline:auto;justify-self:center}.hero__image.sc-af-hero{margin-top:0;min-height:auto}.sc-af-hero-h.hero--inkwell-photo .hero__image--masked.sc-af-hero-s>img,.hero__image--masked .sc-af-hero-s>img,.hero--inkwell-photo.sc-af-hero-h .hero__image--masked.sc-af-hero img.sc-af-hero{-webkit-mask-image:var(--af-hero-blob-mask-mobile);mask-image:var(--af-hero-blob-mask-mobile)}.hero--inkwell-photo.sc-af-hero-h .hero__logos.sc-af-hero:has(*){margin-top:24px;padding-top:32px;padding-bottom:32px;background:transparent;border-top:none}}";
7
+
8
+ /**
9
+ * Map each variant to its underlying section theme token. Keeps one source
10
+ * of truth instead of having consumers spell the theme twice.
11
+ */
12
+ const VARIANT_THEMES = {
13
+ 'inkwell-photo': 'inkwell',
14
+ 'inkwell-illustration': 'inkwell',
15
+ 'inkwell-centered': 'inkwell',
16
+ 'soft-clay-illustration': 'soft-clay',
17
+ 'mist-green-illustration': 'mist-green',
18
+ };
19
+ const AfHero = /*@__PURE__*/ proxyCustomElement(class AfHero extends H {
20
+ constructor(registerHost) {
21
+ super();
22
+ if (registerHost !== false) {
23
+ this.__registerHost();
24
+ }
25
+ /** Layout / theme preset. See variant docs in the component header. */
26
+ this.variant = 'inkwell-photo';
27
+ /** Heading text (use the default slot for richer markup). */
28
+ this.heading = '';
29
+ /** Description text (use the `description` slot for richer markup). */
30
+ this.description = '';
31
+ /**
32
+ * Top padding preset. `default` = 124px (matches IndustryHero /
33
+ * IllustrationHero). `loose` = 164px (matches ListingHero — gives the
34
+ * image a touch more breathing room above the lockup on archive pages).
35
+ */
36
+ this.topPad = 'default';
37
+ /** Typography lockup max-width (px). Defaults to 620, matching the live site. */
38
+ this.maxWidth = 620;
39
+ /**
40
+ * Whether to apply the blob mask to the slotted `image`. Defaults to
41
+ * `true` for `inkwell-photo`. Set `false` if you want to slot in a
42
+ * pre-masked raster or a custom wrapper.
43
+ */
44
+ this.maskImage = true;
45
+ }
46
+ get resolvedFloatNavbar() {
47
+ if (typeof this.floatNavbar === 'boolean')
48
+ return this.floatNavbar;
49
+ return (this.variant === 'inkwell-photo' ||
50
+ this.variant === 'inkwell-illustration' ||
51
+ this.variant === 'inkwell-centered');
52
+ }
53
+ get theme() {
54
+ return VARIANT_THEMES[this.variant];
55
+ }
56
+ connectedCallback() {
57
+ if (this.resolvedFloatNavbar && typeof document !== 'undefined') {
58
+ document.body.setAttribute('data-af-hero-float-navbar', 'true');
59
+ }
60
+ }
61
+ disconnectedCallback() {
62
+ if (typeof document !== 'undefined' && !document.querySelector('af-hero')) {
63
+ document.body.removeAttribute('data-af-hero-float-navbar');
64
+ }
65
+ }
66
+ renderCopy() {
67
+ const alignment = this.variant === 'inkwell-centered' ? 'center' : 'left';
68
+ return (h("div", { class: "hero__copy" }, h("div", { class: "hero__badge" }, h("slot", { name: "badge" })), h("af-typography-lockup", { "heading-size": "1", "text-alignment": alignment, "max-width": String(this.maxWidth) }, this.heading ? h("h1", null, this.heading) : h("slot", null), this.description ? (h("span", { slot: "description" }, this.description)) : (h("slot", { name: "description", slot: "description" }))), h("div", { class: "hero__buttons" }, h("slot", { name: "buttons" }))));
69
+ }
70
+ renderPhoto() {
71
+ return (h("div", { class: {
72
+ hero__image: true,
73
+ 'hero__image--masked': this.maskImage,
74
+ } }, h("slot", { name: "image" })));
75
+ }
76
+ renderIllustration() {
77
+ return (h("div", { class: "hero__illustration" }, h("slot", { name: "illustration" })));
78
+ }
79
+ render() {
80
+ const v = this.variant;
81
+ const centered = v === 'inkwell-centered';
82
+ const hasImage = v === 'inkwell-photo';
83
+ const hasIllustration = v === 'inkwell-illustration' ||
84
+ v === 'soft-clay-illustration' ||
85
+ v === 'mist-green-illustration';
86
+ return (h(Host, { key: '6e8e522c6593a79fbb93eaf421c6b3f41a2072f5', class: {
87
+ [`hero--${v}`]: true,
88
+ [`hero--pad-${this.topPad}`]: true,
89
+ [`hero--theme-${this.theme}`]: true,
90
+ 'hero--float-navbar': this.resolvedFloatNavbar,
91
+ } }, h("af-section", { key: 'dc6181658d53a8c7166d3f090df9666d35310338', theme: this.theme, padding: "none", container: false, class: "hero__section" }, centered && (h("div", { key: 'b8357ea1cc08dafa3a3f5e4cd8c545bef1e3df1c', class: "hero__paperclip", "aria-hidden": "true" }, h("slot", { key: 'da4b0dcb83e6e8c09b9962ba7d0c09e02f6721c5', name: "paperclip" }))), h("af-container", { key: '0dbffc963a56e53ed7206b59cccfd74f5bd792ee', class: "hero__inner" }, centered ? (this.renderCopy()) : (h("div", { class: "hero__grid" }, this.renderCopy(), hasImage && this.renderPhoto(), hasIllustration && this.renderIllustration()))), h("div", { key: 'd4316dbc5ba954ce2a52d73dfb73575b77f394db', class: "hero__logos" }, h("slot", { key: 'd9ff55a2c238d5db322aef90cb28006d91f7dffc', name: "logos-below" })))));
92
+ }
93
+ get el() { return this; }
94
+ static get style() { return afHeroCss; }
95
+ }, [262, "af-hero", {
96
+ "variant": [513],
97
+ "heading": [1],
98
+ "description": [1],
99
+ "floatNavbar": [516, "float-navbar"],
100
+ "topPad": [1, "top-pad"],
101
+ "maxWidth": [2, "max-width"],
102
+ "maskImage": [4, "mask-image"]
103
+ }]);
104
+ function defineCustomElement() {
105
+ if (typeof customElements === "undefined") {
106
+ return;
107
+ }
108
+ const components = ["af-hero", "af-container", "af-section", "af-typography-lockup"];
109
+ components.forEach(tagName => { switch (tagName) {
110
+ case "af-hero":
111
+ if (!customElements.get(tagName)) {
112
+ customElements.define(tagName, AfHero);
113
+ }
114
+ break;
115
+ case "af-container":
116
+ if (!customElements.get(tagName)) {
117
+ defineCustomElement$3();
118
+ }
119
+ break;
120
+ case "af-section":
121
+ if (!customElements.get(tagName)) {
122
+ defineCustomElement$2();
123
+ }
124
+ break;
125
+ case "af-typography-lockup":
126
+ if (!customElements.get(tagName)) {
127
+ defineCustomElement$1();
128
+ }
129
+ break;
130
+ } });
131
+ }
132
+
133
+ export { AfHero as A, defineCustomElement as d };
134
+ //# sourceMappingURL=p-CRnEuh5f.js.map
135
+
136
+ //# sourceMappingURL=p-CRnEuh5f.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-CRnEuh5f.js","mappings":";;;;;AAAA,MAAM,SAAS,GAAG,6jKAA6jK;;ACyB/kK;;;AAGG;AACH,MAAM,cAAc,GAAgE;AAClF,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,sBAAsB,EAAE,SAAS;AACjC,IAAA,kBAAkB,EAAE,SAAS;AAC7B,IAAA,wBAAwB,EAAE,WAAW;AACrC,IAAA,yBAAyB,EAAE,YAAY;CACxC;MA4DY,MAAM,iBAAAA,kBAAA,CAAA,MAAA,MAAA,SAAAC,CAAA,CAAA;AANnB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAU2B,QAAA,IAAO,CAAA,OAAA,GAAgB,eAAe;;AAGvD,QAAA,IAAO,CAAA,OAAA,GAAW,EAAE;;AAGpB,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE;AAWhC;;;;AAIG;AACK,QAAA,IAAM,CAAA,MAAA,GAAe,SAAS;;AAG9B,QAAA,IAAQ,CAAA,QAAA,GAAW,GAAG;AAE9B;;;;AAIG;AACK,QAAA,IAAS,CAAA,SAAA,GAAY,IAAI;AAyHlC;AAvHC,IAAA,IAAY,mBAAmB,GAAA;AAC7B,QAAA,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,WAAW;AAClE,QAAA,QACE,IAAI,CAAC,OAAO,KAAK,eAAe;YAChC,IAAI,CAAC,OAAO,KAAK,sBAAsB;AACvC,YAAA,IAAI,CAAC,OAAO,KAAK,kBAAkB;;AAIvC,IAAA,IAAY,KAAK,GAAA;AACf,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;;IAGrC,iBAAiB,GAAA;QACf,IAAI,IAAI,CAAC,mBAAmB,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YAC/D,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,2BAA2B,EAAE,MAAM,CAAC;;;IAInE,oBAAoB,GAAA;AAClB,QAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;AACzE,YAAA,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC;;;IAItD,UAAU,GAAA;AAChB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,KAAK,kBAAkB,GAAG,QAAQ,GAAG,MAAM;AACzE,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,YAAY,EAAA,EACrB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,aAAa,EAAA,EACtB,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,OAAO,EAAA,CAAQ,CACtB,EACN,CACe,CAAA,sBAAA,EAAA,EAAA,cAAA,EAAA,GAAG,oBACA,SAAS,EAAA,WAAA,EACd,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAA,EAE/B,IAAI,CAAC,OAAO,GAAG,CAAA,CAAA,IAAA,EAAA,IAAA,EAAK,IAAI,CAAC,OAAO,CAAM,GAAG,CAAa,CAAA,MAAA,EAAA,IAAA,CAAA,EACtD,IAAI,CAAC,WAAW,IACf,CAAM,CAAA,MAAA,EAAA,EAAA,IAAI,EAAC,aAAa,EAAE,EAAA,IAAI,CAAC,WAAW,CAAQ,KAElD,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,aAAa,EAAA,CAAQ,CACpD,CACoB,EACvB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,eAAe,EAAA,EACxB,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,SAAS,GAAQ,CACxB,CACF;;IAIF,WAAW,GAAA;AACjB,QAAA,QACE,CACE,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE;AACL,gBAAA,WAAW,EAAE,IAAI;gBACjB,qBAAqB,EAAE,IAAI,CAAC,SAAS;AACtC,aAAA,EAAA,EAED,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,OAAO,EAAQ,CAAA,CACtB;;IAIF,kBAAkB,GAAA;QACxB,QACE,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,oBAAoB,EAAA,EAC7B,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,cAAc,EAAQ,CAAA,CAC7B;;IAIV,MAAM,GAAA;AACJ,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO;AACtB,QAAA,MAAM,QAAQ,GAAG,CAAC,KAAK,kBAAkB;AACzC,QAAA,MAAM,QAAQ,GAAG,CAAC,KAAK,eAAe;AACtC,QAAA,MAAM,eAAe,GACnB,CAAC,KAAK,sBAAsB;AAC5B,YAAA,CAAC,KAAK,wBAAwB;YAC9B,CAAC,KAAK,yBAAyB;QAEjC,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EACH,KAAK,EAAE;AACL,gBAAA,CAAC,CAAS,MAAA,EAAA,CAAC,CAAE,CAAA,GAAG,IAAI;AACpB,gBAAA,CAAC,aAAa,IAAI,CAAC,MAAM,CAAE,CAAA,GAAG,IAAI;AAClC,gBAAA,CAAC,eAAe,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI;gBACnC,oBAAoB,EAAE,IAAI,CAAC,mBAAmB;AAC/C,aAAA,EAAA,EAED,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAC,MAAM,EACd,SAAS,EAAE,KAAK,EAChB,KAAK,EAAC,eAAe,EAAA,EAEpB,QAAQ,KACP,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,iBAAiB,iBAAa,MAAM,EAAA,EAC7C,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,WAAW,EAAA,CAAQ,CAC1B,CACP,EACD,CAAc,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,aAAa,EAAA,EAC9B,QAAQ,IACP,IAAI,CAAC,UAAU,EAAE,KAEjB,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,YAAY,EAAA,EACpB,IAAI,CAAC,UAAU,EAAE,EACjB,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,EAC9B,eAAe,IAAI,IAAI,CAAC,kBAAkB,EAAE,CACzC,CACP,CACY,EACf,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,aAAa,EAAA,EACtB,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,aAAa,EAAA,CAAQ,CAC5B,CACK,CACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-hero/af-hero.css?tag=af-hero&encapsulation=scoped","src/components/af-hero/af-hero.tsx"],"sourcesContent":[":host {\n display: block;\n position: relative;\n width: 100%;\n /* Image-lift custom property — consumers override per-page via inline\n style or a page-level rule. The negative value pulls the photo's\n crown above the hero top so it reads behind the floating navbar\n pill. Matches the live Webflow stack (~-260px on .page-banner). */\n --af-hero-image-lift: -260px;\n /* Blob mask container size override — rarely needed; defaults to the\n photo column's natural dimensions. */\n --af-hero-image-min-height: 360px;\n}\n\n.hero__section {\n position: relative;\n overflow: hidden;\n}\n\n/* -----------------------------------------------------------------\n Paperclip watermark slot (inkwell-centered only)\n ----------------------------------------------------------------- */\n.hero__paperclip {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n pointer-events: none;\n z-index: 0;\n /* Default size — consumers can resize the slotted decoration via its\n own width/height props. */\n width: 655px;\n height: 754px;\n}\n\n@media (max-width: 991px) {\n .hero__paperclip {\n width: 480px;\n height: 552px;\n }\n}\n\n@media (max-width: 767px) {\n .hero__paperclip {\n display: none;\n }\n}\n\n/* -----------------------------------------------------------------\n Inner wrapper — top/bottom padding\n ----------------------------------------------------------------- */\n.hero__inner {\n position: relative;\n z-index: 1;\n padding-bottom: 40px;\n}\n\n:host(.hero--pad-default) .hero__inner {\n padding-top: 124px;\n}\n\n:host(.hero--pad-loose) .hero__inner {\n padding-top: 164px;\n}\n\n/* Centered variant uses slightly tighter top padding to match the live\n /platform hero (80px), since the lockup is typically tall. */\n:host(.hero--inkwell-centered.hero--pad-default) .hero__inner {\n padding-top: 80px;\n}\n\n/* -----------------------------------------------------------------\n Grid layout (photo + illustration variants)\n ----------------------------------------------------------------- */\n.hero__grid {\n display: grid;\n grid-template-columns: 5fr 7fr;\n gap: 40px;\n align-items: center;\n}\n\n/* Illustration variants use a looser two-column split so the art\n doesn't dominate. */\n:host(.hero--soft-clay-illustration) .hero__grid,\n:host(.hero--mist-green-illustration) .hero__grid {\n grid-template-columns: 1fr auto;\n gap: 48px;\n}\n\n.hero__copy {\n /* Small inset pushes heading inward from the hard container edge —\n matches the live .page-banner-text treatment. Only applied to\n left-aligned variants. */\n padding-left: 16px;\n}\n\n:host(.hero--inkwell-photo.hero--pad-loose) .hero__copy {\n /* Mirrors ListingHero's `padding-bottom: 120px` — combined with\n `align-items: center` on the grid, this shifts the heading visually\n upward so the subtitle lines up near the image's vertical centre. */\n padding-bottom: 120px;\n}\n\n:host(.hero--inkwell-centered) .hero__copy {\n padding-left: 0;\n text-align: center;\n}\n\n.hero__badge:not(:has(*)) {\n display: none;\n}\n\n.hero__badge:has(*) {\n margin-bottom: 16px;\n}\n\n.hero__copy ::slotted([slot='badge']) {\n display: inline-block;\n}\n\n.hero__buttons {\n margin-top: 32px;\n}\n\n.hero__buttons:empty {\n display: none;\n}\n\n:host(.hero--inkwell-centered) .hero__buttons {\n display: flex;\n justify-content: center;\n}\n\n/* -----------------------------------------------------------------\n Photo (inkwell-photo)\n Blob-mask shape defined once as a CSS custom property so Stencil\n doesn't duplicate the giant base64 URL for prefixed/unprefixed pairs.\n ----------------------------------------------------------------- */\n:host {\n --af-hero-blob-mask: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3NDEgOTQwIj48cGF0aCBkPSJNMTcwLjA2MyAxODEuOTQ1QzIzNC4xNTYgMzAuOTUxNCA0MDguNTE4IC0zOS40OTU1IDU1OS41MTIgMjQuNTk3NUM3MTAuNTA2IDg4LjY5MDQgNzgwLjk1MiAyNjMuMDUzIDcxNi44NTkgNDE0LjA0Nkw1NzAuODQ3IDc1OC4wMzFDNTA2Ljc1NCA5MDkuMDI0IDMzMi4zOTIgOTc5LjQ3MSAxODEuMzk4IDkxNS4zNzhDMzAuNDA0NSA4NTEuMjg1IC00MC4wNDI0IDY3Ni45MjMgMjQuMDUwNiA1MjUuOTI5TDE3MC4wNjMgMTgxLjk0NVoiIGZpbGw9IiMwMDAiLz48L3N2Zz4=');\n --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>');\n}\n\n.hero__image {\n min-height: var(--af-hero-image-min-height);\n overflow: visible;\n margin-top: var(--af-hero-image-lift);\n position: relative;\n z-index: 1;\n}\n\n.hero__image--masked ::slotted(img),\n.hero__image--masked ::slotted(picture img),\n.hero__image--masked ::slotted(.af-hero-image) {\n display: block;\n width: 100%;\n height: auto;\n -webkit-mask-image: var(--af-hero-blob-mask);\n mask-image: var(--af-hero-blob-mask);\n -webkit-mask-size: 100% 100%;\n mask-size: 100% 100%;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n mask-mode: alpha;\n}\n\n/* Fallback: some consumers slot a raw <img> wrapped in a container.\n Descendant selector per repo convention. */\n.hero__image--masked img {\n -webkit-mask-image: var(--af-hero-blob-mask);\n mask-image: var(--af-hero-blob-mask);\n -webkit-mask-size: 100% 100%;\n mask-size: 100% 100%;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n mask-mode: alpha;\n}\n\n/* -----------------------------------------------------------------\n Illustration (inkwell/soft-clay/mist-green -illustration)\n ----------------------------------------------------------------- */\n.hero__illustration {\n flex: 0 0 auto;\n width: 100%;\n max-width: 432px;\n line-height: 0;\n justify-self: end;\n}\n\n.hero__illustration ::slotted(svg),\n.hero__illustration ::slotted(img) {\n width: 100%;\n height: auto;\n display: block;\n border-radius: 16px;\n}\n\n:host(.hero--inkwell-illustration) .hero__illustration {\n max-width: none;\n}\n\n/* -----------------------------------------------------------------\n Logos-below overlap\n Painted in the theme's background token so the strip cleanly overlaps\n the bottom of the photo on the -photo variant. Empty = collapsed.\n ----------------------------------------------------------------- */\n.hero__logos {\n position: relative;\n z-index: 2;\n}\n\n.hero__logos:not(:has(*)) {\n display: none;\n}\n\n/* Photo variant pulls the logos row up so it covers the image's bottom\n edge — matches the ListingHero `.listing-hero__footer` treatment. */\n:host(.hero--inkwell-photo) .hero__logos:has(*) {\n margin-top: -240px;\n padding-top: 48px;\n padding-bottom: 48px;\n background: var(--af-background-base, var(--colour-brand-inkwell, #14343b));\n border-top: 1px solid\n var(--af-background-border-subtle, var(--colour-inkwell-450, #203e45));\n}\n\n/* -----------------------------------------------------------------\n Mobile / tablet\n ----------------------------------------------------------------- */\n@media (max-width: 991px) {\n :host(.hero--pad-default) .hero__inner,\n :host(.hero--pad-loose) .hero__inner {\n padding-top: 112px;\n }\n\n .hero__grid {\n grid-template-columns: 1fr;\n gap: 32px;\n }\n\n :host(.hero--soft-clay-illustration) .hero__grid,\n :host(.hero--mist-green-illustration) .hero__grid {\n grid-template-columns: 1fr;\n }\n\n .hero__copy {\n padding-left: 0;\n padding-bottom: 0;\n }\n\n .hero__illustration {\n max-width: 360px;\n margin-inline: auto;\n justify-self: center;\n }\n\n /* Photo on mobile: swap the desktop blob mask for the softer D-curve\n mobile variant, and drop the lift so the image doesn't crash into\n the navbar. */\n .hero__image {\n margin-top: 0;\n min-height: auto;\n }\n\n :host(.hero--inkwell-photo) .hero__image--masked ::slotted(img),\n :host(.hero--inkwell-photo) .hero__image--masked img {\n -webkit-mask-image: var(--af-hero-blob-mask-mobile);\n mask-image: var(--af-hero-blob-mask-mobile);\n }\n\n :host(.hero--inkwell-photo) .hero__logos:has(*) {\n margin-top: 24px;\n padding-top: 32px;\n padding-bottom: 32px;\n background: transparent;\n border-top: none;\n }\n}\n","import { Component, h, Host, Prop, Element } from '@stencil/core';\n\nexport type HeroVariant =\n | 'inkwell-photo'\n | 'inkwell-illustration'\n | 'inkwell-centered'\n | 'soft-clay-illustration'\n | 'mist-green-illustration';\n\nexport type HeroTopPad = 'default' | 'loose';\n\n/**\n * Blob-shape mask used to clip hero photos on the inkwell-photo variant.\n * Extracted from the 7+ hand-rolled copies in the website so the path is\n * defined exactly once. Intrinsic viewBox: 741 × 940.\n */\nconst BLOB_MASK_URL =\n \"url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3NDEgOTQwIj48cGF0aCBkPSJNMTcwLjA2MyAxODEuOTQ1QzIzNC4xNTYgMzAuOTUxNCA0MDguNTE4IC0zOS40OTU1IDU1OS41MTIgMjQuNTk3NUM3MTAuNTA2IDg4LjY5MDQgNzgwLjk1MiAyNjMuMDUzIDcxNi44NTkgNDE0LjA0Nkw1NzAuODQ3IDc1OC4wMzFDNTA2Ljc1NCA5MDkuMDI0IDMzMi4zOTIgOTc5LjQ3MSAxODEuMzk4IDkxNS4zNzhDMzAuNDA0NSA4NTEuMjg1IC00MC4wNDI0IDY3Ni45MjMgMjQuMDUwNiA1MjUuOTI5TDE3MC4wNjMgMTgxLjk0NVoiIGZpbGw9IiMwMDAiLz48L3N2Zz4=')\";\n\n/**\n * Mobile blob shape — simpler D-curve matching the live mobile banner.\n */\nconst BLOB_MASK_URL_MOBILE =\n \"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>')\";\n\n/**\n * Map each variant to its underlying section theme token. Keeps one source\n * of truth instead of having consumers spell the theme twice.\n */\nconst VARIANT_THEMES: Record<HeroVariant, 'inkwell' | 'soft-clay' | 'mist-green'> = {\n 'inkwell-photo': 'inkwell',\n 'inkwell-illustration': 'inkwell',\n 'inkwell-centered': 'inkwell',\n 'soft-clay-illustration': 'soft-clay',\n 'mist-green-illustration': 'mist-green',\n};\n\n/**\n * Unified top-of-page hero — replaces the 7+ hand-rolled hero implementations\n * the Affinda marketing site (and sibling apps) currently ship. Covers five\n * canonical patterns via the `variant` prop:\n *\n * - `inkwell-photo` — inkwell background, blob-masked photo on the right.\n * Use for: listing / archive pages (blog, case-studies, whitepapers,\n * value-creation, about-us) and industry landing pages that carry a\n * photograph instead of an illustration.\n * - `inkwell-illustration` — inkwell background, illustration on the right.\n * Use for: industry landing pages, /industries, /integrations, /platform\n * with bespoke art.\n * - `inkwell-centered` — inkwell background, centred typography lockup.\n * Slot `<af-paperclip-decoration />` into the `paperclip` slot for the\n * watermark treatment. Use for: `/`, `/au`, `/platform`.\n * - `soft-clay-illustration` — soft-clay background, illustration on the\n * right. Use for: /news, /industries overview, /security, /compare.\n * - `mist-green-illustration` — same layout as soft-clay-illustration but on\n * the mist-green theme. Reserved for future pages.\n *\n * ## Slots\n *\n * - default — heading content (use when richer markup than the `heading`\n * prop can express is needed; e.g. coloured spans or line breaks).\n * - `description` — supporting copy under the heading.\n * - `badge` — optional pre-heading label (pill, version tag).\n * - `buttons` — hero CTAs (usually an `<af-button-group>`).\n * - `image` — the photograph for the `inkwell-photo` variant. Wrapped in\n * the blob mask automatically.\n * - `illustration` — the illustration SVG for `-illustration` variants.\n * - `paperclip` — watermark for `inkwell-centered`. Consumers typically\n * slot `<af-paperclip-decoration />` here.\n * - `logos-below` — overlap row at the bottom gutter (logo carousel etc.).\n * Painted with the theme's background so it cleanly overlaps the image's\n * lower edge on the photo variant.\n *\n * ## Float-navbar handling\n *\n * When `floatNavbar` is true (the default for the inkwell variants) the\n * component sets `data-af-hero-float-navbar=\"true\"` on `<body>` via a\n * lifecycle hook, and a companion rule in `@affinda/css/base.css` applies\n * the `body > header { position: absolute }` / `main { padding-top: 0 }`\n * / navbar-spacer-transparent treatment. Consumers already import\n * `@affinda/css` so no extra import is required. The rule deactivates\n * when the hero is removed from the DOM.\n *\n * ## Image lift\n *\n * The `inkwell-photo` variant renders the photo column with\n * `margin-top: var(--af-hero-image-lift, -260px)`. Override per-page by\n * setting `--af-hero-image-lift` on the `<af-hero>` element.\n */\n@Component({\n tag: 'af-hero',\n styleUrl: 'af-hero.css',\n shadow: false,\n scoped: true,\n})\nexport class AfHero {\n @Element() el!: HTMLElement;\n\n /** Layout / theme preset. See variant docs in the component header. */\n @Prop({ reflect: true }) variant: HeroVariant = 'inkwell-photo';\n\n /** Heading text (use the default slot for richer markup). */\n @Prop() heading: string = '';\n\n /** Description text (use the `description` slot for richer markup). */\n @Prop() description: string = '';\n\n /**\n * Float the site header over the hero and paint the navbar-spacer\n * transparent so the hero background flows to the top of the viewport.\n * Defaults to true for the three inkwell variants, false for the\n * soft-clay / mist-green illustration variants (whose consumers don't\n * always want a full-bleed crown).\n */\n @Prop({ reflect: true }) floatNavbar?: boolean;\n\n /**\n * Top padding preset. `default` = 124px (matches IndustryHero /\n * IllustrationHero). `loose` = 164px (matches ListingHero — gives the\n * image a touch more breathing room above the lockup on archive pages).\n */\n @Prop() topPad: HeroTopPad = 'default';\n\n /** Typography lockup max-width (px). Defaults to 620, matching the live site. */\n @Prop() maxWidth: number = 620;\n\n /**\n * Whether to apply the blob mask to the slotted `image`. Defaults to\n * `true` for `inkwell-photo`. Set `false` if you want to slot in a\n * pre-masked raster or a custom wrapper.\n */\n @Prop() maskImage: boolean = true;\n\n private get resolvedFloatNavbar(): boolean {\n if (typeof this.floatNavbar === 'boolean') return this.floatNavbar;\n return (\n this.variant === 'inkwell-photo' ||\n this.variant === 'inkwell-illustration' ||\n this.variant === 'inkwell-centered'\n );\n }\n\n private get theme() {\n return VARIANT_THEMES[this.variant];\n }\n\n connectedCallback() {\n if (this.resolvedFloatNavbar && typeof document !== 'undefined') {\n document.body.setAttribute('data-af-hero-float-navbar', 'true');\n }\n }\n\n disconnectedCallback() {\n if (typeof document !== 'undefined' && !document.querySelector('af-hero')) {\n document.body.removeAttribute('data-af-hero-float-navbar');\n }\n }\n\n private renderCopy() {\n const alignment = this.variant === 'inkwell-centered' ? 'center' : 'left';\n return (\n <div class=\"hero__copy\">\n <div class=\"hero__badge\">\n <slot name=\"badge\"></slot>\n </div>\n <af-typography-lockup\n heading-size=\"1\"\n text-alignment={alignment}\n max-width={String(this.maxWidth)}\n >\n {this.heading ? <h1>{this.heading}</h1> : <slot></slot>}\n {this.description ? (\n <span slot=\"description\">{this.description}</span>\n ) : (\n <slot name=\"description\" slot=\"description\"></slot>\n )}\n </af-typography-lockup>\n <div class=\"hero__buttons\">\n <slot name=\"buttons\"></slot>\n </div>\n </div>\n );\n }\n\n private renderPhoto() {\n return (\n <div\n class={{\n hero__image: true,\n 'hero__image--masked': this.maskImage,\n }}\n >\n <slot name=\"image\"></slot>\n </div>\n );\n }\n\n private renderIllustration() {\n return (\n <div class=\"hero__illustration\">\n <slot name=\"illustration\"></slot>\n </div>\n );\n }\n\n render() {\n const v = this.variant;\n const centered = v === 'inkwell-centered';\n const hasImage = v === 'inkwell-photo';\n const hasIllustration =\n v === 'inkwell-illustration' ||\n v === 'soft-clay-illustration' ||\n v === 'mist-green-illustration';\n\n return (\n <Host\n class={{\n [`hero--${v}`]: true,\n [`hero--pad-${this.topPad}`]: true,\n [`hero--theme-${this.theme}`]: true,\n 'hero--float-navbar': this.resolvedFloatNavbar,\n }}\n >\n <af-section\n theme={this.theme}\n padding=\"none\"\n container={false}\n class=\"hero__section\"\n >\n {centered && (\n <div class=\"hero__paperclip\" aria-hidden=\"true\">\n <slot name=\"paperclip\"></slot>\n </div>\n )}\n <af-container class=\"hero__inner\">\n {centered ? (\n this.renderCopy()\n ) : (\n <div class=\"hero__grid\">\n {this.renderCopy()}\n {hasImage && this.renderPhoto()}\n {hasIllustration && this.renderIllustration()}\n </div>\n )}\n </af-container>\n <div class=\"hero__logos\">\n <slot name=\"logos-below\"></slot>\n </div>\n </af-section>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -119,7 +119,7 @@ const AfTypographyLockup = /*@__PURE__*/ proxyCustomElement(class AfTypographyLo
119
119
  [`align-${effectiveButtonsAlignment}`]: true
120
120
  };
121
121
  const copyStyle = this.maxWidth ? { maxWidth: `${this.maxWidth}px` } : {};
122
- return (h(Host, { key: 'c4598149d2f3097c4dcd9c0772d7d964bf22a8c6' }, h("div", { key: 'ed1cfbba38c406dccbef2db200895d34e15453eb', class: containerClasses }, h("div", { key: '0664b846ad217e406d220765ed325e10698753e1', class: "copy", style: copyStyle }, h("div", { key: '45bda8dc3ace9cc57127384792379ca208e70826', class: headingClasses, part: "heading" }, h("slot", { key: 'f2125a029762d4813007acaddd2e4e858329e031' })), h("div", { key: '276339fcd8ab195b874a59c755eff42572f9e647', class: descriptionClasses, part: "body", hidden: !this.hasDescription }, h("slot", { key: 'd5d8fc98e3a3926931f598d44f1808ad3cc13905', name: "description", ref: (el) => (this.descriptionSlot = el) }))), h("div", { key: '8a540da24e2e242891549bbfe0848c5af6b8f8be', class: buttonsClasses, part: "buttons", hidden: !this.hasButtons }, h("slot", { key: 'e1cd55e1ca1e99a58a93e14180a817ee63ee15cd', name: "buttons", ref: (el) => (this.buttonsSlot = el) })))));
122
+ return (h(Host, { key: '1c25556c2117158964c3a72c80bb0453fdd871bc' }, h("div", { key: '817f5ee187f7c9fbd2c18fe4857ced5ebb46e871', class: containerClasses }, h("div", { key: 'eefc5dc2b46cd392b658b0698de9dbab9262808b', class: "copy", style: copyStyle }, h("div", { key: '454e5991fde5bc8f8cf26c3b2942601de263b374', class: headingClasses, part: "heading" }, h("slot", { key: 'd3c76e6730ccc5eb5c0deae5ae544b844d04bf3e' })), h("div", { key: '5b4d41b67bfcd2e72ced102c53f4fc840c226e9f', class: descriptionClasses, part: "body", hidden: !this.hasDescription }, h("slot", { key: 'eb9b013dbe5462d9171c90238b90878df936e954', name: "description", ref: (el) => (this.descriptionSlot = el) }))), h("div", { key: '105bf269969148e14449ee0dda6dd83f1714df97', class: buttonsClasses, part: "buttons", hidden: !this.hasButtons }, h("slot", { key: 'bbf519061574d79fdba1639894c34d70ee662f2b', name: "buttons", ref: (el) => (this.buttonsSlot = el) })))));
123
123
  }
124
124
  get el() { return this; }
125
125
  static get style() { return afTypographyLockupCss; }
@@ -152,6 +152,6 @@ function defineCustomElement() {
152
152
  }
153
153
 
154
154
  export { AfTypographyLockup as A, defineCustomElement as d };
155
- //# sourceMappingURL=p-DNeNJhuM.js.map
155
+ //# sourceMappingURL=p-ClZAZSzR.js.map
156
156
 
157
- //# sourceMappingURL=p-DNeNJhuM.js.map
157
+ //# sourceMappingURL=p-ClZAZSzR.js.map