@affinda/wc 0.3.1 → 0.4.1

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 (499) hide show
  1. package/dist/affinda/af-accordion-item.entry.esm.js.map +1 -1
  2. package/dist/affinda/af-button.entry.esm.js.map +1 -1
  3. package/dist/affinda/af-card.entry.esm.js.map +1 -1
  4. package/dist/affinda/af-feature-accordion.entry.esm.js.map +1 -1
  5. package/dist/affinda/af-hero.entry.esm.js.map +1 -1
  6. package/dist/affinda/af-icon-button.entry.esm.js.map +1 -1
  7. package/dist/affinda/af-nav-accordion-item.entry.esm.js.map +1 -1
  8. package/dist/affinda/af-stat.entry.esm.js.map +1 -1
  9. package/dist/affinda/af-testimonial-stat.entry.esm.js.map +1 -1
  10. package/dist/affinda/affinda.css +1 -1
  11. package/dist/affinda/affinda.esm.js +1 -1
  12. package/dist/affinda/index.esm.js +1 -1
  13. package/dist/affinda/{p-bbfc9df6.entry.js → p-05072f90.entry.js} +2 -2
  14. package/dist/affinda/p-08a42935.entry.js +2 -0
  15. package/dist/affinda/{p-9aed7039.entry.js.map → p-08a42935.entry.js.map} +1 -1
  16. package/dist/affinda/{p-3ed408f6.entry.js → p-14bd7903.entry.js} +2 -2
  17. package/dist/affinda/{p-9eba91fd.entry.js → p-1902ed20.entry.js} +2 -2
  18. package/dist/affinda/{p-165c413d.entry.js → p-19dc4331.entry.js} +2 -2
  19. package/dist/affinda/{p-ae430873.entry.js → p-255a8254.entry.js} +2 -2
  20. package/dist/affinda/{p-4a9b192b.entry.js → p-2586fbb8.entry.js} +2 -2
  21. package/dist/affinda/{p-631d141c.entry.js → p-26a6d9a7.entry.js} +2 -2
  22. package/dist/affinda/{p-7867c2ff.entry.js → p-27469df6.entry.js} +2 -2
  23. package/dist/affinda/{p-5c163c5b.entry.js → p-2a8441cb.entry.js} +2 -2
  24. package/dist/affinda/{p-dabd389a.entry.js → p-3238f8e8.entry.js} +2 -2
  25. package/dist/affinda/{p-b9ec0e75.entry.js → p-3c6790f8.entry.js} +2 -2
  26. package/dist/affinda/{p-f19cb091.entry.js → p-3dd90f46.entry.js} +2 -2
  27. package/dist/affinda/{p-9c1e9bd8.entry.js → p-42c4d7b1.entry.js} +2 -2
  28. package/dist/affinda/{p-6e181b2b.entry.js → p-432ee0e3.entry.js} +2 -2
  29. package/dist/affinda/{p-1c96856a.entry.js → p-43a0286a.entry.js} +2 -2
  30. package/dist/affinda/{p-e07e27f1.entry.js → p-44e976ee.entry.js} +2 -2
  31. package/dist/affinda/{p-7111051c.entry.js → p-479a300e.entry.js} +2 -2
  32. package/dist/affinda/{p-4b2c0698.entry.js → p-4ccc3147.entry.js} +2 -2
  33. package/dist/affinda/{p-6c33fee6.entry.js → p-4f15b8f0.entry.js} +2 -2
  34. package/dist/affinda/p-57fcfd78.entry.js +2 -0
  35. package/dist/affinda/{p-2237e652.entry.js.map → p-57fcfd78.entry.js.map} +1 -1
  36. package/dist/affinda/{p-d362651c.entry.js → p-587fd0fa.entry.js} +2 -2
  37. package/dist/affinda/p-5885ebd3.entry.js +2 -0
  38. package/dist/affinda/{p-90ef7baa.entry.js.map → p-5885ebd3.entry.js.map} +1 -1
  39. package/dist/affinda/p-5f3419c3.entry.js +2 -0
  40. package/dist/affinda/p-5f3419c3.entry.js.map +1 -0
  41. package/dist/affinda/{p-862a2509.entry.js → p-67a27eaf.entry.js} +2 -2
  42. package/dist/affinda/{p-44d960ca.entry.js → p-67e8c6f6.entry.js} +2 -2
  43. package/dist/affinda/{p-41bbb218.entry.js → p-6986f604.entry.js} +2 -2
  44. package/dist/affinda/{p-85cc55bb.entry.js → p-6b7fcb18.entry.js} +2 -2
  45. package/dist/affinda/{p-4a355b69.entry.js → p-7013570d.entry.js} +2 -2
  46. package/dist/affinda/p-750063ab.entry.js +2 -0
  47. package/dist/affinda/p-750063ab.entry.js.map +1 -0
  48. package/dist/affinda/{p-15f0bd34.entry.js → p-75443f08.entry.js} +2 -2
  49. package/dist/affinda/{p-364ffa25.entry.js → p-7640c285.entry.js} +2 -2
  50. package/dist/affinda/{p-827f3050.entry.js → p-77ec01ee.entry.js} +2 -2
  51. package/dist/affinda/{p-256970e3.entry.js → p-7c9683d8.entry.js} +2 -2
  52. package/dist/affinda/{p-0acadf6f.entry.js → p-7ce2b434.entry.js} +2 -2
  53. package/dist/affinda/{p-dcc89b4c.entry.js → p-7eca844d.entry.js} +2 -2
  54. package/dist/affinda/{p-5e5e7d75.entry.js → p-95b49b45.entry.js} +2 -2
  55. package/dist/affinda/{p-365a75e2.entry.js → p-9610cd3c.entry.js} +2 -2
  56. package/dist/affinda/{p-6756aa66.entry.js → p-9963bec0.entry.js} +2 -2
  57. package/dist/affinda/{p-342b08e5.entry.js → p-9b115359.entry.js} +2 -2
  58. package/dist/affinda/p-9b9e81cf.entry.js +2 -0
  59. package/dist/affinda/{p-7d3cdda1.entry.js.map → p-9b9e81cf.entry.js.map} +1 -1
  60. package/dist/affinda/p-9ca72e02.entry.js +2 -0
  61. package/dist/affinda/{p-83bb96cc.entry.js.map → p-9ca72e02.entry.js.map} +1 -1
  62. package/dist/affinda/{p-4f59b554.entry.js → p-9e19a477.entry.js} +2 -2
  63. package/dist/affinda/p-C4WBekD2.js +3 -0
  64. package/dist/affinda/p-C4WBekD2.js.map +1 -0
  65. package/dist/affinda/{p-a8d75eb1.entry.js → p-a7b51bb6.entry.js} +2 -2
  66. package/dist/affinda/{p-9f3e7116.entry.js → p-ac45df4b.entry.js} +2 -2
  67. package/dist/affinda/{p-32d62fbb.entry.js → p-adabec15.entry.js} +2 -2
  68. package/dist/affinda/{p-bed7d9a1.entry.js → p-b65cf4c3.entry.js} +2 -2
  69. package/dist/affinda/{p-95d4696a.entry.js → p-b82fc7f1.entry.js} +2 -2
  70. package/dist/affinda/{p-6475796d.entry.js → p-b8ea57a9.entry.js} +2 -2
  71. package/dist/affinda/{p-4058a1eb.entry.js → p-bac968a1.entry.js} +2 -2
  72. package/dist/affinda/{p-76cb736d.entry.js → p-bc77706d.entry.js} +2 -2
  73. package/dist/affinda/{p-d7d82986.entry.js → p-c4fd7d48.entry.js} +2 -2
  74. package/dist/affinda/{p-6ea474a3.entry.js → p-ce77f08f.entry.js} +2 -2
  75. package/dist/affinda/{p-35607741.entry.js → p-d06ae9cd.entry.js} +2 -2
  76. package/dist/affinda/{p-86f6dfdc.entry.js → p-d34da6c0.entry.js} +2 -2
  77. package/dist/affinda/{p-24e74c10.entry.js → p-d647ae06.entry.js} +2 -2
  78. package/dist/affinda/{p-436673bb.entry.js → p-d6b8c3b4.entry.js} +2 -2
  79. package/dist/affinda/p-d923549d.entry.js +2 -0
  80. package/dist/affinda/{p-068ac2fb.entry.js.map → p-d923549d.entry.js.map} +1 -1
  81. package/dist/affinda/{p-65dd559a.entry.js → p-d9913985.entry.js} +2 -2
  82. package/dist/affinda/{p-9480f00d.entry.js → p-dd0cd57e.entry.js} +2 -2
  83. package/dist/affinda/{p-a25d3257.entry.js → p-dd4c8640.entry.js} +2 -2
  84. package/dist/affinda/{p-43f40921.entry.js → p-df6c7170.entry.js} +2 -2
  85. package/dist/affinda/p-e0619222.entry.js +2 -0
  86. package/dist/affinda/{p-4eeeb8a1.entry.js.map → p-e0619222.entry.js.map} +1 -1
  87. package/dist/affinda/{p-eeda78ea.entry.js → p-e90a3892.entry.js} +2 -2
  88. package/dist/affinda/p-ea150b3d.entry.js +2 -0
  89. package/dist/affinda/{p-1b4b0c88.entry.js.map → p-ea150b3d.entry.js.map} +1 -1
  90. package/dist/affinda/{p-a1e80460.entry.js → p-ec042bc4.entry.js} +2 -2
  91. package/dist/affinda/{p-a02d6192.entry.js → p-f7fc76d2.entry.js} +2 -2
  92. package/dist/affinda/{p-9ce0adc2.entry.js → p-f9ecbde8.entry.js} +2 -2
  93. package/dist/affinda/{p-61a6b43d.entry.js → p-fff252df.entry.js} +2 -2
  94. package/dist/cjs/af-accordion-item.cjs.entry.js +2 -2
  95. package/dist/cjs/af-accordion-item.entry.cjs.js.map +1 -1
  96. package/dist/cjs/af-accordion.cjs.entry.js +1 -1
  97. package/dist/cjs/af-aspect-ratio.cjs.entry.js +1 -1
  98. package/dist/cjs/af-button-group.cjs.entry.js +1 -1
  99. package/dist/cjs/af-button.cjs.entry.js +2 -2
  100. package/dist/cjs/af-button.entry.cjs.js.map +1 -1
  101. package/dist/cjs/af-card.cjs.entry.js +11 -3
  102. package/dist/cjs/af-card.entry.cjs.js.map +1 -1
  103. package/dist/cjs/af-center.cjs.entry.js +1 -1
  104. package/dist/cjs/af-checkbox.cjs.entry.js +1 -1
  105. package/dist/cjs/af-client-carousel.cjs.entry.js +1 -1
  106. package/dist/cjs/af-color-swatch.cjs.entry.js +1 -1
  107. package/dist/cjs/af-contact-item.cjs.entry.js +1 -1
  108. package/dist/cjs/af-container.cjs.entry.js +1 -1
  109. package/dist/cjs/af-divider.cjs.entry.js +1 -1
  110. package/dist/cjs/af-feature-accordion.cjs.entry.js +4 -4
  111. package/dist/cjs/af-feature-accordion.entry.cjs.js.map +1 -1
  112. package/dist/cjs/af-feature-card.cjs.entry.js +1 -1
  113. package/dist/cjs/af-feature-grid.cjs.entry.js +1 -1
  114. package/dist/cjs/af-fieldset.cjs.entry.js +1 -1
  115. package/dist/cjs/af-footer-column.cjs.entry.js +1 -1
  116. package/dist/cjs/af-footer-link.cjs.entry.js +1 -1
  117. package/dist/cjs/af-footer.cjs.entry.js +1 -1
  118. package/dist/cjs/af-grid-callout.cjs.entry.js +1 -1
  119. package/dist/cjs/af-grid.cjs.entry.js +1 -1
  120. package/dist/cjs/af-heading_5.cjs.entry.js +1 -1
  121. package/dist/cjs/af-hero.cjs.entry.js +2 -2
  122. package/dist/cjs/af-hero.entry.cjs.js.map +1 -1
  123. package/dist/cjs/af-icon-box.cjs.entry.js +1 -1
  124. package/dist/cjs/af-icon-button.cjs.entry.js +2 -2
  125. package/dist/cjs/af-icon-button.entry.cjs.js.map +1 -1
  126. package/dist/cjs/af-icon-text.cjs.entry.js +1 -1
  127. package/dist/cjs/af-icon.cjs.entry.js +1 -1
  128. package/dist/cjs/af-illustrated-card.cjs.entry.js +1 -1
  129. package/dist/cjs/af-image.cjs.entry.js +1 -1
  130. package/dist/cjs/af-in-page-banner.cjs.entry.js +1 -1
  131. package/dist/cjs/af-inline.cjs.entry.js +1 -1
  132. package/dist/cjs/af-input.cjs.entry.js +1 -1
  133. package/dist/cjs/af-logo-well.cjs.entry.js +1 -1
  134. package/dist/cjs/af-nav-accordion-item.cjs.entry.js +2 -2
  135. package/dist/cjs/af-nav-accordion-item.entry.cjs.js.map +1 -1
  136. package/dist/cjs/af-nav-accordion.cjs.entry.js +1 -1
  137. package/dist/cjs/af-nav-card.cjs.entry.js +1 -1
  138. package/dist/cjs/af-nav-menu-nest.cjs.entry.js +1 -1
  139. package/dist/cjs/af-nav-menu.cjs.entry.js +1 -1
  140. package/dist/cjs/af-number-badge.cjs.entry.js +1 -1
  141. package/dist/cjs/af-numbered-stepper-item.cjs.entry.js +1 -1
  142. package/dist/cjs/af-numbered-stepper.cjs.entry.js +1 -1
  143. package/dist/cjs/af-paperclip-decoration.cjs.entry.js +1 -1
  144. package/dist/cjs/af-progress-line.cjs.entry.js +1 -1
  145. package/dist/cjs/af-radio.cjs.entry.js +1 -1
  146. package/dist/cjs/af-section.cjs.entry.js +1 -1
  147. package/dist/cjs/af-show.cjs.entry.js +1 -1
  148. package/dist/cjs/af-social-link.cjs.entry.js +1 -1
  149. package/dist/cjs/af-spacer.cjs.entry.js +1 -1
  150. package/dist/cjs/af-split-section.cjs.entry.js +1 -1
  151. package/dist/cjs/af-stack.cjs.entry.js +1 -1
  152. package/dist/cjs/af-stat.cjs.entry.js +2 -2
  153. package/dist/cjs/af-stat.entry.cjs.js.map +1 -1
  154. package/dist/cjs/af-stats-row.cjs.entry.js +1 -1
  155. package/dist/cjs/af-stepper-step.cjs.entry.js +1 -1
  156. package/dist/cjs/af-stepper.cjs.entry.js +1 -1
  157. package/dist/cjs/af-switch.cjs.entry.js +1 -1
  158. package/dist/cjs/af-tab-bar.cjs.entry.js +1 -1
  159. package/dist/cjs/af-tab.cjs.entry.js +1 -1
  160. package/dist/cjs/af-tag.cjs.entry.js +1 -1
  161. package/dist/cjs/af-testimonial-carousel.cjs.entry.js +1 -1
  162. package/dist/cjs/af-testimonial-stat.cjs.entry.js +2 -2
  163. package/dist/cjs/af-testimonial-stat.entry.cjs.js.map +1 -1
  164. package/dist/cjs/af-testimonial.cjs.entry.js +1 -1
  165. package/dist/cjs/af-text-image-nest.cjs.entry.js +1 -1
  166. package/dist/cjs/af-text-image.cjs.entry.js +1 -1
  167. package/dist/cjs/af-textarea.cjs.entry.js +1 -1
  168. package/dist/cjs/af-theme-override.cjs.entry.js +1 -1
  169. package/dist/cjs/af-typography-lockup.cjs.entry.js +1 -1
  170. package/dist/cjs/af-video-container.cjs.entry.js +1 -1
  171. package/dist/cjs/af-visually-hidden.cjs.entry.js +1 -1
  172. package/dist/cjs/affinda.cjs.js +2 -2
  173. package/dist/cjs/{index-BzZA0USq.js → index-3161MbMQ.js} +3 -3
  174. package/dist/cjs/index-3161MbMQ.js.map +1 -0
  175. package/dist/cjs/index.cjs.js +1 -1
  176. package/dist/cjs/loader.cjs.js +2 -2
  177. package/dist/collection/components/af-accordion-item/af-accordion-item.css +11 -3
  178. package/dist/collection/components/af-button/af-button.css +16 -1
  179. package/dist/collection/components/af-card/af-card.css +30 -0
  180. package/dist/collection/components/af-card/af-card.js +29 -1
  181. package/dist/collection/components/af-card/af-card.js.map +1 -1
  182. package/dist/collection/components/af-feature-accordion/af-feature-accordion.css +36 -2
  183. package/dist/collection/components/af-feature-accordion/af-feature-accordion.js +2 -2
  184. package/dist/collection/components/af-feature-accordion/af-feature-accordion.js.map +1 -1
  185. package/dist/collection/components/af-hero/af-hero.css +27 -5
  186. package/dist/collection/components/af-icon-button/af-icon-button.css +15 -1
  187. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.css +10 -2
  188. package/dist/collection/components/af-stat/af-stat.css +5 -0
  189. package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.css +4 -0
  190. package/dist/components/af-accordion-item.js +2 -2
  191. package/dist/components/af-accordion-item.js.map +1 -1
  192. package/dist/components/af-accordion.js +1 -1
  193. package/dist/components/af-aspect-ratio.js +1 -1
  194. package/dist/components/af-button-group.js +1 -1
  195. package/dist/components/af-button.js +1 -1
  196. package/dist/components/af-card.js +1 -1
  197. package/dist/components/af-center.js +1 -1
  198. package/dist/components/af-checkbox.js +1 -1
  199. package/dist/components/af-client-carousel.js +1 -1
  200. package/dist/components/af-color-swatch.js +1 -1
  201. package/dist/components/af-contact-item.js +1 -1
  202. package/dist/components/af-container.js +1 -1
  203. package/dist/components/af-divider.js +1 -1
  204. package/dist/components/af-feature-accordion.js +4 -4
  205. package/dist/components/af-feature-accordion.js.map +1 -1
  206. package/dist/components/af-feature-card.js +1 -1
  207. package/dist/components/af-feature-grid.js +2 -2
  208. package/dist/components/af-fieldset.js +1 -1
  209. package/dist/components/af-footer-column.js +1 -1
  210. package/dist/components/af-footer-link.js +1 -1
  211. package/dist/components/af-footer.js +1 -1
  212. package/dist/components/af-grid-callout.js +2 -2
  213. package/dist/components/af-grid.js +1 -1
  214. package/dist/components/af-heading.js +1 -1
  215. package/dist/components/af-hero.js +1 -1
  216. package/dist/components/af-icon-box.js +1 -1
  217. package/dist/components/af-icon-button.js +1 -1
  218. package/dist/components/af-icon-text.js +4 -4
  219. package/dist/components/af-icon.js +1 -1
  220. package/dist/components/af-illustrated-card.js +1 -1
  221. package/dist/components/af-image.js +1 -1
  222. package/dist/components/af-in-page-banner.js +2 -2
  223. package/dist/components/af-inline.js +1 -1
  224. package/dist/components/af-input.js +1 -1
  225. package/dist/components/af-logo-well.js +1 -1
  226. package/dist/components/af-logo.js +1 -1
  227. package/dist/components/af-nav-accordion-item.js +2 -2
  228. package/dist/components/af-nav-accordion-item.js.map +1 -1
  229. package/dist/components/af-nav-accordion.js +1 -1
  230. package/dist/components/af-nav-card.js +1 -1
  231. package/dist/components/af-nav-item.js +1 -1
  232. package/dist/components/af-nav-menu-nest.js +1 -1
  233. package/dist/components/af-nav-menu.js +1 -1
  234. package/dist/components/af-navbar.js +1 -1
  235. package/dist/components/af-number-badge.js +1 -1
  236. package/dist/components/af-numbered-stepper-item.js +3 -3
  237. package/dist/components/af-numbered-stepper.js +1 -1
  238. package/dist/components/af-paperclip-decoration.js +1 -1
  239. package/dist/components/af-progress-line.js +1 -1
  240. package/dist/components/af-radio.js +1 -1
  241. package/dist/components/af-section.js +1 -1
  242. package/dist/components/af-show.js +1 -1
  243. package/dist/components/af-social-link.js +1 -1
  244. package/dist/components/af-spacer.js +1 -1
  245. package/dist/components/af-split-section.js +2 -2
  246. package/dist/components/af-stack.js +1 -1
  247. package/dist/components/af-stat.js +4 -4
  248. package/dist/components/af-stat.js.map +1 -1
  249. package/dist/components/af-stats-row.js +1 -1
  250. package/dist/components/af-stepper-step.js +1 -1
  251. package/dist/components/af-stepper.js +1 -1
  252. package/dist/components/af-switch.js +1 -1
  253. package/dist/components/af-tab-bar.js +1 -1
  254. package/dist/components/af-tab.js +1 -1
  255. package/dist/components/af-tag.js +1 -1
  256. package/dist/components/af-testimonial-carousel.js +2 -2
  257. package/dist/components/af-testimonial-stat.js +4 -4
  258. package/dist/components/af-testimonial-stat.js.map +1 -1
  259. package/dist/components/af-testimonial.js +4 -4
  260. package/dist/components/af-text-image-nest.js +1 -1
  261. package/dist/components/af-text-image.js +2 -2
  262. package/dist/components/af-text.js +1 -1
  263. package/dist/components/af-textarea.js +1 -1
  264. package/dist/components/af-theme-override.js +1 -1
  265. package/dist/components/af-typography-lockup.js +1 -1
  266. package/dist/components/af-video-container.js +3 -3
  267. package/dist/components/af-visually-hidden.js +1 -1
  268. package/dist/components/index.js +25 -25
  269. package/dist/components/{p-Dd3nOGt_.js → p--aWqZ9H9.js} +3 -3
  270. package/dist/components/{p-Dd3nOGt_.js.map → p--aWqZ9H9.js.map} +1 -1
  271. package/dist/components/{p-DqJRvNOl.js → p-1ol-T8nk.js} +4 -4
  272. package/dist/components/{p-DqJRvNOl.js.map → p-1ol-T8nk.js.map} +1 -1
  273. package/dist/components/{p--gChEc0P.js → p-B-hgy9Qr.js} +4 -4
  274. package/dist/components/p-B-hgy9Qr.js.map +1 -0
  275. package/dist/components/{p-DyZaoX4Q.js → p-Bi6_eN-1.js} +3 -3
  276. package/dist/components/{p-DyZaoX4Q.js.map → p-Bi6_eN-1.js.map} +1 -1
  277. package/dist/components/{p-CYKk6Qhi.js → p-Bx-hxLP0.js} +3 -3
  278. package/dist/components/{p-CYKk6Qhi.js.map → p-Bx-hxLP0.js.map} +1 -1
  279. package/dist/components/{p-DbVc-b1e.js → p-BysQTjHh.js} +3 -3
  280. package/dist/components/{p-DbVc-b1e.js.map → p-BysQTjHh.js.map} +1 -1
  281. package/dist/components/{p-C4G6votC.js → p-C0enaaNi.js} +3 -3
  282. package/dist/components/{p-C4G6votC.js.map → p-C0enaaNi.js.map} +1 -1
  283. package/dist/components/{p-BROLmNeM.js → p-C7gWqhJQ.js} +3 -3
  284. package/dist/components/{p-BROLmNeM.js.map → p-C7gWqhJQ.js.map} +1 -1
  285. package/dist/components/{p-mbl86-w6.js → p-CDPPh9ES.js} +5 -5
  286. package/dist/components/{p-mbl86-w6.js.map → p-CDPPh9ES.js.map} +1 -1
  287. package/dist/components/{p-ClZAZSzR.js → p-CTDelwMf.js} +3 -3
  288. package/dist/components/{p-ClZAZSzR.js.map → p-CTDelwMf.js.map} +1 -1
  289. package/dist/components/{p-CX0pktY8.js → p-CaHyFRpU.js} +3 -3
  290. package/dist/components/{p-CX0pktY8.js.map → p-CaHyFRpU.js.map} +1 -1
  291. package/dist/components/{p-3Gzh4deR.js → p-CdR70Kv1.js} +5 -5
  292. package/dist/components/{p-3Gzh4deR.js.map → p-CdR70Kv1.js.map} +1 -1
  293. package/dist/components/{p-NtJ_O8-z.js → p-CeBCwjRf.js} +3 -3
  294. package/dist/components/{p-NtJ_O8-z.js.map → p-CeBCwjRf.js.map} +1 -1
  295. package/dist/components/{p-DOgb6SUj.js → p-CiY0Twna.js} +3 -3
  296. package/dist/components/p-CiY0Twna.js.map +1 -0
  297. package/dist/components/{p-CP8rLe_C.js → p-D44TKuX4.js} +3 -3
  298. package/dist/components/{p-CP8rLe_C.js.map → p-D44TKuX4.js.map} +1 -1
  299. package/dist/components/{p-Dx_UXI2a.js → p-D6WBvdoZ.js} +3 -3
  300. package/dist/components/{p-Dx_UXI2a.js.map → p-D6WBvdoZ.js.map} +1 -1
  301. package/dist/components/{p-CRnEuh5f.js → p-D7xVlaes.js} +7 -7
  302. package/dist/components/{p-CRnEuh5f.js.map → p-D7xVlaes.js.map} +1 -1
  303. package/dist/components/{p-BT13eL0Y.js → p-DBkfDqnN.js} +3 -3
  304. package/dist/components/{p-BT13eL0Y.js.map → p-DBkfDqnN.js.map} +1 -1
  305. package/dist/components/p-DGlAo2Hc.js +71 -0
  306. package/dist/components/p-DGlAo2Hc.js.map +1 -0
  307. package/dist/components/{p-CoL_hRAR.js → p-DWD7Oc5l.js} +3 -3
  308. package/dist/components/{p-CoL_hRAR.js.map → p-DWD7Oc5l.js.map} +1 -1
  309. package/dist/components/{p-QoDae21y.js → p-DYZT-0xm.js} +3 -3
  310. package/dist/components/{p-QoDae21y.js.map → p-DYZT-0xm.js.map} +1 -1
  311. package/dist/components/{p-BRDu9zN1.js → p-Dga7rIrc.js} +3 -3
  312. package/dist/components/{p-BRDu9zN1.js.map → p-Dga7rIrc.js.map} +1 -1
  313. package/dist/components/{p-O26uYJSV.js → p-DjjPGV3a.js} +4 -4
  314. package/dist/components/{p-O26uYJSV.js.map → p-DjjPGV3a.js.map} +1 -1
  315. package/dist/components/{p-B_OoX__z.js → p-DmlCoFGW.js} +3 -3
  316. package/dist/components/{p-B_OoX__z.js.map → p-DmlCoFGW.js.map} +1 -1
  317. package/dist/components/p-G-vNzZpq.js +62 -0
  318. package/dist/components/p-G-vNzZpq.js.map +1 -0
  319. package/dist/components/{p-BgXXQG75.js → p-G5cG9ahw.js} +3 -3
  320. package/dist/components/{p-BgXXQG75.js.map → p-G5cG9ahw.js.map} +1 -1
  321. package/dist/components/{p-kEqwmn80.js → p-OefAiC9E.js} +3 -3
  322. package/dist/components/{p-kEqwmn80.js.map → p-OefAiC9E.js.map} +1 -1
  323. package/dist/components/{p-DJC-C2BS.js → p-PKWusChD.js} +3 -3
  324. package/dist/components/{p-DJC-C2BS.js.map → p-PKWusChD.js.map} +1 -1
  325. package/dist/components/{p-D8DmhESZ.js → p-Xy0_sffa.js} +3 -3
  326. package/dist/components/{p-D8DmhESZ.js.map → p-Xy0_sffa.js.map} +1 -1
  327. package/dist/components/{p-nA3Uvhwb.js → p-gD0WsQqs.js} +4 -4
  328. package/dist/components/{p-nA3Uvhwb.js.map → p-gD0WsQqs.js.map} +1 -1
  329. package/dist/components/{p-LRPXnaSx.js → p-sxltTNnO.js} +3 -3
  330. package/dist/components/{p-LRPXnaSx.js.map → p-sxltTNnO.js.map} +1 -1
  331. package/dist/components/{p-BXmiPS9x.js → p-uvbCz67Q.js} +3 -3
  332. package/dist/components/{p-BXmiPS9x.js.map → p-uvbCz67Q.js.map} +1 -1
  333. package/dist/esm/af-accordion-item.entry.js +2 -2
  334. package/dist/esm/af-accordion-item.entry.js.map +1 -1
  335. package/dist/esm/af-accordion.entry.js +1 -1
  336. package/dist/esm/af-aspect-ratio.entry.js +1 -1
  337. package/dist/esm/af-button-group.entry.js +1 -1
  338. package/dist/esm/af-button.entry.js +2 -2
  339. package/dist/esm/af-button.entry.js.map +1 -1
  340. package/dist/esm/af-card.entry.js +11 -3
  341. package/dist/esm/af-card.entry.js.map +1 -1
  342. package/dist/esm/af-center.entry.js +1 -1
  343. package/dist/esm/af-checkbox.entry.js +1 -1
  344. package/dist/esm/af-client-carousel.entry.js +1 -1
  345. package/dist/esm/af-color-swatch.entry.js +1 -1
  346. package/dist/esm/af-contact-item.entry.js +1 -1
  347. package/dist/esm/af-container.entry.js +1 -1
  348. package/dist/esm/af-divider.entry.js +1 -1
  349. package/dist/esm/af-feature-accordion.entry.js +4 -4
  350. package/dist/esm/af-feature-accordion.entry.js.map +1 -1
  351. package/dist/esm/af-feature-card.entry.js +1 -1
  352. package/dist/esm/af-feature-grid.entry.js +1 -1
  353. package/dist/esm/af-fieldset.entry.js +1 -1
  354. package/dist/esm/af-footer-column.entry.js +1 -1
  355. package/dist/esm/af-footer-link.entry.js +1 -1
  356. package/dist/esm/af-footer.entry.js +1 -1
  357. package/dist/esm/af-grid-callout.entry.js +1 -1
  358. package/dist/esm/af-grid.entry.js +1 -1
  359. package/dist/esm/af-heading_5.entry.js +1 -1
  360. package/dist/esm/af-hero.entry.js +2 -2
  361. package/dist/esm/af-hero.entry.js.map +1 -1
  362. package/dist/esm/af-icon-box.entry.js +1 -1
  363. package/dist/esm/af-icon-button.entry.js +2 -2
  364. package/dist/esm/af-icon-button.entry.js.map +1 -1
  365. package/dist/esm/af-icon-text.entry.js +1 -1
  366. package/dist/esm/af-icon.entry.js +1 -1
  367. package/dist/esm/af-illustrated-card.entry.js +1 -1
  368. package/dist/esm/af-image.entry.js +1 -1
  369. package/dist/esm/af-in-page-banner.entry.js +1 -1
  370. package/dist/esm/af-inline.entry.js +1 -1
  371. package/dist/esm/af-input.entry.js +1 -1
  372. package/dist/esm/af-logo-well.entry.js +1 -1
  373. package/dist/esm/af-nav-accordion-item.entry.js +2 -2
  374. package/dist/esm/af-nav-accordion-item.entry.js.map +1 -1
  375. package/dist/esm/af-nav-accordion.entry.js +1 -1
  376. package/dist/esm/af-nav-card.entry.js +1 -1
  377. package/dist/esm/af-nav-menu-nest.entry.js +1 -1
  378. package/dist/esm/af-nav-menu.entry.js +1 -1
  379. package/dist/esm/af-number-badge.entry.js +1 -1
  380. package/dist/esm/af-numbered-stepper-item.entry.js +1 -1
  381. package/dist/esm/af-numbered-stepper.entry.js +1 -1
  382. package/dist/esm/af-paperclip-decoration.entry.js +1 -1
  383. package/dist/esm/af-progress-line.entry.js +1 -1
  384. package/dist/esm/af-radio.entry.js +1 -1
  385. package/dist/esm/af-section.entry.js +1 -1
  386. package/dist/esm/af-show.entry.js +1 -1
  387. package/dist/esm/af-social-link.entry.js +1 -1
  388. package/dist/esm/af-spacer.entry.js +1 -1
  389. package/dist/esm/af-split-section.entry.js +1 -1
  390. package/dist/esm/af-stack.entry.js +1 -1
  391. package/dist/esm/af-stat.entry.js +2 -2
  392. package/dist/esm/af-stat.entry.js.map +1 -1
  393. package/dist/esm/af-stats-row.entry.js +1 -1
  394. package/dist/esm/af-stepper-step.entry.js +1 -1
  395. package/dist/esm/af-stepper.entry.js +1 -1
  396. package/dist/esm/af-switch.entry.js +1 -1
  397. package/dist/esm/af-tab-bar.entry.js +1 -1
  398. package/dist/esm/af-tab.entry.js +1 -1
  399. package/dist/esm/af-tag.entry.js +1 -1
  400. package/dist/esm/af-testimonial-carousel.entry.js +1 -1
  401. package/dist/esm/af-testimonial-stat.entry.js +2 -2
  402. package/dist/esm/af-testimonial-stat.entry.js.map +1 -1
  403. package/dist/esm/af-testimonial.entry.js +1 -1
  404. package/dist/esm/af-text-image-nest.entry.js +1 -1
  405. package/dist/esm/af-text-image.entry.js +1 -1
  406. package/dist/esm/af-textarea.entry.js +1 -1
  407. package/dist/esm/af-theme-override.entry.js +1 -1
  408. package/dist/esm/af-typography-lockup.entry.js +1 -1
  409. package/dist/esm/af-video-container.entry.js +1 -1
  410. package/dist/esm/af-visually-hidden.entry.js +1 -1
  411. package/dist/esm/affinda.js +3 -3
  412. package/dist/esm/{index-MwnBSqEY.js → index-C4WBekD2.js} +3 -3
  413. package/dist/esm/index-C4WBekD2.js.map +1 -0
  414. package/dist/esm/index.js +1 -1
  415. package/dist/esm/loader.js +3 -3
  416. package/dist/types/components/af-card/af-card.d.ts +8 -0
  417. package/dist/types/components.d.ts +10 -0
  418. package/package.json +3 -3
  419. package/dist/affinda/p-068ac2fb.entry.js +0 -2
  420. package/dist/affinda/p-1b4b0c88.entry.js +0 -2
  421. package/dist/affinda/p-2237e652.entry.js +0 -2
  422. package/dist/affinda/p-2526604b.entry.js +0 -2
  423. package/dist/affinda/p-2526604b.entry.js.map +0 -1
  424. package/dist/affinda/p-4eeeb8a1.entry.js +0 -2
  425. package/dist/affinda/p-7d3cdda1.entry.js +0 -2
  426. package/dist/affinda/p-83bb96cc.entry.js +0 -2
  427. package/dist/affinda/p-90ef7baa.entry.js +0 -2
  428. package/dist/affinda/p-9aed7039.entry.js +0 -2
  429. package/dist/affinda/p-MwnBSqEY.js +0 -3
  430. package/dist/affinda/p-MwnBSqEY.js.map +0 -1
  431. package/dist/affinda/p-b39eea31.entry.js +0 -2
  432. package/dist/affinda/p-b39eea31.entry.js.map +0 -1
  433. package/dist/cjs/index-BzZA0USq.js.map +0 -1
  434. package/dist/components/p--gChEc0P.js.map +0 -1
  435. package/dist/components/p-BW-FxZwa.js +0 -71
  436. package/dist/components/p-BW-FxZwa.js.map +0 -1
  437. package/dist/components/p-CJxqw006.js +0 -53
  438. package/dist/components/p-CJxqw006.js.map +0 -1
  439. package/dist/components/p-DOgb6SUj.js.map +0 -1
  440. package/dist/esm/index-MwnBSqEY.js.map +0 -1
  441. /package/dist/affinda/{p-bbfc9df6.entry.js.map → p-05072f90.entry.js.map} +0 -0
  442. /package/dist/affinda/{p-3ed408f6.entry.js.map → p-14bd7903.entry.js.map} +0 -0
  443. /package/dist/affinda/{p-9eba91fd.entry.js.map → p-1902ed20.entry.js.map} +0 -0
  444. /package/dist/affinda/{p-165c413d.entry.js.map → p-19dc4331.entry.js.map} +0 -0
  445. /package/dist/affinda/{p-ae430873.entry.js.map → p-255a8254.entry.js.map} +0 -0
  446. /package/dist/affinda/{p-4a9b192b.entry.js.map → p-2586fbb8.entry.js.map} +0 -0
  447. /package/dist/affinda/{p-631d141c.entry.js.map → p-26a6d9a7.entry.js.map} +0 -0
  448. /package/dist/affinda/{p-7867c2ff.entry.js.map → p-27469df6.entry.js.map} +0 -0
  449. /package/dist/affinda/{p-5c163c5b.entry.js.map → p-2a8441cb.entry.js.map} +0 -0
  450. /package/dist/affinda/{p-dabd389a.entry.js.map → p-3238f8e8.entry.js.map} +0 -0
  451. /package/dist/affinda/{p-b9ec0e75.entry.js.map → p-3c6790f8.entry.js.map} +0 -0
  452. /package/dist/affinda/{p-f19cb091.entry.js.map → p-3dd90f46.entry.js.map} +0 -0
  453. /package/dist/affinda/{p-9c1e9bd8.entry.js.map → p-42c4d7b1.entry.js.map} +0 -0
  454. /package/dist/affinda/{p-6e181b2b.entry.js.map → p-432ee0e3.entry.js.map} +0 -0
  455. /package/dist/affinda/{p-1c96856a.entry.js.map → p-43a0286a.entry.js.map} +0 -0
  456. /package/dist/affinda/{p-e07e27f1.entry.js.map → p-44e976ee.entry.js.map} +0 -0
  457. /package/dist/affinda/{p-7111051c.entry.js.map → p-479a300e.entry.js.map} +0 -0
  458. /package/dist/affinda/{p-4b2c0698.entry.js.map → p-4ccc3147.entry.js.map} +0 -0
  459. /package/dist/affinda/{p-6c33fee6.entry.js.map → p-4f15b8f0.entry.js.map} +0 -0
  460. /package/dist/affinda/{p-d362651c.entry.js.map → p-587fd0fa.entry.js.map} +0 -0
  461. /package/dist/affinda/{p-862a2509.entry.js.map → p-67a27eaf.entry.js.map} +0 -0
  462. /package/dist/affinda/{p-44d960ca.entry.js.map → p-67e8c6f6.entry.js.map} +0 -0
  463. /package/dist/affinda/{p-41bbb218.entry.js.map → p-6986f604.entry.js.map} +0 -0
  464. /package/dist/affinda/{p-85cc55bb.entry.js.map → p-6b7fcb18.entry.js.map} +0 -0
  465. /package/dist/affinda/{p-4a355b69.entry.js.map → p-7013570d.entry.js.map} +0 -0
  466. /package/dist/affinda/{p-15f0bd34.entry.js.map → p-75443f08.entry.js.map} +0 -0
  467. /package/dist/affinda/{p-364ffa25.entry.js.map → p-7640c285.entry.js.map} +0 -0
  468. /package/dist/affinda/{p-827f3050.entry.js.map → p-77ec01ee.entry.js.map} +0 -0
  469. /package/dist/affinda/{p-256970e3.entry.js.map → p-7c9683d8.entry.js.map} +0 -0
  470. /package/dist/affinda/{p-0acadf6f.entry.js.map → p-7ce2b434.entry.js.map} +0 -0
  471. /package/dist/affinda/{p-dcc89b4c.entry.js.map → p-7eca844d.entry.js.map} +0 -0
  472. /package/dist/affinda/{p-5e5e7d75.entry.js.map → p-95b49b45.entry.js.map} +0 -0
  473. /package/dist/affinda/{p-365a75e2.entry.js.map → p-9610cd3c.entry.js.map} +0 -0
  474. /package/dist/affinda/{p-6756aa66.entry.js.map → p-9963bec0.entry.js.map} +0 -0
  475. /package/dist/affinda/{p-342b08e5.entry.js.map → p-9b115359.entry.js.map} +0 -0
  476. /package/dist/affinda/{p-4f59b554.entry.js.map → p-9e19a477.entry.js.map} +0 -0
  477. /package/dist/affinda/{p-a8d75eb1.entry.js.map → p-a7b51bb6.entry.js.map} +0 -0
  478. /package/dist/affinda/{p-9f3e7116.entry.js.map → p-ac45df4b.entry.js.map} +0 -0
  479. /package/dist/affinda/{p-32d62fbb.entry.js.map → p-adabec15.entry.js.map} +0 -0
  480. /package/dist/affinda/{p-bed7d9a1.entry.js.map → p-b65cf4c3.entry.js.map} +0 -0
  481. /package/dist/affinda/{p-95d4696a.entry.js.map → p-b82fc7f1.entry.js.map} +0 -0
  482. /package/dist/affinda/{p-6475796d.entry.js.map → p-b8ea57a9.entry.js.map} +0 -0
  483. /package/dist/affinda/{p-4058a1eb.entry.js.map → p-bac968a1.entry.js.map} +0 -0
  484. /package/dist/affinda/{p-76cb736d.entry.js.map → p-bc77706d.entry.js.map} +0 -0
  485. /package/dist/affinda/{p-d7d82986.entry.js.map → p-c4fd7d48.entry.js.map} +0 -0
  486. /package/dist/affinda/{p-6ea474a3.entry.js.map → p-ce77f08f.entry.js.map} +0 -0
  487. /package/dist/affinda/{p-35607741.entry.js.map → p-d06ae9cd.entry.js.map} +0 -0
  488. /package/dist/affinda/{p-86f6dfdc.entry.js.map → p-d34da6c0.entry.js.map} +0 -0
  489. /package/dist/affinda/{p-24e74c10.entry.js.map → p-d647ae06.entry.js.map} +0 -0
  490. /package/dist/affinda/{p-436673bb.entry.js.map → p-d6b8c3b4.entry.js.map} +0 -0
  491. /package/dist/affinda/{p-65dd559a.entry.js.map → p-d9913985.entry.js.map} +0 -0
  492. /package/dist/affinda/{p-9480f00d.entry.js.map → p-dd0cd57e.entry.js.map} +0 -0
  493. /package/dist/affinda/{p-a25d3257.entry.js.map → p-dd4c8640.entry.js.map} +0 -0
  494. /package/dist/affinda/{p-43f40921.entry.js.map → p-df6c7170.entry.js.map} +0 -0
  495. /package/dist/affinda/{p-eeda78ea.entry.js.map → p-e90a3892.entry.js.map} +0 -0
  496. /package/dist/affinda/{p-a1e80460.entry.js.map → p-ec042bc4.entry.js.map} +0 -0
  497. /package/dist/affinda/{p-a02d6192.entry.js.map → p-f7fc76d2.entry.js.map} +0 -0
  498. /package/dist/affinda/{p-9ce0adc2.entry.js.map → p-f9ecbde8.entry.js.map} +0 -0
  499. /package/dist/affinda/{p-61a6b43d.entry.js.map → p-fff252df.entry.js.map} +0 -0
