@affinda/wc 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/dist/affinda/affinda.esm.js +1 -1
  2. package/dist/affinda/index.esm.js +1 -1
  3. package/dist/affinda/{p-8fe10b18.entry.js → p-02c6f6d1.entry.js} +2 -2
  4. package/dist/affinda/{p-5885ebd3.entry.js → p-0c7d81d0.entry.js} +2 -2
  5. package/dist/affinda/{p-d40f8d18.entry.js → p-1554f3d7.entry.js} +2 -2
  6. package/dist/affinda/{p-0254b263.entry.js → p-15a1d019.entry.js} +2 -2
  7. package/dist/affinda/{p-4f731d31.entry.js → p-1819ae80.entry.js} +2 -2
  8. package/dist/affinda/{p-6898d4bd.entry.js → p-1a71d0f9.entry.js} +2 -2
  9. package/dist/affinda/{p-4f15b8f0.entry.js → p-1e59a051.entry.js} +2 -2
  10. package/dist/affinda/{p-c0f71971.entry.js → p-1f2f7fff.entry.js} +2 -2
  11. package/dist/affinda/{p-7eb0875d.entry.js → p-20faf28d.entry.js} +2 -2
  12. package/dist/affinda/{p-42c4d7b1.entry.js → p-2716cdc4.entry.js} +2 -2
  13. package/dist/affinda/{p-62eb01fa.entry.js → p-3084cb0f.entry.js} +2 -2
  14. package/dist/affinda/{p-8a2cbcf0.entry.js → p-31d96ddc.entry.js} +2 -2
  15. package/dist/affinda/{p-aa9c2609.entry.js → p-374f9557.entry.js} +2 -2
  16. package/dist/affinda/{p-15eac0d5.entry.js → p-3fd3d4cd.entry.js} +2 -2
  17. package/dist/affinda/{p-b13c1438.entry.js → p-41580a3c.entry.js} +2 -2
  18. package/dist/affinda/{p-43a0286a.entry.js → p-47d2f72b.entry.js} +2 -2
  19. package/dist/affinda/{p-9dfb5fab.entry.js → p-50e12df0.entry.js} +2 -2
  20. package/dist/affinda/{p-b69bce30.entry.js → p-54dc41a9.entry.js} +2 -2
  21. package/dist/affinda/{p-283a9dec.entry.js → p-56e96bd3.entry.js} +2 -2
  22. package/dist/affinda/{p-3cd4edd0.entry.js → p-5834ffe7.entry.js} +2 -2
  23. package/dist/affinda/{p-a35ab849.entry.js → p-5e966aa6.entry.js} +2 -2
  24. package/dist/affinda/{p-dd933272.entry.js → p-616e0116.entry.js} +2 -2
  25. package/dist/affinda/{p-3b429a16.entry.js → p-64159112.entry.js} +2 -2
  26. package/dist/affinda/{p-606159d2.entry.js → p-656630fc.entry.js} +2 -2
  27. package/dist/affinda/{p-3a7afe33.entry.js → p-67b08108.entry.js} +2 -2
  28. package/dist/affinda/{p-5e01b103.entry.js → p-6ff65e42.entry.js} +2 -2
  29. package/dist/affinda/{p-369dfdd8.entry.js → p-75d76909.entry.js} +2 -2
  30. package/dist/affinda/{p-b82fc7f1.entry.js → p-761f06ae.entry.js} +2 -2
  31. package/dist/affinda/{p-d9ff321b.entry.js → p-7b08b7ba.entry.js} +2 -2
  32. package/dist/affinda/{p-db7eb209.entry.js → p-7eff3490.entry.js} +2 -2
  33. package/dist/affinda/{p-7faa3fb9.entry.js → p-838bbc80.entry.js} +2 -2
  34. package/dist/affinda/{p-d12d33c8.entry.js → p-88f38401.entry.js} +2 -2
  35. package/dist/affinda/{p-b2a41a48.entry.js → p-8b0d08de.entry.js} +2 -2
  36. package/dist/affinda/{p-f5b4923f.entry.js → p-8f36e911.entry.js} +2 -2
  37. package/dist/affinda/{p-73de3aa7.entry.js → p-919e2144.entry.js} +2 -2
  38. package/dist/affinda/{p-08a42935.entry.js → p-92c61bad.entry.js} +2 -2
  39. package/dist/affinda/{p-646b73fb.entry.js → p-94119fa2.entry.js} +2 -2
  40. package/dist/affinda/{p-6949fbdf.entry.js → p-95da58f3.entry.js} +2 -2
  41. package/dist/affinda/{p-4ff626de.entry.js → p-976e0c29.entry.js} +2 -2
  42. package/dist/affinda/{p-1efa4787.entry.js → p-99b37588.entry.js} +2 -2
  43. package/dist/affinda/p-CYq0zyKH.js +3 -0
  44. package/dist/affinda/p-CYq0zyKH.js.map +1 -0
  45. package/dist/affinda/{p-988fb256.entry.js → p-a196f362.entry.js} +2 -2
  46. package/dist/affinda/{p-91b71a8f.entry.js → p-a3ed4092.entry.js} +2 -2
  47. package/dist/affinda/{p-a70ce66f.entry.js → p-a4b36eb7.entry.js} +2 -2
  48. package/dist/affinda/{p-27026c90.entry.js → p-a6be61c2.entry.js} +2 -2
  49. package/dist/affinda/{p-bc1088a7.entry.js → p-a79077d5.entry.js} +2 -2
  50. package/dist/affinda/{p-cebfc8a9.entry.js → p-b31e438d.entry.js} +2 -2
  51. package/dist/affinda/{p-64f24ab4.entry.js → p-b77fa201.entry.js} +2 -2
  52. package/dist/affinda/{p-6de54e73.entry.js → p-bb80195f.entry.js} +2 -2
  53. package/dist/affinda/{p-7640c285.entry.js → p-bc59dc0e.entry.js} +2 -2
  54. package/dist/affinda/{p-d275fb5d.entry.js → p-be219843.entry.js} +2 -2
  55. package/dist/affinda/{p-17c2999b.entry.js → p-c15d00b5.entry.js} +2 -2
  56. package/dist/affinda/{p-02427605.entry.js → p-c23d7aa5.entry.js} +2 -2
  57. package/dist/affinda/{p-6df7b689.entry.js → p-c2a6c874.entry.js} +2 -2
  58. package/dist/affinda/{p-d34da6c0.entry.js → p-c6aa66f3.entry.js} +2 -2
  59. package/dist/affinda/{p-2d5eb5ac.entry.js → p-c925d301.entry.js} +2 -2
  60. package/dist/affinda/{p-42c69bc9.entry.js → p-cc2539de.entry.js} +2 -2
  61. package/dist/affinda/{p-972984a9.entry.js → p-cd21a62a.entry.js} +2 -2
  62. package/dist/affinda/{p-4f422489.entry.js → p-cea1c1ff.entry.js} +2 -2
  63. package/dist/affinda/{p-1aa795c7.entry.js → p-d573d115.entry.js} +2 -2
  64. package/dist/affinda/{p-c2c16447.entry.js → p-d9b0f217.entry.js} +2 -2
  65. package/dist/affinda/{p-f76ef563.entry.js → p-df10dee2.entry.js} +2 -2
  66. package/dist/affinda/{p-09e202d1.entry.js → p-e057ebf1.entry.js} +2 -2
  67. package/dist/affinda/{p-df6c7170.entry.js → p-e10c03b6.entry.js} +2 -2
  68. package/dist/affinda/{p-78941fec.entry.js → p-ea5aea86.entry.js} +2 -2
  69. package/dist/affinda/{p-8eb60b77.entry.js → p-eca85313.entry.js} +2 -2
  70. package/dist/affinda/{p-bdb3e590.entry.js → p-f1705df1.entry.js} +2 -2
  71. package/dist/affinda/{p-a326d8f6.entry.js → p-f38688c6.entry.js} +2 -2
  72. package/dist/affinda/p-fd772af4.entry.js +2 -0
  73. package/dist/affinda/{p-4ccc3147.entry.js → p-fe09a283.entry.js} +2 -2
  74. package/dist/cjs/af-accordion-item.cjs.entry.js +1 -1
  75. package/dist/cjs/af-accordion.cjs.entry.js +1 -1
  76. package/dist/cjs/af-aspect-ratio.cjs.entry.js +1 -1
  77. package/dist/cjs/af-button-group.cjs.entry.js +1 -1
  78. package/dist/cjs/af-button.cjs.entry.js +1 -1
  79. package/dist/cjs/af-card.cjs.entry.js +1 -1
  80. package/dist/cjs/af-center.cjs.entry.js +1 -1
  81. package/dist/cjs/af-checkbox.cjs.entry.js +1 -1
  82. package/dist/cjs/af-client-carousel.cjs.entry.js +1 -1
  83. package/dist/cjs/af-color-swatch.cjs.entry.js +1 -1
  84. package/dist/cjs/af-contact-item.cjs.entry.js +1 -1
  85. package/dist/cjs/af-container.cjs.entry.js +1 -1
  86. package/dist/cjs/af-divider.cjs.entry.js +1 -1
  87. package/dist/cjs/af-feature-accordion.cjs.entry.js +1 -1
  88. package/dist/cjs/af-feature-card.cjs.entry.js +1 -1
  89. package/dist/cjs/af-feature-grid.cjs.entry.js +1 -1
  90. package/dist/cjs/af-fieldset.cjs.entry.js +1 -1
  91. package/dist/cjs/af-footer-column.cjs.entry.js +1 -1
  92. package/dist/cjs/af-footer-link.cjs.entry.js +1 -1
  93. package/dist/cjs/af-footer.cjs.entry.js +1 -1
  94. package/dist/cjs/af-grid-callout.cjs.entry.js +1 -1
  95. package/dist/cjs/af-grid.cjs.entry.js +1 -1
  96. package/dist/cjs/af-heading_5.cjs.entry.js +1 -1
  97. package/dist/cjs/af-hero.cjs.entry.js +1 -1
  98. package/dist/cjs/af-icon-box.cjs.entry.js +1 -1
  99. package/dist/cjs/af-icon-button.cjs.entry.js +1 -1
  100. package/dist/cjs/af-icon-text.cjs.entry.js +1 -1
  101. package/dist/cjs/af-icon.cjs.entry.js +1 -1
  102. package/dist/cjs/af-illustrated-card.cjs.entry.js +1 -1
  103. package/dist/cjs/af-image.cjs.entry.js +1 -1
  104. package/dist/cjs/af-in-page-banner.cjs.entry.js +1 -1
  105. package/dist/cjs/af-inline.cjs.entry.js +1 -1
  106. package/dist/cjs/af-input.cjs.entry.js +1 -1
  107. package/dist/cjs/af-logo-well.cjs.entry.js +1 -1
  108. package/dist/cjs/af-nav-accordion-item.cjs.entry.js +1 -1
  109. package/dist/cjs/af-nav-accordion.cjs.entry.js +1 -1
  110. package/dist/cjs/af-nav-card.cjs.entry.js +1 -1
  111. package/dist/cjs/af-nav-menu-nest.cjs.entry.js +1 -1
  112. package/dist/cjs/af-nav-menu.cjs.entry.js +1 -1
  113. package/dist/cjs/af-number-badge.cjs.entry.js +1 -1
  114. package/dist/cjs/af-numbered-stepper-item.cjs.entry.js +1 -1
  115. package/dist/cjs/af-numbered-stepper.cjs.entry.js +1 -1
  116. package/dist/cjs/af-paperclip-decoration.cjs.entry.js +1 -1
  117. package/dist/cjs/af-progress-line.cjs.entry.js +1 -1
  118. package/dist/cjs/af-radio.cjs.entry.js +1 -1
  119. package/dist/cjs/af-section.cjs.entry.js +1 -1
  120. package/dist/cjs/af-show.cjs.entry.js +1 -1
  121. package/dist/cjs/af-social-link.cjs.entry.js +1 -1
  122. package/dist/cjs/af-spacer.cjs.entry.js +1 -1
  123. package/dist/cjs/af-split-section.cjs.entry.js +1 -1
  124. package/dist/cjs/af-stack.cjs.entry.js +1 -1
  125. package/dist/cjs/af-stat.cjs.entry.js +1 -1
  126. package/dist/cjs/af-stats-row.cjs.entry.js +1 -1
  127. package/dist/cjs/af-stepper-step.cjs.entry.js +1 -1
  128. package/dist/cjs/af-stepper.cjs.entry.js +1 -1
  129. package/dist/cjs/af-switch.cjs.entry.js +1 -1
  130. package/dist/cjs/af-tab-bar.cjs.entry.js +1 -1
  131. package/dist/cjs/af-tab.cjs.entry.js +1 -1
  132. package/dist/cjs/af-tag.cjs.entry.js +1 -1
  133. package/dist/cjs/af-testimonial-carousel.cjs.entry.js +1 -1
  134. package/dist/cjs/af-testimonial-stat.cjs.entry.js +1 -1
  135. package/dist/cjs/af-testimonial.cjs.entry.js +1 -1
  136. package/dist/cjs/af-text-image-nest.cjs.entry.js +1 -1
  137. package/dist/cjs/af-text-image.cjs.entry.js +1 -1
  138. package/dist/cjs/af-textarea.cjs.entry.js +1 -1
  139. package/dist/cjs/af-theme-override.cjs.entry.js +1 -1
  140. package/dist/cjs/af-typography-lockup.cjs.entry.js +1 -1
  141. package/dist/cjs/af-video-container.cjs.entry.js +1 -1
  142. package/dist/cjs/af-visually-hidden.cjs.entry.js +1 -1
  143. package/dist/cjs/affinda.cjs.js +1 -1
  144. package/dist/cjs/{index-3161MbMQ.js → index-BuJz1C1M.js} +647 -9
  145. package/dist/cjs/index-BuJz1C1M.js.map +1 -0
  146. package/dist/cjs/index.cjs.js +1 -1
  147. package/dist/cjs/loader.cjs.js +1 -1
  148. package/dist/components/af-accordion-item.js +1 -1
  149. package/dist/components/af-accordion.js +1 -1
  150. package/dist/components/af-aspect-ratio.js +1 -1
  151. package/dist/components/af-button-group.js +1 -1
  152. package/dist/components/af-button.js +1 -1
  153. package/dist/components/af-card.js +1 -1
  154. package/dist/components/af-center.js +1 -1
  155. package/dist/components/af-checkbox.js +1 -1
  156. package/dist/components/af-client-carousel.js +1 -1
  157. package/dist/components/af-color-swatch.js +1 -1
  158. package/dist/components/af-contact-item.js +1 -1
  159. package/dist/components/af-container.js +1 -1
  160. package/dist/components/af-divider.js +1 -1
  161. package/dist/components/af-feature-accordion.js +1 -1
  162. package/dist/components/af-feature-card.js +1 -1
  163. package/dist/components/af-feature-grid.js +2 -2
  164. package/dist/components/af-fieldset.js +1 -1
  165. package/dist/components/af-footer-column.js +1 -1
  166. package/dist/components/af-footer-link.js +1 -1
  167. package/dist/components/af-footer.js +1 -1
  168. package/dist/components/af-grid-callout.js +2 -2
  169. package/dist/components/af-grid.js +1 -1
  170. package/dist/components/af-heading.js +1 -1
  171. package/dist/components/af-hero.js +1 -1
  172. package/dist/components/af-icon-box.js +1 -1
  173. package/dist/components/af-icon-button.js +1 -1
  174. package/dist/components/af-icon-text.js +4 -4
  175. package/dist/components/af-icon.js +1 -1
  176. package/dist/components/af-illustrated-card.js +1 -1
  177. package/dist/components/af-image.js +1 -1
  178. package/dist/components/af-in-page-banner.js +2 -2
  179. package/dist/components/af-inline.js +1 -1
  180. package/dist/components/af-input.js +1 -1
  181. package/dist/components/af-logo-well.js +1 -1
  182. package/dist/components/af-logo.js +1 -1
  183. package/dist/components/af-nav-accordion-item.js +1 -1
  184. package/dist/components/af-nav-accordion.js +1 -1
  185. package/dist/components/af-nav-card.js +1 -1
  186. package/dist/components/af-nav-item.js +1 -1
  187. package/dist/components/af-nav-menu-nest.js +1 -1
  188. package/dist/components/af-nav-menu.js +1 -1
  189. package/dist/components/af-navbar.js +1 -1
  190. package/dist/components/af-number-badge.js +1 -1
  191. package/dist/components/af-numbered-stepper-item.js +3 -3
  192. package/dist/components/af-numbered-stepper.js +1 -1
  193. package/dist/components/af-paperclip-decoration.js +1 -1
  194. package/dist/components/af-progress-line.js +1 -1
  195. package/dist/components/af-radio.js +1 -1
  196. package/dist/components/af-section.js +1 -1
  197. package/dist/components/af-show.js +1 -1
  198. package/dist/components/af-social-link.js +1 -1
  199. package/dist/components/af-spacer.js +1 -1
  200. package/dist/components/af-split-section.js +2 -2
  201. package/dist/components/af-stack.js +1 -1
  202. package/dist/components/af-stat.js +3 -3
  203. package/dist/components/af-stats-row.js +1 -1
  204. package/dist/components/af-stepper-step.js +1 -1
  205. package/dist/components/af-stepper.js +1 -1
  206. package/dist/components/af-switch.js +1 -1
  207. package/dist/components/af-tab-bar.js +1 -1
  208. package/dist/components/af-tab.js +1 -1
  209. package/dist/components/af-tag.js +1 -1
  210. package/dist/components/af-testimonial-carousel.js +2 -2
  211. package/dist/components/af-testimonial-stat.js +3 -3
  212. package/dist/components/af-testimonial.js +4 -4
  213. package/dist/components/af-text-image-nest.js +1 -1
  214. package/dist/components/af-text-image.js +2 -2
  215. package/dist/components/af-text.js +1 -1
  216. package/dist/components/af-textarea.js +1 -1
  217. package/dist/components/af-theme-override.js +1 -1
  218. package/dist/components/af-typography-lockup.js +1 -1
  219. package/dist/components/af-video-container.js +3 -3
  220. package/dist/components/af-visually-hidden.js +1 -1
  221. package/dist/components/index.js +25 -25
  222. package/dist/components/{p-BuiXTazC.js → p-B7J9U9if.js} +3 -3
  223. package/dist/components/{p-BuiXTazC.js.map → p-B7J9U9if.js.map} +1 -1
  224. package/dist/components/{p-CZdcAZe_.js → p-BExjo6P2.js} +4 -4
  225. package/dist/components/{p-CZdcAZe_.js.map → p-BExjo6P2.js.map} +1 -1
  226. package/dist/components/{p-BkTUo72F.js → p-B_r5b4JI.js} +3 -3
  227. package/dist/components/{p-BkTUo72F.js.map → p-B_r5b4JI.js.map} +1 -1
  228. package/dist/components/{p-C_y6F4SM.js → p-Bebi4EvS.js} +3 -3
  229. package/dist/components/{p-C_y6F4SM.js.map → p-Bebi4EvS.js.map} +1 -1
  230. package/dist/components/{p-QpoTJlVn.js → p-BipyebXl.js} +3 -3
  231. package/dist/components/{p-QpoTJlVn.js.map → p-BipyebXl.js.map} +1 -1
  232. package/dist/components/{p-CiY0Twna.js → p-Btpdr0Bi.js} +644 -9
  233. package/dist/components/p-Btpdr0Bi.js.map +1 -0
  234. package/dist/components/{p-CaHyFRpU.js → p-C05qWmXd.js} +3 -3
  235. package/dist/components/{p-CaHyFRpU.js.map → p-C05qWmXd.js.map} +1 -1
  236. package/dist/components/{p-G5cG9ahw.js → p-C1nX4HkM.js} +3 -3
  237. package/dist/components/{p-G5cG9ahw.js.map → p-C1nX4HkM.js.map} +1 -1
  238. package/dist/components/{p-DGlAo2Hc.js → p-C8HmyE5-.js} +3 -3
  239. package/dist/components/{p-DGlAo2Hc.js.map → p-C8HmyE5-.js.map} +1 -1
  240. package/dist/components/{p-DmlCoFGW.js → p-CMatO7AD.js} +3 -3
  241. package/dist/components/{p-DmlCoFGW.js.map → p-CMatO7AD.js.map} +1 -1
  242. package/dist/components/{p-DdH3uwBx.js → p-CPPy4ZvS.js} +4 -4
  243. package/dist/components/{p-DdH3uwBx.js.map → p-CPPy4ZvS.js.map} +1 -1
  244. package/dist/components/{p-DyqBBl8X.js → p-CY3F_EFI.js} +5 -5
  245. package/dist/components/{p-DyqBBl8X.js.map → p-CY3F_EFI.js.map} +1 -1
  246. package/dist/components/{p-B-hgy9Qr.js → p-CeWN48Eq.js} +3 -3
  247. package/dist/components/{p-B-hgy9Qr.js.map → p-CeWN48Eq.js.map} +1 -1
  248. package/dist/components/{p-CUmn76Kf.js → p-CkaL7yIW.js} +3 -3
  249. package/dist/components/{p-CUmn76Kf.js.map → p-CkaL7yIW.js.map} +1 -1
  250. package/dist/components/{p-B_32JVKl.js → p-CmOT3tAE.js} +3 -3
  251. package/dist/components/{p-B_32JVKl.js.map → p-CmOT3tAE.js.map} +1 -1
  252. package/dist/components/{p-B4IVxpr4.js → p-CmU4eYJE.js} +3 -3
  253. package/dist/components/{p-B4IVxpr4.js.map → p-CmU4eYJE.js.map} +1 -1
  254. package/dist/components/{p-BTZzBVqv.js → p-CxQXmlHR.js} +4 -4
  255. package/dist/components/{p-BTZzBVqv.js.map → p-CxQXmlHR.js.map} +1 -1
  256. package/dist/components/{p-Dye7hRk7.js → p-D1kXpb5A.js} +3 -3
  257. package/dist/components/{p-Dye7hRk7.js.map → p-D1kXpb5A.js.map} +1 -1
  258. package/dist/components/{p-CeBCwjRf.js → p-D5-m35gX.js} +3 -3
  259. package/dist/components/{p-CeBCwjRf.js.map → p-D5-m35gX.js.map} +1 -1
  260. package/dist/components/{p-DrCZBGKv.js → p-DBtE-heu.js} +5 -5
  261. package/dist/components/{p-DrCZBGKv.js.map → p-DBtE-heu.js.map} +1 -1
  262. package/dist/components/{p--aWqZ9H9.js → p-DMXuAjLo.js} +3 -3
  263. package/dist/components/{p--aWqZ9H9.js.map → p-DMXuAjLo.js.map} +1 -1
  264. package/dist/components/{p-CnbO_hx0.js → p-DNdQkidf.js} +3 -3
  265. package/dist/components/{p-CnbO_hx0.js.map → p-DNdQkidf.js.map} +1 -1
  266. package/dist/components/{p-DobkLkti.js → p-DOZPKyww.js} +3 -3
  267. package/dist/components/{p-DobkLkti.js.map → p-DOZPKyww.js.map} +1 -1
  268. package/dist/components/{p-DQF6qg3h.js → p-DUWgh2he.js} +3 -3
  269. package/dist/components/{p-DQF6qg3h.js.map → p-DUWgh2he.js.map} +1 -1
  270. package/dist/components/{p-DQFOagz0.js → p-Dd_y3e80.js} +3 -3
  271. package/dist/components/{p-DQFOagz0.js.map → p-Dd_y3e80.js.map} +1 -1
  272. package/dist/components/{p-BsHk9vlU.js → p-DinivoZj.js} +3 -3
  273. package/dist/components/{p-BsHk9vlU.js.map → p-DinivoZj.js.map} +1 -1
  274. package/dist/components/{p-DWD7Oc5l.js → p-DrEl4PxE.js} +3 -3
  275. package/dist/components/{p-DWD7Oc5l.js.map → p-DrEl4PxE.js.map} +1 -1
  276. package/dist/components/{p-CJU2A9Ab.js → p-DrXw6vxx.js} +3 -3
  277. package/dist/components/{p-CJU2A9Ab.js.map → p-DrXw6vxx.js.map} +1 -1
  278. package/dist/components/{p-Bx-hxLP0.js → p-FV14KcoH.js} +3 -3
  279. package/dist/components/{p-Bx-hxLP0.js.map → p-FV14KcoH.js.map} +1 -1
  280. package/dist/components/{p-BMs3J6ty.js → p-WJ7nfpxz.js} +6 -6
  281. package/dist/components/{p-BMs3J6ty.js.map → p-WJ7nfpxz.js.map} +1 -1
  282. package/dist/components/{p-CImZ9bq8.js → p-XmT5SQOF.js} +3 -3
  283. package/dist/components/{p-CImZ9bq8.js.map → p-XmT5SQOF.js.map} +1 -1
  284. package/dist/components/{p-DnDXrxJ7.js → p-joRNg4Kk.js} +3 -3
  285. package/dist/components/{p-DnDXrxJ7.js.map → p-joRNg4Kk.js.map} +1 -1
  286. package/dist/esm/af-accordion-item.entry.js +1 -1
  287. package/dist/esm/af-accordion.entry.js +1 -1
  288. package/dist/esm/af-aspect-ratio.entry.js +1 -1
  289. package/dist/esm/af-button-group.entry.js +1 -1
  290. package/dist/esm/af-button.entry.js +1 -1
  291. package/dist/esm/af-card.entry.js +1 -1
  292. package/dist/esm/af-center.entry.js +1 -1
  293. package/dist/esm/af-checkbox.entry.js +1 -1
  294. package/dist/esm/af-client-carousel.entry.js +1 -1
  295. package/dist/esm/af-color-swatch.entry.js +1 -1
  296. package/dist/esm/af-contact-item.entry.js +1 -1
  297. package/dist/esm/af-container.entry.js +1 -1
  298. package/dist/esm/af-divider.entry.js +1 -1
  299. package/dist/esm/af-feature-accordion.entry.js +1 -1
  300. package/dist/esm/af-feature-card.entry.js +1 -1
  301. package/dist/esm/af-feature-grid.entry.js +1 -1
  302. package/dist/esm/af-fieldset.entry.js +1 -1
  303. package/dist/esm/af-footer-column.entry.js +1 -1
  304. package/dist/esm/af-footer-link.entry.js +1 -1
  305. package/dist/esm/af-footer.entry.js +1 -1
  306. package/dist/esm/af-grid-callout.entry.js +1 -1
  307. package/dist/esm/af-grid.entry.js +1 -1
  308. package/dist/esm/af-heading_5.entry.js +1 -1
  309. package/dist/esm/af-hero.entry.js +1 -1
  310. package/dist/esm/af-icon-box.entry.js +1 -1
  311. package/dist/esm/af-icon-button.entry.js +1 -1
  312. package/dist/esm/af-icon-text.entry.js +1 -1
  313. package/dist/esm/af-icon.entry.js +1 -1
  314. package/dist/esm/af-illustrated-card.entry.js +1 -1
  315. package/dist/esm/af-image.entry.js +1 -1
  316. package/dist/esm/af-in-page-banner.entry.js +1 -1
  317. package/dist/esm/af-inline.entry.js +1 -1
  318. package/dist/esm/af-input.entry.js +1 -1
  319. package/dist/esm/af-logo-well.entry.js +1 -1
  320. package/dist/esm/af-nav-accordion-item.entry.js +1 -1
  321. package/dist/esm/af-nav-accordion.entry.js +1 -1
  322. package/dist/esm/af-nav-card.entry.js +1 -1
  323. package/dist/esm/af-nav-menu-nest.entry.js +1 -1
  324. package/dist/esm/af-nav-menu.entry.js +1 -1
  325. package/dist/esm/af-number-badge.entry.js +1 -1
  326. package/dist/esm/af-numbered-stepper-item.entry.js +1 -1
  327. package/dist/esm/af-numbered-stepper.entry.js +1 -1
  328. package/dist/esm/af-paperclip-decoration.entry.js +1 -1
  329. package/dist/esm/af-progress-line.entry.js +1 -1
  330. package/dist/esm/af-radio.entry.js +1 -1
  331. package/dist/esm/af-section.entry.js +1 -1
  332. package/dist/esm/af-show.entry.js +1 -1
  333. package/dist/esm/af-social-link.entry.js +1 -1
  334. package/dist/esm/af-spacer.entry.js +1 -1
  335. package/dist/esm/af-split-section.entry.js +1 -1
  336. package/dist/esm/af-stack.entry.js +1 -1
  337. package/dist/esm/af-stat.entry.js +1 -1
  338. package/dist/esm/af-stats-row.entry.js +1 -1
  339. package/dist/esm/af-stepper-step.entry.js +1 -1
  340. package/dist/esm/af-stepper.entry.js +1 -1
  341. package/dist/esm/af-switch.entry.js +1 -1
  342. package/dist/esm/af-tab-bar.entry.js +1 -1
  343. package/dist/esm/af-tab.entry.js +1 -1
  344. package/dist/esm/af-tag.entry.js +1 -1
  345. package/dist/esm/af-testimonial-carousel.entry.js +1 -1
  346. package/dist/esm/af-testimonial-stat.entry.js +1 -1
  347. package/dist/esm/af-testimonial.entry.js +1 -1
  348. package/dist/esm/af-text-image-nest.entry.js +1 -1
  349. package/dist/esm/af-text-image.entry.js +1 -1
  350. package/dist/esm/af-textarea.entry.js +1 -1
  351. package/dist/esm/af-theme-override.entry.js +1 -1
  352. package/dist/esm/af-typography-lockup.entry.js +1 -1
  353. package/dist/esm/af-video-container.entry.js +1 -1
  354. package/dist/esm/af-visually-hidden.entry.js +1 -1
  355. package/dist/esm/affinda.js +2 -2
  356. package/dist/esm/{index-C4WBekD2.js → index-CYq0zyKH.js} +647 -9
  357. package/dist/esm/index-CYq0zyKH.js.map +1 -0
  358. package/dist/esm/index.js +1 -1
  359. package/dist/esm/loader.js +2 -2
  360. package/dist/hydrate/index.d.ts +275 -0
  361. package/dist/hydrate/index.js +24871 -0
  362. package/dist/hydrate/index.mjs +24863 -0
  363. package/dist/hydrate/package.json +12 -0
  364. package/package.json +21 -1
  365. package/dist/affinda/p-C4WBekD2.js +0 -3
  366. package/dist/affinda/p-C4WBekD2.js.map +0 -1
  367. package/dist/affinda/p-d0fdef08.entry.js +0 -2
  368. package/dist/cjs/index-3161MbMQ.js.map +0 -1
  369. package/dist/components/p-CiY0Twna.js.map +0 -1
  370. package/dist/esm/index-C4WBekD2.js.map +0 -1
  371. /package/dist/affinda/{p-8fe10b18.entry.js.map → p-02c6f6d1.entry.js.map} +0 -0
  372. /package/dist/affinda/{p-5885ebd3.entry.js.map → p-0c7d81d0.entry.js.map} +0 -0
  373. /package/dist/affinda/{p-d40f8d18.entry.js.map → p-1554f3d7.entry.js.map} +0 -0
  374. /package/dist/affinda/{p-0254b263.entry.js.map → p-15a1d019.entry.js.map} +0 -0
  375. /package/dist/affinda/{p-4f731d31.entry.js.map → p-1819ae80.entry.js.map} +0 -0
  376. /package/dist/affinda/{p-6898d4bd.entry.js.map → p-1a71d0f9.entry.js.map} +0 -0
  377. /package/dist/affinda/{p-4f15b8f0.entry.js.map → p-1e59a051.entry.js.map} +0 -0
  378. /package/dist/affinda/{p-c0f71971.entry.js.map → p-1f2f7fff.entry.js.map} +0 -0
  379. /package/dist/affinda/{p-7eb0875d.entry.js.map → p-20faf28d.entry.js.map} +0 -0
  380. /package/dist/affinda/{p-42c4d7b1.entry.js.map → p-2716cdc4.entry.js.map} +0 -0
  381. /package/dist/affinda/{p-62eb01fa.entry.js.map → p-3084cb0f.entry.js.map} +0 -0
  382. /package/dist/affinda/{p-8a2cbcf0.entry.js.map → p-31d96ddc.entry.js.map} +0 -0
  383. /package/dist/affinda/{p-aa9c2609.entry.js.map → p-374f9557.entry.js.map} +0 -0
  384. /package/dist/affinda/{p-15eac0d5.entry.js.map → p-3fd3d4cd.entry.js.map} +0 -0
  385. /package/dist/affinda/{p-b13c1438.entry.js.map → p-41580a3c.entry.js.map} +0 -0
  386. /package/dist/affinda/{p-43a0286a.entry.js.map → p-47d2f72b.entry.js.map} +0 -0
  387. /package/dist/affinda/{p-9dfb5fab.entry.js.map → p-50e12df0.entry.js.map} +0 -0
  388. /package/dist/affinda/{p-b69bce30.entry.js.map → p-54dc41a9.entry.js.map} +0 -0
  389. /package/dist/affinda/{p-283a9dec.entry.js.map → p-56e96bd3.entry.js.map} +0 -0
  390. /package/dist/affinda/{p-3cd4edd0.entry.js.map → p-5834ffe7.entry.js.map} +0 -0
  391. /package/dist/affinda/{p-a35ab849.entry.js.map → p-5e966aa6.entry.js.map} +0 -0
  392. /package/dist/affinda/{p-dd933272.entry.js.map → p-616e0116.entry.js.map} +0 -0
  393. /package/dist/affinda/{p-3b429a16.entry.js.map → p-64159112.entry.js.map} +0 -0
  394. /package/dist/affinda/{p-606159d2.entry.js.map → p-656630fc.entry.js.map} +0 -0
  395. /package/dist/affinda/{p-3a7afe33.entry.js.map → p-67b08108.entry.js.map} +0 -0
  396. /package/dist/affinda/{p-5e01b103.entry.js.map → p-6ff65e42.entry.js.map} +0 -0
  397. /package/dist/affinda/{p-369dfdd8.entry.js.map → p-75d76909.entry.js.map} +0 -0
  398. /package/dist/affinda/{p-b82fc7f1.entry.js.map → p-761f06ae.entry.js.map} +0 -0
  399. /package/dist/affinda/{p-d9ff321b.entry.js.map → p-7b08b7ba.entry.js.map} +0 -0
  400. /package/dist/affinda/{p-db7eb209.entry.js.map → p-7eff3490.entry.js.map} +0 -0
  401. /package/dist/affinda/{p-7faa3fb9.entry.js.map → p-838bbc80.entry.js.map} +0 -0
  402. /package/dist/affinda/{p-d12d33c8.entry.js.map → p-88f38401.entry.js.map} +0 -0
  403. /package/dist/affinda/{p-b2a41a48.entry.js.map → p-8b0d08de.entry.js.map} +0 -0
  404. /package/dist/affinda/{p-f5b4923f.entry.js.map → p-8f36e911.entry.js.map} +0 -0
  405. /package/dist/affinda/{p-73de3aa7.entry.js.map → p-919e2144.entry.js.map} +0 -0
  406. /package/dist/affinda/{p-08a42935.entry.js.map → p-92c61bad.entry.js.map} +0 -0
  407. /package/dist/affinda/{p-646b73fb.entry.js.map → p-94119fa2.entry.js.map} +0 -0
  408. /package/dist/affinda/{p-6949fbdf.entry.js.map → p-95da58f3.entry.js.map} +0 -0
  409. /package/dist/affinda/{p-4ff626de.entry.js.map → p-976e0c29.entry.js.map} +0 -0
  410. /package/dist/affinda/{p-1efa4787.entry.js.map → p-99b37588.entry.js.map} +0 -0
  411. /package/dist/affinda/{p-988fb256.entry.js.map → p-a196f362.entry.js.map} +0 -0
  412. /package/dist/affinda/{p-91b71a8f.entry.js.map → p-a3ed4092.entry.js.map} +0 -0
  413. /package/dist/affinda/{p-a70ce66f.entry.js.map → p-a4b36eb7.entry.js.map} +0 -0
  414. /package/dist/affinda/{p-27026c90.entry.js.map → p-a6be61c2.entry.js.map} +0 -0
  415. /package/dist/affinda/{p-bc1088a7.entry.js.map → p-a79077d5.entry.js.map} +0 -0
  416. /package/dist/affinda/{p-cebfc8a9.entry.js.map → p-b31e438d.entry.js.map} +0 -0
  417. /package/dist/affinda/{p-64f24ab4.entry.js.map → p-b77fa201.entry.js.map} +0 -0
  418. /package/dist/affinda/{p-6de54e73.entry.js.map → p-bb80195f.entry.js.map} +0 -0
  419. /package/dist/affinda/{p-7640c285.entry.js.map → p-bc59dc0e.entry.js.map} +0 -0
  420. /package/dist/affinda/{p-d275fb5d.entry.js.map → p-be219843.entry.js.map} +0 -0
  421. /package/dist/affinda/{p-17c2999b.entry.js.map → p-c15d00b5.entry.js.map} +0 -0
  422. /package/dist/affinda/{p-02427605.entry.js.map → p-c23d7aa5.entry.js.map} +0 -0
  423. /package/dist/affinda/{p-6df7b689.entry.js.map → p-c2a6c874.entry.js.map} +0 -0
  424. /package/dist/affinda/{p-d34da6c0.entry.js.map → p-c6aa66f3.entry.js.map} +0 -0
  425. /package/dist/affinda/{p-2d5eb5ac.entry.js.map → p-c925d301.entry.js.map} +0 -0
  426. /package/dist/affinda/{p-42c69bc9.entry.js.map → p-cc2539de.entry.js.map} +0 -0
  427. /package/dist/affinda/{p-972984a9.entry.js.map → p-cd21a62a.entry.js.map} +0 -0
  428. /package/dist/affinda/{p-4f422489.entry.js.map → p-cea1c1ff.entry.js.map} +0 -0
  429. /package/dist/affinda/{p-1aa795c7.entry.js.map → p-d573d115.entry.js.map} +0 -0
  430. /package/dist/affinda/{p-c2c16447.entry.js.map → p-d9b0f217.entry.js.map} +0 -0
  431. /package/dist/affinda/{p-f76ef563.entry.js.map → p-df10dee2.entry.js.map} +0 -0
  432. /package/dist/affinda/{p-09e202d1.entry.js.map → p-e057ebf1.entry.js.map} +0 -0
  433. /package/dist/affinda/{p-df6c7170.entry.js.map → p-e10c03b6.entry.js.map} +0 -0
  434. /package/dist/affinda/{p-78941fec.entry.js.map → p-ea5aea86.entry.js.map} +0 -0
  435. /package/dist/affinda/{p-8eb60b77.entry.js.map → p-eca85313.entry.js.map} +0 -0
  436. /package/dist/affinda/{p-bdb3e590.entry.js.map → p-f1705df1.entry.js.map} +0 -0
  437. /package/dist/affinda/{p-a326d8f6.entry.js.map → p-f38688c6.entry.js.map} +0 -0
  438. /package/dist/affinda/{p-d0fdef08.entry.js.map → p-fd772af4.entry.js.map} +0 -0
  439. /package/dist/affinda/{p-4ccc3147.entry.js.map → p-fe09a283.entry.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { A as AfTag$1, d as defineCustomElement$1 } from './p-B4IVxpr4.js';
1
+ import { A as AfTag$1, d as defineCustomElement$1 } from './p-CmU4eYJE.js';
2
2
 
3
3
  const AfTag = AfTag$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, h, c as Host } from './p-CiY0Twna.js';
