@affinda/wc 0.0.28 → 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 (661) 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-accordion.entry.esm.js.map +1 -1
  5. package/dist/affinda/af-feature-card.entry.esm.js.map +1 -1
  6. package/dist/affinda/af-footer.entry.esm.js.map +1 -1
  7. package/dist/affinda/af-grid.entry.esm.js.map +1 -1
  8. package/dist/affinda/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.esm.js.map +1 -1
  9. package/dist/affinda/af-hero.entry.esm.js.map +1 -0
  10. package/dist/affinda/af-illustrated-card.entry.esm.js.map +1 -1
  11. package/dist/affinda/af-in-page-banner.entry.esm.js.map +1 -1
  12. package/dist/affinda/af-inline.entry.esm.js.map +1 -1
  13. package/dist/affinda/af-numbered-stepper-item.entry.esm.js.map +1 -0
  14. package/dist/affinda/af-numbered-stepper.entry.esm.js.map +1 -0
  15. package/dist/affinda/af-paperclip-decoration.entry.esm.js.map +1 -0
  16. package/dist/affinda/af-section.entry.esm.js.map +1 -1
  17. package/dist/affinda/af-split-section.entry.esm.js.map +1 -1
  18. package/dist/affinda/af-stack.entry.esm.js.map +1 -1
  19. package/dist/affinda/af-stat.entry.esm.js.map +1 -0
  20. package/dist/affinda/af-stats-row.entry.esm.js.map +1 -0
  21. package/dist/affinda/af-theme-override.entry.esm.js.map +1 -1
  22. package/dist/affinda/af-typography-lockup.entry.esm.js.map +1 -1
  23. package/dist/affinda/affinda.css +1 -1
  24. package/dist/affinda/affinda.esm.js +1 -1
  25. package/dist/affinda/index.esm.js +1 -1
  26. package/dist/affinda/index.esm.js.map +1 -1
  27. package/dist/affinda/p-068ac2fb.entry.js +2 -0
  28. package/dist/affinda/{p-b14c1a4b.entry.js.map → p-068ac2fb.entry.js.map} +1 -1
  29. package/dist/affinda/{p-9bb5202e.entry.js → p-09dfcd40.entry.js} +2 -2
  30. package/dist/affinda/p-0acadf6f.entry.js +2 -0
  31. package/dist/affinda/p-0acadf6f.entry.js.map +1 -0
  32. package/dist/affinda/{p-6eca2722.entry.js → p-15f0bd34.entry.js} +2 -2
  33. package/dist/affinda/{p-97ac8f5f.entry.js → p-1b4b0c88.entry.js} +2 -2
  34. package/dist/affinda/{p-2c655ae2.entry.js → p-1c96856a.entry.js} +2 -2
  35. package/dist/affinda/p-2237e652.entry.js +2 -0
  36. package/dist/affinda/{p-5e5d16dd.entry.js.map → p-2237e652.entry.js.map} +1 -1
  37. package/dist/affinda/{p-4cbdf940.entry.js → p-24e74c10.entry.js} +2 -2
  38. package/dist/affinda/p-2526604b.entry.js +2 -0
  39. package/dist/affinda/p-2526604b.entry.js.map +1 -0
  40. package/dist/affinda/{p-bf941fa7.entry.js → p-256970e3.entry.js} +2 -2
  41. package/dist/affinda/p-32d62fbb.entry.js +2 -0
  42. package/dist/affinda/{p-af3f6e16.entry.js → p-342b08e5.entry.js} +2 -2
  43. package/dist/affinda/{p-102e8b8c.entry.js → p-35607741.entry.js} +2 -2
  44. package/dist/affinda/{p-c7ba4e7f.entry.js → p-364ffa25.entry.js} +2 -2
  45. package/dist/affinda/{p-e9f8ef54.entry.js → p-365a75e2.entry.js} +2 -2
  46. package/dist/affinda/p-3ed408f6.entry.js +2 -0
  47. package/dist/affinda/{p-80c96efd.entry.js → p-4058a1eb.entry.js} +2 -2
  48. package/dist/affinda/{p-159fe9b1.entry.js → p-41bbb218.entry.js} +2 -2
  49. package/dist/affinda/p-436673bb.entry.js +2 -0
  50. package/dist/affinda/p-436673bb.entry.js.map +1 -0
  51. package/dist/affinda/{p-f9b6d1c6.entry.js → p-43f40921.entry.js} +2 -2
  52. package/dist/affinda/p-44d960ca.entry.js +2 -0
  53. package/dist/affinda/{p-da999c10.entry.js.map → p-44d960ca.entry.js.map} +1 -1
  54. package/dist/affinda/{p-0f3267ea.entry.js → p-4a355b69.entry.js} +2 -2
  55. package/dist/affinda/p-4a9b192b.entry.js +2 -0
  56. package/dist/affinda/{p-d60d1943.entry.js.map → p-4a9b192b.entry.js.map} +1 -1
  57. package/dist/affinda/{p-3ecf43aa.entry.js → p-4b2c0698.entry.js} +2 -2
  58. package/dist/affinda/p-4eeeb8a1.entry.js +2 -0
  59. package/dist/affinda/{p-cc22a8da.entry.js.map → p-4eeeb8a1.entry.js.map} +1 -1
  60. package/dist/affinda/{p-12652bf5.entry.js → p-4f59b554.entry.js} +2 -2
  61. package/dist/affinda/{p-4e8bd716.entry.js → p-5c163c5b.entry.js} +2 -2
  62. package/dist/affinda/{p-8d9d0cb3.entry.js → p-5e5e7d75.entry.js} +2 -2
  63. package/dist/affinda/{p-648e2d76.entry.js → p-61a6b43d.entry.js} +2 -2
  64. package/dist/affinda/p-631d141c.entry.js +2 -0
  65. package/dist/affinda/p-631d141c.entry.js.map +1 -0
  66. package/dist/affinda/p-6475796d.entry.js +2 -0
  67. package/dist/affinda/{p-50590601.entry.js.map → p-6475796d.entry.js.map} +1 -1
  68. package/dist/affinda/p-6756aa66.entry.js +2 -0
  69. package/dist/affinda/{p-432c7bfc.entry.js → p-6c33fee6.entry.js} +2 -2
  70. package/dist/affinda/p-6e181b2b.entry.js +2 -0
  71. package/dist/affinda/{p-816deae3.entry.js → p-6ea474a3.entry.js} +2 -2
  72. package/dist/affinda/{p-ef41e743.entry.js → p-7111051c.entry.js} +2 -2
  73. package/dist/affinda/{p-23aa03dc.entry.js → p-76cb736d.entry.js} +2 -2
  74. package/dist/affinda/{p-e78112d9.entry.js → p-7867c2ff.entry.js} +2 -2
  75. package/dist/affinda/p-7d3cdda1.entry.js +2 -0
  76. package/dist/affinda/p-7d3cdda1.entry.js.map +1 -0
  77. package/dist/affinda/{p-11e7ddf3.entry.js → p-827f3050.entry.js} +2 -2
  78. package/dist/affinda/{p-77ed47d5.entry.js → p-83bb96cc.entry.js} +2 -2
  79. package/dist/affinda/p-85cc55bb.entry.js +2 -0
  80. package/dist/affinda/p-85cc55bb.entry.js.map +1 -0
  81. package/dist/affinda/{p-5e444a9a.entry.js → p-862a2509.entry.js} +2 -2
  82. package/dist/affinda/{p-7238fc21.entry.js → p-86f6dfdc.entry.js} +2 -2
  83. package/dist/affinda/{p-e0163836.entry.js → p-90ef7baa.entry.js} +2 -2
  84. package/dist/affinda/{p-ab0b621e.entry.js → p-9480f00d.entry.js} +2 -2
  85. package/dist/affinda/{p-3ca3e4dc.entry.js → p-95d4696a.entry.js} +2 -2
  86. package/dist/affinda/{p-892f9bc3.entry.js → p-9aed7039.entry.js} +2 -2
  87. package/dist/affinda/{p-bfc17d0c.entry.js → p-9c1e9bd8.entry.js} +2 -2
  88. package/dist/affinda/{p-be45f85c.entry.js → p-9ce0adc2.entry.js} +2 -2
  89. package/dist/affinda/{p-8da30e7a.entry.js → p-9eba91fd.entry.js} +2 -2
  90. package/dist/affinda/{p-aa5c6cc0.entry.js → p-9f3e7116.entry.js} +2 -2
  91. package/dist/affinda/p-MwnBSqEY.js +3 -0
  92. package/dist/affinda/p-MwnBSqEY.js.map +1 -0
  93. package/dist/affinda/{p-636045e8.entry.js → p-a02d6192.entry.js} +2 -2
  94. package/dist/affinda/p-a1e80460.entry.js +2 -0
  95. package/dist/affinda/{p-6bb831c5.entry.js.map → p-a1e80460.entry.js.map} +1 -1
  96. package/dist/affinda/{p-2140698f.entry.js → p-a25d3257.entry.js} +2 -2
  97. package/dist/affinda/{p-401fc5b1.entry.js → p-a7a8f18c.entry.js} +2 -2
  98. package/dist/affinda/{p-a4d39bdd.entry.js → p-a8d75eb1.entry.js} +2 -2
  99. package/dist/affinda/{p-a3865306.entry.js → p-ae430873.entry.js} +2 -2
  100. package/dist/affinda/p-b39eea31.entry.js +2 -0
  101. package/dist/affinda/{p-570283f6.entry.js.map → p-b39eea31.entry.js.map} +1 -1
  102. package/dist/affinda/{p-2aa112c2.entry.js → p-b9ec0e75.entry.js} +2 -2
  103. package/dist/affinda/{p-2aa112c2.entry.js.map → p-b9ec0e75.entry.js.map} +1 -1
  104. package/dist/affinda/{p-5ab389c6.entry.js → p-bbfc9df6.entry.js} +2 -2
  105. package/dist/affinda/{p-a002c784.entry.js → p-bed7d9a1.entry.js} +2 -2
  106. package/dist/affinda/p-d7d82986.entry.js +2 -0
  107. package/dist/affinda/{p-07f9580c.entry.js.map → p-d7d82986.entry.js.map} +1 -1
  108. package/dist/affinda/p-dabd389a.entry.js +2 -0
  109. package/dist/affinda/p-dabd389a.entry.js.map +1 -0
  110. package/dist/affinda/{p-eb96f29b.entry.js → p-dcc89b4c.entry.js} +2 -2
  111. package/dist/affinda/{p-1dff35bf.entry.js → p-de75cb4f.entry.js} +2 -2
  112. package/dist/affinda/{p-7b7d9c6a.entry.js → p-e07e27f1.entry.js} +2 -2
  113. package/dist/affinda/{p-8f6884c8.entry.js → p-eeda78ea.entry.js} +2 -2
  114. package/dist/affinda/{p-d54abc45.entry.js → p-f19cb091.entry.js} +2 -2
  115. package/dist/cjs/af-accordion-item.cjs.entry.js +2 -2
  116. package/dist/cjs/af-accordion.cjs.entry.js +2 -2
  117. package/dist/cjs/af-aspect-ratio.cjs.entry.js +1 -1
  118. package/dist/cjs/af-button-group.cjs.entry.js +1 -1
  119. package/dist/cjs/af-button.cjs.entry.js +1 -1
  120. package/dist/cjs/af-card.cjs.entry.js +3 -3
  121. package/dist/cjs/af-card.entry.cjs.js.map +1 -1
  122. package/dist/cjs/af-center.cjs.entry.js +2 -2
  123. package/dist/cjs/af-checkbox.cjs.entry.js +1 -1
  124. package/dist/cjs/af-client-carousel.cjs.entry.js +21 -6
  125. package/dist/cjs/af-client-carousel.entry.cjs.js.map +1 -1
  126. package/dist/cjs/af-color-swatch.cjs.entry.js +1 -1
  127. package/dist/cjs/af-contact-item.cjs.entry.js +2 -2
  128. package/dist/cjs/af-container.cjs.entry.js +1 -1
  129. package/dist/cjs/af-divider.cjs.entry.js +2 -2
  130. package/dist/cjs/af-divider.entry.cjs.js.map +1 -1
  131. package/dist/cjs/af-feature-accordion.cjs.entry.js +4 -4
  132. package/dist/cjs/af-feature-accordion.entry.cjs.js.map +1 -1
  133. package/dist/cjs/af-feature-card.cjs.entry.js +1 -1
  134. package/dist/cjs/af-feature-card.entry.cjs.js.map +1 -1
  135. package/dist/cjs/af-feature-grid.cjs.entry.js +2 -2
  136. package/dist/cjs/af-fieldset.cjs.entry.js +1 -1
  137. package/dist/cjs/af-footer-column.cjs.entry.js +2 -2
  138. package/dist/cjs/af-footer-link.cjs.entry.js +2 -2
  139. package/dist/cjs/af-footer.cjs.entry.js +3 -3
  140. package/dist/cjs/af-footer.entry.cjs.js.map +1 -1
  141. package/dist/cjs/af-grid-callout.cjs.entry.js +1 -1
  142. package/dist/cjs/af-grid.cjs.entry.js +3 -3
  143. package/dist/cjs/af-grid.entry.cjs.js.map +1 -1
  144. package/dist/cjs/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.cjs.js.map +1 -1
  145. package/dist/cjs/af-heading_5.cjs.entry.js +3 -3
  146. package/dist/cjs/af-hero.cjs.entry.js +94 -0
  147. package/dist/cjs/af-hero.entry.cjs.js.map +1 -0
  148. package/dist/cjs/af-icon-box.cjs.entry.js +2 -2
  149. package/dist/cjs/af-icon-button.cjs.entry.js +1 -1
  150. package/dist/cjs/af-icon-text.cjs.entry.js +2 -2
  151. package/dist/cjs/af-icon.cjs.entry.js +1 -1
  152. package/dist/cjs/af-illustrated-card.cjs.entry.js +3 -3
  153. package/dist/cjs/af-illustrated-card.entry.cjs.js.map +1 -1
  154. package/dist/cjs/af-image.cjs.entry.js +2 -2
  155. package/dist/cjs/af-in-page-banner.cjs.entry.js +3 -3
  156. package/dist/cjs/af-in-page-banner.entry.cjs.js.map +1 -1
  157. package/dist/cjs/af-inline.cjs.entry.js +2 -2
  158. package/dist/cjs/af-inline.entry.cjs.js.map +1 -1
  159. package/dist/cjs/af-input.cjs.entry.js +1 -1
  160. package/dist/cjs/af-logo-well.cjs.entry.js +2 -2
  161. package/dist/cjs/af-nav-accordion-item.cjs.entry.js +3 -3
  162. package/dist/cjs/af-nav-accordion.cjs.entry.js +2 -2
  163. package/dist/cjs/af-nav-card.cjs.entry.js +1 -1
  164. package/dist/cjs/af-nav-menu-nest.cjs.entry.js +2 -2
  165. package/dist/cjs/af-nav-menu.cjs.entry.js +2 -2
  166. package/dist/cjs/af-number-badge.cjs.entry.js +2 -2
  167. package/dist/cjs/af-numbered-stepper-item.cjs.entry.js +25 -0
  168. package/dist/cjs/af-numbered-stepper-item.entry.cjs.js.map +1 -0
  169. package/dist/cjs/af-numbered-stepper.cjs.entry.js +36 -0
  170. package/dist/cjs/af-numbered-stepper.entry.cjs.js.map +1 -0
  171. package/dist/cjs/af-paperclip-decoration.cjs.entry.js +39 -0
  172. package/dist/cjs/af-paperclip-decoration.entry.cjs.js.map +1 -0
  173. package/dist/cjs/af-progress-line.cjs.entry.js +3 -3
  174. package/dist/cjs/af-radio.cjs.entry.js +1 -1
  175. package/dist/cjs/af-section.cjs.entry.js +3 -3
  176. package/dist/cjs/af-section.entry.cjs.js.map +1 -1
  177. package/dist/cjs/af-show.cjs.entry.js +2 -2
  178. package/dist/cjs/af-social-link.cjs.entry.js +2 -2
  179. package/dist/cjs/af-spacer.cjs.entry.js +2 -2
  180. package/dist/cjs/af-split-section.cjs.entry.js +3 -3
  181. package/dist/cjs/af-split-section.entry.cjs.js.map +1 -1
  182. package/dist/cjs/af-stack.cjs.entry.js +2 -2
  183. package/dist/cjs/af-stack.entry.cjs.js.map +1 -1
  184. package/dist/cjs/af-stat.cjs.entry.js +18 -0
  185. package/dist/cjs/af-stat.entry.cjs.js.map +1 -0
  186. package/dist/cjs/af-stats-row.cjs.entry.js +18 -0
  187. package/dist/cjs/af-stats-row.entry.cjs.js.map +1 -0
  188. package/dist/cjs/af-stepper-step.cjs.entry.js +2 -2
  189. package/dist/cjs/af-stepper.cjs.entry.js +2 -2
  190. package/dist/cjs/af-switch.cjs.entry.js +1 -1
  191. package/dist/cjs/af-tab-bar.cjs.entry.js +1 -1
  192. package/dist/cjs/af-tab.cjs.entry.js +1 -1
  193. package/dist/cjs/af-tag.cjs.entry.js +1 -1
  194. package/dist/cjs/af-testimonial-carousel.cjs.entry.js +2 -2
  195. package/dist/cjs/af-testimonial-stat.cjs.entry.js +2 -2
  196. package/dist/cjs/af-testimonial.cjs.entry.js +3 -3
  197. package/dist/cjs/af-text-image-nest.cjs.entry.js +2 -2
  198. package/dist/cjs/af-text-image.cjs.entry.js +1 -1
  199. package/dist/cjs/af-textarea.cjs.entry.js +1 -1
  200. package/dist/cjs/af-theme-override.cjs.entry.js +2 -2
  201. package/dist/cjs/af-theme-override.entry.cjs.js.map +1 -1
  202. package/dist/cjs/af-typography-lockup.cjs.entry.js +11 -5
  203. package/dist/cjs/af-typography-lockup.entry.cjs.js.map +1 -1
  204. package/dist/cjs/af-video-container.cjs.entry.js +2 -2
  205. package/dist/cjs/af-visually-hidden.cjs.entry.js +2 -2
  206. package/dist/cjs/affinda.cjs.js +2 -2
  207. package/dist/cjs/{index-CcvVbx1D.js → index-BzZA0USq.js} +3 -3
  208. package/dist/cjs/index-BzZA0USq.js.map +1 -0
  209. package/dist/cjs/index.cjs.js +3 -1
  210. package/dist/cjs/index.cjs.js.map +1 -1
  211. package/dist/cjs/loader.cjs.js +2 -2
  212. package/dist/collection/collection-manifest.json +6 -0
  213. package/dist/collection/components/af-accordion/af-accordion.js +1 -1
  214. package/dist/collection/components/af-accordion-item/af-accordion-item.js +1 -1
  215. package/dist/collection/components/af-card/af-card.css +4 -1
  216. package/dist/collection/components/af-card/af-card.js +9 -3
  217. package/dist/collection/components/af-card/af-card.js.map +1 -1
  218. package/dist/collection/components/af-center/af-center.js +1 -1
  219. package/dist/collection/components/af-client-carousel/af-client-carousel.css +36 -0
  220. package/dist/collection/components/af-client-carousel/af-client-carousel.js +61 -16
  221. package/dist/collection/components/af-client-carousel/af-client-carousel.js.map +1 -1
  222. package/dist/collection/components/af-contact-item/af-contact-item.js +1 -1
  223. package/dist/collection/components/af-divider/af-divider.js +1 -1
  224. package/dist/collection/components/af-divider/af-divider.js.map +1 -1
  225. package/dist/collection/components/af-feature-accordion/af-feature-accordion.css +27 -5
  226. package/dist/collection/components/af-feature-accordion/af-feature-accordion.js +2 -2
  227. package/dist/collection/components/af-feature-card/af-feature-card.js +8 -2
  228. package/dist/collection/components/af-feature-card/af-feature-card.js.map +1 -1
  229. package/dist/collection/components/af-feature-grid/af-feature-grid.js +1 -1
  230. package/dist/collection/components/af-footer/af-footer.css +5 -2
  231. package/dist/collection/components/af-footer/af-footer.js +1 -1
  232. package/dist/collection/components/af-footer-column/af-footer-column.js +1 -1
  233. package/dist/collection/components/af-footer-link/af-footer-link.js +1 -1
  234. package/dist/collection/components/af-grid/af-grid.js +5 -4
  235. package/dist/collection/components/af-grid/af-grid.js.map +1 -1
  236. package/dist/collection/components/af-hero/af-hero.css +282 -0
  237. package/dist/collection/components/af-hero/af-hero.js +314 -0
  238. package/dist/collection/components/af-hero/af-hero.js.map +1 -0
  239. package/dist/collection/components/af-icon-box/af-icon-box.js +1 -1
  240. package/dist/collection/components/af-icon-text/af-icon-text.js +1 -1
  241. package/dist/collection/components/af-illustrated-card/af-illustrated-card.css +5 -1
  242. package/dist/collection/components/af-illustrated-card/af-illustrated-card.js +9 -3
  243. package/dist/collection/components/af-illustrated-card/af-illustrated-card.js.map +1 -1
  244. package/dist/collection/components/af-image/af-image.js +1 -1
  245. package/dist/collection/components/af-in-page-banner/af-in-page-banner.css +6 -4
  246. package/dist/collection/components/af-in-page-banner/af-in-page-banner.js +7 -6
  247. package/dist/collection/components/af-in-page-banner/af-in-page-banner.js.map +1 -1
  248. package/dist/collection/components/af-inline/af-inline.js +4 -3
  249. package/dist/collection/components/af-inline/af-inline.js.map +1 -1
  250. package/dist/collection/components/af-logo-well/af-logo-well.js +1 -1
  251. package/dist/collection/components/af-nav-accordion/af-nav-accordion.js +1 -1
  252. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.js +2 -2
  253. package/dist/collection/components/af-nav-menu/af-nav-menu.js +1 -1
  254. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.js +1 -1
  255. package/dist/collection/components/af-navbar/af-navbar.css +4 -1
  256. package/dist/collection/components/af-navbar/af-navbar.js +10 -4
  257. package/dist/collection/components/af-navbar/af-navbar.js.map +1 -1
  258. package/dist/collection/components/af-number-badge/af-number-badge.js +1 -1
  259. package/dist/collection/components/af-numbered-stepper/af-numbered-stepper.css +30 -0
  260. package/dist/collection/components/af-numbered-stepper/af-numbered-stepper.js +92 -0
  261. package/dist/collection/components/af-numbered-stepper/af-numbered-stepper.js.map +1 -0
  262. package/dist/collection/components/af-numbered-stepper-item/af-numbered-stepper-item.css +113 -0
  263. package/dist/collection/components/af-numbered-stepper-item/af-numbered-stepper-item.js +66 -0
  264. package/dist/collection/components/af-numbered-stepper-item/af-numbered-stepper-item.js.map +1 -0
  265. package/dist/collection/components/af-paperclip-decoration/af-paperclip-decoration.css +11 -0
  266. package/dist/collection/components/af-paperclip-decoration/af-paperclip-decoration.js +152 -0
  267. package/dist/collection/components/af-paperclip-decoration/af-paperclip-decoration.js.map +1 -0
  268. package/dist/collection/components/af-progress-line/af-progress-line.js +2 -2
  269. package/dist/collection/components/af-section/af-section.js +18 -6
  270. package/dist/collection/components/af-section/af-section.js.map +1 -1
  271. package/dist/collection/components/af-show/af-show.js +1 -1
  272. package/dist/collection/components/af-social-link/af-social-link.js +1 -1
  273. package/dist/collection/components/af-spacer/af-spacer.js +1 -1
  274. package/dist/collection/components/af-split-section/af-split-section.js +16 -8
  275. package/dist/collection/components/af-split-section/af-split-section.js.map +1 -1
  276. package/dist/collection/components/af-stack/af-stack.js +4 -3
  277. package/dist/collection/components/af-stack/af-stack.js.map +1 -1
  278. package/dist/collection/components/af-stat/af-stat.css +25 -0
  279. package/dist/collection/components/af-stat/af-stat.js +69 -0
  280. package/dist/collection/components/af-stat/af-stat.js.map +1 -0
  281. package/dist/collection/components/af-stats-row/af-stats-row.css +32 -0
  282. package/dist/collection/components/af-stats-row/af-stats-row.js +33 -0
  283. package/dist/collection/components/af-stats-row/af-stats-row.js.map +1 -0
  284. package/dist/collection/components/af-stepper/af-stepper.js +1 -1
  285. package/dist/collection/components/af-stepper-step/af-stepper-step.js +1 -1
  286. package/dist/collection/components/af-testimonial/af-testimonial.js +2 -2
  287. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js +1 -1
  288. package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js +1 -1
  289. package/dist/collection/components/af-text-image-nest/af-text-image-nest.js +1 -1
  290. package/dist/collection/components/af-theme-override/af-theme-override.js +9 -3
  291. package/dist/collection/components/af-theme-override/af-theme-override.js.map +1 -1
  292. package/dist/collection/components/af-typography-lockup/af-typography-lockup.css +36 -12
  293. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js +27 -9
  294. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js.map +1 -1
  295. package/dist/collection/components/af-video-container/af-video-container.js +1 -1
  296. package/dist/collection/components/af-visually-hidden/af-visually-hidden.js +1 -1
  297. package/dist/collection/components.js +1 -0
  298. package/dist/collection/components.js.map +1 -1
  299. package/dist/collection/types.js +2 -0
  300. package/dist/collection/types.js.map +1 -0
  301. package/dist/components/af-accordion-item.js +2 -2
  302. package/dist/components/af-accordion.js +2 -2
  303. package/dist/components/af-aspect-ratio.js +1 -1
  304. package/dist/components/af-button-group.js +1 -1
  305. package/dist/components/af-button.js +1 -1
  306. package/dist/components/af-card.js +1 -1
  307. package/dist/components/af-center.js +2 -2
  308. package/dist/components/af-checkbox.js +1 -1
  309. package/dist/components/af-client-carousel.js +23 -7
  310. package/dist/components/af-client-carousel.js.map +1 -1
  311. package/dist/components/af-color-swatch.js +1 -1
  312. package/dist/components/af-contact-item.js +2 -2
  313. package/dist/components/af-container.js +1 -1
  314. package/dist/components/af-divider.js +2 -2
  315. package/dist/components/af-divider.js.map +1 -1
  316. package/dist/components/af-feature-accordion.js +4 -4
  317. package/dist/components/af-feature-accordion.js.map +1 -1
  318. package/dist/components/af-feature-card.js +1 -1
  319. package/dist/components/af-feature-grid.js +3 -3
  320. package/dist/components/af-fieldset.js +1 -1
  321. package/dist/components/af-footer-column.js +2 -2
  322. package/dist/components/af-footer-link.js +2 -2
  323. package/dist/components/af-footer.js +3 -3
  324. package/dist/components/af-footer.js.map +1 -1
  325. package/dist/components/af-grid-callout.js +2 -2
  326. package/dist/components/af-grid.js +3 -3
  327. package/dist/components/af-grid.js.map +1 -1
  328. package/dist/components/af-heading.js +1 -1
  329. package/dist/components/af-hero.d.ts +11 -0
  330. package/dist/components/af-hero.js +9 -0
  331. package/dist/components/af-hero.js.map +1 -0
  332. package/dist/components/af-icon-box.js +1 -1
  333. package/dist/components/af-icon-button.js +1 -1
  334. package/dist/components/af-icon-text.js +5 -5
  335. package/dist/components/af-icon.js +1 -1
  336. package/dist/components/af-illustrated-card.js +1 -1
  337. package/dist/components/af-image.js +1 -1
  338. package/dist/components/af-in-page-banner.js +4 -4
  339. package/dist/components/af-in-page-banner.js.map +1 -1
  340. package/dist/components/af-inline.js +2 -2
  341. package/dist/components/af-inline.js.map +1 -1
  342. package/dist/components/af-input.js +1 -1
  343. package/dist/components/af-logo-well.js +2 -2
  344. package/dist/components/af-logo.js +1 -1
  345. package/dist/components/af-nav-accordion-item.js +3 -3
  346. package/dist/components/af-nav-accordion.js +2 -2
  347. package/dist/components/af-nav-card.js +1 -1
  348. package/dist/components/af-nav-item.js +1 -1
  349. package/dist/components/af-nav-menu-nest.js +2 -2
  350. package/dist/components/af-nav-menu.js +2 -2
  351. package/dist/components/af-navbar.js +1 -1
  352. package/dist/components/af-number-badge.js +1 -58
  353. package/dist/components/af-number-badge.js.map +1 -1
  354. package/dist/components/af-numbered-stepper-item.d.ts +11 -0
  355. package/dist/components/af-numbered-stepper-item.js +58 -0
  356. package/dist/components/af-numbered-stepper-item.js.map +1 -0
  357. package/dist/components/af-numbered-stepper.d.ts +11 -0
  358. package/dist/components/af-numbered-stepper.js +57 -0
  359. package/dist/components/af-numbered-stepper.js.map +1 -0
  360. package/dist/components/af-paperclip-decoration.d.ts +11 -0
  361. package/dist/components/af-paperclip-decoration.js +64 -0
  362. package/dist/components/af-paperclip-decoration.js.map +1 -0
  363. package/dist/components/af-progress-line.js +1 -1
  364. package/dist/components/af-radio.js +1 -1
  365. package/dist/components/af-section.js +1 -46
  366. package/dist/components/af-section.js.map +1 -1
  367. package/dist/components/af-show.js +2 -2
  368. package/dist/components/af-social-link.js +2 -2
  369. package/dist/components/af-spacer.js +2 -2
  370. package/dist/components/af-split-section.js +4 -4
  371. package/dist/components/af-split-section.js.map +1 -1
  372. package/dist/components/af-stack.js +2 -2
  373. package/dist/components/af-stack.js.map +1 -1
  374. package/dist/components/af-stat.d.ts +11 -0
  375. package/dist/components/af-stat.js +53 -0
  376. package/dist/components/af-stat.js.map +1 -0
  377. package/dist/components/af-stats-row.d.ts +11 -0
  378. package/dist/components/af-stats-row.js +37 -0
  379. package/dist/components/af-stats-row.js.map +1 -0
  380. package/dist/components/af-stepper-step.js +2 -2
  381. package/dist/components/af-stepper.js +2 -2
  382. package/dist/components/af-switch.js +1 -1
  383. package/dist/components/af-tab-bar.js +1 -1
  384. package/dist/components/af-tab.js +1 -1
  385. package/dist/components/af-tag.js +1 -1
  386. package/dist/components/af-testimonial-carousel.js +3 -3
  387. package/dist/components/af-testimonial-stat.js +4 -4
  388. package/dist/components/af-testimonial.js +6 -6
  389. package/dist/components/af-text-image-nest.js +2 -2
  390. package/dist/components/af-text-image.js +2 -2
  391. package/dist/components/af-text.js +1 -1
  392. package/dist/components/af-textarea.js +1 -1
  393. package/dist/components/af-theme-override.js +2 -2
  394. package/dist/components/af-theme-override.js.map +1 -1
  395. package/dist/components/af-typography-lockup.js +1 -1
  396. package/dist/components/af-video-container.js +4 -4
  397. package/dist/components/af-visually-hidden.js +2 -2
  398. package/dist/components/index.js +25 -24
  399. package/dist/components/index.js.map +1 -1
  400. package/dist/components/{p-CNuja1ax.js → p--gChEc0P.js} +3 -3
  401. package/dist/components/{p-CNuja1ax.js.map → p--gChEc0P.js.map} +1 -1
  402. package/dist/components/{p-TfjpcU9q.js → p-3Gzh4deR.js} +7 -7
  403. package/dist/components/p-3Gzh4deR.js.map +1 -0
  404. package/dist/components/{p-DCu8UsJv.js → p-BRDu9zN1.js} +3 -3
  405. package/dist/components/{p-DCu8UsJv.js.map → p-BRDu9zN1.js.map} +1 -1
  406. package/dist/components/{p-CSsp_M05.js → p-BROLmNeM.js} +3 -3
  407. package/dist/components/{p-CSsp_M05.js.map → p-BROLmNeM.js.map} +1 -1
  408. package/dist/components/{p-Dz4dEIxw.js → p-BT13eL0Y.js} +3 -3
  409. package/dist/components/{p-Dz4dEIxw.js.map → p-BT13eL0Y.js.map} +1 -1
  410. package/dist/components/{p-DAYoQm46.js → p-BW-FxZwa.js} +3 -3
  411. package/dist/components/{p-DAYoQm46.js.map → p-BW-FxZwa.js.map} +1 -1
  412. package/dist/components/{p-DwhGQrZK.js → p-BXmiPS9x.js} +5 -5
  413. package/dist/components/{p-DwhGQrZK.js.map → p-BXmiPS9x.js.map} +1 -1
  414. package/dist/components/{p-aAVeavhK.js → p-B_OoX__z.js} +3 -3
  415. package/dist/components/{p-aAVeavhK.js.map → p-B_OoX__z.js.map} +1 -1
  416. package/dist/components/{p-C0R_vg0S.js → p-BgXXQG75.js} +3 -3
  417. package/dist/components/{p-C0R_vg0S.js.map → p-BgXXQG75.js.map} +1 -1
  418. package/dist/components/{p-DqgLTGE0.js → p-C4G6votC.js} +3 -3
  419. package/dist/components/{p-DqgLTGE0.js.map → p-C4G6votC.js.map} +1 -1
  420. package/dist/components/p-CJxqw006.js +53 -0
  421. package/dist/components/p-CJxqw006.js.map +1 -0
  422. package/dist/components/{p-CHLm_AuW.js → p-CP8rLe_C.js} +3 -3
  423. package/dist/components/{p-CHLm_AuW.js.map → p-CP8rLe_C.js.map} +1 -1
  424. package/dist/components/p-CRnEuh5f.js +136 -0
  425. package/dist/components/p-CRnEuh5f.js.map +1 -0
  426. package/dist/components/{p-Bw8fdMnn.js → p-CX0pktY8.js} +3 -3
  427. package/dist/components/{p-Bw8fdMnn.js.map → p-CX0pktY8.js.map} +1 -1
  428. package/dist/components/{p-CAUqW6Mp.js → p-CYKk6Qhi.js} +3 -3
  429. package/dist/components/{p-CAUqW6Mp.js.map → p-CYKk6Qhi.js.map} +1 -1
  430. package/dist/components/{p-N0xV1Erp.js → p-ClZAZSzR.js} +14 -8
  431. package/dist/components/p-ClZAZSzR.js.map +1 -0
  432. package/dist/components/{p-DkaLi-uL.js → p-CoL_hRAR.js} +3 -3
  433. package/dist/components/{p-DkaLi-uL.js.map → p-CoL_hRAR.js.map} +1 -1
  434. package/dist/components/{p-CB9GFAlk.js → p-D8DmhESZ.js} +3 -3
  435. package/dist/components/{p-CB9GFAlk.js.map → p-D8DmhESZ.js.map} +1 -1
  436. package/dist/components/{p-B3Yr4Hxx.js → p-DJC-C2BS.js} +3 -3
  437. package/dist/components/{p-B3Yr4Hxx.js.map → p-DJC-C2BS.js.map} +1 -1
  438. package/dist/components/{p-CqQyDZ-4.js → p-DOgb6SUj.js} +3 -3
  439. package/dist/components/p-DOgb6SUj.js.map +1 -0
  440. package/dist/components/{p-Dxa6cHAb.js → p-DbVc-b1e.js} +3 -3
  441. package/dist/components/{p-Dxa6cHAb.js.map → p-DbVc-b1e.js.map} +1 -1
  442. package/dist/components/{p-D3oGtcJ5.js → p-Dd3nOGt_.js} +3 -3
  443. package/dist/components/{p-D3oGtcJ5.js.map → p-Dd3nOGt_.js.map} +1 -1
  444. package/dist/components/{p-DRujYIJW.js → p-DqJRvNOl.js} +6 -6
  445. package/dist/components/p-DqJRvNOl.js.map +1 -0
  446. package/dist/components/{p-DGBMGvZK.js → p-Dx_UXI2a.js} +3 -3
  447. package/dist/components/{p-DGBMGvZK.js.map → p-Dx_UXI2a.js.map} +1 -1
  448. package/dist/components/{p-DENib4OL.js → p-DyZaoX4Q.js} +3 -3
  449. package/dist/components/{p-DENib4OL.js.map → p-DyZaoX4Q.js.map} +1 -1
  450. package/dist/components/{p-CKcuq0NU.js → p-LRPXnaSx.js} +4 -4
  451. package/dist/components/{p-CKcuq0NU.js.map → p-LRPXnaSx.js.map} +1 -1
  452. package/dist/components/{p-DMOGClIa.js → p-NtJ_O8-z.js} +3 -3
  453. package/dist/components/{p-DMOGClIa.js.map → p-NtJ_O8-z.js.map} +1 -1
  454. package/dist/components/p-O26uYJSV.js +51 -0
  455. package/dist/components/p-O26uYJSV.js.map +1 -0
  456. package/dist/components/p-QoDae21y.js +63 -0
  457. package/dist/components/p-QoDae21y.js.map +1 -0
  458. package/dist/components/{p-D30gSxh2.js → p-kEqwmn80.js} +3 -3
  459. package/dist/components/{p-D30gSxh2.js.map → p-kEqwmn80.js.map} +1 -1
  460. package/dist/components/{p-XrKBGe-M.js → p-mbl86-w6.js} +5 -5
  461. package/dist/components/p-mbl86-w6.js.map +1 -0
  462. package/dist/components/{p-BHAWxoQE.js → p-nA3Uvhwb.js} +5 -5
  463. package/dist/components/{p-BHAWxoQE.js.map → p-nA3Uvhwb.js.map} +1 -1
  464. package/dist/esm/af-accordion-item.entry.js +2 -2
  465. package/dist/esm/af-accordion.entry.js +2 -2
  466. package/dist/esm/af-aspect-ratio.entry.js +1 -1
  467. package/dist/esm/af-button-group.entry.js +1 -1
  468. package/dist/esm/af-button.entry.js +1 -1
  469. package/dist/esm/af-card.entry.js +3 -3
  470. package/dist/esm/af-card.entry.js.map +1 -1
  471. package/dist/esm/af-center.entry.js +2 -2
  472. package/dist/esm/af-checkbox.entry.js +1 -1
  473. package/dist/esm/af-client-carousel.entry.js +21 -6
  474. package/dist/esm/af-client-carousel.entry.js.map +1 -1
  475. package/dist/esm/af-color-swatch.entry.js +1 -1
  476. package/dist/esm/af-contact-item.entry.js +2 -2
  477. package/dist/esm/af-container.entry.js +1 -1
  478. package/dist/esm/af-divider.entry.js +2 -2
  479. package/dist/esm/af-divider.entry.js.map +1 -1
  480. package/dist/esm/af-feature-accordion.entry.js +4 -4
  481. package/dist/esm/af-feature-accordion.entry.js.map +1 -1
  482. package/dist/esm/af-feature-card.entry.js +1 -1
  483. package/dist/esm/af-feature-card.entry.js.map +1 -1
  484. package/dist/esm/af-feature-grid.entry.js +2 -2
  485. package/dist/esm/af-fieldset.entry.js +1 -1
  486. package/dist/esm/af-footer-column.entry.js +2 -2
  487. package/dist/esm/af-footer-link.entry.js +2 -2
  488. package/dist/esm/af-footer.entry.js +3 -3
  489. package/dist/esm/af-footer.entry.js.map +1 -1
  490. package/dist/esm/af-grid-callout.entry.js +1 -1
  491. package/dist/esm/af-grid.entry.js +3 -3
  492. package/dist/esm/af-grid.entry.js.map +1 -1
  493. package/dist/esm/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js.map +1 -1
  494. package/dist/esm/af-heading_5.entry.js +3 -3
  495. package/dist/esm/af-hero.entry.js +92 -0
  496. package/dist/esm/af-hero.entry.js.map +1 -0
  497. package/dist/esm/af-icon-box.entry.js +2 -2
  498. package/dist/esm/af-icon-button.entry.js +1 -1
  499. package/dist/esm/af-icon-text.entry.js +2 -2
  500. package/dist/esm/af-icon.entry.js +1 -1
  501. package/dist/esm/af-illustrated-card.entry.js +3 -3
  502. package/dist/esm/af-illustrated-card.entry.js.map +1 -1
  503. package/dist/esm/af-image.entry.js +2 -2
  504. package/dist/esm/af-in-page-banner.entry.js +3 -3
  505. package/dist/esm/af-in-page-banner.entry.js.map +1 -1
  506. package/dist/esm/af-inline.entry.js +2 -2
  507. package/dist/esm/af-inline.entry.js.map +1 -1
  508. package/dist/esm/af-input.entry.js +1 -1
  509. package/dist/esm/af-logo-well.entry.js +2 -2
  510. package/dist/esm/af-nav-accordion-item.entry.js +3 -3
  511. package/dist/esm/af-nav-accordion.entry.js +2 -2
  512. package/dist/esm/af-nav-card.entry.js +1 -1
  513. package/dist/esm/af-nav-menu-nest.entry.js +2 -2
  514. package/dist/esm/af-nav-menu.entry.js +2 -2
  515. package/dist/esm/af-number-badge.entry.js +2 -2
  516. package/dist/esm/af-numbered-stepper-item.entry.js +23 -0
  517. package/dist/esm/af-numbered-stepper-item.entry.js.map +1 -0
  518. package/dist/esm/af-numbered-stepper.entry.js +34 -0
  519. package/dist/esm/af-numbered-stepper.entry.js.map +1 -0
  520. package/dist/esm/af-paperclip-decoration.entry.js +37 -0
  521. package/dist/esm/af-paperclip-decoration.entry.js.map +1 -0
  522. package/dist/esm/af-progress-line.entry.js +3 -3
  523. package/dist/esm/af-radio.entry.js +1 -1
  524. package/dist/esm/af-section.entry.js +3 -3
  525. package/dist/esm/af-section.entry.js.map +1 -1
  526. package/dist/esm/af-show.entry.js +2 -2
  527. package/dist/esm/af-social-link.entry.js +2 -2
  528. package/dist/esm/af-spacer.entry.js +2 -2
  529. package/dist/esm/af-split-section.entry.js +3 -3
  530. package/dist/esm/af-split-section.entry.js.map +1 -1
  531. package/dist/esm/af-stack.entry.js +2 -2
  532. package/dist/esm/af-stack.entry.js.map +1 -1
  533. package/dist/esm/af-stat.entry.js +16 -0
  534. package/dist/esm/af-stat.entry.js.map +1 -0
  535. package/dist/esm/af-stats-row.entry.js +16 -0
  536. package/dist/esm/af-stats-row.entry.js.map +1 -0
  537. package/dist/esm/af-stepper-step.entry.js +2 -2
  538. package/dist/esm/af-stepper.entry.js +2 -2
  539. package/dist/esm/af-switch.entry.js +1 -1
  540. package/dist/esm/af-tab-bar.entry.js +1 -1
  541. package/dist/esm/af-tab.entry.js +1 -1
  542. package/dist/esm/af-tag.entry.js +1 -1
  543. package/dist/esm/af-testimonial-carousel.entry.js +2 -2
  544. package/dist/esm/af-testimonial-stat.entry.js +2 -2
  545. package/dist/esm/af-testimonial.entry.js +3 -3
  546. package/dist/esm/af-text-image-nest.entry.js +2 -2
  547. package/dist/esm/af-text-image.entry.js +1 -1
  548. package/dist/esm/af-textarea.entry.js +1 -1
  549. package/dist/esm/af-theme-override.entry.js +2 -2
  550. package/dist/esm/af-theme-override.entry.js.map +1 -1
  551. package/dist/esm/af-typography-lockup.entry.js +11 -5
  552. package/dist/esm/af-typography-lockup.entry.js.map +1 -1
  553. package/dist/esm/af-video-container.entry.js +2 -2
  554. package/dist/esm/af-visually-hidden.entry.js +2 -2
  555. package/dist/esm/affinda.js +3 -3
  556. package/dist/esm/{index-nb89SRN6.js → index-MwnBSqEY.js} +3 -3
  557. package/dist/esm/index-MwnBSqEY.js.map +1 -0
  558. package/dist/esm/index.js +2 -1
  559. package/dist/esm/index.js.map +1 -1
  560. package/dist/esm/loader.js +3 -3
  561. package/dist/types/components/af-card/af-card.d.ts +2 -1
  562. package/dist/types/components/af-client-carousel/af-client-carousel.d.ts +26 -13
  563. package/dist/types/components/af-divider/af-divider.d.ts +2 -1
  564. package/dist/types/components/af-feature-card/af-feature-card.d.ts +2 -1
  565. package/dist/types/components/af-grid/af-grid.d.ts +1 -1
  566. package/dist/types/components/af-hero/af-hero.d.ts +93 -0
  567. package/dist/types/components/af-illustrated-card/af-illustrated-card.d.ts +2 -1
  568. package/dist/types/components/af-in-page-banner/af-in-page-banner.d.ts +2 -3
  569. package/dist/types/components/af-inline/af-inline.d.ts +1 -1
  570. package/dist/types/components/af-navbar/af-navbar.d.ts +2 -1
  571. package/dist/types/components/af-numbered-stepper/af-numbered-stepper.d.ts +38 -0
  572. package/dist/types/components/af-numbered-stepper-item/af-numbered-stepper-item.d.ts +22 -0
  573. package/dist/types/components/af-paperclip-decoration/af-paperclip-decoration.d.ts +50 -0
  574. package/dist/types/components/af-section/af-section.d.ts +3 -2
  575. package/dist/types/components/af-split-section/af-split-section.d.ts +2 -3
  576. package/dist/types/components/af-stack/af-stack.d.ts +1 -1
  577. package/dist/types/components/af-stat/af-stat.d.ts +15 -0
  578. package/dist/types/components/af-stats-row/af-stats-row.d.ts +17 -0
  579. package/dist/types/components/af-theme-override/af-theme-override.d.ts +2 -1
  580. package/dist/types/components/af-typography-lockup/af-typography-lockup.d.ts +12 -4
  581. package/dist/types/components.d.ts +800 -64
  582. package/dist/types/types.d.ts +57 -0
  583. package/package.json +3 -3
  584. package/dist/affinda/p-07f9580c.entry.js +0 -2
  585. package/dist/affinda/p-50590601.entry.js +0 -2
  586. package/dist/affinda/p-570283f6.entry.js +0 -2
  587. package/dist/affinda/p-5b3ff010.entry.js +0 -2
  588. package/dist/affinda/p-5e5d16dd.entry.js +0 -2
  589. package/dist/affinda/p-6bb831c5.entry.js +0 -2
  590. package/dist/affinda/p-9229defb.entry.js +0 -2
  591. package/dist/affinda/p-9229defb.entry.js.map +0 -1
  592. package/dist/affinda/p-94adb381.entry.js +0 -2
  593. package/dist/affinda/p-b14c1a4b.entry.js +0 -2
  594. package/dist/affinda/p-cc22a8da.entry.js +0 -2
  595. package/dist/affinda/p-d60d1943.entry.js +0 -2
  596. package/dist/affinda/p-d7e29257.entry.js +0 -2
  597. package/dist/affinda/p-da999c10.entry.js +0 -2
  598. package/dist/affinda/p-f9e3c2b7.entry.js +0 -2
  599. package/dist/affinda/p-nb89SRN6.js +0 -3
  600. package/dist/affinda/p-nb89SRN6.js.map +0 -1
  601. package/dist/cjs/index-CcvVbx1D.js.map +0 -1
  602. package/dist/components/p-BO4blShf.js +0 -53
  603. package/dist/components/p-BO4blShf.js.map +0 -1
  604. package/dist/components/p-CqQyDZ-4.js.map +0 -1
  605. package/dist/components/p-DRujYIJW.js.map +0 -1
  606. package/dist/components/p-N0xV1Erp.js.map +0 -1
  607. package/dist/components/p-TfjpcU9q.js.map +0 -1
  608. package/dist/components/p-XrKBGe-M.js.map +0 -1
  609. package/dist/esm/index-nb89SRN6.js.map +0 -1
  610. /package/dist/affinda/{p-9bb5202e.entry.js.map → p-09dfcd40.entry.js.map} +0 -0
  611. /package/dist/affinda/{p-6eca2722.entry.js.map → p-15f0bd34.entry.js.map} +0 -0
  612. /package/dist/affinda/{p-97ac8f5f.entry.js.map → p-1b4b0c88.entry.js.map} +0 -0
  613. /package/dist/affinda/{p-2c655ae2.entry.js.map → p-1c96856a.entry.js.map} +0 -0
  614. /package/dist/affinda/{p-4cbdf940.entry.js.map → p-24e74c10.entry.js.map} +0 -0
  615. /package/dist/affinda/{p-bf941fa7.entry.js.map → p-256970e3.entry.js.map} +0 -0
  616. /package/dist/affinda/{p-5b3ff010.entry.js.map → p-32d62fbb.entry.js.map} +0 -0
  617. /package/dist/affinda/{p-af3f6e16.entry.js.map → p-342b08e5.entry.js.map} +0 -0
  618. /package/dist/affinda/{p-102e8b8c.entry.js.map → p-35607741.entry.js.map} +0 -0
  619. /package/dist/affinda/{p-c7ba4e7f.entry.js.map → p-364ffa25.entry.js.map} +0 -0
  620. /package/dist/affinda/{p-e9f8ef54.entry.js.map → p-365a75e2.entry.js.map} +0 -0
  621. /package/dist/affinda/{p-d7e29257.entry.js.map → p-3ed408f6.entry.js.map} +0 -0
  622. /package/dist/affinda/{p-80c96efd.entry.js.map → p-4058a1eb.entry.js.map} +0 -0
  623. /package/dist/affinda/{p-159fe9b1.entry.js.map → p-41bbb218.entry.js.map} +0 -0
  624. /package/dist/affinda/{p-f9b6d1c6.entry.js.map → p-43f40921.entry.js.map} +0 -0
  625. /package/dist/affinda/{p-0f3267ea.entry.js.map → p-4a355b69.entry.js.map} +0 -0
  626. /package/dist/affinda/{p-3ecf43aa.entry.js.map → p-4b2c0698.entry.js.map} +0 -0
  627. /package/dist/affinda/{p-12652bf5.entry.js.map → p-4f59b554.entry.js.map} +0 -0
  628. /package/dist/affinda/{p-4e8bd716.entry.js.map → p-5c163c5b.entry.js.map} +0 -0
  629. /package/dist/affinda/{p-8d9d0cb3.entry.js.map → p-5e5e7d75.entry.js.map} +0 -0
  630. /package/dist/affinda/{p-648e2d76.entry.js.map → p-61a6b43d.entry.js.map} +0 -0
  631. /package/dist/affinda/{p-94adb381.entry.js.map → p-6756aa66.entry.js.map} +0 -0
  632. /package/dist/affinda/{p-432c7bfc.entry.js.map → p-6c33fee6.entry.js.map} +0 -0
  633. /package/dist/affinda/{p-f9e3c2b7.entry.js.map → p-6e181b2b.entry.js.map} +0 -0
  634. /package/dist/affinda/{p-816deae3.entry.js.map → p-6ea474a3.entry.js.map} +0 -0
  635. /package/dist/affinda/{p-ef41e743.entry.js.map → p-7111051c.entry.js.map} +0 -0
  636. /package/dist/affinda/{p-23aa03dc.entry.js.map → p-76cb736d.entry.js.map} +0 -0
  637. /package/dist/affinda/{p-e78112d9.entry.js.map → p-7867c2ff.entry.js.map} +0 -0
  638. /package/dist/affinda/{p-11e7ddf3.entry.js.map → p-827f3050.entry.js.map} +0 -0
  639. /package/dist/affinda/{p-77ed47d5.entry.js.map → p-83bb96cc.entry.js.map} +0 -0
  640. /package/dist/affinda/{p-5e444a9a.entry.js.map → p-862a2509.entry.js.map} +0 -0
  641. /package/dist/affinda/{p-7238fc21.entry.js.map → p-86f6dfdc.entry.js.map} +0 -0
  642. /package/dist/affinda/{p-e0163836.entry.js.map → p-90ef7baa.entry.js.map} +0 -0
  643. /package/dist/affinda/{p-ab0b621e.entry.js.map → p-9480f00d.entry.js.map} +0 -0
  644. /package/dist/affinda/{p-3ca3e4dc.entry.js.map → p-95d4696a.entry.js.map} +0 -0
  645. /package/dist/affinda/{p-892f9bc3.entry.js.map → p-9aed7039.entry.js.map} +0 -0
  646. /package/dist/affinda/{p-bfc17d0c.entry.js.map → p-9c1e9bd8.entry.js.map} +0 -0
  647. /package/dist/affinda/{p-be45f85c.entry.js.map → p-9ce0adc2.entry.js.map} +0 -0
  648. /package/dist/affinda/{p-8da30e7a.entry.js.map → p-9eba91fd.entry.js.map} +0 -0
  649. /package/dist/affinda/{p-aa5c6cc0.entry.js.map → p-9f3e7116.entry.js.map} +0 -0
  650. /package/dist/affinda/{p-636045e8.entry.js.map → p-a02d6192.entry.js.map} +0 -0
  651. /package/dist/affinda/{p-2140698f.entry.js.map → p-a25d3257.entry.js.map} +0 -0
  652. /package/dist/affinda/{p-401fc5b1.entry.js.map → p-a7a8f18c.entry.js.map} +0 -0
  653. /package/dist/affinda/{p-a4d39bdd.entry.js.map → p-a8d75eb1.entry.js.map} +0 -0
  654. /package/dist/affinda/{p-a3865306.entry.js.map → p-ae430873.entry.js.map} +0 -0
  655. /package/dist/affinda/{p-5ab389c6.entry.js.map → p-bbfc9df6.entry.js.map} +0 -0
  656. /package/dist/affinda/{p-a002c784.entry.js.map → p-bed7d9a1.entry.js.map} +0 -0
  657. /package/dist/affinda/{p-eb96f29b.entry.js.map → p-dcc89b4c.entry.js.map} +0 -0
  658. /package/dist/affinda/{p-1dff35bf.entry.js.map → p-de75cb4f.entry.js.map} +0 -0
  659. /package/dist/affinda/{p-7b7d9c6a.entry.js.map → p-e07e27f1.entry.js.map} +0 -0
  660. /package/dist/affinda/{p-8f6884c8.entry.js.map → p-eeda78ea.entry.js.map} +0 -0
  661. /package/dist/affinda/{p-d54abc45.entry.js.map → p-f19cb091.entry.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h } from './p-CqQyDZ-4.js';