@@ -20,7 +20,7 @@ var afTabBar_entry = require('./af-tab-bar.cjs.entry.js');
20
20
  var afFeatureCard_entry = require('./af-feature-card.cjs.entry.js');
21
21
  var afIllustratedCard_entry = require('./af-illustrated-card.cjs.entry.js');
22
22
  var afHero_entry = require('./af-hero.cjs.entry.js');
23
- require('./index-BzZA0USq.js');
23
+ require('./index-3161MbMQ.js');
24
24
 
25
25
 
26
26
 
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BzZA0USq.js');
3
+ var index = require('./index-3161MbMQ.js');
4
4
 
5
5
  const defineCustomElements = async (win, options) => {
6
6
  if (typeof window === 'undefined') return undefined;
7
7
  await index.globalScripts();
8
- return index.bootstrapLazy([["af-hero.cjs",[[262,"af-hero",{"variant":[513],"heading":[1],"description":[1],"floatNavbar":[516,"float-navbar"],"topPad":[1,"top-pad"],"maxWidth":[2,"max-width"],"maskImage":[4,"mask-image"]}]]],["af-icon-text.cjs",[[262,"af-icon-text",{"icon":[1],"headingSize":[2,"heading-size"],"orientation":[1],"iconSize":[1,"icon-size"]}]]],["af-testimonial.cjs",[[262,"af-testimonial",{"backgroundImage":[1,"background-image"],"logoImage":[1,"logo-image"],"quote":[1],"attribution":[1],"readMoreLink":[1,"read-more-link"],"showNavigation":[1028,"show-navigation"],"hasPrev":[1028,"has-prev"],"hasNext":[1028,"has-next"]}]]],["af-feature-card.cjs",[[262,"af-feature-card",{"theme":[1],"layout":[1],"cardSize":[513,"card-size"],"headingSize":[2,"heading-size"],"imageSrc":[1,"image-src"],"imageAlt":[1,"image-alt"]}]]],["af-illustrated-card.cjs",[[262,"af-illustrated-card",{"theme":[1],"breakpoint":[1],"cardSize":[1,"card-size"]}]]],["af-numbered-stepper-item.cjs",[[262,"af-numbered-stepper-item",{"index":[514]}]]],["af-stat.cjs",[[257,"af-stat",{"value":[1],"label":[1]}]]],["af-testimonial-stat.cjs",[[258,"af-testimonial-stat",{"value":[1],"description":[1],"accentBorder":[4,"accent-border"]}]]],["af-video-container.cjs",[[262,"af-video-container",{"videoThumbnailUrl":[1,"video-thumbnail-url"],"videoAlt":[1,"video-alt"],"videoUrl":[1,"video-url"]}]]],["af-feature-grid.cjs",[[262,"af-feature-grid",{"columns":[2],"mobileLayout":[1,"mobile-layout"],"scrollProgress":[32]},null,{"mobileLayout":["onMobileLayoutChange"]}]]],["af-grid-callout.cjs",[[262,"af-grid-callout",{"imageSrc":[1,"image-src"],"imageAlt":[1,"image-alt"],"imagePosition":[1,"image-position"],"columns":[2],"headingSize":[2,"heading-size"]}]]],["af-in-page-banner.cjs",[[262,"af-in-page-banner",{"theme":[1],"heading":[1],"description":[1],"primaryButtonText":[1,"primary-button-text"],"primaryButtonUrl":[1,"primary-button-url"],"secondaryButtonText":[1,"secondary-button-text"],"secondaryButtonUrl":[1,"secondary-button-url"],"illustrationUrl":[1,"illustration-url"],"showWaveDecoration":[4,"show-wave-decoration"]}]]],["af-split-section.cjs",[[262,"af-split-section",{"topTheme":[1,"top-theme"],"bottomTheme":[1,"bottom-theme"],"padding":[1],"container":[4]}]]],["af-testimonial-carousel.cjs",[[262,"af-testimonial-carousel",{"currentIndex":[32],"isAnimating":[32],"testimonialCount":[32]},[[0,"afNavPrev","handleNavPrev"],[0,"afNavNext","handleNavNext"]]]]],["af-text-image.cjs",[[262,"af-text-image",{"imagePosition":[1,"image-position"],"imageProportion":[1,"image-proportion"],"src":[1],"alt":[1],"showSecondLockup":[4,"show-second-lockup"]}]]],["af-accordion.cjs",[[262,"af-accordion",{"mode":[1],"value":[1025],"defaultValue":[1,"default-value"],"internalValue":[32]},[[0,"af-accordion-toggle","handleItemToggle"]],{"value":["handleValueChange"]}]]],["af-accordion-item.cjs",[[257,"af-accordion-item",{"itemId":[513,"item-id"],"open":[1540],"disabled":[516],"contentHeight":[32],"toggle":[64]},null,{"open":["handleOpenChange"]}]]],["af-button-group.cjs",[[257,"af-button-group",{"direction":[1],"gap":[1]}]]],["af-center.cjs",[[257,"af-center",{"axis":[1],"inline":[4],"minHeight":[1,"min-height"]}]]],["af-checkbox.cjs",[[257,"af-checkbox",{"checked":[1540],"indeterminate":[516],"disabled":[516],"name":[1],"value":[1]}]]],["af-client-carousel.cjs",[[262,"af-client-carousel",{"theme":[1],"rows":[2],"mode":[1]}]]],["af-color-swatch.cjs",[[257,"af-color-swatch",{"color":[1],"name":[1],"size":[1]}]]],["af-contact-item.cjs",[[262,"af-contact-item",{"label":[1],"value":[1]}]]],["af-divider.cjs",[[257,"af-divider",{"orientation":[1],"spacing":[1]}]]],["af-feature-accordion.cjs",[[262,"af-feature-accordion",{"heading":[1],"items":[1],"cycleInterval":[2,"cycle-interval"],"autoCycle":[4,"auto-cycle"],"expandedIndex":[32],"timerProgress":[32]},null,{"autoCycle":["handleAutoCycleChange"]}]]],["af-fieldset.cjs",[[257,"af-fieldset",{"legend":[1],"orientation":[1],"disabled":[516]}]]],["af-footer.cjs",[[262,"af-footer",{"copyrightText":[1,"copyright-text"],"statusText":[1,"status-text"],"statusUrl":[1,"status-url"],"systemsOperational":[4,"systems-operational"],"showStatus":[4,"show-status"]}]]],["af-footer-column.cjs",[[262,"af-footer-column",{"heading":[1]}]]],["af-footer-link.cjs",[[262,"af-footer-link",{"href":[1],"external":[4]}]]],["af-grid.cjs",[[257,"af-grid",{"columns":[2],"columnsLg":[2,"columns-lg"],"columnsMd":[2,"columns-md"],"columnsSm":[2,"columns-sm"],"gap":[1],"align":[1]}]]],["af-inline.cjs",[[257,"af-inline",{"gap":[1],"align":[1],"justify":[1],"wrap":[4]}]]],["af-input.cjs",[[257,"af-input",{"label":[1],"description":[1],"placeholder":[1],"value":[1025],"type":[1],"name":[1],"disabled":[516],"required":[4],"readonly":[4],"error":[1],"showInfoIcon":[4,"show-info-icon"],"showSearchIcon":[4,"show-search-icon"],"clearable":[4],"autocomplete":[1],"maxlength":[2],"minlength":[2],"pattern":[1],"isFocused":[32],"isHovered":[32]}]]],["af-logo-well.cjs",[[257,"af-logo-well"]]],["af-nav-accordion.cjs",[[262,"af-nav-accordion",{"mode":[1],"breakpoint":[513],"value":[1025],"internalValue":[32]},[[0,"af-nav-accordion-item-toggle","handleItemToggle"]]]]],["af-nav-accordion-item.cjs",[[262,"af-nav-accordion-item",{"itemId":[513,"item-id"],"label":[1],"open":[1540],"disabled":[516],"href":[1],"breakpoint":[513],"contentHeight":[32],"hasTriggerSlot":[32],"hasContent":[32],"toggle":[64]},null,{"open":["handleOpenChange"]}]]],["af-nav-card.cjs",[[258,"af-nav-card",{"heading":[1],"href":[1],"imageSrc":[1,"image-src"],"imageAlt":[1,"image-alt"],"isHovered":[32]}]]],["af-nav-menu.cjs",[[262,"af-nav-menu",{"heading":[1],"breakpoint":[1],"showBorder":[4,"show-border"],"cardStyle":[516,"card-style"]}]]],["af-nav-menu-nest.cjs",[[262,"af-nav-menu-nest",{"type":[1],"breakpoint":[1],"showSidebarBorder":[516,"show-sidebar-border"]}]]],["af-numbered-stepper.cjs",[[262,"af-numbered-stepper",{"orientation":[1]}]]],["af-paperclip-decoration.cjs",[[257,"af-paperclip-decoration",{"width":[1],"height":[1],"opacity":[2],"fill":[1]}]]],["af-radio.cjs",[[257,"af-radio",{"checked":[1540],"disabled":[516],"name":[513],"value":[1]}]]],["af-show.cjs",[[257,"af-show",{"above":[1],"below":[1]}]]],["af-social-link.cjs",[[262,"af-social-link",{"href":[1],"label":[1],"icon":[1]}]]],["af-spacer.cjs",[[257,"af-spacer",{"size":[1],"flex":[4],"axis":[1]}]]],["af-stack.cjs",[[257,"af-stack",{"direction":[1],"gap":[1],"align":[1],"justify":[1],"wrap":[4]}]]],["af-stats-row.cjs",[[262,"af-stats-row"]]],["af-stepper.cjs",[[262,"af-stepper",{"orientation":[1]}]]],["af-stepper-step.cjs",[[262,"af-stepper-step",{"index":[514]}]]],["af-switch.cjs",[[257,"af-switch",{"active":[1540],"disabled":[516],"name":[1],"value":[1]}]]],["af-tab.cjs",[[257,"af-tab",{"label":[1],"active":[516],"disabled":[516],"shape":[513],"displayIcon":[4,"display-icon"],"displayNumber":[4,"display-number"],"value":[1]}]]],["af-tab-bar.cjs",[[257,"af-tab-bar",{"shape":[513],"breakpoint":[513]},[[0,"keydown","handleKeyDown"]]]]],["af-tag.cjs",[[257,"af-tag",{"size":[1],"variant":[1],"href":[1]}]]],["af-text-image-nest.cjs",[[262,"af-text-image-nest",{"layout":[1]}]]],["af-textarea.cjs",[[257,"af-textarea",{"label":[1],"description":[1],"placeholder":[1],"value":[1025],"name":[1],"disabled":[516],"required":[4],"readonly":[4],"error":[1],"showInfoIcon":[4,"show-info-icon"],"rows":[2],"maxlength":[2],"minlength":[2],"resize":[1],"isFocused":[32],"isHovered":[32]}]]],["af-theme-override.cjs",[[262,"af-theme-override",{"theme":[1]}]]],["af-visually-hidden.cjs",[[257,"af-visually-hidden",{"focusable":[4]}]]],["af-icon-box.cjs",[[258,"af-icon-box",{"icon":[1],"size":[1]}]]],["af-section.cjs",[[262,"af-section",{"padding":[1],"theme":[1],"container":[4]}]]],["af-aspect-ratio.cjs",[[257,"af-aspect-ratio",{"ratio":[1]}]]],["af-icon-button.cjs",[[257,"af-icon-button",{"variant":[513],"size":[1],"disabled":[4],"href":[1],"type":[1],"ariaLabel":[1,"aria-label"]}]]],["af-image.cjs",[[258,"af-image",{"src":[1],"alt":[1],"shape":[1]}]]],["af-number-badge.cjs",[[257,"af-number-badge",{"number":[2],"variant":[1],"size":[2]}]]],["af-button.cjs",[[257,"af-button",{"variant":[513],"size":[1],"disabled":[4],"type":[1],"href":[1],"hasIconLeft":[32],"hasIconRight":[32]}]]],["af-card.cjs",[[262,"af-card",{"theme":[1],"stretch":[516]}]]],["af-progress-line.cjs",[[258,"af-progress-line",{"progress":[2],"orientation":[1]}]]],["af-container.cjs",[[257,"af-container",{"maxWidth":[1,"max-width"]}]]],["af-icon.cjs",[[257,"af-icon",{"name":[1],"size":[2],"label":[1]}]]],["af-heading_5.cjs",[[262,"af-navbar",{"showDefaultLogo":[4,"show-default-logo"],"theme":[1],"forceMobile":[516,"force-mobile"],"mobileMenuOpen":[32],"activeDropdown":[32]},[[0,"click","handleTriggerClick"],[1,"mouseover","handleHover"],[1,"mouseleave","handleHostLeave"],[1,"mouseenter","handleHostEnter"],[4,"click","handleDocumentClick"],[4,"keydown","handleKeyDown"]]],[262,"af-nav-item",{"hierarchy":[1],"variant":[1],"breakpoint":[513],"href":[1],"active":[4]}],[257,"af-logo"],[257,"af-heading",{"level":[1],"align":[1]}],[257,"af-text",{"variant":[1],"align":[1],"as":[1]}]]],["af-typography-lockup.cjs",[[257,"af-typography-lockup",{"headingSize":[8,"heading-size"],"breakpoint":[1],"textAlignment":[1,"text-alignment"],"headingAlignment":[1,"heading-alignment"],"descriptionAlignment":[1,"description-alignment"],"buttonLayout":[1,"button-layout"],"buttonsAlignment":[1,"buttons-alignment"],"maxWidth":[2,"max-width"],"headingColor":[1,"heading-color"],"descriptionColor":[1,"description-color"],"hasDescription":[32],"hasButtons":[32]}]]]], options);
8
+ return index.bootstrapLazy([["af-hero.cjs",[[262,"af-hero",{"variant":[513],"heading":[1],"description":[1],"floatNavbar":[516,"float-navbar"],"topPad":[1,"top-pad"],"maxWidth":[2,"max-width"],"maskImage":[4,"mask-image"]}]]],["af-icon-text.cjs",[[262,"af-icon-text",{"icon":[1],"headingSize":[2,"heading-size"],"orientation":[1],"iconSize":[1,"icon-size"]}]]],["af-testimonial.cjs",[[262,"af-testimonial",{"backgroundImage":[1,"background-image"],"logoImage":[1,"logo-image"],"quote":[1],"attribution":[1],"readMoreLink":[1,"read-more-link"],"showNavigation":[1028,"show-navigation"],"hasPrev":[1028,"has-prev"],"hasNext":[1028,"has-next"]}]]],["af-feature-card.cjs",[[262,"af-feature-card",{"theme":[1],"layout":[1],"cardSize":[513,"card-size"],"headingSize":[2,"heading-size"],"imageSrc":[1,"image-src"],"imageAlt":[1,"image-alt"]}]]],["af-illustrated-card.cjs",[[262,"af-illustrated-card",{"theme":[1],"breakpoint":[1],"cardSize":[1,"card-size"]}]]],["af-numbered-stepper-item.cjs",[[262,"af-numbered-stepper-item",{"index":[514]}]]],["af-stat.cjs",[[257,"af-stat",{"value":[1],"label":[1]}]]],["af-testimonial-stat.cjs",[[258,"af-testimonial-stat",{"value":[1],"description":[1],"accentBorder":[4,"accent-border"]}]]],["af-video-container.cjs",[[262,"af-video-container",{"videoThumbnailUrl":[1,"video-thumbnail-url"],"videoAlt":[1,"video-alt"],"videoUrl":[1,"video-url"]}]]],["af-feature-grid.cjs",[[262,"af-feature-grid",{"columns":[2],"mobileLayout":[1,"mobile-layout"],"scrollProgress":[32]},null,{"mobileLayout":["onMobileLayoutChange"]}]]],["af-grid-callout.cjs",[[262,"af-grid-callout",{"imageSrc":[1,"image-src"],"imageAlt":[1,"image-alt"],"imagePosition":[1,"image-position"],"columns":[2],"headingSize":[2,"heading-size"]}]]],["af-in-page-banner.cjs",[[262,"af-in-page-banner",{"theme":[1],"heading":[1],"description":[1],"primaryButtonText":[1,"primary-button-text"],"primaryButtonUrl":[1,"primary-button-url"],"secondaryButtonText":[1,"secondary-button-text"],"secondaryButtonUrl":[1,"secondary-button-url"],"illustrationUrl":[1,"illustration-url"],"showWaveDecoration":[4,"show-wave-decoration"]}]]],["af-split-section.cjs",[[262,"af-split-section",{"topTheme":[1,"top-theme"],"bottomTheme":[1,"bottom-theme"],"padding":[1],"container":[4]}]]],["af-testimonial-carousel.cjs",[[262,"af-testimonial-carousel",{"currentIndex":[32],"isAnimating":[32],"testimonialCount":[32]},[[0,"afNavPrev","handleNavPrev"],[0,"afNavNext","handleNavNext"]]]]],["af-text-image.cjs",[[262,"af-text-image",{"imagePosition":[1,"image-position"],"imageProportion":[1,"image-proportion"],"src":[1],"alt":[1],"showSecondLockup":[4,"show-second-lockup"]}]]],["af-accordion.cjs",[[262,"af-accordion",{"mode":[1],"value":[1025],"defaultValue":[1,"default-value"],"internalValue":[32]},[[0,"af-accordion-toggle","handleItemToggle"]],{"value":["handleValueChange"]}]]],["af-accordion-item.cjs",[[257,"af-accordion-item",{"itemId":[513,"item-id"],"open":[1540],"disabled":[516],"contentHeight":[32],"toggle":[64]},null,{"open":["handleOpenChange"]}]]],["af-button-group.cjs",[[257,"af-button-group",{"direction":[1],"gap":[1]}]]],["af-center.cjs",[[257,"af-center",{"axis":[1],"inline":[4],"minHeight":[1,"min-height"]}]]],["af-checkbox.cjs",[[257,"af-checkbox",{"checked":[1540],"indeterminate":[516],"disabled":[516],"name":[1],"value":[1]}]]],["af-client-carousel.cjs",[[262,"af-client-carousel",{"theme":[1],"rows":[2],"mode":[1]}]]],["af-color-swatch.cjs",[[257,"af-color-swatch",{"color":[1],"name":[1],"size":[1]}]]],["af-contact-item.cjs",[[262,"af-contact-item",{"label":[1],"value":[1]}]]],["af-divider.cjs",[[257,"af-divider",{"orientation":[1],"spacing":[1]}]]],["af-feature-accordion.cjs",[[262,"af-feature-accordion",{"heading":[1],"items":[1],"cycleInterval":[2,"cycle-interval"],"autoCycle":[4,"auto-cycle"],"expandedIndex":[32],"timerProgress":[32]},null,{"autoCycle":["handleAutoCycleChange"]}]]],["af-fieldset.cjs",[[257,"af-fieldset",{"legend":[1],"orientation":[1],"disabled":[516]}]]],["af-footer.cjs",[[262,"af-footer",{"copyrightText":[1,"copyright-text"],"statusText":[1,"status-text"],"statusUrl":[1,"status-url"],"systemsOperational":[4,"systems-operational"],"showStatus":[4,"show-status"]}]]],["af-footer-column.cjs",[[262,"af-footer-column",{"heading":[1]}]]],["af-footer-link.cjs",[[262,"af-footer-link",{"href":[1],"external":[4]}]]],["af-grid.cjs",[[257,"af-grid",{"columns":[2],"columnsLg":[2,"columns-lg"],"columnsMd":[2,"columns-md"],"columnsSm":[2,"columns-sm"],"gap":[1],"align":[1]}]]],["af-inline.cjs",[[257,"af-inline",{"gap":[1],"align":[1],"justify":[1],"wrap":[4]}]]],["af-input.cjs",[[257,"af-input",{"label":[1],"description":[1],"placeholder":[1],"value":[1025],"type":[1],"name":[1],"disabled":[516],"required":[4],"readonly":[4],"error":[1],"showInfoIcon":[4,"show-info-icon"],"showSearchIcon":[4,"show-search-icon"],"clearable":[4],"autocomplete":[1],"maxlength":[2],"minlength":[2],"pattern":[1],"isFocused":[32],"isHovered":[32]}]]],["af-logo-well.cjs",[[257,"af-logo-well"]]],["af-nav-accordion.cjs",[[262,"af-nav-accordion",{"mode":[1],"breakpoint":[513],"value":[1025],"internalValue":[32]},[[0,"af-nav-accordion-item-toggle","handleItemToggle"]]]]],["af-nav-accordion-item.cjs",[[262,"af-nav-accordion-item",{"itemId":[513,"item-id"],"label":[1],"open":[1540],"disabled":[516],"href":[1],"breakpoint":[513],"contentHeight":[32],"hasTriggerSlot":[32],"hasContent":[32],"toggle":[64]},null,{"open":["handleOpenChange"]}]]],["af-nav-card.cjs",[[258,"af-nav-card",{"heading":[1],"href":[1],"imageSrc":[1,"image-src"],"imageAlt":[1,"image-alt"],"isHovered":[32]}]]],["af-nav-menu.cjs",[[262,"af-nav-menu",{"heading":[1],"breakpoint":[1],"showBorder":[4,"show-border"],"cardStyle":[516,"card-style"]}]]],["af-nav-menu-nest.cjs",[[262,"af-nav-menu-nest",{"type":[1],"breakpoint":[1],"showSidebarBorder":[516,"show-sidebar-border"]}]]],["af-numbered-stepper.cjs",[[262,"af-numbered-stepper",{"orientation":[1]}]]],["af-paperclip-decoration.cjs",[[257,"af-paperclip-decoration",{"width":[1],"height":[1],"opacity":[2],"fill":[1]}]]],["af-radio.cjs",[[257,"af-radio",{"checked":[1540],"disabled":[516],"name":[513],"value":[1]}]]],["af-show.cjs",[[257,"af-show",{"above":[1],"below":[1]}]]],["af-social-link.cjs",[[262,"af-social-link",{"href":[1],"label":[1],"icon":[1]}]]],["af-spacer.cjs",[[257,"af-spacer",{"size":[1],"flex":[4],"axis":[1]}]]],["af-stack.cjs",[[257,"af-stack",{"direction":[1],"gap":[1],"align":[1],"justify":[1],"wrap":[4]}]]],["af-stats-row.cjs",[[262,"af-stats-row"]]],["af-stepper.cjs",[[262,"af-stepper",{"orientation":[1]}]]],["af-stepper-step.cjs",[[262,"af-stepper-step",{"index":[514]}]]],["af-switch.cjs",[[257,"af-switch",{"active":[1540],"disabled":[516],"name":[1],"value":[1]}]]],["af-tab.cjs",[[257,"af-tab",{"label":[1],"active":[516],"disabled":[516],"shape":[513],"displayIcon":[4,"display-icon"],"displayNumber":[4,"display-number"],"value":[1]}]]],["af-tab-bar.cjs",[[257,"af-tab-bar",{"shape":[513],"breakpoint":[513]},[[0,"keydown","handleKeyDown"]]]]],["af-tag.cjs",[[257,"af-tag",{"size":[1],"variant":[1],"href":[1]}]]],["af-text-image-nest.cjs",[[262,"af-text-image-nest",{"layout":[1]}]]],["af-textarea.cjs",[[257,"af-textarea",{"label":[1],"description":[1],"placeholder":[1],"value":[1025],"name":[1],"disabled":[516],"required":[4],"readonly":[4],"error":[1],"showInfoIcon":[4,"show-info-icon"],"rows":[2],"maxlength":[2],"minlength":[2],"resize":[1],"isFocused":[32],"isHovered":[32]}]]],["af-theme-override.cjs",[[262,"af-theme-override",{"theme":[1]}]]],["af-visually-hidden.cjs",[[257,"af-visually-hidden",{"focusable":[4]}]]],["af-icon-box.cjs",[[258,"af-icon-box",{"icon":[1],"size":[1]}]]],["af-section.cjs",[[262,"af-section",{"padding":[1],"theme":[1],"container":[4]}]]],["af-aspect-ratio.cjs",[[257,"af-aspect-ratio",{"ratio":[1]}]]],["af-icon-button.cjs",[[257,"af-icon-button",{"variant":[513],"size":[1],"disabled":[4],"href":[1],"type":[1],"ariaLabel":[1,"aria-label"]}]]],["af-image.cjs",[[258,"af-image",{"src":[1],"alt":[1],"shape":[1]}]]],["af-number-badge.cjs",[[257,"af-number-badge",{"number":[2],"variant":[1],"size":[2]}]]],["af-button.cjs",[[257,"af-button",{"variant":[513],"size":[1],"disabled":[4],"type":[1],"href":[1],"hasIconLeft":[32],"hasIconRight":[32]}]]],["af-card.cjs",[[262,"af-card",{"theme":[1],"stretch":[516],"interactive":[516]}]]],["af-progress-line.cjs",[[258,"af-progress-line",{"progress":[2],"orientation":[1]}]]],["af-container.cjs",[[257,"af-container",{"maxWidth":[1,"max-width"]}]]],["af-icon.cjs",[[257,"af-icon",{"name":[1],"size":[2],"label":[1]}]]],["af-heading_5.cjs",[[262,"af-navbar",{"showDefaultLogo":[4,"show-default-logo"],"theme":[1],"forceMobile":[516,"force-mobile"],"mobileMenuOpen":[32],"activeDropdown":[32]},[[0,"click","handleTriggerClick"],[1,"mouseover","handleHover"],[1,"mouseleave","handleHostLeave"],[1,"mouseenter","handleHostEnter"],[4,"click","handleDocumentClick"],[4,"keydown","handleKeyDown"]]],[262,"af-nav-item",{"hierarchy":[1],"variant":[1],"breakpoint":[513],"href":[1],"active":[4]}],[257,"af-logo"],[257,"af-heading",{"level":[1],"align":[1]}],[257,"af-text",{"variant":[1],"align":[1],"as":[1]}]]],["af-typography-lockup.cjs",[[257,"af-typography-lockup",{"headingSize":[8,"heading-size"],"breakpoint":[1],"textAlignment":[1,"text-alignment"],"headingAlignment":[1,"heading-alignment"],"descriptionAlignment":[1,"description-alignment"],"buttonLayout":[1,"button-layout"],"buttonsAlignment":[1,"buttons-alignment"],"maxWidth":[2,"max-width"],"headingColor":[1,"heading-color"],"descriptionColor":[1,"description-color"],"hasDescription":[32],"hasButtons":[32]}]]]], options);
9
9
  };