2
- import { d as defineCustomElement$2 } from './p-Dye7hRk7.js';
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-Btpdr0Bi.js';
2
+ import { d as defineCustomElement$2 } from './p-D1kXpb5A.js';
3
3
 
4
4
  const afTestimonialCarouselCss = ".sc-af-testimonial-carousel-h{display:block;width:100%}.testimonial-carousel.sc-af-testimonial-carousel{position:relative;width:100%;overflow:hidden}.testimonial-slides.sc-af-testimonial-carousel{position:relative;width:100%;min-height:544px;overflow:hidden}.testimonial-slides.sc-af-testimonial-carousel-s>af-testimonial,.testimonial-slides .sc-af-testimonial-carousel-s>af-testimonial{position:absolute;top:0;left:0;width:100%;transition:transform 0.5s ease-in-out, opacity 0.5s ease-in-out}@media (prefers-reduced-motion: reduce){.testimonial-slides.sc-af-testimonial-carousel-s>af-testimonial,.testimonial-slides .sc-af-testimonial-carousel-s>af-testimonial{transition:none}}.testimonial-progress.sc-af-testimonial-carousel{margin-top:32px;max-width:840px;margin-left:auto;margin-right:auto}";
5
5
 
@@ -1,6 +1,6 @@
1
- import { p as proxyCustomElement, H, h, c as Host } from './p-CiY0Twna.js';
2
- import { d as defineCustomElement$3 } from './p-CaHyFRpU.js';
3
- import { d as defineCustomElement$2 } from './p-G5cG9ahw.js';
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-Btpdr0Bi.js';
2
+ import { d as defineCustomElement$3 } from './p-C05qWmXd.js';
3
+ import { d as defineCustomElement$2 } from './p-C1nX4HkM.js';
4
4
 
