@affinda/wc 0.6.2 → 0.7.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 (1171) hide show
  1. package/dist/affinda/affinda.css +1 -1
  2. package/dist/affinda/affinda.esm.js +1 -2
  3. package/dist/affinda/index.esm.js +1 -2
  4. package/dist/affinda/p-05d875bb.entry.js +1 -0
  5. package/dist/affinda/p-081cd3df.entry.js +1 -0
  6. package/dist/affinda/p-0d3d06b6.entry.js +1 -0
  7. package/dist/affinda/p-10b6c551.entry.js +1 -0
  8. package/dist/affinda/p-1564dfd4.entry.js +1 -0
  9. package/dist/affinda/p-18084b61.entry.js +1 -0
  10. package/dist/affinda/p-1d58ae25.entry.js +1 -0
  11. package/dist/affinda/p-2638bf29.entry.js +1 -0
  12. package/dist/affinda/p-28974116.entry.js +1 -0
  13. package/dist/affinda/p-2c901a65.entry.js +1 -0
  14. package/dist/affinda/p-2c9d323d.entry.js +1 -0
  15. package/dist/affinda/p-2ce3bf6f.entry.js +1 -0
  16. package/dist/affinda/p-30a0eab7.entry.js +1 -0
  17. package/dist/affinda/p-320ddbd6.entry.js +1 -0
  18. package/dist/affinda/p-328fdb1f.entry.js +1 -0
  19. package/dist/affinda/p-36998ce7.entry.js +1 -0
  20. package/dist/affinda/p-38824135.entry.js +1 -0
  21. package/dist/affinda/p-3d866c04.entry.js +1 -0
  22. package/dist/affinda/p-3e66cf51.entry.js +1 -0
  23. package/dist/affinda/p-40f2eeab.entry.js +1 -0
  24. package/dist/affinda/p-454b9537.entry.js +1 -0
  25. package/dist/affinda/p-46134d54.entry.js +1 -0
  26. package/dist/affinda/p-489a913a.entry.js +1 -0
  27. package/dist/affinda/p-49c814e6.entry.js +1 -0
  28. package/dist/affinda/p-4a71b0ba.entry.js +1 -0
  29. package/dist/affinda/p-4fa3183a.entry.js +1 -0
  30. package/dist/affinda/p-500e9086.entry.js +1 -0
  31. package/dist/affinda/p-51287827.entry.js +1 -0
  32. package/dist/affinda/p-54a3213d.entry.js +1 -0
  33. package/dist/affinda/p-64177b96.entry.js +1 -0
  34. package/dist/affinda/p-6507e36d.entry.js +1 -0
  35. package/dist/affinda/p-663c91e9.entry.js +1 -0
  36. package/dist/affinda/p-75797b4b.entry.js +1 -0
  37. package/dist/affinda/p-75fe2855.entry.js +1 -0
  38. package/dist/affinda/p-7a4f3f0a.entry.js +1 -0
  39. package/dist/affinda/p-7cd9fb74.entry.js +1 -0
  40. package/dist/affinda/p-85610cb5.entry.js +1 -0
  41. package/dist/affinda/p-8695a652.entry.js +1 -0
  42. package/dist/affinda/{p-47d2f72b.entry.js → p-8a3e9703.entry.js} +1 -2
  43. package/dist/affinda/p-91aafa8f.entry.js +1 -0
  44. package/dist/affinda/p-93605689.entry.js +1 -0
  45. package/dist/affinda/p-98c29d8a.entry.js +1 -0
  46. package/dist/affinda/p-9a7d92d1.entry.js +1 -0
  47. package/dist/affinda/p-9c70fd89.entry.js +1 -0
  48. package/dist/affinda/p-9daf664e.entry.js +1 -0
  49. package/dist/affinda/p-9eb99154.entry.js +1 -0
  50. package/dist/affinda/p-9f09f792.entry.js +1 -0
  51. package/dist/affinda/p-BSPfXvdg.js +1 -0
  52. package/dist/affinda/p-BjfY9fsk.js +2 -0
  53. package/dist/affinda/p-DEGKc9o3.js +1 -0
  54. package/dist/affinda/p-a0db87cb.entry.js +1 -0
  55. package/dist/affinda/p-a0f2cc59.entry.js +1 -0
  56. package/dist/affinda/p-a45d3a9e.entry.js +1 -0
  57. package/dist/affinda/p-a695894c.entry.js +1 -0
  58. package/dist/affinda/p-a82cfef6.entry.js +1 -0
  59. package/dist/affinda/p-a8e0bcfc.entry.js +1 -0
  60. package/dist/affinda/p-ac5fa6a0.entry.js +1 -0
  61. package/dist/affinda/p-ae0e7349.entry.js +1 -0
  62. package/dist/affinda/p-b0256538.entry.js +1 -0
  63. package/dist/affinda/p-b04be1ae.entry.js +1 -0
  64. package/dist/affinda/p-b225d686.entry.js +1 -0
  65. package/dist/affinda/p-b7047436.entry.js +1 -0
  66. package/dist/affinda/p-b82d958e.entry.js +1 -0
  67. package/dist/affinda/p-bb16eb85.entry.js +1 -0
  68. package/dist/affinda/p-c434500a.entry.js +1 -0
  69. package/dist/affinda/p-c511caae.entry.js +1 -0
  70. package/dist/affinda/p-cce0d195.entry.js +1 -0
  71. package/dist/affinda/p-cd28e405.entry.js +1 -0
  72. package/dist/affinda/p-cd592f7e.entry.js +1 -0
  73. package/dist/affinda/p-d5dc7de2.entry.js +1 -0
  74. package/dist/affinda/p-d5e5280c.entry.js +1 -0
  75. package/dist/affinda/p-db7b9094.entry.js +1 -0
  76. package/dist/affinda/p-dce64220.entry.js +1 -0
  77. package/dist/affinda/p-dd1e0ab5.entry.js +1 -0
  78. package/dist/affinda/p-de523c4d.entry.js +1 -0
  79. package/dist/affinda/p-def60ae7.entry.js +1 -0
  80. package/dist/affinda/p-e053f2ca.entry.js +1 -0
  81. package/dist/affinda/p-e2f7c1bf.entry.js +1 -0
  82. package/dist/affinda/p-e30ecdb4.entry.js +1 -0
  83. package/dist/affinda/p-e3e6fb93.entry.js +1 -0
  84. package/dist/affinda/p-e6688b1d.entry.js +1 -0
  85. package/dist/affinda/p-e7d68b1c.entry.js +1 -0
  86. package/dist/affinda/p-e897361e.entry.js +1 -0
  87. package/dist/affinda/p-ef57e1a7.entry.js +1 -0
  88. package/dist/affinda/p-f6ebe718.entry.js +1 -0
  89. package/dist/affinda/p-f7120b2b.entry.js +1 -0
  90. package/dist/affinda/{p-bc59dc0e.entry.js → p-f8ccfbf2.entry.js} +1 -2
  91. package/dist/affinda/p-fae810e5.entry.js +1 -0
  92. package/dist/affinda/p-fce3ed61.entry.js +1 -0
  93. package/dist/affinda/p-feb5ff84.entry.js +1 -0
  94. package/dist/cjs/a11y-D7P8rpD_.js +359 -0
  95. package/dist/cjs/af-accordion-item.cjs.entry.js +6 -5
  96. package/dist/cjs/af-accordion.cjs.entry.js +6 -5
  97. package/dist/cjs/af-action-item.cjs.entry.js +54 -0
  98. package/dist/cjs/af-action-list.cjs.entry.js +37 -0
  99. package/dist/cjs/af-area-chart.cjs.entry.js +272 -0
  100. package/dist/cjs/af-aspect-ratio.cjs.entry.js +3 -4
  101. package/dist/cjs/af-bar-chart.cjs.entry.js +345 -0
  102. package/dist/cjs/af-button-group.cjs.entry.js +3 -4
  103. package/dist/cjs/af-button.cjs.entry.js +5 -5
  104. package/dist/cjs/af-callout.cjs.entry.js +66 -0
  105. package/dist/cjs/af-card.cjs.entry.js +4 -5
  106. package/dist/cjs/af-center.cjs.entry.js +4 -5
  107. package/dist/cjs/af-chart-legend.cjs.entry.js +123 -0
  108. package/dist/cjs/af-chart-section.cjs.entry.js +33 -0
  109. package/dist/cjs/af-chart-tooltip.cjs.entry.js +81 -0
  110. package/dist/cjs/af-checkbox.cjs.entry.js +3 -4
  111. package/dist/cjs/af-client-carousel.cjs.entry.js +46 -11
  112. package/dist/cjs/af-color-swatch.cjs.entry.js +3 -4
  113. package/dist/cjs/af-contact-item.cjs.entry.js +4 -5
  114. package/dist/cjs/af-container.cjs.entry.js +3 -4
  115. package/dist/cjs/af-divider.cjs.entry.js +4 -5
  116. package/dist/cjs/af-feature-accordion.cjs.entry.js +62 -7
  117. package/dist/cjs/af-feature-card.cjs.entry.js +3 -4
  118. package/dist/cjs/af-feature-grid.cjs.entry.js +7 -6
  119. package/dist/cjs/af-fieldset.cjs.entry.js +3 -4
  120. package/dist/cjs/af-footer-column.cjs.entry.js +4 -5
  121. package/dist/cjs/af-footer-link.cjs.entry.js +4 -5
  122. package/dist/cjs/af-footer.cjs.entry.js +4 -5
  123. package/dist/cjs/af-grid-callout.cjs.entry.js +3 -4
  124. package/dist/cjs/af-grid.cjs.entry.js +5 -6
  125. package/dist/cjs/af-heading_5.cjs.entry.js +30 -20
  126. package/dist/cjs/af-hero.cjs.entry.js +3 -4
  127. package/dist/cjs/af-icon-box.cjs.entry.js +4 -5
  128. package/dist/cjs/af-icon-button.cjs.entry.js +3 -4
  129. package/dist/cjs/af-icon-text.cjs.entry.js +4 -5
  130. package/dist/cjs/af-icon.cjs.entry.js +3 -4
  131. package/dist/cjs/af-illustrated-card.cjs.entry.js +4 -5
  132. package/dist/cjs/af-image.cjs.entry.js +30 -12
  133. package/dist/cjs/af-in-page-banner.cjs.entry.js +4 -5
  134. package/dist/cjs/af-inline.cjs.entry.js +4 -5
  135. package/dist/cjs/af-input.cjs.entry.js +3 -4
  136. package/dist/cjs/af-line-chart.cjs.entry.js +257 -0
  137. package/dist/cjs/af-logo-mark.cjs.entry.js +27 -0
  138. package/dist/cjs/af-logo-well.cjs.entry.js +4 -5
  139. package/dist/cjs/af-nav-accordion-item.cjs.entry.js +8 -7
  140. package/dist/cjs/af-nav-accordion.cjs.entry.js +4 -5
  141. package/dist/cjs/af-nav-card.cjs.entry.js +3 -4
  142. package/dist/cjs/af-nav-menu-nest.cjs.entry.js +5 -6
  143. package/dist/cjs/af-nav-menu.cjs.entry.js +4 -5
  144. package/dist/cjs/af-next-step-item.cjs.entry.js +33 -0
  145. package/dist/cjs/af-next-steps.cjs.entry.js +40 -0
  146. package/dist/cjs/af-number-badge.cjs.entry.js +5 -6
  147. package/dist/cjs/af-numbered-stepper-item.cjs.entry.js +4 -5
  148. package/dist/cjs/af-numbered-stepper.cjs.entry.js +4 -5
  149. package/dist/cjs/af-paperclip-decoration.cjs.entry.js +4 -5
  150. package/dist/cjs/af-pie-chart.cjs.entry.js +153 -0
  151. package/dist/cjs/af-progress-line.cjs.entry.js +5 -6
  152. package/dist/cjs/af-proposal-footer.cjs.entry.js +36 -0
  153. package/dist/cjs/af-proposal-header.cjs.entry.js +30 -0
  154. package/dist/cjs/af-radio.cjs.entry.js +3 -4
  155. package/dist/cjs/af-section.cjs.entry.js +5 -6
  156. package/dist/cjs/af-show.cjs.entry.js +4 -5
  157. package/dist/cjs/af-social-link.cjs.entry.js +5 -6
  158. package/dist/cjs/af-spacer.cjs.entry.js +4 -5
  159. package/dist/cjs/af-split-section.cjs.entry.js +5 -6
  160. package/dist/cjs/af-stack.cjs.entry.js +4 -5
  161. package/dist/cjs/af-stat.cjs.entry.js +6 -5
  162. package/dist/cjs/af-stats-row.cjs.entry.js +4 -5
  163. package/dist/cjs/af-stepper-step.cjs.entry.js +4 -5
  164. package/dist/cjs/af-stepper.cjs.entry.js +4 -5
  165. package/dist/cjs/af-switch.cjs.entry.js +3 -4
  166. package/dist/cjs/af-tab-bar.cjs.entry.js +3 -4
  167. package/dist/cjs/af-tab.cjs.entry.js +3 -4
  168. package/dist/cjs/af-table.cjs.entry.js +159 -0
  169. package/dist/cjs/af-tag.cjs.entry.js +3 -4
  170. package/dist/cjs/af-testimonial-carousel.cjs.entry.js +75 -22
  171. package/dist/cjs/af-testimonial-stat.cjs.entry.js +9 -5
  172. package/dist/cjs/af-testimonial.cjs.entry.js +5 -6
  173. package/dist/cjs/af-text-image-nest.cjs.entry.js +4 -5
  174. package/dist/cjs/af-text-image.cjs.entry.js +3 -4
  175. package/dist/cjs/af-textarea.cjs.entry.js +3 -4
  176. package/dist/cjs/af-theme-override.cjs.entry.js +4 -5
  177. package/dist/cjs/af-timeline-item.cjs.entry.js +72 -0
  178. package/dist/cjs/af-timeline.cjs.entry.js +222 -0
  179. package/dist/cjs/af-typography-lockup.cjs.entry.js +11 -7
  180. package/dist/cjs/af-video-container.cjs.entry.js +4 -5
  181. package/dist/cjs/af-visually-hidden.cjs.entry.js +4 -5
  182. package/dist/cjs/affinda.cjs.js +3 -4
  183. package/dist/cjs/{index-BuJz1C1M.js → index-BcMwIg4j.js} +596 -378
  184. package/dist/cjs/index.cjs.js +21 -22
  185. package/dist/cjs/loader.cjs.js +2 -3
  186. package/dist/cjs/scales-DjlIMmiW.js +195 -0
  187. package/dist/collection/collection-manifest.json +21 -2
  188. package/dist/collection/components/af-accordion/af-accordion.js +0 -1
  189. package/dist/collection/components/af-accordion-item/af-accordion-item.js +0 -1
  190. package/dist/collection/components/af-action-item/af-action-item.css +186 -0
  191. package/dist/collection/components/af-action-item/af-action-item.js +183 -0
  192. package/dist/collection/components/af-action-list/af-action-list.css +100 -0
  193. package/dist/collection/components/af-action-list/af-action-list.js +97 -0
  194. package/dist/collection/components/af-area-chart/af-area-chart.css +191 -0
  195. package/dist/collection/components/af-area-chart/af-area-chart.js +631 -0
  196. package/dist/collection/components/af-aspect-ratio/af-aspect-ratio.js +0 -1
  197. package/dist/collection/components/af-bar-chart/af-bar-chart.css +245 -0
  198. package/dist/collection/components/af-bar-chart/af-bar-chart.js +664 -0
  199. package/dist/collection/components/af-button/af-button.js +2 -2
  200. package/dist/collection/components/af-button-group/af-button-group.css +23 -0
  201. package/dist/collection/components/af-button-group/af-button-group.js +0 -1
  202. package/dist/collection/components/af-callout/af-callout.css +290 -0
  203. package/dist/collection/components/af-callout/af-callout.js +188 -0
  204. package/dist/collection/components/af-card/af-card.js +3 -3
  205. package/dist/collection/components/af-center/af-center.js +1 -2
  206. package/dist/collection/components/af-chart-legend/af-chart-legend.css +132 -0
  207. package/dist/collection/components/af-chart-legend/af-chart-legend.js +332 -0
  208. package/dist/collection/components/af-chart-section/af-chart-section.css +113 -0
  209. package/dist/collection/components/af-chart-section/af-chart-section.js +150 -0
  210. package/dist/collection/components/af-chart-tooltip/af-chart-tooltip.css +155 -0
  211. package/dist/collection/components/af-chart-tooltip/af-chart-tooltip.js +286 -0
  212. package/dist/collection/components/af-checkbox/af-checkbox.js +0 -1
  213. package/dist/collection/components/af-client-carousel/af-client-carousel.css +11 -3
  214. package/dist/collection/components/af-client-carousel/af-client-carousel.js +54 -9
  215. package/dist/collection/components/af-color-swatch/af-color-swatch.js +0 -1
  216. package/dist/collection/components/af-contact-item/af-contact-item.js +1 -2
  217. package/dist/collection/components/af-container/af-container.js +0 -1
  218. package/dist/collection/components/af-divider/af-divider.js +1 -2
  219. package/dist/collection/components/af-feature-accordion/af-feature-accordion.css +125 -24
  220. package/dist/collection/components/af-feature-accordion/af-feature-accordion.js +78 -4
  221. package/dist/collection/components/af-feature-card/af-feature-card.js +2 -2
  222. package/dist/collection/components/af-feature-grid/af-feature-grid.js +1 -2
  223. package/dist/collection/components/af-fieldset/af-fieldset.js +0 -1
  224. package/dist/collection/components/af-footer/af-footer.js +1 -2
  225. package/dist/collection/components/af-footer-column/af-footer-column.js +1 -2
  226. package/dist/collection/components/af-footer-link/af-footer-link.js +1 -2
  227. package/dist/collection/components/af-grid/af-grid.js +4 -4
  228. package/dist/collection/components/af-grid-callout/af-grid-callout.js +0 -1
  229. package/dist/collection/components/af-heading/af-heading.js +0 -1
  230. package/dist/collection/components/af-hero/af-hero.js +2 -3
  231. package/dist/collection/components/af-icon/af-icon.js +4 -4
  232. package/dist/collection/components/af-icon-box/af-icon-box.js +4 -4
  233. package/dist/collection/components/af-icon-button/af-icon-button.js +0 -1
  234. package/dist/collection/components/af-icon-text/af-icon-text.js +4 -4
  235. package/dist/collection/components/af-illustrated-card/af-illustrated-card.css +1 -0
  236. package/dist/collection/components/af-illustrated-card/af-illustrated-card.js +3 -3
  237. package/dist/collection/components/af-image/af-image.css +103 -10
  238. package/dist/collection/components/af-image/af-image.js +73 -14
  239. package/dist/collection/components/af-in-page-banner/af-in-page-banner.css +10 -0
  240. package/dist/collection/components/af-in-page-banner/af-in-page-banner.js +3 -3
  241. package/dist/collection/components/af-inline/af-inline.js +3 -3
  242. package/dist/collection/components/af-input/af-input.js +0 -1
  243. package/dist/collection/components/af-line-chart/af-line-chart.css +255 -0
  244. package/dist/collection/components/af-line-chart/af-line-chart.js +618 -0
  245. package/dist/collection/components/af-logo/af-logo.js +0 -1
  246. package/dist/collection/components/af-logo-mark/af-logo-mark.css +9 -0
  247. package/dist/collection/components/af-logo-mark/af-logo-mark.js +86 -0
  248. package/dist/collection/components/af-logo-well/af-logo-well.js +1 -2
  249. package/dist/collection/components/af-nav-accordion/af-nav-accordion.js +1 -2
  250. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.css +9 -10
  251. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.js +2 -3
  252. package/dist/collection/components/af-nav-card/af-nav-card.js +0 -1
  253. package/dist/collection/components/af-nav-item/af-nav-item.css +19 -24
  254. package/dist/collection/components/af-nav-item/af-nav-item.js +0 -1
  255. package/dist/collection/components/af-nav-menu/af-nav-menu.css +7 -6
  256. package/dist/collection/components/af-nav-menu/af-nav-menu.js +1 -2
  257. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.css +1 -1
  258. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.js +3 -4
  259. package/dist/collection/components/af-navbar/af-navbar.css +47 -9
  260. package/dist/collection/components/af-navbar/af-navbar.js +21 -10
  261. package/dist/collection/components/af-next-step-item/af-next-step-item.css +137 -0
  262. package/dist/collection/components/af-next-step-item/af-next-step-item.js +122 -0
  263. package/dist/collection/components/af-next-steps/af-next-steps.css +27 -0
  264. package/dist/collection/components/af-next-steps/af-next-steps.js +89 -0
  265. package/dist/collection/components/af-number-badge/af-number-badge.js +4 -5
  266. package/dist/collection/components/af-numbered-stepper/af-numbered-stepper.js +1 -2
  267. package/dist/collection/components/af-numbered-stepper-item/af-numbered-stepper-item.css +51 -7
  268. package/dist/collection/components/af-numbered-stepper-item/af-numbered-stepper-item.js +1 -2
  269. package/dist/collection/components/af-paperclip-decoration/af-paperclip-decoration.js +1 -2
  270. package/dist/collection/components/af-pie-chart/af-pie-chart.css +234 -0
  271. package/dist/collection/components/af-pie-chart/af-pie-chart.js +385 -0
  272. package/dist/collection/components/af-progress-line/af-progress-line.js +2 -3
  273. package/dist/collection/components/af-proposal-footer/af-proposal-footer.css +27 -0
  274. package/dist/collection/components/af-proposal-footer/af-proposal-footer.js +118 -0
  275. package/dist/collection/components/af-proposal-header/af-proposal-header.css +131 -0
  276. package/dist/collection/components/af-proposal-header/af-proposal-header.js +178 -0
  277. package/dist/collection/components/af-radio/af-radio.js +0 -1
  278. package/dist/collection/components/af-section/af-section.css +57 -0
  279. package/dist/collection/components/af-section/af-section.js +6 -5
  280. package/dist/collection/components/af-show/af-show.js +1 -2
  281. package/dist/collection/components/af-social-link/af-social-link.js +2 -3
  282. package/dist/collection/components/af-spacer/af-spacer.js +1 -2
  283. package/dist/collection/components/af-split-section/af-split-section.js +8 -6
  284. package/dist/collection/components/af-stack/af-stack.js +3 -3
  285. package/dist/collection/components/af-stat/af-stat.css +5 -4
  286. package/dist/collection/components/af-stat/af-stat.js +25 -2
  287. package/dist/collection/components/af-stats-row/af-stats-row.css +8 -22
  288. package/dist/collection/components/af-stats-row/af-stats-row.js +1 -2
  289. package/dist/collection/components/af-stepper/af-stepper.js +1 -2
  290. package/dist/collection/components/af-stepper-step/af-stepper-step.js +1 -2
  291. package/dist/collection/components/af-switch/af-switch.js +0 -1
  292. package/dist/collection/components/af-tab/af-tab.js +1 -2
  293. package/dist/collection/components/af-tab-bar/af-tab-bar.js +2 -3
  294. package/dist/collection/components/af-table/af-table.css +295 -0
  295. package/dist/collection/components/af-table/af-table.js +295 -0
  296. package/dist/collection/components/af-tag/af-tag.js +2 -3
  297. package/dist/collection/components/af-testimonial/af-testimonial.css +82 -8
  298. package/dist/collection/components/af-testimonial/af-testimonial.js +78 -3
  299. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.css +40 -5
  300. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js +72 -19
  301. package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.css +56 -2
  302. package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js +6 -2
  303. package/dist/collection/components/af-text/af-text.js +0 -1
  304. package/dist/collection/components/af-text-image/af-text-image.js +0 -1
  305. package/dist/collection/components/af-text-image-nest/af-text-image-nest.js +1 -2
  306. package/dist/collection/components/af-textarea/af-textarea.js +0 -1
  307. package/dist/collection/components/af-theme-override/af-theme-override.js +3 -3
  308. package/dist/collection/components/af-timeline/af-timeline.css +260 -0
  309. package/dist/collection/components/af-timeline/af-timeline.js +380 -0
  310. package/dist/collection/components/af-timeline-item/af-timeline-item.css +301 -0
  311. package/dist/collection/components/af-timeline-item/af-timeline-item.js +265 -0
  312. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js +10 -5
  313. package/dist/collection/components/af-video-container/af-video-container.js +1 -2
  314. package/dist/collection/components/af-visually-hidden/af-visually-hidden.js +1 -2
  315. package/dist/collection/components.js +0 -1
  316. package/dist/collection/index.js +0 -1
  317. package/dist/collection/types.js +0 -1
  318. package/dist/collection/utils/charts/a11y.js +191 -0
  319. package/dist/collection/utils/charts/generators.js +227 -0
  320. package/dist/collection/utils/charts/index.js +10 -0
  321. package/dist/collection/utils/charts/scales.js +189 -0
  322. package/dist/collection/utils/charts/types.js +12 -0
  323. package/dist/components/af-accordion-item.js +1 -107
  324. package/dist/components/af-accordion.js +1 -128
  325. package/dist/components/af-action-item.d.ts +11 -0
  326. package/dist/components/af-action-item.js +1 -0
  327. package/dist/components/af-action-list.d.ts +11 -0
  328. package/dist/components/af-action-list.js +1 -0
  329. package/dist/components/af-area-chart.d.ts +11 -0
  330. package/dist/components/af-area-chart.js +1 -0
  331. package/dist/components/af-aspect-ratio.js +1 -9
  332. package/dist/components/af-bar-chart.d.ts +11 -0
  333. package/dist/components/af-bar-chart.js +1 -0
  334. package/dist/components/af-button-group.js +1 -9
  335. package/dist/components/af-button.js +1 -9
  336. package/dist/components/af-callout.d.ts +11 -0
  337. package/dist/components/af-callout.js +1 -0
  338. package/dist/components/af-card.js +1 -9
  339. package/dist/components/af-center.js +1 -66
  340. package/dist/components/af-chart-legend.d.ts +11 -0
  341. package/dist/components/af-chart-legend.js +1 -0
  342. package/dist/components/af-chart-section.d.ts +11 -0
  343. package/dist/components/af-chart-section.js +1 -0
  344. package/dist/components/af-chart-tooltip.d.ts +11 -0
  345. package/dist/components/af-chart-tooltip.js +1 -0
  346. package/dist/components/af-checkbox.js +1 -9
  347. package/dist/components/af-client-carousel.js +1 -96
  348. package/dist/components/af-color-swatch.js +1 -9
  349. package/dist/components/af-contact-item.js +1 -44
  350. package/dist/components/af-container.js +1 -9
  351. package/dist/components/af-divider.js +1 -66
  352. package/dist/components/af-feature-accordion.js +1 -135
  353. package/dist/components/af-feature-card.js +1 -9
  354. package/dist/components/af-feature-grid.js +1 -124
  355. package/dist/components/af-fieldset.js +1 -9
  356. package/dist/components/af-footer-column.js +1 -41
  357. package/dist/components/af-footer-link.js +1 -44
  358. package/dist/components/af-footer.js +1 -53
  359. package/dist/components/af-grid-callout.js +1 -82
  360. package/dist/components/af-grid.js +1 -71
  361. package/dist/components/af-heading.js +1 -9
  362. package/dist/components/af-hero.js +1 -9
  363. package/dist/components/af-icon-box.js +1 -9
  364. package/dist/components/af-icon-button.js +1 -9
  365. package/dist/components/af-icon-text.js +1 -78
  366. package/dist/components/af-icon.js +1 -9
  367. package/dist/components/af-illustrated-card.js +1 -9
  368. package/dist/components/af-image.js +1 -9
  369. package/dist/components/af-in-page-banner.js +1 -82
  370. package/dist/components/af-inline.js +1 -83
  371. package/dist/components/af-input.js +1 -9
  372. package/dist/components/af-line-chart.d.ts +11 -0
  373. package/dist/components/af-line-chart.js +1 -0
  374. package/dist/components/af-logo-mark.d.ts +11 -0
  375. package/dist/components/af-logo-mark.js +1 -0
  376. package/dist/components/af-logo-well.js +1 -38
  377. package/dist/components/af-logo.js +1 -9
  378. package/dist/components/af-nav-accordion-item.js +1 -133
  379. package/dist/components/af-nav-accordion.js +1 -106
  380. package/dist/components/af-nav-card.js +1 -62
  381. package/dist/components/af-nav-item.js +1 -9
  382. package/dist/components/af-nav-menu-nest.js +1 -67
  383. package/dist/components/af-nav-menu.js +1 -65
  384. package/dist/components/af-navbar.js +1 -9
  385. package/dist/components/af-next-step-item.d.ts +11 -0
  386. package/dist/components/af-next-step-item.js +1 -0
  387. package/dist/components/af-next-steps.d.ts +11 -0
  388. package/dist/components/af-next-steps.js +1 -0
  389. package/dist/components/af-number-badge.js +1 -9
  390. package/dist/components/af-numbered-stepper-item.js +1 -58
  391. package/dist/components/af-numbered-stepper.js +1 -57
  392. package/dist/components/af-paperclip-decoration.js +1 -68
  393. package/dist/components/af-pie-chart.d.ts +11 -0
  394. package/dist/components/af-pie-chart.js +1 -0
  395. package/dist/components/af-progress-line.js +1 -9
  396. package/dist/components/af-proposal-footer.d.ts +11 -0
  397. package/dist/components/af-proposal-footer.js +1 -0
  398. package/dist/components/af-proposal-header.d.ts +11 -0
  399. package/dist/components/af-proposal-header.js +1 -0
  400. package/dist/components/af-radio.js +1 -9
  401. package/dist/components/af-section.js +1 -9
  402. package/dist/components/af-show.js +1 -46
  403. package/dist/components/af-social-link.js +1 -63
  404. package/dist/components/af-spacer.js +1 -69
  405. package/dist/components/af-split-section.js +1 -71
  406. package/dist/components/af-stack.js +1 -90
  407. package/dist/components/af-stat.js +1 -53
  408. package/dist/components/af-stats-row.js +1 -37
  409. package/dist/components/af-stepper-step.js +1 -44
  410. package/dist/components/af-stepper.js +1 -55
  411. package/dist/components/af-switch.js +1 -9
  412. package/dist/components/af-tab-bar.js +1 -9
  413. package/dist/components/af-tab.js +1 -9
  414. package/dist/components/af-table.d.ts +11 -0
  415. package/dist/components/af-table.js +1 -0
  416. package/dist/components/af-tag.js +1 -9
  417. package/dist/components/af-testimonial-carousel.js +1 -131
  418. package/dist/components/af-testimonial-stat.js +1 -57
  419. package/dist/components/af-testimonial.js +1 -88
  420. package/dist/components/af-text-image-nest.js +1 -51
  421. package/dist/components/af-text-image.js +1 -95
  422. package/dist/components/af-text.js +1 -9
  423. package/dist/components/af-textarea.js +1 -9
  424. package/dist/components/af-theme-override.js +1 -44
  425. package/dist/components/af-timeline-item.d.ts +11 -0
  426. package/dist/components/af-timeline-item.js +1 -0
  427. package/dist/components/af-timeline.d.ts +11 -0
  428. package/dist/components/af-timeline.js +1 -0
  429. package/dist/components/af-typography-lockup.js +1 -9
  430. package/dist/components/af-video-container.js +1 -70
  431. package/dist/components/af-visually-hidden.js +1 -45
  432. package/dist/components/index.d.ts +2 -0
  433. package/dist/components/index.js +1 -28
  434. package/dist/components/p-B6QLLKoY.js +1 -0
  435. package/dist/components/p-B9kn8bdv.js +1 -0
  436. package/dist/components/p-BAtqI56c.js +1 -0
  437. package/dist/components/p-BG8SGO9l.js +1 -0
  438. package/dist/components/p-BLUTekMF.js +1 -0
  439. package/dist/components/p-BSPfXvdg.js +1 -0
  440. package/dist/components/p-BY0PJL6j.js +1 -0
  441. package/dist/components/p-Be8v3CCM.js +1 -0
  442. package/dist/components/p-BkjX8JFj.js +1 -0
  443. package/dist/components/p-BnBr2-r-.js +1 -0
  444. package/dist/components/p-BofEd4yd.js +1 -0
  445. package/dist/components/p-C-g76Z9X.js +1 -0
  446. package/dist/components/p-C7rwjYr_.js +1 -0
  447. package/dist/components/p-CDl4Zk3-.js +1 -0
  448. package/dist/components/p-CEtIziSr.js +1 -0
  449. package/dist/components/p-CIaSTJo3.js +1 -0
  450. package/dist/components/p-Cdi63dq-.js +1 -0
  451. package/dist/components/p-ClOQFY2W.js +1 -0
  452. package/dist/components/p-CnKT-ePd.js +1 -0
  453. package/dist/components/p-Co9EDn2t.js +1 -0
  454. package/dist/components/p-Cye028UF.js +1 -0
  455. package/dist/components/p-D1moXdEA.js +1 -0
  456. package/dist/components/p-D6fHOYRF.js +1 -0
  457. package/dist/components/p-DEGKc9o3.js +1 -0
  458. package/dist/components/p-D_G6S5Se.js +1 -0
  459. package/dist/components/p-DhEHGrIu.js +1 -0
  460. package/dist/components/p-DifZ2dRU.js +1 -0
  461. package/dist/components/p-Dm7U4iyS.js +1 -0
  462. package/dist/components/p-DoMy-66y.js +1 -0
  463. package/dist/components/p-Dq8b9JgN.js +1 -0
  464. package/dist/components/p-XmBr9yw_.js +1 -0
  465. package/dist/components/p-Zzc36937.js +1 -0
  466. package/dist/components/p-bNBu9AML.js +1 -0
  467. package/dist/components/p-bknhsVLn.js +1 -0
  468. package/dist/components/p-mmJGfmyi.js +1 -0
  469. package/dist/components/p-t4S1PTqg.js +1 -0
  470. package/dist/esm/a11y-DEGKc9o3.js +346 -0
  471. package/dist/esm/af-accordion-item.entry.js +6 -5
  472. package/dist/esm/af-accordion.entry.js +6 -5
  473. package/dist/esm/af-action-item.entry.js +52 -0
  474. package/dist/esm/af-action-list.entry.js +35 -0
  475. package/dist/esm/af-area-chart.entry.js +270 -0
  476. package/dist/esm/af-aspect-ratio.entry.js +3 -4
  477. package/dist/esm/af-bar-chart.entry.js +343 -0
  478. package/dist/esm/af-button-group.entry.js +3 -4
  479. package/dist/esm/af-button.entry.js +5 -5
  480. package/dist/esm/af-callout.entry.js +64 -0
  481. package/dist/esm/af-card.entry.js +4 -5
  482. package/dist/esm/af-center.entry.js +4 -5
  483. package/dist/esm/af-chart-legend.entry.js +121 -0
  484. package/dist/esm/af-chart-section.entry.js +31 -0
  485. package/dist/esm/af-chart-tooltip.entry.js +79 -0
  486. package/dist/esm/af-checkbox.entry.js +3 -4
  487. package/dist/esm/af-client-carousel.entry.js +46 -11
  488. package/dist/esm/af-color-swatch.entry.js +3 -4
  489. package/dist/esm/af-contact-item.entry.js +4 -5
  490. package/dist/esm/af-container.entry.js +3 -4
  491. package/dist/esm/af-divider.entry.js +4 -5
  492. package/dist/esm/af-feature-accordion.entry.js +62 -7
  493. package/dist/esm/af-feature-card.entry.js +3 -4
  494. package/dist/esm/af-feature-grid.entry.js +7 -6
  495. package/dist/esm/af-fieldset.entry.js +3 -4
  496. package/dist/esm/af-footer-column.entry.js +4 -5
  497. package/dist/esm/af-footer-link.entry.js +4 -5
  498. package/dist/esm/af-footer.entry.js +4 -5
  499. package/dist/esm/af-grid-callout.entry.js +3 -4
  500. package/dist/esm/af-grid.entry.js +5 -6
  501. package/dist/esm/af-heading_5.entry.js +30 -20
  502. package/dist/esm/af-hero.entry.js +3 -4
  503. package/dist/esm/af-icon-box.entry.js +4 -5
  504. package/dist/esm/af-icon-button.entry.js +3 -4
  505. package/dist/esm/af-icon-text.entry.js +4 -5
  506. package/dist/esm/af-icon.entry.js +3 -4
  507. package/dist/esm/af-illustrated-card.entry.js +4 -5
  508. package/dist/esm/af-image.entry.js +30 -12
  509. package/dist/esm/af-in-page-banner.entry.js +4 -5
  510. package/dist/esm/af-inline.entry.js +4 -5
  511. package/dist/esm/af-input.entry.js +3 -4
  512. package/dist/esm/af-line-chart.entry.js +255 -0
  513. package/dist/esm/af-logo-mark.entry.js +25 -0
  514. package/dist/esm/af-logo-well.entry.js +4 -5
  515. package/dist/esm/af-nav-accordion-item.entry.js +8 -7
  516. package/dist/esm/af-nav-accordion.entry.js +4 -5
  517. package/dist/esm/af-nav-card.entry.js +3 -4
  518. package/dist/esm/af-nav-menu-nest.entry.js +5 -6
  519. package/dist/esm/af-nav-menu.entry.js +4 -5
  520. package/dist/esm/af-next-step-item.entry.js +31 -0
  521. package/dist/esm/af-next-steps.entry.js +38 -0
  522. package/dist/esm/af-number-badge.entry.js +5 -6
  523. package/dist/esm/af-numbered-stepper-item.entry.js +4 -5
  524. package/dist/esm/af-numbered-stepper.entry.js +4 -5
  525. package/dist/esm/af-paperclip-decoration.entry.js +4 -5
  526. package/dist/esm/af-pie-chart.entry.js +151 -0
  527. package/dist/esm/af-progress-line.entry.js +5 -6
  528. package/dist/esm/af-proposal-footer.entry.js +34 -0
  529. package/dist/esm/af-proposal-header.entry.js +28 -0
  530. package/dist/esm/af-radio.entry.js +3 -4
  531. package/dist/esm/af-section.entry.js +5 -6
  532. package/dist/esm/af-show.entry.js +4 -5
  533. package/dist/esm/af-social-link.entry.js +5 -6
  534. package/dist/esm/af-spacer.entry.js +4 -5
  535. package/dist/esm/af-split-section.entry.js +5 -6
  536. package/dist/esm/af-stack.entry.js +4 -5
  537. package/dist/esm/af-stat.entry.js +6 -5
  538. package/dist/esm/af-stats-row.entry.js +4 -5
  539. package/dist/esm/af-stepper-step.entry.js +4 -5
  540. package/dist/esm/af-stepper.entry.js +4 -5
  541. package/dist/esm/af-switch.entry.js +3 -4
  542. package/dist/esm/af-tab-bar.entry.js +3 -4
  543. package/dist/esm/af-tab.entry.js +3 -4
  544. package/dist/esm/af-table.entry.js +157 -0
  545. package/dist/esm/af-tag.entry.js +3 -4
  546. package/dist/esm/af-testimonial-carousel.entry.js +75 -22
  547. package/dist/esm/af-testimonial-stat.entry.js +9 -5
  548. package/dist/esm/af-testimonial.entry.js +5 -6
  549. package/dist/esm/af-text-image-nest.entry.js +4 -5
  550. package/dist/esm/af-text-image.entry.js +3 -4
  551. package/dist/esm/af-textarea.entry.js +3 -4
  552. package/dist/esm/af-theme-override.entry.js +4 -5
  553. package/dist/esm/af-timeline-item.entry.js +70 -0
  554. package/dist/esm/af-timeline.entry.js +220 -0
  555. package/dist/esm/af-typography-lockup.entry.js +11 -7
  556. package/dist/esm/af-video-container.entry.js +4 -5
  557. package/dist/esm/af-visually-hidden.entry.js +4 -5
  558. package/dist/esm/affinda.js +4 -5
  559. package/dist/esm/{index-CYq0zyKH.js → index-BjfY9fsk.js} +596 -378
  560. package/dist/esm/index.js +2 -3
  561. package/dist/esm/loader.js +3 -4
  562. package/dist/esm/scales-BSPfXvdg.js +188 -0
  563. package/dist/hydrate/index.d.ts +12 -0
  564. package/dist/hydrate/index.js +9919 -2462
  565. package/dist/hydrate/index.mjs +9918 -2463
  566. package/dist/types/components/af-action-item/af-action-item.d.ts +44 -0
  567. package/dist/types/components/af-action-list/af-action-list.d.ts +31 -0
  568. package/dist/types/components/af-area-chart/af-area-chart.d.ts +107 -0
  569. package/dist/types/components/af-bar-chart/af-bar-chart.d.ts +105 -0
  570. package/dist/types/components/af-callout/af-callout.d.ts +48 -0
  571. package/dist/types/components/af-chart-legend/af-chart-legend.d.ts +84 -0
  572. package/dist/types/components/af-chart-section/af-chart-section.d.ts +37 -0
  573. package/dist/types/components/af-chart-tooltip/af-chart-tooltip.d.ts +87 -0
  574. package/dist/types/components/af-client-carousel/af-client-carousel.d.ts +5 -0
  575. package/dist/types/components/af-feature-accordion/af-feature-accordion.d.ts +10 -0
  576. package/dist/types/components/af-icon/af-icon.d.ts +1 -1
  577. package/dist/types/components/af-icon-box/af-icon-box.d.ts +1 -1
  578. package/dist/types/components/af-icon-text/af-icon-text.d.ts +1 -1
  579. package/dist/types/components/af-image/af-image.d.ts +28 -9
  580. package/dist/types/components/af-line-chart/af-line-chart.d.ts +111 -0
  581. package/dist/types/components/af-logo-mark/af-logo-mark.d.ts +25 -0
  582. package/dist/types/components/af-navbar/af-navbar.d.ts +3 -1
  583. package/dist/types/components/af-next-step-item/af-next-step-item.d.ts +31 -0
  584. package/dist/types/components/af-next-steps/af-next-steps.d.ts +33 -0
  585. package/dist/types/components/af-pie-chart/af-pie-chart.d.ts +77 -0
  586. package/dist/types/components/af-proposal-footer/af-proposal-footer.d.ts +25 -0
  587. package/dist/types/components/af-proposal-header/af-proposal-header.d.ts +36 -0
  588. package/dist/types/components/af-stat/af-stat.d.ts +2 -0
  589. package/dist/types/components/af-table/af-table.d.ts +77 -0
  590. package/dist/types/components/af-testimonial/af-testimonial.d.ts +8 -0
  591. package/dist/types/components/af-testimonial-carousel/af-testimonial-carousel.d.ts +11 -2
  592. package/dist/types/components/af-timeline/af-timeline.d.ts +86 -0
  593. package/dist/types/components/af-timeline-item/af-timeline-item.d.ts +59 -0
  594. package/dist/types/components.d.ts +3464 -298
  595. package/dist/types/stencil-public-runtime.d.ts +110 -6
  596. package/dist/types/utils/charts/a11y.d.ts +43 -0
  597. package/dist/types/utils/charts/generators.d.ts +92 -0
  598. package/dist/types/utils/charts/index.d.ts +10 -0
  599. package/dist/types/utils/charts/scales.d.ts +80 -0
  600. package/dist/types/utils/charts/types.d.ts +79 -0
  601. package/package.json +24 -20
  602. package/dist/affinda/af-accordion-item.entry.esm.js.map +0 -1
  603. package/dist/affinda/af-accordion.entry.esm.js.map +0 -1
  604. package/dist/affinda/af-aspect-ratio.entry.esm.js.map +0 -1
  605. package/dist/affinda/af-button-group.entry.esm.js.map +0 -1
  606. package/dist/affinda/af-button.entry.esm.js.map +0 -1
  607. package/dist/affinda/af-card.entry.esm.js.map +0 -1
  608. package/dist/affinda/af-center.entry.esm.js.map +0 -1
  609. package/dist/affinda/af-checkbox.entry.esm.js.map +0 -1
  610. package/dist/affinda/af-client-carousel.entry.esm.js.map +0 -1
  611. package/dist/affinda/af-color-swatch.entry.esm.js.map +0 -1
  612. package/dist/affinda/af-contact-item.entry.esm.js.map +0 -1
  613. package/dist/affinda/af-container.entry.esm.js.map +0 -1
  614. package/dist/affinda/af-divider.entry.esm.js.map +0 -1
  615. package/dist/affinda/af-feature-accordion.entry.esm.js.map +0 -1
  616. package/dist/affinda/af-feature-card.entry.esm.js.map +0 -1
  617. package/dist/affinda/af-feature-grid.entry.esm.js.map +0 -1
  618. package/dist/affinda/af-fieldset.entry.esm.js.map +0 -1
  619. package/dist/affinda/af-footer-column.entry.esm.js.map +0 -1
  620. package/dist/affinda/af-footer-link.entry.esm.js.map +0 -1
  621. package/dist/affinda/af-footer.entry.esm.js.map +0 -1
  622. package/dist/affinda/af-grid-callout.entry.esm.js.map +0 -1
  623. package/dist/affinda/af-grid.entry.esm.js.map +0 -1
  624. package/dist/affinda/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.esm.js.map +0 -1
  625. package/dist/affinda/af-hero.entry.esm.js.map +0 -1
  626. package/dist/affinda/af-icon-box.entry.esm.js.map +0 -1
  627. package/dist/affinda/af-icon-button.entry.esm.js.map +0 -1
  628. package/dist/affinda/af-icon-text.entry.esm.js.map +0 -1
  629. package/dist/affinda/af-icon.entry.esm.js.map +0 -1
  630. package/dist/affinda/af-illustrated-card.entry.esm.js.map +0 -1
  631. package/dist/affinda/af-image.entry.esm.js.map +0 -1
  632. package/dist/affinda/af-in-page-banner.entry.esm.js.map +0 -1
  633. package/dist/affinda/af-inline.entry.esm.js.map +0 -1
  634. package/dist/affinda/af-input.entry.esm.js.map +0 -1
  635. package/dist/affinda/af-logo-well.entry.esm.js.map +0 -1
  636. package/dist/affinda/af-nav-accordion-item.entry.esm.js.map +0 -1
  637. package/dist/affinda/af-nav-accordion.entry.esm.js.map +0 -1
  638. package/dist/affinda/af-nav-card.entry.esm.js.map +0 -1
  639. package/dist/affinda/af-nav-menu-nest.entry.esm.js.map +0 -1
  640. package/dist/affinda/af-nav-menu.entry.esm.js.map +0 -1
  641. package/dist/affinda/af-number-badge.entry.esm.js.map +0 -1
  642. package/dist/affinda/af-numbered-stepper-item.entry.esm.js.map +0 -1
  643. package/dist/affinda/af-numbered-stepper.entry.esm.js.map +0 -1
  644. package/dist/affinda/af-paperclip-decoration.entry.esm.js.map +0 -1
  645. package/dist/affinda/af-progress-line.entry.esm.js.map +0 -1
  646. package/dist/affinda/af-radio.entry.esm.js.map +0 -1
  647. package/dist/affinda/af-section.entry.esm.js.map +0 -1
  648. package/dist/affinda/af-show.entry.esm.js.map +0 -1
  649. package/dist/affinda/af-social-link.entry.esm.js.map +0 -1
  650. package/dist/affinda/af-spacer.entry.esm.js.map +0 -1
  651. package/dist/affinda/af-split-section.entry.esm.js.map +0 -1
  652. package/dist/affinda/af-stack.entry.esm.js.map +0 -1
  653. package/dist/affinda/af-stat.entry.esm.js.map +0 -1
  654. package/dist/affinda/af-stats-row.entry.esm.js.map +0 -1
  655. package/dist/affinda/af-stepper-step.entry.esm.js.map +0 -1
  656. package/dist/affinda/af-stepper.entry.esm.js.map +0 -1
  657. package/dist/affinda/af-switch.entry.esm.js.map +0 -1
  658. package/dist/affinda/af-tab-bar.entry.esm.js.map +0 -1
  659. package/dist/affinda/af-tab.entry.esm.js.map +0 -1
  660. package/dist/affinda/af-tag.entry.esm.js.map +0 -1
  661. package/dist/affinda/af-testimonial-carousel.entry.esm.js.map +0 -1
  662. package/dist/affinda/af-testimonial-stat.entry.esm.js.map +0 -1
  663. package/dist/affinda/af-testimonial.entry.esm.js.map +0 -1
  664. package/dist/affinda/af-text-image-nest.entry.esm.js.map +0 -1
  665. package/dist/affinda/af-text-image.entry.esm.js.map +0 -1
  666. package/dist/affinda/af-textarea.entry.esm.js.map +0 -1
  667. package/dist/affinda/af-theme-override.entry.esm.js.map +0 -1
  668. package/dist/affinda/af-typography-lockup.entry.esm.js.map +0 -1
  669. package/dist/affinda/af-video-container.entry.esm.js.map +0 -1
  670. package/dist/affinda/af-visually-hidden.entry.esm.js.map +0 -1
  671. package/dist/affinda/affinda.esm.js.map +0 -1
  672. package/dist/affinda/index.esm.js.map +0 -1
  673. package/dist/affinda/loader.esm.js.map +0 -1
  674. package/dist/affinda/p-01b848e9.entry.js +0 -2
  675. package/dist/affinda/p-01b848e9.entry.js.map +0 -1
  676. package/dist/affinda/p-025851ca.entry.js +0 -2
  677. package/dist/affinda/p-025851ca.entry.js.map +0 -1
  678. package/dist/affinda/p-0c7d81d0.entry.js +0 -2
  679. package/dist/affinda/p-0c7d81d0.entry.js.map +0 -1
  680. package/dist/affinda/p-0cbb1cb2.entry.js +0 -2
  681. package/dist/affinda/p-0cbb1cb2.entry.js.map +0 -1
  682. package/dist/affinda/p-11d41c9a.entry.js +0 -2
  683. package/dist/affinda/p-11d41c9a.entry.js.map +0 -1
  684. package/dist/affinda/p-1554f3d7.entry.js +0 -2
  685. package/dist/affinda/p-1554f3d7.entry.js.map +0 -1
  686. package/dist/affinda/p-160997b3.entry.js +0 -2
  687. package/dist/affinda/p-160997b3.entry.js.map +0 -1
  688. package/dist/affinda/p-1c19e94c.entry.js +0 -2
  689. package/dist/affinda/p-1c19e94c.entry.js.map +0 -1
  690. package/dist/affinda/p-1c922fff.entry.js +0 -2
  691. package/dist/affinda/p-1c922fff.entry.js.map +0 -1
  692. package/dist/affinda/p-1e59a051.entry.js +0 -2
  693. package/dist/affinda/p-1e59a051.entry.js.map +0 -1
  694. package/dist/affinda/p-20faf28d.entry.js +0 -2
  695. package/dist/affinda/p-20faf28d.entry.js.map +0 -1
  696. package/dist/affinda/p-223b2e70.entry.js +0 -2
  697. package/dist/affinda/p-223b2e70.entry.js.map +0 -1
  698. package/dist/affinda/p-2315cb6b.entry.js +0 -2
  699. package/dist/affinda/p-2315cb6b.entry.js.map +0 -1
  700. package/dist/affinda/p-2716cdc4.entry.js +0 -2
  701. package/dist/affinda/p-2716cdc4.entry.js.map +0 -1
  702. package/dist/affinda/p-296a6ece.entry.js +0 -2
  703. package/dist/affinda/p-296a6ece.entry.js.map +0 -1
  704. package/dist/affinda/p-319b51c7.entry.js +0 -2
  705. package/dist/affinda/p-319b51c7.entry.js.map +0 -1
  706. package/dist/affinda/p-31d96ddc.entry.js +0 -2
  707. package/dist/affinda/p-31d96ddc.entry.js.map +0 -1
  708. package/dist/affinda/p-3df90209.entry.js +0 -2
  709. package/dist/affinda/p-3df90209.entry.js.map +0 -1
  710. package/dist/affinda/p-3ed2eb32.entry.js +0 -2
  711. package/dist/affinda/p-3ed2eb32.entry.js.map +0 -1
  712. package/dist/affinda/p-3fb33478.entry.js +0 -2
  713. package/dist/affinda/p-3fb33478.entry.js.map +0 -1
  714. package/dist/affinda/p-41160f3a.entry.js +0 -2
  715. package/dist/affinda/p-41160f3a.entry.js.map +0 -1
  716. package/dist/affinda/p-47d2f72b.entry.js.map +0 -1
  717. package/dist/affinda/p-5e966aa6.entry.js +0 -2
  718. package/dist/affinda/p-5e966aa6.entry.js.map +0 -1
  719. package/dist/affinda/p-5fdb4aad.entry.js +0 -2
  720. package/dist/affinda/p-5fdb4aad.entry.js.map +0 -1
  721. package/dist/affinda/p-604399ed.entry.js +0 -2
  722. package/dist/affinda/p-604399ed.entry.js.map +0 -1
  723. package/dist/affinda/p-6525d4fe.entry.js +0 -2
  724. package/dist/affinda/p-6525d4fe.entry.js.map +0 -1
  725. package/dist/affinda/p-653bca57.entry.js +0 -2
  726. package/dist/affinda/p-653bca57.entry.js.map +0 -1
  727. package/dist/affinda/p-6c4137dc.entry.js +0 -2
  728. package/dist/affinda/p-6c4137dc.entry.js.map +0 -1
  729. package/dist/affinda/p-761f06ae.entry.js +0 -2
  730. package/dist/affinda/p-761f06ae.entry.js.map +0 -1
  731. package/dist/affinda/p-765883e7.entry.js +0 -2
  732. package/dist/affinda/p-765883e7.entry.js.map +0 -1
  733. package/dist/affinda/p-7b60b684.entry.js +0 -2
  734. package/dist/affinda/p-7b60b684.entry.js.map +0 -1
  735. package/dist/affinda/p-805148d0.entry.js +0 -2
  736. package/dist/affinda/p-805148d0.entry.js.map +0 -1
  737. package/dist/affinda/p-81f2ccb4.entry.js +0 -2
  738. package/dist/affinda/p-81f2ccb4.entry.js.map +0 -1
  739. package/dist/affinda/p-8eb57e35.entry.js +0 -2
  740. package/dist/affinda/p-8eb57e35.entry.js.map +0 -1
  741. package/dist/affinda/p-90e9e29c.entry.js +0 -2
  742. package/dist/affinda/p-90e9e29c.entry.js.map +0 -1
  743. package/dist/affinda/p-92c61bad.entry.js +0 -2
  744. package/dist/affinda/p-92c61bad.entry.js.map +0 -1
  745. package/dist/affinda/p-94119fa2.entry.js +0 -2
  746. package/dist/affinda/p-94119fa2.entry.js.map +0 -1
  747. package/dist/affinda/p-99b37588.entry.js +0 -2
  748. package/dist/affinda/p-99b37588.entry.js.map +0 -1
  749. package/dist/affinda/p-99ec99e1.entry.js +0 -2
  750. package/dist/affinda/p-99ec99e1.entry.js.map +0 -1
  751. package/dist/affinda/p-9c470a88.entry.js +0 -2
  752. package/dist/affinda/p-9c470a88.entry.js.map +0 -1
  753. package/dist/affinda/p-9c8d18a3.entry.js +0 -2
  754. package/dist/affinda/p-9c8d18a3.entry.js.map +0 -1
  755. package/dist/affinda/p-9d85f685.entry.js +0 -2
  756. package/dist/affinda/p-9d85f685.entry.js.map +0 -1
  757. package/dist/affinda/p-CYq0zyKH.js +0 -3
  758. package/dist/affinda/p-CYq0zyKH.js.map +0 -1
  759. package/dist/affinda/p-aa0cb70d.entry.js +0 -2
  760. package/dist/affinda/p-aa0cb70d.entry.js.map +0 -1
  761. package/dist/affinda/p-aabe4d24.entry.js +0 -2
  762. package/dist/affinda/p-aabe4d24.entry.js.map +0 -1
  763. package/dist/affinda/p-ae27e9da.entry.js +0 -2
  764. package/dist/affinda/p-ae27e9da.entry.js.map +0 -1
  765. package/dist/affinda/p-bc3d2bb4.entry.js +0 -2
  766. package/dist/affinda/p-bc3d2bb4.entry.js.map +0 -1
  767. package/dist/affinda/p-bc59dc0e.entry.js.map +0 -1
  768. package/dist/affinda/p-c6aa66f3.entry.js +0 -2
  769. package/dist/affinda/p-c6aa66f3.entry.js.map +0 -1
  770. package/dist/affinda/p-c87e5b29.entry.js +0 -2
  771. package/dist/affinda/p-c87e5b29.entry.js.map +0 -1
  772. package/dist/affinda/p-cd8cfa7f.entry.js +0 -2
  773. package/dist/affinda/p-cd8cfa7f.entry.js.map +0 -1
  774. package/dist/affinda/p-da247ea4.entry.js +0 -2
  775. package/dist/affinda/p-da247ea4.entry.js.map +0 -1
  776. package/dist/affinda/p-dd30a9b8.entry.js +0 -2
  777. package/dist/affinda/p-dd30a9b8.entry.js.map +0 -1
  778. package/dist/affinda/p-e10c03b6.entry.js +0 -2
  779. package/dist/affinda/p-e10c03b6.entry.js.map +0 -1
  780. package/dist/affinda/p-e2667603.entry.js +0 -2
  781. package/dist/affinda/p-e2667603.entry.js.map +0 -1
  782. package/dist/affinda/p-e678100f.entry.js +0 -2
  783. package/dist/affinda/p-e678100f.entry.js.map +0 -1
  784. package/dist/affinda/p-e8a91b15.entry.js +0 -2
  785. package/dist/affinda/p-e8a91b15.entry.js.map +0 -1
  786. package/dist/affinda/p-e9527b93.entry.js +0 -2
  787. package/dist/affinda/p-e9527b93.entry.js.map +0 -1
  788. package/dist/affinda/p-eb611fb5.entry.js +0 -2
  789. package/dist/affinda/p-eb611fb5.entry.js.map +0 -1
  790. package/dist/affinda/p-edb426e6.entry.js +0 -2
  791. package/dist/affinda/p-edb426e6.entry.js.map +0 -1
  792. package/dist/affinda/p-f38688c6.entry.js +0 -2
  793. package/dist/affinda/p-f38688c6.entry.js.map +0 -1
  794. package/dist/affinda/p-f47d0d2d.entry.js +0 -2
  795. package/dist/affinda/p-f47d0d2d.entry.js.map +0 -1
  796. package/dist/affinda/p-f49b41f9.entry.js +0 -2
  797. package/dist/affinda/p-f49b41f9.entry.js.map +0 -1
  798. package/dist/affinda/p-f5744d56.entry.js +0 -2
  799. package/dist/affinda/p-f5744d56.entry.js.map +0 -1
  800. package/dist/affinda/p-f6e1750e.entry.js +0 -2
  801. package/dist/affinda/p-f6e1750e.entry.js.map +0 -1
  802. package/dist/affinda/p-fad2d40b.entry.js +0 -2
  803. package/dist/affinda/p-fad2d40b.entry.js.map +0 -1
  804. package/dist/affinda/p-fc19f53c.entry.js +0 -2
  805. package/dist/affinda/p-fc19f53c.entry.js.map +0 -1
  806. package/dist/affinda/p-fd39a1c2.entry.js +0 -2
  807. package/dist/affinda/p-fd39a1c2.entry.js.map +0 -1
  808. package/dist/affinda/p-fe09a283.entry.js +0 -2
  809. package/dist/affinda/p-fe09a283.entry.js.map +0 -1
  810. package/dist/affinda/p-fee9359c.entry.js +0 -2
  811. package/dist/affinda/p-fee9359c.entry.js.map +0 -1
  812. package/dist/cjs/af-accordion-item.entry.cjs.js.map +0 -1
  813. package/dist/cjs/af-accordion.entry.cjs.js.map +0 -1
  814. package/dist/cjs/af-aspect-ratio.entry.cjs.js.map +0 -1
  815. package/dist/cjs/af-button-group.entry.cjs.js.map +0 -1
  816. package/dist/cjs/af-button.entry.cjs.js.map +0 -1
  817. package/dist/cjs/af-card.entry.cjs.js.map +0 -1
  818. package/dist/cjs/af-center.entry.cjs.js.map +0 -1
  819. package/dist/cjs/af-checkbox.entry.cjs.js.map +0 -1
  820. package/dist/cjs/af-client-carousel.entry.cjs.js.map +0 -1
  821. package/dist/cjs/af-color-swatch.entry.cjs.js.map +0 -1
  822. package/dist/cjs/af-contact-item.entry.cjs.js.map +0 -1
  823. package/dist/cjs/af-container.entry.cjs.js.map +0 -1
  824. package/dist/cjs/af-divider.entry.cjs.js.map +0 -1
  825. package/dist/cjs/af-feature-accordion.entry.cjs.js.map +0 -1
  826. package/dist/cjs/af-feature-card.entry.cjs.js.map +0 -1
  827. package/dist/cjs/af-feature-grid.entry.cjs.js.map +0 -1
  828. package/dist/cjs/af-fieldset.entry.cjs.js.map +0 -1
  829. package/dist/cjs/af-footer-column.entry.cjs.js.map +0 -1
  830. package/dist/cjs/af-footer-link.entry.cjs.js.map +0 -1
  831. package/dist/cjs/af-footer.entry.cjs.js.map +0 -1
  832. package/dist/cjs/af-grid-callout.entry.cjs.js.map +0 -1
  833. package/dist/cjs/af-grid.entry.cjs.js.map +0 -1
  834. package/dist/cjs/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.cjs.js.map +0 -1
  835. package/dist/cjs/af-hero.entry.cjs.js.map +0 -1
  836. package/dist/cjs/af-icon-box.entry.cjs.js.map +0 -1
  837. package/dist/cjs/af-icon-button.entry.cjs.js.map +0 -1
  838. package/dist/cjs/af-icon-text.entry.cjs.js.map +0 -1
  839. package/dist/cjs/af-icon.entry.cjs.js.map +0 -1
  840. package/dist/cjs/af-illustrated-card.entry.cjs.js.map +0 -1
  841. package/dist/cjs/af-image.entry.cjs.js.map +0 -1
  842. package/dist/cjs/af-in-page-banner.entry.cjs.js.map +0 -1
  843. package/dist/cjs/af-inline.entry.cjs.js.map +0 -1
  844. package/dist/cjs/af-input.entry.cjs.js.map +0 -1
  845. package/dist/cjs/af-logo-well.entry.cjs.js.map +0 -1
  846. package/dist/cjs/af-nav-accordion-item.entry.cjs.js.map +0 -1
  847. package/dist/cjs/af-nav-accordion.entry.cjs.js.map +0 -1
  848. package/dist/cjs/af-nav-card.entry.cjs.js.map +0 -1
  849. package/dist/cjs/af-nav-menu-nest.entry.cjs.js.map +0 -1
  850. package/dist/cjs/af-nav-menu.entry.cjs.js.map +0 -1
  851. package/dist/cjs/af-number-badge.entry.cjs.js.map +0 -1
  852. package/dist/cjs/af-numbered-stepper-item.entry.cjs.js.map +0 -1
  853. package/dist/cjs/af-numbered-stepper.entry.cjs.js.map +0 -1
  854. package/dist/cjs/af-paperclip-decoration.entry.cjs.js.map +0 -1
  855. package/dist/cjs/af-progress-line.entry.cjs.js.map +0 -1
  856. package/dist/cjs/af-radio.entry.cjs.js.map +0 -1
  857. package/dist/cjs/af-section.entry.cjs.js.map +0 -1
  858. package/dist/cjs/af-show.entry.cjs.js.map +0 -1
  859. package/dist/cjs/af-social-link.entry.cjs.js.map +0 -1
  860. package/dist/cjs/af-spacer.entry.cjs.js.map +0 -1
  861. package/dist/cjs/af-split-section.entry.cjs.js.map +0 -1
  862. package/dist/cjs/af-stack.entry.cjs.js.map +0 -1
  863. package/dist/cjs/af-stat.entry.cjs.js.map +0 -1
  864. package/dist/cjs/af-stats-row.entry.cjs.js.map +0 -1
  865. package/dist/cjs/af-stepper-step.entry.cjs.js.map +0 -1
  866. package/dist/cjs/af-stepper.entry.cjs.js.map +0 -1
  867. package/dist/cjs/af-switch.entry.cjs.js.map +0 -1
  868. package/dist/cjs/af-tab-bar.entry.cjs.js.map +0 -1
  869. package/dist/cjs/af-tab.entry.cjs.js.map +0 -1
  870. package/dist/cjs/af-tag.entry.cjs.js.map +0 -1
  871. package/dist/cjs/af-testimonial-carousel.entry.cjs.js.map +0 -1
  872. package/dist/cjs/af-testimonial-stat.entry.cjs.js.map +0 -1
  873. package/dist/cjs/af-testimonial.entry.cjs.js.map +0 -1
  874. package/dist/cjs/af-text-image-nest.entry.cjs.js.map +0 -1
  875. package/dist/cjs/af-text-image.entry.cjs.js.map +0 -1
  876. package/dist/cjs/af-textarea.entry.cjs.js.map +0 -1
  877. package/dist/cjs/af-theme-override.entry.cjs.js.map +0 -1
  878. package/dist/cjs/af-typography-lockup.entry.cjs.js.map +0 -1
  879. package/dist/cjs/af-video-container.entry.cjs.js.map +0 -1
  880. package/dist/cjs/af-visually-hidden.entry.cjs.js.map +0 -1
  881. package/dist/cjs/affinda.cjs.js.map +0 -1
  882. package/dist/cjs/index-BuJz1C1M.js.map +0 -1
  883. package/dist/cjs/index.cjs.js.map +0 -1
  884. package/dist/cjs/loader.cjs.js.map +0 -1
  885. package/dist/collection/components/af-accordion/af-accordion.js.map +0 -1
  886. package/dist/collection/components/af-accordion-item/af-accordion-item.js.map +0 -1
  887. package/dist/collection/components/af-aspect-ratio/af-aspect-ratio.js.map +0 -1
  888. package/dist/collection/components/af-button/af-button.js.map +0 -1
  889. package/dist/collection/components/af-button-group/af-button-group.js.map +0 -1
  890. package/dist/collection/components/af-card/af-card.js.map +0 -1
  891. package/dist/collection/components/af-center/af-center.js.map +0 -1
  892. package/dist/collection/components/af-checkbox/af-checkbox.js.map +0 -1
  893. package/dist/collection/components/af-client-carousel/af-client-carousel.js.map +0 -1
  894. package/dist/collection/components/af-color-swatch/af-color-swatch.js.map +0 -1
  895. package/dist/collection/components/af-contact-item/af-contact-item.js.map +0 -1
  896. package/dist/collection/components/af-container/af-container.js.map +0 -1
  897. package/dist/collection/components/af-divider/af-divider.js.map +0 -1
  898. package/dist/collection/components/af-feature-accordion/af-feature-accordion.js.map +0 -1
  899. package/dist/collection/components/af-feature-card/af-feature-card.js.map +0 -1
  900. package/dist/collection/components/af-feature-grid/af-feature-grid.js.map +0 -1
  901. package/dist/collection/components/af-fieldset/af-fieldset.js.map +0 -1
  902. package/dist/collection/components/af-footer/af-footer.js.map +0 -1
  903. package/dist/collection/components/af-footer-column/af-footer-column.js.map +0 -1
  904. package/dist/collection/components/af-footer-link/af-footer-link.js.map +0 -1
  905. package/dist/collection/components/af-grid/af-grid.js.map +0 -1
  906. package/dist/collection/components/af-grid-callout/af-grid-callout.js.map +0 -1
  907. package/dist/collection/components/af-heading/af-heading.js.map +0 -1
  908. package/dist/collection/components/af-hero/af-hero.js.map +0 -1
  909. package/dist/collection/components/af-icon/af-icon.js.map +0 -1
  910. package/dist/collection/components/af-icon-box/af-icon-box.js.map +0 -1
  911. package/dist/collection/components/af-icon-button/af-icon-button.js.map +0 -1
  912. package/dist/collection/components/af-icon-text/af-icon-text.js.map +0 -1
  913. package/dist/collection/components/af-illustrated-card/af-illustrated-card.js.map +0 -1
  914. package/dist/collection/components/af-image/af-image.js.map +0 -1
  915. package/dist/collection/components/af-in-page-banner/af-in-page-banner.js.map +0 -1
  916. package/dist/collection/components/af-inline/af-inline.js.map +0 -1
  917. package/dist/collection/components/af-input/af-input.js.map +0 -1
  918. package/dist/collection/components/af-logo/af-logo.js.map +0 -1
  919. package/dist/collection/components/af-logo-well/af-logo-well.js.map +0 -1
  920. package/dist/collection/components/af-nav-accordion/af-nav-accordion.js.map +0 -1
  921. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.js.map +0 -1
  922. package/dist/collection/components/af-nav-card/af-nav-card.js.map +0 -1
  923. package/dist/collection/components/af-nav-item/af-nav-item.js.map +0 -1
  924. package/dist/collection/components/af-nav-menu/af-nav-menu.js.map +0 -1
  925. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.js.map +0 -1
  926. package/dist/collection/components/af-navbar/af-navbar.js.map +0 -1
  927. package/dist/collection/components/af-number-badge/af-number-badge.js.map +0 -1
  928. package/dist/collection/components/af-numbered-stepper/af-numbered-stepper.js.map +0 -1
  929. package/dist/collection/components/af-numbered-stepper-item/af-numbered-stepper-item.js.map +0 -1
  930. package/dist/collection/components/af-paperclip-decoration/af-paperclip-decoration.js.map +0 -1
  931. package/dist/collection/components/af-progress-line/af-progress-line.js.map +0 -1
  932. package/dist/collection/components/af-radio/af-radio.js.map +0 -1
  933. package/dist/collection/components/af-section/af-section.js.map +0 -1
  934. package/dist/collection/components/af-show/af-show.js.map +0 -1
  935. package/dist/collection/components/af-social-link/af-social-link.js.map +0 -1
  936. package/dist/collection/components/af-spacer/af-spacer.js.map +0 -1
  937. package/dist/collection/components/af-split-section/af-split-section.js.map +0 -1
  938. package/dist/collection/components/af-stack/af-stack.js.map +0 -1
  939. package/dist/collection/components/af-stat/af-stat.js.map +0 -1
  940. package/dist/collection/components/af-stats-row/af-stats-row.js.map +0 -1
  941. package/dist/collection/components/af-stepper/af-stepper.js.map +0 -1
  942. package/dist/collection/components/af-stepper-step/af-stepper-step.js.map +0 -1
  943. package/dist/collection/components/af-switch/af-switch.js.map +0 -1
  944. package/dist/collection/components/af-tab/af-tab.js.map +0 -1
  945. package/dist/collection/components/af-tab-bar/af-tab-bar.js.map +0 -1
  946. package/dist/collection/components/af-tag/af-tag.js.map +0 -1
  947. package/dist/collection/components/af-testimonial/af-testimonial.js.map +0 -1
  948. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js.map +0 -1
  949. package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js.map +0 -1
  950. package/dist/collection/components/af-text/af-text.js.map +0 -1
  951. package/dist/collection/components/af-text-image/af-text-image.js.map +0 -1
  952. package/dist/collection/components/af-text-image-nest/af-text-image-nest.js.map +0 -1
  953. package/dist/collection/components/af-textarea/af-textarea.js.map +0 -1
  954. package/dist/collection/components/af-theme-override/af-theme-override.js.map +0 -1
  955. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js.map +0 -1
  956. package/dist/collection/components/af-video-container/af-video-container.js.map +0 -1
  957. package/dist/collection/components/af-visually-hidden/af-visually-hidden.js.map +0 -1
  958. package/dist/collection/components.js.map +0 -1
  959. package/dist/collection/index.js.map +0 -1
  960. package/dist/collection/types.js.map +0 -1
  961. package/dist/components/af-accordion-item.js.map +0 -1
  962. package/dist/components/af-accordion.js.map +0 -1
  963. package/dist/components/af-aspect-ratio.js.map +0 -1
  964. package/dist/components/af-button-group.js.map +0 -1
  965. package/dist/components/af-button.js.map +0 -1
  966. package/dist/components/af-card.js.map +0 -1
  967. package/dist/components/af-center.js.map +0 -1
  968. package/dist/components/af-checkbox.js.map +0 -1
  969. package/dist/components/af-client-carousel.js.map +0 -1
  970. package/dist/components/af-color-swatch.js.map +0 -1
  971. package/dist/components/af-contact-item.js.map +0 -1
  972. package/dist/components/af-container.js.map +0 -1
  973. package/dist/components/af-divider.js.map +0 -1
  974. package/dist/components/af-feature-accordion.js.map +0 -1
  975. package/dist/components/af-feature-card.js.map +0 -1
  976. package/dist/components/af-feature-grid.js.map +0 -1
  977. package/dist/components/af-fieldset.js.map +0 -1
  978. package/dist/components/af-footer-column.js.map +0 -1
  979. package/dist/components/af-footer-link.js.map +0 -1
  980. package/dist/components/af-footer.js.map +0 -1
  981. package/dist/components/af-grid-callout.js.map +0 -1
  982. package/dist/components/af-grid.js.map +0 -1
  983. package/dist/components/af-heading.js.map +0 -1
  984. package/dist/components/af-hero.js.map +0 -1
  985. package/dist/components/af-icon-box.js.map +0 -1
  986. package/dist/components/af-icon-button.js.map +0 -1
  987. package/dist/components/af-icon-text.js.map +0 -1
  988. package/dist/components/af-icon.js.map +0 -1
  989. package/dist/components/af-illustrated-card.js.map +0 -1
  990. package/dist/components/af-image.js.map +0 -1
  991. package/dist/components/af-in-page-banner.js.map +0 -1
  992. package/dist/components/af-inline.js.map +0 -1
  993. package/dist/components/af-input.js.map +0 -1
  994. package/dist/components/af-logo-well.js.map +0 -1
  995. package/dist/components/af-logo.js.map +0 -1
  996. package/dist/components/af-nav-accordion-item.js.map +0 -1
  997. package/dist/components/af-nav-accordion.js.map +0 -1
  998. package/dist/components/af-nav-card.js.map +0 -1
  999. package/dist/components/af-nav-item.js.map +0 -1
  1000. package/dist/components/af-nav-menu-nest.js.map +0 -1
  1001. package/dist/components/af-nav-menu.js.map +0 -1
  1002. package/dist/components/af-navbar.js.map +0 -1
  1003. package/dist/components/af-number-badge.js.map +0 -1
  1004. package/dist/components/af-numbered-stepper-item.js.map +0 -1
  1005. package/dist/components/af-numbered-stepper.js.map +0 -1
  1006. package/dist/components/af-paperclip-decoration.js.map +0 -1
  1007. package/dist/components/af-progress-line.js.map +0 -1
  1008. package/dist/components/af-radio.js.map +0 -1
  1009. package/dist/components/af-section.js.map +0 -1
  1010. package/dist/components/af-show.js.map +0 -1
  1011. package/dist/components/af-social-link.js.map +0 -1
  1012. package/dist/components/af-spacer.js.map +0 -1
  1013. package/dist/components/af-split-section.js.map +0 -1
  1014. package/dist/components/af-stack.js.map +0 -1
  1015. package/dist/components/af-stat.js.map +0 -1
  1016. package/dist/components/af-stats-row.js.map +0 -1
  1017. package/dist/components/af-stepper-step.js.map +0 -1
  1018. package/dist/components/af-stepper.js.map +0 -1
  1019. package/dist/components/af-switch.js.map +0 -1
  1020. package/dist/components/af-tab-bar.js.map +0 -1
  1021. package/dist/components/af-tab.js.map +0 -1
  1022. package/dist/components/af-tag.js.map +0 -1
  1023. package/dist/components/af-testimonial-carousel.js.map +0 -1
  1024. package/dist/components/af-testimonial-stat.js.map +0 -1
  1025. package/dist/components/af-testimonial.js.map +0 -1
  1026. package/dist/components/af-text-image-nest.js.map +0 -1
  1027. package/dist/components/af-text-image.js.map +0 -1
  1028. package/dist/components/af-text.js.map +0 -1
  1029. package/dist/components/af-textarea.js.map +0 -1
  1030. package/dist/components/af-theme-override.js.map +0 -1
  1031. package/dist/components/af-typography-lockup.js.map +0 -1
  1032. package/dist/components/af-video-container.js.map +0 -1
  1033. package/dist/components/af-visually-hidden.js.map +0 -1
  1034. package/dist/components/index.js.map +0 -1
  1035. package/dist/components/p-B4bimVSM.js +0 -57
  1036. package/dist/components/p-B4bimVSM.js.map +0 -1
  1037. package/dist/components/p-B7J9U9if.js +0 -81
  1038. package/dist/components/p-B7J9U9if.js.map +0 -1
  1039. package/dist/components/p-BExjo6P2.js +0 -196
  1040. package/dist/components/p-BExjo6P2.js.map +0 -1
  1041. package/dist/components/p-B_r5b4JI.js +0 -70
  1042. package/dist/components/p-B_r5b4JI.js.map +0 -1
  1043. package/dist/components/p-BgQvXXuB.js +0 -108
  1044. package/dist/components/p-BgQvXXuB.js.map +0 -1
  1045. package/dist/components/p-BiSEOBg5.js +0 -48
  1046. package/dist/components/p-BiSEOBg5.js.map +0 -1
  1047. package/dist/components/p-BipyebXl.js +0 -50
  1048. package/dist/components/p-BipyebXl.js.map +0 -1
  1049. package/dist/components/p-Btpdr0Bi.js +0 -2416
  1050. package/dist/components/p-Btpdr0Bi.js.map +0 -1
  1051. package/dist/components/p-BwowgpiS.js +0 -52
  1052. package/dist/components/p-BwowgpiS.js.map +0 -1
  1053. package/dist/components/p-C05qWmXd.js +0 -59
  1054. package/dist/components/p-C05qWmXd.js.map +0 -1
  1055. package/dist/components/p-C1nX4HkM.js +0 -48
  1056. package/dist/components/p-C1nX4HkM.js.map +0 -1
  1057. package/dist/components/p-C8HmyE5-.js +0 -71
  1058. package/dist/components/p-C8HmyE5-.js.map +0 -1
  1059. package/dist/components/p-CMatO7AD.js +0 -372
  1060. package/dist/components/p-CMatO7AD.js.map +0 -1
  1061. package/dist/components/p-CNPKZ3ct.js +0 -55
  1062. package/dist/components/p-CNPKZ3ct.js.map +0 -1
  1063. package/dist/components/p-CSejCgwa.js +0 -89
  1064. package/dist/components/p-CSejCgwa.js.map +0 -1
  1065. package/dist/components/p-CTVS7dJ6.js +0 -62
  1066. package/dist/components/p-CTVS7dJ6.js.map +0 -1
  1067. package/dist/components/p-CeWN48Eq.js +0 -92
  1068. package/dist/components/p-CeWN48Eq.js.map +0 -1
  1069. package/dist/components/p-CixFE5Cu.js +0 -140
  1070. package/dist/components/p-CixFE5Cu.js.map +0 -1
  1071. package/dist/components/p-CkaL7yIW.js +0 -157
  1072. package/dist/components/p-CkaL7yIW.js.map +0 -1
  1073. package/dist/components/p-D5-m35gX.js +0 -44
  1074. package/dist/components/p-D5-m35gX.js.map +0 -1
  1075. package/dist/components/p-DMXuAjLo.js +0 -93
  1076. package/dist/components/p-DMXuAjLo.js.map +0 -1
  1077. package/dist/components/p-DPgWkfHr.js +0 -68
  1078. package/dist/components/p-DPgWkfHr.js.map +0 -1
  1079. package/dist/components/p-Dacy0GsN.js +0 -162
  1080. package/dist/components/p-Dacy0GsN.js.map +0 -1
  1081. package/dist/components/p-DrEl4PxE.js +0 -102
  1082. package/dist/components/p-DrEl4PxE.js.map +0 -1
  1083. package/dist/components/p-DrXw6vxx.js +0 -74
  1084. package/dist/components/p-DrXw6vxx.js.map +0 -1
  1085. package/dist/components/p-DxYqml-M.js +0 -94
  1086. package/dist/components/p-DxYqml-M.js.map +0 -1
  1087. package/dist/components/p-FV14KcoH.js +0 -45
  1088. package/dist/components/p-FV14KcoH.js.map +0 -1
  1089. package/dist/components/p-SGoxmRPn.js +0 -136
  1090. package/dist/components/p-SGoxmRPn.js.map +0 -1
  1091. package/dist/components/p-XmT5SQOF.js +0 -35
  1092. package/dist/components/p-XmT5SQOF.js.map +0 -1
  1093. package/dist/components/p-fLdNRQwR.js +0 -63
  1094. package/dist/components/p-fLdNRQwR.js.map +0 -1
  1095. package/dist/components/p-joRNg4Kk.js +0 -58
  1096. package/dist/components/p-joRNg4Kk.js.map +0 -1
  1097. package/dist/components/p-sIePTJnR.js +0 -51
  1098. package/dist/components/p-sIePTJnR.js.map +0 -1
  1099. package/dist/esm/af-accordion-item.entry.js.map +0 -1
  1100. package/dist/esm/af-accordion.entry.js.map +0 -1
  1101. package/dist/esm/af-aspect-ratio.entry.js.map +0 -1
  1102. package/dist/esm/af-button-group.entry.js.map +0 -1
  1103. package/dist/esm/af-button.entry.js.map +0 -1
  1104. package/dist/esm/af-card.entry.js.map +0 -1
  1105. package/dist/esm/af-center.entry.js.map +0 -1
  1106. package/dist/esm/af-checkbox.entry.js.map +0 -1
  1107. package/dist/esm/af-client-carousel.entry.js.map +0 -1
  1108. package/dist/esm/af-color-swatch.entry.js.map +0 -1
  1109. package/dist/esm/af-contact-item.entry.js.map +0 -1
  1110. package/dist/esm/af-container.entry.js.map +0 -1
  1111. package/dist/esm/af-divider.entry.js.map +0 -1
  1112. package/dist/esm/af-feature-accordion.entry.js.map +0 -1
  1113. package/dist/esm/af-feature-card.entry.js.map +0 -1
  1114. package/dist/esm/af-feature-grid.entry.js.map +0 -1
  1115. package/dist/esm/af-fieldset.entry.js.map +0 -1
  1116. package/dist/esm/af-footer-column.entry.js.map +0 -1
  1117. package/dist/esm/af-footer-link.entry.js.map +0 -1
  1118. package/dist/esm/af-footer.entry.js.map +0 -1
  1119. package/dist/esm/af-grid-callout.entry.js.map +0 -1
  1120. package/dist/esm/af-grid.entry.js.map +0 -1
  1121. package/dist/esm/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js.map +0 -1
  1122. package/dist/esm/af-hero.entry.js.map +0 -1
  1123. package/dist/esm/af-icon-box.entry.js.map +0 -1
  1124. package/dist/esm/af-icon-button.entry.js.map +0 -1
  1125. package/dist/esm/af-icon-text.entry.js.map +0 -1
  1126. package/dist/esm/af-icon.entry.js.map +0 -1
  1127. package/dist/esm/af-illustrated-card.entry.js.map +0 -1
  1128. package/dist/esm/af-image.entry.js.map +0 -1
  1129. package/dist/esm/af-in-page-banner.entry.js.map +0 -1
  1130. package/dist/esm/af-inline.entry.js.map +0 -1
  1131. package/dist/esm/af-input.entry.js.map +0 -1
  1132. package/dist/esm/af-logo-well.entry.js.map +0 -1
  1133. package/dist/esm/af-nav-accordion-item.entry.js.map +0 -1
  1134. package/dist/esm/af-nav-accordion.entry.js.map +0 -1
  1135. package/dist/esm/af-nav-card.entry.js.map +0 -1
  1136. package/dist/esm/af-nav-menu-nest.entry.js.map +0 -1
  1137. package/dist/esm/af-nav-menu.entry.js.map +0 -1
  1138. package/dist/esm/af-number-badge.entry.js.map +0 -1
  1139. package/dist/esm/af-numbered-stepper-item.entry.js.map +0 -1
  1140. package/dist/esm/af-numbered-stepper.entry.js.map +0 -1
  1141. package/dist/esm/af-paperclip-decoration.entry.js.map +0 -1
  1142. package/dist/esm/af-progress-line.entry.js.map +0 -1
  1143. package/dist/esm/af-radio.entry.js.map +0 -1
  1144. package/dist/esm/af-section.entry.js.map +0 -1
  1145. package/dist/esm/af-show.entry.js.map +0 -1
  1146. package/dist/esm/af-social-link.entry.js.map +0 -1
  1147. package/dist/esm/af-spacer.entry.js.map +0 -1
  1148. package/dist/esm/af-split-section.entry.js.map +0 -1
  1149. package/dist/esm/af-stack.entry.js.map +0 -1
  1150. package/dist/esm/af-stat.entry.js.map +0 -1
  1151. package/dist/esm/af-stats-row.entry.js.map +0 -1
  1152. package/dist/esm/af-stepper-step.entry.js.map +0 -1
  1153. package/dist/esm/af-stepper.entry.js.map +0 -1
  1154. package/dist/esm/af-switch.entry.js.map +0 -1
  1155. package/dist/esm/af-tab-bar.entry.js.map +0 -1
  1156. package/dist/esm/af-tab.entry.js.map +0 -1
  1157. package/dist/esm/af-tag.entry.js.map +0 -1
  1158. package/dist/esm/af-testimonial-carousel.entry.js.map +0 -1
  1159. package/dist/esm/af-testimonial-stat.entry.js.map +0 -1
  1160. package/dist/esm/af-testimonial.entry.js.map +0 -1
  1161. package/dist/esm/af-text-image-nest.entry.js.map +0 -1
  1162. package/dist/esm/af-text-image.entry.js.map +0 -1
  1163. package/dist/esm/af-textarea.entry.js.map +0 -1
  1164. package/dist/esm/af-theme-override.entry.js.map +0 -1
  1165. package/dist/esm/af-typography-lockup.entry.js.map +0 -1
  1166. package/dist/esm/af-video-container.entry.js.map +0 -1
  1167. package/dist/esm/af-visually-hidden.entry.js.map +0 -1
  1168. package/dist/esm/affinda.js.map +0 -1
  1169. package/dist/esm/index-CYq0zyKH.js.map +0 -1
  1170. package/dist/esm/index.js.map +0 -1
  1171. package/dist/esm/loader.js.map +0 -1
