@affinda/react 0.0.12 → 0.0.14

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
@@ -80,18 +80,336 @@ import { Button, Heading, TypographyLockup } from '@affinda/react';
80
80
 
81
81
  ### Available Components
82
82
 
83
- - **Button** / AfButton - Primary buttons with variants and icons
84
- - **ButtonGroup** / AfButtonGroup - Group multiple buttons together
85
- - **IconButton** / AfIconButton - Icon-only buttons
86
- - **Heading** / AfHeading - Typography headings (H1-H6)
87
- - **Text** / AfText - Body text components
88
- - **TypographyLockup** / AfTypographyLockup - Composite heading + text + button layouts
83
+ **Layout & Structure:**
84
+ - **HeroSection** / AfHeroSection - Hero sections for marketing pages
85
+ - **Section** / AfSection - Page sections with consistent spacing
89
86
  - **Container** / AfContainer - Layout containers with max-width
90
87
  - **AspectRatio** / AfAspectRatio - Maintain aspect ratios for media
88
+
89
+ **Navigation:**
90
+ - **Navbar** / AfNavbar - Navigation bar with mobile hamburger menu
91
+ - **NavItem** / AfNavItem - Navigation items
92
+
93
+ **Typography:**
94
+ - **Heading** / AfHeading - Typography headings (H1-H6) with theme support
95
+ - **Text** / AfText - Body text components with theme support
96
+ - **TypographyLockup** / AfTypographyLockup - Composite heading + text + button layouts
97
+
98
+ **Buttons:**
99
+ - **Button** / AfButton - Primary buttons with variants, icons, and dark background support
100
+ - **ButtonGroup** / AfButtonGroup - Group multiple buttons together
101
+ - **IconButton** / AfIconButton - Icon-only buttons
102
+
103
+ **Cards & Content:**
104
+ - **Card** / AfCard - Content cards with optional backgrounds and photo variants
91
105
  - **ColorSwatch** / AfColorSwatch - Display color swatches
106
+
107
+ **Social Proof:**
108
+ - **ClientCarousel** / AfClientCarousel - Infinite scrolling carousel for client logos
109
+ - **LogoWell** / AfLogoWell - Rounded container for client logos
110
+ - **Testimonial** / AfTestimonial - Customer testimonials with background images, stats, and quotes
111
+ - **TestimonialCarousel** / AfTestimonialCarousel - Carousel for sliding between multiple testimonials
112
+ - **TestimonialStat** / AfTestimonialStat - Individual statistics within testimonials
113
+
114
+ **Brand:**
92
115
  - **Logo** / AfLogo - Affinda logo component