10
10
 
11
11
  exports.setNonce = index.setNonce;
@@ -21,7 +21,7 @@
21
21
  font: inherit;
22
22
  text-align: left;
23
23
  color: var(--af-typography-body-dark, #14343b);
24
- transition: background-color 0.2s ease;
24
+ transition: background-color var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));
25
25
  }
26
26
 
27
27
  .trigger:hover:not(:disabled) {
@@ -52,7 +52,7 @@
52
52
  height: 24px;
53
53
  flex-shrink: 0;
54
54
  color: var(--af-typography-body-dark, #14343b);
55
- transition: transform 0.3s ease;
55
+ transition: transform var(--motion-duration-slow, 300ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));
56
56
  }
57
57
 
58
58
  .chevron.is-open {
@@ -62,7 +62,15 @@
62
62
  /* Content wrapper - handles animation */
63
63
  .content-wrapper {
64
64
  overflow: hidden;
65
- transition: max-height 0.3s ease;
65
+ transition: max-height var(--motion-duration-slow, 300ms) var(--motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));
66
+ }
67
+
68
+ @media (prefers-reduced-motion: reduce) {
69
+ .trigger,
70
+ .chevron,
71
+ .content-wrapper {
72
+ transition-duration: 0.01ms;
73
+ }
66
74
  }
