@affinda/wc 0.0.17 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (705) hide show
  1. package/dist/affinda/af-accordion-item.entry.esm.js.map +1 -0
  2. package/dist/affinda/af-accordion.entry.esm.js.map +1 -0
  3. package/dist/affinda/af-button.entry.esm.js.map +1 -1
  4. package/dist/affinda/af-card.entry.esm.js.map +1 -1
  5. package/dist/affinda/af-center.entry.esm.js.map +1 -0
  6. package/dist/affinda/af-checkbox.entry.esm.js.map +1 -1
  7. package/dist/affinda/af-divider.entry.esm.js.map +1 -0
  8. package/dist/affinda/af-feature-card.entry.esm.js.map +1 -1
  9. package/dist/affinda/af-fieldset.entry.esm.js.map +1 -1
  10. package/dist/affinda/af-grid.entry.esm.js.map +1 -0
  11. package/dist/affinda/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.esm.js.map +1 -1
  12. package/dist/affinda/af-inline.entry.esm.js.map +1 -0
  13. package/dist/affinda/af-input.entry.esm.js.map +1 -1
  14. package/dist/affinda/af-nav-accordion-item.entry.esm.js.map +1 -0
  15. package/dist/affinda/af-nav-accordion.entry.esm.js.map +1 -0
  16. package/dist/affinda/af-nav-card.entry.esm.js.map +1 -1
  17. package/dist/affinda/af-nav-menu-nest.entry.esm.js.map +1 -1
  18. package/dist/affinda/af-nav-menu.entry.esm.js.map +1 -1
  19. package/dist/affinda/af-radio.entry.esm.js.map +1 -1
  20. package/dist/affinda/af-section.entry.esm.js.map +1 -1
  21. package/dist/affinda/af-show.entry.esm.js.map +1 -0
  22. package/dist/affinda/af-spacer.entry.esm.js.map +1 -0
  23. package/dist/affinda/af-split-section.entry.esm.js.map +1 -1
  24. package/dist/affinda/af-stack.entry.esm.js.map +1 -0
  25. package/dist/affinda/af-switch.entry.esm.js.map +1 -1
  26. package/dist/affinda/af-textarea.entry.esm.js.map +1 -1
  27. package/dist/affinda/af-theme-override.entry.esm.js.map +1 -0
  28. package/dist/affinda/af-typography-lockup.entry.esm.js.map +1 -1
  29. package/dist/affinda/af-visually-hidden.entry.esm.js.map +1 -0
  30. package/dist/affinda/affinda.esm.js +1 -1
  31. package/dist/affinda/index.esm.js +1 -1
  32. package/dist/affinda/{p-acbbe39a.entry.js → p-01993cc8.entry.js} +2 -2
  33. package/dist/affinda/p-02830771.entry.js +2 -0
  34. package/dist/affinda/p-02830771.entry.js.map +1 -0
  35. package/dist/affinda/{p-a4e4eb4d.entry.js → p-04de9a0a.entry.js} +2 -2
  36. package/dist/affinda/{p-a6365e94.entry.js → p-080cf84f.entry.js} +2 -2
  37. package/dist/affinda/{p-b3b0ed0c.entry.js → p-0b5bc045.entry.js} +2 -2
  38. package/dist/affinda/p-0fcce1e4.entry.js +2 -0
  39. package/dist/affinda/p-0fcce1e4.entry.js.map +1 -0
  40. package/dist/affinda/{p-2b4dc22c.entry.js → p-16f808d5.entry.js} +2 -2
  41. package/dist/affinda/{p-52ab3bf0.entry.js → p-19eb7cb9.entry.js} +2 -2
  42. package/dist/affinda/p-1c32cfcb.entry.js +2 -0
  43. package/dist/affinda/p-1c32cfcb.entry.js.map +1 -0
  44. package/dist/affinda/p-266af3e1.entry.js +2 -0
  45. package/dist/affinda/p-266af3e1.entry.js.map +1 -0
  46. package/dist/affinda/p-288c2656.entry.js +2 -0
  47. package/dist/affinda/p-288c2656.entry.js.map +1 -0
  48. package/dist/affinda/p-2e5e4960.entry.js +2 -0
  49. package/dist/affinda/p-2e5e4960.entry.js.map +1 -0
  50. package/dist/affinda/{p-1d65fd18.entry.js → p-2e750d43.entry.js} +2 -2
  51. package/dist/affinda/p-302d0cf7.entry.js +2 -0
  52. package/dist/affinda/{p-231ba1d0.entry.js.map → p-302d0cf7.entry.js.map} +1 -1
  53. package/dist/affinda/{p-861f4f57.entry.js → p-331f9627.entry.js} +2 -2
  54. package/dist/affinda/p-389a6246.entry.js +2 -0
  55. package/dist/affinda/{p-7f20fbe0.entry.js.map → p-389a6246.entry.js.map} +1 -1
  56. package/dist/affinda/{p-77bf8a81.entry.js → p-3d2fb635.entry.js} +2 -2
  57. package/dist/affinda/{p-e5af21c2.entry.js → p-3e16bb11.entry.js} +2 -2
  58. package/dist/affinda/p-4c5f92a9.entry.js +2 -0
  59. package/dist/affinda/{p-ea06c83b.entry.js.map → p-4c5f92a9.entry.js.map} +1 -1
  60. package/dist/affinda/p-544b7c9c.entry.js +2 -0
  61. package/dist/affinda/p-544b7c9c.entry.js.map +1 -0
  62. package/dist/affinda/p-567ba536.entry.js +2 -0
  63. package/dist/affinda/{p-864778d0.entry.js.map → p-567ba536.entry.js.map} +1 -1
  64. package/dist/affinda/p-57eae3cd.entry.js +2 -0
  65. package/dist/affinda/{p-c3e31251.entry.js.map → p-57eae3cd.entry.js.map} +1 -1
  66. package/dist/affinda/p-6294b6d1.entry.js +2 -0
  67. package/dist/affinda/p-6294b6d1.entry.js.map +1 -0
  68. package/dist/affinda/{p-f45b0060.entry.js → p-63314e14.entry.js} +2 -2
  69. package/dist/affinda/p-64fa6ae6.entry.js +2 -0
  70. package/dist/affinda/p-64fa6ae6.entry.js.map +1 -0
  71. package/dist/affinda/{p-45e1923c.entry.js → p-68f1f661.entry.js} +2 -2
  72. package/dist/affinda/{p-b17735c9.entry.js → p-6af1634a.entry.js} +2 -2
  73. package/dist/affinda/p-6b92463e.entry.js +2 -0
  74. package/dist/affinda/{p-697bf0b7.entry.js.map → p-6b92463e.entry.js.map} +1 -1
  75. package/dist/affinda/p-6bbc1e24.entry.js +2 -0
  76. package/dist/affinda/p-6bbc1e24.entry.js.map +1 -0
  77. package/dist/affinda/p-709271d1.entry.js +2 -0
  78. package/dist/affinda/p-709271d1.entry.js.map +1 -0
  79. package/dist/affinda/{p-8ea22b5d.entry.js → p-7792cd53.entry.js} +2 -2
  80. package/dist/affinda/p-7b2671c4.entry.js +2 -0
  81. package/dist/affinda/p-7b2671c4.entry.js.map +1 -0
  82. package/dist/affinda/{p-85a78bcf.entry.js → p-8f24dfe3.entry.js} +2 -2
  83. package/dist/affinda/p-8f528f9d.entry.js +2 -0
  84. package/dist/affinda/p-8f528f9d.entry.js.map +1 -0
  85. package/dist/affinda/{p-44b25840.entry.js → p-920e6d30.entry.js} +2 -2
  86. package/dist/affinda/{p-10801ee1.entry.js → p-96df0106.entry.js} +2 -2
  87. package/dist/affinda/p-9de05d1d.entry.js +2 -0
  88. package/dist/affinda/p-9de05d1d.entry.js.map +1 -0
  89. package/dist/affinda/{p-a36abb83.entry.js → p-9e21b6c1.entry.js} +2 -2
  90. package/dist/affinda/{p-BmU_CFQ4.js → p-B0LVveHp.js} +3 -3
  91. package/dist/affinda/p-B0LVveHp.js.map +1 -0
  92. package/dist/affinda/{p-c11088fa.entry.js → p-a2c71cad.entry.js} +2 -2
  93. package/dist/affinda/p-a6402689.entry.js +2 -0
  94. package/dist/affinda/{p-be049760.entry.js.map → p-a6402689.entry.js.map} +1 -1
  95. package/dist/affinda/p-a7574570.entry.js +2 -0
  96. package/dist/affinda/{p-98901734.entry.js.map → p-a7574570.entry.js.map} +1 -1
  97. package/dist/affinda/p-a942522f.entry.js +2 -0
  98. package/dist/affinda/{p-c0ee2420.entry.js.map → p-a942522f.entry.js.map} +1 -1
  99. package/dist/affinda/{p-96eac3af.entry.js → p-adacb8c4.entry.js} +2 -2
  100. package/dist/affinda/p-af25dad7.entry.js +2 -0
  101. package/dist/affinda/{p-ce3356f1.entry.js.map → p-af25dad7.entry.js.map} +1 -1
  102. package/dist/affinda/p-b0d668d0.entry.js +2 -0
  103. package/dist/affinda/p-b0d668d0.entry.js.map +1 -0
  104. package/dist/affinda/{p-e5d9913c.entry.js → p-b10103f4.entry.js} +2 -2
  105. package/dist/affinda/p-b2338fab.entry.js +2 -0
  106. package/dist/affinda/{p-c298b370.entry.js.map → p-b2338fab.entry.js.map} +1 -1
  107. package/dist/affinda/p-b56e9e2d.entry.js +2 -0
  108. package/dist/affinda/p-b56e9e2d.entry.js.map +1 -0
  109. package/dist/affinda/p-b68748ab.entry.js +2 -0
  110. package/dist/affinda/p-b68748ab.entry.js.map +1 -0
  111. package/dist/affinda/{p-1d9e532f.entry.js → p-bd7170d7.entry.js} +2 -2
  112. package/dist/affinda/p-c72cfcbd.entry.js +2 -0
  113. package/dist/affinda/p-c72cfcbd.entry.js.map +1 -0
  114. package/dist/affinda/p-c74481bd.entry.js +2 -0
  115. package/dist/affinda/p-c74481bd.entry.js.map +1 -0
  116. package/dist/affinda/{p-0cd160a4.entry.js → p-cc4e73dc.entry.js} +2 -2
  117. package/dist/affinda/p-d47a77e2.entry.js +2 -0
  118. package/dist/affinda/p-d47a77e2.entry.js.map +1 -0
  119. package/dist/affinda/{p-3d3c9f62.entry.js → p-d51c4b1b.entry.js} +2 -2
  120. package/dist/affinda/p-d6e55455.entry.js +2 -0
  121. package/dist/affinda/{p-81571029.entry.js → p-d90366f6.entry.js} +2 -2
  122. package/dist/affinda/{p-31d4c1a4.entry.js → p-db9249e4.entry.js} +2 -2
  123. package/dist/affinda/p-e156a8bb.entry.js +2 -0
  124. package/dist/affinda/p-e156a8bb.entry.js.map +1 -0
  125. package/dist/affinda/{p-5bbf2c8c.entry.js → p-e305c2b7.entry.js} +2 -2
  126. package/dist/affinda/{p-71144002.entry.js → p-e7d8d909.entry.js} +2 -2
  127. package/dist/affinda/p-e9bc1739.entry.js +2 -0
  128. package/dist/affinda/p-e9bc1739.entry.js.map +1 -0
  129. package/dist/affinda/p-f1a5d268.entry.js +2 -0
  130. package/dist/affinda/p-f1a5d268.entry.js.map +1 -0
  131. package/dist/affinda/{p-425253ee.entry.js → p-f7a13cd3.entry.js} +2 -2
  132. package/dist/affinda/p-f9e7cf8f.entry.js +2 -0
  133. package/dist/affinda/p-f9e7cf8f.entry.js.map +1 -0
  134. package/dist/affinda/p-fd772813.entry.js +2 -0
  135. package/dist/affinda/p-fefe9597.entry.js +2 -0
  136. package/dist/cjs/af-accordion-item.cjs.entry.js +105 -0
  137. package/dist/cjs/af-accordion-item.entry.cjs.js.map +1 -0
  138. package/dist/cjs/af-accordion.cjs.entry.js +102 -0
  139. package/dist/cjs/af-accordion.entry.cjs.js.map +1 -0
  140. package/dist/cjs/af-aspect-ratio.cjs.entry.js +1 -1
  141. package/dist/cjs/af-button-group.cjs.entry.js +2 -2
  142. package/dist/cjs/af-button.cjs.entry.js +1 -1
  143. package/dist/cjs/af-button.entry.cjs.js.map +1 -1
  144. package/dist/cjs/af-card.cjs.entry.js +3 -3
  145. package/dist/cjs/af-card.entry.cjs.js.map +1 -1
  146. package/dist/cjs/af-center.cjs.entry.js +42 -0
  147. package/dist/cjs/af-center.entry.cjs.js.map +1 -0
  148. package/dist/cjs/af-checkbox.cjs.entry.js +3 -3
  149. package/dist/cjs/af-checkbox.entry.cjs.js.map +1 -1
  150. package/dist/cjs/af-client-carousel.cjs.entry.js +2 -2
  151. package/dist/cjs/af-color-swatch.cjs.entry.js +1 -1
  152. package/dist/cjs/af-contact-item.cjs.entry.js +2 -2
  153. package/dist/cjs/af-container.cjs.entry.js +1 -1
  154. package/dist/cjs/af-divider.cjs.entry.js +43 -0
  155. package/dist/cjs/af-divider.entry.cjs.js.map +1 -0
  156. package/dist/cjs/af-feature-accordion.cjs.entry.js +3 -3
  157. package/dist/cjs/af-feature-card.cjs.entry.js +2 -2
  158. package/dist/cjs/af-feature-card.entry.cjs.js.map +1 -1
  159. package/dist/cjs/af-feature-grid.cjs.entry.js +2 -2
  160. package/dist/cjs/af-fieldset.cjs.entry.js +3 -3
  161. package/dist/cjs/af-fieldset.entry.cjs.js.map +1 -1
  162. package/dist/cjs/af-footer-column.cjs.entry.js +2 -2
  163. package/dist/cjs/af-footer-link.cjs.entry.js +2 -2
  164. package/dist/cjs/af-footer.cjs.entry.js +2 -2
  165. package/dist/cjs/af-grid-callout.cjs.entry.js +1 -1
  166. package/dist/cjs/af-grid.cjs.entry.js +44 -0
  167. package/dist/cjs/af-grid.entry.cjs.js.map +1 -0
  168. package/dist/cjs/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.cjs.js.map +1 -1
  169. package/dist/cjs/af-heading_5.cjs.entry.js +17 -17
  170. package/dist/cjs/af-icon-box.cjs.entry.js +2 -2
  171. package/dist/cjs/af-icon-button.cjs.entry.js +1 -1
  172. package/dist/cjs/af-icon-text.cjs.entry.js +2 -2
  173. package/dist/cjs/af-icon.cjs.entry.js +1 -1
  174. package/dist/cjs/af-illustrated-card.cjs.entry.js +2 -2
  175. package/dist/cjs/af-image.cjs.entry.js +2 -2
  176. package/dist/cjs/af-in-page-banner.cjs.entry.js +2 -2
  177. package/dist/cjs/af-inline.cjs.entry.js +58 -0
  178. package/dist/cjs/af-inline.entry.cjs.js.map +1 -0
  179. package/dist/cjs/af-input.cjs.entry.js +3 -3
  180. package/dist/cjs/af-input.entry.cjs.js.map +1 -1
  181. package/dist/cjs/af-logo-well.cjs.entry.js +2 -2
  182. package/dist/cjs/af-nav-accordion-item.cjs.entry.js +86 -0
  183. package/dist/cjs/af-nav-accordion-item.entry.cjs.js.map +1 -0
  184. package/dist/cjs/af-nav-accordion.cjs.entry.js +82 -0
  185. package/dist/cjs/af-nav-accordion.entry.cjs.js.map +1 -0
  186. package/dist/cjs/af-nav-card.cjs.entry.js +2 -2
  187. package/dist/cjs/af-nav-card.entry.cjs.js.map +1 -1
  188. package/dist/cjs/af-nav-menu-nest.cjs.entry.js +4 -3
  189. package/dist/cjs/af-nav-menu-nest.entry.cjs.js.map +1 -1
  190. package/dist/cjs/af-nav-menu.cjs.entry.js +3 -3
  191. package/dist/cjs/af-nav-menu.entry.cjs.js.map +1 -1
  192. package/dist/cjs/af-number-badge.cjs.entry.js +2 -2
  193. package/dist/cjs/af-progress-line.cjs.entry.js +3 -3
  194. package/dist/cjs/af-radio.cjs.entry.js +15 -6
  195. package/dist/cjs/af-radio.entry.cjs.js.map +1 -1
  196. package/dist/cjs/af-section.cjs.entry.js +4 -4
  197. package/dist/cjs/af-section.entry.cjs.js.map +1 -1
  198. package/dist/cjs/af-show.cjs.entry.js +23 -0
  199. package/dist/cjs/af-show.entry.cjs.js.map +1 -0
  200. package/dist/cjs/af-social-link.cjs.entry.js +2 -2
  201. package/dist/cjs/af-spacer.cjs.entry.js +45 -0
  202. package/dist/cjs/af-spacer.entry.cjs.js.map +1 -0
  203. package/dist/cjs/af-split-section.cjs.entry.js +4 -4
  204. package/dist/cjs/af-split-section.entry.cjs.js.map +1 -1
  205. package/dist/cjs/af-stack.cjs.entry.js +64 -0
  206. package/dist/cjs/af-stack.entry.cjs.js.map +1 -0
  207. package/dist/cjs/af-switch.cjs.entry.js +3 -3
  208. package/dist/cjs/af-switch.entry.cjs.js.map +1 -1
  209. package/dist/cjs/af-tab-bar.cjs.entry.js +2 -2
  210. package/dist/cjs/af-tab.cjs.entry.js +2 -2
  211. package/dist/cjs/af-tag.cjs.entry.js +3 -3
  212. package/dist/cjs/af-testimonial-carousel.cjs.entry.js +2 -2
  213. package/dist/cjs/af-testimonial-stat.cjs.entry.js +2 -2
  214. package/dist/cjs/af-testimonial.cjs.entry.js +3 -3
  215. package/dist/cjs/af-text-image-nest.cjs.entry.js +2 -2
  216. package/dist/cjs/af-text-image.cjs.entry.js +1 -1
  217. package/dist/cjs/af-textarea.cjs.entry.js +3 -3
  218. package/dist/cjs/af-textarea.entry.cjs.js.map +1 -1
  219. package/dist/cjs/af-theme-override.cjs.entry.js +23 -0
  220. package/dist/cjs/af-theme-override.entry.cjs.js.map +1 -0
  221. package/dist/cjs/af-typography-lockup.cjs.entry.js +22 -9
  222. package/dist/cjs/af-typography-lockup.entry.cjs.js.map +1 -1
  223. package/dist/cjs/af-video-container.cjs.entry.js +2 -2
  224. package/dist/cjs/af-visually-hidden.cjs.entry.js +23 -0
  225. package/dist/cjs/af-visually-hidden.entry.cjs.js.map +1 -0
  226. package/dist/cjs/affinda.cjs.js +2 -2
  227. package/dist/cjs/{index-ybEiHT0b.js → index-n-fnurTP.js} +19 -2
  228. package/dist/cjs/index-n-fnurTP.js.map +1 -0
  229. package/dist/cjs/index.cjs.js +1 -1
  230. package/dist/cjs/loader.cjs.js +2 -2
  231. package/dist/collection/collection-manifest.json +14 -2
  232. package/dist/collection/components/af-accordion/af-accordion.css +21 -0
  233. package/dist/collection/components/af-accordion/af-accordion.js +207 -0
  234. package/dist/collection/components/af-accordion/af-accordion.js.map +1 -0
  235. package/dist/collection/components/af-accordion-item/af-accordion-item.css +86 -0
  236. package/dist/collection/components/af-accordion-item/af-accordion-item.js +224 -0
  237. package/dist/collection/components/af-accordion-item/af-accordion-item.js.map +1 -0
  238. package/dist/collection/components/af-button/af-button.js +1 -1
  239. package/dist/collection/components/af-button/af-button.js.map +1 -1
  240. package/dist/collection/components/af-button-group/af-button-group.js +1 -1
  241. package/dist/collection/components/af-card/af-card.css +11 -0
  242. package/dist/collection/components/af-card/af-card.js +1 -1
  243. package/dist/collection/components/af-center/af-center.css +9 -0
  244. package/dist/collection/components/af-center/af-center.js +119 -0
  245. package/dist/collection/components/af-center/af-center.js.map +1 -0
  246. package/dist/collection/components/af-checkbox/af-checkbox.css +31 -18
  247. package/dist/collection/components/af-checkbox/af-checkbox.js +1 -1
  248. package/dist/collection/components/af-client-carousel/af-client-carousel.js +1 -1
  249. package/dist/collection/components/af-contact-item/af-contact-item.js +1 -1
  250. package/dist/collection/components/af-divider/af-divider.css +25 -0
  251. package/dist/collection/components/af-divider/af-divider.js +104 -0
  252. package/dist/collection/components/af-divider/af-divider.js.map +1 -0
  253. package/dist/collection/components/af-feature-accordion/af-feature-accordion.js +2 -2
  254. package/dist/collection/components/af-feature-card/af-feature-card.css +12 -0
  255. package/dist/collection/components/af-feature-grid/af-feature-grid.js +1 -1
  256. package/dist/collection/components/af-fieldset/af-fieldset.css +2 -1
  257. package/dist/collection/components/af-fieldset/af-fieldset.js +1 -1
  258. package/dist/collection/components/af-footer/af-footer.js +1 -1
  259. package/dist/collection/components/af-footer-column/af-footer-column.js +1 -1
  260. package/dist/collection/components/af-footer-link/af-footer-link.js +1 -1
  261. package/dist/collection/components/af-grid/af-grid.css +37 -0
  262. package/dist/collection/components/af-grid/af-grid.js +204 -0
  263. package/dist/collection/components/af-grid/af-grid.js.map +1 -0
  264. package/dist/collection/components/af-heading/af-heading.css +5 -1
  265. package/dist/collection/components/af-heading/af-heading.js +9 -9
  266. package/dist/collection/components/af-heading/af-heading.js.map +1 -1
  267. package/dist/collection/components/af-icon/af-icon.js +1 -1
  268. package/dist/collection/components/af-icon-box/af-icon-box.js +2 -2
  269. package/dist/collection/components/af-icon-text/af-icon-text.js +2 -2
  270. package/dist/collection/components/af-illustrated-card/af-illustrated-card.js +1 -1
  271. package/dist/collection/components/af-image/af-image.js +1 -1
  272. package/dist/collection/components/af-in-page-banner/af-in-page-banner.js +1 -1
  273. package/dist/collection/components/af-inline/af-inline.css +9 -0
  274. package/dist/collection/components/af-inline/af-inline.js +166 -0
  275. package/dist/collection/components/af-inline/af-inline.js.map +1 -0
  276. package/dist/collection/components/af-input/af-input.css +25 -25
  277. package/dist/collection/components/af-input/af-input.js +1 -1
  278. package/dist/collection/components/af-logo/af-logo.css +1 -1
  279. package/dist/collection/components/af-logo/af-logo.js +1 -1
  280. package/dist/collection/components/af-logo-well/af-logo-well.js +1 -1
  281. package/dist/collection/components/af-nav-accordion/af-nav-accordion.css +21 -0
  282. package/dist/collection/components/af-nav-accordion/af-nav-accordion.js +185 -0
  283. package/dist/collection/components/af-nav-accordion/af-nav-accordion.js.map +1 -0
  284. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.css +146 -0
  285. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.js +265 -0
  286. package/dist/collection/components/af-nav-accordion-item/af-nav-accordion-item.js.map +1 -0
  287. package/dist/collection/components/af-nav-card/af-nav-card.js +1 -1
  288. package/dist/collection/components/af-nav-card/af-nav-card.js.map +1 -1
  289. package/dist/collection/components/af-nav-item/af-nav-item.css +21 -15
  290. package/dist/collection/components/af-nav-item/af-nav-item.js +2 -2
  291. package/dist/collection/components/af-nav-item/af-nav-item.js.map +1 -1
  292. package/dist/collection/components/af-nav-menu/af-nav-menu.css +4 -4
  293. package/dist/collection/components/af-nav-menu/af-nav-menu.js +2 -2
  294. package/dist/collection/components/af-nav-menu/af-nav-menu.js.map +1 -1
  295. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.css +5 -5
  296. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.js +3 -2
  297. package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.js.map +1 -1
  298. package/dist/collection/components/af-navbar/af-navbar.css +164 -46
  299. package/dist/collection/components/af-navbar/af-navbar.js +36 -2
  300. package/dist/collection/components/af-navbar/af-navbar.js.map +1 -1
  301. package/dist/collection/components/af-number-badge/af-number-badge.js +1 -1
  302. package/dist/collection/components/af-progress-line/af-progress-line.js +2 -2
  303. package/dist/collection/components/af-radio/af-radio.css +35 -18
  304. package/dist/collection/components/af-radio/af-radio.js +17 -7
  305. package/dist/collection/components/af-radio/af-radio.js.map +1 -1
  306. package/dist/collection/components/af-section/af-section.css +139 -0
  307. package/dist/collection/components/af-section/af-section.js +4 -4
  308. package/dist/collection/components/af-section/af-section.js.map +1 -1
  309. package/dist/collection/components/af-show/af-show.css +78 -0
  310. package/dist/collection/components/af-show/af-show.js +88 -0
  311. package/dist/collection/components/af-show/af-show.js.map +1 -0
  312. package/dist/collection/components/af-social-link/af-social-link.js +1 -1
  313. package/dist/collection/components/af-spacer/af-spacer.css +10 -0
  314. package/dist/collection/components/af-spacer/af-spacer.js +120 -0
  315. package/dist/collection/components/af-spacer/af-spacer.js.map +1 -0
  316. package/dist/collection/components/af-split-section/af-split-section.css +4 -0
  317. package/dist/collection/components/af-split-section/af-split-section.js +4 -4
  318. package/dist/collection/components/af-split-section/af-split-section.js.map +1 -1
  319. package/dist/collection/components/af-stack/af-stack.css +9 -0
  320. package/dist/collection/components/af-stack/af-stack.js +197 -0
  321. package/dist/collection/components/af-stack/af-stack.js.map +1 -0
  322. package/dist/collection/components/af-switch/af-switch.css +15 -9
  323. package/dist/collection/components/af-switch/af-switch.js +1 -1
  324. package/dist/collection/components/af-tab/af-tab.js +1 -1
  325. package/dist/collection/components/af-tab-bar/af-tab-bar.js +1 -1
  326. package/dist/collection/components/af-tag/af-tag.js +2 -2
  327. package/dist/collection/components/af-testimonial/af-testimonial.js +2 -2
  328. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js +1 -1
  329. package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js +1 -1
  330. package/dist/collection/components/af-text/af-text.css +2 -0
  331. package/dist/collection/components/af-text/af-text.js +8 -11
  332. package/dist/collection/components/af-text/af-text.js.map +1 -1
  333. package/dist/collection/components/af-text-image-nest/af-text-image-nest.js +1 -1
  334. package/dist/collection/components/af-textarea/af-textarea.css +22 -21
  335. package/dist/collection/components/af-textarea/af-textarea.js +1 -1
  336. package/dist/collection/components/af-theme-override/af-theme-override.css +376 -0
  337. package/dist/collection/components/af-theme-override/af-theme-override.js +60 -0
  338. package/dist/collection/components/af-theme-override/af-theme-override.js.map +1 -0
  339. package/dist/collection/components/af-typography-lockup/af-typography-lockup.css +57 -20
  340. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js +104 -14
  341. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js.map +1 -1
  342. package/dist/collection/components/af-video-container/af-video-container.js +1 -1
  343. package/dist/collection/components/af-visually-hidden/af-visually-hidden.css +23 -0
  344. package/dist/collection/components/af-visually-hidden/af-visually-hidden.js +57 -0
  345. package/dist/collection/components/af-visually-hidden/af-visually-hidden.js.map +1 -0
  346. package/dist/components/af-accordion-item.d.ts +11 -0
  347. package/dist/components/af-accordion-item.js +133 -0
  348. package/dist/components/af-accordion-item.js.map +1 -0
  349. package/dist/components/{af-hero-section.d.ts → af-accordion.d.ts} +4 -4
  350. package/dist/components/af-accordion.js +128 -0
  351. package/dist/components/af-accordion.js.map +1 -0
  352. package/dist/components/af-button-group.js +1 -1
  353. package/dist/components/af-card.js +1 -1
  354. package/dist/components/af-center.d.ts +11 -0
  355. package/dist/components/af-center.js +66 -0
  356. package/dist/components/af-center.js.map +1 -0
  357. package/dist/components/af-checkbox.js +1 -1
  358. package/dist/components/af-client-carousel.js +1 -1
  359. package/dist/components/af-contact-item.js +1 -1
  360. package/dist/components/af-divider.d.ts +11 -0
  361. package/dist/components/af-divider.js +66 -0
  362. package/dist/components/af-divider.js.map +1 -0
  363. package/dist/components/af-feature-accordion.js +2 -2
  364. package/dist/components/af-feature-card.js +1 -1
  365. package/dist/components/af-feature-grid.js +2 -2
  366. package/dist/components/af-fieldset.js +1 -1
  367. package/dist/components/af-footer-column.js +1 -1
  368. package/dist/components/af-footer-link.js +1 -1
  369. package/dist/components/af-footer.js +1 -1
  370. package/dist/components/af-grid-callout.js +1 -1
  371. package/dist/components/af-grid.d.ts +11 -0
  372. package/dist/components/af-grid.js +71 -0
  373. package/dist/components/af-grid.js.map +1 -0
  374. package/dist/components/af-heading.js +1 -1
  375. package/dist/components/af-icon-box.js +1 -1
  376. package/dist/components/af-icon-text.js +3 -3
  377. package/dist/components/af-illustrated-card.js +1 -1
  378. package/dist/components/af-image.js +1 -1
  379. package/dist/components/af-in-page-banner.js +1 -1
  380. package/dist/components/af-inline.d.ts +11 -0
  381. package/dist/components/af-inline.js +83 -0
  382. package/dist/components/af-inline.js.map +1 -0
  383. package/dist/components/af-input.js +1 -1
  384. package/dist/components/af-logo-well.js +1 -1
  385. package/dist/components/af-logo.js +1 -1
  386. package/dist/components/af-nav-accordion-item.d.ts +11 -0
  387. package/dist/components/af-nav-accordion-item.js +117 -0
  388. package/dist/components/af-nav-accordion-item.js.map +1 -0
  389. package/dist/components/af-nav-accordion.d.ts +11 -0
  390. package/dist/components/af-nav-accordion.js +106 -0
  391. package/dist/components/af-nav-accordion.js.map +1 -0
  392. package/dist/components/af-nav-card.js +2 -3
  393. package/dist/components/af-nav-card.js.map +1 -1
  394. package/dist/components/af-nav-item.js +1 -1
  395. package/dist/components/af-nav-menu-nest.js +4 -4
  396. package/dist/components/af-nav-menu-nest.js.map +1 -1
  397. package/dist/components/af-nav-menu.js +3 -4
  398. package/dist/components/af-nav-menu.js.map +1 -1
  399. package/dist/components/af-navbar.js +1 -1
  400. package/dist/components/af-number-badge.js +1 -1
  401. package/dist/components/af-progress-line.js +1 -1
  402. package/dist/components/af-radio.js +1 -1
  403. package/dist/components/af-section.js +3 -3
  404. package/dist/components/af-section.js.map +1 -1
  405. package/dist/components/af-show.d.ts +11 -0
  406. package/dist/components/af-show.js +46 -0
  407. package/dist/components/af-show.js.map +1 -0
  408. package/dist/components/af-social-link.js +1 -1
  409. package/dist/components/af-spacer.d.ts +11 -0
  410. package/dist/components/af-spacer.js +69 -0
  411. package/dist/components/af-spacer.js.map +1 -0
  412. package/dist/components/af-split-section.js +3 -3
  413. package/dist/components/af-split-section.js.map +1 -1
  414. package/dist/components/af-stack.d.ts +11 -0
  415. package/dist/components/af-stack.js +90 -0
  416. package/dist/components/af-stack.js.map +1 -0
  417. package/dist/components/af-switch.js +1 -1
  418. package/dist/components/af-tab-bar.js +1 -1
  419. package/dist/components/af-tab.js +1 -1
  420. package/dist/components/af-tag.js +1 -1
  421. package/dist/components/af-testimonial-carousel.js +2 -2
  422. package/dist/components/af-testimonial-stat.js +3 -3
  423. package/dist/components/af-testimonial.js +3 -3
  424. package/dist/components/af-text-image-nest.js +1 -1
  425. package/dist/components/af-text-image.js +1 -1
  426. package/dist/components/af-text.js +1 -1
  427. package/dist/components/af-textarea.js +1 -1
  428. package/dist/components/af-theme-override.d.ts +11 -0
  429. package/dist/components/af-theme-override.js +44 -0
  430. package/dist/components/af-theme-override.js.map +1 -0
  431. package/dist/components/af-typography-lockup.js +1 -1
  432. package/dist/components/af-video-container.js +1 -1
  433. package/dist/components/af-visually-hidden.d.ts +11 -0
  434. package/dist/components/af-visually-hidden.js +45 -0
  435. package/dist/components/af-visually-hidden.js.map +1 -0
  436. package/dist/components/index.js +18 -18
  437. package/dist/components/p-B7bjlUCu.js +94 -0
  438. package/dist/components/p-B7bjlUCu.js.map +1 -0
  439. package/dist/components/p-BBVslKpK.js +59 -0
  440. package/dist/components/p-BBVslKpK.js.map +1 -0
  441. package/dist/components/{p-DZ-qivXD.js → p-BUoRUEpQ.js} +3 -3
  442. package/dist/components/{p-DZ-qivXD.js.map → p-BUoRUEpQ.js.map} +1 -1
  443. package/dist/components/p-BXcRGkhD.js +94 -0
  444. package/dist/components/p-BXcRGkhD.js.map +1 -0
  445. package/dist/components/{p-Cqp0DdgH.js → p-Bi5ytUXg.js} +4 -4
  446. package/dist/components/{p-Cqp0DdgH.js.map → p-Bi5ytUXg.js.map} +1 -1
  447. package/dist/components/{p-xDRMXxWJ.js → p-BvIMp8pz.js} +3 -3
  448. package/dist/components/{p-xDRMXxWJ.js.map → p-BvIMp8pz.js.map} +1 -1
  449. package/dist/components/{p-Dvi1lz3x.js → p-C8_mFdv5.js} +4 -4
  450. package/dist/components/{p-Dvi1lz3x.js.map → p-C8_mFdv5.js.map} +1 -1
  451. package/dist/components/{p-ByHIHg3l.js → p-CAYG3IzP.js} +3 -3
  452. package/dist/components/{p-ByHIHg3l.js.map → p-CAYG3IzP.js.map} +1 -1
  453. package/dist/components/{p-D99aXp3U.js → p-CLmCtN_R.js} +4 -4
  454. package/dist/components/p-CLmCtN_R.js.map +1 -0
  455. package/dist/components/p-CUSad8vm.js +74 -0
  456. package/dist/components/p-CUSad8vm.js.map +1 -0
  457. package/dist/components/p-C_B4CNrh.js +94 -0
  458. package/dist/components/p-C_B4CNrh.js.map +1 -0
  459. package/dist/components/p-ChgW4Hec.js +100 -0
  460. package/dist/components/p-ChgW4Hec.js.map +1 -0
  461. package/dist/components/{p-CCAq3Zj6.js → p-CnNV1GZE.js} +5 -5
  462. package/dist/components/{p-CCAq3Zj6.js.map → p-CnNV1GZE.js.map} +1 -1
  463. package/dist/components/p-CxngDK-N.js.map +1 -1
  464. package/dist/components/{p-wwnR-hlX.js → p-D66k2SSB.js} +4 -4
  465. package/dist/components/{p-wwnR-hlX.js.map → p-D66k2SSB.js.map} +1 -1
  466. package/dist/components/p-DBnL9UHx.js.map +1 -1
  467. package/dist/components/{p-DOkvrcIE.js → p-DReSTue0.js} +6 -8
  468. package/dist/components/p-DReSTue0.js.map +1 -0
  469. package/dist/components/p-DUQu3N38.js +70 -0
  470. package/dist/components/p-DUQu3N38.js.map +1 -0
  471. package/dist/components/{p-DhdRcSve.js → p-DZ6UMG8G.js} +3 -3
  472. package/dist/components/{p-DhdRcSve.js.map → p-DZ6UMG8G.js.map} +1 -1
  473. package/dist/components/p-Dd7Lt2QL.js +81 -0
  474. package/dist/components/p-Dd7Lt2QL.js.map +1 -0
  475. package/dist/components/p-DkvJiyn0.js +73 -0
  476. package/dist/components/p-DkvJiyn0.js.map +1 -0
  477. package/dist/components/{p-C0f6y_zg.js → p-Dt2AsNUz.js} +5 -5
  478. package/dist/components/p-Dt2AsNUz.js.map +1 -0
  479. package/dist/components/p-Dvo_cxk-.js +141 -0
  480. package/dist/components/p-Dvo_cxk-.js.map +1 -0
  481. package/dist/components/{p-CZyCImor.js → p-Dwhi37rN.js} +4 -4
  482. package/dist/components/p-Dwhi37rN.js.map +1 -0
  483. package/dist/components/p-WmKa3rDn.js +94 -0
  484. package/dist/components/p-WmKa3rDn.js.map +1 -0
  485. package/dist/components/{p-l95vl6T1.js → p-Ws-qvw9w.js} +3 -3
  486. package/dist/components/{p-l95vl6T1.js.map → p-Ws-qvw9w.js.map} +1 -1
  487. package/dist/components/p-hOnulRmz.js +84 -0
  488. package/dist/components/p-hOnulRmz.js.map +1 -0
  489. package/dist/components/p-nwZ2iAi9.js +100 -0
  490. package/dist/components/p-nwZ2iAi9.js.map +1 -0
  491. package/dist/components/p-pDs2K2nD.js +100 -0
  492. package/dist/components/p-pDs2K2nD.js.map +1 -0
  493. package/dist/components/{p-BRsO61_R.js → p-zDoPXonz.js} +4 -4
  494. package/dist/components/p-zDoPXonz.js.map +1 -0
  495. package/dist/esm/af-accordion-item.entry.js +103 -0
  496. package/dist/esm/af-accordion-item.entry.js.map +1 -0
  497. package/dist/esm/af-accordion.entry.js +100 -0
  498. package/dist/esm/af-accordion.entry.js.map +1 -0
  499. package/dist/esm/af-aspect-ratio.entry.js +1 -1
  500. package/dist/esm/af-button-group.entry.js +2 -2
  501. package/dist/esm/af-button.entry.js +1 -1
  502. package/dist/esm/af-button.entry.js.map +1 -1
  503. package/dist/esm/af-card.entry.js +3 -3
  504. package/dist/esm/af-card.entry.js.map +1 -1
  505. package/dist/esm/af-center.entry.js +40 -0
  506. package/dist/esm/af-center.entry.js.map +1 -0
  507. package/dist/esm/af-checkbox.entry.js +3 -3
  508. package/dist/esm/af-checkbox.entry.js.map +1 -1
  509. package/dist/esm/af-client-carousel.entry.js +2 -2
  510. package/dist/esm/af-color-swatch.entry.js +1 -1
  511. package/dist/esm/af-contact-item.entry.js +2 -2
  512. package/dist/esm/af-container.entry.js +1 -1
  513. package/dist/esm/af-divider.entry.js +41 -0
  514. package/dist/esm/af-divider.entry.js.map +1 -0
  515. package/dist/esm/af-feature-accordion.entry.js +3 -3
  516. package/dist/esm/af-feature-card.entry.js +2 -2
  517. package/dist/esm/af-feature-card.entry.js.map +1 -1
  518. package/dist/esm/af-feature-grid.entry.js +2 -2
  519. package/dist/esm/af-fieldset.entry.js +3 -3
  520. package/dist/esm/af-fieldset.entry.js.map +1 -1
  521. package/dist/esm/af-footer-column.entry.js +2 -2
  522. package/dist/esm/af-footer-link.entry.js +2 -2
  523. package/dist/esm/af-footer.entry.js +2 -2
  524. package/dist/esm/af-grid-callout.entry.js +1 -1
  525. package/dist/esm/af-grid.entry.js +42 -0
  526. package/dist/esm/af-grid.entry.js.map +1 -0
  527. package/dist/esm/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js.map +1 -1
  528. package/dist/esm/af-heading_5.entry.js +17 -17
  529. package/dist/esm/af-icon-box.entry.js +2 -2
  530. package/dist/esm/af-icon-button.entry.js +1 -1
  531. package/dist/esm/af-icon-text.entry.js +2 -2
  532. package/dist/esm/af-icon.entry.js +1 -1
  533. package/dist/esm/af-illustrated-card.entry.js +2 -2
  534. package/dist/esm/af-image.entry.js +2 -2
  535. package/dist/esm/af-in-page-banner.entry.js +2 -2
  536. package/dist/esm/af-inline.entry.js +56 -0
  537. package/dist/esm/af-inline.entry.js.map +1 -0
  538. package/dist/esm/af-input.entry.js +3 -3
  539. package/dist/esm/af-input.entry.js.map +1 -1
  540. package/dist/esm/af-logo-well.entry.js +2 -2
  541. package/dist/esm/af-nav-accordion-item.entry.js +84 -0
  542. package/dist/esm/af-nav-accordion-item.entry.js.map +1 -0
  543. package/dist/esm/af-nav-accordion.entry.js +80 -0
  544. package/dist/esm/af-nav-accordion.entry.js.map +1 -0
  545. package/dist/esm/af-nav-card.entry.js +2 -2
  546. package/dist/esm/af-nav-card.entry.js.map +1 -1
  547. package/dist/esm/af-nav-menu-nest.entry.js +4 -3
  548. package/dist/esm/af-nav-menu-nest.entry.js.map +1 -1
  549. package/dist/esm/af-nav-menu.entry.js +3 -3
  550. package/dist/esm/af-nav-menu.entry.js.map +1 -1
  551. package/dist/esm/af-number-badge.entry.js +2 -2
  552. package/dist/esm/af-progress-line.entry.js +3 -3
  553. package/dist/esm/af-radio.entry.js +15 -6
  554. package/dist/esm/af-radio.entry.js.map +1 -1
  555. package/dist/esm/af-section.entry.js +4 -4
  556. package/dist/esm/af-section.entry.js.map +1 -1
  557. package/dist/esm/af-show.entry.js +21 -0
  558. package/dist/esm/af-show.entry.js.map +1 -0
  559. package/dist/esm/af-social-link.entry.js +2 -2
  560. package/dist/esm/af-spacer.entry.js +43 -0
  561. package/dist/esm/af-spacer.entry.js.map +1 -0
  562. package/dist/esm/af-split-section.entry.js +4 -4
  563. package/dist/esm/af-split-section.entry.js.map +1 -1
  564. package/dist/esm/af-stack.entry.js +62 -0
  565. package/dist/esm/af-stack.entry.js.map +1 -0
  566. package/dist/esm/af-switch.entry.js +3 -3
  567. package/dist/esm/af-switch.entry.js.map +1 -1
  568. package/dist/esm/af-tab-bar.entry.js +2 -2
  569. package/dist/esm/af-tab.entry.js +2 -2
  570. package/dist/esm/af-tag.entry.js +3 -3
  571. package/dist/esm/af-testimonial-carousel.entry.js +2 -2
  572. package/dist/esm/af-testimonial-stat.entry.js +2 -2
  573. package/dist/esm/af-testimonial.entry.js +3 -3
  574. package/dist/esm/af-text-image-nest.entry.js +2 -2
  575. package/dist/esm/af-text-image.entry.js +1 -1
  576. package/dist/esm/af-textarea.entry.js +3 -3
  577. package/dist/esm/af-textarea.entry.js.map +1 -1
  578. package/dist/esm/af-theme-override.entry.js +21 -0
  579. package/dist/esm/af-theme-override.entry.js.map +1 -0
  580. package/dist/esm/af-typography-lockup.entry.js +22 -9
  581. package/dist/esm/af-typography-lockup.entry.js.map +1 -1
  582. package/dist/esm/af-video-container.entry.js +2 -2
  583. package/dist/esm/af-visually-hidden.entry.js +21 -0
  584. package/dist/esm/af-visually-hidden.entry.js.map +1 -0
  585. package/dist/esm/affinda.js +3 -3
  586. package/dist/esm/{index-BmU_CFQ4.js → index-B0LVveHp.js} +19 -2
  587. package/dist/esm/index-B0LVveHp.js.map +1 -0
  588. package/dist/esm/index.js +1 -1
  589. package/dist/esm/loader.js +3 -3
  590. package/dist/types/components/af-accordion/af-accordion.d.ts +55 -0
  591. package/dist/types/components/af-accordion-item/af-accordion-item.d.ts +44 -0
  592. package/dist/types/components/af-button/af-button.d.ts +1 -1
  593. package/dist/types/components/af-center/af-center.d.ts +28 -0
  594. package/dist/types/components/af-divider/af-divider.d.ts +20 -0
  595. package/dist/types/components/af-grid/af-grid.d.ts +38 -0
  596. package/dist/types/components/af-heading/af-heading.d.ts +3 -3
  597. package/dist/types/components/af-inline/af-inline.d.ts +30 -0
  598. package/dist/types/components/af-nav-accordion/af-nav-accordion.d.ts +45 -0
  599. package/dist/types/components/af-nav-accordion-item/af-nav-accordion-item.d.ts +57 -0
  600. package/dist/types/components/af-navbar/af-navbar.d.ts +14 -0
  601. package/dist/types/components/af-radio/af-radio.d.ts +4 -1
  602. package/dist/types/components/af-section/af-section.d.ts +1 -1
  603. package/dist/types/components/af-show/af-show.d.ts +27 -0
  604. package/dist/types/components/af-spacer/af-spacer.d.ts +29 -0
  605. package/dist/types/components/af-split-section/af-split-section.d.ts +1 -1
  606. package/dist/types/components/af-stack/af-stack.d.ts +37 -0
  607. package/dist/types/components/af-text/af-text.d.ts +3 -3
  608. package/dist/types/components/af-theme-override/af-theme-override.d.ts +18 -0
  609. package/dist/types/components/af-typography-lockup/af-typography-lockup.d.ts +19 -4
  610. package/dist/types/components/af-visually-hidden/af-visually-hidden.d.ts +15 -0
  611. package/dist/types/components.d.ts +1006 -138
  612. package/package.json +6 -6
  613. package/dist/affinda/af-hero-section.entry.esm.js.map +0 -1
  614. package/dist/affinda/p-231ba1d0.entry.js +0 -2
  615. package/dist/affinda/p-3f691578.entry.js +0 -2
  616. package/dist/affinda/p-3f691578.entry.js.map +0 -1
  617. package/dist/affinda/p-53ae16fe.entry.js +0 -2
  618. package/dist/affinda/p-53b5149d.entry.js +0 -2
  619. package/dist/affinda/p-53b5149d.entry.js.map +0 -1
  620. package/dist/affinda/p-57713942.entry.js +0 -2
  621. package/dist/affinda/p-57713942.entry.js.map +0 -1
  622. package/dist/affinda/p-697bf0b7.entry.js +0 -2
  623. package/dist/affinda/p-6b2d0ff4.entry.js +0 -2
  624. package/dist/affinda/p-72f02343.entry.js +0 -2
  625. package/dist/affinda/p-7f20fbe0.entry.js +0 -2
  626. package/dist/affinda/p-864778d0.entry.js +0 -2
  627. package/dist/affinda/p-98901734.entry.js +0 -2
  628. package/dist/affinda/p-9f470d8b.entry.js +0 -2
  629. package/dist/affinda/p-9f470d8b.entry.js.map +0 -1
  630. package/dist/affinda/p-BmU_CFQ4.js.map +0 -1
  631. package/dist/affinda/p-aaa28806.entry.js +0 -2
  632. package/dist/affinda/p-aaa28806.entry.js.map +0 -1
  633. package/dist/affinda/p-be049760.entry.js +0 -2
  634. package/dist/affinda/p-c0ee2420.entry.js +0 -2
  635. package/dist/affinda/p-c298b370.entry.js +0 -2
  636. package/dist/affinda/p-c3e31251.entry.js +0 -2
  637. package/dist/affinda/p-ce3356f1.entry.js +0 -2
  638. package/dist/affinda/p-df148383.entry.js +0 -2
  639. package/dist/affinda/p-df148383.entry.js.map +0 -1
  640. package/dist/affinda/p-ea06c83b.entry.js +0 -2
  641. package/dist/cjs/af-hero-section.cjs.entry.js +0 -30
  642. package/dist/cjs/af-hero-section.entry.cjs.js.map +0 -1
  643. package/dist/cjs/index-ybEiHT0b.js.map +0 -1
  644. package/dist/collection/components/af-hero-section/af-hero-section.css +0 -175
  645. package/dist/collection/components/af-hero-section/af-hero-section.js +0 -186
  646. package/dist/collection/components/af-hero-section/af-hero-section.js.map +0 -1
  647. package/dist/components/af-hero-section.js +0 -69
  648. package/dist/components/af-hero-section.js.map +0 -1
  649. package/dist/components/p-BMp8QbY-.js +0 -68
  650. package/dist/components/p-BMp8QbY-.js.map +0 -1
  651. package/dist/components/p-BRN73McC.js +0 -59
  652. package/dist/components/p-BRN73McC.js.map +0 -1
  653. package/dist/components/p-BRsO61_R.js.map +0 -1
  654. package/dist/components/p-Bh4YP9vE.js +0 -74
  655. package/dist/components/p-Bh4YP9vE.js.map +0 -1
  656. package/dist/components/p-Br0VERLB.js +0 -81
  657. package/dist/components/p-Br0VERLB.js.map +0 -1
  658. package/dist/components/p-C0f6y_zg.js.map +0 -1
  659. package/dist/components/p-CZyCImor.js.map +0 -1
  660. package/dist/components/p-C_M8AOaj.js +0 -65
  661. package/dist/components/p-C_M8AOaj.js.map +0 -1
  662. package/dist/components/p-D99aXp3U.js.map +0 -1
  663. package/dist/components/p-DOkvrcIE.js.map +0 -1
  664. package/dist/components/p-DW5DrJlQ.js +0 -70
  665. package/dist/components/p-DW5DrJlQ.js.map +0 -1
  666. package/dist/components/p-DzkSL2bi.js +0 -141
  667. package/dist/components/p-DzkSL2bi.js.map +0 -1
  668. package/dist/components/p-_bQXTXUb.js +0 -98
  669. package/dist/components/p-_bQXTXUb.js.map +0 -1
  670. package/dist/esm/af-hero-section.entry.js +0 -28
  671. package/dist/esm/af-hero-section.entry.js.map +0 -1
  672. package/dist/esm/index-BmU_CFQ4.js.map +0 -1
  673. package/dist/types/components/af-hero-section/af-hero-section.d.ts +0 -27
  674. /package/dist/affinda/{p-acbbe39a.entry.js.map → p-01993cc8.entry.js.map} +0 -0
  675. /package/dist/affinda/{p-a4e4eb4d.entry.js.map → p-04de9a0a.entry.js.map} +0 -0
  676. /package/dist/affinda/{p-a6365e94.entry.js.map → p-080cf84f.entry.js.map} +0 -0
  677. /package/dist/affinda/{p-b3b0ed0c.entry.js.map → p-0b5bc045.entry.js.map} +0 -0
  678. /package/dist/affinda/{p-2b4dc22c.entry.js.map → p-16f808d5.entry.js.map} +0 -0
  679. /package/dist/affinda/{p-52ab3bf0.entry.js.map → p-19eb7cb9.entry.js.map} +0 -0
  680. /package/dist/affinda/{p-1d65fd18.entry.js.map → p-2e750d43.entry.js.map} +0 -0
  681. /package/dist/affinda/{p-861f4f57.entry.js.map → p-331f9627.entry.js.map} +0 -0
  682. /package/dist/affinda/{p-77bf8a81.entry.js.map → p-3d2fb635.entry.js.map} +0 -0
  683. /package/dist/affinda/{p-e5af21c2.entry.js.map → p-3e16bb11.entry.js.map} +0 -0
  684. /package/dist/affinda/{p-f45b0060.entry.js.map → p-63314e14.entry.js.map} +0 -0
  685. /package/dist/affinda/{p-45e1923c.entry.js.map → p-68f1f661.entry.js.map} +0 -0
  686. /package/dist/affinda/{p-b17735c9.entry.js.map → p-6af1634a.entry.js.map} +0 -0
  687. /package/dist/affinda/{p-8ea22b5d.entry.js.map → p-7792cd53.entry.js.map} +0 -0
  688. /package/dist/affinda/{p-85a78bcf.entry.js.map → p-8f24dfe3.entry.js.map} +0 -0
  689. /package/dist/affinda/{p-44b25840.entry.js.map → p-920e6d30.entry.js.map} +0 -0
  690. /package/dist/affinda/{p-10801ee1.entry.js.map → p-96df0106.entry.js.map} +0 -0
  691. /package/dist/affinda/{p-a36abb83.entry.js.map → p-9e21b6c1.entry.js.map} +0 -0
  692. /package/dist/affinda/{p-c11088fa.entry.js.map → p-a2c71cad.entry.js.map} +0 -0
  693. /package/dist/affinda/{p-96eac3af.entry.js.map → p-adacb8c4.entry.js.map} +0 -0
  694. /package/dist/affinda/{p-e5d9913c.entry.js.map → p-b10103f4.entry.js.map} +0 -0
  695. /package/dist/affinda/{p-1d9e532f.entry.js.map → p-bd7170d7.entry.js.map} +0 -0
  696. /package/dist/affinda/{p-0cd160a4.entry.js.map → p-cc4e73dc.entry.js.map} +0 -0
  697. /package/dist/affinda/{p-3d3c9f62.entry.js.map → p-d51c4b1b.entry.js.map} +0 -0
  698. /package/dist/affinda/{p-53ae16fe.entry.js.map → p-d6e55455.entry.js.map} +0 -0
  699. /package/dist/affinda/{p-81571029.entry.js.map → p-d90366f6.entry.js.map} +0 -0
  700. /package/dist/affinda/{p-31d4c1a4.entry.js.map → p-db9249e4.entry.js.map} +0 -0
  701. /package/dist/affinda/{p-5bbf2c8c.entry.js.map → p-e305c2b7.entry.js.map} +0 -0
  702. /package/dist/affinda/{p-71144002.entry.js.map → p-e7d8d909.entry.js.map} +0 -0
  703. /package/dist/affinda/{p-425253ee.entry.js.map → p-f7a13cd3.entry.js.map} +0 -0
  704. /package/dist/affinda/{p-72f02343.entry.js.map → p-fd772813.entry.js.map} +0 -0
  705. /package/dist/affinda/{p-6b2d0ff4.entry.js.map → p-fefe9597.entry.js.map} +0 -0
