@nationaldesignstudio/react 0.1.0 → 0.3.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 +46 -19
- package/dist/components/atoms/accordion/accordion.d.ts +7 -7
- package/dist/components/atoms/background/background.d.ts +13 -27
- package/dist/components/atoms/button/button.d.ts +55 -71
- package/dist/components/atoms/button/icon-button.d.ts +62 -110
- package/dist/components/atoms/input/input-group.d.ts +278 -0
- package/dist/components/atoms/input/input.d.ts +121 -0
- package/dist/components/atoms/select/select.d.ts +131 -0
- package/dist/components/organisms/card/card.d.ts +2 -2
- package/dist/components/sections/banner/banner.d.ts +9 -9
- package/dist/components/sections/faq-section/faq-section.d.ts +1 -1
- package/dist/components/sections/hero/hero.d.ts +115 -18
- package/dist/components/sections/prose/prose.d.ts +3 -3
- package/dist/components/sections/river/river.d.ts +1 -1
- package/dist/components/sections/tout/tout.d.ts +9 -9
- package/dist/components/sections/two-column-section/two-column-section.d.ts +7 -21
- package/dist/index.d.ts +4 -0
- package/dist/index.js +11075 -7841
- package/dist/index.js.map +1 -1
- package/dist/lib/form-control.d.ts +105 -0
- package/dist/tokens.css +2144 -17341
- package/package.json +1 -1
- package/src/components/atoms/accordion/accordion.test.tsx +18 -20
- package/src/components/atoms/accordion/accordion.tsx +19 -17
- package/src/components/atoms/background/background.test.tsx +2 -2
- package/src/components/atoms/background/background.tsx +77 -96
- package/src/components/atoms/button/button.stories.tsx +42 -0
- package/src/components/atoms/button/button.test.tsx +1 -1
- package/src/components/atoms/button/button.tsx +38 -103
- package/src/components/atoms/button/button.visual.test.tsx +70 -24
- package/src/components/atoms/button/icon-button.tsx +80 -188
- package/src/components/atoms/input/index.ts +17 -0
- package/src/components/atoms/input/input-group.stories.tsx +650 -0
- package/src/components/atoms/input/input-group.test.tsx +376 -0
- package/src/components/atoms/input/input-group.tsx +384 -0
- package/src/components/atoms/input/input.stories.tsx +232 -0
- package/src/components/atoms/input/input.test.tsx +183 -0
- package/src/components/atoms/input/input.tsx +97 -0
- package/src/components/atoms/select/index.ts +18 -0
- package/src/components/atoms/select/select.stories.tsx +455 -0
- package/src/components/atoms/select/select.tsx +320 -0
- package/src/components/dev-tools/dev-toolbar/dev-toolbar.stories.tsx +2 -6
- package/src/components/foundation/typography/typography.stories.tsx +401 -0
- package/src/components/organisms/card/card.stories.tsx +11 -11
- package/src/components/organisms/card/card.test.tsx +5 -3
- package/src/components/organisms/card/card.tsx +2 -2
- package/src/components/organisms/card/card.visual.test.tsx +6 -6
- package/src/components/organisms/navbar/navbar.tsx +2 -2
- package/src/components/organisms/navbar/navbar.visual.test.tsx +2 -2
- package/src/components/sections/banner/banner.stories.tsx +5 -1
- package/src/components/sections/banner/banner.tsx +10 -10
- package/src/components/sections/card-grid/card-grid.tsx +1 -1
- package/src/components/sections/faq-section/faq-section.stories.tsx +7 -7
- package/src/components/sections/faq-section/faq-section.tsx +5 -5
- package/src/components/sections/hero/hero.test.tsx +5 -5
- package/src/components/sections/hero/hero.tsx +33 -51
- package/src/components/sections/prose/prose.test.tsx +2 -2
- package/src/components/sections/prose/prose.tsx +4 -5
- package/src/components/sections/river/river.stories.tsx +8 -8
- package/src/components/sections/river/river.test.tsx +1 -1
- package/src/components/sections/river/river.tsx +2 -4
- package/src/components/sections/tout/tout.stories.tsx +31 -7
- package/src/components/sections/tout/tout.test.tsx +1 -1
- package/src/components/sections/tout/tout.tsx +8 -10
- package/src/components/sections/two-column-section/two-column-section.stories.tsx +11 -11
- package/src/components/sections/two-column-section/two-column-section.tsx +16 -10
- package/src/index.ts +41 -0
- package/src/lib/form-control.ts +69 -0
- package/src/stories/Introduction.mdx +29 -15
- package/src/stories/ThemeProvider.stories.tsx +1 -3
- package/src/stories/TokenShowcase.stories.tsx +0 -19
- package/src/stories/TokenShowcase.tsx +714 -1366
- package/src/styles.css +3 -0
- package/src/tests/token-resolution.test.tsx +301 -0
|
@@ -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-13T20:09:44.586Z
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -484,6 +484,9 @@ className="font-semibold" // Font weight 600
|
|
|
484
484
|
The title text displayed in the hero.
|
|
485
485
|
- `titleClassName`: string
|
|
486
486
|
Custom typography class for the title using primitive tokens.
|
|
487
|
+
- `colorScheme`: "dark" | "light"
|
|
488
|
+
Color scheme for text content.
|
|
489
|
+
Values: `dark`, `light`
|
|
487
490
|
- `top`: React.ReactNode
|
|
488
491
|
Content for the top slot (full-width, no padding).
|
|
489
492
|
- `background`: React.ReactNode | string
|
|
@@ -1203,7 +1206,11 @@ className="font-semibold" // Font weight 600
|
|
|
1203
1206
|
<Banner
|
|
1204
1207
|
heading="Custom Styled Banner"
|
|
1205
1208
|
description="This banner has a custom background color applied via className."
|
|
1206
|
-
action={
|
|
1209
|
+
action={
|
|
1210
|
+
<Button variant="outline" colorScheme="light">
|
|
1211
|
+
Action
|
|
1212
|
+
</Button>
|
|
1213
|
+
}
|
|
1207
1214
|
className="bg-gray-1000 text-gray-50 [&_h2]:text-gray-50 [&_p]:text-gray-200"
|
|
1208
1215
|
/>
|
|
1209
1216
|
```
|
|
@@ -1503,8 +1510,8 @@ className="font-semibold" // Font weight 600
|
|
|
1503
1510
|
```
|
|
1504
1511
|
|
|
1505
1512
|
```tsx
|
|
1506
|
-
<FaqSection
|
|
1507
|
-
<Accordion defaultExpanded="faq-1">
|
|
1513
|
+
<FaqSection colorScheme="dark">
|
|
1514
|
+
<Accordion colorScheme="dark" defaultExpanded="faq-1">
|
|
1508
1515
|
<AccordionItem
|
|
1509
1516
|
id="faq-1"
|
|
1510
1517
|
title="What is the US Tech Force (Tech Force)?"
|
|
@@ -1531,7 +1538,7 @@ className="font-semibold" // Font weight 600
|
|
|
1531
1538
|
```
|
|
1532
1539
|
|
|
1533
1540
|
```tsx
|
|
1534
|
-
<FaqSection
|
|
1541
|
+
<FaqSection colorScheme="light">
|
|
1535
1542
|
<Accordion defaultExpanded="faq-1">
|
|
1536
1543
|
<AccordionItem
|
|
1537
1544
|
id="faq-1"
|
|
@@ -2177,7 +2184,11 @@ className="font-semibold" // Font weight 600
|
|
|
2177
2184
|
headline="Brand-Large/Headline/Small"
|
|
2178
2185
|
body="A river pattern stacks content in a simple vertical flow: one clear heading, a short block of copy, then the next step. It's ideal for guiding citizens through a process or story, keeping focus moving straight down the page with minimal choices and well-timed calls to action."
|
|
2179
2186
|
primaryAction={<Button>Primary</Button>}
|
|
2180
|
-
secondaryAction={
|
|
2187
|
+
secondaryAction={
|
|
2188
|
+
<Button variant="outline" colorScheme="light">
|
|
2189
|
+
Secondary
|
|
2190
|
+
</Button>
|
|
2191
|
+
}
|
|
2181
2192
|
backgroundMedia={<PlaceholderBackground />}
|
|
2182
2193
|
/>
|
|
2183
2194
|
```
|
|
@@ -2187,7 +2198,11 @@ className="font-semibold" // Font weight 600
|
|
|
2187
2198
|
headline="Brand-Large/Headline/Small"
|
|
2188
2199
|
body="A river pattern stacks content in a simple vertical flow: one clear heading, a short block of copy, then the next step. It's ideal for guiding citizens through a process or story, keeping focus moving straight down the page with minimal choices and well-timed calls to action."
|
|
2189
2200
|
primaryAction={<Button>Primary</Button>}
|
|
2190
|
-
secondaryAction={
|
|
2201
|
+
secondaryAction={
|
|
2202
|
+
<Button variant="outline" colorScheme="light">
|
|
2203
|
+
Secondary
|
|
2204
|
+
</Button>
|
|
2205
|
+
}
|
|
2191
2206
|
backgroundMedia={<PlaceholderBackground />}
|
|
2192
2207
|
/>
|
|
2193
2208
|
```
|
|
@@ -2198,7 +2213,7 @@ className="font-semibold" // Font weight 600
|
|
|
2198
2213
|
body="A river pattern stacks content in a simple vertical flow: one clear heading, a short block of copy, then the next step. It's ideal for guiding citizens through a process or story, keeping focus moving straight down the page with minimal choices and well-timed calls to action."
|
|
2199
2214
|
primaryAction={<Button size="sm">Primary</Button>}
|
|
2200
2215
|
secondaryAction={
|
|
2201
|
-
<Button size="sm" variant="
|
|
2216
|
+
<Button size="sm" variant="outline" colorScheme="light">
|
|
2202
2217
|
Secondary
|
|
2203
2218
|
</Button>
|
|
2204
2219
|
}
|
|
@@ -2211,7 +2226,11 @@ className="font-semibold" // Font weight 600
|
|
|
2211
2226
|
headline="Work with Purpose"
|
|
2212
2227
|
body="Join a team that's building the future of government services. We're looking for passionate individuals who want to make a difference."
|
|
2213
2228
|
primaryAction={<Button>View Careers</Button>}
|
|
2214
|
-
secondaryAction={
|
|
2229
|
+
secondaryAction={
|
|
2230
|
+
<Button variant="outline" colorScheme="light">
|
|
2231
|
+
Learn More
|
|
2232
|
+
</Button>
|
|
2233
|
+
}
|
|
2215
2234
|
backgroundMedia={<ImageBackground />}
|
|
2216
2235
|
/>
|
|
2217
2236
|
```
|
|
@@ -2230,7 +2249,11 @@ className="font-semibold" // Font weight 600
|
|
|
2230
2249
|
headline="Experience Innovation"
|
|
2231
2250
|
body="See how modern technology is transforming the way government serves its citizens."
|
|
2232
2251
|
primaryAction={<Button>Watch Video</Button>}
|
|
2233
|
-
secondaryAction={
|
|
2252
|
+
secondaryAction={
|
|
2253
|
+
<Button variant="outline" colorScheme="light">
|
|
2254
|
+
Learn More
|
|
2255
|
+
</Button>
|
|
2256
|
+
}
|
|
2234
2257
|
backgroundMedia={
|
|
2235
2258
|
<div className="absolute inset-0 bg-gray-800 flex items-center justify-center">
|
|
2236
2259
|
<span className="text-gray-400 typography-body-small">
|
|
@@ -2246,7 +2269,11 @@ className="font-semibold" // Font weight 600
|
|
|
2246
2269
|
headline="Work with Purpose"
|
|
2247
2270
|
body="Join a team that's building the future of government services. We're looking for passionate individuals who want to make a difference."
|
|
2248
2271
|
primaryAction={<Button>View Careers</Button>}
|
|
2249
|
-
secondaryAction={
|
|
2272
|
+
secondaryAction={
|
|
2273
|
+
<Button variant="outline" colorScheme="light">
|
|
2274
|
+
Learn More
|
|
2275
|
+
</Button>
|
|
2276
|
+
}
|
|
2250
2277
|
backgroundMedia={<ImageBackground />}
|
|
2251
2278
|
footer={<NdstudioFooter />}
|
|
2252
2279
|
/>
|
|
@@ -2279,7 +2306,7 @@ className="font-semibold" // Font weight 600
|
|
|
2279
2306
|
|
|
2280
2307
|
```tsx
|
|
2281
2308
|
<TwoColumnSection
|
|
2282
|
-
|
|
2309
|
+
colorScheme="dark"
|
|
2283
2310
|
title="US Tech Force"
|
|
2284
2311
|
lead="The US Tech Force is recruiting an elite corps of engineers to build the next generation of government technology."
|
|
2285
2312
|
>
|
|
@@ -2296,7 +2323,7 @@ className="font-semibold" // Font weight 600
|
|
|
2296
2323
|
|
|
2297
2324
|
```tsx
|
|
2298
2325
|
<TwoColumnSection
|
|
2299
|
-
|
|
2326
|
+
colorScheme="light"
|
|
2300
2327
|
title="US Tech Force"
|
|
2301
2328
|
lead="The US Tech Force is recruiting an elite corps of engineers to build the next generation of government technology."
|
|
2302
2329
|
>
|
|
@@ -2313,7 +2340,7 @@ className="font-semibold" // Font weight 600
|
|
|
2313
2340
|
|
|
2314
2341
|
```tsx
|
|
2315
2342
|
<TwoColumnSection
|
|
2316
|
-
|
|
2343
|
+
colorScheme="dark"
|
|
2317
2344
|
title="US Tech Force"
|
|
2318
2345
|
lead="The US Tech Force is recruiting an elite corps of engineers to build the next generation of government technology. Backed by the White House, Tech Force will tackle the most complex and large-scale civic and defense challenges of our era."
|
|
2319
2346
|
>
|
|
@@ -2341,7 +2368,7 @@ className="font-semibold" // Font weight 600
|
|
|
2341
2368
|
|
|
2342
2369
|
```tsx
|
|
2343
2370
|
<TwoColumnSection
|
|
2344
|
-
|
|
2371
|
+
colorScheme="dark"
|
|
2345
2372
|
title="US Tech Force"
|
|
2346
2373
|
lead="The US Tech Force is recruiting an elite corps of engineers to build the next generation of government technology. Backed by the White House, Tech Force will tackle the most complex and large-scale civic and defense challenges of our era."
|
|
2347
2374
|
>
|
|
@@ -2369,7 +2396,7 @@ className="font-semibold" // Font weight 600
|
|
|
2369
2396
|
|
|
2370
2397
|
```tsx
|
|
2371
2398
|
<TwoColumnSection
|
|
2372
|
-
|
|
2399
|
+
colorScheme="dark"
|
|
2373
2400
|
title="US Tech Force"
|
|
2374
2401
|
lead="The US Tech Force is recruiting an elite corps of engineers to build the next generation of government technology. Backed by the White House, Tech Force will tackle the most complex and large-scale civic and defense challenges of our era."
|
|
2375
2402
|
>
|
|
@@ -2396,7 +2423,7 @@ className="font-semibold" // Font weight 600
|
|
|
2396
2423
|
```
|
|
2397
2424
|
|
|
2398
2425
|
```tsx
|
|
2399
|
-
<TwoColumnSection
|
|
2426
|
+
<TwoColumnSection colorScheme="dark" title="About the Program">
|
|
2400
2427
|
<p>
|
|
2401
2428
|
Through a two-year program, participants will work in teams reporting
|
|
2402
2429
|
directly to agency leadership. In collaboration with leading technology
|
|
@@ -2413,7 +2440,7 @@ className="font-semibold" // Font weight 600
|
|
|
2413
2440
|
|
|
2414
2441
|
```tsx
|
|
2415
2442
|
<TwoColumnSection
|
|
2416
|
-
|
|
2443
|
+
colorScheme="dark"
|
|
2417
2444
|
title="Our Mission"
|
|
2418
2445
|
lead={
|
|
2419
2446
|
<>
|
|
@@ -2438,7 +2465,7 @@ className="font-semibold" // Font weight 600
|
|
|
2438
2465
|
|
|
2439
2466
|
```tsx
|
|
2440
2467
|
<TwoColumnSection
|
|
2441
|
-
|
|
2468
|
+
colorScheme="dark"
|
|
2442
2469
|
title="Join Us"
|
|
2443
2470
|
lead="Build the future of American government technology."
|
|
2444
2471
|
>
|
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
import { VariantProps } from 'tailwind-variants';
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
declare const accordionVariants: import('tailwind-variants').TVReturnType<{
|
|
4
|
-
|
|
4
|
+
colorScheme: {
|
|
5
5
|
dark: string;
|
|
6
6
|
light: string;
|
|
7
7
|
};
|
|
8
8
|
}, undefined, "flex flex-col", import('tailwind-variants/dist/config.js').TVConfig<{
|
|
9
|
-
|
|
9
|
+
colorScheme: {
|
|
10
10
|
dark: string;
|
|
11
11
|
light: string;
|
|
12
12
|
};
|
|
13
13
|
}, {
|
|
14
|
-
|
|
14
|
+
colorScheme: {
|
|
15
15
|
dark: string;
|
|
16
16
|
light: string;
|
|
17
17
|
};
|
|
18
18
|
}>, {
|
|
19
|
-
|
|
19
|
+
colorScheme: {
|
|
20
20
|
dark: string;
|
|
21
21
|
light: string;
|
|
22
22
|
};
|
|
23
23
|
}, undefined, import('tailwind-variants').TVReturnType<{
|
|
24
|
-
|
|
24
|
+
colorScheme: {
|
|
25
25
|
dark: string;
|
|
26
26
|
light: string;
|
|
27
27
|
};
|
|
28
28
|
}, undefined, "flex flex-col", import('tailwind-variants/dist/config.js').TVConfig<{
|
|
29
|
-
|
|
29
|
+
colorScheme: {
|
|
30
30
|
dark: string;
|
|
31
31
|
light: string;
|
|
32
32
|
};
|
|
33
33
|
}, {
|
|
34
|
-
|
|
34
|
+
colorScheme: {
|
|
35
35
|
dark: string;
|
|
36
36
|
light: string;
|
|
37
37
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useRender } from '@base-ui-components/react/use-render';
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
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
|
/**
|
|
@@ -16,7 +17,7 @@ declare const backgroundVariants: import('tailwind-variants').TVReturnType<{} |
|
|
|
16
17
|
export interface BackgroundProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
17
18
|
}
|
|
18
19
|
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
|
+
export interface BackgroundImageProps extends useRender.ComponentProps<"img">, Omit<React.ImgHTMLAttributes<HTMLImageElement>, "src" | "render"> {
|
|
20
21
|
/**
|
|
21
22
|
* URL for the background image
|
|
22
23
|
*/
|
|
@@ -25,28 +26,18 @@ export interface BackgroundImageProps extends Omit<React.ImgHTMLAttributes<HTMLI
|
|
|
25
26
|
* Object position (default: "center")
|
|
26
27
|
*/
|
|
27
28
|
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
29
|
}
|
|
42
30
|
/**
|
|
43
31
|
* Background image layer using an actual img element with object-cover.
|
|
44
32
|
* Supports native lazy loading, srcset, and better accessibility.
|
|
45
33
|
* Supports render prop for element composition.
|
|
46
34
|
*/
|
|
47
|
-
declare
|
|
35
|
+
declare function BackgroundImage(props: BackgroundImageProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
36
|
+
declare namespace BackgroundImage {
|
|
37
|
+
var displayName: string;
|
|
38
|
+
}
|
|
48
39
|
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"> {
|
|
40
|
+
export interface BackgroundVideoProps extends useRender.ComponentProps<"video">, Omit<React.VideoHTMLAttributes<HTMLVideoElement>, "children" | "render" | "src"> {
|
|
50
41
|
/**
|
|
51
42
|
* URL for the video source
|
|
52
43
|
*/
|
|
@@ -59,20 +50,15 @@ export interface BackgroundVideoProps extends Omit<React.VideoHTMLAttributes<HTM
|
|
|
59
50
|
* Poster image URL shown before video loads
|
|
60
51
|
*/
|
|
61
52
|
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
53
|
}
|
|
71
54
|
/**
|
|
72
55
|
* Background video layer using HTML5 video element.
|
|
73
56
|
* Supports render prop for element composition.
|
|
74
57
|
*/
|
|
75
|
-
declare
|
|
58
|
+
declare function BackgroundVideo(props: BackgroundVideoProps): import("react/jsx-runtime").JSX.Element;
|
|
59
|
+
declare namespace BackgroundVideo {
|
|
60
|
+
var displayName: string;
|
|
61
|
+
}
|
|
76
62
|
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
63
|
export interface BackgroundStreamProps extends React.IframeHTMLAttributes<HTMLIFrameElement> {
|
|
78
64
|
/**
|
|
@@ -149,8 +135,8 @@ export interface BackgroundGradientProps extends React.HTMLAttributes<HTMLDivEle
|
|
|
149
135
|
*/
|
|
150
136
|
declare const BackgroundGradient: React.ForwardRefExoticComponent<BackgroundGradientProps & React.RefAttributes<HTMLDivElement>>;
|
|
151
137
|
declare const BackgroundCompound: React.ForwardRefExoticComponent<BackgroundProps & React.RefAttributes<HTMLDivElement>> & {
|
|
152
|
-
Image:
|
|
153
|
-
Video:
|
|
138
|
+
Image: typeof BackgroundImage;
|
|
139
|
+
Video: typeof BackgroundVideo;
|
|
154
140
|
Stream: React.ForwardRefExoticComponent<BackgroundStreamProps & React.RefAttributes<HTMLIFrameElement>>;
|
|
155
141
|
Overlay: React.ForwardRefExoticComponent<BackgroundOverlayProps & React.RefAttributes<HTMLDivElement>>;
|
|
156
142
|
Gradient: React.ForwardRefExoticComponent<BackgroundGradientProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -3,22 +3,20 @@ import { VariantProps } from 'tailwind-variants';
|
|
|
3
3
|
import { ButtonTheme } from '../../../lib/theme';
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
/**
|
|
6
|
-
* Button component based on Figma
|
|
6
|
+
* Button component based on Figma Button component
|
|
7
7
|
*
|
|
8
|
-
* Variants:
|
|
9
|
-
* -
|
|
10
|
-
* - outline: Outlined button
|
|
11
|
-
* -
|
|
12
|
-
* -
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* - dark: Dark colors for use on light backgrounds (default)
|
|
16
|
-
* - light: Light colors for use on dark backgrounds
|
|
8
|
+
* Variants (matches Figma):
|
|
9
|
+
* - primary: Filled brand button (indigo background)
|
|
10
|
+
* - primary-outline: Outlined brand button (indigo border/text)
|
|
11
|
+
* - secondary: Filled neutral button (white background, for dark backgrounds)
|
|
12
|
+
* - secondary-outline: Outlined neutral button (white border/text, for dark backgrounds)
|
|
13
|
+
* - ghost: Transparent button with subtle hover (for light backgrounds)
|
|
14
|
+
* - ghost-inverse: Transparent button with subtle hover (for dark backgrounds)
|
|
17
15
|
*
|
|
18
16
|
* Sizes:
|
|
19
|
-
* - lg: Large buttons
|
|
20
|
-
* -
|
|
21
|
-
* - sm: Small buttons
|
|
17
|
+
* - lg: Large buttons (56px height)
|
|
18
|
+
* - md: Medium buttons (40px height) - default
|
|
19
|
+
* - sm: Small buttons (28px height)
|
|
22
20
|
*
|
|
23
21
|
* For icon-only buttons, use the IconButton component instead.
|
|
24
22
|
*
|
|
@@ -27,121 +25,107 @@ import * as React from "react";
|
|
|
27
25
|
*/
|
|
28
26
|
declare const buttonVariants: import('tailwind-variants').TVReturnType<{
|
|
29
27
|
variant: {
|
|
30
|
-
|
|
31
|
-
outline: string;
|
|
28
|
+
primary: string;
|
|
29
|
+
"primary-outline": string;
|
|
30
|
+
secondary: string;
|
|
31
|
+
"secondary-outline": string;
|
|
32
32
|
ghost: string;
|
|
33
|
-
|
|
33
|
+
"ghost-inverse": string;
|
|
34
34
|
themed: string;
|
|
35
35
|
};
|
|
36
|
-
colorScheme: {
|
|
37
|
-
dark: string;
|
|
38
|
-
light: string;
|
|
39
|
-
};
|
|
40
36
|
size: {
|
|
41
37
|
lg: string;
|
|
42
|
-
|
|
38
|
+
md: string;
|
|
43
39
|
sm: string;
|
|
44
40
|
};
|
|
45
|
-
}, undefined, "inline-flex items-center justify-center gap-
|
|
41
|
+
}, undefined, "inline-flex items-center justify-center gap-6 whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border-solid", import('tailwind-variants/dist/config.js').TVConfig<{
|
|
46
42
|
variant: {
|
|
47
|
-
|
|
48
|
-
outline: string;
|
|
43
|
+
primary: string;
|
|
44
|
+
"primary-outline": string;
|
|
45
|
+
secondary: string;
|
|
46
|
+
"secondary-outline": string;
|
|
49
47
|
ghost: string;
|
|
50
|
-
|
|
48
|
+
"ghost-inverse": string;
|
|
51
49
|
themed: string;
|
|
52
50
|
};
|
|
53
|
-
colorScheme: {
|
|
54
|
-
dark: string;
|
|
55
|
-
light: string;
|
|
56
|
-
};
|
|
57
51
|
size: {
|
|
58
52
|
lg: string;
|
|
59
|
-
|
|
53
|
+
md: string;
|
|
60
54
|
sm: string;
|
|
61
55
|
};
|
|
62
56
|
}, {
|
|
63
57
|
variant: {
|
|
64
|
-
|
|
65
|
-
outline: string;
|
|
58
|
+
primary: string;
|
|
59
|
+
"primary-outline": string;
|
|
60
|
+
secondary: string;
|
|
61
|
+
"secondary-outline": string;
|
|
66
62
|
ghost: string;
|
|
67
|
-
|
|
63
|
+
"ghost-inverse": string;
|
|
68
64
|
themed: string;
|
|
69
65
|
};
|
|
70
|
-
colorScheme: {
|
|
71
|
-
dark: string;
|
|
72
|
-
light: string;
|
|
73
|
-
};
|
|
74
66
|
size: {
|
|
75
67
|
lg: string;
|
|
76
|
-
|
|
68
|
+
md: string;
|
|
77
69
|
sm: string;
|
|
78
70
|
};
|
|
79
71
|
}>, {
|
|
80
72
|
variant: {
|
|
81
|
-
|
|
82
|
-
outline: string;
|
|
73
|
+
primary: string;
|
|
74
|
+
"primary-outline": string;
|
|
75
|
+
secondary: string;
|
|
76
|
+
"secondary-outline": string;
|
|
83
77
|
ghost: string;
|
|
84
|
-
|
|
78
|
+
"ghost-inverse": string;
|
|
85
79
|
themed: string;
|
|
86
80
|
};
|
|
87
|
-
colorScheme: {
|
|
88
|
-
dark: string;
|
|
89
|
-
light: string;
|
|
90
|
-
};
|
|
91
81
|
size: {
|
|
92
82
|
lg: string;
|
|
93
|
-
|
|
83
|
+
md: string;
|
|
94
84
|
sm: string;
|
|
95
85
|
};
|
|
96
86
|
}, undefined, import('tailwind-variants').TVReturnType<{
|
|
97
87
|
variant: {
|
|
98
|
-
|
|
99
|
-
outline: string;
|
|
88
|
+
primary: string;
|
|
89
|
+
"primary-outline": string;
|
|
90
|
+
secondary: string;
|
|
91
|
+
"secondary-outline": string;
|
|
100
92
|
ghost: string;
|
|
101
|
-
|
|
93
|
+
"ghost-inverse": string;
|
|
102
94
|
themed: string;
|
|
103
95
|
};
|
|
104
|
-
colorScheme: {
|
|
105
|
-
dark: string;
|
|
106
|
-
light: string;
|
|
107
|
-
};
|
|
108
96
|
size: {
|
|
109
97
|
lg: string;
|
|
110
|
-
|
|
98
|
+
md: string;
|
|
111
99
|
sm: string;
|
|
112
100
|
};
|
|
113
|
-
}, undefined, "inline-flex items-center justify-center gap-
|
|
101
|
+
}, undefined, "inline-flex items-center justify-center gap-6 whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border-solid", import('tailwind-variants/dist/config.js').TVConfig<{
|
|
114
102
|
variant: {
|
|
115
|
-
|
|
116
|
-
outline: string;
|
|
103
|
+
primary: string;
|
|
104
|
+
"primary-outline": string;
|
|
105
|
+
secondary: string;
|
|
106
|
+
"secondary-outline": string;
|
|
117
107
|
ghost: string;
|
|
118
|
-
|
|
108
|
+
"ghost-inverse": string;
|
|
119
109
|
themed: string;
|
|
120
110
|
};
|
|
121
|
-
colorScheme: {
|
|
122
|
-
dark: string;
|
|
123
|
-
light: string;
|
|
124
|
-
};
|
|
125
111
|
size: {
|
|
126
112
|
lg: string;
|
|
127
|
-
|
|
113
|
+
md: string;
|
|
128
114
|
sm: string;
|
|
129
115
|
};
|
|
130
116
|
}, {
|
|
131
117
|
variant: {
|
|
132
|
-
|
|
133
|
-
outline: string;
|
|
118
|
+
primary: string;
|
|
119
|
+
"primary-outline": string;
|
|
120
|
+
secondary: string;
|
|
121
|
+
"secondary-outline": string;
|
|
134
122
|
ghost: string;
|
|
135
|
-
|
|
123
|
+
"ghost-inverse": string;
|
|
136
124
|
themed: string;
|
|
137
125
|
};
|
|
138
|
-
colorScheme: {
|
|
139
|
-
dark: string;
|
|
140
|
-
light: string;
|
|
141
|
-
};
|
|
142
126
|
size: {
|
|
143
127
|
lg: string;
|
|
144
|
-
|
|
128
|
+
md: string;
|
|
145
129
|
sm: string;
|
|
146
130
|
};
|
|
147
131
|
}>, unknown, unknown, undefined>>;
|