93
- - **Navbar** / AfNavbar - Navigation bar
94
- - **NavItem** / AfNavItem - Navigation items
116
+
117
+ **Decorative:**
118
+ - **PaperclipDecoration** - Decorative paperclip vector for hero sections
119
+
120
+ ## Quick Start Components
121
+
122
+ ### HeroSection
123
+
124
+ The hero section component makes it easy to create marketing page heroes with consistent styling.
125
+
126
+ ```tsx
127
+ import { HeroSection, Heading, Text, Button, PaperclipDecoration } from '@affinda/react';
128
+
129
+ <HeroSection variant="dark" withDecoration={true} minHeight="60vh">
130
+ <PaperclipDecoration slot="decoration" />
131
+ <Heading level="1" theme="dark" align="center">
132
+ Harness AI to transform business processes
133
+ </Heading>
134
+ <Text variant="large" theme="dark" align="center">
135
+ Around the world, leading enterprises use Affinda's AI agents...
136
+ </Text>
137
+ <div style={{ display: 'flex', gap: '12px', justifyContent: 'center', marginTop: '2rem' }}>
138
+ <Button variant="primary">Discover the platform</Button>
139
+ <Button variant="secondary">Explore solutions</Button>
140
+ </div>
141
+ </HeroSection>
142
+ ```
143
+
144
+ **Props:**
145
+ - `variant`: `"light"` | `"dark"` (default: `"dark"`)
146
+ - `withDecoration`: boolean - Shows decoration slot
147
+ - `minHeight`: string - CSS min-height value
148
+
149
+ **Features:**
150
+ - Automatically applies correct text colors for dark backgrounds
151
+ - Built-in padding that accounts for floating navbar
152
+ - Responsive on mobile
153
+
154
+ ### Section
155
+
156
+ The section component provides consistent spacing and backgrounds for page sections.
157
+
158
+ ```tsx
159
+ import { Section, Heading, Text } from '@affinda/react';
160
+
161
+ <Section padding="default" background="level1" container={true}>
162
+ <Heading level="2" align="center">Work smarter, grow faster</Heading>
163
+ <Text variant="large" align="center">Feature content here...</Text>
164
+ </Section>
165
+ ```
166
+
167
+ **Props:**
168
+ - `padding`: `"tight"` (48px) | `"default"` (96px) | `"loose"` (120px)
169
+ - `background`: `"white"` | `"level1"` | `"dark"` | `"inkwell"`
170
+ - `container`: boolean - Auto-wraps content in Container
171
+
172
+ ### Card with Photo Background
173
+
174
+ Cards now support photo backgrounds with gradient overlays.
175
+
176
+ ```tsx
177
+ import { Card, Heading, Text } from '@affinda/react';
178
+
179
+ // Light background card
180
+ <Card backgroundColor="var(--colour-background-level1)">
181
+ <Heading level="3">Automate any document with 99%+ accuracy</Heading>
182
+ <Text variant="large">Extract any information...</Text>
183
+ <img src="screenshot.webp" alt="Feature" />
184
+ </Card>
185
+
186
+ // Photo background card with dark overlay
187
+ <Card backgroundImage="photo.jpg" darkOverlay={true}>
188
+ <Heading level="3">Build models in minutes</Heading>
189
+ <Text variant="large">Affinda is the only AI platform...</Text>
190
+ </Card>
191
+ ```
192
+
193
+ **Props:**
194
+ - `backgroundColor`: CSS color or variable
195
+ - `backgroundImage`: URL to background image
196
+ - `darkOverlay`: boolean - Applies gradient overlay with white text
197
+
198
+ ## Component Guide
199
+
200
+ ### When to Use Each Component
201
+
202
+ #### Layout & Structure
203
+
204
+ **Container**
205
+ - Use for all page sections to maintain consistent max-width and horizontal padding
206
+ - Creates responsive layouts that don't span the full viewport on large screens
207
+ - Best practice: Wrap each major section of your page in a Container
208
+
209
+ ```tsx
210
+ <Container>
211
+ <Heading level="2">Section Title</Heading>
212
+ <Text>Section content goes here...</Text>
213
+ </Container>
214
+ ```
215
+
216
+ **AspectRatio**
217
+ - Maintain consistent dimensions for images, videos, or media
218
+ - Prevents layout shift during content loading
219
+ - Common ratios: `16/9` (video), `1/1` (square), `4/3` (legacy video)
220
+
221
+ ```tsx
222
+ <AspectRatio ratio="16/9">
223
+ <img src="video-thumbnail.jpg" alt="Preview" />
224
+ </AspectRatio>
225
+ ```
226
+
227
+ **Card**
228
+ - Group related content with visual separation
229
+ - Use for feature highlights, product listings, or content previews
230
+ - Supports borders and elevation for depth
231
+
232
+ ```tsx
233
+ <Card>
234
+ <Heading level="3">Feature Title</Heading>
235
+ <Text>Feature description...</Text>
236
+ </Card>
237
+ ```
238
+
239
+ #### Typography
240
+
241
+ **Heading**
242
+ - Use semantic heading levels (1-6) for SEO and accessibility
243
+ - Level 1: Page title (use once per page)
244
+ - Level 2: Major sections
245
+ - Level 3-4: Subsections
246
+ - Never skip heading levels
247
+
248
+ ```tsx
249
+ <Heading level="1">Page Title</Heading>
250
+ <Heading level="2">Section Title</Heading>
251
+ <Heading level="3">Subsection</Heading>
252
+ ```
253
+
254
+ **Text**
255
+ - Use for all body text, descriptions, and paragraphs
256
+ - Variants: `default`, `small`, `large`
257
+ - Automatically uses NeuSans font
258
+
259
+ ```tsx
260
+ <Text variant="large">Introductory paragraph with emphasis</Text>
261
+ <Text>Standard body text</Text>
262
+ <Text variant="small">Fine print or captions</Text>
263
+ ```
264
+
265
+ **TypographyLockup**
266
+ - Composite component for hero sections and major content blocks
267
+ - Automatically handles heading + description + buttons layout
268
+ - Supports different breakpoints and alignments
269
+ - Use for: Hero sections, feature highlights, CTAs
270
+
271
+ ```tsx
272
+ <TypographyLockup
273
+ headingSize={1}
274
+ textAlignment="center"
275
+ buttonAlignment="horizontal"
276
+ >
277
+ <Heading level="1">Automate Your Workflow</Heading>
278
+ <Text slot="description">Extract data from documents in seconds</Text>
279
+ <div slot="buttons">
280
+ <Button variant="primary">Get Started</Button>
281
+ <Button variant="secondary">Learn More</Button>
282
+ </div>
283
+ </TypographyLockup>
284
+ ```
285
+
286
+ #### Buttons & Actions
287
+
288
+ **Button**
289
+ - Primary actions: Use `variant="primary"` (sparingly, 1-2 per screen)
290
+ - Secondary actions: Use `variant="secondary"`
291
+ - Sizes: `small`, `default`, `large`
292
+ - Can include icons in left or right slots
293
+
294
+ ```tsx
295
+ <Button variant="primary" size="large">Sign Up Now</Button>
296
+ <Button variant="secondary">Learn More</Button>
297
+ ```
298
+
299
+ **ButtonGroup**
300
+ - Group related buttons with consistent spacing
301
+ - Maintains visual hierarchy and alignment
302
+
303
+ ```tsx
304
+ <ButtonGroup>
305
+ <Button variant="primary">Save</Button>
306
+ <Button variant="secondary">Cancel</Button>
307
+ </ButtonGroup>
308
+ ```
309
+
310
+ **IconButton**
311
+ - Use for toolbar actions, navigation controls, or when space is limited
312
+ - Always include aria-label for accessibility
313
+ - Common uses: Close buttons, navigation arrows, menu toggles
314
+
315
+ ```tsx
316
+ <IconButton variant="secondary" aria-label="Close dialog">
317
+ <svg>...</svg>
318
+ </IconButton>
319
+ ```
320
+
321
+ #### Navigation
322
+
323
+ **Navbar**
324
+ - Site-wide navigation header
325
+ - Responsive design with mobile menu support
326
+ - Include Logo in the `logo` slot
327
+
328
+ ```tsx
329
+ <Navbar>
330
+ <Logo slot="logo" />
331
+ <NavItem hierarchy="primary" href="/">Home</NavItem>
332
+ <NavItem hierarchy="primary" href="/about">About</NavItem>
333
+ <NavItem hierarchy="secondary" href="/login">Log In</NavItem>
334
+ </Navbar>
335
+ ```
336
+
337
+ **NavItem**
338
+ - Individual navigation links
339
+ - Hierarchy: `primary` (main nav), `secondary` (utility nav)
340
+ - Variant: Controls visual style
341
+
342
+ #### Social Proof & Testimonials
343
+
344
+ **Testimonial**
345
+ - Showcase customer success stories with rich media
346
+ - Include: background image, logo, quote, attribution, and statistics
347
+ - Use within TestimonialCarousel for multiple testimonials
348
+
349
+ ```tsx
350
+ <Testimonial
351
+ backgroundImage="https://example.com/background.jpg"
352
+ logoImage="https://example.com/company-logo.png"
353
+ quote="Affinda transformed our document processing workflow."
354
+ attribution="– Jane Doe, CEO, Company Name"
355
+ readMoreLink="https://example.com/case-study"
356
+ >
357
+ <div slot="stats">
358
+ <TestimonialStat value="95%" description="reduction in processing time" />
359
+ <TestimonialStat value="10×" description="increase in throughput" />
360
+ </div>
361
+ </Testimonial>
362
+ ```
363
+
364
+ **TestimonialCarousel**
365
+ - Automatically handles navigation between multiple testimonials
366
+ - Includes slide animations and progress indicators
367
+ - Navigation buttons positioned for optimal UX
368
+ - Just wrap multiple Testimonial components
369
+
370
+ ```tsx
371
+ <TestimonialCarousel>
372
+ <Testimonial {...testimonial1Props}>
373
+ <div slot="stats">...</div>
374
+ </Testimonial>
375
+ <Testimonial {...testimonial2Props}>
376
+ <div slot="stats">...</div>
377
+ </Testimonial>
378
+ </TestimonialCarousel>
379
+ ```
380
+
381
+ **TestimonialStat**
382
+ - Display key metrics within testimonials
383
+ - Use 2-4 stats per testimonial for best impact
384
+ - Optional accent border for qualitative statements
385
+
386
+ ```tsx
387
+ <TestimonialStat value="99%" description="accuracy rate" />
388
+ <TestimonialStat
389
+ value=""
390
+ description="Reduced manual errors significantly"
391
+ accentBorder={true}
392
+ />
393
+ ```
394
+
395
+ #### Branding
396
+
397
+ **Logo**
398
+ - Affinda logo component with consistent sizing
399
+ - Use in Navbar and footer
400
+ - Automatically handles light/dark variants
401
+
402
+ ```tsx
403
+ <Logo />
404
+ ```
405
+
406
+ **ColorSwatch**
407
+ - Display color palettes or design tokens
408
+ - Useful for style guides and documentation
409
+
410
+ ```tsx
411
+ <ColorSwatch color="#C6D5D1" label="Mist Green" />
412
+ ```
95
413
 
