@affinda/wc 0.0.14 → 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-footer.entry.esm.js.map +1 -1
- 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-a49dc8ac.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-52f7ea33.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-dec4c4d5.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-97f9f774.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-bf4543ff.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-acbbe39a.entry.js +2 -0
- package/dist/affinda/{p-ce89c4f1.entry.js.map → p-acbbe39a.entry.js.map} +1 -1
- 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-07990b1f.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 +3 -3
- package/dist/cjs/af-footer.entry.cjs.js.map +1 -1
- 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 +69 -20
- 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/assets/logo-affinda.svg +19 -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 -64
- 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.css +1 -1
- 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-in-page-banner/af-in-page-banner.js +266 -0
- 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 +4 -3
- package/dist/collection/components/af-logo/af-logo.js +1 -1
- 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 +113 -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 +3 -3
- package/dist/components/af-footer.js.map +1 -1
- 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-7a3XpKXs.js → p-ByHIHg3l.js} +4 -4
- package/dist/components/{p-7a3XpKXs.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 +3 -3
- package/dist/esm/af-footer.entry.js.map +1 -1
- 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 +69 -20
- 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-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 +31 -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 +3414 -638
- 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-07990b1f.entry.js +0 -2
- package/dist/affinda/p-4a39ddec.entry.js +0 -2
- package/dist/affinda/p-4a39ddec.entry.js.map +0 -1
- package/dist/affinda/p-52f7ea33.entry.js +0 -2
- package/dist/affinda/p-924e6def.entry.js +0 -2
- package/dist/affinda/p-924e6def.entry.js.map +0 -1
- 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-ac7efb48.entry.js +0 -2
- package/dist/affinda/p-ac7efb48.entry.js.map +0 -1
- package/dist/affinda/p-b67bbaf7.entry.js +0 -2
- package/dist/affinda/p-b67bbaf7.entry.js.map +0 -1
- package/dist/affinda/p-b6885a9a.entry.js +0 -2
- package/dist/affinda/p-b6885a9a.entry.js.map +0 -1
- package/dist/affinda/p-b7c63852.entry.js +0 -2
- package/dist/affinda/p-b7c63852.entry.js.map +0 -1
- package/dist/affinda/p-b7efbfff.entry.js +0 -2
- package/dist/affinda/p-b7efbfff.entry.js.map +0 -1
- package/dist/affinda/p-bf4543ff.entry.js +0 -2
- package/dist/affinda/p-c2b6199e.entry.js +0 -2
- package/dist/affinda/p-c2b6199e.entry.js.map +0 -1
- package/dist/affinda/p-c5aba33f.entry.js +0 -2
- package/dist/affinda/p-ce89c4f1.entry.js +0 -2
- package/dist/affinda/p-d3b2ab0e.entry.js +0 -2
- package/dist/affinda/p-de52b175.entry.js +0 -2
- package/dist/affinda/p-e367e42b.entry.js +0 -2
- package/dist/affinda/p-e367e42b.entry.js.map +0 -1
- package/dist/cjs/af-cta-section.cjs.entry.js +0 -32
- 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 +0 -183
- package/dist/collection/components/af-cta-section/af-cta-section.js.map +0 -1
- package/dist/components/af-cta-section.js +0 -59
- 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-D4s4u7tL.js +0 -35
- package/dist/components/p-D4s4u7tL.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-PLXzXWgX.js.map +0 -1
- package/dist/components/p-Thu9mUEn.js +0 -41
- package/dist/components/p-Thu9mUEn.js.map +0 -1
- package/dist/components/p-emB0l5gm.js +0 -68
- package/dist/components/p-emB0l5gm.js.map +0 -1
- package/dist/esm/af-cta-section.entry.js +0 -30
- 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 -21
- /package/dist/affinda/{p-de52b175.entry.js.map → p-1d9e532f.entry.js.map} +0 -0
- /package/dist/affinda/{p-a49dc8ac.entry.js.map → p-31d4c1a4.entry.js.map} +0 -0
- /package/dist/affinda/{p-c5aba33f.entry.js.map → p-53ae16fe.entry.js.map} +0 -0
- /package/dist/affinda/{p-dec4c4d5.entry.js.map → p-72f02343.entry.js.map} +0 -0
- /package/dist/affinda/{p-97f9f774.entry.js.map → p-96eac3af.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,72 +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 {
|
|
189
|
+
/**
|
|
190
|
+
* Whether auto-cycling is enabled
|
|
191
|
+
* @default true
|
|
192
|
+
*/
|
|
193
|
+
"autoCycle": boolean;
|
|
141
194
|
/**
|
|
142
|
-
*
|
|
143
|
-
* @default
|
|
195
|
+
* Auto-cycle interval in milliseconds (default: 6000ms = 6 seconds)
|
|
196
|
+
* @default 6000
|
|
144
197
|
*/
|
|
145
|
-
"
|
|
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;
|
|
229
|
+
/**
|
|
230
|
+
* Image alt text for accessibility. Provide meaningful alt text for feature images. Only use empty string for purely decorative images.
|
|
231
|
+
* @default ''
|
|
232
|
+
*/
|
|
233
|
+
"imageAlt": string;
|
|
166
234
|
/**
|
|
167
|
-
*
|
|
168
|
-
* @default 'Talk to us'
|
|
235
|
+
* Background/feature image URL.
|
|
169
236
|
*/
|
|
170
|
-
"
|
|
237
|
+
"imageSrc"?: string;
|
|
171
238
|
/**
|
|
172
|
-
*
|
|
173
|
-
* @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'
|
|
174
241
|
*/
|
|
175
|
-
"
|
|
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';
|
|
176
248
|
}
|
|
177
249
|
/**
|
|
178
|
-
* Feature
|
|
179
|
-
*
|
|
180
|
-
*
|
|
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
|
|
181
253
|
*/
|
|
182
|
-
interface
|
|
254
|
+
interface AfFeatureGrid {
|
|
183
255
|
/**
|
|
184
|
-
*
|
|
185
|
-
* @default
|
|
256
|
+
* Number of columns on desktop (1-4).
|
|
257
|
+
* @default 4
|
|
186
258
|
*/
|
|
187
|
-
"
|
|
259
|
+
"columns": 1 | 2 | 3 | 4;
|
|
188
260
|
/**
|
|
189
|
-
*
|
|
190
|
-
* @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'
|
|
191
263
|
*/
|
|
192
|
-
"
|
|
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 {
|
|
193
271
|
/**
|
|
194
|
-
*
|
|
195
|
-
* @default
|
|
272
|
+
* Whether the fieldset is disabled (disables all child controls)
|
|
273
|
+
* @default false
|
|
196
274
|
*/
|
|
197
|
-
"
|
|
275
|
+
"disabled": boolean;
|
|
198
276
|
/**
|
|
199
|
-
*
|
|
200
|
-
* @default '[]'
|
|
277
|
+
* The legend/heading text for the fieldset
|
|
201
278
|
*/
|
|
202
|
-
"
|
|
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';
|
|
203
285
|
}
|
|
204
286
|
/**
|
|
205
287
|
* Footer component for marketing pages
|
|
@@ -260,6 +342,62 @@ export namespace Components {
|
|
|
260
342
|
*/
|
|
261
343
|
"href": string;
|
|
262
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
|
+
*/
|
|
263
401
|
interface AfHeading {
|
|
264
402
|
/**
|
|
265
403
|
* Visual alignment
|
|
@@ -271,32 +409,93 @@ export namespace Components {
|
|
|
271
409
|
* @default '1'
|
|
272
410
|
*/
|
|
273
411
|
"level": 'xl' | '1' | '2' | '3' | '4' | '5';
|
|
274
|
-
/**
|
|
275
|
-
* Theme for dark backgrounds
|
|
276
|
-
* @default 'light'
|
|
277
|
-
*/
|
|
278
|
-
"theme": 'light' | 'dark';
|
|
279
412
|
}
|
|
280
413
|
/**
|
|
281
|
-
* 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.
|
|
282
417
|
*/
|
|
283
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;
|
|
284
433
|
/**
|
|
285
434
|
* Minimum height
|
|
286
435
|
* @default '60vh'
|
|
287
436
|
*/
|
|
288
437
|
"minHeight": string;
|
|
289
438
|
/**
|
|
290
|
-
*
|
|
291
|
-
* @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'
|
|
292
446
|
*/
|
|
293
|
-
"
|
|
447
|
+
"theme": 'white' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
294
448
|
/**
|
|
295
449
|
* Show decorative paperclip
|
|
296
450
|
* @default false
|
|
297
451
|
*/
|
|
298
452
|
"withDecoration": boolean;
|
|
299
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
|
+
}
|
|
300
499
|
interface AfIconButton {
|
|
301
500
|
/**
|
|
302
501
|
* Accessible label for screen readers
|
|
@@ -322,841 +521,2895 @@ export namespace Components {
|
|
|
322
521
|
*/
|
|
323
522
|
"type": 'button' | 'submit' | 'reset';
|
|
324
523
|
/**
|
|
325
|
-
* 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
|
|
326
525
|
* @default 'primary'
|
|
327
526
|
*/
|
|
328
|
-
"variant": 'primary' | 'secondary' | '
|
|
329
|
-
}
|
|
330
|
-
/**
|
|
331
|
-
* Affinda logo component
|
|
332
|
-
*/
|
|
333
|
-
interface AfLogo {
|
|
527
|
+
"variant": 'primary' | 'secondary' | 'tertiary';
|
|
334
528
|
}
|
|
335
529
|
/**
|
|
336
|
-
*
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
*
|
|
342
|
-
*
|
|
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
|
+
* ```
|
|
343
542
|
*/
|
|
344
|
-
interface
|
|
543
|
+
interface AfIconText {
|
|
345
544
|
/**
|
|
346
|
-
*
|
|
347
|
-
* @default
|
|
545
|
+
* Heading size for the typography lockup (1-5, where 1 is largest)
|
|
546
|
+
* @default 4
|
|
348
547
|
*/
|
|
349
|
-
"
|
|
548
|
+
"headingSize": 1 | 2 | 3 | 4 | 5;
|
|
350
549
|
/**
|
|
351
|
-
*
|
|
352
|
-
* @default 'primary'
|
|
550
|
+
* The icon name to display in the IconBox
|
|
353
551
|
*/
|
|
354
|
-
"
|
|
552
|
+
"icon": IconName;
|
|
355
553
|
/**
|
|
356
|
-
*
|
|
554
|
+
* Size of the icon box
|
|
555
|
+
* @default 'default'
|
|
357
556
|
*/
|
|
358
|
-
"
|
|
557
|
+
"iconSize": 'small' | 'default' | 'large';
|
|
359
558
|
/**
|
|
360
|
-
*
|
|
361
|
-
* @default '
|
|
559
|
+
* Layout orientation - 'vertical': Icon above text (default, used in grid layouts) - 'horizontal': Icon beside text (used in compact layouts)
|
|
560
|
+
* @default 'vertical'
|
|
362
561
|
*/
|
|
363
|
-
"
|
|
364
|
-
}
|
|
365
|
-
/**
|
|
366
|
-
* A full-width navigation bar component that provides the main site navigation.
|
|
367
|
-
* Features a pill-shaped container with logo, navigation links, and action buttons.
|
|
368
|
-
* Includes mobile hamburger menu.
|
|
369
|
-
*/
|
|
370
|
-
interface AfNavbar {
|
|
562
|
+
"orientation": 'vertical' | 'horizontal';
|
|
371
563
|
}
|
|
372
564
|
/**
|
|
373
|
-
*
|
|
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.
|
|
374
569
|
*/
|
|
375
|
-
interface
|
|
570
|
+
interface AfIllustratedCard {
|
|
376
571
|
/**
|
|
377
|
-
*
|
|
378
|
-
* @default '
|
|
572
|
+
* Responsive breakpoint for typography sizing.
|
|
573
|
+
* @default 'desktop'
|
|
379
574
|
*/
|
|
380
|
-
"
|
|
575
|
+
"breakpoint": 'desktop' | 'mobile';
|
|
381
576
|
/**
|
|
382
|
-
*
|
|
383
|
-
* @default
|
|
577
|
+
* Card size variant (applies to desktop only).
|
|
578
|
+
* @default 'default'
|
|
384
579
|
*/
|
|
385
|
-
"
|
|
580
|
+
"cardSize": 'default' | 'large';
|
|
386
581
|
/**
|
|
387
|
-
*
|
|
388
|
-
* @default '
|
|
582
|
+
* Theme variant - sets background color and provides theme context. Defaults to 'mist-green'.
|
|
583
|
+
* @default 'mist-green'
|
|
389
584
|
*/
|
|
390
|
-
"
|
|
585
|
+
"theme"?: 'white' | 'white-ivory' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
391
586
|
}
|
|
392
587
|
/**
|
|
393
|
-
*
|
|
394
|
-
*
|
|
588
|
+
* A styled image container with rounded corners and a subtle inset border.
|
|
589
|
+
* Provides consistent image styling across the design system.
|
|
395
590
|
*/
|
|
396
|
-
interface
|
|
591
|
+
interface AfImage {
|
|
397
592
|
/**
|
|
398
|
-
*
|
|
399
|
-
* @default '#'
|
|
593
|
+
* Alternative text for the image (required for accessibility)
|
|
400
594
|
*/
|
|
401
|
-
"
|
|
595
|
+
"alt": string;
|
|
402
596
|
/**
|
|
403
|
-
*
|
|
404
|
-
* @default 'custom'
|
|
597
|
+
* The image source URL
|
|
405
598
|
*/
|
|
406
|
-
"
|
|
599
|
+
"src": string;
|
|
600
|
+
}
|
|
601
|
+
/**
|
|
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.
|
|
618
|
+
*/
|
|
619
|
+
interface AfInPageBanner {
|
|
407
620
|
/**
|
|
408
|
-
*
|
|
621
|
+
* Banner description
|
|
409
622
|
* @default ''
|
|
410
623
|
*/
|
|
411
|
-
"
|
|
412
|
-
}
|
|
413
|
-
interface AfTestimonial {
|
|
624
|
+
"description": string;
|
|
414
625
|
/**
|
|
415
|
-
*
|
|
626
|
+
* Banner heading
|
|
627
|
+
* @default ''
|
|
416
628
|
*/
|
|
417
|
-
"
|
|
629
|
+
"heading": string;
|
|
418
630
|
/**
|
|
419
|
-
*
|
|
631
|
+
* Illustration URL. For theme-matched illustrations, use getIllustrationUrlByScene() from
|
|
632
|
+
* @affinda /illustrations in your app code.
|
|
633
|
+
* @default ''
|
|
420
634
|
*/
|
|
421
|
-
"
|
|
635
|
+
"illustrationUrl": string;
|
|
422
636
|
/**
|
|
423
|
-
*
|
|
637
|
+
* Primary button text
|
|
638
|
+
* @default ''
|
|
424
639
|
*/
|
|
425
|
-
"
|
|
640
|
+
"primaryButtonText": string;
|
|
426
641
|
/**
|
|
427
|
-
*
|
|
642
|
+
* Primary button URL
|
|
643
|
+
* @default '#'
|
|
428
644
|
*/
|
|
429
|
-
"
|
|
645
|
+
"primaryButtonUrl": string;
|
|
430
646
|
/**
|
|
431
|
-
*
|
|
647
|
+
* Secondary button text (optional - if empty, button won't show)
|
|
648
|
+
* @default ''
|
|
432
649
|
*/
|
|
433
|
-
"
|
|
434
|
-
}
|
|
435
|
-
interface AfTestimonialCarousel {
|
|
436
|
-
}
|
|
437
|
-
interface AfTestimonialStat {
|
|
650
|
+
"secondaryButtonText": string;
|
|
438
651
|
/**
|
|
439
|
-
*
|
|
440
|
-
* @default
|
|
652
|
+
* Secondary button URL
|
|
653
|
+
* @default '#'
|
|
441
654
|
*/
|
|
442
|
-
"
|
|
655
|
+
"secondaryButtonUrl": string;
|
|
443
656
|
/**
|
|
444
|
-
*
|
|
657
|
+
* Whether to show the decorative wave overlay
|
|
658
|
+
* @default true
|
|
445
659
|
*/
|
|
446
|
-
"
|
|
660
|
+
"showWaveDecoration": boolean;
|
|
447
661
|
/**
|
|
448
|
-
*
|
|
662
|
+
* Theme - sets the banner background color and typography colors
|
|
663
|
+
* @default 'mist-green'
|
|
449
664
|
*/
|
|
450
|
-
"
|
|
665
|
+
"theme": BannerTheme;
|
|
451
666
|
}
|
|
452
|
-
|
|
667
|
+
/**
|
|
668
|
+
* Input field component with label, description, and error states.
|
|
669
|
+
* Supports various input types and validation states.
|
|
670
|
+
*/
|
|
671
|
+
interface AfInput {
|
|
453
672
|
/**
|
|
454
|
-
*
|
|
455
|
-
* @default 'left'
|
|
673
|
+
* Autocomplete attribute for the input
|
|
456
674
|
*/
|
|
457
|
-
"
|
|
675
|
+
"autocomplete"?: string;
|
|
458
676
|
/**
|
|
459
|
-
*
|
|
460
|
-
* @default
|
|
677
|
+
* Whether to show a clear button when input has value
|
|
678
|
+
* @default false
|
|
461
679
|
*/
|
|
462
|
-
"
|
|
680
|
+
"clearable": boolean;
|
|
463
681
|
/**
|
|
464
|
-
*
|
|
465
|
-
* @default 'light'
|
|
682
|
+
* Description text displayed below the label
|
|
466
683
|
*/
|
|
467
|
-
"
|
|
684
|
+
"description"?: string;
|
|
468
685
|
/**
|
|
469
|
-
*
|
|
470
|
-
* @default
|
|
686
|
+
* Whether the input is disabled
|
|
687
|
+
* @default false
|
|
471
688
|
*/
|
|
472
|
-
"
|
|
473
|
-
}
|
|
474
|
-
interface AfTypographyLockup {
|
|
689
|
+
"disabled": boolean;
|
|
475
690
|
/**
|
|
476
|
-
*
|
|
477
|
-
* @default 'desktop'
|
|
691
|
+
* Error message to display (also sets error state)
|
|
478
692
|
*/
|
|
479
|
-
"
|
|
693
|
+
"error"?: string;
|
|
480
694
|
/**
|
|
481
|
-
*
|
|
482
|
-
* @default 'vertical'
|
|
695
|
+
* The label text for the input field
|
|
483
696
|
*/
|
|
484
|
-
"
|
|
697
|
+
"label"?: string;
|
|
485
698
|
/**
|
|
486
|
-
*
|
|
487
|
-
* @default 2
|
|
699
|
+
* Maximum length of input value
|
|
488
700
|
*/
|
|
489
|
-
"
|
|
701
|
+
"maxlength"?: number;
|
|
490
702
|
/**
|
|
491
|
-
*
|
|
703
|
+
* Minimum length of input value
|
|
492
704
|
*/
|
|
493
|
-
"
|
|
705
|
+
"minlength"?: number;
|
|
494
706
|
/**
|
|
495
|
-
*
|
|
496
|
-
* @default 'left'
|
|
707
|
+
* The name of the input for form submission
|
|
497
708
|
*/
|
|
498
|
-
"
|
|
709
|
+
"name"?: string;
|
|
710
|
+
/**
|
|
711
|
+
* Pattern for input validation (regex)
|
|
712
|
+
*/
|
|
713
|
+
"pattern"?: string;
|
|
714
|
+
/**
|
|
715
|
+
* Placeholder text for the input
|
|
716
|
+
*/
|
|
717
|
+
"placeholder"?: string;
|
|
718
|
+
/**
|
|
719
|
+
* Whether the input is read-only
|
|
720
|
+
* @default false
|
|
721
|
+
*/
|
|
722
|
+
"readonly": boolean;
|
|
723
|
+
/**
|
|
724
|
+
* Whether the input is required
|
|
725
|
+
* @default false
|
|
726
|
+
*/
|
|
727
|
+
"required": boolean;
|
|
728
|
+
/**
|
|
729
|
+
* Whether to show the info icon next to the label
|
|
730
|
+
* @default false
|
|
731
|
+
*/
|
|
732
|
+
"showInfoIcon": boolean;
|
|
733
|
+
/**
|
|
734
|
+
* Whether to show a search icon in the input
|
|
735
|
+
* @default false
|
|
736
|
+
*/
|
|
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;
|
|
499
748
|
}
|
|
500
|
-
}
|
|
501
|
-
declare global {
|
|
502
749
|
/**
|
|
503
|
-
*
|
|
504
|
-
* Useful for images, videos, or any content that needs to maintain specific proportions.
|
|
750
|
+
* Affinda logo component
|
|
505
751
|
*/
|
|
506
|
-
interface
|
|
507
|
-
}
|
|
508
|
-
var HTMLAfAspectRatioElement: {
|
|
509
|
-
prototype: HTMLAfAspectRatioElement;
|
|
510
|
-
new (): HTMLAfAspectRatioElement;
|
|
511
|
-
};
|
|
512
|
-
interface HTMLAfButtonElement extends Components.AfButton, HTMLStencilElement {
|
|
513
|
-
}
|
|
514
|
-
var HTMLAfButtonElement: {
|
|
515
|
-
prototype: HTMLAfButtonElement;
|
|
516
|
-
new (): HTMLAfButtonElement;
|
|
517
|
-
};
|
|
518
|
-
interface HTMLAfButtonGroupElement extends Components.AfButtonGroup, HTMLStencilElement {
|
|
519
|
-
}
|
|
520
|
-
var HTMLAfButtonGroupElement: {
|
|
521
|
-
prototype: HTMLAfButtonGroupElement;
|
|
522
|
-
new (): HTMLAfButtonGroupElement;
|
|
523
|
-
};
|
|
524
|
-
interface HTMLAfCardElement extends Components.AfCard, HTMLStencilElement {
|
|
752
|
+
interface AfLogo {
|
|
525
753
|
}
|
|
526
|
-
var HTMLAfCardElement: {
|
|
527
|
-
prototype: HTMLAfCardElement;
|
|
528
|
-
new (): HTMLAfCardElement;
|
|
529
|
-
};
|
|
530
754
|
/**
|
|
531
|
-
*
|
|
755
|
+
* A rounded container for displaying client logos
|
|
532
756
|
*/
|
|
533
|
-
interface
|
|
534
|
-
}
|
|
535
|
-
var HTMLAfClientCarouselElement: {
|
|
536
|
-
prototype: HTMLAfClientCarouselElement;
|
|
537
|
-
new (): HTMLAfClientCarouselElement;
|
|
538
|
-
};
|
|
539
|
-
interface HTMLAfColorSwatchElement extends Components.AfColorSwatch, HTMLStencilElement {
|
|
757
|
+
interface AfLogoWell {
|
|
540
758
|
}
|
|
541
|
-
var HTMLAfColorSwatchElement: {
|
|
542
|
-
prototype: HTMLAfColorSwatchElement;
|
|
543
|
-
new (): HTMLAfColorSwatchElement;
|
|
544
|
-
};
|
|
545
759
|
/**
|
|
546
|
-
*
|
|
547
|
-
* 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
|
|
548
768
|
*/
|
|
549
|
-
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;
|
|
550
787
|
}
|
|
551
|
-
var HTMLAfContactItemElement: {
|
|
552
|
-
prototype: HTMLAfContactItemElement;
|
|
553
|
-
new (): HTMLAfContactItemElement;
|
|
554
|
-
};
|
|
555
788
|
/**
|
|
556
|
-
* A
|
|
557
|
-
*
|
|
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).
|
|
558
791
|
*/
|
|
559
|
-
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';
|
|
560
817
|
}
|
|
561
|
-
var HTMLAfContainerElement: {
|
|
562
|
-
prototype: HTMLAfContainerElement;
|
|
563
|
-
new (): HTMLAfContainerElement;
|
|
564
|
-
};
|
|
565
818
|
/**
|
|
566
|
-
*
|
|
567
|
-
*
|
|
819
|
+
* A grouped navigation menu component with a heading.
|
|
820
|
+
* Used in mega-menu dropdowns to group related navigation items.
|
|
568
821
|
*/
|
|
569
|
-
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;
|
|
570
842
|
}
|
|
571
|
-
var HTMLAfCtaSectionElement: {
|
|
572
|
-
prototype: HTMLAfCtaSectionElement;
|
|
573
|
-
new (): HTMLAfCtaSectionElement;
|
|
574
|
-
};
|
|
575
843
|
/**
|
|
576
|
-
*
|
|
577
|
-
*
|
|
578
|
-
*
|
|
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
|
+
* ```
|
|
579
859
|
*/
|
|
580
|
-
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';
|
|
581
876
|
}
|
|
582
|
-
var HTMLAfFeatureAccordionElement: {
|
|
583
|
-
prototype: HTMLAfFeatureAccordionElement;
|
|
584
|
-
new (): HTMLAfFeatureAccordionElement;
|
|
585
|
-
};
|
|
586
877
|
/**
|
|
587
|
-
*
|
|
588
|
-
*
|
|
589
|
-
*
|
|
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.
|
|
590
883
|
*/
|
|
591
|
-
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';
|
|
592
894
|
}
|
|
593
|
-
var HTMLAfFooterElement: {
|
|
594
|
-
prototype: HTMLAfFooterElement;
|
|
595
|
-
new (): HTMLAfFooterElement;
|
|
596
|
-
};
|
|
597
895
|
/**
|
|
598
|
-
*
|
|
599
|
-
*
|
|
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
|
+
* ```
|
|
600
902
|
*/
|
|
601
|
-
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;
|
|
602
919
|
}
|
|
603
|
-
var HTMLAfFooterColumnElement: {
|
|
604
|
-
prototype: HTMLAfFooterColumnElement;
|
|
605
|
-
new (): HTMLAfFooterColumnElement;
|
|
606
|
-
};
|
|
607
920
|
/**
|
|
608
|
-
*
|
|
609
|
-
*
|
|
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.
|
|
610
924
|
*/
|
|
611
|
-
interface
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
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;
|
|
618
936
|
}
|
|
619
|
-
var HTMLAfHeadingElement: {
|
|
620
|
-
prototype: HTMLAfHeadingElement;
|
|
621
|
-
new (): HTMLAfHeadingElement;
|
|
622
|
-
};
|
|
623
937
|
/**
|
|
624
|
-
*
|
|
938
|
+
* Radio component for selecting a single option from a group.
|
|
625
939
|
*/
|
|
626
|
-
interface
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
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;
|
|
633
959
|
}
|
|
634
|
-
var HTMLAfIconButtonElement: {
|
|
635
|
-
prototype: HTMLAfIconButtonElement;
|
|
636
|
-
new (): HTMLAfIconButtonElement;
|
|
637
|
-
};
|
|
638
960
|
/**
|
|
639
|
-
*
|
|
961
|
+
* Section layout component for consistent spacing and backgrounds.
|
|
962
|
+
* Sets theme context for all child components via CSS custom properties.
|
|
640
963
|
*/
|
|
641
|
-
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';
|
|
642
980
|
}
|
|
643
|
-
var HTMLAfLogoElement: {
|
|
644
|
-
prototype: HTMLAfLogoElement;
|
|
645
|
-
new (): HTMLAfLogoElement;
|
|
646
|
-
};
|
|
647
981
|
/**
|
|
648
|
-
*
|
|
982
|
+
* Social media link component
|
|
983
|
+
* Circular bordered icon link for social media profiles
|
|
649
984
|
*/
|
|
650
|
-
interface
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
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;
|
|
1001
|
+
}
|
|
1002
|
+
/**
|
|
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.
|
|
1007
|
+
*/
|
|
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;
|
|
1029
|
+
}
|
|
1030
|
+
/**
|
|
1031
|
+
* Switch component for toggling between on and off states.
|
|
1032
|
+
*/
|
|
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;
|
|
1052
|
+
}
|
|
1053
|
+
/**
|
|
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
|
+
* ```
|
|
1065
|
+
*/
|
|
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;
|
|
1101
|
+
}
|
|
1102
|
+
/**
|
|
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
|
+
* ```
|
|
1112
|
+
*/
|
|
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;
|
|
1124
|
+
}
|
|
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;
|
|
1149
|
+
}
|
|
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;
|
|
1186
|
+
}
|
|
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 {
|
|
1193
|
+
}
|
|
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;
|
|
1208
|
+
}
|
|
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';
|
|
1230
|
+
}
|
|
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;
|
|
1260
|
+
}
|
|
1261
|
+
/**
|
|
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
|
+
}
|
|
656
2561
|
/**
|
|
657
|
-
*
|
|
658
|
-
*
|
|
2562
|
+
* Footer link component
|
|
2563
|
+
* Styled link for use in footer navigation columns
|
|
659
2564
|
*/
|
|
660
|
-
interface
|
|
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;
|
|
661
2576
|
}
|
|
662
|
-
var HTMLAfNavItemElement: {
|
|
663
|
-
prototype: HTMLAfNavItemElement;
|
|
664
|
-
new (): HTMLAfNavItemElement;
|
|
665
|
-
};
|
|
666
2577
|
/**
|
|
667
|
-
*
|
|
668
|
-
*
|
|
669
|
-
*
|
|
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
|
+
* ```
|
|
670
2601
|
*/
|
|
671
|
-
interface
|
|
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;
|
|
672
2627
|
}
|
|
673
|
-
var HTMLAfNavbarElement: {
|
|
674
|
-
prototype: HTMLAfNavbarElement;
|
|
675
|
-
new (): HTMLAfNavbarElement;
|
|
676
|
-
};
|
|
677
2628
|
/**
|
|
678
|
-
*
|
|
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.
|
|
679
2632
|
*/
|
|
680
|
-
interface
|
|
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';
|
|
681
2644
|
}
|
|
682
|
-
var HTMLAfSectionElement: {
|
|
683
|
-
prototype: HTMLAfSectionElement;
|
|
684
|
-
new (): HTMLAfSectionElement;
|
|
685
|
-
};
|
|
686
2645
|
/**
|
|
687
|
-
*
|
|
688
|
-
*
|
|
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.
|
|
689
2649
|
*/
|
|
690
|
-
interface
|
|
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;
|
|
691
2685
|
}
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
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;
|
|
697
2709
|
}
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
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';
|
|
703
2730
|
}
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
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';
|
|
709
2760
|
}
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
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';
|
|
715
2795
|
}
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
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';
|
|
721
2818
|
}
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
interface
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
"
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
"
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
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;
|
|
754
2898
|
}
|
|
755
|
-
}
|
|
756
|
-
declare namespace LocalJSX {
|
|
757
2899
|
/**
|
|
758
|
-
*
|
|
759
|
-
*
|
|
2900
|
+
* Input field component with label, description, and error states.
|
|
2901
|
+
* Supports various input types and validation states.
|
|
760
2902
|
*/
|
|
761
|
-
interface
|
|
2903
|
+
interface AfInput {
|
|
762
2904
|
/**
|
|
763
|
-
*
|
|
764
|
-
* @example <af-aspect-ratio ratio="16:9">Content</af-aspect-ratio> <af-aspect-ratio ratio="1.618 / 1">Content</af-aspect-ratio>
|
|
765
|
-
* @default '1:1'
|
|
2905
|
+
* Autocomplete attribute for the input
|
|
766
2906
|
*/
|
|
767
|
-
"
|
|
768
|
-
}
|
|
769
|
-
interface AfButton {
|
|
2907
|
+
"autocomplete"?: string;
|
|
770
2908
|
/**
|
|
771
|
-
*
|
|
2909
|
+
* Whether to show a clear button when input has value
|
|
772
2910
|
* @default false
|
|
773
2911
|
*/
|
|
774
|
-
"
|
|
2912
|
+
"clearable"?: boolean;
|
|
775
2913
|
/**
|
|
776
|
-
*
|
|
2914
|
+
* Description text displayed below the label
|
|
2915
|
+
*/
|
|
2916
|
+
"description"?: string;
|
|
2917
|
+
/**
|
|
2918
|
+
* Whether the input is disabled
|
|
777
2919
|
* @default false
|
|
778
2920
|
*/
|
|
779
2921
|
"disabled"?: boolean;
|
|
780
2922
|
/**
|
|
781
|
-
*
|
|
2923
|
+
* Error message to display (also sets error state)
|
|
782
2924
|
*/
|
|
783
|
-
"
|
|
2925
|
+
"error"?: string;
|
|
784
2926
|
/**
|
|
785
|
-
* The
|
|
786
|
-
* @default 'default'
|
|
2927
|
+
* The label text for the input field
|
|
787
2928
|
*/
|
|
788
|
-
"
|
|
2929
|
+
"label"?: string;
|
|
789
2930
|
/**
|
|
790
|
-
*
|
|
791
|
-
* @default 'button'
|
|
2931
|
+
* Maximum length of input value
|
|
792
2932
|
*/
|
|
793
|
-
"
|
|
2933
|
+
"maxlength"?: number;
|
|
794
2934
|
/**
|
|
795
|
-
*
|
|
796
|
-
* @default 'primary'
|
|
2935
|
+
* Minimum length of input value
|
|
797
2936
|
*/
|
|
798
|
-
"
|
|
799
|
-
}
|
|
800
|
-
interface AfButtonGroup {
|
|
2937
|
+
"minlength"?: number;
|
|
801
2938
|
/**
|
|
802
|
-
*
|
|
803
|
-
* @default 'horizontal'
|
|
2939
|
+
* The name of the input for form submission
|
|
804
2940
|
*/
|
|
805
|
-
"
|
|
2941
|
+
"name"?: string;
|
|
806
2942
|
/**
|
|
807
|
-
*
|
|
808
|
-
* @default '8px'
|
|
2943
|
+
* Emitted when the input loses focus
|
|
809
2944
|
*/
|
|
810
|
-
"
|
|
811
|
-
}
|
|
812
|
-
interface AfCard {
|
|
2945
|
+
"onAfBlur"?: (event: AfInputCustomEvent<void>) => void;
|
|
813
2946
|
/**
|
|
814
|
-
*
|
|
2947
|
+
* Emitted when the clear button is clicked
|
|
815
2948
|
*/
|
|
816
|
-
"
|
|
2949
|
+
"onAfClear"?: (event: AfInputCustomEvent<void>) => void;
|
|
817
2950
|
/**
|
|
818
|
-
*
|
|
2951
|
+
* Emitted when the input gains focus
|
|
819
2952
|
*/
|
|
820
|
-
"
|
|
2953
|
+
"onAfFocus"?: (event: AfInputCustomEvent<void>) => void;
|
|
821
2954
|
/**
|
|
822
|
-
*
|
|
823
|
-
* @default false
|
|
2955
|
+
* Emitted when the info icon is clicked
|
|
824
2956
|
*/
|
|
825
|
-
"
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
interface AfClientCarousel {
|
|
2957
|
+
"onAfInfoClick"?: (event: AfInputCustomEvent<void>) => void;
|
|
2958
|
+
/**
|
|
2959
|
+
* Emitted when the input value changes
|
|
2960
|
+
*/
|
|
2961
|
+
"onAfInput"?: (event: AfInputCustomEvent<{ value: string }>) => void;
|
|
831
2962
|
/**
|
|
832
|
-
*
|
|
833
|
-
* @default "Trusted by some of the world's leading organisations"
|
|
2963
|
+
* Pattern for input validation (regex)
|
|
834
2964
|
*/
|
|
835
|
-
"
|
|
2965
|
+
"pattern"?: string;
|
|
836
2966
|
/**
|
|
837
|
-
*
|
|
2967
|
+
* Placeholder text for the input
|
|
2968
|
+
*/
|
|
2969
|
+
"placeholder"?: string;
|
|
2970
|
+
/**
|
|
2971
|
+
* Whether the input is read-only
|
|
838
2972
|
* @default false
|
|
839
2973
|
*/
|
|
840
|
-
"
|
|
841
|
-
}
|
|
842
|
-
interface AfColorSwatch {
|
|
2974
|
+
"readonly"?: boolean;
|
|
843
2975
|
/**
|
|
844
|
-
*
|
|
2976
|
+
* Whether the input is required
|
|
2977
|
+
* @default false
|
|
845
2978
|
*/
|
|
846
|
-
"
|
|
2979
|
+
"required"?: boolean;
|
|
847
2980
|
/**
|
|
848
|
-
*
|
|
2981
|
+
* Whether to show the info icon next to the label
|
|
2982
|
+
* @default false
|
|
849
2983
|
*/
|
|
850
|
-
"
|
|
2984
|
+
"showInfoIcon"?: boolean;
|
|
851
2985
|
/**
|
|
852
|
-
*
|
|
853
|
-
* @default
|
|
2986
|
+
* Whether to show a search icon in the input
|
|
2987
|
+
* @default false
|
|
854
2988
|
*/
|
|
855
|
-
"
|
|
856
|
-
}
|
|
857
|
-
/**
|
|
858
|
-
* Contact item component for footer
|
|
859
|
-
* Displays a label and value pair (e.g., "Sales enquiries" / "contact@example.com")
|
|
860
|
-
*/
|
|
861
|
-
interface AfContactItem {
|
|
2989
|
+
"showSearchIcon"?: boolean;
|
|
862
2990
|
/**
|
|
863
|
-
*
|
|
864
|
-
* @default ''
|
|
2991
|
+
* The input type (text, email, password, number, tel, url, search)
|
|
2992
|
+
* @default 'text'
|
|
865
2993
|
*/
|
|
866
|
-
"
|
|
2994
|
+
"type"?: 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search';
|
|
867
2995
|
/**
|
|
868
|
-
*
|
|
2996
|
+
* The current value of the input
|
|
869
2997
|
* @default ''
|
|
870
2998
|
*/
|
|
871
2999
|
"value"?: string;
|
|
872
3000
|
}
|
|
873
3001
|
/**
|
|
874
|
-
*
|
|
875
|
-
* constraints based on the Affinda grid system.
|
|
3002
|
+
* Affinda logo component
|
|
876
3003
|
*/
|
|
877
|
-
interface
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
3004
|
+
interface AfLogo {
|
|
3005
|
+
}
|
|
3006
|
+
/**
|
|
3007
|
+
* A rounded container for displaying client logos
|
|
3008
|
+
*/
|
|
3009
|
+
interface AfLogoWell {
|
|
883
3010
|
}
|
|
884
3011
|
/**
|
|
885
|
-
*
|
|
886
|
-
*
|
|
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
|
|
887
3020
|
*/
|
|
888
|
-
interface
|
|
3021
|
+
interface AfNavCard {
|
|
889
3022
|
/**
|
|
890
|
-
*
|
|
891
|
-
* @default 'Upload your documents and watch our AI agents get to work.'
|
|
3023
|
+
* The headline text displayed over the image
|
|
892
3024
|
*/
|
|
893
|
-
"
|
|
3025
|
+
"heading"?: string;
|
|
894
3026
|
/**
|
|
895
|
-
*
|
|
896
|
-
* @default 'See what our AI agents can do for you'
|
|
3027
|
+
* URL to navigate to when clicked
|
|
897
3028
|
*/
|
|
898
|
-
"
|
|
3029
|
+
"href"?: string;
|
|
899
3030
|
/**
|
|
900
|
-
*
|
|
3031
|
+
* Alternative text for the image
|
|
901
3032
|
* @default ''
|
|
902
3033
|
*/
|
|
903
|
-
"
|
|
3034
|
+
"imageAlt"?: string;
|
|
904
3035
|
/**
|
|
905
|
-
*
|
|
906
|
-
* @default 'Try for free'
|
|
3036
|
+
* Image source URL for the background
|
|
907
3037
|
*/
|
|
908
|
-
"
|
|
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 {
|
|
909
3045
|
/**
|
|
910
|
-
*
|
|
911
|
-
* @default
|
|
3046
|
+
* Whether this nav item is currently active/selected
|
|
3047
|
+
* @default false
|
|
912
3048
|
*/
|
|
913
|
-
"
|
|
3049
|
+
"active"?: boolean;
|
|
914
3050
|
/**
|
|
915
|
-
*
|
|
916
|
-
* @default '
|
|
3051
|
+
* Breakpoint variant for responsive styling - 'desktop': Desktop-specific styles - 'mobile': Mobile-specific styles (larger text, different spacing)
|
|
3052
|
+
* @default 'desktop'
|
|
917
3053
|
*/
|
|
918
|
-
"
|
|
3054
|
+
"breakpoint"?: 'desktop' | 'mobile';
|
|
919
3055
|
/**
|
|
920
|
-
*
|
|
921
|
-
* @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'
|
|
922
3058
|
*/
|
|
923
|
-
"
|
|
3059
|
+
"hierarchy"?: 'primary' | 'secondary';
|
|
3060
|
+
/**
|
|
3061
|
+
* URL to navigate to when clicked
|
|
3062
|
+
*/
|
|
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';
|
|
924
3069
|
}
|
|
925
3070
|
/**
|
|
926
|
-
*
|
|
927
|
-
* Used
|
|
928
|
-
* 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.
|
|
929
3073
|
*/
|
|
930
|
-
interface
|
|
3074
|
+
interface AfNavMenu {
|
|
931
3075
|
/**
|
|
932
|
-
*
|
|
933
|
-
* @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'
|
|
934
3078
|
*/
|
|
935
|
-
"
|
|
3079
|
+
"breakpoint"?: 'desktop' | 'mobile';
|
|
936
3080
|
/**
|
|
937
|
-
*
|
|
938
|
-
* @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
|
|
939
3083
|
*/
|
|
940
|
-
"
|
|
3084
|
+
"cardStyle"?: boolean;
|
|
941
3085
|
/**
|
|
942
|
-
*
|
|
943
|
-
* @default 'Give AI agents your paperwork'
|
|
3086
|
+
* The heading text displayed above the navigation items
|
|
944
3087
|
*/
|
|
945
3088
|
"heading"?: string;
|
|
946
3089
|
/**
|
|
947
|
-
*
|
|
948
|
-
* @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
|
|
949
3092
|
*/
|
|
950
|
-
"
|
|
3093
|
+
"showBorder"?: boolean;
|
|
951
3094
|
}
|
|
952
3095
|
/**
|
|
953
|
-
*
|
|
954
|
-
*
|
|
955
|
-
*
|
|
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
|
+
* ```
|
|
956
3111
|
*/
|
|
957
|
-
interface
|
|
3112
|
+
interface AfNavMenuNest {
|
|
958
3113
|
/**
|
|
959
|
-
*
|
|
960
|
-
* @default ''
|
|
3114
|
+
* Breakpoint variant for responsive styling - 'desktop': Horizontal multi-column layout - 'mobile': Vertical stacked layout
|
|
3115
|
+
* @default 'desktop'
|
|
961
3116
|
*/
|
|
962
|
-
"
|
|
3117
|
+
"breakpoint"?: 'desktop' | 'mobile';
|
|
963
3118
|
/**
|
|
964
|
-
* 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.
|
|
965
3120
|
* @default true
|
|
966
3121
|
*/
|
|
967
|
-
"
|
|
3122
|
+
"showSidebarBorder"?: boolean;
|
|
968
3123
|
/**
|
|
969
|
-
*
|
|
970
|
-
* @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'
|
|
971
3126
|
*/
|
|
972
|
-
"
|
|
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 {
|
|
973
3137
|
/**
|
|
974
|
-
*
|
|
975
|
-
* @default
|
|
3138
|
+
* Whether to show the default Affinda logo when no logo slot content is provided
|
|
3139
|
+
* @default true
|
|
976
3140
|
*/
|
|
977
|
-
"
|
|
3141
|
+
"showDefaultLogo"?: boolean;
|
|
978
3142
|
/**
|
|
979
|
-
*
|
|
980
|
-
* @default true
|
|
3143
|
+
* Theme for the spacer background - should match the section below the navbar
|
|
981
3144
|
*/
|
|
982
|
-
"
|
|
3145
|
+
"theme"?: 'white' | 'inkwell' | 'mist-green' | 'soft-clay';
|
|
983
3146
|
}
|
|
984
3147
|
/**
|
|
985
|
-
*
|
|
986
|
-
*
|
|
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
|
+
* ```
|
|
987
3154
|
*/
|
|
988
|
-
interface
|
|
3155
|
+
interface AfNumberBadge {
|
|
989
3156
|
/**
|
|
990
|
-
*
|
|
991
|
-
* @default
|
|
3157
|
+
* The number to display (1-10)
|
|
3158
|
+
* @default 1
|
|
992
3159
|
*/
|
|
993
|
-
"
|
|
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;
|
|
994
3171
|
}
|
|
995
3172
|
/**
|
|
996
|
-
*
|
|
997
|
-
*
|
|
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.
|
|
998
3176
|
*/
|
|
999
|
-
interface
|
|
3177
|
+
interface AfProgressLine {
|
|
1000
3178
|
/**
|
|
1001
|
-
*
|
|
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
|
|
1002
3195
|
* @default false
|
|
1003
3196
|
*/
|
|
1004
|
-
"
|
|
3197
|
+
"checked"?: boolean;
|
|
1005
3198
|
/**
|
|
1006
|
-
*
|
|
1007
|
-
* @default
|
|
3199
|
+
* Whether the radio is disabled
|
|
3200
|
+
* @default false
|
|
1008
3201
|
*/
|
|
1009
|
-
"
|
|
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;
|
|
1010
3215
|
}
|
|
1011
|
-
|
|
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 {
|
|
1012
3221
|
/**
|
|
1013
|
-
*
|
|
1014
|
-
* @default
|
|
3222
|
+
* Whether to include a Container wrapper
|
|
3223
|
+
* @default true
|
|
1015
3224
|
*/
|
|
1016
|
-
"
|
|
3225
|
+
"container"?: boolean;
|
|
1017
3226
|
/**
|
|
1018
|
-
*
|
|
1019
|
-
* @default '
|
|
3227
|
+
* Padding variant
|
|
3228
|
+
* @default 'default'
|
|
1020
3229
|
*/
|
|
1021
|
-
"
|
|
3230
|
+
"padding"?: 'tight' | 'default' | 'loose';
|
|
1022
3231
|
/**
|
|
1023
|
-
* Theme
|
|
1024
|
-
* @default '
|
|
3232
|
+
* Theme - sets background color and provides theme context to children
|
|
3233
|
+
* @default 'white'
|
|
1025
3234
|
*/
|
|
1026
|
-
"theme"?: '
|
|
3235
|
+
"theme"?: 'white' | 'inkwell' | 'mist-green' | 'soft-clay' | 'white-ivory';
|
|
1027
3236
|
}
|
|
1028
3237
|
/**
|
|
1029
|
-
*
|
|
3238
|
+
* Social media link component
|
|
3239
|
+
* Circular bordered icon link for social media profiles
|
|
1030
3240
|
*/
|
|
1031
|
-
interface
|
|
3241
|
+
interface AfSocialLink {
|
|
1032
3242
|
/**
|
|
1033
|
-
*
|
|
1034
|
-
* @default '
|
|
3243
|
+
* Link URL
|
|
3244
|
+
* @default '#'
|
|
1035
3245
|
*/
|
|
1036
|
-
"
|
|
3246
|
+
"href"?: string;
|
|
3247
|
+
/**
|
|
3248
|
+
* Icon type: 'linkedin', 'youtube', 'github', 'twitter', 'facebook', or 'custom'
|
|
3249
|
+
* @default 'custom'
|
|
3250
|
+
*/
|
|
3251
|
+
"icon"?: 'linkedin' | 'youtube' | 'github' | 'twitter' | 'facebook' | 'custom';
|
|
3252
|
+
/**
|
|
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;
|
|
1037
3275
|
/**
|
|
1038
|
-
*
|
|
1039
|
-
* @default '
|
|
3276
|
+
* Padding variant
|
|
3277
|
+
* @default 'default'
|
|
1040
3278
|
*/
|
|
1041
|
-
"
|
|
3279
|
+
"padding"?: 'tight' | 'default' | 'loose';
|
|
1042
3280
|
/**
|
|
1043
|
-
*
|
|
1044
|
-
* @default
|
|
3281
|
+
* Theme for the top half of the section
|
|
3282
|
+
* @default 'mist-green'
|
|
1045
3283
|
*/
|
|
1046
|
-
"
|
|
3284
|
+
"topTheme"?: Theme;
|
|
1047
3285
|
}
|
|
1048
|
-
|
|
3286
|
+
/**
|
|
3287
|
+
* Switch component for toggling between on and off states.
|
|
3288
|
+
*/
|
|
3289
|
+
interface AfSwitch {
|
|
1049
3290
|
/**
|
|
1050
|
-
*
|
|
3291
|
+
* Whether the switch is active (on)
|
|
3292
|
+
* @default false
|
|
1051
3293
|
*/
|
|
1052
|
-
"
|
|
3294
|
+
"active"?: boolean;
|
|
1053
3295
|
/**
|
|
1054
|
-
* Whether the
|
|
3296
|
+
* Whether the switch is disabled
|
|
1055
3297
|
* @default false
|
|
1056
3298
|
*/
|
|
1057
3299
|
"disabled"?: boolean;
|
|
1058
3300
|
/**
|
|
1059
|
-
*
|
|
1060
|
-
*/
|
|
1061
|
-
"href"?: string;
|
|
1062
|
-
/**
|
|
1063
|
-
* The size of the button
|
|
1064
|
-
* @default 'medium'
|
|
3301
|
+
* The name of the switch for form submission
|
|
1065
3302
|
*/
|
|
1066
|
-
"
|
|
3303
|
+
"name"?: string;
|
|
1067
3304
|
/**
|
|
1068
|
-
*
|
|
1069
|
-
* @default 'button'
|
|
3305
|
+
* Emitted when the switch state changes
|
|
1070
3306
|
*/
|
|
1071
|
-
"
|
|
3307
|
+
"onAfChange"?: (event: AfSwitchCustomEvent<{ active: boolean }>) => void;
|
|
1072
3308
|
/**
|
|
1073
|
-
* The
|
|
1074
|
-
* @default 'primary'
|
|
3309
|
+
* The value of the switch for form submission
|
|
1075
3310
|
*/
|
|
1076
|
-
"
|
|
1077
|
-
}
|
|
1078
|
-
/**
|
|
1079
|
-
* Affinda logo component
|
|
1080
|
-
*/
|
|
1081
|
-
interface AfLogo {
|
|
1082
|
-
}
|
|
1083
|
-
/**
|
|
1084
|
-
* A rounded container for displaying client logos
|
|
1085
|
-
*/
|
|
1086
|
-
interface AfLogoWell {
|
|
3311
|
+
"value"?: string;
|
|
1087
3312
|
}
|
|
1088
3313
|
/**
|
|
1089
|
-
*
|
|
1090
|
-
*
|
|
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
|
+
* ```
|
|
1091
3325
|
*/
|
|
1092
|
-
interface
|
|
3326
|
+
interface AfTab {
|
|
1093
3327
|
/**
|
|
1094
|
-
* Whether
|
|
3328
|
+
* Whether the tab is currently active/selected
|
|
1095
3329
|
* @default false
|
|
1096
3330
|
*/
|
|
1097
3331
|
"active"?: boolean;
|
|
1098
3332
|
/**
|
|
1099
|
-
*
|
|
1100
|
-
* @default
|
|
3333
|
+
* Whether the tab is disabled
|
|
3334
|
+
* @default false
|
|
1101
3335
|
*/
|
|
1102
|
-
"
|
|
3336
|
+
"disabled"?: boolean;
|
|
1103
3337
|
/**
|
|
1104
|
-
*
|
|
3338
|
+
* Whether to show the icon slot
|
|
3339
|
+
* @default false
|
|
1105
3340
|
*/
|
|
1106
|
-
"
|
|
3341
|
+
"displayIcon"?: boolean;
|
|
1107
3342
|
/**
|
|
1108
|
-
*
|
|
1109
|
-
* @default
|
|
3343
|
+
* Whether to show the number badge slot
|
|
3344
|
+
* @default false
|
|
1110
3345
|
*/
|
|
1111
|
-
"
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
3346
|
+
"displayNumber"?: boolean;
|
|
3347
|
+
/**
|
|
3348
|
+
* The text label for the tab
|
|
3349
|
+
* @default ''
|
|
3350
|
+
*/
|
|
3351
|
+
"label"?: string;
|
|
3352
|
+
/**
|
|
3353
|
+
* Emitted when the tab is clicked
|
|
3354
|
+
*/
|
|
3355
|
+
"onAfTabClick"?: (event: AfTabCustomEvent<{ value?: string }>) => void;
|
|
3356
|
+
/**
|
|
3357
|
+
* Visual shape variant - `square` - Rectangular tab with bottom border indicator - `pill` - Rounded pill shape with background for active state
|
|
3358
|
+
* @default 'square'
|
|
3359
|
+
*/
|
|
3360
|
+
"shape"?: TabShape;
|
|
3361
|
+
/**
|
|
3362
|
+
* Unique value for the tab, used for programmatic selection
|
|
3363
|
+
*/
|
|
3364
|
+
"value"?: string;
|
|
1119
3365
|
}
|
|
1120
3366
|
/**
|
|
1121
|
-
*
|
|
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
|
+
* ```
|
|
1122
3376
|
*/
|
|
1123
|
-
interface
|
|
1124
|
-
/**
|
|
1125
|
-
* Background color
|
|
1126
|
-
* @default 'white'
|
|
1127
|
-
*/
|
|
1128
|
-
"background"?: 'white' | 'level1' | 'dark' | 'inkwell';
|
|
3377
|
+
interface AfTabBar {
|
|
1129
3378
|
/**
|
|
1130
|
-
*
|
|
1131
|
-
* @default
|
|
3379
|
+
* Responsive breakpoint mode - `mobile` - Compact layout with smaller padding - `desktop` - Larger layout with more generous spacing
|
|
3380
|
+
* @default 'desktop'
|
|
1132
3381
|
*/
|
|
1133
|
-
"
|
|
3382
|
+
"breakpoint"?: TabBarBreakpoint;
|
|
1134
3383
|
/**
|
|
1135
|
-
*
|
|
1136
|
-
* @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'
|
|
1137
3386
|
*/
|
|
1138
|
-
"
|
|
3387
|
+
"shape"?: TabBarShape;
|
|
1139
3388
|
}
|
|
1140
3389
|
/**
|
|
1141
|
-
*
|
|
1142
|
-
*
|
|
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
|
+
* ```
|
|
1143
3397
|
*/
|
|
1144
|
-
interface
|
|
3398
|
+
interface AfTag {
|
|
1145
3399
|
/**
|
|
1146
|
-
*
|
|
1147
|
-
* @default '#'
|
|
3400
|
+
* The URL to navigate to when the tag is clicked (makes the tag a link)
|
|
1148
3401
|
*/
|
|
1149
3402
|
"href"?: string;
|
|
1150
3403
|
/**
|
|
1151
|
-
*
|
|
1152
|
-
* @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'
|
|
1153
3406
|
*/
|
|
1154
|
-
"
|
|
3407
|
+
"size"?: TagSize;
|
|
1155
3408
|
/**
|
|
1156
|
-
*
|
|
1157
|
-
* @default ''
|
|
3409
|
+
* The visual variant of the tag - `sand` - Soft-clay/tan colored background (default) - `light` - Mist-green/light colored background
|
|
3410
|
+
* @default 'sand'
|
|
1158
3411
|
*/
|
|
1159
|
-
"
|
|
3412
|
+
"variant"?: TagVariant;
|
|
1160
3413
|
}
|
|
1161
3414
|
interface AfTestimonial {
|
|
1162
3415
|
/**
|
|
@@ -1167,10 +3420,28 @@ declare namespace LocalJSX {
|
|
|
1167
3420
|
* Background image URL for the testimonial card
|
|
1168
3421
|
*/
|
|
1169
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;
|
|
1170
3433
|
/**
|
|
1171
3434
|
* Company logo URL
|
|
1172
3435
|
*/
|
|
1173
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;
|
|
1174
3445
|
/**
|
|
1175
3446
|
* Testimonial quote text
|
|
1176
3447
|
*/
|
|
@@ -1179,7 +3450,17 @@ declare namespace LocalJSX {
|
|
|
1179
3450
|
* Link to full case study
|
|
1180
3451
|
*/
|
|
1181
3452
|
"readMoreLink"?: string;
|
|
3453
|
+
/**
|
|
3454
|
+
* Whether to show built-in navigation buttons (used when in a carousel)
|
|
3455
|
+
* @default false
|
|
3456
|
+
*/
|
|
3457
|
+
"showNavigation"?: boolean;
|
|
1182
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
|
+
*/
|
|
1183
3464
|
interface AfTestimonialCarousel {
|
|
1184
3465
|
}
|
|
1185
3466
|
interface AfTestimonialStat {
|
|
@@ -1197,6 +3478,11 @@ declare namespace LocalJSX {
|
|
|
1197
3478
|
*/
|
|
1198
3479
|
"value": string;
|
|
1199
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
|
+
*/
|
|
1200
3486
|
interface AfText {
|
|
1201
3487
|
/**
|
|
1202
3488
|
* Visual alignment
|
|
@@ -1208,16 +3494,144 @@ declare namespace LocalJSX {
|
|
|
1208
3494
|
* @default 'p'
|
|
1209
3495
|
*/
|
|
1210
3496
|
"as"?: 'p' | 'span' | 'div' | 'label';
|
|
1211
|
-
/**
|
|
1212
|
-
* Theme for dark backgrounds
|
|
1213
|
-
* @default 'light'
|
|
1214
|
-
*/
|
|
1215
|
-
"theme"?: 'light' | 'dark';
|
|
1216
3497
|
/**
|
|
1217
3498
|
* Text variant
|
|
1218
3499
|
* @default 'medium'
|
|
1219
3500
|
*/
|
|
1220
|
-
"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;
|
|
1221
3635
|
}
|
|
1222
3636
|
interface AfTypographyLockup {
|
|
1223
3637
|
/**
|
|
@@ -1245,34 +3659,98 @@ declare namespace LocalJSX {
|
|
|
1245
3659
|
*/
|
|
1246
3660
|
"textAlignment"?: 'left' | 'center';
|
|
1247
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
|
+
}
|
|
1248
3700
|
interface IntrinsicElements {
|
|
1249
3701
|
"af-aspect-ratio": AfAspectRatio;
|
|
1250
3702
|
"af-button": AfButton;
|
|
1251
3703
|
"af-button-group": AfButtonGroup;
|
|
1252
3704
|
"af-card": AfCard;
|
|
3705
|
+
"af-checkbox": AfCheckbox;
|
|
1253
3706
|
"af-client-carousel": AfClientCarousel;
|
|
1254
3707
|
"af-color-swatch": AfColorSwatch;
|
|
1255
3708
|
"af-contact-item": AfContactItem;
|
|
1256
3709
|
"af-container": AfContainer;
|
|
1257
|
-
"af-cta-section": AfCtaSection;
|
|
1258
3710
|
"af-feature-accordion": AfFeatureAccordion;
|
|
3711
|
+
"af-feature-card": AfFeatureCard;
|
|
3712
|
+
"af-feature-grid": AfFeatureGrid;
|
|
3713
|
+
"af-fieldset": AfFieldset;
|
|
1259
3714
|
"af-footer": AfFooter;
|
|
1260
3715
|
"af-footer-column": AfFooterColumn;
|
|
1261
3716
|
"af-footer-link": AfFooterLink;
|
|
3717
|
+
"af-grid-callout": AfGridCallout;
|
|
1262
3718
|
"af-heading": AfHeading;
|
|
1263
3719
|
"af-hero-section": AfHeroSection;
|
|
3720
|
+
"af-icon": AfIcon;
|
|
3721
|
+
"af-icon-box": AfIconBox;
|
|
1264
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;
|
|
1265
3728
|
"af-logo": AfLogo;
|
|
1266
3729
|
"af-logo-well": AfLogoWell;
|
|
3730
|
+
"af-nav-card": AfNavCard;
|
|
1267
3731
|
"af-nav-item": AfNavItem;
|
|
3732
|
+
"af-nav-menu": AfNavMenu;
|
|
3733
|
+
"af-nav-menu-nest": AfNavMenuNest;
|
|
1268
3734
|
"af-navbar": AfNavbar;
|
|
3735
|
+
"af-number-badge": AfNumberBadge;
|
|
3736
|
+
"af-progress-line": AfProgressLine;
|
|
3737
|
+
"af-radio": AfRadio;
|
|
1269
3738
|
"af-section": AfSection;
|
|
1270
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;
|
|
1271
3745
|
"af-testimonial": AfTestimonial;
|
|
1272
3746
|
"af-testimonial-carousel": AfTestimonialCarousel;
|
|
1273
3747
|
"af-testimonial-stat": AfTestimonialStat;
|
|
1274
3748
|
"af-text": AfText;
|
|
3749
|
+
"af-text-image": AfTextImage;
|
|
3750
|
+
"af-text-image-nest": AfTextImageNest;
|
|
3751
|
+
"af-textarea": AfTextarea;
|
|
1275
3752
|
"af-typography-lockup": AfTypographyLockup;
|
|
3753
|
+
"af-video-container": AfVideoContainer;
|
|
1276
3754
|
}
|
|
1277
3755
|
}
|
|
1278
3756
|
export { LocalJSX as JSX };
|
|
@@ -1284,11 +3762,30 @@ declare module "@stencil/core" {
|
|
|
1284
3762
|
* Useful for images, videos, or any content that needs to maintain specific proportions.
|
|
1285
3763
|
*/
|
|
1286
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
|
+
*/
|
|
1287
3770
|
"af-button": LocalJSX.AfButton & JSXBase.HTMLAttributes<HTMLAfButtonElement>;
|
|
1288
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
|
+
*/
|
|
1289
3778
|
"af-card": LocalJSX.AfCard & JSXBase.HTMLAttributes<HTMLAfCardElement>;
|
|
1290
3779
|
/**
|
|
1291
|
-
*
|
|
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.
|
|
1292
3789
|
*/
|
|
1293
3790
|
"af-client-carousel": LocalJSX.AfClientCarousel & JSXBase.HTMLAttributes<HTMLAfClientCarouselElement>;
|
|
1294
3791
|
"af-color-swatch": LocalJSX.AfColorSwatch & JSXBase.HTMLAttributes<HTMLAfColorSwatchElement>;
|
|
@@ -1303,16 +3800,38 @@ declare module "@stencil/core" {
|
|
|
1303
3800
|
*/
|
|
1304
3801
|
"af-container": LocalJSX.AfContainer & JSXBase.HTMLAttributes<HTMLAfContainerElement>;
|
|
1305
3802
|
/**
|
|
1306
|
-
*
|
|
1307
|
-
*
|
|
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
|
+
* ```
|
|
1308
3813
|
*/
|
|
1309
|
-
"af-
|
|
3814
|
+
"af-feature-accordion": LocalJSX.AfFeatureAccordion & JSXBase.HTMLAttributes<HTMLAfFeatureAccordionElement>;
|
|
1310
3815
|
/**
|
|
1311
|
-
* Feature
|
|
1312
|
-
*
|
|
1313
|
-
*
|
|
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.
|
|
1314
3822
|
*/
|
|
1315
|
-
"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>;
|
|
1316
3835
|
/**
|
|
1317
3836
|
* Footer component for marketing pages
|
|
1318
3837
|
* Provides a flexible, slot-based layout for footer content
|
|
@@ -1329,12 +3848,116 @@ declare module "@stencil/core" {
|
|
|
1329
3848
|
* Styled link for use in footer navigation columns
|
|
1330
3849
|
*/
|
|
1331
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
|
+
*/
|
|
1332
3882
|
"af-heading": LocalJSX.AfHeading & JSXBase.HTMLAttributes<HTMLAfHeadingElement>;
|
|
1333
3883
|
/**
|
|
1334
|
-
* 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.
|
|
1335
3887
|
*/
|
|
1336
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>;
|
|
1337
3909
|
"af-icon-button": LocalJSX.AfIconButton & JSXBase.HTMLAttributes<HTMLAfIconButtonElement>;
|
|
3910
|
+
/**
|
|
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>;
|
|
1338
3961
|
/**
|
|
1339
3962
|
* Affinda logo component
|
|
1340
3963
|
*/
|
|
@@ -1343,19 +3966,75 @@ declare module "@stencil/core" {
|
|
|
1343
3966
|
* A rounded container for displaying client logos
|
|
1344
3967
|
*/
|
|
1345
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>;
|
|
1346
3980
|
/**
|
|
1347
3981
|
* A generic navigation item component that can be used in navigation bars, menus, and sidebars.
|
|
1348
3982
|
* Supports multiple hierarchy levels, variants, and states (active, hover).
|
|
1349
3983
|
*/
|
|
1350
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>;
|
|
1351
4008
|
/**
|
|
1352
4009
|
* A full-width navigation bar component that provides the main site navigation.
|
|
1353
4010
|
* Features a pill-shaped container with logo, navigation links, and action buttons.
|
|
1354
|
-
* Includes mobile hamburger menu.
|
|
4011
|
+
* Includes mobile hamburger menu and support for mega-menu dropdowns.
|
|
4012
|
+
* The logo slot can be used to provide a custom logo. If no logo is provided,
|
|
4013
|
+
* the default Affinda logo will be displayed.
|
|
1355
4014
|
*/
|
|
1356
4015
|
"af-navbar": LocalJSX.AfNavbar & JSXBase.HTMLAttributes<HTMLAfNavbarElement>;
|
|
1357
4016
|
/**
|
|
1358
|
-
*
|
|
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.
|
|
1359
4038
|
*/
|
|
1360
4039
|
"af-section": LocalJSX.AfSection & JSXBase.HTMLAttributes<HTMLAfSectionElement>;
|
|
1361
4040
|
/**
|
|
@@ -1363,11 +4042,108 @@ declare module "@stencil/core" {
|
|
|
1363
4042
|
* Circular bordered icon link for social media profiles
|
|
1364
4043
|
*/
|
|
1365
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>;
|
|
1366
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
|
+
*/
|
|
1367
4098
|
"af-testimonial-carousel": LocalJSX.AfTestimonialCarousel & JSXBase.HTMLAttributes<HTMLAfTestimonialCarouselElement>;
|
|
1368
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
|
+
*/
|
|
1369
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>;
|
|
1370
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>;
|
|
1371
4147
|
}
|
|
1372
4148
|
}
|
|
1373
4149
|
}
|