5
5
  const afTestimonialStatCss = ".sc-af-testimonial-stat-h{display:block;flex:1;min-width:0}.stat.sc-af-testimonial-stat{display:flex;flex-direction:column;gap:8px}.stat--accent.sc-af-testimonial-stat{border-left:2px solid var(--af-background-border-active, var(--colour-softclay-800, #8a7049));padding-left:16px;min-height:76px;justify-content:center}.stat-value.sc-af-testimonial-stat{--af-typography-heading-primary:var(--af-typography-heading-secondary, var(--colour-brand-soft-clay, #b09670));letter-spacing:-0.88px;white-space:nowrap;font-variant-numeric:lining-nums proportional-nums;font-feature-settings:'ss01', 'kern'}.stat-description.sc-af-testimonial-stat{--af-typography-body-default:var(--af-typography-body-dark, var(--colour-brand-inkwell, #14343b));overflow:hidden;text-overflow:ellipsis}";
6
6
 
@@ -1,7 +1,7 @@
1
- import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-CiY0Twna.js';
2
- import { d as defineCustomElement$4 } from './p-B-hgy9Qr.js';
3
- import { d as defineCustomElement$3 } from './p-DmlCoFGW.js';
4
- import { d as defineCustomElement$2 } from './p-DGlAo2Hc.js';
1
+ import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-Btpdr0Bi.js';
2
+ import { d as defineCustomElement$4 } from './p-CeWN48Eq.js';
3
+ import { d as defineCustomElement$3 } from './p-CMatO7AD.js';
4
+ import { d as defineCustomElement$2 } from './p-C8HmyE5-.js';
5
5
 
6
6
  const afTestimonialCss = ".sc-af-testimonial-h{display:block;width:100%}.testimonial-card.sc-af-testimonial{background:var(--af-background-level-1, var(--colour-mistgreen-200, #e8eeed));border-radius:var(--border-radius-card-level-1, 32px);overflow:hidden;display:flex;height:544px;box-sizing:border-box}.testimonial-image.sc-af-testimonial{position:relative;width:50%;min-width:300px;max-width:519px;height:100%;background:var(--colour-brand-inkwell, #14343b);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.testimonial-bg-image.sc-af-testimonial{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0.7}.testimonial-logo.sc-af-testimonial{position:relative;z-index:1;padding:0 108px;max-width:100%}.testimonial-logo.sc-af-testimonial img.sc-af-testimonial{width:100%;height:auto;display:block}.testimonial-content.sc-af-testimonial{flex:1;display:flex;flex-direction:column;gap:32px;padding:48px;border:1px solid var(--af-background-border-subtle, var(--colour-mistgreen-200, #e8eeed));border-left:1px solid var(--af-background-border-subtle, var(--colour-mistgreen-200, #e8eeed));box-sizing:border-box}.testimonial-quote-section.sc-af-testimonial{flex:1;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden}.testimonial-quote-icon.sc-af-testimonial{width:48px;height:48px;color:var(--af-typography-heading-secondary, var(--colour-brand-soft-clay, #b09670));flex-shrink:0}.testimonial-text.sc-af-testimonial{font-family:var(--typography-bodyfont, 'NeuSans', sans-serif);font-size:22px;line-height:1.4;font-weight:var(--font-weight-regular, 400);color:var(--af-typography-body-default, var(--colour-brand-inkwell, #14343b))}.testimonial-text.sc-af-testimonial-s>p,.testimonial-text .sc-af-testimonial-s>p,.testimonial-text.sc-af-testimonial p.sc-af-testimonial{font:inherit;color:inherit;margin:0 0 12px 0}.testimonial-text.sc-af-testimonial-s>p,.testimonial-text.sc-af-testimonial-s>p:last-child,.testimonial-text .sc-af-testimonial-s>p:last-child,.testimonial-text.sc-af-testimonial p.sc-af-testimonial:last-child{margin-bottom:0}.testimonial-text.sc-af-testimonial-s>ul,.testimonial-text .sc-af-testimonial-s>ul,.testimonial-text.sc-af-testimonial ul.sc-af-testimonial{margin:0 0 12px 0;padding-left:20px}.testimonial-attribution.sc-af-testimonial{font-family:var(--typography-bodyfont, 'NeuSans', sans-serif);font-size:16px;line-height:24px;color:var(--af-typography-body-dark, var(--colour-brand-inkwell, #14343b));margin-top:12px}.testimonial-stats.sc-af-testimonial{display:grid;grid-template-columns:repeat(4, 1fr);gap:32px;width:100%;flex-shrink:0}@media (min-width: 768px) and (max-width: 1023px){.testimonial-stats.sc-af-testimonial{grid-template-columns:repeat(2, 1fr)}}@media (max-width: 767px){.testimonial-stats.sc-af-testimonial{grid-template-columns:1fr}}.testimonial-footer.sc-af-testimonial{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--af-background-border-default, var(--colour-mistgreen-400, #d1ddda));padding-top:32px;flex-shrink:0;min-height:48px}.testimonial-nav.sc-af-testimonial{display:flex;gap:12px}.testimonial-nav-buttons.sc-af-testimonial{display:flex;gap:12px}";
7
7
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, c as Host } from './p-CiY0Twna.js';
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-Btpdr0Bi.js';
2
2
 
3
3
  const afTextImageNestCss = ".sc-af-text-image-nest-h{display:block;width:100%}.text-image-nest.sc-af-text-image-nest{width:100%;position:relative}.nest__content.sc-af-text-image-nest{display:flex;flex-direction:column;align-items:center;gap:48px}.nest__grid.sc-af-text-image-nest{display:grid;gap:40px;width:100%}.grid-single.sc-af-text-image-nest{grid-template-columns:1fr}.grid-grid-2.sc-af-text-image-nest{grid-template-columns:repeat(2, 1fr)}.grid-grid-3.sc-af-text-image-nest{grid-template-columns:repeat(3, 1fr)}.grid-grid-4.sc-af-text-image-nest{grid-template-columns:repeat(4, 1fr)}.grid-stacked.sc-af-text-image-nest{grid-template-columns:1fr;gap:48px}.nest__footer.sc-af-text-image-nest{display:flex;justify-content:center;gap:12px}.nest__footer.sc-af-text-image-nest:empty{display:none}@media (max-width: 768px){.nest__content.sc-af-text-image-nest{gap:32px}.nest__grid.sc-af-text-image-nest{grid-template-columns:1fr;gap:32px}.grid-stacked.sc-af-text-image-nest{gap:40px}.nest__footer.sc-af-text-image-nest{flex-direction:column;align-items:center}}.sc-af-text-image-nest-s>*{margin:0}";
4
4
 
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, h, c as Host } from './p-CiY0Twna.js';
2
- import { d as defineCustomElement$2 } from './p-DQFOagz0.js';
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-Btpdr0Bi.js';
2
+ import { d as defineCustomElement$2 } from './p-Dd_y3e80.js';
3
3
 
4
4
  const afTextImageCss = ".sc-af-text-image-h{display:block;width:100%}.text-image.sc-af-text-image{display:flex;width:100%}.text-image--side-by-side.sc-af-text-image{flex-direction:row;align-items:flex-start;gap:var(--space-8, 32px)}.text-image--image-left.sc-af-text-image{flex-direction:row}.text-image--image-right.sc-af-text-image{flex-direction:row}.text-image--full-width.sc-af-text-image{flex-direction:column;gap:var(--space-8, 32px)}.text-image__content.sc-af-text-image{display:flex;flex-direction:column;gap:56px;flex:1;min-width:0}.text-image--proportion-1-2.sc-af-text-image .text-image__content.sc-af-text-image{flex:1}.text-image--proportion-1-3.sc-af-text-image .text-image__content.sc-af-text-image{flex:2}.text-image--proportion-1-4.sc-af-text-image .text-image__content.sc-af-text-image{flex:3}.text-image--proportion-100.sc-af-text-image .text-image__content.sc-af-text-image{flex:none;width:100%}.text-image--image-right.sc-af-text-image .text-image__content.sc-af-text-image{padding-right:var(--space-8, 32px)}.text-image--image-left.sc-af-text-image .text-image__content.sc-af-text-image{padding-left:var(--space-8, 32px)}.text-image--full-width.sc-af-text-image .text-image__content.sc-af-text-image{padding:0}.text-image__lockup.sc-af-text-image{display:flex;flex-direction:column;gap:var(--space-4, 16px);width:100%}.text-image__copy.sc-af-text-image{display:flex;flex-direction:column;gap:var(--space-4, 16px);max-width:840px;width:100%}.text-image__heading.sc-af-text-image{font-family:var(--typography-headingfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-book, 500);font-size:var(--font-size-heading-3-desktop, 34px);line-height:var(--line-height-heading-tight, 1);letter-spacing:var(--letter-spacing-heading, -0.02em);color:var(--af-typography-heading-primary, #14343B);white-space:normal}.text-image__heading.sc-af-text-image:empty{display:none}.text-image__description.sc-af-text-image{font-family:var(--typography-bodyfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-regular, 400);font-size:var(--font-size-body-large, 18px);line-height:var(--line-height-body-large, 26px);color:var(--af-typography-body-default, #2B484F);white-space:normal}.text-image__description.sc-af-text-image:empty{display:none}.text-image__buttons.sc-af-text-image{display:block}.text-image__buttons.sc-af-text-image:empty{display:none}.text-image__image-wrapper.sc-af-text-image{flex-shrink:0;overflow:hidden;border-radius:var(--radius-md, 12px)}.text-image--proportion-1-2.sc-af-text-image .text-image__image-wrapper.sc-af-text-image{flex:1;min-width:0}.text-image--proportion-1-3.sc-af-text-image .text-image__image-wrapper.sc-af-text-image{flex:1;min-width:0}.text-image--proportion-1-4.sc-af-text-image .text-image__image-wrapper.sc-af-text-image{flex:1;min-width:0}.text-image--proportion-100.sc-af-text-image .text-image__image-wrapper.sc-af-text-image{width:100%}@media (max-width: 768px){.text-image--side-by-side.sc-af-text-image{flex-direction:column;gap:var(--space-6, 24px)}.text-image--image-left.sc-af-text-image,.text-image--image-right.sc-af-text-image{flex-direction:column}.text-image--image-right.sc-af-text-image .text-image__content.sc-af-text-image,.text-image--image-left.sc-af-text-image .text-image__content.sc-af-text-image{padding:0}.text-image__content.sc-af-text-image,.text-image__image-wrapper.sc-af-text-image{flex:none !important;width:100%}.text-image__heading.sc-af-text-image{font-size:var(--font-size-heading-3-mobile, 25px)}.text-image--proportion-100.sc-af-text-image .text-image__description.sc-af-text-image{font-size:var(--font-size-body-medium, 16px);line-height:var(--line-height-body-medium, 24px)}.text-image--proportion-100.sc-af-text-image .text-image__lockup.sc-af-text-image{gap:var(--space-3, 12px)}.text-image--proportion-100.sc-af-text-image .text-image__copy.sc-af-text-image{gap:var(--space-3, 12px)}.text-image__image-wrapper.sc-af-text-image{border-radius:var(--radius-sm, 8px)}}.sc-af-text-image-s>*{margin:0}.sc-af-text-image-s>p{margin:0}";
5
5
 
@@ -1,4 +1,4 @@
1
- import { A as AfText$1, d as defineCustomElement$1 } from './p-G5cG9ahw.js';
1
+ import { A as AfText$1, d as defineCustomElement$1 } from './p-C1nX4HkM.js';
2
2
 
3
3
  const AfText = AfText$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { A as AfTextarea$1, d as defineCustomElement$1 } from './p-C_y6F4SM.js';
1
+ import { A as AfTextarea$1, d as defineCustomElement$1 } from './p-Bebi4EvS.js';
2
2
 
3
3
  const AfTextarea = AfTextarea$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, c as Host } from './p-CiY0Twna.js';
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-Btpdr0Bi.js';
2
2
 