96
414
  ### Icons
97
415
 
@@ -0,0 +1,8 @@
1
+ export interface PaperclipDecorationProps {
2
+ className?: string;
3
+ style?: Record<string, any>;
4
+ }
5
+ /**
6
+ * Decorative paperclip vector graphic for hero sections
7
+ */
8
+ export declare function PaperclipDecoration({ className, style }: PaperclipDecorationProps): any;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // @ts-nocheck
3
+ import * as React from 'react';
4
+ /**
5
+ * Decorative paperclip vector graphic for hero sections
6
+ */
7
+ export function PaperclipDecoration({ className, style }) {
8
+ const svgStyle = Object.assign({ display: 'block' }, style || {});
9
+ return (_jsx("svg", { preserveAspectRatio: "none", width: "100%", height: "100%", style: svgStyle, viewBox: "0 0 1212 753", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: className, "aria-hidden": true, children: _jsx("path", { d: "M1102.14 107.875C1031.8 37.1138 939.128 -1.47247 840.61 0.0430067H358.674L262.104 156.72H841.87C842.558 156.72 843.36 156.72 844.047 156.72C900.638 156.72 953.791 178.869 994 219.32C1035.24 260.821 1058.04 316.311 1058.04 375.647C1058.04 497.468 960.665 596.44 841.068 596.44H251.335C197.609 596.44 153.848 551.908 153.848 497.235C153.848 442.561 197.723 397.33 251.221 395.698H779.208L878.872 239.021H248.586C111.577 242.519 0 358.277 0 497.235C0 636.192 112.723 753 251.335 753H841.068C1045.55 753 1212 583.617 1212 375.531C1212 273.994 1173.05 178.985 1102.26 107.758L1102.14 107.875Z", fill: "white", fillOpacity: 0.06 }) }));
10
+ }
@@ -6,13 +6,20 @@ import { AfAspectRatio as AfAspectRatioElement } from "@affinda/wc/dist/componen
6
6
  import { AfButtonGroup as AfButtonGroupElement } from "@affinda/wc/dist/components/af-button-group.js";
