@affinda/wc 0.0.13 → 0.0.15

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 (197) hide show
  1. package/dist/affinda/af-card.entry.esm.js.map +1 -1
  2. package/dist/affinda/af-contact-item.entry.esm.js.map +1 -0
  3. package/dist/affinda/af-cta-section.entry.esm.js.map +1 -1
  4. package/dist/affinda/af-footer-column.entry.esm.js.map +1 -0
  5. package/dist/affinda/af-footer-link.entry.esm.js.map +1 -0
  6. package/dist/affinda/af-footer.entry.esm.js.map +1 -1
  7. package/dist/affinda/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.esm.js.map +1 -1
  8. package/dist/affinda/af-social-link.entry.esm.js.map +1 -0
  9. package/dist/affinda/affinda.esm.js +1 -1
  10. package/dist/affinda/index.esm.js +1 -1
  11. package/dist/affinda/p-0eb8173d.entry.js +2 -0
  12. package/dist/affinda/p-0eb8173d.entry.js.map +1 -0
  13. package/dist/affinda/p-1955dbad.entry.js +2 -0
  14. package/dist/affinda/p-1955dbad.entry.js.map +1 -0
  15. package/dist/affinda/p-1b18ab28.entry.js +2 -0
  16. package/dist/affinda/{p-e367e42b.entry.js.map → p-1b18ab28.entry.js.map} +1 -1
  17. package/dist/affinda/{p-83f1f94c.entry.js → p-1e3d40a0.entry.js} +2 -2
  18. package/dist/affinda/{p-07990b1f.entry.js → p-350ac7a5.entry.js} +2 -2
  19. package/dist/affinda/{p-46e32b6d.entry.js → p-71e663b3.entry.js} +2 -2
  20. package/dist/affinda/p-7b8c36e0.entry.js +2 -0
  21. package/dist/affinda/p-7b8c36e0.entry.js.map +1 -0
  22. package/dist/affinda/p-806d129e.entry.js +2 -0
  23. package/dist/affinda/p-806d129e.entry.js.map +1 -0
  24. package/dist/affinda/{p-456e933c.entry.js → p-83b5d5ea.entry.js} +2 -2
  25. package/dist/affinda/{p-e0ce24ab.entry.js → p-9071c2a7.entry.js} +2 -2
  26. package/dist/affinda/{p-ed9af653.entry.js → p-b2fb60c9.entry.js} +2 -2
  27. package/dist/affinda/p-bd30e86a.entry.js +2 -0
  28. package/dist/affinda/p-bd30e86a.entry.js.map +1 -0
  29. package/dist/affinda/{p-1d00696b.entry.js → p-e1198ca3.entry.js} +2 -2
  30. package/dist/affinda/{p-ac7efb48.entry.js → p-e3efc291.entry.js} +2 -2
  31. package/dist/affinda/{p-dec4c4d5.entry.js → p-ec7721cc.entry.js} +2 -2
  32. package/dist/affinda/{p-b6885a9a.entry.js → p-f692a7bd.entry.js} +2 -2
  33. package/dist/affinda/p-f692a7bd.entry.js.map +1 -0
  34. package/dist/affinda/p-fb4e3a8d.entry.js +2 -0
  35. package/dist/affinda/p-fb4e3a8d.entry.js.map +1 -0
  36. package/dist/affinda/{p-0835ca39.entry.js → p-fc2cb8d1.entry.js} +2 -2
  37. package/dist/cjs/af-button-group.cjs.entry.js +1 -1
  38. package/dist/cjs/af-card.cjs.entry.js +2 -2
  39. package/dist/cjs/af-card.entry.cjs.js.map +1 -1
  40. package/dist/cjs/af-client-carousel.cjs.entry.js +1 -1
  41. package/dist/cjs/af-contact-item.cjs.entry.js +22 -0
  42. package/dist/cjs/af-contact-item.entry.cjs.js.map +1 -0
  43. package/dist/cjs/af-cta-section.cjs.entry.js +9 -7
  44. package/dist/cjs/af-cta-section.entry.cjs.js.map +1 -1
  45. package/dist/cjs/af-feature-accordion.cjs.entry.js +2 -2
  46. package/dist/cjs/af-footer-column.cjs.entry.js +20 -0
  47. package/dist/cjs/af-footer-column.entry.cjs.js.map +1 -0
  48. package/dist/cjs/af-footer-link.cjs.entry.js +22 -0
  49. package/dist/cjs/af-footer-link.entry.cjs.js.map +1 -0
  50. package/dist/cjs/af-footer.cjs.entry.js +10 -16
  51. package/dist/cjs/af-footer.entry.cjs.js.map +1 -1
  52. package/dist/cjs/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.cjs.js.map +1 -1
  53. package/dist/cjs/af-heading_5.cjs.entry.js +12 -3
  54. package/dist/cjs/af-hero-section.cjs.entry.js +1 -1
  55. package/dist/cjs/af-logo-well.cjs.entry.js +1 -1
  56. package/dist/cjs/af-section.cjs.entry.js +2 -2
  57. package/dist/cjs/af-social-link.cjs.entry.js +40 -0
  58. package/dist/cjs/af-social-link.entry.cjs.js.map +1 -0
  59. package/dist/cjs/af-testimonial-carousel.cjs.entry.js +2 -2
  60. package/dist/cjs/af-testimonial-stat.cjs.entry.js +1 -1
  61. package/dist/cjs/af-testimonial.cjs.entry.js +1 -1
  62. package/dist/cjs/af-typography-lockup.cjs.entry.js +1 -1
  63. package/dist/cjs/affinda.cjs.js +1 -1
  64. package/dist/cjs/loader.cjs.js +1 -1
  65. package/dist/collection/assets/logo-affinda.svg +19 -0
  66. package/dist/collection/collection-manifest.json +4 -0
  67. package/dist/collection/components/af-button-group/af-button-group.js +1 -1
  68. package/dist/collection/components/af-card/af-card.css +2 -1
  69. package/dist/collection/components/af-card/af-card.js +1 -1
  70. package/dist/collection/components/af-client-carousel/af-client-carousel.js +1 -1
  71. package/dist/collection/components/af-contact-item/af-contact-item.css +26 -0
  72. package/dist/collection/components/af-contact-item/af-contact-item.js +73 -0
  73. package/dist/collection/components/af-contact-item/af-contact-item.js.map +1 -0
  74. package/dist/collection/components/af-cta-section/af-cta-section.css +5 -5
  75. package/dist/collection/components/af-cta-section/af-cta-section.js +34 -12
  76. package/dist/collection/components/af-cta-section/af-cta-section.js.map +1 -1
  77. package/dist/collection/components/af-feature-accordion/af-feature-accordion.js +2 -2
  78. package/dist/collection/components/af-footer/af-footer.css +1 -1
  79. package/dist/collection/components/af-footer/af-footer.js +29 -94
  80. package/dist/collection/components/af-footer/af-footer.js.map +1 -1
  81. package/dist/collection/components/af-footer-column/af-footer-column.css +32 -0
  82. package/dist/collection/components/af-footer-column/af-footer-column.js +51 -0
  83. package/dist/collection/components/af-footer-column/af-footer-column.js.map +1 -0
  84. package/dist/collection/components/af-footer-link/af-footer-link.css +30 -0
  85. package/dist/collection/components/af-footer-link/af-footer-link.js +73 -0
  86. package/dist/collection/components/af-footer-link/af-footer-link.js.map +1 -0
  87. package/dist/collection/components/af-hero-section/af-hero-section.js +1 -1
  88. package/dist/collection/components/af-logo/af-logo.css +10 -2
  89. package/dist/collection/components/af-logo/af-logo.js +55 -2
  90. package/dist/collection/components/af-logo/af-logo.js.map +1 -1
  91. package/dist/collection/components/af-logo-well/af-logo-well.js +1 -1
  92. package/dist/collection/components/af-navbar/af-navbar.js +30 -1
  93. package/dist/collection/components/af-navbar/af-navbar.js.map +1 -1
  94. package/dist/collection/components/af-section/af-section.js +2 -2
  95. package/dist/collection/components/af-social-link/af-social-link.css +21 -0
  96. package/dist/collection/components/af-social-link/af-social-link.js +111 -0
  97. package/dist/collection/components/af-social-link/af-social-link.js.map +1 -0
  98. package/dist/collection/components/af-testimonial/af-testimonial.js +1 -1
  99. package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js +2 -2
  100. package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js +1 -1
  101. package/dist/collection/components/af-typography-lockup/af-typography-lockup.js +1 -1
  102. package/dist/components/af-button-group.js +1 -1
  103. package/dist/components/af-card.js +2 -2
  104. package/dist/components/af-card.js.map +1 -1
  105. package/dist/components/af-client-carousel.js +1 -1
  106. package/dist/components/af-contact-item.d.ts +11 -0
  107. package/dist/components/af-contact-item.js +44 -0
  108. package/dist/components/af-contact-item.js.map +1 -0
  109. package/dist/components/af-cta-section.js +11 -8
  110. package/dist/components/af-cta-section.js.map +1 -1
  111. package/dist/components/af-feature-accordion.js +2 -2
  112. package/dist/components/af-footer-column.d.ts +11 -0
  113. package/dist/components/af-footer-column.js +41 -0
  114. package/dist/components/af-footer-column.js.map +1 -0
  115. package/dist/components/af-footer-link.d.ts +11 -0
  116. package/dist/components/af-footer-link.js +44 -0
  117. package/dist/components/af-footer-link.js.map +1 -0
  118. package/dist/components/af-footer.js +13 -22
  119. package/dist/components/af-footer.js.map +1 -1
  120. package/dist/components/af-hero-section.js +1 -1
  121. package/dist/components/af-logo-well.js +1 -1
  122. package/dist/components/af-logo.js +1 -1
  123. package/dist/components/af-navbar.js +1 -1
  124. package/dist/components/af-section.js +2 -2
  125. package/dist/components/af-social-link.d.ts +11 -0
  126. package/dist/components/af-social-link.js +63 -0
  127. package/dist/components/af-social-link.js.map +1 -0
  128. package/dist/components/af-testimonial-carousel.js +2 -2
  129. package/dist/components/af-testimonial-stat.js +1 -1
  130. package/dist/components/af-testimonial.js +1 -1
  131. package/dist/components/af-typography-lockup.js +1 -1
  132. package/dist/components/index.js +4 -4
  133. package/dist/components/p-CN_K2ni-.js +45 -0
  134. package/dist/components/p-CN_K2ni-.js.map +1 -0
  135. package/dist/components/{p-Thu9mUEn.js → p-CgnBqOVh.js} +13 -4
  136. package/dist/components/p-CgnBqOVh.js.map +1 -0
  137. package/dist/components/{p-7a3XpKXs.js → p-DBFWSHR9.js} +3 -3
  138. package/dist/components/{p-7a3XpKXs.js.map → p-DBFWSHR9.js.map} +1 -1
  139. package/dist/components/{p-emB0l5gm.js → p-LUt2VDjp.js} +3 -3
  140. package/dist/components/{p-emB0l5gm.js.map → p-LUt2VDjp.js.map} +1 -1
  141. package/dist/esm/af-button-group.entry.js +1 -1
  142. package/dist/esm/af-card.entry.js +2 -2
  143. package/dist/esm/af-card.entry.js.map +1 -1
  144. package/dist/esm/af-client-carousel.entry.js +1 -1
  145. package/dist/esm/af-contact-item.entry.js +20 -0
  146. package/dist/esm/af-contact-item.entry.js.map +1 -0
  147. package/dist/esm/af-cta-section.entry.js +9 -7
  148. package/dist/esm/af-cta-section.entry.js.map +1 -1
  149. package/dist/esm/af-feature-accordion.entry.js +2 -2
  150. package/dist/esm/af-footer-column.entry.js +18 -0
  151. package/dist/esm/af-footer-column.entry.js.map +1 -0
  152. package/dist/esm/af-footer-link.entry.js +20 -0
  153. package/dist/esm/af-footer-link.entry.js.map +1 -0
  154. package/dist/esm/af-footer.entry.js +10 -16
  155. package/dist/esm/af-footer.entry.js.map +1 -1
  156. package/dist/esm/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js.map +1 -1
  157. package/dist/esm/af-heading_5.entry.js +12 -3
  158. package/dist/esm/af-hero-section.entry.js +1 -1
  159. package/dist/esm/af-logo-well.entry.js +1 -1
  160. package/dist/esm/af-section.entry.js +2 -2
  161. package/dist/esm/af-social-link.entry.js +38 -0
  162. package/dist/esm/af-social-link.entry.js.map +1 -0
  163. package/dist/esm/af-testimonial-carousel.entry.js +2 -2
  164. package/dist/esm/af-testimonial-stat.entry.js +1 -1
  165. package/dist/esm/af-testimonial.entry.js +1 -1
  166. package/dist/esm/af-typography-lockup.entry.js +1 -1
  167. package/dist/esm/affinda.js +1 -1
  168. package/dist/esm/loader.js +1 -1
  169. package/dist/types/components/af-contact-item/af-contact-item.d.ts +11 -0
  170. package/dist/types/components/af-cta-section/af-cta-section.d.ts +4 -2
  171. package/dist/types/components/af-footer/af-footer.d.ts +10 -15
  172. package/dist/types/components/af-footer-column/af-footer-column.d.ts +9 -0
  173. package/dist/types/components/af-footer-link/af-footer-link.d.ts +11 -0
  174. package/dist/types/components/af-logo/af-logo.d.ts +6 -1
  175. package/dist/types/components/af-navbar/af-navbar.d.ts +5 -0
  176. package/dist/types/components/af-social-link/af-social-link.d.ts +14 -0
  177. package/dist/types/components.d.ts +294 -74
  178. package/package.json +1 -1
  179. package/dist/affinda/p-00214c08.entry.js +0 -2
  180. package/dist/affinda/p-00214c08.entry.js.map +0 -1
  181. package/dist/affinda/p-b3fe032d.entry.js +0 -2
  182. package/dist/affinda/p-b3fe032d.entry.js.map +0 -1
  183. package/dist/affinda/p-b6885a9a.entry.js.map +0 -1
  184. package/dist/affinda/p-e367e42b.entry.js +0 -2
  185. package/dist/components/p-D4s4u7tL.js +0 -35
  186. package/dist/components/p-D4s4u7tL.js.map +0 -1
  187. package/dist/components/p-Thu9mUEn.js.map +0 -1
  188. /package/dist/affinda/{p-83f1f94c.entry.js.map → p-1e3d40a0.entry.js.map} +0 -0
  189. /package/dist/affinda/{p-07990b1f.entry.js.map → p-350ac7a5.entry.js.map} +0 -0
  190. /package/dist/affinda/{p-46e32b6d.entry.js.map → p-71e663b3.entry.js.map} +0 -0
  191. /package/dist/affinda/{p-456e933c.entry.js.map → p-83b5d5ea.entry.js.map} +0 -0
  192. /package/dist/affinda/{p-e0ce24ab.entry.js.map → p-9071c2a7.entry.js.map} +0 -0
  193. /package/dist/affinda/{p-ed9af653.entry.js.map → p-b2fb60c9.entry.js.map} +0 -0
  194. /package/dist/affinda/{p-1d00696b.entry.js.map → p-e1198ca3.entry.js.map} +0 -0
  195. /package/dist/affinda/{p-ac7efb48.entry.js.map → p-e3efc291.entry.js.map} +0 -0
  196. /package/dist/affinda/{p-dec4c4d5.entry.js.map → p-ec7721cc.entry.js.map} +0 -0
  197. /package/dist/affinda/{p-0835ca39.entry.js.map → p-fc2cb8d1.entry.js.map} +0 -0