1
+ import { p as proxyCustomElement, H, h } from './p-DOgb6SUj.js';
2
2
 
3
3
  const afTextCss = ":host{display:block}.text{margin:0;padding:0;font-family:var(--typography-bodyfont, 'NeuSans', Arial, sans-serif);font-weight:var(--font-weight-regular, 400);color:var(--af-typography-body-default, var(--colour-inkwell-400, #2b484f));letter-spacing:var(--letter-spacing-body, 0);text-align:var(--af-text-align, left)}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.variant-xlarge{font-size:var(--font-size-body-xlarge, 22px);line-height:var(--line-height-body-xlarge, 28px)}.variant-large{font-size:var(--font-size-body-large, 18px);line-height:var(--line-height-body-large, 26px)}.variant-medium{font-size:var(--font-size-body-medium, 16px);line-height:var(--line-height-body-medium, 24px)}.variant-small{font-size:var(--font-size-body-small, 14px);line-height:var(--line-height-body-small, 20px)}";
4
4
 
@@ -43,6 +43,6 @@ function defineCustomElement() {
43
43
  }
44
44
 
45
45
  export { AfText as A, defineCustomElement as d };
46
- //# sourceMappingURL=p-C0R_vg0S.js.map
46
+ //# sourceMappingURL=p-BgXXQG75.js.map
47
47
 