67
75
 
68
76
  .content {
@@ -37,12 +37,25 @@
37
37
  font-weight: 500;
38
38
  text-decoration: none;
39
39
  cursor: pointer;
40
- transition: all 0.2s ease;
40
+ /* Motion — tokens fall back to the prior 0.2s ease so nothing drifts. */
41
+ transition:
42
+ background-color var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
43
+ border-color var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
44
+ color var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
45
+ box-shadow var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
46
+ transform var(--motion-duration-fast, 150ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));
41
47
  border: 1px solid transparent;
42
48
  box-sizing: border-box;
43
49
  white-space: nowrap;
44
50
  /* Allow width to be controlled from outside via CSS custom property */
45
51
  width: var(--af-button-width, auto);
52
+ will-change: transform;
53
+ }
54
+
55
+ @media (prefers-reduced-motion: reduce) {
56
+ .button {
57
+ transition-duration: 0.01ms;
58
+ }
46
59
  }
47
60
 
48
61
  /* Size variants */
@@ -148,6 +161,7 @@
148
161
 
149
162
  .variant-primary:active:not(.disabled) {
150
163
  background: var(--af-button-primary-bg-hover, #95E6E2);
164
+ transform: translateY(1px);
151
165
  }
152
166
 
153
167
  /* ==========================================================================
@@ -181,6 +195,7 @@
181
195
 
182
196
  .variant-secondary:active:not(.disabled) {
183
197
  background: var(--af-button-secondary-bg-hover, rgba(128, 128, 128, 0.1));
198
+ transform: translateY(1px);
184
199
  }
185
200
 
186
201
  /* ==========================================================================
@@ -43,6 +43,36 @@
43
43
  box-sizing: border-box;
44
44
  }
45
45
 
46
+ /* ==========================================================================
47
+ Interactive Mode
48
+ Opt-in hover lift for cards that are the primary click target. Adds a
49
+ subtle translateY and shadow on hover; the card is raised, not tinted,
50
+ so the themed background stays intact.
51
+ ========================================================================== */
52
+
53
+ :host([interactive]) .card {
54
+ transition:
55
+ transform var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
56
+ box-shadow var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));
57
+ will-change: transform;
58
+ }
59
+
60
+ :host([interactive]:hover) .card,
61
+ :host([interactive]:focus-within) .card {
62
+ transform: translateY(-2px);
63
+ box-shadow: var(--shadow-lift, 0 12px 32px -8px rgba(20, 52, 59, 0.18), 0 4px 10px -4px rgba(20, 52, 59, 0.08));
64
+ }
65
+
66
+ @media (prefers-reduced-motion: reduce) {
67
+ :host([interactive]) .card {
68
+ transition-duration: 0.01ms;
69
+ }
70
+ :host([interactive]:hover) .card,
71
+ :host([interactive]:focus-within) .card {
72
+ transform: none;
73
+ }
74
+ }
75
+
46
76
  /* ==========================================================================
47
77
  Theme Variants
48
78
 
@@ -20,13 +20,21 @@ export class AfCard {
20
20
  * flexbox to distribute space between children.
21
21
  */