3
3
  const afThemeOverrideCss = ".sc-af-theme-override-h{display:contents}.theme-override.sc-af-theme-override{display:contents}.theme-white.sc-af-theme-override{--af-background-base:var(--colour-brand-white, #FFFFFF);--af-background-base-hover:var(--colour-mistgreen-100, #f4f7f6);--af-background-contrast:var(--colour-brand-mist-green, #c6d5d1);--af-background-level-1:var(--colour-mistgreen-200, #e8eeed);--af-background-level-1-hover:var(--colour-mistgreen-300, #dde6e3);--af-background-border-subtle:var(--colour-mistgreen-200, #e8eeed);--af-background-border-default:var(--colour-mistgreen-400, #d1ddda);--af-background-border-heavy:var(--colour-mistgreen-500, #c6d5d1);--af-background-border-active:var(--colour-softclay-800, #8a7049);--af-background-icon-default:var(--colour-brand-inkwell, #14343b);--af-background-icon-accent:var(--colour-brand-soft-clay, #b09670);--af-typography-heading-primary:var(--colour-brand-inkwell, #14343b);--af-typography-heading-secondary:var(--colour-brand-soft-clay, #b09670);--af-typography-body-dark:var(--colour-brand-inkwell, #14343b);--af-typography-body-default:var(--colour-inkwell-400, #2b484f);--af-typography-body-subtle:var(--colour-inkwell-350, #60767b);--af-button-primary-text:var(--colour-brand-inkwell, #14343b);--af-button-primary-icon:var(--colour-brand-inkwell, #14343b);--af-button-primary-bg:var(--colour-brand-ice, #a6fffb);--af-button-primary-bg-hover:var(--colour-ice-600, #95e6e2);--af-button-primary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-secondary-text:var(--colour-brand-inkwell, #14343b);--af-button-secondary-icon:var(--colour-brand-inkwell, #14343b);--af-button-secondary-bg:transparent;--af-button-secondary-bg-hover:rgba(0, 0, 0, 0.08);--af-button-secondary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-ghost-text:var(--colour-brand-inkwell, #14343b);--af-button-ghost-icon:var(--colour-brand-inkwell, #14343b);--af-button-ghost-stroke:var(--colour-brand-soft-clay, #B09670);--af-input-label:var(--af-typography-body-dark);--af-input-description:var(--af-typography-body-default);--af-input-text:var(--af-typography-body-dark);--af-input-placeholder:var(--af-typography-body-subtle);--af-input-icon:var(--af-background-icon-default);--af-input-bg:var(--colour-brand-white, #ffffff);--af-input-bg-hover:var(--colour-mistgreen-100, #f4f7f6);--af-input-bg-disabled:var(--af-background-level-1);--af-input-border:var(--af-background-border-default);--af-input-border-hover:var(--af-background-border-heavy);--af-input-border-active:var(--af-typography-body-dark);--af-input-border-error:var(--colour-error, #be292a);--af-input-error:var(--colour-error, #be292a);--af-input-focus-ring:var(--af-typography-body-dark);--af-form-control-bg:var(--colour-brand-white, #ffffff);--af-form-control-bg-checked:var(--colour-brand-inkwell, #14343b);--af-form-control-bg-disabled:var(--colour-mistgreen-200, #e8ebeb);--af-form-control-bg-checked-disabled:var(--colour-inkwell-350, #708380);--af-form-control-stroke:var(--colour-mistgreen-500, #d0d6d8);--af-form-control-stroke-hover:var(--colour-brand-inkwell, #14343b);--af-form-control-stroke-disabled:var(--colour-mistgreen-500, #d0d6d8);--af-form-control-icon:var(--colour-brand-white, #ffffff);--af-form-control-label:var(--colour-brand-inkwell, #14343b)}.theme-inkwell.sc-af-theme-override{--af-background-base:var(--colour-brand-inkwell, #14343b);--af-background-base-hover:var(--colour-inkwell-600, #102a2f);--af-background-contrast:var(--colour-inkwell-700, #102a2f);--af-background-level-1:var(--colour-inkwell-450, #203e45);--af-background-level-1-hover:var(--colour-inkwell-400, #2b484f);--af-background-border-subtle:var(--colour-inkwell-450, #203e45);--af-background-border-default:var(--colour-inkwell-400, #2b484f);--af-background-border-heavy:var(--colour-inkwell-700, #102a2f);--af-background-border-active:var(--colour-brand-ice, #a6fffb);--af-background-icon-default:var(--colour-brand-white, #ffffff);--af-background-icon-accent:var(--colour-brand-ice, #a6fffb);--af-typography-heading-primary:var(--colour-brand-mist-green, #c6d5d1);--af-typography-heading-secondary:var(--colour-brand-white, #ffffff);--af-typography-body-dark:var(--colour-brand-white, #ffffff);--af-typography-body-default:var(--colour-inkwell-100, #d0d6d8);--af-typography-body-subtle:var(--colour-inkwell-200, #a1aeb1);--af-button-primary-text:var(--colour-brand-inkwell, #14343b);--af-button-primary-icon:var(--colour-brand-inkwell, #14343b);--af-button-primary-bg:var(--colour-brand-ice, #a6fffb);--af-button-primary-bg-hover:var(--colour-ice-600, #95e6e2);--af-button-primary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-secondary-text:var(--colour-brand-white, #ffffff);--af-button-secondary-icon:var(--colour-brand-white, #ffffff);--af-button-secondary-bg:transparent;--af-button-secondary-bg-hover:rgba(255, 255, 255, 0.08);--af-button-secondary-stroke:var(--colour-brand-white, #ffffff);--af-button-ghost-text:var(--colour-brand-white, #ffffff);--af-button-ghost-icon:var(--colour-brand-white, #ffffff);--af-button-ghost-stroke:var(--colour-brand-ice, #A6FFFB);--af-input-label:var(--af-typography-body-dark);--af-input-description:var(--af-typography-body-default);--af-input-text:var(--af-typography-body-dark);--af-input-placeholder:var(--af-typography-body-subtle);--af-input-icon:var(--af-background-icon-default);--af-input-bg:var(--colour-inkwell-450, #203e45);--af-input-bg-hover:var(--colour-inkwell-400, #2b484f);--af-input-bg-disabled:var(--colour-inkwell-600, #102a2f);--af-input-border:var(--af-background-border-default);--af-input-border-hover:var(--af-background-border-heavy);--af-input-border-active:var(--colour-brand-ice, #a6fffb);--af-input-border-error:var(--colour-error, #be292a);--af-input-error:var(--colour-error, #be292a);--af-input-focus-ring:var(--colour-brand-ice, #a6fffb);--af-form-control-bg:var(--colour-inkwell-450, #203e45);--af-form-control-bg-checked:var(--colour-brand-mist-green, #c6d5d1);--af-form-control-bg-disabled:var(--colour-inkwell-400, #2b484f);--af-form-control-bg-checked-disabled:var(--colour-mistgreen-700, #9eaaa7);--af-form-control-stroke:var(--colour-inkwell-350, #60767b);--af-form-control-stroke-hover:var(--colour-brand-white, #ffffff);--af-form-control-stroke-disabled:var(--colour-inkwell-400, #2b484f);--af-form-control-icon:var(--colour-brand-inkwell, #14343b);--af-form-control-label:var(--colour-brand-white, #ffffff)}.theme-mist-green.sc-af-theme-override{--af-background-base:var(--colour-brand-mist-green, #c6d5d1);--af-background-base-hover:var(--colour-mistgreen-600, #b2c0bc);--af-background-contrast:var(--colour-brand-soft-clay, #b09670);--af-background-level-1:var(--colour-mistgreen-300, #dde6e3);--af-background-level-1-hover:var(--colour-mistgreen-400, #d1ddda);--af-background-border-subtle:var(--colour-mistgreen-600, #b2c0bc);--af-background-border-default:var(--colour-mistgreen-700, #9eaaa7);--af-background-border-heavy:var(--colour-mistgreen-700, #9eaaa7);--af-background-border-active:var(--colour-softclay-800, #8a7049);--af-background-icon-default:var(--colour-brand-inkwell, #14343b);--af-background-icon-accent:var(--colour-brand-soft-clay, #b09670);--af-typography-heading-primary:var(--colour-brand-inkwell, #14343b);--af-typography-heading-secondary:var(--colour-brand-soft-clay, #b09670);--af-typography-body-dark:var(--colour-brand-inkwell, #14343b);--af-typography-body-default:var(--colour-inkwell-400, #2b484f);--af-typography-body-subtle:var(--colour-inkwell-350, #60767b);--af-button-primary-text:var(--colour-brand-inkwell, #14343b);--af-button-primary-icon:var(--colour-brand-inkwell, #14343b);--af-button-primary-bg:var(--colour-brand-ice, #a6fffb);--af-button-primary-bg-hover:var(--colour-ice-600, #95e6e2);--af-button-primary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-secondary-text:var(--colour-brand-inkwell, #14343b);--af-button-secondary-icon:var(--colour-brand-inkwell, #14343b);--af-button-secondary-bg:transparent;--af-button-secondary-bg-hover:rgba(0, 0, 0, 0.08);--af-button-secondary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-ghost-text:var(--colour-brand-inkwell, #14343b);--af-button-ghost-icon:var(--colour-brand-inkwell, #14343b);--af-button-ghost-stroke:var(--colour-brand-soft-clay, #B09670);--af-input-label:var(--af-typography-body-dark);--af-input-description:var(--af-typography-body-default);--af-input-text:var(--af-typography-body-dark);--af-input-placeholder:var(--af-typography-body-subtle);--af-input-icon:var(--af-background-icon-default);--af-input-bg:var(--colour-brand-white, #ffffff);--af-input-bg-hover:var(--colour-mistgreen-100, #f4f7f6);--af-input-bg-disabled:var(--af-background-level-1);--af-input-border:var(--af-background-border-default);--af-input-border-hover:var(--af-background-border-heavy);--af-input-border-active:var(--af-typography-body-dark);--af-input-border-error:var(--colour-error, #be292a);--af-input-error:var(--colour-error, #be292a);--af-input-focus-ring:var(--af-typography-body-dark);--af-form-control-bg:var(--colour-brand-white, #ffffff);--af-form-control-bg-checked:var(--colour-brand-inkwell, #14343b);--af-form-control-bg-disabled:var(--colour-mistgreen-300, #dde6e3);--af-form-control-bg-checked-disabled:var(--colour-inkwell-350, #708380);--af-form-control-stroke:var(--colour-mistgreen-700, #9eaaa7);--af-form-control-stroke-hover:var(--colour-brand-inkwell, #14343b);--af-form-control-stroke-disabled:var(--colour-mistgreen-600, #b2c0bc);--af-form-control-icon:var(--colour-brand-white, #ffffff);--af-form-control-label:var(--colour-brand-inkwell, #14343b)}.theme-soft-clay.sc-af-theme-override{--af-background-base:var(--colour-softclay-400, #c0ab8d);--af-background-base-hover:var(--colour-softclay-500, #b09670);--af-background-contrast:var(--colour-brand-mist-green, #c6d5d1);--af-background-level-1:var(--colour-softclay-500, #b09670);--af-background-level-1-hover:var(--colour-softclay-600, #9e8765);--af-background-border-subtle:var(--colour-softclay-600, #9e8765);--af-background-border-default:var(--colour-softclay-700, #8d785a);--af-background-border-heavy:var(--colour-brand-inkwell, #14343b);--af-background-border-active:var(--colour-brand-ice, #a6fffb);--af-background-icon-default:var(--colour-brand-inkwell, #14343b);--af-background-icon-accent:var(--colour-brand-ivory-paper, #fff9ee);--af-typography-heading-primary:var(--colour-brand-inkwell, #14343b);--af-typography-heading-secondary:var(--colour-brand-ivory-paper, #fff9ee);--af-typography-body-dark:var(--colour-brand-inkwell, #14343b);--af-typography-body-default:var(--colour-inkwell-400, #2b484f);--af-typography-body-subtle:var(--colour-inkwell-350, #60767b);--af-button-primary-text:var(--colour-brand-inkwell, #14343b);--af-button-primary-icon:var(--colour-brand-inkwell, #14343b);--af-button-primary-bg:var(--colour-brand-ice, #a6fffb);--af-button-primary-bg-hover:var(--colour-ice-600, #95e6e2);--af-button-primary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-secondary-text:var(--colour-brand-inkwell, #14343b);--af-button-secondary-icon:var(--colour-brand-inkwell, #14343b);--af-button-secondary-bg:transparent;--af-button-secondary-bg-hover:rgba(0, 0, 0, 0.08);--af-button-secondary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-ghost-text:var(--colour-brand-inkwell, #14343b);--af-button-ghost-icon:var(--colour-brand-inkwell, #14343b);--af-button-ghost-stroke:var(--colour-brand-inkwell, #14343b);--af-input-label:var(--af-typography-body-dark);--af-input-description:var(--af-typography-body-default);--af-input-text:var(--af-typography-body-dark);--af-input-placeholder:var(--af-typography-body-subtle);--af-input-icon:var(--af-background-icon-default);--af-input-bg:var(--colour-brand-white, #ffffff);--af-input-bg-hover:var(--colour-mistgreen-100, #f4f7f6);--af-input-bg-disabled:var(--af-background-level-1);--af-input-border:var(--af-background-border-default);--af-input-border-hover:var(--af-background-border-heavy);--af-input-border-active:var(--af-typography-body-dark);--af-input-border-error:var(--colour-error, #be292a);--af-input-error:var(--colour-error, #be292a);--af-input-focus-ring:var(--af-typography-body-dark);--af-form-control-bg:var(--colour-brand-white, #ffffff);--af-form-control-bg-checked:var(--colour-brand-inkwell, #14343b);--af-form-control-bg-disabled:var(--colour-softclay-300, #d0c1a8);--af-form-control-bg-checked-disabled:var(--colour-inkwell-350, #708380);--af-form-control-stroke:var(--colour-softclay-700, #8d785a);--af-form-control-stroke-hover:var(--colour-brand-inkwell, #14343b);--af-form-control-stroke-disabled:var(--colour-softclay-600, #9e8765);--af-form-control-icon:var(--colour-brand-white, #ffffff);--af-form-control-label:var(--colour-brand-inkwell, #14343b)}.theme-white-ivory.sc-af-theme-override{--af-background-base:var(--colour-brand-ivory-paper, #fff9ee);--af-background-base-hover:var(--colour-ivory-100, #fff5e0);--af-background-contrast:var(--colour-brand-mist-green, #c6d5d1);--af-background-level-1:var(--colour-ivory-200, #ffefcc);--af-background-level-1-hover:var(--colour-ivory-300, #ffe9b8);--af-background-border-subtle:var(--colour-ivory-200, #ffefcc);--af-background-border-default:var(--colour-ivory-400, #ffe3a3);--af-background-border-heavy:var(--colour-brand-soft-clay, #b09670);--af-background-border-active:var(--colour-brand-soft-clay, #b09670);--af-background-icon-default:var(--colour-brand-inkwell, #14343b);--af-background-icon-accent:var(--colour-brand-soft-clay, #b09670);--af-typography-heading-primary:var(--colour-brand-inkwell, #14343b);--af-typography-heading-secondary:var(--colour-brand-soft-clay, #b09670);--af-typography-body-dark:var(--colour-brand-inkwell, #14343b);--af-typography-body-default:var(--colour-inkwell-400, #2b484f);--af-typography-body-subtle:var(--colour-inkwell-350, #60767b);--af-button-primary-text:var(--colour-brand-inkwell, #14343b);--af-button-primary-icon:var(--colour-brand-inkwell, #14343b);--af-button-primary-bg:var(--colour-brand-ice, #a6fffb);--af-button-primary-bg-hover:var(--colour-ice-600, #95e6e2);--af-button-primary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-secondary-text:var(--colour-brand-inkwell, #14343b);--af-button-secondary-icon:var(--colour-brand-inkwell, #14343b);--af-button-secondary-bg:transparent;--af-button-secondary-bg-hover:rgba(0, 0, 0, 0.08);--af-button-secondary-stroke:var(--colour-brand-inkwell, #14343b);--af-button-ghost-text:var(--colour-brand-inkwell, #14343b);--af-button-ghost-icon:var(--colour-brand-inkwell, #14343b);--af-button-ghost-stroke:var(--colour-brand-soft-clay, #b09670);--af-input-label:var(--af-typography-body-dark);--af-input-description:var(--af-typography-body-default);--af-input-text:var(--af-typography-body-dark);--af-input-placeholder:var(--af-typography-body-subtle);--af-input-icon:var(--af-background-icon-default);--af-input-bg:var(--colour-brand-white, #ffffff);--af-input-bg-hover:var(--colour-ivory-100, #fff5e0);--af-input-bg-disabled:var(--af-background-level-1);--af-input-border:var(--af-background-border-default);--af-input-border-hover:var(--af-background-border-heavy);--af-input-border-active:var(--af-typography-body-dark);--af-input-border-error:var(--colour-error, #be292a);--af-input-error:var(--colour-error, #be292a);--af-input-focus-ring:var(--af-typography-body-dark);--af-form-control-bg:var(--colour-brand-white, #ffffff);--af-form-control-bg-checked:var(--colour-brand-inkwell, #14343b);--af-form-control-bg-disabled:var(--colour-ivory-200, #ffefcc);--af-form-control-bg-checked-disabled:var(--colour-inkwell-350, #708380);--af-form-control-stroke:var(--colour-ivory-400, #ffe3a3);--af-form-control-stroke-hover:var(--colour-brand-inkwell, #14343b);--af-form-control-stroke-disabled:var(--colour-ivory-300, #ffe9b8);--af-form-control-icon:var(--colour-brand-white, #ffffff);--af-form-control-label:var(--colour-brand-inkwell, #14343b)}";
4
4
 
@@ -1,4 +1,4 @@
1
- import { A as AfTypographyLockup$1, d as defineCustomElement$1 } from './p-CUmn76Kf.js';
1
+ import { A as AfTypographyLockup$1, d as defineCustomElement$1 } from './p-CkaL7yIW.js';
2
2
 
3
3
  const AfTypographyLockup = AfTypographyLockup$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,6 +1,6 @@
1
- import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-CiY0Twna.js';
2
- import { d as defineCustomElement$3 } from './p-DWD7Oc5l.js';
3
- import { d as defineCustomElement$2 } from './p-DmlCoFGW.js';
1
+ import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-Btpdr0Bi.js';
2
+ import { d as defineCustomElement$3 } from './p-DrEl4PxE.js';
3
+ import { d as defineCustomElement$2 } from './p-CMatO7AD.js';
4
4
 
5
5
  const afVideoContainerCss = ".sc-af-video-container-h{display:block;width:100%}.video-container.sc-af-video-container{display:flex;flex-direction:column;align-items:center;width:100%;gap:var(--space-10, 40px)}.video-container__top.sc-af-video-container,.video-container__bottom.sc-af-video-container{width:100%;display:flex;flex-direction:column;align-items:center}.video-container__top.sc-af-video-container:empty,.video-container__bottom.sc-af-video-container:empty{display:none}.video-container__video.sc-af-video-container{width:100%;max-width:1024px}.video-container__thumbnail-wrapper.sc-af-video-container{position:absolute;inset:0;border-radius:var(--radii-video-crop, 16px);overflow:hidden;background-color:var(--colour-inkwell-400, #2b484f)}.video-container__thumbnail.sc-af-video-container{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}.video-container__play-button.sc-af-video-container{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);display:flex;align-items:center;justify-content:center;padding:24px;border-radius:var(--radii-button, 9999px);background-color:var(--af-button-primary-bg, var(--colour-brand-ice, #a6fffb));border:1px solid var(--af-button-primary-stroke, var(--colour-brand-inkwell, #14343b));cursor:pointer;transition:background-color 0.2s ease;color:var(--af-button-primary-icon, var(--colour-brand-inkwell, #14343b))}.video-container__play-button.sc-af-video-container:hover{background-color:var(--af-button-primary-bg-hover, var(--colour-ice-600, #95e6e2))}.video-container__play-button.sc-af-video-container:focus-visible{outline:2px solid var(--colour-brand-ice, #a6fffb);outline-offset:2px}@media (max-width: 768px){.video-container.sc-af-video-container{gap:var(--space-8, 32px)}.video-container__play-button.sc-af-video-container{padding:12px}}";
6
6
 
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, h, c as Host } from './p-CiY0Twna.js';
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-Btpdr0Bi.js';
2
2
 
3
3
  const afVisuallyHiddenCss = ":host{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}:host(.focusable:focus-within){position:static !important;width:auto !important;height:auto !important;padding:inherit !important;margin:inherit !important;overflow:visible !important;clip:auto !important;white-space:normal !important}";
4
4
 