48
- //# sourceMappingURL=p-C0R_vg0S.js.map
48
+ //# sourceMappingURL=p-BgXXQG75.js.map
@@ -1 +1 @@
1
- {"file":"p-C0R_vg0S.js","mappings":";;AAAA,MAAM,SAAS,GAAG,20BAA20B;;MCYh1B,MAAM,iBAAAA,kBAAA,CAAA,MAAA,MAAA,SAAAC,CAAA,CAAA;AALnB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAOU,QAAA,IAAO,CAAA,OAAA,GAA4C,QAAQ;;AAM3D,QAAA,IAAE,CAAA,EAAA,GAAmC,GAAG;AAkBjD;IAhBC,MAAM,GAAA;AACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,EAAS;QAE1B,QACE,CAAA,CAAC,GAAG,EAAA,EAAA,GAAA,EAAA,0CAAA,EACF,KAAK,EAAE;AACL,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,CAAC,WAAW,IAAI,CAAC,OAAO,CAAE,CAAA,GAAG,IAAI;gBACjC,CAAC,CAAA,MAAA,EAAS,IAAI,CAAC,KAAK,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC;AACjC,aAAA,EACD,IAAI,EAAC,MAAM,EAAA,EAEX,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACJ;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-text/af-text.css?tag=af-text&encapsulation=shadow","src/components/af-text/af-text.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.text {\n margin: 0;\n padding: 0;\n font-family: var(--typography-bodyfont, 'NeuSans', Arial, sans-serif);\n font-weight: var(--font-weight-regular, 400);\n /* Inherit color from theme context via CSS custom property */\n color: var(--af-typography-body-default, var(--colour-inkwell-400, #2b484f));\n letter-spacing: var(--letter-spacing-body, 0);\n /* Inherit alignment from parent context (e.g. typography lockup), default to left */\n text-align: var(--af-text-align, left);\n}\n\n/* Alignment */\n.align-left {\n text-align: left;\n}\n\n.align-center {\n text-align: center;\n}\n\n.align-right {\n text-align: right;\n}\n\n/* Body variants */\n.variant-xlarge {\n font-size: var(--font-size-body-xlarge, 22px);\n line-height: var(--line-height-body-xlarge, 28px);\n}\n\n.variant-large {\n font-size: var(--font-size-body-large, 18px);\n line-height: var(--line-height-body-large, 26px);\n}\n\n.variant-medium {\n font-size: var(--font-size-body-medium, 16px);\n line-height: var(--line-height-body-medium, 24px);\n}\n\n.variant-small {\n font-size: var(--font-size-body-small, 14px);\n line-height: var(--line-height-body-small, 20px);\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * Text/body component that inherits color from theme context.\n * Color is determined by the parent theme (af-section, af-card, etc.)\n * via CSS custom properties.\n */\n@Component({\n tag: 'af-text',\n styleUrl: 'af-text.css',\n shadow: true\n})\nexport class AfText {\n /** Text variant */\n @Prop() variant: 'xlarge' | 'large' | 'medium' | 'small' = 'medium';\n\n /** Visual alignment. When not set, inherits from parent context (e.g. typography lockup). */\n @Prop() align?: 'left' | 'center' | 'right';\n\n /** Semantic element to render */\n @Prop() as: 'p' | 'span' | 'div' | 'label' = 'p';\n\n render() {\n const Tag = this.as as any;\n\n return (\n <Tag\n class={{\n 'text': true,\n [`variant-${this.variant}`]: true,\n [`align-${this.align}`]: !!this.align\n }}\n part=\"base\"\n >\n <slot />\n </Tag>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-BgXXQG75.js","mappings":";;AAAA,MAAM,SAAS,GAAG,20BAA20B;;MCYh1B,MAAM,iBAAAA,kBAAA,CAAA,MAAA,MAAA,SAAAC,CAAA,CAAA;AALnB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAOU,QAAA,IAAO,CAAA,OAAA,GAA4C,QAAQ;;AAM3D,QAAA,IAAE,CAAA,EAAA,GAAmC,GAAG;AAkBjD;IAhBC,MAAM,GAAA;AACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,EAAS;QAE1B,QACE,CAAA,CAAC,GAAG,EAAA,EAAA,GAAA,EAAA,0CAAA,EACF,KAAK,EAAE;AACL,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,CAAC,WAAW,IAAI,CAAC,OAAO,CAAE,CAAA,GAAG,IAAI;gBACjC,CAAC,CAAA,MAAA,EAAS,IAAI,CAAC,KAAK,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC;AACjC,aAAA,EACD,IAAI,EAAC,MAAM,EAAA,EAEX,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACJ;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-text/af-text.css?tag=af-text&encapsulation=shadow","src/components/af-text/af-text.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.text {\n margin: 0;\n padding: 0;\n font-family: var(--typography-bodyfont, 'NeuSans', Arial, sans-serif);\n font-weight: var(--font-weight-regular, 400);\n /* Inherit color from theme context via CSS custom property */\n color: var(--af-typography-body-default, var(--colour-inkwell-400, #2b484f));\n letter-spacing: var(--letter-spacing-body, 0);\n /* Inherit alignment from parent context (e.g. typography lockup), default to left */\n text-align: var(--af-text-align, left);\n}\n\n/* Alignment */\n.align-left {\n text-align: left;\n}\n\n.align-center {\n text-align: center;\n}\n\n.align-right {\n text-align: right;\n}\n\n/* Body variants */\n.variant-xlarge {\n font-size: var(--font-size-body-xlarge, 22px);\n line-height: var(--line-height-body-xlarge, 28px);\n}\n\n.variant-large {\n font-size: var(--font-size-body-large, 18px);\n line-height: var(--line-height-body-large, 26px);\n}\n\n.variant-medium {\n font-size: var(--font-size-body-medium, 16px);\n line-height: var(--line-height-body-medium, 24px);\n}\n\n.variant-small {\n font-size: var(--font-size-body-small, 14px);\n line-height: var(--line-height-body-small, 20px);\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * Text/body component that inherits color from theme context.\n * Color is determined by the parent theme (af-section, af-card, etc.)\n * via CSS custom properties.\n */\n@Component({\n tag: 'af-text',\n styleUrl: 'af-text.css',\n shadow: true\n})\nexport class AfText {\n /** Text variant */\n @Prop() variant: 'xlarge' | 'large' | 'medium' | 'small' = 'medium';\n\n /** Visual alignment. When not set, inherits from parent context (e.g. typography lockup). */\n @Prop() align?: 'left' | 'center' | 'right';\n\n /** Semantic element to render */\n @Prop() as: 'p' | 'span' | 'div' | 'label' = 'p';\n\n render() {\n const Tag = this.as as any;\n\n return (\n <Tag\n class={{\n 'text': true,\n [`variant-${this.variant}`]: true,\n [`align-${this.align}`]: !!this.align\n }}\n part=\"base\"\n >\n <slot />\n </Tag>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, c as Host } from './p-CqQyDZ-4.js';
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-DOgb6SUj.js';
2
2
 
3
3
  const afTabBarCss = ":host{display:block;width:100%}.tab-bar{display:flex;flex-wrap:nowrap;align-items:stretch;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--af-scrollbar-thumb, #8a7049) var(--af-scrollbar-track, #d1ddda)}.tab-bar::-webkit-scrollbar{height:4px}.tab-bar::-webkit-scrollbar-track{background:var(--af-scrollbar-track, #d1ddda);border-radius:2px}.tab-bar::-webkit-scrollbar-thumb{background:var(--af-scrollbar-thumb, #8a7049);border-radius:2px}.tab-bar::-webkit-scrollbar-thumb:hover{background:var(--af-scrollbar-thumb-hover, #8d785a)}.tab-bar.shape-square{gap:0;border-bottom:1px solid var(--af-background-border-subtle, #e8eeed)}.tab-bar.shape-pill{gap:0;padding:var(--space-2, 8px);background-color:var(--af-background-level-1, #e8eeed);border-radius:var(--radius-pill, 999px)}.tab-bar.breakpoint-mobile{}.tab-bar.breakpoint-mobile.shape-square{}.tab-bar.breakpoint-mobile.shape-pill{padding:var(--space-1, 4px)}.tab-bar.breakpoint-desktop{}.tab-bar.breakpoint-desktop.shape-square{}.tab-bar.breakpoint-desktop.shape-pill{padding:var(--space-2, 8px)}";
4
4
 
@@ -103,6 +103,6 @@ function defineCustomElement() {
103
103
  }
104
104
 
105
105
  export { AfTabBar as A, defineCustomElement as d };
106
- //# sourceMappingURL=p-DqgLTGE0.js.map
106
+ //# sourceMappingURL=p-C4G6votC.js.map
107
107
 
108
- //# sourceMappingURL=p-DqgLTGE0.js.map
108
+ //# sourceMappingURL=p-C4G6votC.js.map
@@ -1 +1 @@
1
- {"file":"p-DqgLTGE0.js","mappings":";;AAAA,MAAM,WAAW,GAAG,qkCAAqkC;;MCyB5kC,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AALrB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAQE;;;;AAIG;AACsB,QAAA,IAAK,CAAA,KAAA,GAAgB,QAAQ;AAEtD;;;;AAIG;AACsB,QAAA,IAAU,CAAA,UAAA,GAAqB,SAAS;AA6ElE;IA3EC,gBAAgB,GAAA;QACd,IAAI,CAAC,cAAc,EAAE;;IAGvB,kBAAkB,GAAA;QAChB,IAAI,CAAC,cAAc,EAAE;;AAGvB;;AAEG;IACK,cAAc,GAAA;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAC/C,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACnB,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;YACrC,GAAG,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC;AACtD,SAAC,CAAC;;AAGJ;;AAEG;AAEH,IAAA,aAAa,CAAC,KAAoB,EAAA;AAChC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAkB;QAC5F,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,CAAC,aAAa,IAAI,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC;QAE3G,IAAI,YAAY,KAAK,EAAE;YAAE;QAEzB,IAAI,QAAQ,GAAG,YAAY;AAE3B,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;gBAChE;AACF,YAAA,KAAK,YAAY;gBACf,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC;gBAChE;AACF,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE;gBACtB,QAAQ,GAAG,CAAC;gBACZ;AACF,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;gBAC1B;AACF,YAAA;gBACE;;;AAIJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC;QAC5D,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,KAAK,EAAE;;;IAIlB,MAAM,GAAA;AACJ,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,CAAC,SAAS,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI;AAC7B,YAAA,CAAC,cAAc,IAAI,CAAC,UAAU,CAAE,CAAA,GAAG,IAAI;SACxC;AAED,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,SAAS,EAAA,EAClB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,gBAAgB,EAAA,EAC1B,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-tab-bar/af-tab-bar.css?tag=af-tab-bar&encapsulation=shadow","src/components/af-tab-bar/af-tab-bar.tsx"],"sourcesContent":["/* TabBar component styles */\n:host {\n display: block;\n width: 100%;\n}\n\n.tab-bar {\n display: flex;\n flex-wrap: nowrap;\n align-items: stretch;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n scrollbar-color: var(--af-scrollbar-thumb, #8a7049) var(--af-scrollbar-track, #d1ddda);\n}\n\n/* Custom scrollbar for WebKit browsers */\n.tab-bar::-webkit-scrollbar {\n height: 4px;\n}\n\n.tab-bar::-webkit-scrollbar-track {\n background: var(--af-scrollbar-track, #d1ddda);\n border-radius: 2px;\n}\n\n.tab-bar::-webkit-scrollbar-thumb {\n background: var(--af-scrollbar-thumb, #8a7049);\n border-radius: 2px;\n}\n\n.tab-bar::-webkit-scrollbar-thumb:hover {\n background: var(--af-scrollbar-thumb-hover, #8d785a);\n}\n\n/* ==========================================================================\n SHAPE: SQUARE\n ========================================================================== */\n\n.tab-bar.shape-square {\n gap: 0;\n border-bottom: 1px solid var(--af-background-border-subtle, #e8eeed);\n}\n\n/* ==========================================================================\n SHAPE: PILL\n ========================================================================== */\n\n.tab-bar.shape-pill {\n gap: 0;\n padding: var(--space-2, 8px);\n background-color: var(--af-background-level-1, #e8eeed);\n border-radius: var(--radius-pill, 999px);\n}\n\n/* ==========================================================================\n BREAKPOINT: MOBILE\n ========================================================================== */\n\n.tab-bar.breakpoint-mobile {\n /* Mobile uses compact spacing */\n}\n\n.tab-bar.breakpoint-mobile.shape-square {\n /* Tabs handle their own padding in mobile */\n}\n\n.tab-bar.breakpoint-mobile.shape-pill {\n padding: var(--space-1, 4px);\n}\n\n/* ==========================================================================\n BREAKPOINT: DESKTOP\n ========================================================================== */\n\n.tab-bar.breakpoint-desktop {\n /* Desktop uses more generous spacing */\n}\n\n.tab-bar.breakpoint-desktop.shape-square {\n /* Tabs handle their own padding in desktop mode */\n}\n\n.tab-bar.breakpoint-desktop.shape-pill {\n padding: var(--space-2, 8px);\n}\n\n","import { Component, h, Prop, Host, Element, Listen } from '@stencil/core';\n\nexport type TabBarShape = 'square' | 'pill';\nexport type TabBarBreakpoint = 'mobile' | 'desktop';\n\n/**\n * TabBar component that contains and manages a group of tabs.\n * Provides horizontal layout, keyboard navigation, and consistent styling.\n * \n * @slot - Tab elements (af-tab)\n * \n * @example\n * ```html\n * <af-tab-bar shape=\"square\" breakpoint=\"desktop\">\n * <af-tab label=\"Overview\" active value=\"overview\"></af-tab>\n * <af-tab label=\"Details\" value=\"details\"></af-tab>\n * <af-tab label=\"Settings\" value=\"settings\"></af-tab>\n * </af-tab-bar>\n * ```\n */\n@Component({\n tag: 'af-tab-bar',\n styleUrl: 'af-tab-bar.css',\n shadow: true\n})\nexport class AfTabBar {\n @Element() el!: HTMLElement;\n\n /**\n * Visual shape variant for all tabs\n * - `square` - Rectangular tabs with bottom border indicator\n * - `pill` - Rounded pill tabs with background for active state\n */\n @Prop({ reflect: true }) shape: TabBarShape = 'square';\n\n /**\n * Responsive breakpoint mode\n * - `mobile` - Compact layout with smaller padding\n * - `desktop` - Larger layout with more generous spacing\n */\n @Prop({ reflect: true }) breakpoint: TabBarBreakpoint = 'desktop';\n\n componentDidLoad() {\n this.syncChildProps();\n }\n\n componentDidUpdate() {\n this.syncChildProps();\n }\n\n /**\n * Sync shape and breakpoint props to child af-tab elements\n */\n private syncChildProps() {\n const tabs = this.el.querySelectorAll('af-tab');\n tabs.forEach((tab) => {\n tab.setAttribute('shape', this.shape);\n tab.setAttribute('data-breakpoint', this.breakpoint);\n });\n }\n\n /**\n * Handle keyboard navigation between tabs\n */\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n const tabs = Array.from(this.el.querySelectorAll('af-tab:not([disabled])')) as HTMLElement[];\n const currentIndex = tabs.findIndex(tab => tab === document.activeElement || tab.shadowRoot?.activeElement);\n \n if (currentIndex === -1) return;\n\n let newIndex = currentIndex;\n\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n newIndex = currentIndex > 0 ? currentIndex - 1 : tabs.length - 1;\n break;\n case 'ArrowRight':\n event.preventDefault();\n newIndex = currentIndex < tabs.length - 1 ? currentIndex + 1 : 0;\n break;\n case 'Home':\n event.preventDefault();\n newIndex = 0;\n break;\n case 'End':\n event.preventDefault();\n newIndex = tabs.length - 1;\n break;\n default:\n return;\n }\n\n // Focus the button inside the shadow DOM of the tab\n const targetTab = tabs[newIndex];\n const button = targetTab.shadowRoot?.querySelector('button');\n if (button) {\n button.focus();\n }\n }\n\n render() {\n const containerClasses = {\n 'tab-bar': true,\n [`shape-${this.shape}`]: true,\n [`breakpoint-${this.breakpoint}`]: true,\n };\n\n return (\n <Host role=\"tablist\">\n <div class={containerClasses}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"],"version":3}
1
+ {"file":"p-C4G6votC.js","mappings":";;AAAA,MAAM,WAAW,GAAG,qkCAAqkC;;MCyB5kC,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AALrB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAQE;;;;AAIG;AACsB,QAAA,IAAK,CAAA,KAAA,GAAgB,QAAQ;AAEtD;;;;AAIG;AACsB,QAAA,IAAU,CAAA,UAAA,GAAqB,SAAS;AA6ElE;IA3EC,gBAAgB,GAAA;QACd,IAAI,CAAC,cAAc,EAAE;;IAGvB,kBAAkB,GAAA;QAChB,IAAI,CAAC,cAAc,EAAE;;AAGvB;;AAEG;IACK,cAAc,GAAA;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAC/C,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACnB,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;YACrC,GAAG,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC;AACtD,SAAC,CAAC;;AAGJ;;AAEG;AAEH,IAAA,aAAa,CAAC,KAAoB,EAAA;AAChC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAkB;QAC5F,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,CAAC,aAAa,IAAI,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC;QAE3G,IAAI,YAAY,KAAK,EAAE;YAAE;QAEzB,IAAI,QAAQ,GAAG,YAAY;AAE3B,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;gBAChE;AACF,YAAA,KAAK,YAAY;gBACf,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC;gBAChE;AACF,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE;gBACtB,QAAQ,GAAG,CAAC;gBACZ;AACF,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;gBAC1B;AACF,YAAA;gBACE;;;AAIJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC;QAC5D,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,KAAK,EAAE;;;IAIlB,MAAM,GAAA;AACJ,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,CAAC,SAAS,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI;AAC7B,YAAA,CAAC,cAAc,IAAI,CAAC,UAAU,CAAE,CAAA,GAAG,IAAI;SACxC;AAED,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,SAAS,EAAA,EAClB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,gBAAgB,EAAA,EAC1B,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-tab-bar/af-tab-bar.css?tag=af-tab-bar&encapsulation=shadow","src/components/af-tab-bar/af-tab-bar.tsx"],"sourcesContent":["/* TabBar component styles */\n:host {\n display: block;\n width: 100%;\n}\n\n.tab-bar {\n display: flex;\n flex-wrap: nowrap;\n align-items: stretch;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n scrollbar-color: var(--af-scrollbar-thumb, #8a7049) var(--af-scrollbar-track, #d1ddda);\n}\n\n/* Custom scrollbar for WebKit browsers */\n.tab-bar::-webkit-scrollbar {\n height: 4px;\n}\n\n.tab-bar::-webkit-scrollbar-track {\n background: var(--af-scrollbar-track, #d1ddda);\n border-radius: 2px;\n}\n\n.tab-bar::-webkit-scrollbar-thumb {\n background: var(--af-scrollbar-thumb, #8a7049);\n border-radius: 2px;\n}\n\n.tab-bar::-webkit-scrollbar-thumb:hover {\n background: var(--af-scrollbar-thumb-hover, #8d785a);\n}\n\n/* ==========================================================================\n SHAPE: SQUARE\n ========================================================================== */\n\n.tab-bar.shape-square {\n gap: 0;\n border-bottom: 1px solid var(--af-background-border-subtle, #e8eeed);\n}\n\n/* ==========================================================================\n SHAPE: PILL\n ========================================================================== */\n\n.tab-bar.shape-pill {\n gap: 0;\n padding: var(--space-2, 8px);\n background-color: var(--af-background-level-1, #e8eeed);\n border-radius: var(--radius-pill, 999px);\n}\n\n/* ==========================================================================\n BREAKPOINT: MOBILE\n ========================================================================== */\n\n.tab-bar.breakpoint-mobile {\n /* Mobile uses compact spacing */\n}\n\n.tab-bar.breakpoint-mobile.shape-square {\n /* Tabs handle their own padding in mobile */\n}\n\n.tab-bar.breakpoint-mobile.shape-pill {\n padding: var(--space-1, 4px);\n}\n\n/* ==========================================================================\n BREAKPOINT: DESKTOP\n ========================================================================== */\n\n.tab-bar.breakpoint-desktop {\n /* Desktop uses more generous spacing */\n}\n\n.tab-bar.breakpoint-desktop.shape-square {\n /* Tabs handle their own padding in desktop mode */\n}\n\n.tab-bar.breakpoint-desktop.shape-pill {\n padding: var(--space-2, 8px);\n}\n\n","import { Component, h, Prop, Host, Element, Listen } from '@stencil/core';\n\nexport type TabBarShape = 'square' | 'pill';\nexport type TabBarBreakpoint = 'mobile' | 'desktop';\n\n/**\n * TabBar component that contains and manages a group of tabs.\n * Provides horizontal layout, keyboard navigation, and consistent styling.\n * \n * @slot - Tab elements (af-tab)\n * \n * @example\n * ```html\n * <af-tab-bar shape=\"square\" breakpoint=\"desktop\">\n * <af-tab label=\"Overview\" active value=\"overview\"></af-tab>\n * <af-tab label=\"Details\" value=\"details\"></af-tab>\n * <af-tab label=\"Settings\" value=\"settings\"></af-tab>\n * </af-tab-bar>\n * ```\n */\n@Component({\n tag: 'af-tab-bar',\n styleUrl: 'af-tab-bar.css',\n shadow: true\n})\nexport class AfTabBar {\n @Element() el!: HTMLElement;\n\n /**\n * Visual shape variant for all tabs\n * - `square` - Rectangular tabs with bottom border indicator\n * - `pill` - Rounded pill tabs with background for active state\n */\n @Prop({ reflect: true }) shape: TabBarShape = 'square';\n\n /**\n * Responsive breakpoint mode\n * - `mobile` - Compact layout with smaller padding\n * - `desktop` - Larger layout with more generous spacing\n */\n @Prop({ reflect: true }) breakpoint: TabBarBreakpoint = 'desktop';\n\n componentDidLoad() {\n this.syncChildProps();\n }\n\n componentDidUpdate() {\n this.syncChildProps();\n }\n\n /**\n * Sync shape and breakpoint props to child af-tab elements\n */\n private syncChildProps() {\n const tabs = this.el.querySelectorAll('af-tab');\n tabs.forEach((tab) => {\n tab.setAttribute('shape', this.shape);\n tab.setAttribute('data-breakpoint', this.breakpoint);\n });\n }\n\n /**\n * Handle keyboard navigation between tabs\n */\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n const tabs = Array.from(this.el.querySelectorAll('af-tab:not([disabled])')) as HTMLElement[];\n const currentIndex = tabs.findIndex(tab => tab === document.activeElement || tab.shadowRoot?.activeElement);\n \n if (currentIndex === -1) return;\n\n let newIndex = currentIndex;\n\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n newIndex = currentIndex > 0 ? currentIndex - 1 : tabs.length - 1;\n break;\n case 'ArrowRight':\n event.preventDefault();\n newIndex = currentIndex < tabs.length - 1 ? currentIndex + 1 : 0;\n break;\n case 'Home':\n event.preventDefault();\n newIndex = 0;\n break;\n case 'End':\n event.preventDefault();\n newIndex = tabs.length - 1;\n break;\n default:\n return;\n }\n\n // Focus the button inside the shadow DOM of the tab\n const targetTab = tabs[newIndex];\n const button = targetTab.shadowRoot?.querySelector('button');\n if (button) {\n button.focus();\n }\n }\n\n render() {\n const containerClasses = {\n 'tab-bar': true,\n [`shape-${this.shape}`]: true,\n [`breakpoint-${this.breakpoint}`]: true,\n };\n\n return (\n <Host role=\"tablist\">\n <div class={containerClasses}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"],"version":3}
@@ -0,0 +1,53 @@
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-DOgb6SUj.js';
2
+
3
+ const afCardCss = ".sc-af-card-h{display:block;width:100%}[stretch].sc-af-card-h{display:flex;flex-direction:column;height:100%}[stretch].sc-af-card-h .card.sc-af-card{flex:1 1 auto}[stretch].sc-af-card-h .card__content.sc-af-card{flex:1 1 auto}.card.sc-af-card{border-radius:var(--af-card-radius, var(--radius-lg, 20px));overflow:hidden;position:relative;display:flex;flex-direction:column;box-sizing:border-box}.card.theme-white.sc-af-card{background-color:var(--colour-brand-white, #ffffff);--af-typography-heading-primary:var(--colour-brand-inkwell, #14343b);--af-typography-body-default:var(--colour-inkwell-400, #2b484f);--af-background-level-1:var(--colour-mistgreen-200, #e8eeed)}.card.theme-white-ivory.sc-af-card{background-color:var(--colour-brand-ivory-paper, #fff9ee);--af-typography-heading-primary:var(--colour-brand-inkwell, #14343b);--af-typography-body-default:var(--colour-inkwell-400, #2b484f);--af-background-level-1:var(--colour-ivory-200, #ffefcc)}.card.theme-inkwell.sc-af-card{background-color:var(--colour-brand-inkwell, #14343b);--af-typography-heading-primary:var(--colour-brand-mist-green, #c6d5d1);--af-typography-body-default:var(--colour-inkwell-100, #d0d6d8);--af-background-level-1:var(--colour-inkwell-450, #203e45);--af-button-secondary-text:var(--colour-brand-white, #ffffff);--af-button-secondary-stroke:var(--colour-brand-white, #ffffff);--af-button-ghost-text:var(--colour-brand-white, #ffffff);--af-button-ghost-icon:var(--colour-brand-white, #ffffff);--af-form-control-bg:var(--colour-inkwell-450, #203e45);--af-form-control-bg-checked:var(--colour-brand-mist-green, #c6d5d1);--af-form-control-bg-disabled:var(--colour-inkwell-400, #2b484f);--af-form-control-bg-checked-disabled:var(--colour-mistgreen-700, #9eaaa7);--af-form-control-stroke:var(--colour-inkwell-350, #60767b);--af-form-control-stroke-hover:var(--colour-brand-white, #ffffff);--af-form-control-stroke-disabled:var(--colour-inkwell-400, #2b484f);--af-form-control-icon:var(--colour-brand-inkwell, #14343b);--af-form-control-label:var(--colour-brand-white, #ffffff)}.card.theme-mist-green.sc-af-card{background-color:var(--colour-brand-mist-green, #c6d5d1);--af-typography-heading-primary:var(--colour-brand-inkwell, #14343b);--af-typography-body-default:var(--colour-inkwell-400, #2b484f);--af-background-level-1:var(--colour-mistgreen-300, #dde6e3)}.card.theme-soft-clay.sc-af-card{background-color:var(--colour-softclay-400, #c0ab8d);--af-typography-heading-primary:var(--colour-brand-inkwell, #14343b);--af-typography-heading-secondary:var(--colour-brand-ivory-paper, #fff9ee);--af-typography-body-default:var(--colour-inkwell-400, #2b484f);--af-background-level-1:var(--colour-softclay-500, #b09670)}.card__content.sc-af-card{position:relative;padding:var(--af-card-padding, 40px);display:flex;flex-direction:column;gap:var(--af-card-gap, 24px);flex:1;box-sizing:border-box;z-index:1}.card__content.sc-af-card-s>af-heading,.card__content .sc-af-card-s>af-heading{margin-bottom:0}.card__content.sc-af-card-s>af-text,.card__content .sc-af-card-s>af-text{line-height:1.44}";
4
+
5
+ const AfCard = /*@__PURE__*/ proxyCustomElement(class AfCard extends H {
6
+ constructor(registerHost) {
7
+ super();
8
+ if (registerHost !== false) {
9
+ this.__registerHost();
10
+ }
11
+ /**
12
+ * Theme - sets background color and provides theme context to children.
13
+ * Defaults to 'mist-green' if not specified.
14
+ */
15
+ this.theme = 'mist-green';
16
+ /**
17
+ * When true, the card stretches to fill its container height.
18
+ * Use this when the card is in a flex/grid container and needs to
19
+ * participate in equal-height layouts. The card's content will use
20
+ * flexbox to distribute space between children.
21
+ */
22
+ this.stretch = false;
23
+ }
24
+ render() {
25
+ const classes = {
26
+ 'card': true,
27
+ [`theme-${this.theme}`]: true
28
+ };
29
+ return (h(Host, { key: '18e2c6aa8f9053223d51f13520dab6f94ac7a024' }, h("div", { key: 'e697dbc8f1c8d88cfe2e6f40039305513f875c3a', class: classes }, h("div", { key: '16e5f233fa1bc8e9f0a192ddc4905a252b51623c', class: "card__content" }, h("slot", { key: 'dbc326c5b175ec0633c1d6688b2cef7434664a0a' })))));
30
+ }
31
+ static get style() { return afCardCss; }
32
+ }, [262, "af-card", {
33
+ "theme": [1],
34
+ "stretch": [516]
35
+ }]);
36
+ function defineCustomElement() {
37
+ if (typeof customElements === "undefined") {
38
+ return;
39
+ }
40
+ const components = ["af-card"];
41
+ components.forEach(tagName => { switch (tagName) {
42
+ case "af-card":
43
+ if (!customElements.get(tagName)) {
44
+ customElements.define(tagName, AfCard);
45
+ }
46
+ break;
47
+ } });
48
+ }
49
+
50
+ export { AfCard as A, defineCustomElement as d };
51
+ //# sourceMappingURL=p-CJxqw006.js.map
52
+
53
+ //# sourceMappingURL=p-CJxqw006.js.map
@@ -0,0 +1 @@
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}
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-CqQyDZ-4.js';
1
+ import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-DOgb6SUj.js';
2
2
 