22
22
  this.stretch = false;
23
+ /**
24
+ * When true, the card reacts to pointer hover with a subtle lift
25
+ * (translateY + shadow). Use for cards that are themselves the primary
26
+ * click target (e.g. wrapped in an `<a>` or using `onClick`). Purely
27
+ * cosmetic — does not change focus or click behaviour. Honours
28
+ * `prefers-reduced-motion: reduce`.
29
+ */
30
+ this.interactive = false;
23
31
  }
24
32
  render() {
25
33
  const classes = {
26
34
  'card': true,
27
35
  [`theme-${this.theme}`]: true
28
36
  };
29
- return (h(Host, { key: '18e2c6aa8f9053223d51f13520dab6f94ac7a024' }, h("div", { key: 'e697dbc8f1c8d88cfe2e6f40039305513f875c3a', class: classes }, h("div", { key: '16e5f233fa1bc8e9f0a192ddc4905a252b51623c', class: "card__content" }, h("slot", { key: 'dbc326c5b175ec0633c1d6688b2cef7434664a0a' })))));
37
+ return (h(Host, { key: '04dac55d2132d2f5cd096fa63c454ba273e09042' }, h("div", { key: '8bccd727f37b90e4e0652dfe00929c8f4a454c92', class: classes }, h("div", { key: 'a797a78d16dc7a32a53113f4cd8a164baa8e919b', class: "card__content" }, h("slot", { key: '04f40c7c79299d7c6c27f3c7c44c64aab6f7ae03' })))));
30
38
  }
