@affinda/react 0.0.21 → 0.0.22

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/README.md CHANGED
@@ -125,6 +125,9 @@ import { Button, Heading, TypographyLockup } from '@affinda/react';
125
125
  **Decorative:**
126
126
  - **PaperclipDecoration** - Decorative paperclip vector for hero sections
127
127
 
128
+ **Footer:**
129
+ - **Footer** / AfFooter - Full-featured footer with navigation, contact info, and social links
130
+
128
131
  ## Quick Start Components
129
132
 
130
133
  ### HeroSection
@@ -752,6 +755,49 @@ When generating Affinda UI code:
752
755
 
753
756
  4. **Never use purple colors** - those were placeholder colors and have been removed
754
757
 
758
+ ### Footer
759
+
760
+ A comprehensive footer component matching affinda.com's design.
761
+
762
+ ```tsx
763
+ import { Footer, Logo } from '@affinda/react';
764
+
765
+ <Footer
766
+ salesEmail="contact@affinda.com"
767
+ supportEmail="support@affinda.com"
768
+ linkedinUrl="https://www.linkedin.com/company/affinda/"
769
+ youtubeUrl="https://www.youtube.com/@affinda"
770
+ githubUrl="https://github.com/affinda"
771
+ statusUrl="https://status.affinda.com"
772
+ systemsOperational={true}
773
+ >
774
+ <Logo slot="logo" />
775
+ </Footer>
776
+ ```
777
+
778
+ **Props:**
779
+ - `salesEmail`: Sales contact email address
780
+ - `supportEmail`: Support contact email address
781
+ - `linkedinUrl`: LinkedIn profile URL
782
+ - `youtubeUrl`: YouTube channel URL
783
+ - `githubUrl`: GitHub organization URL
784
+ - `statusUrl`: Status page URL
785
+ - `systemsOperational`: Boolean indicating system status
786
+ - `copyrightYear`: Copyright year (defaults to current year)
787
+
788
+ **Slots:**
789
+ - `logo`: Custom logo component (defaults to Affinda logo)
790
+ - `nav-columns`: Custom navigation columns (defaults to Affinda navigation)
791
+ - `badges`: Custom certification badges (defaults to GDPR, SOC, ISO badges)
792
+
793
+ **Features:**
794
+ - Dark inkwell background with mist green text
795
+ - Social media links with hover effects
796
+ - Four-column navigation layout
797
+ - System status indicator
798
+ - Legal links and certification badges
799
+ - Fully responsive design
800
+
755
801
  ## Using Illustrations
756
802
 
757
803
  The `@affinda/illustrations` package provides themed illustration assets:
@@ -11,6 +11,7 @@ import { AfColorSwatch as AfColorSwatchElement } from "@affinda/wc/dist/componen
11
11
  import { AfContainer as AfContainerElement } from "@affinda/wc/dist/components/af-container.js";
12
12
  import { AfCtaSection as AfCtaSectionElement } from "@affinda/wc/dist/components/af-cta-section.js";
13
13
  import { AfFeatureAccordion as AfFeatureAccordionElement } from "@affinda/wc/dist/components/af-feature-accordion.js";
14
+ import { AfFooter as AfFooterElement } from "@affinda/wc/dist/components/af-footer.js";
14
15
  import { AfHeading as AfHeadingElement } from "@affinda/wc/dist/components/af-heading.js";
15
16
  import { AfHeroSection as AfHeroSectionElement } from "@affinda/wc/dist/components/af-hero-section.js";
16
17
  import { AfIconButton as AfIconButtonElement } from "@affinda/wc/dist/components/af-icon-button.js";
@@ -43,6 +44,8 @@ export type AfCtaSectionEvents = NonNullable<unknown>;
43
44
  export declare const AfCtaSection: StencilReactComponent<AfCtaSectionElement, AfCtaSectionEvents>;
44
45
  export type AfFeatureAccordionEvents = NonNullable<unknown>;
45
46
  export declare const AfFeatureAccordion: StencilReactComponent<AfFeatureAccordionElement, AfFeatureAccordionEvents>;
47
+ export type AfFooterEvents = NonNullable<unknown>;
48
+ export declare const AfFooter: StencilReactComponent<AfFooterElement, AfFooterEvents>;
46
49
  export type AfHeadingEvents = NonNullable<unknown>;
47
50
  export declare const AfHeading: StencilReactComponent<AfHeadingElement, AfHeadingEvents>;
48
51
  export type AfHeroSectionEvents = NonNullable<unknown>;