@@ -1 +0,0 @@
1
- {"file":"p-fLdNRQwR.js","mappings":";;AAAA,MAAM,gBAAgB,GAAG,mgBAAmgB;;MCoB/gB,aAAa,iBAAAA,kBAAA,CAAA,MAAA,aAAA,SAAAC,CAAA,CAAA;AAL1B,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAME;;AAEG;AACK,QAAA,IAAM,CAAA,MAAA,GAAsB,CAAC;AAErC;;;;AAIG;AACK,QAAA,IAAO,CAAA,OAAA,GAAuB,UAAU;AAEhD;;AAEG;AACK,QAAA,IAAI,CAAA,IAAA,GAAW,EAAE;AA6B1B;IA3BC,MAAM,GAAA;AACJ,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,KAAK,UAAU;AAC9C,QAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG;AAE/D,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,CAAI,EAAA,CAAA;AACvB,YAAA,MAAM,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,CAAI,EAAA,CAAA;YACxB,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAI,EAAA,CAAA;SAC1B;AAED,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EACH,IAAI,EAAC,KAAK,EACE,YAAA,EAAA,CAAU,OAAA,EAAA,IAAI,CAAC,MAAM,CAAA,EAAG,UAAU,GAAG,QAAQ,GAAG,EAAE,EAAE,EAAA,EAEhE,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,CAAC,WAAW,IAAI,CAAC,OAAO,CAAE,CAAA,GAAG,IAAI;aAClC,EACD,KAAK,EAAE,UAAU,EAEhB,EAAA,IAAI,CAAC,MAAM,CACP,CACF;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-number-badge/af-number-badge.css?tag=af-number-badge&encapsulation=shadow","src/components/af-number-badge/af-number-badge.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n user-select: none;\n flex-shrink: 0;\n}\n\n.badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-family: var(--af-font-family-sans, 'NeuSans', Arial, sans-serif);\n font-weight: 500;\n}\n\n/* In Circle variant - filled soft-clay circle */\n.badge.variant-inCircle {\n border-radius: 50%;\n background-color: var(--af-color-brand-soft-clay, #B09670);\n color: var(--af-color-brand-inkwell, #14343B);\n}\n\n/* Outlined variant - text only in mist-green */\n.badge.variant-outlined {\n background-color: transparent;\n color: var(--af-color-brand-mist-green, #C6D5D1);\n}\n\n","import { Component, h, Prop, Host } from '@stencil/core';\n\nexport type NumberBadgeNumber = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\nexport type NumberBadgeVariant = 'inCircle' | 'outlined';\n\n/**\n * NumberBadge displays numbers 1-10 in either a filled circle or text-only style.\n * Perfect for numbered lists, step indicators, or ordered content.\n * \n * @example\n * ```html\n * <af-number-badge number=\"1\" variant=\"inCircle\" size=\"48\"></af-number-badge>\n * <af-number-badge number=\"5\" variant=\"outlined\" size=\"32\"></af-number-badge>\n * ```\n */\n@Component({\n tag: 'af-number-badge',\n styleUrl: 'af-number-badge.css',\n shadow: true\n})\nexport class AfNumberBadge {\n /**\n * The number to display (1-10)\n */\n @Prop() number: NumberBadgeNumber = 1;\n\n /**\n * Visual variant of the badge\n * - `inCircle` - Number in filled soft-clay circle\n * - `outlined` - Number text only in mist-green\n */\n @Prop() variant: NumberBadgeVariant = 'inCircle';\n\n /**\n * Size of the badge in pixels\n */\n @Prop() size: number = 48;\n\n render() {\n const isInCircle = this.variant === 'inCircle';\n const fontSize = isInCircle ? this.size * 0.4 : this.size * 0.8;\n\n const badgeStyle = {\n width: `${this.size}px`,\n height: `${this.size}px`,\n fontSize: `${fontSize}px`,\n };\n\n return (\n <Host\n role=\"img\"\n aria-label={`Number ${this.number}${isInCircle ? ' badge' : ''}`}\n >\n <span\n class={{\n 'badge': true,\n [`variant-${this.variant}`]: true,\n }}\n style={badgeStyle}\n >\n {this.number}\n </span>\n </Host>\n );\n }\n}\n\n"],"version":3}
@@ -1,58 +0,0 @@
1
- import { p as proxyCustomElement, H, h, c as Host } from './p-Btpdr0Bi.js';
2
-
3
- const afFieldsetCss = ":host{display:block}.fieldset{display:flex;flex-direction:column;border:none;padding:0;margin:0;min-inline-size:0}.fieldset.disabled{opacity:0.5;pointer-events:none}.legend{display:block;font-family:var(--typography-headingfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-book, 500);font-size:var(--font-size-heading-5-desktop, 20px);line-height:var(--line-height-heading-relaxed, 1.2);letter-spacing:var(--letter-spacing-heading, -0.02em);color:var(--af-typography-heading-primary, var(--colour-brand-inkwell, #14343b));padding:0;margin:0 0 12px 0;width:100%}.items{display:flex}.items.orientation-vertical{flex-direction:column;gap:8px;align-items:flex-start}.items.orientation-horizontal{flex-direction:row;flex-wrap:wrap;gap:28px;align-items:center}::slotted(*){flex-shrink:0}.items.orientation-vertical ::slotted(*){width:100%}";
4
-
5
- const AfFieldset = /*@__PURE__*/ proxyCustomElement(class AfFieldset extends H {
6
- constructor(registerHost) {
7
- super();
8
- if (registerHost !== false) {
9
- this.__registerHost();
10
- }
11
- this.__attachShadow();
12
- /**
13
- * The layout orientation of the fieldset items
14
- * - `vertical` - Items stack vertically (default)
15
- * - `horizontal` - Items are laid out horizontally
16
- */
17
- this.orientation = 'vertical';
18
- /**
19
- * Whether the fieldset is disabled (disables all child controls)
20
- */
21
- this.disabled = false;
22
- }
23
- render() {
24
- const fieldsetClasses = {
25
- 'fieldset': true,
26
- [`orientation-${this.orientation}`]: true,
27
- 'disabled': this.disabled
28
- };
29
- const itemsClasses = {
30
- 'items': true,
31
- [`orientation-${this.orientation}`]: true
32
- };
33
- return (h(Host, { key: '367a58328f883d5df31989021ad7dba14ed3ab6c' }, h("fieldset", { key: 'f43a04b8808db04886a0997b42593af2445b185d', class: fieldsetClasses, disabled: this.disabled }, this.legend && (h("legend", { key: 'fc08d5e1464ffeb00005fda04169ceb2654a00b8', class: "legend" }, this.legend)), h("div", { key: '815f2dc77dc417791e1a3d736e1b0ce91250a325', class: itemsClasses }, h("slot", { key: 'd080ec923b57a3ae95cc868be6bf42b57df08e7a' })))));
34
- }
35
- static get style() { return afFieldsetCss; }
36
- }, [257, "af-fieldset", {
37
- "legend": [1],
38
- "orientation": [1],
39
- "disabled": [516]
40
- }]);
41
- function defineCustomElement() {
42
- if (typeof customElements === "undefined") {
43
- return;
44
- }
45
- const components = ["af-fieldset"];
46
- components.forEach(tagName => { switch (tagName) {
47
- case "af-fieldset":
48
- if (!customElements.get(tagName)) {
49
- customElements.define(tagName, AfFieldset);
50
- }
51
- break;
52
- } });
53
- }
54
-
55
- export { AfFieldset as A, defineCustomElement as d };
56
- //# sourceMappingURL=p-joRNg4Kk.js.map
57
-
58
- //# sourceMappingURL=p-joRNg4Kk.js.map
@@ -1 +0,0 @@
1
- {"file":"p-joRNg4Kk.js","mappings":";;AAAA,MAAM,aAAa,GAAG,40BAA40B;;MCar1B,UAAU,iBAAAA,kBAAA,CAAA,MAAA,UAAA,SAAAC,CAAA,CAAA;AALvB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAWE;;;;AAIG;AACK,QAAA,IAAW,CAAA,WAAA,GAA8B,UAAU;AAE3D;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AA2BnD;IAzBC,MAAM,GAAA;AACJ,QAAA,MAAM,eAAe,GAAG;AACtB,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,CAAC,eAAe,IAAI,CAAC,WAAW,CAAE,CAAA,GAAG,IAAI;YACzC,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,CAAC,eAAe,IAAI,CAAC,WAAW,CAAE,CAAA,GAAG;SACtC;AAED,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAU,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA,EACtD,IAAI,CAAC,MAAM,KACV,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,QAAQ,EAAE,EAAA,IAAI,CAAC,MAAM,CAAU,CAC9C,EACD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,YAAY,EAAA,EACtB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACG,CACN;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-fieldset/af-fieldset.css?tag=af-fieldset&encapsulation=shadow","src/components/af-fieldset/af-fieldset.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.fieldset {\n display: flex;\n flex-direction: column;\n border: none;\n padding: 0;\n margin: 0;\n min-inline-size: 0;\n}\n\n.fieldset.disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n\n/* Legend/heading styling - uses heading 5 style */\n.legend {\n display: block;\n font-family: var(--typography-headingfont, 'NeuSans', sans-serif);\n font-weight: var(--font-weight-book, 500);\n font-size: var(--font-size-heading-5-desktop, 20px);\n line-height: var(--line-height-heading-relaxed, 1.2);\n letter-spacing: var(--letter-spacing-heading, -0.02em);\n /* Inherit color from theme context via CSS custom property */\n color: var(--af-typography-heading-primary, var(--colour-brand-inkwell, #14343b));\n padding: 0;\n margin: 0 0 12px 0;\n width: 100%;\n}\n\n/* Items container */\n.items {\n display: flex;\n}\n\n/* Vertical layout */\n.items.orientation-vertical {\n flex-direction: column;\n gap: 8px;\n align-items: flex-start;\n}\n\n/* Horizontal layout */\n.items.orientation-horizontal {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 28px;\n align-items: center;\n}\n\n/* Slotted content styling */\n::slotted(*) {\n flex-shrink: 0;\n}\n\n/* Full width items in vertical layout */\n.items.orientation-vertical ::slotted(*) {\n width: 100%;\n}\n","import { Component, h, Prop, Host } from '@stencil/core';\n\n/**\n * Fieldset component for grouping related form controls.\n * Supports vertical and horizontal layouts with an optional legend/heading.\n * \n * @slot - Form controls (checkboxes, radios, etc.)\n */\n@Component({\n tag: 'af-fieldset',\n styleUrl: 'af-fieldset.css',\n shadow: true\n})\nexport class AfFieldset {\n /**\n * The legend/heading text for the fieldset\n */\n @Prop() legend?: string;\n\n /**\n * The layout orientation of the fieldset items\n * - `vertical` - Items stack vertically (default)\n * - `horizontal` - Items are laid out horizontally\n */\n @Prop() orientation: 'vertical' | 'horizontal' = 'vertical';\n\n /**\n * Whether the fieldset is disabled (disables all child controls)\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n render() {\n const fieldsetClasses = {\n 'fieldset': true,\n [`orientation-${this.orientation}`]: true,\n 'disabled': this.disabled\n };\n\n const itemsClasses = {\n 'items': true,\n [`orientation-${this.orientation}`]: true\n };\n\n return (\n <Host>\n <fieldset class={fieldsetClasses} disabled={this.disabled}>\n {this.legend && (\n <legend class=\"legend\">{this.legend}</legend>\n )}\n <div class={itemsClasses}>\n <slot></slot>\n </div>\n </fieldset>\n </Host>\n );\n }\n}\n\n"],"version":3}
@@ -1,51 +0,0 @@
1
- import { p as proxyCustomElement, H, h, c as Host } from './p-Btpdr0Bi.js';
2
- import { d as defineCustomElement$1 } from './p-FV14KcoH.js';
3
-
4
- const afSectionCss = ".sc-af-section-h{display:block;width:100%}.section.sc-af-section{width:100%;position:relative}.padding-none.sc-af-section{padding:0}.padding-tight.sc-af-section{padding:48px 0}.padding-default.sc-af-section{padding:96px 0}.padding-loose.sc-af-section{padding:120px 0 96px}.theme-white.sc-af-section{background-color:var(--colour-brand-white, #FFFFFF);--af-background-base:var(--colour-brand-white, #FFFFFF);--af-background-base-hover:var(--colour-mistgreen-100, #f4f7f6);--af-background-contrast:var(--colour-brand-mist-green, #c6d5d1);--af-background-level-1:var(--colour-mistgreen-200, #e8eeed);--af-background-level-1-hover:var(--colour-mistgreen-300, #dde6e3);--af-background-border-subtle:var(--colour-mistgreen-200, #e8eeed);--af-background-border-default:var(--colour-mistgreen-400, #d1ddda);--af-background-border-heavy:var(--colour-mistgreen-500, #c6d5d1);--af-background-border-active:var(--colour-softclay-800, #8a7049);--af-background-icon-default:var(--colour-brand-inkwell, #14343b);--af-background-icon-accent:var(--colour-brand-soft-clay, #b09670);--af-typography-heading-primary:var(--colour-brand-inkwell, #14343b);--af-typography-heading-secondary:var(--colour-brand-soft-clay, #b09670);--af-typography-body-dark:var(--colour-brand-inkwell, #14343b);--af-typography-body-default:var(--colour-inkwell-400, #2b484f);--af-typography-body-subtle:var(--colour-inkwell-350, #60767b);--af-button-primary-text:var(--colour-brand-inkwell, #14343b);--af-button-primary-icon:var(--colour-brand-inkwell, #14343b);--af-button-primary-bg:var(--colour-brand-ice, #a6fffb);--af-button-primary-bg-hover:var(--colour-ice-600, #95e6e2);--af-button-primary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-secondary-text:var(--colour-brand-inkwell, #14343b);--af-button-secondary-icon:var(--colour-brand-inkwell, #14343b);--af-button-secondary-bg:transparent;--af-button-secondary-bg-hover:rgba(0, 0, 0, 0.08);--af-button-secondary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-ghost-text:var(--colour-brand-inkwell, #14343b);--af-button-ghost-icon:var(--colour-brand-inkwell, #14343b);--af-button-ghost-stroke:var(--colour-brand-soft-clay, #B09670);--af-input-label:var(--af-typography-body-dark);--af-input-description:var(--af-typography-body-default);--af-input-text:var(--af-typography-body-dark);--af-input-placeholder:var(--af-typography-body-subtle);--af-input-icon:var(--af-background-icon-default);--af-input-bg:var(--colour-brand-white, #ffffff);--af-input-bg-hover:var(--colour-mistgreen-100, #f4f7f6);--af-input-bg-disabled:var(--af-background-level-1);--af-input-border:var(--af-background-border-default);--af-input-border-hover:var(--af-background-border-heavy);--af-input-border-active:var(--af-typography-body-dark);--af-input-border-error:var(--colour-error, #be292a);--af-input-error:var(--colour-error, #be292a);--af-input-focus-ring:var(--af-typography-body-dark);--af-form-control-bg:var(--colour-brand-white, #ffffff);--af-form-control-bg-checked:var(--colour-brand-inkwell, #14343b);--af-form-control-bg-disabled:var(--colour-mistgreen-200, #e8ebeb);--af-form-control-bg-checked-disabled:var(--colour-inkwell-350, #708380);--af-form-control-stroke:var(--colour-mistgreen-500, #d0d6d8);--af-form-control-stroke-hover:var(--colour-brand-inkwell, #14343b);--af-form-control-stroke-disabled:var(--colour-mistgreen-500, #d0d6d8);--af-form-control-icon:var(--colour-brand-white, #ffffff);--af-form-control-label:var(--colour-brand-inkwell, #14343b)}.theme-inkwell.sc-af-section{background-color:var(--colour-brand-inkwell, #14343B);--af-background-base:var(--colour-brand-inkwell, #14343b);--af-background-base-hover:var(--colour-inkwell-600, #102a2f);--af-background-contrast:var(--colour-inkwell-700, #102a2f);--af-background-level-1:var(--colour-inkwell-450, #203e45);--af-background-level-1-hover:var(--colour-inkwell-400, #2b484f);--af-background-border-subtle:var(--colour-inkwell-450, #203e45);--af-background-border-default:var(--colour-inkwell-400, #2b484f);--af-background-border-heavy:var(--colour-inkwell-700, #102a2f);--af-background-border-active:var(--colour-brand-ice, #a6fffb);--af-background-icon-default:var(--colour-brand-white, #ffffff);--af-background-icon-accent:var(--colour-brand-ice, #a6fffb);--af-typography-heading-primary:var(--colour-brand-mist-green, #c6d5d1);--af-typography-heading-secondary:var(--colour-brand-white, #ffffff);--af-typography-body-dark:var(--colour-brand-white, #ffffff);--af-typography-body-default:var(--colour-inkwell-100, #d0d6d8);--af-typography-body-subtle:var(--colour-inkwell-200, #a1aeb1);--af-button-primary-text:var(--colour-brand-inkwell, #14343b);--af-button-primary-icon:var(--colour-brand-inkwell, #14343b);--af-button-primary-bg:var(--colour-brand-ice, #a6fffb);--af-button-primary-bg-hover:var(--colour-ice-600, #95e6e2);--af-button-primary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-secondary-text:var(--colour-brand-white, #ffffff);--af-button-secondary-icon:var(--colour-brand-white, #ffffff);--af-button-secondary-bg:transparent;--af-button-secondary-bg-hover:rgba(255, 255, 255, 0.08);--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-button-ghost-stroke:var(--colour-brand-ice, #A6FFFB);--af-input-label:var(--af-typography-body-dark);--af-input-description:var(--af-typography-body-default);--af-input-text:var(--af-typography-body-dark);--af-input-placeholder:var(--af-typography-body-subtle);--af-input-icon:var(--af-background-icon-default);--af-input-bg:var(--colour-inkwell-450, #203e45);--af-input-bg-hover:var(--colour-inkwell-400, #2b484f);--af-input-bg-disabled:var(--colour-inkwell-600, #102a2f);--af-input-border:var(--af-background-border-default);--af-input-border-hover:var(--af-background-border-heavy);--af-input-border-active:var(--colour-brand-ice, #a6fffb);--af-input-border-error:var(--colour-error, #be292a);--af-input-error:var(--colour-error, #be292a);--af-input-focus-ring:var(--colour-brand-ice, #a6fffb);--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)}.theme-mist-green.sc-af-section{background-color:var(--colour-brand-mist-green, #C6D5D1);--af-background-base:var(--colour-brand-mist-green, #c6d5d1);--af-background-base-hover:var(--colour-mistgreen-600, #b2c0bc);--af-background-contrast:var(--colour-brand-soft-clay, #b09670);--af-background-level-1:var(--colour-mistgreen-300, #dde6e3);--af-background-level-1-hover:var(--colour-mistgreen-400, #d1ddda);--af-background-border-subtle:var(--colour-mistgreen-600, #b2c0bc);--af-background-border-default:var(--colour-mistgreen-700, #9eaaa7);--af-background-border-heavy:var(--colour-mistgreen-700, #9eaaa7);--af-background-border-active:var(--colour-softclay-800, #8a7049);--af-background-icon-default:var(--colour-brand-inkwell, #14343b);--af-background-icon-accent:var(--colour-brand-soft-clay, #b09670);--af-typography-heading-primary:var(--colour-brand-inkwell, #14343b);--af-typography-heading-secondary:var(--colour-brand-soft-clay, #b09670);--af-typography-body-dark:var(--colour-brand-inkwell, #14343b);--af-typography-body-default:var(--colour-inkwell-400, #2b484f);--af-typography-body-subtle:var(--colour-inkwell-350, #60767b);--af-button-primary-text:var(--colour-brand-inkwell, #14343b);--af-button-primary-icon:var(--colour-brand-inkwell, #14343b);--af-button-primary-bg:var(--colour-brand-ice, #a6fffb);--af-button-primary-bg-hover:var(--colour-ice-600, #95e6e2);--af-button-primary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-secondary-text:var(--colour-brand-inkwell, #14343b);--af-button-secondary-icon:var(--colour-brand-inkwell, #14343b);--af-button-secondary-bg:transparent;--af-button-secondary-bg-hover:rgba(0, 0, 0, 0.08);--af-button-secondary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-ghost-text:var(--colour-brand-inkwell, #14343b);--af-button-ghost-icon:var(--colour-brand-inkwell, #14343b);--af-button-ghost-stroke:var(--colour-brand-soft-clay, #B09670);--af-input-label:var(--af-typography-body-dark);--af-input-description:var(--af-typography-body-default);--af-input-text:var(--af-typography-body-dark);--af-input-placeholder:var(--af-typography-body-subtle);--af-input-icon:var(--af-background-icon-default);--af-input-bg:var(--colour-brand-white, #ffffff);--af-input-bg-hover:var(--colour-mistgreen-100, #f4f7f6);--af-input-bg-disabled:var(--af-background-level-1);--af-input-border:var(--af-background-border-default);--af-input-border-hover:var(--af-background-border-heavy);--af-input-border-active:var(--af-typography-body-dark);--af-input-border-error:var(--colour-error, #be292a);--af-input-error:var(--colour-error, #be292a);--af-input-focus-ring:var(--af-typography-body-dark);--af-form-control-bg:var(--colour-brand-white, #ffffff);--af-form-control-bg-checked:var(--colour-brand-inkwell, #14343b);--af-form-control-bg-disabled:var(--colour-mistgreen-300, #dde6e3);--af-form-control-bg-checked-disabled:var(--colour-inkwell-350, #708380);--af-form-control-stroke:var(--colour-mistgreen-700, #9eaaa7);--af-form-control-stroke-hover:var(--colour-brand-inkwell, #14343b);--af-form-control-stroke-disabled:var(--colour-mistgreen-600, #b2c0bc);--af-form-control-icon:var(--colour-brand-white, #ffffff);--af-form-control-label:var(--colour-brand-inkwell, #14343b)}.theme-soft-clay.sc-af-section{background-color:var(--colour-softclay-400, #c0ab8d);--af-background-base:var(--colour-softclay-400, #c0ab8d);--af-background-base-hover:var(--colour-softclay-500, #b09670);--af-background-contrast:var(--colour-brand-mist-green, #c6d5d1);--af-background-level-1:var(--colour-softclay-500, #b09670);--af-background-level-1-hover:var(--colour-softclay-600, #9e8765);--af-background-border-subtle:var(--colour-softclay-600, #9e8765);--af-background-border-default:var(--colour-softclay-700, #8d785a);--af-background-border-heavy:var(--colour-brand-inkwell, #14343b);--af-background-border-active:var(--colour-brand-ice, #a6fffb);--af-background-icon-default:var(--colour-brand-inkwell, #14343b);--af-background-icon-accent:var(--colour-brand-ivory-paper, #fff9ee);--af-typography-heading-primary:var(--colour-brand-inkwell, #14343b);--af-typography-heading-secondary:var(--colour-brand-ivory-paper, #fff9ee);--af-typography-body-dark:var(--colour-brand-inkwell, #14343b);--af-typography-body-default:var(--colour-inkwell-400, #2b484f);--af-typography-body-subtle:var(--colour-inkwell-350, #60767b);--af-button-primary-text:var(--colour-brand-inkwell, #14343b);--af-button-primary-icon:var(--colour-brand-inkwell, #14343b);--af-button-primary-bg:var(--colour-brand-ice, #a6fffb);--af-button-primary-bg-hover:var(--colour-ice-600, #95e6e2);--af-button-primary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-secondary-text:var(--colour-brand-inkwell, #14343b);--af-button-secondary-icon:var(--colour-brand-inkwell, #14343b);--af-button-secondary-bg:transparent;--af-button-secondary-bg-hover:rgba(0, 0, 0, 0.08);--af-button-secondary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-ghost-text:var(--colour-brand-inkwell, #14343b);--af-button-ghost-icon:var(--colour-brand-inkwell, #14343b);--af-button-ghost-stroke:var(--colour-brand-inkwell, #14343b);--af-input-label:var(--af-typography-body-dark);--af-input-description:var(--af-typography-body-default);--af-input-text:var(--af-typography-body-dark);--af-input-placeholder:var(--af-typography-body-subtle);--af-input-icon:var(--af-background-icon-default);--af-input-bg:var(--colour-brand-white, #ffffff);--af-input-bg-hover:var(--colour-mistgreen-100, #f4f7f6);--af-input-bg-disabled:var(--af-background-level-1);--af-input-border:var(--af-background-border-default);--af-input-border-hover:var(--af-background-border-heavy);--af-input-border-active:var(--af-typography-body-dark);--af-input-border-error:var(--colour-error, #be292a);--af-input-error:var(--colour-error, #be292a);--af-input-focus-ring:var(--af-typography-body-dark);--af-form-control-bg:var(--colour-brand-white, #ffffff);--af-form-control-bg-checked:var(--colour-brand-inkwell, #14343b);--af-form-control-bg-disabled:var(--colour-softclay-300, #d0c1a8);--af-form-control-bg-checked-disabled:var(--colour-inkwell-350, #708380);--af-form-control-stroke:var(--colour-softclay-700, #8d785a);--af-form-control-stroke-hover:var(--colour-brand-inkwell, #14343b);--af-form-control-stroke-disabled:var(--colour-softclay-600, #9e8765);--af-form-control-icon:var(--colour-brand-white, #ffffff);--af-form-control-label:var(--colour-brand-inkwell, #14343b)}.theme-white-ivory.sc-af-section{background-color:var(--colour-brand-ivory-paper, #fff9ee);--af-background-base:var(--colour-brand-ivory-paper, #fff9ee);--af-background-base-hover:var(--colour-ivory-100, #fff5e0);--af-background-contrast:var(--colour-brand-mist-green, #c6d5d1);--af-background-level-1:var(--colour-ivory-200, #ffefcc);--af-background-level-1-hover:var(--colour-ivory-300, #ffe9b8);--af-background-border-subtle:var(--colour-ivory-200, #ffefcc);--af-background-border-default:var(--colour-ivory-400, #ffe3a3);--af-background-border-heavy:var(--colour-brand-soft-clay, #b09670);--af-background-border-active:var(--colour-brand-soft-clay, #b09670);--af-background-icon-default:var(--colour-brand-inkwell, #14343b);--af-background-icon-accent:var(--colour-brand-soft-clay, #b09670);--af-typography-heading-primary:var(--colour-brand-inkwell, #14343b);--af-typography-heading-secondary:var(--colour-brand-soft-clay, #b09670);--af-typography-body-dark:var(--colour-brand-inkwell, #14343b);--af-typography-body-default:var(--colour-inkwell-400, #2b484f);--af-typography-body-subtle:var(--colour-inkwell-350, #60767b);--af-button-primary-text:var(--colour-brand-inkwell, #14343b);--af-button-primary-icon:var(--colour-brand-inkwell, #14343b);--af-button-primary-bg:var(--colour-brand-ice, #a6fffb);--af-button-primary-bg-hover:var(--colour-ice-600, #95e6e2);--af-button-primary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-secondary-text:var(--colour-brand-inkwell, #14343b);--af-button-secondary-icon:var(--colour-brand-inkwell, #14343b);--af-button-secondary-bg:transparent;--af-button-secondary-bg-hover:rgba(0, 0, 0, 0.08);--af-button-secondary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-ghost-text:var(--colour-brand-inkwell, #14343b);--af-button-ghost-icon:var(--colour-brand-inkwell, #14343b);--af-button-ghost-stroke:var(--colour-brand-soft-clay, #b09670);--af-input-label:var(--af-typography-body-dark);--af-input-description:var(--af-typography-body-default);--af-input-text:var(--af-typography-body-dark);--af-input-placeholder:var(--af-typography-body-subtle);--af-input-icon:var(--af-background-icon-default);--af-input-bg:var(--colour-brand-white, #ffffff);--af-input-bg-hover:var(--colour-ivory-100, #fff5e0);--af-input-bg-disabled:var(--af-background-level-1);--af-input-border:var(--af-background-border-default);--af-input-border-hover:var(--af-background-border-heavy);--af-input-border-active:var(--af-typography-body-dark);--af-input-border-error:var(--colour-error, #be292a);--af-input-error:var(--colour-error, #be292a);--af-input-focus-ring:var(--af-typography-body-dark);--af-form-control-bg:var(--colour-brand-white, #ffffff);--af-form-control-bg-checked:var(--colour-brand-inkwell, #14343b);--af-form-control-bg-disabled:var(--colour-ivory-200, #ffefcc);--af-form-control-bg-checked-disabled:var(--colour-inkwell-350, #708380);--af-form-control-stroke:var(--colour-ivory-400, #ffe3a3);--af-form-control-stroke-hover:var(--colour-brand-inkwell, #14343b);--af-form-control-stroke-disabled:var(--colour-ivory-300, #ffe9b8);--af-form-control-icon:var(--colour-brand-white, #ffffff);--af-form-control-label:var(--colour-brand-inkwell, #14343b)}@media (max-width: 768px){.padding-tight.sc-af-section{padding:32px 0}.padding-default.sc-af-section{padding:64px 0}.padding-loose.sc-af-section{padding:80px 0 64px}}";
5
-
6
- const AfSection = /*@__PURE__*/ proxyCustomElement(class AfSection extends H {
7
- constructor(registerHost) {
8
- super();
9
- if (registerHost !== false) {
10
- this.__registerHost();
11
- }
12
- /** Padding variant */
13
- this.padding = 'default';
14
- /** Theme - sets background color and provides theme context to children */
15
- this.theme = 'white';
16
- /** Whether to include a Container wrapper */
17
- this.container = true;
18
- }
19
- render() {
20
- const content = h("slot", { key: 'fd7304dd713f0cbad475910d56fd9e2622068fad' });
21
- return (h(Host, { key: 'f1758977b8ce080e03631629507f33759d1696d9' }, h("div", { key: 'af0fd30917df8a59cf7d441e9346ed643672aaec', class: `section padding-${this.padding} theme-${this.theme}` }, this.container ? (h("af-container", null, content)) : content)));
22
- }
23
- static get style() { return afSectionCss; }
24
- }, [262, "af-section", {
25
- "padding": [1],
26
- "theme": [1],
27
- "container": [4]
28
- }]);
29
- function defineCustomElement() {
30
- if (typeof customElements === "undefined") {
31
- return;
32
- }
33
- const components = ["af-section", "af-container"];
34
- components.forEach(tagName => { switch (tagName) {
35
- case "af-section":
36
- if (!customElements.get(tagName)) {
37
- customElements.define(tagName, AfSection);
38
- }
39
- break;
40
- case "af-container":
41
- if (!customElements.get(tagName)) {
42
- defineCustomElement$1();
43
- }
44
- break;
45
- } });
46
- }
47
-
48
- export { AfSection as A, defineCustomElement as d };
49
- //# sourceMappingURL=p-sIePTJnR.js.map
50
-
51
- //# sourceMappingURL=p-sIePTJnR.js.map
@@ -1 +0,0 @@
1
- {"file":"p-sIePTJnR.js","mappings":";;;AAAA,MAAM,YAAY,GAAG,olgBAAolgB;;MCa5lgB,SAAS,iBAAAA,kBAAA,CAAA,MAAA,SAAA,SAAAC,CAAA,CAAA;AANtB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAQU,QAAA,IAAO,CAAA,OAAA,GAAY,SAAS;;AAG5B,QAAA,IAAK,CAAA,KAAA,GAAU,OAAO;;AAGtB,QAAA,IAAS,CAAA,SAAA,GAAY,IAAI;AAelC;IAbC,MAAM,GAAA;AACJ,QAAA,MAAM,OAAO,GAAG,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa;QAE7B,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,CAAmB,gBAAA,EAAA,IAAI,CAAC,OAAO,CAAU,OAAA,EAAA,IAAI,CAAC,KAAK,CAAA,CAAE,EAAA,EAC9D,IAAI,CAAC,SAAS,IACb,CAAe,CAAA,cAAA,EAAA,IAAA,EAAA,OAAO,CAAgB,IACpC,OAAO,CACP,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-section/af-section.css?tag=af-section&encapsulation=scoped","src/components/af-section/af-section.tsx"],"sourcesContent":["/**\n * Section Component Styles\n * \n * Provides themed containers with proper spacing.\n * Theme classes set CSS custom properties that child components consume.\n */\n\n:host {\n display: block;\n width: 100%;\n}\n\n.section {\n width: 100%;\n position: relative;\n}\n\n/* Padding variants */\n.padding-none {\n padding: 0;\n}\n\n.padding-tight {\n padding: 48px 0;\n}\n\n.padding-default {\n padding: 96px 0;\n}\n\n.padding-loose {\n padding: 120px 0 96px;\n}\n\n/* ==========================================================================\n WHITE THEME\n ========================================================================== */\n\n.theme-white {\n background-color: var(--colour-brand-white, #FFFFFF);\n \n /* Background tokens */\n --af-background-base: var(--colour-brand-white, #FFFFFF);\n --af-background-base-hover: var(--colour-mistgreen-100, #f4f7f6);\n --af-background-contrast: var(--colour-brand-mist-green, #c6d5d1);\n --af-background-level-1: var(--colour-mistgreen-200, #e8eeed);\n --af-background-level-1-hover: var(--colour-mistgreen-300, #dde6e3);\n --af-background-border-subtle: var(--colour-mistgreen-200, #e8eeed);\n --af-background-border-default: var(--colour-mistgreen-400, #d1ddda);\n --af-background-border-heavy: var(--colour-mistgreen-500, #c6d5d1);\n --af-background-border-active: var(--colour-softclay-800, #8a7049);\n --af-background-icon-default: var(--colour-brand-inkwell, #14343b);\n --af-background-icon-accent: var(--colour-brand-soft-clay, #b09670);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-soft-clay, #b09670);\n --af-typography-body-dark: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-typography-body-subtle: var(--colour-inkwell-350, #60767b);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(0, 0, 0, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-stroke: var(--colour-brand-soft-clay, #B09670);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-brand-white, #ffffff);\n --af-input-bg-hover: var(--colour-mistgreen-100, #f4f7f6);\n --af-input-bg-disabled: var(--af-background-level-1);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--af-typography-body-dark);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--af-typography-body-dark);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-brand-white, #ffffff);\n --af-form-control-bg-checked: var(--colour-brand-inkwell, #14343b);\n --af-form-control-bg-disabled: var(--colour-mistgreen-200, #e8ebeb);\n --af-form-control-bg-checked-disabled: var(--colour-inkwell-350, #708380);\n --af-form-control-stroke: var(--colour-mistgreen-500, #d0d6d8);\n --af-form-control-stroke-hover: var(--colour-brand-inkwell, #14343b);\n --af-form-control-stroke-disabled: var(--colour-mistgreen-500, #d0d6d8);\n --af-form-control-icon: var(--colour-brand-white, #ffffff);\n --af-form-control-label: var(--colour-brand-inkwell, #14343b);\n}\n\n/* ==========================================================================\n INKWELL THEME (Dark)\n ========================================================================== */\n\n.theme-inkwell {\n background-color: var(--colour-brand-inkwell, #14343B);\n \n /* Background tokens */\n --af-background-base: var(--colour-brand-inkwell, #14343b);\n --af-background-base-hover: var(--colour-inkwell-600, #102a2f);\n --af-background-contrast: var(--colour-inkwell-700, #102a2f);\n --af-background-level-1: var(--colour-inkwell-450, #203e45);\n --af-background-level-1-hover: var(--colour-inkwell-400, #2b484f);\n --af-background-border-subtle: var(--colour-inkwell-450, #203e45);\n --af-background-border-default: var(--colour-inkwell-400, #2b484f);\n --af-background-border-heavy: var(--colour-inkwell-700, #102a2f);\n --af-background-border-active: var(--colour-brand-ice, #a6fffb);\n --af-background-icon-default: var(--colour-brand-white, #ffffff);\n --af-background-icon-accent: var(--colour-brand-ice, #a6fffb);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-mist-green, #c6d5d1);\n --af-typography-heading-secondary: var(--colour-brand-white, #ffffff);\n --af-typography-body-dark: var(--colour-brand-white, #ffffff);\n --af-typography-body-default: var(--colour-inkwell-100, #d0d6d8);\n --af-typography-body-subtle: var(--colour-inkwell-200, #a1aeb1);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-white, #ffffff);\n --af-button-secondary-icon: var(--colour-brand-white, #ffffff);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(255, 255, 255, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-white, #ffffff);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-white, #ffffff);\n --af-button-ghost-icon: var(--colour-brand-white, #ffffff);\n --af-button-ghost-stroke: var(--colour-brand-ice, #A6FFFB);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-inkwell-450, #203e45);\n --af-input-bg-hover: var(--colour-inkwell-400, #2b484f);\n --af-input-bg-disabled: var(--colour-inkwell-600, #102a2f);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--colour-brand-ice, #a6fffb);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--colour-brand-ice, #a6fffb);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-inkwell-450, #203e45);\n --af-form-control-bg-checked: var(--colour-brand-mist-green, #c6d5d1);\n --af-form-control-bg-disabled: var(--colour-inkwell-400, #2b484f);\n --af-form-control-bg-checked-disabled: var(--colour-mistgreen-700, #9eaaa7);\n --af-form-control-stroke: var(--colour-inkwell-350, #60767b);\n --af-form-control-stroke-hover: var(--colour-brand-white, #ffffff);\n --af-form-control-stroke-disabled: var(--colour-inkwell-400, #2b484f);\n --af-form-control-icon: var(--colour-brand-inkwell, #14343b);\n --af-form-control-label: var(--colour-brand-white, #ffffff);\n}\n\n/* ==========================================================================\n MIST-GREEN THEME\n ========================================================================== */\n\n.theme-mist-green {\n background-color: var(--colour-brand-mist-green, #C6D5D1);\n \n /* Background tokens */\n --af-background-base: var(--colour-brand-mist-green, #c6d5d1);\n --af-background-base-hover: var(--colour-mistgreen-600, #b2c0bc);\n --af-background-contrast: var(--colour-brand-soft-clay, #b09670);\n --af-background-level-1: var(--colour-mistgreen-300, #dde6e3);\n --af-background-level-1-hover: var(--colour-mistgreen-400, #d1ddda);\n --af-background-border-subtle: var(--colour-mistgreen-600, #b2c0bc);\n --af-background-border-default: var(--colour-mistgreen-700, #9eaaa7);\n --af-background-border-heavy: var(--colour-mistgreen-700, #9eaaa7);\n --af-background-border-active: var(--colour-softclay-800, #8a7049);\n --af-background-icon-default: var(--colour-brand-inkwell, #14343b);\n --af-background-icon-accent: var(--colour-brand-soft-clay, #b09670);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-soft-clay, #b09670);\n --af-typography-body-dark: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-typography-body-subtle: var(--colour-inkwell-350, #60767b);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(0, 0, 0, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-stroke: var(--colour-brand-soft-clay, #B09670);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-brand-white, #ffffff);\n --af-input-bg-hover: var(--colour-mistgreen-100, #f4f7f6);\n --af-input-bg-disabled: var(--af-background-level-1);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--af-typography-body-dark);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--af-typography-body-dark);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-brand-white, #ffffff);\n --af-form-control-bg-checked: var(--colour-brand-inkwell, #14343b);\n --af-form-control-bg-disabled: var(--colour-mistgreen-300, #dde6e3);\n --af-form-control-bg-checked-disabled: var(--colour-inkwell-350, #708380);\n --af-form-control-stroke: var(--colour-mistgreen-700, #9eaaa7);\n --af-form-control-stroke-hover: var(--colour-brand-inkwell, #14343b);\n --af-form-control-stroke-disabled: var(--colour-mistgreen-600, #b2c0bc);\n --af-form-control-icon: var(--colour-brand-white, #ffffff);\n --af-form-control-label: var(--colour-brand-inkwell, #14343b);\n}\n\n/* ==========================================================================\n SOFT-CLAY THEME\n ========================================================================== */\n\n.theme-soft-clay {\n background-color: var(--colour-softclay-400, #c0ab8d);\n \n /* Background tokens */\n --af-background-base: var(--colour-softclay-400, #c0ab8d);\n --af-background-base-hover: var(--colour-softclay-500, #b09670);\n --af-background-contrast: var(--colour-brand-mist-green, #c6d5d1);\n --af-background-level-1: var(--colour-softclay-500, #b09670);\n --af-background-level-1-hover: var(--colour-softclay-600, #9e8765);\n --af-background-border-subtle: var(--colour-softclay-600, #9e8765);\n --af-background-border-default: var(--colour-softclay-700, #8d785a);\n --af-background-border-heavy: var(--colour-brand-inkwell, #14343b);\n --af-background-border-active: var(--colour-brand-ice, #a6fffb);\n --af-background-icon-default: var(--colour-brand-inkwell, #14343b);\n --af-background-icon-accent: var(--colour-brand-ivory-paper, #fff9ee);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-ivory-paper, #fff9ee);\n --af-typography-body-dark: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-typography-body-subtle: var(--colour-inkwell-350, #60767b);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(0, 0, 0, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-brand-white, #ffffff);\n --af-input-bg-hover: var(--colour-mistgreen-100, #f4f7f6);\n --af-input-bg-disabled: var(--af-background-level-1);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--af-typography-body-dark);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--af-typography-body-dark);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-brand-white, #ffffff);\n --af-form-control-bg-checked: var(--colour-brand-inkwell, #14343b);\n --af-form-control-bg-disabled: var(--colour-softclay-300, #d0c1a8);\n --af-form-control-bg-checked-disabled: var(--colour-inkwell-350, #708380);\n --af-form-control-stroke: var(--colour-softclay-700, #8d785a);\n --af-form-control-stroke-hover: var(--colour-brand-inkwell, #14343b);\n --af-form-control-stroke-disabled: var(--colour-softclay-600, #9e8765);\n --af-form-control-icon: var(--colour-brand-white, #ffffff);\n --af-form-control-label: var(--colour-brand-inkwell, #14343b);\n}\n\n/* ==========================================================================\n WHITE-IVORY THEME\n ========================================================================== */\n\n.theme-white-ivory {\n background-color: var(--colour-brand-ivory-paper, #fff9ee);\n \n /* Background tokens */\n --af-background-base: var(--colour-brand-ivory-paper, #fff9ee);\n --af-background-base-hover: var(--colour-ivory-100, #fff5e0);\n --af-background-contrast: var(--colour-brand-mist-green, #c6d5d1);\n --af-background-level-1: var(--colour-ivory-200, #ffefcc);\n --af-background-level-1-hover: var(--colour-ivory-300, #ffe9b8);\n --af-background-border-subtle: var(--colour-ivory-200, #ffefcc);\n --af-background-border-default: var(--colour-ivory-400, #ffe3a3);\n --af-background-border-heavy: var(--colour-brand-soft-clay, #b09670);\n --af-background-border-active: var(--colour-brand-soft-clay, #b09670);\n --af-background-icon-default: var(--colour-brand-inkwell, #14343b);\n --af-background-icon-accent: var(--colour-brand-soft-clay, #b09670);\n \n /* Typography tokens */\n --af-typography-heading-primary: var(--colour-brand-inkwell, #14343b);\n --af-typography-heading-secondary: var(--colour-brand-soft-clay, #b09670);\n --af-typography-body-dark: var(--colour-brand-inkwell, #14343b);\n --af-typography-body-default: var(--colour-inkwell-400, #2b484f);\n --af-typography-body-subtle: var(--colour-inkwell-350, #60767b);\n \n /* Button - Primary */\n --af-button-primary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-primary-bg: var(--colour-brand-ice, #a6fffb);\n --af-button-primary-bg-hover: var(--colour-ice-600, #95e6e2);\n --af-button-primary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Secondary */\n --af-button-secondary-text: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-secondary-bg: transparent;\n --af-button-secondary-bg-hover: rgba(0, 0, 0, 0.08);\n --af-button-secondary-stroke: var(--colour-brand-inkwell, #14343b);\n \n /* Button - Tertiary */\n --af-button-ghost-text: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-icon: var(--colour-brand-inkwell, #14343b);\n --af-button-ghost-stroke: var(--colour-brand-soft-clay, #b09670);\n \n /* Input tokens */\n --af-input-label: var(--af-typography-body-dark);\n --af-input-description: var(--af-typography-body-default);\n --af-input-text: var(--af-typography-body-dark);\n --af-input-placeholder: var(--af-typography-body-subtle);\n --af-input-icon: var(--af-background-icon-default);\n --af-input-bg: var(--colour-brand-white, #ffffff);\n --af-input-bg-hover: var(--colour-ivory-100, #fff5e0);\n --af-input-bg-disabled: var(--af-background-level-1);\n --af-input-border: var(--af-background-border-default);\n --af-input-border-hover: var(--af-background-border-heavy);\n --af-input-border-active: var(--af-typography-body-dark);\n --af-input-border-error: var(--colour-error, #be292a);\n --af-input-error: var(--colour-error, #be292a);\n --af-input-focus-ring: var(--af-typography-body-dark);\n \n /* Form control tokens (checkbox, radio, switch) */\n --af-form-control-bg: var(--colour-brand-white, #ffffff);\n --af-form-control-bg-checked: var(--colour-brand-inkwell, #14343b);\n --af-form-control-bg-disabled: var(--colour-ivory-200, #ffefcc);\n --af-form-control-bg-checked-disabled: var(--colour-inkwell-350, #708380);\n --af-form-control-stroke: var(--colour-ivory-400, #ffe3a3);\n --af-form-control-stroke-hover: var(--colour-brand-inkwell, #14343b);\n --af-form-control-stroke-disabled: var(--colour-ivory-300, #ffe9b8);\n --af-form-control-icon: var(--colour-brand-white, #ffffff);\n --af-form-control-label: var(--colour-brand-inkwell, #14343b);\n}\n\n/* Mobile adjustments */\n/* mobile-only */\n@media (max-width: 768px) {\n .padding-tight {\n padding: 32px 0;\n }\n \n .padding-default {\n padding: 64px 0;\n }\n \n .padding-loose {\n padding: 80px 0 64px;\n }\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\nimport type { Padding, Theme } from '../../types';\n\n/**\n * Section layout component for consistent spacing and backgrounds.\n * Sets theme context for all child components via CSS custom properties.\n */\n@Component({\n tag: 'af-section',\n styleUrl: 'af-section.css',\n shadow: false,\n scoped: true,\n})\nexport class AfSection {\n /** Padding variant */\n @Prop() padding: Padding = 'default';\n\n /** Theme - sets background color and provides theme context to children */\n @Prop() theme: Theme = 'white';\n \n /** Whether to include a Container wrapper */\n @Prop() container: boolean = true;\n\n render() {\n const content = <slot></slot>;\n \n return (\n <Host>\n <div class={`section padding-${this.padding} theme-${this.theme}`}>\n {this.container ? (\n <af-container>{content}</af-container>\n ) : content}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-accordion-item.entry.js","sources":["src/components/af-accordion-item/af-accordion-item.css?tag=af-accordion-item&encapsulation=shadow","src/components/af-accordion-item/af-accordion-item.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.accordion-item {\n width: 100%;\n}\n\n/* Trigger button - clickable header */\n.trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 16px 0;\n background: transparent;\n border: none;\n border-bottom: 1px solid var(--af-background-border-subtle, #e8eeed);\n cursor: pointer;\n font: inherit;\n text-align: left;\n color: var(--af-typography-body-dark, #14343b);\n transition: background-color var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));\n}\n\n.trigger:hover:not(:disabled) {\n background-color: var(--af-background-base-hover, rgba(20, 52, 59, 0.02));\n}\n\n.trigger:focus-visible {\n outline: 2px solid var(--af-background-border-active, #8a7049);\n outline-offset: -2px;\n}\n\n.trigger:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.trigger-content {\n flex: 1;\n min-width: 0;\n}\n\n/* Chevron indicator */\n.chevron {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n color: var(--af-typography-body-dark, #14343b);\n transition: transform var(--motion-duration-slow, 300ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));\n}\n\n.chevron.is-open {\n transform: rotate(180deg);\n}\n\n/* Content wrapper - handles animation */\n.content-wrapper {\n overflow: hidden;\n transition: max-height var(--motion-duration-slow, 300ms) var(--motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .trigger,\n .chevron,\n .content-wrapper {\n transition-duration: 0.01ms;\n }\n}\n\n.content {\n padding: 0;\n}\n\n/* Disabled state */\n:host(.is-disabled) .trigger {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n:host(.is-disabled) .trigger:hover {\n background-color: transparent;\n}\n\n/* Open state styling */\n:host(.is-open) .trigger {\n border-bottom-color: transparent;\n}\n\n","import { Component, h, Prop, Host, Event, EventEmitter, Element, State, Watch, Method } from '@stencil/core';\n\n/**\n * A single collapsible accordion item with header and content.\n * Can be used standalone or within an af-accordion container.\n *\n * @slot trigger - The clickable header content\n * @slot - The collapsible content (default slot)\n */\n@Component({\n tag: 'af-accordion-item',\n styleUrl: 'af-accordion-item.css',\n shadow: true,\n})\nexport class AfAccordionItem {\n @Element() el!: HTMLElement;\n\n /**\n * Unique identifier for this accordion item.\n * Used by parent af-accordion to track open state.\n */\n @Prop({ reflect: true }) itemId!: string;\n\n /**\n * Whether this item is currently expanded\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = false;\n\n /**\n * Whether this item is disabled (cannot be toggled)\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Emitted when the accordion item is toggled\n */\n @Event({ eventName: 'af-accordion-toggle' }) accordionToggle!: EventEmitter<{ itemId: string; open: boolean }>;\n\n @State() contentHeight: number = 0;\n\n private contentRef?: HTMLElement;\n private resizeObserver?: ResizeObserver;\n\n @Watch('open')\n handleOpenChange(newValue: boolean) {\n if (newValue) {\n this.measureContent();\n }\n }\n\n componentDidLoad() {\n if (this.open) {\n this.measureContent();\n }\n\n this.resizeObserver = new ResizeObserver(() => {\n if (this.open && this.contentRef) {\n this.contentHeight = this.contentRef.scrollHeight;\n }\n });\n\n if (this.contentRef) {\n this.resizeObserver.observe(this.contentRef);\n }\n }\n\n disconnectedCallback() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n /**\n * Programmatically toggle the accordion item\n */\n @Method()\n async toggle() {\n if (!this.disabled) {\n this.open = !this.open;\n this.accordionToggle.emit({ itemId: this.itemId, open: this.open });\n }\n }\n\n private measureContent() {\n requestAnimationFrame(() => {\n if (this.contentRef) {\n this.contentHeight = this.contentRef.scrollHeight;\n }\n });\n }\n\n private handleTriggerClick = () => {\n if (!this.disabled) {\n this.toggle();\n }\n };\n\n render() {\n const contentStyle = {\n maxHeight: this.open ? `${this.contentHeight}px` : '0px'\n };\n\n return (\n <Host class={{ 'is-open': this.open, 'is-disabled': this.disabled }}>\n <div class=\"accordion-item\">\n <button\n class=\"trigger\"\n onClick={this.handleTriggerClick}\n aria-expanded={this.open ? 'true' : 'false'}\n aria-controls={`content-${this.itemId}`}\n disabled={this.disabled}\n type=\"button\"\n >\n <div class=\"trigger-content\">\n <slot name=\"trigger\"></slot>\n </div>\n <div class={{ 'chevron': true, 'is-open': this.open }}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <path d=\"M6 9l6 6 6-6\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n </button>\n <div\n id={`content-${this.itemId}`}\n class=\"content-wrapper\"\n style={contentStyle}\n aria-hidden={!this.open ? 'true' : 'false'}\n >\n <div class=\"content\" ref={(el) => (this.contentRef = el)}>\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-accordion.entry.js","sources":["src/components/af-accordion/af-accordion.css?tag=af-accordion&encapsulation=scoped","src/components/af-accordion/af-accordion.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.accordion {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n/* Ensure proper stacking for accordion items */\n::slotted(af-accordion-item) {\n display: block;\n}\n\n/* Remove bottom border from last item */\n::slotted(af-accordion-item:last-child) {\n --accordion-item-border: transparent;\n}\n\n","import { Component, h, Prop, Host, Event, EventEmitter, Element, State, Watch, Listen } from '@stencil/core';\n\n/**\n * Accordion container that manages multiple accordion items.\n * Controls which items are open based on mode (independent or exclusive).\n * \n * @slot - Place af-accordion-item components here\n */\n@Component({\n tag: 'af-accordion',\n styleUrl: 'af-accordion.css',\n shadow: false,\n scoped: true,\n})\nexport class AfAccordion {\n @Element() el!: HTMLElement;\n\n /**\n * Behavior mode for the accordion.\n * - `independent`: Multiple items can be open simultaneously\n * - `exclusive`: Only one item can be open at a time\n */\n @Prop() mode: 'independent' | 'exclusive' = 'independent';\n\n /**\n * Currently open item(s) for controlled mode.\n * In independent mode, can be an array of item IDs.\n * In exclusive mode, should be a single item ID or null.\n */\n @Prop({ mutable: true }) value?: string | string[];\n\n /**\n * Default open item(s) for uncontrolled mode.\n * Used as initial state when value prop is not provided.\n */\n @Prop() defaultValue?: string | string[];\n\n /**\n * Emitted when the open state of items changes.\n * Returns the new value (string[] for independent, string | null for exclusive).\n */\n @Event({ eventName: 'af-accordion-change' }) accordionChange!: EventEmitter<{ value: string | string[] | null }>;\n\n @State() internalValue: string[] = [];\n\n private isControlled(): boolean {\n return this.value !== undefined;\n }\n\n componentWillLoad() {\n // Initialize internal value from defaultValue or value\n const initialValue = this.isControlled() ? this.value : this.defaultValue;\n this.internalValue = this.normalizeValue(initialValue);\n }\n\n @Watch('value')\n handleValueChange(newValue: string | string[] | undefined) {\n if (this.isControlled()) {\n this.internalValue = this.normalizeValue(newValue);\n this.syncItems();\n }\n }\n\n componentDidLoad() {\n this.syncItems();\n }\n\n /**\n * Listen for toggle events from child accordion items\n */\n @Listen('af-accordion-toggle')\n handleItemToggle(event: CustomEvent<{ itemId: string; open: boolean }>) {\n event.stopPropagation();\n const { itemId, open } = event.detail;\n\n let newValue: string[];\n\n if (this.mode === 'exclusive') {\n // In exclusive mode, only one item can be open\n newValue = open ? [itemId] : [];\n } else {\n // In independent mode, toggle the item\n if (open) {\n newValue = [...this.internalValue, itemId];\n } else {\n newValue = this.internalValue.filter(id => id !== itemId);\n }\n }\n\n if (!this.isControlled()) {\n this.internalValue = newValue;\n this.syncItems();\n }\n\n // Emit change event\n const emitValue = this.mode === 'exclusive' \n ? (newValue.length > 0 ? newValue[0] : null)\n : newValue;\n this.accordionChange.emit({ value: emitValue });\n }\n\n /**\n * Normalize value prop to array format for internal use\n */\n private normalizeValue(value: string | string[] | undefined): string[] {\n if (value === undefined || value === null) {\n return [];\n }\n if (Array.isArray(value)) {\n // In exclusive mode, only keep the first item\n return this.mode === 'exclusive' ? value.slice(0, 1) : value;\n }\n return [value];\n }\n\n /**\n * Sync the open state of all child accordion items\n */\n private syncItems() {\n const items = this.el.querySelectorAll('af-accordion-item');\n items.forEach((element) => {\n const item = element as HTMLElement & { itemId?: string; open?: boolean };\n if (item.itemId) {\n item.open = this.internalValue.includes(item.itemId);\n }\n });\n }\n\n render() {\n return (\n <Host class={{ [`mode-${this.mode}`]: true }}>\n <div class=\"accordion\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-aspect-ratio.entry.js","sources":["src/components/af-aspect-ratio/af-aspect-ratio.css?tag=af-aspect-ratio&encapsulation=shadow","src/components/af-aspect-ratio/af-aspect-ratio.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.aspect-ratio-container {\n width: 100%;\n position: relative;\n overflow: hidden;\n}\n\n/* Ensure slotted content fills the container */\n.aspect-ratio-container ::slotted(*) {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * A container component that maintains a fixed aspect ratio for its content.\n * Useful for images, videos, or any content that needs to maintain specific proportions.\n */\n@Component({\n tag: 'af-aspect-ratio',\n styleUrl: 'af-aspect-ratio.css',\n shadow: true\n})\nexport class AfAspectRatio {\n /**\n * The aspect ratio to maintain. Can be:\n * - A predefined ratio: '1:1', '16:9', '4:3', 'golden-portrait', 'golden-landscape', 'a4-portrait', 'a4-landscape', 'letter-portrait', 'letter-landscape', etc.\n * - A custom ratio in format 'width / height': '16 / 9', '4 / 3', '1.618 / 1', etc.\n *\n * @example\n * <af-aspect-ratio ratio=\"16:9\">Content</af-aspect-ratio>\n * <af-aspect-ratio ratio=\"1.618 / 1\">Content</af-aspect-ratio>\n */\n @Prop() ratio: string = '1:1';\n\n private getRatioValue(): string {\n // Map common ratio shortcuts to actual CSS aspect-ratio values\n const ratioMap: { [key: string]: string } = {\n // Common ratios\n '1:1': '1 / 1',\n '1:2': '1 / 2',\n '2:1': '2 / 1',\n '2:3': '2 / 3',\n '3:1': '3 / 1',\n '3:2': '3 / 2',\n '3:4': '3 / 4',\n '4:1': '4 / 1',\n '4:3': '4 / 3',\n '4:5': '4 / 5',\n '5:2': '5 / 2',\n '5:4': '5 / 4',\n '8:3': '8 / 3',\n '8:5': '8 / 5',\n // Screen ratios\n '9:8': '9 / 8',\n '9:16': '9 / 16',\n '9:21': '9 / 21',\n '10:16': '10 / 16',\n '14:3': '14 / 3',\n '16:5': '16 / 5',\n '16:9': '16 / 9',\n '16:10': '16 / 10',\n '21:9': '21 / 9',\n '32:9': '32 / 9',\n // Golden ratio variants\n 'golden-portrait': '1 / 1.618',\n 'golden-landscape': '1.618 / 1',\n 'golden-portrait-half': '1 / 0.809',\n 'golden-landscape-half': '0.809 / 1',\n // Paper sizes - A4\n 'a4-portrait': '1 / 1.414',\n 'a4-landscape': '1.414 / 1',\n 'a4-portrait-half': '1 / 0.707',\n 'a4-landscape-half': '0.707 / 1',\n // Paper sizes - Letter\n 'letter-portrait': '1 / 1.294',\n 'letter-landscape': '1.294 / 1',\n 'letter-portrait-half': '1 / 0.647',\n 'letter-landscape-half': '0.647 / 1',\n // Special\n '6:7': '6 / 7'\n };\n\n // If it's a predefined ratio, return the mapped value\n if (ratioMap[this.ratio]) {\n return ratioMap[this.ratio];\n }\n\n // Otherwise, assume it's a custom ratio already in the correct format\n return this.ratio;\n }\n\n render() {\n const ratioValue = this.getRatioValue();\n\n return (\n <div\n class=\"aspect-ratio-container\"\n style={{ aspectRatio: ratioValue }}\n >\n <slot></slot>\n </div>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,gBAAgB,GAAG,6MAA6M;;MCWzN,aAAa,GAAA,MAAA;AAL1B,IAAA,WAAA,CAAA,OAAA,EAAA;;AAME;;;;;;;;AAQG;AACK,QAAA,IAAK,CAAA,KAAA,GAAW,KAAK;AAuE9B;IArES,aAAa,GAAA;;AAEnB,QAAA,MAAM,QAAQ,GAA8B;;AAE1C,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;;AAEd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,MAAM,EAAE,QAAQ;;AAEhB,YAAA,iBAAiB,EAAE,WAAW;AAC9B,YAAA,kBAAkB,EAAE,WAAW;AAC/B,YAAA,sBAAsB,EAAE,WAAW;AACnC,YAAA,uBAAuB,EAAE,WAAW;;AAEpC,YAAA,aAAa,EAAE,WAAW;AAC1B,YAAA,cAAc,EAAE,WAAW;AAC3B,YAAA,kBAAkB,EAAE,WAAW;AAC/B,YAAA,mBAAmB,EAAE,WAAW;;AAEhC,YAAA,iBAAiB,EAAE,WAAW;AAC9B,YAAA,kBAAkB,EAAE,WAAW;AAC/B,YAAA,sBAAsB,EAAE,WAAW;AACnC,YAAA,uBAAuB,EAAE,WAAW;;AAEpC,YAAA,KAAK,EAAE;SACR;;AAGD,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;;QAI7B,OAAO,IAAI,CAAC,KAAK;;IAGnB,MAAM,GAAA;AACJ,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;AAEvC,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,wBAAwB,EAC9B,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAA,EAElC,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-button-group.entry.js","sources":["src/components/af-button-group/af-button-group.css?tag=af-button-group&encapsulation=shadow","src/components/af-button-group/af-button-group.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n.button-group {\n display: inline-flex;\n align-items: center;\n box-sizing: border-box;\n}\n\n.direction-horizontal {\n flex-direction: row;\n}\n\n.direction-vertical {\n flex-direction: column;\n}\n\n/* Ensure slotted buttons align properly */\n::slotted(*) {\n flex-shrink: 0;\n}\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'af-button-group',\n styleUrl: 'af-button-group.css',\n shadow: true\n})\nexport class AfButtonGroup {\n /**\n * Layout direction of the button group\n */\n @Prop() direction: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Gap between buttons\n */\n @Prop() gap: string = '8px';\n\n render() {\n const classes = {\n 'button-group': true,\n [`direction-${this.direction}`]: true\n };\n\n return (\n <Host>\n <div class={classes} style={{ gap: this.gap }}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,gBAAgB,GAAG,sNAAsN;;MCOlO,aAAa,GAAA,MAAA;AAL1B,IAAA,WAAA,CAAA,OAAA,EAAA;;AAME;;AAEG;AACK,QAAA,IAAS,CAAA,SAAA,GAA8B,YAAY;AAE3D;;AAEG;AACK,QAAA,IAAG,CAAA,GAAA,GAAW,KAAK;AAgB5B;IAdC,MAAM,GAAA;AACJ,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,CAAC,aAAa,IAAI,CAAC,SAAS,CAAE,CAAA,GAAG;SAClC;QAED,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAA,EAC3C,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-button.entry.js","sources":["src/components/af-button/af-button.css?tag=af-button&encapsulation=shadow","src/components/af-button/af-button.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n/* Set color on host for slotted content (icons) inheritance */\n:host([variant=\"primary\"]) {\n color: var(--af-button-primary-icon, var(--colour-brand-inkwell, #14343B));\n}\n\n:host([variant=\"secondary\"]) {\n color: var(--af-button-secondary-icon, var(--af-typography-body-dark, var(--colour-brand-inkwell, #14343B)));\n}\n\n:host([variant=\"ghost\"]) {\n color: var(--af-button-ghost-icon, var(--colour-brand-inkwell, #14343B));\n}\n\n/* Full-width mode - when host is display: block */\n:host([full-width]),\n:host(.full-width) {\n display: block;\n width: 100%;\n}\n\n:host([full-width]) .button,\n:host(.full-width) .button {\n width: 100%;\n}\n\n.button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0;\n border-radius: 9999px;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: 500;\n text-decoration: none;\n cursor: pointer;\n /* Motion — tokens fall back to the prior 0.2s ease so nothing drifts. */\n transition:\n background-color var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),\n border-color var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),\n color var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),\n box-shadow var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),\n transform var(--motion-duration-fast, 150ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));\n border: 1px solid transparent;\n box-sizing: border-box;\n white-space: nowrap;\n /* Allow width to be controlled from outside via CSS custom property */\n width: var(--af-button-width, auto);\n will-change: transform;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .button {\n transition-duration: 0.01ms;\n }\n}\n\n/* Size variants */\n.size-default {\n padding: 12px 24px;\n font-size: 17px;\n line-height: 20px;\n}\n\n.size-thin {\n padding: 8px 16px;\n font-size: 14px;\n line-height: 16px;\n}\n\n/* Icon slots - only show when they have slotted content */\n.icon-left,\n.icon-right {\n display: none;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.icon-left.has-content,\n.icon-right.has-content {\n display: flex;\n}\n\n.size-default .icon-left,\n.size-default .icon-right {\n width: 24px;\n height: 24px;\n}\n\n.size-thin .icon-left,\n.size-thin .icon-right {\n width: 20px;\n height: 20px;\n}\n\n/* Add spacing between icon and label only when icon is present */\n.size-default .icon-left.has-content {\n margin-right: 12px;\n}\n\n.size-default .icon-right.has-content {\n margin-left: 12px;\n}\n\n.size-thin .icon-left.has-content {\n margin-right: 8px;\n}\n\n.size-thin .icon-right.has-content {\n margin-left: 8px;\n}\n\n/* Label styling */\n.label {\n flex: 0 1 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.size-default .label {\n height: 24px;\n}\n\n.size-thin .label {\n height: 20px;\n}\n\n/* ==========================================================================\n Primary Button\n Filled background with ice color, inkwell text\n ========================================================================== */\n\n.variant-primary {\n background: var(--af-button-primary-bg, var(--colour-brand-ice, #a6fffb));\n border-color: var(--af-button-primary-stroke, var(--colour-brand-inkwell, #14343b));\n color: var(--af-button-primary-text, var(--colour-brand-inkwell, #14343b));\n}\n\n.variant-primary .icon-left,\n.variant-primary .icon-right {\n color: var(--af-button-primary-icon, var(--colour-brand-inkwell, #14343b));\n}\n\n.variant-primary:hover:not(.disabled) {\n background: var(--af-button-primary-bg-hover, #95E6E2);\n border-color: var(--af-button-primary-stroke, #14343B);\n}\n\n.variant-primary:focus:not(.disabled),\n.variant-primary:focus-visible:not(.disabled) {\n background: var(--af-button-primary-bg, #A6FFFB);\n border-color: var(--af-button-primary-stroke, #14343B);\n box-shadow: 0 0 0 4px var(--af-background-base, #FFF), 0 0 0 5px var(--af-button-primary-stroke, #14343B);\n outline: none;\n}\n\n.variant-primary:active:not(.disabled) {\n background: var(--af-button-primary-bg-hover, #95E6E2);\n transform: translateY(1px);\n}\n\n/* ==========================================================================\n Secondary Button\n Transparent background with visible border\n ========================================================================== */\n\n.variant-secondary {\n background: var(--af-button-secondary-bg, transparent);\n border-color: var(--af-button-secondary-stroke, var(--colour-brand-inkwell, #14343b));\n color: var(--af-button-secondary-text, var(--colour-brand-inkwell, #14343b));\n}\n\n.variant-secondary .icon-left,\n.variant-secondary .icon-right {\n color: var(--af-button-secondary-icon, var(--colour-brand-inkwell, #14343b));\n}\n\n.variant-secondary:hover:not(.disabled) {\n background: var(--af-button-secondary-bg-hover, rgba(128, 128, 128, 0.1));\n border-color: var(--af-button-secondary-stroke, currentColor);\n}\n\n.variant-secondary:focus:not(.disabled),\n.variant-secondary:focus-visible:not(.disabled) {\n background: var(--af-background-base, #FFF);\n border-color: var(--af-button-secondary-stroke, currentColor);\n box-shadow: 0 0 0 4px var(--af-background-base, #FFF), 0 0 0 5px var(--af-button-secondary-stroke, currentColor);\n outline: none;\n}\n\n.variant-secondary:active:not(.disabled) {\n background: var(--af-button-secondary-bg-hover, rgba(128, 128, 128, 0.1));\n transform: translateY(1px);\n}\n\n/* ==========================================================================\n Tertiary Button\n Text-only link style with underline, no border or background\n ========================================================================== */\n\n.variant-ghost {\n background: transparent;\n border-color: transparent;\n border-radius: 0;\n color: var(--af-button-ghost-text, var(--colour-brand-inkwell, #14343b));\n padding-left: 0;\n padding-right: 0;\n}\n\n.variant-ghost .label {\n border-bottom: 2px solid var(--af-button-ghost-stroke, var(--colour-brand-soft-clay, #B09670));\n}\n\n.variant-ghost .icon-left,\n.variant-ghost .icon-right {\n color: var(--af-button-ghost-icon, var(--colour-brand-inkwell, #14343b));\n}\n\n.variant-ghost:hover:not(.disabled) {\n opacity: 0.8;\n}\n\n.variant-ghost:focus:not(.disabled),\n.variant-ghost:focus-visible:not(.disabled) {\n outline: none;\n}\n\n.variant-ghost:focus-visible:not(.disabled) .label {\n box-shadow: 0 4px 0 0 var(--af-button-ghost-stroke, var(--colour-brand-soft-clay, #B09670));\n}\n\n.variant-ghost:active:not(.disabled) {\n opacity: 0.6;\n}\n\n/* ==========================================================================\n Disabled states\n ========================================================================== */\n\n.disabled {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.variant-primary.disabled {\n border: 1px solid var(--af-button-primary-stroke, #14343B);\n background: var(--af-button-primary-bg, #A6FFFB);\n opacity: 0.6;\n}\n\n.variant-secondary.disabled {\n border: 1px solid var(--af-button-secondary-stroke, currentColor);\n opacity: 0.6;\n}\n\n.variant-ghost.disabled {\n opacity: 0.6;\n}\n\n/* ==========================================================================\n Reset button element styles\n ========================================================================== */\n\nbutton.button {\n font: inherit;\n cursor: pointer;\n}\n\nbutton.button.variant-primary {\n background: var(--af-button-primary-bg, var(--colour-brand-ice, #a6fffb));\n border: 1px solid var(--af-button-primary-stroke, var(--colour-brand-inkwell, #14343b));\n}\n\nbutton.button.variant-secondary {\n background: var(--af-button-secondary-bg, transparent);\n border: 1px solid var(--af-button-secondary-stroke, var(--colour-brand-inkwell, #14343b));\n}\n\nbutton.button.variant-ghost {\n background: transparent;\n border: none;\n}\n\n/* ==========================================================================\n Reset anchor element styles (when using href prop)\n ========================================================================== */\n\na.button {\n text-decoration: none;\n color: inherit;\n}\n\na.button.variant-primary {\n background: var(--af-button-primary-bg, var(--colour-brand-ice, #a6fffb));\n border: 1px solid var(--af-button-primary-stroke, var(--colour-brand-inkwell, #14343b));\n}\n\na.button.variant-secondary {\n background: var(--af-button-secondary-bg, transparent);\n border: 1px solid var(--af-button-secondary-stroke, var(--colour-brand-inkwell, #14343b));\n}\n\na.button.variant-ghost {\n background: transparent;\n border: none;\n}\n","import { Component, h, Prop, Host, State } from '@stencil/core';\n\n/**\n * Button component that inherits colors from theme context.\n * Colors are determined by the parent theme (af-section, af-card, etc.)\n * via CSS custom properties.\n * \n * @slot - Button label text\n * @slot icon-left - Icon displayed before the label\n * @slot icon-right - Icon displayed after the label\n */\n@Component({\n tag: 'af-button',\n styleUrl: 'af-button.css',\n shadow: true\n})\nexport class AfButton {\n /**\n * The visual variant of the button.\n * - `primary` - Main CTA with filled background (use sparingly, 1-2 per view)\n * - `secondary` - Supporting action with outlined style\n * - `ghost` - Link-style with themed underline on the label; commonly paired\n * with a right-pointing icon. Matches Webflow's \"button ghost\" variant.\n */\n @Prop({ reflect: true }) variant: 'primary' | 'secondary' | 'ghost' = 'primary';\n\n /**\n * The size of the button.\n * - `default` - Standard size for primary CTAs (12/24px padding)\n * - `thin` - Compact inline/secondary size (8/16px padding)\n */\n @Prop() size: 'default' | 'thin' = 'default';\n\n /**\n * Whether the button is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Button type (when not using href)\n */\n @Prop() type: 'button' | 'submit' | 'reset' = 'button';\n\n /**\n * Optional href to render as a link instead of a button\n */\n @Prop() href?: string;\n\n @State() hasIconLeft: boolean = false;\n @State() hasIconRight: boolean = false;\n\n private handleSlotChange = (slotName: 'icon-left' | 'icon-right') => (event: Event) => {\n const slot = event.target as HTMLSlotElement;\n const hasContent = slot.assignedNodes().length > 0;\n if (slotName === 'icon-left') {\n this.hasIconLeft = hasContent;\n } else {\n this.hasIconRight = hasContent;\n }\n };\n\n render() {\n const classes = {\n 'button': true,\n [`variant-${this.variant}`]: true,\n [`size-${this.size}`]: true,\n 'disabled': this.disabled\n };\n\n const content = [\n <span class={{ 'icon-left': true, 'has-content': this.hasIconLeft }}>\n <slot name=\"icon-left\" onSlotchange={this.handleSlotChange('icon-left')}></slot>\n </span>,\n <span class=\"label\">\n <slot></slot>\n </span>,\n <span class={{ 'icon-right': true, 'has-content': this.hasIconRight }}>\n <slot name=\"icon-right\" onSlotchange={this.handleSlotChange('icon-right')}></slot>\n </span>\n ];\n\n // Render as anchor if href is provided (and not disabled)\n if (this.href && !this.disabled) {\n return (\n <Host>\n <a href={this.href} class={classes}>\n {content}\n </a>\n </Host>\n );\n }\n\n return (\n <Host>\n <button type={this.type} disabled={this.disabled} class={classes}>\n {content}\n </button>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,WAAW,GAAG,0kMAA0kM;;MCgBjlM,QAAQ,GAAA,MAAA;AALrB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAME;;;;;;AAMG;AACsB,QAAA,IAAO,CAAA,OAAA,GAAsC,SAAS;AAE/E;;;;AAIG;AACK,QAAA,IAAI,CAAA,IAAA,GAAuB,SAAS;AAE5C;;AAEG;AACK,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAEjC;;AAEG;AACK,QAAA,IAAI,CAAA,IAAA,GAAkC,QAAQ;AAO7C,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK;AAC5B,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK;QAE9B,IAAgB,CAAA,gBAAA,GAAG,CAAC,QAAoC,KAAK,CAAC,KAAY,KAAI;AACpF,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,MAAyB;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC;AAClD,YAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;AAC5B,gBAAA,IAAI,CAAC,WAAW,GAAG,UAAU;;iBACxB;AACL,gBAAA,IAAI,CAAC,YAAY,GAAG,UAAU;;AAElC,SAAC;AAyCF;IAvCC,MAAM,GAAA;AACJ,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,CAAC,WAAW,IAAI,CAAC,OAAO,CAAE,CAAA,GAAG,IAAI;AACjC,YAAA,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,IAAI;YAC3B,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,EAAA,EACjE,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,WAAW,EAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAS,CAC3E;AACP,YAAA,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,OAAO,EAAA,EACjB,CAAA,CAAA,MAAA,EAAA,IAAA,CAAa,CACR;AACP,YAAA,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,YAAY,EAAE,EAAA,EACnE,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,YAAY,EAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAS;SAErF;;QAGD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC/B,QACE,EAAC,IAAI,EAAA,IAAA,EACH,CAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAC/B,EAAA,OAAO,CACN,CACC;;AAIX,QAAA,QACE,EAAC,IAAI,EAAA,IAAA,EACH,CAAQ,CAAA,QAAA,EAAA,EAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAA,EAC7D,OAAO,CACD,CACJ;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-card.entry.js","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 Interactive Mode\n Opt-in hover lift for cards that are the primary click target. Adds a\n subtle translateY and shadow on hover; the card is raised, not tinted,\n so the themed background stays intact.\n ========================================================================== */\n\n:host([interactive]) .card {\n transition:\n transform var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),\n box-shadow var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));\n will-change: transform;\n}\n\n:host([interactive]:hover) .card,\n:host([interactive]:focus-within) .card {\n transform: translateY(-2px);\n box-shadow: var(--shadow-lift, 0 12px 32px -8px rgba(20, 52, 59, 0.18), 0 4px 10px -4px rgba(20, 52, 59, 0.08));\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host([interactive]) .card {\n transition-duration: 0.01ms;\n }\n :host([interactive]:hover) .card,\n :host([interactive]:focus-within) .card {\n transform: none;\n }\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 /**\n * When true, the card reacts to pointer hover with a subtle lift\n * (translateY + shadow). Use for cards that are themselves the primary\n * click target (e.g. wrapped in an `<a>` or using `onClick`). Purely\n * cosmetic — does not change focus or click behaviour. Honours\n * `prefers-reduced-motion: reduce`.\n */\n @Prop({ reflect: true }) interactive: 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"],"names":[],"mappings":";;AAAA,MAAM,SAAS,GAAG,4vHAA4vH;;MCgBjwH,MAAM,GAAA,MAAA;AANnB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAOE;;;AAGG;AACK,QAAA,IAAK,CAAA,KAAA,GAAW,YAAY;AAEpC;;;;;AAKG;AACsB,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAEjD;;;;;;AAMG;AACsB,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK;AAkBtD;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;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-center.entry.js","sources":["src/components/af-center/af-center.css?tag=af-center&encapsulation=shadow","src/components/af-center/af-center.tsx"],"sourcesContent":[":host {\n display: flex;\n box-sizing: border-box;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n","import { Component, h, Host, Prop } from '@stencil/core';\n\ntype Axis = 'horizontal' | 'vertical' | 'both';\n\n/**\n * Center layout component for quickly centering content.\n * Supports horizontal, vertical, or both axes.\n *\n * @slot - Content to center\n */\n@Component({\n tag: 'af-center',\n styleUrl: 'af-center.css',\n shadow: true,\n})\nexport class AfCenter {\n /**\n * Which axis to center on.\n * - 'horizontal': Center horizontally (justify-content: center)\n * - 'vertical': Center vertically (align-items: center)\n * - 'both': Center on both axes\n */\n @Prop() axis: Axis = 'both';\n\n /**\n * Use inline-flex instead of flex.\n * Useful when the center container should only take up as much space as needed.\n */\n @Prop() inline: boolean = false;\n\n /**\n * Set a minimum height. Useful for vertical centering in a viewport.\n * Accepts any valid CSS value (e.g., '100vh', '400px').\n */\n @Prop() minHeight?: string;\n\n render() {\n const style: Record<string, string> = {\n display: this.inline ? 'inline-flex' : 'flex',\n };\n\n if (this.axis === 'horizontal' || this.axis === 'both') {\n style.justifyContent = 'center';\n }\n\n if (this.axis === 'vertical' || this.axis === 'both') {\n style.alignItems = 'center';\n }\n\n if (this.minHeight) {\n style.minHeight = this.minHeight;\n }\n\n return (\n <Host style={style}>\n <slot></slot>\n </Host>\n );\n }\n}\n\n"],"names":[],"mappings":";;AAAA,MAAM,WAAW,GAAG,wEAAwE;;MCe/E,QAAQ,GAAA,MAAA;AALrB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAME;;;;;AAKG;AACK,QAAA,IAAI,CAAA,IAAA,GAAS,MAAM;AAE3B;;;AAGG;AACK,QAAA,IAAM,CAAA,MAAA,GAAY,KAAK;AA+BhC;IAvBC,MAAM,GAAA;AACJ,QAAA,MAAM,KAAK,GAA2B;YACpC,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,MAAM;SAC9C;AAED,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACtD,YAAA,KAAK,CAAC,cAAc,GAAG,QAAQ;;AAGjC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACpD,YAAA,KAAK,CAAC,UAAU,GAAG,QAAQ;;AAG7B,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;;QAGlC,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,KAAK,EAAA,EAChB,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACR;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-checkbox.entry.js","sources":["src/components/af-checkbox/af-checkbox.css?tag=af-checkbox&encapsulation=shadow","src/components/af-checkbox/af-checkbox.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n.checkbox {\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.checkbox.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 checkbox control */\n.control {\n position: relative;\n display: block;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n border-radius: var(--radii-checkbox, 4px);\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/indeterminate 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.checkbox: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/* Icon styling - absolutely positioned to prevent layout shift */\n.icon {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 16px;\n height: 16px;\n color: var(--af-form-control-icon, var(--colour-brand-white, #ffffff));\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 } from '@stencil/core';\n\n/**\n * Checkbox component for selecting multiple options.\n * Supports checked, unchecked, and indeterminate states.\n * \n * @slot - Checkbox label text\n */\n@Component({\n tag: 'af-checkbox',\n styleUrl: 'af-checkbox.css',\n shadow: true\n})\nexport class AfCheckbox {\n /**\n * Whether the checkbox is checked\n */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /**\n * Whether the checkbox is in an indeterminate state\n */\n @Prop({ reflect: true }) indeterminate: boolean = false;\n\n /**\n * Whether the checkbox is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The name of the checkbox for form submission\n */\n @Prop() name?: string;\n\n /**\n * The value of the checkbox for form submission\n */\n @Prop() value?: string;\n\n /**\n * Emitted when the checkbox checked state changes\n */\n @Event() afChange!: EventEmitter<{ checked: boolean }>;\n\n private inputEl?: HTMLInputElement;\n\n private handleChange = () => {\n if (this.disabled) return;\n this.checked = !this.checked;\n this.afChange.emit({ checked: this.checked });\n };\n\n componentDidLoad() {\n if (this.inputEl) {\n this.inputEl.indeterminate = this.indeterminate;\n }\n }\n\n componentDidUpdate() {\n if (this.inputEl) {\n this.inputEl.indeterminate = this.indeterminate;\n }\n }\n\n render() {\n const checkboxClasses = {\n 'checkbox': true,\n 'checked': this.checked,\n 'indeterminate': this.indeterminate,\n 'disabled': this.disabled\n };\n\n const controlClasses = {\n 'control': true,\n 'checked': this.checked || this.indeterminate,\n 'disabled': this.disabled\n };\n\n return (\n <Host>\n <label class={checkboxClasses}>\n <input\n type=\"checkbox\"\n class=\"input\"\n ref={(el) => this.inputEl = el ?? undefined}\n checked={this.checked}\n disabled={this.disabled}\n name={this.name}\n value={this.value}\n onChange={this.handleChange}\n />\n <span class={controlClasses}>\n {this.checked && !this.indeterminate && (\n <svg class=\"icon\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path \n d=\"M13.5 4L6 11.5L2.5 8\" \n stroke=\"currentColor\" \n stroke-width=\"2\" \n stroke-linecap=\"round\" \n stroke-linejoin=\"round\"\n />\n </svg>\n )}\n {this.indeterminate && (\n <svg class=\"icon\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path \n d=\"M3 8H13\" \n stroke=\"currentColor\" \n stroke-width=\"2\" \n stroke-linecap=\"round\"\n />\n </svg>\n )}\n </span>\n <span class=\"label\">\n <slot></slot>\n </span>\n </label>\n </Host>\n );\n }\n}\n\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-client-carousel.entry.js","sources":["src/components/af-client-carousel/af-client-carousel.css?tag=af-client-carousel&encapsulation=scoped","src/components/af-client-carousel/af-client-carousel.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.client-carousel {\n padding: 48px 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-container {\n display: flex;\n flex-direction: column;\n gap: var(--space-4, 16px);\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-row {\n display: flex;\n width: 100%;\n overflow: hidden;\n position: relative;\n}\n\n.logo-track {\n display: flex;\n gap: var(--space-4, 16px);\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n\n/* Scroll left animation */\n.scroll-left .logo-track {\n animation-name: scroll-left;\n animation-duration: 40s;\n}\n\n/* Scroll right animation */\n.scroll-right .logo-track {\n animation-name: scroll-right;\n animation-duration: 40s;\n}\n\n/* No pause on hover — the carousel is purely decorative; pausing it on\n hover felt jittery when the cursor accidentally crossed it (and live\n affinda.com keeps it scrolling regardless). */\n\n/* Respect reduced motion: stop the infinite scroll and hold at a\n * stable frame so logos remain visible instead of being offscreen. */\n@media (prefers-reduced-motion: reduce) {\n .logo-track,\n .scroll-left .logo-track,\n .scroll-right .logo-track {\n animation: none;\n transform: translateX(0);\n }\n}\n\n/* ==========================================================================\n Static Mode\n ==========================================================================\n Non-animated, centred row. Used when the logo set is small enough to\n fit on screen without scrolling (the former website LogoPillRow use\n case). The clone-for-seamless-loop is skipped in TSX, so each logo\n appears exactly once here. */\n.client-carousel.mode-static .logo-track {\n animation: none;\n /* The track is what we centre — the .carousel-row is full-width so\n * it can host the overflow cue in scroll mode; in static mode we\n * centre its child track instead of fighting the row's flex default. */\n justify-content: center;\n /* Let the track grow only as wide as its content so justify-content\n * on the parent row can actually centre it horizontally. */\n flex-wrap: wrap;\n width: 100%;\n}\n\n.client-carousel.mode-static .carousel-row {\n justify-content: center;\n /* Static rows have no scrolling motion to mask, so allow the row to\n * expand content-naturally instead of clipping at viewport edges. */\n overflow: visible;\n}\n\n.client-carousel.mode-static .carousel-container {\n /* Match the row's no-clip behaviour so wrapped logos stay visible. */\n overflow: visible;\n}\n\n.client-carousel.mode-static {\n /* Keep horizontal bleed contained for consistency with scroll mode. */\n overflow: hidden;\n}\n\n@keyframes scroll-left {\n 0% {\n transform: translateX(0);\n }\n 100% {\n transform: translateX(-50%);\n }\n}\n\n@keyframes scroll-right {\n 0% {\n transform: translateX(-50%);\n }\n 100% {\n transform: translateX(0);\n }\n}\n\n/* Style slotted children (originals projected through the slot) and\n * JS-appended clones as flex rows. In scoped mode Stencil keeps all\n * this in light DOM, so a direct-descendant selector covers both. */\n.logo-track > * {\n display: flex;\n flex-shrink: 0;\n gap: var(--space-4, 16px);\n align-items: center;\n}\n\n/* ==========================================================================\n Theme Variants\n ========================================================================== */\n\n/* INKWELL THEME (Default) */\n:host(.theme-inkwell),\n.client-carousel.theme-inkwell {\n background-color: var(--colour-brand-inkwell, #14343B);\n --af-carousel-logo-well-bg: var(--colour-background-level1-dark, #203e45);\n --af-carousel-logo-color: white;\n --af-carousel-logo-filter: brightness(0) invert(1);\n}\n\n/* WHITE THEME */\n:host(.theme-white),\n.client-carousel.theme-white {\n background-color: var(--colour-brand-white, #FFFFFF);\n --af-carousel-logo-well-bg: var(--colour-background-level1, #e8eeed);\n --af-carousel-logo-color: var(--colour-brand-inkwell, #14343B);\n --af-carousel-logo-filter: none;\n}\n\n/* MIST-GREEN THEME */\n:host(.theme-mist-green),\n.client-carousel.theme-mist-green {\n background-color: var(--colour-brand-mist-green, #C6D5D1);\n --af-carousel-logo-well-bg: var(--colour-mistgreen-300, #dde6e3);\n --af-carousel-logo-color: var(--colour-brand-inkwell, #14343B);\n --af-carousel-logo-filter: none;\n}\n\n/* SOFT-CLAY THEME */\n:host(.theme-soft-clay),\n.client-carousel.theme-soft-clay {\n background-color: var(--colour-softclay-400, #c0ab8d);\n --af-carousel-logo-well-bg: var(--colour-softclay-200, #d5c5b0);\n --af-carousel-logo-color: var(--colour-brand-inkwell, #14343B);\n --af-carousel-logo-filter: none;\n}\n\n/* WHITE-IVORY THEME */\n:host(.theme-white-ivory),\n.client-carousel.theme-white-ivory {\n background-color: var(--colour-brand-ivory-paper, #fff9ee);\n --af-carousel-logo-well-bg: var(--colour-softclay-100, #f2eadc);\n --af-carousel-logo-color: var(--colour-brand-inkwell, #14343B);\n --af-carousel-logo-filter: none;\n}\n\n/* ==========================================================================\n Responsive Adjustments\n ========================================================================== */\n\n/* Tablet adjustments */\n/* ≤ tablet */\n@media (max-width: 1024px) {\n .client-carousel {\n padding: 32px 0;\n }\n}\n\n/* Mobile adjustments */\n/* ≤ mobile */\n@media (max-width: 767px) {\n .client-carousel {\n padding: 24px 0;\n }\n \n .carousel-container {\n gap: var(--space-3, 12px);\n }\n \n .logo-track {\n gap: var(--space-3, 12px);\n }\n \n ::slotted(*) {\n gap: var(--space-3, 12px);\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core';\nimport type { Theme } from '../../types';\n\ntype Mode = 'scroll' | 'static';\n\n/**\n * Full-width row of client logos, either infinite-scrolling (default)\n * or a centred static row.\n *\n * This is a section-level component that spans full width.\n * Renders one or two rows; single row matches the Webflow reference,\n * two rows is the denser variant. When `mode=\"scroll\"` (default) rows\n * animate in opposite directions; when `mode=\"static\"` rows are centred\n * and the animation is disabled.\n *\n * For headlines, use a separate TypographyLockup or Heading component\n * above this carousel.\n *\n * **Seamless loop (scroll mode only):** the CSS animation translates\n * the track from 0% to -50% (or vice versa), which only looks continuous\n * if the track holds two identical copies of the content end-to-end.\n * Shadow DOM slots can only project content once, so we clone the\n * slotted nodes in `componentDidLoad` and append the copies to the track.\n * Static mode skips the clone — nothing is animating, so duplicating\n * the logos would just render them twice.\n */\n@Component({\n tag: 'af-client-carousel',\n styleUrl: 'af-client-carousel.css',\n // Scoped (not shadow) so that cloned nodes inherit the consumer's\n // external CSS (e.g. Astro-scoped `.logo-pill` on the SiteHeader\n // carousel). Shadow DOM would seal the clones off from outer styles.\n shadow: false,\n scoped: true,\n})\nexport class AfClientCarousel {\n @Element() el!: HTMLElement;\n\n /** Theme - sets background color and provides theme context to children */\n @Prop() theme: Theme = 'inkwell';\n\n /**\n * Number of rows.\n * - `1` (default) — single row, matches the Webflow reference.\n * - `2` — two rows (scroll in opposite directions, or stacked when static).\n *\n * When `rows=\"2\"`, slot `row-1` and `row-2` independently.\n * When `rows=\"1\"`, slot the default slot (unnamed) or `row-1`.\n */\n @Prop() rows: 1 | 2 = 1;\n\n /**\n * Layout mode.\n * - `scroll` (default) — infinite animated scroll; rows fill the full\n * width and are cloned for a seamless loop.\n * - `static` — no animation, logos centred horizontally. Use when the\n * logo set is small enough to fit on screen without scrolling.\n */\n @Prop() mode: Mode = 'scroll';\n\n private row1TrackRef?: HTMLElement;\n private row2TrackRef?: HTMLElement;\n\n componentDidLoad() {\n // Static mode doesn't animate, so the clone trick isn't needed —\n // skipping it avoids rendering every logo twice.\n if (this.mode === 'static') return;\n this.duplicateTrackContent(this.row1TrackRef);\n if (Number(this.rows) === 2) {\n this.duplicateTrackContent(this.row2TrackRef);\n }\n }\n\n /**\n * Append clones of every existing track child into the track so the\n * -50% translate animation loops seamlessly. Marks clones with\n * `aria-hidden` and `data-carousel-clone` so assistive tech ignores\n * them and we can skip them when re-duplicating.\n *\n * In scoped mode, slotted content is moved into the track as regular\n * children (there's no `<slot>` element to read from), so we just\n * iterate direct children that aren't themselves prior clones.\n */\n private duplicateTrackContent(track: HTMLElement | undefined) {\n if (!track) return;\n const originals = Array.from(track.children).filter(\n (child) => !(child as HTMLElement).hasAttribute('data-carousel-clone'),\n );\n originals.forEach((el) => {\n const clone = el.cloneNode(true) as HTMLElement;\n clone.setAttribute('data-carousel-clone', '');\n clone.setAttribute('aria-hidden', 'true');\n track.appendChild(clone);\n });\n }\n\n render() {\n const rows = Number(this.rows);\n // Direction classes are left on in static mode too — the `.mode-static`\n // CSS rule overrides `animation` to `none`, so the direction is a no-op\n // visually but keeps the markup shape consistent across modes.\n return (\n <Host class={`theme-${this.theme} mode-${this.mode}`}>\n <div class={`client-carousel theme-${this.theme} rows-${rows} mode-${this.mode}`}>\n <div class=\"carousel-container\">\n <div class=\"carousel-row scroll-left\">\n <div class=\"logo-track\" ref={(el) => (this.row1TrackRef = el)}>\n <slot name=\"row-1\">\n <slot></slot>\n </slot>\n </div>\n </div>\n\n {rows === 2 && (\n <div class=\"carousel-row scroll-right\">\n <div class=\"logo-track\" ref={(el) => (this.row2TrackRef = el)}>\n <slot name=\"row-2\"></slot>\n </div>\n </div>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-color-swatch.entry.js","sources":["src/components/af-color-swatch/af-color-swatch.css?tag=af-color-swatch&encapsulation=shadow","src/components/af-color-swatch/af-color-swatch.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.swatch {\n display: flex;\n flex-direction: column;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid #ece6f5;\n background: white;\n}\n\n.color-preview {\n width: 100%;\n height: 120px;\n flex-shrink: 0;\n}\n\n.size-large .color-preview {\n height: 140px;\n}\n\n.color-info {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.color-name {\n font-family: 'NeuSans', 'Inter', system-ui, sans-serif;\n font-size: 16px;\n font-weight: 500;\n color: #14343B;\n}\n\n.color-value {\n font-family: 'Helvetica', 'Inter', monospace, system-ui, sans-serif;\n font-size: 14px;\n color: #708380;\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'af-color-swatch',\n styleUrl: 'af-color-swatch.css',\n shadow: true\n})\nexport class AfColorSwatch {\n /** Color value (hex) */\n @Prop() color!: string;\n\n /** Color name */\n @Prop() name!: string;\n\n /** Size variant */\n @Prop() size: 'default' | 'large' = 'default';\n\n render() {\n return (\n <div class={{\n 'swatch': true,\n [`size-${this.size}`]: true\n }} part=\"base\">\n <div\n class=\"color-preview\"\n part=\"preview\"\n style={{ backgroundColor: this.color }}\n ></div>\n <div class=\"color-info\" part=\"info\">\n <div class=\"color-name\" part=\"name\">{this.name}</div>\n <div class=\"color-value\" part=\"value\">{this.color}</div>\n </div>\n </div>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,gBAAgB,GAAG,0gBAA0gB;;MCOthB,aAAa,GAAA,MAAA;AAL1B,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAaU,QAAA,IAAI,CAAA,IAAA,GAAwB,SAAS;AAoB9C;IAlBC,MAAM,GAAA;QACJ,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE;AACV,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG;aACxB,EAAE,IAAI,EAAC,MAAM,EAAA,EACZ,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,eAAe,EACrB,IAAI,EAAC,SAAS,EACd,KAAK,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,EACjC,CAAA,EACP,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,MAAM,EAAA,EACjC,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,MAAM,EAAE,EAAA,IAAI,CAAC,IAAI,CAAO,EACrD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,OAAO,EAAE,EAAA,IAAI,CAAC,KAAK,CAAO,CACpD,CACF;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-contact-item.entry.js","sources":["src/components/af-contact-item/af-contact-item.css?tag=af-contact-item&encapsulation=scoped","src/components/af-contact-item/af-contact-item.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.contact-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.contact-item__label {\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-size: 14px;\n font-weight: 600;\n color: var(--colour-tints-mistGreen-200, #C6D5D1);\n margin: 0;\n}\n\n.contact-item__value {\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-size: 14px;\n font-weight: 400;\n color: rgba(198, 213, 209, 0.7);\n margin: 0;\n}\n\n","import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Contact item component for footer\n * Displays a label and value pair (e.g., \"Sales enquiries\" / \"contact@example.com\")\n */\n@Component({\n tag: 'af-contact-item',\n styleUrl: 'af-contact-item.css',\n shadow: false,\n scoped: true,\n})\nexport class AfContactItem {\n /** Contact label (e.g., \"Sales enquiries\") */\n @Prop() label: string = '';\n\n /** Contact value (e.g., email address) */\n @Prop() value: string = '';\n\n render() {\n return (\n <Host>\n <div class=\"contact-item\">\n {this.label && (\n <h5 class=\"contact-item__label\">{this.label}</h5>\n )}\n {this.value && (\n <p class=\"contact-item__value\">{this.value}</p>\n )}\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"],"names":[],"mappings":";;AAAA,MAAM,gBAAgB,GAAG,oeAAoe;;MCYhf,aAAa,GAAA,MAAA;AAN1B,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAQU,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE;;AAGlB,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE;AAiB3B;IAfC,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACtB,IAAI,CAAC,KAAK,KACT,CAAI,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,qBAAqB,EAAE,EAAA,IAAI,CAAC,KAAK,CAAM,CAClD,EACA,IAAI,CAAC,KAAK,KACT,CAAG,CAAA,GAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,qBAAqB,EAAE,EAAA,IAAI,CAAC,KAAK,CAAK,CAChD,EACD,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-container.entry.js","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"],"names":[],"mappings":";;AAAA,MAAM,cAAc,GAAG,qmBAAqmB;;MCW/mB,WAAW,GAAA,MAAA;AALxB,IAAA,WAAA,CAAA,OAAA,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;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-divider.entry.js","sources":["src/components/af-divider/af-divider.css?tag=af-divider&encapsulation=shadow","src/components/af-divider/af-divider.tsx"],"sourcesContent":[":host {\n box-sizing: border-box;\n flex-shrink: 0;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host(.divider--horizontal) {\n display: block;\n width: 100%;\n height: 1px;\n background-color: var(--colour-tints-inkwell-100, #d4d4d4);\n}\n\n:host(.divider--vertical) {\n display: inline-block;\n width: 1px;\n height: 100%;\n min-height: 1em;\n background-color: var(--colour-tints-inkwell-100, #d4d4d4);\n align-self: stretch;\n}\n\n","import { Component, h, Host, Prop } from '@stencil/core';\nimport type { Gap } from '../../types';\n\ntype Orientation = 'horizontal' | 'vertical';\ntype Spacing = Gap | 'none';\n\n/**\n * Divider component for visual separation between content.\n * Supports horizontal and vertical orientations with theme-aware styling.\n */\n@Component({\n tag: 'af-divider',\n styleUrl: 'af-divider.css',\n shadow: true,\n})\nexport class AfDivider {\n /**\n * Orientation of the divider.\n */\n @Prop() orientation: Orientation = 'horizontal';\n\n /**\n * Spacing (margin) around the divider using space tokens.\n * For horizontal: margin-top and margin-bottom\n * For vertical: margin-left and margin-right\n */\n @Prop() spacing: Spacing = '4';\n\n render() {\n const isVertical = this.orientation === 'vertical';\n const spacingValue = this.spacing === 'none' ? '0' : `var(--space-${this.spacing})`;\n\n const style: Record<string, string> = isVertical\n ? {\n marginLeft: spacingValue,\n marginRight: spacingValue,\n }\n : {\n marginTop: spacingValue,\n marginBottom: spacingValue,\n };\n\n return (\n <Host\n class={{\n 'divider': true,\n 'divider--horizontal': !isVertical,\n 'divider--vertical': isVertical,\n }}\n style={style}\n role=\"separator\"\n aria-orientation={this.orientation}\n ></Host>\n );\n }\n}\n\n"],"names":[],"mappings":";;AAAA,MAAM,YAAY,GAAG,oWAAoW;;MCe5W,SAAS,GAAA,MAAA;AALtB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAME;;AAEG;AACK,QAAA,IAAW,CAAA,WAAA,GAAgB,YAAY;AAE/C;;;;AAIG;AACK,QAAA,IAAO,CAAA,OAAA,GAAY,GAAG;AA6B/B;IA3BC,MAAM,GAAA;AACJ,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,KAAK,UAAU;AAClD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,KAAK,MAAM,GAAG,GAAG,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,OAAO,GAAG;QAEnF,MAAM,KAAK,GAA2B;AACpC,cAAE;AACE,gBAAA,UAAU,EAAE,YAAY;AACxB,gBAAA,WAAW,EAAE,YAAY;AAC1B;AACH,cAAE;AACE,gBAAA,SAAS,EAAE,YAAY;AACvB,gBAAA,YAAY,EAAE,YAAY;aAC3B;QAEL,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EACH,KAAK,EAAE;AACL,gBAAA,SAAS,EAAE,IAAI;gBACf,qBAAqB,EAAE,CAAC,UAAU;AAClC,gBAAA,mBAAmB,EAAE,UAAU;AAChC,aAAA,EACD,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,WAAW,EAAA,kBAAA,EACE,IAAI,CAAC,WAAW,EAAA,CAC5B;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-feature-accordion.entry.js","sources":["src/components/af-feature-accordion/af-feature-accordion.css?tag=af-feature-accordion&encapsulation=scoped","src/components/af-feature-accordion/af-feature-accordion.tsx"],"sourcesContent":["/*\n * af-feature-accordion\n * ---------------------------------------------------------------------------\n * Themable CSS custom properties (safe to override from consumers):\n *\n * --af-accent-progress Colour of the per-item timer/progress bar.\n * Defaults to --colour-softclay-600 (brand\n * soft-clay). Override to retheme the accent.\n * --af-feature-accordion-image-pad\n * Padding around the accompanying image\n * inside its rounded container. Defaults to\n * 40px — tune for tighter or looser rhythm.\n *\n * The component also inherits the following theme tokens from its parent\n * <af-section> (or any ancestor setting them):\n *\n * --af-typography-heading-primary heading colour\n * --af-typography-body-default body colour\n * --af-background-border-default rule/divider colour\n * --af-background-level-1 image-container background\n */\n\n:host {\n display: block;\n width: 100%;\n}\n\n.feature-accordion {\n /* Inherits theme from parent Section via CSS custom properties */\n padding: 0 24px;\n\n /* Internal custom properties that inherit from parent Section's theme */\n --_heading-color: var(--af-typography-heading-primary, var(--colour-brand-inkwell, #14343b));\n --_body-color: var(--af-typography-body-default, var(--colour-inkwell-400, #2b484f));\n --_border-color: var(--af-background-border-default, rgba(20, 52, 59, 0.12));\n}\n\n.feature-accordion__heading {\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: 400;\n font-size: clamp(36px, 5vw, 52px);\n line-height: 1.05;\n letter-spacing: -0.025em;\n color: var(--_heading-color);\n margin: 0 0 56px 0;\n}\n\n.feature-accordion__content {\n display: flex;\n gap: 48px;\n}\n\n/* Accordion List */\n.feature-accordion__list {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n}\n\n/* Accordion Item */\n.accordion-item {\n border-bottom: 1px solid var(--_border-color);\n}\n\n.accordion-item:first-child {\n border-top: 1px solid var(--_border-color);\n}\n\n.accordion-item__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 24px 0;\n background: none;\n border: none;\n cursor: pointer;\n text-align: left;\n gap: 16px;\n}\n\n.accordion-item__header:hover .accordion-item__title {\n color: var(--_heading-color);\n}\n\n.accordion-item__title {\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: 500;\n font-size: 22px;\n line-height: 1.25;\n color: var(--_heading-color);\n margin: 0;\n flex: 1;\n transition: color 0.2s ease;\n}\n\n/* Collapsed items have lighter text */\n.accordion-item:not(.accordion-item--expanded) .accordion-item__title {\n opacity: 0.7;\n}\n\n.accordion-item__icon {\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n color: var(--_heading-color);\n transition:\n transform var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),\n opacity var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));\n}\n\n.accordion-item__icon svg {\n display: block;\n width: 100%;\n height: 100%;\n overflow: visible;\n}\n\n/* Plus → minus morph: vertical bar collapses and the whole icon rotates\n 45° when expanding, giving a single, fluid gesture. */\n.accordion-item__icon-bar {\n transition:\n transform var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),\n opacity var(--motion-duration-fast, 150ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));\n transform-origin: 12px 12px;\n}\n\n.accordion-item--expanded .accordion-item__icon-bar--vert {\n transform: scaleY(0);\n opacity: 0;\n}\n\n.accordion-item:not(.accordion-item--expanded) .accordion-item__icon {\n opacity: 0.5;\n}\n\n.accordion-item__content {\n overflow: hidden;\n /* Use grid-template-rows-based expansion (0fr → 1fr) so the\n transition animates the *actual* content height, not a max-height\n ceiling. Avoids the \"section height bumps for a split second\"\n jank that happens when the outgoing item's content is shorter\n than max-height: at the midpoint of a max-height transition the\n outgoing item still renders at its natural height (because\n max-height >> content) while the incoming item ALSO renders at\n its natural height — sum > steady-state for a frame, so the\n image column on the right jumps. With grid-rows, each item\n occupies its proportional fraction of its own natural height;\n incoming + outgoing always sums to one full content row.\n Reported 2026-04-27 on /au's \"Give Affinda Platform your\n paperwork\" section. */\n display: grid;\n grid-template-rows: 0fr;\n transition:\n grid-template-rows var(--motion-duration-slow, 300ms) var(--motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)),\n opacity var(--motion-duration-slow, 300ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));\n}\n\n.accordion-item--expanded .accordion-item__content {\n grid-template-rows: 1fr;\n}\n\n/* Inner wrapper required for grid-template-rows interpolation:\n the direct grid child collapses to min-content otherwise. */\n.accordion-item__content > * {\n min-height: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .accordion-item__icon,\n .accordion-item__icon-bar,\n .accordion-item__content,\n .accordion-item__title {\n transition-duration: 0.01ms;\n }\n}\n\n.accordion-item__description {\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: 400;\n font-size: 17px;\n line-height: 1.6;\n color: var(--_body-color);\n margin: 0 0 20px 0;\n padding-right: 40px;\n opacity: 0.85;\n}\n\n/* Timer track - the progress bar at the bottom of expanded items */\n.accordion-item__timer-track {\n height: 3px;\n background-color: var(--_border-color);\n border-radius: 2px;\n margin-bottom: 8px;\n overflow: hidden;\n display: flex;\n justify-content: flex-start;\n}\n\n.accordion-item__timer-progress {\n height: 100%;\n background-color: var(--af-accent-progress, var(--colour-softclay-600, #9e8765));\n border-radius: 2px;\n transition: width 0.05s linear;\n}\n\n/* Image Container - stretches full height to align with accordion */\n.feature-accordion__image-container {\n display: flex;\n align-items: center;\n justify-content: center;\n /* Flows from parent Section's theme; mist-green fallback for unthemed use */\n background-color: var(--af-background-level-1, var(--colour-mistgreen-300, #dde6e3));\n border-radius: 20px;\n overflow: hidden;\n flex: 1;\n min-width: 0;\n}\n\n.feature-accordion__image-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding: var(--af-feature-accordion-image-pad, 40px);\n}\n\n.feature-accordion__image {\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n object-fit: contain;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);\n}\n\n.feature-accordion__image-placeholder {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Tablet */\n/* ≤ tablet */\n@media (max-width: 1024px) {\n .feature-accordion__content {\n gap: 32px;\n }\n\n .feature-accordion__heading {\n margin-bottom: 40px;\n }\n\n .accordion-item__title {\n font-size: 20px;\n }\n}\n\n/* Mobile */\n/* mobile-only */\n@media (max-width: 768px) {\n .feature-accordion__content {\n flex-direction: column;\n gap: 32px;\n }\n\n .feature-accordion__image-container {\n order: -1;\n min-height: 280px;\n flex: none;\n }\n\n .feature-accordion__list {\n flex: none;\n }\n\n .accordion-item__title {\n font-size: 18px;\n }\n\n .accordion-item__description {\n font-size: 15px;\n padding-right: 0;\n }\n}\n","import { Component, h, Host, Prop, State, Element, Watch } from '@stencil/core';\n\nexport interface FeatureAccordionItem {\n title: string;\n description: string;\n imageUrl?: string;\n imageAlt?: string;\n}\n\n/**\n * Feature accordion component with expandable items and accompanying image.\n * Used for showcasing product features with visual examples.\n * Features auto-cycling through items with a progress timer.\n * \n * **Must be wrapped in a Section component** to inherit theme styling.\n * The component automatically adapts colors based on the parent Section's theme.\n * \n * @example\n * ```tsx\n * <Section theme=\"inkwell\">\n * <FeatureAccordion heading=\"Features\" items={...} />\n * </Section>\n * ```\n */\n@Component({\n tag: 'af-feature-accordion',\n styleUrl: 'af-feature-accordion.css',\n shadow: false,\n scoped: true,\n})\nexport class AfFeatureAccordion {\n @Element() el!: HTMLElement;\n\n /** Section heading */\n @Prop() heading: string = 'Give AI agents your paperwork';\n\n /** JSON string of accordion items */\n @Prop() items: string = '[]';\n\n /** Auto-cycle interval in milliseconds (default: 6000ms = 6 seconds) */\n @Prop() cycleInterval: number = 6000;\n\n /** Whether auto-cycling is enabled */\n @Prop() autoCycle: boolean = true;\n\n /** Currently expanded item index */\n @State() expandedIndex: number = 0;\n\n /** Progress of current timer (0-100) */\n @State() timerProgress: number = 100;\n\n private progressTimer: number | null = null;\n private progressStartTime: number = 0;\n\n componentDidLoad() {\n if (this.autoCycle) {\n this.startCycling();\n }\n }\n\n disconnectedCallback() {\n this.stopCycling();\n }\n\n @Watch('autoCycle')\n handleAutoCycleChange(newValue: boolean) {\n if (newValue) {\n this.startCycling();\n } else {\n this.stopCycling();\n }\n }\n\n private getItems(): FeatureAccordionItem[] {\n try {\n return JSON.parse(this.items);\n } catch {\n return [];\n }\n }\n\n private startCycling() {\n this.stopCycling();\n this.progressStartTime = Date.now();\n this.timerProgress = 100;\n \n // Progress animation frame\n const updateProgress = () => {\n const elapsed = Date.now() - this.progressStartTime;\n const remaining = this.cycleInterval - elapsed;\n \n if (remaining <= 0) {\n this.moveToNextItem();\n } else {\n this.timerProgress = (remaining / this.cycleInterval) * 100;\n this.progressTimer = requestAnimationFrame(updateProgress);\n }\n };\n \n this.progressTimer = requestAnimationFrame(updateProgress);\n }\n\n private stopCycling() {\n if (this.progressTimer) {\n cancelAnimationFrame(this.progressTimer);\n this.progressTimer = null;\n }\n }\n\n private moveToNextItem() {\n const items = this.getItems();\n if (items.length === 0) return;\n \n this.expandedIndex = (this.expandedIndex + 1) % items.length;\n // Restart the cycling timer for the new item\n this.startCycling();\n }\n\n private handleItemClick(index: number) {\n // Reset timer when user clicks\n this.expandedIndex = index;\n // Restart the cycling timer for the clicked item\n if (this.autoCycle) {\n this.startCycling();\n }\n }\n\n render() {\n const items = this.getItems();\n const currentItem = items[this.expandedIndex];\n\n return (\n <Host>\n <div class=\"feature-accordion\">\n <div class=\"feature-accordion__container\">\n <h2 class=\"feature-accordion__heading\">{this.heading}</h2>\n \n <div class=\"feature-accordion__content\">\n {/* Left side - Accordion */}\n <div class=\"feature-accordion__list\">\n {items.map((item, index) => (\n <div \n class={{\n 'accordion-item': true,\n 'accordion-item--expanded': this.expandedIndex === index\n }}\n key={index}\n >\n <button\n class=\"accordion-item__header\"\n onClick={() => this.handleItemClick(index)}\n aria-expanded={this.expandedIndex === index ? 'true' : 'false'}\n >\n <h4 class=\"accordion-item__title\">{item.title}</h4>\n {/* Plus → minus: a single SVG with two strokes, the\n vertical one rotated-out to zero when expanded. This\n gives a fluid morph instead of swapping SVGs mid-\n animation. */}\n <span class=\"accordion-item__icon\" aria-hidden=\"true\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path class=\"accordion-item__icon-bar\" d=\"M5 12H19\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n <path class=\"accordion-item__icon-bar accordion-item__icon-bar--vert\" d=\"M12 5V19\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>\n </span>\n </button>\n <div\n class=\"accordion-item__content\"\n style={{\n opacity: this.expandedIndex === index ? '1' : '0'\n }}\n >\n <p class=\"accordion-item__description\">{item.description}</p>\n {this.expandedIndex === index && this.autoCycle && (\n <div class=\"accordion-item__timer-track\">\n <div \n class=\"accordion-item__timer-progress\"\n style={{ width: `${this.timerProgress}%` }}\n ></div>\n </div>\n )}\n </div>\n </div>\n ))}\n </div>\n\n {/* Right side - Image */}\n <div class=\"feature-accordion__image-container\">\n <div class=\"feature-accordion__image-wrapper\">\n {currentItem?.imageUrl && (\n <img \n src={currentItem.imageUrl} \n alt={currentItem.imageAlt || currentItem.title}\n class=\"feature-accordion__image\"\n />\n )}\n {!currentItem?.imageUrl && (\n <div class=\"feature-accordion__image-placeholder\">\n <slot name=\"image\"></slot>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-feature-card.entry.js","sources":["src/components/af-feature-card/af-feature-card.css?tag=af-feature-card&encapsulation=scoped","src/components/af-feature-card/af-feature-card.tsx"],"sourcesContent":["/* ==========================================================================\n Feature Card - Figma Specs\n \n Desktop Full-bleed: 544px × 660px, radius 32px\n Desktop Standard default: 544px width, radius 32px\n Desktop Standard large: 777px width, radius 32px\n Mobile Full-bleed: 335px × 442px, radius 24px\n Mobile Standard: 335px width, radius 24px\n ========================================================================== */\n\n/* ==========================================================================\n Host Element - Controls outer dimensions\n ========================================================================== */\n\n:host {\n display: block;\n --af-card-padding: 0;\n --af-card-gap: 0;\n}\n\n/* Fixed size hosts constrain to Figma dimensions */\n:host([card-size=\"default\"]) {\n width: 544px;\n}\n\n:host([card-size=\"large\"]) {\n width: 777px;\n}\n\n/* Flexible cards fill their container */\n:host([card-size=\"flexible\"]) {\n display: flex;\n width: 100%;\n height: 100%;\n}\n\n/* ==========================================================================\n Base Feature Card Styles\n ========================================================================== */\n\n.feature-card {\n overflow: hidden;\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n border-radius: var(--border-radius-card-level-1, 32px);\n width: 100%;\n height: 100%;\n /* Ensure proper clipping of absolutely positioned children with border-radius */\n isolation: isolate;\n}\n\n/* ==========================================================================\n Full Bleed Layout Mode\n Figma: 544px × 660px (desktop), 335px × 442px (mobile)\n ========================================================================== */\n\n.feature-card--layout-full-bleed {\n background: var(--background-base, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Full-bleed fixed sizes have explicit heights on host */\n:host([card-size=\"default\"]) .feature-card--layout-full-bleed,\n:host([card-size=\"large\"]) .feature-card--layout-full-bleed {\n height: 660px;\n}\n\n/* Full-bleed flexible minimum height */\n:host([card-size=\"flexible\"]) .feature-card--layout-full-bleed {\n min-height: 480px;\n}\n\n.feature-card__background {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 0;\n border-radius: 0;\n}\n\n.feature-card__background-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n border-radius: 0;\n}\n\n/* Overlay gradient with text */\n.feature-card__overlay {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: 0;\n backdrop-filter: blur(2px);\n background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);\n z-index: 1;\n /* Desktop: pt-124px px-32px pb-32px */\n padding: 124px 32px 32px 32px;\n\n /* White text on dark overlay */\n --af-typography-heading-primary: var(--typography-heading-secondary, #ffffff);\n --af-typography-heading-secondary: var(--typography-heading-secondary, #ffffff);\n --af-typography-body-default: var(--typography-body-dark, #ffffff);\n --colour-typography-heading-primary: var(--typography-heading-secondary, #ffffff);\n --colour-typography-heading-secondary: var(--typography-heading-secondary, #ffffff);\n --colour-typography-body-default: var(--typography-body-dark, #ffffff);\n}\n\n/* ==========================================================================\n Standard Layout Mode\n \n Structure: .feature-card > af-card[stretch] > [content] + [image-area]\n \n When cardSize=\"flexible\", af-card receives stretch prop which enables\n the flex chain. Content grows to fill space, image stays at bottom.\n ========================================================================== */\n\n.feature-card--layout-standard {\n background: var(--background-level-1, var(--colour-mistgreen-200, #e8eeed));\n}\n\n/* Remove border-radius from inner af-card - outer .feature-card handles rounding */\n.feature-card--layout-standard af-card {\n --border-radius-card-level-1: 0;\n}\n\n/* Standard flexible minimum height */\n:host([card-size=\"flexible\"]) .feature-card--layout-standard {\n min-height: 400px;\n}\n\n/* Content area - grows to push image to bottom (when af-card has stretch) */\n.feature-card__content {\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n z-index: 1;\n /* Desktop default: pt-40px px-32px pb-12px */\n padding: 40px 32px 12px 32px;\n flex: 1 1 auto;\n}\n\n/* Large card content padding: pt-40px px-40px pb-0 */\n:host([card-size=\"large\"]) .feature-card__content {\n padding: 40px 40px 0 40px;\n}\n\n/* ==========================================================================\n Image Area (Standard Layout)\n Figma: 160px height (desktop), 192px height (mobile)\n ========================================================================== */\n\n.feature-card__image-area {\n position: relative;\n width: 100%;\n height: 160px;\n flex-shrink: 0;\n overflow: hidden;\n border-radius: 0;\n}\n\n.feature-card__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center top;\n border-radius: 0;\n}\n\n/* ==========================================================================\n Typography Lockup Styling\n ========================================================================== */\n\n.feature-card af-typography-lockup {\n --colour-typography-heading-primary: var(--af-typography-heading-primary, var(--typography-heading-primary, #14343b));\n --colour-typography-body-default: var(--af-typography-body-default, var(--typography-body-default, #2b484f));\n}\n\n/* ==========================================================================\n Mobile Responsive Styles (max-width: 768px)\n \n Figma:\n - Full-bleed: 335px × 442px, radius 24px\n - Standard: 335px width, radius 24px\n ========================================================================== */\n\n/* mobile-only */\n@media (max-width: 768px) {\n .feature-card {\n border-radius: var(--border-radius-card-level-1, 24px);\n }\n\n /* Mobile fixed widths on host */\n :host([card-size=\"default\"]),\n :host([card-size=\"large\"]) {\n width: 335px;\n }\n\n /* Mobile full-bleed height: 442px */\n :host([card-size=\"default\"]) .feature-card--layout-full-bleed,\n :host([card-size=\"large\"]) .feature-card--layout-full-bleed {\n height: 442px;\n }\n\n /* Mobile flexible minimum heights */\n :host([card-size=\"flexible\"]) .feature-card--layout-standard {\n min-height: 340px;\n }\n\n :host([card-size=\"flexible\"]) .feature-card--layout-full-bleed {\n min-height: 380px;\n }\n\n /* Mobile overlay padding: pt-80px px-24px pb-28px */\n .feature-card__overlay {\n padding: 80px 24px 28px 24px;\n }\n\n /* Mobile content padding: pt-32px px-24px pb-12px */\n .feature-card__content {\n padding: 32px 24px 12px 24px;\n }\n\n /* Mobile image area: 192px height */\n .feature-card__image-area {\n height: 192px;\n }\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\nimport type { Theme } from '../../types';\n\n/**\n * Feature Card molecule component that combines a card with an image.\n * \n * Two layout modes:\n * - `standard`: Theme background with text at top and image at bottom\n * - `full-bleed`: Image covers entire card with text overlay at bottom\n * \n * Responsive: Automatically adapts to mobile viewport (≤768px).\n * \n * Uses af-card atom internally and af-typography-lockup for text hierarchy.\n * \n * @slot - Heading text content\n * @slot body - Description/body text content\n */\n@Component({\n tag: 'af-feature-card',\n styleUrl: 'af-feature-card.css',\n shadow: false,\n scoped: true,\n})\nexport class AfFeatureCard {\n /**\n * Theme variant - sets background color and provides theme context.\n * Only applies to 'standard' layout mode. Defaults to 'mist-green'.\n */\n @Prop() theme?: Theme = 'mist-green';\n\n /**\n * Layout mode for the card.\n * - 'standard': Theme background with text at top and image at bottom\n * - 'full-bleed': Image covers entire card with text overlay at bottom\n */\n @Prop() layout: 'standard' | 'full-bleed' = 'standard';\n\n /**\n * Card size variant.\n * - 'default': Fixed 544px × 420px\n * - 'large': Fixed 777px × 480px \n * - 'flexible': Fills container (for grid layouts)\n */\n @Prop({ reflect: true }) cardSize: 'default' | 'large' | 'flexible' = 'default';\n\n /**\n * Heading size for typography lockup (1-5, where 1 is largest).\n */\n @Prop() headingSize: 1 | 2 | 3 | 4 | 5 = 3;\n\n /**\n * Background/feature image URL.\n */\n @Prop() imageSrc?: string;\n\n /**\n * Image alt text for accessibility.\n * Provide meaningful alt text for feature images.\n * Only use empty string for purely decorative images.\n */\n @Prop() imageAlt: string = '';\n\n render() {\n const hasImage = !!this.imageSrc;\n const isFullBleed = this.layout === 'full-bleed';\n\n const wrapperClasses = {\n 'feature-card': true,\n [`feature-card--layout-${this.layout}`]: true,\n [`feature-card--size-${this.cardSize}`]: true,\n };\n\n // Full-bleed mode: image background with overlay\n if (isFullBleed) {\n return (\n <Host>\n <div class={wrapperClasses}>\n {/* Background image */}\n {hasImage && (\n <div class=\"feature-card__background\">\n <img\n src={this.imageSrc}\n alt={this.imageAlt}\n class=\"feature-card__background-image\"\n />\n </div>\n )}\n\n {/* Content overlay with gradient */}\n <div class=\"feature-card__overlay\">\n <af-typography-lockup\n headingSize={this.headingSize}\n textAlignment=\"left\"\n buttonAlignment=\"vertical\"\n >\n <slot></slot>\n <span slot=\"description\">\n <slot name=\"body\"></slot>\n </span>\n </af-typography-lockup>\n </div>\n </div>\n </Host>\n );\n }\n\n // Standard mode: theme card with image at bottom\n const isFlexible = this.cardSize === 'flexible';\n \n return (\n <Host>\n <div class={wrapperClasses}>\n <af-card theme={this.theme} stretch={isFlexible}>\n {/* Content area with typography lockup */}\n <div class=\"feature-card__content\">\n <af-typography-lockup\n headingSize={this.headingSize}\n textAlignment=\"left\"\n buttonAlignment=\"vertical\"\n >\n <slot></slot>\n <span slot=\"description\">\n <slot name=\"body\"></slot>\n </span>\n </af-typography-lockup>\n </div>\n\n {/* Image area at bottom */}\n {hasImage && (\n <div class=\"feature-card__image-area\">\n <img\n src={this.imageSrc}\n alt={this.imageAlt}\n class=\"feature-card__image\"\n />\n </div>\n )}\n </af-card>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-feature-grid.entry.js","sources":["src/components/af-feature-grid/af-feature-grid.css?tag=af-feature-grid&encapsulation=scoped","src/components/af-feature-grid/af-feature-grid.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n/* ==========================================================================\n Base Feature Grid Styles\n ========================================================================== */\n\n.feature-grid {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n}\n\n/* ==========================================================================\n Cards Container - CSS Grid Layout\n ========================================================================== */\n\n.feature-grid__cards {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 24px;\n width: 100%;\n max-width: 1440px;\n align-items: stretch;\n}\n\n/* Ensure feature cards fill their grid cells */\n.feature-grid__cards>af-feature-card {\n height: 100%;\n}\n\n/* Column variants */\n.feature-grid--cols-3 .feature-grid__cards {\n grid-template-columns: repeat(3, 1fr);\n}\n\n.feature-grid--cols-2 .feature-grid__cards {\n grid-template-columns: repeat(2, 1fr);\n}\n\n.feature-grid--cols-1 .feature-grid__cards {\n grid-template-columns: 1fr;\n}\n\n/* ==========================================================================\n Progress Line (scroll mode indicator)\n ========================================================================== */\n\n.feature-grid__progress {\n display: none;\n width: 100%;\n margin-top: 16px;\n}\n\n/* ==========================================================================\n Mobile Responsive Styles (max-width: 767px)\n ========================================================================== */\n\n/* ≤ mobile */\n@media (max-width: 767px) {\n .feature-grid__cards {\n gap: 16px;\n }\n\n /* Mobile List Mode - single column stack */\n .feature-grid--mobile-list .feature-grid__cards {\n grid-template-columns: 1fr;\n gap: 20px;\n }\n\n /* Mobile Grid Mode - keep 2 columns */\n .feature-grid--mobile-grid .feature-grid__cards {\n grid-template-columns: repeat(2, 1fr);\n }\n\n /* Mobile Scroll Mode - horizontal scroll */\n .feature-grid--mobile-scroll .feature-grid__cards {\n display: flex;\n flex-wrap: nowrap;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n gap: 16px;\n padding-bottom: 8px;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n .feature-grid--mobile-scroll .feature-grid__cards::-webkit-scrollbar {\n display: none;\n }\n\n .feature-grid--mobile-scroll .feature-grid__cards>af-feature-card {\n flex: 0 0 280px;\n scroll-snap-align: start;\n }\n\n .feature-grid--mobile-scroll .feature-grid__progress {\n display: block;\n }\n}\n\n/* ==========================================================================\n Tablet breakpoint (768px - 1023px)\n ========================================================================== */\n\n/* ≥ mobile and ≤ tablet */\n@media (min-width: 768px) and (max-width: 1023px) {\n .feature-grid__cards {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .feature-grid--cols-3 .feature-grid__cards,\n .feature-grid--cols-4 .feature-grid__cards {\n grid-template-columns: repeat(2, 1fr);\n }\n}","import { Component, Prop, State, h, Host, Element, Watch } from '@stencil/core';\n\n/**\n * Feature Grid component - CSS Grid container for feature cards.\n *\n * Desktop: Configurable columns (1-4)\n * Mobile: List (stacked), horizontal scroll, or 2-column grid\n *\n * @slot - Feature card components (af-feature-card)\n */\n@Component({\n tag: 'af-feature-grid',\n styleUrl: 'af-feature-grid.css',\n shadow: false,\n scoped: true,\n})\nexport class AfFeatureGrid {\n @Element() host!: HTMLElement;\n\n /**\n * Number of columns on desktop (1-4).\n */\n @Prop() columns: 1 | 2 | 3 | 4 = 4;\n\n /**\n * Mobile layout behavior.\n * - 'list': Vertical stack (1 column)\n * - 'scroll': Horizontal scroll with progress indicator\n * - 'grid': Maintain 2-column grid on mobile\n */\n @Prop() mobileLayout: 'list' | 'scroll' | 'grid' = 'list';\n\n @State() scrollProgress: number = 0;\n\n private scrollContainer: HTMLElement | undefined;\n private observer: MutationObserver | undefined;\n private resizeObserver: ResizeObserver | undefined;\n\n componentDidLoad() {\n this.setupScrollListener();\n\n // Watch for cards being added (for React async rendering)\n this.observer = new MutationObserver(() => {\n this.setupScrollListener();\n });\n\n this.observer.observe(this.host, {\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n @Watch('mobileLayout')\n onMobileLayoutChange() {\n this.setupScrollListener();\n }\n\n private setupScrollListener() {\n if (this.scrollContainer) {\n this.scrollContainer.removeEventListener('scroll', this.handleScroll);\n }\n\n requestAnimationFrame(() => {\n this.scrollContainer = this.host.querySelector('.feature-grid__cards') as HTMLElement;\n\n if (this.scrollContainer && this.mobileLayout === 'scroll') {\n this.scrollContainer.addEventListener('scroll', this.handleScroll, { passive: true });\n this.handleScroll();\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n this.resizeObserver = new ResizeObserver(() => {\n this.handleScroll();\n });\n this.resizeObserver.observe(this.scrollContainer);\n }\n });\n }\n\n private handleScroll = () => {\n if (!this.scrollContainer) return;\n\n const { scrollLeft, scrollWidth, clientWidth } = this.scrollContainer;\n const maxScroll = scrollWidth - clientWidth;\n\n if (maxScroll > 0) {\n this.scrollProgress = scrollLeft / maxScroll;\n } else {\n this.scrollProgress = 0;\n }\n };\n\n render() {\n const gridClasses = {\n 'feature-grid': true,\n [`feature-grid--cols-${this.columns}`]: true,\n [`feature-grid--mobile-${this.mobileLayout}`]: true,\n };\n\n const showProgressLine = this.mobileLayout === 'scroll';\n\n return (\n <Host>\n <div class={gridClasses}>\n <div class=\"feature-grid__cards\">\n <slot></slot>\n </div>\n\n {showProgressLine && (\n <div class=\"feature-grid__progress\">\n <af-progress-line progress={this.scrollProgress} />\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-fieldset.entry.js","sources":["src/components/af-fieldset/af-fieldset.css?tag=af-fieldset&encapsulation=shadow","src/components/af-fieldset/af-fieldset.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.fieldset {\n display: flex;\n flex-direction: column;\n border: none;\n padding: 0;\n margin: 0;\n min-inline-size: 0;\n}\n\n.fieldset.disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n\n/* Legend/heading styling - uses heading 5 style */\n.legend {\n display: block;\n font-family: var(--typography-headingfont, 'NeuSans', sans-serif);\n font-weight: var(--font-weight-book, 500);\n font-size: var(--font-size-heading-5-desktop, 20px);\n line-height: var(--line-height-heading-relaxed, 1.2);\n letter-spacing: var(--letter-spacing-heading, -0.02em);\n /* Inherit color from theme context via CSS custom property */\n color: var(--af-typography-heading-primary, var(--colour-brand-inkwell, #14343b));\n padding: 0;\n margin: 0 0 12px 0;\n width: 100%;\n}\n\n/* Items container */\n.items {\n display: flex;\n}\n\n/* Vertical layout */\n.items.orientation-vertical {\n flex-direction: column;\n gap: 8px;\n align-items: flex-start;\n}\n\n/* Horizontal layout */\n.items.orientation-horizontal {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 28px;\n align-items: center;\n}\n\n/* Slotted content styling */\n::slotted(*) {\n flex-shrink: 0;\n}\n\n/* Full width items in vertical layout */\n.items.orientation-vertical ::slotted(*) {\n width: 100%;\n}\n","import { Component, h, Prop, Host } from '@stencil/core';\n\n/**\n * Fieldset component for grouping related form controls.\n * Supports vertical and horizontal layouts with an optional legend/heading.\n * \n * @slot - Form controls (checkboxes, radios, etc.)\n */\n@Component({\n tag: 'af-fieldset',\n styleUrl: 'af-fieldset.css',\n shadow: true\n})\nexport class AfFieldset {\n /**\n * The legend/heading text for the fieldset\n */\n @Prop() legend?: string;\n\n /**\n * The layout orientation of the fieldset items\n * - `vertical` - Items stack vertically (default)\n * - `horizontal` - Items are laid out horizontally\n */\n @Prop() orientation: 'vertical' | 'horizontal' = 'vertical';\n\n /**\n * Whether the fieldset is disabled (disables all child controls)\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n render() {\n const fieldsetClasses = {\n 'fieldset': true,\n [`orientation-${this.orientation}`]: true,\n 'disabled': this.disabled\n };\n\n const itemsClasses = {\n 'items': true,\n [`orientation-${this.orientation}`]: true\n };\n\n return (\n <Host>\n <fieldset class={fieldsetClasses} disabled={this.disabled}>\n {this.legend && (\n <legend class=\"legend\">{this.legend}</legend>\n )}\n <div class={itemsClasses}>\n <slot></slot>\n </div>\n </fieldset>\n </Host>\n );\n }\n}\n\n"],"names":[],"mappings":";;AAAA,MAAM,aAAa,GAAG,40BAA40B;;MCar1B,UAAU,GAAA,MAAA;AALvB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAWE;;;;AAIG;AACK,QAAA,IAAW,CAAA,WAAA,GAA8B,UAAU;AAE3D;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AA2BnD;IAzBC,MAAM,GAAA;AACJ,QAAA,MAAM,eAAe,GAAG;AACtB,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,CAAC,eAAe,IAAI,CAAC,WAAW,CAAE,CAAA,GAAG,IAAI;YACzC,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,CAAC,eAAe,IAAI,CAAC,WAAW,CAAE,CAAA,GAAG;SACtC;AAED,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAU,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA,EACtD,IAAI,CAAC,MAAM,KACV,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,QAAQ,EAAE,EAAA,IAAI,CAAC,MAAM,CAAU,CAC9C,EACD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,YAAY,EAAA,EACtB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACG,CACN;;;;;;;"}