31
39
  static get is() { return "af-card"; }
32
40
  static get encapsulation() { return "scoped"; }
@@ -87,6 +95,26 @@ export class AfCard {
87
95
  "reflect": true,
88
96
  "attribute": "stretch",
89
97
  "defaultValue": "false"
98
+ },
99
+ "interactive": {
100
+ "type": "boolean",
101
+ "mutable": false,
102
+ "complexType": {
103
+ "original": "boolean",
104
+ "resolved": "boolean",
105
+ "references": {}
106
+ },
107
+ "required": false,
108
+ "optional": false,
109
+ "docs": {
110
+ "tags": [],
111
+ "text": "When true, the card reacts to pointer hover with a subtle lift\n(translateY + shadow). Use for cards that are themselves the primary\nclick target (e.g. wrapped in an `<a>` or using `onClick`). Purely\ncosmetic \u2014 does not change focus or click behaviour. Honours\n`prefers-reduced-motion: reduce`."
112
+ },
113
+ "getter": false,
114
+ "setter": false,
115
+ "reflect": true,
116
+ "attribute": "interactive",
117
+ "defaultValue": "false"
90
118
  }
91
119
  };
92
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"af-card.js","sourceRoot":"","sources":["../../../src/components/af-card/af-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGzD;;;;;;GAMG;AAOH,MAAM,OAAO,MAAM;IANnB;QAOE;;;WAGG;QACK,UAAK,GAAW,YAAY,CAAC;QAErC;;;;;WAKG;QACsB,YAAO,GAAY,KAAK,CAAC;KAkBnD;IAhBC,MAAM;QACJ,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,IAAI;YACZ,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI;SAC9B,CAAC;QAEF,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,OAAO;gBACjB,4DAAK,KAAK,EAAC,eAAe;oBACxB,8DAAa,CACT,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\nimport type { Theme } from '../../types';\n\n/**\n * Card atom component - a themed container with consistent styling.\n * Provides theme context to children via CSS custom properties.\n * \n * This is a base building block used by molecule components like\n * af-feature-card and af-illustrated-card.\n */\n@Component({\n tag: 'af-card',\n styleUrl: 'af-card.css',\n shadow: false,\n scoped: true,\n})\nexport class AfCard {\n /**\n * Theme - sets background color and provides theme context to children.\n * Defaults to 'mist-green' if not specified.\n */\n @Prop() theme?: Theme = 'mist-green';\n\n /**\n * When true, the card stretches to fill its container height.\n * Use this when the card is in a flex/grid container and needs to\n * participate in equal-height layouts. The card's content will use\n * flexbox to distribute space between children.\n */\n @Prop({ reflect: true }) stretch: boolean = false;\n\n render() {\n const classes = {\n 'card': true,\n [`theme-${this.theme}`]: true\n };\n\n return (\n <Host>\n <div class={classes}>\n <div class=\"card__content\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"af-card.js","sourceRoot":"","sources":["../../../src/components/af-card/af-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGzD;;;;;;GAMG;AAOH,MAAM,OAAO,MAAM;IANnB;QAOE;;;WAGG;QACK,UAAK,GAAW,YAAY,CAAC;QAErC;;;;;WAKG;QACsB,YAAO,GAAY,KAAK,CAAC;QAElD;;;;;;WAMG;QACsB,gBAAW,GAAY,KAAK,CAAC;KAkBvD;IAhBC,MAAM;QACJ,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,IAAI;YACZ,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI;SAC9B,CAAC;QAEF,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,OAAO;gBACjB,4DAAK,KAAK,EAAC,eAAe;oBACxB,8DAAa,CACT,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Host } from '@stencil/core';\nimport type { Theme } from '../../types';\n\n/**\n * Card atom component - a themed container with consistent styling.\n * Provides theme context to children via CSS custom properties.\n * \n * This is a base building block used by molecule components like\n * af-feature-card and af-illustrated-card.\n */\n@Component({\n tag: 'af-card',\n styleUrl: 'af-card.css',\n shadow: false,\n scoped: true,\n})\nexport class AfCard {\n /**\n * Theme - sets background color and provides theme context to children.\n * Defaults to 'mist-green' if not specified.\n */\n @Prop() theme?: Theme = 'mist-green';\n\n /**\n * When true, the card stretches to fill its container height.\n * Use this when the card is in a flex/grid container and needs to\n * participate in equal-height layouts. The card's content will use\n * flexbox to distribute space between children.\n */\n @Prop({ reflect: true }) stretch: boolean = false;\n\n /**\n * When true, the card reacts to pointer hover with a subtle lift\n * (translateY + shadow). Use for cards that are themselves the primary\n * click target (e.g. wrapped in an `<a>` or using `onClick`). Purely\n * cosmetic — does not change focus or click behaviour. Honours\n * `prefers-reduced-motion: reduce`.\n */\n @Prop({ reflect: true }) interactive: boolean = false;\n\n render() {\n const classes = {\n 'card': true,\n [`theme-${this.theme}`]: true\n };\n\n return (\n <Host>\n <div class={classes}>\n <div class=\"card__content\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -105,7 +105,30 @@
105
105
  width: 24px;
106
106
  height: 24px;
107
107
  color: var(--_heading-color);
108
- transition: transform 0.2s ease;
108
+ transition:
109
+ transform var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
110
+ opacity var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));
111
+ }
112
+
113
+ .accordion-item__icon svg {
114
+ display: block;
115
+ width: 100%;
116
+ height: 100%;
117
+ overflow: visible;
118
+ }
119
+
120
+ /* Plus → minus morph: vertical bar collapses and the whole icon rotates
121
+ 45° when expanding, giving a single, fluid gesture. */
122
+ .accordion-item__icon-bar {
123
+ transition:
124
+ transform var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
125
+ opacity var(--motion-duration-fast, 150ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));
126
+ transform-origin: 12px 12px;
127
+ }
128
+
129
+ .accordion-item--expanded .accordion-item__icon-bar--vert {
130
+ transform: scaleY(0);
131
+ opacity: 0;
109
132
  }
110
133
 
111
134
  .accordion-item:not(.accordion-item--expanded) .accordion-item__icon {
@@ -114,7 +137,18 @@
114
137
 
115
138
  .accordion-item__content {
116
139
  overflow: hidden;
117
- transition: max-height 0.3s ease, opacity 0.3s ease;
140
+ transition:
141
+ max-height var(--motion-duration-slow, 300ms) var(--motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1)),
142
+ opacity var(--motion-duration-slow, 300ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));
143
+ }
144
+
145
+ @media (prefers-reduced-motion: reduce) {
146
+ .accordion-item__icon,
147
+ .accordion-item__icon-bar,
148
+ .accordion-item__content,
149
+ .accordion-item__title {
150
+ transition-duration: 0.01ms;
151
+ }
118
152
  }
119
153
 