@@ -106,6 +106,22 @@ export namespace Components {
106
106
  */
107
107
  "size": 'default' | 'large';
108
108
  }
109
+ /**
110
+ * Contact item component for footer
111
+ * Displays a label and value pair (e.g., "Sales enquiries" / "contact@example.com")
112
+ */
113
+ interface AfContactItem {
114
+ /**
115
+ * Contact label (e.g., "Sales enquiries")
116
+ * @default ''
117
+ */
118
+ "label": string;
119
+ /**
120
+ * Contact value (e.g., email address)
121
+ * @default ''
122
+ */
123
+ "value": string;
124
+ }
109
125
  /**
110
126
  * A responsive container component that provides consistent margins and max-width
111
127
  * constraints based on the Affinda grid system.
@@ -119,17 +135,17 @@ export namespace Components {
119
135
  }
120
136
  /**
121
137
  * Call-to-action section component with illustration and decorative background
122
- * Styled to match the affinda.com "See what our AI agents can do for you" section
138
+ * A flexible CTA section with customizable content, buttons, and optional illustration
123
139
  */
124
140
  interface AfCtaSection {
125
141
  /**
126
142
  * Section description
127
- * @default 'Upload your documents and watch our AI agents get to work.'
143
+ * @default ''
128
144
  */
129
145
  "description": string;
130
146
  /**
131
147
  * Section heading
132
- * @default 'See what our AI agents can do for you'
148
+ * @default ''
133
149
  */
134
150
  "heading": string;
135
151
  /**
@@ -139,7 +155,7 @@ export namespace Components {
139
155
  "illustrationUrl": string;
140
156
  /**
141
157
  * Primary button text
142
- * @default 'Try for free'
158
+ * @default ''
143
159
  */
144
160
  "primaryButtonText": string;
145
161
  /**
@@ -148,8 +164,8 @@ export namespace Components {
148
164
  */
149
165
  "primaryButtonUrl": string;
150
166
  /**
151
- * Secondary button text
152
- * @default 'Talk to us'
167
+ * Secondary button text (optional - if empty, button won't show)
168
+ * @default ''
153
169
  */
154
170
  "secondaryButtonText": string;
155
171
  /**
@@ -157,6 +173,11 @@ export namespace Components {
157
173
  * @default '#'
158
174
  */
159
175
  "secondaryButtonUrl": string;
176
+ /**
177
+ * Whether to show the decorative wave background
178
+ * @default true
179
+ */
180
+ "showWaveDecoration": boolean;
160
181
  }
