@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
- {"version":3,"file":"af-nav-card.js","sourceRoot":"","sources":["../../../src/components/af-nav-card/af-nav-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEhE;;;;;;;;;;;GAWG;AAOH,MAAM,OAAO,SAAS;IANtB;QAsBE;;WAEG;QACK,aAAQ,GAAW,EAAE,CAAC;QAErB,cAAS,GAAY,KAAK,CAAC;QAE5B,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAEM,qBAAgB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC;KAuCH;IArCC,MAAM;QACJ,MAAM,OAAO,GAAG;YACd,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI,CAAC,SAAS;SAC7B,CAAC;QAEF,MAAM,OAAO,GAAG,CACd,WACE,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,IAAI,CAAC,gBAAgB,EACnC,YAAY,EAAE,IAAI,CAAC,gBAAgB;YAEnC,WAAK,KAAK,EAAC,iBAAiB,IACzB,IAAI,CAAC,QAAQ,IAAI,CAChB,WAAK,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAC,YAAY,GAAG,CACnE,CACG;YACN,WAAK,KAAK,EAAC,SAAS,IACjB,IAAI,CAAC,OAAO,IAAI,CACf,UAAI,KAAK,EAAC,SAAS,IAAE,IAAI,CAAC,OAAO,CAAM,CACxC,CACG,CACF,CACP,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CACL,EAAC,IAAI;gBACH,SAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAC,WAAW,IAClC,OAAO,CACN,CACC,CACR,CAAC;QACJ,CAAC;QAED,OAAO,EAAC,IAAI,QAAE,OAAO,CAAQ,CAAC;IAChC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, Host, State } from '@stencil/core';\n\n/**\n * A navigation card component for featured article content in mega-menu dropdowns.\n * Displays an image with a gradient overlay and headline text.\n * \n * **Usage:**\n * - Place in the `sidebar` slot of NavMenuNest\n * - Provide imageSrc, heading, and href props\n * \n * **Hover behavior:**\n * - Slight scale effect (1.02)\n * - Headline underline\n */\n@Component({\n tag: 'af-nav-card',\n styleUrl: 'af-nav-card.css',\n shadow: false,\n scoped: true,\n})\nexport class AfNavCard {\n /**\n * The headline text displayed over the image\n */\n @Prop() heading?: string;\n\n /**\n * URL to navigate to when clicked\n */\n @Prop() href?: string;\n\n /**\n * Image source URL for the background\n */\n @Prop() imageSrc?: string;\n\n /**\n * Alternative text for the image\n */\n @Prop() imageAlt: string = '';\n\n @State() isHovered: boolean = false;\n\n private handleMouseEnter = () => {\n this.isHovered = true;\n };\n\n private handleMouseLeave = () => {\n this.isHovered = false;\n };\n\n render() {\n const classes = {\n 'nav-card': true,\n 'is-hovered': this.isHovered\n };\n\n const content = (\n <div\n class={classes}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n <div class=\"image-container\">\n {this.imageSrc && (\n <img src={this.imageSrc} alt={this.imageAlt} class=\"card-image\" />\n )}\n </div>\n <div class=\"overlay\">\n {this.heading && (\n <h3 class=\"heading\">{this.heading}</h3>\n )}\n </div>\n </div>\n );\n\n if (this.href) {\n return (\n <Host>\n <a href={this.href} class=\"card-link\">\n {content}\n </a>\n </Host>\n );\n }\n\n return <Host>{content}</Host>;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-nav-item.js","sourceRoot":"","sources":["../../../src/components/af-nav-item/af-nav-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAElE;;;;;;;;;;GAUG;AAOH,MAAM,OAAO,SAAS;IANtB;QASE;;;;WAIG;QACK,cAAS,GAA4B,SAAS,CAAC;QAEvD;;;;WAIG;QACK,YAAO,GAAgB,IAAI,CAAC;QAEpC;;;;WAIG;QACsB,eAAU,GAAyB,SAAS,CAAC;QAOtE;;WAEG;QACK,WAAM,GAAY,KAAK,CAAC;QAEhC;;;;WAIG;QACK,yBAAoB,GAAG,CAAC,KAAoB,EAAE,EAAE;YACtD,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC3E,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;KAgDH;IA9CC,MAAM;QACJ,MAAM,OAAO,GAAG;YACd,UAAU,EAAE,IAAI;YAChB,CAAC,aAAa,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI;YACrC,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI;YACjC,CAAC,cAAc,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI;YACvC,QAAQ,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,YAAM,IAAI,EAAC,WAAW,GAAQ;YAC9B,WAAK,KAAK,EAAC,iBAAiB;gBAC1B,eAAa,CACT;YACN,YAAM,IAAI,EAAC,YAAY,GAAQ;SAChC,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CACL,EAAC,IAAI;gBACH,SAAG,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAC,UAAU;oBAClC,WAAK,KAAK,EAAE,OAAO,IAAG,YAAY,CAAO,CACvC,CACC,CACR,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAChE,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,CACL,EAAC,IAAI;gBACH,WACE,KAAK,EAAE,OAAO,EACd,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,mBACG,MAAM,EACpB,SAAS,EAAE,IAAI,CAAC,oBAAoB,IAEnC,YAAY,CACT,CACD,CACR,CAAC;QACJ,CAAC;QAED,OAAO,EAAC,IAAI,QAAE,WAAK,KAAK,EAAE,OAAO,IAAG,YAAY,CAAO,CAAQ,CAAC;IAClE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, h, Prop, Host } from '@stencil/core';\n\n/**\n * A generic navigation item component that can be used in navigation bars, menus, and sidebars.\n * Supports multiple hierarchy levels, variants, and states (active, hover).\n *\n * **Dropdown trigger a11y:** when the host carries a `data-dropdown=\"id\"`\n * attribute and has no `href`, the inner wrapper is promoted to\n * `role=\"button\"` with `tabindex=\"0\"` and keyboard activation (Enter/Space),\n * so keyboard users can open the matching dropdown panel just like a\n * pointer click. The companion `af-navbar` keeps `aria-expanded` on the\n * host in sync with the active dropdown.\n */\n@Component({\n tag: 'af-nav-item',\n styleUrl: 'af-nav-item.css',\n shadow: false,\n scoped: true,\n})\nexport class AfNavItem {\n @Element() el!: HTMLElement;\n\n /**\n * Visual hierarchy level of the navigation item\n * - 'primary': Bold, main navigation (larger text, prominent styling)\n * - 'secondary': Lighter, sub-navigation (smaller text, subtle styling)\n */\n @Prop() hierarchy: 'primary' | 'secondary' = 'primary';\n\n /**\n * Visual variant within the hierarchy level\n * - '01': Darker/more prominent styling\n * - '02': Lighter/more subtle styling\n */\n @Prop() variant: '01' | '02' = '01';\n\n /**\n * Breakpoint variant for responsive styling\n * - 'desktop': Desktop-specific styles\n * - 'mobile': Mobile-specific styles (larger text, different spacing)\n */\n @Prop({ reflect: true }) breakpoint: 'desktop' | 'mobile' = 'desktop';\n\n /**\n * URL to navigate to when clicked\n */\n @Prop() href?: string;\n\n /**\n * Whether this nav item is currently active/selected\n */\n @Prop() active: boolean = false;\n\n /**\n * Promote Enter and Space on a focused trigger into a synthetic click\n * so the surrounding af-navbar (which listens on click) treats the\n * keyboard activation identically to a pointer click.\n */\n private handleTriggerKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar') {\n event.preventDefault();\n this.el.click();\n }\n };\n\n render() {\n const classes = {\n 'nav-item': true,\n [`hierarchy-${this.hierarchy}`]: true,\n [`variant-${this.variant}`]: true,\n [`breakpoint-${this.breakpoint}`]: true,\n 'active': this.active,\n };\n\n const innerContent = [\n <slot name=\"icon-left\"></slot>,\n <div class=\"label-container\">\n <slot></slot>\n </div>,\n <slot name=\"icon-right\"></slot>,\n ];\n\n if (this.href) {\n return (\n <Host>\n <a href={this.href} class=\"nav-link\">\n <div class={classes}>{innerContent}</div>\n </a>\n </Host>\n );\n }\n\n const isDropdownTrigger = this.el.hasAttribute('data-dropdown');\n if (isDropdownTrigger) {\n return (\n <Host>\n <div\n class={classes}\n role=\"button\"\n tabindex={0}\n aria-haspopup=\"menu\"\n onKeyDown={this.handleTriggerKeyDown}\n >\n {innerContent}\n </div>\n </Host>\n );\n }\n\n return <Host>{<div class={classes}>{innerContent}</div>}</Host>;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-nav-menu.js","sourceRoot":"","sources":["../../../src/components/af-nav-menu/af-nav-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;GAGG;AAOH,MAAM,OAAO,SAAS;IANtB;QAYE;;;;WAIG;QACK,eAAU,GAAyB,SAAS,CAAC;QAErD;;;;WAIG;QACK,eAAU,GAAY,KAAK,CAAC;QAEpC;;;WAGG;QACsB,cAAS,GAAY,KAAK,CAAC;KAyBrD;IAvBC,MAAM;QACJ,MAAM,OAAO,GAAG;YACd,UAAU,EAAE,IAAI;YAChB,CAAC,cAAc,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI;YACvC,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,YAAY,EAAE,IAAI,CAAC,SAAS;SAC7B,CAAC;QAEF,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,OAAO;gBAChB,IAAI,CAAC,OAAO,IAAI,CACf,4DAAK,KAAK,EAAC,aAAa;oBACtB,2DAAI,KAAK,EAAC,cAAc,IAAE,IAAI,CAAC,OAAO,CAAM,CACxC,CACP;gBACD,4DAAK,KAAK,EAAC,YAAY;oBACrB,8DAAa,CACT,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, Host } from '@stencil/core';\n\n/**\n * A grouped navigation menu component with a heading.\n * Used in mega-menu dropdowns to group related navigation items.\n */\n@Component({\n tag: 'af-nav-menu',\n styleUrl: 'af-nav-menu.css',\n shadow: false,\n scoped: true,\n})\nexport class AfNavMenu {\n /**\n * The heading text displayed above the navigation items\n */\n @Prop() heading?: string;\n\n /**\n * Breakpoint variant for responsive styling\n * - 'desktop': Desktop-specific styles (right border, horizontal padding)\n * - 'mobile': Mobile-specific styles (bottom border, vertical layout)\n */\n @Prop() breakpoint: 'desktop' | 'mobile' = 'desktop';\n\n /**\n * Whether to show the right border separator.\n * When used inside NavMenuNest, borders are controlled by the parent.\n * Set to true only when using NavMenu standalone.\n */\n @Prop() showBorder: boolean = false;\n\n /**\n * Whether to display as a card with background color and rounded corners.\n * Used for highlighted sidebar menus (e.g., solutions-alt variant).\n */\n @Prop({ reflect: true }) cardStyle: boolean = false;\n\n render() {\n const classes = {\n 'nav-menu': true,\n [`breakpoint-${this.breakpoint}`]: true,\n 'has-border': this.showBorder,\n 'card-style': this.cardStyle\n };\n\n return (\n <Host>\n <div class={classes}>\n {this.heading && (\n <div class=\"menu-header\">\n <h3 class=\"menu-heading\">{this.heading}</h3>\n </div>\n )}\n <div class=\"menu-items\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-nav-menu-nest.js","sourceRoot":"","sources":["../../../src/components/af-nav-menu-nest/af-nav-menu-nest.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;;;;;;;;;;;;GAkBG;AAOH,MAAM,OAAO,aAAa;IAN1B;QAOE;;;;;;WAMG;QACK,SAAI,GAA4D,WAAW,CAAC;QAEpF;;;;WAIG;QACK,eAAU,GAAyB,SAAS,CAAC;QAErD;;;;WAIG;QACsB,sBAAiB,GAAY,IAAI,CAAC;KAuB5D;IArBC,MAAM;QACJ,MAAM,OAAO,GAAG;YACd,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,IAAI;YACnB,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;YAC3B,CAAC,cAAc,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI;SACxC,CAAC;QAEF,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,OAAO;gBACjB,4DAAK,KAAK,EAAC,cAAc;oBACvB,8DAAa,CACT;gBACN,4DAAK,KAAK,EAAC,cAAc;oBACvB,6DAAM,IAAI,EAAC,SAAS,GAAQ,CACxB,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, Host } from '@stencil/core';\n\n/**\n * A mega-menu dropdown panel component.\n * Acts as a container for NavMenu columns and optionally a sidebar.\n * Used as the dropdown content for navbar items.\n * \n * **Slots:**\n * - default: Place NavMenu components here - they will be displayed as columns\n * - sidebar: Optional sidebar content (NavMenu, NavCard, or any content)\n * \n * **Example:**\n * ```html\n * <af-nav-menu-nest type=\"solutions\" breakpoint=\"desktop\">\n * <af-nav-menu heading=\"Industries\">...</af-nav-menu>\n * <af-nav-menu heading=\"Use Cases\">...</af-nav-menu>\n * <af-nav-menu heading=\"Documents\">...</af-nav-menu>\n * <af-nav-menu slot=\"sidebar\" heading=\"Resume Parser\">...</af-nav-menu>\n * </af-nav-menu-nest>\n * ```\n */\n@Component({\n tag: 'af-nav-menu-nest',\n styleUrl: 'af-nav-menu-nest.css',\n shadow: false,\n scoped: true,\n})\nexport class AfNavMenuNest {\n /**\n * The type/variant of the mega-menu\n * - 'solutions': Multi-column layout (3 columns + sidebar)\n * - 'solutions-alt': Alternative solutions layout\n * - 'resources': Multi-column layout with optional featured card\n * - 'pricing': Simpler layout without sidebar\n */\n @Prop() type: 'solutions' | 'solutions-alt' | 'resources' | 'pricing' = 'solutions';\n\n /**\n * Breakpoint variant for responsive styling\n * - 'desktop': Horizontal multi-column layout\n * - 'mobile': Vertical stacked layout\n */\n @Prop() breakpoint: 'desktop' | 'mobile' = 'desktop';\n\n /**\n * Whether to show the heavier border on the last column (before sidebar).\n * Set to `true` when sidebar has content, `false` when no sidebar.\n * When `false`, the last column has no border.\n */\n @Prop({ reflect: true }) showSidebarBorder: boolean = true;\n\n render() {\n const classes = {\n 'nav-menu-nest': true,\n 'theme-white': true,\n [`type-${this.type}`]: true,\n [`breakpoint-${this.breakpoint}`]: true\n };\n\n return (\n <Host>\n <div class={classes}>\n <div class=\"menu-columns\">\n <slot></slot>\n </div>\n <div class=\"menu-sidebar\">\n <slot name=\"sidebar\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-navbar.js","sourceRoot":"","sources":["../../../src/components/af-navbar/af-navbar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, h, Host, Prop, Element, Listen } from '@stencil/core';\nimport type { Theme } from '../../types';\n\n/**\n * A full-width navigation bar component that provides the main site navigation.\n * Features a pill-shaped container with logo, navigation links, and action buttons.\n * Includes mobile hamburger menu and support for mega-menu dropdowns.\n * \n * The logo slot can be used to provide a custom logo. If no logo is provided,\n * the default Affinda logo will be displayed.\n * \n * **Slots:**\n * - `logo` - Logo area (defaults to Affinda logo if empty)\n * - `start` - Primary navigation links (left side, desktop)\n * - `end` - Secondary/utility links (right side)\n * - `button` - Call-to-action button\n * - `dropdowns` - One or more dropdown panels, each a `<div data-for=\"id\">`\n * where `id` matches the `data-dropdown=\"id\"` attribute on the trigger.\n * Clicking a trigger toggles the matching panel; only one is visible at\n * a time.\n * - `mobile-menu` - Mobile menu content (use af-nav-accordion for accordion menus)\n * - `mobile-button` - CTA button for mobile menu (appears at top)\n */\n@Component({\n tag: 'af-navbar',\n styleUrl: 'af-navbar.css',\n shadow: false,\n scoped: true,\n})\nexport class AfNavbar {\n @Element() el!: HTMLElement;\n\n @State() mobileMenuOpen: boolean = false;\n \n /** The currently open dropdown identifier (null if none open) */\n @State() activeDropdown: string | null = null;\n\n /** Whether to show the default Affinda logo when no logo slot content is provided */\n @Prop() showDefaultLogo: boolean = true;\n\n /** Theme for the spacer background - should match the section below the navbar */\n @Prop() theme?: Theme;\n\n /** Force mobile layout regardless of viewport size (useful for testing/stories) */\n @Prop({ reflect: true }) forceMobile: boolean = false;\n\n private toggleMobileMenu = () => {\n this.mobileMenuOpen = !this.mobileMenuOpen;\n // Close any open dropdown when toggling mobile menu\n this.activeDropdown = null;\n };\n\n /**\n * Opens a dropdown by its identifier\n */\n private openDropdown = (dropdownId: string) => {\n this.activeDropdown = dropdownId;\n };\n\n /**\n * Closes the currently open dropdown\n */\n private closeDropdown = () => {\n this.activeDropdown = null;\n };\n\n /**\n * Toggles a dropdown by its identifier\n */\n private toggleDropdown = (dropdownId: string) => {\n if (this.activeDropdown === dropdownId) {\n this.activeDropdown = null;\n } else {\n this.activeDropdown = dropdownId;\n }\n };\n\n /** Timer id used to debounce hover-driven closes. */\n private closeTimer?: number;\n\n /**\n * The trigger element that opened the currently active dropdown. Tracked\n * so an Esc keypress can close the dropdown and restore focus to the\n * trigger, matching WAI-ARIA menu-button guidance.\n */\n private lastActiveTrigger?: HTMLElement;\n\n /**\n * Open the dropdown matching a `[data-dropdown]` trigger on click —\n * acts as a toggle so keyboard/touch users can still dismiss it.\n */\n @Listen('click')\n handleTriggerClick(event: MouseEvent) {\n const target = event.target as HTMLElement | null;\n const trigger = target?.closest?.('[data-dropdown]') as HTMLElement | null;\n if (!trigger || !this.el.contains(trigger)) return;\n const id = trigger.getAttribute('data-dropdown');\n if (!id) return;\n event.preventDefault();\n event.stopPropagation();\n this.cancelScheduledClose();\n this.lastActiveTrigger = trigger;\n this.toggleDropdown(id);\n }\n\n /**\n * Open the dropdown matching a `[data-dropdown]` trigger on hover.\n * Uses mouseover (which bubbles) and checks for the trigger ancestor.\n */\n @Listen('mouseover')\n handleHover(event: MouseEvent) {\n const target = event.target as HTMLElement | null;\n const trigger = target?.closest?.('[data-dropdown]') as HTMLElement | null;\n if (!trigger || !this.el.contains(trigger)) return;\n const id = trigger.getAttribute('data-dropdown');\n if (!id || this.activeDropdown === id) {\n this.cancelScheduledClose();\n return;\n }\n this.cancelScheduledClose();\n this.lastActiveTrigger = trigger;\n this.openDropdown(id);\n }\n\n /**\n * When the pointer leaves the navbar entirely (including any open\n * dropdown panel), schedule a close. Re-entering cancels it.\n */\n @Listen('mouseleave')\n handleHostLeave() {\n this.scheduleClose();\n }\n\n @Listen('mouseenter')\n handleHostEnter() {\n this.cancelScheduledClose();\n }\n\n private scheduleClose() {\n // Short 100ms debounce so the mouse has time to cross any tiny\n // dead-zone between the nav pill, the dropdown panel, and the\n // items inside it without accidentally closing the panel. A\n // re-entering mouseenter on the host cancels the pending close.\n this.cancelScheduledClose();\n this.closeTimer = window.setTimeout(() => {\n this.closeDropdown();\n this.closeTimer = undefined;\n }, 100);\n }\n\n private cancelScheduledClose() {\n if (this.closeTimer !== undefined) {\n clearTimeout(this.closeTimer);\n this.closeTimer = undefined;\n }\n }\n\n /**\n * Handle clicks outside the navbar to close dropdowns\n */\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: MouseEvent) {\n const path = event.composedPath();\n if (!path.includes(this.el)) {\n this.closeDropdown();\n }\n }\n\n /**\n * Keep the visibility of slotted dropdown panels, and the `data-active`\n * flag on their triggers, in sync with the currently active dropdown.\n * Each panel lives in the `dropdowns` slot and carries a `data-for`\n * attribute that matches its trigger's id.\n */\n componentDidLoad() {\n this.syncDropdownState();\n }\n\n componentDidUpdate() {\n this.syncDropdownState();\n }\n\n private syncDropdownState() {\n this.el.querySelectorAll<HTMLElement>('[data-for]').forEach((panel) => {\n if (!this.el.contains(panel)) return;\n panel.hidden = panel.getAttribute('data-for') !== this.activeDropdown;\n });\n this.el.querySelectorAll<HTMLElement>('[data-dropdown]').forEach((trigger) => {\n if (!this.el.contains(trigger)) return;\n const active = trigger.getAttribute('data-dropdown') === this.activeDropdown;\n if (active) trigger.setAttribute('data-active', '');\n else trigger.removeAttribute('data-active');\n trigger.setAttribute('aria-expanded', active ? 'true' : 'false');\n });\n }\n\n /**\n * Handle escape key to close dropdowns. If a dropdown is open, restore\n * focus to the trigger that opened it so keyboard users don't lose\n * their place in the tab order.\n */\n @Listen('keydown', { target: 'document' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.activeDropdown !== null) {\n const toFocus = this.lastActiveTrigger;\n this.closeDropdown();\n toFocus?.focus?.();\n }\n }\n\n render() {\n const hasDropdown = this.activeDropdown !== null;\n\n return (\n <Host class={{ 'has-dropdown-open': hasDropdown }}>\n {/* Spacer element to prevent content from being hidden behind sticky navbar */}\n <div class={`navbar-spacer${this.theme ? ` theme-${this.theme}` : ''}`}></div>\n \n <nav class=\"navbar-container\">\n <div class=\"navbar theme-white\">\n {/* Left section: Logo + Nav Links */}\n <div class=\"navbar-left\">\n <div class=\"logo\">\n <slot name=\"logo\">\n {/* Default Affinda logo if no slot content provided */}\n {this.showDefaultLogo && <af-logo></af-logo>}\n </slot>\n </div>\n \n {/* Hamburger menu button - mobile only */}\n <button \n class=\"mobile-menu-toggle\"\n onClick={this.toggleMobileMenu}\n aria-label=\"Toggle navigation menu\"\n aria-expanded={this.mobileMenuOpen ? 'true' : 'false'}\n >\n {this.mobileMenuOpen ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <path d=\"M18 6L6 18M6 6l12 12\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n ) : (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <path d=\"M3 12h18M3 6h18M3 18h18\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n )}\n </button>\n \n <div class={`nav-links ${this.mobileMenuOpen ? 'mobile-open' : ''}`}>\n <slot name=\"start\"></slot>\n </div>\n </div>\n\n {/* Right section: Actions + Button */}\n <div class={`navbar-right ${this.mobileMenuOpen ? 'mobile-open' : ''}`}>\n <div class=\"nav-actions\">\n <slot name=\"end\"></slot>\n </div>\n <div class=\"nav-button\">\n <slot name=\"button\"></slot>\n </div>\n </div>\n </div>\n\n {/* Dropdown panel container */}\n <div class={`dropdown-container ${hasDropdown ? 'is-open' : ''}`}>\n <div class=\"dropdown-panel theme-white\">\n <slot name=\"dropdowns\"></slot>\n </div>\n </div>\n </nav>\n\n {/* Mobile menu panel */}\n <div class={`mobile-menu-panel theme-white ${this.mobileMenuOpen ? 'is-open' : ''}`}>\n {/* Mobile CTA button at top.\n Note: only `name=\"mobile-button\"` here. We can't fall back\n to `<slot name=\"button\">` because Stencil's scoped-mode slot\n projection only matches a slot once per host — declaring the\n same slot name in two template positions silently breaks\n projection of the outer slot, leaving the desktop CTA\n orphaned at the host root with no visual parent. Consumers\n must explicitly slot a `mobile-button` (SiteHeader does). */}\n <div class=\"mobile-button-container\">\n <slot name=\"mobile-button\"></slot>\n </div>\n \n {/* Mobile navigation content */}\n <div class=\"mobile-menu-content\">\n <slot name=\"mobile-menu\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-number-badge.js","sourceRoot":"","sources":["../../../src/components/af-number-badge/af-number-badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAKzD;;;;;;;;;GASG;AAMH,MAAM,OAAO,aAAa;IAL1B;QAME;;WAEG;QACK,WAAM,GAAsB,CAAC,CAAC;QAEtC;;;;WAIG;QACK,YAAO,GAAuB,UAAU,CAAC;QAEjD;;WAEG;QACK,SAAI,GAAW,EAAE,CAAC;KA6B3B;IA3BC,MAAM;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC;QAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAEhE,MAAM,UAAU,GAAG;YACjB,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI;YACxB,QAAQ,EAAE,GAAG,QAAQ,IAAI;SAC1B,CAAC;QAEF,OAAO,CACL,EAAC,IAAI,qDACH,IAAI,EAAC,KAAK,gBACE,UAAU,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;YAEhE,6DACE,KAAK,EAAE;oBACL,OAAO,EAAE,IAAI;oBACb,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI;iBAClC,EACD,KAAK,EAAE,UAAU,IAEhB,IAAI,CAAC,MAAM,CACP,CACF,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-numbered-stepper.js","sourceRoot":"","sources":["../../../src/components/af-numbered-stepper/af-numbered-stepper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAOH,MAAM,OAAO,iBAAiB;IAN9B;QASE,wEAAwE;QAChE,gBAAW,GAA8B,YAAY,CAAC;KAgC/D;IA9BC,gBAAgB;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAClB,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,kEAAkE;YAClE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE,sCAAsC,IAAI,CAAC,WAAW,EAAE,EAC/D,IAAI,EAAC,MAAM;YAEX,8DAAa,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop, Element } from '@stencil/core';\n\n/**\n * Numbered stepper — filled soft-clay circle badges (1/2/3) paired with a\n * heading + body description per step. Sibling to `af-stepper` (which uses\n * outlined badges on a single spine connector); the numbered variant uses\n * filled badges with per-step connector segments, matching the Webflow\n * \"How it works\" marketing pattern.\n *\n * Renders children `af-numbered-stepper-item` elements horizontally on\n * desktop (auto-stacks on mobile) or vertically when `orientation=\"vertical\"`.\n * The parent auto-assigns badge numbers based on DOM order, so consumers\n * don't hand-number the steps.\n *\n * Headings use the shared `heading-size=\"card\"` scale from\n * `af-typography-lockup` (22/20px) — no bespoke font-size tokens.\n *\n * @example\n * ```html\n * <af-numbered-stepper>\n * <af-numbered-stepper-item>\n * <h3 slot=\"heading\">Connect your ATS</h3>\n * <p slot=\"body\">OAuth-based hook into the tools you already use.</p>\n * </af-numbered-stepper-item>\n * <af-numbered-stepper-item>...</af-numbered-stepper-item>\n * <af-numbered-stepper-item>...</af-numbered-stepper-item>\n * </af-numbered-stepper>\n * ```\n *\n * @slot - `af-numbered-stepper-item` elements.\n */\n@Component({\n tag: 'af-numbered-stepper',\n styleUrl: 'af-numbered-stepper.css',\n shadow: false,\n scoped: true,\n})\nexport class AfNumberedStepper {\n @Element() el!: HTMLElement;\n\n /** Layout orientation. Horizontal auto-stacks to vertical on mobile. */\n @Prop() orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n componentDidLoad() {\n this.assignIndices();\n }\n\n componentDidUpdate() {\n this.assignIndices();\n }\n\n private assignIndices() {\n const items = Array.from(\n this.el.querySelectorAll('af-numbered-stepper-item'),\n ) as unknown as { index?: number }[];\n items.forEach((item, i) => {\n // Only set when the consumer hasn't explicitly numbered the step.\n if (item.index == null || item.index === 1) {\n item.index = i + 1;\n }\n });\n }\n\n render() {\n return (\n <Host\n class={`numbered-stepper numbered-stepper--${this.orientation}`}\n role=\"list\"\n >\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-numbered-stepper-item.js","sourceRoot":"","sources":["../../../src/components/af-numbered-stepper-item/af-numbered-stepper-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AAOH,MAAM,OAAO,qBAAqB;IANlC;QAOE;;;WAGG;QACsB,UAAK,GAAW,CAAC,CAAC;KA8B5C;IA5BC,MAAM;QACJ,yEAAyE;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAA2C,CAAC;QAEpG,OAAO,CACL,EAAC,IAAI,qDAAC,IAAI,EAAC,UAAU;YACnB,4DAAK,KAAK,EAAC,mCAAmC,iBAAa,MAAM;gBAC/D,wEACE,KAAK,EAAC,8BAA8B,EACpC,MAAM,EAAE,OAAO,EACf,OAAO,EAAC,UAAU,EAClB,IAAI,EAAE,EAAE,GACS;gBACnB,6DAAM,KAAK,EAAC,kCAAkC,GAAQ,CAClD;YACN,6EACE,KAAK,EAAC,+BAA+B,kBACxB,MAAM,oBACJ,QAAQ;gBAEvB,6DAAM,IAAI,EAAC,SAAS,GAAQ;gBAC5B,6DAAM,IAAI,EAAC,aAAa;oBACtB,6DAAM,IAAI,EAAC,MAAM,GAAQ,CACpB,CACc,CAClB,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * A single step within an `af-numbered-stepper`. Renders a filled soft-clay\n * circle badge (via `af-number-badge`) alongside a heading + body lockup.\n *\n * The parent `af-numbered-stepper` auto-assigns the `index` prop based on\n * DOM order. Pass `index` explicitly to override.\n *\n * Heading scale is the shared `card` variant from `af-typography-lockup`\n * (22/20px) — the same ladder step used by diff-card, related-card, and\n * other card-title uses across the design system.\n *\n * @slot heading - Step title (h3 or h4 recommended for semantics).\n * @slot body - Step description paragraph(s).\n */\n@Component({\n tag: 'af-numbered-stepper-item',\n styleUrl: 'af-numbered-stepper-item.css',\n shadow: false,\n scoped: true,\n})\nexport class AfNumberedStepperItem {\n /**\n * Step number shown in the badge. Auto-assigned by the parent stepper if\n * not explicitly set.\n */\n @Prop({ reflect: true }) index: number = 1;\n\n render() {\n // The badge supports 1–10; clamp for safety so we never pass a bad prop.\n const clamped = Math.max(1, Math.min(10, this.index | 0)) as 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\n return (\n <Host role=\"listitem\">\n <div class=\"numbered-stepper-item__marker-row\" aria-hidden=\"true\">\n <af-number-badge\n class=\"numbered-stepper-item__badge\"\n number={clamped}\n variant=\"inCircle\"\n size={40}\n ></af-number-badge>\n <span class=\"numbered-stepper-item__connector\"></span>\n </div>\n <af-typography-lockup\n class=\"numbered-stepper-item__lockup\"\n heading-size=\"card\"\n text-alignment=\"center\"\n >\n <slot name=\"heading\"></slot>\n <span slot=\"description\">\n <slot name=\"body\"></slot>\n </span>\n </af-typography-lockup>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-paperclip-decoration.js","sourceRoot":"","sources":["../../../src/components/af-paperclip-decoration/af-paperclip-decoration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,MAAM,OAAO,qBAAqB;IALlC;QAME;;;;;;WAMG;QACK,UAAK,GAAW,KAAK,CAAC;QAE9B;;;;WAIG;QACK,WAAM,GAAW,KAAK,CAAC;QAE/B;;;WAGG;QACK,YAAO,GAAW,IAAI,CAAC;QAE/B;;;;WAIG;QACK,SAAI,GAAW,OAAO,CAAC;KAuBhC;IArBC,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,2EACc,MAAM,EAClB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAClC,mBAAmB,EAAC,MAAM;gBAE1B,6DACE,CAAC,EAAC,imBAAimB,EACnmB,IAAI,EAAE,IAAI,CAAC,IAAI,kBACD,IAAI,CAAC,OAAO,GAC1B,CACE,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Decorative paperclip vector graphic. Renders the left-half paperclip\n * silhouette (viewBox `0 0 655 754`) that the marketing site bleeds off\n * the right edge of inkwell hero sections.\n *\n * Purely decorative — the inner `<svg>` is `aria-hidden=\"true\"`. Size it\n * via the `width` / `height` props (they accept any CSS length, e.g.\n * `\"655\"`, `\"100%\"`, `\"50vw\"`) and position the host element in CSS.\n *\n * `fill` is white by default (intended for inkwell backgrounds); override\n * for other themes, e.g. `fill=\"var(--colour-brand-inkwell)\"` on a\n * mist-green section. `opacity` defaults to `0.06` to match the\n * watermark treatment used on `/`, `/au`, and `/platform`.\n *\n * @example\n * ```html\n * <af-section theme=\"inkwell\" padding=\"loose\" style=\"position:relative;overflow:hidden\">\n * <af-paperclip-decoration\n * style=\"position:absolute;bottom:-80px;right:-80px\"\n * ></af-paperclip-decoration>\n * <af-container style=\"position:relative;z-index:1\">\n * <!-- hero content -->\n * </af-container>\n * </af-section>\n * ```\n */\n@Component({\n tag: 'af-paperclip-decoration',\n styleUrl: 'af-paperclip-decoration.css',\n shadow: true\n})\nexport class AfPaperclipDecoration {\n /**\n * SVG width — accepts any CSS length or unitless number (pixels).\n * Default sized so the watermark stays inside the af-hero\n * inkwell-centered column without bleeding into the `logos-below`\n * client-logo carousel. Override per-page via the prop if a larger\n * decorative scale is wanted somewhere with no logos slot.\n */\n @Prop() width: string = '520';\n\n /**\n * SVG height — accepts any CSS length or unitless number (pixels).\n * Sized to match the trimmed `width` default; preserves the source\n * SVG's 655 × 754 aspect ratio.\n */\n @Prop() height: string = '600';\n\n /**\n * Fill opacity of the paperclip shape. Defaults to `0.06` to match the\n * marketing-site watermark treatment.\n */\n @Prop() opacity: number = 0.06;\n\n /**\n * Fill colour. Defaults to `white` (designed for inkwell backgrounds);\n * override for other themes, e.g. `var(--colour-brand-inkwell)` on a\n * mist-green section.\n */\n @Prop() fill: string = 'white';\n\n render() {\n return (\n <Host>\n <svg\n aria-hidden=\"true\"\n width={this.width}\n height={this.height}\n viewBox=\"0 0 655 754\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"none\"\n >\n <path\n d=\"M1102.14 108.279C1031.8 37.5181 939.128 -1.06817 840.61 0.447304H358.674L262.104 157.124H841.87C842.558 157.124 843.36 157.124 844.047 157.124C900.638 157.124 953.791 179.273 994 219.725C1035.24 261.225 1058.04 316.715 1058.04 376.052C1058.04 497.872 960.665 596.844 841.068 596.844H251.335C197.609 596.844 153.848 552.313 153.848 497.639C153.848 442.965 197.723 397.734 251.221 396.102H779.208L878.872 239.426H248.586C111.577 242.923 0 358.682 0 497.639C0 636.596 112.723 753.404 251.335 753.404H841.068C1045.55 753.404 1212 584.021 1212 375.935C1212 274.398 1173.05 179.39 1102.26 108.162L1102.14 108.279Z\"\n fill={this.fill}\n fill-opacity={this.opacity}\n />\n </svg>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-progress-line.js","sourceRoot":"","sources":["../../../src/components/af-progress-line/af-progress-line.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;GAKG;AAOH,MAAM,OAAO,cAAc;IAN3B;QAOE;;WAEG;QACK,aAAQ,GAAW,CAAC,CAAC;QAE7B;;;WAGG;QACK,gBAAW,GAAiB,YAAY,CAAC;KA4BlD;IA1BC,MAAM;QACJ,iCAAiC;QACjC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChE,MAAM,eAAe,GAAG,eAAe,GAAG,GAAG,CAAC;QAE9C,OAAO,CACL,EAAC,IAAI;YACH,4DACE,KAAK,EAAE;oBACL,eAAe,EAAE,IAAI;oBACrB,CAAC,kBAAkB,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI;iBAC7C,EACD,IAAI,EAAC,aAAa,mBACH,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,mBAC3B,CAAC,mBACD,GAAG;gBAElB,4DAAK,KAAK,EAAC,2BAA2B,GAAG;gBACzC,4DACE,KAAK,EAAC,uBAAuB,EAC7B,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,eAAe,GAAG,EAAE,GACvC,CACE,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\n\n/**\n * Progress Line atom component for displaying scroll or completion progress.\n * \n * Shows a horizontal bar with a filled portion indicating progress.\n * Used primarily for carousel scroll indicators.\n */\n@Component({\n tag: 'af-progress-line',\n styleUrl: 'af-progress-line.css',\n shadow: false,\n scoped: true,\n})\nexport class AfProgressLine {\n /**\n * Progress value from 0 to 1 (0 = 0%, 1 = 100%).\n */\n @Prop() progress: number = 0;\n\n /**\n * Orientation of the progress line.\n * Currently only horizontal is supported.\n */\n @Prop() orientation: 'horizontal' = 'horizontal';\n\n render() {\n // Clamp progress between 0 and 1\n const clampedProgress = Math.max(0, Math.min(1, this.progress));\n const progressPercent = clampedProgress * 100;\n\n return (\n <Host>\n <div\n class={{\n 'progress-line': true,\n [`progress-line--${this.orientation}`]: true,\n }}\n role=\"progressbar\"\n aria-valuenow={Math.round(progressPercent)}\n aria-valuemin={0}\n aria-valuemax={100}\n >\n <div class=\"progress-line__background\" />\n <div\n class=\"progress-line__active\"\n style={{ width: `${progressPercent}%` }}\n />\n </div>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-radio.js","sourceRoot":"","sources":["../../../src/components/af-radio/af-radio.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAgB,OAAO,EAAE,MAAM,eAAe,CAAC;AAEvF;;;;;GAKG;AAMH,MAAM,OAAO,OAAO;IALpB;QAQE;;WAEG;QACqC,YAAO,GAAY,KAAK,CAAC;QAEjE;;WAEG;QACsB,aAAQ,GAAY,KAAK,CAAC;QAiB3C,gBAAW,GAAG,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YAE1C,0CAA0C;YAC1C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;gBAC5E,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACzB,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE,IAAK,KAAa,CAAC,OAAO,EAAE,CAAC;wBAC/C,KAAa,CAAC,OAAO,GAAG,KAAK,CAAC;oBACjC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACpF,CAAC,CAAC;KAoCH;IAlCC,MAAM;QACJ,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC;QAEF,MAAM,cAAc,GAAG;YACrB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,OAAO;YACvB,UAAU,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC;QAEF,OAAO,CACL,EAAC,IAAI;YACH,8DAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW;gBACnD,8DACE,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAChC;gBACF,6DAAM,KAAK,EAAE,cAAc;oBACzB,6DAAM,KAAK,EAAC,KAAK,GAAQ,CACpB;gBACP,6DAAM,KAAK,EAAC,OAAO;oBACjB,8DAAa,CACR,CACD,CACH,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, Host, Event, EventEmitter, Element } from '@stencil/core';\n\n/**\n * Radio component for selecting a single option from a group.\n * Radios with the same `name` prop are mutually exclusive.\n * \n * @slot - Radio label text\n */\n@Component({\n tag: 'af-radio',\n styleUrl: 'af-radio.css',\n shadow: true\n})\nexport class AfRadio {\n @Element() el!: HTMLElement;\n\n /**\n * Whether the radio is checked\n */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /**\n * Whether the radio is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The name of the radio for form submission (radios with same name are grouped)\n */\n @Prop({ reflect: true }) name?: string;\n\n /**\n * The value of the radio for form submission\n */\n @Prop() value?: string;\n\n /**\n * Emitted when the radio checked state changes\n */\n @Event() afChange!: EventEmitter<{ checked: boolean; value?: string; name?: string }>;\n\n private handleClick = () => {\n if (this.disabled || this.checked) return;\n \n // Uncheck other radios with the same name\n if (this.name) {\n const siblings = document.querySelectorAll(`af-radio[name=\"${this.name}\"]`);\n siblings.forEach((radio) => {\n if (radio !== this.el && (radio as any).checked) {\n (radio as any).checked = false;\n }\n });\n }\n \n this.checked = true;\n this.afChange.emit({ checked: this.checked, value: this.value, name: this.name });\n };\n\n render() {\n const radioClasses = {\n 'radio': true,\n 'disabled': this.disabled\n };\n\n const controlClasses = {\n 'control': true,\n 'checked': this.checked,\n 'disabled': this.disabled\n };\n\n return (\n <Host>\n <label class={radioClasses} onClick={this.handleClick}>\n <input\n type=\"radio\"\n class=\"input\"\n checked={this.checked}\n disabled={this.disabled}\n name={this.name}\n value={this.value}\n tabindex={this.disabled ? -1 : 0}\n />\n <span class={controlClasses}>\n <span class=\"dot\"></span>\n </span>\n <span class=\"label\">\n <slot></slot>\n </span>\n </label>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-section.js","sourceRoot":"","sources":["../../../src/components/af-section/af-section.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGzD;;;GAGG;AAOH,MAAM,OAAO,SAAS;IANtB;QAOE,sBAAsB;QACd,YAAO,GAAY,SAAS,CAAC;QAErC,2EAA2E;QACnE,UAAK,GAAU,OAAO,CAAC;QAE/B,6CAA6C;QACrC,cAAS,GAAY,IAAI,CAAC;KAenC;IAbC,MAAM;QACJ,MAAM,OAAO,GAAG,8DAAa,CAAC;QAE9B,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,mBAAmB,IAAI,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,IAC9D,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAChB,wBAAe,OAAO,CAAgB,CACvC,CAAC,CAAC,CAAC,OAAO,CACP,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-show.js","sourceRoot":"","sources":["../../../src/components/af-show/af-show.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAIzD;;;;;;;;;;;GAWG;AAMH,MAAM,OAAO,MAAM;IAajB,MAAM;QACJ,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,IAAI;YACZ,CAAC,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;YAC1C,CAAC,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;SAC3C,CAAC;QAEF,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAE,OAAO;YAClB,8DAAa,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\ntype Breakpoint = 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Show component for responsive visibility control.\n * Show or hide content based on viewport breakpoints.\n *\n * Breakpoints (from tokens):\n * - sm: 375px\n * - md: 768px\n * - lg: 1024px\n * - xl: 1440px\n *\n * @slot - Content to show/hide\n */\n@Component({\n tag: 'af-show',\n styleUrl: 'af-show.css',\n shadow: true,\n})\nexport class AfShow {\n /**\n * Show content only when viewport is at or above this breakpoint.\n * Content is hidden below this breakpoint.\n */\n @Prop() above?: Breakpoint;\n\n /**\n * Show content only when viewport is below this breakpoint.\n * Content is hidden at or above this breakpoint.\n */\n @Prop() below?: Breakpoint;\n\n render() {\n const classes = {\n 'show': true,\n [`show-above-${this.above}`]: !!this.above,\n [`show-below-${this.below}`]: !!this.below,\n };\n\n return (\n <Host class={classes}>\n <slot></slot>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-social-link.js","sourceRoot":"","sources":["../../../src/components/af-social-link/af-social-link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;GAGG;AAOH,MAAM,OAAO,YAAY;IANzB;QAOE,eAAe;QACP,SAAI,GAAW,GAAG,CAAC;QAE3B,oCAAoC;QAC5B,UAAK,GAAW,EAAE,CAAC;QAE3B,qFAAqF;QAC7E,SAAI,GAA0E,QAAQ,CAAC;KAyDhG;IAvDS,UAAU;QAChB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,UAAU;gBACb,OAAO,CACL,WAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,KAAK;oBAClG,YAAM,CAAC,EAAC,gFAAgF,GAAE;oBAC1F,YAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,IAAI,GAAE;oBACzC,cAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,GAAE,CACzB,CACP,CAAC;YACJ,KAAK,SAAS;gBACZ,OAAO,CACL,WAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,KAAK;oBAClG,YAAM,CAAC,EAAC,mQAAmQ,GAAE;oBAC7Q,eAAS,MAAM,EAAC,iCAAiC,EAAC,IAAI,EAAC,cAAc,EAAC,MAAM,EAAC,MAAM,GAAE,CACjF,CACP,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO,CACL,WAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,KAAK;oBAClG,YAAM,CAAC,EAAC,qSAAqS,GAAE,CAC3S,CACP,CAAC;YACJ,KAAK,SAAS;gBACZ,OAAO,CACL,WAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,KAAK;oBAClG,YAAM,CAAC,EAAC,6KAA6K,GAAE,CACnL,CACP,CAAC;YACJ,KAAK,UAAU;gBACb,OAAO,CACL,WAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,KAAK;oBAClG,YAAM,CAAC,EAAC,mEAAmE,GAAE,CACzE,CACP,CAAC;YACJ;gBACE,OAAO,YAAM,IAAI,EAAC,MAAM,GAAQ,CAAC;QACrC,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,0DACE,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,KAAK,EAAC,aAAa,gBACP,IAAI,CAAC,KAAK,IAErB,IAAI,CAAC,UAAU,EAAE,CAChB,CACC,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Social media link component\n * Circular bordered icon link for social media profiles\n */\n@Component({\n tag: 'af-social-link',\n styleUrl: 'af-social-link.css',\n shadow: false,\n scoped: true,\n})\nexport class AfSocialLink {\n /** Link URL */\n @Prop() href: string = '#';\n\n /** Accessible label for the link */\n @Prop() label: string = '';\n\n /** Icon type: 'linkedin', 'youtube', 'github', 'twitter', 'facebook', or 'custom' */\n @Prop() icon: 'linkedin' | 'youtube' | 'github' | 'twitter' | 'facebook' | 'custom' = 'custom';\n\n private renderIcon() {\n switch (this.icon) {\n case 'linkedin':\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\n <path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"/>\n <rect x=\"2\" y=\"9\" width=\"4\" height=\"12\"/>\n <circle cx=\"4\" cy=\"4\" r=\"2\"/>\n </svg>\n );\n case 'youtube':\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\n <path d=\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"/>\n <polygon points=\"9.75,15.02 15.5,11.75 9.75,8.48\" fill=\"currentColor\" stroke=\"none\"/>\n </svg>\n );\n case 'github':\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\n <path d=\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"/>\n </svg>\n );\n case 'twitter':\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\n <path d=\"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\"/>\n </svg>\n );\n case 'facebook':\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\n <path d=\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"/>\n </svg>\n );\n default:\n return <slot name=\"icon\"></slot>;\n }\n }\n\n render() {\n return (\n <Host>\n <a \n href={this.href} \n target=\"_blank\" \n rel=\"noopener noreferrer\" \n class=\"social-link\" \n aria-label={this.label}\n >\n {this.renderIcon()}\n </a>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-spacer.js","sourceRoot":"","sources":["../../../src/components/af-spacer/af-spacer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAIzD;;;GAGG;AAMH,MAAM,OAAO,QAAQ;IALrB;QAaE;;;WAGG;QACK,SAAI,GAAY,KAAK,CAAC;QAE9B;;;;;;;WAOG;QACK,SAAI,GAAuC,MAAM,CAAC;KAoB3D;IAlBC,MAAM;QACJ,MAAM,KAAK,GAA2B,EAAE,CAAC;QAEzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,eAAe,IAAI,CAAC,IAAI,GAAG,CAAC;YAE9C,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACvD,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;YAC1B,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACrD,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,EAAC,IAAI,qDAAC,KAAK,EAAE,KAAK,iBAAc,MAAM,GAAQ,CAAC;IACxD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\ntype Size = '1' | '2' | '3' | '4' | '5' | '6' | '8';\n\n/**\n * Spacer component for adding fixed or flexible space between elements.\n * Use within flex or grid layouts.\n */\n@Component({\n tag: 'af-spacer',\n styleUrl: 'af-spacer.css',\n shadow: true,\n})\nexport class AfSpacer {\n /**\n * Fixed size using space tokens (1-8).\n * Maps to --space-1 through --space-8 (4px to 32px).\n * Ignored when `flex` is true.\n */\n @Prop() size?: Size;\n\n /**\n * When true, the spacer grows to fill available space (flex: 1).\n * Useful for pushing items apart in a flex container.\n */\n @Prop() flex: boolean = false;\n\n /**\n * Axis for the spacer sizing.\n * - 'horizontal': Width-based spacing\n * - 'vertical': Height-based spacing\n * - 'both': Both dimensions (square)\n *\n * Auto-detected based on parent flex direction when possible.\n */\n @Prop() axis: 'horizontal' | 'vertical' | 'both' = 'both';\n\n render() {\n const style: Record<string, string> = {};\n\n if (this.flex) {\n style.flex = '1';\n } else if (this.size) {\n const sizeValue = `var(--space-${this.size})`;\n\n if (this.axis === 'horizontal' || this.axis === 'both') {\n style.width = sizeValue;\n }\n if (this.axis === 'vertical' || this.axis === 'both') {\n style.height = sizeValue;\n }\n }\n\n return <Host style={style} aria-hidden=\"true\"></Host>;\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-split-section.js","sourceRoot":"","sources":["../../../src/components/af-split-section/af-split-section.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGzD,sCAAsC;AACtC,MAAM,WAAW,GAA0B;IACzC,OAAO,EAAE,oCAAoC;IAC7C,SAAS,EAAE,sCAAsC;IACjD,YAAY,EAAE,yCAAyC;IACvD,WAAW,EAAE,qCAAqC;IAClD,aAAa,EAAE,0CAA0C;CAC1D,CAAC;AAEF;;;;;;GAMG;AAOH,MAAM,OAAO,cAAc;IAN3B;QAOE,4CAA4C;QACpC,aAAQ,GAAU,YAAY,CAAC;QAEvC,+CAA+C;QACvC,gBAAW,GAAU,OAAO,CAAC;QAErC,sBAAsB;QACd,YAAO,GAAY,SAAS,CAAC;QAErC,6CAA6C;QACrC,cAAS,GAAY,IAAI,CAAC;KAyBnC;IAvBC,MAAM;QACJ,MAAM,OAAO,GAAG,8DAAa,CAAC;QAE9B,iDAAiD;QACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG;YACtB,UAAU,EAAE,8BAA8B,QAAQ,QAAQ,QAAQ,SAAS,WAAW,SAAS,WAAW,QAAQ;SACnH,CAAC;QAEF,OAAO,CACL,EAAC,IAAI;YACH,4DACE,KAAK,EAAE,yBAAyB,IAAI,CAAC,OAAO,cAAc,IAAI,CAAC,QAAQ,EAAE,EACzE,KAAK,EAAE,eAAe,IAErB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAChB,wBAAe,OAAO,CAAgB,CACvC,CAAC,CAAC,CAAC,OAAO,CACP,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\nimport type { Padding, Theme } from '../../types';\n\n// Map theme names to CSS color values\nconst themeColors: Record<Theme, string> = {\n 'white': 'var(--colour-brand-white, #FFFFFF)',\n 'inkwell': 'var(--colour-brand-inkwell, #14343B)',\n 'mist-green': 'var(--colour-brand-mist-green, #C6D5D1)',\n 'soft-clay': 'var(--colour-softclay-400, #c0ab8d)',\n 'white-ivory': 'var(--colour-brand-ivory-paper, #fff9ee)',\n};\n\n/**\n * Split Section component for layouts with two-tone backgrounds.\n * Creates a vertical split with different themes for top and bottom halves.\n * Useful for content that visually spans across two themed areas.\n * \n * Uses a CSS linear-gradient for the split background effect.\n */\n@Component({\n tag: 'af-split-section',\n styleUrl: 'af-split-section.css',\n shadow: false,\n scoped: true,\n})\nexport class AfSplitSection {\n /** Theme for the top half of the section */\n @Prop() topTheme: Theme = 'mist-green';\n\n /** Theme for the bottom half of the section */\n @Prop() bottomTheme: Theme = 'white';\n\n /** Padding variant */\n @Prop() padding: Padding = 'default';\n\n /** Whether to include a Container wrapper */\n @Prop() container: boolean = true;\n\n render() {\n const content = <slot></slot>;\n \n // Create the split background using CSS gradient\n const topColor = themeColors[this.topTheme];\n const bottomColor = themeColors[this.bottomTheme];\n const backgroundStyle = {\n background: `linear-gradient(to bottom, ${topColor} 0%, ${topColor} 50%, ${bottomColor} 50%, ${bottomColor} 100%)`\n };\n\n return (\n <Host>\n <div\n class={`split-section padding-${this.padding} top-theme-${this.topTheme}`}\n style={backgroundStyle}\n >\n {this.container ? (\n <af-container>{content}</af-container>\n ) : content}\n </div>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-stack.js","sourceRoot":"","sources":["../../../src/components/af-stack/af-stack.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOzD;;;;;GAKG;AAMH,MAAM,OAAO,OAAO;IALpB;QAME;;;;WAIG;QACK,cAAS,GAAc,UAAU,CAAC;QAE1C;;;WAGG;QACK,QAAG,GAAQ,GAAG,CAAC;QAEvB;;WAEG;QACK,UAAK,GAAU,SAAS,CAAC;QAEjC;;WAEG;QACK,YAAO,GAAY,OAAO,CAAC;QAEnC;;WAEG;QACK,SAAI,GAAY,KAAK,CAAC;KAmC/B;IAjCC,MAAM;QACJ,MAAM,QAAQ,GAA0B;YACtC,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,UAAU;SACrB,CAAC;QAEF,MAAM,UAAU,GAA4B;YAC1C,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,cAAc;SACvB,CAAC;QAEF,MAAM,KAAK,GAAG;YACZ,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;YAC/D,GAAG,EAAE,eAAe,IAAI,CAAC,GAAG,GAAG;YAC/B,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YACxC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;SACd,CAAC;QAE5B,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAE,KAAK;YAChB,8DAAa,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\nimport type { Gap } from '../../types';\n\ntype Direction = 'vertical' | 'horizontal';\ntype Align = 'start' | 'center' | 'end' | 'stretch' | 'baseline';\ntype Justify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n\n/**\n * Stack layout component for vertical or horizontal flex layouts with consistent gap spacing.\n * Uses design tokens for gap values.\n *\n * @slot - Content to stack\n */\n@Component({\n tag: 'af-stack',\n styleUrl: 'af-stack.css',\n shadow: true,\n})\nexport class AfStack {\n /**\n * Stack direction.\n * - 'vertical': Items stack top to bottom (flex-direction: column)\n * - 'horizontal': Items stack left to right (flex-direction: row)\n */\n @Prop() direction: Direction = 'vertical';\n\n /**\n * Gap between items using space tokens (1-8).\n * Maps to --space-1 through --space-8 (4px to 32px).\n */\n @Prop() gap: Gap = '4';\n\n /**\n * Align items on the cross axis.\n */\n @Prop() align: Align = 'stretch';\n\n /**\n * Justify content on the main axis.\n */\n @Prop() justify: Justify = 'start';\n\n /**\n * Whether items should wrap to the next line.\n */\n @Prop() wrap: boolean = false;\n\n render() {\n const alignMap: Record<Align, string> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n baseline: 'baseline',\n };\n\n const justifyMap: Record<Justify, string> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n between: 'space-between',\n around: 'space-around',\n evenly: 'space-evenly',\n };\n\n const style = {\n display: 'flex',\n flexDirection: this.direction === 'vertical' ? 'column' : 'row',\n gap: `var(--space-${this.gap})`,\n alignItems: alignMap[this.align],\n justifyContent: justifyMap[this.justify],\n flexWrap: this.wrap ? 'wrap' : 'nowrap',\n } as Record<string, string>;\n\n return (\n <Host style={style}>\n <slot></slot>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-stat.js","sourceRoot":"","sources":["../../../src/components/af-stat/af-stat.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;GAOG;AAMH,MAAM,OAAO,MAAM;IAOjB,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAC,MAAM;gBACf,mEAAY,KAAK,EAAC,GAAG,EAAC,KAAK,EAAC,aAAa,IAAE,IAAI,CAAC,KAAK,CAAc;gBACnE,gEAAS,OAAO,EAAC,QAAQ,EAAC,KAAK,EAAC,aAAa,IAAE,IAAI,CAAC,KAAK,CAAW,CAChE,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\n\n/**\n * Individual stat — a large value (e.g. \"1B+\") paired with a descriptive label.\n *\n * Intended as a slotted child of `af-stats-row`, but renders standalone too.\n * Colour is inherited from the ancestor theme context (`af-section` /\n * `af-card` / `af-theme-override`) via the `--af-typography-*` tokens that\n * `af-heading` and `af-text` already consume — no theme prop needed here.\n */\n@Component({\n tag: 'af-stat',\n styleUrl: 'af-stat.css',\n shadow: true,\n})\nexport class AfStat {\n /** The statistic headline value (e.g. \"1B+\", \"95%\", \"10+\"). */\n @Prop() value!: string;\n\n /** Description / caption rendered beneath the value. */\n @Prop() label!: string;\n\n render() {\n return (\n <Host>\n <div class=\"stat\">\n <af-heading level=\"2\" class=\"stat__value\">{this.value}</af-heading>\n <af-text variant=\"medium\" class=\"stat__label\">{this.label}</af-text>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-stats-row.js","sourceRoot":"","sources":["../../../src/components/af-stats-row/af-stats-row.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;;;;;;;;;;GAaG;AAOH,MAAM,OAAO,UAAU;IACrB,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAC,WAAW;gBACpB,8DAAa,CACT,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host } from '@stencil/core';\n\n/**\n * Layout container for a horizontal row of `af-stat` children.\n *\n * Flex row that wraps to a grid on narrow viewports. Uses `scoped: true`\n * so slotted `<af-stat>` children stay in the light DOM and inherit the\n * ancestor theme (`af-section`) via the cascaded `.theme-*` class.\n *\n * Intentionally has **no `theme` prop** — a stats row is always flush\n * against its section background, so a local theme would fight the\n * ancestor. If you need a different background for the row, wrap it in\n * its own `af-section` or `af-theme-override`.\n *\n * @slot - `af-stat` elements (typically 3–4 for a balanced row).\n */\n@Component({\n tag: 'af-stats-row',\n styleUrl: 'af-stats-row.css',\n shadow: false,\n scoped: true,\n})\nexport class AfStatsRow {\n render() {\n return (\n <Host>\n <div class=\"stats-row\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-stepper.js","sourceRoot":"","sources":["../../../src/components/af-stepper/af-stepper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;GAqBG;AAOH,MAAM,OAAO,SAAS;IANtB;QASE,wEAAwE;QAChE,gBAAW,GAA8B,YAAY,CAAC;KAyB/D;IAvBC,gBAAgB;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAU,CAAC;QAC/E,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,+DAA+D;YAC/D,8DAA8D;YAC9D,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAE,oBAAoB,IAAI,CAAC,WAAW,EAAE;YACjD,4DAAK,KAAK,EAAC,oBAAoB,iBAAa,MAAM,GAAO;YACzD,8DAAa,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop, Element } from '@stencil/core';\n\n/**\n * Stepper composite for \"Sign up / Upload / See results\"-style marketing\n * flows. Renders children `af-stepper-step` elements in a horizontal row\n * (desktop) or vertical stack (mobile), with a connector line between badges.\n *\n * Matches Webflow's `.stepper` pattern — numbered circled badges, a spine\n * connector, and centered step text.\n *\n * @example\n * ```html\n * <af-stepper>\n * <af-stepper-step>\n * <h3 slot=\"heading\">Sign up for free</h3>\n * <p slot=\"body\">No sales calls, no credit cards.</p>\n * </af-stepper-step>\n * <af-stepper-step>...</af-stepper-step>\n * <af-stepper-step>...</af-stepper-step>\n * </af-stepper>\n * ```\n *\n * @slot - `af-stepper-step` elements.\n */\n@Component({\n tag: 'af-stepper',\n styleUrl: 'af-stepper.css',\n shadow: false,\n scoped: true,\n})\nexport class AfStepper {\n @Element() el!: HTMLElement;\n\n /** Layout orientation. Horizontal on desktop, auto-stacks on mobile. */\n @Prop() orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n componentDidLoad() {\n this.assignIndices();\n }\n\n private assignIndices() {\n const steps = Array.from(this.el.querySelectorAll('af-stepper-step')) as any[];\n steps.forEach((step, i) => {\n // Set via property so Stencil reactively re-renders the badge.\n // Only overwrite when the consumer hasn't explicitly set one.\n if (step.index == null || step.index === 1) {\n step.index = i + 1;\n }\n });\n }\n\n render() {\n return (\n <Host class={`stepper stepper--${this.orientation}`}>\n <div class=\"stepper__connector\" aria-hidden=\"true\"></div>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-stepper-step.js","sourceRoot":"","sources":["../../../src/components/af-stepper-step/af-stepper-step.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;;;GASG;AAOH,MAAM,OAAO,aAAa;IAN1B;QAOE;;;WAGG;QACsB,UAAK,GAAW,CAAC,CAAC;KAiB5C;IAfC,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,6DAAM,KAAK,EAAC,qBAAqB,IAAE,IAAI,CAAC,KAAK,CAAQ;YACrD,4DAAK,KAAK,EAAC,uBAAuB;gBAChC,4DAAK,KAAK,EAAC,uBAAuB;oBAChC,6DAAM,IAAI,EAAC,SAAS,GAAQ,CACxB;gBACN,4DAAK,KAAK,EAAC,oBAAoB;oBAC7B,6DAAM,IAAI,EAAC,MAAM,GAAQ,CACrB,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * A single step within an af-stepper. Renders a numbered circular badge\n * followed by slotted heading + body content.\n *\n * The parent af-stepper auto-assigns the `index` attribute based on DOM\n * order, so consumers don't need to hand-number the steps.\n *\n * @slot heading - Step title (h3/h4 recommended).\n * @slot body - Step description paragraph(s).\n */\n@Component({\n tag: 'af-stepper-step',\n styleUrl: 'af-stepper-step.css',\n shadow: false,\n scoped: true,\n})\nexport class AfStepperStep {\n /**\n * Step number shown in the badge. Auto-assigned by the parent stepper if\n * not explicitly set.\n */\n @Prop({ reflect: true }) index: number = 1;\n\n render() {\n return (\n <Host>\n <span class=\"stepper-step__badge\">{this.index}</span>\n <div class=\"stepper-step__content\">\n <div class=\"stepper-step__heading\">\n <slot name=\"heading\"></slot>\n </div>\n <div class=\"stepper-step__body\">\n <slot name=\"body\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-switch.js","sourceRoot":"","sources":["../../../src/components/af-switch/af-switch.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAE9E;;;;GAIG;AAMH,MAAM,OAAO,QAAQ;IALrB;QAME;;WAEG;QACqC,WAAM,GAAY,KAAK,CAAC;QAEhE;;WAEG;QACsB,aAAQ,GAAY,KAAK,CAAC;QAiB3C,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC;KA4CH;IA1CC,MAAM;QACJ,MAAM,aAAa,GAAG;YACpB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,UAAU,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC;QAEF,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,UAAU,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC;QAEF,MAAM,WAAW,GAAG;YAClB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,UAAU,EAAE,IAAI,CAAC,QAAQ;SAC1B,CAAC;QAEF,OAAO,CACL,EAAC,IAAI;YACH,8DAAO,KAAK,EAAE,aAAa;gBACzB,8DACE,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,IAAI,CAAC,MAAM,EACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,YAAY,GAC3B;gBACF,6DAAM,KAAK,EAAE,YAAY;oBACvB,6DAAM,KAAK,EAAE,WAAW,GAAS,CAC5B;gBACP,6DAAM,KAAK,EAAC,OAAO;oBACjB,8DAAa,CACR,CACD,CACH,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, Host, Event, EventEmitter } from '@stencil/core';\n\n/**\n * Switch component for toggling between on and off states.\n * \n * @slot - Switch label text\n */\n@Component({\n tag: 'af-switch',\n styleUrl: 'af-switch.css',\n shadow: true\n})\nexport class AfSwitch {\n /**\n * Whether the switch is active (on)\n */\n @Prop({ mutable: true, reflect: true }) active: boolean = false;\n\n /**\n * Whether the switch is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The name of the switch for form submission\n */\n @Prop() name?: string;\n\n /**\n * The value of the switch for form submission\n */\n @Prop() value?: string;\n\n /**\n * Emitted when the switch state changes\n */\n @Event() afChange!: EventEmitter<{ active: boolean }>;\n\n private handleChange = () => {\n if (this.disabled) return;\n this.active = !this.active;\n this.afChange.emit({ active: this.active });\n };\n\n render() {\n const switchClasses = {\n 'switch': true,\n 'active': this.active,\n 'disabled': this.disabled\n };\n\n const trackClasses = {\n 'track': true,\n 'active': this.active,\n 'disabled': this.disabled\n };\n\n const knobClasses = {\n 'knob': true,\n 'active': this.active,\n 'disabled': this.disabled\n };\n\n return (\n <Host>\n <label class={switchClasses}>\n <input\n type=\"checkbox\"\n role=\"switch\"\n class=\"input\"\n checked={this.active}\n disabled={this.disabled}\n name={this.name}\n value={this.value}\n onChange={this.handleChange}\n />\n <span class={trackClasses}>\n <span class={knobClasses}></span>\n </span>\n <span class=\"label\">\n <slot></slot>\n </span>\n </label>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-tab.js","sourceRoot":"","sources":["../../../src/components/af-tab/af-tab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAI9E;;;;;;;;;;;;;;;;;GAiBG;AAMH,MAAM,OAAO,KAAK;IALlB;QAME;;WAEG;QACK,UAAK,GAAW,EAAE,CAAC;QAE3B;;WAEG;QACsB,WAAM,GAAY,KAAK,CAAC;QAEjD;;WAEG;QACsB,aAAQ,GAAY,KAAK,CAAC;QAEnD;;;;WAIG;QACsB,UAAK,GAAa,QAAQ,CAAC;QAEpD;;WAEG;QACK,gBAAW,GAAY,KAAK,CAAC;QAErC;;WAEG;QACK,kBAAa,GAAY,KAAK,CAAC;QAY/B,gBAAW,GAAG,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEM,kBAAa,GAAG,CAAC,KAAoB,EAAE,EAAE;YAC/C,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBAC/C,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC;KAqCH;IAnCC,MAAM;QACJ,MAAM,UAAU,GAAG;YACjB,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,UAAU,EAAE,IAAI,CAAC,QAAQ;YACzB,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI;SAC9B,CAAC;QAEF,OAAO,CACL,EAAC,IAAI;YACH,+DACE,KAAK,EAAE,UAAU,EACjB,IAAI,EAAC,KAAK,mBACK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,mBAC9B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBAEtB,IAAI,CAAC,aAAa,IAAI,CACrB,6DAAM,KAAK,EAAC,aAAa;oBACvB,6DAAM,IAAI,EAAC,QAAQ,GAAG,CACjB,CACR;gBACA,IAAI,CAAC,WAAW,IAAI,CACnB,6DAAM,KAAK,EAAC,WAAW;oBACrB,6DAAM,IAAI,EAAC,MAAM,GAAG,CACf,CACR;gBACD,6DAAM,KAAK,EAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAQ,CAChC,CACJ,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, Host, Event, EventEmitter } from '@stencil/core';\n\nexport type TabShape = 'square' | 'pill';\n\n/**\n * Tab component for use within a TabBar.\n * Represents an individual selectable tab with support for icons and number badges.\n * \n * @slot icon - Optional icon to display before the label\n * @slot number - Optional number badge to display\n * \n * @example\n * ```html\n * <af-tab label=\"Overview\" active></af-tab>\n * <af-tab label=\"Details\">\n * <af-icon slot=\"icon\" name=\"document\"></af-icon>\n * </af-tab>\n * <af-tab label=\"Step 1\">\n * <af-number-badge slot=\"number\" number=\"1\"></af-number-badge>\n * </af-tab>\n * ```\n */\n@Component({\n tag: 'af-tab',\n styleUrl: 'af-tab.css',\n shadow: true\n})\nexport class AfTab {\n /**\n * The text label for the tab\n */\n @Prop() label: string = '';\n\n /**\n * Whether the tab is currently active/selected\n */\n @Prop({ reflect: true }) active: boolean = false;\n\n /**\n * Whether the tab is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Visual shape variant\n * - `square` - Rectangular tab with bottom border indicator\n * - `pill` - Rounded pill shape with background for active state\n */\n @Prop({ reflect: true }) shape: TabShape = 'square';\n\n /**\n * Whether to show the icon slot\n */\n @Prop() displayIcon: boolean = false;\n\n /**\n * Whether to show the number badge slot\n */\n @Prop() displayNumber: boolean = false;\n\n /**\n * Unique value for the tab, used for programmatic selection\n */\n @Prop() value?: string;\n\n /**\n * Emitted when the tab is clicked\n */\n @Event() afTabClick!: EventEmitter<{ value?: string }>;\n\n private handleClick = () => {\n if (this.disabled) return;\n this.afTabClick.emit({ value: this.value });\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (this.disabled) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.afTabClick.emit({ value: this.value });\n }\n };\n\n render() {\n const tabClasses = {\n 'tab': true,\n 'active': this.active,\n 'disabled': this.disabled,\n [`shape-${this.shape}`]: true,\n };\n\n return (\n <Host>\n <button\n class={tabClasses}\n role=\"tab\"\n aria-selected={this.active ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : undefined}\n tabindex={this.disabled ? -1 : 0}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n disabled={this.disabled}\n >\n {this.displayNumber && (\n <span class=\"number-slot\">\n <slot name=\"number\" />\n </span>\n )}\n {this.displayIcon && (\n <span class=\"icon-slot\">\n <slot name=\"icon\" />\n </span>\n )}\n <span class=\"label\">{this.label}</span>\n </button>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-tab-bar.js","sourceRoot":"","sources":["../../../src/components/af-tab-bar/af-tab-bar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Host, Element, Listen } from '@stencil/core';\n\nexport type TabBarShape = 'square' | 'pill';\nexport type TabBarBreakpoint = 'mobile' | 'desktop';\n\n/**\n * TabBar component that contains and manages a group of tabs.\n * Provides horizontal layout, keyboard navigation, and consistent styling.\n * \n * @slot - Tab elements (af-tab)\n * \n * @example\n * ```html\n * <af-tab-bar shape=\"square\" breakpoint=\"desktop\">\n * <af-tab label=\"Overview\" active value=\"overview\"></af-tab>\n * <af-tab label=\"Details\" value=\"details\"></af-tab>\n * <af-tab label=\"Settings\" value=\"settings\"></af-tab>\n * </af-tab-bar>\n * ```\n */\n@Component({\n tag: 'af-tab-bar',\n styleUrl: 'af-tab-bar.css',\n shadow: true\n})\nexport class AfTabBar {\n @Element() el!: HTMLElement;\n\n /**\n * Visual shape variant for all tabs\n * - `square` - Rectangular tabs with bottom border indicator\n * - `pill` - Rounded pill tabs with background for active state\n */\n @Prop({ reflect: true }) shape: TabBarShape = 'square';\n\n /**\n * Responsive breakpoint mode\n * - `mobile` - Compact layout with smaller padding\n * - `desktop` - Larger layout with more generous spacing\n */\n @Prop({ reflect: true }) breakpoint: TabBarBreakpoint = 'desktop';\n\n componentDidLoad() {\n this.syncChildProps();\n }\n\n componentDidUpdate() {\n this.syncChildProps();\n }\n\n /**\n * Sync shape and breakpoint props to child af-tab elements\n */\n private syncChildProps() {\n const tabs = this.el.querySelectorAll('af-tab');\n tabs.forEach((tab) => {\n tab.setAttribute('shape', this.shape);\n tab.setAttribute('data-breakpoint', this.breakpoint);\n });\n }\n\n /**\n * Handle keyboard navigation between tabs\n */\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n const tabs = Array.from(this.el.querySelectorAll('af-tab:not([disabled])')) as HTMLElement[];\n const currentIndex = tabs.findIndex(tab => tab === document.activeElement || tab.shadowRoot?.activeElement);\n \n if (currentIndex === -1) return;\n\n let newIndex = currentIndex;\n\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n newIndex = currentIndex > 0 ? currentIndex - 1 : tabs.length - 1;\n break;\n case 'ArrowRight':\n event.preventDefault();\n newIndex = currentIndex < tabs.length - 1 ? currentIndex + 1 : 0;\n break;\n case 'Home':\n event.preventDefault();\n newIndex = 0;\n break;\n case 'End':\n event.preventDefault();\n newIndex = tabs.length - 1;\n break;\n default:\n return;\n }\n\n // Focus the button inside the shadow DOM of the tab\n const targetTab = tabs[newIndex];\n const button = targetTab.shadowRoot?.querySelector('button');\n if (button) {\n button.focus();\n }\n }\n\n render() {\n const containerClasses = {\n 'tab-bar': true,\n [`shape-${this.shape}`]: true,\n [`breakpoint-${this.breakpoint}`]: true,\n };\n\n return (\n <Host role=\"tablist\">\n <div class={containerClasses}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-tag.js","sourceRoot":"","sources":["../../../src/components/af-tag/af-tag.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAKzD;;;;;;;;;;;;;;GAcG;AAMH,MAAM,OAAO,KAAK;IALlB;QAME;;;;;WAKG;QACK,SAAI,GAAY,OAAO,CAAC;QAEhC;;;WAGG;QACK,YAAO,GAAe,SAAS,CAAC;KA0BzC;IAnBC,MAAM;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvD,OAAO,CACL,EAAC,IAAI;YACH,EAAC,UAAU,qDACT,KAAK,EAAE;oBACL,KAAK,EAAE,IAAI;oBACX,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI;oBAC3B,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI;iBAClC,KACG,SAAS;gBAEb,8DAAQ,CACG,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, Host } from '@stencil/core';\n\nexport type TagSize = 'x-small' | 'small' | 'large';\nexport type TagVariant = 'default' | 'inkwell' | 'white' | 'soft-clay' | 'mist-green';\n\n/**\n * Tag displays a label in a styled container.\n * Perfect for categorization, topics, or metadata display.\n *\n * The `default` variant inherits its colors from the parent theme context\n * (af-section, af-card). Use explicit variants (`inkwell`, `white`,\n * `soft-clay`, `mist-green`) to override.\n *\n * @example\n * ```html\n * <af-tag>AI</af-tag>\n * <af-tag size=\"small\" variant=\"inkwell\">Machine Learning</af-tag>\n * <af-tag size=\"large\" variant=\"white\">Document Processing</af-tag>\n * ```\n */\n@Component({\n tag: 'af-tag',\n styleUrl: 'af-tag.css',\n shadow: true\n})\nexport class AfTag {\n /**\n * The size of the tag\n * - `x-small` - Compact tag with minimal padding\n * - `small` - Small tag with moderate padding (default)\n * - `large` - Large tag with generous padding\n */\n @Prop() size: TagSize = 'small';\n\n /**\n * Visual variant of the tag. `default` inherits tag colors from the\n * parent theme context. Theme-named variants force a specific palette.\n */\n @Prop() variant: TagVariant = 'default';\n\n /**\n * The URL to navigate to when the tag is clicked (makes the tag a link)\n */\n @Prop() href?: string;\n\n render() {\n const TagElement = this.href ? 'a' : 'span';\n const linkProps = this.href ? { href: this.href } : {};\n\n return (\n <Host>\n <TagElement\n class={{\n 'tag': true,\n [`size-${this.size}`]: true,\n [`variant-${this.variant}`]: true,\n }}\n {...linkProps}\n >\n <slot />\n </TagElement>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-testimonial.js","sourceRoot":"","sources":["../../../src/components/af-testimonial/af-testimonial.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Host, Event, EventEmitter } from '@stencil/core';\n\n/**\n * @slot quote-body - Rich quote content (paragraphs, lists). Overrides the\n * `quote` string prop when provided. Use for testimonials that include\n * multiple paragraphs, bulleted points, or inline emphasis.\n * @slot quote-icon - Quote icon (defaults to af-icon name=\"quote\").\n * @slot stats - Statistic items (af-testimonial-stat components).\n * @slot navigation - Custom nav controls (when not using built-in ones).\n */\n@Component({\n tag: 'af-testimonial',\n styleUrl: 'af-testimonial.css',\n shadow: false,\n scoped: true,\n})\nexport class AfTestimonial {\n /**\n * Background image URL for the testimonial card\n */\n @Prop() backgroundImage?: string;\n\n /**\n * Company logo URL\n */\n @Prop() logoImage?: string;\n\n /**\n * Testimonial quote text. Falls back to the `quote-body` slot if that\n * slot has content.\n */\n @Prop() quote?: string;\n\n /**\n * Attribution text (e.g., \"– Nathaniel Barrs, CTO, PSC Insurance\")\n */\n @Prop() attribution!: string;\n\n /**\n * Link to full case study\n */\n @Prop() readMoreLink?: string;\n\n /**\n * Whether to show built-in navigation buttons (used when in a carousel)\n */\n @Prop({ mutable: true }) showNavigation: boolean = false;\n\n /**\n * Whether the previous button is enabled\n */\n @Prop({ mutable: true }) hasPrev: boolean = false;\n\n /**\n * Whether the next button is enabled\n */\n @Prop({ mutable: true }) hasNext: boolean = false;\n\n /**\n * Emitted when the previous button is clicked\n */\n @Event() afNavPrev!: EventEmitter<void>;\n\n /**\n * Emitted when the next button is clicked\n */\n @Event() afNavNext!: EventEmitter<void>;\n\n private handlePrev = () => {\n this.afNavPrev.emit();\n };\n\n private handleNext = () => {\n this.afNavNext.emit();\n };\n\n render() {\n return (\n <Host>\n <div class=\"testimonial-card\">\n {/* Image side */}\n <div class=\"testimonial-image\">\n {this.backgroundImage && (\n <img src={this.backgroundImage} alt=\"\" class=\"testimonial-bg-image\" />\n )}\n {this.logoImage && (\n <div class=\"testimonial-logo\">\n <img src={this.logoImage} alt=\"Company logo\" />\n </div>\n )}\n </div>\n\n {/* Content side */}\n <div class=\"testimonial-content\">\n <div class=\"testimonial-quote-section\">\n {/* Quote icon - using af-icon atom with slot for flexibility */}\n <div class=\"testimonial-quote-icon\">\n <slot name=\"quote-icon\">\n <af-icon name=\"quote\" size={48} />\n </slot>\n </div>\n\n {/* Quote text — slot takes priority; falls back to prop. */}\n <div class=\"testimonial-text\">\n <slot name=\"quote-body\">{this.quote}</slot>\n </div>\n {/* Attribution */}\n <div class=\"testimonial-attribution\">{this.attribution}</div>\n </div>\n\n {/* Statistics slot */}\n <div class=\"testimonial-stats\">\n <slot name=\"stats\"></slot>\n </div>\n\n {/* Footer with navigation and CTA */}\n <div class=\"testimonial-footer\">\n <div class=\"testimonial-nav\">\n {this.showNavigation ? (\n // Render built-in navigation buttons\n <div class=\"testimonial-nav-buttons\">\n <af-icon-button\n variant=\"secondary\"\n disabled={!this.hasPrev}\n onClick={this.handlePrev}\n ariaLabel=\"Previous testimonial\"\n >\n <af-icon name=\"arrow-left\" size={24} />\n </af-icon-button>\n <af-icon-button\n variant=\"secondary\"\n disabled={!this.hasNext}\n onClick={this.handleNext}\n ariaLabel=\"Next testimonial\"\n >\n <af-icon name=\"arrow-right\" size={24} />\n </af-icon-button>\n </div>\n ) : (\n // Allow custom navigation via slot\n <slot name=\"navigation\"></slot>\n )}\n </div>\n {this.readMoreLink && (\n <af-button variant=\"secondary\" href={this.readMoreLink}>\n Read full story\n <af-icon slot=\"icon-right\" name=\"arrow-right\" size={24} />\n </af-button>\n )}\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-testimonial-carousel.js","sourceRoot":"","sources":["../../../src/components/af-testimonial-carousel/af-testimonial-carousel.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, State, h, Host, Element, Listen } from '@stencil/core';\n\n/**\n * TestimonialCarousel - Carousel for displaying multiple customer testimonials.\n * \n * Handles navigation between testimonials with progress indicator.\n * Wrap in Section/Container for proper page layout and theming.\n * \n * @slot - Testimonial components to display in the carousel\n */\n@Component({\n tag: 'af-testimonial-carousel',\n styleUrl: 'af-testimonial-carousel.css',\n shadow: false,\n scoped: true,\n})\nexport class AfTestimonialCarousel {\n @Element() host!: HTMLElement;\n @State() currentIndex: number = 0;\n @State() isAnimating: boolean = false;\n @State() testimonialCount: number = 0;\n\n private testimonials: HTMLElement[] = [];\n private observer: MutationObserver | undefined;\n\n componentDidLoad() {\n this.detectTestimonials();\n \n // Watch for testimonials being added (for React async rendering)\n this.observer = new MutationObserver(() => {\n this.detectTestimonials();\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 }\n\n /**\n * Listen for navigation events from testimonials\n */\n @Listen('afNavPrev')\n handleNavPrev() {\n this.goToPrevious();\n }\n\n @Listen('afNavNext')\n handleNavNext() {\n this.goToNext();\n }\n\n private detectTestimonials() {\n const newTestimonials = Array.from(this.host.querySelectorAll('af-testimonial')) as HTMLElement[];\n \n if (newTestimonials.length !== this.testimonials.length) {\n this.testimonials = newTestimonials;\n this.testimonialCount = newTestimonials.length;\n \n if (this.testimonials.length > 0) {\n this.currentIndex = 0;\n this.updateVisibleTestimonial();\n }\n }\n }\n\n private updateVisibleTestimonial() {\n const hasPrev = this.currentIndex > 0;\n const hasNext = this.currentIndex < this.testimonialCount - 1;\n const showNav = this.testimonialCount > 1;\n\n this.testimonials.forEach((testimonial, index) => {\n const offset = (index - this.currentIndex) * 100;\n testimonial.style.transform = `translateX(${offset}%)`;\n testimonial.style.opacity = index === this.currentIndex ? '1' : '0';\n testimonial.style.pointerEvents = index === this.currentIndex ? 'auto' : 'none';\n \n // Set navigation props on testimonials (directly on the element for Stencil)\n (testimonial as any).showNavigation = showNav;\n (testimonial as any).hasPrev = hasPrev;\n (testimonial as any).hasNext = hasNext;\n });\n }\n\n private goToPrevious = () => {\n if (this.isAnimating || this.currentIndex === 0) return;\n \n this.isAnimating = true;\n this.currentIndex = this.currentIndex - 1;\n this.updateVisibleTestimonial();\n \n setTimeout(() => {\n this.isAnimating = false;\n }, 500);\n };\n\n private goToNext = () => {\n if (this.isAnimating || this.currentIndex >= this.testimonialCount - 1) return;\n \n this.isAnimating = true;\n this.currentIndex = this.currentIndex + 1;\n this.updateVisibleTestimonial();\n \n setTimeout(() => {\n this.isAnimating = false;\n }, 500);\n };\n\n /**\n * Calculate progress value (0 to 1) based on current position\n */\n private getProgress(): number {\n if (this.testimonialCount <= 1) return 0;\n return (this.currentIndex + 1) / this.testimonialCount;\n }\n\n render() {\n return (\n <Host>\n <div class=\"testimonial-carousel\">\n <div class=\"testimonial-slides\">\n <slot></slot>\n </div>\n \n {/* Progress indicator using af-progress-line atom */}\n {this.testimonialCount > 1 && (\n <div class=\"testimonial-progress\">\n <af-progress-line progress={this.getProgress()} />\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-testimonial-stat.js","sourceRoot":"","sources":["../../../src/components/af-testimonial-stat/af-testimonial-stat.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAQzD,MAAM,OAAO,iBAAiB;IAN9B;QAiBE;;WAEG;QACK,iBAAY,GAAY,KAAK,CAAC;KAcvC;IAZC,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,QAAQ,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE;gBAE3D,mEAAY,KAAK,EAAE,CAAC,EAAE,KAAK,EAAC,YAAY,IAAE,IAAI,CAAC,KAAK,CAAc;gBAElE,gEAAS,OAAO,EAAC,QAAQ,EAAC,KAAK,EAAC,kBAAkB,IAAE,IAAI,CAAC,WAAW,CAAW,CAC3E,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\n\n@Component({\n tag: 'af-testimonial-stat',\n styleUrl: 'af-testimonial-stat.css',\n shadow: false,\n scoped: true,\n})\nexport class AfTestimonialStat {\n /**\n * The statistic value (e.g., \"95%\", \"10×\", \"120,000\")\n */\n @Prop() value!: string;\n\n /**\n * Description text for the statistic\n */\n @Prop() description!: string;\n\n /**\n * Whether to show left accent border\n */\n @Prop() accentBorder: boolean = false;\n\n render() {\n return (\n <Host>\n <div class={`stat ${this.accentBorder ? 'stat--accent' : ''}`}>\n {/* Stat value uses secondary heading color via CSS override */}\n <af-heading level={2} class=\"stat-value\">{this.value}</af-heading>\n {/* Description uses af-text for proper theming */}\n <af-text variant=\"medium\" class=\"stat-description\">{this.description}</af-text>\n </div>\n </Host>\n );\n }\n}\n\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-text.js","sourceRoot":"","sources":["../../../src/components/af-text/af-text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;GAIG;AAMH,MAAM,OAAO,MAAM;IALnB;QAME,mBAAmB;QACX,YAAO,GAA4C,QAAQ,CAAC;QAKpE,iCAAiC;QACzB,OAAE,GAAmC,GAAG,CAAC;KAkBlD;IAhBC,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,EAAS,CAAC;QAE3B,OAAO,CACL,EAAC,GAAG,qDACF,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI;gBACjC,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;aACtC,EACD,IAAI,EAAC,MAAM;YAEX,8DAAQ,CACJ,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\n\n/**\n * Text/body component that inherits color from theme context.\n * Color is determined by the parent theme (af-section, af-card, etc.)\n * via CSS custom properties.\n */\n@Component({\n tag: 'af-text',\n styleUrl: 'af-text.css',\n shadow: true\n})\nexport class AfText {\n /** Text variant */\n @Prop() variant: 'xlarge' | 'large' | 'medium' | 'small' = 'medium';\n\n /** Visual alignment. When not set, inherits from parent context (e.g. typography lockup). */\n @Prop() align?: 'left' | 'center' | 'right';\n\n /** Semantic element to render */\n @Prop() as: 'p' | 'span' | 'div' | 'label' = 'p';\n\n render() {\n const Tag = this.as as any;\n\n return (\n <Tag\n class={{\n 'text': true,\n [`variant-${this.variant}`]: true,\n [`align-${this.align}`]: !!this.align\n }}\n part=\"base\"\n >\n <slot />\n </Tag>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-text-image.js","sourceRoot":"","sources":["../../../src/components/af-text-image/af-text-image.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * TextImage composite component that combines typography content with an image.\n * Supports various layout configurations with image position and proportion options.\n */\n@Component({\n tag: 'af-text-image',\n styleUrl: 'af-text-image.css',\n shadow: false,\n scoped: true,\n})\nexport class AfTextImage {\n /**\n * Position of the image relative to the text content\n */\n @Prop() imagePosition: 'left' | 'right' = 'right';\n\n /**\n * Proportion of the image in the layout\n * - '1/2': Image and text each take half the width (50/50)\n * - '1/3': Image takes 1/3 of the width (text takes 2/3)\n * - '1/4': Image takes 1/4 of the width (text takes 3/4)\n * - '100%': Image takes full width below text\n */\n @Prop() imageProportion: '1/2' | '1/3' | '1/4' | '100%' = '1/3';\n\n /**\n * Image source URL\n */\n @Prop() src?: string;\n\n /**\n * Image alt text for accessibility\n */\n @Prop() alt: string = '';\n\n /**\n * Whether to show a second typography lockup section\n */\n @Prop() showSecondLockup: boolean = false;\n\n render() {\n const isFullWidth = this.imageProportion === '100%';\n const isImageLeft = this.imagePosition === 'left';\n\n const containerClasses = {\n 'text-image': true,\n 'text-image--full-width': isFullWidth,\n 'text-image--side-by-side': !isFullWidth,\n 'text-image--image-left': isImageLeft && !isFullWidth,\n 'text-image--image-right': !isImageLeft && !isFullWidth,\n [`text-image--proportion-${this.imageProportion.replace('/', '-').replace('%', '')}`]: true,\n };\n\n const renderTypographyLockup = (isSecond: boolean = false) => {\n const prefix = isSecond ? 'second-' : '';\n return (\n <div class={`text-image__lockup ${isSecond ? 'text-image__lockup--second' : ''}`}>\n <div class=\"text-image__copy\">\n <div class=\"text-image__heading\">\n <slot name={isSecond ? 'second-heading' : undefined}></slot>\n </div>\n <div class=\"text-image__description\">\n <slot name={`${prefix}description`}></slot>\n </div>\n </div>\n <div class=\"text-image__buttons\">\n <slot name={`${prefix}buttons`}></slot>\n </div>\n </div>\n );\n };\n\n const renderImage = () => {\n if (!this.src) return null;\n return (\n <div class=\"text-image__image-wrapper\">\n <af-image src={this.src} alt={this.alt}></af-image>\n </div>\n );\n };\n\n // For full-width layout, text is always above image\n if (isFullWidth) {\n return (\n <Host>\n <div class={containerClasses}>\n <div class=\"text-image__content\">\n {renderTypographyLockup()}\n {this.showSecondLockup && renderTypographyLockup(true)}\n </div>\n {renderImage()}\n </div>\n </Host>\n );\n }\n\n // For side-by-side layouts\n const textContent = (\n <div class=\"text-image__content\">\n {renderTypographyLockup()}\n {this.showSecondLockup && renderTypographyLockup(true)}\n </div>\n );\n\n const imageContent = renderImage();\n\n return (\n <Host>\n <div class={containerClasses}>\n {isImageLeft ? (\n [imageContent, textContent]\n ) : (\n [textContent, imageContent]\n )}\n </div>\n </Host>\n );\n }\n}\n\n\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-text-image-nest.js","sourceRoot":"","sources":["../../../src/components/af-text-image-nest/af-text-image-nest.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AAOH,MAAM,OAAO,eAAe;IAN5B;QAOE;;WAEG;QACK,WAAM,GAA0D,QAAQ,CAAC;KA+BlF;IA7BC,MAAM;QACJ,MAAM,gBAAgB,GAAG;YACvB,iBAAiB,EAAE,IAAI;YACvB,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI;SAChC,CAAC;QAEF,MAAM,WAAW,GAAG;YAClB,YAAY,EAAE,IAAI;YAClB,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI;SAC9B,CAAC;QAEF,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,gBAAgB;gBAC1B,4DAAK,KAAK,EAAC,eAAe;oBAExB,4DAAK,KAAK,EAAE,WAAW;wBACrB,8DAAa,CACT;oBAGN,4DAAK,KAAK,EAAC,cAAc;wBACvB,6DAAM,IAAI,EAAC,SAAS,GAAQ,CACxB,CACF,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * TextImageNest is a layout component that arranges multiple text-image content pieces\n * in various grid layouts with optional footer buttons.\n * \n * This component inherits theming from a parent Section or theme-providing container.\n * Wrap it in an af-section to apply themes.\n * \n * Supports multiple layout variants:\n * - `single`: Full-width single item (side-by-side image + text)\n * - `grid-2`: 2-column grid with stacked items\n * - `grid-3`: 3-column grid with stacked items\n * - `grid-4`: 4-column grid with stacked items\n * - `stacked`: Alternating rows of side-by-side content\n */\n@Component({\n tag: 'af-text-image-nest',\n styleUrl: 'af-text-image-nest.css',\n shadow: false,\n scoped: true,\n})\nexport class AfTextImageNest {\n /**\n * Layout variant for the content grid\n */\n @Prop() layout: 'single' | 'grid-2' | 'grid-3' | 'grid-4' | 'stacked' = 'grid-3';\n\n render() {\n const containerClasses = {\n 'text-image-nest': true,\n [`layout-${this.layout}`]: true,\n };\n\n const gridClasses = {\n 'nest__grid': true,\n [`grid-${this.layout}`]: true,\n };\n\n return (\n <Host>\n <div class={containerClasses}>\n <div class=\"nest__content\">\n {/* Content Grid */}\n <div class={gridClasses}>\n <slot></slot>\n </div>\n\n {/* Footer Buttons */}\n <div class=\"nest__footer\">\n <slot name=\"buttons\"></slot>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-textarea.js","sourceRoot":"","sources":["../../../src/components/af-textarea/af-textarea.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Host, Event, EventEmitter, State } from '@stencil/core';\n\n/**\n * @deprecated Use `<af-input multiline>` instead. `af-textarea` is a deprecated\n * alias kept for one minor cycle for backward compatibility and will be removed\n * in a future major release. Prefer `af-input` with the `multiline`, `rows` and\n * `resize` props — the rendered output and `--af-input-*` CSS custom property\n * surface are identical.\n *\n * Textarea component for multi-line text input with label, description, and error states.\n *\n * @slot label-end - Content to display at the end of the label (e.g., info icon)\n */\n@Component({\n tag: 'af-textarea',\n styleUrl: 'af-textarea.css',\n shadow: true\n})\nexport class AfTextarea {\n /** @internal */\n private static deprecationWarned = false;\n\n componentWillLoad() {\n if (typeof console !== 'undefined' && !AfTextarea.deprecationWarned) {\n AfTextarea.deprecationWarned = true;\n // eslint-disable-next-line no-console\n console.warn(\n '[@affinda/wc] <af-textarea> is deprecated and will be removed in a ' +\n 'future major release. Use <af-input multiline> instead — same props ' +\n '(label, description, placeholder, value, name, disabled, required, ' +\n 'readonly, error, showInfoIcon, rows, resize, maxlength, minlength) ' +\n 'and same rendered chrome. See @affinda/wc CHANGELOG for migration.'\n );\n }\n }\n\n /**\n * The label text for the textarea\n */\n @Prop() label?: string;\n\n /**\n * Description text displayed below the label\n */\n @Prop() description?: string;\n\n /**\n * Placeholder text for the textarea\n */\n @Prop() placeholder?: string;\n\n /**\n * The current value of the textarea\n */\n @Prop({ mutable: true }) value: string = '';\n\n /**\n * The name of the textarea for form submission\n */\n @Prop() name?: string;\n\n /**\n * Whether the textarea is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Whether the textarea is required\n */\n @Prop() required: boolean = false;\n\n /**\n * Whether the textarea is read-only\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Error message to display (also sets error state)\n */\n @Prop() error?: string;\n\n /**\n * Whether to show the info icon next to the label\n */\n @Prop() showInfoIcon: boolean = false;\n\n /**\n * Number of visible rows (height)\n */\n @Prop() rows: number = 4;\n\n /**\n * Maximum length of input value\n */\n @Prop() maxlength?: number;\n\n /**\n * Minimum length of input value\n */\n @Prop() minlength?: number;\n\n /**\n * Whether the textarea is resizable\n */\n @Prop() resize: 'none' | 'vertical' | 'horizontal' | 'both' = 'vertical';\n\n /**\n * Emitted when the textarea value changes\n */\n @Event() afInput!: EventEmitter<{ value: string }>;\n\n /**\n * Emitted when the textarea loses focus\n */\n @Event() afBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the textarea gains focus\n */\n @Event() afFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the info icon is clicked\n */\n @Event() afInfoClick!: EventEmitter<void>;\n\n @State() private isFocused: boolean = false;\n @State() private isHovered: boolean = false;\n\n private textareaEl?: HTMLTextAreaElement;\n\n private handleInput = (event: Event) => {\n const target = event.target as HTMLTextAreaElement;\n this.value = target.value;\n this.afInput.emit({ value: this.value });\n };\n\n private handleFocus = () => {\n this.isFocused = true;\n this.afFocus.emit();\n };\n\n private handleBlur = () => {\n this.isFocused = false;\n this.afBlur.emit();\n };\n\n private handleMouseEnter = () => {\n this.isHovered = true;\n };\n\n private handleMouseLeave = () => {\n this.isHovered = false;\n };\n\n private handleInfoClick = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.afInfoClick.emit();\n };\n\n render() {\n const hasError = !!this.error;\n const hasValue = !!(this.value && this.value.length > 0);\n\n const wrapperClasses = {\n 'textarea-wrapper': true,\n 'disabled': this.disabled,\n 'error': hasError,\n 'focused': this.isFocused,\n 'hovered': this.isHovered && !this.disabled && !this.isFocused,\n 'populated': hasValue\n };\n\n const textareaContainerClasses = {\n 'textarea-container': true,\n 'disabled': this.disabled,\n 'error': hasError,\n 'focused': this.isFocused,\n 'hovered': this.isHovered && !this.disabled && !this.isFocused\n };\n\n return (\n <Host>\n <div class={wrapperClasses}>\n {/* Label */}\n {this.label && (\n <div class=\"label-row\">\n <label class=\"label\" htmlFor=\"textarea\">\n {this.label}\n {this.required && <span class=\"required\">*</span>}\n </label>\n {this.showInfoIcon && (\n <button \n type=\"button\" \n class=\"info-icon\" \n onClick={this.handleInfoClick}\n aria-label=\"More information\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 16V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 8H12.01\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n )}\n <slot name=\"label-end\"></slot>\n </div>\n )}\n\n {/* Description */}\n {this.description && (\n <p class=\"description\">{this.description}</p>\n )}\n\n {/* Textarea container */}\n <div \n class={textareaContainerClasses}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n {/* Native textarea */}\n <textarea\n ref={(el) => this.textareaEl = el ?? undefined}\n id=\"textarea\"\n class=\"textarea\"\n name={this.name}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n required={this.required}\n readonly={this.readonly}\n rows={this.rows}\n maxlength={this.maxlength}\n minlength={this.minlength}\n style={{ resize: this.resize }}\n aria-invalid={hasError ? 'true' : undefined}\n aria-describedby={hasError ? 'error-message' : this.description ? 'description' : undefined}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n </div>\n\n {/* Error message */}\n {hasError && (\n <div class=\"error-row\" id=\"error-message\">\n <span class=\"error-icon\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 16V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 8H12.01\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </span>\n <span class=\"error-text\">{this.error}</span>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-theme-override.js","sourceRoot":"","sources":["../../../src/components/af-theme-override/af-theme-override.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGzD;;;;;;;;;GASG;AAOH,MAAM,OAAO,eAAe;IAN5B;QAOE;;;WAGG;QACK,UAAK,GAAU,OAAO,CAAC;KAWhC;IATC,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,wBAAwB,IAAI,CAAC,KAAK,EAAE;gBAC9C,8DAAa,CACT,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\nimport type { Theme } from '../../types';\n\n/**\n * Theme Override utility component.\n * Wraps content and applies an explicit theme, overriding any inherited theme\n * from parent containers like AfSection or AfCard.\n * \n * Unlike AfSection, this component does NOT apply a background color - \n * it only sets the CSS custom properties that child components consume.\n * \n * @slot - Content to be themed\n */\n@Component({\n tag: 'af-theme-override',\n styleUrl: 'af-theme-override.css',\n shadow: false,\n scoped: true,\n})\nexport class AfThemeOverride {\n /** \n * The theme to apply to child components.\n * Overrides any inherited theme from parent containers.\n */\n @Prop() theme: Theme = 'white';\n\n render() {\n return (\n <Host>\n <div class={`theme-override theme-${this.theme}`}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-typography-lockup.js","sourceRoot":"","sources":["../../../src/components/af-typography-lockup/af-typography-lockup.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Prop, State, Host } from '@stencil/core';\nimport type { HeadingSize } from '../../types';\n\ntype TextAlign = 'left' | 'center' | 'right' | 'justify';\n\n/**\n * Marketing-style composition of heading + description + buttons with\n * consistent spacing and alignment driven by the `headingSize` prop.\n *\n * **Semantic vs visual:** `headingSize` controls ONLY the visual scale\n * (the lockup sets font-size via a `heading-{1..5|card}` class). The semantic\n * level (h1-h6) is whatever the consumer slots in as default content.\n * Keep them aligned by convention so assistive tech and search engines\n * see the right hierarchy:\n *\n * headingSize=1 ↔ <h1> (or <h2> on non-top-of-page sections)\n * headingSize=2 ↔ <h2>\n * headingSize=3 ↔ <h3>\n * headingSize=4 ↔ <h4>\n * headingSize=5 ↔ <h5>\n * headingSize=\"card\" ↔ <h3> (card-title scale: 22/20px)\n *\n * When a design asks for a visually small H1 or a visually large H3,\n * pass the two independently — just do it deliberately, not by\n * accident. A console warning fires in dev mode if the slotted tag is\n * more than one level away from the prop.\n *\n * The `card` variant renders slightly larger than `5` (22/20px vs 20/18px)\n * and targets card titles in dense grids (diff-card h3, NumberedStepper\n * title, expert-insights related-card h3 on the marketing site). It sits\n * between `4` and `5` in the type ladder.\n */\n@Component({\n tag: 'af-typography-lockup',\n styleUrl: 'af-typography-lockup.css',\n shadow: true\n})\nexport class AfTypographyLockup {\n @Element() el!: HTMLElement;\n\n /**\n * The heading size (1-5, or \"card\"; 1 is largest). Controls visual scale\n * only — pair with a matching <h1>-<h5> slotted element for correct\n * document outline (see component docblock). The `card` variant sits\n * between 4 and 5 at 22/20px and is meant for card titles.\n */\n @Prop() headingSize: HeadingSize = 2;\n\n /**\n * The breakpoint for responsive typography\n */\n @Prop() breakpoint: 'desktop' | 'mobile' = 'desktop';\n\n /**\n * Text alignment for the entire lockup (heading and description).\n * Can be overridden individually with headingAlignment and descriptionAlignment.\n */\n @Prop() textAlignment: TextAlign = 'left';\n\n /**\n * Heading text alignment. Falls back to textAlignment if not specified.\n */\n @Prop() headingAlignment?: TextAlign;\n\n /**\n * Description text alignment. Falls back to textAlignment if not specified.\n */\n @Prop() descriptionAlignment?: TextAlign;\n\n /**\n * Button layout direction (horizontal or vertical stacking)\n */\n @Prop() buttonLayout: 'horizontal' | 'vertical' = 'vertical';\n\n /**\n * Buttons position alignment. Falls back to textAlignment if not specified.\n */\n @Prop() buttonsAlignment?: TextAlign;\n\n /**\n * Maximum width for the copy section (in pixels)\n */\n @Prop() maxWidth?: number;\n\n /**\n * Heading colour variant. Matches the Webflow pattern of `h1.primary` vs\n * `h1.secondary`, where \"secondary\" renders in the theme's accent/heading-\n * secondary colour (soft-clay on most themes).\n * - `primary` (default) - uses `--af-typography-heading-primary`\n * - `secondary` - uses `--af-typography-heading-secondary`\n */\n @Prop() headingColor: 'primary' | 'secondary' = 'primary';\n\n /**\n * Description colour variant. Same pattern as `headingColor`; useful for\n * hero-style lockups where the description is rendered in the accent colour.\n * - `default` (default) - uses `--af-typography-body-default`\n * - `secondary` - uses `--af-typography-heading-secondary`\n */\n @Prop() descriptionColor: 'default' | 'secondary' = 'default';\n\n /**\n * Whether the consumer passed anything into the description / buttons\n * slots. The CSS `:empty` selector can't help here — the `<slot>`\n * element itself counts as a child, so the wrapper divs would always\n * render as empty-but-visible lines of gap. Tracked on mount and on\n * any `slotchange` so wrappers collapse cleanly when there's nothing\n * to show.\n */\n @State() hasDescription: boolean = false;\n @State() hasButtons: boolean = false;\n\n private descriptionSlot?: HTMLSlotElement;\n private buttonsSlot?: HTMLSlotElement;\n\n componentDidLoad() {\n this.syncSlotState();\n this.descriptionSlot?.addEventListener('slotchange', this.syncSlotState);\n this.buttonsSlot?.addEventListener('slotchange', this.syncSlotState);\n // Dev-time check that the slotted semantic tag (h1-h6) is within one\n // level of the visual headingSize. Pairs with the class-level docblock;\n // silent in production unless the author explicitly turned on dev mode\n // via `window.__AF_STRICT_HEADINGS__`.\n if (typeof window === 'undefined') return;\n const strict = (window as unknown as { __AF_STRICT_HEADINGS__?: boolean })\n .__AF_STRICT_HEADINGS__;\n if (!strict) return;\n const heading = Array.from(this.el.children).find(\n (child) => !(child as HTMLElement).hasAttribute('slot') && /^h[1-6]$/i.test(child.tagName),\n );\n if (!heading) return;\n const slottedLevel = Number(heading.tagName.slice(1));\n const expected = this.headingSize;\n // The `card` variant is a named scale (card-title), not a semantic level.\n // Skip the numeric-proximity check entirely — convention is <h3>, but\n // consumers may legitimately pair it with <h2>-<h4> depending on context.\n if (expected === 'card') return;\n if (Math.abs(slottedLevel - expected) > 1) {\n // eslint-disable-next-line no-console\n console.warn(\n `[af-typography-lockup] heading-size=${expected} paired with <${heading.tagName.toLowerCase()}>; ` +\n `expected an <h${expected}> for document outline. Pass deliberately or align the two.`,\n );\n }\n }\n\n disconnectedCallback() {\n this.descriptionSlot?.removeEventListener('slotchange', this.syncSlotState);\n this.buttonsSlot?.removeEventListener('slotchange', this.syncSlotState);\n }\n\n private syncSlotState = () => {\n this.hasDescription = (this.descriptionSlot?.assignedNodes({ flatten: true }).length ?? 0) > 0;\n this.hasButtons = (this.buttonsSlot?.assignedNodes({ flatten: true }).length ?? 0) > 0;\n };\n\n render() {\n const effectiveHeadingAlignment = this.headingAlignment ?? this.textAlignment;\n const effectiveDescriptionAlignment = this.descriptionAlignment ?? this.textAlignment;\n const effectiveButtonsAlignment = this.buttonsAlignment ?? this.textAlignment;\n\n const containerClasses = {\n 'lockup': true,\n [`text-${this.textAlignment}`]: true,\n [`layout-${this.buttonLayout}`]: true,\n [`heading-${this.headingSize}`]: true,\n [`breakpoint-${this.breakpoint}`]: true\n };\n\n const headingClasses = {\n 'heading': true,\n [`align-${effectiveHeadingAlignment}`]: true,\n [`heading-color-${this.headingColor}`]: true\n };\n\n const descriptionClasses = {\n 'description': true,\n [`align-${effectiveDescriptionAlignment}`]: true,\n [`description-color-${this.descriptionColor}`]: true\n };\n\n const buttonsClasses = {\n 'buttons': true,\n [`align-${effectiveButtonsAlignment}`]: true\n };\n\n const copyStyle = this.maxWidth ? { maxWidth: `${this.maxWidth}px` } : {};\n\n return (\n <Host>\n <div class={containerClasses}>\n <div class=\"copy\" style={copyStyle}>\n <div class={headingClasses} part=\"heading\">\n <slot></slot>\n </div>\n <div class={descriptionClasses} part=\"body\" hidden={!this.hasDescription}>\n <slot name=\"description\" ref={(el) => (this.descriptionSlot = el as HTMLSlotElement)}></slot>\n </div>\n </div>\n <div class={buttonsClasses} part=\"buttons\" hidden={!this.hasButtons}>\n <slot name=\"buttons\" ref={(el) => (this.buttonsSlot = el as HTMLSlotElement)}></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-video-container.js","sourceRoot":"","sources":["../../../src/components/af-video-container/af-video-container.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,MAAM,OAAO,gBAAgB;IAN7B;QAOE,gCAAgC;QACxB,sBAAiB,GAAW,EAAE,CAAC;QAEvC,uCAAuC;QAC/B,aAAQ,GAAW,iBAAiB,CAAC;QAE7C,8CAA8C;QACtC,aAAQ,GAAW,EAAE,CAAC;QAS9B;;WAEG;QACK,oBAAe,GAAG,GAAG,EAAE;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEjE,yDAAyD;YACzD,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC;KA4CH;IA1CC,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAC,iBAAiB;gBAE1B,4DAAK,KAAK,EAAC,sBAAsB;oBAC/B,6DAAM,IAAI,EAAC,KAAK,GAAQ,CACpB;gBAGN,4DAAK,KAAK,EAAC,wBAAwB;oBACjC,wEAAiB,KAAK,EAAC,MAAM;wBAC3B,4DAAK,KAAK,EAAC,oCAAoC;4BAC5C,IAAI,CAAC,iBAAiB,IAAI,CACzB,4DACE,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAC3B,GAAG,EAAE,IAAI,CAAC,QAAQ,EAClB,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,MAAM,GACd,CACH;4BAED,+DACE,KAAK,EAAC,8BAA8B,EACpC,OAAO,EAAE,IAAI,CAAC,eAAe,gBAClB,YAAY,EACvB,IAAI,EAAC,QAAQ;gCAEb,gEAAS,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,GAAY,CAClC,CACL,CACU,CACd;gBAGN,4DAAK,KAAK,EAAC,yBAAyB;oBAClC,6DAAM,IAAI,EAAC,QAAQ,GAAQ,CACvB,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop, Event, EventEmitter } from '@stencil/core';\n\n/**\n * Video Container molecule component for showcasing video content.\n * \n * Uses slots for typography lockups above and below the video.\n * When used inside af-split-section, the top slot inherits the top theme\n * and the bottom slot inherits the bottom theme for correct colors.\n * \n * @example\n * ```html\n * <af-split-section top-theme=\"mist-green\" bottom-theme=\"white\">\n * <af-video-container video-thumbnail-url=\"/path/to/thumbnail.jpg\">\n * <af-typography-lockup slot=\"top\" text-alignment=\"center\" heading-size=\"2\">\n * <af-heading level=\"2\">Watch our product demo</af-heading>\n * <af-text slot=\"description\">See how Affinda transforms your workflow</af-text>\n * <af-button slot=\"buttons\" variant=\"primary\">Get Started</af-button>\n * </af-typography-lockup>\n * </af-video-container>\n * </af-split-section>\n * ```\n * \n * @slot top - Content above the video (typically af-typography-lockup). Inherits top theme.\n * @slot bottom - Content below the video (typically af-typography-lockup). Inherits bottom theme.\n */\n@Component({\n tag: 'af-video-container',\n styleUrl: 'af-video-container.css',\n shadow: false,\n scoped: true,\n})\nexport class AfVideoContainer {\n /** Video thumbnail image URL */\n @Prop() videoThumbnailUrl: string = '';\n\n /** Video alt text for accessibility */\n @Prop() videoAlt: string = 'Video thumbnail';\n\n /** Optional video URL for play button link */\n @Prop() videoUrl: string = '';\n\n /** \n * Emitted when the play button is clicked.\n * Use this to handle video playback (e.g., open modal, embed player).\n * If videoUrl is set and no handler prevents default, opens URL in new tab.\n */\n @Event() afPlayClick!: EventEmitter<{ videoUrl: string }>;\n\n /**\n * Handles play button click - emits event and optionally opens URL\n */\n private handlePlayClick = () => {\n const event = this.afPlayClick.emit({ videoUrl: this.videoUrl });\n \n // Only open URL if event wasn't prevented and URL exists\n if (!event.defaultPrevented && this.videoUrl) {\n window.open(this.videoUrl, '_blank');\n }\n };\n\n render() {\n return (\n <Host>\n <div class=\"video-container\">\n {/* Top slot - for typography lockup above video (inherits top theme) */}\n <div class=\"video-container__top\">\n <slot name=\"top\"></slot>\n </div>\n\n {/* Video thumbnail section */}\n <div class=\"video-container__video\">\n <af-aspect-ratio ratio=\"16:9\">\n <div class=\"video-container__thumbnail-wrapper\">\n {this.videoThumbnailUrl && (\n <img \n src={this.videoThumbnailUrl} \n alt={this.videoAlt}\n class=\"video-container__thumbnail\"\n loading=\"lazy\"\n />\n )}\n {/* Play button overlay */}\n <button \n class=\"video-container__play-button\"\n onClick={this.handlePlayClick}\n aria-label=\"Play video\"\n type=\"button\"\n >\n <af-icon name=\"play\" size={24}></af-icon>\n </button>\n </div>\n </af-aspect-ratio>\n </div>\n\n {/* Bottom slot - for typography lockup below video (inherits bottom theme) */}\n <div class=\"video-container__bottom\">\n <slot name=\"bottom\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"af-visually-hidden.js","sourceRoot":"","sources":["../../../src/components/af-visually-hidden/af-visually-hidden.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;GAMG;AAMH,MAAM,OAAO,gBAAgB;IAL7B;QAME;;;WAGG;QACK,cAAS,GAAY,KAAK,CAAC;KASpC;IAPC,MAAM;QACJ,OAAO,CACL,EAAC,IAAI,qDAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE;YAC1C,8DAAa,CACR,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n/**\n * Visually Hidden component for accessible content.\n * Hides content visually while keeping it accessible to screen readers.\n * Essential for accessibility - use for skip links, form labels, etc.\n *\n * @slot - Content to hide visually\n */\n@Component({\n tag: 'af-visually-hidden',\n styleUrl: 'af-visually-hidden.css',\n shadow: true,\n})\nexport class AfVisuallyHidden {\n /**\n * When true, the content becomes visible when focused.\n * Useful for skip links and other focusable elements.\n */\n @Prop() focusable: boolean = false;\n\n render() {\n return (\n <Host class={{ 'focusable': this.focusable }}>\n <slot></slot>\n </Host>\n );\n }\n}\n\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC","sourcesContent":["export { AfHeading } from './components/af-heading/af-heading';\nexport { AfText } from './components/af-text/af-text';\nexport { AfColorSwatch } from './components/af-color-swatch/af-color-swatch';\nexport { AfContainer } from './components/af-container/af-container';\nexport { AfAspectRatio } from './components/af-aspect-ratio/af-aspect-ratio';\nexport { AfNavItem } from './components/af-nav-item/af-nav-item';\nexport { AfNavbar } from './components/af-navbar/af-navbar';\nexport { AfLogo } from './components/af-logo/af-logo';\nexport { AfButton } from './components/af-button/af-button';\nexport { AfIconButton } from './components/af-icon-button/af-icon-button';\nexport { AfButtonGroup } from './components/af-button-group/af-button-group';\nexport { AfTypographyLockup } from './components/af-typography-lockup/af-typography-lockup';\nexport { AfCheckbox } from './components/af-checkbox/af-checkbox';\nexport { AfRadio } from './components/af-radio/af-radio';\nexport { AfSwitch } from './components/af-switch/af-switch';\nexport { AfFieldset } from './components/af-fieldset/af-fieldset';\nexport { AfInput } from './components/af-input/af-input';\nexport { AfTextarea } from './components/af-textarea/af-textarea';\nexport { AfTag } from './components/af-tag/af-tag';\nexport { AfTab } from './components/af-tab/af-tab';\nexport { AfTabBar } from './components/af-tab-bar/af-tab-bar';\nexport { AfFeatureCard } from './components/af-feature-card/af-feature-card';\nexport { AfIllustratedCard } from './components/af-illustrated-card/af-illustrated-card';\nexport { AfHero } from './components/af-hero/af-hero';\nexport type { HeroVariant, HeroTopPad } from './components/af-hero/af-hero';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from './components';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG","sourcesContent":["/**\n * Shared prop-union types used across multiple @affinda/wc components.\n *\n * Before adding a new union here: check whether the value list is truly\n * shared across components, or whether it's specific to one. Component-\n * local unions (e.g. a 2-value `direction` prop) should stay local; only\n * lift types here when they're duplicated verbatim in 2+ places, or when\n * a semantic concept (theme, spacing scale) deserves a single source of\n * truth.\n */\n\n/**\n * Brand theme token. Drives background colour and theme-dependent child\n * styling (typography colour, button tokens, etc.) via a `theme-{name}`\n * class on the rendered wrapper.\n *\n * Canonical values: `'white' | 'inkwell' | 'mist-green' | 'soft-clay' | 'white-ivory'`.\n *\n * Consumers: af-section, af-theme-override, af-feature-card,\n * af-illustrated-card, af-card, af-client-carousel, af-navbar,\n * af-in-page-banner, af-split-section.\n */\nexport type Theme =\n | 'white'\n | 'inkwell'\n | 'mist-green'\n | 'soft-clay'\n | 'white-ivory';\n\n/**\n * Gap spacing token. Maps to `--space-{n}` CSS custom properties (space\n * scale: 1=4px, 2=8px, 3=12px, 4=16px, 5=20px, 6=24px, 8=32px).\n *\n * Canonical values: `'1' | '2' | '3' | '4' | '5' | '6' | '8'`.\n *\n * Consumers: af-stack, af-grid, af-inline, af-divider (as part of its\n * `spacing` prop). Note: af-button-group uses `gap: string` (free-form\n * CSS length) and intentionally opts out of the token ladder.\n */\nexport type Gap = '1' | '2' | '3' | '4' | '5' | '6' | '8';\n\n/**\n * Section padding variant. Drives top/bottom padding via `padding-{name}`\n * classes on the rendered wrapper.\n *\n * Canonical values: `'none' | 'tight' | 'default' | 'loose'`.\n *\n * Consumers: af-section, af-split-section.\n */\nexport type Padding = 'none' | 'tight' | 'default' | 'loose';\n\n/**\n * Typography heading size. Controls ONLY the visual scale of a heading\n * lockup; the semantic level (h1-h6) is determined by the slotted tag\n * the consumer passes in. See af-typography-lockup for the full\n * semantic-vs-visual convention.\n *\n * Canonical values: `1 | 2 | 3 | 4 | 5 | 'card'`.\n *\n * - `1`-`5` map to the type ladder (1 largest, 5 smallest).\n * - `'card'` is a named card-title scale (22/20px) that sits between\n * `4` and `5`, used for card titles in dense grids.\n *\n * Consumers: af-typography-lockup.\n */\nexport type HeadingSize = 1 | 2 | 3 | 4 | 5 | 'card';\n"]}
@@ -1 +0,0 @@
1
- {"file":"af-accordion-item.js","mappings":"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","names":["AfAccordionItem","__stencil_proxyCustomElement","HTMLElement"],"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"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"af-accordion.js","mappings":"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","names":["AfAccordion","__stencil_proxyCustomElement","HTMLElement"],"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"],"version":3}