3
3
  const afRadioCss = ":host{display:inline-block}.radio{display:inline-flex;align-items:center;gap:12px;cursor:pointer;font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-size:14px;line-height:20px;color:var(--af-form-control-label, var(--colour-brand-inkwell, #14343b));user-select:none}.radio.disabled{cursor:not-allowed;opacity:0.5}.input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.control{position:relative;flex-shrink:0;width:20px;height:20px;border-radius:var(--radii-radio, 9999px);border:none;box-shadow:inset 0 0 0 1px var(--af-form-control-stroke, var(--colour-mistgreen-500, #d0d6d8));background:var(--af-form-control-bg, var(--colour-brand-white, #ffffff));transition:all 0.15s ease;box-sizing:border-box}.control.checked{background:var(--af-form-control-bg-checked, var(--colour-brand-inkwell, #14343b));box-shadow:none}.control.disabled{background:var(--af-form-control-bg-disabled, var(--colour-mistgreen-200, #e8ebeb));box-shadow:inset 0 0 0 1px var(--af-form-control-stroke-disabled, var(--colour-mistgreen-500, #d0d6d8))}.control.checked.disabled{background:var(--af-form-control-bg-checked-disabled, var(--colour-inkwell-350, #708380));box-shadow:none}.radio:not(.disabled):hover .control:not(.checked){box-shadow:inset 0 0 0 1px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b))}.input:focus-visible+.control{outline:none;box-shadow:inset 0 0 0 1px var(--af-form-control-stroke, var(--colour-mistgreen-500, #d0d6d8)),\n 0 0 0 4px var(--af-background-base, var(--colour-brand-white, #ffffff)), \n 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b))}.input:focus-visible+.control.checked{box-shadow:0 0 0 4px var(--af-background-base, var(--colour-brand-white, #ffffff)), \n 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b))}.dot{position:absolute;inset:0;margin:auto;width:8px;height:8px;border-radius:50%;background:var(--af-form-control-icon, var(--colour-brand-white, #ffffff));opacity:0;transition:opacity 0.15s ease}.control.checked .dot{opacity:1}.label{display:flex;align-items:center;min-height:24px}.label:empty{display:none}";