161
182
  /**
162
183
  * Feature accordion component with expandable items and accompanying image
@@ -186,50 +207,63 @@ export namespace Components {
186
207
  "items": string;
187
208
  }
188
209
  /**
189
- * Footer component for Affinda marketing pages
190
- * Features a dark inkwell background with logo, social links, navigation columns, and legal info
210
+ * Footer component for marketing pages
211
+ * Provides a flexible, slot-based layout for footer content
212
+ * All content is passed via slots - no hardcoded links or content
191
213
  */
192
214
  interface AfFooter {
193
215
  /**
194
- * Copyright year
195
- * @default new Date().getFullYear().toString()
196
- */
197
- "copyrightYear": string;
198
- /**
199
- * GitHub URL
200
- * @default 'https://github.com/affinda'
216
+ * Copyright text (e.g., "© 2025 Company Name. All rights reserved.")
217
+ * @default ''
201
218
  */
202
- "githubUrl": string;
219
+ "copyrightText": string;
203
220
  /**
204
- * LinkedIn URL
205
- * @default 'https://www.linkedin.com/company/affinda/'
221
+ * Whether to show the status indicator
222
+ * @default true
206
223
  */
207
- "linkedinUrl": string;
224
+ "showStatus": boolean;
208
225
  /**
209
- * Sales email address
210
- * @default 'contact@affinda.com'
226
+ * Status message text
227
+ * @default ''
211
228
  */
212
- "salesEmail": string;
229
+ "statusText": string;
213
230
  /**
214
231
  * Status page URL
215
- * @default 'https://status.affinda.com'
232
+ * @default ''
216
233
  */
217
234
  "statusUrl": string;
218
235
  /**
219
- * Support email address
220
- * @default 'support@affinda.com'
221
- */
222
- "supportEmail": string;
223
- /**
224
- * Whether all systems are operational
236
+ * Whether systems are operational (shows green/red indicator)
225
237
  * @default true
226
238
  */
227
239
  "systemsOperational": boolean;
240
+ }
241
+ /**
242
+ * Footer navigation column component
243
+ * Used within af-footer to create navigation link groups
244
+ */
245
+ interface AfFooterColumn {
246
+ /**
247
+ * Column heading
248
+ * @default ''
249
+ */
250
+ "heading": string;
251
+ }
252
+ /**
253
+ * Footer link component
254
+ * Styled link for use in footer navigation columns
255
+ */
256
+ interface AfFooterLink {
228
257
  /**
229
- * YouTube URL
230
- * @default 'https://www.youtube.com/@affinda'
258
+ * Whether this is an external link (opens in new tab)
259
+ * @default false
231
260
  */
232
- "youtubeUrl": string;
261
+ "external": boolean;
262
+ /**
263
+ * Link URL
264
+ * @default '#'
265
+ */
266
+ "href": string;
233
267
  }