@@ -0,0 +1,84 @@
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-CxngDK-N.js';
2
+
3
+ const afTypographyLockupCss = ":host{display:block}.lockup{display:flex;flex-direction:column}.breakpoint-desktop.heading-1.lockup{gap:var(--space-6, 24px)}.breakpoint-mobile.heading-1.lockup{gap:var(--space-5, 20px)}.breakpoint-desktop.heading-2.lockup,.breakpoint-desktop.heading-3.lockup{gap:var(--space-4, 16px)}.breakpoint-mobile.heading-2.lockup{gap:var(--space-4, 16px)}.breakpoint-mobile.heading-3.lockup,.breakpoint-desktop.heading-4.lockup,.breakpoint-desktop.heading-5.lockup{gap:var(--space-3, 12px)}.breakpoint-mobile.heading-4.lockup,.breakpoint-mobile.heading-5.lockup{gap:var(--space-2, 8px)}.text-left{align-items:flex-start}.text-center{align-items:center}.text-right{align-items:flex-end}.text-justify{align-items:stretch}.align-left{text-align:left;--af-text-align:left}.align-center{text-align:center;--af-text-align:center}.align-right{text-align:right;--af-text-align:right}.align-justify{text-align:justify;--af-text-align:justify}.copy{display:flex;flex-direction:column;width:100%;max-width:840px}.breakpoint-desktop.heading-1 .copy{gap:var(--space-6, 24px)}.breakpoint-mobile.heading-1 .copy{gap:var(--space-5, 20px)}.breakpoint-desktop.heading-2 .copy,.breakpoint-desktop.heading-3 .copy{gap:var(--space-4, 16px)}.breakpoint-mobile.heading-2 .copy{gap:var(--space-4, 16px)}.breakpoint-mobile.heading-3 .copy,.breakpoint-desktop.heading-4 .copy,.breakpoint-desktop.heading-5 .copy{gap:var(--space-3, 12px)}.breakpoint-mobile.heading-4 .copy,.breakpoint-mobile.heading-5 .copy{gap:var(--space-2, 8px)}.heading{font-family:var(--typography-headingfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-book, 500);color:var(--af-typography-heading-primary, var(--colour-typography-heading-primary, #14343B));line-height:var(--line-height-heading-tight, 1);letter-spacing:var(--letter-spacing-heading, -0.02em);white-space:pre-wrap}.breakpoint-desktop.heading-1 .heading{font-size:var(--font-size-heading-1-desktop, 56px)}.breakpoint-desktop.heading-2 .heading{font-size:var(--font-size-heading-2-desktop, 44px)}.breakpoint-desktop.heading-3 .heading{font-size:var(--font-size-heading-3-desktop, 34px)}.breakpoint-desktop.heading-4 .heading{font-size:var(--font-size-heading-4-desktop, 24px);line-height:var(--line-height-heading-relaxed, 1.2)}.breakpoint-desktop.heading-5 .heading{font-size:var(--font-size-heading-5-desktop, 20px);line-height:var(--line-height-heading-relaxed, 1.2)}.breakpoint-mobile.heading-1 .heading{font-size:var(--font-size-heading-1-mobile, 38px)}.breakpoint-mobile.heading-2 .heading{font-size:var(--font-size-heading-2-mobile, 32px)}.breakpoint-mobile.heading-3 .heading{font-size:var(--font-size-heading-3-mobile, 25px)}.breakpoint-mobile.heading-4 .heading{font-size:var(--font-size-heading-4-mobile, 20px);line-height:var(--line-height-heading-normal, 1.1)}.breakpoint-mobile.heading-5 .heading{font-size:var(--font-size-heading-5-mobile, 18px);line-height:var(--line-height-heading-normal, 1.1)}.description{font-family:var(--typography-bodyfont, 'NeuSans', sans-serif);font-size:var(--font-size-body-large, 18px);font-weight:var(--font-weight-regular, 400);line-height:var(--line-height-body-large, 26px);color:var(--af-typography-body-default, var(--colour-typography-body-default, #2B484F));white-space:pre-wrap}.breakpoint-mobile.heading-3 .description,.breakpoint-desktop.heading-4 .description,.breakpoint-mobile.heading-4 .description,.breakpoint-desktop.heading-5 .description,.breakpoint-mobile.heading-5 .description{font-size:var(--font-size-body-medium, 16px);line-height:var(--line-height-body-medium, 24px)}.description:empty{display:none}.buttons{display:flex;flex-direction:row;gap:var(--space-3, 12px)}.buttons:empty{display:none}.layout-horizontal .buttons{align-items:center}.text-left.layout-horizontal{flex-direction:row;align-items:center;gap:var(--space-4, 16px)}.text-left.layout-horizontal .copy{flex:1 0 0;max-width:950px}.text-left.layout-horizontal.heading-3 .copy,.text-left.layout-horizontal.heading-4 .copy{max-width:840px}.text-left.layout-horizontal .buttons{flex-shrink:0}.layout-vertical .buttons{align-items:flex-start}.buttons.align-left{justify-content:flex-start}.buttons.align-center{justify-content:center}.buttons.align-right{justify-content:flex-end}.buttons.align-justify{justify-content:space-between}.breakpoint-mobile .buttons{flex-direction:column;align-items:stretch}.breakpoint-mobile .buttons.align-center{align-items:center}.breakpoint-mobile .buttons.align-right{align-items:flex-end}.breakpoint-mobile .buttons.align-left{align-items:flex-start}.text-center .copy{max-width:840px}::slotted(*){margin:0}";
4
+
5
+ const AfTypographyLockup = /*@__PURE__*/ proxyCustomElement(class AfTypographyLockup extends H {
6
+ constructor(registerHost) {
7
+ super();
8
+ if (registerHost !== false) {
9
+ this.__registerHost();
10
+ }
11
+ this.__attachShadow();
12
+ /**
13
+ * The heading size (1-5, where 1 is largest)
14
+ */
15
+ this.headingSize = 2;
16
+ /**
17
+ * The breakpoint for responsive typography
18
+ */
19
+ this.breakpoint = 'desktop';
20
+ /**
21
+ * Text alignment for the entire lockup (heading and description).
22
+ * Can be overridden individually with headingAlignment and descriptionAlignment.
23
+ */
24
+ this.textAlignment = 'left';
25
+ /**
26
+ * Button layout direction (horizontal or vertical stacking)
27
+ */
28
+ this.buttonLayout = 'vertical';
29
+ }
30
+ render() {
31
+ const effectiveHeadingAlignment = this.headingAlignment ?? this.textAlignment;
32
+ const effectiveDescriptionAlignment = this.descriptionAlignment ?? this.textAlignment;
33
+ const effectiveButtonsAlignment = this.buttonsAlignment ?? this.textAlignment;
34
+ const containerClasses = {
35
+ 'lockup': true,
36
+ [`text-${this.textAlignment}`]: true,
37
+ [`layout-${this.buttonLayout}`]: true,
38
+ [`heading-${this.headingSize}`]: true,
39
+ [`breakpoint-${this.breakpoint}`]: true
40
+ };
41
+ const headingClasses = {
42
+ 'heading': true,
43
+ [`align-${effectiveHeadingAlignment}`]: true
44
+ };
45
+ const descriptionClasses = {
46
+ 'description': true,
47
+ [`align-${effectiveDescriptionAlignment}`]: true
48
+ };
49
+ const buttonsClasses = {
50
+ 'buttons': true,
51
+ [`align-${effectiveButtonsAlignment}`]: true
52
+ };
53
+ const copyStyle = this.maxWidth ? { maxWidth: `${this.maxWidth}px` } : {};
54
+ return (h(Host, { key: '8cb507e162ef7a2bca263b7fecb7ef480382e615' }, h("div", { key: '94106d59d250a47ca21c15f2e8cb5c1bef7a3936', class: containerClasses }, h("div", { key: 'f465704d4f7b1bf77611e32958674a6093813abc', class: "copy", style: copyStyle }, h("div", { key: 'd4bcad644d1194c2ecfa593bf9b6a6f185e4a7c2', class: headingClasses, part: "heading" }, h("slot", { key: '97558da091bfc3b63cf57ec0816eb3b952cb201a' })), h("div", { key: 'c0839f719f0165ecaa296bb0be321a2d8c482e87', class: descriptionClasses, part: "body" }, h("slot", { key: '946a5ff890fb09144fee49687fb9de83f45c7aac', name: "description" }))), h("div", { key: '6f06d69183d006be1031eb1f73164f10811df9b1', class: buttonsClasses, part: "buttons" }, h("slot", { key: '253ba8fada86b55b5516d4dd8732aa19dfeda620', name: "buttons" })))));
55
+ }
56
+ static get style() { return afTypographyLockupCss; }
57
+ }, [257, "af-typography-lockup", {
58
+ "headingSize": [2, "heading-size"],
59
+ "breakpoint": [1],
60
+ "textAlignment": [1, "text-alignment"],
61
+ "headingAlignment": [1, "heading-alignment"],
62
+ "descriptionAlignment": [1, "description-alignment"],
63
+ "buttonLayout": [1, "button-layout"],
64
+ "buttonsAlignment": [1, "buttons-alignment"],
65
+ "maxWidth": [2, "max-width"]
66
+ }]);
67
+ function defineCustomElement() {
68
+ if (typeof customElements === "undefined") {
69
+ return;
70
+ }
71
+ const components = ["af-typography-lockup"];
72
+ components.forEach(tagName => { switch (tagName) {
73
+ case "af-typography-lockup":
74
+ if (!customElements.get(tagName)) {
75
+ customElements.define(tagName, AfTypographyLockup);
76
+ }
77
+ break;
78
+ } });
79
+ }
80
+
81
+ export { AfTypographyLockup as A, defineCustomElement as d };
82
+ //# sourceMappingURL=p-hOnulRmz.js.map
83
+
84
+ //# sourceMappingURL=p-hOnulRmz.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-hOnulRmz.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-typography-lockup/af-typography-lockup.css?tag=af-typography-lockup&encapsulation=shadow","src/components/af-typography-lockup/af-typography-lockup.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.lockup {\n display: flex;\n flex-direction: column;\n}\n\n/* Lockup gap variations (between copy and buttons) - matches copy internal gap */\n/* Heading 1 desktop: 24px gap */\n.breakpoint-desktop.heading-1.lockup {\n gap: var(--space-6, 24px);\n}\n\n/* Heading 1 mobile: 20px gap */\n.breakpoint-mobile.heading-1.lockup {\n gap: var(--space-5, 20px);\n}\n\n/* Heading 2, 3 desktop: 16px gap */\n.breakpoint-desktop.heading-2.lockup,\n.breakpoint-desktop.heading-3.lockup {\n gap: var(--space-4, 16px);\n}\n\n/* Heading 2 mobile: 16px gap */\n.breakpoint-mobile.heading-2.lockup {\n gap: var(--space-4, 16px);\n}\n\n/* Heading 3 mobile, 4 desktop, 5 desktop: 12px gap */\n.breakpoint-mobile.heading-3.lockup,\n.breakpoint-desktop.heading-4.lockup,\n.breakpoint-desktop.heading-5.lockup {\n gap: var(--space-3, 12px);\n}\n\n/* Heading 4 mobile, 5 mobile: 8px gap */\n.breakpoint-mobile.heading-4.lockup,\n.breakpoint-mobile.heading-5.lockup {\n gap: var(--space-2, 8px);\n}\n\n/* Container alignment (affects flexbox positioning) */\n.text-left {\n align-items: flex-start;\n}\n\n.text-center {\n align-items: center;\n}\n\n.text-right {\n align-items: flex-end;\n}\n\n.text-justify {\n align-items: stretch;\n}\n\n/* Individual text alignment classes */\n.align-left {\n text-align: left;\n --af-text-align: left;\n}\n\n.align-center {\n text-align: center;\n --af-text-align: center;\n}\n\n.align-right {\n text-align: right;\n --af-text-align: right;\n}\n\n.align-justify {\n text-align: justify;\n --af-text-align: justify;\n}\n\n/* Copy section - base styles */\n.copy {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-width: 840px;\n}\n\n/* Copy gap variations based on heading size and breakpoint */\n/* Heading 1 desktop: 24px gap */\n.breakpoint-desktop.heading-1 .copy {\n gap: var(--space-6, 24px);\n}\n\n/* Heading 1 mobile: 20px gap */\n.breakpoint-mobile.heading-1 .copy {\n gap: var(--space-5, 20px);\n}\n\n/* Heading 2, 3 desktop: 16px gap */\n.breakpoint-desktop.heading-2 .copy,\n.breakpoint-desktop.heading-3 .copy {\n gap: var(--space-4, 16px);\n}\n\n/* Heading 2 mobile: 16px gap */\n.breakpoint-mobile.heading-2 .copy {\n gap: var(--space-4, 16px);\n}\n\n/* Heading 3 mobile, 4 desktop, 5 desktop: 12px gap */\n.breakpoint-mobile.heading-3 .copy,\n.breakpoint-desktop.heading-4 .copy,\n.breakpoint-desktop.heading-5 .copy {\n gap: var(--space-3, 12px);\n}\n\n/* Heading 4 mobile, 5 mobile: 8px gap */\n.breakpoint-mobile.heading-4 .copy,\n.breakpoint-mobile.heading-5 .copy {\n gap: var(--space-2, 8px);\n}\n\n/* Heading styles */\n.heading {\n font-family: var(--typography-headingfont, 'NeuSans', sans-serif);\n font-weight: var(--font-weight-book, 500);\n color: var(--af-typography-heading-primary, var(--colour-typography-heading-primary, #14343B));\n line-height: var(--line-height-heading-tight, 1);\n letter-spacing: var(--letter-spacing-heading, -0.02em);\n white-space: pre-wrap;\n}\n\n/* Desktop heading sizes */\n.breakpoint-desktop.heading-1 .heading {\n font-size: var(--font-size-heading-1-desktop, 56px);\n}\n\n.breakpoint-desktop.heading-2 .heading {\n font-size: var(--font-size-heading-2-desktop, 44px);\n}\n\n.breakpoint-desktop.heading-3 .heading {\n font-size: var(--font-size-heading-3-desktop, 34px);\n}\n\n.breakpoint-desktop.heading-4 .heading {\n font-size: var(--font-size-heading-4-desktop, 24px);\n line-height: var(--line-height-heading-relaxed, 1.2);\n}\n\n.breakpoint-desktop.heading-5 .heading {\n font-size: var(--font-size-heading-5-desktop, 20px);\n line-height: var(--line-height-heading-relaxed, 1.2);\n}\n\n/* Mobile heading sizes */\n.breakpoint-mobile.heading-1 .heading {\n font-size: var(--font-size-heading-1-mobile, 38px);\n}\n\n.breakpoint-mobile.heading-2 .heading {\n font-size: var(--font-size-heading-2-mobile, 32px);\n}\n\n.breakpoint-mobile.heading-3 .heading {\n font-size: var(--font-size-heading-3-mobile, 25px);\n}\n\n.breakpoint-mobile.heading-4 .heading {\n font-size: var(--font-size-heading-4-mobile, 20px);\n line-height: var(--line-height-heading-normal, 1.1);\n}\n\n.breakpoint-mobile.heading-5 .heading {\n font-size: var(--font-size-heading-5-mobile, 18px);\n line-height: var(--line-height-heading-normal, 1.1);\n}\n\n/* Description/body text - default (body/large) */\n.description {\n font-family: var(--typography-bodyfont, 'NeuSans', sans-serif);\n font-size: var(--font-size-body-large, 18px);\n font-weight: var(--font-weight-regular, 400);\n line-height: var(--line-height-body-large, 26px);\n color: var(--af-typography-body-default, var(--colour-typography-body-default, #2B484F));\n white-space: pre-wrap;\n}\n\n/* Description text size variations - smaller for heading 3 mobile, 4, and 5 */\n.breakpoint-mobile.heading-3 .description,\n.breakpoint-desktop.heading-4 .description,\n.breakpoint-mobile.heading-4 .description,\n.breakpoint-desktop.heading-5 .description,\n.breakpoint-mobile.heading-5 .description {\n font-size: var(--font-size-body-medium, 16px);\n line-height: var(--line-height-body-medium, 24px);\n}\n\n.description:empty {\n display: none;\n}\n\n/* Buttons section */\n.buttons {\n display: flex;\n flex-direction: row;\n gap: var(--space-3, 12px);\n}\n\n.buttons:empty {\n display: none;\n}\n\n/* Button layout - horizontal (inline with copy) */\n.layout-horizontal .buttons {\n align-items: center;\n}\n\n.text-left.layout-horizontal {\n flex-direction: row;\n align-items: center;\n gap: var(--space-4, 16px);\n}\n\n.text-left.layout-horizontal .copy {\n flex: 1 0 0;\n max-width: 950px;\n}\n\n/* Heading 3, 4 horizontal: different max-width */\n.text-left.layout-horizontal.heading-3 .copy,\n.text-left.layout-horizontal.heading-4 .copy {\n max-width: 840px;\n}\n\n.text-left.layout-horizontal .buttons {\n flex-shrink: 0;\n}\n\n/* Button layout - vertical (stacked below copy) */\n.layout-vertical .buttons {\n align-items: flex-start;\n}\n\n/* Button position alignment */\n.buttons.align-left {\n justify-content: flex-start;\n}\n\n.buttons.align-center {\n justify-content: center;\n}\n\n.buttons.align-right {\n justify-content: flex-end;\n}\n\n.buttons.align-justify {\n justify-content: space-between;\n}\n\n/* Mobile button stacking - buttons stack vertically on mobile */\n.breakpoint-mobile .buttons {\n flex-direction: column;\n align-items: stretch;\n}\n\n.breakpoint-mobile .buttons.align-center {\n align-items: center;\n}\n\n.breakpoint-mobile .buttons.align-right {\n align-items: flex-end;\n}\n\n.breakpoint-mobile .buttons.align-left {\n align-items: flex-start;\n}\n\n/* Max width constraints for centered layouts */\n.text-center .copy {\n max-width: 840px;\n}\n\n/* Slot content styling */\n::slotted(*) {\n margin: 0;\n}\n","import { Component, h, Prop, Host } from '@stencil/core';\n\ntype TextAlign = 'left' | 'center' | 'right' | 'justify';\n\n@Component({\n tag: 'af-typography-lockup',\n styleUrl: 'af-typography-lockup.css',\n shadow: true\n})\nexport class AfTypographyLockup {\n /**\n * The heading size (1-5, where 1 is largest)\n */\n @Prop() headingSize: 1 | 2 | 3 | 4 | 5 = 2;\n\n /**\n * The breakpoint for responsive typography\n */\n @Prop() breakpoint: 'desktop' | 'mobile' = 'desktop';\n\n /**\n * Text alignment for the entire lockup (heading and description).\n * Can be overridden individually with headingAlignment and descriptionAlignment.\n */\n @Prop() textAlignment: TextAlign = 'left';\n\n /**\n * Heading text alignment. Falls back to textAlignment if not specified.\n */\n @Prop() headingAlignment?: TextAlign;\n\n /**\n * Description text alignment. Falls back to textAlignment if not specified.\n */\n @Prop() descriptionAlignment?: TextAlign;\n\n /**\n * Button layout direction (horizontal or vertical stacking)\n */\n @Prop() buttonLayout: 'horizontal' | 'vertical' = 'vertical';\n\n /**\n * Buttons position alignment. Falls back to textAlignment if not specified.\n */\n @Prop() buttonsAlignment?: TextAlign;\n\n /**\n * Maximum width for the copy section (in pixels)\n */\n @Prop() maxWidth?: number;\n\n render() {\n const effectiveHeadingAlignment = this.headingAlignment ?? this.textAlignment;\n const effectiveDescriptionAlignment = this.descriptionAlignment ?? this.textAlignment;\n const effectiveButtonsAlignment = this.buttonsAlignment ?? this.textAlignment;\n\n const containerClasses = {\n 'lockup': true,\n [`text-${this.textAlignment}`]: true,\n [`layout-${this.buttonLayout}`]: true,\n [`heading-${this.headingSize}`]: true,\n [`breakpoint-${this.breakpoint}`]: true\n };\n\n const headingClasses = {\n 'heading': true,\n [`align-${effectiveHeadingAlignment}`]: true\n };\n\n const descriptionClasses = {\n 'description': true,\n [`align-${effectiveDescriptionAlignment}`]: true\n };\n\n const buttonsClasses = {\n 'buttons': true,\n [`align-${effectiveButtonsAlignment}`]: true\n };\n\n const copyStyle = this.maxWidth ? { maxWidth: `${this.maxWidth}px` } : {};\n\n return (\n <Host>\n <div class={containerClasses}>\n <div class=\"copy\" style={copyStyle}>\n <div class={headingClasses} part=\"heading\">\n <slot></slot>\n </div>\n <div class={descriptionClasses} part=\"body\">\n <slot name=\"description\"></slot>\n </div>\n </div>\n <div class={buttonsClasses} part=\"buttons\">\n <slot name=\"buttons\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,100 @@
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-CxngDK-N.js';
2
+ import { d as defineCustomElement$1 } from './p-CLmCtN_R.js';
3
+
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:32px;left:0;right:0;z-index:10;padding:0 80px;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:108px;left:0;right:0;padding:0 80px;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: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:100px 16px 24px 16px;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:24px;padding:0 40px}.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:16px;padding:0 16px;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:88px}.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:16px;padding:0 16px;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:88px}[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
+
6
+ const AfNavbar = /*@__PURE__*/ proxyCustomElement(class AfNavbar extends H {
7
+ constructor(registerHost) {
8
+ super();
9
+ if (registerHost !== false) {
10
+ this.__registerHost();
11
+ }
12
+ this.mobileMenuOpen = false;
13
+ /** The currently open dropdown identifier (null if none open) */
14
+ this.activeDropdown = null;
15
+ /** Whether to show the default Affinda logo when no logo slot content is provided */
16
+ this.showDefaultLogo = true;
17
+ /** Force mobile layout regardless of viewport size (useful for testing/stories) */
18
+ this.forceMobile = false;
19
+ this.toggleMobileMenu = () => {
20
+ this.mobileMenuOpen = !this.mobileMenuOpen;
21
+ // Close any open dropdown when toggling mobile menu
22
+ this.activeDropdown = null;
23
+ };
24
+ /**
25
+ * Opens a dropdown by its identifier
26
+ */
27
+ this.openDropdown = (dropdownId) => {
28
+ this.activeDropdown = dropdownId;
29
+ };
30
+ /**
31
+ * Closes the currently open dropdown
32
+ */
33
+ this.closeDropdown = () => {
34
+ this.activeDropdown = null;
35
+ };
36
+ /**
37
+ * Toggles a dropdown by its identifier
38
+ */
39
+ this.toggleDropdown = (dropdownId) => {
40
+ if (this.activeDropdown === dropdownId) {
41
+ this.activeDropdown = null;
42
+ }
43
+ else {
44
+ this.activeDropdown = dropdownId;
45
+ }
46
+ };
47
+ }
48
+ /**
49
+ * Handle clicks outside the navbar to close dropdowns
50
+ */
51
+ handleDocumentClick(event) {
52
+ const path = event.composedPath();
53
+ if (!path.includes(this.el)) {
54
+ this.closeDropdown();
55
+ }
56
+ }
57
+ /**
58
+ * Handle escape key to close dropdowns
59
+ */
60
+ handleKeyDown(event) {
61
+ if (event.key === 'Escape') {
62
+ this.closeDropdown();
63
+ }
64
+ }
65
+ render() {
66
+ const hasDropdown = this.activeDropdown !== null;
67
+ return (h(Host, { key: '92f8f346f85a3dc591a97bde173442b963b37e5c', class: { 'has-dropdown-open': hasDropdown } }, h("div", { key: '059a556fb84aadf47f5e5cc78adf39314f35e7cd', class: `navbar-spacer${this.theme ? ` theme-${this.theme}` : ''}` }), h("nav", { key: 'a724927e2b4e571efcc90baf2bc95047ee9e9e5b', class: "navbar-container" }, h("div", { key: '8459055c4d73dd08cf9e411e39b6a5efd281db33', class: "navbar theme-white" }, h("div", { key: '1672a840e29672b08bdd097decc5d3704f680b53', class: "navbar-left" }, h("div", { key: '6a7dd0e111b1afb93815d92c7ea401c6041b786e', class: "logo" }, h("slot", { key: '49706feeb1ffcf21bccb033baf717e29ed0f6809', name: "logo" }, this.showDefaultLogo && h("af-logo", { key: 'c4894daec4529effc143cd015dc298e3fe68bde6' }))), h("button", { key: '5cc3605bfd31104a8357a270b71bae0d539d459c', class: "mobile-menu-toggle", onClick: this.toggleMobileMenu, "aria-label": "Toggle navigation menu", "aria-expanded": this.mobileMenuOpen ? 'true' : 'false' }, this.mobileMenuOpen ? (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M18 6L6 18M6 6l12 12", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))) : (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M3 12h18M3 6h18M3 18h18", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("div", { key: '37cb78db1c5385f069988d2236aca7c916d24ebe', class: `nav-links ${this.mobileMenuOpen ? 'mobile-open' : ''}` }, h("slot", { key: '446e40b871d0e9c689405b234d15e5a9043058bf', name: "start" }))), h("div", { key: '1112576571e29edaa6e6c33f083b1a058fdaef64', class: `navbar-right ${this.mobileMenuOpen ? 'mobile-open' : ''}` }, h("div", { key: '036a55766ab0e4bbc566b6cfbe6513ea0656ccb3', class: "nav-actions" }, h("slot", { key: '01b2df1708553d51475941e109c8f23652d7e0ff', name: "end" })), h("div", { key: '4429b2e026ec6b730d8c17cf9f716ad5a6a3c050', class: "nav-button" }, h("slot", { key: '0a290b167e6d32441770df9d4f6b3e6104552b77', name: "button" })))), h("div", { key: '08c1695708ddf0ef0a1a18bfbd1c45d66ef1bf4f', class: `dropdown-container ${hasDropdown ? 'is-open' : ''}` }, h("div", { key: 'b54b6dbd58888e9a844b615337ba7ee62bca00c0', class: "dropdown-panel theme-white" }, h("slot", { key: '0f72aff472972bf323e1891518d99eb5d92d2916', name: "dropdown-solutions" }), h("slot", { key: '1f7bf6bb90b334d19737e011e759787105a91fa5', name: "dropdown-pricing" }), h("slot", { key: '52272d982908c702c3447d9b2b7bddcf2cc030df', name: "dropdown-resources" }), h("slot", { key: 'ba1ea577efa7b2a9af9b8a50253eae8eef661bd7', name: "dropdown" })))), h("div", { key: '21f14e04f0c351733f7452dc1c10b6abfb26e1ce', class: `mobile-menu-panel theme-white ${this.mobileMenuOpen ? 'is-open' : ''}` }, h("div", { key: '22565f6b52971a5fe4235c8f9e2fce4ee5a2d006', class: "mobile-button-container" }, h("slot", { key: '2b01297d62d6cca6a58b128701a5a14a02d91e2d', name: "mobile-button" }, h("slot", { key: 'd755113cabd174a46acd6d2d5b65d9454964b759', name: "button" }))), h("div", { key: '31f63fa53ae2c12b5f0f19e7b2235d94f09f50cb', class: "mobile-menu-content" }, h("slot", { key: '748e5a320fb5b5940f1134e332738dccf015748e', name: "mobile-menu" })))));
68
+ }
69
+ get el() { return this; }
70
+ static get style() { return afNavbarCss; }
71
+ }, [262, "af-navbar", {
72
+ "showDefaultLogo": [4, "show-default-logo"],
73
+ "theme": [1],
74
+ "forceMobile": [516, "force-mobile"],
75
+ "mobileMenuOpen": [32],
76
+ "activeDropdown": [32]
77
+ }, [[4, "click", "handleDocumentClick"], [4, "keydown", "handleKeyDown"]]]);
78
+ function defineCustomElement() {
79
+ if (typeof customElements === "undefined") {
80
+ return;
81
+ }
82
+ const components = ["af-navbar", "af-logo"];
83
+ components.forEach(tagName => { switch (tagName) {
84
+ case "af-navbar":
85
+ if (!customElements.get(tagName)) {
86
+ customElements.define(tagName, AfNavbar);
87
+ }
88
+ break;
89
+ case "af-logo":
90
+ if (!customElements.get(tagName)) {
91
+ defineCustomElement$1();
92
+ }
93
+ break;
94
+ } });
95
+ }
96
+
97
+ export { AfNavbar as A, defineCustomElement as d };
98
+ //# sourceMappingURL=p-nwZ2iAi9.js.map
99
+
100
+ //# sourceMappingURL=p-nwZ2iAi9.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-nwZ2iAi9.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 top: 32px;\n left: 0;\n right: 0;\n z-index: 10;\n padding: 0 80px;\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 */\n.dropdown-container {\n position: absolute;\n top: 108px;\n left: 0;\n right: 0;\n padding: 0 80px;\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 box-shadow: 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 padding: 100px 16px 24px 16px;\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: 24px;\n padding: 0 40px;\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: 16px;\n padding: 0 16px;\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: 88px; /* Accounts for navbar height */\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: 16px;\n padding: 0 16px;\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: 88px;\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';\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 * - `dropdown-solutions` - Mega-menu for Solutions dropdown\n * - `dropdown-pricing` - Mega-menu for Pricing dropdown \n * - `dropdown-resources` - Mega-menu for Resources dropdown\n * - `dropdown` - Generic dropdown slot\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?: 'white' | 'inkwell' | 'mist-green' | 'soft-clay';\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 /**\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 * Handle escape key to close dropdowns\n */\n @Listen('keydown', { target: 'document' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.closeDropdown();\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=\"dropdown-solutions\"></slot>\n <slot name=\"dropdown-pricing\"></slot>\n <slot name=\"dropdown-resources\"></slot>\n <slot name=\"dropdown\"></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 <div class=\"mobile-button-container\">\n <slot name=\"mobile-button\">\n <slot name=\"button\"></slot>\n </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}
@@ -0,0 +1,100 @@
1
+ import { p as proxyCustomElement, H, h, c as Host } from './p-CxngDK-N.js';
2
+ import { d as defineCustomElement$1 } from './p-CLmCtN_R.js';
3
+
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:32px;left:0;right:0;z-index:10;padding:0 80px;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:108px;left:0;right:0;padding:0 80px;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: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:100px 16px 24px 16px;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:24px;padding:0 40px}.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:16px;padding:0 16px;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:88px}.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:16px;padding:0 16px;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:88px}[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}";
5
+
6
+ const AfNavbar = /*@__PURE__*/ proxyCustomElement(class AfNavbar extends H {
7
+ constructor(registerHost) {
8
+ super();
9
+ if (registerHost !== false) {
10
+ this.__registerHost();
11
+ }
12
+ this.mobileMenuOpen = false;
13
+ /** The currently open dropdown identifier (null if none open) */
14
+ this.activeDropdown = null;
15
+ /** Whether to show the default Affinda logo when no logo slot content is provided */
16
+ this.showDefaultLogo = true;
17
+ /** Force mobile layout regardless of viewport size (useful for testing/stories) */
18
+ this.forceMobile = false;
19
+ this.toggleMobileMenu = () => {
20
+ this.mobileMenuOpen = !this.mobileMenuOpen;
21
+ // Close any open dropdown when toggling mobile menu
22
+ this.activeDropdown = null;
23
+ };
24
+ /**
25
+ * Opens a dropdown by its identifier
26
+ */
27
+ this.openDropdown = (dropdownId) => {
28
+ this.activeDropdown = dropdownId;
29
+ };
30
+ /**
31
+ * Closes the currently open dropdown
32
+ */
33
+ this.closeDropdown = () => {
34
+ this.activeDropdown = null;
35
+ };
36
+ /**
37
+ * Toggles a dropdown by its identifier
38
+ */
39
+ this.toggleDropdown = (dropdownId) => {
40
+ if (this.activeDropdown === dropdownId) {
41
+ this.activeDropdown = null;
42
+ }
43
+ else {
44
+ this.activeDropdown = dropdownId;
45
+ }
46
+ };
47
+ }
48
+ /**
49
+ * Handle clicks outside the navbar to close dropdowns
50
+ */
51
+ handleDocumentClick(event) {
52
+ const path = event.composedPath();
53
+ if (!path.includes(this.el)) {
54
+ this.closeDropdown();
55
+ }
56
+ }
57
+ /**
58
+ * Handle escape key to close dropdowns
59
+ */
60
+ handleKeyDown(event) {
61
+ if (event.key === 'Escape') {
62
+ this.closeDropdown();
63
+ }
64
+ }
65
+ render() {
66
+ const hasDropdown = this.activeDropdown !== null;
67
+ return (h(Host, { key: '92f8f346f85a3dc591a97bde173442b963b37e5c', class: { 'has-dropdown-open': hasDropdown } }, h("div", { key: '059a556fb84aadf47f5e5cc78adf39314f35e7cd', class: `navbar-spacer${this.theme ? ` theme-${this.theme}` : ''}` }), h("nav", { key: 'a724927e2b4e571efcc90baf2bc95047ee9e9e5b', class: "navbar-container" }, h("div", { key: '8459055c4d73dd08cf9e411e39b6a5efd281db33', class: "navbar theme-white" }, h("div", { key: '1672a840e29672b08bdd097decc5d3704f680b53', class: "navbar-left" }, h("div", { key: '6a7dd0e111b1afb93815d92c7ea401c6041b786e', class: "logo" }, h("slot", { key: '49706feeb1ffcf21bccb033baf717e29ed0f6809', name: "logo" }, this.showDefaultLogo && h("af-logo", { key: 'c4894daec4529effc143cd015dc298e3fe68bde6' }))), h("button", { key: '5cc3605bfd31104a8357a270b71bae0d539d459c', class: "mobile-menu-toggle", onClick: this.toggleMobileMenu, "aria-label": "Toggle navigation menu", "aria-expanded": this.mobileMenuOpen ? 'true' : 'false' }, this.mobileMenuOpen ? (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M18 6L6 18M6 6l12 12", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))) : (h("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { d: "M3 12h18M3 6h18M3 18h18", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("div", { key: '37cb78db1c5385f069988d2236aca7c916d24ebe', class: `nav-links ${this.mobileMenuOpen ? 'mobile-open' : ''}` }, h("slot", { key: '446e40b871d0e9c689405b234d15e5a9043058bf', name: "start" }))), h("div", { key: '1112576571e29edaa6e6c33f083b1a058fdaef64', class: `navbar-right ${this.mobileMenuOpen ? 'mobile-open' : ''}` }, h("div", { key: '036a55766ab0e4bbc566b6cfbe6513ea0656ccb3', class: "nav-actions" }, h("slot", { key: '01b2df1708553d51475941e109c8f23652d7e0ff', name: "end" })), h("div", { key: '4429b2e026ec6b730d8c17cf9f716ad5a6a3c050', class: "nav-button" }, h("slot", { key: '0a290b167e6d32441770df9d4f6b3e6104552b77', name: "button" })))), h("div", { key: '08c1695708ddf0ef0a1a18bfbd1c45d66ef1bf4f', class: `dropdown-container ${hasDropdown ? 'is-open' : ''}` }, h("div", { key: 'b54b6dbd58888e9a844b615337ba7ee62bca00c0', class: "dropdown-panel theme-white" }, h("slot", { key: '0f72aff472972bf323e1891518d99eb5d92d2916', name: "dropdown-solutions" }), h("slot", { key: '1f7bf6bb90b334d19737e011e759787105a91fa5', name: "dropdown-pricing" }), h("slot", { key: '52272d982908c702c3447d9b2b7bddcf2cc030df', name: "dropdown-resources" }), h("slot", { key: 'ba1ea577efa7b2a9af9b8a50253eae8eef661bd7', name: "dropdown" })))), h("div", { key: '21f14e04f0c351733f7452dc1c10b6abfb26e1ce', class: `mobile-menu-panel theme-white ${this.mobileMenuOpen ? 'is-open' : ''}` }, h("div", { key: '22565f6b52971a5fe4235c8f9e2fce4ee5a2d006', class: "mobile-button-container" }, h("slot", { key: '2b01297d62d6cca6a58b128701a5a14a02d91e2d', name: "mobile-button" }, h("slot", { key: 'd755113cabd174a46acd6d2d5b65d9454964b759', name: "button" }))), h("div", { key: '31f63fa53ae2c12b5f0f19e7b2235d94f09f50cb', class: "mobile-menu-content" }, h("slot", { key: '748e5a320fb5b5940f1134e332738dccf015748e', name: "mobile-menu" })))));
68
+ }
69
+ get el() { return this; }
70
+ static get style() { return afNavbarCss; }
71
+ }, [262, "af-navbar", {
72
+ "showDefaultLogo": [4, "show-default-logo"],
73
+ "theme": [1],
74
+ "forceMobile": [516, "force-mobile"],
75
+ "mobileMenuOpen": [32],
76
+ "activeDropdown": [32]
77
+ }, [[4, "click", "handleDocumentClick"], [4, "keydown", "handleKeyDown"]]]);
78
+ function defineCustomElement() {
79
+ if (typeof customElements === "undefined") {
80
+ return;
81
+ }
82
+ const components = ["af-navbar", "af-logo"];
83
+ components.forEach(tagName => { switch (tagName) {
84
+ case "af-navbar":
85
+ if (!customElements.get(tagName)) {
86
+ customElements.define(tagName, AfNavbar);
87
+ }
88
+ break;
89
+ case "af-logo":
90
+ if (!customElements.get(tagName)) {
91
+ defineCustomElement$1();
92
+ }
93
+ break;
94
+ } });
95
+ }
96
+
97
+ export { AfNavbar as A, defineCustomElement as d };
98
+ //# sourceMappingURL=p-pDs2K2nD.js.map
99
+
100
+ //# sourceMappingURL=p-pDs2K2nD.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-pDs2K2nD.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 top: 32px;\n left: 0;\n right: 0;\n z-index: 10;\n padding: 0 80px;\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 */\n.dropdown-container {\n position: absolute;\n top: 108px;\n left: 0;\n right: 0;\n padding: 0 80px;\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 box-shadow: 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 padding: 100px 16px 24px 16px;\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: 24px;\n padding: 0 40px;\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: 16px;\n padding: 0 16px;\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: 88px; /* Accounts for navbar height */\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: 16px;\n padding: 0 16px;\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: 88px;\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","import { Component, State, h, Host, Prop, Element, Listen } from '@stencil/core';\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 * - `dropdown-solutions` - Mega-menu for Solutions dropdown\n * - `dropdown-pricing` - Mega-menu for Pricing dropdown \n * - `dropdown-resources` - Mega-menu for Resources dropdown\n * - `dropdown` - Generic dropdown slot\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?: 'white' | 'inkwell' | 'mist-green' | 'soft-clay';\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 /**\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 * Handle escape key to close dropdowns\n */\n @Listen('keydown', { target: 'document' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.closeDropdown();\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=\"dropdown-solutions\"></slot>\n <slot name=\"dropdown-pricing\"></slot>\n <slot name=\"dropdown-resources\"></slot>\n <slot name=\"dropdown\"></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 <div class=\"mobile-button-container\">\n <slot name=\"mobile-button\">\n <slot name=\"button\"></slot>\n </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,6 +1,6 @@
1
1
  import { p as proxyCustomElement, H, h, c as Host } from './p-CxngDK-N.js';
2
2
 
3
- const afFieldsetCss = ":host{display:block}.fieldset{display:flex;flex-direction:column;border:none;padding:0;margin:0;min-inline-size:0}.fieldset.disabled{opacity:0.5;pointer-events:none}.legend{display:block;font-family:var(--typography-headingfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-book, 500);font-size:var(--font-size-heading-5-desktop, 20px);line-height:var(--line-height-heading-relaxed, 1.2);letter-spacing:var(--letter-spacing-heading, -0.02em);color:var(--colour-typography-heading-primary, var(--colour-brand-inkwell, #14343b));padding:0;margin:0 0 12px 0;width:100%}.items{display:flex}.items.orientation-vertical{flex-direction:column;gap:8px;align-items:flex-start}.items.orientation-horizontal{flex-direction:row;flex-wrap:wrap;gap:28px;align-items:center}::slotted(*){flex-shrink:0}.items.orientation-vertical ::slotted(*){width:100%}";
3
+ const afFieldsetCss = ":host{display:block}.fieldset{display:flex;flex-direction:column;border:none;padding:0;margin:0;min-inline-size:0}.fieldset.disabled{opacity:0.5;pointer-events:none}.legend{display:block;font-family:var(--typography-headingfont, 'NeuSans', sans-serif);font-weight:var(--font-weight-book, 500);font-size:var(--font-size-heading-5-desktop, 20px);line-height:var(--line-height-heading-relaxed, 1.2);letter-spacing:var(--letter-spacing-heading, -0.02em);color:var(--af-typography-heading-primary, var(--colour-brand-inkwell, #14343b));padding:0;margin:0 0 12px 0;width:100%}.items{display:flex}.items.orientation-vertical{flex-direction:column;gap:8px;align-items:flex-start}.items.orientation-horizontal{flex-direction:row;flex-wrap:wrap;gap:28px;align-items:center}::slotted(*){flex-shrink:0}.items.orientation-vertical ::slotted(*){width:100%}";
4
4
 
5
5
  const AfFieldset = /*@__PURE__*/ proxyCustomElement(class AfFieldset extends H {
6
6
  constructor(registerHost) {
@@ -30,7 +30,7 @@ const AfFieldset = /*@__PURE__*/ proxyCustomElement(class AfFieldset extends H {
30
30
  'items': true,
31
31
  [`orientation-${this.orientation}`]: true
32
32
  };
33
- return (h(Host, { key: '367a58328f883d5df31989021ad7dba14ed3ab6c' }, h("fieldset", { key: 'f43a04b8808db04886a0997b42593af2445b185d', class: fieldsetClasses, disabled: this.disabled }, this.legend && (h("legend", { key: 'fc08d5e1464ffeb00005fda04169ceb2654a00b8', class: "legend" }, this.legend)), h("div", { key: '815f2dc77dc417791e1a3d736e1b0ce91250a325', class: itemsClasses }, h("slot", { key: 'd080ec923b57a3ae95cc868be6bf42b57df08e7a' })))));
33
+ return (h(Host, { key: '60d884edafad36deb7c25a515523fcab744f8406' }, h("fieldset", { key: '252f9bda68649344d71938d40bdaa187bb5f5448', class: fieldsetClasses, disabled: this.disabled }, this.legend && (h("legend", { key: '09281657368ccdcc2f8773d08cb875316dc04a33', class: "legend" }, this.legend)), h("div", { key: '35b7536fc7c751d101119021bd31b59f19e76e9b', class: itemsClasses }, h("slot", { key: 'd278bfdc67820471928fafd8b5ba9127332db935' })))));
34
34
  }
35
35
  static get style() { return afFieldsetCss; }
36
36
  }, [257, "af-fieldset", {
@@ -53,6 +53,6 @@ function defineCustomElement() {
53
53
  }
54
54
 
55
55
  export { AfFieldset as A, defineCustomElement as d };
56
- //# sourceMappingURL=p-BRsO61_R.js.map
56
+ //# sourceMappingURL=p-zDoPXonz.js.map
57
57
 
58
- //# sourceMappingURL=p-BRsO61_R.js.map
58
+ //# sourceMappingURL=p-zDoPXonz.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-zDoPXonz.js","mappings":";;AAAA,MAAM,aAAa,GAAG,40BAA40B;;MCar1B,UAAU,iBAAAA,kBAAA,CAAA,MAAA,UAAA,SAAAC,CAAA,CAAA;AALvB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAWE;;;;AAIG;AACK,QAAA,IAAW,CAAA,WAAA,GAA8B,UAAU;AAE3D;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AA2BnD;IAzBC,MAAM,GAAA;AACJ,QAAA,MAAM,eAAe,GAAG;AACtB,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,CAAC,eAAe,IAAI,CAAC,WAAW,CAAE,CAAA,GAAG,IAAI;YACzC,UAAU,EAAE,IAAI,CAAC;SAClB;AAED,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,CAAC,eAAe,IAAI,CAAC,WAAW,CAAE,CAAA,GAAG;SACtC;AAED,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAU,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA,EACtD,IAAI,CAAC,MAAM,KACV,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,QAAQ,EAAE,EAAA,IAAI,CAAC,MAAM,CAAU,CAC9C,EACD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,YAAY,EAAA,EACtB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACG,CACN;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/af-fieldset/af-fieldset.css?tag=af-fieldset&encapsulation=shadow","src/components/af-fieldset/af-fieldset.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.fieldset {\n display: flex;\n flex-direction: column;\n border: none;\n padding: 0;\n margin: 0;\n min-inline-size: 0;\n}\n\n.fieldset.disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n\n/* Legend/heading styling - uses heading 5 style */\n.legend {\n display: block;\n font-family: var(--typography-headingfont, 'NeuSans', sans-serif);\n font-weight: var(--font-weight-book, 500);\n font-size: var(--font-size-heading-5-desktop, 20px);\n line-height: var(--line-height-heading-relaxed, 1.2);\n letter-spacing: var(--letter-spacing-heading, -0.02em);\n /* Inherit color from theme context via CSS custom property */\n color: var(--af-typography-heading-primary, var(--colour-brand-inkwell, #14343b));\n padding: 0;\n margin: 0 0 12px 0;\n width: 100%;\n}\n\n/* Items container */\n.items {\n display: flex;\n}\n\n/* Vertical layout */\n.items.orientation-vertical {\n flex-direction: column;\n gap: 8px;\n align-items: flex-start;\n}\n\n/* Horizontal layout */\n.items.orientation-horizontal {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 28px;\n align-items: center;\n}\n\n/* Slotted content styling */\n::slotted(*) {\n flex-shrink: 0;\n}\n\n/* Full width items in vertical layout */\n.items.orientation-vertical ::slotted(*) {\n width: 100%;\n}\n","import { Component, h, Prop, Host } from '@stencil/core';\n\n/**\n * Fieldset component for grouping related form controls.\n * Supports vertical and horizontal layouts with an optional legend/heading.\n * \n * @slot - Form controls (checkboxes, radios, etc.)\n */\n@Component({\n tag: 'af-fieldset',\n styleUrl: 'af-fieldset.css',\n shadow: true\n})\nexport class AfFieldset {\n /**\n * The legend/heading text for the fieldset\n */\n @Prop() legend?: string;\n\n /**\n * The layout orientation of the fieldset items\n * - `vertical` - Items stack vertically (default)\n * - `horizontal` - Items are laid out horizontally\n */\n @Prop() orientation: 'vertical' | 'horizontal' = 'vertical';\n\n /**\n * Whether the fieldset is disabled (disables all child controls)\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n render() {\n const fieldsetClasses = {\n 'fieldset': true,\n [`orientation-${this.orientation}`]: true,\n 'disabled': this.disabled\n };\n\n const itemsClasses = {\n 'items': true,\n [`orientation-${this.orientation}`]: true\n };\n\n return (\n <Host>\n <fieldset class={fieldsetClasses} disabled={this.disabled}>\n {this.legend && (\n <legend class=\"legend\">{this.legend}</legend>\n )}\n <div class={itemsClasses}>\n <slot></slot>\n </div>\n </fieldset>\n </Host>\n );\n }\n}\n\n"],"version":3}
@@ -0,0 +1,103 @@
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-B0LVveHp.js';
2
+
3
+ const afAccordionItemCss = ":host{display:block;width:100%}.accordion-item{width:100%}.trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 0;background:transparent;border:none;border-bottom:1px solid var(--af-background-border-subtle, #e8eeed);cursor:pointer;font:inherit;text-align:left;color:var(--af-typography-body-dark, #14343b);transition:background-color 0.2s ease}.trigger:hover:not(:disabled){background-color:var(--af-background-base-hover, rgba(20, 52, 59, 0.02))}.trigger:focus-visible{outline:2px solid var(--af-background-border-active, #8a7049);outline-offset:-2px}.trigger:disabled{cursor:not-allowed;opacity:0.5}.trigger-content{flex:1;min-width:0}.chevron{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:var(--af-typography-body-dark, #14343b);transition:transform 0.3s ease}.chevron.is-open{transform:rotate(180deg)}.content-wrapper{overflow:hidden;transition:max-height 0.3s ease}.content{padding:0}:host(.is-disabled) .trigger{cursor:not-allowed;opacity:0.5}:host(.is-disabled) .trigger:hover{background-color:transparent}:host(.is-open) .trigger{border-bottom-color:transparent}";
4
+
5
+ const AfAccordionItem = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.accordionToggle = createEvent(this, "af-accordion-toggle");
9
+ /**
10
+ * Whether this item is currently expanded
11
+ */
12
+ this.open = false;
13
+ /**
14
+ * Whether this item is disabled (cannot be toggled)
15
+ */
16
+ this.disabled = false;
17
+ this.contentHeight = 0;
18
+ this.handleTriggerClick = () => {
19
+ if (!this.disabled) {
20
+ this.toggle();
21
+ }
22
+ };
23
+ }
24
+ handleOpenChange(newValue) {
25
+ if (newValue) {
26
+ this.measureContent();
27
+ }
28
+ }
29
+ componentDidLoad() {
30
+ // #region agent log
31
+ fetch('http://127.0.0.1:7242/ingest/b0b55d5e-d10c-4b52-9f1d-02a40f4c5e87', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'af-accordion-item.tsx:componentDidLoad', message: 'Component loaded', data: { itemId: this.itemId, hasShadowRoot: !!this.el.shadowRoot }, timestamp: Date.now(), sessionId: 'debug-session', hypothesisId: 'E' }) }).catch(() => { });
32
+ // #endregion
33
+ // #region agent log
34
+ const shadowRoot = this.el.shadowRoot;
35
+ const triggerSlot = shadowRoot?.querySelector('slot[name="trigger"]');
36
+ const assignedNodes = triggerSlot?.assignedNodes() || [];
37
+ const assignedElements = triggerSlot?.assignedElements() || [];
38
+ fetch('http://127.0.0.1:7242/ingest/b0b55d5e-d10c-4b52-9f1d-02a40f4c5e87', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'af-accordion-item.tsx:componentDidLoad:slotCheck', message: 'Checking trigger slot content', data: { hasTriggerSlot: !!triggerSlot, assignedNodesCount: assignedNodes.length, assignedElementsCount: assignedElements.length, assignedContent: assignedElements.map(el => ({ tagName: el.tagName, textContent: el.textContent })) }, timestamp: Date.now(), sessionId: 'debug-session', hypothesisId: 'A' }) }).catch(() => { });
39
+ // #endregion
40
+ // #region agent log
41
+ const triggerContent = shadowRoot?.querySelector('.trigger-content');
42
+ const triggerContentStyles = triggerContent ? getComputedStyle(triggerContent) : null;
43
+ fetch('http://127.0.0.1:7242/ingest/b0b55d5e-d10c-4b52-9f1d-02a40f4c5e87', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'af-accordion-item.tsx:componentDidLoad:styleCheck', message: 'Checking trigger-content styles', data: { hasTriggerContent: !!triggerContent, width: triggerContent?.offsetWidth, height: triggerContent?.offsetHeight, color: triggerContentStyles?.color, display: triggerContentStyles?.display, visibility: triggerContentStyles?.visibility }, timestamp: Date.now(), sessionId: 'debug-session', hypothesisId: 'B,C' }) }).catch(() => { });
44
+ // #endregion
45
+ // #region agent log
46
+ const lightDomChildren = Array.from(this.el.children);
47
+ const slottedTrigger = this.el.querySelector('[slot="trigger"]');
48
+ fetch('http://127.0.0.1:7242/ingest/b0b55d5e-d10c-4b52-9f1d-02a40f4c5e87', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'af-accordion-item.tsx:componentDidLoad:lightDomCheck', message: 'Checking light DOM for slotted content', data: { lightDomChildCount: lightDomChildren.length, lightDomTags: lightDomChildren.map(c => c.tagName), hasSlottedTrigger: !!slottedTrigger, slottedTriggerText: slottedTrigger?.textContent }, timestamp: Date.now(), sessionId: 'debug-session', hypothesisId: 'D' }) }).catch(() => { });
49
+ // #endregion
50
+ if (this.open) {
51
+ this.measureContent();
52
+ }
53
+ // Set up ResizeObserver to handle dynamic content changes
54
+ this.resizeObserver = new ResizeObserver(() => {
55
+ if (this.open && this.contentRef) {
56
+ this.contentHeight = this.contentRef.scrollHeight;
57
+ }
58
+ });
59
+ if (this.contentRef) {
60
+ this.resizeObserver.observe(this.contentRef);
61
+ }
62
+ }
63
+ disconnectedCallback() {
64
+ // Clean up ResizeObserver
65
+ if (this.resizeObserver) {
66
+ this.resizeObserver.disconnect();
67
+ }
68
+ }
69
+ /**
70
+ * Programmatically toggle the accordion item
71
+ */
72
+ async toggle() {
73
+ if (!this.disabled) {
74
+ this.open = !this.open;
75
+ this.accordionToggle.emit({ itemId: this.itemId, open: this.open });
76
+ }
77
+ }
78
+ measureContent() {
79
+ // Use requestAnimationFrame to ensure DOM has updated before measuring
80
+ requestAnimationFrame(() => {
81
+ if (this.contentRef) {
82
+ this.contentHeight = this.contentRef.scrollHeight;
83
+ }
84
+ });
85
+ }
86
+ render() {
87
+ // #region agent log
88
+ fetch('http://127.0.0.1:7242/ingest/b0b55d5e-d10c-4b52-9f1d-02a40f4c5e87', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ location: 'af-accordion-item.tsx:render', message: 'Render called', data: { itemId: this.itemId, open: this.open }, timestamp: Date.now(), sessionId: 'debug-session', hypothesisId: 'E' }) }).catch(() => { });
89
+ // #endregion
90
+ const contentStyle = {
91
+ maxHeight: this.open ? `${this.contentHeight}px` : '0px'
92
+ };
93
+ return (h(Host, { key: '3fe538b657584129ecdce848caf5a9425287a354', class: { 'is-open': this.open, 'is-disabled': this.disabled } }, h("div", { key: '6d1766d97738f60f1d21a7f623ef732a15a9e911', class: "accordion-item" }, h("button", { key: '8782c20a4d74f655786586d7d7fd4255a6fc2806', class: "trigger", onClick: this.handleTriggerClick, "aria-expanded": this.open ? 'true' : 'false', "aria-controls": `content-${this.itemId}`, disabled: this.disabled, type: "button" }, h("div", { key: '54aff551c3547148f92c26bc51a42417a36ff4d3', class: "trigger-content" }, h("slot", { key: '5692b3c1b11ff38b3bde8c7dd30a2c2a2e1b5c67', name: "trigger" })), h("div", { key: '88d0a967e3ed518d8355c824f226ad21abf96c0f', class: { 'chevron': true, 'is-open': this.open } }, h("svg", { key: 'd879b4f0a2b6b4de5782c783d2202fb6c9cb73f8', width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor" }, h("path", { key: '590eaf035dc51886a303dee77152c64c227e9ccb', d: "M6 9l6 6 6-6", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))), h("div", { key: '02c882442a9cbe57b4888b07c95f2b6f252f1cc7', id: `content-${this.itemId}`, class: "content-wrapper", style: contentStyle, "aria-hidden": !this.open ? 'true' : 'false' }, h("div", { key: '6975a215a16bcfb27cc76aba7daed2a19d0f143d', class: "content", ref: (el) => (this.contentRef = el) }, h("slot", { key: '9b7d50813485ff195d0105bf2d97d1c032ab5aff' }))))));
94
+ }
95
+ get el() { return getElement(this); }
96
+ static get watchers() { return {
97
+ "open": ["handleOpenChange"]
98
+ }; }
99
+ };
100
+ AfAccordionItem.style = afAccordionItemCss;
101
+
102
+ export { AfAccordionItem as af_accordion_item };
103
+ //# sourceMappingURL=af-accordion-item.entry.js.map