@affinda/wc 0.0.17 → 0.0.19

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 (705) hide show
  1. package/dist/affinda/af-accordion-item.entry.esm.js.map +1 -0
  2. package/dist/affinda/af-accordion.entry.esm.js.map +1 -0
  3. package/dist/affinda/af-button.entry.esm.js.map +1 -1
  4. package/dist/affinda/af-card.entry.esm.js.map +1 -1
  5. package/dist/affinda/af-center.entry.esm.js.map +1 -0
  6. package/dist/affinda/af-checkbox.entry.esm.js.map +1 -1
  7. package/dist/affinda/af-divider.entry.esm.js.map +1 -0
  8. package/dist/affinda/af-feature-card.entry.esm.js.map +1 -1
  9. package/dist/affinda/af-fieldset.entry.esm.js.map +1 -1
  10. package/dist/affinda/af-grid.entry.esm.js.map +1 -0
  11. package/dist/affinda/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.esm.js.map +1 -1
  12. package/dist/affinda/af-inline.entry.esm.js.map +1 -0
  13. package/dist/affinda/af-input.entry.esm.js.map +1 -1
  14. package/dist/affinda/af-nav-accordion-item.entry.esm.js.map +1 -0
  15. package/dist/affinda/af-nav-accordion.entry.esm.js.map +1 -0
  16. package/dist/affinda/af-nav-card.entry.esm.js.map +1 -1
  17. package/dist/affinda/af-nav-menu-nest.entry.esm.js.map +1 -1
  18. package/dist/affinda/af-nav-menu.entry.esm.js.map +1 -1
  19. package/dist/affinda/af-radio.entry.esm.js.map +1 -1
  20. package/dist/affinda/af-section.entry.esm.js.map +1 -1
  21. package/dist/affinda/af-show.entry.esm.js.map +1 -0
  22. package/dist/affinda/af-spacer.entry.esm.js.map +1 -0
  23. package/dist/affinda/af-split-section.entry.esm.js.map +1 -1
  24. package/dist/affinda/af-stack.entry.esm.js.map +1 -0
  25. package/dist/affinda/af-switch.entry.esm.js.map +1 -1
  26. package/dist/affinda/af-textarea.entry.esm.js.map +1 -1
  27. package/dist/affinda/af-theme-override.entry.esm.js.map +1 -0
  28. package/dist/affinda/af-typography-lockup.entry.esm.js.map +1 -1
  29. package/dist/affinda/af-visually-hidden.entry.esm.js.map +1 -0
  30. package/dist/affinda/affinda.esm.js +1 -1
  31. package/dist/affinda/index.esm.js +1 -1
  32. package/dist/affinda/{p-acbbe39a.entry.js → p-01993cc8.entry.js} +2 -2
  33. package/dist/affinda/p-02830771.entry.js +2 -0
  34. package/dist/affinda/p-02830771.entry.js.map +1 -0
  35. package/dist/affinda/{p-a4e4eb4d.entry.js → p-04de9a0a.entry.js} +2 -2
  36. package/dist/affinda/{p-a6365e94.entry.js → p-080cf84f.entry.js} +2 -2
  37. package/dist/affinda/{p-b3b0ed0c.entry.js → p-0b5bc045.entry.js} +2 -2
  38. package/dist/affinda/p-0fcce1e4.entry.js +2 -0
  39. package/dist/affinda/p-0fcce1e4.entry.js.map +1 -0
  40. package/dist/affinda/{p-2b4dc22c.entry.js → p-16f808d5.entry.js} +2 -2
  41. package/dist/affinda/{p-52ab3bf0.entry.js → p-19eb7cb9.entry.js} +2 -2
  42. package/dist/affinda/p-1c32cfcb.entry.js +2 -0
  43. package/dist/affinda/p-1c32cfcb.entry.js.map +1 -0
  44. package/dist/affinda/p-266af3e1.entry.js +2 -0
  45. package/dist/affinda/p-266af3e1.entry.js.map +1 -0
  46. package/dist/affinda/p-288c2656.entry.js +2 -0
  47. package/dist/affinda/p-288c2656.entry.js.map +1 -0
  48. package/dist/affinda/p-2e5e4960.entry.js +2 -0
  49. package/dist/affinda/p-2e5e4960.entry.js.map +1 -0
  50. package/dist/affinda/{p-1d65fd18.entry.js → p-2e750d43.entry.js} +2 -2
  51. package/dist/affinda/p-302d0cf7.entry.js +2 -0
  52. package/dist/affinda/{p-231ba1d0.entry.js.map → p-302d0cf7.entry.js.map} +1 -1
  53. package/dist/affinda/{p-861f4f57.entry.js → p-331f9627.entry.js} +2 -2
  54. package/dist/affinda/p-389a6246.entry.js +2 -0
  55. package/dist/affinda/{p-7f20fbe0.entry.js.map → p-389a6246.entry.js.map} +1 -1
  56. package/dist/affinda/{p-77bf8a81.entry.js → p-3d2fb635.entry.js} +2 -2
  57. package/dist/affinda/{p-e5af21c2.entry.js → p-3e16bb11.entry.js} +2 -2
  58. package/dist/affinda/p-4c5f92a9.entry.js +2 -0
  59. package/dist/affinda/{p-ea06c83b.entry.js.map → p-4c5f92a9.entry.js.map} +1 -1
  60. package/dist/affinda/p-544b7c9c.entry.js +2 -0
  61. package/dist/affinda/p-544b7c9c.entry.js.map +1 -0
  62. package/dist/affinda/p-567ba536.entry.js +2 -0
  63. package/dist/affinda/{p-864778d0.entry.js.map → p-567ba536.entry.js.map} +1 -1
  64. package/dist/affinda/p-57eae3cd.entry.js +2 -0
  65. package/dist/affinda/{p-c3e31251.entry.js.map → p-57eae3cd.entry.js.map} +1 -1
  66. package/dist/affinda/p-6294b6d1.entry.js +2 -0
  67. package/dist/affinda/p-6294b6d1.entry.js.map +1 -0
  68. package/dist/affinda/{p-f45b0060.entry.js → p-63314e14.entry.js} +2 -2
  69. package/dist/affinda/p-64fa6ae6.entry.js +2 -0
  70. package/dist/affinda/p-64fa6ae6.entry.js.map +1 -0
  71. package/dist/affinda/{p-45e1923c.entry.js → p-68f1f661.entry.js} +2 -2
  72. package/dist/affinda/{p-b17735c9.entry.js → p-6af1634a.entry.js} +2 -2
  73. package/dist/affinda/p-6b92463e.entry.js +2 -0
  74. package/dist/affinda/{p-697bf0b7.entry.js.map → p-6b92463e.entry.js.map} +1 -1
  75. package/dist/affinda/p-6bbc1e24.entry.js +2 -0
  76. package/dist/affinda/p-6bbc1e24.entry.js.map +1 -0
  77. package/dist/affinda/p-709271d1.entry.js +2 -0
  78. package/dist/affinda/p-709271d1.entry.js.map +1 -0
  79. package/dist/affinda/{p-8ea22b5d.entry.js → p-7792cd53.entry.js} +2 -2
  80. package/dist/affinda/p-7b2671c4.entry.js +2 -0
  81. package/dist/affinda/p-7b2671c4.entry.js.map +1 -0
  82. package/dist/affinda/{p-85a78bcf.entry.js → p-8f24dfe3.entry.js} +2 -2
  83. package/dist/affinda/p-8f528f9d.entry.js +2 -0
  84. package/dist/affinda/p-8f528f9d.entry.js.map +1 -0
  85. package/dist/affinda/{p-44b25840.entry.js → p-920e6d30.entry.js} +2 -2
  86. package/dist/affinda/{p-10801ee1.entry.js → p-96df0106.entry.js} +2 -2
  87. package/dist/affinda/p-9de05d1d.entry.js +2 -0
  88. package/dist/affinda/p-9de05d1d.entry.js.map +1 -0
  89. package/dist/affinda/{p-a36abb83.entry.js → p-9e21b6c1.entry.js} +2 -2
  90. package/dist/affinda/{p-BmU_CFQ4.js → p-B0LVveHp.js} +3 -3
  91. package/dist/affinda/p-B0LVveHp.js.map +1 -0
  92. package/dist/affinda/{p-c11088fa.entry.js → p-a2c71cad.entry.js} +2 -2
  93. package/dist/affinda/p-a6402689.entry.js +2 -0
  94. package/dist/affinda/{p-be049760.entry.js.map → p-a6402689.entry.js.map} +1 -1
  95. package/dist/affinda/p-a7574570.entry.js +2 -0
  96. package/dist/affinda/{p-98901734.entry.js.map → p-a7574570.entry.js.map} +1 -1
  97. package/dist/affinda/p-a942522f.entry.js +2 -0
  98. package/dist/affinda/{p-c0ee2420.entry.js.map → p-a942522f.entry.js.map} +1 -1
  99. package/dist/affinda/{p-96eac3af.entry.js → p-adacb8c4.entry.js} +2 -2
  100. package/dist/affinda/p-af25dad7.entry.js +2 -0
  101. package/dist/affinda/{p-ce3356f1.entry.js.map → p-af25dad7.entry.js.map} +1 -1
  102. package/dist/affinda/p-b0d668d0.entry.js +2 -0
  103. package/dist/affinda/p-b0d668d0.entry.js.map +1 -0
  104. package/dist/affinda/{p-e5d9913c.entry.js → p-b10103f4.entry.js} +2 -2
  105. package/dist/affinda/p-b2338fab.entry.js +2 -0
  106. package/dist/affinda/{p-c298b370.entry.js.map → p-b2338fab.entry.js.map} +1 -1
  107. package/dist/affinda/p-b56e9e2d.entry.js +2 -0
  108. package/dist/affinda/p-b56e9e2d.entry.js.map +1 -0
  109. package/dist/affinda/p-b68748ab.entry.js +2 -0
  110. package/dist/affinda/p-b68748ab.entry.js.map +1 -0
  111. package/dist/affinda/{p-1d9e532f.entry.js → p-bd7170d7.entry.js} +2 -2
  112. package/dist/affinda/p-c72cfcbd.entry.js +2 -0
  113. package/dist/affinda/p-c72cfcbd.entry.js.map +1 -0
  114. package/dist/affinda/p-c74481bd.entry.js +2 -0
  115. package/dist/affinda/p-c74481bd.entry.js.map +1 -0
  116. package/dist/affinda/{p-0cd160a4.entry.js → p-cc4e73dc.entry.js} +2 -2
  117. package/dist/affinda/p-d47a77e2.entry.js +2 -0
  118. package/dist/affinda/p-d47a77e2.entry.js.map +1 -0
  119. package/dist/affinda/{p-3d3c9f62.entry.js → p-d51c4b1b.entry.js} +2 -2
  120. package/dist/affinda/p-d6e55455.entry.js +2 -0
  121. package/dist/affinda/{p-81571029.entry.js → p-d90366f6.entry.js} +2 -2
  122. package/dist/affinda/{p-31d4c1a4.entry.js → p-db9249e4.entry.js} +2 -2
  123. package/dist/affinda/p-e156a8bb.entry.js +2 -0
  124. package/dist/affinda/p-e156a8bb.entry.js.map +1 -0
  125. package/dist/affinda/{p-5bbf2c8c.entry.js → p-e305c2b7.entry.js} +2 -2
  126. package/dist/affinda/{p-71144002.entry.js → p-e7d8d909.entry.js} +2 -2
  127. package/dist/affinda/p-e9bc1739.entry.js +2 -0
  128. package/dist/affinda/p-e9bc1739.entry.js.map +1 -0
  129. package/dist/affinda/p-f1a5d268.entry.js +2 -0
  130. package/dist/affinda/p-f1a5d268.entry.js.map +1 -0
  131. package/dist/affinda/{p-425253ee.entry.js → p-f7a13cd3.entry.js} +2 -2
  132. package/dist/affinda/p-f9e7cf8f.entry.js +2 -0
  133. package/dist/affinda/p-f9e7cf8f.entry.js.map +1 -0
  134. package/dist/affinda/p-fd772813.entry.js +2 -0
  135. package/dist/affinda/p-fefe9597.entry.js +2 -0
  136. package/dist/cjs/af-accordion-item.cjs.entry.js +105 -0
  137. package/dist/cjs/af-accordion-item.entry.cjs.js.map +1 -0
  138. package/dist/cjs/af-accordion.cjs.entry.js +102 -0
  139. package/dist/cjs/af-accordion.entry.cjs.js.map +1 -0
  140. package/dist/cjs/af-aspect-ratio.cjs.entry.js +1 -1
  141. package/dist/cjs/af-button-group.cjs.entry.js +2 -2
  142. package/dist/cjs/af-button.cjs.entry.js +1 -1
  143. package/dist/cjs/af-button.entry.cjs.js.map +1 -1
  144. package/dist/cjs/af-card.cjs.entry.js +3 -3
  145. package/dist/cjs/af-card.entry.cjs.js.map +1 -1
  146. package/dist/cjs/af-center.cjs.entry.js +42 -0
  147. package/dist/cjs/af-center.entry.cjs.js.map +1 -0
  148. package/dist/cjs/af-checkbox.cjs.entry.js +3 -3
  149. package/dist/cjs/af-checkbox.entry.cjs.js.map +1 -1
  150. package/dist/cjs/af-client-carousel.cjs.entry.js +2 -2
  151. package/dist/cjs/af-color-swatch.cjs.entry.js +1 -1
  152. package/dist/cjs/af-contact-item.cjs.entry.js +2 -2
  153. package/dist/cjs/af-container.cjs.entry.js +1 -1
  154. package/dist/cjs/af-divider.cjs.entry.js +43 -0
  155. package/dist/cjs/af-divider.entry.cjs.js.map +1 -0
  156. package/dist/cjs/af-feature-accordion.cjs.entry.js +3 -3
  157. package/dist/cjs/af-feature-card.cjs.entry.js +2 -2
  158. package/dist/cjs/af-feature-card.entry.cjs.js.map +1 -1
  159. package/dist/cjs/af-feature-grid.cjs.entry.js +2 -2
  160. package/dist/cjs/af-fieldset.cjs.entry.js +3 -3
  161. package/dist/cjs/af-fieldset.entry.cjs.js.map +1 -1
  162. package/dist/cjs/af-footer-column.cjs.entry.js +2 -2
  163. package/dist/cjs/af-footer-link.cjs.entry.js +2 -2
  164. package/dist/cjs/af-footer.cjs.entry.js +2 -2
  165. package/dist/cjs/af-grid-callout.cjs.entry.js +1 -1
  166. package/dist/cjs/af-grid.cjs.entry.js +44 -0
  167. package/dist/cjs/af-grid.entry.cjs.js.map +1 -0
  168. package/dist/cjs/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.cjs.js.map +1 -1
  169. package/dist/cjs/af-heading_5.cjs.entry.js +17 -17
  170. package/dist/cjs/af-icon-box.cjs.entry.js +2 -2
  171. package/dist/cjs/af-icon-button.cjs.entry.js +1 -1
  172. package/dist/cjs/af-icon-text.cjs.entry.js +2 -2
  173. package/dist/cjs/af-icon.cjs.entry.js +1 -1
  174. package/dist/cjs/af-illustrated-card.cjs.entry.js +2 -2
  175. package/dist/cjs/af-image.cjs.entry.js +2 -2
  176. package/dist/cjs/af-in-page-banner.cjs.entry.js +2 -2
  177. package/dist/cjs/af-inline.cjs.entry.js +58 -0
  178. package/dist/cjs/af-inline.entry.cjs.js.map +1 -0
  179. package/dist/cjs/af-input.cjs.entry.js +3 -3
  180. package/dist/cjs/af-input.entry.cjs.js.map +1 -1
  181. package/dist/cjs/af-logo-well.cjs.entry.js +2 -2
  182. package/dist/cjs/af-nav-accordion-item.cjs.entry.js +86 -0
  183. package/dist/cjs/af-nav-accordion-item.entry.cjs.js.map +1 -0
  184. package/dist/cjs/af-nav-accordion.cjs.entry.js +82 -0
  185. package/dist/cjs/af-nav-accordion.entry.cjs.js.map +1 -0
  186. package/dist/cjs/af-nav-card.cjs.entry.js +2 -2
  187. package/dist/cjs/af-nav-card.entry.cjs.js.map +1 -1
  188. package/dist/cjs/af-nav-menu-nest.cjs.entry.js +4 -3
  189. package/dist/cjs/af-nav-menu-nest.entry.cjs.js.map +1 -1
  190. package/dist/cjs/af-nav-menu.cjs.entry.js +3 -3
  191. package/dist/cjs/af-nav-menu.entry.cjs.js.map +1 -1
  192. package/dist/cjs/af-number-badge.cjs.entry.js +2 -2
  193. package/dist/cjs/af-progress-line.cjs.entry.js +3 -3
  194. package/dist/cjs/af-radio.cjs.entry.js +15 -6
  195. package/dist/cjs/af-radio.entry.cjs.js.map +1 -1
  196. package/dist/cjs/af-section.cjs.entry.js +4 -4
  197. package/dist/cjs/af-section.entry.cjs.js.map +1 -1
  198. package/dist/cjs/af-show.cjs.entry.js +23 -0
  199. package/dist/cjs/af-show.entry.cjs.js.map +1 -0
  200. package/dist/cjs/af-social-link.cjs.entry.js +2 -2
  201. package/dist/cjs/af-spacer.cjs.entry.js +45 -0
  202. package/dist/cjs/af-spacer.entry.cjs.js.map +1 -0
  203. package/dist/cjs/af-split-section.cjs.entry.js +4 -4
  204. package/dist/cjs/af-split-section.entry.cjs.js.map +1 -1
  205. package/dist/cjs/af-stack.cjs.entry.js +64 -0
  206. package/dist/cjs/af-stack.entry.cjs.js.map +1 -0
  207. package/dist/cjs/af-switch.cjs.entry.js +3 -3
  208. package/dist/cjs/af-switch.entry.cjs.js.map +1 -1
  209. package/dist/cjs/af-tab-bar.cjs.entry.js +2 -2
  210. package/dist/cjs/af-tab.cjs.entry.js +2 -2
  211. package/dist/cjs/af-tag.cjs.entry.js +3 -3
  212. package/dist/cjs/af-testimonial-carousel.cjs.entry.js +2 -2
  213. package/dist/cjs/af-testimonial-stat.cjs.entry.js +2 -2
  214. package/dist/cjs/af-testimonial.cjs.entry.js +3 -3
  215. package/dist/cjs/af-text-image-nest.cjs.entry.js +2 -2
  216. package/dist/cjs/af-text-image.cjs.entry.js +1 -1
  217. package/dist/cjs/af-textarea.cjs.entry.js +3 -3
  218. package/dist/cjs/af-textarea.entry.cjs.js.map +1 -1
  219. package/dist/cjs/af-theme-override.cjs.entry.js +23 -0
  220. package/dist/cjs/af-theme-override.entry.cjs.js.map +1 -0
  221. package/dist/cjs/af-typography-lockup.cjs.entry.js +22 -9
  222. package/dist/cjs/af-typography-lockup.entry.cjs.js.map +1 -1
  223. package/dist/cjs/af-video-container.cjs.entry.js +2 -2
  224. package/dist/cjs/af-visually-hidden.cjs.entry.js +23 -0
  225. package/dist/cjs/af-visually-hidden.entry.cjs.js.map +1 -0
  226. package/dist/cjs/affinda.cjs.js +2 -2
  227. package/dist/cjs/{index-ybEiHT0b.js → index-n-fnurTP.js} +19 -2
  228. package/dist/cjs/index-n-fnurTP.js.map +1 -0
  229. package/dist/cjs/index.cjs.js +1 -1
  230. package/dist/cjs/loader.cjs.js +2 -2
  231. package/dist/collection/collection-manifest.json +14 -2
  232. package/dist/collection/components/af-accordion/af-accordion.css +21 -0
  233. package/dist/collection/components/af-accordion/af-accordion.js +207 -0
  234. package/dist/collection/components/af-accordion/af-accordion.js.map +1 -0
  235. package/dist/collection/components/af-accordion-item/af-accordion-item.css +86 -0
  236. package/dist/collection/components/af-accordion-item/af-accordion-item.js +224 -0
  237. package/dist/collection/components/af-accordion-item/af-accordion-item.js.map +1 -0
  238. package/dist/collection/components/af-button/af-button.js +1 -1
  239. package/dist/collection/components/af-button/af-button.js.map +1 -1
  240. package/dist/collection/components/af-button-group/af-button-group.js +1 -1
  241. package/dist/collection/components/af-card/af-card.css +11 -0
  242. package/dist/collection/components/af-card/af-card.js +1 -1
  243. package/dist/collection/components/af-center/af-center.css +9 -0
  244. package/dist/collection/components/af-center/af-center.js +119 -0
  245. package/dist/collection/components/af-center/af-center.js.map +1 -0
  246. package/dist/collection/components/af-checkbox/af-checkbox.css +31 -18
  247. package/dist/collection/components/af-checkbox/af-checkbox.js +1 -1
  248. package/dist/collection/components/af-client-carousel/af-client-carousel.js +1 -1
  249. package/dist/collection/components/af-contact-item/af-contact-item.js +1 -1
  250. package/dist/collection/components/af-divider/af-divider.css +25 -0
  251. package/dist/collection/components/af-divider/af-divider.js +104 -0
  252. package/dist/collection/components/af-divider/af-divider.js.map +1 -0
  253. package/dist/collection/components/af-feature-accordion/af-feature-accordion.js +2 -2
  254. package/dist/collection/components/af-feature-card/af-feature-card.css +12 -0
  255. package/dist/collection/components/af-feature-grid/af-feature-grid.js +1 -1
  256. package/dist/collection/components/af-fieldset/af-fieldset.css +2 -1
  257. package/dist/collection/components/af-fieldset/af-fieldset.js +1 -1
  258. package/dist/collection/components/af-footer/af-footer.js +1 -1
  259. package/dist/collection/components/af-footer-column/af-footer-column.js +1 -1
  260. package/dist/collection/components/af-footer-link/af-footer-link.js +1 -1
  261. package/dist/collection/components/af-grid/af-grid.css +37 -0
  262. package/dist/collection/components/af-grid/af-grid.js +204 -0
  263. package/dist/collection/components/af-grid/af-grid.js.map +1 -0
  264. package/dist/collection/components/af-heading/af-heading.css +5 -1
  265. package/dist/collection/components/af-heading/af-heading.js +9 -9
  266. package/dist/collection/components/af-heading/af-heading.js.map +1 -1
  267. package/dist/collection/components/af-icon/af-icon.js +1 -1
  268. package/dist/collection/components/af-icon-box/af-icon-box.js +2 -2
  269. package/dist/collection/components/af-icon-text/af-icon-text.js +2 -2
  270. package/dist/collection/components/af-illustrated-card/af-illustrated-card.js +1 -1
  271. package/dist/collection/components/af-image/af-image.js +1 -1
  272. package/dist/collection/components/af-in-page-banner/af-in-page-banner.js +1 -1
  273. package/dist/collection/components/af-inline/af-inline.css +9 -0
  274. package/dist/collection/components/af-inline/af-inline.js +166 -0
  275. package/dist/collection/components/af-inline/af-inline.js.map +1 -0
  276. package/dist/collection/components/af-input/af-input.css +25 -25
  277. package/dist/collection/components/af-input/af-input.js +1 -1
  278. package/dist/collection/components/af-logo/af-logo.css +1 -1
  279. package/dist/collection/components/af-logo/af-logo.js +1 -1
  280. package/dist/collection/components/af-logo-well/af-logo-well.js +1 -1
  281. package/dist/collection/components/af-nav-accordion/af-nav-accordion.css +21 -0
  282. package/dist/collection/components/af-nav-accordion/af-nav-accordion.js +185 -0
  283. package/dist/collection/components/af-nav-accordion/af-nav-accordion.js.map +1 -0
  284. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.css +146 -0
  285. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.js +265 -0
  286. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.js.map +1 -0
  287. package/dist/collection/components/af-nav-card/af-nav-card.js +1 -1
  288. package/dist/collection/components/af-nav-card/af-nav-card.js.map +1 -1
  289. package/dist/collection/components/af-nav-item/af-nav-item.css +21 -15
  290. package/dist/collection/components/af-nav-item/af-nav-item.js +2 -2
  291. package/dist/collection/components/af-nav-item/af-nav-item.js.map +1 -1
  292. package/dist/collection/components/af-nav-menu/af-nav-menu.css +4 -4
  293. package/dist/collection/components/af-nav-menu/af-nav-menu.js +2 -2
  294. package/dist/collection/components/af-nav-menu/af-nav-menu.js.map +1 -1
  295. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.css +5 -5
  296. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.js +3 -2
  297. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.js.map +1 -1
  298. package/dist/collection/components/af-navbar/af-navbar.css +164 -46
  299. package/dist/collection/components/af-navbar/af-navbar.js +36 -2
  300. package/dist/collection/components/af-navbar/af-navbar.js.map +1 -1
  301. package/dist/collection/components/af-number-badge/af-number-badge.js +1 -1
  302. package/dist/collection/components/af-progress-line/af-progress-line.js +2 -2
  303. package/dist/collection/components/af-radio/af-radio.css +35 -18
  304. package/dist/collection/components/af-radio/af-radio.js +17 -7
  305. package/dist/collection/components/af-radio/af-radio.js.map +1 -1
  306. package/dist/collection/components/af-section/af-section.css +139 -0
  307. package/dist/collection/components/af-section/af-section.js +4 -4
  308. package/dist/collection/components/af-section/af-section.js.map +1 -1
  309. package/dist/collection/components/af-show/af-show.css +78 -0
  310. package/dist/collection/components/af-show/af-show.js +88 -0
  311. package/dist/collection/components/af-show/af-show.js.map +1 -0
  312. package/dist/collection/components/af-social-link/af-social-link.js +1 -1
  313. package/dist/collection/components/af-spacer/af-spacer.css +10 -0
  314. package/dist/collection/components/af-spacer/af-spacer.js +120 -0
  315. package/dist/collection/components/af-spacer/af-spacer.js.map +1 -0
  316. package/dist/collection/components/af-split-section/af-split-section.css +4 -0
  317. package/dist/collection/components/af-split-section/af-split-section.js +4 -4
  318. package/dist/collection/components/af-split-section/af-split-section.js.map +1 -1
  319. package/dist/collection/components/af-stack/af-stack.css +9 -0
  320. package/dist/collection/components/af-stack/af-stack.js +197 -0
  321. package/dist/collection/components/af-stack/af-stack.js.map +1 -0
  322. package/dist/collection/components/af-switch/af-switch.css +15 -9
  323. package/dist/collection/components/af-switch/af-switch.js +1 -1
  324. package/dist/collection/components/af-tab/af-tab.js +1 -1
  325. package/dist/collection/components/af-tab-bar/af-tab-bar.js +1 -1
  326. package/dist/collection/components/af-tag/af-tag.js +2 -2
  327. package/dist/collection/components/af-testimonial/af-testimonial.js +2 -2
  328. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js +1 -1
  329. package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js +1 -1
  330. package/dist/collection/components/af-text/af-text.css +2 -0
  331. package/dist/collection/components/af-text/af-text.js +8 -11
  332. package/dist/collection/components/af-text/af-text.js.map +1 -1
  333. package/dist/collection/components/af-text-image-nest/af-text-image-nest.js +1 -1
  334. package/dist/collection/components/af-textarea/af-textarea.css +22 -21
  335. package/dist/collection/components/af-textarea/af-textarea.js +1 -1
  336. package/dist/collection/components/af-theme-override/af-theme-override.css +376 -0
  337. package/dist/collection/components/af-theme-override/af-theme-override.js +60 -0
  338. package/dist/collection/components/af-theme-override/af-theme-override.js.map +1 -0
  339. package/dist/collection/components/af-typography-lockup/af-typography-lockup.css +57 -20
  340. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js +104 -14
  341. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js.map +1 -1
  342. package/dist/collection/components/af-video-container/af-video-container.js +1 -1
  343. package/dist/collection/components/af-visually-hidden/af-visually-hidden.css +23 -0
  344. package/dist/collection/components/af-visually-hidden/af-visually-hidden.js +57 -0
  345. package/dist/collection/components/af-visually-hidden/af-visually-hidden.js.map +1 -0
  346. package/dist/components/af-accordion-item.d.ts +11 -0
  347. package/dist/components/af-accordion-item.js +133 -0
  348. package/dist/components/af-accordion-item.js.map +1 -0
  349. package/dist/components/{af-hero-section.d.ts → af-accordion.d.ts} +4 -4
  350. package/dist/components/af-accordion.js +128 -0
  351. package/dist/components/af-accordion.js.map +1 -0
  352. package/dist/components/af-button-group.js +1 -1
  353. package/dist/components/af-card.js +1 -1
  354. package/dist/components/af-center.d.ts +11 -0
  355. package/dist/components/af-center.js +66 -0
  356. package/dist/components/af-center.js.map +1 -0
  357. package/dist/components/af-checkbox.js +1 -1
  358. package/dist/components/af-client-carousel.js +1 -1
  359. package/dist/components/af-contact-item.js +1 -1
  360. package/dist/components/af-divider.d.ts +11 -0
  361. package/dist/components/af-divider.js +66 -0
  362. package/dist/components/af-divider.js.map +1 -0
  363. package/dist/components/af-feature-accordion.js +2 -2
  364. package/dist/components/af-feature-card.js +1 -1
  365. package/dist/components/af-feature-grid.js +2 -2
  366. package/dist/components/af-fieldset.js +1 -1
  367. package/dist/components/af-footer-column.js +1 -1
  368. package/dist/components/af-footer-link.js +1 -1
  369. package/dist/components/af-footer.js +1 -1
  370. package/dist/components/af-grid-callout.js +1 -1
  371. package/dist/components/af-grid.d.ts +11 -0
  372. package/dist/components/af-grid.js +71 -0
  373. package/dist/components/af-grid.js.map +1 -0
  374. package/dist/components/af-heading.js +1 -1
  375. package/dist/components/af-icon-box.js +1 -1
  376. package/dist/components/af-icon-text.js +3 -3
  377. package/dist/components/af-illustrated-card.js +1 -1
  378. package/dist/components/af-image.js +1 -1
  379. package/dist/components/af-in-page-banner.js +1 -1
  380. package/dist/components/af-inline.d.ts +11 -0
  381. package/dist/components/af-inline.js +83 -0
  382. package/dist/components/af-inline.js.map +1 -0
  383. package/dist/components/af-input.js +1 -1
  384. package/dist/components/af-logo-well.js +1 -1
  385. package/dist/components/af-logo.js +1 -1
  386. package/dist/components/af-nav-accordion-item.d.ts +11 -0
  387. package/dist/components/af-nav-accordion-item.js +117 -0
  388. package/dist/components/af-nav-accordion-item.js.map +1 -0
  389. package/dist/components/af-nav-accordion.d.ts +11 -0
  390. package/dist/components/af-nav-accordion.js +106 -0
  391. package/dist/components/af-nav-accordion.js.map +1 -0
  392. package/dist/components/af-nav-card.js +2 -3
  393. package/dist/components/af-nav-card.js.map +1 -1
  394. package/dist/components/af-nav-item.js +1 -1
  395. package/dist/components/af-nav-menu-nest.js +4 -4
  396. package/dist/components/af-nav-menu-nest.js.map +1 -1
  397. package/dist/components/af-nav-menu.js +3 -4
  398. package/dist/components/af-nav-menu.js.map +1 -1
  399. package/dist/components/af-navbar.js +1 -1
  400. package/dist/components/af-number-badge.js +1 -1
  401. package/dist/components/af-progress-line.js +1 -1
  402. package/dist/components/af-radio.js +1 -1
  403. package/dist/components/af-section.js +3 -3
  404. package/dist/components/af-section.js.map +1 -1
  405. package/dist/components/af-show.d.ts +11 -0
  406. package/dist/components/af-show.js +46 -0
  407. package/dist/components/af-show.js.map +1 -0
  408. package/dist/components/af-social-link.js +1 -1
  409. package/dist/components/af-spacer.d.ts +11 -0
  410. package/dist/components/af-spacer.js +69 -0
  411. package/dist/components/af-spacer.js.map +1 -0
  412. package/dist/components/af-split-section.js +3 -3
  413. package/dist/components/af-split-section.js.map +1 -1
  414. package/dist/components/af-stack.d.ts +11 -0
  415. package/dist/components/af-stack.js +90 -0
  416. package/dist/components/af-stack.js.map +1 -0
  417. package/dist/components/af-switch.js +1 -1
  418. package/dist/components/af-tab-bar.js +1 -1
  419. package/dist/components/af-tab.js +1 -1
  420. package/dist/components/af-tag.js +1 -1
  421. package/dist/components/af-testimonial-carousel.js +2 -2
  422. package/dist/components/af-testimonial-stat.js +3 -3
  423. package/dist/components/af-testimonial.js +3 -3
  424. package/dist/components/af-text-image-nest.js +1 -1
  425. package/dist/components/af-text-image.js +1 -1
  426. package/dist/components/af-text.js +1 -1
  427. package/dist/components/af-textarea.js +1 -1
  428. package/dist/components/af-theme-override.d.ts +11 -0
  429. package/dist/components/af-theme-override.js +44 -0
  430. package/dist/components/af-theme-override.js.map +1 -0
  431. package/dist/components/af-typography-lockup.js +1 -1
  432. package/dist/components/af-video-container.js +1 -1
  433. package/dist/components/af-visually-hidden.d.ts +11 -0
  434. package/dist/components/af-visually-hidden.js +45 -0
  435. package/dist/components/af-visually-hidden.js.map +1 -0
  436. package/dist/components/index.js +18 -18
  437. package/dist/components/p-B7bjlUCu.js +94 -0
  438. package/dist/components/p-B7bjlUCu.js.map +1 -0
  439. package/dist/components/p-BBVslKpK.js +59 -0
  440. package/dist/components/p-BBVslKpK.js.map +1 -0
  441. package/dist/components/{p-DZ-qivXD.js → p-BUoRUEpQ.js} +3 -3
  442. package/dist/components/{p-DZ-qivXD.js.map → p-BUoRUEpQ.js.map} +1 -1
  443. package/dist/components/p-BXcRGkhD.js +94 -0
  444. package/dist/components/p-BXcRGkhD.js.map +1 -0
  445. package/dist/components/{p-Cqp0DdgH.js → p-Bi5ytUXg.js} +4 -4
  446. package/dist/components/{p-Cqp0DdgH.js.map → p-Bi5ytUXg.js.map} +1 -1
  447. package/dist/components/{p-xDRMXxWJ.js → p-BvIMp8pz.js} +3 -3
  448. package/dist/components/{p-xDRMXxWJ.js.map → p-BvIMp8pz.js.map} +1 -1
  449. package/dist/components/{p-Dvi1lz3x.js → p-C8_mFdv5.js} +4 -4
  450. package/dist/components/{p-Dvi1lz3x.js.map → p-C8_mFdv5.js.map} +1 -1
  451. package/dist/components/{p-ByHIHg3l.js → p-CAYG3IzP.js} +3 -3
  452. package/dist/components/{p-ByHIHg3l.js.map → p-CAYG3IzP.js.map} +1 -1
  453. package/dist/components/{p-D99aXp3U.js → p-CLmCtN_R.js} +4 -4
  454. package/dist/components/p-CLmCtN_R.js.map +1 -0
  455. package/dist/components/p-CUSad8vm.js +74 -0
  456. package/dist/components/p-CUSad8vm.js.map +1 -0
  457. package/dist/components/p-C_B4CNrh.js +94 -0
  458. package/dist/components/p-C_B4CNrh.js.map +1 -0
  459. package/dist/components/p-ChgW4Hec.js +100 -0
  460. package/dist/components/p-ChgW4Hec.js.map +1 -0
  461. package/dist/components/{p-CCAq3Zj6.js → p-CnNV1GZE.js} +5 -5
  462. package/dist/components/{p-CCAq3Zj6.js.map → p-CnNV1GZE.js.map} +1 -1
  463. package/dist/components/p-CxngDK-N.js.map +1 -1
  464. package/dist/components/{p-wwnR-hlX.js → p-D66k2SSB.js} +4 -4
  465. package/dist/components/{p-wwnR-hlX.js.map → p-D66k2SSB.js.map} +1 -1
  466. package/dist/components/p-DBnL9UHx.js.map +1 -1
  467. package/dist/components/{p-DOkvrcIE.js → p-DReSTue0.js} +6 -8
  468. package/dist/components/p-DReSTue0.js.map +1 -0
  469. package/dist/components/p-DUQu3N38.js +70 -0
  470. package/dist/components/p-DUQu3N38.js.map +1 -0
  471. package/dist/components/{p-DhdRcSve.js → p-DZ6UMG8G.js} +3 -3
  472. package/dist/components/{p-DhdRcSve.js.map → p-DZ6UMG8G.js.map} +1 -1
  473. package/dist/components/p-Dd7Lt2QL.js +81 -0
  474. package/dist/components/p-Dd7Lt2QL.js.map +1 -0
  475. package/dist/components/p-DkvJiyn0.js +73 -0
  476. package/dist/components/p-DkvJiyn0.js.map +1 -0
  477. package/dist/components/{p-C0f6y_zg.js → p-Dt2AsNUz.js} +5 -5
  478. package/dist/components/p-Dt2AsNUz.js.map +1 -0
  479. package/dist/components/p-Dvo_cxk-.js +141 -0
  480. package/dist/components/p-Dvo_cxk-.js.map +1 -0
  481. package/dist/components/{p-CZyCImor.js → p-Dwhi37rN.js} +4 -4
  482. package/dist/components/p-Dwhi37rN.js.map +1 -0
  483. package/dist/components/p-WmKa3rDn.js +94 -0
  484. package/dist/components/p-WmKa3rDn.js.map +1 -0
  485. package/dist/components/{p-l95vl6T1.js → p-Ws-qvw9w.js} +3 -3
  486. package/dist/components/{p-l95vl6T1.js.map → p-Ws-qvw9w.js.map} +1 -1
  487. package/dist/components/p-hOnulRmz.js +84 -0
  488. package/dist/components/p-hOnulRmz.js.map +1 -0
  489. package/dist/components/p-nwZ2iAi9.js +100 -0
  490. package/dist/components/p-nwZ2iAi9.js.map +1 -0
  491. package/dist/components/p-pDs2K2nD.js +100 -0
  492. package/dist/components/p-pDs2K2nD.js.map +1 -0
  493. package/dist/components/{p-BRsO61_R.js → p-zDoPXonz.js} +4 -4
  494. package/dist/components/p-zDoPXonz.js.map +1 -0
  495. package/dist/esm/af-accordion-item.entry.js +103 -0
  496. package/dist/esm/af-accordion-item.entry.js.map +1 -0
  497. package/dist/esm/af-accordion.entry.js +100 -0
  498. package/dist/esm/af-accordion.entry.js.map +1 -0
  499. package/dist/esm/af-aspect-ratio.entry.js +1 -1
  500. package/dist/esm/af-button-group.entry.js +2 -2
  501. package/dist/esm/af-button.entry.js +1 -1
  502. package/dist/esm/af-button.entry.js.map +1 -1
  503. package/dist/esm/af-card.entry.js +3 -3
  504. package/dist/esm/af-card.entry.js.map +1 -1
  505. package/dist/esm/af-center.entry.js +40 -0
  506. package/dist/esm/af-center.entry.js.map +1 -0
  507. package/dist/esm/af-checkbox.entry.js +3 -3
  508. package/dist/esm/af-checkbox.entry.js.map +1 -1
  509. package/dist/esm/af-client-carousel.entry.js +2 -2
  510. package/dist/esm/af-color-swatch.entry.js +1 -1
  511. package/dist/esm/af-contact-item.entry.js +2 -2
  512. package/dist/esm/af-container.entry.js +1 -1
  513. package/dist/esm/af-divider.entry.js +41 -0
  514. package/dist/esm/af-divider.entry.js.map +1 -0
  515. package/dist/esm/af-feature-accordion.entry.js +3 -3
  516. package/dist/esm/af-feature-card.entry.js +2 -2
  517. package/dist/esm/af-feature-card.entry.js.map +1 -1
  518. package/dist/esm/af-feature-grid.entry.js +2 -2
  519. package/dist/esm/af-fieldset.entry.js +3 -3
  520. package/dist/esm/af-fieldset.entry.js.map +1 -1
  521. package/dist/esm/af-footer-column.entry.js +2 -2
  522. package/dist/esm/af-footer-link.entry.js +2 -2
  523. package/dist/esm/af-footer.entry.js +2 -2
  524. package/dist/esm/af-grid-callout.entry.js +1 -1
  525. package/dist/esm/af-grid.entry.js +42 -0
  526. package/dist/esm/af-grid.entry.js.map +1 -0
  527. package/dist/esm/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js.map +1 -1
  528. package/dist/esm/af-heading_5.entry.js +17 -17
  529. package/dist/esm/af-icon-box.entry.js +2 -2
  530. package/dist/esm/af-icon-button.entry.js +1 -1
  531. package/dist/esm/af-icon-text.entry.js +2 -2
  532. package/dist/esm/af-icon.entry.js +1 -1
  533. package/dist/esm/af-illustrated-card.entry.js +2 -2
  534. package/dist/esm/af-image.entry.js +2 -2
  535. package/dist/esm/af-in-page-banner.entry.js +2 -2
  536. package/dist/esm/af-inline.entry.js +56 -0
  537. package/dist/esm/af-inline.entry.js.map +1 -0
  538. package/dist/esm/af-input.entry.js +3 -3
  539. package/dist/esm/af-input.entry.js.map +1 -1
  540. package/dist/esm/af-logo-well.entry.js +2 -2
  541. package/dist/esm/af-nav-accordion-item.entry.js +84 -0
  542. package/dist/esm/af-nav-accordion-item.entry.js.map +1 -0
  543. package/dist/esm/af-nav-accordion.entry.js +80 -0
  544. package/dist/esm/af-nav-accordion.entry.js.map +1 -0
  545. package/dist/esm/af-nav-card.entry.js +2 -2
  546. package/dist/esm/af-nav-card.entry.js.map +1 -1
  547. package/dist/esm/af-nav-menu-nest.entry.js +4 -3
  548. package/dist/esm/af-nav-menu-nest.entry.js.map +1 -1
  549. package/dist/esm/af-nav-menu.entry.js +3 -3
  550. package/dist/esm/af-nav-menu.entry.js.map +1 -1
  551. package/dist/esm/af-number-badge.entry.js +2 -2
  552. package/dist/esm/af-progress-line.entry.js +3 -3
  553. package/dist/esm/af-radio.entry.js +15 -6
  554. package/dist/esm/af-radio.entry.js.map +1 -1
  555. package/dist/esm/af-section.entry.js +4 -4
  556. package/dist/esm/af-section.entry.js.map +1 -1
  557. package/dist/esm/af-show.entry.js +21 -0
  558. package/dist/esm/af-show.entry.js.map +1 -0
  559. package/dist/esm/af-social-link.entry.js +2 -2
  560. package/dist/esm/af-spacer.entry.js +43 -0
  561. package/dist/esm/af-spacer.entry.js.map +1 -0
  562. package/dist/esm/af-split-section.entry.js +4 -4
  563. package/dist/esm/af-split-section.entry.js.map +1 -1
  564. package/dist/esm/af-stack.entry.js +62 -0
  565. package/dist/esm/af-stack.entry.js.map +1 -0
  566. package/dist/esm/af-switch.entry.js +3 -3
  567. package/dist/esm/af-switch.entry.js.map +1 -1
  568. package/dist/esm/af-tab-bar.entry.js +2 -2
  569. package/dist/esm/af-tab.entry.js +2 -2
  570. package/dist/esm/af-tag.entry.js +3 -3
  571. package/dist/esm/af-testimonial-carousel.entry.js +2 -2
  572. package/dist/esm/af-testimonial-stat.entry.js +2 -2
  573. package/dist/esm/af-testimonial.entry.js +3 -3
  574. package/dist/esm/af-text-image-nest.entry.js +2 -2
  575. package/dist/esm/af-text-image.entry.js +1 -1
  576. package/dist/esm/af-textarea.entry.js +3 -3
  577. package/dist/esm/af-textarea.entry.js.map +1 -1
  578. package/dist/esm/af-theme-override.entry.js +21 -0
  579. package/dist/esm/af-theme-override.entry.js.map +1 -0
  580. package/dist/esm/af-typography-lockup.entry.js +22 -9
  581. package/dist/esm/af-typography-lockup.entry.js.map +1 -1
  582. package/dist/esm/af-video-container.entry.js +2 -2
  583. package/dist/esm/af-visually-hidden.entry.js +21 -0
  584. package/dist/esm/af-visually-hidden.entry.js.map +1 -0
  585. package/dist/esm/affinda.js +3 -3
  586. package/dist/esm/{index-BmU_CFQ4.js → index-B0LVveHp.js} +19 -2
  587. package/dist/esm/index-B0LVveHp.js.map +1 -0
  588. package/dist/esm/index.js +1 -1
  589. package/dist/esm/loader.js +3 -3
  590. package/dist/types/components/af-accordion/af-accordion.d.ts +55 -0
  591. package/dist/types/components/af-accordion-item/af-accordion-item.d.ts +44 -0
  592. package/dist/types/components/af-button/af-button.d.ts +1 -1
  593. package/dist/types/components/af-center/af-center.d.ts +28 -0
  594. package/dist/types/components/af-divider/af-divider.d.ts +20 -0
  595. package/dist/types/components/af-grid/af-grid.d.ts +38 -0
  596. package/dist/types/components/af-heading/af-heading.d.ts +3 -3
  597. package/dist/types/components/af-inline/af-inline.d.ts +30 -0
  598. package/dist/types/components/af-nav-accordion/af-nav-accordion.d.ts +45 -0
  599. package/dist/types/components/af-nav-accordion-item/af-nav-accordion-item.d.ts +57 -0
  600. package/dist/types/components/af-navbar/af-navbar.d.ts +14 -0
  601. package/dist/types/components/af-radio/af-radio.d.ts +4 -1
  602. package/dist/types/components/af-section/af-section.d.ts +1 -1
  603. package/dist/types/components/af-show/af-show.d.ts +27 -0
  604. package/dist/types/components/af-spacer/af-spacer.d.ts +29 -0
  605. package/dist/types/components/af-split-section/af-split-section.d.ts +1 -1
  606. package/dist/types/components/af-stack/af-stack.d.ts +37 -0
  607. package/dist/types/components/af-text/af-text.d.ts +3 -3
  608. package/dist/types/components/af-theme-override/af-theme-override.d.ts +18 -0
  609. package/dist/types/components/af-typography-lockup/af-typography-lockup.d.ts +19 -4
  610. package/dist/types/components/af-visually-hidden/af-visually-hidden.d.ts +15 -0
  611. package/dist/types/components.d.ts +1006 -138
  612. package/package.json +6 -6
  613. package/dist/affinda/af-hero-section.entry.esm.js.map +0 -1
  614. package/dist/affinda/p-231ba1d0.entry.js +0 -2
  615. package/dist/affinda/p-3f691578.entry.js +0 -2
  616. package/dist/affinda/p-3f691578.entry.js.map +0 -1
  617. package/dist/affinda/p-53ae16fe.entry.js +0 -2
  618. package/dist/affinda/p-53b5149d.entry.js +0 -2
  619. package/dist/affinda/p-53b5149d.entry.js.map +0 -1
  620. package/dist/affinda/p-57713942.entry.js +0 -2
  621. package/dist/affinda/p-57713942.entry.js.map +0 -1
  622. package/dist/affinda/p-697bf0b7.entry.js +0 -2
  623. package/dist/affinda/p-6b2d0ff4.entry.js +0 -2
  624. package/dist/affinda/p-72f02343.entry.js +0 -2
  625. package/dist/affinda/p-7f20fbe0.entry.js +0 -2
  626. package/dist/affinda/p-864778d0.entry.js +0 -2
  627. package/dist/affinda/p-98901734.entry.js +0 -2
  628. package/dist/affinda/p-9f470d8b.entry.js +0 -2
  629. package/dist/affinda/p-9f470d8b.entry.js.map +0 -1
  630. package/dist/affinda/p-BmU_CFQ4.js.map +0 -1
  631. package/dist/affinda/p-aaa28806.entry.js +0 -2
  632. package/dist/affinda/p-aaa28806.entry.js.map +0 -1
  633. package/dist/affinda/p-be049760.entry.js +0 -2
  634. package/dist/affinda/p-c0ee2420.entry.js +0 -2
  635. package/dist/affinda/p-c298b370.entry.js +0 -2
  636. package/dist/affinda/p-c3e31251.entry.js +0 -2
  637. package/dist/affinda/p-ce3356f1.entry.js +0 -2
  638. package/dist/affinda/p-df148383.entry.js +0 -2
  639. package/dist/affinda/p-df148383.entry.js.map +0 -1
  640. package/dist/affinda/p-ea06c83b.entry.js +0 -2
  641. package/dist/cjs/af-hero-section.cjs.entry.js +0 -30
  642. package/dist/cjs/af-hero-section.entry.cjs.js.map +0 -1
  643. package/dist/cjs/index-ybEiHT0b.js.map +0 -1
  644. package/dist/collection/components/af-hero-section/af-hero-section.css +0 -175
  645. package/dist/collection/components/af-hero-section/af-hero-section.js +0 -186
  646. package/dist/collection/components/af-hero-section/af-hero-section.js.map +0 -1
  647. package/dist/components/af-hero-section.js +0 -69
  648. package/dist/components/af-hero-section.js.map +0 -1
  649. package/dist/components/p-BMp8QbY-.js +0 -68
  650. package/dist/components/p-BMp8QbY-.js.map +0 -1
  651. package/dist/components/p-BRN73McC.js +0 -59
  652. package/dist/components/p-BRN73McC.js.map +0 -1
  653. package/dist/components/p-BRsO61_R.js.map +0 -1
  654. package/dist/components/p-Bh4YP9vE.js +0 -74
  655. package/dist/components/p-Bh4YP9vE.js.map +0 -1
  656. package/dist/components/p-Br0VERLB.js +0 -81
  657. package/dist/components/p-Br0VERLB.js.map +0 -1
  658. package/dist/components/p-C0f6y_zg.js.map +0 -1
  659. package/dist/components/p-CZyCImor.js.map +0 -1
  660. package/dist/components/p-C_M8AOaj.js +0 -65
  661. package/dist/components/p-C_M8AOaj.js.map +0 -1
  662. package/dist/components/p-D99aXp3U.js.map +0 -1
  663. package/dist/components/p-DOkvrcIE.js.map +0 -1
  664. package/dist/components/p-DW5DrJlQ.js +0 -70
  665. package/dist/components/p-DW5DrJlQ.js.map +0 -1
  666. package/dist/components/p-DzkSL2bi.js +0 -141
  667. package/dist/components/p-DzkSL2bi.js.map +0 -1
  668. package/dist/components/p-_bQXTXUb.js +0 -98
  669. package/dist/components/p-_bQXTXUb.js.map +0 -1
  670. package/dist/esm/af-hero-section.entry.js +0 -28
  671. package/dist/esm/af-hero-section.entry.js.map +0 -1
  672. package/dist/esm/index-BmU_CFQ4.js.map +0 -1
  673. package/dist/types/components/af-hero-section/af-hero-section.d.ts +0 -27
  674. /package/dist/affinda/{p-acbbe39a.entry.js.map → p-01993cc8.entry.js.map} +0 -0
  675. /package/dist/affinda/{p-a4e4eb4d.entry.js.map → p-04de9a0a.entry.js.map} +0 -0
  676. /package/dist/affinda/{p-a6365e94.entry.js.map → p-080cf84f.entry.js.map} +0 -0
  677. /package/dist/affinda/{p-b3b0ed0c.entry.js.map → p-0b5bc045.entry.js.map} +0 -0
  678. /package/dist/affinda/{p-2b4dc22c.entry.js.map → p-16f808d5.entry.js.map} +0 -0
  679. /package/dist/affinda/{p-52ab3bf0.entry.js.map → p-19eb7cb9.entry.js.map} +0 -0
  680. /package/dist/affinda/{p-1d65fd18.entry.js.map → p-2e750d43.entry.js.map} +0 -0
  681. /package/dist/affinda/{p-861f4f57.entry.js.map → p-331f9627.entry.js.map} +0 -0
  682. /package/dist/affinda/{p-77bf8a81.entry.js.map → p-3d2fb635.entry.js.map} +0 -0
  683. /package/dist/affinda/{p-e5af21c2.entry.js.map → p-3e16bb11.entry.js.map} +0 -0
  684. /package/dist/affinda/{p-f45b0060.entry.js.map → p-63314e14.entry.js.map} +0 -0
  685. /package/dist/affinda/{p-45e1923c.entry.js.map → p-68f1f661.entry.js.map} +0 -0
  686. /package/dist/affinda/{p-b17735c9.entry.js.map → p-6af1634a.entry.js.map} +0 -0
  687. /package/dist/affinda/{p-8ea22b5d.entry.js.map → p-7792cd53.entry.js.map} +0 -0
  688. /package/dist/affinda/{p-85a78bcf.entry.js.map → p-8f24dfe3.entry.js.map} +0 -0
  689. /package/dist/affinda/{p-44b25840.entry.js.map → p-920e6d30.entry.js.map} +0 -0
  690. /package/dist/affinda/{p-10801ee1.entry.js.map → p-96df0106.entry.js.map} +0 -0
  691. /package/dist/affinda/{p-a36abb83.entry.js.map → p-9e21b6c1.entry.js.map} +0 -0
  692. /package/dist/affinda/{p-c11088fa.entry.js.map → p-a2c71cad.entry.js.map} +0 -0
  693. /package/dist/affinda/{p-96eac3af.entry.js.map → p-adacb8c4.entry.js.map} +0 -0
  694. /package/dist/affinda/{p-e5d9913c.entry.js.map → p-b10103f4.entry.js.map} +0 -0
  695. /package/dist/affinda/{p-1d9e532f.entry.js.map → p-bd7170d7.entry.js.map} +0 -0
  696. /package/dist/affinda/{p-0cd160a4.entry.js.map → p-cc4e73dc.entry.js.map} +0 -0
  697. /package/dist/affinda/{p-3d3c9f62.entry.js.map → p-d51c4b1b.entry.js.map} +0 -0
  698. /package/dist/affinda/{p-53ae16fe.entry.js.map → p-d6e55455.entry.js.map} +0 -0
  699. /package/dist/affinda/{p-81571029.entry.js.map → p-d90366f6.entry.js.map} +0 -0
  700. /package/dist/affinda/{p-31d4c1a4.entry.js.map → p-db9249e4.entry.js.map} +0 -0
  701. /package/dist/affinda/{p-5bbf2c8c.entry.js.map → p-e305c2b7.entry.js.map} +0 -0
  702. /package/dist/affinda/{p-71144002.entry.js.map → p-e7d8d909.entry.js.map} +0 -0
  703. /package/dist/affinda/{p-425253ee.entry.js.map → p-f7a13cd3.entry.js.map} +0 -0
  704. /package/dist/affinda/{p-72f02343.entry.js.map → p-fd772813.entry.js.map} +0 -0
  705. /package/dist/affinda/{p-6b2d0ff4.entry.js.map → p-fefe9597.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"file":"p-Dt2AsNUz.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-feature-card/af-feature-card.css?tag=af-feature-card&encapsulation=scoped","src/components/af-feature-card/af-feature-card.tsx"],"sourcesContent":["/* ==========================================================================\n Feature Card - Figma Specs\n \n Desktop Full-bleed: 544px × 660px, radius 32px\n Desktop Standard default: 544px width, radius 32px\n Desktop Standard large: 777px width, radius 32px\n Mobile Full-bleed: 335px × 442px, radius 24px\n Mobile Standard: 335px width, radius 24px\n ========================================================================== */\n\n/* ==========================================================================\n Host Element - Controls outer dimensions\n ========================================================================== */\n\n:host {\n display: block;\n --af-card-padding: 0;\n --af-card-gap: 0;\n}\n\n/* Fixed size hosts constrain to Figma dimensions */\n:host([card-size=\"default\"]) {\n width: 544px;\n}\n\n:host([card-size=\"large\"]) {\n width: 777px;\n}\n\n/* Flexible cards fill their container */\n:host([card-size=\"flexible\"]) {\n display: flex;\n width: 100%;\n height: 100%;\n}\n\n/* ==========================================================================\n Base Feature Card Styles\n ========================================================================== */\n\n.feature-card {\n overflow: hidden;\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n border-radius: var(--border-radius-card-level-1, 32px);\n width: 100%;\n height: 100%;\n}\n\n/* ==========================================================================\n Full Bleed Layout Mode\n Figma: 544px × 660px (desktop), 335px × 442px (mobile)\n ========================================================================== */\n\n.feature-card--layout-full-bleed {\n background: var(--background-base, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Full-bleed fixed sizes have explicit heights on host */\n:host([card-size=\"default\"]) .feature-card--layout-full-bleed,\n:host([card-size=\"large\"]) .feature-card--layout-full-bleed {\n height: 660px;\n}\n\n/* Full-bleed flexible minimum height */\n:host([card-size=\"flexible\"]) .feature-card--layout-full-bleed {\n min-height: 480px;\n}\n\n.feature-card__background {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 0;\n}\n\n.feature-card__background-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n}\n\n/* Overlay gradient with text */\n.feature-card__overlay {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n backdrop-filter: blur(2px);\n background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);\n z-index: 1;\n /* Desktop: pt-124px px-32px pb-32px */\n padding: 124px 32px 32px 32px;\n\n /* White text on dark overlay */\n --af-typography-heading-primary: var(--typography-heading-secondary, #ffffff);\n --af-typography-heading-secondary: var(--typography-heading-secondary, #ffffff);\n --af-typography-body-default: var(--typography-body-dark, #ffffff);\n --colour-typography-heading-primary: var(--typography-heading-secondary, #ffffff);\n --colour-typography-heading-secondary: var(--typography-heading-secondary, #ffffff);\n --colour-typography-body-default: var(--typography-body-dark, #ffffff);\n}\n\n/* ==========================================================================\n Standard Layout Mode\n \n Structure: .feature-card > af-card[stretch] > [content] + [image-area]\n \n When cardSize=\"flexible\", af-card receives stretch prop which enables\n the flex chain. Content grows to fill space, image stays at bottom.\n ========================================================================== */\n\n.feature-card--layout-standard {\n background: var(--background-level-1, var(--colour-mistgreen-200, #e8eeed));\n}\n\n/* Remove border-radius from inner af-card - outer .feature-card handles rounding */\n.feature-card--layout-standard af-card {\n --border-radius-card-level-1: 0;\n}\n\n/* Standard flexible minimum height */\n:host([card-size=\"flexible\"]) .feature-card--layout-standard {\n min-height: 400px;\n}\n\n/* Content area - grows to push image to bottom (when af-card has stretch) */\n.feature-card__content {\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n z-index: 1;\n /* Desktop default: pt-40px px-32px pb-12px */\n padding: 40px 32px 12px 32px;\n flex: 1 1 auto;\n}\n\n/* Large card content padding: pt-40px px-40px pb-0 */\n:host([card-size=\"large\"]) .feature-card__content {\n padding: 40px 40px 0 40px;\n}\n\n/* ==========================================================================\n Image Area (Standard Layout)\n Figma: 160px height (desktop), 192px height (mobile)\n ========================================================================== */\n\n.feature-card__image-area {\n position: relative;\n width: 100%;\n height: 160px;\n flex-shrink: 0;\n overflow: hidden;\n}\n\n.feature-card__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center top;\n}\n\n/* ==========================================================================\n Typography Lockup Styling\n ========================================================================== */\n\n.feature-card af-typography-lockup {\n --colour-typography-heading-primary: var(--af-typography-heading-primary, var(--typography-heading-primary, #14343b));\n --colour-typography-body-default: var(--af-typography-body-default, var(--typography-body-default, #2b484f));\n}\n\n/* ==========================================================================\n Mobile Responsive Styles (max-width: 768px)\n \n Figma:\n - Full-bleed: 335px × 442px, radius 24px\n - Standard: 335px width, radius 24px\n ========================================================================== */\n\n@media (max-width: 768px) {\n .feature-card {\n border-radius: var(--border-radius-card-level-1, 24px);\n }\n\n /* Mobile fixed widths on host */\n :host([card-size=\"default\"]),\n :host([card-size=\"large\"]) {\n width: 335px;\n }\n\n /* Mobile full-bleed height: 442px */\n :host([card-size=\"default\"]) .feature-card--layout-full-bleed,\n :host([card-size=\"large\"]) .feature-card--layout-full-bleed {\n height: 442px;\n }\n\n /* Mobile flexible minimum heights */\n :host([card-size=\"flexible\"]) .feature-card--layout-standard {\n min-height: 340px;\n }\n\n :host([card-size=\"flexible\"]) .feature-card--layout-full-bleed {\n min-height: 380px;\n }\n\n /* Mobile overlay padding: pt-80px px-24px pb-28px */\n .feature-card__overlay {\n padding: 80px 24px 28px 24px;\n }\n\n /* Mobile content padding: pt-32px px-24px pb-12px */\n .feature-card__content {\n padding: 32px 24px 12px 24px;\n }\n\n /* Mobile image area: 192px height */\n .feature-card__image-area {\n height: 192px;\n }\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\n\n/**\n * Feature Card molecule component that combines a card with an image.\n * \n * Two layout modes:\n * - `standard`: Theme background with text at top and image at bottom\n * - `full-bleed`: Image covers entire card with text overlay at bottom\n * \n * Responsive: Automatically adapts to mobile viewport (≤768px).\n * \n * Uses af-card atom internally and af-typography-lockup for text hierarchy.\n * \n * @slot - Heading text content\n * @slot body - Description/body text content\n */\n@Component({\n tag: 'af-feature-card',\n styleUrl: 'af-feature-card.css',\n shadow: false,\n scoped: true,\n})\nexport class AfFeatureCard {\n /**\n * Theme variant - sets background color and provides theme context.\n * Only applies to 'standard' layout mode. Defaults to 'mist-green'.\n */\n @Prop() theme?: 'white' | 'white-ivory' | 'inkwell' | 'mist-green' | 'soft-clay' = 'mist-green';\n\n /**\n * Layout mode for the card.\n * - 'standard': Theme background with text at top and image at bottom\n * - 'full-bleed': Image covers entire card with text overlay at bottom\n */\n @Prop() layout: 'standard' | 'full-bleed' = 'standard';\n\n /**\n * Card size variant.\n * - 'default': Fixed 544px × 420px\n * - 'large': Fixed 777px × 480px \n * - 'flexible': Fills container (for grid layouts)\n */\n @Prop({ reflect: true }) cardSize: 'default' | 'large' | 'flexible' = 'default';\n\n /**\n * Heading size for typography lockup (1-5, where 1 is largest).\n */\n @Prop() headingSize: 1 | 2 | 3 | 4 | 5 = 3;\n\n /**\n * Background/feature image URL.\n */\n @Prop() imageSrc?: string;\n\n /**\n * Image alt text for accessibility.\n * Provide meaningful alt text for feature images.\n * Only use empty string for purely decorative images.\n */\n @Prop() imageAlt: string = '';\n\n render() {\n const hasImage = !!this.imageSrc;\n const isFullBleed = this.layout === 'full-bleed';\n\n const wrapperClasses = {\n 'feature-card': true,\n [`feature-card--layout-${this.layout}`]: true,\n [`feature-card--size-${this.cardSize}`]: true,\n };\n\n // Full-bleed mode: image background with overlay\n if (isFullBleed) {\n return (\n <Host>\n <div class={wrapperClasses}>\n {/* Background image */}\n {hasImage && (\n <div class=\"feature-card__background\">\n <img\n src={this.imageSrc}\n alt={this.imageAlt}\n class=\"feature-card__background-image\"\n />\n </div>\n )}\n\n {/* Content overlay with gradient */}\n <div class=\"feature-card__overlay\">\n <af-typography-lockup\n headingSize={this.headingSize}\n textAlignment=\"left\"\n buttonAlignment=\"vertical\"\n >\n <slot></slot>\n <span slot=\"description\">\n <slot name=\"body\"></slot>\n </span>\n </af-typography-lockup>\n </div>\n </div>\n </Host>\n );\n }\n\n // Standard mode: theme card with image at bottom\n const isFlexible = this.cardSize === 'flexible';\n \n return (\n <Host>\n <div class={wrapperClasses}>\n <af-card theme={this.theme} stretch={isFlexible}>\n {/* Content area with typography lockup */}\n <div class=\"feature-card__content\">\n <af-typography-lockup\n headingSize={this.headingSize}\n textAlignment=\"left\"\n buttonAlignment=\"vertical\"\n >\n <slot></slot>\n <span slot=\"description\">\n <slot name=\"body\"></slot>\n </span>\n </af-typography-lockup>\n </div>\n\n {/* Image area at bottom */}\n {hasImage && (\n <div class=\"feature-card__image-area\">\n <img\n src={this.imageSrc}\n alt={this.imageAlt}\n class=\"feature-card__image\"\n />\n </div>\n )}\n </af-card>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,141 @@
1
+ import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-CxngDK-N.js';
2
+
3
+ const afInputCss = ":host{display:block;width:100%}.input-wrapper{display:flex;flex-direction:column;gap:var(--sds-size-space-200, 8px);width:100%}.label-row{display:flex;align-items:center;gap:12px}.label{flex:1;font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-book, 500);font-size:16px;line-height:24px;color:var(--af-input-label, var(--af-typography-body-dark, #14343b));cursor:default}.required{color:var(--af-input-error, var(--colour-error, #be292a));margin-left:2px}.info-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:none;cursor:pointer;color:var(--af-input-icon, var(--af-background-icon-default, #14343b));flex-shrink:0}.info-icon svg{width:20px;height:20px}.info-icon:hover{opacity:0.7}.info-icon:focus-visible{outline:2px solid var(--af-input-focus-ring, var(--af-typography-body-dark, #14343b));outline-offset:2px;border-radius:4px}.description{font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-regular, 400);font-size:16px;line-height:24px;color:var(--af-input-description, var(--af-typography-body-default, #2b484f));margin:0}.input-container{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--af-input-bg, #ffffff);border:1px solid var(--af-input-border, var(--af-background-border-default, #d1ddda));border-radius:var(--radii-input, 8px);transition:all 0.15s ease;min-height:48px;box-sizing:border-box}.input-container.hovered{background:var(--af-input-bg-hover, var(--af-background-base-hover, #f4f7f6));border-color:var(--af-input-border-hover, var(--af-background-border-heavy, #c6d5d1))}.input-container.focused{background:var(--af-input-bg, #ffffff);border-color:var(--af-input-border-active, var(--af-typography-body-dark, #14343b));box-shadow:0 0 0 4px var(--af-background-base, #ffffff), \n 0 0 0 5px var(--af-input-focus-ring, var(--af-typography-body-dark, #14343b))}.input-container.error{border-color:var(--af-input-border-error, var(--colour-error, #be292a))}.input-container.disabled{background:var(--af-input-bg-disabled, var(--af-background-level-1, #e8eeed));border-color:var(--af-input-border, var(--af-background-border-default, #d1ddda));cursor:not-allowed}.search-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:var(--af-input-icon, var(--af-background-icon-default, #14343b))}.search-icon svg{width:20px;height:20px}.disabled .search-icon{opacity:0.5}.input{flex:1;min-width:0;padding:0;border:none;background:transparent;font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-regular, 400);font-size:16px;line-height:24px;color:var(--af-input-text, var(--af-typography-body-dark, #14343b));outline:none}.input::placeholder{color:var(--af-input-placeholder, var(--af-typography-body-subtle, #60767b));opacity:1}.input:disabled{cursor:not-allowed;color:var(--af-input-placeholder, var(--af-typography-body-subtle, #60767b))}.input:disabled::placeholder{color:var(--af-input-placeholder, var(--af-typography-body-subtle, #60767b))}.input[type=\"search\"]::-webkit-search-decoration,.input[type=\"search\"]::-webkit-search-cancel-button,.input[type=\"search\"]::-webkit-search-results-button,.input[type=\"search\"]::-webkit-search-results-decoration{display:none}.input[type=\"number\"]::-webkit-inner-spin-button,.input[type=\"number\"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input[type=\"number\"]{-moz-appearance:textfield}.clear-button{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:none;cursor:pointer;color:var(--af-input-icon, var(--af-background-icon-default, #14343b));flex-shrink:0;opacity:0.6;transition:opacity 0.15s ease}.clear-button svg{width:16px;height:16px}.clear-button:hover{opacity:1}.clear-button:focus-visible{outline:2px solid var(--af-input-focus-ring, var(--af-typography-body-dark, #14343b));outline-offset:2px;border-radius:4px}.error-row{display:flex;align-items:center;gap:12px}.error-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:var(--af-input-error, var(--colour-error, #be292a))}.error-icon svg{width:20px;height:20px}.error-text{flex:1;font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-regular, 400);font-size:16px;line-height:24px;color:var(--af-input-error, var(--colour-error, #be292a))}";
4
+
5
+ const AfInput = /*@__PURE__*/ proxyCustomElement(class AfInput extends H {
6
+ constructor(registerHost) {
7
+ super();
8
+ if (registerHost !== false) {
9
+ this.__registerHost();
10
+ }
11
+ this.__attachShadow();
12
+ this.afInput = createEvent(this, "afInput");
13
+ this.afBlur = createEvent(this, "afBlur");
14
+ this.afFocus = createEvent(this, "afFocus");
15
+ this.afClear = createEvent(this, "afClear");
16
+ this.afInfoClick = createEvent(this, "afInfoClick");
17
+ /**
18
+ * The current value of the input
19
+ */
20
+ this.value = '';
21
+ /**
22
+ * The input type (text, email, password, number, tel, url, search)
23
+ */
24
+ this.type = 'text';
25
+ /**
26
+ * Whether the input is disabled
27
+ */
28
+ this.disabled = false;
29
+ /**
30
+ * Whether the input is required
31
+ */
32
+ this.required = false;
33
+ /**
34
+ * Whether the input is read-only
35
+ */
36
+ this.readonly = false;
37
+ /**
38
+ * Whether to show the info icon next to the label
39
+ */
40
+ this.showInfoIcon = false;
41
+ /**
42
+ * Whether to show a search icon in the input
43
+ */
44
+ this.showSearchIcon = false;
45
+ /**
46
+ * Whether to show a clear button when input has value
47
+ */
48
+ this.clearable = false;
49
+ this.isFocused = false;
50
+ this.isHovered = false;
51
+ this.handleInput = (event) => {
52
+ const target = event.target;
53
+ this.value = target.value;
54
+ this.afInput.emit({ value: this.value });
55
+ };
56
+ this.handleFocus = () => {
57
+ this.isFocused = true;
58
+ this.afFocus.emit();
59
+ };
60
+ this.handleBlur = () => {
61
+ this.isFocused = false;
62
+ this.afBlur.emit();
63
+ };
64
+ this.handleMouseEnter = () => {
65
+ this.isHovered = true;
66
+ };
67
+ this.handleMouseLeave = () => {
68
+ this.isHovered = false;
69
+ };
70
+ this.handleClear = () => {
71
+ this.value = '';
72
+ this.afClear.emit();
73
+ this.afInput.emit({ value: '' });
74
+ this.inputEl?.focus();
75
+ };
76
+ this.handleInfoClick = (event) => {
77
+ event.preventDefault();
78
+ event.stopPropagation();
79
+ this.afInfoClick.emit();
80
+ };
81
+ }
82
+ render() {
83
+ const hasError = !!this.error;
84
+ const hasValue = !!(this.value && this.value.length > 0);
85
+ const wrapperClasses = {
86
+ 'input-wrapper': true,
87
+ 'disabled': this.disabled,
88
+ 'error': hasError,
89
+ 'focused': this.isFocused,
90
+ 'hovered': this.isHovered && !this.disabled && !this.isFocused,
91
+ 'populated': hasValue
92
+ };
93
+ const inputContainerClasses = {
94
+ 'input-container': true,
95
+ 'disabled': this.disabled,
96
+ 'error': hasError,
97
+ 'focused': this.isFocused,
98
+ 'hovered': this.isHovered && !this.disabled && !this.isFocused
99
+ };
100
+ return (h(Host, { key: '400a7886308cc6fdf7ba226480dc0971050fe809' }, h("div", { key: 'd241fd889b7974dedc5713c6a07b3d0ca34f8e00', class: wrapperClasses }, this.label && (h("div", { key: '05a49e0176eec70d8962d6a11f9a151cb7be97c0', class: "label-row" }, h("label", { key: '3cfdce5b0c1d5d2b8f086e5815d02b9c641f1b5f', class: "label", htmlFor: "input" }, this.label, this.required && h("span", { key: '500e7e6904ce5060bf39488058f0c57903954733', class: "required" }, "*")), this.showInfoIcon && (h("button", { key: '597bf0ec5edd0164a873c8fb378e00259b375707', type: "button", class: "info-icon", onClick: this.handleInfoClick, "aria-label": "More information" }, h("svg", { key: '4e1d799e58aefcf2997566402ab6dbd45fb3a317', viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '742b68edb5d9fb322f6fa706f4e8ee7ed89ad304', d: "M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: 'be9c43a114883b85bf67fe2df3b9cc0589fad04b', d: "M12 16V12", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '7a52e45ebf0b5c2a3d4d8fce1bc5f755375a82fa', d: "M12 8H12.01", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("slot", { key: '64ac646e64b8aed7f53bf520c04be4b1c9175a66', name: "label-end" }))), this.description && (h("p", { key: 'da26f8ed87f2565d8e91dd5e85c72a15d0d8a12a', class: "description" }, this.description)), h("div", { key: 'ad0274109fc614bcc8c4149705229bf73633e406', class: inputContainerClasses, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, this.showSearchIcon && (h("span", { key: '37fd67942ce8e7b3436131eaa3b39548d8a9ea84', class: "search-icon" }, h("svg", { key: '94087fd6095eea01b1e975cac92ecc636ff28f1a', viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'bfe3ba50936b25bff5ae3c39758a99f3189e9c3d', d: "M11 19C15.4183 19 19 15.4183 19 11C19 6.58172 15.4183 3 11 3C6.58172 3 3 6.58172 3 11C3 15.4183 6.58172 19 11 19Z", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '02100f03ff7aa547b00f44cd4b28b3aad8daae69', d: "M21 21L16.65 16.65", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("input", { key: '4b8cebb727e5bb02d9d8ced50b465e95369c6b84', ref: (el) => this.inputEl = el ?? undefined, id: "input", class: "input", type: this.type, name: this.name, value: this.value, placeholder: this.placeholder, disabled: this.disabled, required: this.required, readonly: this.readonly, autocomplete: this.autocomplete, maxlength: this.maxlength, minlength: this.minlength, pattern: this.pattern, "aria-invalid": hasError ? 'true' : undefined, "aria-describedby": hasError ? 'error-message' : this.description ? 'description' : undefined, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur }), this.clearable && hasValue && !this.disabled && !this.readonly && (h("button", { key: 'a5293446b1164329ff14e679ba986311a1c5f586', type: "button", class: "clear-button", onClick: this.handleClear, "aria-label": "Clear input" }, h("svg", { key: '02f3854e7314476211ee532f42bc72dc0618c920', viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '577fc3ec1b2083f18607f7b1120a3adfdd8d29d5', d: "M18 6L6 18", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '87bd9e583a12efa1c12d31316259af90ddf7e33d', d: "M6 6L18 18", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }))))), hasError && (h("div", { key: 'abb797c9a006d2dfc62a40d2acd1d7c38ebd8487', class: "error-row", id: "error-message" }, h("span", { key: '87230aa50a9065d77ff6a723c48d08a4f06b72cb', class: "error-icon" }, h("svg", { key: 'c70ab9ce3225e446754a73502504cf2af35ac78d', viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'd1c8bf0df150f15e0262e107ab6485f6af7bde75', d: "M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '33bdff80da8e914db45146af10742618624306dd', d: "M12 16V12", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '1780ff18f1757e682c30ad69d7a16ac01dcf2979', d: "M12 8H12.01", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }))), h("span", { key: 'e3dca808bc53e8bd47a00b108147ee931c8535da', class: "error-text" }, this.error))))));
101
+ }
102
+ static get style() { return afInputCss; }
103
+ }, [257, "af-input", {
104
+ "label": [1],
105
+ "description": [1],
106
+ "placeholder": [1],
107
+ "value": [1025],
108
+ "type": [1],
109
+ "name": [1],
110
+ "disabled": [516],
111
+ "required": [4],
112
+ "readonly": [4],
113
+ "error": [1],
114
+ "showInfoIcon": [4, "show-info-icon"],
115
+ "showSearchIcon": [4, "show-search-icon"],
116
+ "clearable": [4],
117
+ "autocomplete": [1],
118
+ "maxlength": [2],
119
+ "minlength": [2],
120
+ "pattern": [1],
121
+ "isFocused": [32],
122
+ "isHovered": [32]
123
+ }]);
124
+ function defineCustomElement() {
125
+ if (typeof customElements === "undefined") {
126
+ return;
127
+ }
128
+ const components = ["af-input"];
129
+ components.forEach(tagName => { switch (tagName) {
130
+ case "af-input":
131
+ if (!customElements.get(tagName)) {
132
+ customElements.define(tagName, AfInput);
133
+ }
134
+ break;
135
+ } });
136
+ }
137
+
138
+ export { AfInput as A, defineCustomElement as d };
139
+ //# sourceMappingURL=p-Dvo_cxk-.js.map
140
+
141
+ //# sourceMappingURL=p-Dvo_cxk-.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-Dvo_cxk-.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-input/af-input.css?tag=af-input&encapsulation=shadow","src/components/af-input/af-input.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n/* Wrapper */\n.input-wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--sds-size-space-200, 8px);\n width: 100%;\n}\n\n/* Label row */\n.label-row {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.label {\n flex: 1;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: var(--font-weight-book, 500);\n font-size: 16px;\n line-height: 24px;\n color: var(--af-input-label, var(--af-typography-body-dark, #14343b));\n cursor: default;\n}\n\n.required {\n color: var(--af-input-error, var(--colour-error, #be292a));\n margin-left: 2px;\n}\n\n/* Info icon button */\n.info-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n color: var(--af-input-icon, var(--af-background-icon-default, #14343b));\n flex-shrink: 0;\n}\n\n.info-icon svg {\n width: 20px;\n height: 20px;\n}\n\n.info-icon:hover {\n opacity: 0.7;\n}\n\n.info-icon:focus-visible {\n outline: 2px solid var(--af-input-focus-ring, var(--af-typography-body-dark, #14343b));\n outline-offset: 2px;\n border-radius: 4px;\n}\n\n/* Description */\n.description {\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: var(--font-weight-regular, 400);\n font-size: 16px;\n line-height: 24px;\n color: var(--af-input-description, var(--af-typography-body-default, #2b484f));\n margin: 0;\n}\n\n/* Input container */\n.input-container {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n background: var(--af-input-bg, #ffffff);\n border: 1px solid var(--af-input-border, var(--af-background-border-default, #d1ddda));\n border-radius: var(--radii-input, 8px);\n transition: all 0.15s ease;\n min-height: 48px;\n box-sizing: border-box;\n}\n\n/* Hover state */\n.input-container.hovered {\n background: var(--af-input-bg-hover, var(--af-background-base-hover, #f4f7f6));\n border-color: var(--af-input-border-hover, var(--af-background-border-heavy, #c6d5d1));\n}\n\n/* Focus state */\n.input-container.focused {\n background: var(--af-input-bg, #ffffff);\n border-color: var(--af-input-border-active, var(--af-typography-body-dark, #14343b));\n box-shadow: \n 0 0 0 4px var(--af-background-base, #ffffff), \n 0 0 0 5px var(--af-input-focus-ring, var(--af-typography-body-dark, #14343b));\n}\n\n/* Error state */\n.input-container.error {\n border-color: var(--af-input-border-error, var(--colour-error, #be292a));\n}\n\n/* Disabled state */\n.input-container.disabled {\n background: var(--af-input-bg-disabled, var(--af-background-level-1, #e8eeed));\n border-color: var(--af-input-border, var(--af-background-border-default, #d1ddda));\n cursor: not-allowed;\n}\n\n/* Search icon */\n.search-icon {\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-input-icon, var(--af-background-icon-default, #14343b));\n}\n\n.search-icon svg {\n width: 20px;\n height: 20px;\n}\n\n.disabled .search-icon {\n opacity: 0.5;\n}\n\n/* Native input */\n.input {\n flex: 1;\n min-width: 0;\n padding: 0;\n border: none;\n background: transparent;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: var(--font-weight-regular, 400);\n font-size: 16px;\n line-height: 24px;\n color: var(--af-input-text, var(--af-typography-body-dark, #14343b));\n outline: none;\n}\n\n.input::placeholder {\n color: var(--af-input-placeholder, var(--af-typography-body-subtle, #60767b));\n opacity: 1;\n}\n\n.input:disabled {\n cursor: not-allowed;\n color: var(--af-input-placeholder, var(--af-typography-body-subtle, #60767b));\n}\n\n.input:disabled::placeholder {\n color: var(--af-input-placeholder, var(--af-typography-body-subtle, #60767b));\n}\n\n/* Hide native browser styling for search inputs */\n.input[type=\"search\"]::-webkit-search-decoration,\n.input[type=\"search\"]::-webkit-search-cancel-button,\n.input[type=\"search\"]::-webkit-search-results-button,\n.input[type=\"search\"]::-webkit-search-results-decoration {\n display: none;\n}\n\n/* Hide number input spinners */\n.input[type=\"number\"]::-webkit-inner-spin-button,\n.input[type=\"number\"]::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n.input[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\n/* Clear button */\n.clear-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n color: var(--af-input-icon, var(--af-background-icon-default, #14343b));\n flex-shrink: 0;\n opacity: 0.6;\n transition: opacity 0.15s ease;\n}\n\n.clear-button svg {\n width: 16px;\n height: 16px;\n}\n\n.clear-button:hover {\n opacity: 1;\n}\n\n.clear-button:focus-visible {\n outline: 2px solid var(--af-input-focus-ring, var(--af-typography-body-dark, #14343b));\n outline-offset: 2px;\n border-radius: 4px;\n}\n\n/* Error row */\n.error-row {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.error-icon {\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-input-error, var(--colour-error, #be292a));\n}\n\n.error-icon svg {\n width: 20px;\n height: 20px;\n}\n\n.error-text {\n flex: 1;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: var(--font-weight-regular, 400);\n font-size: 16px;\n line-height: 24px;\n color: var(--af-input-error, var(--colour-error, #be292a));\n}\n","import { Component, h, Prop, Host, Event, EventEmitter, State } from '@stencil/core';\n\n/**\n * Input field component with label, description, and error states.\n * Supports various input types and validation states.\n * \n * @slot label-end - Content to display at the end of the label (e.g., info icon)\n */\n@Component({\n tag: 'af-input',\n styleUrl: 'af-input.css',\n shadow: true\n})\nexport class AfInput {\n /**\n * The label text for the input field\n */\n @Prop() label?: string;\n\n /**\n * Description text displayed below the label\n */\n @Prop() description?: string;\n\n /**\n * Placeholder text for the input\n */\n @Prop() placeholder?: string;\n\n /**\n * The current value of the input\n */\n @Prop({ mutable: true }) value: string = '';\n\n /**\n * The input type (text, email, password, number, tel, url, search)\n */\n @Prop() type: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search' = 'text';\n\n /**\n * The name of the input for form submission\n */\n @Prop() name?: string;\n\n /**\n * Whether the input is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Whether the input is required\n */\n @Prop() required: boolean = false;\n\n /**\n * Whether the input is read-only\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Error message to display (also sets error state)\n */\n @Prop() error?: string;\n\n /**\n * Whether to show the info icon next to the label\n */\n @Prop() showInfoIcon: boolean = false;\n\n /**\n * Whether to show a search icon in the input\n */\n @Prop() showSearchIcon: boolean = false;\n\n /**\n * Whether to show a clear button when input has value\n */\n @Prop() clearable: boolean = false;\n\n /**\n * Autocomplete attribute for the input\n */\n @Prop() autocomplete?: string;\n\n /**\n * Maximum length of input value\n */\n @Prop() maxlength?: number;\n\n /**\n * Minimum length of input value\n */\n @Prop() minlength?: number;\n\n /**\n * Pattern for input validation (regex)\n */\n @Prop() pattern?: string;\n\n /**\n * Emitted when the input value changes\n */\n @Event() afInput!: EventEmitter<{ value: string }>;\n\n /**\n * Emitted when the input loses focus\n */\n @Event() afBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the input gains focus\n */\n @Event() afFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the clear button is clicked\n */\n @Event() afClear!: EventEmitter<void>;\n\n /**\n * Emitted when the info icon is clicked\n */\n @Event() afInfoClick!: EventEmitter<void>;\n\n @State() private isFocused: boolean = false;\n @State() private isHovered: boolean = false;\n\n private inputEl?: HTMLInputElement;\n\n private handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n this.value = target.value;\n this.afInput.emit({ value: this.value });\n };\n\n private handleFocus = () => {\n this.isFocused = true;\n this.afFocus.emit();\n };\n\n private handleBlur = () => {\n this.isFocused = false;\n this.afBlur.emit();\n };\n\n private handleMouseEnter = () => {\n this.isHovered = true;\n };\n\n private handleMouseLeave = () => {\n this.isHovered = false;\n };\n\n private handleClear = () => {\n this.value = '';\n this.afClear.emit();\n this.afInput.emit({ value: '' });\n this.inputEl?.focus();\n };\n\n private handleInfoClick = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.afInfoClick.emit();\n };\n\n render() {\n const hasError = !!this.error;\n const hasValue = !!(this.value && this.value.length > 0);\n\n const wrapperClasses = {\n 'input-wrapper': true,\n 'disabled': this.disabled,\n 'error': hasError,\n 'focused': this.isFocused,\n 'hovered': this.isHovered && !this.disabled && !this.isFocused,\n 'populated': hasValue\n };\n\n const inputContainerClasses = {\n 'input-container': true,\n 'disabled': this.disabled,\n 'error': hasError,\n 'focused': this.isFocused,\n 'hovered': this.isHovered && !this.disabled && !this.isFocused\n };\n\n return (\n <Host>\n <div class={wrapperClasses}>\n {/* Label */}\n {this.label && (\n <div class=\"label-row\">\n <label class=\"label\" htmlFor=\"input\">\n {this.label}\n {this.required && <span class=\"required\">*</span>}\n </label>\n {this.showInfoIcon && (\n <button \n type=\"button\" \n class=\"info-icon\" \n onClick={this.handleInfoClick}\n aria-label=\"More information\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 16V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 8H12.01\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n )}\n <slot name=\"label-end\"></slot>\n </div>\n )}\n\n {/* Description */}\n {this.description && (\n <p class=\"description\">{this.description}</p>\n )}\n\n {/* Input container */}\n <div \n class={inputContainerClasses}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n {/* Search icon */}\n {this.showSearchIcon && (\n <span class=\"search-icon\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11 19C15.4183 19 19 15.4183 19 11C19 6.58172 15.4183 3 11 3C6.58172 3 3 6.58172 3 11C3 15.4183 6.58172 19 11 19Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M21 21L16.65 16.65\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </span>\n )}\n\n {/* Native input */}\n <input\n ref={(el) => this.inputEl = el ?? undefined}\n id=\"input\"\n class=\"input\"\n type={this.type}\n name={this.name}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n required={this.required}\n readonly={this.readonly}\n autocomplete={this.autocomplete}\n maxlength={this.maxlength}\n minlength={this.minlength}\n pattern={this.pattern}\n aria-invalid={hasError ? 'true' : undefined}\n aria-describedby={hasError ? 'error-message' : this.description ? 'description' : undefined}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n\n {/* Clear button */}\n {this.clearable && hasValue && !this.disabled && !this.readonly && (\n <button \n type=\"button\" \n class=\"clear-button\" \n onClick={this.handleClear}\n aria-label=\"Clear input\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M6 6L18 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n )}\n </div>\n\n {/* Error message */}\n {hasError && (\n <div class=\"error-row\" id=\"error-message\">\n <span class=\"error-icon\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 16V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 8H12.01\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </span>\n <span class=\"error-text\">{this.error}</span>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n\n"],"version":3}
@@ -1,6 +1,6 @@
1
1
  import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-CxngDK-N.js';
2
2
 
3
- const afTextareaCss = ":host{display:block;width:100%}.textarea-wrapper{display:flex;flex-direction:column;gap:var(--sds-size-space-200, 8px);width:100%}.label-row{display:flex;align-items:center;gap:12px}.label{flex:1;font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-book, 500);font-size:16px;line-height:24px;color:var(--forms-fields-label, var(--colour-brand-inkwell, #14343b));cursor:default}.required{color:var(--forms-fields-error, #be292a);margin-left:2px}.info-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:none;cursor:pointer;color:var(--forms-fields-label, var(--colour-brand-inkwell, #14343b));flex-shrink:0}.info-icon svg{width:20px;height:20px}.info-icon:hover{opacity:0.7}.info-icon:focus-visible{outline:2px solid var(--buttons-secondary-stroke, #14343b);outline-offset:2px;border-radius:4px}.description{font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-regular, 400);font-size:16px;line-height:24px;color:var(--forms-fields-description, var(--colour-inkwell-400, #2b484f));margin:0}.textarea-container{display:flex;background:var(--forms-fields-bg-default, #ffffff);border:1px solid var(--forms-fields-stroke-default, #d0d6d8);border-radius:var(--radii-input, 8px);transition:all 0.15s ease;box-sizing:border-box;overflow:hidden}.textarea-container.hovered{background:var(--forms-fields-bg-hover, #f3f5f5)}.textarea-container.focused{background:var(--forms-fields-bg-default, #ffffff);border-color:var(--forms-fields-stroke-active, var(--colour-brand-inkwell, #14343b));box-shadow:0 0 0 4px var(--background-base, #ffffff), \n 0 0 0 5px var(--buttons-secondary-stroke, #14343b)}.textarea-container.error{border-color:var(--forms-fields-stroke-error, #be292a)}.textarea-container.disabled{background:var(--forms-fields-bg-disabled, #e8ebeb);border-color:var(--forms-fields-stroke-default, #d0d6d8);cursor:not-allowed}.textarea{flex:1;min-width:0;min-height:108px;padding:12px 16px;border:none;background:transparent;font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-regular, 400);font-size:16px;line-height:24px;color:var(--forms-fields-input, var(--colour-brand-inkwell, #14343b));outline:none;resize:vertical}.textarea::placeholder{color:var(--forms-fields-placeholder, #60767b);opacity:1}.textarea:disabled{cursor:not-allowed;color:var(--forms-fields-placeholder, #60767b);resize:none}.textarea:disabled::placeholder{color:var(--forms-fields-placeholder, #60767b)}.error-row{display:flex;align-items:center;gap:12px}.error-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:var(--forms-fields-error, #be292a)}.error-icon svg{width:20px;height:20px}.error-text{flex:1;font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-regular, 400);font-size:16px;line-height:24px;color:var(--forms-fields-error, #be292a)}";
3
+ const afTextareaCss = ":host{display:block;width:100%}.textarea-wrapper{display:flex;flex-direction:column;gap:var(--sds-size-space-200, 8px);width:100%}.label-row{display:flex;align-items:center;gap:12px}.label{flex:1;font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-book, 500);font-size:16px;line-height:24px;color:var(--af-input-label, var(--af-typography-body-dark, #14343b));cursor:default}.required{color:var(--af-input-error, var(--colour-error, #be292a));margin-left:2px}.info-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:none;cursor:pointer;color:var(--af-input-icon, var(--af-background-icon-default, #14343b));flex-shrink:0}.info-icon svg{width:20px;height:20px}.info-icon:hover{opacity:0.7}.info-icon:focus-visible{outline:2px solid var(--af-input-focus-ring, var(--af-typography-body-dark, #14343b));outline-offset:2px;border-radius:4px}.description{font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-regular, 400);font-size:16px;line-height:24px;color:var(--af-input-description, var(--af-typography-body-default, #2b484f));margin:0}.textarea-container{display:flex;background:var(--af-input-bg, #ffffff);border:1px solid var(--af-input-border, var(--af-background-border-default, #d1ddda));border-radius:var(--radii-input, 8px);transition:all 0.15s ease;box-sizing:border-box;overflow:hidden}.textarea-container.hovered{background:var(--af-input-bg-hover, var(--af-background-base-hover, #f4f7f6));border-color:var(--af-input-border-hover, var(--af-background-border-heavy, #c6d5d1))}.textarea-container.focused{background:var(--af-input-bg, #ffffff);border-color:var(--af-input-border-active, var(--af-typography-body-dark, #14343b));box-shadow:0 0 0 4px var(--af-background-base, #ffffff), \n 0 0 0 5px var(--af-input-focus-ring, var(--af-typography-body-dark, #14343b))}.textarea-container.error{border-color:var(--af-input-border-error, var(--colour-error, #be292a))}.textarea-container.disabled{background:var(--af-input-bg-disabled, var(--af-background-level-1, #e8eeed));border-color:var(--af-input-border, var(--af-background-border-default, #d1ddda));cursor:not-allowed}.textarea{flex:1;min-width:0;min-height:108px;padding:12px 16px;border:none;background:transparent;font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-regular, 400);font-size:16px;line-height:24px;color:var(--af-input-text, var(--af-typography-body-dark, #14343b));outline:none;resize:vertical}.textarea::placeholder{color:var(--af-input-placeholder, var(--af-typography-body-subtle, #60767b));opacity:1}.textarea:disabled{cursor:not-allowed;color:var(--af-input-placeholder, var(--af-typography-body-subtle, #60767b));resize:none}.textarea:disabled::placeholder{color:var(--af-input-placeholder, var(--af-typography-body-subtle, #60767b))}.error-row{display:flex;align-items:center;gap:12px}.error-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:var(--af-input-error, var(--colour-error, #be292a))}.error-icon svg{width:20px;height:20px}.error-text{flex:1;font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-regular, 400);font-size:16px;line-height:24px;color:var(--af-input-error, var(--colour-error, #be292a))}";
4
4
 
5
5
  const AfTextarea = /*@__PURE__*/ proxyCustomElement(class AfTextarea extends H {
6
6
  constructor(registerHost) {
@@ -86,7 +86,7 @@ const AfTextarea = /*@__PURE__*/ proxyCustomElement(class AfTextarea extends H {
86
86
  'focused': this.isFocused,
87
87
  'hovered': this.isHovered && !this.disabled && !this.isFocused
88
88
  };
89
- return (h(Host, { key: '84f322a374d364669942e9153c6ba42221af1059' }, h("div", { key: '4b5a62e919a479bcf741f2d1d9e39a7b0e1e49ac', class: wrapperClasses }, this.label && (h("div", { key: 'e73b88c28588b8f3e5b9823467e8c972fd671391', class: "label-row" }, h("label", { key: '01c16777469e037495997efc2cacc51778fcd9c7', class: "label", htmlFor: "textarea" }, this.label, this.required && h("span", { key: '6da50443dadd3a6eec5655b4ff2fa19affa38006', class: "required" }, "*")), this.showInfoIcon && (h("button", { key: 'c731c726f54946273a330c0173f09faeb9fe583b', type: "button", class: "info-icon", onClick: this.handleInfoClick, "aria-label": "More information" }, h("svg", { key: '24a1ee4fb10ebd9a84a897cefef09ad7e7b63565', viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '3523e8495fc5ffa06d793318f55ba79043174931', d: "M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: 'd2caa0b33fccc6289f00fc22fc329df52d86a6ed', d: "M12 16V12", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: 'db8d8ee03abe2638265d192be6efb992a6041199', d: "M12 8H12.01", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("slot", { key: '8325f2fc490d8261a596398da7cc68d74ccfce11', name: "label-end" }))), this.description && (h("p", { key: '7db9b0e06615f5a13b7759cd81c23ee6ab124769', class: "description" }, this.description)), h("div", { key: '939c306f7a56735956e2ef4badeb4cfa39abf759', class: textareaContainerClasses, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("textarea", { key: '0dffd719ed83955990ae1935fb8d39ab92fd9b94', ref: (el) => this.textareaEl = el ?? undefined, id: "textarea", class: "textarea", name: this.name, value: this.value, placeholder: this.placeholder, disabled: this.disabled, required: this.required, readonly: this.readonly, rows: this.rows, maxlength: this.maxlength, minlength: this.minlength, style: { resize: this.resize }, "aria-invalid": hasError ? 'true' : undefined, "aria-describedby": hasError ? 'error-message' : this.description ? 'description' : undefined, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur })), hasError && (h("div", { key: '1f7f83da7518216eb63ff9cb685ffb92b3b37fb1', class: "error-row", id: "error-message" }, h("span", { key: 'a1af53a449805506ac0abddae3a236232a538bd9', class: "error-icon" }, h("svg", { key: 'b52e5c14a8986c502e1e0dce8a95c7d381c7a8e3', viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'af8c97b747c960065f7461e84c893e644b66d9c5', d: "M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '145226126e4ba52c6234b3c454e43d87b495789c', d: "M12 16V12", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '7b94917ac5c96c6abbfc93826b07fa967b49506a', d: "M12 8H12.01", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }))), h("span", { key: '9f097e0c43b1a6b19d0275fed8a216e901ce2d86', class: "error-text" }, this.error))))));
89
+ return (h(Host, { key: '96a657d6aaed47264bb66750440e1c7fd8020eea' }, h("div", { key: 'cead5c6a37e1e6b8b6b6eb6292c85c5bc8731646', class: wrapperClasses }, this.label && (h("div", { key: '085b08a6337ff9fed164bf964d2ec9bdd45780b0', class: "label-row" }, h("label", { key: 'edf6d4f74707ad3f6dcca97b6093451de4d7f728', class: "label", htmlFor: "textarea" }, this.label, this.required && h("span", { key: '1e8ac41140dae27ec44ce22ea0579cb452ab33b1', class: "required" }, "*")), this.showInfoIcon && (h("button", { key: 'b1853be2ab1c4683180b596b03caff7f25f5b0bc', type: "button", class: "info-icon", onClick: this.handleInfoClick, "aria-label": "More information" }, h("svg", { key: '3781cac4e5fda9e91df1de36f846b91d7ec4ff30', viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '7723e07ea2201d8e2a31c8827a321dad88b4b792', d: "M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '1f161dcff4b6d39b178dd930790016f17e0b2190', d: "M12 16V12", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: 'fe06a5d4a08c3fac58e58b0ae25ebb40e72c574b', d: "M12 8H12.01", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("slot", { key: '7bd92220bb03929a39772f2411f8db0f7c9bf82c', name: "label-end" }))), this.description && (h("p", { key: '56fbec9391c269a2c6c7b9f26f1f6f5e5fac1ae5', class: "description" }, this.description)), h("div", { key: '052fdfd7ba49b36754f8384bcf3f18da97357374', class: textareaContainerClasses, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, h("textarea", { key: '7c41dc6194fbe085e592ba0206e6820a5e47e957', ref: (el) => this.textareaEl = el ?? undefined, id: "textarea", class: "textarea", name: this.name, value: this.value, placeholder: this.placeholder, disabled: this.disabled, required: this.required, readonly: this.readonly, rows: this.rows, maxlength: this.maxlength, minlength: this.minlength, style: { resize: this.resize }, "aria-invalid": hasError ? 'true' : undefined, "aria-describedby": hasError ? 'error-message' : this.description ? 'description' : undefined, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur })), hasError && (h("div", { key: 'b7ff36f947861a248eab5cb5ebe4af6152abf061', class: "error-row", id: "error-message" }, h("span", { key: 'fe93eddb75471c06db6270715d8851c90695492a', class: "error-icon" }, h("svg", { key: '9125de267b317a583032a63549b1efa78da41448', viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'b99a6c173c0fb789f1428556a8ec403ec512641c', d: "M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: 'b6b6547fcfab22a743161404c4157c3946e87e18', d: "M12 16V12", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { key: '0022ce718a6e9c1b35cadf9a7bfa7a618489c84e', d: "M12 8H12.01", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }))), h("span", { key: 'dcd81e02efa888584032c12cc15b451d9c4dc82c', class: "error-text" }, this.error))))));
90
90
  }
91
91
  static get style() { return afTextareaCss; }
92
92
  }, [257, "af-textarea", {
@@ -122,6 +122,6 @@ function defineCustomElement() {
122
122
  }
123
123
 
124
124
  export { AfTextarea as A, defineCustomElement as d };
125
- //# sourceMappingURL=p-CZyCImor.js.map
125
+ //# sourceMappingURL=p-Dwhi37rN.js.map
126
126
 
127
- //# sourceMappingURL=p-CZyCImor.js.map
127
+ //# sourceMappingURL=p-Dwhi37rN.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-Dwhi37rN.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-textarea/af-textarea.css?tag=af-textarea&encapsulation=shadow","src/components/af-textarea/af-textarea.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n/* Wrapper */\n.textarea-wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--sds-size-space-200, 8px);\n width: 100%;\n}\n\n/* Label row */\n.label-row {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.label {\n flex: 1;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: var(--font-weight-book, 500);\n font-size: 16px;\n line-height: 24px;\n color: var(--af-input-label, var(--af-typography-body-dark, #14343b));\n cursor: default;\n}\n\n.required {\n color: var(--af-input-error, var(--colour-error, #be292a));\n margin-left: 2px;\n}\n\n/* Info icon button */\n.info-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n color: var(--af-input-icon, var(--af-background-icon-default, #14343b));\n flex-shrink: 0;\n}\n\n.info-icon svg {\n width: 20px;\n height: 20px;\n}\n\n.info-icon:hover {\n opacity: 0.7;\n}\n\n.info-icon:focus-visible {\n outline: 2px solid var(--af-input-focus-ring, var(--af-typography-body-dark, #14343b));\n outline-offset: 2px;\n border-radius: 4px;\n}\n\n/* Description */\n.description {\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: var(--font-weight-regular, 400);\n font-size: 16px;\n line-height: 24px;\n color: var(--af-input-description, var(--af-typography-body-default, #2b484f));\n margin: 0;\n}\n\n/* Textarea container */\n.textarea-container {\n display: flex;\n background: var(--af-input-bg, #ffffff);\n border: 1px solid var(--af-input-border, var(--af-background-border-default, #d1ddda));\n border-radius: var(--radii-input, 8px);\n transition: all 0.15s ease;\n box-sizing: border-box;\n overflow: hidden;\n}\n\n/* Hover state */\n.textarea-container.hovered {\n background: var(--af-input-bg-hover, var(--af-background-base-hover, #f4f7f6));\n border-color: var(--af-input-border-hover, var(--af-background-border-heavy, #c6d5d1));\n}\n\n/* Focus state */\n.textarea-container.focused {\n background: var(--af-input-bg, #ffffff);\n border-color: var(--af-input-border-active, var(--af-typography-body-dark, #14343b));\n box-shadow: \n 0 0 0 4px var(--af-background-base, #ffffff), \n 0 0 0 5px var(--af-input-focus-ring, var(--af-typography-body-dark, #14343b));\n}\n\n/* Error state */\n.textarea-container.error {\n border-color: var(--af-input-border-error, var(--colour-error, #be292a));\n}\n\n/* Disabled state */\n.textarea-container.disabled {\n background: var(--af-input-bg-disabled, var(--af-background-level-1, #e8eeed));\n border-color: var(--af-input-border, var(--af-background-border-default, #d1ddda));\n cursor: not-allowed;\n}\n\n/* Native textarea */\n.textarea {\n flex: 1;\n min-width: 0;\n min-height: 108px;\n padding: 12px 16px;\n border: none;\n background: transparent;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: var(--font-weight-regular, 400);\n font-size: 16px;\n line-height: 24px;\n color: var(--af-input-text, var(--af-typography-body-dark, #14343b));\n outline: none;\n resize: vertical;\n}\n\n.textarea::placeholder {\n color: var(--af-input-placeholder, var(--af-typography-body-subtle, #60767b));\n opacity: 1;\n}\n\n.textarea:disabled {\n cursor: not-allowed;\n color: var(--af-input-placeholder, var(--af-typography-body-subtle, #60767b));\n resize: none;\n}\n\n.textarea:disabled::placeholder {\n color: var(--af-input-placeholder, var(--af-typography-body-subtle, #60767b));\n}\n\n/* Error row */\n.error-row {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.error-icon {\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-input-error, var(--colour-error, #be292a));\n}\n\n.error-icon svg {\n width: 20px;\n height: 20px;\n}\n\n.error-text {\n flex: 1;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-weight: var(--font-weight-regular, 400);\n font-size: 16px;\n line-height: 24px;\n color: var(--af-input-error, var(--colour-error, #be292a));\n}\n\n","import { Component, h, Prop, Host, Event, EventEmitter, State } from '@stencil/core';\n\n/**\n * Textarea component for multi-line text input with label, description, and error states.\n * \n * @slot label-end - Content to display at the end of the label (e.g., info icon)\n */\n@Component({\n tag: 'af-textarea',\n styleUrl: 'af-textarea.css',\n shadow: true\n})\nexport class AfTextarea {\n /**\n * The label text for the textarea\n */\n @Prop() label?: string;\n\n /**\n * Description text displayed below the label\n */\n @Prop() description?: string;\n\n /**\n * Placeholder text for the textarea\n */\n @Prop() placeholder?: string;\n\n /**\n * The current value of the textarea\n */\n @Prop({ mutable: true }) value: string = '';\n\n /**\n * The name of the textarea for form submission\n */\n @Prop() name?: string;\n\n /**\n * Whether the textarea is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Whether the textarea is required\n */\n @Prop() required: boolean = false;\n\n /**\n * Whether the textarea is read-only\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Error message to display (also sets error state)\n */\n @Prop() error?: string;\n\n /**\n * Whether to show the info icon next to the label\n */\n @Prop() showInfoIcon: boolean = false;\n\n /**\n * Number of visible rows (height)\n */\n @Prop() rows: number = 4;\n\n /**\n * Maximum length of input value\n */\n @Prop() maxlength?: number;\n\n /**\n * Minimum length of input value\n */\n @Prop() minlength?: number;\n\n /**\n * Whether the textarea is resizable\n */\n @Prop() resize: 'none' | 'vertical' | 'horizontal' | 'both' = 'vertical';\n\n /**\n * Emitted when the textarea value changes\n */\n @Event() afInput!: EventEmitter<{ value: string }>;\n\n /**\n * Emitted when the textarea loses focus\n */\n @Event() afBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the textarea gains focus\n */\n @Event() afFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the info icon is clicked\n */\n @Event() afInfoClick!: EventEmitter<void>;\n\n @State() private isFocused: boolean = false;\n @State() private isHovered: boolean = false;\n\n private textareaEl?: HTMLTextAreaElement;\n\n private handleInput = (event: Event) => {\n const target = event.target as HTMLTextAreaElement;\n this.value = target.value;\n this.afInput.emit({ value: this.value });\n };\n\n private handleFocus = () => {\n this.isFocused = true;\n this.afFocus.emit();\n };\n\n private handleBlur = () => {\n this.isFocused = false;\n this.afBlur.emit();\n };\n\n private handleMouseEnter = () => {\n this.isHovered = true;\n };\n\n private handleMouseLeave = () => {\n this.isHovered = false;\n };\n\n private handleInfoClick = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.afInfoClick.emit();\n };\n\n render() {\n const hasError = !!this.error;\n const hasValue = !!(this.value && this.value.length > 0);\n\n const wrapperClasses = {\n 'textarea-wrapper': true,\n 'disabled': this.disabled,\n 'error': hasError,\n 'focused': this.isFocused,\n 'hovered': this.isHovered && !this.disabled && !this.isFocused,\n 'populated': hasValue\n };\n\n const textareaContainerClasses = {\n 'textarea-container': true,\n 'disabled': this.disabled,\n 'error': hasError,\n 'focused': this.isFocused,\n 'hovered': this.isHovered && !this.disabled && !this.isFocused\n };\n\n return (\n <Host>\n <div class={wrapperClasses}>\n {/* Label */}\n {this.label && (\n <div class=\"label-row\">\n <label class=\"label\" htmlFor=\"textarea\">\n {this.label}\n {this.required && <span class=\"required\">*</span>}\n </label>\n {this.showInfoIcon && (\n <button \n type=\"button\" \n class=\"info-icon\" \n onClick={this.handleInfoClick}\n aria-label=\"More information\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 16V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 8H12.01\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n )}\n <slot name=\"label-end\"></slot>\n </div>\n )}\n\n {/* Description */}\n {this.description && (\n <p class=\"description\">{this.description}</p>\n )}\n\n {/* Textarea container */}\n <div \n class={textareaContainerClasses}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n {/* Native textarea */}\n <textarea\n ref={(el) => this.textareaEl = el ?? undefined}\n id=\"textarea\"\n class=\"textarea\"\n name={this.name}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n required={this.required}\n readonly={this.readonly}\n rows={this.rows}\n maxlength={this.maxlength}\n minlength={this.minlength}\n style={{ resize: this.resize }}\n aria-invalid={hasError ? 'true' : undefined}\n aria-describedby={hasError ? 'error-message' : this.description ? 'description' : undefined}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n </div>\n\n {/* Error message */}\n {hasError && (\n <div class=\"error-row\" id=\"error-message\">\n <span class=\"error-icon\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 16V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12 8H12.01\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </span>\n <span class=\"error-text\">{this.error}</span>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n\n"],"version":3}
@@ -0,0 +1,94 @@
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-CxngDK-N.js';
2
+ import { d as defineCustomElement$2 } from './p-C8_mFdv5.js';
3
+ import { d as defineCustomElement$1 } from './p-hOnulRmz.js';
4
+
5
+ const afFeatureCardCss = ".sc-af-feature-card-h{display:block;--af-card-padding:0;--af-card-gap:0}[card-size=\"default\"].sc-af-feature-card-h{width:544px}[card-size=\"large\"].sc-af-feature-card-h{width:777px}[card-size=\"flexible\"].sc-af-feature-card-h{display:flex;width:100%;height:100%}.feature-card.sc-af-feature-card{overflow:hidden;position:relative;display:flex;flex-direction:column;box-sizing:border-box;border-radius:var(--border-radius-card-level-1, 32px);width:100%;height:100%;isolation:isolate}.feature-card--layout-full-bleed.sc-af-feature-card{background:var(--background-base, var(--colour-brand-inkwell, #14343b))}[card-size=\"default\"].sc-af-feature-card-h .feature-card--layout-full-bleed.sc-af-feature-card,[card-size=\"large\"].sc-af-feature-card-h .feature-card--layout-full-bleed.sc-af-feature-card{height:660px}[card-size=\"flexible\"].sc-af-feature-card-h .feature-card--layout-full-bleed.sc-af-feature-card{min-height:480px}.feature-card__background.sc-af-feature-card{position:absolute;inset:0;pointer-events:none;z-index:0;border-radius:0}.feature-card__background-image.sc-af-feature-card{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:0}.feature-card__overlay.sc-af-feature-card{position:absolute;bottom:0;left:0;right:0;border-radius:0;backdrop-filter:blur(2px);background:linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);z-index:1;padding:124px 32px 32px 32px;--af-typography-heading-primary:var(--typography-heading-secondary, #ffffff);--af-typography-heading-secondary:var(--typography-heading-secondary, #ffffff);--af-typography-body-default:var(--typography-body-dark, #ffffff);--colour-typography-heading-primary:var(--typography-heading-secondary, #ffffff);--colour-typography-heading-secondary:var(--typography-heading-secondary, #ffffff);--colour-typography-body-default:var(--typography-body-dark, #ffffff)}.feature-card--layout-standard.sc-af-feature-card{background:var(--background-level-1, var(--colour-mistgreen-200, #e8eeed))}.feature-card--layout-standard.sc-af-feature-card af-card.sc-af-feature-card{--border-radius-card-level-1:0}[card-size=\"flexible\"].sc-af-feature-card-h .feature-card--layout-standard.sc-af-feature-card{min-height:400px}.feature-card__content.sc-af-feature-card{position:relative;display:flex;flex-direction:column;box-sizing:border-box;z-index:1;padding:40px 32px 12px 32px;flex:1 1 auto}[card-size=\"large\"].sc-af-feature-card-h .feature-card__content.sc-af-feature-card{padding:40px 40px 0 40px}.feature-card__image-area.sc-af-feature-card{position:relative;width:100%;height:160px;flex-shrink:0;overflow:hidden;border-radius:0}.feature-card__image.sc-af-feature-card{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:0}.feature-card.sc-af-feature-card af-typography-lockup.sc-af-feature-card{--colour-typography-heading-primary:var(--af-typography-heading-primary, var(--typography-heading-primary, #14343b));--colour-typography-body-default:var(--af-typography-body-default, var(--typography-body-default, #2b484f))}@media (max-width: 768px){.feature-card.sc-af-feature-card{border-radius:var(--border-radius-card-level-1, 24px)}[card-size=\"default\"].sc-af-feature-card-h,[card-size=\"large\"].sc-af-feature-card-h{width:335px}[card-size=\"default\"].sc-af-feature-card-h .feature-card--layout-full-bleed.sc-af-feature-card,[card-size=\"large\"].sc-af-feature-card-h .feature-card--layout-full-bleed.sc-af-feature-card{height:442px}[card-size=\"flexible\"].sc-af-feature-card-h .feature-card--layout-standard.sc-af-feature-card{min-height:340px}[card-size=\"flexible\"].sc-af-feature-card-h .feature-card--layout-full-bleed.sc-af-feature-card{min-height:380px}.feature-card__overlay.sc-af-feature-card{padding:80px 24px 28px 24px}.feature-card__content.sc-af-feature-card{padding:32px 24px 12px 24px}.feature-card__image-area.sc-af-feature-card{height:192px}}";
6
+
7
+ const AfFeatureCard = /*@__PURE__*/ proxyCustomElement(class AfFeatureCard extends H {
8
+ constructor(registerHost) {
9
+ super();
10
+ if (registerHost !== false) {
11
+ this.__registerHost();
12
+ }
13
+ /**
14
+ * Theme variant - sets background color and provides theme context.
15
+ * Only applies to 'standard' layout mode. Defaults to 'mist-green'.
16
+ */
17
+ this.theme = 'mist-green';
18
+ /**
19
+ * Layout mode for the card.
20
+ * - 'standard': Theme background with text at top and image at bottom
21
+ * - 'full-bleed': Image covers entire card with text overlay at bottom
22
+ */
23
+ this.layout = 'standard';
24
+ /**
25
+ * Card size variant.
26
+ * - 'default': Fixed 544px × 420px
27
+ * - 'large': Fixed 777px × 480px
28
+ * - 'flexible': Fills container (for grid layouts)
29
+ */
30
+ this.cardSize = 'default';
31
+ /**
32
+ * Heading size for typography lockup (1-5, where 1 is largest).
33
+ */
34
+ this.headingSize = 3;
35
+ /**
36
+ * Image alt text for accessibility.
37
+ * Provide meaningful alt text for feature images.
38
+ * Only use empty string for purely decorative images.
39
+ */
40
+ this.imageAlt = '';
41
+ }
42
+ render() {
43
+ const hasImage = !!this.imageSrc;
44
+ const isFullBleed = this.layout === 'full-bleed';
45
+ const wrapperClasses = {
46
+ 'feature-card': true,
47
+ [`feature-card--layout-${this.layout}`]: true,
48
+ [`feature-card--size-${this.cardSize}`]: true,
49
+ };
50
+ // Full-bleed mode: image background with overlay
51
+ if (isFullBleed) {
52
+ return (h(Host, null, h("div", { class: wrapperClasses }, hasImage && (h("div", { class: "feature-card__background" }, h("img", { src: this.imageSrc, alt: this.imageAlt, class: "feature-card__background-image" }))), h("div", { class: "feature-card__overlay" }, h("af-typography-lockup", { headingSize: this.headingSize, textAlignment: "left", buttonAlignment: "vertical" }, h("slot", null), h("span", { slot: "description" }, h("slot", { name: "body" })))))));
53
+ }
54
+ // Standard mode: theme card with image at bottom
55
+ const isFlexible = this.cardSize === 'flexible';
56
+ return (h(Host, null, h("div", { class: wrapperClasses }, h("af-card", { theme: this.theme, stretch: isFlexible }, h("div", { class: "feature-card__content" }, h("af-typography-lockup", { headingSize: this.headingSize, textAlignment: "left", buttonAlignment: "vertical" }, h("slot", null), h("span", { slot: "description" }, h("slot", { name: "body" })))), hasImage && (h("div", { class: "feature-card__image-area" }, h("img", { src: this.imageSrc, alt: this.imageAlt, class: "feature-card__image" })))))));
57
+ }
58
+ static get style() { return afFeatureCardCss; }
59
+ }, [262, "af-feature-card", {
60
+ "theme": [1],
61
+ "layout": [1],
62
+ "cardSize": [513, "card-size"],
63
+ "headingSize": [2, "heading-size"],
64
+ "imageSrc": [1, "image-src"],
65
+ "imageAlt": [1, "image-alt"]
66
+ }]);
67
+ function defineCustomElement() {
68
+ if (typeof customElements === "undefined") {
69
+ return;
70
+ }
71
+ const components = ["af-feature-card", "af-card", "af-typography-lockup"];
72
+ components.forEach(tagName => { switch (tagName) {
73
+ case "af-feature-card":
74
+ if (!customElements.get(tagName)) {
75
+ customElements.define(tagName, AfFeatureCard);
76
+ }
77
+ break;
78
+ case "af-card":
79
+ if (!customElements.get(tagName)) {
80
+ defineCustomElement$2();
81
+ }
82
+ break;
83
+ case "af-typography-lockup":
84
+ if (!customElements.get(tagName)) {
85
+ defineCustomElement$1();
86
+ }
87
+ break;
88
+ } });
89
+ }
90
+
91
+ export { AfFeatureCard as A, defineCustomElement as d };
92
+ //# sourceMappingURL=p-WmKa3rDn.js.map
93
+
94
+ //# sourceMappingURL=p-WmKa3rDn.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-WmKa3rDn.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-feature-card/af-feature-card.css?tag=af-feature-card&encapsulation=scoped","src/components/af-feature-card/af-feature-card.tsx"],"sourcesContent":["/* ==========================================================================\n Feature Card - Figma Specs\n \n Desktop Full-bleed: 544px × 660px, radius 32px\n Desktop Standard default: 544px width, radius 32px\n Desktop Standard large: 777px width, radius 32px\n Mobile Full-bleed: 335px × 442px, radius 24px\n Mobile Standard: 335px width, radius 24px\n ========================================================================== */\n\n/* ==========================================================================\n Host Element - Controls outer dimensions\n ========================================================================== */\n\n:host {\n display: block;\n --af-card-padding: 0;\n --af-card-gap: 0;\n}\n\n/* Fixed size hosts constrain to Figma dimensions */\n:host([card-size=\"default\"]) {\n width: 544px;\n}\n\n:host([card-size=\"large\"]) {\n width: 777px;\n}\n\n/* Flexible cards fill their container */\n:host([card-size=\"flexible\"]) {\n display: flex;\n width: 100%;\n height: 100%;\n}\n\n/* ==========================================================================\n Base Feature Card Styles\n ========================================================================== */\n\n.feature-card {\n overflow: hidden;\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n border-radius: var(--border-radius-card-level-1, 32px);\n width: 100%;\n height: 100%;\n /* Ensure proper clipping of absolutely positioned children with border-radius */\n isolation: isolate;\n}\n\n/* ==========================================================================\n Full Bleed Layout Mode\n Figma: 544px × 660px (desktop), 335px × 442px (mobile)\n ========================================================================== */\n\n.feature-card--layout-full-bleed {\n background: var(--background-base, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Full-bleed fixed sizes have explicit heights on host */\n:host([card-size=\"default\"]) .feature-card--layout-full-bleed,\n:host([card-size=\"large\"]) .feature-card--layout-full-bleed {\n height: 660px;\n}\n\n/* Full-bleed flexible minimum height */\n:host([card-size=\"flexible\"]) .feature-card--layout-full-bleed {\n min-height: 480px;\n}\n\n.feature-card__background {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 0;\n border-radius: 0;\n}\n\n.feature-card__background-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n border-radius: 0;\n}\n\n/* Overlay gradient with text */\n.feature-card__overlay {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: 0;\n backdrop-filter: blur(2px);\n background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);\n z-index: 1;\n /* Desktop: pt-124px px-32px pb-32px */\n padding: 124px 32px 32px 32px;\n\n /* White text on dark overlay */\n --af-typography-heading-primary: var(--typography-heading-secondary, #ffffff);\n --af-typography-heading-secondary: var(--typography-heading-secondary, #ffffff);\n --af-typography-body-default: var(--typography-body-dark, #ffffff);\n --colour-typography-heading-primary: var(--typography-heading-secondary, #ffffff);\n --colour-typography-heading-secondary: var(--typography-heading-secondary, #ffffff);\n --colour-typography-body-default: var(--typography-body-dark, #ffffff);\n}\n\n/* ==========================================================================\n Standard Layout Mode\n \n Structure: .feature-card > af-card[stretch] > [content] + [image-area]\n \n When cardSize=\"flexible\", af-card receives stretch prop which enables\n the flex chain. Content grows to fill space, image stays at bottom.\n ========================================================================== */\n\n.feature-card--layout-standard {\n background: var(--background-level-1, var(--colour-mistgreen-200, #e8eeed));\n}\n\n/* Remove border-radius from inner af-card - outer .feature-card handles rounding */\n.feature-card--layout-standard af-card {\n --border-radius-card-level-1: 0;\n}\n\n/* Standard flexible minimum height */\n:host([card-size=\"flexible\"]) .feature-card--layout-standard {\n min-height: 400px;\n}\n\n/* Content area - grows to push image to bottom (when af-card has stretch) */\n.feature-card__content {\n position: relative;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n z-index: 1;\n /* Desktop default: pt-40px px-32px pb-12px */\n padding: 40px 32px 12px 32px;\n flex: 1 1 auto;\n}\n\n/* Large card content padding: pt-40px px-40px pb-0 */\n:host([card-size=\"large\"]) .feature-card__content {\n padding: 40px 40px 0 40px;\n}\n\n/* ==========================================================================\n Image Area (Standard Layout)\n Figma: 160px height (desktop), 192px height (mobile)\n ========================================================================== */\n\n.feature-card__image-area {\n position: relative;\n width: 100%;\n height: 160px;\n flex-shrink: 0;\n overflow: hidden;\n border-radius: 0;\n}\n\n.feature-card__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center top;\n border-radius: 0;\n}\n\n/* ==========================================================================\n Typography Lockup Styling\n ========================================================================== */\n\n.feature-card af-typography-lockup {\n --colour-typography-heading-primary: var(--af-typography-heading-primary, var(--typography-heading-primary, #14343b));\n --colour-typography-body-default: var(--af-typography-body-default, var(--typography-body-default, #2b484f));\n}\n\n/* ==========================================================================\n Mobile Responsive Styles (max-width: 768px)\n \n Figma:\n - Full-bleed: 335px × 442px, radius 24px\n - Standard: 335px width, radius 24px\n ========================================================================== */\n\n@media (max-width: 768px) {\n .feature-card {\n border-radius: var(--border-radius-card-level-1, 24px);\n }\n\n /* Mobile fixed widths on host */\n :host([card-size=\"default\"]),\n :host([card-size=\"large\"]) {\n width: 335px;\n }\n\n /* Mobile full-bleed height: 442px */\n :host([card-size=\"default\"]) .feature-card--layout-full-bleed,\n :host([card-size=\"large\"]) .feature-card--layout-full-bleed {\n height: 442px;\n }\n\n /* Mobile flexible minimum heights */\n :host([card-size=\"flexible\"]) .feature-card--layout-standard {\n min-height: 340px;\n }\n\n :host([card-size=\"flexible\"]) .feature-card--layout-full-bleed {\n min-height: 380px;\n }\n\n /* Mobile overlay padding: pt-80px px-24px pb-28px */\n .feature-card__overlay {\n padding: 80px 24px 28px 24px;\n }\n\n /* Mobile content padding: pt-32px px-24px pb-12px */\n .feature-card__content {\n padding: 32px 24px 12px 24px;\n }\n\n /* Mobile image area: 192px height */\n .feature-card__image-area {\n height: 192px;\n }\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\n\n/**\n * Feature Card molecule component that combines a card with an image.\n * \n * Two layout modes:\n * - `standard`: Theme background with text at top and image at bottom\n * - `full-bleed`: Image covers entire card with text overlay at bottom\n * \n * Responsive: Automatically adapts to mobile viewport (≤768px).\n * \n * Uses af-card atom internally and af-typography-lockup for text hierarchy.\n * \n * @slot - Heading text content\n * @slot body - Description/body text content\n */\n@Component({\n tag: 'af-feature-card',\n styleUrl: 'af-feature-card.css',\n shadow: false,\n scoped: true,\n})\nexport class AfFeatureCard {\n /**\n * Theme variant - sets background color and provides theme context.\n * Only applies to 'standard' layout mode. Defaults to 'mist-green'.\n */\n @Prop() theme?: 'white' | 'white-ivory' | 'inkwell' | 'mist-green' | 'soft-clay' = 'mist-green';\n\n /**\n * Layout mode for the card.\n * - 'standard': Theme background with text at top and image at bottom\n * - 'full-bleed': Image covers entire card with text overlay at bottom\n */\n @Prop() layout: 'standard' | 'full-bleed' = 'standard';\n\n /**\n * Card size variant.\n * - 'default': Fixed 544px × 420px\n * - 'large': Fixed 777px × 480px \n * - 'flexible': Fills container (for grid layouts)\n */\n @Prop({ reflect: true }) cardSize: 'default' | 'large' | 'flexible' = 'default';\n\n /**\n * Heading size for typography lockup (1-5, where 1 is largest).\n */\n @Prop() headingSize: 1 | 2 | 3 | 4 | 5 = 3;\n\n /**\n * Background/feature image URL.\n */\n @Prop() imageSrc?: string;\n\n /**\n * Image alt text for accessibility.\n * Provide meaningful alt text for feature images.\n * Only use empty string for purely decorative images.\n */\n @Prop() imageAlt: string = '';\n\n render() {\n const hasImage = !!this.imageSrc;\n const isFullBleed = this.layout === 'full-bleed';\n\n const wrapperClasses = {\n 'feature-card': true,\n [`feature-card--layout-${this.layout}`]: true,\n [`feature-card--size-${this.cardSize}`]: true,\n };\n\n // Full-bleed mode: image background with overlay\n if (isFullBleed) {\n return (\n <Host>\n <div class={wrapperClasses}>\n {/* Background image */}\n {hasImage && (\n <div class=\"feature-card__background\">\n <img\n src={this.imageSrc}\n alt={this.imageAlt}\n class=\"feature-card__background-image\"\n />\n </div>\n )}\n\n {/* Content overlay with gradient */}\n <div class=\"feature-card__overlay\">\n <af-typography-lockup\n headingSize={this.headingSize}\n textAlignment=\"left\"\n buttonAlignment=\"vertical\"\n >\n <slot></slot>\n <span slot=\"description\">\n <slot name=\"body\"></slot>\n </span>\n </af-typography-lockup>\n </div>\n </div>\n </Host>\n );\n }\n\n // Standard mode: theme card with image at bottom\n const isFlexible = this.cardSize === 'flexible';\n \n return (\n <Host>\n <div class={wrapperClasses}>\n <af-card theme={this.theme} stretch={isFlexible}>\n {/* Content area with typography lockup */}\n <div class=\"feature-card__content\">\n <af-typography-lockup\n headingSize={this.headingSize}\n textAlignment=\"left\"\n buttonAlignment=\"vertical\"\n >\n <slot></slot>\n <span slot=\"description\">\n <slot name=\"body\"></slot>\n </span>\n </af-typography-lockup>\n </div>\n\n {/* Image area at bottom */}\n {hasImage && (\n <div class=\"feature-card__image-area\">\n <img\n src={this.imageSrc}\n alt={this.imageAlt}\n class=\"feature-card__image\"\n />\n </div>\n )}\n </af-card>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -80,7 +80,7 @@ const AfTabBar = /*@__PURE__*/ proxyCustomElement(class AfTabBar extends H {
80
80
  [`shape-${this.shape}`]: true,
81
81
  [`breakpoint-${this.breakpoint}`]: true,
82
82
  };
83
- return (h(Host, { key: 'b1fa40c2156ac7271650aafd27d369c3a8224f44', role: "tablist" }, h("div", { key: 'e92eaef79f5df92cca1b2170218df2668afc031d', class: containerClasses }, h("slot", { key: '307aea867005fe40899b54d9fe1e31ecca0528e8' }))));
83
+ return (h(Host, { key: 'dc384f23c8237eb5fde5afcec5579806bfd94d3d', role: "tablist" }, h("div", { key: '65e52eda0dbb0eff9ca3b0e5c5a27d03df6d70fa', class: containerClasses }, h("slot", { key: 'd65cdf4b1760b5ab6a5116f183e8b080b594bd86' }))));
84
84
  }
85
85
  get el() { return this; }
86
86
  static get style() { return afTabBarCss; }
@@ -103,6 +103,6 @@ function defineCustomElement() {
103
103
  }
104
104
 
105
105
  export { AfTabBar as A, defineCustomElement as d };
106
- //# sourceMappingURL=p-l95vl6T1.js.map
106
+ //# sourceMappingURL=p-Ws-qvw9w.js.map
107
107
 
108
- //# sourceMappingURL=p-l95vl6T1.js.map
108
+ //# sourceMappingURL=p-Ws-qvw9w.js.map
@@ -1 +1 @@
1
- {"file":"p-l95vl6T1.js","mappings":";;AAAA,MAAM,WAAW,GAAG,qkCAAqkC;;MCyB5kC,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AALrB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAQE;;;;AAIG;AACsB,QAAA,IAAK,CAAA,KAAA,GAAgB,QAAQ;AAEtD;;;;AAIG;AACsB,QAAA,IAAU,CAAA,UAAA,GAAqB,SAAS;AA6ElE;IA3EC,gBAAgB,GAAA;QACd,IAAI,CAAC,cAAc,EAAE;;IAGvB,kBAAkB,GAAA;QAChB,IAAI,CAAC,cAAc,EAAE;;AAGvB;;AAEG;IACK,cAAc,GAAA;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAC/C,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACnB,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;YACrC,GAAG,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC;AACtD,SAAC,CAAC;;AAGJ;;AAEG;AAEH,IAAA,aAAa,CAAC,KAAoB,EAAA;AAChC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAkB;QAC5F,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,CAAC,aAAa,IAAI,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC;QAE3G,IAAI,YAAY,KAAK,EAAE;YAAE;QAEzB,IAAI,QAAQ,GAAG,YAAY;AAE3B,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;gBAChE;AACF,YAAA,KAAK,YAAY;gBACf,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC;gBAChE;AACF,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE;gBACtB,QAAQ,GAAG,CAAC;gBACZ;AACF,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;gBAC1B;AACF,YAAA;gBACE;;;AAIJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC;QAC5D,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,KAAK,EAAE;;;IAIlB,MAAM,GAAA;AACJ,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,CAAC,SAAS,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI;AAC7B,YAAA,CAAC,cAAc,IAAI,CAAC,UAAU,CAAE,CAAA,GAAG,IAAI;SACxC;AAED,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,SAAS,EAAA,EAClB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,gBAAgB,EAAA,EAC1B,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-tab-bar/af-tab-bar.css?tag=af-tab-bar&encapsulation=shadow","src/components/af-tab-bar/af-tab-bar.tsx"],"sourcesContent":["/* TabBar component styles */\n:host {\n display: block;\n width: 100%;\n}\n\n.tab-bar {\n display: flex;\n flex-wrap: nowrap;\n align-items: stretch;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n scrollbar-color: var(--af-scrollbar-thumb, #8a7049) var(--af-scrollbar-track, #d1ddda);\n}\n\n/* Custom scrollbar for WebKit browsers */\n.tab-bar::-webkit-scrollbar {\n height: 4px;\n}\n\n.tab-bar::-webkit-scrollbar-track {\n background: var(--af-scrollbar-track, #d1ddda);\n border-radius: 2px;\n}\n\n.tab-bar::-webkit-scrollbar-thumb {\n background: var(--af-scrollbar-thumb, #8a7049);\n border-radius: 2px;\n}\n\n.tab-bar::-webkit-scrollbar-thumb:hover {\n background: var(--af-scrollbar-thumb-hover, #8d785a);\n}\n\n/* ==========================================================================\n SHAPE: SQUARE\n ========================================================================== */\n\n.tab-bar.shape-square {\n gap: 0;\n border-bottom: 1px solid var(--af-background-border-subtle, #e8eeed);\n}\n\n/* ==========================================================================\n SHAPE: PILL\n ========================================================================== */\n\n.tab-bar.shape-pill {\n gap: 0;\n padding: var(--space-2, 8px);\n background-color: var(--af-background-level-1, #e8eeed);\n border-radius: var(--radius-pill, 999px);\n}\n\n/* ==========================================================================\n BREAKPOINT: MOBILE\n ========================================================================== */\n\n.tab-bar.breakpoint-mobile {\n /* Mobile uses compact spacing */\n}\n\n.tab-bar.breakpoint-mobile.shape-square {\n /* Tabs handle their own padding in mobile */\n}\n\n.tab-bar.breakpoint-mobile.shape-pill {\n padding: var(--space-1, 4px);\n}\n\n/* ==========================================================================\n BREAKPOINT: DESKTOP\n ========================================================================== */\n\n.tab-bar.breakpoint-desktop {\n /* Desktop uses more generous spacing */\n}\n\n.tab-bar.breakpoint-desktop.shape-square {\n /* Tabs handle their own padding in desktop mode */\n}\n\n.tab-bar.breakpoint-desktop.shape-pill {\n padding: var(--space-2, 8px);\n}\n\n","import { Component, h, Prop, Host, Element, Listen } from '@stencil/core';\n\nexport type TabBarShape = 'square' | 'pill';\nexport type TabBarBreakpoint = 'mobile' | 'desktop';\n\n/**\n * TabBar component that contains and manages a group of tabs.\n * Provides horizontal layout, keyboard navigation, and consistent styling.\n * \n * @slot - Tab elements (af-tab)\n * \n * @example\n * ```html\n * <af-tab-bar shape=\"square\" breakpoint=\"desktop\">\n * <af-tab label=\"Overview\" active value=\"overview\"></af-tab>\n * <af-tab label=\"Details\" value=\"details\"></af-tab>\n * <af-tab label=\"Settings\" value=\"settings\"></af-tab>\n * </af-tab-bar>\n * ```\n */\n@Component({\n tag: 'af-tab-bar',\n styleUrl: 'af-tab-bar.css',\n shadow: true\n})\nexport class AfTabBar {\n @Element() el!: HTMLElement;\n\n /**\n * Visual shape variant for all tabs\n * - `square` - Rectangular tabs with bottom border indicator\n * - `pill` - Rounded pill tabs with background for active state\n */\n @Prop({ reflect: true }) shape: TabBarShape = 'square';\n\n /**\n * Responsive breakpoint mode\n * - `mobile` - Compact layout with smaller padding\n * - `desktop` - Larger layout with more generous spacing\n */\n @Prop({ reflect: true }) breakpoint: TabBarBreakpoint = 'desktop';\n\n componentDidLoad() {\n this.syncChildProps();\n }\n\n componentDidUpdate() {\n this.syncChildProps();\n }\n\n /**\n * Sync shape and breakpoint props to child af-tab elements\n */\n private syncChildProps() {\n const tabs = this.el.querySelectorAll('af-tab');\n tabs.forEach((tab) => {\n tab.setAttribute('shape', this.shape);\n tab.setAttribute('data-breakpoint', this.breakpoint);\n });\n }\n\n /**\n * Handle keyboard navigation between tabs\n */\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n const tabs = Array.from(this.el.querySelectorAll('af-tab:not([disabled])')) as HTMLElement[];\n const currentIndex = tabs.findIndex(tab => tab === document.activeElement || tab.shadowRoot?.activeElement);\n \n if (currentIndex === -1) return;\n\n let newIndex = currentIndex;\n\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n newIndex = currentIndex > 0 ? currentIndex - 1 : tabs.length - 1;\n break;\n case 'ArrowRight':\n event.preventDefault();\n newIndex = currentIndex < tabs.length - 1 ? currentIndex + 1 : 0;\n break;\n case 'Home':\n event.preventDefault();\n newIndex = 0;\n break;\n case 'End':\n event.preventDefault();\n newIndex = tabs.length - 1;\n break;\n default:\n return;\n }\n\n // Focus the button inside the shadow DOM of the tab\n const targetTab = tabs[newIndex];\n const button = targetTab.shadowRoot?.querySelector('button');\n if (button) {\n button.focus();\n }\n }\n\n render() {\n const containerClasses = {\n 'tab-bar': true,\n [`shape-${this.shape}`]: true,\n [`breakpoint-${this.breakpoint}`]: true,\n };\n\n return (\n <Host role=\"tablist\">\n <div class={containerClasses}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"],"version":3}
1
+ {"file":"p-Ws-qvw9w.js","mappings":";;AAAA,MAAM,WAAW,GAAG,qkCAAqkC;;MCyB5kC,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AALrB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAQE;;;;AAIG;AACsB,QAAA,IAAK,CAAA,KAAA,GAAgB,QAAQ;AAEtD;;;;AAIG;AACsB,QAAA,IAAU,CAAA,UAAA,GAAqB,SAAS;AA6ElE;IA3EC,gBAAgB,GAAA;QACd,IAAI,CAAC,cAAc,EAAE;;IAGvB,kBAAkB,GAAA;QAChB,IAAI,CAAC,cAAc,EAAE;;AAGvB;;AAEG;IACK,cAAc,GAAA;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAC/C,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACnB,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;YACrC,GAAG,CAAC,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC;AACtD,SAAC,CAAC;;AAGJ;;AAEG;AAEH,IAAA,aAAa,CAAC,KAAoB,EAAA;AAChC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAkB;QAC5F,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,CAAC,aAAa,IAAI,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC;QAE3G,IAAI,YAAY,KAAK,EAAE;YAAE;QAEzB,IAAI,QAAQ,GAAG,YAAY;AAE3B,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;gBAChE;AACF,YAAA,KAAK,YAAY;gBACf,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC;gBAChE;AACF,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE;gBACtB,QAAQ,GAAG,CAAC;gBACZ;AACF,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;gBAC1B;AACF,YAAA;gBACE;;;AAIJ,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC;QAC5D,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,KAAK,EAAE;;;IAIlB,MAAM,GAAA;AACJ,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,CAAC,SAAS,IAAI,CAAC,KAAK,CAAE,CAAA,GAAG,IAAI;AAC7B,YAAA,CAAC,cAAc,IAAI,CAAC,UAAU,CAAE,CAAA,GAAG,IAAI;SACxC;AAED,QAAA,QACE,CAAC,CAAA,IAAI,EAAC,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,SAAS,EAAA,EAClB,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,gBAAgB,EAAA,EAC1B,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACT,CACD;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-tab-bar/af-tab-bar.css?tag=af-tab-bar&encapsulation=shadow","src/components/af-tab-bar/af-tab-bar.tsx"],"sourcesContent":["/* TabBar component styles */\n:host {\n display: block;\n width: 100%;\n}\n\n.tab-bar {\n display: flex;\n flex-wrap: nowrap;\n align-items: stretch;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n scrollbar-color: var(--af-scrollbar-thumb, #8a7049) var(--af-scrollbar-track, #d1ddda);\n}\n\n/* Custom scrollbar for WebKit browsers */\n.tab-bar::-webkit-scrollbar {\n height: 4px;\n}\n\n.tab-bar::-webkit-scrollbar-track {\n background: var(--af-scrollbar-track, #d1ddda);\n border-radius: 2px;\n}\n\n.tab-bar::-webkit-scrollbar-thumb {\n background: var(--af-scrollbar-thumb, #8a7049);\n border-radius: 2px;\n}\n\n.tab-bar::-webkit-scrollbar-thumb:hover {\n background: var(--af-scrollbar-thumb-hover, #8d785a);\n}\n\n/* ==========================================================================\n SHAPE: SQUARE\n ========================================================================== */\n\n.tab-bar.shape-square {\n gap: 0;\n border-bottom: 1px solid var(--af-background-border-subtle, #e8eeed);\n}\n\n/* ==========================================================================\n SHAPE: PILL\n ========================================================================== */\n\n.tab-bar.shape-pill {\n gap: 0;\n padding: var(--space-2, 8px);\n background-color: var(--af-background-level-1, #e8eeed);\n border-radius: var(--radius-pill, 999px);\n}\n\n/* ==========================================================================\n BREAKPOINT: MOBILE\n ========================================================================== */\n\n.tab-bar.breakpoint-mobile {\n /* Mobile uses compact spacing */\n}\n\n.tab-bar.breakpoint-mobile.shape-square {\n /* Tabs handle their own padding in mobile */\n}\n\n.tab-bar.breakpoint-mobile.shape-pill {\n padding: var(--space-1, 4px);\n}\n\n/* ==========================================================================\n BREAKPOINT: DESKTOP\n ========================================================================== */\n\n.tab-bar.breakpoint-desktop {\n /* Desktop uses more generous spacing */\n}\n\n.tab-bar.breakpoint-desktop.shape-square {\n /* Tabs handle their own padding in desktop mode */\n}\n\n.tab-bar.breakpoint-desktop.shape-pill {\n padding: var(--space-2, 8px);\n}\n\n","import { Component, h, Prop, Host, Element, Listen } from '@stencil/core';\n\nexport type TabBarShape = 'square' | 'pill';\nexport type TabBarBreakpoint = 'mobile' | 'desktop';\n\n/**\n * TabBar component that contains and manages a group of tabs.\n * Provides horizontal layout, keyboard navigation, and consistent styling.\n * \n * @slot - Tab elements (af-tab)\n * \n * @example\n * ```html\n * <af-tab-bar shape=\"square\" breakpoint=\"desktop\">\n * <af-tab label=\"Overview\" active value=\"overview\"></af-tab>\n * <af-tab label=\"Details\" value=\"details\"></af-tab>\n * <af-tab label=\"Settings\" value=\"settings\"></af-tab>\n * </af-tab-bar>\n * ```\n */\n@Component({\n tag: 'af-tab-bar',\n styleUrl: 'af-tab-bar.css',\n shadow: true\n})\nexport class AfTabBar {\n @Element() el!: HTMLElement;\n\n /**\n * Visual shape variant for all tabs\n * - `square` - Rectangular tabs with bottom border indicator\n * - `pill` - Rounded pill tabs with background for active state\n */\n @Prop({ reflect: true }) shape: TabBarShape = 'square';\n\n /**\n * Responsive breakpoint mode\n * - `mobile` - Compact layout with smaller padding\n * - `desktop` - Larger layout with more generous spacing\n */\n @Prop({ reflect: true }) breakpoint: TabBarBreakpoint = 'desktop';\n\n componentDidLoad() {\n this.syncChildProps();\n }\n\n componentDidUpdate() {\n this.syncChildProps();\n }\n\n /**\n * Sync shape and breakpoint props to child af-tab elements\n */\n private syncChildProps() {\n const tabs = this.el.querySelectorAll('af-tab');\n tabs.forEach((tab) => {\n tab.setAttribute('shape', this.shape);\n tab.setAttribute('data-breakpoint', this.breakpoint);\n });\n }\n\n /**\n * Handle keyboard navigation between tabs\n */\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n const tabs = Array.from(this.el.querySelectorAll('af-tab:not([disabled])')) as HTMLElement[];\n const currentIndex = tabs.findIndex(tab => tab === document.activeElement || tab.shadowRoot?.activeElement);\n \n if (currentIndex === -1) return;\n\n let newIndex = currentIndex;\n\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n newIndex = currentIndex > 0 ? currentIndex - 1 : tabs.length - 1;\n break;\n case 'ArrowRight':\n event.preventDefault();\n newIndex = currentIndex < tabs.length - 1 ? currentIndex + 1 : 0;\n break;\n case 'Home':\n event.preventDefault();\n newIndex = 0;\n break;\n case 'End':\n event.preventDefault();\n newIndex = tabs.length - 1;\n break;\n default:\n return;\n }\n\n // Focus the button inside the shadow DOM of the tab\n const targetTab = tabs[newIndex];\n const button = targetTab.shadowRoot?.querySelector('button');\n if (button) {\n button.focus();\n }\n }\n\n render() {\n const containerClasses = {\n 'tab-bar': true,\n [`shape-${this.shape}`]: true,\n [`breakpoint-${this.breakpoint}`]: true,\n };\n\n return (\n <Host role=\"tablist\">\n <div class={containerClasses}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n\n"],"version":3}