7
7
  import { AfButton as AfButtonElement } from "@affinda/wc/dist/components/af-button.js";
8
8
  import { AfCard as AfCardElement } from "@affinda/wc/dist/components/af-card.js";
9
+ import { AfClientCarousel as AfClientCarouselElement } from "@affinda/wc/dist/components/af-client-carousel.js";
9
10
  import { AfColorSwatch as AfColorSwatchElement } from "@affinda/wc/dist/components/af-color-swatch.js";
10
11
  import { AfContainer as AfContainerElement } from "@affinda/wc/dist/components/af-container.js";
11
12
  import { AfHeading as AfHeadingElement } from "@affinda/wc/dist/components/af-heading.js";
13
+ import { AfHeroSection as AfHeroSectionElement } from "@affinda/wc/dist/components/af-hero-section.js";
12
14
  import { AfIconButton as AfIconButtonElement } from "@affinda/wc/dist/components/af-icon-button.js";
15
+ import { AfLogoWell as AfLogoWellElement } from "@affinda/wc/dist/components/af-logo-well.js";
13
16
  import { AfLogo as AfLogoElement } from "@affinda/wc/dist/components/af-logo.js";
14
17
  import { AfNavItem as AfNavItemElement } from "@affinda/wc/dist/components/af-nav-item.js";
15
18
  import { AfNavbar as AfNavbarElement } from "@affinda/wc/dist/components/af-navbar.js";