120
154
  .accordion-item__description {
@@ -101,10 +101,10 @@ export class AfFeatureAccordion {
101
101
  return (h(Host, { key: '335d71685c8aad8e3ffc0b32c95b8ddd3b670491' }, h("div", { key: '03d0f317865722652ad21e8dfd38e3806e890993', class: "feature-accordion" }, h("div", { key: 'ddc8fa8c2690f670cd3fdd7efa55c7c11ff29e14', class: "feature-accordion__container" }, h("h2", { key: '2d81b47cdc05b6924f2a5a17407bd5d073b6f955', class: "feature-accordion__heading" }, this.heading), h("div", { key: 'ea1c924a393afab5a8dfe223d3404798a7cacf46', class: "feature-accordion__content" }, h("div", { key: '64edad33b88cc793e93debad5f2f051f795deb65', class: "feature-accordion__list" }, items.map((item, index) => (h("div", { class: {
102
102
  'accordion-item': true,
103
103
  'accordion-item--expanded': this.expandedIndex === index
104
- }, key: index }, h("button", { class: "accordion-item__header", onClick: () => this.handleItemClick(index), "aria-expanded": this.expandedIndex === index ? 'true' : 'false' }, h("h4", { class: "accordion-item__title" }, item.title), h("span", { class: "accordion-item__icon" }, this.expandedIndex === index ? (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M5 12H19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))) : (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M12 5V19M5 12H19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))))), h("div", { class: "accordion-item__content", style: {
104
+ }, key: index }, h("button", { class: "accordion-item__header", onClick: () => this.handleItemClick(index), "aria-expanded": this.expandedIndex === index ? 'true' : 'false' }, h("h4", { class: "accordion-item__title" }, item.title), h("span", { class: "accordion-item__icon", "aria-hidden": "true" }, h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { class: "accordion-item__icon-bar", d: "M5 12H19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }), h("path", { class: "accordion-item__icon-bar accordion-item__icon-bar--vert", d: "M12 5V19", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" })))), h("div", { class: "accordion-item__content", style: {
105
105
  maxHeight: this.expandedIndex === index ? '200px' : '0',
106
106
  opacity: this.expandedIndex === index ? '1' : '0'
107
- } }, h("p", { class: "accordion-item__description" }, item.description), this.expandedIndex === index && this.autoCycle && (h("div", { class: "accordion-item__timer-track" }, h("div", { class: "accordion-item__timer-progress", style: { width: `${this.timerProgress}%` } })))))))), h("div", { key: 'ca61ce3c070f35e9084dcd2bdd4c0fdf8c873fb5', class: "feature-accordion__image-container" }, h("div", { key: 'f741bd15d6fdd17b8947a099a94ba37c5d9a797b', class: "feature-accordion__image-wrapper" }, currentItem?.imageUrl && (h("img", { key: '8f8dbccdfb3ac4857d0a8bb8bcc317b00ac1cb87', src: currentItem.imageUrl, alt: currentItem.imageAlt || currentItem.title, class: "feature-accordion__image" })), !currentItem?.imageUrl && (h("div", { key: 'a06a0cb9eccf2504e9515c9da650cb9b2717173b', class: "feature-accordion__image-placeholder" }, h("slot", { key: '31097d47af5bb4f131aecfddb2ed370bb84c3b34', name: "image" }))))))))));
107
+ } }, h("p", { class: "accordion-item__description" }, item.description), this.expandedIndex === index && this.autoCycle && (h("div", { class: "accordion-item__timer-track" }, h("div", { class: "accordion-item__timer-progress", style: { width: `${this.timerProgress}%` } })))))))), h("div", { key: '0d7b5721178a3583b0bdcba4e16bf986f329d5ec', class: "feature-accordion__image-container" }, h("div", { key: '314ebb3fd06a50c2582b640f066772743e6eba46', class: "feature-accordion__image-wrapper" }, currentItem?.imageUrl && (h("img", { key: '843261a9a70e41649d425537c8b26c50b7eceefd', src: currentItem.imageUrl, alt: currentItem.imageAlt || currentItem.title, class: "feature-accordion__image" })), !currentItem?.imageUrl && (h("div", { key: '6f9e49c9179f0473163b540ef8a7855410660720', class: "feature-accordion__image-placeholder" }, h("slot", { key: '7feb0388dd60514b2bbd92b6fe4bb3a5f9b4e256', name: "image" }))))))))));
108
108
  }
109
109
  static get is() { return "af-feature-accordion"; }
110
110
  static get encapsulation() { return "scoped"; }
@@ -1 +1 @@
1
- {"version":3,"file":"af-feature-accordion.js","sourceRoot":"","sources":["../../../src/components/af-feature-accordion/af-feature-accordion.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Host, Prop, State, Element, Watch } from '@stencil/core';\n\nexport interface FeatureAccordionItem {\n title: string;\n description: string;\n imageUrl?: string;\n imageAlt?: string;\n}\n\n/**\n * Feature accordion component with expandable items and accompanying image.\n * Used for showcasing product features with visual examples.\n * Features auto-cycling through items with a progress timer.\n * \n * **Must be wrapped in a Section component** to inherit theme styling.\n * The component automatically adapts colors based on the parent Section's theme.\n * \n * @example\n * ```tsx\n * <Section theme=\"inkwell\">\n * <FeatureAccordion heading=\"Features\" items={...} />\n * </Section>\n * ```\n */\n@Component({\n tag: 'af-feature-accordion',\n styleUrl: 'af-feature-accordion.css',\n shadow: false,\n scoped: true,\n})\nexport class AfFeatureAccordion {\n @Element() el!: HTMLElement;\n\n /** Section heading */\n @Prop() heading: string = 'Give AI agents your paperwork';\n\n /** JSON string of accordion items */\n @Prop() items: string = '[]';\n\n /** Auto-cycle interval in milliseconds (default: 6000ms = 6 seconds) */\n @Prop() cycleInterval: number = 6000;\n\n /** Whether auto-cycling is enabled */\n @Prop() autoCycle: boolean = true;\n\n /** Currently expanded item index */\n @State() expandedIndex: number = 0;\n\n /** Progress of current timer (0-100) */\n @State() timerProgress: number = 100;\n\n private progressTimer: number | null = null;\n private progressStartTime: number = 0;\n\n componentDidLoad() {\n if (this.autoCycle) {\n this.startCycling();\n }\n }\n\n disconnectedCallback() {\n this.stopCycling();\n }\n\n @Watch('autoCycle')\n handleAutoCycleChange(newValue: boolean) {\n if (newValue) {\n this.startCycling();\n } else {\n this.stopCycling();\n }\n }\n\n private getItems(): FeatureAccordionItem[] {\n try {\n return JSON.parse(this.items);\n } catch {\n return [];\n }\n }\n\n private startCycling() {\n this.stopCycling();\n this.progressStartTime = Date.now();\n this.timerProgress = 100;\n \n // Progress animation frame\n const updateProgress = () => {\n const elapsed = Date.now() - this.progressStartTime;\n const remaining = this.cycleInterval - elapsed;\n \n if (remaining <= 0) {\n this.moveToNextItem();\n } else {\n this.timerProgress = (remaining / this.cycleInterval) * 100;\n this.progressTimer = requestAnimationFrame(updateProgress);\n }\n };\n \n this.progressTimer = requestAnimationFrame(updateProgress);\n }\n\n private stopCycling() {\n if (this.progressTimer) {\n cancelAnimationFrame(this.progressTimer);\n this.progressTimer = null;\n }\n }\n\n private moveToNextItem() {\n const items = this.getItems();\n if (items.length === 0) return;\n \n this.expandedIndex = (this.expandedIndex + 1) % items.length;\n // Restart the cycling timer for the new item\n this.startCycling();\n }\n\n private handleItemClick(index: number) {\n // Reset timer when user clicks\n this.expandedIndex = index;\n // Restart the cycling timer for the clicked item\n if (this.autoCycle) {\n this.startCycling();\n }\n }\n\n render() {\n const items = this.getItems();\n const currentItem = items[this.expandedIndex];\n\n return (\n <Host>\n <div class=\"feature-accordion\">\n <div class=\"feature-accordion__container\">\n <h2 class=\"feature-accordion__heading\">{this.heading}</h2>\n \n <div class=\"feature-accordion__content\">\n {/* Left side - Accordion */}\n <div class=\"feature-accordion__list\">\n {items.map((item, index) => (\n <div \n class={{\n 'accordion-item': true,\n 'accordion-item--expanded': this.expandedIndex === index\n }}\n key={index}\n >\n <button \n class=\"accordion-item__header\"\n onClick={() => this.handleItemClick(index)}\n aria-expanded={this.expandedIndex === index ? 'true' : 'false'}\n >\n <h4 class=\"accordion-item__title\">{item.title}</h4>\n <span class=\"accordion-item__icon\">\n {this.expandedIndex === index ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5 12H19\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>\n ) : (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 5V19M5 12H19\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>\n )}\n </span>\n </button>\n <div \n class=\"accordion-item__content\"\n style={{ \n maxHeight: this.expandedIndex === index ? '200px' : '0',\n opacity: this.expandedIndex === index ? '1' : '0'\n }}\n >\n <p class=\"accordion-item__description\">{item.description}</p>\n {this.expandedIndex === index && this.autoCycle && (\n <div class=\"accordion-item__timer-track\">\n <div \n class=\"accordion-item__timer-progress\"\n style={{ width: `${this.timerProgress}%` }}\n ></div>\n </div>\n )}\n </div>\n </div>\n ))}\n </div>\n\n {/* Right side - Image */}\n <div class=\"feature-accordion__image-container\">\n <div class=\"feature-accordion__image-wrapper\">\n {currentItem?.imageUrl && (\n <img \n src={currentItem.imageUrl} \n alt={currentItem.imageAlt || currentItem.title}\n class=\"feature-accordion__image\"\n />\n )}\n {!currentItem?.imageUrl && (\n <div class=\"feature-accordion__image-placeholder\">\n <slot name=\"image\"></slot>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"af-feature-accordion.js","sourceRoot":"","sources":["../../../src/components/af-feature-accordion/af-feature-accordion.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Host, Prop, State, Element, Watch } from '@stencil/core';\n\nexport interface FeatureAccordionItem {\n title: string;\n description: string;\n imageUrl?: string;\n imageAlt?: string;\n}\n\n/**\n * Feature accordion component with expandable items and accompanying image.\n * Used for showcasing product features with visual examples.\n * Features auto-cycling through items with a progress timer.\n * \n * **Must be wrapped in a Section component** to inherit theme styling.\n * The component automatically adapts colors based on the parent Section's theme.\n * \n * @example\n * ```tsx\n * <Section theme=\"inkwell\">\n * <FeatureAccordion heading=\"Features\" items={...} />\n * </Section>\n * ```\n */\n@Component({\n tag: 'af-feature-accordion',\n styleUrl: 'af-feature-accordion.css',\n shadow: false,\n scoped: true,\n})\nexport class AfFeatureAccordion {\n @Element() el!: HTMLElement;\n\n /** Section heading */\n @Prop() heading: string = 'Give AI agents your paperwork';\n\n /** JSON string of accordion items */\n @Prop() items: string = '[]';\n\n /** Auto-cycle interval in milliseconds (default: 6000ms = 6 seconds) */\n @Prop() cycleInterval: number = 6000;\n\n /** Whether auto-cycling is enabled */\n @Prop() autoCycle: boolean = true;\n\n /** Currently expanded item index */\n @State() expandedIndex: number = 0;\n\n /** Progress of current timer (0-100) */\n @State() timerProgress: number = 100;\n\n private progressTimer: number | null = null;\n private progressStartTime: number = 0;\n\n componentDidLoad() {\n if (this.autoCycle) {\n this.startCycling();\n }\n }\n\n disconnectedCallback() {\n this.stopCycling();\n }\n\n @Watch('autoCycle')\n handleAutoCycleChange(newValue: boolean) {\n if (newValue) {\n this.startCycling();\n } else {\n this.stopCycling();\n }\n }\n\n private getItems(): FeatureAccordionItem[] {\n try {\n return JSON.parse(this.items);\n } catch {\n return [];\n }\n }\n\n private startCycling() {\n this.stopCycling();\n this.progressStartTime = Date.now();\n this.timerProgress = 100;\n \n // Progress animation frame\n const updateProgress = () => {\n const elapsed = Date.now() - this.progressStartTime;\n const remaining = this.cycleInterval - elapsed;\n \n if (remaining <= 0) {\n this.moveToNextItem();\n } else {\n this.timerProgress = (remaining / this.cycleInterval) * 100;\n this.progressTimer = requestAnimationFrame(updateProgress);\n }\n };\n \n this.progressTimer = requestAnimationFrame(updateProgress);\n }\n\n private stopCycling() {\n if (this.progressTimer) {\n cancelAnimationFrame(this.progressTimer);\n this.progressTimer = null;\n }\n }\n\n private moveToNextItem() {\n const items = this.getItems();\n if (items.length === 0) return;\n \n this.expandedIndex = (this.expandedIndex + 1) % items.length;\n // Restart the cycling timer for the new item\n this.startCycling();\n }\n\n private handleItemClick(index: number) {\n // Reset timer when user clicks\n this.expandedIndex = index;\n // Restart the cycling timer for the clicked item\n if (this.autoCycle) {\n this.startCycling();\n }\n }\n\n render() {\n const items = this.getItems();\n const currentItem = items[this.expandedIndex];\n\n return (\n <Host>\n <div class=\"feature-accordion\">\n <div class=\"feature-accordion__container\">\n <h2 class=\"feature-accordion__heading\">{this.heading}</h2>\n \n <div class=\"feature-accordion__content\">\n {/* Left side - Accordion */}\n <div class=\"feature-accordion__list\">\n {items.map((item, index) => (\n <div \n class={{\n 'accordion-item': true,\n 'accordion-item--expanded': this.expandedIndex === index\n }}\n key={index}\n >\n <button\n class=\"accordion-item__header\"\n onClick={() => this.handleItemClick(index)}\n aria-expanded={this.expandedIndex === index ? 'true' : 'false'}\n >\n <h4 class=\"accordion-item__title\">{item.title}</h4>\n {/* Plus → minus: a single SVG with two strokes, the\n vertical one rotated-out to zero when expanded. This\n gives a fluid morph instead of swapping SVGs mid-\n animation. */}\n <span class=\"accordion-item__icon\" aria-hidden=\"true\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path class=\"accordion-item__icon-bar\" d=\"M5 12H19\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n <path class=\"accordion-item__icon-bar accordion-item__icon-bar--vert\" d=\"M12 5V19\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n </svg>\n </span>\n </button>\n <div \n class=\"accordion-item__content\"\n style={{ \n maxHeight: this.expandedIndex === index ? '200px' : '0',\n opacity: this.expandedIndex === index ? '1' : '0'\n }}\n >\n <p class=\"accordion-item__description\">{item.description}</p>\n {this.expandedIndex === index && this.autoCycle && (\n <div class=\"accordion-item__timer-track\">\n <div \n class=\"accordion-item__timer-progress\"\n style={{ width: `${this.timerProgress}%` }}\n ></div>\n </div>\n )}\n </div>\n </div>\n ))}\n </div>\n\n {/* Right side - Image */}\n <div class=\"feature-accordion__image-container\">\n <div class=\"feature-accordion__image-wrapper\">\n {currentItem?.imageUrl && (\n <img \n src={currentItem.imageUrl} \n alt={currentItem.imageAlt || currentItem.title}\n class=\"feature-accordion__image\"\n />\n )}\n {!currentItem?.imageUrl && (\n <div class=\"feature-accordion__image-placeholder\">\n <slot name=\"image\"></slot>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -63,10 +63,14 @@
63
63
  padding-top: 164px;
64
64
  }
65
65
 
66
- /* Centered variant uses slightly tighter top padding to match the live
67
- /platform hero (80px), since the lockup is typically tall. */
66
+ /* Centered variant: leave clear breathing room under the floating navbar
67
+ pill so the heading isn't clipped at the top. The live affinda.com
68
+ reference at 1280 vw renders the heading roughly 180 px below the
69
+ viewport top — pad accordingly. (Earlier value of 80 px clipped the
70
+ heading behind the navbar; caught by qa/regression-compare in the
71
+ site repo.) */
68
72
  :host(.hero--inkwell-centered.hero--pad-default) .hero__inner {
69
- padding-top: 80px;
73
+ padding-top: 180px;
70
74
  }
71
75
 
72
76
  /* -----------------------------------------------------------------
@@ -87,6 +91,14 @@
87
91
  gap: 48px;
88
92
  }
89
93
 
94
+ /* inkwell-illustration: 50/50 split. The 5fr/7fr default tilts the
95
+ illustration column too wide, which pinches the heading down to
96
+ 4-6 lines at 1280 vw. Even split keeps the heading at 2-3 lines
97
+ matching the live affinda.com reference. */
98
+ :host(.hero--inkwell-illustration) .hero__grid {
99
+ grid-template-columns: 1fr 1fr;
100
+ }
101
+
90
102
  .hero__copy {
91
103
  /* Small inset pushes heading inward from the hard container edge —
92
104
  matches the live .page-banner-text treatment. Only applied to
@@ -199,8 +211,11 @@
199
211
  border-radius: 16px;
200
212
  }
201
213
 
214
+ /* Cap inkwell-illustration's slotted SVG so square-aspect art doesn't
215
+ tower past the text column. 540 px matches the live treatment for
216
+ the /industries + /integrations heroes. */
202
217
  :host(.hero--inkwell-illustration) .hero__illustration {
203
- max-width: none;
218
+ max-width: 540px;
204
219
  }
205
220
 
206
221
  /* -----------------------------------------------------------------
@@ -237,13 +252,20 @@
237
252
  padding-top: 112px;
238
253
  }
239
254
 
255
+ /* Centered variant still needs a touch more clearance under the
256
+ navbar pill on tablet. */
257
+ :host(.hero--inkwell-centered.hero--pad-default) .hero__inner {
258
+ padding-top: 144px;
259
+ }
260
+
240
261
  .hero__grid {
241
262
  grid-template-columns: 1fr;
242
263
  gap: 32px;
243
264
  }
244
265
 
245
266
  :host(.hero--soft-clay-illustration) .hero__grid,
246
- :host(.hero--mist-green-illustration) .hero__grid {
267
+ :host(.hero--mist-green-illustration) .hero__grid,
268
+ :host(.hero--inkwell-illustration) .hero__grid {
247
269
  grid-template-columns: 1fr;
248
270
  }
249
271
 
@@ -21,12 +21,24 @@
21
21
  justify-content: center;
22
22
  border-radius: 50%;
23
23
  cursor: pointer;
24
- transition: all 0.2s ease;
24
+ transition:
25
+ background-color var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
26
+ border-color var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
27
+ color var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
28
+ opacity var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1)),
29
+ transform var(--motion-duration-fast, 150ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));
25
30
  border: 1px solid transparent;
26
31
  box-sizing: border-box;
27
32
  flex-shrink: 0;
28
33
  text-decoration: none;
29
34
  padding: 0;
35
+ will-change: transform;
36
+ }
37
+
38
+ @media (prefers-reduced-motion: reduce) {
39
+ .icon-button {
40
+ transition-duration: 0.01ms;
41
+ }
30
42
  }