234
268
  interface AfHeading {
235
269
  /**
@@ -299,9 +333,19 @@ export namespace Components {
299
333
  "variant": 'primary' | 'secondary' | 'outline' | 'ghost';
300
334
  }
301
335
  /**
302
- * Affinda logo component
336
+ * Logo component with default Affinda branding
337
+ * Can be customized with a custom logo URL or by using the slot
303
338
  */
304
339
  interface AfLogo {
340
+ /**
341
+ * Alt text for the logo
342
+ * @default 'Affinda'
343
+ */
344
+ "alt": string;
345
+ /**
346
+ * Custom logo image URL. If provided, displays this instead of the default Affinda logo
347
+ */
348
+ "src"?: string;
305
349
  }
306
350
  /**
307
351
  * A rounded container for displaying client logos
@@ -337,8 +381,15 @@ export namespace Components {
337
381
  * A full-width navigation bar component that provides the main site navigation.
338
382
  * Features a pill-shaped container with logo, navigation links, and action buttons.
339
383
  * Includes mobile hamburger menu.
384
+ * The logo slot can be used to provide a custom logo. If no logo is provided,
385
+ * the default Affinda logo will be displayed.
340
386
  */
341
387
  interface AfNavbar {
388
+ /**
389
+ * Whether to show the default Affinda logo when no logo slot content is provided
390
+ * @default true
391
+ */
392
+ "showDefaultLogo": boolean;
342
393
  }
343
394
  /**
344
395
  * Section layout component for consistent spacing and backgrounds
@@ -360,6 +411,27 @@ export namespace Components {
360
411
  */
361
412
  "padding": 'tight' | 'default' | 'loose';
362
413
  }