4
4
 
@@ -69,6 +69,6 @@ function defineCustomElement() {
69
69
  }
70
70
 
71
71
  export { AfRadio as A, defineCustomElement as d };
72
- //# sourceMappingURL=p-CHLm_AuW.js.map
72
+ //# sourceMappingURL=p-CP8rLe_C.js.map
73
73
 
74
- //# sourceMappingURL=p-CHLm_AuW.js.map
74
+ //# sourceMappingURL=p-CP8rLe_C.js.map
@@ -1 +1 @@
1
- {"file":"p-CHLm_AuW.js","mappings":";;AAAA,MAAM,UAAU,GAAG,2rEAA2rE;;MCajsE,OAAO,iBAAAA,kBAAA,CAAA,MAAA,OAAA,SAAAC,CAAA,CAAA;AALpB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAQE;;AAEG;AACqC,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAEhE;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAiB1C,QAAA,IAAW,CAAA,WAAA,GAAG,MAAK;AACzB,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;gBAAE;;AAGnC,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,gBAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAkB,eAAA,EAAA,IAAI,CAAC,IAAI,CAAI,EAAA,CAAA,CAAC;AAC3E,gBAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;oBACzB,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE,IAAK,KAAa,CAAC,OAAO,EAAE;AAC9C,wBAAA,KAAa,CAAC,OAAO,GAAG,KAAK;;AAElC,iBAAC,CAAC;;AAGJ,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;YACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACnF,SAAC;AAoCF;IAlCC,MAAM,GAAA;AACJ,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,OAAO;YACvB,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAO,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,EACnD,CACE,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,EAChC,CAAA,EACF,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,cAAc,EAAA,EACzB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,KAAK,EAAA,CAAQ,CACpB,EACP,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,OAAO,EAAA,EACjB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACR,CACD,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-radio/af-radio.css?tag=af-radio&encapsulation=shadow","src/components/af-radio/af-radio.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n.radio {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-size: 14px;\n line-height: 20px;\n color: var(--af-form-control-label, var(--colour-brand-inkwell, #14343b));\n user-select: none;\n}\n\n.radio.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* Hidden native input */\n.input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* Custom radio control */\n.control {\n position: relative;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n border-radius: var(--radii-radio, 9999px);\n /* Use inset box-shadow instead of border to prevent layout shift */\n border: none;\n box-shadow: inset 0 0 0 1px var(--af-form-control-stroke, var(--colour-mistgreen-500, #d0d6d8));\n background: var(--af-form-control-bg, var(--colour-brand-white, #ffffff));\n transition: all 0.15s ease;\n box-sizing: border-box;\n}\n\n/* Checked state */\n.control.checked {\n background: var(--af-form-control-bg-checked, var(--colour-brand-inkwell, #14343b));\n box-shadow: none;\n}\n\n/* Disabled state */\n.control.disabled {\n background: var(--af-form-control-bg-disabled, var(--colour-mistgreen-200, #e8ebeb));\n box-shadow: inset 0 0 0 1px var(--af-form-control-stroke-disabled, var(--colour-mistgreen-500, #d0d6d8));\n}\n\n.control.checked.disabled {\n background: var(--af-form-control-bg-checked-disabled, var(--colour-inkwell-350, #708380));\n box-shadow: none;\n}\n\n/* Hover state */\n.radio:not(.disabled):hover .control:not(.checked) {\n box-shadow: inset 0 0 0 1px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Focus state */\n.input:focus-visible + .control {\n outline: none;\n box-shadow: \n inset 0 0 0 1px var(--af-form-control-stroke, var(--colour-mistgreen-500, #d0d6d8)),\n 0 0 0 4px var(--af-background-base, var(--colour-brand-white, #ffffff)), \n 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n}\n\n.input:focus-visible + .control.checked {\n box-shadow: \n 0 0 0 4px var(--af-background-base, var(--colour-brand-white, #ffffff)), \n 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Inner dot - always present, visibility controlled by opacity */\n.dot {\n position: absolute;\n inset: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(--af-form-control-icon, var(--colour-brand-white, #ffffff));\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.control.checked .dot {\n opacity: 1;\n}\n\n/* Label styling */\n.label {\n display: flex;\n align-items: center;\n min-height: 24px;\n}\n\n/* Empty label - hide if no content */\n.label:empty {\n display: none;\n}\n","import { Component, h, Prop, Host, Event, EventEmitter, Element } from '@stencil/core';\n\n/**\n * Radio component for selecting a single option from a group.\n * Radios with the same `name` prop are mutually exclusive.\n * \n * @slot - Radio label text\n */\n@Component({\n tag: 'af-radio',\n styleUrl: 'af-radio.css',\n shadow: true\n})\nexport class AfRadio {\n @Element() el!: HTMLElement;\n\n /**\n * Whether the radio is checked\n */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /**\n * Whether the radio is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The name of the radio for form submission (radios with same name are grouped)\n */\n @Prop({ reflect: true }) name?: string;\n\n /**\n * The value of the radio for form submission\n */\n @Prop() value?: string;\n\n /**\n * Emitted when the radio checked state changes\n */\n @Event() afChange!: EventEmitter<{ checked: boolean; value?: string; name?: string }>;\n\n private handleClick = () => {\n if (this.disabled || this.checked) return;\n \n // Uncheck other radios with the same name\n if (this.name) {\n const siblings = document.querySelectorAll(`af-radio[name=\"${this.name}\"]`);\n siblings.forEach((radio) => {\n if (radio !== this.el && (radio as any).checked) {\n (radio as any).checked = false;\n }\n });\n }\n \n this.checked = true;\n this.afChange.emit({ checked: this.checked, value: this.value, name: this.name });\n };\n\n render() {\n const radioClasses = {\n 'radio': true,\n 'disabled': this.disabled\n };\n\n const controlClasses = {\n 'control': true,\n 'checked': this.checked,\n 'disabled': this.disabled\n };\n\n return (\n <Host>\n <label class={radioClasses} onClick={this.handleClick}>\n <input\n type=\"radio\"\n class=\"input\"\n checked={this.checked}\n disabled={this.disabled}\n name={this.name}\n value={this.value}\n tabindex={this.disabled ? -1 : 0}\n />\n <span class={controlClasses}>\n <span class=\"dot\"></span>\n </span>\n <span class=\"label\">\n <slot></slot>\n </span>\n </label>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-CP8rLe_C.js","mappings":";;AAAA,MAAM,UAAU,GAAG,2rEAA2rE;;MCajsE,OAAO,iBAAAA,kBAAA,CAAA,MAAA,OAAA,SAAAC,CAAA,CAAA;AALpB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAQE;;AAEG;AACqC,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAEhE;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAiB1C,QAAA,IAAW,CAAA,WAAA,GAAG,MAAK;AACzB,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;gBAAE;;AAGnC,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,gBAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAkB,eAAA,EAAA,IAAI,CAAC,IAAI,CAAI,EAAA,CAAA,CAAC;AAC3E,gBAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;oBACzB,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE,IAAK,KAAa,CAAC,OAAO,EAAE;AAC9C,wBAAA,KAAa,CAAC,OAAO,GAAG,KAAK;;AAElC,iBAAC,CAAC;;AAGJ,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;YACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACnF,SAAC;AAoCF;IAlCC,MAAM,GAAA;AACJ,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,OAAO;YACvB,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAO,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,EACnD,CACE,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,EAChC,CAAA,EACF,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,cAAc,EAAA,EACzB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,KAAK,EAAA,CAAQ,CACpB,EACP,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,OAAO,EAAA,EACjB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACR,CACD,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-radio/af-radio.css?tag=af-radio&encapsulation=shadow","src/components/af-radio/af-radio.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n.radio {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-size: 14px;\n line-height: 20px;\n color: var(--af-form-control-label, var(--colour-brand-inkwell, #14343b));\n user-select: none;\n}\n\n.radio.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* Hidden native input */\n.input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* Custom radio control */\n.control {\n position: relative;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n border-radius: var(--radii-radio, 9999px);\n /* Use inset box-shadow instead of border to prevent layout shift */\n border: none;\n box-shadow: inset 0 0 0 1px var(--af-form-control-stroke, var(--colour-mistgreen-500, #d0d6d8));\n background: var(--af-form-control-bg, var(--colour-brand-white, #ffffff));\n transition: all 0.15s ease;\n box-sizing: border-box;\n}\n\n/* Checked state */\n.control.checked {\n background: var(--af-form-control-bg-checked, var(--colour-brand-inkwell, #14343b));\n box-shadow: none;\n}\n\n/* Disabled state */\n.control.disabled {\n background: var(--af-form-control-bg-disabled, var(--colour-mistgreen-200, #e8ebeb));\n box-shadow: inset 0 0 0 1px var(--af-form-control-stroke-disabled, var(--colour-mistgreen-500, #d0d6d8));\n}\n\n.control.checked.disabled {\n background: var(--af-form-control-bg-checked-disabled, var(--colour-inkwell-350, #708380));\n box-shadow: none;\n}\n\n/* Hover state */\n.radio:not(.disabled):hover .control:not(.checked) {\n box-shadow: inset 0 0 0 1px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Focus state */\n.input:focus-visible + .control {\n outline: none;\n box-shadow: \n inset 0 0 0 1px var(--af-form-control-stroke, var(--colour-mistgreen-500, #d0d6d8)),\n 0 0 0 4px var(--af-background-base, var(--colour-brand-white, #ffffff)), \n 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n}\n\n.input:focus-visible + .control.checked {\n box-shadow: \n 0 0 0 4px var(--af-background-base, var(--colour-brand-white, #ffffff)), \n 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Inner dot - always present, visibility controlled by opacity */\n.dot {\n position: absolute;\n inset: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(--af-form-control-icon, var(--colour-brand-white, #ffffff));\n opacity: 0;\n transition: opacity 0.15s ease;\n}\n\n.control.checked .dot {\n opacity: 1;\n}\n\n/* Label styling */\n.label {\n display: flex;\n align-items: center;\n min-height: 24px;\n}\n\n/* Empty label - hide if no content */\n.label:empty {\n display: none;\n}\n","import { Component, h, Prop, Host, Event, EventEmitter, Element } from '@stencil/core';\n\n/**\n * Radio component for selecting a single option from a group.\n * Radios with the same `name` prop are mutually exclusive.\n * \n * @slot - Radio label text\n */\n@Component({\n tag: 'af-radio',\n styleUrl: 'af-radio.css',\n shadow: true\n})\nexport class AfRadio {\n @Element() el!: HTMLElement;\n\n /**\n * Whether the radio is checked\n */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /**\n * Whether the radio is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The name of the radio for form submission (radios with same name are grouped)\n */\n @Prop({ reflect: true }) name?: string;\n\n /**\n * The value of the radio for form submission\n */\n @Prop() value?: string;\n\n /**\n * Emitted when the radio checked state changes\n */\n @Event() afChange!: EventEmitter<{ checked: boolean; value?: string; name?: string }>;\n\n private handleClick = () => {\n if (this.disabled || this.checked) return;\n \n // Uncheck other radios with the same name\n if (this.name) {\n const siblings = document.querySelectorAll(`af-radio[name=\"${this.name}\"]`);\n siblings.forEach((radio) => {\n if (radio !== this.el && (radio as any).checked) {\n (radio as any).checked = false;\n }\n });\n }\n \n this.checked = true;\n this.afChange.emit({ checked: this.checked, value: this.value, name: this.name });\n };\n\n render() {\n const radioClasses = {\n 'radio': true,\n 'disabled': this.disabled\n };\n\n const controlClasses = {\n 'control': true,\n 'checked': this.checked,\n 'disabled': this.disabled\n };\n\n return (\n <Host>\n <label class={radioClasses} onClick={this.handleClick}>\n <input\n type=\"radio\"\n class=\"input\"\n checked={this.checked}\n disabled={this.disabled}\n name={this.name}\n value={this.value}\n tabindex={this.disabled ? -1 : 0}\n />\n <span class={controlClasses}>\n <span class=\"dot\"></span>\n </span>\n <span class=\"label\">\n <slot></slot>\n </span>\n </label>\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}
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h } from './p-CqQyDZ-4.js';
1
+ import { p as proxyCustomElement, H, h } from './p-DOgb6SUj.js';
2
2
 