31
43
 
32
44
  /* Size variants */
@@ -91,6 +103,7 @@
91
103
 
92
104
  .variant-primary:active:not(.disabled) {
93
105
  background: var(--af-button-primary-bg-hover, #95e6e2);
106
+ transform: translateY(1px);
94
107
  }
95
108
 
96
109
  /* Secondary variant (outlined) */
@@ -106,6 +119,7 @@
106
119
 
107
120
  .variant-secondary:active:not(.disabled) {
108
121
  background: var(--af-button-secondary-bg-hover, rgba(128, 128, 128, 0.1));
122
+ transform: translateY(1px);
109
123
  }
110
124
 
111
125
  /* Tertiary variant (minimal, no border) */
@@ -73,7 +73,7 @@ a.trigger {
73
73
  height: 24px;
74
74
  flex-shrink: 0;
75
75
  color: var(--af-nav-item-primary, var(--af-typography-body-dark, #14343b));
76
- transition: transform 0.3s ease;
76
+ transition: transform var(--motion-duration-slow, 300ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1));
77
77
  }
78
78
 
79
79
  .chevron-button {
@@ -94,7 +94,15 @@ a.trigger {
94
94
  /* Content wrapper - handles animation */
95
95
  .content-wrapper {
96
96
  overflow: hidden;
97
- transition: max-height 0.3s ease;
97
+ transition: max-height var(--motion-duration-slow, 300ms) var(--motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1));
98
+ }
99
+
100
+ @media (prefers-reduced-motion: reduce) {
101
+ .chevron,
102
+ .chevron-button,
103
+ .content-wrapper {
104
+ transition-duration: 0.01ms;
105
+ }
98
106
  }
99
107
 
100
108
  .content {
@@ -22,4 +22,9 @@
22
22
  --af-typography-heading-primary: var(--af-typography-heading-secondary, var(--colour-brand-soft-clay, #b09670));
23
23
  letter-spacing: -0.88px;
24
24
  white-space: nowrap;
25
+ /* Stat values are a typographic beat — enable proportional lining
26
+ figures and discretionary ligatures so numerals like "1B+" align
27
+ on the baseline and sit at the expected optical weight. */
28
+ font-variant-numeric: lining-nums proportional-nums;
29
+ font-feature-settings: 'ss01', 'kern';
25
30
  }
@@ -24,6 +24,10 @@
24
24
  --af-typography-heading-primary: var(--af-typography-heading-secondary, var(--colour-brand-soft-clay, #b09670));
25
25
  letter-spacing: -0.88px;
26
26
  white-space: nowrap;
27
+ /* Lining figures so "1B+" / "95%" hit a consistent baseline and
28
+ optical weight, matching af-stat. */
29
+ font-variant-numeric: lining-nums proportional-nums;
30
+ font-feature-settings: 'ss01', 'kern';
27
31
  }
28
32
 
29
33
  /* Description - override af-text to use body-dark for emphasis */
@@ -1,6 +1,6 @@
1
- import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-DOgb6SUj.js';
1
+ import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-CiY0Twna.js';
2
2
 
3
- const afAccordionItemCss = ":host{display:block;width:100%}.accordion-item{width:100%}.trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 0;background:transparent;border:none;border-bottom:1px solid var(--af-background-border-subtle, #e8eeed);cursor:pointer;font:inherit;text-align:left;color:var(--af-typography-body-dark, #14343b);transition:background-color 0.2s ease}.trigger:hover:not(:disabled){background-color:var(--af-background-base-hover, rgba(20, 52, 59, 0.02))}.trigger:focus-visible{outline:2px solid var(--af-background-border-active, #8a7049);outline-offset:-2px}.trigger:disabled{cursor:not-allowed;opacity:0.5}.trigger-content{flex:1;min-width:0}.chevron{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:var(--af-typography-body-dark, #14343b);transition:transform 0.3s ease}.chevron.is-open{transform:rotate(180deg)}.content-wrapper{overflow:hidden;transition:max-height 0.3s ease}.content{padding:0}:host(.is-disabled) .trigger{cursor:not-allowed;opacity:0.5}:host(.is-disabled) .trigger:hover{background-color:transparent}:host(.is-open) .trigger{border-bottom-color:transparent}";
3
+ const afAccordionItemCss = ":host{display:block;width:100%}.accordion-item{width:100%}.trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 0;background:transparent;border:none;border-bottom:1px solid var(--af-background-border-subtle, #e8eeed);cursor:pointer;font:inherit;text-align:left;color:var(--af-typography-body-dark, #14343b);transition:background-color var(--motion-duration-base, 200ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1))}.trigger:hover:not(:disabled){background-color:var(--af-background-base-hover, rgba(20, 52, 59, 0.02))}.trigger:focus-visible{outline:2px solid var(--af-background-border-active, #8a7049);outline-offset:-2px}.trigger:disabled{cursor:not-allowed;opacity:0.5}.trigger-content{flex:1;min-width:0}.chevron{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:var(--af-typography-body-dark, #14343b);transition:transform var(--motion-duration-slow, 300ms) var(--motion-easing-standard, cubic-bezier(0.4, 0, 0.2, 1))}.chevron.is-open{transform:rotate(180deg)}.content-wrapper{overflow:hidden;transition:max-height var(--motion-duration-slow, 300ms) var(--motion-easing-emphasized, cubic-bezier(0.2, 0, 0, 1))}@media (prefers-reduced-motion: reduce){.trigger,.chevron,.content-wrapper{transition-duration:0.01ms}}.content{padding:0}:host(.is-disabled) .trigger{cursor:not-allowed;opacity:0.5}:host(.is-disabled) .trigger:hover{background-color:transparent}:host(.is-open) .trigger{border-bottom-color:transparent}";
4
4
 
5
5
  const AfAccordionItem$1 = /*@__PURE__*/ proxyCustomElement(class AfAccordionItem extends H {
6
6
  constructor(registerHost) {
@@ -1 +1 @@
1
- {"file":"af-accordion-item.js","mappings":";;AAAA,MAAM,kBAAkB,GAAG,8oCAA8oC;;MCc5pCA,iBAAe,iBAAAC,kBAAA,CAAA,MAAA,eAAA,SAAAC,CAAA,CAAA;AAL5B,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAcE;;AAEG;AACqC,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK;AAE7D;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAOzC,QAAA,IAAa,CAAA,aAAA,GAAW,CAAC;AAqD1B,QAAA,IAAkB,CAAA,kBAAA,GAAG,MAAK;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,MAAM,EAAE;;AAEjB,SAAC;AAyCF;AA5FC,IAAA,gBAAgB,CAAC,QAAiB,EAAA;QAChC,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,cAAc,EAAE;;;IAIzB,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,cAAc,EAAE;;AAGvB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAK;YAC5C,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;gBAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY;;AAErD,SAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;;;IAIhD,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;;;AAIpC;;AAEG;AAEH,IAAA,MAAM,MAAM,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;;;IAI/D,cAAc,GAAA;QACpB,qBAAqB,CAAC,MAAK;AACzB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY;;AAErD,SAAC,CAAC;;IASJ,MAAM,GAAA;AACJ,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,SAAS,EAAE,IAAI,CAAC,IAAI,GAAG,CAAG,EAAA,IAAI,CAAC,aAAa,CAAA,EAAA,CAAI,GAAG;SACpD;AAED,QAAA,QACE,CAAC,CAAA,IAAI,qDAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAA,EACjE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EACzB,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAA,eAAA,EACjB,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,EAC5B,eAAA,EAAA,CAAW,QAAA,EAAA,IAAI,CAAC,MAAM,CAAA,CAAE,EACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAC,QAAQ,EAAA,EAEb,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,SAAS,EAAA,CAAQ,CACxB,EACN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,EAAA,EACnD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAA,EAC/E,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,CAAC,EAAC,cAAc,EAAA,cAAA,EAAc,GAAG,EAAA,gBAAA,EAAgB,OAAO,EAAA,iBAAA,EAAiB,OAAO,EAAA,CAAE,CACpF,CACF,CACC,EACT,CACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAE,EAAE,CAAW,QAAA,EAAA,IAAI,CAAC,MAAM,CAAE,CAAA,EAC5B,KAAK,EAAC,iBAAiB,EACvB,KAAK,EAAE,YAAY,EACN,aAAA,EAAA,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,EAAA,EAE1C,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,EAAA,EACtD,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACF,CACF,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","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 0.2s ease;\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 0.3s ease;\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 0.3s ease;\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
+ {"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}