@affinda/wc 0.0.15 → 0.0.16
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.
- package/dist/affinda/af-aspect-ratio.entry.esm.js.map +1 -1
- package/dist/affinda/af-button.entry.esm.js.map +1 -1
- package/dist/affinda/af-card.entry.esm.js.map +1 -1
- package/dist/affinda/af-checkbox.entry.esm.js.map +1 -0
- package/dist/affinda/af-client-carousel.entry.esm.js.map +1 -1
- package/dist/affinda/af-feature-accordion.entry.esm.js.map +1 -1
- package/dist/affinda/af-feature-card.entry.esm.js.map +1 -0
- package/dist/affinda/af-feature-grid.entry.esm.js.map +1 -0
- package/dist/affinda/af-fieldset.entry.esm.js.map +1 -0
- package/dist/affinda/af-grid-callout.entry.esm.js.map +1 -0
- package/dist/affinda/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.esm.js.map +1 -1
- package/dist/affinda/af-hero-section.entry.esm.js.map +1 -1
- package/dist/affinda/af-icon-box.entry.esm.js.map +1 -0
- package/dist/affinda/af-icon-button.entry.esm.js.map +1 -1
- package/dist/affinda/af-icon-text.entry.esm.js.map +1 -0
- package/dist/affinda/af-icon.entry.esm.js.map +1 -0
- package/dist/affinda/af-illustrated-card.entry.esm.js.map +1 -0
- package/dist/affinda/af-image.entry.esm.js.map +1 -0
- package/dist/affinda/af-in-page-banner.entry.esm.js.map +1 -0
- package/dist/affinda/af-input.entry.esm.js.map +1 -0
- package/dist/affinda/af-logo-well.entry.esm.js.map +1 -1
- package/dist/affinda/af-nav-card.entry.esm.js.map +1 -0
- package/dist/affinda/af-nav-menu-nest.entry.esm.js.map +1 -0
- package/dist/affinda/af-nav-menu.entry.esm.js.map +1 -0
- package/dist/affinda/af-number-badge.entry.esm.js.map +1 -0
- package/dist/affinda/af-progress-line.entry.esm.js.map +1 -0
- package/dist/affinda/af-radio.entry.esm.js.map +1 -0
- package/dist/affinda/af-section.entry.esm.js.map +1 -1
- package/dist/affinda/af-split-section.entry.esm.js.map +1 -0
- package/dist/affinda/af-switch.entry.esm.js.map +1 -0
- package/dist/affinda/af-tab-bar.entry.esm.js.map +1 -0
- package/dist/affinda/af-tab.entry.esm.js.map +1 -0
- package/dist/affinda/af-tag.entry.esm.js.map +1 -0
- package/dist/affinda/af-testimonial-carousel.entry.esm.js.map +1 -1
- package/dist/affinda/af-testimonial-stat.entry.esm.js.map +1 -1
- package/dist/affinda/af-testimonial.entry.esm.js.map +1 -1
- package/dist/affinda/af-text-image-nest.entry.esm.js.map +1 -0
- package/dist/affinda/af-text-image.entry.esm.js.map +1 -0
- package/dist/affinda/af-textarea.entry.esm.js.map +1 -0
- package/dist/affinda/af-typography-lockup.entry.esm.js.map +1 -1
- package/dist/affinda/af-video-container.entry.esm.js.map +1 -0
- package/dist/affinda/affinda.css +1 -1
- package/dist/affinda/affinda.esm.js +1 -1
- package/dist/affinda/index.esm.js +1 -1
- package/dist/affinda/index.esm.js.map +1 -1
- package/dist/affinda/p-0cd160a4.entry.js +2 -0
- package/dist/affinda/p-0cd160a4.entry.js.map +1 -0
- package/dist/affinda/p-10801ee1.entry.js +2 -0
- package/dist/affinda/p-10801ee1.entry.js.map +1 -0
- package/dist/affinda/p-1d65fd18.entry.js +2 -0
- package/dist/affinda/p-1d65fd18.entry.js.map +1 -0
- package/dist/affinda/p-1d9e532f.entry.js +2 -0
- package/dist/affinda/p-231ba1d0.entry.js +2 -0
- package/dist/affinda/p-231ba1d0.entry.js.map +1 -0
- package/dist/affinda/p-2b4dc22c.entry.js +2 -0
- package/dist/affinda/p-2b4dc22c.entry.js.map +1 -0
- package/dist/affinda/{p-fb4e3a8d.entry.js → p-31d4c1a4.entry.js} +2 -2
- package/dist/affinda/p-3d3c9f62.entry.js +2 -0
- package/dist/affinda/p-3d3c9f62.entry.js.map +1 -0
- package/dist/affinda/p-3f691578.entry.js +2 -0
- package/dist/affinda/p-3f691578.entry.js.map +1 -0
- package/dist/affinda/p-425253ee.entry.js +2 -0
- package/dist/affinda/{p-9071c2a7.entry.js.map → p-425253ee.entry.js.map} +1 -1
- package/dist/affinda/p-44b25840.entry.js +2 -0
- package/dist/affinda/p-44b25840.entry.js.map +1 -0
- package/dist/affinda/p-45e1923c.entry.js +2 -0
- package/dist/affinda/p-45e1923c.entry.js.map +1 -0
- package/dist/affinda/p-52ab3bf0.entry.js +2 -0
- package/dist/affinda/p-52ab3bf0.entry.js.map +1 -0
- package/dist/affinda/p-53ae16fe.entry.js +2 -0
- package/dist/affinda/p-53b5149d.entry.js +2 -0
- package/dist/affinda/p-53b5149d.entry.js.map +1 -0
- package/dist/affinda/p-57713942.entry.js +2 -0
- package/dist/affinda/p-57713942.entry.js.map +1 -0
- package/dist/affinda/p-5bbf2c8c.entry.js +2 -0
- package/dist/affinda/p-5bbf2c8c.entry.js.map +1 -0
- package/dist/affinda/p-697bf0b7.entry.js +2 -0
- package/dist/affinda/p-697bf0b7.entry.js.map +1 -0
- package/dist/affinda/p-6b2d0ff4.entry.js +2 -0
- package/dist/affinda/p-6b2d0ff4.entry.js.map +1 -0
- package/dist/affinda/p-71144002.entry.js +2 -0
- package/dist/affinda/p-71144002.entry.js.map +1 -0
- package/dist/affinda/{p-ec7721cc.entry.js → p-72f02343.entry.js} +2 -2
- package/dist/affinda/p-77bf8a81.entry.js +2 -0
- package/dist/affinda/p-77bf8a81.entry.js.map +1 -0
- package/dist/affinda/p-7f20fbe0.entry.js +2 -0
- package/dist/affinda/p-7f20fbe0.entry.js.map +1 -0
- package/dist/affinda/p-81571029.entry.js +2 -0
- package/dist/affinda/p-81571029.entry.js.map +1 -0
- package/dist/affinda/p-85a78bcf.entry.js +2 -0
- package/dist/affinda/p-85a78bcf.entry.js.map +1 -0
- package/dist/affinda/p-861f4f57.entry.js +2 -0
- package/dist/affinda/p-861f4f57.entry.js.map +1 -0
- package/dist/affinda/p-864778d0.entry.js +2 -0
- package/dist/affinda/p-864778d0.entry.js.map +1 -0
- package/dist/affinda/p-8ea22b5d.entry.js +2 -0
- package/dist/affinda/p-8ea22b5d.entry.js.map +1 -0
- package/dist/affinda/{p-bd30e86a.entry.js → p-96eac3af.entry.js} +2 -2
- package/dist/affinda/p-98901734.entry.js +2 -0
- package/dist/affinda/p-98901734.entry.js.map +1 -0
- package/dist/affinda/p-9f470d8b.entry.js +2 -0
- package/dist/affinda/p-9f470d8b.entry.js.map +1 -0
- package/dist/affinda/p-BmU_CFQ4.js +3 -0
- package/dist/affinda/p-BmU_CFQ4.js.map +1 -0
- package/dist/affinda/p-a36abb83.entry.js +2 -0
- package/dist/affinda/{p-fc2cb8d1.entry.js.map → p-a36abb83.entry.js.map} +1 -1
- package/dist/affinda/p-a4e4eb4d.entry.js +2 -0
- package/dist/affinda/{p-d3b2ab0e.entry.js.map → p-a4e4eb4d.entry.js.map} +1 -1
- package/dist/affinda/p-a6365e94.entry.js +2 -0
- package/dist/affinda/p-a6365e94.entry.js.map +1 -0
- package/dist/affinda/p-aaa28806.entry.js +2 -0
- package/dist/affinda/p-aaa28806.entry.js.map +1 -0
- package/dist/affinda/{p-806d129e.entry.js → p-acbbe39a.entry.js} +2 -2
- package/dist/affinda/p-b17735c9.entry.js +2 -0
- package/dist/affinda/p-b17735c9.entry.js.map +1 -0
- package/dist/affinda/p-b3b0ed0c.entry.js +2 -0
- package/dist/affinda/p-b3b0ed0c.entry.js.map +1 -0
- package/dist/affinda/p-be049760.entry.js +2 -0
- package/dist/affinda/p-be049760.entry.js.map +1 -0
- package/dist/affinda/p-c0ee2420.entry.js +2 -0
- package/dist/affinda/p-c0ee2420.entry.js.map +1 -0
- package/dist/affinda/{p-3a9646e6.entry.js → p-c11088fa.entry.js} +2 -2
- package/dist/affinda/p-c298b370.entry.js +2 -0
- package/dist/affinda/p-c298b370.entry.js.map +1 -0
- package/dist/affinda/p-c3e31251.entry.js +2 -0
- package/dist/affinda/p-c3e31251.entry.js.map +1 -0
- package/dist/affinda/p-ce3356f1.entry.js +2 -0
- package/dist/affinda/p-ce3356f1.entry.js.map +1 -0
- package/dist/affinda/p-df148383.entry.js +2 -0
- package/dist/affinda/{p-350ac7a5.entry.js.map → p-df148383.entry.js.map} +1 -1
- package/dist/affinda/{p-f8ac0120.entry.js → p-e5af21c2.entry.js} +2 -2
- package/dist/affinda/p-e5d9913c.entry.js +2 -0
- package/dist/affinda/p-e5d9913c.entry.js.map +1 -0
- package/dist/affinda/p-ea06c83b.entry.js +2 -0
- package/dist/affinda/p-ea06c83b.entry.js.map +1 -0
- package/dist/affinda/p-f45b0060.entry.js +2 -0
- package/dist/affinda/{p-050f98cd.entry.js.map → p-f45b0060.entry.js.map} +1 -1
- package/dist/cjs/af-aspect-ratio.cjs.entry.js +2 -2
- package/dist/cjs/af-aspect-ratio.entry.cjs.js.map +1 -1
- package/dist/cjs/af-button-group.cjs.entry.js +2 -2
- package/dist/cjs/af-button.cjs.entry.js +25 -12
- package/dist/cjs/af-button.entry.cjs.js.map +1 -1
- package/dist/cjs/af-card.cjs.entry.js +17 -7
- package/dist/cjs/af-card.entry.cjs.js.map +1 -1
- package/dist/cjs/af-checkbox.cjs.entry.js +58 -0
- package/dist/cjs/af-checkbox.entry.cjs.js.map +1 -0
- package/dist/cjs/af-client-carousel.cjs.entry.js +5 -7
- package/dist/cjs/af-client-carousel.entry.cjs.js.map +1 -1
- package/dist/cjs/af-color-swatch.cjs.entry.js +1 -1
- package/dist/cjs/af-contact-item.cjs.entry.js +2 -2
- package/dist/cjs/af-container.cjs.entry.js +1 -1
- package/dist/cjs/af-feature-accordion.cjs.entry.js +4 -4
- package/dist/cjs/af-feature-accordion.entry.cjs.js.map +1 -1
- package/dist/cjs/af-feature-card.cjs.entry.js +59 -0
- package/dist/cjs/af-feature-card.entry.cjs.js.map +1 -0
- package/dist/cjs/af-feature-grid.cjs.entry.js +93 -0
- package/dist/cjs/af-feature-grid.entry.cjs.js.map +1 -0
- package/dist/cjs/af-fieldset.cjs.entry.js +37 -0
- package/dist/cjs/af-fieldset.entry.cjs.js.map +1 -0
- package/dist/cjs/af-footer-column.cjs.entry.js +2 -2
- package/dist/cjs/af-footer-link.cjs.entry.js +2 -2
- package/dist/cjs/af-footer.cjs.entry.js +2 -2
- package/dist/cjs/af-grid-callout.cjs.entry.js +51 -0
- package/dist/cjs/af-grid-callout.entry.cjs.js.map +1 -0
- package/dist/cjs/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.cjs.js.map +1 -1
- package/dist/cjs/af-heading_5.cjs.entry.js +67 -27
- package/dist/cjs/af-hero-section.cjs.entry.js +11 -5
- package/dist/cjs/af-hero-section.entry.cjs.js.map +1 -1
- package/dist/cjs/af-icon-box.cjs.entry.js +30 -0
- package/dist/cjs/af-icon-box.entry.cjs.js.map +1 -0
- package/dist/cjs/af-icon-button.cjs.entry.js +6 -3
- package/dist/cjs/af-icon-button.entry.cjs.js.map +1 -1
- package/dist/cjs/af-icon-text.cjs.entry.js +36 -0
- package/dist/cjs/af-icon-text.entry.cjs.js.map +1 -0
- package/dist/cjs/af-icon.cjs.entry.js +352 -0
- package/dist/cjs/af-icon.entry.cjs.js.map +1 -0
- package/dist/cjs/af-illustrated-card.cjs.entry.js +36 -0
- package/dist/cjs/af-illustrated-card.entry.cjs.js.map +1 -0
- package/dist/cjs/af-image.cjs.entry.js +18 -0
- package/dist/cjs/af-image.entry.cjs.js.map +1 -0
- package/dist/cjs/af-in-page-banner.cjs.entry.js +47 -0
- package/dist/cjs/af-in-page-banner.entry.cjs.js.map +1 -0
- package/dist/cjs/af-input.cjs.entry.js +104 -0
- package/dist/cjs/af-input.entry.cjs.js.map +1 -0
- package/dist/cjs/af-logo-well.cjs.entry.js +3 -3
- package/dist/cjs/af-logo-well.entry.cjs.js.map +1 -1
- package/dist/cjs/af-nav-card.cjs.entry.js +37 -0
- package/dist/cjs/af-nav-card.entry.cjs.js.map +1 -0
- package/dist/cjs/af-nav-menu-nest.cjs.entry.js +43 -0
- package/dist/cjs/af-nav-menu-nest.entry.cjs.js.map +1 -0
- package/dist/cjs/af-nav-menu.cjs.entry.js +41 -0
- package/dist/cjs/af-nav-menu.entry.cjs.js.map +1 -0
- package/dist/cjs/af-number-badge.cjs.entry.js +42 -0
- package/dist/cjs/af-number-badge.entry.cjs.js.map +1 -0
- package/dist/cjs/af-progress-line.cjs.entry.js +33 -0
- package/dist/cjs/af-progress-line.entry.cjs.js.map +1 -0
- package/dist/cjs/af-radio.cjs.entry.js +43 -0
- package/dist/cjs/af-radio.entry.cjs.js.map +1 -0
- package/dist/cjs/af-section.cjs.entry.js +6 -6
- package/dist/cjs/af-section.entry.cjs.js.map +1 -1
- package/dist/cjs/af-social-link.cjs.entry.js +2 -2
- package/dist/cjs/af-split-section.cjs.entry.js +41 -0
- package/dist/cjs/af-split-section.entry.cjs.js.map +1 -0
- package/dist/cjs/af-switch.cjs.entry.js +48 -0
- package/dist/cjs/af-switch.entry.cjs.js.map +1 -0
- package/dist/cjs/af-tab-bar.cjs.entry.js +88 -0
- package/dist/cjs/af-tab-bar.entry.cjs.js.map +1 -0
- package/dist/cjs/af-tab.cjs.entry.js +64 -0
- package/dist/cjs/af-tab.entry.cjs.js.map +1 -0
- package/dist/cjs/af-tag.cjs.entry.js +37 -0
- package/dist/cjs/af-tag.entry.cjs.js.map +1 -0
- package/dist/cjs/af-testimonial-carousel.cjs.entry.js +27 -15
- package/dist/cjs/af-testimonial-carousel.entry.cjs.js.map +1 -1
- package/dist/cjs/af-testimonial-stat.cjs.entry.js +3 -3
- package/dist/cjs/af-testimonial-stat.entry.cjs.js.map +1 -1
- package/dist/cjs/af-testimonial.cjs.entry.js +27 -3
- package/dist/cjs/af-testimonial.entry.cjs.js.map +1 -1
- package/dist/cjs/af-text-image-nest.cjs.entry.js +30 -0
- package/dist/cjs/af-text-image-nest.entry.cjs.js.map +1 -0
- package/dist/cjs/af-text-image.cjs.entry.js +63 -0
- package/dist/cjs/af-text-image.entry.cjs.js.map +1 -0
- package/dist/cjs/af-textarea.cjs.entry.js +93 -0
- package/dist/cjs/af-textarea.entry.cjs.js.map +1 -0
- package/dist/cjs/af-typography-lockup.cjs.entry.js +7 -7
- package/dist/cjs/af-typography-lockup.entry.cjs.js.map +1 -1
- package/dist/cjs/af-video-container.cjs.entry.js +35 -0
- package/dist/cjs/af-video-container.entry.cjs.js.map +1 -0
- package/dist/cjs/affinda.cjs.js +2 -2
- package/dist/cjs/{index-DfEVhbS6.js → index-ybEiHT0b.js} +130 -6
- package/dist/cjs/index-ybEiHT0b.js.map +1 -0
- package/dist/cjs/index.cjs.js +23 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/assets/backgrounds/wave-overlay-inkwell.svg +3 -0
- package/dist/collection/assets/backgrounds/wave-overlay-mist-green.svg +3 -0
- package/dist/collection/assets/backgrounds/wave-overlay-soft-clay.svg +3 -0
- package/dist/collection/assets/backgrounds/wave-overlay-white-ivory.svg +3 -0
- package/dist/collection/collection-manifest.json +28 -2
- package/dist/collection/components/af-aspect-ratio/af-aspect-ratio.css +2 -0
- package/dist/collection/components/af-button/af-button.css +177 -64
- package/dist/collection/components/af-button/af-button.js +50 -42
- package/dist/collection/components/af-button/af-button.js.map +1 -1
- package/dist/collection/components/af-button-group/af-button-group.js +1 -1
- package/dist/collection/components/af-card/af-card.css +96 -65
- package/dist/collection/components/af-card/af-card.js +32 -33
- package/dist/collection/components/af-card/af-card.js.map +1 -1
- package/dist/collection/components/af-checkbox/af-checkbox.css +96 -0
- package/dist/collection/components/af-checkbox/af-checkbox.js +186 -0
- package/dist/collection/components/af-checkbox/af-checkbox.js.map +1 -0
- package/dist/collection/components/af-client-carousel/af-client-carousel.css +77 -32
- package/dist/collection/components/af-client-carousel/af-client-carousel.js +21 -33
- package/dist/collection/components/af-client-carousel/af-client-carousel.js.map +1 -1
- package/dist/collection/components/af-contact-item/af-contact-item.js +1 -1
- package/dist/collection/components/af-feature-accordion/af-feature-accordion.css +21 -35
- package/dist/collection/components/af-feature-accordion/af-feature-accordion.js +15 -5
- package/dist/collection/components/af-feature-accordion/af-feature-accordion.js.map +1 -1
- package/dist/collection/components/af-feature-card/af-feature-card.css +219 -0
- package/dist/collection/components/af-feature-card/af-feature-card.js +199 -0
- package/dist/collection/components/af-feature-card/af-feature-card.js.map +1 -0
- package/dist/collection/components/af-feature-grid/af-feature-grid.css +119 -0
- package/dist/collection/components/af-feature-grid/af-feature-grid.js +156 -0
- package/dist/collection/components/af-feature-grid/af-feature-grid.js.map +1 -0
- package/dist/collection/components/af-fieldset/af-fieldset.css +61 -0
- package/dist/collection/components/af-fieldset/af-fieldset.js +109 -0
- package/dist/collection/components/af-fieldset/af-fieldset.js.map +1 -0
- package/dist/collection/components/af-footer/af-footer.js +1 -1
- package/dist/collection/components/af-footer-column/af-footer-column.js +1 -1
- package/dist/collection/components/af-footer-link/af-footer-link.js +1 -1
- package/dist/collection/components/af-grid-callout/af-grid-callout.css +191 -0
- package/dist/collection/components/af-grid-callout/af-grid-callout.js +191 -0
- package/dist/collection/components/af-grid-callout/af-grid-callout.js.map +1 -0
- package/dist/collection/components/af-heading/af-heading.css +25 -33
- package/dist/collection/components/af-heading/af-heading.js +8 -26
- package/dist/collection/components/af-heading/af-heading.js.map +1 -1
- package/dist/collection/components/af-hero-section/af-hero-section.css +118 -12
- package/dist/collection/components/af-hero-section/af-hero-section.js +102 -10
- package/dist/collection/components/af-hero-section/af-hero-section.js.map +1 -1
- package/dist/collection/components/af-icon/af-icon.css +28 -0
- package/dist/collection/components/af-icon/af-icon.js +116 -0
- package/dist/collection/components/af-icon/af-icon.js.map +1 -0
- package/dist/collection/components/af-icon-box/af-icon-box.css +36 -0
- package/dist/collection/components/af-icon-box/af-icon-box.js +97 -0
- package/dist/collection/components/af-icon-box/af-icon-box.js.map +1 -0
- package/dist/collection/components/af-icon-button/af-icon-button.css +42 -54
- package/dist/collection/components/af-icon-button/af-icon-button.js +8 -5
- package/dist/collection/components/af-icon-button/af-icon-button.js.map +1 -1
- package/dist/collection/components/af-icon-text/af-icon-text.css +43 -0
- package/dist/collection/components/af-icon-text/af-icon-text.js +150 -0
- package/dist/collection/components/af-icon-text/af-icon-text.js.map +1 -0
- package/dist/collection/components/af-illustrated-card/af-illustrated-card.css +99 -0
- package/dist/collection/components/af-illustrated-card/af-illustrated-card.js +115 -0
- package/dist/collection/components/af-illustrated-card/af-illustrated-card.js.map +1 -0
- package/dist/collection/components/af-image/af-image.css +27 -0
- package/dist/collection/components/af-image/af-image.js +65 -0
- package/dist/collection/components/af-image/af-image.js.map +1 -0
- package/dist/collection/components/af-in-page-banner/af-in-page-banner.css +379 -0
- package/dist/collection/components/{af-cta-section/af-cta-section.js → af-in-page-banner/af-in-page-banner.js} +78 -17
- package/dist/collection/components/af-in-page-banner/af-in-page-banner.js.map +1 -0
- package/dist/collection/components/af-input/af-input.css +246 -0
- package/dist/collection/components/af-input/af-input.js +527 -0
- package/dist/collection/components/af-input/af-input.js.map +1 -0
- package/dist/collection/components/af-logo/af-logo.css +0 -7
- package/dist/collection/components/af-logo/af-logo.js +2 -55
- package/dist/collection/components/af-logo/af-logo.js.map +1 -1
- package/dist/collection/components/af-logo-well/af-logo-well.css +15 -4
- package/dist/collection/components/af-logo-well/af-logo-well.js +1 -1
- package/dist/collection/components/af-nav-card/af-nav-card.css +70 -0
- package/dist/collection/components/af-nav-card/af-nav-card.js +138 -0
- package/dist/collection/components/af-nav-card/af-nav-card.js.map +1 -0
- package/dist/collection/components/af-nav-item/af-nav-item.css +161 -28
- package/dist/collection/components/af-nav-item/af-nav-item.js +27 -0
- package/dist/collection/components/af-nav-item/af-nav-item.js.map +1 -1
- package/dist/collection/components/af-nav-menu/af-nav-menu.css +91 -0
- package/dist/collection/components/af-nav-menu/af-nav-menu.js +131 -0
- package/dist/collection/components/af-nav-menu/af-nav-menu.js.map +1 -0
- package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.css +79 -0
- package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.js +129 -0
- package/dist/collection/components/af-nav-menu-nest/af-nav-menu-nest.js.map +1 -0
- package/dist/collection/components/af-navbar/af-navbar.css +91 -8
- package/dist/collection/components/af-navbar/af-navbar.js +84 -3
- package/dist/collection/components/af-navbar/af-navbar.js.map +1 -1
- package/dist/collection/components/af-number-badge/af-number-badge.css +30 -0
- package/dist/collection/components/af-number-badge/af-number-badge.js +131 -0
- package/dist/collection/components/af-number-badge/af-number-badge.js.map +1 -0
- package/dist/collection/components/af-progress-line/af-progress-line.css +44 -0
- package/dist/collection/components/af-progress-line/af-progress-line.js +86 -0
- package/dist/collection/components/af-progress-line/af-progress-line.js.map +1 -0
- package/dist/collection/components/af-radio/af-radio.css +97 -0
- package/dist/collection/components/af-radio/af-radio.js +150 -0
- package/dist/collection/components/af-radio/af-radio.js.map +1 -0
- package/dist/collection/components/af-section/af-section.css +230 -24
- package/dist/collection/components/af-section/af-section.js +11 -10
- package/dist/collection/components/af-section/af-section.js.map +1 -1
- package/dist/collection/components/af-social-link/af-social-link.js +1 -1
- package/dist/collection/components/af-split-section/af-split-section.css +46 -0
- package/dist/collection/components/af-split-section/af-split-section.js +145 -0
- package/dist/collection/components/af-split-section/af-split-section.js.map +1 -0
- package/dist/collection/components/af-switch/af-switch.css +104 -0
- package/dist/collection/components/af-switch/af-switch.js +155 -0
- package/dist/collection/components/af-switch/af-switch.js.map +1 -0
- package/dist/collection/components/af-tab/af-tab.css +182 -0
- package/dist/collection/components/af-tab/af-tab.js +251 -0
- package/dist/collection/components/af-tab/af-tab.js.map +1 -0
- package/dist/collection/components/af-tab-bar/af-tab-bar.css +87 -0
- package/dist/collection/components/af-tab-bar/af-tab-bar.js +171 -0
- package/dist/collection/components/af-tab-bar/af-tab-bar.js.map +1 -0
- package/dist/collection/components/af-tag/af-tag.css +92 -0
- package/dist/collection/components/af-tag/af-tag.js +126 -0
- package/dist/collection/components/af-tag/af-tag.js.map +1 -0
- package/dist/collection/components/af-testimonial/af-testimonial.css +30 -46
- package/dist/collection/components/af-testimonial/af-testimonial.js +118 -1
- package/dist/collection/components/af-testimonial/af-testimonial.js.map +1 -1
- package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.css +6 -66
- package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js +48 -13
- package/dist/collection/components/af-testimonial-carousel/af-testimonial-carousel.js.map +1 -1
- package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.css +9 -16
- package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js +1 -1
- package/dist/collection/components/af-testimonial-stat/af-testimonial-stat.js.map +1 -1
- package/dist/collection/components/af-text/af-text.css +13 -36
- package/dist/collection/components/af-text/af-text.js +10 -28
- package/dist/collection/components/af-text/af-text.js.map +1 -1
- package/dist/collection/components/af-text-image/af-text-image.css +228 -0
- package/dist/collection/components/af-text-image/af-text-image.js +173 -0
- package/dist/collection/components/af-text-image/af-text-image.js.map +1 -0
- package/dist/collection/components/af-text-image-nest/af-text-image-nest.css +110 -0
- package/dist/collection/components/af-text-image-nest/af-text-image-nest.js +71 -0
- package/dist/collection/components/af-text-image-nest/af-text-image-nest.js.map +1 -0
- package/dist/collection/components/af-textarea/af-textarea.css +175 -0
- package/dist/collection/components/af-textarea/af-textarea.js +443 -0
- package/dist/collection/components/af-textarea/af-textarea.js.map +1 -0
- package/dist/collection/components/af-typography-lockup/af-typography-lockup.css +126 -40
- package/dist/collection/components/af-typography-lockup/af-typography-lockup.js +5 -5
- package/dist/collection/components/af-typography-lockup/af-typography-lockup.js.map +1 -1
- package/dist/collection/components/af-video-container/af-video-container.css +102 -0
- package/dist/collection/components/af-video-container/af-video-container.js +142 -0
- package/dist/collection/components/af-video-container/af-video-container.js.map +1 -0
- package/dist/collection/components.js +11 -0
- package/dist/collection/components.js.map +1 -1
- package/dist/components/af-aspect-ratio.js +1 -1
- package/dist/components/af-button-group.js +1 -1
- package/dist/components/af-button.js +1 -1
- package/dist/components/af-card.js +1 -39
- package/dist/components/af-card.js.map +1 -1
- package/dist/components/{af-cta-section.d.ts → af-checkbox.d.ts} +4 -4
- package/dist/components/af-checkbox.js +9 -0
- package/dist/components/af-checkbox.js.map +1 -0
- package/dist/components/af-client-carousel.js +6 -9
- package/dist/components/af-client-carousel.js.map +1 -1
- package/dist/components/af-color-swatch.js +1 -1
- package/dist/components/af-contact-item.js +2 -2
- package/dist/components/af-container.js +1 -1
- package/dist/components/af-feature-accordion.js +4 -4
- package/dist/components/af-feature-accordion.js.map +1 -1
- package/dist/components/af-feature-card.d.ts +11 -0
- package/dist/components/af-feature-card.js +9 -0
- package/dist/components/af-feature-card.js.map +1 -0
- package/dist/components/af-feature-grid.d.ts +11 -0
- package/dist/components/af-feature-grid.js +124 -0
- package/dist/components/af-feature-grid.js.map +1 -0
- package/dist/components/af-fieldset.d.ts +11 -0
- package/dist/components/af-fieldset.js +9 -0
- package/dist/components/af-fieldset.js.map +1 -0
- package/dist/components/af-footer-column.js +2 -2
- package/dist/components/af-footer-link.js +2 -2
- package/dist/components/af-footer.js +2 -2
- package/dist/components/af-grid-callout.d.ts +11 -0
- package/dist/components/af-grid-callout.js +82 -0
- package/dist/components/af-grid-callout.js.map +1 -0
- package/dist/components/af-heading.js +1 -1
- package/dist/components/af-hero-section.js +25 -9
- package/dist/components/af-hero-section.js.map +1 -1
- package/dist/components/af-icon-box.d.ts +11 -0
- package/dist/components/af-icon-box.js +9 -0
- package/dist/components/af-icon-box.js.map +1 -0
- package/dist/components/af-icon-button.js +1 -1
- package/dist/components/af-icon-text.d.ts +11 -0
- package/dist/components/af-icon-text.js +78 -0
- package/dist/components/af-icon-text.js.map +1 -0
- package/dist/components/af-icon.d.ts +11 -0
- package/dist/components/af-icon.js +9 -0
- package/dist/components/af-icon.js.map +1 -0
- package/dist/components/af-illustrated-card.d.ts +11 -0
- package/dist/components/af-illustrated-card.js +9 -0
- package/dist/components/af-illustrated-card.js.map +1 -0
- package/dist/components/af-image.d.ts +11 -0
- package/dist/components/af-image.js +9 -0
- package/dist/components/af-image.js.map +1 -0
- package/dist/components/af-in-page-banner.d.ts +11 -0
- package/dist/components/af-in-page-banner.js +82 -0
- package/dist/components/af-in-page-banner.js.map +1 -0
- package/dist/components/af-input.d.ts +11 -0
- package/dist/components/af-input.js +9 -0
- package/dist/components/af-input.js.map +1 -0
- package/dist/components/af-logo-well.js +3 -3
- package/dist/components/af-logo-well.js.map +1 -1
- package/dist/components/af-logo.js +1 -1
- package/dist/components/af-nav-card.d.ts +11 -0
- package/dist/components/af-nav-card.js +63 -0
- package/dist/components/af-nav-card.js.map +1 -0
- package/dist/components/af-nav-item.js +1 -1
- package/dist/components/af-nav-menu-nest.d.ts +11 -0
- package/dist/components/af-nav-menu-nest.js +67 -0
- package/dist/components/af-nav-menu-nest.js.map +1 -0
- package/dist/components/af-nav-menu.d.ts +11 -0
- package/dist/components/af-nav-menu.js +66 -0
- package/dist/components/af-nav-menu.js.map +1 -0
- package/dist/components/af-navbar.js +1 -1
- package/dist/components/af-number-badge.d.ts +11 -0
- package/dist/components/af-number-badge.js +66 -0
- package/dist/components/af-number-badge.js.map +1 -0
- package/dist/components/af-progress-line.d.ts +11 -0
- package/dist/components/af-progress-line.js +9 -0
- package/dist/components/af-progress-line.js.map +1 -0
- package/dist/components/af-radio.d.ts +11 -0
- package/dist/components/af-radio.js +9 -0
- package/dist/components/af-radio.js.map +1 -0
- package/dist/components/af-section.js +8 -8
- package/dist/components/af-section.js.map +1 -1
- package/dist/components/af-social-link.js +2 -2
- package/dist/components/af-split-section.d.ts +11 -0
- package/dist/components/af-split-section.js +71 -0
- package/dist/components/af-split-section.js.map +1 -0
- package/dist/components/af-switch.d.ts +11 -0
- package/dist/components/af-switch.js +9 -0
- package/dist/components/af-switch.js.map +1 -0
- package/dist/components/af-tab-bar.d.ts +11 -0
- package/dist/components/af-tab-bar.js +9 -0
- package/dist/components/af-tab-bar.js.map +1 -0
- package/dist/components/af-tab.d.ts +11 -0
- package/dist/components/af-tab.js +9 -0
- package/dist/components/af-tab.js.map +1 -0
- package/dist/components/af-tag.d.ts +11 -0
- package/dist/components/af-tag.js +9 -0
- package/dist/components/af-tag.js.map +1 -0
- package/dist/components/af-testimonial-carousel.js +35 -17
- package/dist/components/af-testimonial-carousel.js.map +1 -1
- package/dist/components/af-testimonial-stat.js +16 -4
- package/dist/components/af-testimonial-stat.js.map +1 -1
- package/dist/components/af-testimonial.js +56 -5
- package/dist/components/af-testimonial.js.map +1 -1
- package/dist/components/af-text-image-nest.d.ts +11 -0
- package/dist/components/af-text-image-nest.js +51 -0
- package/dist/components/af-text-image-nest.js.map +1 -0
- package/dist/components/af-text-image.d.ts +11 -0
- package/dist/components/af-text-image.js +94 -0
- package/dist/components/af-text-image.js.map +1 -0
- package/dist/components/af-text.js +1 -1
- package/dist/components/af-textarea.d.ts +11 -0
- package/dist/components/af-textarea.js +9 -0
- package/dist/components/af-textarea.js.map +1 -0
- package/dist/components/af-typography-lockup.js +1 -1
- package/dist/components/af-video-container.d.ts +11 -0
- package/dist/components/af-video-container.js +70 -0
- package/dist/components/af-video-container.js.map +1 -0
- package/dist/components/index.js +24 -13
- package/dist/components/index.js.map +1 -1
- package/dist/components/{p-BBivIwbE.js → p-6uEhsUaO.js} +3 -3
- package/dist/components/{p-BBivIwbE.js.map → p-6uEhsUaO.js.map} +1 -1
- package/dist/components/{p-PLXzXWgX.js → p-BHKA-yEm.js} +4 -4
- package/dist/components/p-BHKA-yEm.js.map +1 -0
- package/dist/components/p-BMp8QbY-.js +68 -0
- package/dist/components/p-BMp8QbY-.js.map +1 -0
- package/dist/components/p-BRN73McC.js +59 -0
- package/dist/components/p-BRN73McC.js.map +1 -0
- package/dist/components/p-BRsO61_R.js +58 -0
- package/dist/components/p-BRsO61_R.js.map +1 -0
- package/dist/components/p-BXZ7aJQf.js +372 -0
- package/dist/components/p-BXZ7aJQf.js.map +1 -0
- package/dist/components/p-Bh4YP9vE.js +74 -0
- package/dist/components/p-Bh4YP9vE.js.map +1 -0
- package/dist/components/p-Br0VERLB.js +81 -0
- package/dist/components/p-Br0VERLB.js.map +1 -0
- package/dist/components/{p-DBFWSHR9.js → p-ByHIHg3l.js} +4 -4
- package/dist/components/{p-DBFWSHR9.js.map → p-ByHIHg3l.js.map} +1 -1
- package/dist/components/p-C0f6y_zg.js +94 -0
- package/dist/components/p-C0f6y_zg.js.map +1 -0
- package/dist/components/p-CCAq3Zj6.js +68 -0
- package/dist/components/p-CCAq3Zj6.js.map +1 -0
- package/dist/components/p-CZyCImor.js +127 -0
- package/dist/components/p-CZyCImor.js.map +1 -0
- package/dist/components/p-C_M8AOaj.js +65 -0
- package/dist/components/p-C_M8AOaj.js.map +1 -0
- package/dist/components/p-Cqp0DdgH.js +58 -0
- package/dist/components/p-Cqp0DdgH.js.map +1 -0
- package/dist/components/{p-Dt4Fpr3O.js → p-CxngDK-N.js} +122 -8
- package/dist/components/p-CxngDK-N.js.map +1 -0
- package/dist/components/{p-BkEmrXbw.js → p-D3UZ60qM.js} +3 -3
- package/dist/components/{p-BkEmrXbw.js.map → p-D3UZ60qM.js.map} +1 -1
- package/dist/components/p-D99aXp3U.js +35 -0
- package/dist/components/p-D99aXp3U.js.map +1 -0
- package/dist/components/p-DBnL9UHx.js +91 -0
- package/dist/components/p-DBnL9UHx.js.map +1 -0
- package/dist/components/p-DOkvrcIE.js +50 -0
- package/dist/components/p-DOkvrcIE.js.map +1 -0
- package/dist/components/p-DW5DrJlQ.js +70 -0
- package/dist/components/p-DW5DrJlQ.js.map +1 -0
- package/dist/components/p-DZ-qivXD.js +55 -0
- package/dist/components/p-DZ-qivXD.js.map +1 -0
- package/dist/components/p-DhdRcSve.js +89 -0
- package/dist/components/p-DhdRcSve.js.map +1 -0
- package/dist/components/p-Dvi1lz3x.js +53 -0
- package/dist/components/p-Dvi1lz3x.js.map +1 -0
- package/dist/components/p-DzkSL2bi.js +141 -0
- package/dist/components/p-DzkSL2bi.js.map +1 -0
- package/dist/components/p-JepBVz99.js +71 -0
- package/dist/components/p-JepBVz99.js.map +1 -0
- package/dist/components/p-_bQXTXUb.js +98 -0
- package/dist/components/p-_bQXTXUb.js.map +1 -0
- package/dist/components/p-l95vl6T1.js +108 -0
- package/dist/components/p-l95vl6T1.js.map +1 -0
- package/dist/components/p-wwnR-hlX.js +52 -0
- package/dist/components/p-wwnR-hlX.js.map +1 -0
- package/dist/components/p-xDRMXxWJ.js +37 -0
- package/dist/components/p-xDRMXxWJ.js.map +1 -0
- package/dist/esm/af-aspect-ratio.entry.js +2 -2
- package/dist/esm/af-aspect-ratio.entry.js.map +1 -1
- package/dist/esm/af-button-group.entry.js +2 -2
- package/dist/esm/af-button.entry.js +25 -12
- package/dist/esm/af-button.entry.js.map +1 -1
- package/dist/esm/af-card.entry.js +17 -7
- package/dist/esm/af-card.entry.js.map +1 -1
- package/dist/esm/af-checkbox.entry.js +56 -0
- package/dist/esm/af-checkbox.entry.js.map +1 -0
- package/dist/esm/af-client-carousel.entry.js +5 -7
- package/dist/esm/af-client-carousel.entry.js.map +1 -1
- package/dist/esm/af-color-swatch.entry.js +1 -1
- package/dist/esm/af-contact-item.entry.js +2 -2
- package/dist/esm/af-container.entry.js +1 -1
- package/dist/esm/af-feature-accordion.entry.js +4 -4
- package/dist/esm/af-feature-accordion.entry.js.map +1 -1
- package/dist/esm/af-feature-card.entry.js +57 -0
- package/dist/esm/af-feature-card.entry.js.map +1 -0
- package/dist/esm/af-feature-grid.entry.js +91 -0
- package/dist/esm/af-feature-grid.entry.js.map +1 -0
- package/dist/esm/af-fieldset.entry.js +35 -0
- package/dist/esm/af-fieldset.entry.js.map +1 -0
- package/dist/esm/af-footer-column.entry.js +2 -2
- package/dist/esm/af-footer-link.entry.js +2 -2
- package/dist/esm/af-footer.entry.js +2 -2
- package/dist/esm/af-grid-callout.entry.js +49 -0
- package/dist/esm/af-grid-callout.entry.js.map +1 -0
- package/dist/esm/af-heading.af-logo.af-nav-item.af-navbar.af-text.entry.js.map +1 -1
- package/dist/esm/af-heading_5.entry.js +67 -27
- package/dist/esm/af-hero-section.entry.js +11 -5
- package/dist/esm/af-hero-section.entry.js.map +1 -1
- package/dist/esm/af-icon-box.entry.js +28 -0
- package/dist/esm/af-icon-box.entry.js.map +1 -0
- package/dist/esm/af-icon-button.entry.js +6 -3
- package/dist/esm/af-icon-button.entry.js.map +1 -1
- package/dist/esm/af-icon-text.entry.js +34 -0
- package/dist/esm/af-icon-text.entry.js.map +1 -0
- package/dist/esm/af-icon.entry.js +349 -0
- package/dist/esm/af-icon.entry.js.map +1 -0
- package/dist/esm/af-illustrated-card.entry.js +34 -0
- package/dist/esm/af-illustrated-card.entry.js.map +1 -0
- package/dist/esm/af-image.entry.js +16 -0
- package/dist/esm/af-image.entry.js.map +1 -0
- package/dist/esm/af-in-page-banner.entry.js +45 -0
- package/dist/esm/af-in-page-banner.entry.js.map +1 -0
- package/dist/esm/af-input.entry.js +102 -0
- package/dist/esm/af-input.entry.js.map +1 -0
- package/dist/esm/af-logo-well.entry.js +3 -3
- package/dist/esm/af-logo-well.entry.js.map +1 -1
- package/dist/esm/af-nav-card.entry.js +35 -0
- package/dist/esm/af-nav-card.entry.js.map +1 -0
- package/dist/esm/af-nav-menu-nest.entry.js +41 -0
- package/dist/esm/af-nav-menu-nest.entry.js.map +1 -0
- package/dist/esm/af-nav-menu.entry.js +39 -0
- package/dist/esm/af-nav-menu.entry.js.map +1 -0
- package/dist/esm/af-number-badge.entry.js +40 -0
- package/dist/esm/af-number-badge.entry.js.map +1 -0
- package/dist/esm/af-progress-line.entry.js +31 -0
- package/dist/esm/af-progress-line.entry.js.map +1 -0
- package/dist/esm/af-radio.entry.js +41 -0
- package/dist/esm/af-radio.entry.js.map +1 -0
- package/dist/esm/af-section.entry.js +6 -6
- package/dist/esm/af-section.entry.js.map +1 -1
- package/dist/esm/af-social-link.entry.js +2 -2
- package/dist/esm/af-split-section.entry.js +39 -0
- package/dist/esm/af-split-section.entry.js.map +1 -0
- package/dist/esm/af-switch.entry.js +46 -0
- package/dist/esm/af-switch.entry.js.map +1 -0
- package/dist/esm/af-tab-bar.entry.js +86 -0
- package/dist/esm/af-tab-bar.entry.js.map +1 -0
- package/dist/esm/af-tab.entry.js +62 -0
- package/dist/esm/af-tab.entry.js.map +1 -0
- package/dist/esm/af-tag.entry.js +35 -0
- package/dist/esm/af-tag.entry.js.map +1 -0
- package/dist/esm/af-testimonial-carousel.entry.js +27 -15
- package/dist/esm/af-testimonial-carousel.entry.js.map +1 -1
- package/dist/esm/af-testimonial-stat.entry.js +3 -3
- package/dist/esm/af-testimonial-stat.entry.js.map +1 -1
- package/dist/esm/af-testimonial.entry.js +27 -3
- package/dist/esm/af-testimonial.entry.js.map +1 -1
- package/dist/esm/af-text-image-nest.entry.js +28 -0
- package/dist/esm/af-text-image-nest.entry.js.map +1 -0
- package/dist/esm/af-text-image.entry.js +61 -0
- package/dist/esm/af-text-image.entry.js.map +1 -0
- package/dist/esm/af-textarea.entry.js +91 -0
- package/dist/esm/af-textarea.entry.js.map +1 -0
- package/dist/esm/af-typography-lockup.entry.js +7 -7
- package/dist/esm/af-typography-lockup.entry.js.map +1 -1
- package/dist/esm/af-video-container.entry.js +33 -0
- package/dist/esm/af-video-container.entry.js.map +1 -0
- package/dist/esm/affinda.js +3 -3
- package/dist/esm/{index-DI7b0bCy.js → index-BmU_CFQ4.js} +130 -7
- package/dist/esm/index-BmU_CFQ4.js.map +1 -0
- package/dist/esm/index.js +12 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/af-button/af-button.d.ts +22 -9
- package/dist/types/components/af-card/af-card.d.ts +15 -8
- package/dist/types/components/af-checkbox/af-checkbox.d.ts +40 -0
- package/dist/types/components/af-client-carousel/af-client-carousel.d.ts +10 -5
- package/dist/types/components/af-feature-accordion/af-feature-accordion.d.ts +13 -3
- package/dist/types/components/af-feature-card/af-feature-card.d.ts +49 -0
- package/dist/types/components/af-feature-grid/af-feature-grid.d.ts +32 -0
- package/dist/types/components/af-fieldset/af-fieldset.d.ts +23 -0
- package/dist/types/components/af-grid-callout/af-grid-callout.d.ts +57 -0
- package/dist/types/components/af-heading/af-heading.d.ts +5 -2
- package/dist/types/components/af-hero-section/af-hero-section.d.ts +18 -3
- package/dist/types/components/af-icon/af-icon.d.ts +28 -0
- package/dist/types/components/af-icon-box/af-icon-box.d.ts +27 -0
- package/dist/types/components/af-icon-button/af-icon-button.d.ts +5 -2
- package/dist/types/components/af-icon-text/af-icon-text.d.ts +44 -0
- package/dist/types/components/af-illustrated-card/af-illustrated-card.d.ts +28 -0
- package/dist/types/components/af-image/af-image.d.ts +15 -0
- package/dist/types/components/af-in-page-banner/af-in-page-banner.d.ts +56 -0
- package/dist/types/components/af-input/af-input.d.ts +110 -0
- package/dist/types/components/af-logo/af-logo.d.ts +1 -6
- package/dist/types/components/af-nav-card/af-nav-card.d.ts +34 -0
- package/dist/types/components/af-nav-item/af-nav-item.d.ts +6 -0
- package/dist/types/components/af-nav-menu/af-nav-menu.d.ts +28 -0
- package/dist/types/components/af-nav-menu-nest/af-nav-menu-nest.d.ts +42 -0
- package/dist/types/components/af-navbar/af-navbar.d.ts +26 -1
- package/dist/types/components/af-number-badge/af-number-badge.d.ts +29 -0
- package/dist/types/components/af-progress-line/af-progress-line.d.ts +18 -0
- package/dist/types/components/af-radio/af-radio.d.ts +33 -0
- package/dist/types/components/af-section/af-section.d.ts +4 -3
- package/dist/types/components/af-split-section/af-split-section.d.ts +20 -0
- package/dist/types/components/af-switch/af-switch.d.ts +32 -0
- package/dist/types/components/af-tab/af-tab.d.ts +61 -0
- package/dist/types/components/af-tab-bar/af-tab-bar.d.ts +43 -0
- package/dist/types/components/af-tag/af-tag.d.ts +33 -0
- package/dist/types/components/af-testimonial/af-testimonial.d.ts +23 -0
- package/dist/types/components/af-testimonial-carousel/af-testimonial-carousel.d.ts +17 -0
- package/dist/types/components/af-text/af-text.d.ts +6 -3
- package/dist/types/components/af-text-image/af-text-image.d.ts +30 -0
- package/dist/types/components/af-text-image-nest/af-text-image-nest.d.ts +21 -0
- package/dist/types/components/af-textarea/af-textarea.d.ts +92 -0
- package/dist/types/components/af-video-container/af-video-container.d.ts +45 -0
- package/dist/types/components.d.ts +3395 -669
- package/package.json +7 -6
- package/dist/affinda/af-cta-section.entry.esm.js.map +0 -1
- package/dist/affinda/p-050f98cd.entry.js +0 -2
- package/dist/affinda/p-0eb8173d.entry.js +0 -2
- package/dist/affinda/p-1955dbad.entry.js +0 -2
- package/dist/affinda/p-1b18ab28.entry.js +0 -2
- package/dist/affinda/p-1b18ab28.entry.js.map +0 -1
- package/dist/affinda/p-1e3d40a0.entry.js +0 -2
- package/dist/affinda/p-1e3d40a0.entry.js.map +0 -1
- package/dist/affinda/p-350ac7a5.entry.js +0 -2
- package/dist/affinda/p-71e663b3.entry.js +0 -2
- package/dist/affinda/p-71e663b3.entry.js.map +0 -1
- package/dist/affinda/p-7b8c36e0.entry.js +0 -2
- package/dist/affinda/p-7b8c36e0.entry.js.map +0 -1
- package/dist/affinda/p-83b5d5ea.entry.js +0 -2
- package/dist/affinda/p-83b5d5ea.entry.js.map +0 -1
- package/dist/affinda/p-9071c2a7.entry.js +0 -2
- package/dist/affinda/p-954963fa.entry.js +0 -2
- package/dist/affinda/p-954963fa.entry.js.map +0 -1
- package/dist/affinda/p-DI7b0bCy.js +0 -3
- package/dist/affinda/p-DI7b0bCy.js.map +0 -1
- package/dist/affinda/p-b2fb60c9.entry.js +0 -2
- package/dist/affinda/p-b2fb60c9.entry.js.map +0 -1
- package/dist/affinda/p-d3b2ab0e.entry.js +0 -2
- package/dist/affinda/p-e1198ca3.entry.js +0 -2
- package/dist/affinda/p-e1198ca3.entry.js.map +0 -1
- package/dist/affinda/p-e3efc291.entry.js +0 -2
- package/dist/affinda/p-e3efc291.entry.js.map +0 -1
- package/dist/affinda/p-f692a7bd.entry.js +0 -2
- package/dist/affinda/p-f692a7bd.entry.js.map +0 -1
- package/dist/affinda/p-fc2cb8d1.entry.js +0 -2
- package/dist/cjs/af-cta-section.cjs.entry.js +0 -34
- package/dist/cjs/af-cta-section.entry.cjs.js.map +0 -1
- package/dist/cjs/index-DfEVhbS6.js.map +0 -1
- package/dist/collection/components/af-cta-section/af-cta-section.css +0 -175
- package/dist/collection/components/af-cta-section/af-cta-section.js.map +0 -1
- package/dist/components/af-cta-section.js +0 -62
- package/dist/components/af-cta-section.js.map +0 -1
- package/dist/components/p-BKGrl8ua.js +0 -77
- package/dist/components/p-BKGrl8ua.js.map +0 -1
- package/dist/components/p-BTEblSAo.js +0 -63
- package/dist/components/p-BTEblSAo.js.map +0 -1
- package/dist/components/p-BekWfVfB.js +0 -66
- package/dist/components/p-BekWfVfB.js.map +0 -1
- package/dist/components/p-Bg7dSc4D.js +0 -54
- package/dist/components/p-Bg7dSc4D.js.map +0 -1
- package/dist/components/p-CN_K2ni-.js +0 -45
- package/dist/components/p-CN_K2ni-.js.map +0 -1
- package/dist/components/p-CgnBqOVh.js +0 -50
- package/dist/components/p-CgnBqOVh.js.map +0 -1
- package/dist/components/p-DqOwXTsH.js +0 -68
- package/dist/components/p-DqOwXTsH.js.map +0 -1
- package/dist/components/p-Dt4Fpr3O.js.map +0 -1
- package/dist/components/p-LUt2VDjp.js +0 -68
- package/dist/components/p-LUt2VDjp.js.map +0 -1
- package/dist/components/p-PLXzXWgX.js.map +0 -1
- package/dist/esm/af-cta-section.entry.js +0 -32
- package/dist/esm/af-cta-section.entry.js.map +0 -1
- package/dist/esm/index-DI7b0bCy.js.map +0 -1
- package/dist/types/components/af-cta-section/af-cta-section.d.ts +0 -23
- /package/dist/affinda/{p-0eb8173d.entry.js.map → p-1d9e532f.entry.js.map} +0 -0
- /package/dist/affinda/{p-fb4e3a8d.entry.js.map → p-31d4c1a4.entry.js.map} +0 -0
- /package/dist/affinda/{p-1955dbad.entry.js.map → p-53ae16fe.entry.js.map} +0 -0
- /package/dist/affinda/{p-ec7721cc.entry.js.map → p-72f02343.entry.js.map} +0 -0
- /package/dist/affinda/{p-bd30e86a.entry.js.map → p-96eac3af.entry.js.map} +0 -0
- /package/dist/affinda/{p-806d129e.entry.js.map → p-acbbe39a.entry.js.map} +0 -0
- /package/dist/affinda/{p-3a9646e6.entry.js.map → p-c11088fa.entry.js.map} +0 -0
- /package/dist/affinda/{p-f8ac0120.entry.js.map → p-e5af21c2.entry.js.map} +0 -0
|
@@ -5,6 +5,16 @@
|
|
|
5
5
|
* It contains typing information for all components that exist in this project.
|
|
6
6
|
*/
|
|
7
7
|
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
|
|
8
|
+
import { IconName } from "@affinda/icons";
|
|
9
|
+
import { NumberBadgeNumber, NumberBadgeVariant } from "./components/af-number-badge/af-number-badge";
|
|
10
|
+
import { TabShape } from "./components/af-tab/af-tab";
|
|
11
|
+
import { TabBarBreakpoint, TabBarShape } from "./components/af-tab-bar/af-tab-bar";
|
|
12
|
+
import { TagSize, TagVariant } from "./components/af-tag/af-tag";
|
|
13
|
+
export { IconName } from "@affinda/icons";
|
|
14
|
+
export { NumberBadgeNumber, NumberBadgeVariant } from "./components/af-number-badge/af-number-badge";
|
|
15
|
+
export { TabShape } from "./components/af-tab/af-tab";
|
|
16
|
+
export { TabBarBreakpoint, TabBarShape } from "./components/af-tab-bar/af-tab-bar";
|
|
17
|
+
export { TagSize, TagVariant } from "./components/af-tag/af-tag";
|
|
8
18
|
export namespace Components {
|
|
9
19
|
/**
|
|
10
20
|
* A container component that maintains a fixed aspect ratio for its content.
|
|
@@ -18,23 +28,23 @@ export namespace Components {
|
|
|
18
28
|
*/
|
|
19
29
|
"ratio": string;
|
|
20
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Button component that inherits colors from theme context.
|
|
33
|
+
* Colors are determined by the parent theme (af-section, af-hero-section, etc.)
|
|
34
|
+
* via CSS custom properties.
|
|
35
|
+
*/
|
|
21
36
|
interface AfButton {
|
|
22
|
-
/**
|
|
23
|
-
* Use on dark backgrounds for better contrast
|
|
24
|
-
* @default false
|
|
25
|
-
*/
|
|
26
|
-
"darkBackground": boolean;
|
|
27
37
|
/**
|
|
28
38
|
* Whether the button is disabled
|
|
29
39
|
* @default false
|
|
30
40
|
*/
|
|
31
41
|
"disabled": boolean;
|
|
32
42
|
/**
|
|
33
|
-
* Optional href to render as a link
|
|
43
|
+
* Optional href to render as a link instead of a button
|
|
34
44
|
*/
|
|
35
45
|
"href"?: string;
|
|
36
46
|
/**
|
|
37
|
-
* The size of the button
|
|
47
|
+
* The size of the button. - `default` - Standard size for primary CTAs - `small` - Compact size for inline or secondary contexts
|
|
38
48
|
* @default 'default'
|
|
39
49
|
*/
|
|
40
50
|
"size": 'default' | 'small';
|
|
@@ -44,10 +54,10 @@ export namespace Components {
|
|
|
44
54
|
*/
|
|
45
55
|
"type": 'button' | 'submit' | 'reset';
|
|
46
56
|
/**
|
|
47
|
-
* The visual variant of the button
|
|
57
|
+
* The visual variant of the button. - `primary` - Main CTA with filled background (use sparingly, 1-2 per view) - `secondary` - Supporting action with outlined style - `tertiary` - Subtle text-link style with underline
|
|
48
58
|
* @default 'primary'
|
|
49
59
|
*/
|
|
50
|
-
"variant": 'primary' | 'secondary' | '
|
|
60
|
+
"variant": 'primary' | 'secondary' | 'tertiary';
|
|
51
61
|
}
|
|
52
62
|
interface AfButtonGroup {
|
|
53
63
|
/**
|
|
@@ -61,35 +71,65 @@ export namespace Components {
|
|
|
61
71
|
*/
|
|
62
72
|
"gap": string;
|
|
63
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Card atom component - a themed container with consistent styling.
|
|
76
|
+
* Provides theme context to children via CSS custom properties.
|
|
77
|
+
* This is a base building block used by molecule components like
|
|
78
|
+
* af-feature-card and af-illustrated-card.
|
|
79
|
+
*/
|
|
64
80
|
interface AfCard {
|
|
65
81
|
/**
|
|
66
|
-
*
|
|
82
|
+
* When true, the card stretches to fill its container height. Use this when the card is in a flex/grid container and needs to participate in equal-height layouts. The card's content will use flexbox to distribute space between children.
|
|
83
|
+
* @default false
|
|
67
84
|
*/
|
|
68
|
-
"
|
|
85
|
+
"stretch": boolean;
|
|
69
86
|
/**
|
|
70
|
-
*
|
|
87
|
+
* Theme - sets background color and provides theme context to children. Defaults to 'mist-green' if not specified.
|
|
88
|
+
* @default 'mist-green'
|
|
71
89
|
*/
|
|
72
|
-
"
|
|
90
|
+
"theme"?: 'white' | 'white-ivory' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Checkbox component for selecting multiple options.
|
|
94
|
+
* Supports checked, unchecked, and indeterminate states.
|
|
95
|
+
*/
|
|
96
|
+
interface AfCheckbox {
|
|
97
|
+
/**
|
|
98
|
+
* Whether the checkbox is checked
|
|
99
|
+
* @default false
|
|
100
|
+
*/
|
|
101
|
+
"checked": boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Whether the checkbox is disabled
|
|
104
|
+
* @default false
|
|
105
|
+
*/
|
|
106
|
+
"disabled": boolean;
|
|
73
107
|
/**
|
|
74
|
-
* Whether
|
|
108
|
+
* Whether the checkbox is in an indeterminate state
|
|
75
109
|
* @default false
|
|
76
110
|
*/
|
|
77
|
-
"
|
|
111
|
+
"indeterminate": boolean;
|
|
112
|
+
/**
|
|
113
|
+
* The name of the checkbox for form submission
|
|
114
|
+
*/
|
|
115
|
+
"name"?: string;
|
|
116
|
+
/**
|
|
117
|
+
* The value of the checkbox for form submission
|
|
118
|
+
*/
|
|
119
|
+
"value"?: string;
|
|
78
120
|
}
|
|
79
121
|
/**
|
|
80
|
-
* Infinite scrolling carousel for client logos
|
|
122
|
+
* Infinite scrolling carousel for client logos.
|
|
123
|
+
* This is a section-level component that spans full width.
|
|
124
|
+
* It supports theming via the `theme` prop.
|
|
125
|
+
* For headlines, use a separate TypographyLockup or Heading component above this carousel.
|
|
81
126
|
*/
|
|
82
127
|
interface AfClientCarousel {
|
|
83
128
|
/**
|
|
84
|
-
*
|
|
85
|
-
* @default
|
|
86
|
-
*/
|
|
87
|
-
"headlineText": string;
|
|
88
|
-
/**
|
|
89
|
-
* Show headline above carousel
|
|
90
|
-
* @default false
|
|
129
|
+
* Theme - sets background color and provides theme context to children
|
|
130
|
+
* @default 'inkwell'
|
|
91
131
|
*/
|
|
92
|
-
"
|
|
132
|
+
"theme": Theme;
|
|
93
133
|
}
|
|
94
134
|
interface AfColorSwatch {
|
|
95
135
|
/**
|
|
@@ -134,77 +174,114 @@ export namespace Components {
|
|
|
134
174
|
"maxWidth": 'xlarge' | 'large' | 'medium' | 'fluid';
|
|
135
175
|
}
|
|
136
176
|
/**
|
|
137
|
-
*
|
|
138
|
-
*
|
|
177
|
+
* Feature accordion component with expandable items and accompanying image.
|
|
178
|
+
* Used for showcasing product features with visual examples.
|
|
179
|
+
* Features auto-cycling through items with a progress timer.
|
|
180
|
+
* **Must be wrapped in a Section component** to inherit theme styling.
|
|
181
|
+
* The component automatically adapts colors based on the parent Section's theme.
|
|
182
|
+
* @example ```tsx
|
|
183
|
+
* <Section theme="inkwell">
|
|
184
|
+
* <FeatureAccordion heading="Features" items={...} />
|
|
185
|
+
* </Section>
|
|
186
|
+
* ```
|
|
139
187
|
*/
|
|
140
|
-
interface
|
|
188
|
+
interface AfFeatureAccordion {
|
|
141
189
|
/**
|
|
142
|
-
*
|
|
143
|
-
* @default
|
|
190
|
+
* Whether auto-cycling is enabled
|
|
191
|
+
* @default true
|
|
144
192
|
*/
|
|
145
|
-
"
|
|
193
|
+
"autoCycle": boolean;
|
|
194
|
+
/**
|
|
195
|
+
* Auto-cycle interval in milliseconds (default: 6000ms = 6 seconds)
|
|
196
|
+
* @default 6000
|
|
197
|
+
*/
|
|
198
|
+
"cycleInterval": number;
|
|
146
199
|
/**
|
|
147
200
|
* Section heading
|
|
148
|
-
* @default ''
|
|
201
|
+
* @default 'Give AI agents your paperwork'
|
|
149
202
|
*/
|
|
150
203
|
"heading": string;
|
|
151
204
|
/**
|
|
152
|
-
*
|
|
153
|
-
* @default ''
|
|
205
|
+
* JSON string of accordion items
|
|
206
|
+
* @default '[]'
|
|
154
207
|
*/
|
|
155
|
-
"
|
|
208
|
+
"items": string;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Feature Card molecule component that combines a card with an image.
|
|
212
|
+
* Two layout modes:
|
|
213
|
+
* - `standard`: Theme background with text at top and image at bottom
|
|
214
|
+
* - `full-bleed`: Image covers entire card with text overlay at bottom
|
|
215
|
+
* Responsive: Automatically adapts to mobile viewport (≤768px).
|
|
216
|
+
* Uses af-card atom internally and af-typography-lockup for text hierarchy.
|
|
217
|
+
*/
|
|
218
|
+
interface AfFeatureCard {
|
|
156
219
|
/**
|
|
157
|
-
*
|
|
158
|
-
* @default ''
|
|
220
|
+
* Card size variant. - 'default': Fixed 544px × 420px - 'large': Fixed 777px × 480px - 'flexible': Fills container (for grid layouts)
|
|
221
|
+
* @default 'default'
|
|
159
222
|
*/
|
|
160
|
-
"
|
|
223
|
+
"cardSize": 'default' | 'large' | 'flexible';
|
|
161
224
|
/**
|
|
162
|
-
*
|
|
163
|
-
* @default
|
|
225
|
+
* Heading size for typography lockup (1-5, where 1 is largest).
|
|
226
|
+
* @default 3
|
|
164
227
|
*/
|
|
165
|
-
"
|
|
228
|
+
"headingSize": 1 | 2 | 3 | 4 | 5;
|
|
166
229
|
/**
|
|
167
|
-
*
|
|
230
|
+
* Image alt text for accessibility. Provide meaningful alt text for feature images. Only use empty string for purely decorative images.
|
|
168
231
|
* @default ''
|
|
169
232
|
*/
|
|
170
|
-
"
|
|
233
|
+
"imageAlt": string;
|
|
171
234
|
/**
|
|
172
|
-
*
|
|
173
|
-
* @default '#'
|
|
235
|
+
* Background/feature image URL.
|
|
174
236
|
*/
|
|
175
|
-
"
|
|
237
|
+
"imageSrc"?: string;
|
|
176
238
|
/**
|
|
177
|
-
*
|
|
178
|
-
* @default
|
|
239
|
+
* Layout mode for the card. - 'standard': Theme background with text at top and image at bottom - 'full-bleed': Image covers entire card with text overlay at bottom
|
|
240
|
+
* @default 'standard'
|
|
179
241
|
*/
|
|
180
|
-
"
|
|
242
|
+
"layout": 'standard' | 'full-bleed';
|
|
243
|
+
/**
|
|
244
|
+
* Theme variant - sets background color and provides theme context. Only applies to 'standard' layout mode. Defaults to 'mist-green'.
|
|
245
|
+
* @default 'mist-green'
|
|
246
|
+
*/
|
|
247
|
+
"theme"?: 'white' | 'white-ivory' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
181
248
|
}
|
|
182
249
|
/**
|
|
183
|
-
* Feature
|
|
184
|
-
*
|
|
185
|
-
*
|
|
250
|
+
* Feature Grid component - CSS Grid container for feature cards.
|
|
251
|
+
* Desktop: Configurable columns (1-4)
|
|
252
|
+
* Mobile: List (stacked), horizontal scroll, or 2-column grid
|
|
186
253
|
*/
|
|
187
|
-
interface
|
|
254
|
+
interface AfFeatureGrid {
|
|
188
255
|
/**
|
|
189
|
-
*
|
|
190
|
-
* @default
|
|
256
|
+
* Number of columns on desktop (1-4).
|
|
257
|
+
* @default 4
|
|
191
258
|
*/
|
|
192
|
-
"
|
|
259
|
+
"columns": 1 | 2 | 3 | 4;
|
|
193
260
|
/**
|
|
194
|
-
*
|
|
195
|
-
* @default
|
|
261
|
+
* Mobile layout behavior. - 'list': Vertical stack (1 column) - 'scroll': Horizontal scroll with progress indicator - 'grid': Maintain 2-column grid on mobile
|
|
262
|
+
* @default 'list'
|
|
196
263
|
*/
|
|
197
|
-
"
|
|
264
|
+
"mobileLayout": 'list' | 'scroll' | 'grid';
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Fieldset component for grouping related form controls.
|
|
268
|
+
* Supports vertical and horizontal layouts with an optional legend/heading.
|
|
269
|
+
*/
|
|
270
|
+
interface AfFieldset {
|
|
198
271
|
/**
|
|
199
|
-
*
|
|
200
|
-
* @default
|
|
272
|
+
* Whether the fieldset is disabled (disables all child controls)
|
|
273
|
+
* @default false
|
|
201
274
|
*/
|
|
202
|
-
"
|
|
275
|
+
"disabled": boolean;
|
|
203
276
|
/**
|
|
204
|
-
*
|
|
205
|
-
* @default '[]'
|
|
277
|
+
* The legend/heading text for the fieldset
|
|
206
278
|
*/
|
|
207
|
-
"
|
|
279
|
+
"legend"?: string;
|
|
280
|
+
/**
|
|
281
|
+
* The layout orientation of the fieldset items - `vertical` - Items stack vertically (default) - `horizontal` - Items are laid out horizontally
|
|
282
|
+
* @default 'vertical'
|
|
283
|
+
*/
|
|
284
|
+
"orientation": 'vertical' | 'horizontal';
|
|
208
285
|
}
|
|
209
286
|
/**
|
|
210
287
|
* Footer component for marketing pages
|
|
@@ -265,6 +342,62 @@ export namespace Components {
|
|
|
265
342
|
*/
|
|
266
343
|
"href": string;
|
|
267
344
|
}
|
|
345
|
+
/**
|
|
346
|
+
* GridCallout organism - a marketing section combining an optional pill-shaped image
|
|
347
|
+
* with a grid of IconText feature items.
|
|
348
|
+
* Composes:
|
|
349
|
+
* - Pill-shaped image container (optional)
|
|
350
|
+
* - Heading via af-typography-lockup
|
|
351
|
+
* - Grid of af-icon-text items
|
|
352
|
+
* - Optional CTA button
|
|
353
|
+
* Inherits theme colors from parent af-section via CSS custom properties.
|
|
354
|
+
* @example ```html
|
|
355
|
+
* <af-section theme="mist-green">
|
|
356
|
+
* <af-grid-callout image-src="/team.jpg" image-alt="Team photo">
|
|
357
|
+
* Affinda blends AI and engineering
|
|
358
|
+
* <span slot="description">Optional description text.</span>
|
|
359
|
+
*
|
|
360
|
+
* <af-icon-text slot="items" icon="settings">
|
|
361
|
+
* Feature One
|
|
362
|
+
* <span slot="description">Feature description.</span>
|
|
363
|
+
* </af-icon-text>
|
|
364
|
+
*
|
|
365
|
+
* <af-button slot="cta" variant="primary">Learn more</af-button>
|
|
366
|
+
* </af-grid-callout>
|
|
367
|
+
* </af-section>
|
|
368
|
+
* ```
|
|
369
|
+
*/
|
|
370
|
+
interface AfGridCallout {
|
|
371
|
+
/**
|
|
372
|
+
* Number of columns for the IconText grid on desktop
|
|
373
|
+
* @default 2
|
|
374
|
+
*/
|
|
375
|
+
"columns": 2 | 3 | 4;
|
|
376
|
+
/**
|
|
377
|
+
* Heading size for the main title
|
|
378
|
+
* @default 2
|
|
379
|
+
*/
|
|
380
|
+
"headingSize": 1 | 2 | 3 | 4 | 5;
|
|
381
|
+
/**
|
|
382
|
+
* Alt text for the image (required for accessibility when imageSrc is provided)
|
|
383
|
+
* @default ''
|
|
384
|
+
*/
|
|
385
|
+
"imageAlt": string;
|
|
386
|
+
/**
|
|
387
|
+
* Position of the image relative to the content
|
|
388
|
+
* @default 'left'
|
|
389
|
+
*/
|
|
390
|
+
"imagePosition": 'left' | 'right';
|
|
391
|
+
/**
|
|
392
|
+
* Image source URL for the pill-shaped image
|
|
393
|
+
*/
|
|
394
|
+
"imageSrc"?: string;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Heading component that inherits color from theme context.
|
|
398
|
+
* Color is determined by the parent theme (af-section, af-hero-section, etc.)
|
|
399
|
+
* via CSS custom properties.
|
|
400
|
+
*/
|
|
268
401
|
interface AfHeading {
|
|
269
402
|
/**
|
|
270
403
|
* Visual alignment
|
|
@@ -276,32 +409,93 @@ export namespace Components {
|
|
|
276
409
|
* @default '1'
|
|
277
410
|
*/
|
|
278
411
|
"level": 'xl' | '1' | '2' | '3' | '4' | '5';
|
|
279
|
-
/**
|
|
280
|
-
* Theme for dark backgrounds
|
|
281
|
-
* @default 'light'
|
|
282
|
-
*/
|
|
283
|
-
"theme": 'light' | 'dark';
|
|
284
412
|
}
|
|
285
413
|
/**
|
|
286
|
-
* Hero section component for marketing pages
|
|
414
|
+
* Hero section component for marketing pages.
|
|
415
|
+
* Uses TypographyLockup internally to handle heading, description, and button layout.
|
|
416
|
+
* Sets theme context for all child components via CSS custom properties.
|
|
287
417
|
*/
|
|
288
418
|
interface AfHeroSection {
|
|
419
|
+
/**
|
|
420
|
+
* Button alignment - horizontal places buttons inline, vertical stacks them
|
|
421
|
+
* @default 'horizontal'
|
|
422
|
+
*/
|
|
423
|
+
"buttonAlignment": 'horizontal' | 'vertical';
|
|
424
|
+
/**
|
|
425
|
+
* Heading size for the typography lockup (1-5, where 1 is largest)
|
|
426
|
+
* @default 1
|
|
427
|
+
*/
|
|
428
|
+
"headingSize": 1 | 2 | 3 | 4 | 5;
|
|
429
|
+
/**
|
|
430
|
+
* Maximum width for the copy section (in pixels)
|
|
431
|
+
*/
|
|
432
|
+
"maxWidth"?: number;
|
|
289
433
|
/**
|
|
290
434
|
* Minimum height
|
|
291
435
|
* @default '60vh'
|
|
292
436
|
*/
|
|
293
437
|
"minHeight": string;
|
|
294
438
|
/**
|
|
295
|
-
*
|
|
296
|
-
* @default '
|
|
439
|
+
* Text alignment for the typography lockup
|
|
440
|
+
* @default 'center'
|
|
441
|
+
*/
|
|
442
|
+
"textAlignment": 'left' | 'center';
|
|
443
|
+
/**
|
|
444
|
+
* Theme - sets background color and provides theme context to children
|
|
445
|
+
* @default 'inkwell'
|
|
297
446
|
*/
|
|
298
|
-
"
|
|
447
|
+
"theme": 'white' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
299
448
|
/**
|
|
300
449
|
* Show decorative paperclip
|
|
301
450
|
* @default false
|
|
302
451
|
*/
|
|
303
452
|
"withDecoration": boolean;
|
|
304
453
|
}
|
|
454
|
+
/**
|
|
455
|
+
* Icon component that displays SVG icons from the Affinda icon library.
|
|
456
|
+
* Icons inherit color from their parent via currentColor.
|
|
457
|
+
* Icons are bundled inline, so no runtime fetching is required.
|
|
458
|
+
* This ensures icons work reliably in all bundler contexts.
|
|
459
|
+
* @example ```html
|
|
460
|
+
* <af-icon name="arrow-right" size="24"></af-icon>
|
|
461
|
+
* ```
|
|
462
|
+
*/
|
|
463
|
+
interface AfIcon {
|
|
464
|
+
/**
|
|
465
|
+
* Accessible label for the icon (for screen readers)
|
|
466
|
+
*/
|
|
467
|
+
"label"?: string;
|
|
468
|
+
/**
|
|
469
|
+
* The name of the icon to display
|
|
470
|
+
*/
|
|
471
|
+
"name": IconName;
|
|
472
|
+
/**
|
|
473
|
+
* Size of the icon in pixels
|
|
474
|
+
* @default 24
|
|
475
|
+
*/
|
|
476
|
+
"size": number;
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* IconBox atom - a themed container for displaying an icon with a rounded background.
|
|
480
|
+
* Inherits theme colors from parent Section via CSS custom properties:
|
|
481
|
+
* - Background uses `--af-background-contrast`
|
|
482
|
+
* - Icon color uses `--af-background-icon-default`
|
|
483
|
+
* @example ```html
|
|
484
|
+
* <af-icon-box icon="settings" size="default"></af-icon-box>
|
|
485
|
+
* ```
|
|
486
|
+
*/
|
|
487
|
+
interface AfIconBox {
|
|
488
|
+
/**
|
|
489
|
+
* The name of the icon to display (from
|
|
490
|
+
* @affinda /icons)
|
|
491
|
+
*/
|
|
492
|
+
"icon": IconName;
|
|
493
|
+
/**
|
|
494
|
+
* Size variant of the icon box - 'small': 48px container, 20px icon - 'default': 64px container, 40px icon - 'large': 80px container, 48px icon
|
|
495
|
+
* @default 'default'
|
|
496
|
+
*/
|
|
497
|
+
"size": 'small' | 'default' | 'large';
|
|
498
|
+
}
|
|
305
499
|
interface AfIconButton {
|
|
306
500
|
/**
|
|
307
501
|
* Accessible label for screen readers
|
|
@@ -327,883 +521,2895 @@ export namespace Components {
|
|
|
327
521
|
*/
|
|
328
522
|
"type": 'button' | 'submit' | 'reset';
|
|
329
523
|
/**
|
|
330
|
-
* The visual variant of the button
|
|
524
|
+
* The visual variant of the button. - `primary` - Main CTA with filled ice background - `secondary` - Supporting action with white background - `tertiary` - Minimal style with transparent background
|
|
331
525
|
* @default 'primary'
|
|
332
526
|
*/
|
|
333
|
-
"variant": 'primary' | 'secondary' | '
|
|
527
|
+
"variant": 'primary' | 'secondary' | 'tertiary';
|
|
334
528
|
}
|
|
335
529
|
/**
|
|
336
|
-
*
|
|
337
|
-
*
|
|
530
|
+
* IconText molecule - combines an IconBox with a TypographyLockup for feature items.
|
|
531
|
+
* Composes:
|
|
532
|
+
* - af-icon-box: Themed icon container
|
|
533
|
+
* - af-typography-lockup: Heading, description, and button slots
|
|
534
|
+
* Inherits theme colors from parent Section via CSS custom properties.
|
|
535
|
+
* @example ```html
|
|
536
|
+
* <af-icon-text icon="settings" heading-size="4">
|
|
537
|
+
* Feature Heading
|
|
538
|
+
* <span slot="description">Feature description text.</span>
|
|
539
|
+
* <af-button slot="buttons" variant="tertiary">Learn more</af-button>
|
|
540
|
+
* </af-icon-text>
|
|
541
|
+
* ```
|
|
338
542
|
*/
|
|
339
|
-
interface
|
|
543
|
+
interface AfIconText {
|
|
340
544
|
/**
|
|
341
|
-
*
|
|
342
|
-
* @default
|
|
545
|
+
* Heading size for the typography lockup (1-5, where 1 is largest)
|
|
546
|
+
* @default 4
|
|
343
547
|
*/
|
|
344
|
-
"
|
|
548
|
+
"headingSize": 1 | 2 | 3 | 4 | 5;
|
|
345
549
|
/**
|
|
346
|
-
*
|
|
550
|
+
* The icon name to display in the IconBox
|
|
347
551
|
*/
|
|
348
|
-
"
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
552
|
+
"icon": IconName;
|
|
553
|
+
/**
|
|
554
|
+
* Size of the icon box
|
|
555
|
+
* @default 'default'
|
|
556
|
+
*/
|
|
557
|
+
"iconSize": 'small' | 'default' | 'large';
|
|
558
|
+
/**
|
|
559
|
+
* Layout orientation - 'vertical': Icon above text (default, used in grid layouts) - 'horizontal': Icon beside text (used in compact layouts)
|
|
560
|
+
* @default 'vertical'
|
|
561
|
+
*/
|
|
562
|
+
"orientation": 'vertical' | 'horizontal';
|
|
354
563
|
}
|
|
355
564
|
/**
|
|
356
|
-
*
|
|
357
|
-
*
|
|
565
|
+
* Illustrated Card molecule component that combines a card with an illustration.
|
|
566
|
+
* Uses a theme background with text at top and an illustration from
|
|
567
|
+
* @affinda /illustrations at the bottom.
|
|
568
|
+
* Uses af-card atom internally and af-typography-lockup for text hierarchy.
|
|
358
569
|
*/
|
|
359
|
-
interface
|
|
570
|
+
interface AfIllustratedCard {
|
|
360
571
|
/**
|
|
361
|
-
*
|
|
362
|
-
* @default
|
|
363
|
-
*/
|
|
364
|
-
"active": boolean;
|
|
365
|
-
/**
|
|
366
|
-
* Visual hierarchy level of the navigation item - 'primary': Bold, main navigation (larger text, prominent styling) - 'secondary': Lighter, sub-navigation (smaller text, subtle styling)
|
|
367
|
-
* @default 'primary'
|
|
572
|
+
* Responsive breakpoint for typography sizing.
|
|
573
|
+
* @default 'desktop'
|
|
368
574
|
*/
|
|
369
|
-
"
|
|
575
|
+
"breakpoint": 'desktop' | 'mobile';
|
|
370
576
|
/**
|
|
371
|
-
*
|
|
577
|
+
* Card size variant (applies to desktop only).
|
|
578
|
+
* @default 'default'
|
|
372
579
|
*/
|
|
373
|
-
"
|
|
580
|
+
"cardSize": 'default' | 'large';
|
|
374
581
|
/**
|
|
375
|
-
*
|
|
376
|
-
* @default '
|
|
582
|
+
* Theme variant - sets background color and provides theme context. Defaults to 'mist-green'.
|
|
583
|
+
* @default 'mist-green'
|
|
377
584
|
*/
|
|
378
|
-
"
|
|
585
|
+
"theme"?: 'white' | 'white-ivory' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
379
586
|
}
|
|
380
587
|
/**
|
|
381
|
-
* A
|
|
382
|
-
*
|
|
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.
|
|
588
|
+
* A styled image container with rounded corners and a subtle inset border.
|
|
589
|
+
* Provides consistent image styling across the design system.
|
|
386
590
|
*/
|
|
387
|
-
interface
|
|
591
|
+
interface AfImage {
|
|
388
592
|
/**
|
|
389
|
-
*
|
|
390
|
-
* @default true
|
|
593
|
+
* Alternative text for the image (required for accessibility)
|
|
391
594
|
*/
|
|
392
|
-
"
|
|
595
|
+
"alt": string;
|
|
596
|
+
/**
|
|
597
|
+
* The image source URL
|
|
598
|
+
*/
|
|
599
|
+
"src": string;
|
|
393
600
|
}
|
|
394
601
|
/**
|
|
395
|
-
*
|
|
602
|
+
* In-page banner component for call-to-action content.
|
|
603
|
+
* A banner card with illustration, heading, description, and action buttons.
|
|
604
|
+
* Typically placed inside a neutral (white) Section to show off its themed background.
|
|
605
|
+
* The component has its own theme prop to control its background color and styling.
|
|
606
|
+
* **Illustration Usage:**
|
|
607
|
+
* Use `illustrationUrl` to pass an illustration image URL. For theme-matched illustrations,
|
|
608
|
+
* use `getIllustrationUrlByScene()` from `@affinda/illustrations` in your consuming app:
|
|
609
|
+
* ```tsx
|
|
610
|
+
* import { getIllustrationUrlByScene } from '@affinda/illustrations';
|
|
611
|
+
* <InPageBanner
|
|
612
|
+
* theme="inkwell"
|
|
613
|
+
* illustrationUrl={getIllustrationUrlByScene('automate', 'inkwell')}
|
|
614
|
+
* ...
|
|
615
|
+
* />
|
|
616
|
+
* ```
|
|
617
|
+
* Alternatively, use the `illustration` slot for completely custom content.
|
|
396
618
|
*/
|
|
397
|
-
interface
|
|
619
|
+
interface AfInPageBanner {
|
|
398
620
|
/**
|
|
399
|
-
*
|
|
400
|
-
* @default '
|
|
621
|
+
* Banner description
|
|
622
|
+
* @default ''
|
|
401
623
|
*/
|
|
402
|
-
"
|
|
624
|
+
"description": string;
|
|
403
625
|
/**
|
|
404
|
-
*
|
|
405
|
-
* @default
|
|
626
|
+
* Banner heading
|
|
627
|
+
* @default ''
|
|
406
628
|
*/
|
|
407
|
-
"
|
|
629
|
+
"heading": string;
|
|
408
630
|
/**
|
|
409
|
-
*
|
|
410
|
-
* @
|
|
631
|
+
* Illustration URL. For theme-matched illustrations, use getIllustrationUrlByScene() from
|
|
632
|
+
* @affinda /illustrations in your app code.
|
|
633
|
+
* @default ''
|
|
411
634
|
*/
|
|
412
|
-
"
|
|
413
|
-
}
|
|
414
|
-
/**
|
|
415
|
-
* Social media link component
|
|
416
|
-
* Circular bordered icon link for social media profiles
|
|
417
|
-
*/
|
|
418
|
-
interface AfSocialLink {
|
|
635
|
+
"illustrationUrl": string;
|
|
419
636
|
/**
|
|
420
|
-
*
|
|
421
|
-
* @default '
|
|
637
|
+
* Primary button text
|
|
638
|
+
* @default ''
|
|
422
639
|
*/
|
|
423
|
-
"
|
|
640
|
+
"primaryButtonText": string;
|
|
424
641
|
/**
|
|
425
|
-
*
|
|
426
|
-
* @default '
|
|
642
|
+
* Primary button URL
|
|
643
|
+
* @default '#'
|
|
427
644
|
*/
|
|
428
|
-
"
|
|
645
|
+
"primaryButtonUrl": string;
|
|
429
646
|
/**
|
|
430
|
-
*
|
|
647
|
+
* Secondary button text (optional - if empty, button won't show)
|
|
431
648
|
* @default ''
|
|
432
649
|
*/
|
|
433
|
-
"
|
|
434
|
-
}
|
|
435
|
-
interface AfTestimonial {
|
|
650
|
+
"secondaryButtonText": string;
|
|
436
651
|
/**
|
|
437
|
-
*
|
|
652
|
+
* Secondary button URL
|
|
653
|
+
* @default '#'
|
|
438
654
|
*/
|
|
439
|
-
"
|
|
655
|
+
"secondaryButtonUrl": string;
|
|
440
656
|
/**
|
|
441
|
-
*
|
|
657
|
+
* Whether to show the decorative wave overlay
|
|
658
|
+
* @default true
|
|
442
659
|
*/
|
|
443
|
-
"
|
|
660
|
+
"showWaveDecoration": boolean;
|
|
444
661
|
/**
|
|
445
|
-
*
|
|
662
|
+
* Theme - sets the banner background color and typography colors
|
|
663
|
+
* @default 'mist-green'
|
|
446
664
|
*/
|
|
447
|
-
"
|
|
665
|
+
"theme": BannerTheme;
|
|
666
|
+
}
|
|
667
|
+
/**
|
|
668
|
+
* Input field component with label, description, and error states.
|
|
669
|
+
* Supports various input types and validation states.
|
|
670
|
+
*/
|
|
671
|
+
interface AfInput {
|
|
448
672
|
/**
|
|
449
|
-
*
|
|
673
|
+
* Autocomplete attribute for the input
|
|
450
674
|
*/
|
|
451
|
-
"
|
|
675
|
+
"autocomplete"?: string;
|
|
452
676
|
/**
|
|
453
|
-
*
|
|
677
|
+
* Whether to show a clear button when input has value
|
|
678
|
+
* @default false
|
|
454
679
|
*/
|
|
455
|
-
"
|
|
456
|
-
}
|
|
457
|
-
interface AfTestimonialCarousel {
|
|
458
|
-
}
|
|
459
|
-
interface AfTestimonialStat {
|
|
680
|
+
"clearable": boolean;
|
|
460
681
|
/**
|
|
461
|
-
*
|
|
682
|
+
* Description text displayed below the label
|
|
683
|
+
*/
|
|
684
|
+
"description"?: string;
|
|
685
|
+
/**
|
|
686
|
+
* Whether the input is disabled
|
|
462
687
|
* @default false
|
|
463
688
|
*/
|
|
464
|
-
"
|
|
689
|
+
"disabled": boolean;
|
|
465
690
|
/**
|
|
466
|
-
*
|
|
691
|
+
* Error message to display (also sets error state)
|
|
467
692
|
*/
|
|
468
|
-
"
|
|
693
|
+
"error"?: string;
|
|
469
694
|
/**
|
|
470
|
-
* The
|
|
695
|
+
* The label text for the input field
|
|
471
696
|
*/
|
|
472
|
-
"
|
|
473
|
-
}
|
|
474
|
-
interface AfText {
|
|
697
|
+
"label"?: string;
|
|
475
698
|
/**
|
|
476
|
-
*
|
|
477
|
-
* @default 'left'
|
|
699
|
+
* Maximum length of input value
|
|
478
700
|
*/
|
|
479
|
-
"
|
|
701
|
+
"maxlength"?: number;
|
|
480
702
|
/**
|
|
481
|
-
*
|
|
482
|
-
* @default 'p'
|
|
703
|
+
* Minimum length of input value
|
|
483
704
|
*/
|
|
484
|
-
"
|
|
705
|
+
"minlength"?: number;
|
|
485
706
|
/**
|
|
486
|
-
*
|
|
487
|
-
* @default 'light'
|
|
707
|
+
* The name of the input for form submission
|
|
488
708
|
*/
|
|
489
|
-
"
|
|
709
|
+
"name"?: string;
|
|
490
710
|
/**
|
|
491
|
-
*
|
|
492
|
-
* @default 'medium'
|
|
711
|
+
* Pattern for input validation (regex)
|
|
493
712
|
*/
|
|
494
|
-
"
|
|
495
|
-
}
|
|
496
|
-
interface AfTypographyLockup {
|
|
713
|
+
"pattern"?: string;
|
|
497
714
|
/**
|
|
498
|
-
*
|
|
499
|
-
* @default 'desktop'
|
|
715
|
+
* Placeholder text for the input
|
|
500
716
|
*/
|
|
501
|
-
"
|
|
717
|
+
"placeholder"?: string;
|
|
502
718
|
/**
|
|
503
|
-
*
|
|
504
|
-
* @default
|
|
719
|
+
* Whether the input is read-only
|
|
720
|
+
* @default false
|
|
505
721
|
*/
|
|
506
|
-
"
|
|
722
|
+
"readonly": boolean;
|
|
507
723
|
/**
|
|
508
|
-
*
|
|
509
|
-
* @default
|
|
724
|
+
* Whether the input is required
|
|
725
|
+
* @default false
|
|
510
726
|
*/
|
|
511
|
-
"
|
|
727
|
+
"required": boolean;
|
|
512
728
|
/**
|
|
513
|
-
*
|
|
729
|
+
* Whether to show the info icon next to the label
|
|
730
|
+
* @default false
|
|
514
731
|
*/
|
|
515
|
-
"
|
|
732
|
+
"showInfoIcon": boolean;
|
|
516
733
|
/**
|
|
517
|
-
*
|
|
518
|
-
* @default
|
|
734
|
+
* Whether to show a search icon in the input
|
|
735
|
+
* @default false
|
|
519
736
|
*/
|
|
520
|
-
"
|
|
737
|
+
"showSearchIcon": boolean;
|
|
738
|
+
/**
|
|
739
|
+
* The input type (text, email, password, number, tel, url, search)
|
|
740
|
+
* @default 'text'
|
|
741
|
+
*/
|
|
742
|
+
"type": 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search';
|
|
743
|
+
/**
|
|
744
|
+
* The current value of the input
|
|
745
|
+
* @default ''
|
|
746
|
+
*/
|
|
747
|
+
"value": string;
|
|
521
748
|
}
|
|
522
|
-
}
|
|
523
|
-
declare global {
|
|
524
749
|
/**
|
|
525
|
-
*
|
|
526
|
-
* Useful for images, videos, or any content that needs to maintain specific proportions.
|
|
750
|
+
* Affinda logo component
|
|
527
751
|
*/
|
|
528
|
-
interface
|
|
529
|
-
}
|
|
530
|
-
var HTMLAfAspectRatioElement: {
|
|
531
|
-
prototype: HTMLAfAspectRatioElement;
|
|
532
|
-
new (): HTMLAfAspectRatioElement;
|
|
533
|
-
};
|
|
534
|
-
interface HTMLAfButtonElement extends Components.AfButton, HTMLStencilElement {
|
|
535
|
-
}
|
|
536
|
-
var HTMLAfButtonElement: {
|
|
537
|
-
prototype: HTMLAfButtonElement;
|
|
538
|
-
new (): HTMLAfButtonElement;
|
|
539
|
-
};
|
|
540
|
-
interface HTMLAfButtonGroupElement extends Components.AfButtonGroup, HTMLStencilElement {
|
|
541
|
-
}
|
|
542
|
-
var HTMLAfButtonGroupElement: {
|
|
543
|
-
prototype: HTMLAfButtonGroupElement;
|
|
544
|
-
new (): HTMLAfButtonGroupElement;
|
|
545
|
-
};
|
|
546
|
-
interface HTMLAfCardElement extends Components.AfCard, HTMLStencilElement {
|
|
752
|
+
interface AfLogo {
|
|
547
753
|
}
|
|
548
|
-
var HTMLAfCardElement: {
|
|
549
|
-
prototype: HTMLAfCardElement;
|
|
550
|
-
new (): HTMLAfCardElement;
|
|
551
|
-
};
|
|
552
754
|
/**
|
|
553
|
-
*
|
|
755
|
+
* A rounded container for displaying client logos
|
|
554
756
|
*/
|
|
555
|
-
interface
|
|
556
|
-
}
|
|
557
|
-
var HTMLAfClientCarouselElement: {
|
|
558
|
-
prototype: HTMLAfClientCarouselElement;
|
|
559
|
-
new (): HTMLAfClientCarouselElement;
|
|
560
|
-
};
|
|
561
|
-
interface HTMLAfColorSwatchElement extends Components.AfColorSwatch, HTMLStencilElement {
|
|
757
|
+
interface AfLogoWell {
|
|
562
758
|
}
|
|
563
|
-
var HTMLAfColorSwatchElement: {
|
|
564
|
-
prototype: HTMLAfColorSwatchElement;
|
|
565
|
-
new (): HTMLAfColorSwatchElement;
|
|
566
|
-
};
|
|
567
759
|
/**
|
|
568
|
-
*
|
|
569
|
-
* Displays
|
|
760
|
+
* A navigation card component for featured article content in mega-menu dropdowns.
|
|
761
|
+
* Displays an image with a gradient overlay and headline text.
|
|
762
|
+
* **Usage:**
|
|
763
|
+
* - Place in the `sidebar` slot of NavMenuNest
|
|
764
|
+
* - Provide imageSrc, heading, and href props
|
|
765
|
+
* **Hover behavior:**
|
|
766
|
+
* - Slight scale effect (1.02)
|
|
767
|
+
* - Headline underline
|
|
570
768
|
*/
|
|
571
|
-
interface
|
|
769
|
+
interface AfNavCard {
|
|
770
|
+
/**
|
|
771
|
+
* The headline text displayed over the image
|
|
772
|
+
*/
|
|
773
|
+
"heading"?: string;
|
|
774
|
+
/**
|
|
775
|
+
* URL to navigate to when clicked
|
|
776
|
+
*/
|
|
777
|
+
"href"?: string;
|
|
778
|
+
/**
|
|
779
|
+
* Alternative text for the image
|
|
780
|
+
* @default ''
|
|
781
|
+
*/
|
|
782
|
+
"imageAlt": string;
|
|
783
|
+
/**
|
|
784
|
+
* Image source URL for the background
|
|
785
|
+
*/
|
|
786
|
+
"imageSrc"?: string;
|
|
572
787
|
}
|
|
573
|
-
var HTMLAfContactItemElement: {
|
|
574
|
-
prototype: HTMLAfContactItemElement;
|
|
575
|
-
new (): HTMLAfContactItemElement;
|
|
576
|
-
};
|
|
577
788
|
/**
|
|
578
|
-
* A
|
|
579
|
-
*
|
|
789
|
+
* A generic navigation item component that can be used in navigation bars, menus, and sidebars.
|
|
790
|
+
* Supports multiple hierarchy levels, variants, and states (active, hover).
|
|
580
791
|
*/
|
|
581
|
-
interface
|
|
792
|
+
interface AfNavItem {
|
|
793
|
+
/**
|
|
794
|
+
* Whether this nav item is currently active/selected
|
|
795
|
+
* @default false
|
|
796
|
+
*/
|
|
797
|
+
"active": boolean;
|
|
798
|
+
/**
|
|
799
|
+
* Breakpoint variant for responsive styling - 'desktop': Desktop-specific styles - 'mobile': Mobile-specific styles (larger text, different spacing)
|
|
800
|
+
* @default 'desktop'
|
|
801
|
+
*/
|
|
802
|
+
"breakpoint": 'desktop' | 'mobile';
|
|
803
|
+
/**
|
|
804
|
+
* Visual hierarchy level of the navigation item - 'primary': Bold, main navigation (larger text, prominent styling) - 'secondary': Lighter, sub-navigation (smaller text, subtle styling)
|
|
805
|
+
* @default 'primary'
|
|
806
|
+
*/
|
|
807
|
+
"hierarchy": 'primary' | 'secondary';
|
|
808
|
+
/**
|
|
809
|
+
* URL to navigate to when clicked
|
|
810
|
+
*/
|
|
811
|
+
"href"?: string;
|
|
812
|
+
/**
|
|
813
|
+
* Visual variant within the hierarchy level - '01': Darker/more prominent styling - '02': Lighter/more subtle styling
|
|
814
|
+
* @default '01'
|
|
815
|
+
*/
|
|
816
|
+
"variant": '01' | '02';
|
|
582
817
|
}
|
|
583
|
-
var HTMLAfContainerElement: {
|
|
584
|
-
prototype: HTMLAfContainerElement;
|
|
585
|
-
new (): HTMLAfContainerElement;
|
|
586
|
-
};
|
|
587
818
|
/**
|
|
588
|
-
*
|
|
589
|
-
*
|
|
819
|
+
* A grouped navigation menu component with a heading.
|
|
820
|
+
* Used in mega-menu dropdowns to group related navigation items.
|
|
590
821
|
*/
|
|
591
|
-
interface
|
|
822
|
+
interface AfNavMenu {
|
|
823
|
+
/**
|
|
824
|
+
* Breakpoint variant for responsive styling - 'desktop': Desktop-specific styles (right border, horizontal padding) - 'mobile': Mobile-specific styles (bottom border, vertical layout)
|
|
825
|
+
* @default 'desktop'
|
|
826
|
+
*/
|
|
827
|
+
"breakpoint": 'desktop' | 'mobile';
|
|
828
|
+
/**
|
|
829
|
+
* Whether to display as a card with background color and rounded corners. Used for highlighted sidebar menus (e.g., solutions-alt variant).
|
|
830
|
+
* @default false
|
|
831
|
+
*/
|
|
832
|
+
"cardStyle": boolean;
|
|
833
|
+
/**
|
|
834
|
+
* The heading text displayed above the navigation items
|
|
835
|
+
*/
|
|
836
|
+
"heading"?: string;
|
|
837
|
+
/**
|
|
838
|
+
* Whether to show the right border separator. When used inside NavMenuNest, borders are controlled by the parent. Set to true only when using NavMenu standalone.
|
|
839
|
+
* @default false
|
|
840
|
+
*/
|
|
841
|
+
"showBorder": boolean;
|
|
592
842
|
}
|
|
593
|
-
var HTMLAfCtaSectionElement: {
|
|
594
|
-
prototype: HTMLAfCtaSectionElement;
|
|
595
|
-
new (): HTMLAfCtaSectionElement;
|
|
596
|
-
};
|
|
597
843
|
/**
|
|
598
|
-
*
|
|
599
|
-
*
|
|
600
|
-
*
|
|
844
|
+
* A mega-menu dropdown panel component.
|
|
845
|
+
* Acts as a container for NavMenu columns and optionally a sidebar.
|
|
846
|
+
* Used as the dropdown content for navbar items.
|
|
847
|
+
* **Slots:**
|
|
848
|
+
* - default: Place NavMenu components here - they will be displayed as columns
|
|
849
|
+
* - sidebar: Optional sidebar content (NavMenu, NavCard, or any content)
|
|
850
|
+
* **Example:**
|
|
851
|
+
* ```html
|
|
852
|
+
* <af-nav-menu-nest type="solutions" breakpoint="desktop">
|
|
853
|
+
* <af-nav-menu heading="Industries">...</af-nav-menu>
|
|
854
|
+
* <af-nav-menu heading="Use Cases">...</af-nav-menu>
|
|
855
|
+
* <af-nav-menu heading="Documents">...</af-nav-menu>
|
|
856
|
+
* <af-nav-menu slot="sidebar" heading="Resume Parser">...</af-nav-menu>
|
|
857
|
+
* </af-nav-menu-nest>
|
|
858
|
+
* ```
|
|
601
859
|
*/
|
|
602
|
-
interface
|
|
860
|
+
interface AfNavMenuNest {
|
|
861
|
+
/**
|
|
862
|
+
* Breakpoint variant for responsive styling - 'desktop': Horizontal multi-column layout - 'mobile': Vertical stacked layout
|
|
863
|
+
* @default 'desktop'
|
|
864
|
+
*/
|
|
865
|
+
"breakpoint": 'desktop' | 'mobile';
|
|
866
|
+
/**
|
|
867
|
+
* Whether to show the heavier border on the last column (before sidebar). Set to `true` when sidebar has content, `false` when no sidebar. When `false`, the last column has no border.
|
|
868
|
+
* @default true
|
|
869
|
+
*/
|
|
870
|
+
"showSidebarBorder": boolean;
|
|
871
|
+
/**
|
|
872
|
+
* The type/variant of the mega-menu - 'solutions': Multi-column layout (3 columns + sidebar) - 'solutions-alt': Alternative solutions layout - 'resources': Multi-column layout with optional featured card - 'pricing': Simpler layout without sidebar
|
|
873
|
+
* @default 'solutions'
|
|
874
|
+
*/
|
|
875
|
+
"type": 'solutions' | 'solutions-alt' | 'resources' | 'pricing';
|
|
603
876
|
}
|
|
604
|
-
var HTMLAfFeatureAccordionElement: {
|
|
605
|
-
prototype: HTMLAfFeatureAccordionElement;
|
|
606
|
-
new (): HTMLAfFeatureAccordionElement;
|
|
607
|
-
};
|
|
608
877
|
/**
|
|
609
|
-
*
|
|
610
|
-
*
|
|
611
|
-
*
|
|
878
|
+
* A full-width navigation bar component that provides the main site navigation.
|
|
879
|
+
* Features a pill-shaped container with logo, navigation links, and action buttons.
|
|
880
|
+
* Includes mobile hamburger menu and support for mega-menu dropdowns.
|
|
881
|
+
* The logo slot can be used to provide a custom logo. If no logo is provided,
|
|
882
|
+
* the default Affinda logo will be displayed.
|
|
612
883
|
*/
|
|
613
|
-
interface
|
|
884
|
+
interface AfNavbar {
|
|
885
|
+
/**
|
|
886
|
+
* Whether to show the default Affinda logo when no logo slot content is provided
|
|
887
|
+
* @default true
|
|
888
|
+
*/
|
|
889
|
+
"showDefaultLogo": boolean;
|
|
890
|
+
/**
|
|
891
|
+
* Theme for the spacer background - should match the section below the navbar
|
|
892
|
+
*/
|
|
893
|
+
"theme"?: 'white' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
614
894
|
}
|
|
615
|
-
var HTMLAfFooterElement: {
|
|
616
|
-
prototype: HTMLAfFooterElement;
|
|
617
|
-
new (): HTMLAfFooterElement;
|
|
618
|
-
};
|
|
619
895
|
/**
|
|
620
|
-
*
|
|
621
|
-
*
|
|
896
|
+
* NumberBadge displays numbers 1-10 in either a filled circle or text-only style.
|
|
897
|
+
* Perfect for numbered lists, step indicators, or ordered content.
|
|
898
|
+
* @example ```html
|
|
899
|
+
* <af-number-badge number="1" variant="inCircle" size="48"></af-number-badge>
|
|
900
|
+
* <af-number-badge number="5" variant="outlined" size="32"></af-number-badge>
|
|
901
|
+
* ```
|
|
622
902
|
*/
|
|
623
|
-
interface
|
|
903
|
+
interface AfNumberBadge {
|
|
904
|
+
/**
|
|
905
|
+
* The number to display (1-10)
|
|
906
|
+
* @default 1
|
|
907
|
+
*/
|
|
908
|
+
"number": NumberBadgeNumber;
|
|
909
|
+
/**
|
|
910
|
+
* Size of the badge in pixels
|
|
911
|
+
* @default 48
|
|
912
|
+
*/
|
|
913
|
+
"size": number;
|
|
914
|
+
/**
|
|
915
|
+
* Visual variant of the badge - `inCircle` - Number in filled soft-clay circle - `outlined` - Number text only in mist-green
|
|
916
|
+
* @default 'inCircle'
|
|
917
|
+
*/
|
|
918
|
+
"variant": NumberBadgeVariant;
|
|
624
919
|
}
|
|
625
|
-
var HTMLAfFooterColumnElement: {
|
|
626
|
-
prototype: HTMLAfFooterColumnElement;
|
|
627
|
-
new (): HTMLAfFooterColumnElement;
|
|
628
|
-
};
|
|
629
920
|
/**
|
|
630
|
-
*
|
|
631
|
-
*
|
|
921
|
+
* Progress Line atom component for displaying scroll or completion progress.
|
|
922
|
+
* Shows a horizontal bar with a filled portion indicating progress.
|
|
923
|
+
* Used primarily for carousel scroll indicators.
|
|
632
924
|
*/
|
|
633
|
-
interface
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
925
|
+
interface AfProgressLine {
|
|
926
|
+
/**
|
|
927
|
+
* Orientation of the progress line. Currently only horizontal is supported.
|
|
928
|
+
* @default 'horizontal'
|
|
929
|
+
*/
|
|
930
|
+
"orientation": 'horizontal';
|
|
931
|
+
/**
|
|
932
|
+
* Progress value from 0 to 1 (0 = 0%, 1 = 100%).
|
|
933
|
+
* @default 0
|
|
934
|
+
*/
|
|
935
|
+
"progress": number;
|
|
640
936
|
}
|
|
641
|
-
var HTMLAfHeadingElement: {
|
|
642
|
-
prototype: HTMLAfHeadingElement;
|
|
643
|
-
new (): HTMLAfHeadingElement;
|
|
644
|
-
};
|
|
645
937
|
/**
|
|
646
|
-
*
|
|
938
|
+
* Radio component for selecting a single option from a group.
|
|
647
939
|
*/
|
|
648
|
-
interface
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
940
|
+
interface AfRadio {
|
|
941
|
+
/**
|
|
942
|
+
* Whether the radio is checked
|
|
943
|
+
* @default false
|
|
944
|
+
*/
|
|
945
|
+
"checked": boolean;
|
|
946
|
+
/**
|
|
947
|
+
* Whether the radio is disabled
|
|
948
|
+
* @default false
|
|
949
|
+
*/
|
|
950
|
+
"disabled": boolean;
|
|
951
|
+
/**
|
|
952
|
+
* The name of the radio for form submission (radios with same name are grouped)
|
|
953
|
+
*/
|
|
954
|
+
"name"?: string;
|
|
955
|
+
/**
|
|
956
|
+
* The value of the radio for form submission
|
|
957
|
+
*/
|
|
958
|
+
"value"?: string;
|
|
655
959
|
}
|
|
656
|
-
var HTMLAfIconButtonElement: {
|
|
657
|
-
prototype: HTMLAfIconButtonElement;
|
|
658
|
-
new (): HTMLAfIconButtonElement;
|
|
659
|
-
};
|
|
660
960
|
/**
|
|
661
|
-
*
|
|
662
|
-
*
|
|
961
|
+
* Section layout component for consistent spacing and backgrounds.
|
|
962
|
+
* Sets theme context for all child components via CSS custom properties.
|
|
663
963
|
*/
|
|
664
|
-
interface
|
|
964
|
+
interface AfSection {
|
|
965
|
+
/**
|
|
966
|
+
* Whether to include a Container wrapper
|
|
967
|
+
* @default true
|
|
968
|
+
*/
|
|
969
|
+
"container": boolean;
|
|
970
|
+
/**
|
|
971
|
+
* Padding variant
|
|
972
|
+
* @default 'default'
|
|
973
|
+
*/
|
|
974
|
+
"padding": 'tight' | 'default' | 'loose';
|
|
975
|
+
/**
|
|
976
|
+
* Theme - sets background color and provides theme context to children
|
|
977
|
+
* @default 'white'
|
|
978
|
+
*/
|
|
979
|
+
"theme": 'white' | 'inkwell' | 'mist-green' | 'soft-clay' | 'white-ivory';
|
|
665
980
|
}
|
|
666
|
-
var HTMLAfLogoElement: {
|
|
667
|
-
prototype: HTMLAfLogoElement;
|
|
668
|
-
new (): HTMLAfLogoElement;
|
|
669
|
-
};
|
|
670
981
|
/**
|
|
671
|
-
*
|
|
982
|
+
* Social media link component
|
|
983
|
+
* Circular bordered icon link for social media profiles
|
|
672
984
|
*/
|
|
673
|
-
interface
|
|
985
|
+
interface AfSocialLink {
|
|
986
|
+
/**
|
|
987
|
+
* Link URL
|
|
988
|
+
* @default '#'
|
|
989
|
+
*/
|
|
990
|
+
"href": string;
|
|
991
|
+
/**
|
|
992
|
+
* Icon type: 'linkedin', 'youtube', 'github', 'twitter', 'facebook', or 'custom'
|
|
993
|
+
* @default 'custom'
|
|
994
|
+
*/
|
|
995
|
+
"icon": 'linkedin' | 'youtube' | 'github' | 'twitter' | 'facebook' | 'custom';
|
|
996
|
+
/**
|
|
997
|
+
* Accessible label for the link
|
|
998
|
+
* @default ''
|
|
999
|
+
*/
|
|
1000
|
+
"label": string;
|
|
674
1001
|
}
|
|
675
|
-
var HTMLAfLogoWellElement: {
|
|
676
|
-
prototype: HTMLAfLogoWellElement;
|
|
677
|
-
new (): HTMLAfLogoWellElement;
|
|
678
|
-
};
|
|
679
1002
|
/**
|
|
680
|
-
*
|
|
681
|
-
*
|
|
1003
|
+
* Split Section component for layouts with two-tone backgrounds.
|
|
1004
|
+
* Creates a vertical split with different themes for top and bottom halves.
|
|
1005
|
+
* Useful for content that visually spans across two themed areas.
|
|
1006
|
+
* Uses a CSS linear-gradient for the split background effect.
|
|
682
1007
|
*/
|
|
683
|
-
interface
|
|
1008
|
+
interface AfSplitSection {
|
|
1009
|
+
/**
|
|
1010
|
+
* Theme for the bottom half of the section
|
|
1011
|
+
* @default 'white'
|
|
1012
|
+
*/
|
|
1013
|
+
"bottomTheme": Theme;
|
|
1014
|
+
/**
|
|
1015
|
+
* Whether to include a Container wrapper
|
|
1016
|
+
* @default true
|
|
1017
|
+
*/
|
|
1018
|
+
"container": boolean;
|
|
1019
|
+
/**
|
|
1020
|
+
* Padding variant
|
|
1021
|
+
* @default 'default'
|
|
1022
|
+
*/
|
|
1023
|
+
"padding": 'tight' | 'default' | 'loose';
|
|
1024
|
+
/**
|
|
1025
|
+
* Theme for the top half of the section
|
|
1026
|
+
* @default 'mist-green'
|
|
1027
|
+
*/
|
|
1028
|
+
"topTheme": Theme;
|
|
684
1029
|
}
|
|
685
|
-
var HTMLAfNavItemElement: {
|
|
686
|
-
prototype: HTMLAfNavItemElement;
|
|
687
|
-
new (): HTMLAfNavItemElement;
|
|
688
|
-
};
|
|
689
1030
|
/**
|
|
690
|
-
*
|
|
691
|
-
* Features a pill-shaped container with logo, navigation links, and action buttons.
|
|
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.
|
|
1031
|
+
* Switch component for toggling between on and off states.
|
|
695
1032
|
*/
|
|
696
|
-
interface
|
|
1033
|
+
interface AfSwitch {
|
|
1034
|
+
/**
|
|
1035
|
+
* Whether the switch is active (on)
|
|
1036
|
+
* @default false
|
|
1037
|
+
*/
|
|
1038
|
+
"active": boolean;
|
|
1039
|
+
/**
|
|
1040
|
+
* Whether the switch is disabled
|
|
1041
|
+
* @default false
|
|
1042
|
+
*/
|
|
1043
|
+
"disabled": boolean;
|
|
1044
|
+
/**
|
|
1045
|
+
* The name of the switch for form submission
|
|
1046
|
+
*/
|
|
1047
|
+
"name"?: string;
|
|
1048
|
+
/**
|
|
1049
|
+
* The value of the switch for form submission
|
|
1050
|
+
*/
|
|
1051
|
+
"value"?: string;
|
|
697
1052
|
}
|
|
698
|
-
var HTMLAfNavbarElement: {
|
|
699
|
-
prototype: HTMLAfNavbarElement;
|
|
700
|
-
new (): HTMLAfNavbarElement;
|
|
701
|
-
};
|
|
702
1053
|
/**
|
|
703
|
-
*
|
|
1054
|
+
* Tab component for use within a TabBar.
|
|
1055
|
+
* Represents an individual selectable tab with support for icons and number badges.
|
|
1056
|
+
* @example ```html
|
|
1057
|
+
* <af-tab label="Overview" active></af-tab>
|
|
1058
|
+
* <af-tab label="Details">
|
|
1059
|
+
* <af-icon slot="icon" name="document"></af-icon>
|
|
1060
|
+
* </af-tab>
|
|
1061
|
+
* <af-tab label="Step 1">
|
|
1062
|
+
* <af-number-badge slot="number" number="1"></af-number-badge>
|
|
1063
|
+
* </af-tab>
|
|
1064
|
+
* ```
|
|
704
1065
|
*/
|
|
705
|
-
interface
|
|
1066
|
+
interface AfTab {
|
|
1067
|
+
/**
|
|
1068
|
+
* Whether the tab is currently active/selected
|
|
1069
|
+
* @default false
|
|
1070
|
+
*/
|
|
1071
|
+
"active": boolean;
|
|
1072
|
+
/**
|
|
1073
|
+
* Whether the tab is disabled
|
|
1074
|
+
* @default false
|
|
1075
|
+
*/
|
|
1076
|
+
"disabled": boolean;
|
|
1077
|
+
/**
|
|
1078
|
+
* Whether to show the icon slot
|
|
1079
|
+
* @default false
|
|
1080
|
+
*/
|
|
1081
|
+
"displayIcon": boolean;
|
|
1082
|
+
/**
|
|
1083
|
+
* Whether to show the number badge slot
|
|
1084
|
+
* @default false
|
|
1085
|
+
*/
|
|
1086
|
+
"displayNumber": boolean;
|
|
1087
|
+
/**
|
|
1088
|
+
* The text label for the tab
|
|
1089
|
+
* @default ''
|
|
1090
|
+
*/
|
|
1091
|
+
"label": string;
|
|
1092
|
+
/**
|
|
1093
|
+
* Visual shape variant - `square` - Rectangular tab with bottom border indicator - `pill` - Rounded pill shape with background for active state
|
|
1094
|
+
* @default 'square'
|
|
1095
|
+
*/
|
|
1096
|
+
"shape": TabShape;
|
|
1097
|
+
/**
|
|
1098
|
+
* Unique value for the tab, used for programmatic selection
|
|
1099
|
+
*/
|
|
1100
|
+
"value"?: string;
|
|
706
1101
|
}
|
|
707
|
-
var HTMLAfSectionElement: {
|
|
708
|
-
prototype: HTMLAfSectionElement;
|
|
709
|
-
new (): HTMLAfSectionElement;
|
|
710
|
-
};
|
|
711
1102
|
/**
|
|
712
|
-
*
|
|
713
|
-
*
|
|
1103
|
+
* TabBar component that contains and manages a group of tabs.
|
|
1104
|
+
* Provides horizontal layout, keyboard navigation, and consistent styling.
|
|
1105
|
+
* @example ```html
|
|
1106
|
+
* <af-tab-bar shape="square" breakpoint="desktop">
|
|
1107
|
+
* <af-tab label="Overview" active value="overview"></af-tab>
|
|
1108
|
+
* <af-tab label="Details" value="details"></af-tab>
|
|
1109
|
+
* <af-tab label="Settings" value="settings"></af-tab>
|
|
1110
|
+
* </af-tab-bar>
|
|
1111
|
+
* ```
|
|
714
1112
|
*/
|
|
715
|
-
interface
|
|
1113
|
+
interface AfTabBar {
|
|
1114
|
+
/**
|
|
1115
|
+
* Responsive breakpoint mode - `mobile` - Compact layout with smaller padding - `desktop` - Larger layout with more generous spacing
|
|
1116
|
+
* @default 'desktop'
|
|
1117
|
+
*/
|
|
1118
|
+
"breakpoint": TabBarBreakpoint;
|
|
1119
|
+
/**
|
|
1120
|
+
* Visual shape variant for all tabs - `square` - Rectangular tabs with bottom border indicator - `pill` - Rounded pill tabs with background for active state
|
|
1121
|
+
* @default 'square'
|
|
1122
|
+
*/
|
|
1123
|
+
"shape": TabBarShape;
|
|
716
1124
|
}
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
1125
|
+
/**
|
|
1126
|
+
* Tag displays a label in a styled container.
|
|
1127
|
+
* Perfect for categorization, topics, or metadata display.
|
|
1128
|
+
* @example ```html
|
|
1129
|
+
* <af-tag>AI</af-tag>
|
|
1130
|
+
* <af-tag size="small">Machine Learning</af-tag>
|
|
1131
|
+
* <af-tag size="large" variant="light">Document Processing</af-tag>
|
|
1132
|
+
* ```
|
|
1133
|
+
*/
|
|
1134
|
+
interface AfTag {
|
|
1135
|
+
/**
|
|
1136
|
+
* The URL to navigate to when the tag is clicked (makes the tag a link)
|
|
1137
|
+
*/
|
|
1138
|
+
"href"?: string;
|
|
1139
|
+
/**
|
|
1140
|
+
* The size of the tag - `x-small` - Compact tag with minimal padding - `small` - Small tag with moderate padding - `large` - Large tag with generous padding
|
|
1141
|
+
* @default 'small'
|
|
1142
|
+
*/
|
|
1143
|
+
"size": TagSize;
|
|
1144
|
+
/**
|
|
1145
|
+
* The visual variant of the tag - `sand` - Soft-clay/tan colored background (default) - `light` - Mist-green/light colored background
|
|
1146
|
+
* @default 'sand'
|
|
1147
|
+
*/
|
|
1148
|
+
"variant": TagVariant;
|
|
722
1149
|
}
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
1150
|
+
interface AfTestimonial {
|
|
1151
|
+
/**
|
|
1152
|
+
* Attribution text (e.g., "– Nathaniel Barrs, CTO, PSC Insurance")
|
|
1153
|
+
*/
|
|
1154
|
+
"attribution": string;
|
|
1155
|
+
/**
|
|
1156
|
+
* Background image URL for the testimonial card
|
|
1157
|
+
*/
|
|
1158
|
+
"backgroundImage"?: string;
|
|
1159
|
+
/**
|
|
1160
|
+
* Whether the next button is enabled
|
|
1161
|
+
* @default false
|
|
1162
|
+
*/
|
|
1163
|
+
"hasNext": boolean;
|
|
1164
|
+
/**
|
|
1165
|
+
* Whether the previous button is enabled
|
|
1166
|
+
* @default false
|
|
1167
|
+
*/
|
|
1168
|
+
"hasPrev": boolean;
|
|
1169
|
+
/**
|
|
1170
|
+
* Company logo URL
|
|
1171
|
+
*/
|
|
1172
|
+
"logoImage"?: string;
|
|
1173
|
+
/**
|
|
1174
|
+
* Testimonial quote text
|
|
1175
|
+
*/
|
|
1176
|
+
"quote": string;
|
|
1177
|
+
/**
|
|
1178
|
+
* Link to full case study
|
|
1179
|
+
*/
|
|
1180
|
+
"readMoreLink"?: string;
|
|
1181
|
+
/**
|
|
1182
|
+
* Whether to show built-in navigation buttons (used when in a carousel)
|
|
1183
|
+
* @default false
|
|
1184
|
+
*/
|
|
1185
|
+
"showNavigation": boolean;
|
|
728
1186
|
}
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
1187
|
+
/**
|
|
1188
|
+
* TestimonialCarousel - Carousel for displaying multiple customer testimonials.
|
|
1189
|
+
* Handles navigation between testimonials with progress indicator.
|
|
1190
|
+
* Wrap in Section/Container for proper page layout and theming.
|
|
1191
|
+
*/
|
|
1192
|
+
interface AfTestimonialCarousel {
|
|
734
1193
|
}
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
1194
|
+
interface AfTestimonialStat {
|
|
1195
|
+
/**
|
|
1196
|
+
* Whether to show left accent border
|
|
1197
|
+
* @default false
|
|
1198
|
+
*/
|
|
1199
|
+
"accentBorder": boolean;
|
|
1200
|
+
/**
|
|
1201
|
+
* Description text for the statistic
|
|
1202
|
+
*/
|
|
1203
|
+
"description": string;
|
|
1204
|
+
/**
|
|
1205
|
+
* The statistic value (e.g., "95%", "10×", "120,000")
|
|
1206
|
+
*/
|
|
1207
|
+
"value": string;
|
|
740
1208
|
}
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
1209
|
+
/**
|
|
1210
|
+
* Text/body component that inherits color from theme context.
|
|
1211
|
+
* Color is determined by the parent theme (af-section, af-hero-section, etc.)
|
|
1212
|
+
* via CSS custom properties.
|
|
1213
|
+
*/
|
|
1214
|
+
interface AfText {
|
|
1215
|
+
/**
|
|
1216
|
+
* Visual alignment
|
|
1217
|
+
* @default 'left'
|
|
1218
|
+
*/
|
|
1219
|
+
"align": 'left' | 'center' | 'right';
|
|
1220
|
+
/**
|
|
1221
|
+
* Semantic element to render
|
|
1222
|
+
* @default 'p'
|
|
1223
|
+
*/
|
|
1224
|
+
"as": 'p' | 'span' | 'div' | 'label';
|
|
1225
|
+
/**
|
|
1226
|
+
* Text variant
|
|
1227
|
+
* @default 'medium'
|
|
1228
|
+
*/
|
|
1229
|
+
"variant": 'xlarge' | 'large' | 'medium' | 'small';
|
|
746
1230
|
}
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
interface
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
"
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
"
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
"
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
"
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
"
|
|
776
|
-
"af-testimonial-stat": HTMLAfTestimonialStatElement;
|
|
777
|
-
"af-text": HTMLAfTextElement;
|
|
778
|
-
"af-typography-lockup": HTMLAfTypographyLockupElement;
|
|
1231
|
+
/**
|
|
1232
|
+
* TextImage composite component that combines typography content with an image.
|
|
1233
|
+
* Supports various layout configurations with image position and proportion options.
|
|
1234
|
+
*/
|
|
1235
|
+
interface AfTextImage {
|
|
1236
|
+
/**
|
|
1237
|
+
* Image alt text for accessibility
|
|
1238
|
+
* @default ''
|
|
1239
|
+
*/
|
|
1240
|
+
"alt": string;
|
|
1241
|
+
/**
|
|
1242
|
+
* Position of the image relative to the text content
|
|
1243
|
+
* @default 'right'
|
|
1244
|
+
*/
|
|
1245
|
+
"imagePosition": 'left' | 'right';
|
|
1246
|
+
/**
|
|
1247
|
+
* Proportion of the image in the layout - '1/3': Image takes 1/3 of the width (text takes 2/3) - '1/4': Image takes 1/4 of the width (text takes 3/4) - '100%': Image takes full width below text
|
|
1248
|
+
* @default '1/3'
|
|
1249
|
+
*/
|
|
1250
|
+
"imageProportion": '1/3' | '1/4' | '100%';
|
|
1251
|
+
/**
|
|
1252
|
+
* Whether to show a second typography lockup section
|
|
1253
|
+
* @default false
|
|
1254
|
+
*/
|
|
1255
|
+
"showSecondLockup": boolean;
|
|
1256
|
+
/**
|
|
1257
|
+
* Image source URL
|
|
1258
|
+
*/
|
|
1259
|
+
"src"?: string;
|
|
779
1260
|
}
|
|
780
|
-
}
|
|
781
|
-
declare namespace LocalJSX {
|
|
782
1261
|
/**
|
|
783
|
-
*
|
|
784
|
-
*
|
|
1262
|
+
* TextImageNest is a layout component that arranges multiple text-image content pieces
|
|
1263
|
+
* in various grid layouts with optional footer buttons.
|
|
1264
|
+
* This component inherits theming from a parent Section or theme-providing container.
|
|
1265
|
+
* Wrap it in an af-section to apply themes.
|
|
1266
|
+
* Supports multiple layout variants:
|
|
1267
|
+
* - `single`: Full-width single item (side-by-side image + text)
|
|
1268
|
+
* - `grid-2`: 2-column grid with stacked items
|
|
1269
|
+
* - `grid-3`: 3-column grid with stacked items
|
|
1270
|
+
* - `grid-4`: 4-column grid with stacked items
|
|
1271
|
+
* - `stacked`: Alternating rows of side-by-side content
|
|
1272
|
+
*/
|
|
1273
|
+
interface AfTextImageNest {
|
|
1274
|
+
/**
|
|
1275
|
+
* Layout variant for the content grid
|
|
1276
|
+
* @default 'grid-3'
|
|
1277
|
+
*/
|
|
1278
|
+
"layout": 'single' | 'grid-2' | 'grid-3' | 'grid-4' | 'stacked';
|
|
1279
|
+
}
|
|
1280
|
+
/**
|
|
1281
|
+
* Textarea component for multi-line text input with label, description, and error states.
|
|
1282
|
+
*/
|
|
1283
|
+
interface AfTextarea {
|
|
1284
|
+
/**
|
|
1285
|
+
* Description text displayed below the label
|
|
1286
|
+
*/
|
|
1287
|
+
"description"?: string;
|
|
1288
|
+
/**
|
|
1289
|
+
* Whether the textarea is disabled
|
|
1290
|
+
* @default false
|
|
1291
|
+
*/
|
|
1292
|
+
"disabled": boolean;
|
|
1293
|
+
/**
|
|
1294
|
+
* Error message to display (also sets error state)
|
|
1295
|
+
*/
|
|
1296
|
+
"error"?: string;
|
|
1297
|
+
/**
|
|
1298
|
+
* The label text for the textarea
|
|
1299
|
+
*/
|
|
1300
|
+
"label"?: string;
|
|
1301
|
+
/**
|
|
1302
|
+
* Maximum length of input value
|
|
1303
|
+
*/
|
|
1304
|
+
"maxlength"?: number;
|
|
1305
|
+
/**
|
|
1306
|
+
* Minimum length of input value
|
|
1307
|
+
*/
|
|
1308
|
+
"minlength"?: number;
|
|
1309
|
+
/**
|
|
1310
|
+
* The name of the textarea for form submission
|
|
1311
|
+
*/
|
|
1312
|
+
"name"?: string;
|
|
1313
|
+
/**
|
|
1314
|
+
* Placeholder text for the textarea
|
|
1315
|
+
*/
|
|
1316
|
+
"placeholder"?: string;
|
|
1317
|
+
/**
|
|
1318
|
+
* Whether the textarea is read-only
|
|
1319
|
+
* @default false
|
|
1320
|
+
*/
|
|
1321
|
+
"readonly": boolean;
|
|
1322
|
+
/**
|
|
1323
|
+
* Whether the textarea is required
|
|
1324
|
+
* @default false
|
|
1325
|
+
*/
|
|
1326
|
+
"required": boolean;
|
|
1327
|
+
/**
|
|
1328
|
+
* Whether the textarea is resizable
|
|
1329
|
+
* @default 'vertical'
|
|
1330
|
+
*/
|
|
1331
|
+
"resize": 'none' | 'vertical' | 'horizontal' | 'both';
|
|
1332
|
+
/**
|
|
1333
|
+
* Number of visible rows (height)
|
|
1334
|
+
* @default 4
|
|
1335
|
+
*/
|
|
1336
|
+
"rows": number;
|
|
1337
|
+
/**
|
|
1338
|
+
* Whether to show the info icon next to the label
|
|
1339
|
+
* @default false
|
|
1340
|
+
*/
|
|
1341
|
+
"showInfoIcon": boolean;
|
|
1342
|
+
/**
|
|
1343
|
+
* The current value of the textarea
|
|
1344
|
+
* @default ''
|
|
1345
|
+
*/
|
|
1346
|
+
"value": string;
|
|
1347
|
+
}
|
|
1348
|
+
interface AfTypographyLockup {
|
|
1349
|
+
/**
|
|
1350
|
+
* The breakpoint for responsive typography
|
|
1351
|
+
* @default 'desktop'
|
|
1352
|
+
*/
|
|
1353
|
+
"breakpoint": 'desktop' | 'mobile';
|
|
1354
|
+
/**
|
|
1355
|
+
* Button alignment (horizontal or vertical stacking)
|
|
1356
|
+
* @default 'vertical'
|
|
1357
|
+
*/
|
|
1358
|
+
"buttonAlignment": 'horizontal' | 'vertical';
|
|
1359
|
+
/**
|
|
1360
|
+
* The heading size (1-5, where 1 is largest)
|
|
1361
|
+
* @default 2
|
|
1362
|
+
*/
|
|
1363
|
+
"headingSize": 1 | 2 | 3 | 4 | 5;
|
|
1364
|
+
/**
|
|
1365
|
+
* Maximum width for the copy section (in pixels)
|
|
1366
|
+
*/
|
|
1367
|
+
"maxWidth"?: number;
|
|
1368
|
+
/**
|
|
1369
|
+
* Text alignment
|
|
1370
|
+
* @default 'left'
|
|
1371
|
+
*/
|
|
1372
|
+
"textAlignment": 'left' | 'center';
|
|
1373
|
+
}
|
|
1374
|
+
/**
|
|
1375
|
+
* Video Container molecule component for showcasing video content.
|
|
1376
|
+
* Uses slots for typography lockups above and below the video.
|
|
1377
|
+
* When used inside af-split-section, the top slot inherits the top theme
|
|
1378
|
+
* and the bottom slot inherits the bottom theme for correct colors.
|
|
1379
|
+
* @example ```html
|
|
1380
|
+
* <af-split-section top-theme="mist-green" bottom-theme="white">
|
|
1381
|
+
* <af-video-container video-thumbnail-url="/path/to/thumbnail.jpg">
|
|
1382
|
+
* <af-typography-lockup slot="top" text-alignment="center" heading-size="2">
|
|
1383
|
+
* <af-heading level="2">Watch our product demo</af-heading>
|
|
1384
|
+
* <af-text slot="description">See how Affinda transforms your workflow</af-text>
|
|
1385
|
+
* <af-button slot="buttons" variant="primary">Get Started</af-button>
|
|
1386
|
+
* </af-typography-lockup>
|
|
1387
|
+
* </af-video-container>
|
|
1388
|
+
* </af-split-section>
|
|
1389
|
+
* ```
|
|
1390
|
+
*/
|
|
1391
|
+
interface AfVideoContainer {
|
|
1392
|
+
/**
|
|
1393
|
+
* Video alt text for accessibility
|
|
1394
|
+
* @default 'Video thumbnail'
|
|
1395
|
+
*/
|
|
1396
|
+
"videoAlt": string;
|
|
1397
|
+
/**
|
|
1398
|
+
* Video thumbnail image URL
|
|
1399
|
+
* @default ''
|
|
1400
|
+
*/
|
|
1401
|
+
"videoThumbnailUrl": string;
|
|
1402
|
+
/**
|
|
1403
|
+
* Optional video URL for play button link
|
|
1404
|
+
* @default ''
|
|
1405
|
+
*/
|
|
1406
|
+
"videoUrl": string;
|
|
1407
|
+
}
|
|
1408
|
+
}
|
|
1409
|
+
export interface AfCheckboxCustomEvent<T> extends CustomEvent<T> {
|
|
1410
|
+
detail: T;
|
|
1411
|
+
target: HTMLAfCheckboxElement;
|
|
1412
|
+
}
|
|
1413
|
+
export interface AfInputCustomEvent<T> extends CustomEvent<T> {
|
|
1414
|
+
detail: T;
|
|
1415
|
+
target: HTMLAfInputElement;
|
|
1416
|
+
}
|
|
1417
|
+
export interface AfRadioCustomEvent<T> extends CustomEvent<T> {
|
|
1418
|
+
detail: T;
|
|
1419
|
+
target: HTMLAfRadioElement;
|
|
1420
|
+
}
|
|
1421
|
+
export interface AfSwitchCustomEvent<T> extends CustomEvent<T> {
|
|
1422
|
+
detail: T;
|
|
1423
|
+
target: HTMLAfSwitchElement;
|
|
1424
|
+
}
|
|
1425
|
+
export interface AfTabCustomEvent<T> extends CustomEvent<T> {
|
|
1426
|
+
detail: T;
|
|
1427
|
+
target: HTMLAfTabElement;
|
|
1428
|
+
}
|
|
1429
|
+
export interface AfTestimonialCustomEvent<T> extends CustomEvent<T> {
|
|
1430
|
+
detail: T;
|
|
1431
|
+
target: HTMLAfTestimonialElement;
|
|
1432
|
+
}
|
|
1433
|
+
export interface AfTextareaCustomEvent<T> extends CustomEvent<T> {
|
|
1434
|
+
detail: T;
|
|
1435
|
+
target: HTMLAfTextareaElement;
|
|
1436
|
+
}
|
|
1437
|
+
export interface AfVideoContainerCustomEvent<T> extends CustomEvent<T> {
|
|
1438
|
+
detail: T;
|
|
1439
|
+
target: HTMLAfVideoContainerElement;
|
|
1440
|
+
}
|
|
1441
|
+
declare global {
|
|
1442
|
+
/**
|
|
1443
|
+
* A container component that maintains a fixed aspect ratio for its content.
|
|
1444
|
+
* Useful for images, videos, or any content that needs to maintain specific proportions.
|
|
1445
|
+
*/
|
|
1446
|
+
interface HTMLAfAspectRatioElement extends Components.AfAspectRatio, HTMLStencilElement {
|
|
1447
|
+
}
|
|
1448
|
+
var HTMLAfAspectRatioElement: {
|
|
1449
|
+
prototype: HTMLAfAspectRatioElement;
|
|
1450
|
+
new (): HTMLAfAspectRatioElement;
|
|
1451
|
+
};
|
|
1452
|
+
/**
|
|
1453
|
+
* Button component that inherits colors from theme context.
|
|
1454
|
+
* Colors are determined by the parent theme (af-section, af-hero-section, etc.)
|
|
1455
|
+
* via CSS custom properties.
|
|
1456
|
+
*/
|
|
1457
|
+
interface HTMLAfButtonElement extends Components.AfButton, HTMLStencilElement {
|
|
1458
|
+
}
|
|
1459
|
+
var HTMLAfButtonElement: {
|
|
1460
|
+
prototype: HTMLAfButtonElement;
|
|
1461
|
+
new (): HTMLAfButtonElement;
|
|
1462
|
+
};
|
|
1463
|
+
interface HTMLAfButtonGroupElement extends Components.AfButtonGroup, HTMLStencilElement {
|
|
1464
|
+
}
|
|
1465
|
+
var HTMLAfButtonGroupElement: {
|
|
1466
|
+
prototype: HTMLAfButtonGroupElement;
|
|
1467
|
+
new (): HTMLAfButtonGroupElement;
|
|
1468
|
+
};
|
|
1469
|
+
/**
|
|
1470
|
+
* Card atom component - a themed container with consistent styling.
|
|
1471
|
+
* Provides theme context to children via CSS custom properties.
|
|
1472
|
+
* This is a base building block used by molecule components like
|
|
1473
|
+
* af-feature-card and af-illustrated-card.
|
|
1474
|
+
*/
|
|
1475
|
+
interface HTMLAfCardElement extends Components.AfCard, HTMLStencilElement {
|
|
1476
|
+
}
|
|
1477
|
+
var HTMLAfCardElement: {
|
|
1478
|
+
prototype: HTMLAfCardElement;
|
|
1479
|
+
new (): HTMLAfCardElement;
|
|
1480
|
+
};
|
|
1481
|
+
interface HTMLAfCheckboxElementEventMap {
|
|
1482
|
+
"afChange": { checked: boolean };
|
|
1483
|
+
}
|
|
1484
|
+
/**
|
|
1485
|
+
* Checkbox component for selecting multiple options.
|
|
1486
|
+
* Supports checked, unchecked, and indeterminate states.
|
|
1487
|
+
*/
|
|
1488
|
+
interface HTMLAfCheckboxElement extends Components.AfCheckbox, HTMLStencilElement {
|
|
1489
|
+
addEventListener<K extends keyof HTMLAfCheckboxElementEventMap>(type: K, listener: (this: HTMLAfCheckboxElement, ev: AfCheckboxCustomEvent<HTMLAfCheckboxElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1490
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1491
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1492
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1493
|
+
removeEventListener<K extends keyof HTMLAfCheckboxElementEventMap>(type: K, listener: (this: HTMLAfCheckboxElement, ev: AfCheckboxCustomEvent<HTMLAfCheckboxElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1494
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1495
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1496
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1497
|
+
}
|
|
1498
|
+
var HTMLAfCheckboxElement: {
|
|
1499
|
+
prototype: HTMLAfCheckboxElement;
|
|
1500
|
+
new (): HTMLAfCheckboxElement;
|
|
1501
|
+
};
|
|
1502
|
+
/**
|
|
1503
|
+
* Infinite scrolling carousel for client logos.
|
|
1504
|
+
* This is a section-level component that spans full width.
|
|
1505
|
+
* It supports theming via the `theme` prop.
|
|
1506
|
+
* For headlines, use a separate TypographyLockup or Heading component above this carousel.
|
|
1507
|
+
*/
|
|
1508
|
+
interface HTMLAfClientCarouselElement extends Components.AfClientCarousel, HTMLStencilElement {
|
|
1509
|
+
}
|
|
1510
|
+
var HTMLAfClientCarouselElement: {
|
|
1511
|
+
prototype: HTMLAfClientCarouselElement;
|
|
1512
|
+
new (): HTMLAfClientCarouselElement;
|
|
1513
|
+
};
|
|
1514
|
+
interface HTMLAfColorSwatchElement extends Components.AfColorSwatch, HTMLStencilElement {
|
|
1515
|
+
}
|
|
1516
|
+
var HTMLAfColorSwatchElement: {
|
|
1517
|
+
prototype: HTMLAfColorSwatchElement;
|
|
1518
|
+
new (): HTMLAfColorSwatchElement;
|
|
1519
|
+
};
|
|
1520
|
+
/**
|
|
1521
|
+
* Contact item component for footer
|
|
1522
|
+
* Displays a label and value pair (e.g., "Sales enquiries" / "contact@example.com")
|
|
1523
|
+
*/
|
|
1524
|
+
interface HTMLAfContactItemElement extends Components.AfContactItem, HTMLStencilElement {
|
|
1525
|
+
}
|
|
1526
|
+
var HTMLAfContactItemElement: {
|
|
1527
|
+
prototype: HTMLAfContactItemElement;
|
|
1528
|
+
new (): HTMLAfContactItemElement;
|
|
1529
|
+
};
|
|
1530
|
+
/**
|
|
1531
|
+
* A responsive container component that provides consistent margins and max-width
|
|
1532
|
+
* constraints based on the Affinda grid system.
|
|
1533
|
+
*/
|
|
1534
|
+
interface HTMLAfContainerElement extends Components.AfContainer, HTMLStencilElement {
|
|
1535
|
+
}
|
|
1536
|
+
var HTMLAfContainerElement: {
|
|
1537
|
+
prototype: HTMLAfContainerElement;
|
|
1538
|
+
new (): HTMLAfContainerElement;
|
|
1539
|
+
};
|
|
1540
|
+
/**
|
|
1541
|
+
* Feature accordion component with expandable items and accompanying image.
|
|
1542
|
+
* Used for showcasing product features with visual examples.
|
|
1543
|
+
* Features auto-cycling through items with a progress timer.
|
|
1544
|
+
* **Must be wrapped in a Section component** to inherit theme styling.
|
|
1545
|
+
* The component automatically adapts colors based on the parent Section's theme.
|
|
1546
|
+
* @example ```tsx
|
|
1547
|
+
* <Section theme="inkwell">
|
|
1548
|
+
* <FeatureAccordion heading="Features" items={...} />
|
|
1549
|
+
* </Section>
|
|
1550
|
+
* ```
|
|
1551
|
+
*/
|
|
1552
|
+
interface HTMLAfFeatureAccordionElement extends Components.AfFeatureAccordion, HTMLStencilElement {
|
|
1553
|
+
}
|
|
1554
|
+
var HTMLAfFeatureAccordionElement: {
|
|
1555
|
+
prototype: HTMLAfFeatureAccordionElement;
|
|
1556
|
+
new (): HTMLAfFeatureAccordionElement;
|
|
1557
|
+
};
|
|
1558
|
+
/**
|
|
1559
|
+
* Feature Card molecule component that combines a card with an image.
|
|
1560
|
+
* Two layout modes:
|
|
1561
|
+
* - `standard`: Theme background with text at top and image at bottom
|
|
1562
|
+
* - `full-bleed`: Image covers entire card with text overlay at bottom
|
|
1563
|
+
* Responsive: Automatically adapts to mobile viewport (≤768px).
|
|
1564
|
+
* Uses af-card atom internally and af-typography-lockup for text hierarchy.
|
|
1565
|
+
*/
|
|
1566
|
+
interface HTMLAfFeatureCardElement extends Components.AfFeatureCard, HTMLStencilElement {
|
|
1567
|
+
}
|
|
1568
|
+
var HTMLAfFeatureCardElement: {
|
|
1569
|
+
prototype: HTMLAfFeatureCardElement;
|
|
1570
|
+
new (): HTMLAfFeatureCardElement;
|
|
1571
|
+
};
|
|
1572
|
+
/**
|
|
1573
|
+
* Feature Grid component - CSS Grid container for feature cards.
|
|
1574
|
+
* Desktop: Configurable columns (1-4)
|
|
1575
|
+
* Mobile: List (stacked), horizontal scroll, or 2-column grid
|
|
1576
|
+
*/
|
|
1577
|
+
interface HTMLAfFeatureGridElement extends Components.AfFeatureGrid, HTMLStencilElement {
|
|
1578
|
+
}
|
|
1579
|
+
var HTMLAfFeatureGridElement: {
|
|
1580
|
+
prototype: HTMLAfFeatureGridElement;
|
|
1581
|
+
new (): HTMLAfFeatureGridElement;
|
|
1582
|
+
};
|
|
1583
|
+
/**
|
|
1584
|
+
* Fieldset component for grouping related form controls.
|
|
1585
|
+
* Supports vertical and horizontal layouts with an optional legend/heading.
|
|
1586
|
+
*/
|
|
1587
|
+
interface HTMLAfFieldsetElement extends Components.AfFieldset, HTMLStencilElement {
|
|
1588
|
+
}
|
|
1589
|
+
var HTMLAfFieldsetElement: {
|
|
1590
|
+
prototype: HTMLAfFieldsetElement;
|
|
1591
|
+
new (): HTMLAfFieldsetElement;
|
|
1592
|
+
};
|
|
1593
|
+
/**
|
|
1594
|
+
* Footer component for marketing pages
|
|
1595
|
+
* Provides a flexible, slot-based layout for footer content
|
|
1596
|
+
* All content is passed via slots - no hardcoded links or content
|
|
1597
|
+
*/
|
|
1598
|
+
interface HTMLAfFooterElement extends Components.AfFooter, HTMLStencilElement {
|
|
1599
|
+
}
|
|
1600
|
+
var HTMLAfFooterElement: {
|
|
1601
|
+
prototype: HTMLAfFooterElement;
|
|
1602
|
+
new (): HTMLAfFooterElement;
|
|
1603
|
+
};
|
|
1604
|
+
/**
|
|
1605
|
+
* Footer navigation column component
|
|
1606
|
+
* Used within af-footer to create navigation link groups
|
|
1607
|
+
*/
|
|
1608
|
+
interface HTMLAfFooterColumnElement extends Components.AfFooterColumn, HTMLStencilElement {
|
|
1609
|
+
}
|
|
1610
|
+
var HTMLAfFooterColumnElement: {
|
|
1611
|
+
prototype: HTMLAfFooterColumnElement;
|
|
1612
|
+
new (): HTMLAfFooterColumnElement;
|
|
1613
|
+
};
|
|
1614
|
+
/**
|
|
1615
|
+
* Footer link component
|
|
1616
|
+
* Styled link for use in footer navigation columns
|
|
1617
|
+
*/
|
|
1618
|
+
interface HTMLAfFooterLinkElement extends Components.AfFooterLink, HTMLStencilElement {
|
|
1619
|
+
}
|
|
1620
|
+
var HTMLAfFooterLinkElement: {
|
|
1621
|
+
prototype: HTMLAfFooterLinkElement;
|
|
1622
|
+
new (): HTMLAfFooterLinkElement;
|
|
1623
|
+
};
|
|
1624
|
+
/**
|
|
1625
|
+
* GridCallout organism - a marketing section combining an optional pill-shaped image
|
|
1626
|
+
* with a grid of IconText feature items.
|
|
1627
|
+
* Composes:
|
|
1628
|
+
* - Pill-shaped image container (optional)
|
|
1629
|
+
* - Heading via af-typography-lockup
|
|
1630
|
+
* - Grid of af-icon-text items
|
|
1631
|
+
* - Optional CTA button
|
|
1632
|
+
* Inherits theme colors from parent af-section via CSS custom properties.
|
|
1633
|
+
* @example ```html
|
|
1634
|
+
* <af-section theme="mist-green">
|
|
1635
|
+
* <af-grid-callout image-src="/team.jpg" image-alt="Team photo">
|
|
1636
|
+
* Affinda blends AI and engineering
|
|
1637
|
+
* <span slot="description">Optional description text.</span>
|
|
1638
|
+
*
|
|
1639
|
+
* <af-icon-text slot="items" icon="settings">
|
|
1640
|
+
* Feature One
|
|
1641
|
+
* <span slot="description">Feature description.</span>
|
|
1642
|
+
* </af-icon-text>
|
|
1643
|
+
*
|
|
1644
|
+
* <af-button slot="cta" variant="primary">Learn more</af-button>
|
|
1645
|
+
* </af-grid-callout>
|
|
1646
|
+
* </af-section>
|
|
1647
|
+
* ```
|
|
1648
|
+
*/
|
|
1649
|
+
interface HTMLAfGridCalloutElement extends Components.AfGridCallout, HTMLStencilElement {
|
|
1650
|
+
}
|
|
1651
|
+
var HTMLAfGridCalloutElement: {
|
|
1652
|
+
prototype: HTMLAfGridCalloutElement;
|
|
1653
|
+
new (): HTMLAfGridCalloutElement;
|
|
1654
|
+
};
|
|
1655
|
+
/**
|
|
1656
|
+
* Heading component that inherits color from theme context.
|
|
1657
|
+
* Color is determined by the parent theme (af-section, af-hero-section, etc.)
|
|
1658
|
+
* via CSS custom properties.
|
|
1659
|
+
*/
|
|
1660
|
+
interface HTMLAfHeadingElement extends Components.AfHeading, HTMLStencilElement {
|
|
1661
|
+
}
|
|
1662
|
+
var HTMLAfHeadingElement: {
|
|
1663
|
+
prototype: HTMLAfHeadingElement;
|
|
1664
|
+
new (): HTMLAfHeadingElement;
|
|
1665
|
+
};
|
|
1666
|
+
/**
|
|
1667
|
+
* Hero section component for marketing pages.
|
|
1668
|
+
* Uses TypographyLockup internally to handle heading, description, and button layout.
|
|
1669
|
+
* Sets theme context for all child components via CSS custom properties.
|
|
1670
|
+
*/
|
|
1671
|
+
interface HTMLAfHeroSectionElement extends Components.AfHeroSection, HTMLStencilElement {
|
|
1672
|
+
}
|
|
1673
|
+
var HTMLAfHeroSectionElement: {
|
|
1674
|
+
prototype: HTMLAfHeroSectionElement;
|
|
1675
|
+
new (): HTMLAfHeroSectionElement;
|
|
1676
|
+
};
|
|
1677
|
+
/**
|
|
1678
|
+
* Icon component that displays SVG icons from the Affinda icon library.
|
|
1679
|
+
* Icons inherit color from their parent via currentColor.
|
|
1680
|
+
* Icons are bundled inline, so no runtime fetching is required.
|
|
1681
|
+
* This ensures icons work reliably in all bundler contexts.
|
|
1682
|
+
* @example ```html
|
|
1683
|
+
* <af-icon name="arrow-right" size="24"></af-icon>
|
|
1684
|
+
* ```
|
|
1685
|
+
*/
|
|
1686
|
+
interface HTMLAfIconElement extends Components.AfIcon, HTMLStencilElement {
|
|
1687
|
+
}
|
|
1688
|
+
var HTMLAfIconElement: {
|
|
1689
|
+
prototype: HTMLAfIconElement;
|
|
1690
|
+
new (): HTMLAfIconElement;
|
|
1691
|
+
};
|
|
1692
|
+
/**
|
|
1693
|
+
* IconBox atom - a themed container for displaying an icon with a rounded background.
|
|
1694
|
+
* Inherits theme colors from parent Section via CSS custom properties:
|
|
1695
|
+
* - Background uses `--af-background-contrast`
|
|
1696
|
+
* - Icon color uses `--af-background-icon-default`
|
|
1697
|
+
* @example ```html
|
|
1698
|
+
* <af-icon-box icon="settings" size="default"></af-icon-box>
|
|
1699
|
+
* ```
|
|
1700
|
+
*/
|
|
1701
|
+
interface HTMLAfIconBoxElement extends Components.AfIconBox, HTMLStencilElement {
|
|
1702
|
+
}
|
|
1703
|
+
var HTMLAfIconBoxElement: {
|
|
1704
|
+
prototype: HTMLAfIconBoxElement;
|
|
1705
|
+
new (): HTMLAfIconBoxElement;
|
|
1706
|
+
};
|
|
1707
|
+
interface HTMLAfIconButtonElement extends Components.AfIconButton, HTMLStencilElement {
|
|
1708
|
+
}
|
|
1709
|
+
var HTMLAfIconButtonElement: {
|
|
1710
|
+
prototype: HTMLAfIconButtonElement;
|
|
1711
|
+
new (): HTMLAfIconButtonElement;
|
|
1712
|
+
};
|
|
1713
|
+
/**
|
|
1714
|
+
* IconText molecule - combines an IconBox with a TypographyLockup for feature items.
|
|
1715
|
+
* Composes:
|
|
1716
|
+
* - af-icon-box: Themed icon container
|
|
1717
|
+
* - af-typography-lockup: Heading, description, and button slots
|
|
1718
|
+
* Inherits theme colors from parent Section via CSS custom properties.
|
|
1719
|
+
* @example ```html
|
|
1720
|
+
* <af-icon-text icon="settings" heading-size="4">
|
|
1721
|
+
* Feature Heading
|
|
1722
|
+
* <span slot="description">Feature description text.</span>
|
|
1723
|
+
* <af-button slot="buttons" variant="tertiary">Learn more</af-button>
|
|
1724
|
+
* </af-icon-text>
|
|
1725
|
+
* ```
|
|
1726
|
+
*/
|
|
1727
|
+
interface HTMLAfIconTextElement extends Components.AfIconText, HTMLStencilElement {
|
|
1728
|
+
}
|
|
1729
|
+
var HTMLAfIconTextElement: {
|
|
1730
|
+
prototype: HTMLAfIconTextElement;
|
|
1731
|
+
new (): HTMLAfIconTextElement;
|
|
1732
|
+
};
|
|
1733
|
+
/**
|
|
1734
|
+
* Illustrated Card molecule component that combines a card with an illustration.
|
|
1735
|
+
* Uses a theme background with text at top and an illustration from
|
|
1736
|
+
* @affinda /illustrations at the bottom.
|
|
1737
|
+
* Uses af-card atom internally and af-typography-lockup for text hierarchy.
|
|
1738
|
+
*/
|
|
1739
|
+
interface HTMLAfIllustratedCardElement extends Components.AfIllustratedCard, HTMLStencilElement {
|
|
1740
|
+
}
|
|
1741
|
+
var HTMLAfIllustratedCardElement: {
|
|
1742
|
+
prototype: HTMLAfIllustratedCardElement;
|
|
1743
|
+
new (): HTMLAfIllustratedCardElement;
|
|
1744
|
+
};
|
|
1745
|
+
/**
|
|
1746
|
+
* A styled image container with rounded corners and a subtle inset border.
|
|
1747
|
+
* Provides consistent image styling across the design system.
|
|
1748
|
+
*/
|
|
1749
|
+
interface HTMLAfImageElement extends Components.AfImage, HTMLStencilElement {
|
|
1750
|
+
}
|
|
1751
|
+
var HTMLAfImageElement: {
|
|
1752
|
+
prototype: HTMLAfImageElement;
|
|
1753
|
+
new (): HTMLAfImageElement;
|
|
1754
|
+
};
|
|
1755
|
+
/**
|
|
1756
|
+
* In-page banner component for call-to-action content.
|
|
1757
|
+
* A banner card with illustration, heading, description, and action buttons.
|
|
1758
|
+
* Typically placed inside a neutral (white) Section to show off its themed background.
|
|
1759
|
+
* The component has its own theme prop to control its background color and styling.
|
|
1760
|
+
* **Illustration Usage:**
|
|
1761
|
+
* Use `illustrationUrl` to pass an illustration image URL. For theme-matched illustrations,
|
|
1762
|
+
* use `getIllustrationUrlByScene()` from `@affinda/illustrations` in your consuming app:
|
|
1763
|
+
* ```tsx
|
|
1764
|
+
* import { getIllustrationUrlByScene } from '@affinda/illustrations';
|
|
1765
|
+
* <InPageBanner
|
|
1766
|
+
* theme="inkwell"
|
|
1767
|
+
* illustrationUrl={getIllustrationUrlByScene('automate', 'inkwell')}
|
|
1768
|
+
* ...
|
|
1769
|
+
* />
|
|
1770
|
+
* ```
|
|
1771
|
+
* Alternatively, use the `illustration` slot for completely custom content.
|
|
1772
|
+
*/
|
|
1773
|
+
interface HTMLAfInPageBannerElement extends Components.AfInPageBanner, HTMLStencilElement {
|
|
1774
|
+
}
|
|
1775
|
+
var HTMLAfInPageBannerElement: {
|
|
1776
|
+
prototype: HTMLAfInPageBannerElement;
|
|
1777
|
+
new (): HTMLAfInPageBannerElement;
|
|
1778
|
+
};
|
|
1779
|
+
interface HTMLAfInputElementEventMap {
|
|
1780
|
+
"afInput": { value: string };
|
|
1781
|
+
"afBlur": void;
|
|
1782
|
+
"afFocus": void;
|
|
1783
|
+
"afClear": void;
|
|
1784
|
+
"afInfoClick": void;
|
|
1785
|
+
}
|
|
1786
|
+
/**
|
|
1787
|
+
* Input field component with label, description, and error states.
|
|
1788
|
+
* Supports various input types and validation states.
|
|
1789
|
+
*/
|
|
1790
|
+
interface HTMLAfInputElement extends Components.AfInput, HTMLStencilElement {
|
|
1791
|
+
addEventListener<K extends keyof HTMLAfInputElementEventMap>(type: K, listener: (this: HTMLAfInputElement, ev: AfInputCustomEvent<HTMLAfInputElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1792
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1793
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1794
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1795
|
+
removeEventListener<K extends keyof HTMLAfInputElementEventMap>(type: K, listener: (this: HTMLAfInputElement, ev: AfInputCustomEvent<HTMLAfInputElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1796
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1797
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1798
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1799
|
+
}
|
|
1800
|
+
var HTMLAfInputElement: {
|
|
1801
|
+
prototype: HTMLAfInputElement;
|
|
1802
|
+
new (): HTMLAfInputElement;
|
|
1803
|
+
};
|
|
1804
|
+
/**
|
|
1805
|
+
* Affinda logo component
|
|
1806
|
+
*/
|
|
1807
|
+
interface HTMLAfLogoElement extends Components.AfLogo, HTMLStencilElement {
|
|
1808
|
+
}
|
|
1809
|
+
var HTMLAfLogoElement: {
|
|
1810
|
+
prototype: HTMLAfLogoElement;
|
|
1811
|
+
new (): HTMLAfLogoElement;
|
|
1812
|
+
};
|
|
1813
|
+
/**
|
|
1814
|
+
* A rounded container for displaying client logos
|
|
1815
|
+
*/
|
|
1816
|
+
interface HTMLAfLogoWellElement extends Components.AfLogoWell, HTMLStencilElement {
|
|
1817
|
+
}
|
|
1818
|
+
var HTMLAfLogoWellElement: {
|
|
1819
|
+
prototype: HTMLAfLogoWellElement;
|
|
1820
|
+
new (): HTMLAfLogoWellElement;
|
|
1821
|
+
};
|
|
1822
|
+
/**
|
|
1823
|
+
* A navigation card component for featured article content in mega-menu dropdowns.
|
|
1824
|
+
* Displays an image with a gradient overlay and headline text.
|
|
1825
|
+
* **Usage:**
|
|
1826
|
+
* - Place in the `sidebar` slot of NavMenuNest
|
|
1827
|
+
* - Provide imageSrc, heading, and href props
|
|
1828
|
+
* **Hover behavior:**
|
|
1829
|
+
* - Slight scale effect (1.02)
|
|
1830
|
+
* - Headline underline
|
|
1831
|
+
*/
|
|
1832
|
+
interface HTMLAfNavCardElement extends Components.AfNavCard, HTMLStencilElement {
|
|
1833
|
+
}
|
|
1834
|
+
var HTMLAfNavCardElement: {
|
|
1835
|
+
prototype: HTMLAfNavCardElement;
|
|
1836
|
+
new (): HTMLAfNavCardElement;
|
|
1837
|
+
};
|
|
1838
|
+
/**
|
|
1839
|
+
* A generic navigation item component that can be used in navigation bars, menus, and sidebars.
|
|
1840
|
+
* Supports multiple hierarchy levels, variants, and states (active, hover).
|
|
1841
|
+
*/
|
|
1842
|
+
interface HTMLAfNavItemElement extends Components.AfNavItem, HTMLStencilElement {
|
|
1843
|
+
}
|
|
1844
|
+
var HTMLAfNavItemElement: {
|
|
1845
|
+
prototype: HTMLAfNavItemElement;
|
|
1846
|
+
new (): HTMLAfNavItemElement;
|
|
1847
|
+
};
|
|
1848
|
+
/**
|
|
1849
|
+
* A grouped navigation menu component with a heading.
|
|
1850
|
+
* Used in mega-menu dropdowns to group related navigation items.
|
|
1851
|
+
*/
|
|
1852
|
+
interface HTMLAfNavMenuElement extends Components.AfNavMenu, HTMLStencilElement {
|
|
1853
|
+
}
|
|
1854
|
+
var HTMLAfNavMenuElement: {
|
|
1855
|
+
prototype: HTMLAfNavMenuElement;
|
|
1856
|
+
new (): HTMLAfNavMenuElement;
|
|
1857
|
+
};
|
|
1858
|
+
/**
|
|
1859
|
+
* A mega-menu dropdown panel component.
|
|
1860
|
+
* Acts as a container for NavMenu columns and optionally a sidebar.
|
|
1861
|
+
* Used as the dropdown content for navbar items.
|
|
1862
|
+
* **Slots:**
|
|
1863
|
+
* - default: Place NavMenu components here - they will be displayed as columns
|
|
1864
|
+
* - sidebar: Optional sidebar content (NavMenu, NavCard, or any content)
|
|
1865
|
+
* **Example:**
|
|
1866
|
+
* ```html
|
|
1867
|
+
* <af-nav-menu-nest type="solutions" breakpoint="desktop">
|
|
1868
|
+
* <af-nav-menu heading="Industries">...</af-nav-menu>
|
|
1869
|
+
* <af-nav-menu heading="Use Cases">...</af-nav-menu>
|
|
1870
|
+
* <af-nav-menu heading="Documents">...</af-nav-menu>
|
|
1871
|
+
* <af-nav-menu slot="sidebar" heading="Resume Parser">...</af-nav-menu>
|
|
1872
|
+
* </af-nav-menu-nest>
|
|
1873
|
+
* ```
|
|
1874
|
+
*/
|
|
1875
|
+
interface HTMLAfNavMenuNestElement extends Components.AfNavMenuNest, HTMLStencilElement {
|
|
1876
|
+
}
|
|
1877
|
+
var HTMLAfNavMenuNestElement: {
|
|
1878
|
+
prototype: HTMLAfNavMenuNestElement;
|
|
1879
|
+
new (): HTMLAfNavMenuNestElement;
|
|
1880
|
+
};
|
|
1881
|
+
/**
|
|
1882
|
+
* A full-width navigation bar component that provides the main site navigation.
|
|
1883
|
+
* Features a pill-shaped container with logo, navigation links, and action buttons.
|
|
1884
|
+
* Includes mobile hamburger menu and support for mega-menu dropdowns.
|
|
1885
|
+
* The logo slot can be used to provide a custom logo. If no logo is provided,
|
|
1886
|
+
* the default Affinda logo will be displayed.
|
|
1887
|
+
*/
|
|
1888
|
+
interface HTMLAfNavbarElement extends Components.AfNavbar, HTMLStencilElement {
|
|
1889
|
+
}
|
|
1890
|
+
var HTMLAfNavbarElement: {
|
|
1891
|
+
prototype: HTMLAfNavbarElement;
|
|
1892
|
+
new (): HTMLAfNavbarElement;
|
|
1893
|
+
};
|
|
1894
|
+
/**
|
|
1895
|
+
* NumberBadge displays numbers 1-10 in either a filled circle or text-only style.
|
|
1896
|
+
* Perfect for numbered lists, step indicators, or ordered content.
|
|
1897
|
+
* @example ```html
|
|
1898
|
+
* <af-number-badge number="1" variant="inCircle" size="48"></af-number-badge>
|
|
1899
|
+
* <af-number-badge number="5" variant="outlined" size="32"></af-number-badge>
|
|
1900
|
+
* ```
|
|
1901
|
+
*/
|
|
1902
|
+
interface HTMLAfNumberBadgeElement extends Components.AfNumberBadge, HTMLStencilElement {
|
|
1903
|
+
}
|
|
1904
|
+
var HTMLAfNumberBadgeElement: {
|
|
1905
|
+
prototype: HTMLAfNumberBadgeElement;
|
|
1906
|
+
new (): HTMLAfNumberBadgeElement;
|
|
1907
|
+
};
|
|
1908
|
+
/**
|
|
1909
|
+
* Progress Line atom component for displaying scroll or completion progress.
|
|
1910
|
+
* Shows a horizontal bar with a filled portion indicating progress.
|
|
1911
|
+
* Used primarily for carousel scroll indicators.
|
|
1912
|
+
*/
|
|
1913
|
+
interface HTMLAfProgressLineElement extends Components.AfProgressLine, HTMLStencilElement {
|
|
1914
|
+
}
|
|
1915
|
+
var HTMLAfProgressLineElement: {
|
|
1916
|
+
prototype: HTMLAfProgressLineElement;
|
|
1917
|
+
new (): HTMLAfProgressLineElement;
|
|
1918
|
+
};
|
|
1919
|
+
interface HTMLAfRadioElementEventMap {
|
|
1920
|
+
"afChange": { checked: boolean; value?: string };
|
|
1921
|
+
}
|
|
1922
|
+
/**
|
|
1923
|
+
* Radio component for selecting a single option from a group.
|
|
1924
|
+
*/
|
|
1925
|
+
interface HTMLAfRadioElement extends Components.AfRadio, HTMLStencilElement {
|
|
1926
|
+
addEventListener<K extends keyof HTMLAfRadioElementEventMap>(type: K, listener: (this: HTMLAfRadioElement, ev: AfRadioCustomEvent<HTMLAfRadioElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1927
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1928
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1929
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1930
|
+
removeEventListener<K extends keyof HTMLAfRadioElementEventMap>(type: K, listener: (this: HTMLAfRadioElement, ev: AfRadioCustomEvent<HTMLAfRadioElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1931
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1932
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1933
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1934
|
+
}
|
|
1935
|
+
var HTMLAfRadioElement: {
|
|
1936
|
+
prototype: HTMLAfRadioElement;
|
|
1937
|
+
new (): HTMLAfRadioElement;
|
|
1938
|
+
};
|
|
1939
|
+
/**
|
|
1940
|
+
* Section layout component for consistent spacing and backgrounds.
|
|
1941
|
+
* Sets theme context for all child components via CSS custom properties.
|
|
1942
|
+
*/
|
|
1943
|
+
interface HTMLAfSectionElement extends Components.AfSection, HTMLStencilElement {
|
|
1944
|
+
}
|
|
1945
|
+
var HTMLAfSectionElement: {
|
|
1946
|
+
prototype: HTMLAfSectionElement;
|
|
1947
|
+
new (): HTMLAfSectionElement;
|
|
1948
|
+
};
|
|
1949
|
+
/**
|
|
1950
|
+
* Social media link component
|
|
1951
|
+
* Circular bordered icon link for social media profiles
|
|
1952
|
+
*/
|
|
1953
|
+
interface HTMLAfSocialLinkElement extends Components.AfSocialLink, HTMLStencilElement {
|
|
1954
|
+
}
|
|
1955
|
+
var HTMLAfSocialLinkElement: {
|
|
1956
|
+
prototype: HTMLAfSocialLinkElement;
|
|
1957
|
+
new (): HTMLAfSocialLinkElement;
|
|
1958
|
+
};
|
|
1959
|
+
/**
|
|
1960
|
+
* Split Section component for layouts with two-tone backgrounds.
|
|
1961
|
+
* Creates a vertical split with different themes for top and bottom halves.
|
|
1962
|
+
* Useful for content that visually spans across two themed areas.
|
|
1963
|
+
* Uses a CSS linear-gradient for the split background effect.
|
|
1964
|
+
*/
|
|
1965
|
+
interface HTMLAfSplitSectionElement extends Components.AfSplitSection, HTMLStencilElement {
|
|
1966
|
+
}
|
|
1967
|
+
var HTMLAfSplitSectionElement: {
|
|
1968
|
+
prototype: HTMLAfSplitSectionElement;
|
|
1969
|
+
new (): HTMLAfSplitSectionElement;
|
|
1970
|
+
};
|
|
1971
|
+
interface HTMLAfSwitchElementEventMap {
|
|
1972
|
+
"afChange": { active: boolean };
|
|
1973
|
+
}
|
|
1974
|
+
/**
|
|
1975
|
+
* Switch component for toggling between on and off states.
|
|
1976
|
+
*/
|
|
1977
|
+
interface HTMLAfSwitchElement extends Components.AfSwitch, HTMLStencilElement {
|
|
1978
|
+
addEventListener<K extends keyof HTMLAfSwitchElementEventMap>(type: K, listener: (this: HTMLAfSwitchElement, ev: AfSwitchCustomEvent<HTMLAfSwitchElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1979
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1980
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1981
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1982
|
+
removeEventListener<K extends keyof HTMLAfSwitchElementEventMap>(type: K, listener: (this: HTMLAfSwitchElement, ev: AfSwitchCustomEvent<HTMLAfSwitchElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1983
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1984
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1985
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1986
|
+
}
|
|
1987
|
+
var HTMLAfSwitchElement: {
|
|
1988
|
+
prototype: HTMLAfSwitchElement;
|
|
1989
|
+
new (): HTMLAfSwitchElement;
|
|
1990
|
+
};
|
|
1991
|
+
interface HTMLAfTabElementEventMap {
|
|
1992
|
+
"afTabClick": { value?: string };
|
|
1993
|
+
}
|
|
1994
|
+
/**
|
|
1995
|
+
* Tab component for use within a TabBar.
|
|
1996
|
+
* Represents an individual selectable tab with support for icons and number badges.
|
|
1997
|
+
* @example ```html
|
|
1998
|
+
* <af-tab label="Overview" active></af-tab>
|
|
1999
|
+
* <af-tab label="Details">
|
|
2000
|
+
* <af-icon slot="icon" name="document"></af-icon>
|
|
2001
|
+
* </af-tab>
|
|
2002
|
+
* <af-tab label="Step 1">
|
|
2003
|
+
* <af-number-badge slot="number" number="1"></af-number-badge>
|
|
2004
|
+
* </af-tab>
|
|
2005
|
+
* ```
|
|
2006
|
+
*/
|
|
2007
|
+
interface HTMLAfTabElement extends Components.AfTab, HTMLStencilElement {
|
|
2008
|
+
addEventListener<K extends keyof HTMLAfTabElementEventMap>(type: K, listener: (this: HTMLAfTabElement, ev: AfTabCustomEvent<HTMLAfTabElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2009
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2010
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2011
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2012
|
+
removeEventListener<K extends keyof HTMLAfTabElementEventMap>(type: K, listener: (this: HTMLAfTabElement, ev: AfTabCustomEvent<HTMLAfTabElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2013
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2014
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2015
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2016
|
+
}
|
|
2017
|
+
var HTMLAfTabElement: {
|
|
2018
|
+
prototype: HTMLAfTabElement;
|
|
2019
|
+
new (): HTMLAfTabElement;
|
|
2020
|
+
};
|
|
2021
|
+
/**
|
|
2022
|
+
* TabBar component that contains and manages a group of tabs.
|
|
2023
|
+
* Provides horizontal layout, keyboard navigation, and consistent styling.
|
|
2024
|
+
* @example ```html
|
|
2025
|
+
* <af-tab-bar shape="square" breakpoint="desktop">
|
|
2026
|
+
* <af-tab label="Overview" active value="overview"></af-tab>
|
|
2027
|
+
* <af-tab label="Details" value="details"></af-tab>
|
|
2028
|
+
* <af-tab label="Settings" value="settings"></af-tab>
|
|
2029
|
+
* </af-tab-bar>
|
|
2030
|
+
* ```
|
|
2031
|
+
*/
|
|
2032
|
+
interface HTMLAfTabBarElement extends Components.AfTabBar, HTMLStencilElement {
|
|
2033
|
+
}
|
|
2034
|
+
var HTMLAfTabBarElement: {
|
|
2035
|
+
prototype: HTMLAfTabBarElement;
|
|
2036
|
+
new (): HTMLAfTabBarElement;
|
|
2037
|
+
};
|
|
2038
|
+
/**
|
|
2039
|
+
* Tag displays a label in a styled container.
|
|
2040
|
+
* Perfect for categorization, topics, or metadata display.
|
|
2041
|
+
* @example ```html
|
|
2042
|
+
* <af-tag>AI</af-tag>
|
|
2043
|
+
* <af-tag size="small">Machine Learning</af-tag>
|
|
2044
|
+
* <af-tag size="large" variant="light">Document Processing</af-tag>
|
|
2045
|
+
* ```
|
|
2046
|
+
*/
|
|
2047
|
+
interface HTMLAfTagElement extends Components.AfTag, HTMLStencilElement {
|
|
2048
|
+
}
|
|
2049
|
+
var HTMLAfTagElement: {
|
|
2050
|
+
prototype: HTMLAfTagElement;
|
|
2051
|
+
new (): HTMLAfTagElement;
|
|
2052
|
+
};
|
|
2053
|
+
interface HTMLAfTestimonialElementEventMap {
|
|
2054
|
+
"navPrev": void;
|
|
2055
|
+
"navNext": void;
|
|
2056
|
+
}
|
|
2057
|
+
interface HTMLAfTestimonialElement extends Components.AfTestimonial, HTMLStencilElement {
|
|
2058
|
+
addEventListener<K extends keyof HTMLAfTestimonialElementEventMap>(type: K, listener: (this: HTMLAfTestimonialElement, ev: AfTestimonialCustomEvent<HTMLAfTestimonialElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2059
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2060
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2061
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2062
|
+
removeEventListener<K extends keyof HTMLAfTestimonialElementEventMap>(type: K, listener: (this: HTMLAfTestimonialElement, ev: AfTestimonialCustomEvent<HTMLAfTestimonialElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2063
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2064
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2065
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2066
|
+
}
|
|
2067
|
+
var HTMLAfTestimonialElement: {
|
|
2068
|
+
prototype: HTMLAfTestimonialElement;
|
|
2069
|
+
new (): HTMLAfTestimonialElement;
|
|
2070
|
+
};
|
|
2071
|
+
/**
|
|
2072
|
+
* TestimonialCarousel - Carousel for displaying multiple customer testimonials.
|
|
2073
|
+
* Handles navigation between testimonials with progress indicator.
|
|
2074
|
+
* Wrap in Section/Container for proper page layout and theming.
|
|
2075
|
+
*/
|
|
2076
|
+
interface HTMLAfTestimonialCarouselElement extends Components.AfTestimonialCarousel, HTMLStencilElement {
|
|
2077
|
+
}
|
|
2078
|
+
var HTMLAfTestimonialCarouselElement: {
|
|
2079
|
+
prototype: HTMLAfTestimonialCarouselElement;
|
|
2080
|
+
new (): HTMLAfTestimonialCarouselElement;
|
|
2081
|
+
};
|
|
2082
|
+
interface HTMLAfTestimonialStatElement extends Components.AfTestimonialStat, HTMLStencilElement {
|
|
2083
|
+
}
|
|
2084
|
+
var HTMLAfTestimonialStatElement: {
|
|
2085
|
+
prototype: HTMLAfTestimonialStatElement;
|
|
2086
|
+
new (): HTMLAfTestimonialStatElement;
|
|
2087
|
+
};
|
|
2088
|
+
/**
|
|
2089
|
+
* Text/body component that inherits color from theme context.
|
|
2090
|
+
* Color is determined by the parent theme (af-section, af-hero-section, etc.)
|
|
2091
|
+
* via CSS custom properties.
|
|
2092
|
+
*/
|
|
2093
|
+
interface HTMLAfTextElement extends Components.AfText, HTMLStencilElement {
|
|
2094
|
+
}
|
|
2095
|
+
var HTMLAfTextElement: {
|
|
2096
|
+
prototype: HTMLAfTextElement;
|
|
2097
|
+
new (): HTMLAfTextElement;
|
|
2098
|
+
};
|
|
2099
|
+
/**
|
|
2100
|
+
* TextImage composite component that combines typography content with an image.
|
|
2101
|
+
* Supports various layout configurations with image position and proportion options.
|
|
2102
|
+
*/
|
|
2103
|
+
interface HTMLAfTextImageElement extends Components.AfTextImage, HTMLStencilElement {
|
|
2104
|
+
}
|
|
2105
|
+
var HTMLAfTextImageElement: {
|
|
2106
|
+
prototype: HTMLAfTextImageElement;
|
|
2107
|
+
new (): HTMLAfTextImageElement;
|
|
2108
|
+
};
|
|
2109
|
+
/**
|
|
2110
|
+
* TextImageNest is a layout component that arranges multiple text-image content pieces
|
|
2111
|
+
* in various grid layouts with optional footer buttons.
|
|
2112
|
+
* This component inherits theming from a parent Section or theme-providing container.
|
|
2113
|
+
* Wrap it in an af-section to apply themes.
|
|
2114
|
+
* Supports multiple layout variants:
|
|
2115
|
+
* - `single`: Full-width single item (side-by-side image + text)
|
|
2116
|
+
* - `grid-2`: 2-column grid with stacked items
|
|
2117
|
+
* - `grid-3`: 3-column grid with stacked items
|
|
2118
|
+
* - `grid-4`: 4-column grid with stacked items
|
|
2119
|
+
* - `stacked`: Alternating rows of side-by-side content
|
|
2120
|
+
*/
|
|
2121
|
+
interface HTMLAfTextImageNestElement extends Components.AfTextImageNest, HTMLStencilElement {
|
|
2122
|
+
}
|
|
2123
|
+
var HTMLAfTextImageNestElement: {
|
|
2124
|
+
prototype: HTMLAfTextImageNestElement;
|
|
2125
|
+
new (): HTMLAfTextImageNestElement;
|
|
2126
|
+
};
|
|
2127
|
+
interface HTMLAfTextareaElementEventMap {
|
|
2128
|
+
"afInput": { value: string };
|
|
2129
|
+
"afBlur": void;
|
|
2130
|
+
"afFocus": void;
|
|
2131
|
+
"afInfoClick": void;
|
|
2132
|
+
}
|
|
2133
|
+
/**
|
|
2134
|
+
* Textarea component for multi-line text input with label, description, and error states.
|
|
2135
|
+
*/
|
|
2136
|
+
interface HTMLAfTextareaElement extends Components.AfTextarea, HTMLStencilElement {
|
|
2137
|
+
addEventListener<K extends keyof HTMLAfTextareaElementEventMap>(type: K, listener: (this: HTMLAfTextareaElement, ev: AfTextareaCustomEvent<HTMLAfTextareaElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2138
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2139
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2140
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2141
|
+
removeEventListener<K extends keyof HTMLAfTextareaElementEventMap>(type: K, listener: (this: HTMLAfTextareaElement, ev: AfTextareaCustomEvent<HTMLAfTextareaElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2142
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2143
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2144
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2145
|
+
}
|
|
2146
|
+
var HTMLAfTextareaElement: {
|
|
2147
|
+
prototype: HTMLAfTextareaElement;
|
|
2148
|
+
new (): HTMLAfTextareaElement;
|
|
2149
|
+
};
|
|
2150
|
+
interface HTMLAfTypographyLockupElement extends Components.AfTypographyLockup, HTMLStencilElement {
|
|
2151
|
+
}
|
|
2152
|
+
var HTMLAfTypographyLockupElement: {
|
|
2153
|
+
prototype: HTMLAfTypographyLockupElement;
|
|
2154
|
+
new (): HTMLAfTypographyLockupElement;
|
|
2155
|
+
};
|
|
2156
|
+
interface HTMLAfVideoContainerElementEventMap {
|
|
2157
|
+
"playClick": { videoUrl: string };
|
|
2158
|
+
}
|
|
2159
|
+
/**
|
|
2160
|
+
* Video Container molecule component for showcasing video content.
|
|
2161
|
+
* Uses slots for typography lockups above and below the video.
|
|
2162
|
+
* When used inside af-split-section, the top slot inherits the top theme
|
|
2163
|
+
* and the bottom slot inherits the bottom theme for correct colors.
|
|
2164
|
+
* @example ```html
|
|
2165
|
+
* <af-split-section top-theme="mist-green" bottom-theme="white">
|
|
2166
|
+
* <af-video-container video-thumbnail-url="/path/to/thumbnail.jpg">
|
|
2167
|
+
* <af-typography-lockup slot="top" text-alignment="center" heading-size="2">
|
|
2168
|
+
* <af-heading level="2">Watch our product demo</af-heading>
|
|
2169
|
+
* <af-text slot="description">See how Affinda transforms your workflow</af-text>
|
|
2170
|
+
* <af-button slot="buttons" variant="primary">Get Started</af-button>
|
|
2171
|
+
* </af-typography-lockup>
|
|
2172
|
+
* </af-video-container>
|
|
2173
|
+
* </af-split-section>
|
|
2174
|
+
* ```
|
|
2175
|
+
*/
|
|
2176
|
+
interface HTMLAfVideoContainerElement extends Components.AfVideoContainer, HTMLStencilElement {
|
|
2177
|
+
addEventListener<K extends keyof HTMLAfVideoContainerElementEventMap>(type: K, listener: (this: HTMLAfVideoContainerElement, ev: AfVideoContainerCustomEvent<HTMLAfVideoContainerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2178
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2179
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2180
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2181
|
+
removeEventListener<K extends keyof HTMLAfVideoContainerElementEventMap>(type: K, listener: (this: HTMLAfVideoContainerElement, ev: AfVideoContainerCustomEvent<HTMLAfVideoContainerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2182
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2183
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2184
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2185
|
+
}
|
|
2186
|
+
var HTMLAfVideoContainerElement: {
|
|
2187
|
+
prototype: HTMLAfVideoContainerElement;
|
|
2188
|
+
new (): HTMLAfVideoContainerElement;
|
|
2189
|
+
};
|
|
2190
|
+
interface HTMLElementTagNameMap {
|
|
2191
|
+
"af-aspect-ratio": HTMLAfAspectRatioElement;
|
|
2192
|
+
"af-button": HTMLAfButtonElement;
|
|
2193
|
+
"af-button-group": HTMLAfButtonGroupElement;
|
|
2194
|
+
"af-card": HTMLAfCardElement;
|
|
2195
|
+
"af-checkbox": HTMLAfCheckboxElement;
|
|
2196
|
+
"af-client-carousel": HTMLAfClientCarouselElement;
|
|
2197
|
+
"af-color-swatch": HTMLAfColorSwatchElement;
|
|
2198
|
+
"af-contact-item": HTMLAfContactItemElement;
|
|
2199
|
+
"af-container": HTMLAfContainerElement;
|
|
2200
|
+
"af-feature-accordion": HTMLAfFeatureAccordionElement;
|
|
2201
|
+
"af-feature-card": HTMLAfFeatureCardElement;
|
|
2202
|
+
"af-feature-grid": HTMLAfFeatureGridElement;
|
|
2203
|
+
"af-fieldset": HTMLAfFieldsetElement;
|
|
2204
|
+
"af-footer": HTMLAfFooterElement;
|
|
2205
|
+
"af-footer-column": HTMLAfFooterColumnElement;
|
|
2206
|
+
"af-footer-link": HTMLAfFooterLinkElement;
|
|
2207
|
+
"af-grid-callout": HTMLAfGridCalloutElement;
|
|
2208
|
+
"af-heading": HTMLAfHeadingElement;
|
|
2209
|
+
"af-hero-section": HTMLAfHeroSectionElement;
|
|
2210
|
+
"af-icon": HTMLAfIconElement;
|
|
2211
|
+
"af-icon-box": HTMLAfIconBoxElement;
|
|
2212
|
+
"af-icon-button": HTMLAfIconButtonElement;
|
|
2213
|
+
"af-icon-text": HTMLAfIconTextElement;
|
|
2214
|
+
"af-illustrated-card": HTMLAfIllustratedCardElement;
|
|
2215
|
+
"af-image": HTMLAfImageElement;
|
|
2216
|
+
"af-in-page-banner": HTMLAfInPageBannerElement;
|
|
2217
|
+
"af-input": HTMLAfInputElement;
|
|
2218
|
+
"af-logo": HTMLAfLogoElement;
|
|
2219
|
+
"af-logo-well": HTMLAfLogoWellElement;
|
|
2220
|
+
"af-nav-card": HTMLAfNavCardElement;
|
|
2221
|
+
"af-nav-item": HTMLAfNavItemElement;
|
|
2222
|
+
"af-nav-menu": HTMLAfNavMenuElement;
|
|
2223
|
+
"af-nav-menu-nest": HTMLAfNavMenuNestElement;
|
|
2224
|
+
"af-navbar": HTMLAfNavbarElement;
|
|
2225
|
+
"af-number-badge": HTMLAfNumberBadgeElement;
|
|
2226
|
+
"af-progress-line": HTMLAfProgressLineElement;
|
|
2227
|
+
"af-radio": HTMLAfRadioElement;
|
|
2228
|
+
"af-section": HTMLAfSectionElement;
|
|
2229
|
+
"af-social-link": HTMLAfSocialLinkElement;
|
|
2230
|
+
"af-split-section": HTMLAfSplitSectionElement;
|
|
2231
|
+
"af-switch": HTMLAfSwitchElement;
|
|
2232
|
+
"af-tab": HTMLAfTabElement;
|
|
2233
|
+
"af-tab-bar": HTMLAfTabBarElement;
|
|
2234
|
+
"af-tag": HTMLAfTagElement;
|
|
2235
|
+
"af-testimonial": HTMLAfTestimonialElement;
|
|
2236
|
+
"af-testimonial-carousel": HTMLAfTestimonialCarouselElement;
|
|
2237
|
+
"af-testimonial-stat": HTMLAfTestimonialStatElement;
|
|
2238
|
+
"af-text": HTMLAfTextElement;
|
|
2239
|
+
"af-text-image": HTMLAfTextImageElement;
|
|
2240
|
+
"af-text-image-nest": HTMLAfTextImageNestElement;
|
|
2241
|
+
"af-textarea": HTMLAfTextareaElement;
|
|
2242
|
+
"af-typography-lockup": HTMLAfTypographyLockupElement;
|
|
2243
|
+
"af-video-container": HTMLAfVideoContainerElement;
|
|
2244
|
+
}
|
|
2245
|
+
}
|
|
2246
|
+
declare namespace LocalJSX {
|
|
2247
|
+
/**
|
|
2248
|
+
* A container component that maintains a fixed aspect ratio for its content.
|
|
2249
|
+
* Useful for images, videos, or any content that needs to maintain specific proportions.
|
|
2250
|
+
*/
|
|
2251
|
+
interface AfAspectRatio {
|
|
2252
|
+
/**
|
|
2253
|
+
* The aspect ratio to maintain. Can be: - A predefined ratio: '1:1', '16:9', '4:3', 'golden-portrait', 'golden-landscape', 'a4-portrait', 'a4-landscape', 'letter-portrait', 'letter-landscape', etc. - A custom ratio in format 'width / height': '16 / 9', '4 / 3', '1.618 / 1', etc.
|
|
2254
|
+
* @example <af-aspect-ratio ratio="16:9">Content</af-aspect-ratio> <af-aspect-ratio ratio="1.618 / 1">Content</af-aspect-ratio>
|
|
2255
|
+
* @default '1:1'
|
|
2256
|
+
*/
|
|
2257
|
+
"ratio"?: string;
|
|
2258
|
+
}
|
|
2259
|
+
/**
|
|
2260
|
+
* Button component that inherits colors from theme context.
|
|
2261
|
+
* Colors are determined by the parent theme (af-section, af-hero-section, etc.)
|
|
2262
|
+
* via CSS custom properties.
|
|
2263
|
+
*/
|
|
2264
|
+
interface AfButton {
|
|
2265
|
+
/**
|
|
2266
|
+
* Whether the button is disabled
|
|
2267
|
+
* @default false
|
|
2268
|
+
*/
|
|
2269
|
+
"disabled"?: boolean;
|
|
2270
|
+
/**
|
|
2271
|
+
* Optional href to render as a link instead of a button
|
|
2272
|
+
*/
|
|
2273
|
+
"href"?: string;
|
|
2274
|
+
/**
|
|
2275
|
+
* The size of the button. - `default` - Standard size for primary CTAs - `small` - Compact size for inline or secondary contexts
|
|
2276
|
+
* @default 'default'
|
|
2277
|
+
*/
|
|
2278
|
+
"size"?: 'default' | 'small';
|
|
2279
|
+
/**
|
|
2280
|
+
* Button type (when not using href)
|
|
2281
|
+
* @default 'button'
|
|
2282
|
+
*/
|
|
2283
|
+
"type"?: 'button' | 'submit' | 'reset';
|
|
2284
|
+
/**
|
|
2285
|
+
* The visual variant of the button. - `primary` - Main CTA with filled background (use sparingly, 1-2 per view) - `secondary` - Supporting action with outlined style - `tertiary` - Subtle text-link style with underline
|
|
2286
|
+
* @default 'primary'
|
|
2287
|
+
*/
|
|
2288
|
+
"variant"?: 'primary' | 'secondary' | 'tertiary';
|
|
2289
|
+
}
|
|
2290
|
+
interface AfButtonGroup {
|
|
2291
|
+
/**
|
|
2292
|
+
* Layout direction of the button group
|
|
2293
|
+
* @default 'horizontal'
|
|
2294
|
+
*/
|
|
2295
|
+
"direction"?: 'horizontal' | 'vertical';
|
|
2296
|
+
/**
|
|
2297
|
+
* Gap between buttons
|
|
2298
|
+
* @default '8px'
|
|
2299
|
+
*/
|
|
2300
|
+
"gap"?: string;
|
|
2301
|
+
}
|
|
2302
|
+
/**
|
|
2303
|
+
* Card atom component - a themed container with consistent styling.
|
|
2304
|
+
* Provides theme context to children via CSS custom properties.
|
|
2305
|
+
* This is a base building block used by molecule components like
|
|
2306
|
+
* af-feature-card and af-illustrated-card.
|
|
2307
|
+
*/
|
|
2308
|
+
interface AfCard {
|
|
2309
|
+
/**
|
|
2310
|
+
* When true, the card stretches to fill its container height. Use this when the card is in a flex/grid container and needs to participate in equal-height layouts. The card's content will use flexbox to distribute space between children.
|
|
2311
|
+
* @default false
|
|
2312
|
+
*/
|
|
2313
|
+
"stretch"?: boolean;
|
|
2314
|
+
/**
|
|
2315
|
+
* Theme - sets background color and provides theme context to children. Defaults to 'mist-green' if not specified.
|
|
2316
|
+
* @default 'mist-green'
|
|
2317
|
+
*/
|
|
2318
|
+
"theme"?: 'white' | 'white-ivory' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
2319
|
+
}
|
|
2320
|
+
/**
|
|
2321
|
+
* Checkbox component for selecting multiple options.
|
|
2322
|
+
* Supports checked, unchecked, and indeterminate states.
|
|
2323
|
+
*/
|
|
2324
|
+
interface AfCheckbox {
|
|
2325
|
+
/**
|
|
2326
|
+
* Whether the checkbox is checked
|
|
2327
|
+
* @default false
|
|
2328
|
+
*/
|
|
2329
|
+
"checked"?: boolean;
|
|
2330
|
+
/**
|
|
2331
|
+
* Whether the checkbox is disabled
|
|
2332
|
+
* @default false
|
|
2333
|
+
*/
|
|
2334
|
+
"disabled"?: boolean;
|
|
2335
|
+
/**
|
|
2336
|
+
* Whether the checkbox is in an indeterminate state
|
|
2337
|
+
* @default false
|
|
2338
|
+
*/
|
|
2339
|
+
"indeterminate"?: boolean;
|
|
2340
|
+
/**
|
|
2341
|
+
* The name of the checkbox for form submission
|
|
2342
|
+
*/
|
|
2343
|
+
"name"?: string;
|
|
2344
|
+
/**
|
|
2345
|
+
* Emitted when the checkbox checked state changes
|
|
2346
|
+
*/
|
|
2347
|
+
"onAfChange"?: (event: AfCheckboxCustomEvent<{ checked: boolean }>) => void;
|
|
2348
|
+
/**
|
|
2349
|
+
* The value of the checkbox for form submission
|
|
2350
|
+
*/
|
|
2351
|
+
"value"?: string;
|
|
2352
|
+
}
|
|
2353
|
+
/**
|
|
2354
|
+
* Infinite scrolling carousel for client logos.
|
|
2355
|
+
* This is a section-level component that spans full width.
|
|
2356
|
+
* It supports theming via the `theme` prop.
|
|
2357
|
+
* For headlines, use a separate TypographyLockup or Heading component above this carousel.
|
|
2358
|
+
*/
|
|
2359
|
+
interface AfClientCarousel {
|
|
2360
|
+
/**
|
|
2361
|
+
* Theme - sets background color and provides theme context to children
|
|
2362
|
+
* @default 'inkwell'
|
|
2363
|
+
*/
|
|
2364
|
+
"theme"?: Theme;
|
|
2365
|
+
}
|
|
2366
|
+
interface AfColorSwatch {
|
|
2367
|
+
/**
|
|
2368
|
+
* Color value (hex)
|
|
2369
|
+
*/
|
|
2370
|
+
"color": string;
|
|
2371
|
+
/**
|
|
2372
|
+
* Color name
|
|
2373
|
+
*/
|
|
2374
|
+
"name": string;
|
|
2375
|
+
/**
|
|
2376
|
+
* Size variant
|
|
2377
|
+
* @default 'default'
|
|
2378
|
+
*/
|
|
2379
|
+
"size"?: 'default' | 'large';
|
|
2380
|
+
}
|
|
2381
|
+
/**
|
|
2382
|
+
* Contact item component for footer
|
|
2383
|
+
* Displays a label and value pair (e.g., "Sales enquiries" / "contact@example.com")
|
|
2384
|
+
*/
|
|
2385
|
+
interface AfContactItem {
|
|
2386
|
+
/**
|
|
2387
|
+
* Contact label (e.g., "Sales enquiries")
|
|
2388
|
+
* @default ''
|
|
2389
|
+
*/
|
|
2390
|
+
"label"?: string;
|
|
2391
|
+
/**
|
|
2392
|
+
* Contact value (e.g., email address)
|
|
2393
|
+
* @default ''
|
|
2394
|
+
*/
|
|
2395
|
+
"value"?: string;
|
|
2396
|
+
}
|
|
2397
|
+
/**
|
|
2398
|
+
* A responsive container component that provides consistent margins and max-width
|
|
2399
|
+
* constraints based on the Affinda grid system.
|
|
2400
|
+
*/
|
|
2401
|
+
interface AfContainer {
|
|
2402
|
+
/**
|
|
2403
|
+
* Maximum width constraint for the container - 'xlarge': 1440px container (default) - 'large': 1024px container - 'medium': 768px container - 'fluid': No max-width constraint, full width with margins
|
|
2404
|
+
* @default 'xlarge'
|
|
2405
|
+
*/
|
|
2406
|
+
"maxWidth"?: 'xlarge' | 'large' | 'medium' | 'fluid';
|
|
2407
|
+
}
|
|
2408
|
+
/**
|
|
2409
|
+
* Feature accordion component with expandable items and accompanying image.
|
|
2410
|
+
* Used for showcasing product features with visual examples.
|
|
2411
|
+
* Features auto-cycling through items with a progress timer.
|
|
2412
|
+
* **Must be wrapped in a Section component** to inherit theme styling.
|
|
2413
|
+
* The component automatically adapts colors based on the parent Section's theme.
|
|
2414
|
+
* @example ```tsx
|
|
2415
|
+
* <Section theme="inkwell">
|
|
2416
|
+
* <FeatureAccordion heading="Features" items={...} />
|
|
2417
|
+
* </Section>
|
|
2418
|
+
* ```
|
|
2419
|
+
*/
|
|
2420
|
+
interface AfFeatureAccordion {
|
|
2421
|
+
/**
|
|
2422
|
+
* Whether auto-cycling is enabled
|
|
2423
|
+
* @default true
|
|
2424
|
+
*/
|
|
2425
|
+
"autoCycle"?: boolean;
|
|
2426
|
+
/**
|
|
2427
|
+
* Auto-cycle interval in milliseconds (default: 6000ms = 6 seconds)
|
|
2428
|
+
* @default 6000
|
|
2429
|
+
*/
|
|
2430
|
+
"cycleInterval"?: number;
|
|
2431
|
+
/**
|
|
2432
|
+
* Section heading
|
|
2433
|
+
* @default 'Give AI agents your paperwork'
|
|
2434
|
+
*/
|
|
2435
|
+
"heading"?: string;
|
|
2436
|
+
/**
|
|
2437
|
+
* JSON string of accordion items
|
|
2438
|
+
* @default '[]'
|
|
2439
|
+
*/
|
|
2440
|
+
"items"?: string;
|
|
2441
|
+
}
|
|
2442
|
+
/**
|
|
2443
|
+
* Feature Card molecule component that combines a card with an image.
|
|
2444
|
+
* Two layout modes:
|
|
2445
|
+
* - `standard`: Theme background with text at top and image at bottom
|
|
2446
|
+
* - `full-bleed`: Image covers entire card with text overlay at bottom
|
|
2447
|
+
* Responsive: Automatically adapts to mobile viewport (≤768px).
|
|
2448
|
+
* Uses af-card atom internally and af-typography-lockup for text hierarchy.
|
|
2449
|
+
*/
|
|
2450
|
+
interface AfFeatureCard {
|
|
2451
|
+
/**
|
|
2452
|
+
* Card size variant. - 'default': Fixed 544px × 420px - 'large': Fixed 777px × 480px - 'flexible': Fills container (for grid layouts)
|
|
2453
|
+
* @default 'default'
|
|
2454
|
+
*/
|
|
2455
|
+
"cardSize"?: 'default' | 'large' | 'flexible';
|
|
2456
|
+
/**
|
|
2457
|
+
* Heading size for typography lockup (1-5, where 1 is largest).
|
|
2458
|
+
* @default 3
|
|
2459
|
+
*/
|
|
2460
|
+
"headingSize"?: 1 | 2 | 3 | 4 | 5;
|
|
2461
|
+
/**
|
|
2462
|
+
* Image alt text for accessibility. Provide meaningful alt text for feature images. Only use empty string for purely decorative images.
|
|
2463
|
+
* @default ''
|
|
2464
|
+
*/
|
|
2465
|
+
"imageAlt"?: string;
|
|
2466
|
+
/**
|
|
2467
|
+
* Background/feature image URL.
|
|
2468
|
+
*/
|
|
2469
|
+
"imageSrc"?: string;
|
|
2470
|
+
/**
|
|
2471
|
+
* Layout mode for the card. - 'standard': Theme background with text at top and image at bottom - 'full-bleed': Image covers entire card with text overlay at bottom
|
|
2472
|
+
* @default 'standard'
|
|
2473
|
+
*/
|
|
2474
|
+
"layout"?: 'standard' | 'full-bleed';
|
|
2475
|
+
/**
|
|
2476
|
+
* Theme variant - sets background color and provides theme context. Only applies to 'standard' layout mode. Defaults to 'mist-green'.
|
|
2477
|
+
* @default 'mist-green'
|
|
2478
|
+
*/
|
|
2479
|
+
"theme"?: 'white' | 'white-ivory' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
2480
|
+
}
|
|
2481
|
+
/**
|
|
2482
|
+
* Feature Grid component - CSS Grid container for feature cards.
|
|
2483
|
+
* Desktop: Configurable columns (1-4)
|
|
2484
|
+
* Mobile: List (stacked), horizontal scroll, or 2-column grid
|
|
2485
|
+
*/
|
|
2486
|
+
interface AfFeatureGrid {
|
|
2487
|
+
/**
|
|
2488
|
+
* Number of columns on desktop (1-4).
|
|
2489
|
+
* @default 4
|
|
2490
|
+
*/
|
|
2491
|
+
"columns"?: 1 | 2 | 3 | 4;
|
|
2492
|
+
/**
|
|
2493
|
+
* Mobile layout behavior. - 'list': Vertical stack (1 column) - 'scroll': Horizontal scroll with progress indicator - 'grid': Maintain 2-column grid on mobile
|
|
2494
|
+
* @default 'list'
|
|
2495
|
+
*/
|
|
2496
|
+
"mobileLayout"?: 'list' | 'scroll' | 'grid';
|
|
2497
|
+
}
|
|
2498
|
+
/**
|
|
2499
|
+
* Fieldset component for grouping related form controls.
|
|
2500
|
+
* Supports vertical and horizontal layouts with an optional legend/heading.
|
|
2501
|
+
*/
|
|
2502
|
+
interface AfFieldset {
|
|
2503
|
+
/**
|
|
2504
|
+
* Whether the fieldset is disabled (disables all child controls)
|
|
2505
|
+
* @default false
|
|
2506
|
+
*/
|
|
2507
|
+
"disabled"?: boolean;
|
|
2508
|
+
/**
|
|
2509
|
+
* The legend/heading text for the fieldset
|
|
2510
|
+
*/
|
|
2511
|
+
"legend"?: string;
|
|
2512
|
+
/**
|
|
2513
|
+
* The layout orientation of the fieldset items - `vertical` - Items stack vertically (default) - `horizontal` - Items are laid out horizontally
|
|
2514
|
+
* @default 'vertical'
|
|
2515
|
+
*/
|
|
2516
|
+
"orientation"?: 'vertical' | 'horizontal';
|
|
2517
|
+
}
|
|
2518
|
+
/**
|
|
2519
|
+
* Footer component for marketing pages
|
|
2520
|
+
* Provides a flexible, slot-based layout for footer content
|
|
2521
|
+
* All content is passed via slots - no hardcoded links or content
|
|
2522
|
+
*/
|
|
2523
|
+
interface AfFooter {
|
|
2524
|
+
/**
|
|
2525
|
+
* Copyright text (e.g., "© 2025 Company Name. All rights reserved.")
|
|
2526
|
+
* @default ''
|
|
2527
|
+
*/
|
|
2528
|
+
"copyrightText"?: string;
|
|
2529
|
+
/**
|
|
2530
|
+
* Whether to show the status indicator
|
|
2531
|
+
* @default true
|
|
2532
|
+
*/
|
|
2533
|
+
"showStatus"?: boolean;
|
|
2534
|
+
/**
|
|
2535
|
+
* Status message text
|
|
2536
|
+
* @default ''
|
|
2537
|
+
*/
|
|
2538
|
+
"statusText"?: string;
|
|
2539
|
+
/**
|
|
2540
|
+
* Status page URL
|
|
2541
|
+
* @default ''
|
|
2542
|
+
*/
|
|
2543
|
+
"statusUrl"?: string;
|
|
2544
|
+
/**
|
|
2545
|
+
* Whether systems are operational (shows green/red indicator)
|
|
2546
|
+
* @default true
|
|
2547
|
+
*/
|
|
2548
|
+
"systemsOperational"?: boolean;
|
|
2549
|
+
}
|
|
2550
|
+
/**
|
|
2551
|
+
* Footer navigation column component
|
|
2552
|
+
* Used within af-footer to create navigation link groups
|
|
2553
|
+
*/
|
|
2554
|
+
interface AfFooterColumn {
|
|
2555
|
+
/**
|
|
2556
|
+
* Column heading
|
|
2557
|
+
* @default ''
|
|
2558
|
+
*/
|
|
2559
|
+
"heading"?: string;
|
|
2560
|
+
}
|
|
2561
|
+
/**
|
|
2562
|
+
* Footer link component
|
|
2563
|
+
* Styled link for use in footer navigation columns
|
|
2564
|
+
*/
|
|
2565
|
+
interface AfFooterLink {
|
|
2566
|
+
/**
|
|
2567
|
+
* Whether this is an external link (opens in new tab)
|
|
2568
|
+
* @default false
|
|
2569
|
+
*/
|
|
2570
|
+
"external"?: boolean;
|
|
2571
|
+
/**
|
|
2572
|
+
* Link URL
|
|
2573
|
+
* @default '#'
|
|
2574
|
+
*/
|
|
2575
|
+
"href"?: string;
|
|
2576
|
+
}
|
|
2577
|
+
/**
|
|
2578
|
+
* GridCallout organism - a marketing section combining an optional pill-shaped image
|
|
2579
|
+
* with a grid of IconText feature items.
|
|
2580
|
+
* Composes:
|
|
2581
|
+
* - Pill-shaped image container (optional)
|
|
2582
|
+
* - Heading via af-typography-lockup
|
|
2583
|
+
* - Grid of af-icon-text items
|
|
2584
|
+
* - Optional CTA button
|
|
2585
|
+
* Inherits theme colors from parent af-section via CSS custom properties.
|
|
2586
|
+
* @example ```html
|
|
2587
|
+
* <af-section theme="mist-green">
|
|
2588
|
+
* <af-grid-callout image-src="/team.jpg" image-alt="Team photo">
|
|
2589
|
+
* Affinda blends AI and engineering
|
|
2590
|
+
* <span slot="description">Optional description text.</span>
|
|
2591
|
+
*
|
|
2592
|
+
* <af-icon-text slot="items" icon="settings">
|
|
2593
|
+
* Feature One
|
|
2594
|
+
* <span slot="description">Feature description.</span>
|
|
2595
|
+
* </af-icon-text>
|
|
2596
|
+
*
|
|
2597
|
+
* <af-button slot="cta" variant="primary">Learn more</af-button>
|
|
2598
|
+
* </af-grid-callout>
|
|
2599
|
+
* </af-section>
|
|
2600
|
+
* ```
|
|
2601
|
+
*/
|
|
2602
|
+
interface AfGridCallout {
|
|
2603
|
+
/**
|
|
2604
|
+
* Number of columns for the IconText grid on desktop
|
|
2605
|
+
* @default 2
|
|
2606
|
+
*/
|
|
2607
|
+
"columns"?: 2 | 3 | 4;
|
|
2608
|
+
/**
|
|
2609
|
+
* Heading size for the main title
|
|
2610
|
+
* @default 2
|
|
2611
|
+
*/
|
|
2612
|
+
"headingSize"?: 1 | 2 | 3 | 4 | 5;
|
|
2613
|
+
/**
|
|
2614
|
+
* Alt text for the image (required for accessibility when imageSrc is provided)
|
|
2615
|
+
* @default ''
|
|
2616
|
+
*/
|
|
2617
|
+
"imageAlt"?: string;
|
|
2618
|
+
/**
|
|
2619
|
+
* Position of the image relative to the content
|
|
2620
|
+
* @default 'left'
|
|
2621
|
+
*/
|
|
2622
|
+
"imagePosition"?: 'left' | 'right';
|
|
2623
|
+
/**
|
|
2624
|
+
* Image source URL for the pill-shaped image
|
|
2625
|
+
*/
|
|
2626
|
+
"imageSrc"?: string;
|
|
2627
|
+
}
|
|
2628
|
+
/**
|
|
2629
|
+
* Heading component that inherits color from theme context.
|
|
2630
|
+
* Color is determined by the parent theme (af-section, af-hero-section, etc.)
|
|
2631
|
+
* via CSS custom properties.
|
|
2632
|
+
*/
|
|
2633
|
+
interface AfHeading {
|
|
2634
|
+
/**
|
|
2635
|
+
* Visual alignment
|
|
2636
|
+
* @default 'left'
|
|
2637
|
+
*/
|
|
2638
|
+
"align"?: 'left' | 'center' | 'right';
|
|
2639
|
+
/**
|
|
2640
|
+
* Heading level
|
|
2641
|
+
* @default '1'
|
|
2642
|
+
*/
|
|
2643
|
+
"level"?: 'xl' | '1' | '2' | '3' | '4' | '5';
|
|
2644
|
+
}
|
|
2645
|
+
/**
|
|
2646
|
+
* Hero section component for marketing pages.
|
|
2647
|
+
* Uses TypographyLockup internally to handle heading, description, and button layout.
|
|
2648
|
+
* Sets theme context for all child components via CSS custom properties.
|
|
2649
|
+
*/
|
|
2650
|
+
interface AfHeroSection {
|
|
2651
|
+
/**
|
|
2652
|
+
* Button alignment - horizontal places buttons inline, vertical stacks them
|
|
2653
|
+
* @default 'horizontal'
|
|
2654
|
+
*/
|
|
2655
|
+
"buttonAlignment"?: 'horizontal' | 'vertical';
|
|
2656
|
+
/**
|
|
2657
|
+
* Heading size for the typography lockup (1-5, where 1 is largest)
|
|
2658
|
+
* @default 1
|
|
2659
|
+
*/
|
|
2660
|
+
"headingSize"?: 1 | 2 | 3 | 4 | 5;
|
|
2661
|
+
/**
|
|
2662
|
+
* Maximum width for the copy section (in pixels)
|
|
2663
|
+
*/
|
|
2664
|
+
"maxWidth"?: number;
|
|
2665
|
+
/**
|
|
2666
|
+
* Minimum height
|
|
2667
|
+
* @default '60vh'
|
|
2668
|
+
*/
|
|
2669
|
+
"minHeight"?: string;
|
|
2670
|
+
/**
|
|
2671
|
+
* Text alignment for the typography lockup
|
|
2672
|
+
* @default 'center'
|
|
2673
|
+
*/
|
|
2674
|
+
"textAlignment"?: 'left' | 'center';
|
|
2675
|
+
/**
|
|
2676
|
+
* Theme - sets background color and provides theme context to children
|
|
2677
|
+
* @default 'inkwell'
|
|
2678
|
+
*/
|
|
2679
|
+
"theme"?: 'white' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
2680
|
+
/**
|
|
2681
|
+
* Show decorative paperclip
|
|
2682
|
+
* @default false
|
|
2683
|
+
*/
|
|
2684
|
+
"withDecoration"?: boolean;
|
|
2685
|
+
}
|
|
2686
|
+
/**
|
|
2687
|
+
* Icon component that displays SVG icons from the Affinda icon library.
|
|
2688
|
+
* Icons inherit color from their parent via currentColor.
|
|
2689
|
+
* Icons are bundled inline, so no runtime fetching is required.
|
|
2690
|
+
* This ensures icons work reliably in all bundler contexts.
|
|
2691
|
+
* @example ```html
|
|
2692
|
+
* <af-icon name="arrow-right" size="24"></af-icon>
|
|
2693
|
+
* ```
|
|
2694
|
+
*/
|
|
2695
|
+
interface AfIcon {
|
|
2696
|
+
/**
|
|
2697
|
+
* Accessible label for the icon (for screen readers)
|
|
2698
|
+
*/
|
|
2699
|
+
"label"?: string;
|
|
2700
|
+
/**
|
|
2701
|
+
* The name of the icon to display
|
|
2702
|
+
*/
|
|
2703
|
+
"name": IconName;
|
|
2704
|
+
/**
|
|
2705
|
+
* Size of the icon in pixels
|
|
2706
|
+
* @default 24
|
|
2707
|
+
*/
|
|
2708
|
+
"size"?: number;
|
|
2709
|
+
}
|
|
2710
|
+
/**
|
|
2711
|
+
* IconBox atom - a themed container for displaying an icon with a rounded background.
|
|
2712
|
+
* Inherits theme colors from parent Section via CSS custom properties:
|
|
2713
|
+
* - Background uses `--af-background-contrast`
|
|
2714
|
+
* - Icon color uses `--af-background-icon-default`
|
|
2715
|
+
* @example ```html
|
|
2716
|
+
* <af-icon-box icon="settings" size="default"></af-icon-box>
|
|
2717
|
+
* ```
|
|
2718
|
+
*/
|
|
2719
|
+
interface AfIconBox {
|
|
2720
|
+
/**
|
|
2721
|
+
* The name of the icon to display (from
|
|
2722
|
+
* @affinda /icons)
|
|
2723
|
+
*/
|
|
2724
|
+
"icon": IconName;
|
|
2725
|
+
/**
|
|
2726
|
+
* Size variant of the icon box - 'small': 48px container, 20px icon - 'default': 64px container, 40px icon - 'large': 80px container, 48px icon
|
|
2727
|
+
* @default 'default'
|
|
2728
|
+
*/
|
|
2729
|
+
"size"?: 'small' | 'default' | 'large';
|
|
2730
|
+
}
|
|
2731
|
+
interface AfIconButton {
|
|
2732
|
+
/**
|
|
2733
|
+
* Accessible label for screen readers
|
|
2734
|
+
*/
|
|
2735
|
+
"ariaLabel": string;
|
|
2736
|
+
/**
|
|
2737
|
+
* Whether the button is disabled
|
|
2738
|
+
* @default false
|
|
2739
|
+
*/
|
|
2740
|
+
"disabled"?: boolean;
|
|
2741
|
+
/**
|
|
2742
|
+
* Optional href to render as a link
|
|
2743
|
+
*/
|
|
2744
|
+
"href"?: string;
|
|
2745
|
+
/**
|
|
2746
|
+
* The size of the button
|
|
2747
|
+
* @default 'medium'
|
|
2748
|
+
*/
|
|
2749
|
+
"size"?: 'large' | 'medium' | 'small';
|
|
2750
|
+
/**
|
|
2751
|
+
* Button type (when not using href)
|
|
2752
|
+
* @default 'button'
|
|
2753
|
+
*/
|
|
2754
|
+
"type"?: 'button' | 'submit' | 'reset';
|
|
2755
|
+
/**
|
|
2756
|
+
* The visual variant of the button. - `primary` - Main CTA with filled ice background - `secondary` - Supporting action with white background - `tertiary` - Minimal style with transparent background
|
|
2757
|
+
* @default 'primary'
|
|
2758
|
+
*/
|
|
2759
|
+
"variant"?: 'primary' | 'secondary' | 'tertiary';
|
|
2760
|
+
}
|
|
2761
|
+
/**
|
|
2762
|
+
* IconText molecule - combines an IconBox with a TypographyLockup for feature items.
|
|
2763
|
+
* Composes:
|
|
2764
|
+
* - af-icon-box: Themed icon container
|
|
2765
|
+
* - af-typography-lockup: Heading, description, and button slots
|
|
2766
|
+
* Inherits theme colors from parent Section via CSS custom properties.
|
|
2767
|
+
* @example ```html
|
|
2768
|
+
* <af-icon-text icon="settings" heading-size="4">
|
|
2769
|
+
* Feature Heading
|
|
2770
|
+
* <span slot="description">Feature description text.</span>
|
|
2771
|
+
* <af-button slot="buttons" variant="tertiary">Learn more</af-button>
|
|
2772
|
+
* </af-icon-text>
|
|
2773
|
+
* ```
|
|
2774
|
+
*/
|
|
2775
|
+
interface AfIconText {
|
|
2776
|
+
/**
|
|
2777
|
+
* Heading size for the typography lockup (1-5, where 1 is largest)
|
|
2778
|
+
* @default 4
|
|
2779
|
+
*/
|
|
2780
|
+
"headingSize"?: 1 | 2 | 3 | 4 | 5;
|
|
2781
|
+
/**
|
|
2782
|
+
* The icon name to display in the IconBox
|
|
2783
|
+
*/
|
|
2784
|
+
"icon": IconName;
|
|
2785
|
+
/**
|
|
2786
|
+
* Size of the icon box
|
|
2787
|
+
* @default 'default'
|
|
2788
|
+
*/
|
|
2789
|
+
"iconSize"?: 'small' | 'default' | 'large';
|
|
2790
|
+
/**
|
|
2791
|
+
* Layout orientation - 'vertical': Icon above text (default, used in grid layouts) - 'horizontal': Icon beside text (used in compact layouts)
|
|
2792
|
+
* @default 'vertical'
|
|
2793
|
+
*/
|
|
2794
|
+
"orientation"?: 'vertical' | 'horizontal';
|
|
2795
|
+
}
|
|
2796
|
+
/**
|
|
2797
|
+
* Illustrated Card molecule component that combines a card with an illustration.
|
|
2798
|
+
* Uses a theme background with text at top and an illustration from
|
|
2799
|
+
* @affinda /illustrations at the bottom.
|
|
2800
|
+
* Uses af-card atom internally and af-typography-lockup for text hierarchy.
|
|
2801
|
+
*/
|
|
2802
|
+
interface AfIllustratedCard {
|
|
2803
|
+
/**
|
|
2804
|
+
* Responsive breakpoint for typography sizing.
|
|
2805
|
+
* @default 'desktop'
|
|
2806
|
+
*/
|
|
2807
|
+
"breakpoint"?: 'desktop' | 'mobile';
|
|
2808
|
+
/**
|
|
2809
|
+
* Card size variant (applies to desktop only).
|
|
2810
|
+
* @default 'default'
|
|
2811
|
+
*/
|
|
2812
|
+
"cardSize"?: 'default' | 'large';
|
|
2813
|
+
/**
|
|
2814
|
+
* Theme variant - sets background color and provides theme context. Defaults to 'mist-green'.
|
|
2815
|
+
* @default 'mist-green'
|
|
2816
|
+
*/
|
|
2817
|
+
"theme"?: 'white' | 'white-ivory' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
2818
|
+
}
|
|
2819
|
+
/**
|
|
2820
|
+
* A styled image container with rounded corners and a subtle inset border.
|
|
2821
|
+
* Provides consistent image styling across the design system.
|
|
2822
|
+
*/
|
|
2823
|
+
interface AfImage {
|
|
2824
|
+
/**
|
|
2825
|
+
* Alternative text for the image (required for accessibility)
|
|
2826
|
+
*/
|
|
2827
|
+
"alt": string;
|
|
2828
|
+
/**
|
|
2829
|
+
* The image source URL
|
|
2830
|
+
*/
|
|
2831
|
+
"src": string;
|
|
2832
|
+
}
|
|
2833
|
+
/**
|
|
2834
|
+
* In-page banner component for call-to-action content.
|
|
2835
|
+
* A banner card with illustration, heading, description, and action buttons.
|
|
2836
|
+
* Typically placed inside a neutral (white) Section to show off its themed background.
|
|
2837
|
+
* The component has its own theme prop to control its background color and styling.
|
|
2838
|
+
* **Illustration Usage:**
|
|
2839
|
+
* Use `illustrationUrl` to pass an illustration image URL. For theme-matched illustrations,
|
|
2840
|
+
* use `getIllustrationUrlByScene()` from `@affinda/illustrations` in your consuming app:
|
|
2841
|
+
* ```tsx
|
|
2842
|
+
* import { getIllustrationUrlByScene } from '@affinda/illustrations';
|
|
2843
|
+
* <InPageBanner
|
|
2844
|
+
* theme="inkwell"
|
|
2845
|
+
* illustrationUrl={getIllustrationUrlByScene('automate', 'inkwell')}
|
|
2846
|
+
* ...
|
|
2847
|
+
* />
|
|
2848
|
+
* ```
|
|
2849
|
+
* Alternatively, use the `illustration` slot for completely custom content.
|
|
2850
|
+
*/
|
|
2851
|
+
interface AfInPageBanner {
|
|
2852
|
+
/**
|
|
2853
|
+
* Banner description
|
|
2854
|
+
* @default ''
|
|
2855
|
+
*/
|
|
2856
|
+
"description"?: string;
|
|
2857
|
+
/**
|
|
2858
|
+
* Banner heading
|
|
2859
|
+
* @default ''
|
|
2860
|
+
*/
|
|
2861
|
+
"heading"?: string;
|
|
2862
|
+
/**
|
|
2863
|
+
* Illustration URL. For theme-matched illustrations, use getIllustrationUrlByScene() from
|
|
2864
|
+
* @affinda /illustrations in your app code.
|
|
2865
|
+
* @default ''
|
|
2866
|
+
*/
|
|
2867
|
+
"illustrationUrl"?: string;
|
|
2868
|
+
/**
|
|
2869
|
+
* Primary button text
|
|
2870
|
+
* @default ''
|
|
2871
|
+
*/
|
|
2872
|
+
"primaryButtonText"?: string;
|
|
2873
|
+
/**
|
|
2874
|
+
* Primary button URL
|
|
2875
|
+
* @default '#'
|
|
2876
|
+
*/
|
|
2877
|
+
"primaryButtonUrl"?: string;
|
|
2878
|
+
/**
|
|
2879
|
+
* Secondary button text (optional - if empty, button won't show)
|
|
2880
|
+
* @default ''
|
|
2881
|
+
*/
|
|
2882
|
+
"secondaryButtonText"?: string;
|
|
2883
|
+
/**
|
|
2884
|
+
* Secondary button URL
|
|
2885
|
+
* @default '#'
|
|
2886
|
+
*/
|
|
2887
|
+
"secondaryButtonUrl"?: string;
|
|
2888
|
+
/**
|
|
2889
|
+
* Whether to show the decorative wave overlay
|
|
2890
|
+
* @default true
|
|
2891
|
+
*/
|
|
2892
|
+
"showWaveDecoration"?: boolean;
|
|
2893
|
+
/**
|
|
2894
|
+
* Theme - sets the banner background color and typography colors
|
|
2895
|
+
* @default 'mist-green'
|
|
2896
|
+
*/
|
|
2897
|
+
"theme"?: BannerTheme;
|
|
2898
|
+
}
|
|
2899
|
+
/**
|
|
2900
|
+
* Input field component with label, description, and error states.
|
|
2901
|
+
* Supports various input types and validation states.
|
|
785
2902
|
*/
|
|
786
|
-
interface
|
|
2903
|
+
interface AfInput {
|
|
787
2904
|
/**
|
|
788
|
-
*
|
|
789
|
-
* @example <af-aspect-ratio ratio="16:9">Content</af-aspect-ratio> <af-aspect-ratio ratio="1.618 / 1">Content</af-aspect-ratio>
|
|
790
|
-
* @default '1:1'
|
|
2905
|
+
* Autocomplete attribute for the input
|
|
791
2906
|
*/
|
|
792
|
-
"
|
|
793
|
-
}
|
|
794
|
-
interface AfButton {
|
|
2907
|
+
"autocomplete"?: string;
|
|
795
2908
|
/**
|
|
796
|
-
*
|
|
2909
|
+
* Whether to show a clear button when input has value
|
|
797
2910
|
* @default false
|
|
798
2911
|
*/
|
|
799
|
-
"
|
|
2912
|
+
"clearable"?: boolean;
|
|
800
2913
|
/**
|
|
801
|
-
*
|
|
2914
|
+
* Description text displayed below the label
|
|
2915
|
+
*/
|
|
2916
|
+
"description"?: string;
|
|
2917
|
+
/**
|
|
2918
|
+
* Whether the input is disabled
|
|
802
2919
|
* @default false
|
|
803
2920
|
*/
|
|
804
2921
|
"disabled"?: boolean;
|
|
805
2922
|
/**
|
|
806
|
-
*
|
|
2923
|
+
* Error message to display (also sets error state)
|
|
807
2924
|
*/
|
|
808
|
-
"
|
|
2925
|
+
"error"?: string;
|
|
809
2926
|
/**
|
|
810
|
-
* The
|
|
811
|
-
* @default 'default'
|
|
2927
|
+
* The label text for the input field
|
|
812
2928
|
*/
|
|
813
|
-
"
|
|
2929
|
+
"label"?: string;
|
|
814
2930
|
/**
|
|
815
|
-
*
|
|
816
|
-
* @default 'button'
|
|
2931
|
+
* Maximum length of input value
|
|
817
2932
|
*/
|
|
818
|
-
"
|
|
2933
|
+
"maxlength"?: number;
|
|
819
2934
|
/**
|
|
820
|
-
*
|
|
821
|
-
* @default 'primary'
|
|
2935
|
+
* Minimum length of input value
|
|
822
2936
|
*/
|
|
823
|
-
"
|
|
824
|
-
}
|
|
825
|
-
interface AfButtonGroup {
|
|
2937
|
+
"minlength"?: number;
|
|
826
2938
|
/**
|
|
827
|
-
*
|
|
828
|
-
* @default 'horizontal'
|
|
2939
|
+
* The name of the input for form submission
|
|
829
2940
|
*/
|
|
830
|
-
"
|
|
2941
|
+
"name"?: string;
|
|
831
2942
|
/**
|
|
832
|
-
*
|
|
833
|
-
* @default '8px'
|
|
2943
|
+
* Emitted when the input loses focus
|
|
834
2944
|
*/
|
|
835
|
-
"
|
|
836
|
-
}
|
|
837
|
-
interface AfCard {
|
|
2945
|
+
"onAfBlur"?: (event: AfInputCustomEvent<void>) => void;
|
|
838
2946
|
/**
|
|
839
|
-
*
|
|
2947
|
+
* Emitted when the clear button is clicked
|
|
840
2948
|
*/
|
|
841
|
-
"
|
|
2949
|
+
"onAfClear"?: (event: AfInputCustomEvent<void>) => void;
|
|
842
2950
|
/**
|
|
843
|
-
*
|
|
2951
|
+
* Emitted when the input gains focus
|
|
844
2952
|
*/
|
|
845
|
-
"
|
|
2953
|
+
"onAfFocus"?: (event: AfInputCustomEvent<void>) => void;
|
|
846
2954
|
/**
|
|
847
|
-
*
|
|
848
|
-
* @default false
|
|
2955
|
+
* Emitted when the info icon is clicked
|
|
849
2956
|
*/
|
|
850
|
-
"
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
interface AfClientCarousel {
|
|
2957
|
+
"onAfInfoClick"?: (event: AfInputCustomEvent<void>) => void;
|
|
2958
|
+
/**
|
|
2959
|
+
* Emitted when the input value changes
|
|
2960
|
+
*/
|
|
2961
|
+
"onAfInput"?: (event: AfInputCustomEvent<{ value: string }>) => void;
|
|
856
2962
|
/**
|
|
857
|
-
*
|
|
858
|
-
* @default "Trusted by some of the world's leading organisations"
|
|
2963
|
+
* Pattern for input validation (regex)
|
|
859
2964
|
*/
|
|
860
|
-
"
|
|
2965
|
+
"pattern"?: string;
|
|
861
2966
|
/**
|
|
862
|
-
*
|
|
2967
|
+
* Placeholder text for the input
|
|
2968
|
+
*/
|
|
2969
|
+
"placeholder"?: string;
|
|
2970
|
+
/**
|
|
2971
|
+
* Whether the input is read-only
|
|
863
2972
|
* @default false
|
|
864
2973
|
*/
|
|
865
|
-
"
|
|
866
|
-
}
|
|
867
|
-
interface AfColorSwatch {
|
|
2974
|
+
"readonly"?: boolean;
|
|
868
2975
|
/**
|
|
869
|
-
*
|
|
2976
|
+
* Whether the input is required
|
|
2977
|
+
* @default false
|
|
870
2978
|
*/
|
|
871
|
-
"
|
|
2979
|
+
"required"?: boolean;
|
|
872
2980
|
/**
|
|
873
|
-
*
|
|
2981
|
+
* Whether to show the info icon next to the label
|
|
2982
|
+
* @default false
|
|
874
2983
|
*/
|
|
875
|
-
"
|
|
2984
|
+
"showInfoIcon"?: boolean;
|
|
876
2985
|
/**
|
|
877
|
-
*
|
|
878
|
-
* @default
|
|
2986
|
+
* Whether to show a search icon in the input
|
|
2987
|
+
* @default false
|
|
879
2988
|
*/
|
|
880
|
-
"
|
|
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 {
|
|
2989
|
+
"showSearchIcon"?: boolean;
|
|
887
2990
|
/**
|
|
888
|
-
*
|
|
889
|
-
* @default ''
|
|
2991
|
+
* The input type (text, email, password, number, tel, url, search)
|
|
2992
|
+
* @default 'text'
|
|
890
2993
|
*/
|
|
891
|
-
"
|
|
2994
|
+
"type"?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search';
|
|
892
2995
|
/**
|
|
893
|
-
*
|
|
2996
|
+
* The current value of the input
|
|
894
2997
|
* @default ''
|
|
895
2998
|
*/
|
|
896
2999
|
"value"?: string;
|
|
897
3000
|
}
|
|
898
3001
|
/**
|
|
899
|
-
*
|
|
900
|
-
* constraints based on the Affinda grid system.
|
|
3002
|
+
* Affinda logo component
|
|
901
3003
|
*/
|
|
902
|
-
interface
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
3004
|
+
interface AfLogo {
|
|
3005
|
+
}
|
|
3006
|
+
/**
|
|
3007
|
+
* A rounded container for displaying client logos
|
|
3008
|
+
*/
|
|
3009
|
+
interface AfLogoWell {
|
|
908
3010
|
}
|
|
909
3011
|
/**
|
|
910
|
-
*
|
|
911
|
-
*
|
|
3012
|
+
* A navigation card component for featured article content in mega-menu dropdowns.
|
|
3013
|
+
* Displays an image with a gradient overlay and headline text.
|
|
3014
|
+
* **Usage:**
|
|
3015
|
+
* - Place in the `sidebar` slot of NavMenuNest
|
|
3016
|
+
* - Provide imageSrc, heading, and href props
|
|
3017
|
+
* **Hover behavior:**
|
|
3018
|
+
* - Slight scale effect (1.02)
|
|
3019
|
+
* - Headline underline
|
|
912
3020
|
*/
|
|
913
|
-
interface
|
|
3021
|
+
interface AfNavCard {
|
|
914
3022
|
/**
|
|
915
|
-
*
|
|
916
|
-
* @default ''
|
|
3023
|
+
* The headline text displayed over the image
|
|
917
3024
|
*/
|
|
918
|
-
"
|
|
3025
|
+
"heading"?: string;
|
|
919
3026
|
/**
|
|
920
|
-
*
|
|
921
|
-
* @default ''
|
|
3027
|
+
* URL to navigate to when clicked
|
|
922
3028
|
*/
|
|
923
|
-
"
|
|
3029
|
+
"href"?: string;
|
|
924
3030
|
/**
|
|
925
|
-
*
|
|
3031
|
+
* Alternative text for the image
|
|
926
3032
|
* @default ''
|
|
927
3033
|
*/
|
|
928
|
-
"
|
|
3034
|
+
"imageAlt"?: string;
|
|
929
3035
|
/**
|
|
930
|
-
*
|
|
931
|
-
* @default ''
|
|
3036
|
+
* Image source URL for the background
|
|
932
3037
|
*/
|
|
933
|
-
"
|
|
3038
|
+
"imageSrc"?: string;
|
|
3039
|
+
}
|
|
3040
|
+
/**
|
|
3041
|
+
* A generic navigation item component that can be used in navigation bars, menus, and sidebars.
|
|
3042
|
+
* Supports multiple hierarchy levels, variants, and states (active, hover).
|
|
3043
|
+
*/
|
|
3044
|
+
interface AfNavItem {
|
|
934
3045
|
/**
|
|
935
|
-
*
|
|
936
|
-
* @default
|
|
3046
|
+
* Whether this nav item is currently active/selected
|
|
3047
|
+
* @default false
|
|
937
3048
|
*/
|
|
938
|
-
"
|
|
3049
|
+
"active"?: boolean;
|
|
939
3050
|
/**
|
|
940
|
-
*
|
|
941
|
-
* @default ''
|
|
3051
|
+
* Breakpoint variant for responsive styling - 'desktop': Desktop-specific styles - 'mobile': Mobile-specific styles (larger text, different spacing)
|
|
3052
|
+
* @default 'desktop'
|
|
942
3053
|
*/
|
|
943
|
-
"
|
|
3054
|
+
"breakpoint"?: 'desktop' | 'mobile';
|
|
944
3055
|
/**
|
|
945
|
-
*
|
|
946
|
-
* @default '
|
|
3056
|
+
* Visual hierarchy level of the navigation item - 'primary': Bold, main navigation (larger text, prominent styling) - 'secondary': Lighter, sub-navigation (smaller text, subtle styling)
|
|
3057
|
+
* @default 'primary'
|
|
947
3058
|
*/
|
|
948
|
-
"
|
|
3059
|
+
"hierarchy"?: 'primary' | 'secondary';
|
|
949
3060
|
/**
|
|
950
|
-
*
|
|
951
|
-
* @default true
|
|
3061
|
+
* URL to navigate to when clicked
|
|
952
3062
|
*/
|
|
953
|
-
"
|
|
3063
|
+
"href"?: string;
|
|
3064
|
+
/**
|
|
3065
|
+
* Visual variant within the hierarchy level - '01': Darker/more prominent styling - '02': Lighter/more subtle styling
|
|
3066
|
+
* @default '01'
|
|
3067
|
+
*/
|
|
3068
|
+
"variant"?: '01' | '02';
|
|
954
3069
|
}
|
|
955
3070
|
/**
|
|
956
|
-
*
|
|
957
|
-
* Used
|
|
958
|
-
* Features auto-cycling through items with a progress timer
|
|
3071
|
+
* A grouped navigation menu component with a heading.
|
|
3072
|
+
* Used in mega-menu dropdowns to group related navigation items.
|
|
959
3073
|
*/
|
|
960
|
-
interface
|
|
3074
|
+
interface AfNavMenu {
|
|
961
3075
|
/**
|
|
962
|
-
*
|
|
963
|
-
* @default
|
|
3076
|
+
* Breakpoint variant for responsive styling - 'desktop': Desktop-specific styles (right border, horizontal padding) - 'mobile': Mobile-specific styles (bottom border, vertical layout)
|
|
3077
|
+
* @default 'desktop'
|
|
964
3078
|
*/
|
|
965
|
-
"
|
|
3079
|
+
"breakpoint"?: 'desktop' | 'mobile';
|
|
966
3080
|
/**
|
|
967
|
-
*
|
|
968
|
-
* @default
|
|
3081
|
+
* Whether to display as a card with background color and rounded corners. Used for highlighted sidebar menus (e.g., solutions-alt variant).
|
|
3082
|
+
* @default false
|
|
969
3083
|
*/
|
|
970
|
-
"
|
|
3084
|
+
"cardStyle"?: boolean;
|
|
971
3085
|
/**
|
|
972
|
-
*
|
|
973
|
-
* @default 'Give AI agents your paperwork'
|
|
3086
|
+
* The heading text displayed above the navigation items
|
|
974
3087
|
*/
|
|
975
3088
|
"heading"?: string;
|
|
976
3089
|
/**
|
|
977
|
-
*
|
|
978
|
-
* @default
|
|
3090
|
+
* Whether to show the right border separator. When used inside NavMenuNest, borders are controlled by the parent. Set to true only when using NavMenu standalone.
|
|
3091
|
+
* @default false
|
|
979
3092
|
*/
|
|
980
|
-
"
|
|
3093
|
+
"showBorder"?: boolean;
|
|
981
3094
|
}
|
|
982
3095
|
/**
|
|
983
|
-
*
|
|
984
|
-
*
|
|
985
|
-
*
|
|
3096
|
+
* A mega-menu dropdown panel component.
|
|
3097
|
+
* Acts as a container for NavMenu columns and optionally a sidebar.
|
|
3098
|
+
* Used as the dropdown content for navbar items.
|
|
3099
|
+
* **Slots:**
|
|
3100
|
+
* - default: Place NavMenu components here - they will be displayed as columns
|
|
3101
|
+
* - sidebar: Optional sidebar content (NavMenu, NavCard, or any content)
|
|
3102
|
+
* **Example:**
|
|
3103
|
+
* ```html
|
|
3104
|
+
* <af-nav-menu-nest type="solutions" breakpoint="desktop">
|
|
3105
|
+
* <af-nav-menu heading="Industries">...</af-nav-menu>
|
|
3106
|
+
* <af-nav-menu heading="Use Cases">...</af-nav-menu>
|
|
3107
|
+
* <af-nav-menu heading="Documents">...</af-nav-menu>
|
|
3108
|
+
* <af-nav-menu slot="sidebar" heading="Resume Parser">...</af-nav-menu>
|
|
3109
|
+
* </af-nav-menu-nest>
|
|
3110
|
+
* ```
|
|
986
3111
|
*/
|
|
987
|
-
interface
|
|
3112
|
+
interface AfNavMenuNest {
|
|
988
3113
|
/**
|
|
989
|
-
*
|
|
990
|
-
* @default ''
|
|
3114
|
+
* Breakpoint variant for responsive styling - 'desktop': Horizontal multi-column layout - 'mobile': Vertical stacked layout
|
|
3115
|
+
* @default 'desktop'
|
|
991
3116
|
*/
|
|
992
|
-
"
|
|
3117
|
+
"breakpoint"?: 'desktop' | 'mobile';
|
|
993
3118
|
/**
|
|
994
|
-
* Whether to show the
|
|
3119
|
+
* Whether to show the heavier border on the last column (before sidebar). Set to `true` when sidebar has content, `false` when no sidebar. When `false`, the last column has no border.
|
|
995
3120
|
* @default true
|
|
996
3121
|
*/
|
|
997
|
-
"
|
|
3122
|
+
"showSidebarBorder"?: boolean;
|
|
998
3123
|
/**
|
|
999
|
-
*
|
|
1000
|
-
* @default ''
|
|
3124
|
+
* The type/variant of the mega-menu - 'solutions': Multi-column layout (3 columns + sidebar) - 'solutions-alt': Alternative solutions layout - 'resources': Multi-column layout with optional featured card - 'pricing': Simpler layout without sidebar
|
|
3125
|
+
* @default 'solutions'
|
|
1001
3126
|
*/
|
|
1002
|
-
"
|
|
3127
|
+
"type"?: 'solutions' | 'solutions-alt' | 'resources' | 'pricing';
|
|
3128
|
+
}
|
|
3129
|
+
/**
|
|
3130
|
+
* A full-width navigation bar component that provides the main site navigation.
|
|
3131
|
+
* Features a pill-shaped container with logo, navigation links, and action buttons.
|
|
3132
|
+
* Includes mobile hamburger menu and support for mega-menu dropdowns.
|
|
3133
|
+
* The logo slot can be used to provide a custom logo. If no logo is provided,
|
|
3134
|
+
* the default Affinda logo will be displayed.
|
|
3135
|
+
*/
|
|
3136
|
+
interface AfNavbar {
|
|
1003
3137
|
/**
|
|
1004
|
-
*
|
|
1005
|
-
* @default
|
|
3138
|
+
* Whether to show the default Affinda logo when no logo slot content is provided
|
|
3139
|
+
* @default true
|
|
1006
3140
|
*/
|
|
1007
|
-
"
|
|
3141
|
+
"showDefaultLogo"?: boolean;
|
|
1008
3142
|
/**
|
|
1009
|
-
*
|
|
1010
|
-
* @default true
|
|
3143
|
+
* Theme for the spacer background - should match the section below the navbar
|
|
1011
3144
|
*/
|
|
1012
|
-
"
|
|
3145
|
+
"theme"?: 'white' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
1013
3146
|
}
|
|
1014
3147
|
/**
|
|
1015
|
-
*
|
|
1016
|
-
*
|
|
3148
|
+
* NumberBadge displays numbers 1-10 in either a filled circle or text-only style.
|
|
3149
|
+
* Perfect for numbered lists, step indicators, or ordered content.
|
|
3150
|
+
* @example ```html
|
|
3151
|
+
* <af-number-badge number="1" variant="inCircle" size="48"></af-number-badge>
|
|
3152
|
+
* <af-number-badge number="5" variant="outlined" size="32"></af-number-badge>
|
|
3153
|
+
* ```
|
|
1017
3154
|
*/
|
|
1018
|
-
interface
|
|
3155
|
+
interface AfNumberBadge {
|
|
1019
3156
|
/**
|
|
1020
|
-
*
|
|
1021
|
-
* @default
|
|
3157
|
+
* The number to display (1-10)
|
|
3158
|
+
* @default 1
|
|
1022
3159
|
*/
|
|
1023
|
-
"
|
|
3160
|
+
"number"?: NumberBadgeNumber;
|
|
3161
|
+
/**
|
|
3162
|
+
* Size of the badge in pixels
|
|
3163
|
+
* @default 48
|
|
3164
|
+
*/
|
|
3165
|
+
"size"?: number;
|
|
3166
|
+
/**
|
|
3167
|
+
* Visual variant of the badge - `inCircle` - Number in filled soft-clay circle - `outlined` - Number text only in mist-green
|
|
3168
|
+
* @default 'inCircle'
|
|
3169
|
+
*/
|
|
3170
|
+
"variant"?: NumberBadgeVariant;
|
|
1024
3171
|
}
|
|
1025
3172
|
/**
|
|
1026
|
-
*
|
|
1027
|
-
*
|
|
3173
|
+
* Progress Line atom component for displaying scroll or completion progress.
|
|
3174
|
+
* Shows a horizontal bar with a filled portion indicating progress.
|
|
3175
|
+
* Used primarily for carousel scroll indicators.
|
|
1028
3176
|
*/
|
|
1029
|
-
interface
|
|
3177
|
+
interface AfProgressLine {
|
|
1030
3178
|
/**
|
|
1031
|
-
*
|
|
3179
|
+
* Orientation of the progress line. Currently only horizontal is supported.
|
|
3180
|
+
* @default 'horizontal'
|
|
3181
|
+
*/
|
|
3182
|
+
"orientation"?: 'horizontal';
|
|
3183
|
+
/**
|
|
3184
|
+
* Progress value from 0 to 1 (0 = 0%, 1 = 100%).
|
|
3185
|
+
* @default 0
|
|
3186
|
+
*/
|
|
3187
|
+
"progress"?: number;
|
|
3188
|
+
}
|
|
3189
|
+
/**
|
|
3190
|
+
* Radio component for selecting a single option from a group.
|
|
3191
|
+
*/
|
|
3192
|
+
interface AfRadio {
|
|
3193
|
+
/**
|
|
3194
|
+
* Whether the radio is checked
|
|
1032
3195
|
* @default false
|
|
1033
3196
|
*/
|
|
1034
|
-
"
|
|
3197
|
+
"checked"?: boolean;
|
|
1035
3198
|
/**
|
|
1036
|
-
*
|
|
1037
|
-
* @default
|
|
3199
|
+
* Whether the radio is disabled
|
|
3200
|
+
* @default false
|
|
1038
3201
|
*/
|
|
1039
|
-
"
|
|
3202
|
+
"disabled"?: boolean;
|
|
3203
|
+
/**
|
|
3204
|
+
* The name of the radio for form submission (radios with same name are grouped)
|
|
3205
|
+
*/
|
|
3206
|
+
"name"?: string;
|
|
3207
|
+
/**
|
|
3208
|
+
* Emitted when the radio checked state changes
|
|
3209
|
+
*/
|
|
3210
|
+
"onAfChange"?: (event: AfRadioCustomEvent<{ checked: boolean; value?: string }>) => void;
|
|
3211
|
+
/**
|
|
3212
|
+
* The value of the radio for form submission
|
|
3213
|
+
*/
|
|
3214
|
+
"value"?: string;
|
|
1040
3215
|
}
|
|
1041
|
-
|
|
3216
|
+
/**
|
|
3217
|
+
* Section layout component for consistent spacing and backgrounds.
|
|
3218
|
+
* Sets theme context for all child components via CSS custom properties.
|
|
3219
|
+
*/
|
|
3220
|
+
interface AfSection {
|
|
1042
3221
|
/**
|
|
1043
|
-
*
|
|
1044
|
-
* @default
|
|
3222
|
+
* Whether to include a Container wrapper
|
|
3223
|
+
* @default true
|
|
1045
3224
|
*/
|
|
1046
|
-
"
|
|
3225
|
+
"container"?: boolean;
|
|
1047
3226
|
/**
|
|
1048
|
-
*
|
|
1049
|
-
* @default '
|
|
3227
|
+
* Padding variant
|
|
3228
|
+
* @default 'default'
|
|
1050
3229
|
*/
|
|
1051
|
-
"
|
|
3230
|
+
"padding"?: 'tight' | 'default' | 'loose';
|
|
1052
3231
|
/**
|
|
1053
|
-
* Theme
|
|
1054
|
-
* @default '
|
|
3232
|
+
* Theme - sets background color and provides theme context to children
|
|
3233
|
+
* @default 'white'
|
|
1055
3234
|
*/
|
|
1056
|
-
"theme"?: '
|
|
3235
|
+
"theme"?: 'white' | 'inkwell' | 'mist-green' | 'soft-clay' | 'white-ivory';
|
|
1057
3236
|
}
|
|
1058
3237
|
/**
|
|
1059
|
-
*
|
|
3238
|
+
* Social media link component
|
|
3239
|
+
* Circular bordered icon link for social media profiles
|
|
1060
3240
|
*/
|
|
1061
|
-
interface
|
|
3241
|
+
interface AfSocialLink {
|
|
1062
3242
|
/**
|
|
1063
|
-
*
|
|
1064
|
-
* @default '
|
|
3243
|
+
* Link URL
|
|
3244
|
+
* @default '#'
|
|
1065
3245
|
*/
|
|
1066
|
-
"
|
|
3246
|
+
"href"?: string;
|
|
1067
3247
|
/**
|
|
1068
|
-
*
|
|
1069
|
-
* @default '
|
|
3248
|
+
* Icon type: 'linkedin', 'youtube', 'github', 'twitter', 'facebook', or 'custom'
|
|
3249
|
+
* @default 'custom'
|
|
1070
3250
|
*/
|
|
1071
|
-
"
|
|
3251
|
+
"icon"?: 'linkedin' | 'youtube' | 'github' | 'twitter' | 'facebook' | 'custom';
|
|
1072
3252
|
/**
|
|
1073
|
-
*
|
|
1074
|
-
* @default
|
|
3253
|
+
* Accessible label for the link
|
|
3254
|
+
* @default ''
|
|
3255
|
+
*/
|
|
3256
|
+
"label"?: string;
|
|
3257
|
+
}
|
|
3258
|
+
/**
|
|
3259
|
+
* Split Section component for layouts with two-tone backgrounds.
|
|
3260
|
+
* Creates a vertical split with different themes for top and bottom halves.
|
|
3261
|
+
* Useful for content that visually spans across two themed areas.
|
|
3262
|
+
* Uses a CSS linear-gradient for the split background effect.
|
|
3263
|
+
*/
|
|
3264
|
+
interface AfSplitSection {
|
|
3265
|
+
/**
|
|
3266
|
+
* Theme for the bottom half of the section
|
|
3267
|
+
* @default 'white'
|
|
3268
|
+
*/
|
|
3269
|
+
"bottomTheme"?: Theme;
|
|
3270
|
+
/**
|
|
3271
|
+
* Whether to include a Container wrapper
|
|
3272
|
+
* @default true
|
|
3273
|
+
*/
|
|
3274
|
+
"container"?: boolean;
|
|
3275
|
+
/**
|
|
3276
|
+
* Padding variant
|
|
3277
|
+
* @default 'default'
|
|
3278
|
+
*/
|
|
3279
|
+
"padding"?: 'tight' | 'default' | 'loose';
|
|
3280
|
+
/**
|
|
3281
|
+
* Theme for the top half of the section
|
|
3282
|
+
* @default 'mist-green'
|
|
1075
3283
|
*/
|
|
1076
|
-
"
|
|
3284
|
+
"topTheme"?: Theme;
|
|
1077
3285
|
}
|
|
1078
|
-
|
|
3286
|
+
/**
|
|
3287
|
+
* Switch component for toggling between on and off states.
|
|
3288
|
+
*/
|
|
3289
|
+
interface AfSwitch {
|
|
1079
3290
|
/**
|
|
1080
|
-
*
|
|
3291
|
+
* Whether the switch is active (on)
|
|
3292
|
+
* @default false
|
|
1081
3293
|
*/
|
|
1082
|
-
"
|
|
3294
|
+
"active"?: boolean;
|
|
1083
3295
|
/**
|
|
1084
|
-
* Whether the
|
|
3296
|
+
* Whether the switch is disabled
|
|
1085
3297
|
* @default false
|
|
1086
3298
|
*/
|
|
1087
3299
|
"disabled"?: boolean;
|
|
1088
3300
|
/**
|
|
1089
|
-
*
|
|
1090
|
-
*/
|
|
1091
|
-
"href"?: string;
|
|
1092
|
-
/**
|
|
1093
|
-
* The size of the button
|
|
1094
|
-
* @default 'medium'
|
|
3301
|
+
* The name of the switch for form submission
|
|
1095
3302
|
*/
|
|
1096
|
-
"
|
|
3303
|
+
"name"?: string;
|
|
1097
3304
|
/**
|
|
1098
|
-
*
|
|
1099
|
-
* @default 'button'
|
|
3305
|
+
* Emitted when the switch state changes
|
|
1100
3306
|
*/
|
|
1101
|
-
"
|
|
3307
|
+
"onAfChange"?: (event: AfSwitchCustomEvent<{ active: boolean }>) => void;
|
|
1102
3308
|
/**
|
|
1103
|
-
* The
|
|
1104
|
-
* @default 'primary'
|
|
3309
|
+
* The value of the switch for form submission
|
|
1105
3310
|
*/
|
|
1106
|
-
"
|
|
3311
|
+
"value"?: string;
|
|
1107
3312
|
}
|
|
1108
3313
|
/**
|
|
1109
|
-
*
|
|
1110
|
-
*
|
|
3314
|
+
* Tab component for use within a TabBar.
|
|
3315
|
+
* Represents an individual selectable tab with support for icons and number badges.
|
|
3316
|
+
* @example ```html
|
|
3317
|
+
* <af-tab label="Overview" active></af-tab>
|
|
3318
|
+
* <af-tab label="Details">
|
|
3319
|
+
* <af-icon slot="icon" name="document"></af-icon>
|
|
3320
|
+
* </af-tab>
|
|
3321
|
+
* <af-tab label="Step 1">
|
|
3322
|
+
* <af-number-badge slot="number" number="1"></af-number-badge>
|
|
3323
|
+
* </af-tab>
|
|
3324
|
+
* ```
|
|
1111
3325
|
*/
|
|
1112
|
-
interface
|
|
3326
|
+
interface AfTab {
|
|
1113
3327
|
/**
|
|
1114
|
-
*
|
|
1115
|
-
* @default
|
|
3328
|
+
* Whether the tab is currently active/selected
|
|
3329
|
+
* @default false
|
|
1116
3330
|
*/
|
|
1117
|
-
"
|
|
3331
|
+
"active"?: boolean;
|
|
1118
3332
|
/**
|
|
1119
|
-
*
|
|
3333
|
+
* Whether the tab is disabled
|
|
3334
|
+
* @default false
|
|
1120
3335
|
*/
|
|
1121
|
-
"
|
|
1122
|
-
}
|
|
1123
|
-
/**
|
|
1124
|
-
* A rounded container for displaying client logos
|
|
1125
|
-
*/
|
|
1126
|
-
interface AfLogoWell {
|
|
1127
|
-
}
|
|
1128
|
-
/**
|
|
1129
|
-
* A generic navigation item component that can be used in navigation bars, menus, and sidebars.
|
|
1130
|
-
* Supports multiple hierarchy levels, variants, and states (active, hover).
|
|
1131
|
-
*/
|
|
1132
|
-
interface AfNavItem {
|
|
3336
|
+
"disabled"?: boolean;
|
|
1133
3337
|
/**
|
|
1134
|
-
* Whether
|
|
3338
|
+
* Whether to show the icon slot
|
|
1135
3339
|
* @default false
|
|
1136
3340
|
*/
|
|
1137
|
-
"
|
|
3341
|
+
"displayIcon"?: boolean;
|
|
1138
3342
|
/**
|
|
1139
|
-
*
|
|
1140
|
-
* @default
|
|
3343
|
+
* Whether to show the number badge slot
|
|
3344
|
+
* @default false
|
|
1141
3345
|
*/
|
|
1142
|
-
"
|
|
3346
|
+
"displayNumber"?: boolean;
|
|
1143
3347
|
/**
|
|
1144
|
-
*
|
|
3348
|
+
* The text label for the tab
|
|
3349
|
+
* @default ''
|
|
1145
3350
|
*/
|
|
1146
|
-
"
|
|
3351
|
+
"label"?: string;
|
|
1147
3352
|
/**
|
|
1148
|
-
*
|
|
1149
|
-
* @default '01'
|
|
3353
|
+
* Emitted when the tab is clicked
|
|
1150
3354
|
*/
|
|
1151
|
-
"
|
|
1152
|
-
}
|
|
1153
|
-
/**
|
|
1154
|
-
* A full-width navigation bar component that provides the main site navigation.
|
|
1155
|
-
* Features a pill-shaped container with logo, navigation links, and action buttons.
|
|
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.
|
|
1159
|
-
*/
|
|
1160
|
-
interface AfNavbar {
|
|
3355
|
+
"onAfTabClick"?: (event: AfTabCustomEvent<{ value?: string }>) => void;
|
|
1161
3356
|
/**
|
|
1162
|
-
*
|
|
1163
|
-
* @default
|
|
3357
|
+
* Visual shape variant - `square` - Rectangular tab with bottom border indicator - `pill` - Rounded pill shape with background for active state
|
|
3358
|
+
* @default 'square'
|
|
1164
3359
|
*/
|
|
1165
|
-
"
|
|
3360
|
+
"shape"?: TabShape;
|
|
3361
|
+
/**
|
|
3362
|
+
* Unique value for the tab, used for programmatic selection
|
|
3363
|
+
*/
|
|
3364
|
+
"value"?: string;
|
|
1166
3365
|
}
|
|
1167
3366
|
/**
|
|
1168
|
-
*
|
|
3367
|
+
* TabBar component that contains and manages a group of tabs.
|
|
3368
|
+
* Provides horizontal layout, keyboard navigation, and consistent styling.
|
|
3369
|
+
* @example ```html
|
|
3370
|
+
* <af-tab-bar shape="square" breakpoint="desktop">
|
|
3371
|
+
* <af-tab label="Overview" active value="overview"></af-tab>
|
|
3372
|
+
* <af-tab label="Details" value="details"></af-tab>
|
|
3373
|
+
* <af-tab label="Settings" value="settings"></af-tab>
|
|
3374
|
+
* </af-tab-bar>
|
|
3375
|
+
* ```
|
|
1169
3376
|
*/
|
|
1170
|
-
interface
|
|
3377
|
+
interface AfTabBar {
|
|
1171
3378
|
/**
|
|
1172
|
-
*
|
|
1173
|
-
* @default '
|
|
1174
|
-
*/
|
|
1175
|
-
"background"?: 'white' | 'level1' | 'dark' | 'inkwell';
|
|
1176
|
-
/**
|
|
1177
|
-
* Whether to include a Container wrapper
|
|
1178
|
-
* @default true
|
|
3379
|
+
* Responsive breakpoint mode - `mobile` - Compact layout with smaller padding - `desktop` - Larger layout with more generous spacing
|
|
3380
|
+
* @default 'desktop'
|
|
1179
3381
|
*/
|
|
1180
|
-
"
|
|
3382
|
+
"breakpoint"?: TabBarBreakpoint;
|
|
1181
3383
|
/**
|
|
1182
|
-
*
|
|
1183
|
-
* @default '
|
|
3384
|
+
* Visual shape variant for all tabs - `square` - Rectangular tabs with bottom border indicator - `pill` - Rounded pill tabs with background for active state
|
|
3385
|
+
* @default 'square'
|
|
1184
3386
|
*/
|
|
1185
|
-
"
|
|
3387
|
+
"shape"?: TabBarShape;
|
|
1186
3388
|
}
|
|
1187
3389
|
/**
|
|
1188
|
-
*
|
|
1189
|
-
*
|
|
3390
|
+
* Tag displays a label in a styled container.
|
|
3391
|
+
* Perfect for categorization, topics, or metadata display.
|
|
3392
|
+
* @example ```html
|
|
3393
|
+
* <af-tag>AI</af-tag>
|
|
3394
|
+
* <af-tag size="small">Machine Learning</af-tag>
|
|
3395
|
+
* <af-tag size="large" variant="light">Document Processing</af-tag>
|
|
3396
|
+
* ```
|
|
1190
3397
|
*/
|
|
1191
|
-
interface
|
|
3398
|
+
interface AfTag {
|
|
1192
3399
|
/**
|
|
1193
|
-
*
|
|
1194
|
-
* @default '#'
|
|
3400
|
+
* The URL to navigate to when the tag is clicked (makes the tag a link)
|
|
1195
3401
|
*/
|
|
1196
3402
|
"href"?: string;
|
|
1197
3403
|
/**
|
|
1198
|
-
*
|
|
1199
|
-
* @default '
|
|
3404
|
+
* The size of the tag - `x-small` - Compact tag with minimal padding - `small` - Small tag with moderate padding - `large` - Large tag with generous padding
|
|
3405
|
+
* @default 'small'
|
|
1200
3406
|
*/
|
|
1201
|
-
"
|
|
3407
|
+
"size"?: TagSize;
|
|
1202
3408
|
/**
|
|
1203
|
-
*
|
|
1204
|
-
* @default ''
|
|
3409
|
+
* The visual variant of the tag - `sand` - Soft-clay/tan colored background (default) - `light` - Mist-green/light colored background
|
|
3410
|
+
* @default 'sand'
|
|
1205
3411
|
*/
|
|
1206
|
-
"
|
|
3412
|
+
"variant"?: TagVariant;
|
|
1207
3413
|
}
|
|
1208
3414
|
interface AfTestimonial {
|
|
1209
3415
|
/**
|
|
@@ -1214,10 +3420,28 @@ declare namespace LocalJSX {
|
|
|
1214
3420
|
* Background image URL for the testimonial card
|
|
1215
3421
|
*/
|
|
1216
3422
|
"backgroundImage"?: string;
|
|
3423
|
+
/**
|
|
3424
|
+
* Whether the next button is enabled
|
|
3425
|
+
* @default false
|
|
3426
|
+
*/
|
|
3427
|
+
"hasNext"?: boolean;
|
|
3428
|
+
/**
|
|
3429
|
+
* Whether the previous button is enabled
|
|
3430
|
+
* @default false
|
|
3431
|
+
*/
|
|
3432
|
+
"hasPrev"?: boolean;
|
|
1217
3433
|
/**
|
|
1218
3434
|
* Company logo URL
|
|
1219
3435
|
*/
|
|
1220
3436
|
"logoImage"?: string;
|
|
3437
|
+
/**
|
|
3438
|
+
* Emitted when the next button is clicked
|
|
3439
|
+
*/
|
|
3440
|
+
"onNavNext"?: (event: AfTestimonialCustomEvent<void>) => void;
|
|
3441
|
+
/**
|
|
3442
|
+
* Emitted when the previous button is clicked
|
|
3443
|
+
*/
|
|
3444
|
+
"onNavPrev"?: (event: AfTestimonialCustomEvent<void>) => void;
|
|
1221
3445
|
/**
|
|
1222
3446
|
* Testimonial quote text
|
|
1223
3447
|
*/
|
|
@@ -1226,7 +3450,17 @@ declare namespace LocalJSX {
|
|
|
1226
3450
|
* Link to full case study
|
|
1227
3451
|
*/
|
|
1228
3452
|
"readMoreLink"?: string;
|
|
3453
|
+
/**
|
|
3454
|
+
* Whether to show built-in navigation buttons (used when in a carousel)
|
|
3455
|
+
* @default false
|
|
3456
|
+
*/
|
|
3457
|
+
"showNavigation"?: boolean;
|
|
1229
3458
|
}
|
|
3459
|
+
/**
|
|
3460
|
+
* TestimonialCarousel - Carousel for displaying multiple customer testimonials.
|
|
3461
|
+
* Handles navigation between testimonials with progress indicator.
|
|
3462
|
+
* Wrap in Section/Container for proper page layout and theming.
|
|
3463
|
+
*/
|
|
1230
3464
|
interface AfTestimonialCarousel {
|
|
1231
3465
|
}
|
|
1232
3466
|
interface AfTestimonialStat {
|
|
@@ -1244,6 +3478,11 @@ declare namespace LocalJSX {
|
|
|
1244
3478
|
*/
|
|
1245
3479
|
"value": string;
|
|
1246
3480
|
}
|
|
3481
|
+
/**
|
|
3482
|
+
* Text/body component that inherits color from theme context.
|
|
3483
|
+
* Color is determined by the parent theme (af-section, af-hero-section, etc.)
|
|
3484
|
+
* via CSS custom properties.
|
|
3485
|
+
*/
|
|
1247
3486
|
interface AfText {
|
|
1248
3487
|
/**
|
|
1249
3488
|
* Visual alignment
|
|
@@ -1255,16 +3494,144 @@ declare namespace LocalJSX {
|
|
|
1255
3494
|
* @default 'p'
|
|
1256
3495
|
*/
|
|
1257
3496
|
"as"?: 'p' | 'span' | 'div' | 'label';
|
|
1258
|
-
/**
|
|
1259
|
-
* Theme for dark backgrounds
|
|
1260
|
-
* @default 'light'
|
|
1261
|
-
*/
|
|
1262
|
-
"theme"?: 'light' | 'dark';
|
|
1263
3497
|
/**
|
|
1264
3498
|
* Text variant
|
|
1265
3499
|
* @default 'medium'
|
|
1266
3500
|
*/
|
|
1267
|
-
"variant"?: 'xlarge' | 'large' | 'medium' | 'small'
|
|
3501
|
+
"variant"?: 'xlarge' | 'large' | 'medium' | 'small';
|
|
3502
|
+
}
|
|
3503
|
+
/**
|
|
3504
|
+
* TextImage composite component that combines typography content with an image.
|
|
3505
|
+
* Supports various layout configurations with image position and proportion options.
|
|
3506
|
+
*/
|
|
3507
|
+
interface AfTextImage {
|
|
3508
|
+
/**
|
|
3509
|
+
* Image alt text for accessibility
|
|
3510
|
+
* @default ''
|
|
3511
|
+
*/
|
|
3512
|
+
"alt"?: string;
|
|
3513
|
+
/**
|
|
3514
|
+
* Position of the image relative to the text content
|
|
3515
|
+
* @default 'right'
|
|
3516
|
+
*/
|
|
3517
|
+
"imagePosition"?: 'left' | 'right';
|
|
3518
|
+
/**
|
|
3519
|
+
* Proportion of the image in the layout - '1/3': Image takes 1/3 of the width (text takes 2/3) - '1/4': Image takes 1/4 of the width (text takes 3/4) - '100%': Image takes full width below text
|
|
3520
|
+
* @default '1/3'
|
|
3521
|
+
*/
|
|
3522
|
+
"imageProportion"?: '1/3' | '1/4' | '100%';
|
|
3523
|
+
/**
|
|
3524
|
+
* Whether to show a second typography lockup section
|
|
3525
|
+
* @default false
|
|
3526
|
+
*/
|
|
3527
|
+
"showSecondLockup"?: boolean;
|
|
3528
|
+
/**
|
|
3529
|
+
* Image source URL
|
|
3530
|
+
*/
|
|
3531
|
+
"src"?: string;
|
|
3532
|
+
}
|
|
3533
|
+
/**
|
|
3534
|
+
* TextImageNest is a layout component that arranges multiple text-image content pieces
|
|
3535
|
+
* in various grid layouts with optional footer buttons.
|
|
3536
|
+
* This component inherits theming from a parent Section or theme-providing container.
|
|
3537
|
+
* Wrap it in an af-section to apply themes.
|
|
3538
|
+
* Supports multiple layout variants:
|
|
3539
|
+
* - `single`: Full-width single item (side-by-side image + text)
|
|
3540
|
+
* - `grid-2`: 2-column grid with stacked items
|
|
3541
|
+
* - `grid-3`: 3-column grid with stacked items
|
|
3542
|
+
* - `grid-4`: 4-column grid with stacked items
|
|
3543
|
+
* - `stacked`: Alternating rows of side-by-side content
|
|
3544
|
+
*/
|
|
3545
|
+
interface AfTextImageNest {
|
|
3546
|
+
/**
|
|
3547
|
+
* Layout variant for the content grid
|
|
3548
|
+
* @default 'grid-3'
|
|
3549
|
+
*/
|
|
3550
|
+
"layout"?: 'single' | 'grid-2' | 'grid-3' | 'grid-4' | 'stacked';
|
|
3551
|
+
}
|
|
3552
|
+
/**
|
|
3553
|
+
* Textarea component for multi-line text input with label, description, and error states.
|
|
3554
|
+
*/
|
|
3555
|
+
interface AfTextarea {
|
|
3556
|
+
/**
|
|
3557
|
+
* Description text displayed below the label
|
|
3558
|
+
*/
|
|
3559
|
+
"description"?: string;
|
|
3560
|
+
/**
|
|
3561
|
+
* Whether the textarea is disabled
|
|
3562
|
+
* @default false
|
|
3563
|
+
*/
|
|
3564
|
+
"disabled"?: boolean;
|
|
3565
|
+
/**
|
|
3566
|
+
* Error message to display (also sets error state)
|
|
3567
|
+
*/
|
|
3568
|
+
"error"?: string;
|
|
3569
|
+
/**
|
|
3570
|
+
* The label text for the textarea
|
|
3571
|
+
*/
|
|
3572
|
+
"label"?: string;
|
|
3573
|
+
/**
|
|
3574
|
+
* Maximum length of input value
|
|
3575
|
+
*/
|
|
3576
|
+
"maxlength"?: number;
|
|
3577
|
+
/**
|
|
3578
|
+
* Minimum length of input value
|
|
3579
|
+
*/
|
|
3580
|
+
"minlength"?: number;
|
|
3581
|
+
/**
|
|
3582
|
+
* The name of the textarea for form submission
|
|
3583
|
+
*/
|
|
3584
|
+
"name"?: string;
|
|
3585
|
+
/**
|
|
3586
|
+
* Emitted when the textarea loses focus
|
|
3587
|
+
*/
|
|
3588
|
+
"onAfBlur"?: (event: AfTextareaCustomEvent<void>) => void;
|
|
3589
|
+
/**
|
|
3590
|
+
* Emitted when the textarea gains focus
|
|
3591
|
+
*/
|
|
3592
|
+
"onAfFocus"?: (event: AfTextareaCustomEvent<void>) => void;
|
|
3593
|
+
/**
|
|
3594
|
+
* Emitted when the info icon is clicked
|
|
3595
|
+
*/
|
|
3596
|
+
"onAfInfoClick"?: (event: AfTextareaCustomEvent<void>) => void;
|
|
3597
|
+
/**
|
|
3598
|
+
* Emitted when the textarea value changes
|
|
3599
|
+
*/
|
|
3600
|
+
"onAfInput"?: (event: AfTextareaCustomEvent<{ value: string }>) => void;
|
|
3601
|
+
/**
|
|
3602
|
+
* Placeholder text for the textarea
|
|
3603
|
+
*/
|
|
3604
|
+
"placeholder"?: string;
|
|
3605
|
+
/**
|
|
3606
|
+
* Whether the textarea is read-only
|
|
3607
|
+
* @default false
|
|
3608
|
+
*/
|
|
3609
|
+
"readonly"?: boolean;
|
|
3610
|
+
/**
|
|
3611
|
+
* Whether the textarea is required
|
|
3612
|
+
* @default false
|
|
3613
|
+
*/
|
|
3614
|
+
"required"?: boolean;
|
|
3615
|
+
/**
|
|
3616
|
+
* Whether the textarea is resizable
|
|
3617
|
+
* @default 'vertical'
|
|
3618
|
+
*/
|
|
3619
|
+
"resize"?: 'none' | 'vertical' | 'horizontal' | 'both';
|
|
3620
|
+
/**
|
|
3621
|
+
* Number of visible rows (height)
|
|
3622
|
+
* @default 4
|
|
3623
|
+
*/
|
|
3624
|
+
"rows"?: number;
|
|
3625
|
+
/**
|
|
3626
|
+
* Whether to show the info icon next to the label
|
|
3627
|
+
* @default false
|
|
3628
|
+
*/
|
|
3629
|
+
"showInfoIcon"?: boolean;
|
|
3630
|
+
/**
|
|
3631
|
+
* The current value of the textarea
|
|
3632
|
+
* @default ''
|
|
3633
|
+
*/
|
|
3634
|
+
"value"?: string;
|
|
1268
3635
|
}
|
|
1269
3636
|
interface AfTypographyLockup {
|
|
1270
3637
|
/**
|
|
@@ -1292,34 +3659,98 @@ declare namespace LocalJSX {
|
|
|
1292
3659
|
*/
|
|
1293
3660
|
"textAlignment"?: 'left' | 'center';
|
|
1294
3661
|
}
|
|
3662
|
+
/**
|
|
3663
|
+
* Video Container molecule component for showcasing video content.
|
|
3664
|
+
* Uses slots for typography lockups above and below the video.
|
|
3665
|
+
* When used inside af-split-section, the top slot inherits the top theme
|
|
3666
|
+
* and the bottom slot inherits the bottom theme for correct colors.
|
|
3667
|
+
* @example ```html
|
|
3668
|
+
* <af-split-section top-theme="mist-green" bottom-theme="white">
|
|
3669
|
+
* <af-video-container video-thumbnail-url="/path/to/thumbnail.jpg">
|
|
3670
|
+
* <af-typography-lockup slot="top" text-alignment="center" heading-size="2">
|
|
3671
|
+
* <af-heading level="2">Watch our product demo</af-heading>
|
|
3672
|
+
* <af-text slot="description">See how Affinda transforms your workflow</af-text>
|
|
3673
|
+
* <af-button slot="buttons" variant="primary">Get Started</af-button>
|
|
3674
|
+
* </af-typography-lockup>
|
|
3675
|
+
* </af-video-container>
|
|
3676
|
+
* </af-split-section>
|
|
3677
|
+
* ```
|
|
3678
|
+
*/
|
|
3679
|
+
interface AfVideoContainer {
|
|
3680
|
+
/**
|
|
3681
|
+
* Emitted when the play button is clicked. Use this to handle video playback (e.g., open modal, embed player). If videoUrl is set and no handler prevents default, opens URL in new tab.
|
|
3682
|
+
*/
|
|
3683
|
+
"onPlayClick"?: (event: AfVideoContainerCustomEvent<{ videoUrl: string }>) => void;
|
|
3684
|
+
/**
|
|
3685
|
+
* Video alt text for accessibility
|
|
3686
|
+
* @default 'Video thumbnail'
|
|
3687
|
+
*/
|
|
3688
|
+
"videoAlt"?: string;
|
|
3689
|
+
/**
|
|
3690
|
+
* Video thumbnail image URL
|
|
3691
|
+
* @default ''
|
|
3692
|
+
*/
|
|
3693
|
+
"videoThumbnailUrl"?: string;
|
|
3694
|
+
/**
|
|
3695
|
+
* Optional video URL for play button link
|
|
3696
|
+
* @default ''
|
|
3697
|
+
*/
|
|
3698
|
+
"videoUrl"?: string;
|
|
3699
|
+
}
|
|
1295
3700
|
interface IntrinsicElements {
|
|
1296
3701
|
"af-aspect-ratio": AfAspectRatio;
|
|
1297
3702
|
"af-button": AfButton;
|
|
1298
3703
|
"af-button-group": AfButtonGroup;
|
|
1299
3704
|
"af-card": AfCard;
|
|
3705
|
+
"af-checkbox": AfCheckbox;
|
|
1300
3706
|
"af-client-carousel": AfClientCarousel;
|
|
1301
3707
|
"af-color-swatch": AfColorSwatch;
|
|
1302
3708
|
"af-contact-item": AfContactItem;
|
|
1303
3709
|
"af-container": AfContainer;
|
|
1304
|
-
"af-cta-section": AfCtaSection;
|
|
1305
3710
|
"af-feature-accordion": AfFeatureAccordion;
|
|
3711
|
+
"af-feature-card": AfFeatureCard;
|
|
3712
|
+
"af-feature-grid": AfFeatureGrid;
|
|
3713
|
+
"af-fieldset": AfFieldset;
|
|
1306
3714
|
"af-footer": AfFooter;
|
|
1307
3715
|
"af-footer-column": AfFooterColumn;
|
|
1308
3716
|
"af-footer-link": AfFooterLink;
|
|
3717
|
+
"af-grid-callout": AfGridCallout;
|
|
1309
3718
|
"af-heading": AfHeading;
|
|
1310
3719
|
"af-hero-section": AfHeroSection;
|
|
3720
|
+
"af-icon": AfIcon;
|
|
3721
|
+
"af-icon-box": AfIconBox;
|
|
1311
3722
|
"af-icon-button": AfIconButton;
|
|
3723
|
+
"af-icon-text": AfIconText;
|
|
3724
|
+
"af-illustrated-card": AfIllustratedCard;
|
|
3725
|
+
"af-image": AfImage;
|
|
3726
|
+
"af-in-page-banner": AfInPageBanner;
|
|
3727
|
+
"af-input": AfInput;
|
|
1312
3728
|
"af-logo": AfLogo;
|
|
1313
3729
|
"af-logo-well": AfLogoWell;
|
|
3730
|
+
"af-nav-card": AfNavCard;
|
|
1314
3731
|
"af-nav-item": AfNavItem;
|
|
3732
|
+
"af-nav-menu": AfNavMenu;
|
|
3733
|
+
"af-nav-menu-nest": AfNavMenuNest;
|
|
1315
3734
|
"af-navbar": AfNavbar;
|
|
3735
|
+
"af-number-badge": AfNumberBadge;
|
|
3736
|
+
"af-progress-line": AfProgressLine;
|
|
3737
|
+
"af-radio": AfRadio;
|
|
1316
3738
|
"af-section": AfSection;
|
|
1317
3739
|
"af-social-link": AfSocialLink;
|
|
3740
|
+
"af-split-section": AfSplitSection;
|
|
3741
|
+
"af-switch": AfSwitch;
|
|
3742
|
+
"af-tab": AfTab;
|
|
3743
|
+
"af-tab-bar": AfTabBar;
|
|
3744
|
+
"af-tag": AfTag;
|
|
1318
3745
|
"af-testimonial": AfTestimonial;
|
|
1319
3746
|
"af-testimonial-carousel": AfTestimonialCarousel;
|
|
1320
3747
|
"af-testimonial-stat": AfTestimonialStat;
|
|
1321
3748
|
"af-text": AfText;
|
|
3749
|
+
"af-text-image": AfTextImage;
|
|
3750
|
+
"af-text-image-nest": AfTextImageNest;
|
|
3751
|
+
"af-textarea": AfTextarea;
|
|
1322
3752
|
"af-typography-lockup": AfTypographyLockup;
|
|
3753
|
+
"af-video-container": AfVideoContainer;
|
|
1323
3754
|
}
|
|
1324
3755
|
}
|
|
1325
3756
|
export { LocalJSX as JSX };
|
|
@@ -1331,11 +3762,30 @@ declare module "@stencil/core" {
|
|
|
1331
3762
|
* Useful for images, videos, or any content that needs to maintain specific proportions.
|
|
1332
3763
|
*/
|
|
1333
3764
|
"af-aspect-ratio": LocalJSX.AfAspectRatio & JSXBase.HTMLAttributes<HTMLAfAspectRatioElement>;
|
|
3765
|
+
/**
|
|
3766
|
+
* Button component that inherits colors from theme context.
|
|
3767
|
+
* Colors are determined by the parent theme (af-section, af-hero-section, etc.)
|
|
3768
|
+
* via CSS custom properties.
|
|
3769
|
+
*/
|
|
1334
3770
|
"af-button": LocalJSX.AfButton & JSXBase.HTMLAttributes<HTMLAfButtonElement>;
|
|
1335
3771
|
"af-button-group": LocalJSX.AfButtonGroup & JSXBase.HTMLAttributes<HTMLAfButtonGroupElement>;
|
|
3772
|
+
/**
|
|
3773
|
+
* Card atom component - a themed container with consistent styling.
|
|
3774
|
+
* Provides theme context to children via CSS custom properties.
|
|
3775
|
+
* This is a base building block used by molecule components like
|
|
3776
|
+
* af-feature-card and af-illustrated-card.
|
|
3777
|
+
*/
|
|
1336
3778
|
"af-card": LocalJSX.AfCard & JSXBase.HTMLAttributes<HTMLAfCardElement>;
|
|
1337
3779
|
/**
|
|
1338
|
-
*
|
|
3780
|
+
* Checkbox component for selecting multiple options.
|
|
3781
|
+
* Supports checked, unchecked, and indeterminate states.
|
|
3782
|
+
*/
|
|
3783
|
+
"af-checkbox": LocalJSX.AfCheckbox & JSXBase.HTMLAttributes<HTMLAfCheckboxElement>;
|
|
3784
|
+
/**
|
|
3785
|
+
* Infinite scrolling carousel for client logos.
|
|
3786
|
+
* This is a section-level component that spans full width.
|
|
3787
|
+
* It supports theming via the `theme` prop.
|
|
3788
|
+
* For headlines, use a separate TypographyLockup or Heading component above this carousel.
|
|
1339
3789
|
*/
|
|
1340
3790
|
"af-client-carousel": LocalJSX.AfClientCarousel & JSXBase.HTMLAttributes<HTMLAfClientCarouselElement>;
|
|
1341
3791
|
"af-color-swatch": LocalJSX.AfColorSwatch & JSXBase.HTMLAttributes<HTMLAfColorSwatchElement>;
|
|
@@ -1350,16 +3800,38 @@ declare module "@stencil/core" {
|
|
|
1350
3800
|
*/
|
|
1351
3801
|
"af-container": LocalJSX.AfContainer & JSXBase.HTMLAttributes<HTMLAfContainerElement>;
|
|
1352
3802
|
/**
|
|
1353
|
-
*
|
|
1354
|
-
*
|
|
3803
|
+
* Feature accordion component with expandable items and accompanying image.
|
|
3804
|
+
* Used for showcasing product features with visual examples.
|
|
3805
|
+
* Features auto-cycling through items with a progress timer.
|
|
3806
|
+
* **Must be wrapped in a Section component** to inherit theme styling.
|
|
3807
|
+
* The component automatically adapts colors based on the parent Section's theme.
|
|
3808
|
+
* @example ```tsx
|
|
3809
|
+
* <Section theme="inkwell">
|
|
3810
|
+
* <FeatureAccordion heading="Features" items={...} />
|
|
3811
|
+
* </Section>
|
|
3812
|
+
* ```
|
|
1355
3813
|
*/
|
|
1356
|
-
"af-
|
|
3814
|
+
"af-feature-accordion": LocalJSX.AfFeatureAccordion & JSXBase.HTMLAttributes<HTMLAfFeatureAccordionElement>;
|
|
1357
3815
|
/**
|
|
1358
|
-
* Feature
|
|
1359
|
-
*
|
|
1360
|
-
*
|
|
3816
|
+
* Feature Card molecule component that combines a card with an image.
|
|
3817
|
+
* Two layout modes:
|
|
3818
|
+
* - `standard`: Theme background with text at top and image at bottom
|
|
3819
|
+
* - `full-bleed`: Image covers entire card with text overlay at bottom
|
|
3820
|
+
* Responsive: Automatically adapts to mobile viewport (≤768px).
|
|
3821
|
+
* Uses af-card atom internally and af-typography-lockup for text hierarchy.
|
|
1361
3822
|
*/
|
|
1362
|
-
"af-feature-
|
|
3823
|
+
"af-feature-card": LocalJSX.AfFeatureCard & JSXBase.HTMLAttributes<HTMLAfFeatureCardElement>;
|
|
3824
|
+
/**
|
|
3825
|
+
* Feature Grid component - CSS Grid container for feature cards.
|
|
3826
|
+
* Desktop: Configurable columns (1-4)
|
|
3827
|
+
* Mobile: List (stacked), horizontal scroll, or 2-column grid
|
|
3828
|
+
*/
|
|
3829
|
+
"af-feature-grid": LocalJSX.AfFeatureGrid & JSXBase.HTMLAttributes<HTMLAfFeatureGridElement>;
|
|
3830
|
+
/**
|
|
3831
|
+
* Fieldset component for grouping related form controls.
|
|
3832
|
+
* Supports vertical and horizontal layouts with an optional legend/heading.
|
|
3833
|
+
*/
|
|
3834
|
+
"af-fieldset": LocalJSX.AfFieldset & JSXBase.HTMLAttributes<HTMLAfFieldsetElement>;
|
|
1363
3835
|
/**
|
|
1364
3836
|
* Footer component for marketing pages
|
|
1365
3837
|
* Provides a flexible, slot-based layout for footer content
|
|
@@ -1376,36 +3848,193 @@ declare module "@stencil/core" {
|
|
|
1376
3848
|
* Styled link for use in footer navigation columns
|
|
1377
3849
|
*/
|
|
1378
3850
|
"af-footer-link": LocalJSX.AfFooterLink & JSXBase.HTMLAttributes<HTMLAfFooterLinkElement>;
|
|
3851
|
+
/**
|
|
3852
|
+
* GridCallout organism - a marketing section combining an optional pill-shaped image
|
|
3853
|
+
* with a grid of IconText feature items.
|
|
3854
|
+
* Composes:
|
|
3855
|
+
* - Pill-shaped image container (optional)
|
|
3856
|
+
* - Heading via af-typography-lockup
|
|
3857
|
+
* - Grid of af-icon-text items
|
|
3858
|
+
* - Optional CTA button
|
|
3859
|
+
* Inherits theme colors from parent af-section via CSS custom properties.
|
|
3860
|
+
* @example ```html
|
|
3861
|
+
* <af-section theme="mist-green">
|
|
3862
|
+
* <af-grid-callout image-src="/team.jpg" image-alt="Team photo">
|
|
3863
|
+
* Affinda blends AI and engineering
|
|
3864
|
+
* <span slot="description">Optional description text.</span>
|
|
3865
|
+
*
|
|
3866
|
+
* <af-icon-text slot="items" icon="settings">
|
|
3867
|
+
* Feature One
|
|
3868
|
+
* <span slot="description">Feature description.</span>
|
|
3869
|
+
* </af-icon-text>
|
|
3870
|
+
*
|
|
3871
|
+
* <af-button slot="cta" variant="primary">Learn more</af-button>
|
|
3872
|
+
* </af-grid-callout>
|
|
3873
|
+
* </af-section>
|
|
3874
|
+
* ```
|
|
3875
|
+
*/
|
|
3876
|
+
"af-grid-callout": LocalJSX.AfGridCallout & JSXBase.HTMLAttributes<HTMLAfGridCalloutElement>;
|
|
3877
|
+
/**
|
|
3878
|
+
* Heading component that inherits color from theme context.
|
|
3879
|
+
* Color is determined by the parent theme (af-section, af-hero-section, etc.)
|
|
3880
|
+
* via CSS custom properties.
|
|
3881
|
+
*/
|
|
1379
3882
|
"af-heading": LocalJSX.AfHeading & JSXBase.HTMLAttributes<HTMLAfHeadingElement>;
|
|
1380
3883
|
/**
|
|
1381
|
-
* Hero section component for marketing pages
|
|
3884
|
+
* Hero section component for marketing pages.
|
|
3885
|
+
* Uses TypographyLockup internally to handle heading, description, and button layout.
|
|
3886
|
+
* Sets theme context for all child components via CSS custom properties.
|
|
1382
3887
|
*/
|
|
1383
3888
|
"af-hero-section": LocalJSX.AfHeroSection & JSXBase.HTMLAttributes<HTMLAfHeroSectionElement>;
|
|
3889
|
+
/**
|
|
3890
|
+
* Icon component that displays SVG icons from the Affinda icon library.
|
|
3891
|
+
* Icons inherit color from their parent via currentColor.
|
|
3892
|
+
* Icons are bundled inline, so no runtime fetching is required.
|
|
3893
|
+
* This ensures icons work reliably in all bundler contexts.
|
|
3894
|
+
* @example ```html
|
|
3895
|
+
* <af-icon name="arrow-right" size="24"></af-icon>
|
|
3896
|
+
* ```
|
|
3897
|
+
*/
|
|
3898
|
+
"af-icon": LocalJSX.AfIcon & JSXBase.HTMLAttributes<HTMLAfIconElement>;
|
|
3899
|
+
/**
|
|
3900
|
+
* IconBox atom - a themed container for displaying an icon with a rounded background.
|
|
3901
|
+
* Inherits theme colors from parent Section via CSS custom properties:
|
|
3902
|
+
* - Background uses `--af-background-contrast`
|
|
3903
|
+
* - Icon color uses `--af-background-icon-default`
|
|
3904
|
+
* @example ```html
|
|
3905
|
+
* <af-icon-box icon="settings" size="default"></af-icon-box>
|
|
3906
|
+
* ```
|
|
3907
|
+
*/
|
|
3908
|
+
"af-icon-box": LocalJSX.AfIconBox & JSXBase.HTMLAttributes<HTMLAfIconBoxElement>;
|
|
1384
3909
|
"af-icon-button": LocalJSX.AfIconButton & JSXBase.HTMLAttributes<HTMLAfIconButtonElement>;
|
|
1385
3910
|
/**
|
|
1386
|
-
*
|
|
1387
|
-
*
|
|
3911
|
+
* IconText molecule - combines an IconBox with a TypographyLockup for feature items.
|
|
3912
|
+
* Composes:
|
|
3913
|
+
* - af-icon-box: Themed icon container
|
|
3914
|
+
* - af-typography-lockup: Heading, description, and button slots
|
|
3915
|
+
* Inherits theme colors from parent Section via CSS custom properties.
|
|
3916
|
+
* @example ```html
|
|
3917
|
+
* <af-icon-text icon="settings" heading-size="4">
|
|
3918
|
+
* Feature Heading
|
|
3919
|
+
* <span slot="description">Feature description text.</span>
|
|
3920
|
+
* <af-button slot="buttons" variant="tertiary">Learn more</af-button>
|
|
3921
|
+
* </af-icon-text>
|
|
3922
|
+
* ```
|
|
3923
|
+
*/
|
|
3924
|
+
"af-icon-text": LocalJSX.AfIconText & JSXBase.HTMLAttributes<HTMLAfIconTextElement>;
|
|
3925
|
+
/**
|
|
3926
|
+
* Illustrated Card molecule component that combines a card with an illustration.
|
|
3927
|
+
* Uses a theme background with text at top and an illustration from
|
|
3928
|
+
* @affinda /illustrations at the bottom.
|
|
3929
|
+
* Uses af-card atom internally and af-typography-lockup for text hierarchy.
|
|
3930
|
+
*/
|
|
3931
|
+
"af-illustrated-card": LocalJSX.AfIllustratedCard & JSXBase.HTMLAttributes<HTMLAfIllustratedCardElement>;
|
|
3932
|
+
/**
|
|
3933
|
+
* A styled image container with rounded corners and a subtle inset border.
|
|
3934
|
+
* Provides consistent image styling across the design system.
|
|
3935
|
+
*/
|
|
3936
|
+
"af-image": LocalJSX.AfImage & JSXBase.HTMLAttributes<HTMLAfImageElement>;
|
|
3937
|
+
/**
|
|
3938
|
+
* In-page banner component for call-to-action content.
|
|
3939
|
+
* A banner card with illustration, heading, description, and action buttons.
|
|
3940
|
+
* Typically placed inside a neutral (white) Section to show off its themed background.
|
|
3941
|
+
* The component has its own theme prop to control its background color and styling.
|
|
3942
|
+
* **Illustration Usage:**
|
|
3943
|
+
* Use `illustrationUrl` to pass an illustration image URL. For theme-matched illustrations,
|
|
3944
|
+
* use `getIllustrationUrlByScene()` from `@affinda/illustrations` in your consuming app:
|
|
3945
|
+
* ```tsx
|
|
3946
|
+
* import { getIllustrationUrlByScene } from '@affinda/illustrations';
|
|
3947
|
+
* <InPageBanner
|
|
3948
|
+
* theme="inkwell"
|
|
3949
|
+
* illustrationUrl={getIllustrationUrlByScene('automate', 'inkwell')}
|
|
3950
|
+
* ...
|
|
3951
|
+
* />
|
|
3952
|
+
* ```
|
|
3953
|
+
* Alternatively, use the `illustration` slot for completely custom content.
|
|
3954
|
+
*/
|
|
3955
|
+
"af-in-page-banner": LocalJSX.AfInPageBanner & JSXBase.HTMLAttributes<HTMLAfInPageBannerElement>;
|
|
3956
|
+
/**
|
|
3957
|
+
* Input field component with label, description, and error states.
|
|
3958
|
+
* Supports various input types and validation states.
|
|
3959
|
+
*/
|
|
3960
|
+
"af-input": LocalJSX.AfInput & JSXBase.HTMLAttributes<HTMLAfInputElement>;
|
|
3961
|
+
/**
|
|
3962
|
+
* Affinda logo component
|
|
1388
3963
|
*/
|
|
1389
3964
|
"af-logo": LocalJSX.AfLogo & JSXBase.HTMLAttributes<HTMLAfLogoElement>;
|
|
1390
3965
|
/**
|
|
1391
3966
|
* A rounded container for displaying client logos
|
|
1392
3967
|
*/
|
|
1393
3968
|
"af-logo-well": LocalJSX.AfLogoWell & JSXBase.HTMLAttributes<HTMLAfLogoWellElement>;
|
|
3969
|
+
/**
|
|
3970
|
+
* A navigation card component for featured article content in mega-menu dropdowns.
|
|
3971
|
+
* Displays an image with a gradient overlay and headline text.
|
|
3972
|
+
* **Usage:**
|
|
3973
|
+
* - Place in the `sidebar` slot of NavMenuNest
|
|
3974
|
+
* - Provide imageSrc, heading, and href props
|
|
3975
|
+
* **Hover behavior:**
|
|
3976
|
+
* - Slight scale effect (1.02)
|
|
3977
|
+
* - Headline underline
|
|
3978
|
+
*/
|
|
3979
|
+
"af-nav-card": LocalJSX.AfNavCard & JSXBase.HTMLAttributes<HTMLAfNavCardElement>;
|
|
1394
3980
|
/**
|
|
1395
3981
|
* A generic navigation item component that can be used in navigation bars, menus, and sidebars.
|
|
1396
3982
|
* Supports multiple hierarchy levels, variants, and states (active, hover).
|
|
1397
3983
|
*/
|
|
1398
3984
|
"af-nav-item": LocalJSX.AfNavItem & JSXBase.HTMLAttributes<HTMLAfNavItemElement>;
|
|
3985
|
+
/**
|
|
3986
|
+
* A grouped navigation menu component with a heading.
|
|
3987
|
+
* Used in mega-menu dropdowns to group related navigation items.
|
|
3988
|
+
*/
|
|
3989
|
+
"af-nav-menu": LocalJSX.AfNavMenu & JSXBase.HTMLAttributes<HTMLAfNavMenuElement>;
|
|
3990
|
+
/**
|
|
3991
|
+
* A mega-menu dropdown panel component.
|
|
3992
|
+
* Acts as a container for NavMenu columns and optionally a sidebar.
|
|
3993
|
+
* Used as the dropdown content for navbar items.
|
|
3994
|
+
* **Slots:**
|
|
3995
|
+
* - default: Place NavMenu components here - they will be displayed as columns
|
|
3996
|
+
* - sidebar: Optional sidebar content (NavMenu, NavCard, or any content)
|
|
3997
|
+
* **Example:**
|
|
3998
|
+
* ```html
|
|
3999
|
+
* <af-nav-menu-nest type="solutions" breakpoint="desktop">
|
|
4000
|
+
* <af-nav-menu heading="Industries">...</af-nav-menu>
|
|
4001
|
+
* <af-nav-menu heading="Use Cases">...</af-nav-menu>
|
|
4002
|
+
* <af-nav-menu heading="Documents">...</af-nav-menu>
|
|
4003
|
+
* <af-nav-menu slot="sidebar" heading="Resume Parser">...</af-nav-menu>
|
|
4004
|
+
* </af-nav-menu-nest>
|
|
4005
|
+
* ```
|
|
4006
|
+
*/
|
|
4007
|
+
"af-nav-menu-nest": LocalJSX.AfNavMenuNest & JSXBase.HTMLAttributes<HTMLAfNavMenuNestElement>;
|
|
1399
4008
|
/**
|
|
1400
4009
|
* A full-width navigation bar component that provides the main site navigation.
|
|
1401
4010
|
* Features a pill-shaped container with logo, navigation links, and action buttons.
|
|
1402
|
-
* Includes mobile hamburger menu.
|
|
4011
|
+
* Includes mobile hamburger menu and support for mega-menu dropdowns.
|
|
1403
4012
|
* The logo slot can be used to provide a custom logo. If no logo is provided,
|
|
1404
4013
|
* the default Affinda logo will be displayed.
|
|
1405
4014
|
*/
|
|
1406
4015
|
"af-navbar": LocalJSX.AfNavbar & JSXBase.HTMLAttributes<HTMLAfNavbarElement>;
|
|
1407
4016
|
/**
|
|
1408
|
-
*
|
|
4017
|
+
* NumberBadge displays numbers 1-10 in either a filled circle or text-only style.
|
|
4018
|
+
* Perfect for numbered lists, step indicators, or ordered content.
|
|
4019
|
+
* @example ```html
|
|
4020
|
+
* <af-number-badge number="1" variant="inCircle" size="48"></af-number-badge>
|
|
4021
|
+
* <af-number-badge number="5" variant="outlined" size="32"></af-number-badge>
|
|
4022
|
+
* ```
|
|
4023
|
+
*/
|
|
4024
|
+
"af-number-badge": LocalJSX.AfNumberBadge & JSXBase.HTMLAttributes<HTMLAfNumberBadgeElement>;
|
|
4025
|
+
/**
|
|
4026
|
+
* Progress Line atom component for displaying scroll or completion progress.
|
|
4027
|
+
* Shows a horizontal bar with a filled portion indicating progress.
|
|
4028
|
+
* Used primarily for carousel scroll indicators.
|
|
4029
|
+
*/
|
|
4030
|
+
"af-progress-line": LocalJSX.AfProgressLine & JSXBase.HTMLAttributes<HTMLAfProgressLineElement>;
|
|
4031
|
+
/**
|
|
4032
|
+
* Radio component for selecting a single option from a group.
|
|
4033
|
+
*/
|
|
4034
|
+
"af-radio": LocalJSX.AfRadio & JSXBase.HTMLAttributes<HTMLAfRadioElement>;
|
|
4035
|
+
/**
|
|
4036
|
+
* Section layout component for consistent spacing and backgrounds.
|
|
4037
|
+
* Sets theme context for all child components via CSS custom properties.
|
|
1409
4038
|
*/
|
|
1410
4039
|
"af-section": LocalJSX.AfSection & JSXBase.HTMLAttributes<HTMLAfSectionElement>;
|
|
1411
4040
|
/**
|
|
@@ -1413,11 +4042,108 @@ declare module "@stencil/core" {
|
|
|
1413
4042
|
* Circular bordered icon link for social media profiles
|
|
1414
4043
|
*/
|
|
1415
4044
|
"af-social-link": LocalJSX.AfSocialLink & JSXBase.HTMLAttributes<HTMLAfSocialLinkElement>;
|
|
4045
|
+
/**
|
|
4046
|
+
* Split Section component for layouts with two-tone backgrounds.
|
|
4047
|
+
* Creates a vertical split with different themes for top and bottom halves.
|
|
4048
|
+
* Useful for content that visually spans across two themed areas.
|
|
4049
|
+
* Uses a CSS linear-gradient for the split background effect.
|
|
4050
|
+
*/
|
|
4051
|
+
"af-split-section": LocalJSX.AfSplitSection & JSXBase.HTMLAttributes<HTMLAfSplitSectionElement>;
|
|
4052
|
+
/**
|
|
4053
|
+
* Switch component for toggling between on and off states.
|
|
4054
|
+
*/
|
|
4055
|
+
"af-switch": LocalJSX.AfSwitch & JSXBase.HTMLAttributes<HTMLAfSwitchElement>;
|
|
4056
|
+
/**
|
|
4057
|
+
* Tab component for use within a TabBar.
|
|
4058
|
+
* Represents an individual selectable tab with support for icons and number badges.
|
|
4059
|
+
* @example ```html
|
|
4060
|
+
* <af-tab label="Overview" active></af-tab>
|
|
4061
|
+
* <af-tab label="Details">
|
|
4062
|
+
* <af-icon slot="icon" name="document"></af-icon>
|
|
4063
|
+
* </af-tab>
|
|
4064
|
+
* <af-tab label="Step 1">
|
|
4065
|
+
* <af-number-badge slot="number" number="1"></af-number-badge>
|
|
4066
|
+
* </af-tab>
|
|
4067
|
+
* ```
|
|
4068
|
+
*/
|
|
4069
|
+
"af-tab": LocalJSX.AfTab & JSXBase.HTMLAttributes<HTMLAfTabElement>;
|
|
4070
|
+
/**
|
|
4071
|
+
* TabBar component that contains and manages a group of tabs.
|
|
4072
|
+
* Provides horizontal layout, keyboard navigation, and consistent styling.
|
|
4073
|
+
* @example ```html
|
|
4074
|
+
* <af-tab-bar shape="square" breakpoint="desktop">
|
|
4075
|
+
* <af-tab label="Overview" active value="overview"></af-tab>
|
|
4076
|
+
* <af-tab label="Details" value="details"></af-tab>
|
|
4077
|
+
* <af-tab label="Settings" value="settings"></af-tab>
|
|
4078
|
+
* </af-tab-bar>
|
|
4079
|
+
* ```
|
|
4080
|
+
*/
|
|
4081
|
+
"af-tab-bar": LocalJSX.AfTabBar & JSXBase.HTMLAttributes<HTMLAfTabBarElement>;
|
|
4082
|
+
/**
|
|
4083
|
+
* Tag displays a label in a styled container.
|
|
4084
|
+
* Perfect for categorization, topics, or metadata display.
|
|
4085
|
+
* @example ```html
|
|
4086
|
+
* <af-tag>AI</af-tag>
|
|
4087
|
+
* <af-tag size="small">Machine Learning</af-tag>
|
|
4088
|
+
* <af-tag size="large" variant="light">Document Processing</af-tag>
|
|
4089
|
+
* ```
|
|
4090
|
+
*/
|
|
4091
|
+
"af-tag": LocalJSX.AfTag & JSXBase.HTMLAttributes<HTMLAfTagElement>;
|
|
1416
4092
|
"af-testimonial": LocalJSX.AfTestimonial & JSXBase.HTMLAttributes<HTMLAfTestimonialElement>;
|
|
4093
|
+
/**
|
|
4094
|
+
* TestimonialCarousel - Carousel for displaying multiple customer testimonials.
|
|
4095
|
+
* Handles navigation between testimonials with progress indicator.
|
|
4096
|
+
* Wrap in Section/Container for proper page layout and theming.
|
|
4097
|
+
*/
|
|
1417
4098
|
"af-testimonial-carousel": LocalJSX.AfTestimonialCarousel & JSXBase.HTMLAttributes<HTMLAfTestimonialCarouselElement>;
|
|
1418
4099
|
"af-testimonial-stat": LocalJSX.AfTestimonialStat & JSXBase.HTMLAttributes<HTMLAfTestimonialStatElement>;
|
|
4100
|
+
/**
|
|
4101
|
+
* Text/body component that inherits color from theme context.
|
|
4102
|
+
* Color is determined by the parent theme (af-section, af-hero-section, etc.)
|
|
4103
|
+
* via CSS custom properties.
|
|
4104
|
+
*/
|
|
1419
4105
|
"af-text": LocalJSX.AfText & JSXBase.HTMLAttributes<HTMLAfTextElement>;
|
|
4106
|
+
/**
|
|
4107
|
+
* TextImage composite component that combines typography content with an image.
|
|
4108
|
+
* Supports various layout configurations with image position and proportion options.
|
|
4109
|
+
*/
|
|
4110
|
+
"af-text-image": LocalJSX.AfTextImage & JSXBase.HTMLAttributes<HTMLAfTextImageElement>;
|
|
4111
|
+
/**
|
|
4112
|
+
* TextImageNest is a layout component that arranges multiple text-image content pieces
|
|
4113
|
+
* in various grid layouts with optional footer buttons.
|
|
4114
|
+
* This component inherits theming from a parent Section or theme-providing container.
|
|
4115
|
+
* Wrap it in an af-section to apply themes.
|
|
4116
|
+
* Supports multiple layout variants:
|
|
4117
|
+
* - `single`: Full-width single item (side-by-side image + text)
|
|
4118
|
+
* - `grid-2`: 2-column grid with stacked items
|
|
4119
|
+
* - `grid-3`: 3-column grid with stacked items
|
|
4120
|
+
* - `grid-4`: 4-column grid with stacked items
|
|
4121
|
+
* - `stacked`: Alternating rows of side-by-side content
|
|
4122
|
+
*/
|
|
4123
|
+
"af-text-image-nest": LocalJSX.AfTextImageNest & JSXBase.HTMLAttributes<HTMLAfTextImageNestElement>;
|
|
4124
|
+
/**
|
|
4125
|
+
* Textarea component for multi-line text input with label, description, and error states.
|
|
4126
|
+
*/
|
|
4127
|
+
"af-textarea": LocalJSX.AfTextarea & JSXBase.HTMLAttributes<HTMLAfTextareaElement>;
|
|
1420
4128
|
"af-typography-lockup": LocalJSX.AfTypographyLockup & JSXBase.HTMLAttributes<HTMLAfTypographyLockupElement>;
|
|
4129
|
+
/**
|
|
4130
|
+
* Video Container molecule component for showcasing video content.
|
|
4131
|
+
* Uses slots for typography lockups above and below the video.
|
|
4132
|
+
* When used inside af-split-section, the top slot inherits the top theme
|
|
4133
|
+
* and the bottom slot inherits the bottom theme for correct colors.
|
|
4134
|
+
* @example ```html
|
|
4135
|
+
* <af-split-section top-theme="mist-green" bottom-theme="white">
|
|
4136
|
+
* <af-video-container video-thumbnail-url="/path/to/thumbnail.jpg">
|
|
4137
|
+
* <af-typography-lockup slot="top" text-alignment="center" heading-size="2">
|
|
4138
|
+
* <af-heading level="2">Watch our product demo</af-heading>
|
|
4139
|
+
* <af-text slot="description">See how Affinda transforms your workflow</af-text>
|
|
4140
|
+
* <af-button slot="buttons" variant="primary">Get Started</af-button>
|
|
4141
|
+
* </af-typography-lockup>
|
|
4142
|
+
* </af-video-container>
|
|
4143
|
+
* </af-split-section>
|
|
4144
|
+
* ```
|
|
4145
|
+
*/
|
|
4146
|
+
"af-video-container": LocalJSX.AfVideoContainer & JSXBase.HTMLAttributes<HTMLAfVideoContainerElement>;
|
|
1421
4147
|
}
|
|
1422
4148
|
}
|
|
1423
4149
|
}
|