@@ -1,28 +1,28 @@
1
- export { g as getAssetPath, r as render, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-CiY0Twna.js';
2
- export { A as AfHeading } from './p-CaHyFRpU.js';
3
- export { A as AfText } from './p-G5cG9ahw.js';
4
- export { A as AfColorSwatch } from './p-CeBCwjRf.js';
5
- export { A as AfContainer } from './p-Bx-hxLP0.js';
6
- export { A as AfAspectRatio } from './p-DWD7Oc5l.js';
7
- export { A as AfNavItem } from './p--aWqZ9H9.js';
8
- export { A as AfNavbar } from './p-CZdcAZe_.js';
9
- export { A as AfLogo } from './p-CImZ9bq8.js';
10
- export { A as AfButton } from './p-B-hgy9Qr.js';
11
- export { A as AfIconButton } from './p-DGlAo2Hc.js';
12
- export { A as AfButtonGroup } from './p-QpoTJlVn.js';
13
- export { A as AfTypographyLockup } from './p-CUmn76Kf.js';
14
- export { A as AfCheckbox } from './p-BuiXTazC.js';
15
- export { A as AfRadio } from './p-CJU2A9Ab.js';
16
- export { A as AfSwitch } from './p-BkTUo72F.js';
17
- export { A as AfFieldset } from './p-DnDXrxJ7.js';
18
- export { A as AfInput } from './p-DobkLkti.js';
19
- export { A as AfTextarea } from './p-C_y6F4SM.js';
20
- export { A as AfTag } from './p-B4IVxpr4.js';
21
- export { A as AfTab } from './p-BsHk9vlU.js';
22
- export { A as AfTabBar } from './p-DQF6qg3h.js';
23
- export { A as AfFeatureCard } from './p-DyqBBl8X.js';
24
- export { A as AfIllustratedCard } from './p-DrCZBGKv.js';
25
- export { A as AfHero } from './p-BMs3J6ty.js';
1
+ export { g as getAssetPath, r as render, s as setAssetPath, a as setNonce, b as setPlatformOptions } from './p-Btpdr0Bi.js';
2
+ export { A as AfHeading } from './p-C05qWmXd.js';
3
+ export { A as AfText } from './p-C1nX4HkM.js';
4
+ export { A as AfColorSwatch } from './p-D5-m35gX.js';
5
+ export { A as AfContainer } from './p-FV14KcoH.js';
6
+ export { A as AfAspectRatio } from './p-DrEl4PxE.js';
7
+ export { A as AfNavItem } from './p-DMXuAjLo.js';
8
+ export { A as AfNavbar } from './p-BExjo6P2.js';
9
+ export { A as AfLogo } from './p-XmT5SQOF.js';
10
+ export { A as AfButton } from './p-CeWN48Eq.js';
11
+ export { A as AfIconButton } from './p-C8HmyE5-.js';
12
+ export { A as AfButtonGroup } from './p-BipyebXl.js';
13
+ export { A as AfTypographyLockup } from './p-CkaL7yIW.js';
14
+ export { A as AfCheckbox } from './p-B7J9U9if.js';
15
+ export { A as AfRadio } from './p-DrXw6vxx.js';
16
+ export { A as AfSwitch } from './p-B_r5b4JI.js';
17
+ export { A as AfFieldset } from './p-joRNg4Kk.js';
18
+ export { A as AfInput } from './p-DOZPKyww.js';
19
+ export { A as AfTextarea } from './p-Bebi4EvS.js';
20
+ export { A as AfTag } from './p-CmU4eYJE.js';
21
+ export { A as AfTab } from './p-DinivoZj.js';
22
+ export { A as AfTabBar } from './p-DUWgh2he.js';
23
+ export { A as AfFeatureCard } from './p-CY3F_EFI.js';
24
+ export { A as AfIllustratedCard } from './p-DBtE-heu.js';
25
+ export { A as AfHero } from './p-WJ7nfpxz.js';
26
26
  //# sourceMappingURL=index.js.map
27
27
 
28
28
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-CiY0Twna.js';
1
+ import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-Btpdr0Bi.js';
2
2
 
3
3
  const afCheckboxCss = ":host{display:inline-block}.checkbox{display:inline-flex;align-items:center;gap:12px;cursor:pointer;font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-size:14px;line-height:20px;color:var(--af-form-control-label, var(--colour-brand-inkwell, #14343b));user-select:none}.checkbox.disabled{cursor:not-allowed;opacity:0.5}.input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.control{position:relative;display:block;flex-shrink:0;width:20px;height:20px;border-radius:var(--radii-checkbox, 4px);border:none;box-shadow:inset 0 0 0 1px var(--af-form-control-stroke, var(--colour-mistgreen-500, #d0d6d8));background:var(--af-form-control-bg, var(--colour-brand-white, #ffffff));transition:all 0.15s ease;box-sizing:border-box}.control.checked{background:var(--af-form-control-bg-checked, var(--colour-brand-inkwell, #14343b));box-shadow:none}.control.disabled{background:var(--af-form-control-bg-disabled, var(--colour-mistgreen-200, #e8ebeb));box-shadow:inset 0 0 0 1px var(--af-form-control-stroke-disabled, var(--colour-mistgreen-500, #d0d6d8))}.control.checked.disabled{background:var(--af-form-control-bg-checked-disabled, var(--colour-inkwell-350, #708380));box-shadow:none}.checkbox:not(.disabled):hover .control:not(.checked){box-shadow:inset 0 0 0 1px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b))}.input:focus-visible+.control{outline:none;box-shadow:inset 0 0 0 1px var(--af-form-control-stroke, var(--colour-mistgreen-500, #d0d6d8)),\n 0 0 0 4px var(--af-background-base, var(--colour-brand-white, #ffffff)), \n 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b))}.input:focus-visible+.control.checked{box-shadow:0 0 0 4px var(--af-background-base, var(--colour-brand-white, #ffffff)), \n 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b))}.icon{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:16px;height:16px;color:var(--af-form-control-icon, var(--colour-brand-white, #ffffff))}.label{display:flex;align-items:center;min-height:24px}.label:empty{display:none}";
4
4
 
@@ -76,6 +76,6 @@ function defineCustomElement() {
76
76
  }
77
77
 
78
78
  export { AfCheckbox as A, defineCustomElement as d };
79
- //# sourceMappingURL=p-BuiXTazC.js.map
79
+ //# sourceMappingURL=p-B7J9U9if.js.map
80
80
 
81
- //# sourceMappingURL=p-BuiXTazC.js.map
81
+ //# sourceMappingURL=p-B7J9U9if.js.map
@@ -1 +1 @@
1
- {"file":"p-BuiXTazC.js","mappings":";;AAAA,MAAM,aAAa,GAAG,mpEAAmpE;;MCa5pE,UAAU,iBAAAA,kBAAA,CAAA,MAAA,UAAA,SAAAC,CAAA,CAAA;AALvB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAME;;AAEG;AACqC,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AAEhE;;AAEG;AACsB,QAAA,IAAa,CAAA,aAAA,GAAY,KAAK;AAEvD;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAmB1C,QAAA,IAAY,CAAA,YAAA,GAAG,MAAK;YAC1B,IAAI,IAAI,CAAC,QAAQ;gBAAE;AACnB,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;AAC5B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/C,SAAC;AAuEF;IArEC,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;;;IAInD,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;;;IAInD,MAAM,GAAA;AACJ,QAAA,MAAM,eAAe,GAAG;AACtB,YAAA,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI,CAAC,OAAO;YACvB,eAAe,EAAE,IAAI,CAAC,aAAa;YACnC,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,SAAS,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa;YAC7C,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAO,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,eAAe,EAAA,EAC3B,CACE,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,UAAU,EACf,KAAK,EAAC,OAAO,EACb,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,SAAS,EAC3C,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,CAAA,EACF,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,cAAc,EAAA,EACxB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,KAClC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAA,EAC/C,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,CAAC,EAAC,sBAAsB,EACxB,MAAM,EAAC,cAAc,EACR,cAAA,EAAA,GAAG,oBACD,OAAO,EAAA,iBAAA,EACN,OAAO,EAAA,CACvB,CACE,CACP,EACA,IAAI,CAAC,aAAa,KACjB,4DAAK,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAA,EAC/C,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,CAAC,EAAC,SAAS,EACX,MAAM,EAAC,cAAc,EACR,cAAA,EAAA,GAAG,EACD,gBAAA,EAAA,OAAO,EACtB,CAAA,CACE,CACP,CACI,EACP,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,OAAO,EAAA,EACjB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACR,CACD,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-checkbox/af-checkbox.css?tag=af-checkbox&encapsulation=shadow","src/components/af-checkbox/af-checkbox.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n.checkbox {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-size: 14px;\n line-height: 20px;\n color: var(--af-form-control-label, var(--colour-brand-inkwell, #14343b));\n user-select: none;\n}\n\n.checkbox.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* Hidden native input */\n.input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* Custom checkbox control */\n.control {\n position: relative;\n display: block;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n border-radius: var(--radii-checkbox, 4px);\n /* Use inset box-shadow instead of border to prevent layout shift */\n border: none;\n box-shadow: inset 0 0 0 1px var(--af-form-control-stroke, var(--colour-mistgreen-500, #d0d6d8));\n background: var(--af-form-control-bg, var(--colour-brand-white, #ffffff));\n transition: all 0.15s ease;\n box-sizing: border-box;\n}\n\n/* Checked/indeterminate state */\n.control.checked {\n background: var(--af-form-control-bg-checked, var(--colour-brand-inkwell, #14343b));\n box-shadow: none;\n}\n\n/* Disabled state */\n.control.disabled {\n background: var(--af-form-control-bg-disabled, var(--colour-mistgreen-200, #e8ebeb));\n box-shadow: inset 0 0 0 1px var(--af-form-control-stroke-disabled, var(--colour-mistgreen-500, #d0d6d8));\n}\n\n.control.checked.disabled {\n background: var(--af-form-control-bg-checked-disabled, var(--colour-inkwell-350, #708380));\n box-shadow: none;\n}\n\n/* Hover state */\n.checkbox:not(.disabled):hover .control:not(.checked) {\n box-shadow: inset 0 0 0 1px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Focus state */\n.input:focus-visible + .control {\n outline: none;\n box-shadow: \n inset 0 0 0 1px var(--af-form-control-stroke, var(--colour-mistgreen-500, #d0d6d8)),\n 0 0 0 4px var(--af-background-base, var(--colour-brand-white, #ffffff)), \n 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n}\n\n.input:focus-visible + .control.checked {\n box-shadow: \n 0 0 0 4px var(--af-background-base, var(--colour-brand-white, #ffffff)), \n 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Icon styling - absolutely positioned to prevent layout shift */\n.icon {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 16px;\n height: 16px;\n color: var(--af-form-control-icon, var(--colour-brand-white, #ffffff));\n}\n\n/* Label styling */\n.label {\n display: flex;\n align-items: center;\n min-height: 24px;\n}\n\n/* Empty label - hide if no content */\n.label:empty {\n display: none;\n}\n","import { Component, h, Prop, Host, Event, EventEmitter } from '@stencil/core';\n\n/**\n * Checkbox component for selecting multiple options.\n * Supports checked, unchecked, and indeterminate states.\n * \n * @slot - Checkbox label text\n */\n@Component({\n tag: 'af-checkbox',\n styleUrl: 'af-checkbox.css',\n shadow: true\n})\nexport class AfCheckbox {\n /**\n * Whether the checkbox is checked\n */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /**\n * Whether the checkbox is in an indeterminate state\n */\n @Prop({ reflect: true }) indeterminate: boolean = false;\n\n /**\n * Whether the checkbox is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The name of the checkbox for form submission\n */\n @Prop() name?: string;\n\n /**\n * The value of the checkbox for form submission\n */\n @Prop() value?: string;\n\n /**\n * Emitted when the checkbox checked state changes\n */\n @Event() afChange!: EventEmitter<{ checked: boolean }>;\n\n private inputEl?: HTMLInputElement;\n\n private handleChange = () => {\n if (this.disabled) return;\n this.checked = !this.checked;\n this.afChange.emit({ checked: this.checked });\n };\n\n componentDidLoad() {\n if (this.inputEl) {\n this.inputEl.indeterminate = this.indeterminate;\n }\n }\n\n componentDidUpdate() {\n if (this.inputEl) {\n this.inputEl.indeterminate = this.indeterminate;\n }\n }\n\n render() {\n const checkboxClasses = {\n 'checkbox': true,\n 'checked': this.checked,\n 'indeterminate': this.indeterminate,\n 'disabled': this.disabled\n };\n\n const controlClasses = {\n 'control': true,\n 'checked': this.checked || this.indeterminate,\n 'disabled': this.disabled\n };\n\n return (\n <Host>\n <label class={checkboxClasses}>\n <input\n type=\"checkbox\"\n class=\"input\"\n ref={(el) => this.inputEl = el ?? undefined}\n checked={this.checked}\n disabled={this.disabled}\n name={this.name}\n value={this.value}\n onChange={this.handleChange}\n />\n <span class={controlClasses}>\n {this.checked && !this.indeterminate && (\n <svg class=\"icon\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path \n d=\"M13.5 4L6 11.5L2.5 8\" \n stroke=\"currentColor\" \n stroke-width=\"2\" \n stroke-linecap=\"round\" \n stroke-linejoin=\"round\"\n />\n </svg>\n )}\n {this.indeterminate && (\n <svg class=\"icon\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path \n d=\"M3 8H13\" \n stroke=\"currentColor\" \n stroke-width=\"2\" \n stroke-linecap=\"round\"\n />\n </svg>\n )}\n </span>\n <span class=\"label\">\n <slot></slot>\n </span>\n </label>\n </Host>\n );\n }\n}\n\n"],"version":3}
1
+ {"file":"p-B7J9U9if.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-checkbox/af-checkbox.css?tag=af-checkbox&encapsulation=shadow","src/components/af-checkbox/af-checkbox.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n.checkbox {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-size: 14px;\n line-height: 20px;\n color: var(--af-form-control-label, var(--colour-brand-inkwell, #14343b));\n user-select: none;\n}\n\n.checkbox.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* Hidden native input */\n.input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* Custom checkbox control */\n.control {\n position: relative;\n display: block;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n border-radius: var(--radii-checkbox, 4px);\n /* Use inset box-shadow instead of border to prevent layout shift */\n border: none;\n box-shadow: inset 0 0 0 1px var(--af-form-control-stroke, var(--colour-mistgreen-500, #d0d6d8));\n background: var(--af-form-control-bg, var(--colour-brand-white, #ffffff));\n transition: all 0.15s ease;\n box-sizing: border-box;\n}\n\n/* Checked/indeterminate state */\n.control.checked {\n background: var(--af-form-control-bg-checked, var(--colour-brand-inkwell, #14343b));\n box-shadow: none;\n}\n\n/* Disabled state */\n.control.disabled {\n background: var(--af-form-control-bg-disabled, var(--colour-mistgreen-200, #e8ebeb));\n box-shadow: inset 0 0 0 1px var(--af-form-control-stroke-disabled, var(--colour-mistgreen-500, #d0d6d8));\n}\n\n.control.checked.disabled {\n background: var(--af-form-control-bg-checked-disabled, var(--colour-inkwell-350, #708380));\n box-shadow: none;\n}\n\n/* Hover state */\n.checkbox:not(.disabled):hover .control:not(.checked) {\n box-shadow: inset 0 0 0 1px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Focus state */\n.input:focus-visible + .control {\n outline: none;\n box-shadow: \n inset 0 0 0 1px var(--af-form-control-stroke, var(--colour-mistgreen-500, #d0d6d8)),\n 0 0 0 4px var(--af-background-base, var(--colour-brand-white, #ffffff)), \n 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n}\n\n.input:focus-visible + .control.checked {\n box-shadow: \n 0 0 0 4px var(--af-background-base, var(--colour-brand-white, #ffffff)), \n 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Icon styling - absolutely positioned to prevent layout shift */\n.icon {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 16px;\n height: 16px;\n color: var(--af-form-control-icon, var(--colour-brand-white, #ffffff));\n}\n\n/* Label styling */\n.label {\n display: flex;\n align-items: center;\n min-height: 24px;\n}\n\n/* Empty label - hide if no content */\n.label:empty {\n display: none;\n}\n","import { Component, h, Prop, Host, Event, EventEmitter } from '@stencil/core';\n\n/**\n * Checkbox component for selecting multiple options.\n * Supports checked, unchecked, and indeterminate states.\n * \n * @slot - Checkbox label text\n */\n@Component({\n tag: 'af-checkbox',\n styleUrl: 'af-checkbox.css',\n shadow: true\n})\nexport class AfCheckbox {\n /**\n * Whether the checkbox is checked\n */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /**\n * Whether the checkbox is in an indeterminate state\n */\n @Prop({ reflect: true }) indeterminate: boolean = false;\n\n /**\n * Whether the checkbox is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The name of the checkbox for form submission\n */\n @Prop() name?: string;\n\n /**\n * The value of the checkbox for form submission\n */\n @Prop() value?: string;\n\n /**\n * Emitted when the checkbox checked state changes\n */\n @Event() afChange!: EventEmitter<{ checked: boolean }>;\n\n private inputEl?: HTMLInputElement;\n\n private handleChange = () => {\n if (this.disabled) return;\n this.checked = !this.checked;\n this.afChange.emit({ checked: this.checked });\n };\n\n componentDidLoad() {\n if (this.inputEl) {\n this.inputEl.indeterminate = this.indeterminate;\n }\n }\n\n componentDidUpdate() {\n if (this.inputEl) {\n this.inputEl.indeterminate = this.indeterminate;\n }\n }\n\n render() {\n const checkboxClasses = {\n 'checkbox': true,\n 'checked': this.checked,\n 'indeterminate': this.indeterminate,\n 'disabled': this.disabled\n };\n\n const controlClasses = {\n 'control': true,\n 'checked': this.checked || this.indeterminate,\n 'disabled': this.disabled\n };\n\n return (\n <Host>\n <label class={checkboxClasses}>\n <input\n type=\"checkbox\"\n class=\"input\"\n ref={(el) => this.inputEl = el ?? undefined}\n checked={this.checked}\n disabled={this.disabled}\n name={this.name}\n value={this.value}\n onChange={this.handleChange}\n />\n <span class={controlClasses}>\n {this.checked && !this.indeterminate && (\n <svg class=\"icon\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path \n d=\"M13.5 4L6 11.5L2.5 8\" \n stroke=\"currentColor\" \n stroke-width=\"2\" \n stroke-linecap=\"round\" \n stroke-linejoin=\"round\"\n />\n </svg>\n )}\n {this.indeterminate && (\n <svg class=\"icon\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path \n d=\"M3 8H13\" \n stroke=\"currentColor\" \n stroke-width=\"2\" \n stroke-linecap=\"round\"\n />\n </svg>\n )}\n </span>\n <span class=\"label\">\n <slot></slot>\n </span>\n </label>\n </Host>\n );\n }\n}\n\n"],"version":3}
@@ -1,5 +1,5 @@
1
- import { p as proxyCustomElement, H, h, c as Host } from './p-CiY0Twna.js';
2
- import { d as defineCustomElement$1 } from './p-CImZ9bq8.js';
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-Btpdr0Bi.js';
2
+ import { d as defineCustomElement$1 } from './p-XmT5SQOF.js';
3
3
 