3
3
  const afHeadingCss = ":host{display:block}.heading{margin:0;padding:0;font-family:var(--typography-headingfont, 'NeuSans', Arial, sans-serif);font-weight:var(--font-weight-regular, 400);color:var(--af-typography-heading-primary, var(--colour-brand-inkwell, #14343b));letter-spacing:var(--letter-spacing-heading, -0.02em)}.align-inherit{text-align:var(--af-text-align, left)}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.level-xl{font-size:var(--font-size-heading-xl-fluid, clamp(50px, 3.31vw + 37.57px, 80px));line-height:var(--line-height-heading-tight, 1)}.level-1{font-size:var(--font-size-heading-1-fluid, clamp(38px, 1.99vw + 30.54px, 56px));line-height:var(--line-height-heading-tight, 1)}.level-2{font-size:var(--font-size-heading-2-fluid, clamp(32px, 1.33vw + 27.03px, 44px));line-height:var(--line-height-heading-tight, 1)}.level-3{font-size:var(--font-size-heading-3-fluid, clamp(25px, 0.99vw + 21.27px, 34px));line-height:var(--line-height-heading-tight, 1)}.level-4{font-size:var(--font-size-heading-4-fluid, clamp(20px, 0.44vw + 18.34px, 24px));line-height:var(--line-height-heading-normal, 1.1)}@media (min-width: 768px){.level-4{line-height:var(--line-height-heading-relaxed, 1.2)}}.level-5{font-size:var(--font-size-heading-5-fluid, clamp(18px, 0.22vw + 17.17px, 20px));line-height:var(--line-height-heading-normal, 1.1)}@media (min-width: 768px){.level-5{line-height:var(--line-height-heading-relaxed, 1.2)}}";
4
4
 