19
+ import { AfSection as AfSectionElement } from "@affinda/wc/dist/components/af-section.js";
20
+ import { AfTestimonialCarousel as AfTestimonialCarouselElement } from "@affinda/wc/dist/components/af-testimonial-carousel.js";
21
+ import { AfTestimonialStat as AfTestimonialStatElement } from "@affinda/wc/dist/components/af-testimonial-stat.js";
22
+ import { AfTestimonial as AfTestimonialElement } from "@affinda/wc/dist/components/af-testimonial.js";
16
23
  import { AfText as AfTextElement } from "@affinda/wc/dist/components/af-text.js";
17
24
  import { AfTypographyLockup as AfTypographyLockupElement } from "@affinda/wc/dist/components/af-typography-lockup.js";
18
25
  import type { StencilReactComponent } from '@stencil/react-output-target/runtime';
@@ -24,20 +31,34 @@ export type AfButtonGroupEvents = NonNullable<unknown>;
24
31
  export declare const AfButtonGroup: StencilReactComponent<AfButtonGroupElement, AfButtonGroupEvents>;
25
32
  export type AfCardEvents = NonNullable<unknown>;
26
33
  export declare const AfCard: StencilReactComponent<AfCardElement, AfCardEvents>;
34
+ export type AfClientCarouselEvents = NonNullable<unknown>;
35
+ export declare const AfClientCarousel: StencilReactComponent<AfClientCarouselElement, AfClientCarouselEvents>;
27
36
  export type AfColorSwatchEvents = NonNullable<unknown>;
28
37
  export declare const AfColorSwatch: StencilReactComponent<AfColorSwatchElement, AfColorSwatchEvents>;
29
38
  export type AfContainerEvents = NonNullable<unknown>;
30
39
  export declare const AfContainer: StencilReactComponent<AfContainerElement, AfContainerEvents>;
31
40
  export type AfHeadingEvents = NonNullable<unknown>;
32
41
  export declare const AfHeading: StencilReactComponent<AfHeadingElement, AfHeadingEvents>;
42
+ export type AfHeroSectionEvents = NonNullable<unknown>;
43
+ export declare const AfHeroSection: StencilReactComponent<AfHeroSectionElement, AfHeroSectionEvents>;
33
44
  export type AfIconButtonEvents = NonNullable<unknown>;
34
45
  export declare const AfIconButton: StencilReactComponent<AfIconButtonElement, AfIconButtonEvents>;
35
46
  export type AfLogoEvents = NonNullable<unknown>;
36
47
  export declare const AfLogo: StencilReactComponent<AfLogoElement, AfLogoEvents>;
48
+ export type AfLogoWellEvents = NonNullable<unknown>;
49
+ export declare const AfLogoWell: StencilReactComponent<AfLogoWellElement, AfLogoWellEvents>;
37
50
  export type AfNavItemEvents = NonNullable<unknown>;
38
51
  export declare const AfNavItem: StencilReactComponent<AfNavItemElement, AfNavItemEvents>;
39
52
  export type AfNavbarEvents = NonNullable<unknown>;
40
53
  export declare const AfNavbar: StencilReactComponent<AfNavbarElement, AfNavbarEvents>;
54
+ export type AfSectionEvents = NonNullable<unknown>;
55
+ export declare const AfSection: StencilReactComponent<AfSectionElement, AfSectionEvents>;
56
+ export type AfTestimonialEvents = NonNullable<unknown>;
57
+ export declare const AfTestimonial: StencilReactComponent<AfTestimonialElement, AfTestimonialEvents>;
58
+ export type AfTestimonialCarouselEvents = NonNullable<unknown>;
59
+ export declare const AfTestimonialCarousel: StencilReactComponent<AfTestimonialCarouselElement, AfTestimonialCarouselEvents>;
60
+ export type AfTestimonialStatEvents = NonNullable<unknown>;
61
+ export declare const AfTestimonialStat: StencilReactComponent<AfTestimonialStatElement, AfTestimonialStatEvents>;
41
62
  export type AfTextEvents = NonNullable<unknown>;
42
63
  export declare const AfText: StencilReactComponent<AfTextElement, AfTextEvents>;
43
64
  export type AfTypographyLockupEvents = NonNullable<unknown>;