4
4
  const afNavbarCss = ".sc-af-navbar-h{display:block;width:100%}.navbar-spacer.sc-af-navbar{height:100px}.navbar-spacer.theme-white.sc-af-navbar{background-color:var(--colour-brand-white, #FFFFFF)}.navbar-spacer.theme-inkwell.sc-af-navbar{background-color:var(--colour-brand-inkwell, #14343B)}.navbar-spacer.theme-mist-green.sc-af-navbar{background-color:var(--colour-brand-mist-green, #C6D5D1)}.navbar-spacer.theme-soft-clay.sc-af-navbar{background-color:var(--colour-softclay-400, #c0ab8d)}.navbar-container.sc-af-navbar{position:fixed;top:max(32px, env(safe-area-inset-top));left:0;right:0;z-index:10;padding:0 calc(80px + env(safe-area-inset-right)) 0 calc(80px + env(safe-area-inset-left));box-sizing:border-box}.navbar.sc-af-navbar{background:var(--colour-background-white, #ffffff);border-radius:9999px;display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 40px;box-sizing:border-box;flex-wrap:nowrap}.navbar-left.sc-af-navbar{display:flex;align-items:center;gap:32px;flex-shrink:0}.logo.sc-af-navbar{display:flex;align-items:center;flex-shrink:0}.mobile-menu-toggle.sc-af-navbar{display:none;background:none;border:none;padding:8px;cursor:pointer;color:var(--colour-brand-inkwell, #14343b);margin-left:auto}.mobile-menu-toggle.sc-af-navbar svg.sc-af-navbar{display:block}.nav-links.sc-af-navbar{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.navbar-right.sc-af-navbar{display:flex;align-items:center;gap:20px}.nav-actions.sc-af-navbar{display:flex;align-items:center;gap:12px}.nav-button.sc-af-navbar{display:flex;align-items:center}.dropdown-container.sc-af-navbar{position:absolute;top:100px;left:0;right:0;padding:8px 80px 0;pointer-events:none;opacity:0;transform:translateY(-8px);transition:opacity 0.2s ease, transform 0.2s ease}.dropdown-container.is-open.sc-af-navbar{pointer-events:auto;opacity:1;transform:translateY(0)}.dropdown-panel.sc-af-navbar{background:var(--colour-background-base, #ffffff);border-radius:32px;overflow:hidden;box-shadow:var(--shadow-navbar, 0 4px 24px rgba(20, 52, 59, 0.12))}.dropdown-panel.sc-af-navbar:empty{display:none}.mobile-menu-panel.sc-af-navbar{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:var(--colour-background-base, #ffffff);z-index:9;padding:max(100px, calc(100px + env(safe-area-inset-top)))\n calc(16px + env(safe-area-inset-right))\n max(24px, env(safe-area-inset-bottom))\n calc(16px + env(safe-area-inset-left));overflow-y:auto;opacity:0;pointer-events:none;transition:opacity 0.2s ease}.mobile-menu-panel.is-open.sc-af-navbar{display:block;opacity:1;pointer-events:auto}.mobile-button-container.sc-af-navbar{margin-bottom:8px}.mobile-button-container.sc-af-navbar-s>*,.mobile-button-container .sc-af-navbar-s>*{width:100%}.mobile-menu-content.sc-af-navbar{display:flex;flex-direction:column;width:100%}.mobile-menu-content.sc-af-navbar-s>*,.mobile-menu-content .sc-af-navbar-s>*{flex:0 0 auto;width:100%}@media (max-width: 1099px){.nav-actions.sc-af-navbar{display:none}.navbar-right.sc-af-navbar{gap:0}}@media (max-width: 1024px){.navbar-spacer.sc-af-navbar{height:88px}.navbar-container.sc-af-navbar{top:max(24px, env(safe-area-inset-top));padding:0 calc(40px + env(safe-area-inset-right)) 0 calc(40px + env(safe-area-inset-left))}.navbar-left.sc-af-navbar{gap:24px}.nav-links.sc-af-navbar{gap:4px}.dropdown-container.sc-af-navbar{padding:0 40px}}@media (max-width: 991px){.navbar-spacer.sc-af-navbar{height:72px}.navbar-container.sc-af-navbar{top:max(16px, env(safe-area-inset-top));padding:0 calc(16px + env(safe-area-inset-right)) 0 calc(16px + env(safe-area-inset-left));z-index:11}.navbar.sc-af-navbar{padding:8px 8px 8px 24px;flex-direction:row;border-radius:9999px;gap:0}.navbar-left.sc-af-navbar{width:auto;flex-direction:row;justify-content:flex-start;align-items:center;gap:16px;flex:1}.mobile-menu-toggle.sc-af-navbar{display:flex;padding:12px;margin-left:auto;border-radius:9999px;border:1px solid var(--colour-brand-inkwell, #14343b)}.mobile-menu-toggle.sc-af-navbar:hover{background:rgba(20, 52, 59, 0.05)}.nav-links.sc-af-navbar{display:none}.navbar-right.sc-af-navbar{display:none}.dropdown-container.sc-af-navbar{display:none}.mobile-menu-panel.sc-af-navbar{padding-top:max(88px, calc(88px + env(safe-area-inset-top)))}.mobile-button-container.sc-af-navbar{padding:0 12px;margin-bottom:8px}.mobile-button-container.sc-af-navbar-s>af-button,.mobile-button-container .sc-af-navbar-s>af-button,.mobile-button-container.sc-af-navbar-s>button,.mobile-button-container .sc-af-navbar-s>button{width:100%;display:flex;justify-content:center}}[force-mobile].sc-af-navbar-h .navbar-spacer.sc-af-navbar{height:72px}[force-mobile].sc-af-navbar-h .navbar-container.sc-af-navbar{top:max(16px, env(safe-area-inset-top));padding:0 calc(16px + env(safe-area-inset-right)) 0 calc(16px + env(safe-area-inset-left));z-index:11}[force-mobile].sc-af-navbar-h .navbar.sc-af-navbar{padding:8px 8px 8px 24px;flex-direction:row;border-radius:9999px;gap:0}[force-mobile].sc-af-navbar-h .navbar-left.sc-af-navbar{width:auto;flex-direction:row;justify-content:flex-start;align-items:center;gap:16px;flex:1}[force-mobile].sc-af-navbar-h .mobile-menu-toggle.sc-af-navbar{display:flex;padding:12px;margin-left:auto;border-radius:9999px;border:1px solid var(--colour-brand-inkwell, #14343b)}[force-mobile].sc-af-navbar-h .mobile-menu-toggle.sc-af-navbar:hover{background:rgba(20, 52, 59, 0.05)}[force-mobile].sc-af-navbar-h .nav-links.sc-af-navbar{display:none}[force-mobile].sc-af-navbar-h .navbar-right.sc-af-navbar{display:none}[force-mobile].sc-af-navbar-h .nav-actions.sc-af-navbar{display:none}[force-mobile].sc-af-navbar-h .dropdown-container.sc-af-navbar{display:none}[force-mobile].sc-af-navbar-h .mobile-menu-panel.sc-af-navbar{padding-top:max(88px, calc(88px + env(safe-area-inset-top)))}[force-mobile].sc-af-navbar-h .mobile-menu-panel.is-open.sc-af-navbar{display:block;opacity:1;pointer-events:auto}[force-mobile].sc-af-navbar-h .mobile-button-container.sc-af-navbar{padding:0 12px;margin-bottom:8px}.sc-af-navbar-h[force-mobile] .mobile-button-container.sc-af-navbar-s>af-button,.mobile-button-container .sc-af-navbar-s>af-button,.sc-af-navbar-h[force-mobile] .mobile-button-container.sc-af-navbar-s>button,.mobile-button-container .sc-af-navbar-s>button{width:100%;display:flex;justify-content:center}[force-mobile].sc-af-navbar-h .mobile-menu-content.sc-af-navbar{display:flex;flex-direction:column}.sc-af-navbar-h[force-mobile] .mobile-menu-content.sc-af-navbar-s>*,.mobile-menu-content .sc-af-navbar-s>*{flex:0 0 auto;width:100%}";
5
5
 
@@ -191,6 +191,6 @@ function defineCustomElement() {
191
191
  }
192
192
 
193
193
  export { AfNavbar as A, defineCustomElement as d };
194
- //# sourceMappingURL=p-CZdcAZe_.js.map
194
+ //# sourceMappingURL=p-BExjo6P2.js.map
195
195
 
