@nationaldesignstudio/react 0.0.6 → 0.0.8
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 +24 -26
- package/dist/assets/fonts/PPNeueMontreal-Variable.woff2 +0 -0
- package/dist/assets/react.svg +1 -0
- package/dist/components/atoms/accordion/accordion.d.ts +50 -0
- package/dist/components/{button → atoms/button}/button.d.ts +5 -4
- package/dist/components/atoms/pager-control/pager-control.d.ts +62 -0
- package/dist/components/{card → organisms/card}/card.d.ts +6 -2
- package/dist/components/{navbar → organisms/navbar}/navbar.d.ts +27 -1
- package/dist/components/sections/banner/banner.d.ts +64 -0
- package/dist/components/sections/card-grid/card-grid.d.ts +53 -0
- package/dist/components/sections/faq-section/faq-section.d.ts +44 -0
- package/dist/components/sections/hero/hero.d.ts +73 -0
- package/dist/components/sections/river/river.d.ts +63 -0
- package/dist/components/sections/tout/tout.d.ts +73 -0
- package/dist/components/sections/two-column-section/two-column-section.d.ts +58 -0
- package/dist/index.d.ts +28 -12
- package/dist/index.js +3185 -813
- package/dist/index.js.map +1 -1
- package/dist/tailwind.css +23 -0
- package/dist/tokens.css +9318 -1780
- package/package.json +23 -5
- package/src/App.css +0 -0
- package/src/App.tsx +7 -0
- package/src/assets/fonts/PPNeueMontreal-Variable.woff2 +0 -0
- package/src/assets/react.svg +1 -0
- package/src/components/atoms/accordion/accordion.stories.tsx +228 -0
- package/src/components/atoms/accordion/accordion.tsx +137 -0
- package/src/components/atoms/accordion/index.ts +6 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-chromium-darwin.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-chromium-linux.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-outline-chromium-darwin.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-outline-chromium-linux.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-outline-quiet-chromium-darwin.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-charcoal-outline-quiet-chromium-linux.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-disabled-chromium-darwin.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-disabled-chromium-linux.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-chromium-darwin.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-chromium-linux.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-outline-chromium-darwin.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-outline-chromium-linux.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-outline-quiet-chromium-darwin.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-ivory-outline-quiet-chromium-linux.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-large-chromium-darwin.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-large-chromium-linux.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-medium-chromium-darwin.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-medium-chromium-linux.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-small-chromium-darwin.png +0 -0
- package/src/components/atoms/button/__screenshots__/button.visual.test.tsx/button-size-small-chromium-linux.png +0 -0
- package/src/components/atoms/button/button.stories.tsx +93 -0
- package/src/components/atoms/button/button.test.tsx +141 -0
- package/src/components/atoms/button/button.tsx +95 -0
- package/src/components/atoms/button/button.visual.test.tsx +102 -0
- package/src/components/atoms/button/icon-button.stories.tsx +175 -0
- package/src/components/atoms/button/icon-button.tsx +90 -0
- package/src/components/atoms/button/index.ts +6 -0
- package/src/components/atoms/pager-control/index.ts +5 -0
- package/src/components/atoms/pager-control/pager-control.stories.tsx +212 -0
- package/src/components/atoms/pager-control/pager-control.test.tsx +149 -0
- package/src/components/atoms/pager-control/pager-control.tsx +328 -0
- package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-default-vertical-chromium-darwin.png +0 -0
- package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-default-vertical-chromium-linux.png +0 -0
- package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-horizontal-chromium-darwin.png +0 -0
- package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-horizontal-chromium-linux.png +0 -0
- package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-minimal-chromium-darwin.png +0 -0
- package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-minimal-chromium-linux.png +0 -0
- package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-actions-chromium-darwin.png +0 -0
- package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-actions-chromium-linux.png +0 -0
- package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-eyebrow-chromium-darwin.png +0 -0
- package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-eyebrow-chromium-linux.png +0 -0
- package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-image-chromium-darwin.png +0 -0
- package/src/components/organisms/card/__screenshots__/card.visual.test.tsx/card-without-image-chromium-linux.png +0 -0
- package/src/components/organisms/card/card.stories.tsx +293 -0
- package/src/components/organisms/card/card.test.tsx +245 -0
- package/src/components/organisms/card/card.tsx +227 -0
- package/src/components/organisms/card/card.visual.test.tsx +197 -0
- package/src/components/organisms/card/index.ts +19 -0
- package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-active-link-chromium-darwin.png +0 -0
- package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-active-link-chromium-linux.png +0 -0
- package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-brand-only-chromium-darwin.png +0 -0
- package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-brand-only-chromium-linux.png +0 -0
- package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-default-chromium-darwin.png +0 -0
- package/src/components/organisms/navbar/__screenshots__/navbar.visual.test.tsx/navbar-default-chromium-linux.png +0 -0
- package/src/components/organisms/navbar/index.ts +18 -0
- package/src/components/organisms/navbar/navbar.stories.tsx +313 -0
- package/src/components/organisms/navbar/navbar.test.tsx +190 -0
- package/src/components/organisms/navbar/navbar.tsx +365 -0
- package/src/components/organisms/navbar/navbar.visual.test.tsx +85 -0
- package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-custom-icon-chromium-darwin.png +0 -0
- package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-custom-icon-chromium-linux.png +0 -0
- package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-custom-text-chromium-darwin.png +0 -0
- package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-custom-text-chromium-linux.png +0 -0
- package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-default-chromium-darwin.png +0 -0
- package/src/components/organisms/us-gov-banner/__screenshots__/us-gov-banner.visual.test.tsx/us-gov-banner-default-chromium-linux.png +0 -0
- package/src/components/organisms/us-gov-banner/index.ts +1 -0
- package/src/components/organisms/us-gov-banner/us-gov-banner.stories.tsx +35 -0
- package/src/components/organisms/us-gov-banner/us-gov-banner.test.tsx +107 -0
- package/src/components/organisms/us-gov-banner/us-gov-banner.tsx +73 -0
- package/src/components/organisms/us-gov-banner/us-gov-banner.visual.test.tsx +46 -0
- package/src/components/sections/banner/banner.stories.tsx +150 -0
- package/src/components/sections/banner/banner.test.tsx +185 -0
- package/src/components/sections/banner/banner.tsx +132 -0
- package/src/components/sections/banner/index.ts +2 -0
- package/src/components/sections/card-grid/card-grid.stories.tsx +351 -0
- package/src/components/sections/card-grid/card-grid.tsx +118 -0
- package/src/components/sections/card-grid/index.ts +1 -0
- package/src/components/sections/faq-section/faq-section.tsx +76 -0
- package/src/components/sections/faq-section/index.ts +2 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-desktop-chromium-darwin.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-desktop-chromium-linux.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-mobile-chromium-darwin.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-mobile-chromium-linux.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-tablet-chromium-darwin.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a1-tablet-chromium-linux.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-desktop-chromium-darwin.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-desktop-chromium-linux.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-mobile-chromium-darwin.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-mobile-chromium-linux.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-tablet-chromium-darwin.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a2-tablet-chromium-linux.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-desktop-chromium-darwin.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-desktop-chromium-linux.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-mobile-chromium-darwin.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-mobile-chromium-linux.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-tablet-chromium-darwin.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-a3-tablet-chromium-linux.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-custom-class-chromium-darwin.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-custom-class-chromium-linux.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-default-chromium-linux.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-long-title-chromium-darwin.png +0 -0
- package/src/components/sections/hero/__screenshots__/hero.visual.test.tsx/hero-long-title-chromium-linux.png +0 -0
- package/src/components/sections/hero/hero.stories.tsx +145 -0
- package/src/components/sections/hero/hero.test.tsx +135 -0
- package/src/components/sections/hero/hero.tsx +190 -0
- package/src/components/sections/hero/hero.visual.test.tsx +140 -0
- package/src/components/sections/hero/index.ts +1 -0
- package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-h3-heading-chromium-darwin.png +0 -0
- package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-h3-heading-chromium-linux.png +0 -0
- package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-multiple-paragraphs-chromium-darwin.png +0 -0
- package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-multiple-paragraphs-chromium-linux.png +0 -0
- package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-multiple-sections-chromium-darwin.png +0 -0
- package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-multiple-sections-chromium-linux.png +0 -0
- package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-single-section-chromium-darwin.png +0 -0
- package/src/components/sections/prose/__screenshots__/prose.visual.test.tsx/prose-single-section-chromium-linux.png +0 -0
- package/src/components/sections/prose/index.ts +6 -0
- package/src/components/sections/prose/prose.stories.tsx +144 -0
- package/src/components/sections/prose/prose.test.tsx +178 -0
- package/src/components/sections/prose/prose.tsx +88 -0
- package/src/components/sections/prose/prose.visual.test.tsx +105 -0
- package/src/components/sections/river/index.ts +1 -0
- package/src/components/sections/river/river.stories.tsx +237 -0
- package/src/components/sections/river/river.test.tsx +268 -0
- package/src/components/sections/river/river.tsx +175 -0
- package/src/components/sections/tout/index.ts +1 -0
- package/src/components/sections/tout/tout.stories.tsx +154 -0
- package/src/components/sections/tout/tout.test.tsx +242 -0
- package/src/components/sections/tout/tout.tsx +205 -0
- package/src/components/sections/two-column-section/index.ts +5 -0
- package/src/components/sections/two-column-section/two-column-section.stories.tsx +285 -0
- package/src/components/sections/two-column-section/two-column-section.tsx +155 -0
- package/src/index.ts +98 -0
- package/src/lib/utils.ts +6 -0
- package/src/main.tsx +13 -0
- package/src/stories/Introduction.mdx +114 -0
- package/src/stories/TokenShowcase.stories.tsx +92 -0
- package/src/stories/TokenShowcase.tsx +1352 -0
- package/src/styles.css +11 -0
- package/dist/components/hero/hero.d.ts +0 -17
- /package/dist/components/{button → atoms/button}/icon-button.d.ts +0 -0
- /package/dist/components/{us-gov-banner → organisms/us-gov-banner}/us-gov-banner.d.ts +0 -0
- /package/dist/components/{prose → sections/prose}/prose.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
# @
|
|
1
|
+
# @nationaldesignstudio/react
|
|
2
2
|
|
|
3
|
-
React component library for the NDS Design System. Includes design tokens
|
|
3
|
+
React component library for the NDS Design System. Includes design tokens for Tailwind CSS v4 and React components.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install @
|
|
8
|
+
npm install @nationaldesignstudio/react
|
|
9
9
|
# or
|
|
10
|
-
bun add @
|
|
10
|
+
bun add @nationaldesignstudio/react
|
|
11
11
|
# or
|
|
12
|
-
pnpm add @
|
|
12
|
+
pnpm add @nationaldesignstudio/react
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
### Peer Dependencies
|
|
@@ -26,25 +26,25 @@ This package requires the following peer dependencies:
|
|
|
26
26
|
|
|
27
27
|
## Usage
|
|
28
28
|
|
|
29
|
-
### 1. Import
|
|
29
|
+
### 1. Import Tokens
|
|
30
30
|
|
|
31
|
-
Import the
|
|
31
|
+
Import the tokens in your CSS file where you import Tailwind:
|
|
32
32
|
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
import
|
|
33
|
+
```css
|
|
34
|
+
/* In your main CSS file (e.g., globals.css, styles.css) */
|
|
35
|
+
@import "tailwindcss";
|
|
36
|
+
@import "@nationaldesignstudio/react/tokens.css";
|
|
36
37
|
```
|
|
37
38
|
|
|
38
39
|
This imports:
|
|
39
|
-
- Design tokens as CSS variables
|
|
40
|
-
- Tailwind CSS v4 theme configuration
|
|
41
|
-
- Typography utility classes
|
|
42
|
-
- The PP Neue Montreal font
|
|
40
|
+
- Design tokens as CSS variables (`:root` block)
|
|
41
|
+
- Tailwind CSS v4 `@theme` configuration
|
|
42
|
+
- Typography and spacing utility classes
|
|
43
43
|
|
|
44
44
|
### 2. Use Components
|
|
45
45
|
|
|
46
46
|
```tsx
|
|
47
|
-
import { Button } from '@
|
|
47
|
+
import { Button } from '@nationaldesignstudio/react'
|
|
48
48
|
|
|
49
49
|
function App() {
|
|
50
50
|
return (
|
|
@@ -133,7 +133,7 @@ For fixed typography that doesn't change with screen size:
|
|
|
133
133
|
A versatile button component with multiple variants and sizes.
|
|
134
134
|
|
|
135
135
|
```tsx
|
|
136
|
-
import { Button } from '@
|
|
136
|
+
import { Button } from '@nationaldesignstudio/react'
|
|
137
137
|
|
|
138
138
|
// Variants
|
|
139
139
|
<Button variant="primary">Primary</Button>
|
|
@@ -162,7 +162,7 @@ import { Button } from '@nds-design-system/react'
|
|
|
162
162
|
A utility function for merging Tailwind classes with proper precedence:
|
|
163
163
|
|
|
164
164
|
```tsx
|
|
165
|
-
import { cn } from '@
|
|
165
|
+
import { cn } from '@nationaldesignstudio/react'
|
|
166
166
|
|
|
167
167
|
<div className={cn('text-blue-500', isActive && 'text-red-500')}>
|
|
168
168
|
Content
|
|
@@ -173,14 +173,16 @@ import { cn } from '@nds-design-system/react'
|
|
|
173
173
|
|
|
174
174
|
```tsx
|
|
175
175
|
// Components
|
|
176
|
-
import { Button, buttonVariants } from '@
|
|
177
|
-
import type { ButtonProps } from '@
|
|
176
|
+
import { Button, buttonVariants } from '@nationaldesignstudio/react'
|
|
177
|
+
import type { ButtonProps } from '@nationaldesignstudio/react'
|
|
178
178
|
|
|
179
179
|
// Utilities
|
|
180
|
-
import { cn } from '@
|
|
180
|
+
import { cn } from '@nationaldesignstudio/react'
|
|
181
|
+
```
|
|
181
182
|
|
|
182
|
-
|
|
183
|
-
import
|
|
183
|
+
```css
|
|
184
|
+
/* Tokens (import in your CSS file) */
|
|
185
|
+
@import "@nationaldesignstudio/react/tokens.css";
|
|
184
186
|
```
|
|
185
187
|
|
|
186
188
|
## Development
|
|
@@ -198,7 +200,3 @@ bun run build
|
|
|
198
200
|
# Type check
|
|
199
201
|
bun run type:check
|
|
200
202
|
```
|
|
201
|
-
|
|
202
|
-
## License
|
|
203
|
-
|
|
204
|
-
MIT
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/**
|
|
4
|
+
* Allow multiple items to be expanded at once
|
|
5
|
+
* @default false
|
|
6
|
+
*/
|
|
7
|
+
allowMultiple?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* The ID(s) of items that should be expanded by default
|
|
10
|
+
*/
|
|
11
|
+
defaultExpanded?: string | string[];
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Accordion component for expandable/collapsible content sections.
|
|
16
|
+
* Built on Base UI's Accordion primitive.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* <Accordion defaultExpanded="item-1">
|
|
21
|
+
* <AccordionItem id="item-1" title="Question 1">
|
|
22
|
+
* Answer to question 1
|
|
23
|
+
* </AccordionItem>
|
|
24
|
+
* <AccordionItem id="item-2" title="Question 2">
|
|
25
|
+
* Answer to question 2
|
|
26
|
+
* </AccordionItem>
|
|
27
|
+
* </Accordion>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
declare const Accordion: React.ForwardRefExoticComponent<AccordionProps & React.RefAttributes<HTMLDivElement>>;
|
|
31
|
+
export interface AccordionItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
32
|
+
/**
|
|
33
|
+
* Unique identifier for this item
|
|
34
|
+
*/
|
|
35
|
+
id: string;
|
|
36
|
+
/**
|
|
37
|
+
* The question/title displayed in the header
|
|
38
|
+
*/
|
|
39
|
+
title: string;
|
|
40
|
+
/**
|
|
41
|
+
* The answer/content revealed when expanded
|
|
42
|
+
*/
|
|
43
|
+
children: React.ReactNode;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Individual accordion item with collapsible content.
|
|
47
|
+
* Must be used within an Accordion component.
|
|
48
|
+
*/
|
|
49
|
+
declare const AccordionItem: React.ForwardRefExoticComponent<AccordionItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
50
|
+
export { Accordion, AccordionItem };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ButtonProps as BaseButtonProps } from '@base-ui-components/react/button';
|
|
1
2
|
import { VariantProps } from 'class-variance-authority';
|
|
2
3
|
import * as React from "react";
|
|
3
4
|
/**
|
|
@@ -10,6 +11,7 @@ import * as React from "react";
|
|
|
10
11
|
* - ivory: Light filled button (for dark backgrounds)
|
|
11
12
|
* - ivoryOutline: Light outlined button (for dark backgrounds)
|
|
12
13
|
* - ivoryOutlineQuiet: Subtle light outlined button (for dark backgrounds)
|
|
14
|
+
* - secondary: Gray filled button (for dark backgrounds)
|
|
13
15
|
*
|
|
14
16
|
* Sizes:
|
|
15
17
|
* - lg: Large buttons (46px height)
|
|
@@ -19,11 +21,10 @@ import * as React from "react";
|
|
|
19
21
|
* For icon-only buttons, use the IconButton component instead.
|
|
20
22
|
*/
|
|
21
23
|
declare const buttonVariants: (props?: ({
|
|
22
|
-
variant?: "charcoal" | "charcoalOutline" | "charcoalOutlineQuiet" | "ivory" | "ivoryOutline" | "ivoryOutlineQuiet" | null | undefined;
|
|
24
|
+
variant?: "charcoal" | "charcoalOutline" | "charcoalOutlineQuiet" | "ivory" | "ivoryOutline" | "ivoryOutlineQuiet" | "secondary" | null | undefined;
|
|
23
25
|
size?: "lg" | "default" | "sm" | null | undefined;
|
|
24
26
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
25
|
-
export
|
|
26
|
-
|
|
27
|
-
}
|
|
27
|
+
export type HTMLButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement>;
|
|
28
|
+
export type ButtonProps = BaseButtonProps & VariantProps<typeof buttonVariants> & HTMLButtonProps;
|
|
28
29
|
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
29
30
|
export { Button, buttonVariants };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const pagerControlVariants: (props?: ({
|
|
4
|
+
size?: "lg" | "default" | "sm" | null | undefined;
|
|
5
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
6
|
+
declare const dotBaseVariants: (props?: ({
|
|
7
|
+
size?: "lg" | "default" | "sm" | null | undefined;
|
|
8
|
+
variant?: "charcoal" | "ivory" | null | undefined;
|
|
9
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
10
|
+
export interface PagerControlProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange">, VariantProps<typeof pagerControlVariants>, VariantProps<typeof dotBaseVariants> {
|
|
11
|
+
/**
|
|
12
|
+
* Total number of pages/items
|
|
13
|
+
*/
|
|
14
|
+
count: number;
|
|
15
|
+
/**
|
|
16
|
+
* Current active page index (0-based)
|
|
17
|
+
*/
|
|
18
|
+
activeIndex?: number;
|
|
19
|
+
/**
|
|
20
|
+
* Duration in milliseconds for each page before auto-advancing
|
|
21
|
+
* Set to 0 to disable auto-advance
|
|
22
|
+
* @default 5000
|
|
23
|
+
*/
|
|
24
|
+
duration?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Whether the pager should auto-advance
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
autoPlay?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Callback when the active page changes
|
|
32
|
+
*/
|
|
33
|
+
onChange?: (index: number) => void;
|
|
34
|
+
/**
|
|
35
|
+
* Whether to pause auto-advance on hover
|
|
36
|
+
* @default true
|
|
37
|
+
*/
|
|
38
|
+
pauseOnHover?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Whether to loop back to the first page after the last
|
|
41
|
+
* @default true
|
|
42
|
+
*/
|
|
43
|
+
loop?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* PagerControl component for indicating progress through a series of pages/slides.
|
|
47
|
+
*
|
|
48
|
+
* Features smooth width transitions when switching between dots and an animated
|
|
49
|
+
* progress fill on the active dot that shows time remaining before auto-advancing
|
|
50
|
+
* (similar to Apple's carousel indicators).
|
|
51
|
+
*
|
|
52
|
+
* Variants:
|
|
53
|
+
* - charcoal: Dark dots (for light backgrounds)
|
|
54
|
+
* - ivory: Light dots (for dark backgrounds)
|
|
55
|
+
*
|
|
56
|
+
* Sizes:
|
|
57
|
+
* - sm: Small dots (6px height)
|
|
58
|
+
* - default: Medium dots (10px height)
|
|
59
|
+
* - lg: Large dots (14px height)
|
|
60
|
+
*/
|
|
61
|
+
declare const PagerControl: React.ForwardRefExoticComponent<PagerControlProps & React.RefAttributes<HTMLDivElement>>;
|
|
62
|
+
export { PagerControl, pagerControlVariants };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VariantProps } from 'class-variance-authority';
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
declare const cardVariants: (props?: ({
|
|
4
|
-
layout?: "
|
|
4
|
+
layout?: "horizontal" | "vertical" | null | undefined;
|
|
5
5
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
6
6
|
export interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
|
|
7
7
|
}
|
|
@@ -43,9 +43,13 @@ export interface CardEyebrowProps extends React.HTMLAttributes<HTMLParagraphElem
|
|
|
43
43
|
*/
|
|
44
44
|
declare const CardEyebrow: React.ForwardRefExoticComponent<CardEyebrowProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
45
45
|
export interface CardTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
|
|
46
|
+
/**
|
|
47
|
+
* The heading level to render (h1-h6). Defaults to h3.
|
|
48
|
+
*/
|
|
49
|
+
as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
46
50
|
}
|
|
47
51
|
/**
|
|
48
|
-
* Card title/heading.
|
|
52
|
+
* Card title/heading. Use the `as` prop to change the heading level.
|
|
49
53
|
*/
|
|
50
54
|
declare const CardTitle: React.ForwardRefExoticComponent<CardTitleProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
51
55
|
export interface CardDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
|
|
@@ -36,4 +36,30 @@ export interface NavbarActionsProps extends React.HTMLAttributes<HTMLDivElement>
|
|
|
36
36
|
* Container for navbar action items (search, menu button, etc).
|
|
37
37
|
*/
|
|
38
38
|
declare const NavbarActions: React.ForwardRefExoticComponent<NavbarActionsProps & React.RefAttributes<HTMLDivElement>>;
|
|
39
|
-
export
|
|
39
|
+
export interface NavbarMobileMenuProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Mobile menu container that displays navigation links on mobile devices.
|
|
43
|
+
* Hidden on desktop (md and above). Should be used with NavbarMobileMenuButton.
|
|
44
|
+
*/
|
|
45
|
+
declare const NavbarMobileMenu: React.ForwardRefExoticComponent<NavbarMobileMenuProps & React.RefAttributes<HTMLDivElement>>;
|
|
46
|
+
export interface NavbarMobileMenuButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
47
|
+
asChild?: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Button to toggle the mobile menu.
|
|
51
|
+
* Should be placed in NavbarActions on mobile.
|
|
52
|
+
* Use asChild to render as a custom button component (e.g., IconButton).
|
|
53
|
+
*/
|
|
54
|
+
declare const NavbarMobileMenuButton: React.ForwardRefExoticComponent<NavbarMobileMenuButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
55
|
+
export interface NavbarMobileMenuLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
56
|
+
asChild?: boolean;
|
|
57
|
+
active?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Navigation link for the mobile menu.
|
|
61
|
+
* Automatically closes the mobile menu when clicked.
|
|
62
|
+
* Use asChild to render with a router Link component.
|
|
63
|
+
*/
|
|
64
|
+
declare const NavbarMobileMenuLink: React.ForwardRefExoticComponent<NavbarMobileMenuLinkProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
65
|
+
export { Navbar, NavbarBrand, NavbarLinks, NavbarLink, NavbarActions, NavbarMobileMenu, NavbarMobileMenuButton, NavbarMobileMenuLink, };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Banner component based on Figma BaseKit / Banners
|
|
5
|
+
*
|
|
6
|
+
* Used to surface short, important updates or a single key action
|
|
7
|
+
* without disrupting the main page content.
|
|
8
|
+
*
|
|
9
|
+
* Responsive behavior using 24-column grid:
|
|
10
|
+
* - Mobile (sm): Stacked layout, 20px horizontal / 32px vertical padding
|
|
11
|
+
* - Tablet (md): Horizontal layout, 56px padding
|
|
12
|
+
* - Desktop (lg): Horizontal layout, 72px padding
|
|
13
|
+
*
|
|
14
|
+
* Must be placed inside a `grid-container`. Uses `col-full` to span all columns.
|
|
15
|
+
*/
|
|
16
|
+
declare const bannerVariants: (props?: ({
|
|
17
|
+
theme?: "light" | "dark" | null | undefined;
|
|
18
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
19
|
+
export interface BannerProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof bannerVariants> {
|
|
20
|
+
/**
|
|
21
|
+
* The heading text displayed in the banner
|
|
22
|
+
*/
|
|
23
|
+
heading: string;
|
|
24
|
+
/**
|
|
25
|
+
* The description text displayed below the heading
|
|
26
|
+
*/
|
|
27
|
+
description: string;
|
|
28
|
+
/**
|
|
29
|
+
* Optional action element (typically a Button component)
|
|
30
|
+
*/
|
|
31
|
+
action?: React.ReactNode;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Banner component for surfacing important updates or CTAs.
|
|
35
|
+
*
|
|
36
|
+
* Uses the 24-column grid system - must be placed inside a `grid-container`.
|
|
37
|
+
* Spans full width with `col-full`.
|
|
38
|
+
*
|
|
39
|
+
* Responsive across breakpoints:
|
|
40
|
+
* - Mobile: Stacked layout with smaller padding
|
|
41
|
+
* - Tablet: Horizontal layout with medium padding
|
|
42
|
+
* - Desktop: Horizontal layout with larger padding
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```tsx
|
|
46
|
+
* <div className="grid-container">
|
|
47
|
+
* <Banner
|
|
48
|
+
* heading="Important Update"
|
|
49
|
+
* description="Check out our new features."
|
|
50
|
+
* action={<Button>Learn More</Button>}
|
|
51
|
+
* />
|
|
52
|
+
* </div>
|
|
53
|
+
*
|
|
54
|
+
* // Dark theme
|
|
55
|
+
* <Banner
|
|
56
|
+
* theme="dark"
|
|
57
|
+
* heading="Still Have Questions?"
|
|
58
|
+
* description="Contact us at support@example.com"
|
|
59
|
+
* action={<Button variant="secondary">Email Us</Button>}
|
|
60
|
+
* />
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
declare const Banner: React.ForwardRefExoticComponent<BannerProps & React.RefAttributes<HTMLElement>>;
|
|
64
|
+
export { Banner, bannerVariants };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* CardGrid component for displaying cards in a responsive grid layout
|
|
5
|
+
*
|
|
6
|
+
* Variants:
|
|
7
|
+
* - A: 3 columns on desktop, 2 on tablet, 1 on mobile
|
|
8
|
+
* - B: 2 columns on desktop/tablet, 1 on mobile
|
|
9
|
+
*
|
|
10
|
+
* Uses the 24-column grid system with grid-container as root.
|
|
11
|
+
*/
|
|
12
|
+
declare const cardGridVariants: (props?: ({
|
|
13
|
+
variant?: "A" | "B" | null | undefined;
|
|
14
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
15
|
+
export interface CardGridProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof cardGridVariants> {
|
|
16
|
+
/**
|
|
17
|
+
* The title text displayed above the cards
|
|
18
|
+
*/
|
|
19
|
+
title: string;
|
|
20
|
+
/**
|
|
21
|
+
* The card elements to display in the grid
|
|
22
|
+
*/
|
|
23
|
+
cards: React.ReactNode[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* CardGrid component for displaying cards in a responsive grid layout.
|
|
27
|
+
*
|
|
28
|
+
* Uses the 24-column grid system with grid-container as root.
|
|
29
|
+
*
|
|
30
|
+
* Layout (Variant A):
|
|
31
|
+
* - Mobile (sm): Single column, py-72
|
|
32
|
+
* - Tablet (md): 2 columns, gap-56 between title and cards, gap-y-20 between cards
|
|
33
|
+
* - Desktop (lg+): 3 columns, py-128, gap-64 between title and cards, gap-y-20 between cards
|
|
34
|
+
*
|
|
35
|
+
* Layout (Variant B):
|
|
36
|
+
* - Mobile (sm): Single column, py-72
|
|
37
|
+
* - Tablet (md): 2 columns, gap-56 between title and cards, gap-y-20 between cards
|
|
38
|
+
* - Desktop (lg+): 2 columns, py-128, gap-64 between title and cards, gap-y-20 between cards
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```tsx
|
|
42
|
+
* <CardGrid
|
|
43
|
+
* variant="A"
|
|
44
|
+
* title="Featured Cards"
|
|
45
|
+
* cards={[
|
|
46
|
+
* <Card key="1">...</Card>,
|
|
47
|
+
* <Card key="2">...</Card>,
|
|
48
|
+
* ]}
|
|
49
|
+
* />
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
declare const CardGrid: React.ForwardRefExoticComponent<CardGridProps & React.RefAttributes<HTMLElement>>;
|
|
53
|
+
export { CardGrid, cardGridVariants };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import { twoColumnSectionVariants } from '../two-column-section/two-column-section';
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
export interface FaqSectionProps extends Omit<React.HTMLAttributes<HTMLElement>, "title">, VariantProps<typeof twoColumnSectionVariants> {
|
|
5
|
+
/**
|
|
6
|
+
* The title text displayed in the left column
|
|
7
|
+
* @default "Frequently Asked Questions"
|
|
8
|
+
*/
|
|
9
|
+
title?: string;
|
|
10
|
+
/**
|
|
11
|
+
* The FAQ content - typically an Accordion with AccordionItems
|
|
12
|
+
*/
|
|
13
|
+
children: React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* FaqSection component for displaying FAQ content in a two-column layout.
|
|
17
|
+
*
|
|
18
|
+
* Wraps TwoColumnSection with FAQ-specific defaults and typography.
|
|
19
|
+
*
|
|
20
|
+
* Layout:
|
|
21
|
+
* - Mobile/Tablet: Stacked (title above content)
|
|
22
|
+
* - Desktop (lg+): Title left (~40%), FAQ content right (~60%)
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* <FaqSection>
|
|
27
|
+
* <Accordion defaultExpanded="faq-1">
|
|
28
|
+
* <AccordionItem id="faq-1" title="What is the US Tech Force?">
|
|
29
|
+
* Tech Force will be an elite group of technology specialists...
|
|
30
|
+
* </AccordionItem>
|
|
31
|
+
* <AccordionItem id="faq-2" title="What skills are required?">
|
|
32
|
+
* We're looking for expertise in software engineering...
|
|
33
|
+
* </AccordionItem>
|
|
34
|
+
* </Accordion>
|
|
35
|
+
* </FaqSection>
|
|
36
|
+
*
|
|
37
|
+
* // With custom title
|
|
38
|
+
* <FaqSection title="Common Questions" theme="light">
|
|
39
|
+
* ...
|
|
40
|
+
* </FaqSection>
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
declare const FaqSection: React.ForwardRefExoticComponent<FaqSectionProps & React.RefAttributes<HTMLElement>>;
|
|
44
|
+
export { FaqSection };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Hero variants based on Figma BaseKit / Heros
|
|
5
|
+
*
|
|
6
|
+
* Variants:
|
|
7
|
+
* - A1: Content aligned at bottom (default)
|
|
8
|
+
* - A2: Content aligned at top
|
|
9
|
+
* - A3: Content aligned at center
|
|
10
|
+
*
|
|
11
|
+
* Each variant is responsive across breakpoints:
|
|
12
|
+
* - sm (Mobile): 500px height, 20px padding
|
|
13
|
+
* - md (Tablet): 650px height, 56px padding
|
|
14
|
+
* - lg (Desktop): 700-850px height, 64-72px padding
|
|
15
|
+
*/
|
|
16
|
+
declare const heroVariants: (props?: ({
|
|
17
|
+
variant?: "A1" | "A2" | "A3" | null | undefined;
|
|
18
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
19
|
+
export interface HeroProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof heroVariants> {
|
|
20
|
+
/**
|
|
21
|
+
* The title text displayed in the hero
|
|
22
|
+
*/
|
|
23
|
+
title: string;
|
|
24
|
+
/**
|
|
25
|
+
* URL for the background image
|
|
26
|
+
*/
|
|
27
|
+
backgroundImage?: string;
|
|
28
|
+
/**
|
|
29
|
+
* URL for a background video (takes precedence over backgroundImage)
|
|
30
|
+
*/
|
|
31
|
+
backgroundVideo?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Opacity of the dark overlay (0-1, default: 0)
|
|
34
|
+
*/
|
|
35
|
+
overlayOpacity?: number;
|
|
36
|
+
/**
|
|
37
|
+
* Color of the overlay (default: "black")
|
|
38
|
+
*/
|
|
39
|
+
overlayColor?: string;
|
|
40
|
+
/**
|
|
41
|
+
* CSS background-position value (default: "center")
|
|
42
|
+
*/
|
|
43
|
+
backgroundPosition?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Hero component for page headers with large display typography.
|
|
47
|
+
*
|
|
48
|
+
* Features responsive sizing across three variants:
|
|
49
|
+
* - A1: Content at bottom (default)
|
|
50
|
+
* - A2: Content at top
|
|
51
|
+
* - A3: Content centered
|
|
52
|
+
*
|
|
53
|
+
* Each variant responds to breakpoints:
|
|
54
|
+
* - Mobile: 500px height, 20px padding, 64px typography
|
|
55
|
+
* - Tablet (768px+): 650px height, 56px padding, 128-148px typography
|
|
56
|
+
* - Desktop (1440px+): 700-800px height, 64-72px padding, 148-192px typography
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```tsx
|
|
60
|
+
* // Simple hero
|
|
61
|
+
* <Hero title="Welcome" variant="A1" />
|
|
62
|
+
*
|
|
63
|
+
* // With background image and overlay
|
|
64
|
+
* <Hero
|
|
65
|
+
* title="Welcome"
|
|
66
|
+
* variant="A1"
|
|
67
|
+
* backgroundImage="/hero.jpg"
|
|
68
|
+
* overlayOpacity={0.4}
|
|
69
|
+
* />
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
declare const Hero: React.ForwardRefExoticComponent<HeroProps & React.RefAttributes<HTMLElement>>;
|
|
73
|
+
export { Hero, heroVariants };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* River component for content sections with text and media
|
|
5
|
+
*
|
|
6
|
+
* Variants:
|
|
7
|
+
* - A: Text on left (9 cols), media on right (15 cols) on desktop
|
|
8
|
+
* - B: Media on left (15 cols), text on right (9 cols) on desktop
|
|
9
|
+
*
|
|
10
|
+
* Uses the 24-column grid system. Must be placed inside a `grid-container`.
|
|
11
|
+
*/
|
|
12
|
+
declare const riverVariants: (props?: ({
|
|
13
|
+
variant?: "A" | "B" | null | undefined;
|
|
14
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
15
|
+
export interface RiverProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof riverVariants> {
|
|
16
|
+
/**
|
|
17
|
+
* The headline text
|
|
18
|
+
*/
|
|
19
|
+
headline: string;
|
|
20
|
+
/**
|
|
21
|
+
* The body text
|
|
22
|
+
*/
|
|
23
|
+
body: string;
|
|
24
|
+
/**
|
|
25
|
+
* Primary action button (required)
|
|
26
|
+
*/
|
|
27
|
+
primaryAction: React.ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Secondary action button (optional)
|
|
30
|
+
*/
|
|
31
|
+
secondaryAction?: React.ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Media content (image, video, etc.)
|
|
34
|
+
*/
|
|
35
|
+
media: React.ReactNode;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* River component for content sections with text and media.
|
|
39
|
+
*
|
|
40
|
+
* Uses the 24-column grid system - must be placed inside a `grid-container`.
|
|
41
|
+
*
|
|
42
|
+
* Layout:
|
|
43
|
+
* - Mobile/Tablet: Stacked (text above media)
|
|
44
|
+
* - Desktop (lg+):
|
|
45
|
+
* - Variant A: Text (9 cols) | Media (15 cols)
|
|
46
|
+
* - Variant B: Media (15 cols) | Text (9 cols)
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```tsx
|
|
50
|
+
* <div className="grid-container">
|
|
51
|
+
* <River
|
|
52
|
+
* variant="A"
|
|
53
|
+
* headline="Feature Headline"
|
|
54
|
+
* body="Description of the feature..."
|
|
55
|
+
* primaryAction={<Button>Primary</Button>}
|
|
56
|
+
* secondaryAction={<Button variant="charcoalOutline">Secondary</Button>}
|
|
57
|
+
* media={<img src="..." alt="Feature" />}
|
|
58
|
+
* />
|
|
59
|
+
* </div>
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
declare const River: React.ForwardRefExoticComponent<RiverProps & React.RefAttributes<HTMLElement>>;
|
|
63
|
+
export { River, riverVariants };
|