@@ -54,6 +54,6 @@ function defineCustomElement() {
54
54
  }
55
55
 
56
56
  export { AfHeading as A, defineCustomElement as d };
57
- //# sourceMappingURL=p-Bw8fdMnn.js.map
57
+ //# sourceMappingURL=p-CX0pktY8.js.map
58
58
 
59
- //# sourceMappingURL=p-Bw8fdMnn.js.map
59
+ //# sourceMappingURL=p-CX0pktY8.js.map
@@ -1 +1 @@
1
- {"file":"p-Bw8fdMnn.js","mappings":";;AAAA,MAAM,YAAY,GAAG,06CAA06C;;MCYl7C,SAAS,iBAAAA,kBAAA,CAAA,MAAA,SAAA,SAAAC,CAAA,CAAA;AALtB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAOU,QAAA,IAAK,CAAA,KAAA,GAAuC,GAAG;;AAG/C,QAAA,IAAK,CAAA,KAAA,GAA4C,SAAS;AA+BnE;IA7BS,aAAa,GAAA;;AAEnB,QAAA,MAAM,MAAM,GAA2B;AACrC,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,GAAG,EAAE;SACN;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI;;IAGnC,MAAM,GAAA;AACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAS;QAEvC,QACE,CAAA,CAAC,GAAG,EAAA,EAAA,GAAA,EAAA,0CAAA,EACF,KAAK,EAAE;AACL,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,CAAC,SAAS,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI;AAC7B,gBAAA,CAAC,SAAS,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG;AAC1B,aAAA,EACD,IAAI,EAAC,MAAM,EAAA,EAEX,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACJ;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-heading/af-heading.css?tag=af-heading&encapsulation=shadow","src/components/af-heading/af-heading.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.heading {\n margin: 0;\n padding: 0;\n font-family: var(--typography-headingfont, 'NeuSans', Arial, sans-serif);\n font-weight: var(--font-weight-regular, 400);\n /* Inherit color from theme context via CSS custom property */\n color: var(--af-typography-heading-primary, var(--colour-brand-inkwell, #14343b));\n letter-spacing: var(--letter-spacing-heading, -0.02em);\n}\n\n/* Alignment - inherits from --af-text-align if set, otherwise uses explicit align prop */\n.align-inherit {\n text-align: var(--af-text-align, left);\n}\n\n.align-left {\n text-align: left;\n}\n\n.align-center {\n text-align: center;\n}\n\n.align-right {\n text-align: right;\n}\n\n/*\n * Fluid typography: font-size scales continuously with viewport width between\n * the mobile size (anchored at 375px viewport) and the desktop size\n * (anchored at 1280px viewport) using clamp().\n *\n * Formula: clamp(mobilePx, Avw + Bpx, desktopPx)\n * A = (desktop - mobile) / (1280 - 375) * 100 (vw slope)\n * B = mobile - A/100 * 375 (px intercept)\n *\n * Each level exposes a --font-size-heading-{level}-fluid custom property so\n * consumers can still override the resulting size without defeating clamp().\n */\n\n/* Heading XL */\n.level-xl {\n font-size: var(--font-size-heading-xl-fluid, clamp(50px, 3.31vw + 37.57px, 80px));\n line-height: var(--line-height-heading-tight, 1);\n}\n\n/* Heading 1 */\n.level-1 {\n font-size: var(--font-size-heading-1-fluid, clamp(38px, 1.99vw + 30.54px, 56px));\n line-height: var(--line-height-heading-tight, 1);\n}\n\n/* Heading 2 */\n.level-2 {\n font-size: var(--font-size-heading-2-fluid, clamp(32px, 1.33vw + 27.03px, 44px));\n line-height: var(--line-height-heading-tight, 1);\n}\n\n/* Heading 3 */\n.level-3 {\n font-size: var(--font-size-heading-3-fluid, clamp(25px, 0.99vw + 21.27px, 34px));\n line-height: var(--line-height-heading-tight, 1);\n}\n\n/* Heading 4 */\n.level-4 {\n font-size: var(--font-size-heading-4-fluid, clamp(20px, 0.44vw + 18.34px, 24px));\n line-height: var(--line-height-heading-normal, 1.1);\n}\n\n@media (min-width: 768px) {\n .level-4 {\n line-height: var(--line-height-heading-relaxed, 1.2);\n }\n}\n\n/* Heading 5 */\n.level-5 {\n font-size: var(--font-size-heading-5-fluid, clamp(18px, 0.22vw + 17.17px, 20px));\n line-height: var(--line-height-heading-normal, 1.1);\n}\n\n@media (min-width: 768px) {\n .level-5 {\n line-height: var(--line-height-heading-relaxed, 1.2);\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * Heading component that inherits color from theme context.\n * Color is determined by the parent theme (af-section, af-card, etc.)\n * via CSS custom properties.\n */\n@Component({\n tag: 'af-heading',\n styleUrl: 'af-heading.css',\n shadow: true\n})\nexport class AfHeading {\n /** Heading level */\n @Prop() level: 'xl' | '1' | '2' | '3' | '4' | '5' = '1';\n\n /** Visual alignment. Defaults to 'inherit' which reads from parent context (e.g. AfTypographyLockup) */\n @Prop() align: 'inherit' | 'left' | 'center' | 'right' = 'inherit';\n\n private getHeadingTag() {\n // Map display levels to semantic HTML tags\n const tagMap: Record<string, string> = {\n 'xl': 'h1',\n '1': 'h1',\n '2': 'h2',\n '3': 'h3',\n '4': 'h4',\n '5': 'h5'\n };\n return tagMap[this.level] || 'h1';\n }\n\n render() {\n const Tag = this.getHeadingTag() as any;\n\n return (\n <Tag\n class={{\n 'heading': true,\n [`level-${this.level}`]: true,\n [`align-${this.align}`]: true\n }}\n part=\"base\"\n >\n <slot />\n </Tag>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-CX0pktY8.js","mappings":";;AAAA,MAAM,YAAY,GAAG,06CAA06C;;MCYl7C,SAAS,iBAAAA,kBAAA,CAAA,MAAA,SAAA,SAAAC,CAAA,CAAA;AALtB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAOU,QAAA,IAAK,CAAA,KAAA,GAAuC,GAAG;;AAG/C,QAAA,IAAK,CAAA,KAAA,GAA4C,SAAS;AA+BnE;IA7BS,aAAa,GAAA;;AAEnB,QAAA,MAAM,MAAM,GAA2B;AACrC,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,GAAG,EAAE;SACN;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI;;IAGnC,MAAM,GAAA;AACJ,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAS;QAEvC,QACE,CAAA,CAAC,GAAG,EAAA,EAAA,GAAA,EAAA,0CAAA,EACF,KAAK,EAAE;AACL,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,CAAC,SAAS,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI;AAC7B,gBAAA,CAAC,SAAS,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG;AAC1B,aAAA,EACD,IAAI,EAAC,MAAM,EAAA,EAEX,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACJ;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-heading/af-heading.css?tag=af-heading&encapsulation=shadow","src/components/af-heading/af-heading.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.heading {\n margin: 0;\n padding: 0;\n font-family: var(--typography-headingfont, 'NeuSans', Arial, sans-serif);\n font-weight: var(--font-weight-regular, 400);\n /* Inherit color from theme context via CSS custom property */\n color: var(--af-typography-heading-primary, var(--colour-brand-inkwell, #14343b));\n letter-spacing: var(--letter-spacing-heading, -0.02em);\n}\n\n/* Alignment - inherits from --af-text-align if set, otherwise uses explicit align prop */\n.align-inherit {\n text-align: var(--af-text-align, left);\n}\n\n.align-left {\n text-align: left;\n}\n\n.align-center {\n text-align: center;\n}\n\n.align-right {\n text-align: right;\n}\n\n/*\n * Fluid typography: font-size scales continuously with viewport width between\n * the mobile size (anchored at 375px viewport) and the desktop size\n * (anchored at 1280px viewport) using clamp().\n *\n * Formula: clamp(mobilePx, Avw + Bpx, desktopPx)\n * A = (desktop - mobile) / (1280 - 375) * 100 (vw slope)\n * B = mobile - A/100 * 375 (px intercept)\n *\n * Each level exposes a --font-size-heading-{level}-fluid custom property so\n * consumers can still override the resulting size without defeating clamp().\n */\n\n/* Heading XL */\n.level-xl {\n font-size: var(--font-size-heading-xl-fluid, clamp(50px, 3.31vw + 37.57px, 80px));\n line-height: var(--line-height-heading-tight, 1);\n}\n\n/* Heading 1 */\n.level-1 {\n font-size: var(--font-size-heading-1-fluid, clamp(38px, 1.99vw + 30.54px, 56px));\n line-height: var(--line-height-heading-tight, 1);\n}\n\n/* Heading 2 */\n.level-2 {\n font-size: var(--font-size-heading-2-fluid, clamp(32px, 1.33vw + 27.03px, 44px));\n line-height: var(--line-height-heading-tight, 1);\n}\n\n/* Heading 3 */\n.level-3 {\n font-size: var(--font-size-heading-3-fluid, clamp(25px, 0.99vw + 21.27px, 34px));\n line-height: var(--line-height-heading-tight, 1);\n}\n\n/* Heading 4 */\n.level-4 {\n font-size: var(--font-size-heading-4-fluid, clamp(20px, 0.44vw + 18.34px, 24px));\n line-height: var(--line-height-heading-normal, 1.1);\n}\n\n@media (min-width: 768px) {\n .level-4 {\n line-height: var(--line-height-heading-relaxed, 1.2);\n }\n}\n\n/* Heading 5 */\n.level-5 {\n font-size: var(--font-size-heading-5-fluid, clamp(18px, 0.22vw + 17.17px, 20px));\n line-height: var(--line-height-heading-normal, 1.1);\n}\n\n@media (min-width: 768px) {\n .level-5 {\n line-height: var(--line-height-heading-relaxed, 1.2);\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * Heading component that inherits color from theme context.\n * Color is determined by the parent theme (af-section, af-card, etc.)\n * via CSS custom properties.\n */\n@Component({\n tag: 'af-heading',\n styleUrl: 'af-heading.css',\n shadow: true\n})\nexport class AfHeading {\n /** Heading level */\n @Prop() level: 'xl' | '1' | '2' | '3' | '4' | '5' = '1';\n\n /** Visual alignment. Defaults to 'inherit' which reads from parent context (e.g. AfTypographyLockup) */\n @Prop() align: 'inherit' | 'left' | 'center' | 'right' = 'inherit';\n\n private getHeadingTag() {\n // Map display levels to semantic HTML tags\n const tagMap: Record<string, string> = {\n 'xl': 'h1',\n '1': 'h1',\n '2': 'h2',\n '3': 'h3',\n '4': 'h4',\n '5': 'h5'\n };\n return tagMap[this.level] || 'h1';\n }\n\n render() {\n const Tag = this.getHeadingTag() as any;\n\n return (\n <Tag\n class={{\n 'heading': true,\n [`level-${this.level}`]: true,\n [`align-${this.align}`]: true\n }}\n part=\"base\"\n >\n <slot />\n </Tag>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h } from './p-CqQyDZ-4.js';
1
+ import { p as proxyCustomElement, H, h } from './p-DOgb6SUj.js';
2
2
 
3
3
  const afContainerCss = ":host{display:block;width:100%}.container{width:100%;margin-left:auto;margin-right:auto;box-sizing:border-box;padding-left:20px;padding-right:20px}@media (min-width: 768px){.container{padding-left:32px;padding-right:32px}.max-width-medium{max-width:768px}}@media (min-width: 1024px){.container{padding-left:64px;padding-right:64px}.max-width-large{max-width:1024px}.max-width-medium{max-width:768px}}@media (min-width: 1440px){.container{padding-left:80px;padding-right:80px}.max-width-xlarge{max-width:1440px}.max-width-large{max-width:1024px}.max-width-medium{max-width:768px}}.max-width-fluid{max-width:none}";
4
4
 
@@ -40,6 +40,6 @@ function defineCustomElement() {
40
40
  }
41
41
 
42
42
  export { AfContainer as A, defineCustomElement as d };
43
- //# sourceMappingURL=p-CAUqW6Mp.js.map
43
+ //# sourceMappingURL=p-CYKk6Qhi.js.map
44
44
 
45
- //# sourceMappingURL=p-CAUqW6Mp.js.map
45
+ //# sourceMappingURL=p-CYKk6Qhi.js.map
@@ -1 +1 @@
1
- {"file":"p-CAUqW6Mp.js","mappings":";;AAAA,MAAM,cAAc,GAAG,qmBAAqmB;;MCW/mB,WAAW,iBAAAA,kBAAA,CAAA,MAAA,WAAA,SAAAC,CAAA,CAAA;AALxB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAME;;;;;;AAMG;AACK,QAAA,IAAQ,CAAA,QAAA,GAA4C,QAAQ;AASrE;IAPC,MAAM,GAAA;AACJ,QAAA,QACE,4DAAK,KAAK,EAAE,uBAAuB,IAAI,CAAC,QAAQ,CAAA,CAAE,EAAA,EAChD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-container/af-container.css?tag=af-container&encapsulation=shadow","src/components/af-container/af-container.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.container {\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n box-sizing: border-box;\n\n /* Mobile first: base padding (applies below 768px) */\n padding-left: 20px;\n padding-right: 20px;\n}\n\n/* ≥ mobile */\n/* Medium breakpoint (768px) */\n@media (min-width: 768px) {\n .container {\n padding-left: 32px;\n padding-right: 32px;\n }\n\n .max-width-medium {\n max-width: 768px;\n }\n}\n\n/* ≥ tablet */\n/* Large breakpoint (1024px) */\n@media (min-width: 1024px) {\n .container {\n padding-left: 64px;\n padding-right: 64px;\n }\n\n .max-width-large {\n max-width: 1024px;\n }\n\n .max-width-medium {\n max-width: 768px;\n }\n}\n\n/* ≥ desktop-wide */\n/* XLarge breakpoint (1440px) */\n@media (min-width: 1440px) {\n .container {\n padding-left: 80px;\n padding-right: 80px;\n }\n\n .max-width-xlarge {\n max-width: 1440px;\n }\n\n .max-width-large {\n max-width: 1024px;\n }\n\n .max-width-medium {\n max-width: 768px;\n }\n}\n\n/* Fluid has no max-width */\n.max-width-fluid {\n max-width: none;\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * A responsive container component that provides consistent margins and max-width\n * constraints based on the Affinda grid system.\n */\n@Component({\n tag: 'af-container',\n styleUrl: 'af-container.css',\n shadow: true\n})\nexport class AfContainer {\n /**\n * Maximum width constraint for the container\n * - 'xlarge': 1440px container (default)\n * - 'large': 1024px container\n * - 'medium': 768px container\n * - 'fluid': No max-width constraint, full width with margins\n */\n @Prop() maxWidth: 'xlarge' | 'large' | 'medium' | 'fluid' = 'xlarge';\n\n render() {\n return (\n <div class={`container max-width-${this.maxWidth}`}>\n <slot></slot>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-CYKk6Qhi.js","mappings":";;AAAA,MAAM,cAAc,GAAG,qmBAAqmB;;MCW/mB,WAAW,iBAAAA,kBAAA,CAAA,MAAA,WAAA,SAAAC,CAAA,CAAA;AALxB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAME;;;;;;AAMG;AACK,QAAA,IAAQ,CAAA,QAAA,GAA4C,QAAQ;AASrE;IAPC,MAAM,GAAA;AACJ,QAAA,QACE,4DAAK,KAAK,EAAE,uBAAuB,IAAI,CAAC,QAAQ,CAAA,CAAE,EAAA,EAChD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-container/af-container.css?tag=af-container&encapsulation=shadow","src/components/af-container/af-container.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.container {\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n box-sizing: border-box;\n\n /* Mobile first: base padding (applies below 768px) */\n padding-left: 20px;\n padding-right: 20px;\n}\n\n/* ≥ mobile */\n/* Medium breakpoint (768px) */\n@media (min-width: 768px) {\n .container {\n padding-left: 32px;\n padding-right: 32px;\n }\n\n .max-width-medium {\n max-width: 768px;\n }\n}\n\n/* ≥ tablet */\n/* Large breakpoint (1024px) */\n@media (min-width: 1024px) {\n .container {\n padding-left: 64px;\n padding-right: 64px;\n }\n\n .max-width-large {\n max-width: 1024px;\n }\n\n .max-width-medium {\n max-width: 768px;\n }\n}\n\n/* ≥ desktop-wide */\n/* XLarge breakpoint (1440px) */\n@media (min-width: 1440px) {\n .container {\n padding-left: 80px;\n padding-right: 80px;\n }\n\n .max-width-xlarge {\n max-width: 1440px;\n }\n\n .max-width-large {\n max-width: 1024px;\n }\n\n .max-width-medium {\n max-width: 768px;\n }\n}\n\n/* Fluid has no max-width */\n.max-width-fluid {\n max-width: none;\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * A responsive container component that provides consistent margins and max-width\n * constraints based on the Affinda grid system.\n */\n@Component({\n tag: 'af-container',\n styleUrl: 'af-container.css',\n shadow: true\n})\nexport class AfContainer {\n /**\n * Maximum width constraint for the container\n * - 'xlarge': 1440px container (default)\n * - 'large': 1024px container\n * - 'medium': 768px container\n * - 'fluid': No max-width constraint, full width with margins\n */\n @Prop() maxWidth: 'xlarge' | 'large' | 'medium' | 'fluid' = 'xlarge';\n\n render() {\n return (\n <div class={`container max-width-${this.maxWidth}`}>\n <slot></slot>\n </div>\n );\n }\n}\n"],"version":3}
@@ -1,6 +1,6 @@
1
- import { p as proxyCustomElement, H, h, c as Host } from './p-CqQyDZ-4.js';
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-DOgb6SUj.js';
2
2
 