196
- //# sourceMappingURL=p-CZdcAZe_.js.map
196
+ //# sourceMappingURL=p-BExjo6P2.js.map
@@ -1 +1 @@
1
- {"file":"p-CZdcAZe_.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-navbar/af-navbar.css?tag=af-navbar&encapsulation=scoped","src/components/af-navbar/af-navbar.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n/* Spacer element that sits in normal document flow to prevent content overlap */\n.navbar-spacer {\n height: 100px; /* Accounts for navbar height + top margin */\n}\n\n/* Theme variants for spacer background - matches section themes */\n.navbar-spacer.theme-white {\n background-color: var(--colour-brand-white, #FFFFFF);\n}\n\n.navbar-spacer.theme-inkwell {\n background-color: var(--colour-brand-inkwell, #14343B);\n}\n\n.navbar-spacer.theme-mist-green {\n background-color: var(--colour-brand-mist-green, #C6D5D1);\n}\n\n.navbar-spacer.theme-soft-clay {\n background-color: var(--colour-softclay-400, #c0ab8d);\n}\n\n/* Sticky navbar that floats above the spacer */\n.navbar-container {\n position: fixed;\n /* Add safe-area-inset-top so the pill drops below the iOS notch / status bar\n when the page uses viewport-fit=cover. Falls back to the original 32px. */\n top: max(32px, env(safe-area-inset-top));\n left: 0;\n right: 0;\n z-index: 10;\n /* Horizontal padding honours safe-area-inset-left/right for landscape on\n notched devices; the inset is added on top of the existing 80px gutter. */\n padding: 0 calc(80px + env(safe-area-inset-right)) 0 calc(80px + env(safe-area-inset-left));\n box-sizing: border-box;\n}\n\n.navbar {\n background: var(--colour-background-white, #ffffff);\n border-radius: 9999px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 8px 8px 40px;\n box-sizing: border-box;\n flex-wrap: nowrap; /* Prevent wrapping */\n}\n\n/* Left section */\n.navbar-left {\n display: flex;\n align-items: center;\n gap: 32px;\n flex-shrink: 0;\n}\n\n.logo {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* Mobile menu toggle button */\n.mobile-menu-toggle {\n display: none;\n background: none;\n border: none;\n padding: 8px;\n cursor: pointer;\n color: var(--colour-brand-inkwell, #14343b);\n margin-left: auto;\n}\n\n.mobile-menu-toggle svg {\n display: block;\n}\n\n.nav-links {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: nowrap;\n}\n\n/* Right section */\n.navbar-right {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n.nav-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.nav-button {\n display: flex;\n align-items: center;\n}\n\n/* Dropdown container. The container's top is raised 8px into what\n was previously a blank gap between the nav pill and the panel, and\n that 8px is absorbed as container top-padding — so the visible panel\n stays put, but the hoverable region is now continuous between the\n nav pill and the dropdown. Without this, the mouse crosses an\n un-hovered strip on its way from trigger to panel and the navbar's\n mouseleave handler fires a close. */\n.dropdown-container {\n position: absolute;\n top: 100px;\n left: 0;\n right: 0;\n padding: 8px 80px 0;\n pointer-events: none;\n opacity: 0;\n transform: translateY(-8px);\n transition: opacity 0.2s ease, transform 0.2s ease;\n}\n\n.dropdown-container.is-open {\n pointer-events: auto;\n opacity: 1;\n transform: translateY(0);\n}\n\n.dropdown-panel {\n background: var(--colour-background-base, #ffffff);\n border-radius: 32px;\n overflow: hidden;\n /* shadow-navbar replaces the hand-rolled `0 4px 24px rgba(20, 52, 59, 0.12)`;\n * same value, now sourced from the token ladder so the marketing site can\n * retire its matching bespoke rule. */\n box-shadow: var(--shadow-navbar, 0 4px 24px rgba(20, 52, 59, 0.12));\n}\n\n/* Hide empty dropdown slots */\n.dropdown-panel:empty {\n display: none;\n}\n\n/* Mobile menu panel - separate from navbar for proper positioning */\n.mobile-menu-panel {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--colour-background-base, #ffffff);\n z-index: 9;\n /* Full-viewport drawer: pad the top below the notch, the bottom above the\n home indicator, and the sides away from landscape edge cutouts. */\n padding:\n max(100px, calc(100px + env(safe-area-inset-top)))\n calc(16px + env(safe-area-inset-right))\n max(24px, env(safe-area-inset-bottom))\n calc(16px + env(safe-area-inset-left));\n overflow-y: auto;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s ease;\n}\n\n.mobile-menu-panel.is-open {\n display: block;\n opacity: 1;\n pointer-events: auto;\n}\n\n/* Mobile CTA button container */\n.mobile-button-container {\n margin-bottom: 8px;\n}\n\n.mobile-button-container ::slotted(*) {\n width: 100%;\n}\n\n/* Mobile menu content - flex column ensures items stack vertically */\n.mobile-menu-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n/* Force slotted items to take full width for composability */\n.mobile-menu-content ::slotted(*) {\n flex: 0 0 auto;\n width: 100%;\n}\n\n/* \n * Breakpoint 1: Hide \"Talk to us\" and \"Log in\" (nav-actions) \n * This happens first as the viewport gets narrower\n * Matches affinda.com behavior at ~1100px\n */\n@media (max-width: 1099px) {\n .nav-actions {\n display: none;\n }\n \n .navbar-right {\n gap: 0;\n }\n}\n\n/* Tablet adjustments */\n@media (max-width: 1024px) {\n .navbar-spacer {\n height: 88px;\n }\n\n .navbar-container {\n top: max(24px, env(safe-area-inset-top));\n padding: 0 calc(40px + env(safe-area-inset-right)) 0 calc(40px + env(safe-area-inset-left));\n }\n\n .navbar-left {\n gap: 24px;\n }\n\n .nav-links {\n gap: 4px;\n }\n\n .dropdown-container {\n padding: 0 40px;\n }\n}\n\n/* \n * Breakpoint 2: Switch to hamburger menu\n * Matches affinda.com behavior at 991px\n */\n@media (max-width: 991px) {\n .navbar-spacer {\n height: 72px;\n }\n\n .navbar-container {\n top: max(16px, env(safe-area-inset-top));\n padding: 0 calc(16px + env(safe-area-inset-right)) 0 calc(16px + env(safe-area-inset-left));\n z-index: 11; /* Above mobile menu panel */\n }\n\n .navbar {\n padding: 8px 8px 8px 24px; /* Figma: 8px padding right, 24px left on mobile */\n flex-direction: row;\n border-radius: 9999px; /* Keep pill shape on mobile */\n gap: 0;\n }\n\n .navbar-left {\n width: auto;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n gap: 16px;\n flex: 1;\n }\n\n /* Show hamburger button on mobile */\n .mobile-menu-toggle {\n display: flex;\n padding: 12px;\n margin-left: auto;\n border-radius: 9999px;\n border: 1px solid var(--colour-brand-inkwell, #14343b);\n }\n\n .mobile-menu-toggle:hover {\n background: rgba(20, 52, 59, 0.05);\n }\n\n /* Hide nav links on mobile - they're in the mobile menu panel */\n .nav-links {\n display: none;\n }\n\n /* Hide right section on mobile - button is in mobile menu panel */\n .navbar-right {\n display: none;\n }\n\n /* Hide desktop dropdown on mobile */\n .dropdown-container {\n display: none;\n }\n\n /* Mobile menu panel adjustments */\n .mobile-menu-panel {\n padding-top: max(88px, calc(88px + env(safe-area-inset-top))); /* Accounts for navbar height + notch */\n }\n\n .mobile-button-container {\n padding: 0 12px;\n margin-bottom: 8px;\n }\n\n .mobile-button-container ::slotted(af-button),\n .mobile-button-container ::slotted(button) {\n width: 100%;\n display: flex;\n justify-content: center;\n }\n}\n\n/* ==========================================================================\n Force Mobile Mode\n Apply mobile styles regardless of viewport when force-mobile attribute is set\n ========================================================================== */\n\n:host([force-mobile]) .navbar-spacer {\n height: 72px;\n}\n\n:host([force-mobile]) .navbar-container {\n top: max(16px, env(safe-area-inset-top));\n padding: 0 calc(16px + env(safe-area-inset-right)) 0 calc(16px + env(safe-area-inset-left));\n z-index: 11;\n}\n\n:host([force-mobile]) .navbar {\n padding: 8px 8px 8px 24px;\n flex-direction: row;\n border-radius: 9999px;\n gap: 0;\n}\n\n:host([force-mobile]) .navbar-left {\n width: auto;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n gap: 16px;\n flex: 1;\n}\n\n:host([force-mobile]) .mobile-menu-toggle {\n display: flex;\n padding: 12px;\n margin-left: auto;\n border-radius: 9999px;\n border: 1px solid var(--colour-brand-inkwell, #14343b);\n}\n\n:host([force-mobile]) .mobile-menu-toggle:hover {\n background: rgba(20, 52, 59, 0.05);\n}\n\n:host([force-mobile]) .nav-links {\n display: none;\n}\n\n:host([force-mobile]) .navbar-right {\n display: none;\n}\n\n:host([force-mobile]) .nav-actions {\n display: none;\n}\n\n:host([force-mobile]) .dropdown-container {\n display: none;\n}\n\n:host([force-mobile]) .mobile-menu-panel {\n padding-top: max(88px, calc(88px + env(safe-area-inset-top)));\n}\n\n:host([force-mobile]) .mobile-menu-panel.is-open {\n display: block;\n opacity: 1;\n pointer-events: auto;\n}\n\n:host([force-mobile]) .mobile-button-container {\n padding: 0 12px;\n margin-bottom: 8px;\n}\n\n:host([force-mobile]) .mobile-button-container ::slotted(af-button),\n:host([force-mobile]) .mobile-button-container ::slotted(button) {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n/* Force mobile: flex column ensures items stack vertically */\n:host([force-mobile]) .mobile-menu-content {\n display: flex;\n flex-direction: column;\n}\n\n/* Force mobile: slotted items take full width for composability */\n:host([force-mobile]) .mobile-menu-content ::slotted(*) {\n flex: 0 0 auto;\n width: 100%;\n}\n","import { Component, State, h, Host, Prop, Element, Listen } from '@stencil/core';\nimport type { Theme } from '../../types';\n\n/**\n * A full-width navigation bar component that provides the main site navigation.\n * Features a pill-shaped container with logo, navigation links, and action buttons.\n * Includes mobile hamburger menu and support for mega-menu dropdowns.\n * \n * The logo slot can be used to provide a custom logo. If no logo is provided,\n * the default Affinda logo will be displayed.\n * \n * **Slots:**\n * - `logo` - Logo area (defaults to Affinda logo if empty)\n * - `start` - Primary navigation links (left side, desktop)\n * - `end` - Secondary/utility links (right side)\n * - `button` - Call-to-action button\n * - `dropdowns` - One or more dropdown panels, each a `<div data-for=\"id\">`\n * where `id` matches the `data-dropdown=\"id\"` attribute on the trigger.\n * Clicking a trigger toggles the matching panel; only one is visible at\n * a time.\n * - `mobile-menu` - Mobile menu content (use af-nav-accordion for accordion menus)\n * - `mobile-button` - CTA button for mobile menu (appears at top)\n */\n@Component({\n tag: 'af-navbar',\n styleUrl: 'af-navbar.css',\n shadow: false,\n scoped: true,\n})\nexport class AfNavbar {\n @Element() el!: HTMLElement;\n\n @State() mobileMenuOpen: boolean = false;\n \n /** The currently open dropdown identifier (null if none open) */\n @State() activeDropdown: string | null = null;\n\n /** Whether to show the default Affinda logo when no logo slot content is provided */\n @Prop() showDefaultLogo: boolean = true;\n\n /** Theme for the spacer background - should match the section below the navbar */\n @Prop() theme?: Theme;\n\n /** Force mobile layout regardless of viewport size (useful for testing/stories) */\n @Prop({ reflect: true }) forceMobile: boolean = false;\n\n private toggleMobileMenu = () => {\n this.mobileMenuOpen = !this.mobileMenuOpen;\n // Close any open dropdown when toggling mobile menu\n this.activeDropdown = null;\n };\n\n /**\n * Opens a dropdown by its identifier\n */\n private openDropdown = (dropdownId: string) => {\n this.activeDropdown = dropdownId;\n };\n\n /**\n * Closes the currently open dropdown\n */\n private closeDropdown = () => {\n this.activeDropdown = null;\n };\n\n /**\n * Toggles a dropdown by its identifier\n */\n private toggleDropdown = (dropdownId: string) => {\n if (this.activeDropdown === dropdownId) {\n this.activeDropdown = null;\n } else {\n this.activeDropdown = dropdownId;\n }\n };\n\n /** Timer id used to debounce hover-driven closes. */\n private closeTimer?: number;\n\n /**\n * The trigger element that opened the currently active dropdown. Tracked\n * so an Esc keypress can close the dropdown and restore focus to the\n * trigger, matching WAI-ARIA menu-button guidance.\n */\n private lastActiveTrigger?: HTMLElement;\n\n /**\n * Open the dropdown matching a `[data-dropdown]` trigger on click —\n * acts as a toggle so keyboard/touch users can still dismiss it.\n */\n @Listen('click')\n handleTriggerClick(event: MouseEvent) {\n const target = event.target as HTMLElement | null;\n const trigger = target?.closest?.('[data-dropdown]') as HTMLElement | null;\n if (!trigger || !this.el.contains(trigger)) return;\n const id = trigger.getAttribute('data-dropdown');\n if (!id) return;\n event.preventDefault();\n event.stopPropagation();\n this.cancelScheduledClose();\n this.lastActiveTrigger = trigger;\n this.toggleDropdown(id);\n }\n\n /**\n * Open the dropdown matching a `[data-dropdown]` trigger on hover.\n * Uses mouseover (which bubbles) and checks for the trigger ancestor.\n */\n @Listen('mouseover')\n handleHover(event: MouseEvent) {\n const target = event.target as HTMLElement | null;\n const trigger = target?.closest?.('[data-dropdown]') as HTMLElement | null;\n if (!trigger || !this.el.contains(trigger)) return;\n const id = trigger.getAttribute('data-dropdown');\n if (!id || this.activeDropdown === id) {\n this.cancelScheduledClose();\n return;\n }\n this.cancelScheduledClose();\n this.lastActiveTrigger = trigger;\n this.openDropdown(id);\n }\n\n /**\n * When the pointer leaves the navbar entirely (including any open\n * dropdown panel), schedule a close. Re-entering cancels it.\n */\n @Listen('mouseleave')\n handleHostLeave() {\n this.scheduleClose();\n }\n\n @Listen('mouseenter')\n handleHostEnter() {\n this.cancelScheduledClose();\n }\n\n private scheduleClose() {\n // Short 100ms debounce so the mouse has time to cross any tiny\n // dead-zone between the nav pill, the dropdown panel, and the\n // items inside it without accidentally closing the panel. A\n // re-entering mouseenter on the host cancels the pending close.\n this.cancelScheduledClose();\n this.closeTimer = window.setTimeout(() => {\n this.closeDropdown();\n this.closeTimer = undefined;\n }, 100);\n }\n\n private cancelScheduledClose() {\n if (this.closeTimer !== undefined) {\n clearTimeout(this.closeTimer);\n this.closeTimer = undefined;\n }\n }\n\n /**\n * Handle clicks outside the navbar to close dropdowns\n */\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: MouseEvent) {\n const path = event.composedPath();\n if (!path.includes(this.el)) {\n this.closeDropdown();\n }\n }\n\n /**\n * Keep the visibility of slotted dropdown panels, and the `data-active`\n * flag on their triggers, in sync with the currently active dropdown.\n * Each panel lives in the `dropdowns` slot and carries a `data-for`\n * attribute that matches its trigger's id.\n */\n componentDidLoad() {\n this.syncDropdownState();\n }\n\n componentDidUpdate() {\n this.syncDropdownState();\n }\n\n private syncDropdownState() {\n this.el.querySelectorAll<HTMLElement>('[data-for]').forEach((panel) => {\n if (!this.el.contains(panel)) return;\n panel.hidden = panel.getAttribute('data-for') !== this.activeDropdown;\n });\n this.el.querySelectorAll<HTMLElement>('[data-dropdown]').forEach((trigger) => {\n if (!this.el.contains(trigger)) return;\n const active = trigger.getAttribute('data-dropdown') === this.activeDropdown;\n if (active) trigger.setAttribute('data-active', '');\n else trigger.removeAttribute('data-active');\n trigger.setAttribute('aria-expanded', active ? 'true' : 'false');\n });\n }\n\n /**\n * Handle escape key to close dropdowns. If a dropdown is open, restore\n * focus to the trigger that opened it so keyboard users don't lose\n * their place in the tab order.\n */\n @Listen('keydown', { target: 'document' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.activeDropdown !== null) {\n const toFocus = this.lastActiveTrigger;\n this.closeDropdown();\n toFocus?.focus?.();\n }\n }\n\n render() {\n const hasDropdown = this.activeDropdown !== null;\n\n return (\n <Host class={{ 'has-dropdown-open': hasDropdown }}>\n {/* Spacer element to prevent content from being hidden behind sticky navbar */}\n <div class={`navbar-spacer${this.theme ? ` theme-${this.theme}` : ''}`}></div>\n \n <nav class=\"navbar-container\">\n <div class=\"navbar theme-white\">\n {/* Left section: Logo + Nav Links */}\n <div class=\"navbar-left\">\n <div class=\"logo\">\n <slot name=\"logo\">\n {/* Default Affinda logo if no slot content provided */}\n {this.showDefaultLogo && <af-logo></af-logo>}\n </slot>\n </div>\n \n {/* Hamburger menu button - mobile only */}\n <button \n class=\"mobile-menu-toggle\"\n onClick={this.toggleMobileMenu}\n aria-label=\"Toggle navigation menu\"\n aria-expanded={this.mobileMenuOpen ? 'true' : 'false'}\n >\n {this.mobileMenuOpen ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <path d=\"M18 6L6 18M6 6l12 12\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n ) : (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <path d=\"M3 12h18M3 6h18M3 18h18\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n )}\n </button>\n \n <div class={`nav-links ${this.mobileMenuOpen ? 'mobile-open' : ''}`}>\n <slot name=\"start\"></slot>\n </div>\n </div>\n\n {/* Right section: Actions + Button */}\n <div class={`navbar-right ${this.mobileMenuOpen ? 'mobile-open' : ''}`}>\n <div class=\"nav-actions\">\n <slot name=\"end\"></slot>\n </div>\n <div class=\"nav-button\">\n <slot name=\"button\"></slot>\n </div>\n </div>\n </div>\n\n {/* Dropdown panel container */}\n <div class={`dropdown-container ${hasDropdown ? 'is-open' : ''}`}>\n <div class=\"dropdown-panel theme-white\">\n <slot name=\"dropdowns\"></slot>\n </div>\n </div>\n </nav>\n\n {/* Mobile menu panel */}\n <div class={`mobile-menu-panel theme-white ${this.mobileMenuOpen ? 'is-open' : ''}`}>\n {/* Mobile CTA button at top.\n Note: only `name=\"mobile-button\"` here. We can't fall back\n to `<slot name=\"button\">` because Stencil's scoped-mode slot\n projection only matches a slot once per host — declaring the\n same slot name in two template positions silently breaks\n projection of the outer slot, leaving the desktop CTA\n orphaned at the host root with no visual parent. Consumers\n must explicitly slot a `mobile-button` (SiteHeader does). */}\n <div class=\"mobile-button-container\">\n <slot name=\"mobile-button\"></slot>\n </div>\n \n {/* Mobile navigation content */}\n <div class=\"mobile-menu-content\">\n <slot name=\"mobile-menu\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-BExjo6P2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-navbar/af-navbar.css?tag=af-navbar&encapsulation=scoped","src/components/af-navbar/af-navbar.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n/* Spacer element that sits in normal document flow to prevent content overlap */\n.navbar-spacer {\n height: 100px; /* Accounts for navbar height + top margin */\n}\n\n/* Theme variants for spacer background - matches section themes */\n.navbar-spacer.theme-white {\n background-color: var(--colour-brand-white, #FFFFFF);\n}\n\n.navbar-spacer.theme-inkwell {\n background-color: var(--colour-brand-inkwell, #14343B);\n}\n\n.navbar-spacer.theme-mist-green {\n background-color: var(--colour-brand-mist-green, #C6D5D1);\n}\n\n.navbar-spacer.theme-soft-clay {\n background-color: var(--colour-softclay-400, #c0ab8d);\n}\n\n/* Sticky navbar that floats above the spacer */\n.navbar-container {\n position: fixed;\n /* Add safe-area-inset-top so the pill drops below the iOS notch / status bar\n when the page uses viewport-fit=cover. Falls back to the original 32px. */\n top: max(32px, env(safe-area-inset-top));\n left: 0;\n right: 0;\n z-index: 10;\n /* Horizontal padding honours safe-area-inset-left/right for landscape on\n notched devices; the inset is added on top of the existing 80px gutter. */\n padding: 0 calc(80px + env(safe-area-inset-right)) 0 calc(80px + env(safe-area-inset-left));\n box-sizing: border-box;\n}\n\n.navbar {\n background: var(--colour-background-white, #ffffff);\n border-radius: 9999px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 8px 8px 40px;\n box-sizing: border-box;\n flex-wrap: nowrap; /* Prevent wrapping */\n}\n\n/* Left section */\n.navbar-left {\n display: flex;\n align-items: center;\n gap: 32px;\n flex-shrink: 0;\n}\n\n.logo {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* Mobile menu toggle button */\n.mobile-menu-toggle {\n display: none;\n background: none;\n border: none;\n padding: 8px;\n cursor: pointer;\n color: var(--colour-brand-inkwell, #14343b);\n margin-left: auto;\n}\n\n.mobile-menu-toggle svg {\n display: block;\n}\n\n.nav-links {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: nowrap;\n}\n\n/* Right section */\n.navbar-right {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n.nav-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.nav-button {\n display: flex;\n align-items: center;\n}\n\n/* Dropdown container. The container's top is raised 8px into what\n was previously a blank gap between the nav pill and the panel, and\n that 8px is absorbed as container top-padding — so the visible panel\n stays put, but the hoverable region is now continuous between the\n nav pill and the dropdown. Without this, the mouse crosses an\n un-hovered strip on its way from trigger to panel and the navbar's\n mouseleave handler fires a close. */\n.dropdown-container {\n position: absolute;\n top: 100px;\n left: 0;\n right: 0;\n padding: 8px 80px 0;\n pointer-events: none;\n opacity: 0;\n transform: translateY(-8px);\n transition: opacity 0.2s ease, transform 0.2s ease;\n}\n\n.dropdown-container.is-open {\n pointer-events: auto;\n opacity: 1;\n transform: translateY(0);\n}\n\n.dropdown-panel {\n background: var(--colour-background-base, #ffffff);\n border-radius: 32px;\n overflow: hidden;\n /* shadow-navbar replaces the hand-rolled `0 4px 24px rgba(20, 52, 59, 0.12)`;\n * same value, now sourced from the token ladder so the marketing site can\n * retire its matching bespoke rule. */\n box-shadow: var(--shadow-navbar, 0 4px 24px rgba(20, 52, 59, 0.12));\n}\n\n/* Hide empty dropdown slots */\n.dropdown-panel:empty {\n display: none;\n}\n\n/* Mobile menu panel - separate from navbar for proper positioning */\n.mobile-menu-panel {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--colour-background-base, #ffffff);\n z-index: 9;\n /* Full-viewport drawer: pad the top below the notch, the bottom above the\n home indicator, and the sides away from landscape edge cutouts. */\n padding:\n max(100px, calc(100px + env(safe-area-inset-top)))\n calc(16px + env(safe-area-inset-right))\n max(24px, env(safe-area-inset-bottom))\n calc(16px + env(safe-area-inset-left));\n overflow-y: auto;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s ease;\n}\n\n.mobile-menu-panel.is-open {\n display: block;\n opacity: 1;\n pointer-events: auto;\n}\n\n/* Mobile CTA button container */\n.mobile-button-container {\n margin-bottom: 8px;\n}\n\n.mobile-button-container ::slotted(*) {\n width: 100%;\n}\n\n/* Mobile menu content - flex column ensures items stack vertically */\n.mobile-menu-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n/* Force slotted items to take full width for composability */\n.mobile-menu-content ::slotted(*) {\n flex: 0 0 auto;\n width: 100%;\n}\n\n/* \n * Breakpoint 1: Hide \"Talk to us\" and \"Log in\" (nav-actions) \n * This happens first as the viewport gets narrower\n * Matches affinda.com behavior at ~1100px\n */\n@media (max-width: 1099px) {\n .nav-actions {\n display: none;\n }\n \n .navbar-right {\n gap: 0;\n }\n}\n\n/* Tablet adjustments */\n@media (max-width: 1024px) {\n .navbar-spacer {\n height: 88px;\n }\n\n .navbar-container {\n top: max(24px, env(safe-area-inset-top));\n padding: 0 calc(40px + env(safe-area-inset-right)) 0 calc(40px + env(safe-area-inset-left));\n }\n\n .navbar-left {\n gap: 24px;\n }\n\n .nav-links {\n gap: 4px;\n }\n\n .dropdown-container {\n padding: 0 40px;\n }\n}\n\n/* \n * Breakpoint 2: Switch to hamburger menu\n * Matches affinda.com behavior at 991px\n */\n@media (max-width: 991px) {\n .navbar-spacer {\n height: 72px;\n }\n\n .navbar-container {\n top: max(16px, env(safe-area-inset-top));\n padding: 0 calc(16px + env(safe-area-inset-right)) 0 calc(16px + env(safe-area-inset-left));\n z-index: 11; /* Above mobile menu panel */\n }\n\n .navbar {\n padding: 8px 8px 8px 24px; /* Figma: 8px padding right, 24px left on mobile */\n flex-direction: row;\n border-radius: 9999px; /* Keep pill shape on mobile */\n gap: 0;\n }\n\n .navbar-left {\n width: auto;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n gap: 16px;\n flex: 1;\n }\n\n /* Show hamburger button on mobile */\n .mobile-menu-toggle {\n display: flex;\n padding: 12px;\n margin-left: auto;\n border-radius: 9999px;\n border: 1px solid var(--colour-brand-inkwell, #14343b);\n }\n\n .mobile-menu-toggle:hover {\n background: rgba(20, 52, 59, 0.05);\n }\n\n /* Hide nav links on mobile - they're in the mobile menu panel */\n .nav-links {\n display: none;\n }\n\n /* Hide right section on mobile - button is in mobile menu panel */\n .navbar-right {\n display: none;\n }\n\n /* Hide desktop dropdown on mobile */\n .dropdown-container {\n display: none;\n }\n\n /* Mobile menu panel adjustments */\n .mobile-menu-panel {\n padding-top: max(88px, calc(88px + env(safe-area-inset-top))); /* Accounts for navbar height + notch */\n }\n\n .mobile-button-container {\n padding: 0 12px;\n margin-bottom: 8px;\n }\n\n .mobile-button-container ::slotted(af-button),\n .mobile-button-container ::slotted(button) {\n width: 100%;\n display: flex;\n justify-content: center;\n }\n}\n\n/* ==========================================================================\n Force Mobile Mode\n Apply mobile styles regardless of viewport when force-mobile attribute is set\n ========================================================================== */\n\n:host([force-mobile]) .navbar-spacer {\n height: 72px;\n}\n\n:host([force-mobile]) .navbar-container {\n top: max(16px, env(safe-area-inset-top));\n padding: 0 calc(16px + env(safe-area-inset-right)) 0 calc(16px + env(safe-area-inset-left));\n z-index: 11;\n}\n\n:host([force-mobile]) .navbar {\n padding: 8px 8px 8px 24px;\n flex-direction: row;\n border-radius: 9999px;\n gap: 0;\n}\n\n:host([force-mobile]) .navbar-left {\n width: auto;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n gap: 16px;\n flex: 1;\n}\n\n:host([force-mobile]) .mobile-menu-toggle {\n display: flex;\n padding: 12px;\n margin-left: auto;\n border-radius: 9999px;\n border: 1px solid var(--colour-brand-inkwell, #14343b);\n}\n\n:host([force-mobile]) .mobile-menu-toggle:hover {\n background: rgba(20, 52, 59, 0.05);\n}\n\n:host([force-mobile]) .nav-links {\n display: none;\n}\n\n:host([force-mobile]) .navbar-right {\n display: none;\n}\n\n:host([force-mobile]) .nav-actions {\n display: none;\n}\n\n:host([force-mobile]) .dropdown-container {\n display: none;\n}\n\n:host([force-mobile]) .mobile-menu-panel {\n padding-top: max(88px, calc(88px + env(safe-area-inset-top)));\n}\n\n:host([force-mobile]) .mobile-menu-panel.is-open {\n display: block;\n opacity: 1;\n pointer-events: auto;\n}\n\n:host([force-mobile]) .mobile-button-container {\n padding: 0 12px;\n margin-bottom: 8px;\n}\n\n:host([force-mobile]) .mobile-button-container ::slotted(af-button),\n:host([force-mobile]) .mobile-button-container ::slotted(button) {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n\n/* Force mobile: flex column ensures items stack vertically */\n:host([force-mobile]) .mobile-menu-content {\n display: flex;\n flex-direction: column;\n}\n\n/* Force mobile: slotted items take full width for composability */\n:host([force-mobile]) .mobile-menu-content ::slotted(*) {\n flex: 0 0 auto;\n width: 100%;\n}\n","import { Component, State, h, Host, Prop, Element, Listen } from '@stencil/core';\nimport type { Theme } from '../../types';\n\n/**\n * A full-width navigation bar component that provides the main site navigation.\n * Features a pill-shaped container with logo, navigation links, and action buttons.\n * Includes mobile hamburger menu and support for mega-menu dropdowns.\n * \n * The logo slot can be used to provide a custom logo. If no logo is provided,\n * the default Affinda logo will be displayed.\n * \n * **Slots:**\n * - `logo` - Logo area (defaults to Affinda logo if empty)\n * - `start` - Primary navigation links (left side, desktop)\n * - `end` - Secondary/utility links (right side)\n * - `button` - Call-to-action button\n * - `dropdowns` - One or more dropdown panels, each a `<div data-for=\"id\">`\n * where `id` matches the `data-dropdown=\"id\"` attribute on the trigger.\n * Clicking a trigger toggles the matching panel; only one is visible at\n * a time.\n * - `mobile-menu` - Mobile menu content (use af-nav-accordion for accordion menus)\n * - `mobile-button` - CTA button for mobile menu (appears at top)\n */\n@Component({\n tag: 'af-navbar',\n styleUrl: 'af-navbar.css',\n shadow: false,\n scoped: true,\n})\nexport class AfNavbar {\n @Element() el!: HTMLElement;\n\n @State() mobileMenuOpen: boolean = false;\n \n /** The currently open dropdown identifier (null if none open) */\n @State() activeDropdown: string | null = null;\n\n /** Whether to show the default Affinda logo when no logo slot content is provided */\n @Prop() showDefaultLogo: boolean = true;\n\n /** Theme for the spacer background - should match the section below the navbar */\n @Prop() theme?: Theme;\n\n /** Force mobile layout regardless of viewport size (useful for testing/stories) */\n @Prop({ reflect: true }) forceMobile: boolean = false;\n\n private toggleMobileMenu = () => {\n this.mobileMenuOpen = !this.mobileMenuOpen;\n // Close any open dropdown when toggling mobile menu\n this.activeDropdown = null;\n };\n\n /**\n * Opens a dropdown by its identifier\n */\n private openDropdown = (dropdownId: string) => {\n this.activeDropdown = dropdownId;\n };\n\n /**\n * Closes the currently open dropdown\n */\n private closeDropdown = () => {\n this.activeDropdown = null;\n };\n\n /**\n * Toggles a dropdown by its identifier\n */\n private toggleDropdown = (dropdownId: string) => {\n if (this.activeDropdown === dropdownId) {\n this.activeDropdown = null;\n } else {\n this.activeDropdown = dropdownId;\n }\n };\n\n /** Timer id used to debounce hover-driven closes. */\n private closeTimer?: number;\n\n /**\n * The trigger element that opened the currently active dropdown. Tracked\n * so an Esc keypress can close the dropdown and restore focus to the\n * trigger, matching WAI-ARIA menu-button guidance.\n */\n private lastActiveTrigger?: HTMLElement;\n\n /**\n * Open the dropdown matching a `[data-dropdown]` trigger on click —\n * acts as a toggle so keyboard/touch users can still dismiss it.\n */\n @Listen('click')\n handleTriggerClick(event: MouseEvent) {\n const target = event.target as HTMLElement | null;\n const trigger = target?.closest?.('[data-dropdown]') as HTMLElement | null;\n if (!trigger || !this.el.contains(trigger)) return;\n const id = trigger.getAttribute('data-dropdown');\n if (!id) return;\n event.preventDefault();\n event.stopPropagation();\n this.cancelScheduledClose();\n this.lastActiveTrigger = trigger;\n this.toggleDropdown(id);\n }\n\n /**\n * Open the dropdown matching a `[data-dropdown]` trigger on hover.\n * Uses mouseover (which bubbles) and checks for the trigger ancestor.\n */\n @Listen('mouseover')\n handleHover(event: MouseEvent) {\n const target = event.target as HTMLElement | null;\n const trigger = target?.closest?.('[data-dropdown]') as HTMLElement | null;\n if (!trigger || !this.el.contains(trigger)) return;\n const id = trigger.getAttribute('data-dropdown');\n if (!id || this.activeDropdown === id) {\n this.cancelScheduledClose();\n return;\n }\n this.cancelScheduledClose();\n this.lastActiveTrigger = trigger;\n this.openDropdown(id);\n }\n\n /**\n * When the pointer leaves the navbar entirely (including any open\n * dropdown panel), schedule a close. Re-entering cancels it.\n */\n @Listen('mouseleave')\n handleHostLeave() {\n this.scheduleClose();\n }\n\n @Listen('mouseenter')\n handleHostEnter() {\n this.cancelScheduledClose();\n }\n\n private scheduleClose() {\n // Short 100ms debounce so the mouse has time to cross any tiny\n // dead-zone between the nav pill, the dropdown panel, and the\n // items inside it without accidentally closing the panel. A\n // re-entering mouseenter on the host cancels the pending close.\n this.cancelScheduledClose();\n this.closeTimer = window.setTimeout(() => {\n this.closeDropdown();\n this.closeTimer = undefined;\n }, 100);\n }\n\n private cancelScheduledClose() {\n if (this.closeTimer !== undefined) {\n clearTimeout(this.closeTimer);\n this.closeTimer = undefined;\n }\n }\n\n /**\n * Handle clicks outside the navbar to close dropdowns\n */\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: MouseEvent) {\n const path = event.composedPath();\n if (!path.includes(this.el)) {\n this.closeDropdown();\n }\n }\n\n /**\n * Keep the visibility of slotted dropdown panels, and the `data-active`\n * flag on their triggers, in sync with the currently active dropdown.\n * Each panel lives in the `dropdowns` slot and carries a `data-for`\n * attribute that matches its trigger's id.\n */\n componentDidLoad() {\n this.syncDropdownState();\n }\n\n componentDidUpdate() {\n this.syncDropdownState();\n }\n\n private syncDropdownState() {\n this.el.querySelectorAll<HTMLElement>('[data-for]').forEach((panel) => {\n if (!this.el.contains(panel)) return;\n panel.hidden = panel.getAttribute('data-for') !== this.activeDropdown;\n });\n this.el.querySelectorAll<HTMLElement>('[data-dropdown]').forEach((trigger) => {\n if (!this.el.contains(trigger)) return;\n const active = trigger.getAttribute('data-dropdown') === this.activeDropdown;\n if (active) trigger.setAttribute('data-active', '');\n else trigger.removeAttribute('data-active');\n trigger.setAttribute('aria-expanded', active ? 'true' : 'false');\n });\n }\n\n /**\n * Handle escape key to close dropdowns. If a dropdown is open, restore\n * focus to the trigger that opened it so keyboard users don't lose\n * their place in the tab order.\n */\n @Listen('keydown', { target: 'document' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.activeDropdown !== null) {\n const toFocus = this.lastActiveTrigger;\n this.closeDropdown();\n toFocus?.focus?.();\n }\n }\n\n render() {\n const hasDropdown = this.activeDropdown !== null;\n\n return (\n <Host class={{ 'has-dropdown-open': hasDropdown }}>\n {/* Spacer element to prevent content from being hidden behind sticky navbar */}\n <div class={`navbar-spacer${this.theme ? ` theme-${this.theme}` : ''}`}></div>\n \n <nav class=\"navbar-container\">\n <div class=\"navbar theme-white\">\n {/* Left section: Logo + Nav Links */}\n <div class=\"navbar-left\">\n <div class=\"logo\">\n <slot name=\"logo\">\n {/* Default Affinda logo if no slot content provided */}\n {this.showDefaultLogo && <af-logo></af-logo>}\n </slot>\n </div>\n \n {/* Hamburger menu button - mobile only */}\n <button \n class=\"mobile-menu-toggle\"\n onClick={this.toggleMobileMenu}\n aria-label=\"Toggle navigation menu\"\n aria-expanded={this.mobileMenuOpen ? 'true' : 'false'}\n >\n {this.mobileMenuOpen ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <path d=\"M18 6L6 18M6 6l12 12\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n ) : (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n <path d=\"M3 12h18M3 6h18M3 18h18\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n )}\n </button>\n \n <div class={`nav-links ${this.mobileMenuOpen ? 'mobile-open' : ''}`}>\n <slot name=\"start\"></slot>\n </div>\n </div>\n\n {/* Right section: Actions + Button */}\n <div class={`navbar-right ${this.mobileMenuOpen ? 'mobile-open' : ''}`}>\n <div class=\"nav-actions\">\n <slot name=\"end\"></slot>\n </div>\n <div class=\"nav-button\">\n <slot name=\"button\"></slot>\n </div>\n </div>\n </div>\n\n {/* Dropdown panel container */}\n <div class={`dropdown-container ${hasDropdown ? 'is-open' : ''}`}>\n <div class=\"dropdown-panel theme-white\">\n <slot name=\"dropdowns\"></slot>\n </div>\n </div>\n </nav>\n\n {/* Mobile menu panel */}\n <div class={`mobile-menu-panel theme-white ${this.mobileMenuOpen ? 'is-open' : ''}`}>\n {/* Mobile CTA button at top.\n Note: only `name=\"mobile-button\"` here. We can't fall back\n to `<slot name=\"button\">` because Stencil's scoped-mode slot\n projection only matches a slot once per host — declaring the\n same slot name in two template positions silently breaks\n projection of the outer slot, leaving the desktop CTA\n orphaned at the host root with no visual parent. Consumers\n must explicitly slot a `mobile-button` (SiteHeader does). */}\n <div class=\"mobile-button-container\">\n <slot name=\"mobile-button\"></slot>\n </div>\n \n {/* Mobile navigation content */}\n <div class=\"mobile-menu-content\">\n <slot name=\"mobile-menu\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-CiY0Twna.js';
1
+ import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-Btpdr0Bi.js';
2
2
 
3
3
  const afSwitchCss = ":host{display:inline-block}.switch{display:inline-flex;align-items:center;gap:12px;cursor:pointer;font-family:var(--typography-primaryfont, 'NeuSans', sans-serif);font-size:14px;line-height:20px;color:var(--af-form-control-label, var(--af-typography-body-dark, #14343b));user-select:none}.switch.disabled{cursor:not-allowed;opacity:0.5}.input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.track{position:relative;display:flex;align-items:center;flex-shrink:0;width:52px;height:30px;border-radius:var(--radii-switch, 9999px);background:var(--af-form-control-bg-disabled, var(--af-background-level-1, #e8eeed));transition:background 0.2s ease;box-sizing:border-box}.track.active{background:var(--af-form-control-bg-checked, var(--colour-brand-inkwell, #14343b))}.track.disabled{background:var(--af-form-control-bg-disabled, var(--af-background-level-1, #e8eeed))}.track.active.disabled{background:var(--af-form-control-bg-checked-disabled, #708380)}.switch:not(.disabled):hover .track:not(.active){background:var(--af-form-control-stroke, var(--af-background-level-1-hover, #dde6e3))}.input:focus-visible+.track{box-shadow:0 0 0 4px var(--af-background-base, #ffffff), 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));outline:none}.knob{position:absolute;width:26px;height:26px;border-radius:50%;background:var(--af-form-control-bg, var(--colour-brand-white, #ffffff));box-shadow:0 2px 4px rgba(0, 0, 0, 0.15);transition:transform 0.2s ease, background 0.2s ease;transform:translateX(2px)}.knob.active{transform:translateX(24px);background:var(--af-form-control-icon, var(--colour-brand-white, #ffffff))}.knob.disabled{background:var(--af-form-control-stroke-disabled, var(--colour-inkwell-200, #a1aeb1));box-shadow:none}.label{display:flex;align-items:center;min-height:24px}.label:empty{display:none}";
4
4
 
@@ -65,6 +65,6 @@ function defineCustomElement() {
65
65
  }
66
66
 
67
67
  export { AfSwitch as A, defineCustomElement as d };
68
- //# sourceMappingURL=p-BkTUo72F.js.map
68
+ //# sourceMappingURL=p-B_r5b4JI.js.map
69
69
 
70
- //# sourceMappingURL=p-BkTUo72F.js.map
70
+ //# sourceMappingURL=p-B_r5b4JI.js.map
@@ -1 +1 @@
1
- {"file":"p-BkTUo72F.js","mappings":";;AAAA,MAAM,WAAW,GAAG,+3DAA+3D;;MCYt4D,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AALrB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAME;;AAEG;AACqC,QAAA,IAAM,CAAA,MAAA,GAAY,KAAK;AAE/D;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAiB1C,QAAA,IAAY,CAAA,YAAA,GAAG,MAAK;YAC1B,IAAI,IAAI,CAAC,QAAQ;gBAAE;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;AAC1B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAC7C,SAAC;AA4CF;IA1CC,MAAM,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,MAAM,WAAW,GAAG;AAClB,YAAA,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAO,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,aAAa,EAAA,EACzB,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,IAAI,CAAC,MAAM,EACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,CAAA,EACF,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,YAAY,EAAA,EACvB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,WAAW,EAAA,CAAS,CAC5B,EACP,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,OAAO,EAAA,EACjB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACR,CACD,CACH;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-switch/af-switch.css?tag=af-switch&encapsulation=shadow","src/components/af-switch/af-switch.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n.switch {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-size: 14px;\n line-height: 20px;\n color: var(--af-form-control-label, var(--af-typography-body-dark, #14343b));\n user-select: none;\n}\n\n.switch.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* Hidden native input */\n.input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* Switch track */\n.track {\n position: relative;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n width: 52px;\n height: 30px;\n border-radius: var(--radii-switch, 9999px);\n background: var(--af-form-control-bg-disabled, var(--af-background-level-1, #e8eeed));\n transition: background 0.2s ease;\n box-sizing: border-box;\n}\n\n/* Track active state */\n.track.active {\n background: var(--af-form-control-bg-checked, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Track disabled state */\n.track.disabled {\n background: var(--af-form-control-bg-disabled, var(--af-background-level-1, #e8eeed));\n}\n\n/* Track active + disabled state */\n.track.active.disabled {\n background: var(--af-form-control-bg-checked-disabled, #708380);\n}\n\n/* Hover state */\n.switch:not(.disabled):hover .track:not(.active) {\n background: var(--af-form-control-stroke, var(--af-background-level-1-hover, #dde6e3));\n}\n\n/* Focus state */\n.input:focus-visible + .track {\n box-shadow: 0 0 0 4px var(--af-background-base, #ffffff), 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n outline: none;\n}\n\n/* Switch knob */\n.knob {\n position: absolute;\n width: 26px;\n height: 26px;\n border-radius: 50%;\n background: var(--af-form-control-bg, var(--colour-brand-white, #ffffff));\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n transition: transform 0.2s ease, background 0.2s ease;\n transform: translateX(2px);\n}\n\n/* Knob active position */\n.knob.active {\n transform: translateX(24px);\n /* When active, knob should contrast with the checked track */\n background: var(--af-form-control-icon, var(--colour-brand-white, #ffffff));\n}\n\n/* Knob disabled state */\n.knob.disabled {\n background: var(--af-form-control-stroke-disabled, var(--colour-inkwell-200, #a1aeb1));\n box-shadow: none;\n}\n\n/* Label styling */\n.label {\n display: flex;\n align-items: center;\n min-height: 24px;\n}\n\n/* Empty label - hide if no content */\n.label:empty {\n display: none;\n}\n","import { Component, h, Prop, Host, Event, EventEmitter } from '@stencil/core';\n\n/**\n * Switch component for toggling between on and off states.\n * \n * @slot - Switch label text\n */\n@Component({\n tag: 'af-switch',\n styleUrl: 'af-switch.css',\n shadow: true\n})\nexport class AfSwitch {\n /**\n * Whether the switch is active (on)\n */\n @Prop({ mutable: true, reflect: true }) active: boolean = false;\n\n /**\n * Whether the switch is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The name of the switch for form submission\n */\n @Prop() name?: string;\n\n /**\n * The value of the switch for form submission\n */\n @Prop() value?: string;\n\n /**\n * Emitted when the switch state changes\n */\n @Event() afChange!: EventEmitter<{ active: boolean }>;\n\n private handleChange = () => {\n if (this.disabled) return;\n this.active = !this.active;\n this.afChange.emit({ active: this.active });\n };\n\n render() {\n const switchClasses = {\n 'switch': true,\n 'active': this.active,\n 'disabled': this.disabled\n };\n\n const trackClasses = {\n 'track': true,\n 'active': this.active,\n 'disabled': this.disabled\n };\n\n const knobClasses = {\n 'knob': true,\n 'active': this.active,\n 'disabled': this.disabled\n };\n\n return (\n <Host>\n <label class={switchClasses}>\n <input\n type=\"checkbox\"\n role=\"switch\"\n class=\"input\"\n checked={this.active}\n disabled={this.disabled}\n name={this.name}\n value={this.value}\n onChange={this.handleChange}\n />\n <span class={trackClasses}>\n <span class={knobClasses}></span>\n </span>\n <span class=\"label\">\n <slot></slot>\n </span>\n </label>\n </Host>\n );\n }\n}\n\n"],"version":3}
1
+ {"file":"p-B_r5b4JI.js","mappings":";;AAAA,MAAM,WAAW,GAAG,+3DAA+3D;;MCYt4D,QAAQ,iBAAAA,kBAAA,CAAA,MAAA,QAAA,SAAAC,CAAA,CAAA;AALrB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;AAME;;AAEG;AACqC,QAAA,IAAM,CAAA,MAAA,GAAY,KAAK;AAE/D;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAiB1C,QAAA,IAAY,CAAA,YAAA,GAAG,MAAK;YAC1B,IAAI,IAAI,CAAC,QAAQ;gBAAE;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;AAC1B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAC7C,SAAC;AA4CF;IA1CC,MAAM,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,MAAM,WAAW,GAAG;AAClB,YAAA,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAO,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,aAAa,EAAA,EACzB,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,IAAI,CAAC,MAAM,EACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,CAAA,EACF,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,YAAY,EAAA,EACvB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,WAAW,EAAA,CAAS,CAC5B,EACP,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,OAAO,EAAA,EACjB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACR,CACD,CACH;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-switch/af-switch.css?tag=af-switch&encapsulation=shadow","src/components/af-switch/af-switch.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n.switch {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n cursor: pointer;\n font-family: var(--typography-primaryfont, 'NeuSans', sans-serif);\n font-size: 14px;\n line-height: 20px;\n color: var(--af-form-control-label, var(--af-typography-body-dark, #14343b));\n user-select: none;\n}\n\n.switch.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* Hidden native input */\n.input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* Switch track */\n.track {\n position: relative;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n width: 52px;\n height: 30px;\n border-radius: var(--radii-switch, 9999px);\n background: var(--af-form-control-bg-disabled, var(--af-background-level-1, #e8eeed));\n transition: background 0.2s ease;\n box-sizing: border-box;\n}\n\n/* Track active state */\n.track.active {\n background: var(--af-form-control-bg-checked, var(--colour-brand-inkwell, #14343b));\n}\n\n/* Track disabled state */\n.track.disabled {\n background: var(--af-form-control-bg-disabled, var(--af-background-level-1, #e8eeed));\n}\n\n/* Track active + disabled state */\n.track.active.disabled {\n background: var(--af-form-control-bg-checked-disabled, #708380);\n}\n\n/* Hover state */\n.switch:not(.disabled):hover .track:not(.active) {\n background: var(--af-form-control-stroke, var(--af-background-level-1-hover, #dde6e3));\n}\n\n/* Focus state */\n.input:focus-visible + .track {\n box-shadow: 0 0 0 4px var(--af-background-base, #ffffff), 0 0 0 5px var(--af-form-control-stroke-hover, var(--colour-brand-inkwell, #14343b));\n outline: none;\n}\n\n/* Switch knob */\n.knob {\n position: absolute;\n width: 26px;\n height: 26px;\n border-radius: 50%;\n background: var(--af-form-control-bg, var(--colour-brand-white, #ffffff));\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n transition: transform 0.2s ease, background 0.2s ease;\n transform: translateX(2px);\n}\n\n/* Knob active position */\n.knob.active {\n transform: translateX(24px);\n /* When active, knob should contrast with the checked track */\n background: var(--af-form-control-icon, var(--colour-brand-white, #ffffff));\n}\n\n/* Knob disabled state */\n.knob.disabled {\n background: var(--af-form-control-stroke-disabled, var(--colour-inkwell-200, #a1aeb1));\n box-shadow: none;\n}\n\n/* Label styling */\n.label {\n display: flex;\n align-items: center;\n min-height: 24px;\n}\n\n/* Empty label - hide if no content */\n.label:empty {\n display: none;\n}\n","import { Component, h, Prop, Host, Event, EventEmitter } from '@stencil/core';\n\n/**\n * Switch component for toggling between on and off states.\n * \n * @slot - Switch label text\n */\n@Component({\n tag: 'af-switch',\n styleUrl: 'af-switch.css',\n shadow: true\n})\nexport class AfSwitch {\n /**\n * Whether the switch is active (on)\n */\n @Prop({ mutable: true, reflect: true }) active: boolean = false;\n\n /**\n * Whether the switch is disabled\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The name of the switch for form submission\n */\n @Prop() name?: string;\n\n /**\n * The value of the switch for form submission\n */\n @Prop() value?: string;\n\n /**\n * Emitted when the switch state changes\n */\n @Event() afChange!: EventEmitter<{ active: boolean }>;\n\n private handleChange = () => {\n if (this.disabled) return;\n this.active = !this.active;\n this.afChange.emit({ active: this.active });\n };\n\n render() {\n const switchClasses = {\n 'switch': true,\n 'active': this.active,\n 'disabled': this.disabled\n };\n\n const trackClasses = {\n 'track': true,\n 'active': this.active,\n 'disabled': this.disabled\n };\n\n const knobClasses = {\n 'knob': true,\n 'active': this.active,\n 'disabled': this.disabled\n };\n\n return (\n <Host>\n <label class={switchClasses}>\n <input\n type=\"checkbox\"\n role=\"switch\"\n class=\"input\"\n checked={this.active}\n disabled={this.disabled}\n name={this.name}\n value={this.value}\n onChange={this.handleChange}\n />\n <span class={trackClasses}>\n <span class={knobClasses}></span>\n </span>\n <span class=\"label\">\n <slot></slot>\n </span>\n </label>\n </Host>\n );\n }\n}\n\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-CiY0Twna.js';
1
+ import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-Btpdr0Bi.js';
2
2
 
3
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
 
@@ -122,6 +122,6 @@ function defineCustomElement() {
122
122
  }
123
123
 
124
124
  export { AfTextarea as A, defineCustomElement as d };
125
- //# sourceMappingURL=p-C_y6F4SM.js.map
125
+ //# sourceMappingURL=p-Bebi4EvS.js.map
126
126
 
127
- //# sourceMappingURL=p-C_y6F4SM.js.map
127
+ //# sourceMappingURL=p-Bebi4EvS.js.map