@@ -8,13 +8,20 @@ import { AfAspectRatio as AfAspectRatioElement, defineCustomElement as defineAfA
8
8
  import { AfButtonGroup as AfButtonGroupElement, defineCustomElement as defineAfButtonGroup } from "@affinda/wc/dist/components/af-button-group.js";
9
9
  import { AfButton as AfButtonElement, defineCustomElement as defineAfButton } from "@affinda/wc/dist/components/af-button.js";
10
10
  import { AfCard as AfCardElement, defineCustomElement as defineAfCard } from "@affinda/wc/dist/components/af-card.js";
11
+ import { AfClientCarousel as AfClientCarouselElement, defineCustomElement as defineAfClientCarousel } from "@affinda/wc/dist/components/af-client-carousel.js";
11
12
  import { AfColorSwatch as AfColorSwatchElement, defineCustomElement as defineAfColorSwatch } from "@affinda/wc/dist/components/af-color-swatch.js";
12
13
  import { AfContainer as AfContainerElement, defineCustomElement as defineAfContainer } from "@affinda/wc/dist/components/af-container.js";
13
14
  import { AfHeading as AfHeadingElement, defineCustomElement as defineAfHeading } from "@affinda/wc/dist/components/af-heading.js";
15
+ import { AfHeroSection as AfHeroSectionElement, defineCustomElement as defineAfHeroSection } from "@affinda/wc/dist/components/af-hero-section.js";
14
16
  import { AfIconButton as AfIconButtonElement, defineCustomElement as defineAfIconButton } from "@affinda/wc/dist/components/af-icon-button.js";
17
+ import { AfLogoWell as AfLogoWellElement, defineCustomElement as defineAfLogoWell } from "@affinda/wc/dist/components/af-logo-well.js";
15
18
  import { AfLogo as AfLogoElement, defineCustomElement as defineAfLogo } from "@affinda/wc/dist/components/af-logo.js";
16
19
  import { AfNavItem as AfNavItemElement, defineCustomElement as defineAfNavItem } from "@affinda/wc/dist/components/af-nav-item.js";
17
20
  import { AfNavbar as AfNavbarElement, defineCustomElement as defineAfNavbar } from "@affinda/wc/dist/components/af-navbar.js";
21
+ import { AfSection as AfSectionElement, defineCustomElement as defineAfSection } from "@affinda/wc/dist/components/af-section.js";
22
+ import { AfTestimonialCarousel as AfTestimonialCarouselElement, defineCustomElement as defineAfTestimonialCarousel } from "@affinda/wc/dist/components/af-testimonial-carousel.js";
23
+ import { AfTestimonialStat as AfTestimonialStatElement, defineCustomElement as defineAfTestimonialStat } from "@affinda/wc/dist/components/af-testimonial-stat.js";
24
+ import { AfTestimonial as AfTestimonialElement, defineCustomElement as defineAfTestimonial } from "@affinda/wc/dist/components/af-testimonial.js";
18
25
  import { AfText as AfTextElement, defineCustomElement as defineAfText } from "@affinda/wc/dist/components/af-text.js";
19
26
  import { AfTypographyLockup as AfTypographyLockupElement, defineCustomElement as defineAfTypographyLockup } from "@affinda/wc/dist/components/af-typography-lockup.js";
20
27
  import { createComponent } from '@stencil/react-output-target/runtime';
@@ -51,6 +58,14 @@ export const AfCard = /*@__PURE__*/ createComponent({
51
58
  events: {},
52
59
  defineCustomElement: defineAfCard
53
60
  });
61
+ export const AfClientCarousel = /*@__PURE__*/ createComponent({
62
+ tagName: 'af-client-carousel',
63
+ elementClass: AfClientCarouselElement,
64
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
65
+ react: React,
66
+ events: {},
67
+ defineCustomElement: defineAfClientCarousel
68
+ });
54
69
  export const AfColorSwatch = /*@__PURE__*/ createComponent({
55
70
  tagName: 'af-color-swatch',
56
71
  elementClass: AfColorSwatchElement,
@@ -75,6 +90,14 @@ export const AfHeading = /*@__PURE__*/ createComponent({
75
90
  events: {},
76
91
  defineCustomElement: defineAfHeading
77
92
  });
93
+ export const AfHeroSection = /*@__PURE__*/ createComponent({
94
+ tagName: 'af-hero-section',
95
+ elementClass: AfHeroSectionElement,
96
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
97
+ react: React,
98
+ events: {},
99
+ defineCustomElement: defineAfHeroSection
100
+ });
78
101
  export const AfIconButton = /*@__PURE__*/ createComponent({
79
102
  tagName: 'af-icon-button',
80
103
  elementClass: AfIconButtonElement,
@@ -91,6 +114,14 @@ export const AfLogo = /*@__PURE__*/ createComponent({
91
114
  events: {},
92
115
  defineCustomElement: defineAfLogo
93
116
  });
117
+ export const AfLogoWell = /*@__PURE__*/ createComponent({
118
+ tagName: 'af-logo-well',
119
+ elementClass: AfLogoWellElement,
120
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
121
+ react: React,
122
+ events: {},
123
+ defineCustomElement: defineAfLogoWell
124
+ });
94
125
  export const AfNavItem = /*@__PURE__*/ createComponent({
95
126
  tagName: 'af-nav-item',
96
127
  elementClass: AfNavItemElement,
@@ -107,6 +138,38 @@ export const AfNavbar = /*@__PURE__*/ createComponent({
107
138
  events: {},
108
139
  defineCustomElement: defineAfNavbar
109
140
  });
141
+ export const AfSection = /*@__PURE__*/ createComponent({
142
+ tagName: 'af-section',
143
+ elementClass: AfSectionElement,
144
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
145
+ react: React,
146
+ events: {},
147
+ defineCustomElement: defineAfSection
148
+ });
149
+ export const AfTestimonial = /*@__PURE__*/ createComponent({
150
+ tagName: 'af-testimonial',
151
+ elementClass: AfTestimonialElement,
152
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
153
+ react: React,
154
+ events: {},
155
+ defineCustomElement: defineAfTestimonial
156
+ });
157
+ export const AfTestimonialCarousel = /*@__PURE__*/ createComponent({
158
+ tagName: 'af-testimonial-carousel',
159
+ elementClass: AfTestimonialCarouselElement,
160
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
161
+ react: React,
162
+ events: {},
163
+ defineCustomElement: defineAfTestimonialCarousel
164
+ });
165
+ export const AfTestimonialStat = /*@__PURE__*/ createComponent({
166
+ tagName: 'af-testimonial-stat',
167
+ elementClass: AfTestimonialStatElement,
168
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
169
+ react: React,
170
+ events: {},
171
+ defineCustomElement: defineAfTestimonialStat
172
+ });
110
173
  export const AfText = /*@__PURE__*/ createComponent({
111
174
  tagName: 'af-text',
112
175
  elementClass: AfTextElement,
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './generated/components.js';
2
- export { AfAspectRatio as AspectRatio, AfButton as Button, AfButtonGroup as ButtonGroup, AfCard as Card, AfColorSwatch as ColorSwatch, AfContainer as Container, AfHeading as Heading, AfIconButton as IconButton, AfLogo as Logo, AfNavItem as NavItem, AfNavbar as Navbar, AfText as Text, 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, 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
+ export { PaperclipDecoration } from './components/PaperclipDecoration';
package/dist/index.js CHANGED
@@ -2,6 +2,8 @@
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, AfColorSwatch as ColorSwatch, AfContainer as Container, AfHeading as Heading, AfIconButton as IconButton, AfLogo as Logo, AfNavItem as NavItem, AfNavbar as Navbar, AfText as Text, 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, 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
+ // Export custom React components
9
+ export { PaperclipDecoration } from './components/PaperclipDecoration';
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@affinda/react",
3
- "version": "0.0.12",
3
+ "version": "0.0.14",
4
4
  "private": false,
5
5
  "type": "module",
6
- "files": ["dist", "README.md"],
6
+ "files": [
7
+ "dist",
8
+ "README.md"
9
+ ],
7
10
  "main": "dist/index.js",
8
11
  "module": "dist/index.js",
9
12
  "types": "dist/index.d.ts",
@@ -13,11 +16,11 @@
13
16
  },
14
17
  "dependencies": {
15
18
  "@affinda/icons": "^0.0.3",
16
- "@affinda/wc": "^0.0.6",
19
+ "@affinda/wc": "^0.0.7",
17
20
  "@stencil/react-output-target": "^1.2.0"
18
21
  },
19
22
  "scripts": {
20
23
  "build": "pnpm run clean && tsc -p tsconfig.json",
21
24
  "clean": "rm -rf dist"
22
25
  }
23
- }
26
+ }