3
- const afTypographyLockupCss = ":host{display:block}.lockup{display:flex;flex-direction:column}.breakpoint-desktop.heading-1.lockup{gap:var(--space-6, 24px)}.breakpoint-mobile.heading-1.lockup{gap:var(--space-5, 20px)}.breakpoint-desktop.heading-2.lockup,.breakpoint-desktop.heading-3.lockup{gap:var(--space-4, 16px)}.breakpoint-mobile.heading-2.lockup{gap:var(--space-4, 16px)}.breakpoint-mobile.heading-3.lockup,.breakpoint-desktop.heading-4.lockup,.breakpoint-desktop.heading-5.lockup{gap:var(--space-3, 12px)}.breakpoint-mobile.heading-4.lockup,.breakpoint-mobile.heading-5.lockup{gap:var(--space-2, 8px)}.text-left{align-items:flex-start}.text-center{align-items:center}.text-right{align-items:flex-end}.text-justify{align-items:stretch}.align-left{text-align:left;--af-text-align:left}.align-center{text-align:center;--af-text-align:center}.align-right{text-align:right;--af-text-align:right}.align-justify{text-align:justify;--af-text-align:justify}.copy{display:flex;flex-direction:column;width:100%;max-width:840px}.breakpoint-desktop.heading-1 .copy{gap:var(--space-6, 24px)}.breakpoint-mobile.heading-1 .copy{gap:var(--space-5, 20px)}.breakpoint-desktop.heading-2 .copy,.breakpoint-desktop.heading-3 .copy{gap:var(--space-4, 16px)}.breakpoint-mobile.heading-2 .copy{gap:var(--space-4, 16px)}.breakpoint-mobile.heading-3 .copy,.breakpoint-desktop.heading-4 .copy,.breakpoint-desktop.heading-5 .copy{gap:var(--space-3, 12px)}.breakpoint-mobile.heading-4 .copy,.breakpoint-mobile.heading-5 .copy{gap:var(--space-2, 8px)}.heading{display:flex;flex-direction:column;font-family:var(--typography-headingfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-regular, 400);color:var(--af-typography-heading-primary, var(--colour-typography-heading-primary, #14343B));line-height:var(--line-height-heading-tight, 1);letter-spacing:var(--letter-spacing-heading, -0.02em);white-space:normal}.breakpoint-desktop.heading-1 .heading{font-size:var(--font-size-heading-1-desktop, 56px)}.breakpoint-desktop.heading-2 .heading{font-size:var(--font-size-heading-2-desktop, 44px)}.breakpoint-desktop.heading-3 .heading{font-size:var(--font-size-heading-3-desktop, 34px)}.breakpoint-desktop.heading-4 .heading{font-size:var(--font-size-heading-4-desktop, 24px);line-height:var(--line-height-heading-relaxed, 1.2)}.breakpoint-desktop.heading-5 .heading{font-size:var(--font-size-heading-5-desktop, 20px);line-height:var(--line-height-heading-relaxed, 1.2)}.breakpoint-mobile.heading-1 .heading{font-size:var(--font-size-heading-1-mobile, 38px)}.breakpoint-mobile.heading-2 .heading{font-size:var(--font-size-heading-2-mobile, 32px)}.breakpoint-mobile.heading-3 .heading{font-size:var(--font-size-heading-3-mobile, 25px)}.breakpoint-mobile.heading-4 .heading{font-size:var(--font-size-heading-4-mobile, 20px);line-height:var(--line-height-heading-normal, 1.1)}.breakpoint-mobile.heading-5 .heading{font-size:var(--font-size-heading-5-mobile, 18px);line-height:var(--line-height-heading-normal, 1.1)}.description{font-family:var(--typography-bodyfont, 'NeuSans', sans-serif);font-size:var(--font-size-body-large, 18px);font-weight:var(--font-weight-regular, 400);line-height:var(--line-height-body-large, 26px);color:var(--af-typography-body-default, var(--colour-typography-body-default, #2B484F));white-space:normal}.heading.heading-color-primary{color:var(--af-typography-heading-primary, var(--colour-typography-heading-primary, #14343B))}.heading.heading-color-secondary{color:var(--af-typography-heading-secondary, var(--colour-brand-soft-clay, #B09670))}.description.description-color-default{color:var(--af-typography-body-default, var(--colour-typography-body-default, #2B484F))}.description.description-color-secondary{color:var(--af-typography-heading-secondary, var(--colour-brand-soft-clay, #B09670))}.breakpoint-mobile.heading-3 .description,.breakpoint-desktop.heading-4 .description,.breakpoint-mobile.heading-4 .description,.breakpoint-desktop.heading-5 .description,.breakpoint-mobile.heading-5 .description{font-size:var(--font-size-body-medium, 16px);line-height:var(--line-height-body-medium, 24px)}.description:empty{display:none}.buttons{display:flex;flex-direction:row;gap:var(--space-3, 12px)}.buttons:empty{display:none}.layout-horizontal .buttons{align-items:center}.text-left.layout-horizontal{flex-direction:row;align-items:center;gap:var(--space-4, 16px)}.text-left.layout-horizontal .copy{flex:1 0 0;max-width:950px}.text-left.layout-horizontal.heading-3 .copy,.text-left.layout-horizontal.heading-4 .copy{max-width:840px}.text-left.layout-horizontal .buttons{flex-shrink:0}.layout-vertical .buttons{align-items:flex-start}.buttons.align-left{justify-content:flex-start}.buttons.align-center{justify-content:center}.buttons.align-right{justify-content:flex-end}.buttons.align-justify{justify-content:space-between}.breakpoint-mobile .buttons{flex-direction:column;align-items:stretch}.breakpoint-mobile .buttons.align-center{align-items:center}.breakpoint-mobile .buttons.align-right{align-items:flex-end}.breakpoint-mobile .buttons.align-left{align-items:flex-start}.text-center .copy{max-width:840px}::slotted(*){margin:0}";
3
+ const afTypographyLockupCss = ":host{display:block}.lockup{display:flex;flex-direction:column}.breakpoint-desktop.heading-1.lockup{gap:var(--space-6, 24px)}.breakpoint-mobile.heading-1.lockup{gap:var(--space-5, 20px)}.breakpoint-desktop.heading-2.lockup,.breakpoint-desktop.heading-3.lockup{gap:var(--space-4, 16px)}.breakpoint-mobile.heading-2.lockup{gap:var(--space-4, 16px)}.breakpoint-mobile.heading-3.lockup,.breakpoint-desktop.heading-4.lockup,.breakpoint-desktop.heading-5.lockup,.breakpoint-desktop.heading-card.lockup{gap:var(--space-3, 12px)}.breakpoint-mobile.heading-4.lockup,.breakpoint-mobile.heading-5.lockup,.breakpoint-mobile.heading-card.lockup{gap:var(--space-2, 8px)}.text-left{align-items:flex-start}.text-center{align-items:center}.text-right{align-items:flex-end}.text-justify{align-items:stretch}.align-left{text-align:left;--af-text-align:left}.align-center{text-align:center;--af-text-align:center}.align-right{text-align:right;--af-text-align:right}.align-justify{text-align:justify;--af-text-align:justify}.copy{display:flex;flex-direction:column;width:100%;max-width:840px}.breakpoint-desktop.heading-1 .copy{gap:var(--space-6, 24px)}.breakpoint-mobile.heading-1 .copy{gap:var(--space-5, 20px)}.breakpoint-desktop.heading-2 .copy,.breakpoint-desktop.heading-3 .copy{gap:var(--space-4, 16px)}.breakpoint-mobile.heading-2 .copy{gap:var(--space-4, 16px)}.breakpoint-mobile.heading-3 .copy,.breakpoint-desktop.heading-4 .copy,.breakpoint-desktop.heading-5 .copy,.breakpoint-desktop.heading-card .copy{gap:var(--space-3, 12px)}.breakpoint-mobile.heading-4 .copy,.breakpoint-mobile.heading-5 .copy,.breakpoint-mobile.heading-card .copy{gap:var(--space-2, 8px)}.heading{display:flex;flex-direction:column;font-family:var(--typography-headingfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-regular, 400);color:var(--af-typography-heading-primary, var(--colour-typography-heading-primary, #14343B));line-height:var(--line-height-heading-tight, 1);letter-spacing:var(--letter-spacing-heading, -0.02em);white-space:normal}.breakpoint-desktop.heading-1 .heading{font-size:var(--font-size-heading-1-desktop, 56px)}.breakpoint-desktop.heading-2 .heading{font-size:var(--font-size-heading-2-desktop, 44px)}.breakpoint-desktop.heading-3 .heading{font-size:var(--font-size-heading-3-desktop, 34px);line-height:var(--line-height-heading-3, 38px)}.breakpoint-desktop.heading-4 .heading{font-size:var(--font-size-heading-4-desktop, 24px);line-height:var(--line-height-heading-4, 30px)}.breakpoint-desktop.heading-5 .heading{font-size:var(--font-size-heading-5-desktop, 20px);line-height:var(--line-height-heading-5, 24px)}.breakpoint-desktop.heading-card .heading{font-size:var(--font-size-heading-card-desktop, 22px);line-height:var(--line-height-heading-card, 28px)}.breakpoint-mobile.heading-1 .heading{font-size:var(--font-size-heading-1-mobile, 38px)}.breakpoint-mobile.heading-2 .heading{font-size:var(--font-size-heading-2-mobile, 32px)}.breakpoint-mobile.heading-3 .heading{font-size:var(--font-size-heading-3-mobile, 25px)}.breakpoint-mobile.heading-4 .heading{font-size:var(--font-size-heading-4-mobile, 20px);line-height:var(--line-height-heading-normal, 1.1)}.breakpoint-mobile.heading-5 .heading{font-size:var(--font-size-heading-5-mobile, 18px);line-height:var(--line-height-heading-normal, 1.1)}.breakpoint-mobile.heading-card .heading{font-size:var(--font-size-heading-card-mobile, 20px);line-height:var(--line-height-heading-card, 28px)}.description{font-family:var(--typography-bodyfont, 'NeuSans', sans-serif);font-size:var(--font-size-body-large, 18px);font-weight:var(--font-weight-regular, 400);line-height:var(--line-height-body-large, 26px);color:var(--af-typography-body-default, var(--colour-typography-body-default, #2B484F));white-space:normal}.heading.heading-color-primary{color:var(--af-typography-heading-primary, var(--colour-typography-heading-primary, #14343B))}.heading.heading-color-secondary{color:var(--af-typography-heading-secondary, var(--colour-brand-soft-clay, #B09670))}.description.description-color-default{color:var(--af-typography-body-default, var(--colour-typography-body-default, #2B484F))}.description.description-color-secondary{color:var(--af-typography-heading-secondary, var(--colour-brand-soft-clay, #B09670))}.breakpoint-mobile.heading-3 .description,.breakpoint-desktop.heading-4 .description,.breakpoint-mobile.heading-4 .description,.breakpoint-desktop.heading-5 .description,.breakpoint-mobile.heading-5 .description,.breakpoint-desktop.heading-card .description,.breakpoint-mobile.heading-card .description{font-size:var(--font-size-body-medium, 16px);line-height:var(--line-height-body-medium, 24px)}.description:empty{display:none}.buttons{display:flex;flex-direction:row;gap:var(--space-3, 12px)}.buttons:empty{display:none}.layout-horizontal .buttons{align-items:center}.text-left.layout-horizontal{flex-direction:row;align-items:center;gap:var(--space-4, 16px)}.text-left.layout-horizontal .copy{flex:1 0 0;max-width:950px}.text-left.layout-horizontal.heading-3 .copy,.text-left.layout-horizontal.heading-4 .copy{max-width:840px}.text-left.layout-horizontal .buttons{flex-shrink:0}.layout-vertical .buttons{align-items:flex-start}.buttons.align-left{justify-content:flex-start}.buttons.align-center{justify-content:center}.buttons.align-right{justify-content:flex-end}.buttons.align-justify{justify-content:space-between}.breakpoint-mobile .buttons{flex-direction:column;align-items:stretch}.breakpoint-mobile .buttons.align-center{align-items:center}.breakpoint-mobile .buttons.align-right{align-items:flex-end}.breakpoint-mobile .buttons.align-left{align-items:flex-start}.text-center .copy{max-width:840px}::slotted(*){margin:0}";
4
4
 
5
5
  const AfTypographyLockup = /*@__PURE__*/ proxyCustomElement(class AfTypographyLockup extends H {
6
6
  constructor(registerHost) {
@@ -10,9 +10,10 @@ const AfTypographyLockup = /*@__PURE__*/ proxyCustomElement(class AfTypographyLo
10
10
  }
11
11
  this.__attachShadow();
12
12
  /**
13
- * The heading size (1-5, where 1 is largest). Controls visual scale
13
+ * The heading size (1-5, or "card"; 1 is largest). Controls visual scale
14
14
  * only — pair with a matching <h1>-<h5> slotted element for correct
15
- * document outline (see component docblock).
15
+ * document outline (see component docblock). The `card` variant sits
16
+ * between 4 and 5 at 22/20px and is meant for card titles.
16
17
  */
17
18
  this.headingSize = 2;
18
19
  /**
@@ -77,6 +78,11 @@ const AfTypographyLockup = /*@__PURE__*/ proxyCustomElement(class AfTypographyLo
77
78
  return;
78
79
  const slottedLevel = Number(heading.tagName.slice(1));
79
80
  const expected = this.headingSize;
81
+ // The `card` variant is a named scale (card-title), not a semantic level.
82
+ // Skip the numeric-proximity check entirely — convention is <h3>, but
83
+ // consumers may legitimately pair it with <h2>-<h4> depending on context.
84
+ if (expected === 'card')
85
+ return;
80
86
  if (Math.abs(slottedLevel - expected) > 1) {
81
87
  // eslint-disable-next-line no-console
82
88
  console.warn(`[af-typography-lockup] heading-size=${expected} paired with <${heading.tagName.toLowerCase()}>; ` +
@@ -113,12 +119,12 @@ const AfTypographyLockup = /*@__PURE__*/ proxyCustomElement(class AfTypographyLo
113
119
  [`align-${effectiveButtonsAlignment}`]: true
114
120
  };
115
121
  const copyStyle = this.maxWidth ? { maxWidth: `${this.maxWidth}px` } : {};
116
- return (h(Host, { key: '9b31ef730abc5e33919d32480e260937ae450529' }, h("div", { key: '95d33308deeb9c5488a89ef7161322a25b2e348f', class: containerClasses }, h("div", { key: '78cff6a371d382a9ff69d06d25180efd667958ab', class: "copy", style: copyStyle }, h("div", { key: '963e6233660bbe45084f42a70e0a1d54236c514e', class: headingClasses, part: "heading" }, h("slot", { key: 'b0b90701b673581cc08be3f79dea8068a85050ab' })), h("div", { key: 'db4b15e80e9bbe683b425e3cc8e92a2fa00774e1', class: descriptionClasses, part: "body", hidden: !this.hasDescription }, h("slot", { key: 'd581dab0571d6e400be15fa6a285d0774f5dc978', name: "description", ref: (el) => (this.descriptionSlot = el) }))), h("div", { key: 'fb160cbfc354f41eefe600f295c3d86146eb6065', class: buttonsClasses, part: "buttons", hidden: !this.hasButtons }, h("slot", { key: 'a801bbb9ac25136b0073f68ab05ae7738d6079e5', 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) })))));
117
123
  }
118
124
  get el() { return this; }
119
125
  static get style() { return afTypographyLockupCss; }
120
126
  }, [257, "af-typography-lockup", {
121
- "headingSize": [2, "heading-size"],
127
+ "headingSize": [8, "heading-size"],
122
128
  "breakpoint": [1],
123
129
  "textAlignment": [1, "text-alignment"],
124
130
  "headingAlignment": [1, "heading-alignment"],
@@ -146,6 +152,6 @@ function defineCustomElement() {
146
152
  }
147
153
 
148
154
  export { AfTypographyLockup as A, defineCustomElement as d };
149
- //# sourceMappingURL=p-N0xV1Erp.js.map
155
+ //# sourceMappingURL=p-ClZAZSzR.js.map
150
156
 
151
- //# sourceMappingURL=p-N0xV1Erp.js.map
157
+ //# sourceMappingURL=p-ClZAZSzR.js.map