@nationaldesignstudio/react 0.0.17 → 0.1.0
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/component-registry.md +181 -29
- package/dist/components/atoms/accordion/accordion.d.ts +2 -2
- package/dist/components/atoms/background/background.d.ts +158 -0
- package/dist/components/atoms/button/button.d.ts +64 -82
- package/dist/components/atoms/button/icon-button.d.ts +128 -66
- package/dist/components/organisms/card/card.d.ts +130 -4
- package/dist/components/organisms/us-gov-banner/us-gov-banner.d.ts +120 -2
- package/dist/components/sections/hero/hero.d.ts +166 -150
- package/dist/components/sections/quote-block/quote-block.d.ts +152 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +4068 -6052
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.d.ts +1 -2
- package/dist/tokens.css +207 -16
- package/package.json +2 -4
- package/src/components/atoms/accordion/accordion.test.tsx +233 -0
- package/src/components/atoms/accordion/accordion.tsx +8 -8
- package/src/components/atoms/background/background.test.tsx +213 -0
- package/src/components/atoms/background/background.tsx +435 -0
- package/src/components/atoms/background/index.ts +22 -0
- package/src/components/atoms/button/button.stories.tsx +81 -32
- package/src/components/atoms/button/button.tsx +101 -49
- package/src/components/atoms/button/icon-button.stories.tsx +179 -28
- package/src/components/atoms/button/icon-button.test.tsx +254 -0
- package/src/components/atoms/button/icon-button.tsx +178 -59
- package/src/components/atoms/pager-control/pager-control.tsx +32 -3
- package/src/components/dev-tools/dev-toolbar/dev-toolbar.tsx +2 -0
- package/src/components/organisms/card/card.tsx +82 -24
- package/src/components/organisms/card/index.ts +7 -0
- package/src/components/organisms/navbar/navbar.tsx +2 -0
- package/src/components/organisms/us-gov-banner/index.ts +5 -1
- package/src/components/organisms/us-gov-banner/us-gov-banner.tsx +72 -16
- package/src/components/sections/hero/hero.stories.tsx +124 -1
- package/src/components/sections/hero/hero.test.tsx +21 -18
- package/src/components/sections/hero/hero.tsx +188 -301
- package/src/components/sections/hero/index.ts +13 -0
- package/src/components/sections/quote-block/index.ts +5 -0
- package/src/components/sections/quote-block/quote-block.tsx +216 -0
- package/src/index.ts +40 -0
- package/src/lib/utils.ts +1 -6
- package/src/stories/ThemeProvider.stories.tsx +11 -5
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Component Registry
|
|
2
2
|
|
|
3
3
|
> Auto-generated component metadata for AI/agent consumption.
|
|
4
|
-
> Generated: 2026-01-
|
|
4
|
+
> Generated: 2026-01-12T21:40:10.008Z
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -35,23 +35,23 @@ className="text-alpha-white-90"
|
|
|
35
35
|
|
|
36
36
|
### Spacing
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
Since `--spacing` is set to `1px`, standard Tailwind spacing utilities work directly with pixel values.
|
|
39
39
|
|
|
40
40
|
```tsx
|
|
41
41
|
// Padding - use single p- when all sides are the same
|
|
42
|
-
className="p-
|
|
43
|
-
className="px-
|
|
44
|
-
className="py-
|
|
42
|
+
className="p-32" // 32px all sides
|
|
43
|
+
className="px-24" // 24px horizontal
|
|
44
|
+
className="py-64" // 64px vertical
|
|
45
45
|
|
|
46
46
|
// Gap
|
|
47
|
-
className="gap-
|
|
47
|
+
className="gap-24" // 24px gap
|
|
48
48
|
|
|
49
49
|
// Margin
|
|
50
|
-
className="m-
|
|
50
|
+
className="m-16" // 16px margin
|
|
51
51
|
|
|
52
52
|
// Width/Height
|
|
53
|
-
className="w-
|
|
54
|
-
className="h-
|
|
53
|
+
className="w-48" // 48px width
|
|
54
|
+
className="h-64" // 64px height
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
**Available sizes:** 0, 2, 4, 6, 8, 10, 11, 12, 16, 20, 24, 28, 32, 36, 40, 48, 56, 64, 72, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384, 400
|
|
@@ -97,7 +97,7 @@ className="font-semibold" // Font weight 600
|
|
|
97
97
|
|
|
98
98
|
| Figma CSS Variable | Tailwind Equivalent |
|
|
99
99
|
|-------------------|---------------------|
|
|
100
|
-
| `var(--spacing/24,24px)` | `p-
|
|
100
|
+
| `var(--spacing/24,24px)` | `p-24` or `gap-24` |
|
|
101
101
|
| `var(--font-size/64,64px)` | `text-64` |
|
|
102
102
|
| `var(--color/indigo/900,#...)` | `bg-indigo-900` or `text-indigo-900` |
|
|
103
103
|
| `var(--global/line-height/16,24px)` | `leading-16` |
|
|
@@ -108,17 +108,17 @@ className="font-semibold" // Font weight 600
|
|
|
108
108
|
|----------------|----------------|
|
|
109
109
|
| Direction: Vertical | `flex flex-col` |
|
|
110
110
|
| Direction: Horizontal | `flex` |
|
|
111
|
-
| Gap | `gap-
|
|
111
|
+
| Gap | `gap-{N}` |
|
|
112
112
|
| Align items: Center | `items-center` |
|
|
113
113
|
| Justify: Space between | `justify-between` |
|
|
114
114
|
|
|
115
115
|
### Debugging Tips
|
|
116
116
|
|
|
117
117
|
1. **Colors not applying?** Use direct names like `bg-indigo-900` (no `color-` prefix)
|
|
118
|
-
2. **Spacing
|
|
118
|
+
2. **Spacing:** Use standard Tailwind utilities directly: `gap-24`, `p-32`, `m-16`
|
|
119
119
|
3. **Typography off?** Use composite classes `typography-brand-medium-headline-large`
|
|
120
120
|
4. **Non-token values?** Use arbitrary values: `gap-[10px]`, `py-[18px]`
|
|
121
|
-
5. **Width/Height
|
|
121
|
+
5. **Width/Height:** Use standard utilities: `h-64`, `w-48`
|
|
122
122
|
|
|
123
123
|
---
|
|
124
124
|
|
|
@@ -142,43 +142,86 @@ className="font-semibold" // Font weight 600
|
|
|
142
142
|
```
|
|
143
143
|
|
|
144
144
|
```tsx
|
|
145
|
-
<Button variant="
|
|
145
|
+
<Button variant="solid">Solid</Button>
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
```tsx
|
|
149
|
-
<Button variant="
|
|
149
|
+
<Button variant="outline">Outline</Button>
|
|
150
150
|
```
|
|
151
151
|
|
|
152
152
|
```tsx
|
|
153
|
-
<Button variant="
|
|
153
|
+
<Button variant="ghost">Ghost</Button>
|
|
154
154
|
```
|
|
155
155
|
|
|
156
156
|
```tsx
|
|
157
|
-
<Button variant="
|
|
157
|
+
<Button variant="subtle">Subtle</Button>
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
```tsx
|
|
161
|
-
<
|
|
161
|
+
<DarkBackground>
|
|
162
|
+
<Button variant="solid" colorScheme="light">
|
|
163
|
+
Solid Light
|
|
164
|
+
</Button>
|
|
165
|
+
</DarkBackground>
|
|
162
166
|
```
|
|
163
167
|
|
|
164
168
|
```tsx
|
|
165
|
-
<
|
|
169
|
+
<DarkBackground>
|
|
170
|
+
<Button variant="outline" colorScheme="light">
|
|
171
|
+
Outline Light
|
|
172
|
+
</Button>
|
|
173
|
+
</DarkBackground>
|
|
166
174
|
```
|
|
167
175
|
|
|
168
176
|
```tsx
|
|
169
|
-
<
|
|
177
|
+
<DarkBackground>
|
|
178
|
+
<Button variant="ghost" colorScheme="light">
|
|
179
|
+
Ghost Light
|
|
180
|
+
</Button>
|
|
181
|
+
</DarkBackground>
|
|
170
182
|
```
|
|
171
183
|
|
|
172
184
|
```tsx
|
|
173
|
-
<
|
|
185
|
+
<DarkBackground>
|
|
186
|
+
<Button variant="subtle" colorScheme="light">
|
|
187
|
+
Subtle Light
|
|
188
|
+
</Button>
|
|
189
|
+
</DarkBackground>
|
|
174
190
|
```
|
|
175
191
|
|
|
176
192
|
```tsx
|
|
177
|
-
<
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
193
|
+
<div className="flex flex-col gap-spacing-32">
|
|
194
|
+
<div>
|
|
195
|
+
<h3 className="mb-spacing-16 text-14 font-medium text-text-secondary">
|
|
196
|
+
Dark Color Scheme (for light backgrounds)
|
|
197
|
+
</h3>
|
|
198
|
+
<div className="flex gap-spacing-16">
|
|
199
|
+
<Button variant="solid">Solid</Button>
|
|
200
|
+
<Button variant="outline">Outline</Button>
|
|
201
|
+
<Button variant="ghost">Ghost</Button>
|
|
202
|
+
<Button variant="subtle">Subtle</Button>
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
<DarkBackground>
|
|
206
|
+
<h3 className="mb-spacing-16 text-14 font-medium text-gray-400">
|
|
207
|
+
Light Color Scheme (for dark backgrounds)
|
|
208
|
+
</h3>
|
|
209
|
+
<div className="flex gap-spacing-16">
|
|
210
|
+
<Button variant="solid" colorScheme="light">
|
|
211
|
+
Solid
|
|
212
|
+
</Button>
|
|
213
|
+
<Button variant="outline" colorScheme="light">
|
|
214
|
+
Outline
|
|
215
|
+
</Button>
|
|
216
|
+
<Button variant="ghost" colorScheme="light">
|
|
217
|
+
Ghost
|
|
218
|
+
</Button>
|
|
219
|
+
<Button variant="subtle" colorScheme="light">
|
|
220
|
+
Subtle
|
|
221
|
+
</Button>
|
|
222
|
+
</div>
|
|
223
|
+
</DarkBackground>
|
|
224
|
+
</div>
|
|
182
225
|
```
|
|
183
226
|
|
|
184
227
|
```tsx
|
|
@@ -437,16 +480,20 @@ className="font-semibold" // Font weight 600
|
|
|
437
480
|
|
|
438
481
|
**Props:**
|
|
439
482
|
|
|
440
|
-
- `title`: string
|
|
441
|
-
The title text displayed in the hero
|
|
483
|
+
- `title`: string
|
|
484
|
+
The title text displayed in the hero.
|
|
442
485
|
- `titleClassName`: string
|
|
443
486
|
Custom typography class for the title using primitive tokens.
|
|
487
|
+
- `top`: React.ReactNode
|
|
488
|
+
Content for the top slot (full-width, no padding).
|
|
444
489
|
- `background`: React.ReactNode | string
|
|
445
490
|
Background for the hero. Can be:
|
|
446
491
|
- `overlayOpacity`: number
|
|
447
492
|
Opacity of the overlay (0-1, default: 0)
|
|
448
493
|
- `overlayColor`: string
|
|
449
494
|
Color of the overlay (default: "black")
|
|
495
|
+
- `borderRadius`: string
|
|
496
|
+
Border radius for the hero container
|
|
450
497
|
- `theme`: ComponentTheme
|
|
451
498
|
Theme overrides for component styling via CSS custom properties
|
|
452
499
|
|
|
@@ -517,6 +564,70 @@ className="font-semibold" // Font weight 600
|
|
|
517
564
|
/>
|
|
518
565
|
```
|
|
519
566
|
|
|
567
|
+
```tsx
|
|
568
|
+
<Hero
|
|
569
|
+
variant="A1"
|
|
570
|
+
title="Hero with Top Slot"
|
|
571
|
+
background="#1a1a1a"
|
|
572
|
+
top={<MockBanner />}
|
|
573
|
+
/>
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
```tsx
|
|
577
|
+
<div className="bg-bg-page p-spacing-32">
|
|
578
|
+
<Hero
|
|
579
|
+
variant="A1"
|
|
580
|
+
title="Rounded Corners"
|
|
581
|
+
background="#1a1a1a"
|
|
582
|
+
borderRadius="0 0 20px 20px"
|
|
583
|
+
/>
|
|
584
|
+
</div>
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
```tsx
|
|
588
|
+
<div className="bg-bg-page">
|
|
589
|
+
<Hero
|
|
590
|
+
variant="A1"
|
|
591
|
+
title="Full Composition"
|
|
592
|
+
background={
|
|
593
|
+
<HeroBackground.Image
|
|
594
|
+
src="https://images.unsplash.com/photo-1451187580459-43490279c0fa?w=1920&q=80"
|
|
595
|
+
position="center"
|
|
596
|
+
/>
|
|
597
|
+
}
|
|
598
|
+
overlayOpacity={0.5}
|
|
599
|
+
borderRadius="0 0 20px 20px"
|
|
600
|
+
top={
|
|
601
|
+
<>
|
|
602
|
+
<MockBanner />
|
|
603
|
+
<MockNavigation />
|
|
604
|
+
</>
|
|
605
|
+
}
|
|
606
|
+
>
|
|
607
|
+
<p className="mt-spacing-16 max-w-[560px] text-20 text-text-inverted">
|
|
608
|
+
A subtitle or description can be added as children
|
|
609
|
+
</p>
|
|
610
|
+
</Hero>
|
|
611
|
+
</div>
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
```tsx
|
|
615
|
+
<section className="relative flex min-h-[80vh] flex-col bg-gray-1200">
|
|
616
|
+
<HeroHeader>
|
|
617
|
+
<MockBanner />
|
|
618
|
+
<MockNavigation />
|
|
619
|
+
</HeroHeader>
|
|
620
|
+
<HeroContent className="flex-1 justify-end">
|
|
621
|
+
<h1 className="text-64 font-medium text-text-inverted lg:text-128">
|
|
622
|
+
Custom Layout
|
|
623
|
+
</h1>
|
|
624
|
+
<p className="mt-spacing-16 text-20 text-text-inverted">
|
|
625
|
+
Using HeroHeader and HeroContent sub-components
|
|
626
|
+
</p>
|
|
627
|
+
</HeroContent>
|
|
628
|
+
</section>
|
|
629
|
+
```
|
|
630
|
+
|
|
520
631
|
```tsx
|
|
521
632
|
<Hero variant="A1" title="Hero A1" />
|
|
522
633
|
```
|
|
@@ -1013,6 +1124,13 @@ className="font-semibold" // Font weight 600
|
|
|
1013
1124
|
```
|
|
1014
1125
|
|
|
1015
1126
|
|
|
1127
|
+
### Background
|
|
1128
|
+
|
|
1129
|
+
**Import:** `import { Background } from "@nationaldesignstudio/react";`
|
|
1130
|
+
|
|
1131
|
+
**Category:** Other
|
|
1132
|
+
|
|
1133
|
+
|
|
1016
1134
|
### Banner
|
|
1017
1135
|
|
|
1018
1136
|
**Import:** `import { Banner } from "@nationaldesignstudio/react";`
|
|
@@ -1841,6 +1959,40 @@ className="font-semibold" // Font weight 600
|
|
|
1841
1959
|
```
|
|
1842
1960
|
|
|
1843
1961
|
|
|
1962
|
+
### QuoteBlock
|
|
1963
|
+
|
|
1964
|
+
**Import:** `import { QuoteBlock } from "@nationaldesignstudio/react";`
|
|
1965
|
+
|
|
1966
|
+
**Category:** Other
|
|
1967
|
+
|
|
1968
|
+
**Props:**
|
|
1969
|
+
|
|
1970
|
+
- `quote`: string (required)
|
|
1971
|
+
The quote text to display
|
|
1972
|
+
- `showQuoteMarks`: boolean
|
|
1973
|
+
true
|
|
1974
|
+
- `signatureImage`: string
|
|
1975
|
+
Signature image URL (optional)
|
|
1976
|
+
- `signatureAlt`: string
|
|
1977
|
+
Alt text for signature image
|
|
1978
|
+
- `attributionName`: string
|
|
1979
|
+
Attribution name (e.g., "Donald J. Trump")
|
|
1980
|
+
- `attributionTitle`: string
|
|
1981
|
+
Attribution title (e.g., "45 & 47 President of the United States")
|
|
1982
|
+
- `background`: React.ReactNode
|
|
1983
|
+
Background element - use BackgroundImage or similar
|
|
1984
|
+
- `overlayOpacity`: number
|
|
1985
|
+
Overlay opacity (0-1)
|
|
1986
|
+
- `overlayColor`: string
|
|
1987
|
+
Overlay color
|
|
1988
|
+
- `quoteClassName`: string
|
|
1989
|
+
Custom class for the quote text
|
|
1990
|
+
- `bylineNameClassName`: string
|
|
1991
|
+
Custom class for the byline name
|
|
1992
|
+
- `bylineTitleClassName`: string
|
|
1993
|
+
Custom class for the byline title
|
|
1994
|
+
|
|
1995
|
+
|
|
1844
1996
|
### River
|
|
1845
1997
|
|
|
1846
1998
|
**Import:** `import { River } from "@nationaldesignstudio/react";`
|
|
@@ -2401,5 +2553,5 @@ className="font-semibold" // Font weight 600
|
|
|
2401
2553
|
- **Action:** Button
|
|
2402
2554
|
- **Display:** Card, Hero, UsGovBanner
|
|
2403
2555
|
- **Navigation:** Navbar
|
|
2404
|
-
- **Other:** Accordion, Banner, CardGrid, DevToolbar, FaqSection, GridOverlay, NdstudioFooter, PagerControl, River, Tout, TwoColumnSection
|
|
2556
|
+
- **Other:** Accordion, Background, Banner, CardGrid, DevToolbar, FaqSection, GridOverlay, NdstudioFooter, PagerControl, QuoteBlock, River, Tout, TwoColumnSection
|
|
2405
2557
|
- **Typography:** Prose
|
|
@@ -53,8 +53,8 @@ export interface AccordionProps extends React.HTMLAttributes<HTMLDivElement>, Va
|
|
|
53
53
|
* Built on Base UI's Accordion primitive.
|
|
54
54
|
*
|
|
55
55
|
* Variants:
|
|
56
|
-
* -
|
|
57
|
-
* -
|
|
56
|
+
* - light: Light theme styling (default)
|
|
57
|
+
* - dark: Dark theme styling
|
|
58
58
|
*
|
|
59
59
|
* @example
|
|
60
60
|
* ```tsx
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
declare const backgroundVariants: import('tailwind-variants').TVReturnType<{} | {} | {}, undefined, "absolute inset-0", import('tailwind-variants/dist/config.js').TVConfig<unknown, {} | {}>, {} | {}, undefined, import('tailwind-variants').TVReturnType<unknown, undefined, "absolute inset-0", import('tailwind-variants/dist/config.js').TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
3
|
+
/**
|
|
4
|
+
* Base container for background composition.
|
|
5
|
+
* Use as a wrapper to compose multiple background layers (image, video, overlay, gradient).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <Background>
|
|
10
|
+
* <Background.Image src="/hero.jpg" />
|
|
11
|
+
* <Background.Overlay opacity={0.4} />
|
|
12
|
+
* <Background.Gradient direction="to-t" from="black" to="transparent" />
|
|
13
|
+
* </Background>
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export interface BackgroundProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
17
|
+
}
|
|
18
|
+
declare const backgroundImageVariants: import('tailwind-variants').TVReturnType<{} | {} | {}, undefined, "absolute inset-0 size-full object-cover", import('tailwind-variants/dist/config.js').TVConfig<unknown, {} | {}>, {} | {}, undefined, import('tailwind-variants').TVReturnType<unknown, undefined, "absolute inset-0 size-full object-cover", import('tailwind-variants/dist/config.js').TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
19
|
+
export interface BackgroundImageProps extends Omit<React.ImgHTMLAttributes<HTMLImageElement>, "src"> {
|
|
20
|
+
/**
|
|
21
|
+
* URL for the background image
|
|
22
|
+
*/
|
|
23
|
+
src: string;
|
|
24
|
+
/**
|
|
25
|
+
* Object position (default: "center")
|
|
26
|
+
*/
|
|
27
|
+
position?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Custom render prop for element composition.
|
|
30
|
+
* Accepts a React element or render function.
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* // Element pattern
|
|
34
|
+
* <BackgroundImage render={<img className="custom" />} src="/bg.jpg" />
|
|
35
|
+
*
|
|
36
|
+
* // Callback pattern
|
|
37
|
+
* <BackgroundImage render={(props) => <img {...props} />} src="/bg.jpg" />
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
render?: React.ReactElement | ((props: React.ImgHTMLAttributes<HTMLImageElement>) => React.ReactElement);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Background image layer using an actual img element with object-cover.
|
|
44
|
+
* Supports native lazy loading, srcset, and better accessibility.
|
|
45
|
+
* Supports render prop for element composition.
|
|
46
|
+
*/
|
|
47
|
+
declare const BackgroundImage: React.ForwardRefExoticComponent<BackgroundImageProps & React.RefAttributes<HTMLImageElement>>;
|
|
48
|
+
declare const backgroundVideoVariants: import('tailwind-variants').TVReturnType<{} | {} | {}, undefined, "absolute inset-0 size-full object-cover", import('tailwind-variants/dist/config.js').TVConfig<unknown, {} | {}>, {} | {}, undefined, import('tailwind-variants').TVReturnType<unknown, undefined, "absolute inset-0 size-full object-cover", import('tailwind-variants/dist/config.js').TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
49
|
+
export interface BackgroundVideoProps extends Omit<React.VideoHTMLAttributes<HTMLVideoElement>, "children"> {
|
|
50
|
+
/**
|
|
51
|
+
* URL for the video source
|
|
52
|
+
*/
|
|
53
|
+
src: string;
|
|
54
|
+
/**
|
|
55
|
+
* Video MIME type (default: auto-detected from src)
|
|
56
|
+
*/
|
|
57
|
+
type?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Poster image URL shown before video loads
|
|
60
|
+
*/
|
|
61
|
+
poster?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Custom render prop for element composition.
|
|
64
|
+
* @example
|
|
65
|
+
* ```tsx
|
|
66
|
+
* <BackgroundVideo render={<video className="custom" />} src="/bg.mp4" />
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
render?: React.ReactElement | ((props: React.VideoHTMLAttributes<HTMLVideoElement>) => React.ReactElement);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Background video layer using HTML5 video element.
|
|
73
|
+
* Supports render prop for element composition.
|
|
74
|
+
*/
|
|
75
|
+
declare const BackgroundVideo: React.ForwardRefExoticComponent<BackgroundVideoProps & React.RefAttributes<HTMLVideoElement>>;
|
|
76
|
+
declare const backgroundStreamVariants: import('tailwind-variants').TVReturnType<{} | {} | {}, undefined, "absolute inset-0 size-full border-0 scale-[1.5] object-cover", import('tailwind-variants/dist/config.js').TVConfig<unknown, {} | {}>, {} | {}, undefined, import('tailwind-variants').TVReturnType<unknown, undefined, "absolute inset-0 size-full border-0 scale-[1.5] object-cover", import('tailwind-variants/dist/config.js').TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
77
|
+
export interface BackgroundStreamProps extends React.IframeHTMLAttributes<HTMLIFrameElement> {
|
|
78
|
+
/**
|
|
79
|
+
* Cloudflare Stream video ID
|
|
80
|
+
*/
|
|
81
|
+
videoId: string;
|
|
82
|
+
/**
|
|
83
|
+
* Poster image URL (Cloudflare Stream thumbnail or custom)
|
|
84
|
+
*/
|
|
85
|
+
poster?: string;
|
|
86
|
+
/**
|
|
87
|
+
* Whether the video should autoplay (default: true)
|
|
88
|
+
*/
|
|
89
|
+
autoplay?: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Whether the video should loop (default: true)
|
|
92
|
+
*/
|
|
93
|
+
loop?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Whether the video should be muted (default: true)
|
|
96
|
+
*/
|
|
97
|
+
muted?: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Whether to show playback controls (default: false)
|
|
100
|
+
*/
|
|
101
|
+
controls?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Custom Cloudflare customer subdomain (if using custom domains)
|
|
104
|
+
*/
|
|
105
|
+
customerSubdomain?: string;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Background video layer using Cloudflare Stream.
|
|
109
|
+
*/
|
|
110
|
+
declare const BackgroundStream: React.ForwardRefExoticComponent<BackgroundStreamProps & React.RefAttributes<HTMLIFrameElement>>;
|
|
111
|
+
declare const backgroundOverlayVariants: import('tailwind-variants').TVReturnType<{} | {} | {}, undefined, "absolute inset-0 bg-bg-overlay", import('tailwind-variants/dist/config.js').TVConfig<unknown, {} | {}>, {} | {}, undefined, import('tailwind-variants').TVReturnType<unknown, undefined, "absolute inset-0 bg-bg-overlay", import('tailwind-variants/dist/config.js').TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
112
|
+
export interface BackgroundOverlayProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
113
|
+
/**
|
|
114
|
+
* Overlay opacity (0-1)
|
|
115
|
+
*/
|
|
116
|
+
opacity?: number;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Solid color overlay layer. Uses semantic bg-overlay token by default.
|
|
120
|
+
* Override with className for different colors.
|
|
121
|
+
*/
|
|
122
|
+
declare const BackgroundOverlay: React.ForwardRefExoticComponent<BackgroundOverlayProps & React.RefAttributes<HTMLDivElement>>;
|
|
123
|
+
declare const backgroundGradientVariants: import('tailwind-variants').TVReturnType<{} | {} | {}, undefined, "absolute inset-0", import('tailwind-variants/dist/config.js').TVConfig<unknown, {} | {}>, {} | {}, undefined, import('tailwind-variants').TVReturnType<unknown, undefined, "absolute inset-0", import('tailwind-variants/dist/config.js').TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
124
|
+
export interface BackgroundGradientProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
125
|
+
/**
|
|
126
|
+
* Gradient direction (Tailwind convention: to-t, to-b, to-l, to-r, etc.)
|
|
127
|
+
* Or CSS gradient direction (to top, to bottom, 45deg, etc.)
|
|
128
|
+
*/
|
|
129
|
+
direction?: string;
|
|
130
|
+
/**
|
|
131
|
+
* Starting color (from)
|
|
132
|
+
*/
|
|
133
|
+
from?: string;
|
|
134
|
+
/**
|
|
135
|
+
* Optional middle color (via)
|
|
136
|
+
*/
|
|
137
|
+
via?: string;
|
|
138
|
+
/**
|
|
139
|
+
* Ending color (to)
|
|
140
|
+
*/
|
|
141
|
+
to?: string;
|
|
142
|
+
/**
|
|
143
|
+
* Full custom gradient string (overrides from/via/to)
|
|
144
|
+
*/
|
|
145
|
+
gradient?: string;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Gradient overlay layer. Use for fading backgrounds or creating depth.
|
|
149
|
+
*/
|
|
150
|
+
declare const BackgroundGradient: React.ForwardRefExoticComponent<BackgroundGradientProps & React.RefAttributes<HTMLDivElement>>;
|
|
151
|
+
declare const BackgroundCompound: React.ForwardRefExoticComponent<BackgroundProps & React.RefAttributes<HTMLDivElement>> & {
|
|
152
|
+
Image: React.ForwardRefExoticComponent<BackgroundImageProps & React.RefAttributes<HTMLImageElement>>;
|
|
153
|
+
Video: React.ForwardRefExoticComponent<BackgroundVideoProps & React.RefAttributes<HTMLVideoElement>>;
|
|
154
|
+
Stream: React.ForwardRefExoticComponent<BackgroundStreamProps & React.RefAttributes<HTMLIFrameElement>>;
|
|
155
|
+
Overlay: React.ForwardRefExoticComponent<BackgroundOverlayProps & React.RefAttributes<HTMLDivElement>>;
|
|
156
|
+
Gradient: React.ForwardRefExoticComponent<BackgroundGradientProps & React.RefAttributes<HTMLDivElement>>;
|
|
157
|
+
};
|
|
158
|
+
export { BackgroundCompound as Background, BackgroundImage, BackgroundVideo, BackgroundStream, BackgroundOverlay, BackgroundGradient, backgroundVariants, backgroundImageVariants, backgroundVideoVariants, backgroundStreamVariants, backgroundOverlayVariants, backgroundGradientVariants, };
|