@@ -13,6 +13,7 @@ import { AfColorSwatch as AfColorSwatchElement, defineCustomElement as defineAfC
13
13
  import { AfContainer as AfContainerElement, defineCustomElement as defineAfContainer } from "@affinda/wc/dist/components/af-container.js";
14
14
  import { AfCtaSection as AfCtaSectionElement, defineCustomElement as defineAfCtaSection } from "@affinda/wc/dist/components/af-cta-section.js";
15
15
  import { AfFeatureAccordion as AfFeatureAccordionElement, defineCustomElement as defineAfFeatureAccordion } from "@affinda/wc/dist/components/af-feature-accordion.js";
16
+ import { AfFooter as AfFooterElement, defineCustomElement as defineAfFooter } from "@affinda/wc/dist/components/af-footer.js";
16
17
  import { AfHeading as AfHeadingElement, defineCustomElement as defineAfHeading } from "@affinda/wc/dist/components/af-heading.js";
17
18
  import { AfHeroSection as AfHeroSectionElement, defineCustomElement as defineAfHeroSection } from "@affinda/wc/dist/components/af-hero-section.js";
18
19
  import { AfIconButton as AfIconButtonElement, defineCustomElement as defineAfIconButton } from "@affinda/wc/dist/components/af-icon-button.js";
@@ -100,6 +101,14 @@ export const AfFeatureAccordion = /*@__PURE__*/ createComponent({
100
101
  events: {},
101
102
  defineCustomElement: defineAfFeatureAccordion
102
103
  });
104
+ export const AfFooter = /*@__PURE__*/ createComponent({
105
+ tagName: 'af-footer',
106
+ elementClass: AfFooterElement,
107
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
108
+ react: React,
109
+ events: {},
110
+ defineCustomElement: defineAfFooter
111
+ });
103
112
  export const AfHeading = /*@__PURE__*/ createComponent({
104
113
  tagName: 'af-heading',
105
114
  elementClass: AfHeadingElement,
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './generated/components.js';
2
- export { AfAspectRatio as AspectRatio, AfButton as Button, AfButtonGroup as ButtonGroup, AfCard as Card, AfClientCarousel as ClientCarousel, AfColorSwatch as ColorSwatch, AfContainer as Container, AfCtaSection as CtaSection, AfFeatureAccordion as FeatureAccordion, AfHeading as Heading, AfHeroSection as HeroSection, AfIconButton as IconButton, AfLogo as Logo, AfLogoWell as LogoWell, AfNavItem as NavItem, AfNavbar as Navbar, AfSection as Section, AfText as Text, AfTestimonial as Testimonial, AfTestimonialCarousel as TestimonialCarousel, AfTestimonialStat as TestimonialStat, AfTypographyLockup as TypographyLockup } from './generated/components.js';
2
+ export { AfAspectRatio as AspectRatio, AfButton as Button, AfButtonGroup as ButtonGroup, AfCard as Card, AfClientCarousel as ClientCarousel, AfColorSwatch as ColorSwatch, AfContainer as Container, AfCtaSection as CtaSection, AfFeatureAccordion as FeatureAccordion, AfFooter as Footer, AfHeading as Heading, AfHeroSection as HeroSection, AfIconButton as IconButton, AfLogo as Logo, AfLogoWell as LogoWell, AfNavItem as NavItem, AfNavbar as Navbar, AfSection as Section, AfText as Text, AfTestimonial as Testimonial, AfTestimonialCarousel as TestimonialCarousel, AfTestimonialStat as TestimonialStat, AfTypographyLockup as TypographyLockup } from './generated/components.js';
3
3
  export * from '@affinda/icons/react';
4
4
  export { PaperclipDecoration } from './components/PaperclipDecoration';
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  export * from './generated/components.js';
3
3
  // Note: defineCustomElements should be imported directly from @affinda/wc/loader/index.js in your app
4
4
  // Re-export components without the 'Af' prefix for cleaner React usage
5
- export { AfAspectRatio as AspectRatio, AfButton as Button, AfButtonGroup as ButtonGroup, AfCard as Card, AfClientCarousel as ClientCarousel, AfColorSwatch as ColorSwatch, AfContainer as Container, AfCtaSection as CtaSection, AfFeatureAccordion as FeatureAccordion, AfHeading as Heading, AfHeroSection as HeroSection, AfIconButton as IconButton, AfLogo as Logo, AfLogoWell as LogoWell, AfNavItem as NavItem, AfNavbar as Navbar, AfSection as Section, AfText as Text, AfTestimonial as Testimonial, AfTestimonialCarousel as TestimonialCarousel, AfTestimonialStat as TestimonialStat, AfTypographyLockup as TypographyLockup } from './generated/components.js';
5
+ export { AfAspectRatio as AspectRatio, AfButton as Button, AfButtonGroup as ButtonGroup, AfCard as Card, AfClientCarousel as ClientCarousel, AfColorSwatch as ColorSwatch, AfContainer as Container, AfCtaSection as CtaSection, AfFeatureAccordion as FeatureAccordion, AfFooter as Footer, AfHeading as Heading, AfHeroSection as HeroSection, AfIconButton as IconButton, AfLogo as Logo, AfLogoWell as LogoWell, AfNavItem as NavItem, AfNavbar as Navbar, AfSection as Section, AfText as Text, AfTestimonial as Testimonial, AfTestimonialCarousel as TestimonialCarousel, AfTestimonialStat as TestimonialStat, AfTypographyLockup as TypographyLockup } from './generated/components.js';
6
6
  // Re-export React icon components from icons package
7
7
  export * from '@affinda/icons/react';
8
8
  // Export custom React components
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@affinda/react",
3
- "version": "0.0.21",
3
+ "version": "0.0.22",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "files": [
@@ -16,7 +16,7 @@
16
16
  },
17
17
  "dependencies": {
18
18
  "@affinda/icons": "^0.0.3",
19
- "@affinda/wc": "^0.0.12",
19
+ "@affinda/wc": "^0.0.13",
20
20
  "@stencil/react-output-target": "^1.2.0"
21
21
  },
22
22
  "scripts": {