414
+ /**
415
+ * Social media link component
416
+ * Circular bordered icon link for social media profiles
417
+ */
418
+ interface AfSocialLink {
419
+ /**
420
+ * Link URL
421
+ * @default '#'
422
+ */
423
+ "href": string;
424
+ /**
425
+ * Icon type: 'linkedin', 'youtube', 'github', 'twitter', 'facebook', or 'custom'
426
+ * @default 'custom'
427
+ */
428
+ "icon": 'linkedin' | 'youtube' | 'github' | 'twitter' | 'facebook' | 'custom';
429
+ /**
430
+ * Accessible label for the link
431
+ * @default ''
432
+ */
433
+ "label": string;
434
+ }
363
435
  interface AfTestimonial {
364
436
  /**
365
437
  * Attribution text (e.g., "– Nathaniel Barrs, CTO, PSC Insurance")
@@ -492,6 +564,16 @@ declare global {
492
564
  prototype: HTMLAfColorSwatchElement;
493
565
  new (): HTMLAfColorSwatchElement;
494
566
  };
567
+ /**
568
+ * Contact item component for footer
569
+ * Displays a label and value pair (e.g., "Sales enquiries" / "contact@example.com")
570
+ */
571
+ interface HTMLAfContactItemElement extends Components.AfContactItem, HTMLStencilElement {
572
+ }
573
+ var HTMLAfContactItemElement: {
574
+ prototype: HTMLAfContactItemElement;
575
+ new (): HTMLAfContactItemElement;
576
+ };
495
577
  /**
496
578
  * A responsive container component that provides consistent margins and max-width
497
579
  * constraints based on the Affinda grid system.
@@ -504,7 +586,7 @@ declare global {
504
586
  };
505
587
  /**
506
588
  * Call-to-action section component with illustration and decorative background
507
- * Styled to match the affinda.com "See what our AI agents can do for you" section
589
+ * A flexible CTA section with customizable content, buttons, and optional illustration
508
590
  */
509
591
  interface HTMLAfCtaSectionElement extends Components.AfCtaSection, HTMLStencilElement {
510
592
  }
@@ -524,8 +606,9 @@ declare global {
524
606
  new (): HTMLAfFeatureAccordionElement;
525
607
  };
526
608
  /**
527
- * Footer component for Affinda marketing pages
528
- * Features a dark inkwell background with logo, social links, navigation columns, and legal info
609
+ * Footer component for marketing pages
610
+ * Provides a flexible, slot-based layout for footer content
611
+ * All content is passed via slots - no hardcoded links or content
529
612
  */
530
613
  interface HTMLAfFooterElement extends Components.AfFooter, HTMLStencilElement {
531
614
  }
@@ -533,6 +616,26 @@ declare global {
533
616
  prototype: HTMLAfFooterElement;
534
617
  new (): HTMLAfFooterElement;
535
618
  };
619
+ /**
620
+ * Footer navigation column component
621
+ * Used within af-footer to create navigation link groups
622
+ */
623
+ interface HTMLAfFooterColumnElement extends Components.AfFooterColumn, HTMLStencilElement {
624
+ }
625
+ var HTMLAfFooterColumnElement: {
626
+ prototype: HTMLAfFooterColumnElement;
627
+ new (): HTMLAfFooterColumnElement;
628
+ };
629
+ /**
630
+ * Footer link component
631
+ * Styled link for use in footer navigation columns
632
+ */
633
+ interface HTMLAfFooterLinkElement extends Components.AfFooterLink, HTMLStencilElement {
634
+ }
635
+ var HTMLAfFooterLinkElement: {
636
+ prototype: HTMLAfFooterLinkElement;
637
+ new (): HTMLAfFooterLinkElement;
638
+ };
536
639
  interface HTMLAfHeadingElement extends Components.AfHeading, HTMLStencilElement {
537
640
  }
538
641
  var HTMLAfHeadingElement: {
@@ -555,7 +658,8 @@ declare global {
555
658
  new (): HTMLAfIconButtonElement;
556
659
  };
557
660
  /**
558
- * Affinda logo component
661
+ * Logo component with default Affinda branding
662
+ * Can be customized with a custom logo URL or by using the slot
559
663
  */
560
664
  interface HTMLAfLogoElement extends Components.AfLogo, HTMLStencilElement {
561
665
  }
@@ -586,6 +690,8 @@ declare global {
586
690
  * A full-width navigation bar component that provides the main site navigation.
587
691
  * Features a pill-shaped container with logo, navigation links, and action buttons.
588
692
  * Includes mobile hamburger menu.
693
+ * The logo slot can be used to provide a custom logo. If no logo is provided,
694
+ * the default Affinda logo will be displayed.
589
695
  */
590
696
  interface HTMLAfNavbarElement extends Components.AfNavbar, HTMLStencilElement {
591
697
  }
@@ -602,6 +708,16 @@ declare global {
602
708
  prototype: HTMLAfSectionElement;
603
709
  new (): HTMLAfSectionElement;
604
710
  };
711
+ /**
712
+ * Social media link component
713
+ * Circular bordered icon link for social media profiles
714
+ */
715
+ interface HTMLAfSocialLinkElement extends Components.AfSocialLink, HTMLStencilElement {
716
+ }
717
+ var HTMLAfSocialLinkElement: {
718
+ prototype: HTMLAfSocialLinkElement;
719
+ new (): HTMLAfSocialLinkElement;
720
+ };
605
721
  interface HTMLAfTestimonialElement extends Components.AfTestimonial, HTMLStencilElement {
606
722
  }
607
723
  var HTMLAfTestimonialElement: {
@@ -639,10 +755,13 @@ declare global {
639
755
  "af-card": HTMLAfCardElement;
640
756
  "af-client-carousel": HTMLAfClientCarouselElement;
641
757
  "af-color-swatch": HTMLAfColorSwatchElement;
758
+ "af-contact-item": HTMLAfContactItemElement;
642
759
  "af-container": HTMLAfContainerElement;
643
760
  "af-cta-section": HTMLAfCtaSectionElement;
644
761
  "af-feature-accordion": HTMLAfFeatureAccordionElement;
645
762
  "af-footer": HTMLAfFooterElement;
763
+ "af-footer-column": HTMLAfFooterColumnElement;
764
+ "af-footer-link": HTMLAfFooterLinkElement;
646
765
  "af-heading": HTMLAfHeadingElement;
647
766
  "af-hero-section": HTMLAfHeroSectionElement;
648
767
  "af-icon-button": HTMLAfIconButtonElement;
@@ -651,6 +770,7 @@ declare global {
651
770
  "af-nav-item": HTMLAfNavItemElement;
652
771
  "af-navbar": HTMLAfNavbarElement;
653
772
  "af-section": HTMLAfSectionElement;
773
+ "af-social-link": HTMLAfSocialLinkElement;
654
774
  "af-testimonial": HTMLAfTestimonialElement;
655
775
  "af-testimonial-carousel": HTMLAfTestimonialCarouselElement;
656
776
  "af-testimonial-stat": HTMLAfTestimonialStatElement;
@@ -759,6 +879,22 @@ declare namespace LocalJSX {
759
879
  */
760
880
  "size"?: 'default' | 'large';
761
881
  }
882
+ /**
883
+ * Contact item component for footer
884
+ * Displays a label and value pair (e.g., "Sales enquiries" / "contact@example.com")
885
+ */
886
+ interface AfContactItem {
887
+ /**
888
+ * Contact label (e.g., "Sales enquiries")
889
+ * @default ''
890
+ */
891
+ "label"?: string;
892
+ /**
893
+ * Contact value (e.g., email address)
894
+ * @default ''
895
+ */
896
+ "value"?: string;
897
+ }
762
898
  /**
763
899
  * A responsive container component that provides consistent margins and max-width
764
900
  * constraints based on the Affinda grid system.
@@ -772,17 +908,17 @@ declare namespace LocalJSX {
772
908
  }
773
909
  /**
774
910
  * Call-to-action section component with illustration and decorative background
775
- * Styled to match the affinda.com "See what our AI agents can do for you" section
911
+ * A flexible CTA section with customizable content, buttons, and optional illustration
776
912
  */
777
913
  interface AfCtaSection {
778
914
  /**
779
915
  * Section description
780
- * @default 'Upload your documents and watch our AI agents get to work.'
916
+ * @default ''
781
917
  */
782
918
  "description"?: string;
783
919
  /**
784
920
  * Section heading
785
- * @default 'See what our AI agents can do for you'
921
+ * @default ''
786
922
  */
787
923
  "heading"?: string;
788
924
  /**
@@ -792,7 +928,7 @@ declare namespace LocalJSX {
792
928
  "illustrationUrl"?: string;
793
929
  /**
794
930
  * Primary button text
795
- * @default 'Try for free'
931
+ * @default ''
796
932
  */
797
933
  "primaryButtonText"?: string;
798
934
  /**
@@ -801,8 +937,8 @@ declare namespace LocalJSX {
801
937
  */
802
938
  "primaryButtonUrl"?: string;
803
939
  /**
804
- * Secondary button text
805
- * @default 'Talk to us'
940
+ * Secondary button text (optional - if empty, button won't show)
941
+ * @default ''
806
942
  */
807
943
  "secondaryButtonText"?: string;
808
944
  /**
@@ -810,6 +946,11 @@ declare namespace LocalJSX {
810
946
  * @default '#'
811
947
  */
812
948
  "secondaryButtonUrl"?: string;
949
+ /**
950
+ * Whether to show the decorative wave background
951
+ * @default true
952
+ */
953
+ "showWaveDecoration"?: boolean;
813
954
  }
814
955
  /**
815
956
  * Feature accordion component with expandable items and accompanying image
@@ -839,50 +980,63 @@ declare namespace LocalJSX {
839
980
  "items"?: string;
840
981
  }
841
982
  /**
842
- * Footer component for Affinda marketing pages
843
- * Features a dark inkwell background with logo, social links, navigation columns, and legal info
983
+ * Footer component for marketing pages
984
+ * Provides a flexible, slot-based layout for footer content
985
+ * All content is passed via slots - no hardcoded links or content
844
986
  */
845
987
  interface AfFooter {
846
988
  /**
847
- * Copyright year
848
- * @default new Date().getFullYear().toString()
849
- */
850
- "copyrightYear"?: string;
851
- /**
852
- * GitHub URL
853
- * @default 'https://github.com/affinda'
989
+ * Copyright text (e.g., "© 2025 Company Name. All rights reserved.")
990
+ * @default ''
854
991
  */
855
- "githubUrl"?: string;
992
+ "copyrightText"?: string;
856
993
  /**
857
- * LinkedIn URL
858
- * @default 'https://www.linkedin.com/company/affinda/'
994
+ * Whether to show the status indicator
995
+ * @default true
859
996
  */
860
- "linkedinUrl"?: string;
997
+ "showStatus"?: boolean;
861
998
  /**
862
- * Sales email address
863
- * @default 'contact@affinda.com'
999
+ * Status message text
1000
+ * @default ''
864
1001
  */
865
- "salesEmail"?: string;
1002
+ "statusText"?: string;
866
1003
  /**
867
1004
  * Status page URL
868
- * @default 'https://status.affinda.com'
1005
+ * @default ''
869
1006
  */
870
1007
  "statusUrl"?: string;
871
1008
  /**
872
- * Support email address
873
- * @default 'support@affinda.com'
874
- */
875
- "supportEmail"?: string;
876
- /**
877
- * Whether all systems are operational
1009
+ * Whether systems are operational (shows green/red indicator)
878
1010
  * @default true
879
1011
  */
880
1012
  "systemsOperational"?: boolean;
1013
+ }
1014
+ /**
1015
+ * Footer navigation column component
1016
+ * Used within af-footer to create navigation link groups
1017
+ */
1018
+ interface AfFooterColumn {
881
1019
  /**
882
- * YouTube URL
883
- * @default 'https://www.youtube.com/@affinda'
1020
+ * Column heading
1021
+ * @default ''
884
1022
  */
885
- "youtubeUrl"?: string;
1023
+ "heading"?: string;
1024
+ }
1025
+ /**
1026
+ * Footer link component
1027
+ * Styled link for use in footer navigation columns
1028
+ */
1029
+ interface AfFooterLink {
1030
+ /**
1031
+ * Whether this is an external link (opens in new tab)
1032
+ * @default false
1033
+ */
1034
+ "external"?: boolean;
1035
+ /**
1036
+ * Link URL
1037
+ * @default '#'
1038
+ */
1039
+ "href"?: string;
886
1040
  }
887
1041
  interface AfHeading {
888
1042
  /**
@@ -952,9 +1106,19 @@ declare namespace LocalJSX {
952
1106
  "variant"?: 'primary' | 'secondary' | 'outline' | 'ghost';
953
1107
  }
954
1108
  /**
955
- * Affinda logo component
1109
+ * Logo component with default Affinda branding
1110
+ * Can be customized with a custom logo URL or by using the slot
956
1111
  */
957
1112
  interface AfLogo {
1113
+ /**
1114
+ * Alt text for the logo
1115
+ * @default 'Affinda'
1116
+ */
1117
+ "alt"?: string;
1118
+ /**
1119
+ * Custom logo image URL. If provided, displays this instead of the default Affinda logo
1120
+ */
1121
+ "src"?: string;
958
1122
  }
959
1123
  /**
960
1124
  * A rounded container for displaying client logos
@@ -990,8 +1154,15 @@ declare namespace LocalJSX {
990
1154
  * A full-width navigation bar component that provides the main site navigation.
991
1155
  * Features a pill-shaped container with logo, navigation links, and action buttons.
992
1156
  * Includes mobile hamburger menu.
1157
+ * The logo slot can be used to provide a custom logo. If no logo is provided,
1158
+ * the default Affinda logo will be displayed.
993
1159
  */
994
1160
  interface AfNavbar {
1161
+ /**
1162
+ * Whether to show the default Affinda logo when no logo slot content is provided
1163
+ * @default true
1164
+ */
1165
+ "showDefaultLogo"?: boolean;
995
1166
  }
996
1167
  /**
997
1168
  * Section layout component for consistent spacing and backgrounds
@@ -1013,6 +1184,27 @@ declare namespace LocalJSX {
1013
1184
  */
1014
1185
  "padding"?: 'tight' | 'default' | 'loose';
1015
1186
  }
1187
+ /**
1188
+ * Social media link component
1189
+ * Circular bordered icon link for social media profiles
1190
+ */
1191
+ interface AfSocialLink {
1192
+ /**
1193
+ * Link URL
1194
+ * @default '#'
1195
+ */
1196
+ "href"?: string;
1197
+ /**
1198
+ * Icon type: 'linkedin', 'youtube', 'github', 'twitter', 'facebook', or 'custom'
1199
+ * @default 'custom'
1200
+ */
1201
+ "icon"?: 'linkedin' | 'youtube' | 'github' | 'twitter' | 'facebook' | 'custom';
1202
+ /**
1203
+ * Accessible label for the link
1204
+ * @default ''
1205
+ */
1206
+ "label"?: string;
1207
+ }
1016
1208
  interface AfTestimonial {
1017
1209
  /**
1018
1210
  * Attribution text (e.g., "– Nathaniel Barrs, CTO, PSC Insurance")
@@ -1107,10 +1299,13 @@ declare namespace LocalJSX {
1107
1299
  "af-card": AfCard;
1108
1300
  "af-client-carousel": AfClientCarousel;
1109
1301
  "af-color-swatch": AfColorSwatch;
1302
+ "af-contact-item": AfContactItem;
1110
1303
  "af-container": AfContainer;
1111
1304
  "af-cta-section": AfCtaSection;
1112
1305
  "af-feature-accordion": AfFeatureAccordion;
1113
1306
  "af-footer": AfFooter;
1307
+ "af-footer-column": AfFooterColumn;
1308
+ "af-footer-link": AfFooterLink;
1114
1309
  "af-heading": AfHeading;
1115
1310
  "af-hero-section": AfHeroSection;
1116
1311
  "af-icon-button": AfIconButton;
@@ -1119,6 +1314,7 @@ declare namespace LocalJSX {
1119
1314
  "af-nav-item": AfNavItem;
1120
1315
  "af-navbar": AfNavbar;
1121
1316
  "af-section": AfSection;
1317
+ "af-social-link": AfSocialLink;
1122
1318
  "af-testimonial": AfTestimonial;
1123
1319
  "af-testimonial-carousel": AfTestimonialCarousel;
1124
1320
  "af-testimonial-stat": AfTestimonialStat;
@@ -1143,6 +1339,11 @@ declare module "@stencil/core" {
1143
1339
  */
1144
1340
  "af-client-carousel": LocalJSX.AfClientCarousel & JSXBase.HTMLAttributes<HTMLAfClientCarouselElement>;
1145
1341
  "af-color-swatch": LocalJSX.AfColorSwatch & JSXBase.HTMLAttributes<HTMLAfColorSwatchElement>;
1342
+ /**
1343
+ * Contact item component for footer
1344
+ * Displays a label and value pair (e.g., "Sales enquiries" / "contact@example.com")
1345
+ */
1346
+ "af-contact-item": LocalJSX.AfContactItem & JSXBase.HTMLAttributes<HTMLAfContactItemElement>;
1146
1347
  /**
1147
1348
  * A responsive container component that provides consistent margins and max-width
1148
1349
  * constraints based on the Affinda grid system.
@@ -1150,7 +1351,7 @@ declare module "@stencil/core" {
1150
1351
  "af-container": LocalJSX.AfContainer & JSXBase.HTMLAttributes<HTMLAfContainerElement>;
1151
1352
  /**
1152
1353
  * Call-to-action section component with illustration and decorative background
1153
- * Styled to match the affinda.com "See what our AI agents can do for you" section
1354
+ * A flexible CTA section with customizable content, buttons, and optional illustration
1154
1355
  */
1155
1356
  "af-cta-section": LocalJSX.AfCtaSection & JSXBase.HTMLAttributes<HTMLAfCtaSectionElement>;
1156
1357
  /**
@@ -1160,10 +1361,21 @@ declare module "@stencil/core" {
1160
1361
  */
1161
1362
  "af-feature-accordion": LocalJSX.AfFeatureAccordion & JSXBase.HTMLAttributes<HTMLAfFeatureAccordionElement>;
1162
1363
  /**
1163
- * Footer component for Affinda marketing pages
1164
- * Features a dark inkwell background with logo, social links, navigation columns, and legal info
1364
+ * Footer component for marketing pages
1365
+ * Provides a flexible, slot-based layout for footer content
1366
+ * All content is passed via slots - no hardcoded links or content
1165
1367
  */
1166
1368
  "af-footer": LocalJSX.AfFooter & JSXBase.HTMLAttributes<HTMLAfFooterElement>;
1369
+ /**
1370
+ * Footer navigation column component
1371
+ * Used within af-footer to create navigation link groups
1372
+ */
1373
+ "af-footer-column": LocalJSX.AfFooterColumn & JSXBase.HTMLAttributes<HTMLAfFooterColumnElement>;
1374
+ /**
1375
+ * Footer link component
1376
+ * Styled link for use in footer navigation columns
1377
+ */
1378
+ "af-footer-link": LocalJSX.AfFooterLink & JSXBase.HTMLAttributes<HTMLAfFooterLinkElement>;
1167
1379
  "af-heading": LocalJSX.AfHeading & JSXBase.HTMLAttributes<HTMLAfHeadingElement>;
1168
1380
  /**
1169
1381
  * Hero section component for marketing pages
@@ -1171,7 +1383,8 @@ declare module "@stencil/core" {
1171
1383
  "af-hero-section": LocalJSX.AfHeroSection & JSXBase.HTMLAttributes<HTMLAfHeroSectionElement>;
1172
1384
  "af-icon-button": LocalJSX.AfIconButton & JSXBase.HTMLAttributes<HTMLAfIconButtonElement>;
1173
1385
  /**
1174
- * Affinda logo component
1386
+ * Logo component with default Affinda branding
1387
+ * Can be customized with a custom logo URL or by using the slot
1175
1388
  */
1176
1389
  "af-logo": LocalJSX.AfLogo & JSXBase.HTMLAttributes<HTMLAfLogoElement>;
1177
1390
  /**
@@ -1187,12 +1400,19 @@ declare module "@stencil/core" {
1187
1400
  * A full-width navigation bar component that provides the main site navigation.
1188
1401
  * Features a pill-shaped container with logo, navigation links, and action buttons.
1189
1402
  * Includes mobile hamburger menu.
1403
+ * The logo slot can be used to provide a custom logo. If no logo is provided,
1404
+ * the default Affinda logo will be displayed.
1190
1405
  */
1191
1406
  "af-navbar": LocalJSX.AfNavbar & JSXBase.HTMLAttributes<HTMLAfNavbarElement>;
1192
1407
  /**
1193
1408
  * Section layout component for consistent spacing and backgrounds
1194
1409
  */
1195
1410
  "af-section": LocalJSX.AfSection & JSXBase.HTMLAttributes<HTMLAfSectionElement>;
1411
+ /**
1412
+ * Social media link component
1413
+ * Circular bordered icon link for social media profiles
1414
+ */
1415
+ "af-social-link": LocalJSX.AfSocialLink & JSXBase.HTMLAttributes<HTMLAfSocialLinkElement>;
1196
1416
  "af-testimonial": LocalJSX.AfTestimonial & JSXBase.HTMLAttributes<HTMLAfTestimonialElement>;
1197
1417
  "af-testimonial-carousel": LocalJSX.AfTestimonialCarousel & JSXBase.HTMLAttributes<HTMLAfTestimonialCarouselElement>;
1198
1418
  "af-testimonial-stat": LocalJSX.AfTestimonialStat & JSXBase.HTMLAttributes<HTMLAfTestimonialStatElement>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@affinda/wc",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs.js",