@nationaldesignstudio/react 0.5.0 → 0.5.2
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/index.d.ts +3617 -51
- package/dist/index.js +3368 -14973
- package/dist/index.js.map +1 -1
- package/dist/tailwind.css +0 -10
- package/package.json +3 -2
- package/src/components/atoms/popover/popover.tsx +1 -1
- package/src/components/atoms/tooltip/tooltip.tsx +1 -1
- package/dist/assets/fonts/PPNeueMontreal-Variable.woff2 +0 -0
- package/dist/assets/react.svg +0 -1
- package/dist/components/atoms/accordion/accordion.d.ts +0 -91
- package/dist/components/atoms/background/background.d.ts +0 -144
- package/dist/components/atoms/button/button.d.ts +0 -148
- package/dist/components/atoms/button/button.figma.d.ts +0 -1
- package/dist/components/atoms/button/icon-button.d.ts +0 -172
- package/dist/components/atoms/input/input-group.d.ts +0 -278
- package/dist/components/atoms/input/input.d.ts +0 -121
- package/dist/components/atoms/ndstudio-footer/ndstudio-footer.d.ts +0 -30
- package/dist/components/atoms/pager-control/pager-control.d.ts +0 -169
- package/dist/components/atoms/popover/popover.d.ts +0 -195
- package/dist/components/atoms/select/select.d.ts +0 -131
- package/dist/components/atoms/tooltip/tooltip.d.ts +0 -161
- package/dist/components/dev-tools/dev-toolbar/dev-toolbar.d.ts +0 -4
- package/dist/components/dev-tools/grid-overlay/grid-overlay.d.ts +0 -6
- package/dist/components/organisms/card/card.d.ts +0 -235
- package/dist/components/organisms/navbar/navbar.d.ts +0 -66
- package/dist/components/organisms/us-gov-banner/us-gov-banner.d.ts +0 -137
- package/dist/components/sections/banner/banner.d.ts +0 -97
- package/dist/components/sections/card-grid/card-grid.d.ts +0 -86
- package/dist/components/sections/faq-section/faq-section.d.ts +0 -44
- package/dist/components/sections/hero/hero.d.ts +0 -337
- package/dist/components/sections/prose/prose.d.ts +0 -37
- package/dist/components/sections/quote-block/quote-block.d.ts +0 -152
- package/dist/components/sections/river/river.d.ts +0 -96
- package/dist/components/sections/tout/tout.d.ts +0 -153
- package/dist/components/sections/two-column-section/two-column-section.d.ts +0 -118
- package/dist/components/shared/floating-arrow.d.ts +0 -34
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/use-event-listener.d.ts +0 -24
- package/dist/lib/form-control.d.ts +0 -106
- package/dist/lib/theme.d.ts +0 -330
- package/dist/lib/utils.d.ts +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,52 +1,3618 @@
|
|
|
1
|
+
import * as tailwind_variants from 'tailwind-variants';
|
|
2
|
+
import { VariantProps } from 'tailwind-variants';
|
|
3
|
+
export { cnBase as cn } from 'tailwind-variants';
|
|
4
|
+
import * as tailwind_variants_dist_config_js from 'tailwind-variants/dist/config.js';
|
|
5
|
+
import * as React$1 from 'react';
|
|
6
|
+
import { ReactNode } from 'react';
|
|
7
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
8
|
+
import { useRender } from '@base-ui-components/react/use-render';
|
|
9
|
+
import { ButtonProps as ButtonProps$1 } from '@base-ui-components/react/button';
|
|
10
|
+
import { Popover as Popover$1 } from '@base-ui-components/react/popover';
|
|
11
|
+
import { Select as Select$1 } from '@base-ui-components/react/select';
|
|
12
|
+
import { Tooltip as Tooltip$1 } from '@base-ui-components/react/tooltip';
|
|
13
|
+
import { CSSVariableMap, NestedStringRecord, ColorThemeName, SurfaceThemeName } from '@nds-design-system/tokens';
|
|
14
|
+
|
|
15
|
+
declare const accordionVariants: tailwind_variants.TVReturnType<{
|
|
16
|
+
colorScheme: {
|
|
17
|
+
dark: string;
|
|
18
|
+
light: string;
|
|
19
|
+
};
|
|
20
|
+
}, undefined, "flex flex-col", tailwind_variants_dist_config_js.TVConfig<{
|
|
21
|
+
colorScheme: {
|
|
22
|
+
dark: string;
|
|
23
|
+
light: string;
|
|
24
|
+
};
|
|
25
|
+
}, {
|
|
26
|
+
colorScheme: {
|
|
27
|
+
dark: string;
|
|
28
|
+
light: string;
|
|
29
|
+
};
|
|
30
|
+
}>, {
|
|
31
|
+
colorScheme: {
|
|
32
|
+
dark: string;
|
|
33
|
+
light: string;
|
|
34
|
+
};
|
|
35
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
36
|
+
colorScheme: {
|
|
37
|
+
dark: string;
|
|
38
|
+
light: string;
|
|
39
|
+
};
|
|
40
|
+
}, undefined, "flex flex-col", tailwind_variants_dist_config_js.TVConfig<{
|
|
41
|
+
colorScheme: {
|
|
42
|
+
dark: string;
|
|
43
|
+
light: string;
|
|
44
|
+
};
|
|
45
|
+
}, {
|
|
46
|
+
colorScheme: {
|
|
47
|
+
dark: string;
|
|
48
|
+
light: string;
|
|
49
|
+
};
|
|
50
|
+
}>, unknown, unknown, undefined>>;
|
|
51
|
+
interface AccordionProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof accordionVariants> {
|
|
52
|
+
/**
|
|
53
|
+
* Allow multiple items to be expanded at once
|
|
54
|
+
* @default false
|
|
55
|
+
*/
|
|
56
|
+
allowMultiple?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* The ID(s) of items that should be expanded by default
|
|
59
|
+
*/
|
|
60
|
+
defaultExpanded?: string | string[];
|
|
61
|
+
children: React$1.ReactNode;
|
|
62
|
+
}
|
|
1
63
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
64
|
+
* Accordion component for expandable/collapsible content sections.
|
|
65
|
+
* Built on Base UI's Accordion primitive.
|
|
66
|
+
*
|
|
67
|
+
* Variants:
|
|
68
|
+
* - light: Light theme styling (default)
|
|
69
|
+
* - dark: Dark theme styling
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```tsx
|
|
73
|
+
* <Accordion defaultExpanded="item-1" variant="dark">
|
|
74
|
+
* <AccordionItem id="item-1" title="Question 1">
|
|
75
|
+
* Answer to question 1
|
|
76
|
+
* </AccordionItem>
|
|
77
|
+
* <AccordionItem id="item-2" title="Question 2">
|
|
78
|
+
* Answer to question 2
|
|
79
|
+
* </AccordionItem>
|
|
80
|
+
* </Accordion>
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
declare const Accordion: React$1.ForwardRefExoticComponent<AccordionProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
84
|
+
interface AccordionItemProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
85
|
+
/**
|
|
86
|
+
* Unique identifier for this item
|
|
87
|
+
*/
|
|
88
|
+
id: string;
|
|
89
|
+
/**
|
|
90
|
+
* The question/title displayed in the header
|
|
91
|
+
*/
|
|
92
|
+
title: string;
|
|
93
|
+
/**
|
|
94
|
+
* The answer/content revealed when expanded
|
|
95
|
+
*/
|
|
96
|
+
children: React$1.ReactNode;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Individual accordion item with collapsible content.
|
|
100
|
+
* Must be used within an Accordion component.
|
|
101
|
+
*/
|
|
102
|
+
declare const AccordionItem: React$1.ForwardRefExoticComponent<AccordionItemProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
103
|
+
|
|
104
|
+
declare const backgroundVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, "absolute inset-0", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, "absolute inset-0", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
105
|
+
/**
|
|
106
|
+
* Base container for background composition.
|
|
107
|
+
* Use as a wrapper to compose multiple background layers (image, video, overlay, gradient).
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```tsx
|
|
111
|
+
* <Background>
|
|
112
|
+
* <Background.Image src="/hero.jpg" />
|
|
113
|
+
* <Background.Overlay opacity={0.4} />
|
|
114
|
+
* <Background.Gradient direction="to-t" from="black" to="transparent" />
|
|
115
|
+
* </Background>
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
interface BackgroundProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
119
|
+
}
|
|
120
|
+
declare const backgroundImageVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, "absolute inset-0 size-full object-cover", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, "absolute inset-0 size-full object-cover", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
121
|
+
interface BackgroundImageProps extends useRender.ComponentProps<"img">, Omit<React$1.ImgHTMLAttributes<HTMLImageElement>, "src" | "render"> {
|
|
122
|
+
/**
|
|
123
|
+
* URL for the background image
|
|
124
|
+
*/
|
|
125
|
+
src: string;
|
|
126
|
+
/**
|
|
127
|
+
* Object position (default: "center")
|
|
128
|
+
*/
|
|
129
|
+
position?: string;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Background image layer using an actual img element with object-cover.
|
|
133
|
+
* Supports native lazy loading, srcset, and better accessibility.
|
|
134
|
+
* Supports render prop for element composition.
|
|
135
|
+
*/
|
|
136
|
+
declare function BackgroundImage(props: BackgroundImageProps): React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>>;
|
|
137
|
+
declare namespace BackgroundImage {
|
|
138
|
+
var displayName: string;
|
|
139
|
+
}
|
|
140
|
+
declare const backgroundVideoVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, "absolute inset-0 size-full object-cover", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, "absolute inset-0 size-full object-cover", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
141
|
+
interface BackgroundVideoProps extends useRender.ComponentProps<"video">, Omit<React$1.VideoHTMLAttributes<HTMLVideoElement>, "children" | "render" | "src"> {
|
|
142
|
+
/**
|
|
143
|
+
* URL for the video source
|
|
144
|
+
*/
|
|
145
|
+
src: string;
|
|
146
|
+
/**
|
|
147
|
+
* Video MIME type (default: auto-detected from src)
|
|
148
|
+
*/
|
|
149
|
+
type?: string;
|
|
150
|
+
/**
|
|
151
|
+
* Poster image URL shown before video loads
|
|
152
|
+
*/
|
|
153
|
+
poster?: string;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Background video layer using HTML5 video element.
|
|
157
|
+
* Supports render prop for element composition.
|
|
158
|
+
*/
|
|
159
|
+
declare function BackgroundVideo(props: BackgroundVideoProps): react_jsx_runtime.JSX.Element;
|
|
160
|
+
declare namespace BackgroundVideo {
|
|
161
|
+
var displayName: string;
|
|
162
|
+
}
|
|
163
|
+
declare const backgroundStreamVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, "absolute inset-0 size-full border-0 scale-[1.5] object-cover", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, "absolute inset-0 size-full border-0 scale-[1.5] object-cover", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
164
|
+
interface BackgroundStreamProps extends React$1.IframeHTMLAttributes<HTMLIFrameElement> {
|
|
165
|
+
/**
|
|
166
|
+
* Cloudflare Stream video ID
|
|
167
|
+
*/
|
|
168
|
+
videoId: string;
|
|
169
|
+
/**
|
|
170
|
+
* Poster image URL (Cloudflare Stream thumbnail or custom)
|
|
171
|
+
*/
|
|
172
|
+
poster?: string;
|
|
173
|
+
/**
|
|
174
|
+
* Whether the video should autoplay (default: true)
|
|
175
|
+
*/
|
|
176
|
+
autoplay?: boolean;
|
|
177
|
+
/**
|
|
178
|
+
* Whether the video should loop (default: true)
|
|
179
|
+
*/
|
|
180
|
+
loop?: boolean;
|
|
181
|
+
/**
|
|
182
|
+
* Whether the video should be muted (default: true)
|
|
183
|
+
*/
|
|
184
|
+
muted?: boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Whether to show playback controls (default: false)
|
|
187
|
+
*/
|
|
188
|
+
controls?: boolean;
|
|
189
|
+
/**
|
|
190
|
+
* Custom Cloudflare customer subdomain (if using custom domains)
|
|
191
|
+
*/
|
|
192
|
+
customerSubdomain?: string;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Background video layer using Cloudflare Stream.
|
|
196
|
+
*/
|
|
197
|
+
declare const BackgroundStream: React$1.ForwardRefExoticComponent<BackgroundStreamProps & React$1.RefAttributes<HTMLIFrameElement>>;
|
|
198
|
+
declare const backgroundOverlayVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, "absolute inset-0 bg-bg-overlay", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, "absolute inset-0 bg-bg-overlay", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
199
|
+
interface BackgroundOverlayProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
200
|
+
/**
|
|
201
|
+
* Overlay opacity (0-1)
|
|
202
|
+
*/
|
|
203
|
+
opacity?: number;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Solid color overlay layer. Uses semantic bg-overlay token by default.
|
|
207
|
+
* Override with className for different colors.
|
|
208
|
+
*/
|
|
209
|
+
declare const BackgroundOverlay: React$1.ForwardRefExoticComponent<BackgroundOverlayProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
210
|
+
declare const backgroundGradientVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, "absolute inset-0", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, "absolute inset-0", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
211
|
+
interface BackgroundGradientProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
212
|
+
/**
|
|
213
|
+
* Gradient direction (Tailwind convention: to-t, to-b, to-l, to-r, etc.)
|
|
214
|
+
* Or CSS gradient direction (to top, to bottom, 45deg, etc.)
|
|
215
|
+
*/
|
|
216
|
+
direction?: string;
|
|
217
|
+
/**
|
|
218
|
+
* Starting color (from)
|
|
219
|
+
*/
|
|
220
|
+
from?: string;
|
|
221
|
+
/**
|
|
222
|
+
* Optional middle color (via)
|
|
223
|
+
*/
|
|
224
|
+
via?: string;
|
|
225
|
+
/**
|
|
226
|
+
* Ending color (to)
|
|
227
|
+
*/
|
|
228
|
+
to?: string;
|
|
229
|
+
/**
|
|
230
|
+
* Full custom gradient string (overrides from/via/to)
|
|
231
|
+
*/
|
|
232
|
+
gradient?: string;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Gradient overlay layer. Use for fading backgrounds or creating depth.
|
|
236
|
+
*/
|
|
237
|
+
declare const BackgroundGradient: React$1.ForwardRefExoticComponent<BackgroundGradientProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
238
|
+
declare const BackgroundCompound: React$1.ForwardRefExoticComponent<BackgroundProps & React$1.RefAttributes<HTMLDivElement>> & {
|
|
239
|
+
Image: typeof BackgroundImage;
|
|
240
|
+
Video: typeof BackgroundVideo;
|
|
241
|
+
Stream: React$1.ForwardRefExoticComponent<BackgroundStreamProps & React$1.RefAttributes<HTMLIFrameElement>>;
|
|
242
|
+
Overlay: React$1.ForwardRefExoticComponent<BackgroundOverlayProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
243
|
+
Gradient: React$1.ForwardRefExoticComponent<BackgroundGradientProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Component-level theming interface
|
|
248
|
+
*
|
|
249
|
+
* This interface defines all the customizable design tokens that can be
|
|
250
|
+
* overridden at the component level. Components accepting a `theme` prop
|
|
251
|
+
* will apply these values as CSS custom properties, allowing fine-grained
|
|
252
|
+
* control over appearance without creating new variants.
|
|
253
|
+
*
|
|
254
|
+
* All values use primitive token names (e.g., "gray-100", "spacing-40")
|
|
255
|
+
* which are converted to CSS variable references internally.
|
|
256
|
+
*/
|
|
257
|
+
/**
|
|
258
|
+
* Color token names - maps to `--color-{name}` CSS variables
|
|
259
|
+
* @example "gray-100", "ember-v300", "alpha-black-10"
|
|
260
|
+
*/
|
|
261
|
+
type ColorToken = "gray-50" | "gray-100" | "gray-200" | "gray-300" | "gray-400" | "gray-500" | "gray-600" | "gray-700" | "gray-800" | "gray-900" | "gray-1000" | "gray-1100" | "gray-1200" | "steel-50" | "steel-100" | "steel-200" | "steel-300" | "steel-400" | "steel-500" | "steel-600" | "steel-700" | "steel-800" | "steel-900" | "steel-1000" | "steel-1100" | "steel-1200" | "brown-50" | "brown-100" | "brown-200" | "brown-300" | "brown-400" | "brown-500" | "brown-600" | "brown-700" | "brown-800" | "brown-900" | "brown-1000" | "brown-1100" | "brown-1200" | "ember-50" | "ember-100" | "ember-200" | "ember-300" | "ember-400" | "ember-500" | "ember-600" | "ember-700" | "ember-800" | "ember-900" | "ember-v100" | "ember-v200" | "ember-v300" | "ember-v400" | "orange-50" | "orange-100" | "orange-200" | "orange-300" | "orange-400" | "orange-500" | "orange-600" | "orange-700" | "orange-800" | "orange-900" | "orange-v100" | "orange-v200" | "orange-v300" | "orange-v400" | "amber-50" | "amber-100" | "amber-200" | "amber-300" | "amber-400" | "amber-500" | "amber-600" | "amber-700" | "amber-800" | "amber-900" | "amber-v100" | "amber-v200" | "amber-v300" | "amber-v400" | "yellow-50" | "yellow-100" | "yellow-200" | "yellow-300" | "yellow-400" | "yellow-500" | "yellow-600" | "yellow-700" | "yellow-800" | "yellow-900" | "yellow-v100" | "yellow-v200" | "yellow-v300" | "yellow-v400" | "lime-50" | "lime-100" | "lime-200" | "lime-300" | "lime-400" | "lime-500" | "lime-600" | "lime-700" | "lime-800" | "lime-900" | "lime-v100" | "lime-v200" | "lime-v300" | "lime-v400" | "green-50" | "green-100" | "green-200" | "green-300" | "green-400" | "green-500" | "green-600" | "green-700" | "green-800" | "green-900" | "green-v100" | "green-v200" | "green-v300" | "green-v400" | "sage-50" | "sage-100" | "sage-200" | "sage-300" | "sage-400" | "sage-500" | "sage-600" | "sage-700" | "sage-800" | "sage-900" | "sage-v100" | "sage-v200" | "sage-v300" | "sage-v400" | "teal-50" | "teal-100" | "teal-200" | "teal-300" | "teal-400" | "teal-500" | "teal-600" | "teal-700" | "teal-800" | "teal-900" | "teal-v100" | "teal-v200" | "teal-v300" | "teal-v400" | "cyan-50" | "cyan-100" | "cyan-200" | "cyan-300" | "cyan-400" | "cyan-500" | "cyan-600" | "cyan-700" | "cyan-800" | "cyan-900" | "cyan-v100" | "cyan-v200" | "cyan-v300" | "cyan-v400" | "ice-50" | "ice-100" | "ice-200" | "ice-300" | "ice-400" | "ice-500" | "ice-600" | "ice-700" | "ice-800" | "ice-900" | "ice-v100" | "ice-v200" | "ice-v300" | "ice-v400" | "blue-50" | "blue-100" | "blue-200" | "blue-300" | "blue-400" | "blue-500" | "blue-600" | "blue-700" | "blue-800" | "blue-900" | "blue-v100" | "blue-v200" | "blue-v300" | "blue-v400" | "indigo-50" | "indigo-100" | "indigo-200" | "indigo-300" | "indigo-400" | "indigo-500" | "indigo-600" | "indigo-700" | "indigo-800" | "indigo-900" | "indigo-v100" | "indigo-v200" | "indigo-v300" | "indigo-v400" | "iris-50" | "iris-100" | "iris-200" | "iris-300" | "iris-400" | "iris-500" | "iris-600" | "iris-700" | "iris-800" | "iris-900" | "iris-v100" | "iris-v200" | "iris-v300" | "iris-v400" | "purple-50" | "purple-100" | "purple-200" | "purple-300" | "purple-400" | "purple-500" | "purple-600" | "purple-700" | "purple-800" | "purple-900" | "purple-v100" | "purple-v200" | "purple-v300" | "purple-v400" | "pink-50" | "pink-100" | "pink-200" | "pink-300" | "pink-400" | "pink-500" | "pink-600" | "pink-700" | "pink-800" | "pink-900" | "pink-v100" | "pink-v200" | "pink-v300" | "pink-v400" | "red-50" | "red-100" | "red-200" | "red-300" | "red-400" | "red-500" | "red-600" | "red-700" | "red-800" | "red-900" | "red-v100" | "red-v200" | "red-v300" | "red-v400" | "alpha-black-5" | "alpha-black-10" | "alpha-black-20" | "alpha-black-30" | "alpha-black-40" | "alpha-black-50" | "alpha-black-60" | "alpha-black-70" | "alpha-black-80" | "alpha-black-90" | "alpha-black-95" | "alpha-white-5" | "alpha-white-10" | "alpha-white-20" | "alpha-white-30" | "alpha-white-40" | "alpha-white-50" | "alpha-white-60" | "alpha-white-70" | "alpha-white-80" | "alpha-white-90" | "alpha-white-95" | "white" | "black";
|
|
262
|
+
/**
|
|
263
|
+
* Spacing token names - maps to `--spacing-{name}` CSS variables
|
|
264
|
+
* @example "spacing-40", "spacing-72"
|
|
265
|
+
*/
|
|
266
|
+
type SpacingToken = "spacing-0" | "spacing-2" | "spacing-4" | "spacing-6" | "spacing-8" | "spacing-10" | "spacing-11" | "spacing-12" | "spacing-16" | "spacing-20" | "spacing-24" | "spacing-28" | "spacing-32" | "spacing-36" | "spacing-40" | "spacing-48" | "spacing-56" | "spacing-64" | "spacing-72" | "spacing-80" | "spacing-96" | "spacing-112" | "spacing-128" | "spacing-144" | "spacing-160" | "spacing-176" | "spacing-192" | "spacing-208" | "spacing-224" | "spacing-240" | "spacing-256" | "spacing-288" | "spacing-320" | "spacing-352" | "spacing-384" | "spacing-400";
|
|
267
|
+
/**
|
|
268
|
+
* Radius token names - maps to `--radii-{name}` CSS variables
|
|
269
|
+
* @example "radii-4", "radii-6"
|
|
270
|
+
*/
|
|
271
|
+
type RadiusToken = "radii-0" | "radii-2" | "radii-4" | "radii-6" | "radii-8" | "radii-10" | "radii-11" | "radii-12" | "radii-16" | "radii-20" | "radii-24" | "radii-28" | "radii-32" | "radii-36" | "radii-40" | "radii-48" | "radii-56" | "radii-64" | "radii-72" | "radii-80" | "radii-96" | "radii-112" | "radii-128" | "radii-144" | "radii-160" | "radii-176" | "radii-192" | "radii-208" | "radii-224" | "radii-240" | "radii-256" | "radii-288" | "radii-320" | "radii-352" | "radii-384" | "radii-400";
|
|
272
|
+
/**
|
|
273
|
+
* Font size token values - primitive font sizes available in the design system
|
|
274
|
+
* These correspond to Tailwind classes like `text-64`, `text-128`, etc.
|
|
275
|
+
* @example 64, 128, 192
|
|
276
|
+
*/
|
|
277
|
+
type FontSizeToken = 9 | 11 | 12 | 14 | 16 | 18 | 21 | 24 | 28 | 32 | 36 | 42 | 48 | 56 | 64 | 72 | 84 | 88 | 96 | 112 | 128 | 148 | 168 | 192 | 224 | 256 | 280;
|
|
278
|
+
/**
|
|
279
|
+
* Array of all available font sizes for use in UI selectors/dropdowns
|
|
280
|
+
*/
|
|
281
|
+
declare const FONT_SIZES: FontSizeToken[];
|
|
282
|
+
/**
|
|
283
|
+
* Helper to generate typography class string from font size
|
|
284
|
+
* @example fontSizeToClass(128) => "text-128 leading-128 tracking-128"
|
|
285
|
+
*/
|
|
286
|
+
declare function fontSizeToClass(size: FontSizeToken): string;
|
|
287
|
+
/**
|
|
288
|
+
* Helper to generate responsive typography class string
|
|
289
|
+
* @example responsiveTypographyClass(64, 128, 192) => "text-64 leading-64 tracking-64 md:text-128 md:leading-128 md:tracking-128 xl:text-192 xl:leading-192 xl:tracking-192"
|
|
290
|
+
*/
|
|
291
|
+
declare function responsiveTypographyClass(mobile: FontSizeToken, tablet: FontSizeToken, desktop: FontSizeToken): string;
|
|
292
|
+
interface ComponentThemeColors {
|
|
293
|
+
/**
|
|
294
|
+
* Background color for sections
|
|
295
|
+
* @example "gray-100"
|
|
296
|
+
*/
|
|
297
|
+
bgSection?: ColorToken;
|
|
298
|
+
/**
|
|
299
|
+
* Background color for cards
|
|
300
|
+
* @example "white"
|
|
301
|
+
*/
|
|
302
|
+
cardBackground?: ColorToken;
|
|
303
|
+
/**
|
|
304
|
+
* Muted background color
|
|
305
|
+
* @example "gray-50"
|
|
306
|
+
*/
|
|
307
|
+
bgMuted?: ColorToken;
|
|
308
|
+
/**
|
|
309
|
+
* Primary text color
|
|
310
|
+
* @example "gray-1100"
|
|
311
|
+
*/
|
|
312
|
+
textPrimary?: ColorToken;
|
|
313
|
+
/**
|
|
314
|
+
* Secondary text color
|
|
315
|
+
* @example "gray-800"
|
|
316
|
+
*/
|
|
317
|
+
textSecondary?: ColorToken;
|
|
318
|
+
/**
|
|
319
|
+
* Muted text color
|
|
320
|
+
* @example "gray-600"
|
|
321
|
+
*/
|
|
322
|
+
textMuted?: ColorToken;
|
|
323
|
+
/**
|
|
324
|
+
* Inverted text color (for dark backgrounds)
|
|
325
|
+
* @example "gray-100"
|
|
326
|
+
*/
|
|
327
|
+
textInverted?: ColorToken;
|
|
328
|
+
/**
|
|
329
|
+
* Link text color
|
|
330
|
+
* @example "gray-1100"
|
|
331
|
+
*/
|
|
332
|
+
textLink?: ColorToken;
|
|
333
|
+
/**
|
|
334
|
+
* Link hover text color
|
|
335
|
+
* @example "gray-700"
|
|
336
|
+
*/
|
|
337
|
+
textLinkHover?: ColorToken;
|
|
338
|
+
/**
|
|
339
|
+
* Brand accent color
|
|
340
|
+
* @example "ember-v300"
|
|
341
|
+
*/
|
|
342
|
+
accentBrand?: ColorToken;
|
|
343
|
+
/**
|
|
344
|
+
* Soft brand accent color
|
|
345
|
+
* @example "ember-100"
|
|
346
|
+
*/
|
|
347
|
+
accentBrandSoft?: ColorToken;
|
|
348
|
+
/**
|
|
349
|
+
* Subtle border color
|
|
350
|
+
* @example "alpha-black-10"
|
|
351
|
+
*/
|
|
352
|
+
borderSubtle?: ColorToken;
|
|
353
|
+
/**
|
|
354
|
+
* Strong border color
|
|
355
|
+
* @example "alpha-black-20"
|
|
356
|
+
*/
|
|
357
|
+
borderStrong?: ColorToken;
|
|
358
|
+
/**
|
|
359
|
+
* Focus border color (uses accentBrand by default)
|
|
360
|
+
* @example "ember-v300"
|
|
361
|
+
*/
|
|
362
|
+
borderFocus?: ColorToken;
|
|
363
|
+
/**
|
|
364
|
+
* Divider border color
|
|
365
|
+
* @example "alpha-black-10"
|
|
366
|
+
*/
|
|
367
|
+
borderDivider?: ColorToken;
|
|
368
|
+
/**
|
|
369
|
+
* Primary button background color
|
|
370
|
+
* @example "gray-1100"
|
|
371
|
+
*/
|
|
372
|
+
buttonPrimaryBg?: ColorToken;
|
|
373
|
+
/**
|
|
374
|
+
* Primary button hover background color
|
|
375
|
+
* @example "gray-600"
|
|
376
|
+
*/
|
|
377
|
+
buttonPrimaryBgHover?: ColorToken;
|
|
378
|
+
/**
|
|
379
|
+
* Secondary button background color
|
|
380
|
+
* @example "white"
|
|
381
|
+
*/
|
|
382
|
+
buttonSecondaryBg?: ColorToken;
|
|
383
|
+
/**
|
|
384
|
+
* Secondary button hover background color
|
|
385
|
+
* @example "gray-100"
|
|
386
|
+
*/
|
|
387
|
+
buttonSecondaryBgHover?: ColorToken;
|
|
388
|
+
}
|
|
389
|
+
interface ComponentThemeSpatial {
|
|
390
|
+
/**
|
|
391
|
+
* Grid margin for large breakpoint
|
|
392
|
+
* @example "spacing-72"
|
|
393
|
+
*/
|
|
394
|
+
gridLargeMargin?: SpacingToken;
|
|
395
|
+
/**
|
|
396
|
+
* Grid gutter for large breakpoint
|
|
397
|
+
* @example "spacing-24"
|
|
398
|
+
*/
|
|
399
|
+
gridLargeGutter?: SpacingToken;
|
|
400
|
+
/**
|
|
401
|
+
* Number of grid columns for large breakpoint
|
|
402
|
+
*/
|
|
403
|
+
gridLargeColumns?: number;
|
|
404
|
+
/**
|
|
405
|
+
* Grid margin for medium breakpoint
|
|
406
|
+
* @example "spacing-56"
|
|
407
|
+
*/
|
|
408
|
+
gridMediumMargin?: SpacingToken;
|
|
409
|
+
/**
|
|
410
|
+
* Grid gutter for medium breakpoint
|
|
411
|
+
* @example "spacing-20"
|
|
412
|
+
*/
|
|
413
|
+
gridMediumGutter?: SpacingToken;
|
|
414
|
+
/**
|
|
415
|
+
* Number of grid columns for medium breakpoint
|
|
416
|
+
*/
|
|
417
|
+
gridMediumColumns?: number;
|
|
418
|
+
/**
|
|
419
|
+
* Grid margin for small breakpoint
|
|
420
|
+
* @example "spacing-24"
|
|
421
|
+
*/
|
|
422
|
+
gridSmallMargin?: SpacingToken;
|
|
423
|
+
/**
|
|
424
|
+
* Grid gutter for small breakpoint
|
|
425
|
+
* @example "spacing-12"
|
|
426
|
+
*/
|
|
427
|
+
gridSmallGutter?: SpacingToken;
|
|
428
|
+
/**
|
|
429
|
+
* Number of grid columns for small breakpoint
|
|
430
|
+
*/
|
|
431
|
+
gridSmallColumns?: number;
|
|
432
|
+
/**
|
|
433
|
+
* Section gap for large breakpoint
|
|
434
|
+
* @example "spacing-64"
|
|
435
|
+
*/
|
|
436
|
+
sectionLargeGap?: SpacingToken;
|
|
437
|
+
/**
|
|
438
|
+
* Section padding for large breakpoint
|
|
439
|
+
* @example "spacing-128"
|
|
440
|
+
*/
|
|
441
|
+
sectionLargePadding?: SpacingToken;
|
|
442
|
+
/**
|
|
443
|
+
* Section gap for medium breakpoint
|
|
444
|
+
* @example "spacing-56"
|
|
445
|
+
*/
|
|
446
|
+
sectionMediumGap?: SpacingToken;
|
|
447
|
+
/**
|
|
448
|
+
* Section padding for medium breakpoint
|
|
449
|
+
* @example "spacing-96"
|
|
450
|
+
*/
|
|
451
|
+
sectionMediumPadding?: SpacingToken;
|
|
452
|
+
/**
|
|
453
|
+
* Section gap for small breakpoint
|
|
454
|
+
* @example "spacing-32"
|
|
455
|
+
*/
|
|
456
|
+
sectionSmallGap?: SpacingToken;
|
|
457
|
+
/**
|
|
458
|
+
* Section padding for small breakpoint
|
|
459
|
+
* @example "spacing-64"
|
|
460
|
+
*/
|
|
461
|
+
sectionSmallPadding?: SpacingToken;
|
|
462
|
+
/**
|
|
463
|
+
* Card gap for large size
|
|
464
|
+
* @example "spacing-10"
|
|
465
|
+
*/
|
|
466
|
+
cardLargeGap?: SpacingToken;
|
|
467
|
+
/**
|
|
468
|
+
* Card padding for large size
|
|
469
|
+
* @example "spacing-24"
|
|
470
|
+
*/
|
|
471
|
+
cardLargePadding?: SpacingToken;
|
|
472
|
+
/**
|
|
473
|
+
* Card gap for small size
|
|
474
|
+
* @example "spacing-12"
|
|
475
|
+
*/
|
|
476
|
+
cardSmallGap?: SpacingToken;
|
|
477
|
+
/**
|
|
478
|
+
* Card padding for small size
|
|
479
|
+
* @example "spacing-16"
|
|
480
|
+
*/
|
|
481
|
+
cardSmallPadding?: SpacingToken;
|
|
482
|
+
}
|
|
483
|
+
interface ComponentThemeSurface {
|
|
484
|
+
/**
|
|
485
|
+
* Card border radius
|
|
486
|
+
* @example "radii-4"
|
|
487
|
+
*/
|
|
488
|
+
cardRadius?: RadiusToken;
|
|
489
|
+
/**
|
|
490
|
+
* Card stroke/border width in pixels
|
|
491
|
+
* @example 1
|
|
492
|
+
*/
|
|
493
|
+
cardStroke?: number;
|
|
494
|
+
/**
|
|
495
|
+
* Button border radius
|
|
496
|
+
* @example "radii-6"
|
|
497
|
+
*/
|
|
498
|
+
buttonRadius?: RadiusToken;
|
|
499
|
+
/**
|
|
500
|
+
* Button stroke/border weight in pixels
|
|
501
|
+
* @example 1
|
|
502
|
+
*/
|
|
503
|
+
buttonStrokeWeight?: number;
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* Complete component theme interface combining colors, spatial, and surface tokens.
|
|
507
|
+
*
|
|
508
|
+
* @example
|
|
509
|
+
* ```tsx
|
|
510
|
+
* const customTheme: ComponentTheme = {
|
|
511
|
+
* colors: {
|
|
512
|
+
* textPrimary: "gray-100",
|
|
513
|
+
* accentBrand: "ember-500",
|
|
514
|
+
* },
|
|
515
|
+
* spatial: {
|
|
516
|
+
* sectionLargePadding: "spacing-96",
|
|
517
|
+
* },
|
|
518
|
+
* surface: {
|
|
519
|
+
* cardRadius: "radii-8",
|
|
520
|
+
* },
|
|
521
|
+
* };
|
|
522
|
+
*
|
|
523
|
+
* <Tout theme={customTheme} ... />
|
|
524
|
+
* ```
|
|
525
|
+
*/
|
|
526
|
+
interface ComponentTheme {
|
|
527
|
+
colors?: ComponentThemeColors;
|
|
528
|
+
spatial?: ComponentThemeSpatial;
|
|
529
|
+
surface?: ComponentThemeSurface;
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Button-specific theme interface for customizing individual button appearance.
|
|
533
|
+
*
|
|
534
|
+
* @example
|
|
535
|
+
* ```tsx
|
|
536
|
+
* const buttonTheme: ButtonTheme = {
|
|
537
|
+
* bg: "ember-500",
|
|
538
|
+
* bgHover: "ember-600",
|
|
539
|
+
* text: "white",
|
|
540
|
+
* radius: "radii-8",
|
|
541
|
+
* };
|
|
542
|
+
*
|
|
543
|
+
* <Button theme={buttonTheme}>Themed Button</Button>
|
|
544
|
+
* ```
|
|
545
|
+
*/
|
|
546
|
+
interface ButtonTheme {
|
|
547
|
+
/** Background color */
|
|
548
|
+
bg?: ColorToken;
|
|
549
|
+
/** Background color on hover */
|
|
550
|
+
bgHover?: ColorToken;
|
|
551
|
+
/** Background color on active/press */
|
|
552
|
+
bgActive?: ColorToken;
|
|
553
|
+
/** Text color */
|
|
554
|
+
text?: ColorToken;
|
|
555
|
+
/** Border color (if using border) */
|
|
556
|
+
borderColor?: ColorToken;
|
|
557
|
+
/** Border width in pixels (0 for no border) */
|
|
558
|
+
borderWidth?: number;
|
|
559
|
+
/** Border radius */
|
|
560
|
+
radius?: RadiusToken;
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* Converts a ComponentTheme object to CSS custom properties (inline style object)
|
|
564
|
+
*
|
|
565
|
+
* @param theme - The theme object to convert
|
|
566
|
+
* @returns An object suitable for use as React inline styles
|
|
567
|
+
*/
|
|
568
|
+
declare function themeToStyleVars(theme: ComponentTheme | undefined): React.CSSProperties;
|
|
569
|
+
/**
|
|
570
|
+
* Converts a ButtonTheme object to CSS custom properties (inline style object)
|
|
571
|
+
*
|
|
572
|
+
* @param theme - The button theme object to convert
|
|
573
|
+
* @returns An object suitable for use as React inline styles
|
|
574
|
+
*/
|
|
575
|
+
declare function buttonThemeToStyleVars(theme: ButtonTheme | undefined): React.CSSProperties;
|
|
576
|
+
|
|
577
|
+
/**
|
|
578
|
+
* Button component based on Figma Button component
|
|
579
|
+
*
|
|
580
|
+
* Variants (matches Figma):
|
|
581
|
+
* - primary: Blue filled button for primary actions
|
|
582
|
+
* - default: Dark filled button for secondary prominence
|
|
583
|
+
* - secondary: Light gray filled button with subtle border
|
|
584
|
+
* - destructive: Red filled button for destructive actions
|
|
585
|
+
* - outline: Bordered button with transparent background
|
|
586
|
+
* - ghost: Transparent button with subtle hover
|
|
587
|
+
* - link: Text-only button with underline on hover
|
|
588
|
+
*
|
|
589
|
+
* Sizes (matches Figma):
|
|
590
|
+
* - sm: Small buttons (32px height)
|
|
591
|
+
* - default: Default buttons (36px height)
|
|
592
|
+
* - lg: Large buttons (40px height)
|
|
593
|
+
*
|
|
594
|
+
* For icon-only buttons, use the IconButton component instead.
|
|
595
|
+
*
|
|
596
|
+
* Theme Support:
|
|
597
|
+
* Pass a `theme` prop to override default colors via CSS custom properties.
|
|
598
|
+
*/
|
|
599
|
+
declare const buttonVariants: tailwind_variants.TVReturnType<{
|
|
600
|
+
variant: {
|
|
601
|
+
primary: string;
|
|
602
|
+
default: string;
|
|
603
|
+
secondary: string;
|
|
604
|
+
destructive: string;
|
|
605
|
+
outline: string;
|
|
606
|
+
ghost: string;
|
|
607
|
+
link: string;
|
|
608
|
+
themed: string;
|
|
609
|
+
};
|
|
610
|
+
size: {
|
|
611
|
+
sm: string;
|
|
612
|
+
default: string;
|
|
613
|
+
lg: string;
|
|
614
|
+
};
|
|
615
|
+
}, undefined, "inline-flex items-center justify-center gap-spatial-ui-button-gap-icon-text whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-1 disabled:pointer-events-none disabled:opacity-50", tailwind_variants_dist_config_js.TVConfig<{
|
|
616
|
+
variant: {
|
|
617
|
+
primary: string;
|
|
618
|
+
default: string;
|
|
619
|
+
secondary: string;
|
|
620
|
+
destructive: string;
|
|
621
|
+
outline: string;
|
|
622
|
+
ghost: string;
|
|
623
|
+
link: string;
|
|
624
|
+
themed: string;
|
|
625
|
+
};
|
|
626
|
+
size: {
|
|
627
|
+
sm: string;
|
|
628
|
+
default: string;
|
|
629
|
+
lg: string;
|
|
630
|
+
};
|
|
631
|
+
}, {
|
|
632
|
+
variant: {
|
|
633
|
+
primary: string;
|
|
634
|
+
default: string;
|
|
635
|
+
secondary: string;
|
|
636
|
+
destructive: string;
|
|
637
|
+
outline: string;
|
|
638
|
+
ghost: string;
|
|
639
|
+
link: string;
|
|
640
|
+
themed: string;
|
|
641
|
+
};
|
|
642
|
+
size: {
|
|
643
|
+
sm: string;
|
|
644
|
+
default: string;
|
|
645
|
+
lg: string;
|
|
646
|
+
};
|
|
647
|
+
}>, {
|
|
648
|
+
variant: {
|
|
649
|
+
primary: string;
|
|
650
|
+
default: string;
|
|
651
|
+
secondary: string;
|
|
652
|
+
destructive: string;
|
|
653
|
+
outline: string;
|
|
654
|
+
ghost: string;
|
|
655
|
+
link: string;
|
|
656
|
+
themed: string;
|
|
657
|
+
};
|
|
658
|
+
size: {
|
|
659
|
+
sm: string;
|
|
660
|
+
default: string;
|
|
661
|
+
lg: string;
|
|
662
|
+
};
|
|
663
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
664
|
+
variant: {
|
|
665
|
+
primary: string;
|
|
666
|
+
default: string;
|
|
667
|
+
secondary: string;
|
|
668
|
+
destructive: string;
|
|
669
|
+
outline: string;
|
|
670
|
+
ghost: string;
|
|
671
|
+
link: string;
|
|
672
|
+
themed: string;
|
|
673
|
+
};
|
|
674
|
+
size: {
|
|
675
|
+
sm: string;
|
|
676
|
+
default: string;
|
|
677
|
+
lg: string;
|
|
678
|
+
};
|
|
679
|
+
}, undefined, "inline-flex items-center justify-center gap-spatial-ui-button-gap-icon-text whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-1 disabled:pointer-events-none disabled:opacity-50", tailwind_variants_dist_config_js.TVConfig<{
|
|
680
|
+
variant: {
|
|
681
|
+
primary: string;
|
|
682
|
+
default: string;
|
|
683
|
+
secondary: string;
|
|
684
|
+
destructive: string;
|
|
685
|
+
outline: string;
|
|
686
|
+
ghost: string;
|
|
687
|
+
link: string;
|
|
688
|
+
themed: string;
|
|
689
|
+
};
|
|
690
|
+
size: {
|
|
691
|
+
sm: string;
|
|
692
|
+
default: string;
|
|
693
|
+
lg: string;
|
|
694
|
+
};
|
|
695
|
+
}, {
|
|
696
|
+
variant: {
|
|
697
|
+
primary: string;
|
|
698
|
+
default: string;
|
|
699
|
+
secondary: string;
|
|
700
|
+
destructive: string;
|
|
701
|
+
outline: string;
|
|
702
|
+
ghost: string;
|
|
703
|
+
link: string;
|
|
704
|
+
themed: string;
|
|
705
|
+
};
|
|
706
|
+
size: {
|
|
707
|
+
sm: string;
|
|
708
|
+
default: string;
|
|
709
|
+
lg: string;
|
|
710
|
+
};
|
|
711
|
+
}>, unknown, unknown, undefined>>;
|
|
712
|
+
type HTMLButtonProps = React$1.ButtonHTMLAttributes<HTMLButtonElement>;
|
|
713
|
+
type ButtonProps = ButtonProps$1 & VariantProps<typeof buttonVariants> & HTMLButtonProps & {
|
|
714
|
+
/**
|
|
715
|
+
* Theme overrides for button styling via CSS custom properties
|
|
716
|
+
*/
|
|
717
|
+
theme?: ButtonTheme;
|
|
718
|
+
};
|
|
719
|
+
declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
720
|
+
|
|
721
|
+
/**
|
|
722
|
+
* IconButton component based on Figma Button component (icon-only variant)
|
|
723
|
+
*
|
|
724
|
+
* **IMPORTANT: Accessibility Requirement**
|
|
725
|
+
* Icon-only buttons MUST have an accessible label. Provide one of:
|
|
726
|
+
* - `aria-label`: A text description of the button's action (recommended)
|
|
727
|
+
* - `aria-labelledby`: Reference to an element containing the label
|
|
728
|
+
* - `title`: Tooltip text (less preferred, but provides a label)
|
|
729
|
+
*
|
|
730
|
+
* @example
|
|
731
|
+
* ```tsx
|
|
732
|
+
* // Correct usage with aria-label
|
|
733
|
+
* <IconButton aria-label="Close menu">
|
|
734
|
+
* <CloseIcon />
|
|
735
|
+
* </IconButton>
|
|
736
|
+
* ```
|
|
737
|
+
*
|
|
738
|
+
* Variants (matches Figma):
|
|
739
|
+
* - primary: Filled brand button (indigo background)
|
|
740
|
+
* - primary-outline: Outlined brand button (indigo border/text)
|
|
741
|
+
* - secondary: Filled neutral button (white background, for dark backgrounds)
|
|
742
|
+
* - secondary-outline: Outlined neutral button (white border/text, for dark backgrounds)
|
|
743
|
+
* - ghost: Transparent button with subtle hover (for light backgrounds)
|
|
744
|
+
* - ghost-inverse: Transparent button with subtle hover (for dark backgrounds)
|
|
745
|
+
*
|
|
746
|
+
* Sizes:
|
|
747
|
+
* - sm: Small (28x28)
|
|
748
|
+
* - md: Medium (40x40) - default
|
|
749
|
+
* - lg: Large (56x56)
|
|
750
|
+
*
|
|
751
|
+
* Rounded:
|
|
752
|
+
* - default: Standard border radius (matches size)
|
|
753
|
+
* - full: Fully circular
|
|
754
|
+
*/
|
|
755
|
+
declare const iconButtonVariants: tailwind_variants.TVReturnType<{
|
|
756
|
+
variant: {
|
|
757
|
+
primary: string;
|
|
758
|
+
"primary-outline": string;
|
|
759
|
+
secondary: string;
|
|
760
|
+
"secondary-outline": string;
|
|
761
|
+
ghost: string;
|
|
762
|
+
"ghost-inverse": string;
|
|
763
|
+
};
|
|
764
|
+
size: {
|
|
765
|
+
sm: string;
|
|
766
|
+
md: string;
|
|
767
|
+
lg: string;
|
|
768
|
+
};
|
|
769
|
+
rounded: {
|
|
770
|
+
default: string;
|
|
771
|
+
full: string;
|
|
772
|
+
};
|
|
773
|
+
}, undefined, "inline-flex items-center justify-center 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", tailwind_variants_dist_config_js.TVConfig<{
|
|
774
|
+
variant: {
|
|
775
|
+
primary: string;
|
|
776
|
+
"primary-outline": string;
|
|
777
|
+
secondary: string;
|
|
778
|
+
"secondary-outline": string;
|
|
779
|
+
ghost: string;
|
|
780
|
+
"ghost-inverse": string;
|
|
781
|
+
};
|
|
782
|
+
size: {
|
|
783
|
+
sm: string;
|
|
784
|
+
md: string;
|
|
785
|
+
lg: string;
|
|
786
|
+
};
|
|
787
|
+
rounded: {
|
|
788
|
+
default: string;
|
|
789
|
+
full: string;
|
|
790
|
+
};
|
|
791
|
+
}, {
|
|
792
|
+
variant: {
|
|
793
|
+
primary: string;
|
|
794
|
+
"primary-outline": string;
|
|
795
|
+
secondary: string;
|
|
796
|
+
"secondary-outline": string;
|
|
797
|
+
ghost: string;
|
|
798
|
+
"ghost-inverse": string;
|
|
799
|
+
};
|
|
800
|
+
size: {
|
|
801
|
+
sm: string;
|
|
802
|
+
md: string;
|
|
803
|
+
lg: string;
|
|
804
|
+
};
|
|
805
|
+
rounded: {
|
|
806
|
+
default: string;
|
|
807
|
+
full: string;
|
|
808
|
+
};
|
|
809
|
+
}>, {
|
|
810
|
+
variant: {
|
|
811
|
+
primary: string;
|
|
812
|
+
"primary-outline": string;
|
|
813
|
+
secondary: string;
|
|
814
|
+
"secondary-outline": string;
|
|
815
|
+
ghost: string;
|
|
816
|
+
"ghost-inverse": string;
|
|
817
|
+
};
|
|
818
|
+
size: {
|
|
819
|
+
sm: string;
|
|
820
|
+
md: string;
|
|
821
|
+
lg: string;
|
|
822
|
+
};
|
|
823
|
+
rounded: {
|
|
824
|
+
default: string;
|
|
825
|
+
full: string;
|
|
826
|
+
};
|
|
827
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
828
|
+
variant: {
|
|
829
|
+
primary: string;
|
|
830
|
+
"primary-outline": string;
|
|
831
|
+
secondary: string;
|
|
832
|
+
"secondary-outline": string;
|
|
833
|
+
ghost: string;
|
|
834
|
+
"ghost-inverse": string;
|
|
835
|
+
};
|
|
836
|
+
size: {
|
|
837
|
+
sm: string;
|
|
838
|
+
md: string;
|
|
839
|
+
lg: string;
|
|
840
|
+
};
|
|
841
|
+
rounded: {
|
|
842
|
+
default: string;
|
|
843
|
+
full: string;
|
|
844
|
+
};
|
|
845
|
+
}, undefined, "inline-flex items-center justify-center 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", tailwind_variants_dist_config_js.TVConfig<{
|
|
846
|
+
variant: {
|
|
847
|
+
primary: string;
|
|
848
|
+
"primary-outline": string;
|
|
849
|
+
secondary: string;
|
|
850
|
+
"secondary-outline": string;
|
|
851
|
+
ghost: string;
|
|
852
|
+
"ghost-inverse": string;
|
|
853
|
+
};
|
|
854
|
+
size: {
|
|
855
|
+
sm: string;
|
|
856
|
+
md: string;
|
|
857
|
+
lg: string;
|
|
858
|
+
};
|
|
859
|
+
rounded: {
|
|
860
|
+
default: string;
|
|
861
|
+
full: string;
|
|
862
|
+
};
|
|
863
|
+
}, {
|
|
864
|
+
variant: {
|
|
865
|
+
primary: string;
|
|
866
|
+
"primary-outline": string;
|
|
867
|
+
secondary: string;
|
|
868
|
+
"secondary-outline": string;
|
|
869
|
+
ghost: string;
|
|
870
|
+
"ghost-inverse": string;
|
|
871
|
+
};
|
|
872
|
+
size: {
|
|
873
|
+
sm: string;
|
|
874
|
+
md: string;
|
|
875
|
+
lg: string;
|
|
876
|
+
};
|
|
877
|
+
rounded: {
|
|
878
|
+
default: string;
|
|
879
|
+
full: string;
|
|
880
|
+
};
|
|
881
|
+
}>, unknown, unknown, undefined>>;
|
|
882
|
+
interface IconButtonState extends Record<string, unknown> {
|
|
883
|
+
variant: "primary" | "primary-outline" | "secondary" | "secondary-outline" | "ghost" | "ghost-inverse";
|
|
884
|
+
size: "sm" | "md" | "lg";
|
|
885
|
+
rounded: "default" | "full";
|
|
886
|
+
}
|
|
887
|
+
interface IconButtonProps extends useRender.ComponentProps<"button", IconButtonState>, VariantProps<typeof iconButtonVariants> {
|
|
888
|
+
}
|
|
889
|
+
declare function IconButton(props: IconButtonProps): React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>>;
|
|
890
|
+
|
|
891
|
+
/**
|
|
892
|
+
* Input variants for styling based on Figma BaseKit / Interface / Input
|
|
893
|
+
*
|
|
894
|
+
* States (handled via CSS pseudo-classes and props):
|
|
895
|
+
* - Default: White background, subtle border
|
|
896
|
+
* - Hover: Light gray background (via :hover)
|
|
897
|
+
* - Focus: Accent border with focus ring (via :focus-visible)
|
|
898
|
+
* - Error: Error border color (via error prop)
|
|
899
|
+
* - Disabled: Disabled background (via :disabled)
|
|
900
|
+
*
|
|
901
|
+
* Sizes:
|
|
902
|
+
* - sm: Smaller height and padding (36px)
|
|
903
|
+
* - default: Standard height (48px)
|
|
904
|
+
* - lg: Larger height and padding (56px)
|
|
905
|
+
*/
|
|
906
|
+
declare const inputVariants: tailwind_variants.TVReturnType<{
|
|
907
|
+
size: {
|
|
908
|
+
readonly sm: "h-spatial-ui-input-height-small px-spatial-ui-input-padding-x-small py-spatial-ui-input-padding-y-small typography-body-sm-md";
|
|
909
|
+
readonly default: "h-spatial-ui-input-height-medium px-spatial-ui-input-padding-x-medium py-spatial-ui-input-padding-y-medium typography-body-md-md";
|
|
910
|
+
readonly lg: "h-spatial-ui-input-height-large px-spatial-ui-input-padding-x-large py-spatial-ui-input-padding-y-large typography-body-md-lg";
|
|
911
|
+
};
|
|
912
|
+
error: {
|
|
913
|
+
true: string;
|
|
914
|
+
false: "";
|
|
915
|
+
};
|
|
916
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
917
|
+
size: {
|
|
918
|
+
readonly sm: "h-spatial-ui-input-height-small px-spatial-ui-input-padding-x-small py-spatial-ui-input-padding-y-small typography-body-sm-md";
|
|
919
|
+
readonly default: "h-spatial-ui-input-height-medium px-spatial-ui-input-padding-x-medium py-spatial-ui-input-padding-y-medium typography-body-md-md";
|
|
920
|
+
readonly lg: "h-spatial-ui-input-height-large px-spatial-ui-input-padding-x-large py-spatial-ui-input-padding-y-large typography-body-md-lg";
|
|
921
|
+
};
|
|
922
|
+
error: {
|
|
923
|
+
true: string;
|
|
924
|
+
false: "";
|
|
925
|
+
};
|
|
926
|
+
}, {
|
|
927
|
+
size: {
|
|
928
|
+
readonly sm: "h-spatial-ui-input-height-small px-spatial-ui-input-padding-x-small py-spatial-ui-input-padding-y-small typography-body-sm-md";
|
|
929
|
+
readonly default: "h-spatial-ui-input-height-medium px-spatial-ui-input-padding-x-medium py-spatial-ui-input-padding-y-medium typography-body-md-md";
|
|
930
|
+
readonly lg: "h-spatial-ui-input-height-large px-spatial-ui-input-padding-x-large py-spatial-ui-input-padding-y-large typography-body-md-lg";
|
|
931
|
+
};
|
|
932
|
+
error: {
|
|
933
|
+
true: string;
|
|
934
|
+
false: "";
|
|
935
|
+
};
|
|
936
|
+
}>, {
|
|
937
|
+
size: {
|
|
938
|
+
readonly sm: "h-spatial-ui-input-height-small px-spatial-ui-input-padding-x-small py-spatial-ui-input-padding-y-small typography-body-sm-md";
|
|
939
|
+
readonly default: "h-spatial-ui-input-height-medium px-spatial-ui-input-padding-x-medium py-spatial-ui-input-padding-y-medium typography-body-md-md";
|
|
940
|
+
readonly lg: "h-spatial-ui-input-height-large px-spatial-ui-input-padding-x-large py-spatial-ui-input-padding-y-large typography-body-md-lg";
|
|
941
|
+
};
|
|
942
|
+
error: {
|
|
943
|
+
true: string;
|
|
944
|
+
false: "";
|
|
945
|
+
};
|
|
946
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
947
|
+
size: {
|
|
948
|
+
readonly sm: "h-spatial-ui-input-height-small px-spatial-ui-input-padding-x-small py-spatial-ui-input-padding-y-small typography-body-sm-md";
|
|
949
|
+
readonly default: "h-spatial-ui-input-height-medium px-spatial-ui-input-padding-x-medium py-spatial-ui-input-padding-y-medium typography-body-md-md";
|
|
950
|
+
readonly lg: "h-spatial-ui-input-height-large px-spatial-ui-input-padding-x-large py-spatial-ui-input-padding-y-large typography-body-md-lg";
|
|
951
|
+
};
|
|
952
|
+
error: {
|
|
953
|
+
true: string;
|
|
954
|
+
false: "";
|
|
955
|
+
};
|
|
956
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
957
|
+
size: {
|
|
958
|
+
readonly sm: "h-spatial-ui-input-height-small px-spatial-ui-input-padding-x-small py-spatial-ui-input-padding-y-small typography-body-sm-md";
|
|
959
|
+
readonly default: "h-spatial-ui-input-height-medium px-spatial-ui-input-padding-x-medium py-spatial-ui-input-padding-y-medium typography-body-md-md";
|
|
960
|
+
readonly lg: "h-spatial-ui-input-height-large px-spatial-ui-input-padding-x-large py-spatial-ui-input-padding-y-large typography-body-md-lg";
|
|
961
|
+
};
|
|
962
|
+
error: {
|
|
963
|
+
true: string;
|
|
964
|
+
false: "";
|
|
965
|
+
};
|
|
966
|
+
}, {
|
|
967
|
+
size: {
|
|
968
|
+
readonly sm: "h-spatial-ui-input-height-small px-spatial-ui-input-padding-x-small py-spatial-ui-input-padding-y-small typography-body-sm-md";
|
|
969
|
+
readonly default: "h-spatial-ui-input-height-medium px-spatial-ui-input-padding-x-medium py-spatial-ui-input-padding-y-medium typography-body-md-md";
|
|
970
|
+
readonly lg: "h-spatial-ui-input-height-large px-spatial-ui-input-padding-x-large py-spatial-ui-input-padding-y-large typography-body-md-lg";
|
|
971
|
+
};
|
|
972
|
+
error: {
|
|
973
|
+
true: string;
|
|
974
|
+
false: "";
|
|
975
|
+
};
|
|
976
|
+
}>, unknown, unknown, undefined>>;
|
|
977
|
+
interface InputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof inputVariants> {
|
|
978
|
+
/**
|
|
979
|
+
* Whether the input is in an error state
|
|
980
|
+
*/
|
|
981
|
+
error?: boolean;
|
|
982
|
+
}
|
|
983
|
+
/**
|
|
984
|
+
* Input component based on Figma BaseKit / Interface / Input
|
|
985
|
+
*
|
|
986
|
+
* A styled text input with support for various states:
|
|
987
|
+
* - Default, hover, focus, error, and disabled states
|
|
988
|
+
* - Three size variants: sm, default, lg
|
|
989
|
+
*
|
|
990
|
+
* Uses semantic UI tokens for theming support.
|
|
991
|
+
*
|
|
992
|
+
* @example
|
|
993
|
+
* ```tsx
|
|
994
|
+
* // Basic usage
|
|
995
|
+
* <Input placeholder="Enter your email" />
|
|
996
|
+
*
|
|
997
|
+
* // With error state
|
|
998
|
+
* <Input error placeholder="Invalid input" />
|
|
999
|
+
*
|
|
1000
|
+
* // Different sizes
|
|
1001
|
+
* <Input size="sm" placeholder="Small" />
|
|
1002
|
+
* <Input size="lg" placeholder="Large" />
|
|
1003
|
+
*
|
|
1004
|
+
* // Disabled
|
|
1005
|
+
* <Input disabled placeholder="Disabled input" />
|
|
1006
|
+
* ```
|
|
1007
|
+
*/
|
|
1008
|
+
declare const Input: React$1.ForwardRefExoticComponent<InputProps & React$1.RefAttributes<HTMLInputElement>>;
|
|
1009
|
+
|
|
1010
|
+
declare const inputGroupVariants: tailwind_variants.TVReturnType<{
|
|
1011
|
+
size: {
|
|
1012
|
+
sm: string;
|
|
1013
|
+
default: string;
|
|
1014
|
+
lg: string;
|
|
1015
|
+
};
|
|
1016
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
1017
|
+
size: {
|
|
1018
|
+
sm: string;
|
|
1019
|
+
default: string;
|
|
1020
|
+
lg: string;
|
|
1021
|
+
};
|
|
1022
|
+
}, {
|
|
1023
|
+
size: {
|
|
1024
|
+
sm: string;
|
|
1025
|
+
default: string;
|
|
1026
|
+
lg: string;
|
|
1027
|
+
};
|
|
1028
|
+
}>, {
|
|
1029
|
+
size: {
|
|
1030
|
+
sm: string;
|
|
1031
|
+
default: string;
|
|
1032
|
+
lg: string;
|
|
1033
|
+
};
|
|
1034
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
1035
|
+
size: {
|
|
1036
|
+
sm: string;
|
|
1037
|
+
default: string;
|
|
1038
|
+
lg: string;
|
|
1039
|
+
};
|
|
1040
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
1041
|
+
size: {
|
|
1042
|
+
sm: string;
|
|
1043
|
+
default: string;
|
|
1044
|
+
lg: string;
|
|
1045
|
+
};
|
|
1046
|
+
}, {
|
|
1047
|
+
size: {
|
|
1048
|
+
sm: string;
|
|
1049
|
+
default: string;
|
|
1050
|
+
lg: string;
|
|
1051
|
+
};
|
|
1052
|
+
}>, unknown, unknown, undefined>>;
|
|
1053
|
+
declare const inputGroupAddonVariants: tailwind_variants.TVReturnType<{
|
|
1054
|
+
align: {
|
|
1055
|
+
"inline-start": string[];
|
|
1056
|
+
"inline-end": string[];
|
|
1057
|
+
"block-start": string[];
|
|
1058
|
+
"block-end": string[];
|
|
1059
|
+
};
|
|
1060
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
1061
|
+
align: {
|
|
1062
|
+
"inline-start": string[];
|
|
1063
|
+
"inline-end": string[];
|
|
1064
|
+
"block-start": string[];
|
|
1065
|
+
"block-end": string[];
|
|
1066
|
+
};
|
|
1067
|
+
}, {
|
|
1068
|
+
align: {
|
|
1069
|
+
"inline-start": string[];
|
|
1070
|
+
"inline-end": string[];
|
|
1071
|
+
"block-start": string[];
|
|
1072
|
+
"block-end": string[];
|
|
1073
|
+
};
|
|
1074
|
+
}>, {
|
|
1075
|
+
align: {
|
|
1076
|
+
"inline-start": string[];
|
|
1077
|
+
"inline-end": string[];
|
|
1078
|
+
"block-start": string[];
|
|
1079
|
+
"block-end": string[];
|
|
1080
|
+
};
|
|
1081
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
1082
|
+
align: {
|
|
1083
|
+
"inline-start": string[];
|
|
1084
|
+
"inline-end": string[];
|
|
1085
|
+
"block-start": string[];
|
|
1086
|
+
"block-end": string[];
|
|
1087
|
+
};
|
|
1088
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
1089
|
+
align: {
|
|
1090
|
+
"inline-start": string[];
|
|
1091
|
+
"inline-end": string[];
|
|
1092
|
+
"block-start": string[];
|
|
1093
|
+
"block-end": string[];
|
|
1094
|
+
};
|
|
1095
|
+
}, {
|
|
1096
|
+
align: {
|
|
1097
|
+
"inline-start": string[];
|
|
1098
|
+
"inline-end": string[];
|
|
1099
|
+
"block-start": string[];
|
|
1100
|
+
"block-end": string[];
|
|
1101
|
+
};
|
|
1102
|
+
}>, unknown, unknown, undefined>>;
|
|
1103
|
+
interface InputGroupProps extends React$1.FieldsetHTMLAttributes<HTMLFieldSetElement>, VariantProps<typeof inputGroupVariants> {
|
|
1104
|
+
}
|
|
1105
|
+
/**
|
|
1106
|
+
* InputGroup component for combining inputs with addons, buttons, and text.
|
|
1107
|
+
*
|
|
1108
|
+
* A container that groups an input with prefix/suffix addons, icons, or buttons.
|
|
1109
|
+
* Supports inline (left/right) and block (top/bottom) addon positioning.
|
|
1110
|
+
*
|
|
1111
|
+
* Uses semantic UI tokens for theming support.
|
|
1112
|
+
*
|
|
1113
|
+
* @example
|
|
1114
|
+
* ```tsx
|
|
1115
|
+
* // With prefix icon
|
|
1116
|
+
* <InputGroup>
|
|
1117
|
+
* <InputGroupAddon>
|
|
1118
|
+
* <SearchIcon />
|
|
1119
|
+
* </InputGroupAddon>
|
|
1120
|
+
* <InputGroupInput placeholder="Search..." />
|
|
1121
|
+
* </InputGroup>
|
|
1122
|
+
*
|
|
1123
|
+
* // With suffix button
|
|
1124
|
+
* <InputGroup>
|
|
1125
|
+
* <InputGroupInput placeholder="Enter email" />
|
|
1126
|
+
* <InputGroupAddon align="inline-end">
|
|
1127
|
+
* <InputGroupButton>Subscribe</InputGroupButton>
|
|
1128
|
+
* </InputGroupAddon>
|
|
1129
|
+
* </InputGroup>
|
|
1130
|
+
*
|
|
1131
|
+
* // With text prefix
|
|
1132
|
+
* <InputGroup>
|
|
1133
|
+
* <InputGroupAddon>
|
|
1134
|
+
* <InputGroupText>https://</InputGroupText>
|
|
1135
|
+
* </InputGroupAddon>
|
|
1136
|
+
* <InputGroupInput placeholder="example.com" />
|
|
1137
|
+
* </InputGroup>
|
|
1138
|
+
* ```
|
|
1139
|
+
*/
|
|
1140
|
+
declare function InputGroup({ className, size, disabled, ...props }: InputGroupProps): react_jsx_runtime.JSX.Element;
|
|
1141
|
+
interface InputGroupAddonProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof inputGroupAddonVariants> {
|
|
1142
|
+
}
|
|
1143
|
+
/**
|
|
1144
|
+
* InputGroupAddon component for positioning addons within an InputGroup.
|
|
1145
|
+
*
|
|
1146
|
+
* Can contain icons, text, or buttons. Clicking the addon focuses the input.
|
|
1147
|
+
*
|
|
1148
|
+
* @example
|
|
1149
|
+
* ```tsx
|
|
1150
|
+
* // Inline start (default - left side)
|
|
1151
|
+
* <InputGroupAddon>
|
|
1152
|
+
* <SearchIcon />
|
|
1153
|
+
* </InputGroupAddon>
|
|
1154
|
+
*
|
|
1155
|
+
* // Inline end (right side)
|
|
1156
|
+
* <InputGroupAddon align="inline-end">
|
|
1157
|
+
* <InputGroupButton>Submit</InputGroupButton>
|
|
1158
|
+
* </InputGroupAddon>
|
|
1159
|
+
*
|
|
1160
|
+
* // Block positions (top/bottom)
|
|
1161
|
+
* <InputGroupAddon align="block-start">
|
|
1162
|
+
* <label>Email Address</label>
|
|
1163
|
+
* </InputGroupAddon>
|
|
1164
|
+
* ```
|
|
1165
|
+
*/
|
|
1166
|
+
declare function InputGroupAddon({ className, align, onClick, onKeyDown, ...props }: InputGroupAddonProps): react_jsx_runtime.JSX.Element;
|
|
1167
|
+
declare const inputGroupButtonVariants: tailwind_variants.TVReturnType<{
|
|
1168
|
+
size: {
|
|
1169
|
+
xs: string;
|
|
1170
|
+
sm: string;
|
|
1171
|
+
"icon-xs": string;
|
|
1172
|
+
"icon-sm": string;
|
|
1173
|
+
};
|
|
1174
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
1175
|
+
size: {
|
|
1176
|
+
xs: string;
|
|
1177
|
+
sm: string;
|
|
1178
|
+
"icon-xs": string;
|
|
1179
|
+
"icon-sm": string;
|
|
1180
|
+
};
|
|
1181
|
+
}, {
|
|
1182
|
+
size: {
|
|
1183
|
+
xs: string;
|
|
1184
|
+
sm: string;
|
|
1185
|
+
"icon-xs": string;
|
|
1186
|
+
"icon-sm": string;
|
|
1187
|
+
};
|
|
1188
|
+
}>, {
|
|
1189
|
+
size: {
|
|
1190
|
+
xs: string;
|
|
1191
|
+
sm: string;
|
|
1192
|
+
"icon-xs": string;
|
|
1193
|
+
"icon-sm": string;
|
|
1194
|
+
};
|
|
1195
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
1196
|
+
size: {
|
|
1197
|
+
xs: string;
|
|
1198
|
+
sm: string;
|
|
1199
|
+
"icon-xs": string;
|
|
1200
|
+
"icon-sm": string;
|
|
1201
|
+
};
|
|
1202
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
1203
|
+
size: {
|
|
1204
|
+
xs: string;
|
|
1205
|
+
sm: string;
|
|
1206
|
+
"icon-xs": string;
|
|
1207
|
+
"icon-sm": string;
|
|
1208
|
+
};
|
|
1209
|
+
}, {
|
|
1210
|
+
size: {
|
|
1211
|
+
xs: string;
|
|
1212
|
+
sm: string;
|
|
1213
|
+
"icon-xs": string;
|
|
1214
|
+
"icon-sm": string;
|
|
1215
|
+
};
|
|
1216
|
+
}>, unknown, unknown, undefined>>;
|
|
1217
|
+
interface InputGroupButtonProps extends Omit<ButtonProps, "size">, VariantProps<typeof inputGroupButtonVariants> {
|
|
1218
|
+
}
|
|
1219
|
+
/**
|
|
1220
|
+
* InputGroupButton component for inline buttons within an InputGroup.
|
|
1221
|
+
*
|
|
1222
|
+
* A small button variant designed to fit inside input groups.
|
|
1223
|
+
*
|
|
1224
|
+
* @example
|
|
1225
|
+
* ```tsx
|
|
1226
|
+
* <InputGroupAddon align="inline-end">
|
|
1227
|
+
* <InputGroupButton>Submit</InputGroupButton>
|
|
1228
|
+
* </InputGroupAddon>
|
|
1229
|
+
*
|
|
1230
|
+
* // Icon button
|
|
1231
|
+
* <InputGroupAddon align="inline-end">
|
|
1232
|
+
* <InputGroupButton size="icon-xs">
|
|
1233
|
+
* <ClearIcon />
|
|
1234
|
+
* </InputGroupButton>
|
|
1235
|
+
* </InputGroupAddon>
|
|
1236
|
+
* ```
|
|
1237
|
+
*/
|
|
1238
|
+
declare function InputGroupButton({ className, type, variant, size, ...props }: InputGroupButtonProps): react_jsx_runtime.JSX.Element;
|
|
1239
|
+
interface InputGroupTextProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
1240
|
+
}
|
|
1241
|
+
/**
|
|
1242
|
+
* InputGroupText component for static text within an InputGroup.
|
|
1243
|
+
*
|
|
1244
|
+
* Use for prefixes like "https://" or suffixes like ".com"
|
|
1245
|
+
*
|
|
1246
|
+
* @example
|
|
1247
|
+
* ```tsx
|
|
1248
|
+
* <InputGroupAddon>
|
|
1249
|
+
* <InputGroupText>https://</InputGroupText>
|
|
1250
|
+
* </InputGroupAddon>
|
|
1251
|
+
* ```
|
|
1252
|
+
*/
|
|
1253
|
+
declare function InputGroupText({ className, ...props }: InputGroupTextProps): react_jsx_runtime.JSX.Element;
|
|
1254
|
+
interface InputGroupInputProps extends React$1.InputHTMLAttributes<HTMLInputElement> {
|
|
1255
|
+
}
|
|
1256
|
+
/**
|
|
1257
|
+
* InputGroupInput component - the input element within an InputGroup.
|
|
1258
|
+
*
|
|
1259
|
+
* Styled to integrate seamlessly with the InputGroup container.
|
|
1260
|
+
*
|
|
1261
|
+
* @example
|
|
1262
|
+
* ```tsx
|
|
1263
|
+
* <InputGroup>
|
|
1264
|
+
* <InputGroupInput placeholder="Enter text..." />
|
|
1265
|
+
* </InputGroup>
|
|
1266
|
+
* ```
|
|
1267
|
+
*/
|
|
1268
|
+
declare function InputGroupInput({ className, ...props }: InputGroupInputProps): react_jsx_runtime.JSX.Element;
|
|
1269
|
+
interface InputGroupTextareaProps extends React$1.TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
1270
|
+
}
|
|
1271
|
+
/**
|
|
1272
|
+
* InputGroupTextarea component - a textarea element within an InputGroup.
|
|
1273
|
+
*
|
|
1274
|
+
* Styled to integrate seamlessly with the InputGroup container.
|
|
1275
|
+
*
|
|
1276
|
+
* @example
|
|
1277
|
+
* ```tsx
|
|
1278
|
+
* <InputGroup>
|
|
1279
|
+
* <InputGroupTextarea placeholder="Enter long text..." rows={4} />
|
|
1280
|
+
* </InputGroup>
|
|
1281
|
+
* ```
|
|
1282
|
+
*/
|
|
1283
|
+
declare function InputGroupTextarea({ className, ...props }: InputGroupTextareaProps): react_jsx_runtime.JSX.Element;
|
|
1284
|
+
|
|
1285
|
+
interface NdstudioFooterProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
1286
|
+
/**
|
|
1287
|
+
* The URL to link to
|
|
1288
|
+
* @default "https://ndstudio.gov"
|
|
1289
|
+
*/
|
|
1290
|
+
href?: string;
|
|
1291
|
+
}
|
|
1292
|
+
/**
|
|
1293
|
+
* NdstudioFooter component displays a "Designed and Engineered in DC by National Design Studio" footer link.
|
|
1294
|
+
*
|
|
1295
|
+
* This component is designed to be used as a footer within other components like Tout,
|
|
1296
|
+
* but can also be used standalone.
|
|
1297
|
+
*
|
|
1298
|
+
* @example
|
|
1299
|
+
* ```tsx
|
|
1300
|
+
* // Used within a Tout component via footer slot
|
|
1301
|
+
* <Tout
|
|
1302
|
+
* headline="Feature Headline"
|
|
1303
|
+
* primaryAction={<Button>Primary</Button>}
|
|
1304
|
+
* backgroundMedia={<img src="/bg.jpg" alt="" />}
|
|
1305
|
+
* footer={<NdstudioFooter />}
|
|
1306
|
+
* />
|
|
1307
|
+
*
|
|
1308
|
+
* // Standalone usage
|
|
1309
|
+
* <NdstudioFooter className="my-custom-class" />
|
|
1310
|
+
* ```
|
|
1311
|
+
*/
|
|
1312
|
+
declare const NdstudioFooter: React$1.ForwardRefExoticComponent<NdstudioFooterProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1313
|
+
|
|
1314
|
+
declare const pagerControlVariants: tailwind_variants.TVReturnType<{
|
|
1315
|
+
size: {
|
|
1316
|
+
sm: string;
|
|
1317
|
+
default: string;
|
|
1318
|
+
lg: string;
|
|
1319
|
+
};
|
|
1320
|
+
}, undefined, "flex items-center", tailwind_variants_dist_config_js.TVConfig<{
|
|
1321
|
+
size: {
|
|
1322
|
+
sm: string;
|
|
1323
|
+
default: string;
|
|
1324
|
+
lg: string;
|
|
1325
|
+
};
|
|
1326
|
+
}, {
|
|
1327
|
+
size: {
|
|
1328
|
+
sm: string;
|
|
1329
|
+
default: string;
|
|
1330
|
+
lg: string;
|
|
1331
|
+
};
|
|
1332
|
+
}>, {
|
|
1333
|
+
size: {
|
|
1334
|
+
sm: string;
|
|
1335
|
+
default: string;
|
|
1336
|
+
lg: string;
|
|
1337
|
+
};
|
|
1338
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
1339
|
+
size: {
|
|
1340
|
+
sm: string;
|
|
1341
|
+
default: string;
|
|
1342
|
+
lg: string;
|
|
1343
|
+
};
|
|
1344
|
+
}, undefined, "flex items-center", tailwind_variants_dist_config_js.TVConfig<{
|
|
1345
|
+
size: {
|
|
1346
|
+
sm: string;
|
|
1347
|
+
default: string;
|
|
1348
|
+
lg: string;
|
|
1349
|
+
};
|
|
1350
|
+
}, {
|
|
1351
|
+
size: {
|
|
1352
|
+
sm: string;
|
|
1353
|
+
default: string;
|
|
1354
|
+
lg: string;
|
|
1355
|
+
};
|
|
1356
|
+
}>, unknown, unknown, undefined>>;
|
|
1357
|
+
declare const dotBaseVariants: tailwind_variants.TVReturnType<{
|
|
1358
|
+
size: {
|
|
1359
|
+
sm: string;
|
|
1360
|
+
default: string;
|
|
1361
|
+
lg: string;
|
|
1362
|
+
};
|
|
1363
|
+
variant: {
|
|
1364
|
+
charcoal: string;
|
|
1365
|
+
ivory: string;
|
|
1366
|
+
};
|
|
1367
|
+
}, undefined, "cursor-pointer rounded-full transition-all duration-500 ease-[cubic-bezier(0.23,1,0.32,1)]", tailwind_variants_dist_config_js.TVConfig<{
|
|
1368
|
+
size: {
|
|
1369
|
+
sm: string;
|
|
1370
|
+
default: string;
|
|
1371
|
+
lg: string;
|
|
1372
|
+
};
|
|
1373
|
+
variant: {
|
|
1374
|
+
charcoal: string;
|
|
1375
|
+
ivory: string;
|
|
1376
|
+
};
|
|
1377
|
+
}, {
|
|
1378
|
+
size: {
|
|
1379
|
+
sm: string;
|
|
1380
|
+
default: string;
|
|
1381
|
+
lg: string;
|
|
1382
|
+
};
|
|
1383
|
+
variant: {
|
|
1384
|
+
charcoal: string;
|
|
1385
|
+
ivory: string;
|
|
1386
|
+
};
|
|
1387
|
+
}>, {
|
|
1388
|
+
size: {
|
|
1389
|
+
sm: string;
|
|
1390
|
+
default: string;
|
|
1391
|
+
lg: string;
|
|
1392
|
+
};
|
|
1393
|
+
variant: {
|
|
1394
|
+
charcoal: string;
|
|
1395
|
+
ivory: string;
|
|
1396
|
+
};
|
|
1397
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
1398
|
+
size: {
|
|
1399
|
+
sm: string;
|
|
1400
|
+
default: string;
|
|
1401
|
+
lg: string;
|
|
1402
|
+
};
|
|
1403
|
+
variant: {
|
|
1404
|
+
charcoal: string;
|
|
1405
|
+
ivory: string;
|
|
1406
|
+
};
|
|
1407
|
+
}, undefined, "cursor-pointer rounded-full transition-all duration-500 ease-[cubic-bezier(0.23,1,0.32,1)]", tailwind_variants_dist_config_js.TVConfig<{
|
|
1408
|
+
size: {
|
|
1409
|
+
sm: string;
|
|
1410
|
+
default: string;
|
|
1411
|
+
lg: string;
|
|
1412
|
+
};
|
|
1413
|
+
variant: {
|
|
1414
|
+
charcoal: string;
|
|
1415
|
+
ivory: string;
|
|
1416
|
+
};
|
|
1417
|
+
}, {
|
|
1418
|
+
size: {
|
|
1419
|
+
sm: string;
|
|
1420
|
+
default: string;
|
|
1421
|
+
lg: string;
|
|
1422
|
+
};
|
|
1423
|
+
variant: {
|
|
1424
|
+
charcoal: string;
|
|
1425
|
+
ivory: string;
|
|
1426
|
+
};
|
|
1427
|
+
}>, unknown, unknown, undefined>>;
|
|
1428
|
+
interface PagerControlProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "onChange">, VariantProps<typeof pagerControlVariants>, VariantProps<typeof dotBaseVariants> {
|
|
1429
|
+
/**
|
|
1430
|
+
* Total number of pages/items
|
|
1431
|
+
*/
|
|
1432
|
+
count: number;
|
|
1433
|
+
/**
|
|
1434
|
+
* Current active page index (0-based)
|
|
1435
|
+
*/
|
|
1436
|
+
activeIndex?: number;
|
|
1437
|
+
/**
|
|
1438
|
+
* Duration in milliseconds for each page before auto-advancing
|
|
1439
|
+
* Set to 0 to disable auto-advance
|
|
1440
|
+
* @default 5000
|
|
1441
|
+
*/
|
|
1442
|
+
duration?: number;
|
|
1443
|
+
/**
|
|
1444
|
+
* Whether the pager should auto-advance
|
|
1445
|
+
* @default true
|
|
1446
|
+
*/
|
|
1447
|
+
autoPlay?: boolean;
|
|
1448
|
+
/**
|
|
1449
|
+
* Callback when the active page changes
|
|
1450
|
+
*/
|
|
1451
|
+
onChange?: (index: number) => void;
|
|
1452
|
+
/**
|
|
1453
|
+
* Whether to pause auto-advance on hover
|
|
1454
|
+
* @default true
|
|
1455
|
+
*/
|
|
1456
|
+
pauseOnHover?: boolean;
|
|
1457
|
+
/**
|
|
1458
|
+
* Whether to loop back to the first page after the last
|
|
1459
|
+
* @default true
|
|
1460
|
+
*/
|
|
1461
|
+
loop?: boolean;
|
|
1462
|
+
}
|
|
1463
|
+
/**
|
|
1464
|
+
* PagerControl component for indicating progress through a series of pages/slides.
|
|
1465
|
+
*
|
|
1466
|
+
* Features smooth width transitions when switching between dots and an animated
|
|
1467
|
+
* progress fill on the active dot that shows time remaining before auto-advancing
|
|
1468
|
+
* (similar to Apple's carousel indicators).
|
|
1469
|
+
*
|
|
1470
|
+
* Variants:
|
|
1471
|
+
* - charcoal: Dark dots (for light backgrounds)
|
|
1472
|
+
* - ivory: Light dots (for dark backgrounds)
|
|
1473
|
+
*
|
|
1474
|
+
* Sizes:
|
|
1475
|
+
* - sm: Small dots (6px height)
|
|
1476
|
+
* - default: Medium dots (10px height)
|
|
1477
|
+
* - lg: Large dots (16px height)
|
|
1478
|
+
*/
|
|
1479
|
+
declare const PagerControl: React$1.ForwardRefExoticComponent<PagerControlProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1480
|
+
|
|
1481
|
+
/**
|
|
1482
|
+
* Popover popup variants
|
|
1483
|
+
*
|
|
1484
|
+
* Uses semantic overlay tokens for themeable styling:
|
|
1485
|
+
* - color.overlay.background - Light background
|
|
1486
|
+
* - color.overlay.border - Subtle border
|
|
1487
|
+
* - color.overlay.text - Primary text
|
|
1488
|
+
* - surface.overlay.radius - Rounded corners
|
|
1489
|
+
* - spatial.component.overlay.padding/gap - Consistent spacing
|
|
1490
|
+
*/
|
|
1491
|
+
declare const popoverPopupVariants: tailwind_variants.TVReturnType<{
|
|
1492
|
+
variant: {
|
|
1493
|
+
default: string;
|
|
1494
|
+
};
|
|
1495
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
1496
|
+
variant: {
|
|
1497
|
+
default: string;
|
|
1498
|
+
};
|
|
1499
|
+
}, {
|
|
1500
|
+
variant: {
|
|
1501
|
+
default: string;
|
|
1502
|
+
};
|
|
1503
|
+
}>, {
|
|
1504
|
+
variant: {
|
|
1505
|
+
default: string;
|
|
1506
|
+
};
|
|
1507
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
1508
|
+
variant: {
|
|
1509
|
+
default: string;
|
|
1510
|
+
};
|
|
1511
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
1512
|
+
variant: {
|
|
1513
|
+
default: string;
|
|
1514
|
+
};
|
|
1515
|
+
}, {
|
|
1516
|
+
variant: {
|
|
1517
|
+
default: string;
|
|
1518
|
+
};
|
|
1519
|
+
}>, unknown, unknown, undefined>>;
|
|
1520
|
+
/**
|
|
1521
|
+
* Popover arrow variants - uses shared floating arrow variants
|
|
1522
|
+
*/
|
|
1523
|
+
declare const popoverArrowVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
1524
|
+
interface PopoverRootProps extends Popover$1.Root.Props {
|
|
1525
|
+
children: React$1.ReactNode;
|
|
1526
|
+
}
|
|
1527
|
+
/**
|
|
1528
|
+
* Popover Root
|
|
1529
|
+
*
|
|
1530
|
+
* Groups all popover parts. Does not render an element.
|
|
1531
|
+
*/
|
|
1532
|
+
declare const PopoverRoot: ({ children, ...props }: PopoverRootProps) => react_jsx_runtime.JSX.Element;
|
|
1533
|
+
interface PopoverTriggerProps extends React$1.ComponentProps<typeof Popover$1.Trigger> {
|
|
1534
|
+
className?: string;
|
|
1535
|
+
}
|
|
1536
|
+
/**
|
|
1537
|
+
* Popover Trigger
|
|
1538
|
+
*
|
|
1539
|
+
* The element that triggers the popover on click.
|
|
1540
|
+
* Renders as the child element with popover behavior attached.
|
|
1541
|
+
* When children is a single React element, uses `render` prop to avoid wrapper element.
|
|
1542
|
+
*/
|
|
1543
|
+
declare const PopoverTrigger: React$1.ForwardRefExoticComponent<Omit<PopoverTriggerProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1544
|
+
interface PopoverPortalProps extends Popover$1.Portal.Props {
|
|
1545
|
+
children: React$1.ReactNode;
|
|
1546
|
+
}
|
|
1547
|
+
/**
|
|
1548
|
+
* Popover Portal
|
|
1549
|
+
*
|
|
1550
|
+
* Renders the popover popup in a portal outside the DOM hierarchy.
|
|
1551
|
+
*/
|
|
1552
|
+
declare const PopoverPortal: ({ children, ...props }: PopoverPortalProps) => react_jsx_runtime.JSX.Element;
|
|
1553
|
+
interface PopoverBackdropProps extends Omit<React$1.ComponentProps<typeof Popover$1.Backdrop>, "className"> {
|
|
1554
|
+
className?: string;
|
|
1555
|
+
}
|
|
1556
|
+
/**
|
|
1557
|
+
* Popover Backdrop
|
|
1558
|
+
*
|
|
1559
|
+
* Optional backdrop element that can be used to close the popover on click.
|
|
1560
|
+
*/
|
|
1561
|
+
declare const PopoverBackdrop: React$1.ForwardRefExoticComponent<Omit<PopoverBackdropProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1562
|
+
interface PopoverPositionerProps extends Omit<React$1.ComponentProps<typeof Popover$1.Positioner>, "className"> {
|
|
1563
|
+
className?: string;
|
|
1564
|
+
}
|
|
1565
|
+
/**
|
|
1566
|
+
* Popover Positioner
|
|
1567
|
+
*
|
|
1568
|
+
* Positions the popover popup relative to the trigger.
|
|
1569
|
+
*/
|
|
1570
|
+
declare const PopoverPositioner: React$1.ForwardRefExoticComponent<Omit<PopoverPositionerProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1571
|
+
interface PopoverPopupProps extends Omit<React$1.ComponentProps<typeof Popover$1.Popup>, "className">, VariantProps<typeof popoverPopupVariants> {
|
|
1572
|
+
className?: string;
|
|
1573
|
+
}
|
|
1574
|
+
/**
|
|
1575
|
+
* Popover Popup
|
|
1576
|
+
*
|
|
1577
|
+
* The popover content container with styled appearance.
|
|
1578
|
+
*/
|
|
1579
|
+
declare const PopoverPopup: React$1.ForwardRefExoticComponent<Omit<PopoverPopupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1580
|
+
interface PopoverArrowProps extends Omit<React$1.ComponentProps<typeof Popover$1.Arrow>, "className"> {
|
|
1581
|
+
className?: string;
|
|
1582
|
+
}
|
|
1583
|
+
/**
|
|
1584
|
+
* Popover Arrow
|
|
1585
|
+
*
|
|
1586
|
+
* Visual pointer element for the popover.
|
|
1587
|
+
* Uses shared FloatingArrowSvg with overlay color tokens for fill and border.
|
|
1588
|
+
*/
|
|
1589
|
+
declare const PopoverArrow: React$1.ForwardRefExoticComponent<Omit<PopoverArrowProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1590
|
+
interface PopoverTitleProps extends Omit<React$1.ComponentProps<typeof Popover$1.Title>, "className"> {
|
|
1591
|
+
className?: string;
|
|
1592
|
+
}
|
|
1593
|
+
/**
|
|
1594
|
+
* Popover Title
|
|
1595
|
+
*
|
|
1596
|
+
* Title element for the popover content.
|
|
1597
|
+
*/
|
|
1598
|
+
declare const PopoverTitle: React$1.ForwardRefExoticComponent<Omit<PopoverTitleProps, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
1599
|
+
interface PopoverDescriptionProps extends Omit<React$1.ComponentProps<typeof Popover$1.Description>, "className"> {
|
|
1600
|
+
className?: string;
|
|
1601
|
+
}
|
|
1602
|
+
/**
|
|
1603
|
+
* Popover Description
|
|
1604
|
+
*
|
|
1605
|
+
* Description element for the popover content.
|
|
1606
|
+
*/
|
|
1607
|
+
declare const PopoverDescription: React$1.ForwardRefExoticComponent<Omit<PopoverDescriptionProps, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
1608
|
+
interface PopoverCloseProps extends Omit<React$1.ComponentProps<typeof Popover$1.Close>, "className"> {
|
|
1609
|
+
className?: string;
|
|
1610
|
+
}
|
|
1611
|
+
/**
|
|
1612
|
+
* Popover Close
|
|
1613
|
+
*
|
|
1614
|
+
* Close button for the popover.
|
|
1615
|
+
*/
|
|
1616
|
+
declare const PopoverClose: React$1.ForwardRefExoticComponent<Omit<PopoverCloseProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1617
|
+
interface PopoverProps {
|
|
1618
|
+
/** The content to show in the popover */
|
|
1619
|
+
children: React$1.ReactNode;
|
|
1620
|
+
/** The element that triggers the popover */
|
|
1621
|
+
trigger: React$1.ReactNode;
|
|
1622
|
+
/** Title for the popover (optional) */
|
|
1623
|
+
title?: React$1.ReactNode;
|
|
1624
|
+
/** Side of the trigger to show the popover */
|
|
1625
|
+
side?: "top" | "bottom" | "left" | "right";
|
|
1626
|
+
/** Offset from the trigger */
|
|
1627
|
+
sideOffset?: number;
|
|
1628
|
+
/** Alignment along the side */
|
|
1629
|
+
align?: "start" | "center" | "end";
|
|
1630
|
+
/** Whether to show an arrow */
|
|
1631
|
+
showArrow?: boolean;
|
|
1632
|
+
/** Whether to show a close button */
|
|
1633
|
+
showClose?: boolean;
|
|
1634
|
+
/** Controlled open state */
|
|
1635
|
+
open?: boolean;
|
|
1636
|
+
/** Default open state */
|
|
1637
|
+
defaultOpen?: boolean;
|
|
1638
|
+
/** Callback when open state changes */
|
|
1639
|
+
onOpenChange?: (open: boolean) => void;
|
|
1640
|
+
/** Additional className for the popup */
|
|
1641
|
+
className?: string;
|
|
1642
|
+
}
|
|
1643
|
+
/**
|
|
1644
|
+
* Popover
|
|
1645
|
+
*
|
|
1646
|
+
* A simple, pre-composed popover component for common use cases.
|
|
1647
|
+
* For more complex needs, use the compound components directly.
|
|
1648
|
+
*
|
|
1649
|
+
* @example
|
|
1650
|
+
* ```tsx
|
|
1651
|
+
* <Popover
|
|
1652
|
+
* trigger={<Button>Click me</Button>}
|
|
1653
|
+
* title="Popover Title"
|
|
1654
|
+
* >
|
|
1655
|
+
* <p>This is the popover content.</p>
|
|
1656
|
+
* </Popover>
|
|
1657
|
+
* ```
|
|
1658
|
+
*/
|
|
1659
|
+
declare const Popover: ({ children, trigger, title, side, sideOffset, align, showArrow, showClose, open, defaultOpen, onOpenChange, className, }: PopoverProps) => react_jsx_runtime.JSX.Element;
|
|
1660
|
+
declare const PopoverParts: (({ children, ...props }: PopoverRootProps) => react_jsx_runtime.JSX.Element) & {
|
|
1661
|
+
Root: ({ children, ...props }: PopoverRootProps) => react_jsx_runtime.JSX.Element;
|
|
1662
|
+
Trigger: React$1.ForwardRefExoticComponent<Omit<PopoverTriggerProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1663
|
+
Portal: ({ children, ...props }: PopoverPortalProps) => react_jsx_runtime.JSX.Element;
|
|
1664
|
+
Backdrop: React$1.ForwardRefExoticComponent<Omit<PopoverBackdropProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1665
|
+
Positioner: React$1.ForwardRefExoticComponent<Omit<PopoverPositionerProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1666
|
+
Popup: React$1.ForwardRefExoticComponent<Omit<PopoverPopupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1667
|
+
Arrow: React$1.ForwardRefExoticComponent<Omit<PopoverArrowProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1668
|
+
Title: React$1.ForwardRefExoticComponent<Omit<PopoverTitleProps, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
1669
|
+
Description: React$1.ForwardRefExoticComponent<Omit<PopoverDescriptionProps, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
1670
|
+
Close: React$1.ForwardRefExoticComponent<Omit<PopoverCloseProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1671
|
+
};
|
|
1672
|
+
|
|
1673
|
+
/**
|
|
1674
|
+
* Select trigger variants based on Figma BaseKit / Interface / Dropdown
|
|
1675
|
+
*
|
|
1676
|
+
* States:
|
|
1677
|
+
* - Default: White background, subtle border
|
|
1678
|
+
* - Hover: Light gray background
|
|
1679
|
+
* - Focus/Open: Accent border with focus ring
|
|
1680
|
+
* - Selected: Has a value selected (darker text)
|
|
1681
|
+
* - Disabled: Reduced opacity, not interactive
|
|
1682
|
+
*/
|
|
1683
|
+
declare const selectTriggerVariants: tailwind_variants.TVReturnType<{
|
|
1684
|
+
size: {
|
|
1685
|
+
readonly sm: "h-spatial-ui-control-height-small px-spatial-ui-control-padding-x-small py-spatial-ui-control-padding-y-small text-14";
|
|
1686
|
+
readonly default: "h-spatial-ui-control-height-medium px-spatial-ui-control-padding-x-medium py-spatial-ui-control-padding-y-medium";
|
|
1687
|
+
readonly lg: "h-spatial-ui-control-height-large px-spatial-ui-control-padding-x-large py-spatial-ui-control-padding-y-large text-18";
|
|
1688
|
+
};
|
|
1689
|
+
error: {
|
|
1690
|
+
readonly true: "border-ui-error-color focus-visible:border-ui-error-color focus-visible:ring-ui-error-color/20 text-ui-error-color";
|
|
1691
|
+
readonly false: "";
|
|
1692
|
+
};
|
|
1693
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
1694
|
+
size: {
|
|
1695
|
+
readonly sm: "h-spatial-ui-control-height-small px-spatial-ui-control-padding-x-small py-spatial-ui-control-padding-y-small text-14";
|
|
1696
|
+
readonly default: "h-spatial-ui-control-height-medium px-spatial-ui-control-padding-x-medium py-spatial-ui-control-padding-y-medium";
|
|
1697
|
+
readonly lg: "h-spatial-ui-control-height-large px-spatial-ui-control-padding-x-large py-spatial-ui-control-padding-y-large text-18";
|
|
1698
|
+
};
|
|
1699
|
+
error: {
|
|
1700
|
+
readonly true: "border-ui-error-color focus-visible:border-ui-error-color focus-visible:ring-ui-error-color/20 text-ui-error-color";
|
|
1701
|
+
readonly false: "";
|
|
1702
|
+
};
|
|
1703
|
+
}, {
|
|
1704
|
+
size: {
|
|
1705
|
+
readonly sm: "h-spatial-ui-control-height-small px-spatial-ui-control-padding-x-small py-spatial-ui-control-padding-y-small text-14";
|
|
1706
|
+
readonly default: "h-spatial-ui-control-height-medium px-spatial-ui-control-padding-x-medium py-spatial-ui-control-padding-y-medium";
|
|
1707
|
+
readonly lg: "h-spatial-ui-control-height-large px-spatial-ui-control-padding-x-large py-spatial-ui-control-padding-y-large text-18";
|
|
1708
|
+
};
|
|
1709
|
+
error: {
|
|
1710
|
+
readonly true: "border-ui-error-color focus-visible:border-ui-error-color focus-visible:ring-ui-error-color/20 text-ui-error-color";
|
|
1711
|
+
readonly false: "";
|
|
1712
|
+
};
|
|
1713
|
+
}>, {
|
|
1714
|
+
size: {
|
|
1715
|
+
readonly sm: "h-spatial-ui-control-height-small px-spatial-ui-control-padding-x-small py-spatial-ui-control-padding-y-small text-14";
|
|
1716
|
+
readonly default: "h-spatial-ui-control-height-medium px-spatial-ui-control-padding-x-medium py-spatial-ui-control-padding-y-medium";
|
|
1717
|
+
readonly lg: "h-spatial-ui-control-height-large px-spatial-ui-control-padding-x-large py-spatial-ui-control-padding-y-large text-18";
|
|
1718
|
+
};
|
|
1719
|
+
error: {
|
|
1720
|
+
readonly true: "border-ui-error-color focus-visible:border-ui-error-color focus-visible:ring-ui-error-color/20 text-ui-error-color";
|
|
1721
|
+
readonly false: "";
|
|
1722
|
+
};
|
|
1723
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
1724
|
+
size: {
|
|
1725
|
+
readonly sm: "h-spatial-ui-control-height-small px-spatial-ui-control-padding-x-small py-spatial-ui-control-padding-y-small text-14";
|
|
1726
|
+
readonly default: "h-spatial-ui-control-height-medium px-spatial-ui-control-padding-x-medium py-spatial-ui-control-padding-y-medium";
|
|
1727
|
+
readonly lg: "h-spatial-ui-control-height-large px-spatial-ui-control-padding-x-large py-spatial-ui-control-padding-y-large text-18";
|
|
1728
|
+
};
|
|
1729
|
+
error: {
|
|
1730
|
+
readonly true: "border-ui-error-color focus-visible:border-ui-error-color focus-visible:ring-ui-error-color/20 text-ui-error-color";
|
|
1731
|
+
readonly false: "";
|
|
1732
|
+
};
|
|
1733
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
1734
|
+
size: {
|
|
1735
|
+
readonly sm: "h-spatial-ui-control-height-small px-spatial-ui-control-padding-x-small py-spatial-ui-control-padding-y-small text-14";
|
|
1736
|
+
readonly default: "h-spatial-ui-control-height-medium px-spatial-ui-control-padding-x-medium py-spatial-ui-control-padding-y-medium";
|
|
1737
|
+
readonly lg: "h-spatial-ui-control-height-large px-spatial-ui-control-padding-x-large py-spatial-ui-control-padding-y-large text-18";
|
|
1738
|
+
};
|
|
1739
|
+
error: {
|
|
1740
|
+
readonly true: "border-ui-error-color focus-visible:border-ui-error-color focus-visible:ring-ui-error-color/20 text-ui-error-color";
|
|
1741
|
+
readonly false: "";
|
|
1742
|
+
};
|
|
1743
|
+
}, {
|
|
1744
|
+
size: {
|
|
1745
|
+
readonly sm: "h-spatial-ui-control-height-small px-spatial-ui-control-padding-x-small py-spatial-ui-control-padding-y-small text-14";
|
|
1746
|
+
readonly default: "h-spatial-ui-control-height-medium px-spatial-ui-control-padding-x-medium py-spatial-ui-control-padding-y-medium";
|
|
1747
|
+
readonly lg: "h-spatial-ui-control-height-large px-spatial-ui-control-padding-x-large py-spatial-ui-control-padding-y-large text-18";
|
|
1748
|
+
};
|
|
1749
|
+
error: {
|
|
1750
|
+
readonly true: "border-ui-error-color focus-visible:border-ui-error-color focus-visible:ring-ui-error-color/20 text-ui-error-color";
|
|
1751
|
+
readonly false: "";
|
|
1752
|
+
};
|
|
1753
|
+
}>, unknown, unknown, undefined>>;
|
|
1754
|
+
/**
|
|
1755
|
+
* Select popup/menu variants
|
|
1756
|
+
*/
|
|
1757
|
+
declare const selectPopupVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
1758
|
+
/**
|
|
1759
|
+
* Select option/item variants based on Figma Menu Items
|
|
1760
|
+
*
|
|
1761
|
+
* States:
|
|
1762
|
+
* - Default: White background
|
|
1763
|
+
* - Hover/Highlighted: Light indigo tint background
|
|
1764
|
+
* - Selected: Stronger indigo tint with blue text and checkmark
|
|
1765
|
+
* - Disabled: Reduced opacity
|
|
1766
|
+
*/
|
|
1767
|
+
declare const selectOptionVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
1768
|
+
interface SelectProps<Value = string> extends Select$1.Root.Props<Value> {
|
|
1769
|
+
children: React$1.ReactNode;
|
|
1770
|
+
}
|
|
1771
|
+
declare const SelectRoot: <Value = string>({ children, ...props }: SelectProps<Value>) => react_jsx_runtime.JSX.Element;
|
|
1772
|
+
interface SelectTriggerProps extends Omit<React$1.ComponentProps<typeof Select$1.Trigger>, "className">, VariantProps<typeof selectTriggerVariants> {
|
|
1773
|
+
className?: string;
|
|
1774
|
+
placeholder?: string;
|
|
1775
|
+
}
|
|
1776
|
+
declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<SelectTriggerProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1777
|
+
interface SelectPopupProps extends Omit<React$1.ComponentProps<typeof Select$1.Popup>, "className"> {
|
|
1778
|
+
className?: string;
|
|
1779
|
+
}
|
|
1780
|
+
declare const SelectPopup: React$1.ForwardRefExoticComponent<Omit<SelectPopupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1781
|
+
interface SelectOptionProps extends Omit<React$1.ComponentProps<typeof Select$1.Item>, "className"> {
|
|
1782
|
+
className?: string;
|
|
1783
|
+
}
|
|
1784
|
+
declare const SelectOption: React$1.ForwardRefExoticComponent<Omit<SelectOptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1785
|
+
interface SelectGroupProps extends Omit<React$1.ComponentProps<typeof Select$1.Group>, "className"> {
|
|
1786
|
+
className?: string;
|
|
1787
|
+
}
|
|
1788
|
+
declare const SelectGroup: React$1.ForwardRefExoticComponent<Omit<SelectGroupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1789
|
+
interface SelectGroupLabelProps extends Omit<React$1.ComponentProps<typeof Select$1.GroupLabel>, "className"> {
|
|
1790
|
+
className?: string;
|
|
1791
|
+
}
|
|
1792
|
+
declare const SelectGroupLabel: React$1.ForwardRefExoticComponent<Omit<SelectGroupLabelProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1793
|
+
declare const Select: (<Value = string>({ children, ...props }: SelectProps<Value>) => react_jsx_runtime.JSX.Element) & {
|
|
1794
|
+
Trigger: React$1.ForwardRefExoticComponent<Omit<SelectTriggerProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1795
|
+
Popup: React$1.ForwardRefExoticComponent<Omit<SelectPopupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1796
|
+
Option: React$1.ForwardRefExoticComponent<Omit<SelectOptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1797
|
+
Group: React$1.ForwardRefExoticComponent<Omit<SelectGroupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1798
|
+
GroupLabel: React$1.ForwardRefExoticComponent<Omit<SelectGroupLabelProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1799
|
+
};
|
|
1800
|
+
|
|
1801
|
+
/**
|
|
1802
|
+
* Tooltip popup variants
|
|
1803
|
+
*
|
|
1804
|
+
* Uses semantic tokens for themeable styling:
|
|
1805
|
+
* - color.tooltip.bg - Dark background
|
|
1806
|
+
* - color.tooltip.text - Light text
|
|
1807
|
+
* - surface.tooltip.radius - Small border radius
|
|
1808
|
+
* - spatial.component.tooltip.padding-x/y - Consistent padding
|
|
1809
|
+
*/
|
|
1810
|
+
declare const tooltipPopupVariants: tailwind_variants.TVReturnType<{
|
|
1811
|
+
variant: {
|
|
1812
|
+
default: string;
|
|
1813
|
+
};
|
|
1814
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
1815
|
+
variant: {
|
|
1816
|
+
default: string;
|
|
1817
|
+
};
|
|
1818
|
+
}, {
|
|
1819
|
+
variant: {
|
|
1820
|
+
default: string;
|
|
1821
|
+
};
|
|
1822
|
+
}>, {
|
|
1823
|
+
variant: {
|
|
1824
|
+
default: string;
|
|
1825
|
+
};
|
|
1826
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
1827
|
+
variant: {
|
|
1828
|
+
default: string;
|
|
1829
|
+
};
|
|
1830
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
1831
|
+
variant: {
|
|
1832
|
+
default: string;
|
|
1833
|
+
};
|
|
1834
|
+
}, {
|
|
1835
|
+
variant: {
|
|
1836
|
+
default: string;
|
|
1837
|
+
};
|
|
1838
|
+
}>, unknown, unknown, undefined>>;
|
|
1839
|
+
/**
|
|
1840
|
+
* Tooltip arrow variants - uses shared floating arrow variants
|
|
1841
|
+
*/
|
|
1842
|
+
declare const tooltipArrowVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
1843
|
+
interface TooltipProviderProps extends Tooltip$1.Provider.Props {
|
|
1844
|
+
children: React$1.ReactNode;
|
|
1845
|
+
}
|
|
1846
|
+
/**
|
|
1847
|
+
* Tooltip Provider
|
|
1848
|
+
*
|
|
1849
|
+
* Manages shared delays across multiple tooltips.
|
|
1850
|
+
* Wrap your app or a section with this to enable tooltip delay grouping.
|
|
1851
|
+
*/
|
|
1852
|
+
declare const TooltipProvider: ({ children, ...props }: TooltipProviderProps) => react_jsx_runtime.JSX.Element;
|
|
1853
|
+
interface TooltipRootProps extends Tooltip$1.Root.Props {
|
|
1854
|
+
children: React$1.ReactNode;
|
|
1855
|
+
}
|
|
1856
|
+
/**
|
|
1857
|
+
* Tooltip Root
|
|
1858
|
+
*
|
|
1859
|
+
* Groups all tooltip parts. Does not render an element.
|
|
1860
|
+
*/
|
|
1861
|
+
declare const TooltipRoot: ({ children, ...props }: TooltipRootProps) => react_jsx_runtime.JSX.Element;
|
|
1862
|
+
interface TooltipTriggerProps extends React$1.ComponentProps<typeof Tooltip$1.Trigger> {
|
|
1863
|
+
className?: string;
|
|
1864
|
+
}
|
|
1865
|
+
/**
|
|
1866
|
+
* Tooltip Trigger
|
|
1867
|
+
*
|
|
1868
|
+
* The element that triggers the tooltip on hover/focus.
|
|
1869
|
+
* Renders as the child element with tooltip behavior attached.
|
|
1870
|
+
* When children is a single React element, uses `render` prop to avoid wrapper element.
|
|
1871
|
+
*/
|
|
1872
|
+
declare const TooltipTrigger: React$1.ForwardRefExoticComponent<Omit<TooltipTriggerProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1873
|
+
interface TooltipPortalProps extends Tooltip$1.Portal.Props {
|
|
1874
|
+
children: React$1.ReactNode;
|
|
1875
|
+
}
|
|
1876
|
+
/**
|
|
1877
|
+
* Tooltip Portal
|
|
1878
|
+
*
|
|
1879
|
+
* Renders the tooltip popup in a portal outside the DOM hierarchy.
|
|
1880
|
+
*/
|
|
1881
|
+
declare const TooltipPortal: ({ children, ...props }: TooltipPortalProps) => react_jsx_runtime.JSX.Element;
|
|
1882
|
+
interface TooltipPositionerProps extends Omit<React$1.ComponentProps<typeof Tooltip$1.Positioner>, "className"> {
|
|
1883
|
+
className?: string;
|
|
1884
|
+
}
|
|
1885
|
+
/**
|
|
1886
|
+
* Tooltip Positioner
|
|
1887
|
+
*
|
|
1888
|
+
* Positions the tooltip popup relative to the trigger.
|
|
1889
|
+
*/
|
|
1890
|
+
declare const TooltipPositioner: React$1.ForwardRefExoticComponent<Omit<TooltipPositionerProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1891
|
+
interface TooltipPopupProps extends Omit<React$1.ComponentProps<typeof Tooltip$1.Popup>, "className">, VariantProps<typeof tooltipPopupVariants> {
|
|
1892
|
+
className?: string;
|
|
1893
|
+
}
|
|
1894
|
+
/**
|
|
1895
|
+
* Tooltip Popup
|
|
1896
|
+
*
|
|
1897
|
+
* The tooltip content container with styled appearance.
|
|
1898
|
+
*/
|
|
1899
|
+
declare const TooltipPopup: React$1.ForwardRefExoticComponent<Omit<TooltipPopupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1900
|
+
interface TooltipArrowProps extends Omit<React$1.ComponentProps<typeof Tooltip$1.Arrow>, "className"> {
|
|
1901
|
+
className?: string;
|
|
1902
|
+
}
|
|
1903
|
+
/**
|
|
1904
|
+
* Tooltip Arrow
|
|
1905
|
+
*
|
|
1906
|
+
* Visual pointer element for the tooltip.
|
|
1907
|
+
* Uses shared FloatingArrowSvg with tooltip-bg color token.
|
|
1908
|
+
*/
|
|
1909
|
+
declare const TooltipArrow: React$1.ForwardRefExoticComponent<Omit<TooltipArrowProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1910
|
+
interface TooltipProps {
|
|
1911
|
+
/** The content to show in the tooltip */
|
|
1912
|
+
content: React$1.ReactNode;
|
|
1913
|
+
/** The element that triggers the tooltip */
|
|
1914
|
+
children: React$1.ReactNode;
|
|
1915
|
+
/** Side of the trigger to show the tooltip */
|
|
1916
|
+
side?: "top" | "bottom" | "left" | "right";
|
|
1917
|
+
/** Offset from the trigger */
|
|
1918
|
+
sideOffset?: number;
|
|
1919
|
+
/** Alignment along the side */
|
|
1920
|
+
align?: "start" | "center" | "end";
|
|
1921
|
+
/** Delay before showing the tooltip (ms) */
|
|
1922
|
+
delay?: number;
|
|
1923
|
+
/** Delay before hiding the tooltip (ms) */
|
|
1924
|
+
closeDelay?: number;
|
|
1925
|
+
/** Whether to show an arrow */
|
|
1926
|
+
showArrow?: boolean;
|
|
1927
|
+
/** Controlled open state */
|
|
1928
|
+
open?: boolean;
|
|
1929
|
+
/** Default open state */
|
|
1930
|
+
defaultOpen?: boolean;
|
|
1931
|
+
/** Callback when open state changes */
|
|
1932
|
+
onOpenChange?: (open: boolean) => void;
|
|
1933
|
+
/** Additional className for the popup */
|
|
1934
|
+
className?: string;
|
|
1935
|
+
}
|
|
1936
|
+
/**
|
|
1937
|
+
* Tooltip
|
|
1938
|
+
*
|
|
1939
|
+
* A simple, pre-composed tooltip component for common use cases.
|
|
1940
|
+
*
|
|
1941
|
+
* @example
|
|
1942
|
+
* ```tsx
|
|
1943
|
+
* <Tooltip content="Save your changes">
|
|
1944
|
+
* <Button>Save</Button>
|
|
1945
|
+
* </Tooltip>
|
|
1946
|
+
* ```
|
|
1947
|
+
*/
|
|
1948
|
+
declare const Tooltip: ({ content, children, side, sideOffset, align, delay, closeDelay, showArrow, open, defaultOpen, onOpenChange, className, }: TooltipProps) => react_jsx_runtime.JSX.Element;
|
|
1949
|
+
declare const TooltipParts: (({ children, ...props }: TooltipRootProps) => react_jsx_runtime.JSX.Element) & {
|
|
1950
|
+
Provider: ({ children, ...props }: TooltipProviderProps) => react_jsx_runtime.JSX.Element;
|
|
1951
|
+
Root: ({ children, ...props }: TooltipRootProps) => react_jsx_runtime.JSX.Element;
|
|
1952
|
+
Trigger: React$1.ForwardRefExoticComponent<Omit<TooltipTriggerProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1953
|
+
Portal: ({ children, ...props }: TooltipPortalProps) => react_jsx_runtime.JSX.Element;
|
|
1954
|
+
Positioner: React$1.ForwardRefExoticComponent<Omit<TooltipPositionerProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1955
|
+
Popup: React$1.ForwardRefExoticComponent<Omit<TooltipPopupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1956
|
+
Arrow: React$1.ForwardRefExoticComponent<Omit<TooltipArrowProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
1957
|
+
};
|
|
1958
|
+
|
|
1959
|
+
interface DevToolbarProps {
|
|
1960
|
+
defaultExpanded?: boolean;
|
|
1961
|
+
}
|
|
1962
|
+
declare function DevToolbar({ defaultExpanded }: DevToolbarProps): react_jsx_runtime.JSX.Element;
|
|
1963
|
+
|
|
1964
|
+
interface GridOverlayProps {
|
|
1965
|
+
columnOpacity?: number;
|
|
1966
|
+
borderOpacity?: number;
|
|
1967
|
+
visible?: boolean;
|
|
1968
|
+
}
|
|
1969
|
+
declare function GridOverlay({ columnOpacity, borderOpacity, visible, }: GridOverlayProps): react_jsx_runtime.JSX.Element;
|
|
1970
|
+
|
|
1971
|
+
declare const cardVariants: tailwind_variants.TVReturnType<{
|
|
1972
|
+
layout: {
|
|
1973
|
+
vertical: string;
|
|
1974
|
+
horizontal: string;
|
|
1975
|
+
/**
|
|
1976
|
+
* Overlay layout - content sits on top of full-bleed background.
|
|
1977
|
+
* Use with Background components for images/gradients.
|
|
1978
|
+
*/
|
|
1979
|
+
overlay: string;
|
|
1980
|
+
};
|
|
1981
|
+
}, undefined, "relative flex overflow-hidden rounded-surface-card bg-card-background stroke-surface-card border-border-subtle border-solid", tailwind_variants_dist_config_js.TVConfig<{
|
|
1982
|
+
layout: {
|
|
1983
|
+
vertical: string;
|
|
1984
|
+
horizontal: string;
|
|
1985
|
+
/**
|
|
1986
|
+
* Overlay layout - content sits on top of full-bleed background.
|
|
1987
|
+
* Use with Background components for images/gradients.
|
|
1988
|
+
*/
|
|
1989
|
+
overlay: string;
|
|
1990
|
+
};
|
|
1991
|
+
}, {
|
|
1992
|
+
layout: {
|
|
1993
|
+
vertical: string;
|
|
1994
|
+
horizontal: string;
|
|
1995
|
+
/**
|
|
1996
|
+
* Overlay layout - content sits on top of full-bleed background.
|
|
1997
|
+
* Use with Background components for images/gradients.
|
|
1998
|
+
*/
|
|
1999
|
+
overlay: string;
|
|
2000
|
+
};
|
|
2001
|
+
}>, {
|
|
2002
|
+
layout: {
|
|
2003
|
+
vertical: string;
|
|
2004
|
+
horizontal: string;
|
|
2005
|
+
/**
|
|
2006
|
+
* Overlay layout - content sits on top of full-bleed background.
|
|
2007
|
+
* Use with Background components for images/gradients.
|
|
2008
|
+
*/
|
|
2009
|
+
overlay: string;
|
|
2010
|
+
};
|
|
2011
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
2012
|
+
layout: {
|
|
2013
|
+
vertical: string;
|
|
2014
|
+
horizontal: string;
|
|
2015
|
+
/**
|
|
2016
|
+
* Overlay layout - content sits on top of full-bleed background.
|
|
2017
|
+
* Use with Background components for images/gradients.
|
|
2018
|
+
*/
|
|
2019
|
+
overlay: string;
|
|
2020
|
+
};
|
|
2021
|
+
}, undefined, "relative flex overflow-hidden rounded-surface-card bg-card-background stroke-surface-card border-border-subtle border-solid", tailwind_variants_dist_config_js.TVConfig<{
|
|
2022
|
+
layout: {
|
|
2023
|
+
vertical: string;
|
|
2024
|
+
horizontal: string;
|
|
2025
|
+
/**
|
|
2026
|
+
* Overlay layout - content sits on top of full-bleed background.
|
|
2027
|
+
* Use with Background components for images/gradients.
|
|
2028
|
+
*/
|
|
2029
|
+
overlay: string;
|
|
2030
|
+
};
|
|
2031
|
+
}, {
|
|
2032
|
+
layout: {
|
|
2033
|
+
vertical: string;
|
|
2034
|
+
horizontal: string;
|
|
2035
|
+
/**
|
|
2036
|
+
* Overlay layout - content sits on top of full-bleed background.
|
|
2037
|
+
* Use with Background components for images/gradients.
|
|
2038
|
+
*/
|
|
2039
|
+
overlay: string;
|
|
2040
|
+
};
|
|
2041
|
+
}>, unknown, unknown, undefined>>;
|
|
2042
|
+
interface CardProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
|
|
2043
|
+
}
|
|
2044
|
+
/**
|
|
2045
|
+
* Card component for displaying content in a contained, scannable format.
|
|
2046
|
+
*
|
|
2047
|
+
* Layouts:
|
|
2048
|
+
* - vertical: Image on top, content below (default)
|
|
2049
|
+
* - horizontal: Image on left, content on right
|
|
2050
|
+
* - overlay: Full-bleed background with content on top
|
|
2051
|
+
*
|
|
2052
|
+
* Use with CardImage, CardContent, CardEyebrow, CardTitle, CardDescription, and CardActions.
|
|
2053
|
+
* For overlay layout, use Background components for full-bleed backgrounds.
|
|
2054
|
+
*/
|
|
2055
|
+
declare const Card: React$1.ForwardRefExoticComponent<CardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2056
|
+
interface CardImageProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2057
|
+
/**
|
|
2058
|
+
* The image source URL
|
|
2059
|
+
*/
|
|
2060
|
+
src?: string;
|
|
2061
|
+
/**
|
|
2062
|
+
* Alt text for the image
|
|
2063
|
+
*/
|
|
2064
|
+
alt?: string;
|
|
2065
|
+
}
|
|
2066
|
+
/**
|
|
2067
|
+
* Card image area. For vertical layout, displays with 16:9 aspect ratio.
|
|
2068
|
+
* For horizontal layout, takes up ~40% width and stretches to content height.
|
|
2069
|
+
*/
|
|
2070
|
+
declare const CardImage: React$1.ForwardRefExoticComponent<CardImageProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2071
|
+
declare const cardContentVariants: tailwind_variants.TVReturnType<{
|
|
2072
|
+
/**
|
|
2073
|
+
* Vertical alignment of content within the card.
|
|
2074
|
+
* Useful for overlay layouts to position content at top/center/bottom.
|
|
2075
|
+
*/
|
|
2076
|
+
justify: {
|
|
2077
|
+
start: string;
|
|
2078
|
+
center: string;
|
|
2079
|
+
end: string;
|
|
2080
|
+
};
|
|
2081
|
+
}, undefined, "flex w-full flex-1 flex-col gap-spatial-card-large-gap p-spatial-card-large-padding", tailwind_variants_dist_config_js.TVConfig<{
|
|
2082
|
+
/**
|
|
2083
|
+
* Vertical alignment of content within the card.
|
|
2084
|
+
* Useful for overlay layouts to position content at top/center/bottom.
|
|
2085
|
+
*/
|
|
2086
|
+
justify: {
|
|
2087
|
+
start: string;
|
|
2088
|
+
center: string;
|
|
2089
|
+
end: string;
|
|
2090
|
+
};
|
|
2091
|
+
}, {
|
|
2092
|
+
/**
|
|
2093
|
+
* Vertical alignment of content within the card.
|
|
2094
|
+
* Useful for overlay layouts to position content at top/center/bottom.
|
|
2095
|
+
*/
|
|
2096
|
+
justify: {
|
|
2097
|
+
start: string;
|
|
2098
|
+
center: string;
|
|
2099
|
+
end: string;
|
|
2100
|
+
};
|
|
2101
|
+
}>, {
|
|
2102
|
+
/**
|
|
2103
|
+
* Vertical alignment of content within the card.
|
|
2104
|
+
* Useful for overlay layouts to position content at top/center/bottom.
|
|
2105
|
+
*/
|
|
2106
|
+
justify: {
|
|
2107
|
+
start: string;
|
|
2108
|
+
center: string;
|
|
2109
|
+
end: string;
|
|
2110
|
+
};
|
|
2111
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
2112
|
+
/**
|
|
2113
|
+
* Vertical alignment of content within the card.
|
|
2114
|
+
* Useful for overlay layouts to position content at top/center/bottom.
|
|
2115
|
+
*/
|
|
2116
|
+
justify: {
|
|
2117
|
+
start: string;
|
|
2118
|
+
center: string;
|
|
2119
|
+
end: string;
|
|
2120
|
+
};
|
|
2121
|
+
}, undefined, "flex w-full flex-1 flex-col gap-spatial-card-large-gap p-spatial-card-large-padding", tailwind_variants_dist_config_js.TVConfig<{
|
|
2122
|
+
/**
|
|
2123
|
+
* Vertical alignment of content within the card.
|
|
2124
|
+
* Useful for overlay layouts to position content at top/center/bottom.
|
|
2125
|
+
*/
|
|
2126
|
+
justify: {
|
|
2127
|
+
start: string;
|
|
2128
|
+
center: string;
|
|
2129
|
+
end: string;
|
|
2130
|
+
};
|
|
2131
|
+
}, {
|
|
2132
|
+
/**
|
|
2133
|
+
* Vertical alignment of content within the card.
|
|
2134
|
+
* Useful for overlay layouts to position content at top/center/bottom.
|
|
2135
|
+
*/
|
|
2136
|
+
justify: {
|
|
2137
|
+
start: string;
|
|
2138
|
+
center: string;
|
|
2139
|
+
end: string;
|
|
2140
|
+
};
|
|
2141
|
+
}>, unknown, unknown, undefined>>;
|
|
2142
|
+
interface CardContentProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardContentVariants> {
|
|
2143
|
+
}
|
|
2144
|
+
/**
|
|
2145
|
+
* Card content container with proper padding and spacing.
|
|
2146
|
+
* Uses spatial card tokens for consistent sizing.
|
|
2147
|
+
* For overlay layout, add `relative z-10` to ensure content sits above background.
|
|
2148
|
+
*
|
|
2149
|
+
* @example
|
|
2150
|
+
* ```tsx
|
|
2151
|
+
* // Content at bottom of overlay card
|
|
2152
|
+
* <Card layout="overlay">
|
|
2153
|
+
* <Background.Image src="/hero.jpg" />
|
|
2154
|
+
* <CardContent justify="end" className="relative z-10">
|
|
2155
|
+
* <CardTitle>Title</CardTitle>
|
|
2156
|
+
* </CardContent>
|
|
2157
|
+
* </Card>
|
|
2158
|
+
* ```
|
|
2159
|
+
*/
|
|
2160
|
+
declare const CardContent: React$1.ForwardRefExoticComponent<CardContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2161
|
+
interface CardEyebrowProps extends React$1.HTMLAttributes<HTMLParagraphElement> {
|
|
2162
|
+
}
|
|
2163
|
+
/**
|
|
2164
|
+
* Optional eyebrow text above the card title.
|
|
2165
|
+
*/
|
|
2166
|
+
declare const CardEyebrow: React$1.ForwardRefExoticComponent<CardEyebrowProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
2167
|
+
interface CardTitleProps extends React$1.HTMLAttributes<HTMLHeadingElement> {
|
|
2168
|
+
/**
|
|
2169
|
+
* The heading level to render (h1-h6). Defaults to h3.
|
|
2170
|
+
*/
|
|
2171
|
+
as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
2172
|
+
}
|
|
2173
|
+
/**
|
|
2174
|
+
* Card title/heading. Use the `as` prop to change the heading level.
|
|
2175
|
+
*/
|
|
2176
|
+
declare const CardTitle: React$1.ForwardRefExoticComponent<CardTitleProps & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
2177
|
+
interface CardDescriptionProps extends React$1.HTMLAttributes<HTMLParagraphElement> {
|
|
2178
|
+
}
|
|
2179
|
+
/**
|
|
2180
|
+
* Card body/description text.
|
|
2181
|
+
*/
|
|
2182
|
+
declare const CardDescription: React$1.ForwardRefExoticComponent<CardDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
2183
|
+
interface CardBodyProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2184
|
+
}
|
|
2185
|
+
/**
|
|
2186
|
+
* Container for card text content (eyebrow, title, description).
|
|
2187
|
+
* Uses spatial card tokens for consistent sizing.
|
|
2188
|
+
*/
|
|
2189
|
+
declare const CardBody: React$1.ForwardRefExoticComponent<CardBodyProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2190
|
+
interface CardActionsProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2191
|
+
}
|
|
2192
|
+
/**
|
|
2193
|
+
* Container for card action buttons.
|
|
2194
|
+
* Uses primitive spacing tokens.
|
|
2195
|
+
*/
|
|
2196
|
+
declare const CardActions: React$1.ForwardRefExoticComponent<CardActionsProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2197
|
+
|
|
2198
|
+
interface NavbarProps extends React$1.HTMLAttributes<HTMLElement> {
|
|
2199
|
+
}
|
|
2200
|
+
/**
|
|
2201
|
+
* Main navigation bar container.
|
|
2202
|
+
* Provides responsive layout for brand, links, and actions.
|
|
2203
|
+
*/
|
|
2204
|
+
declare const Navbar: React$1.ForwardRefExoticComponent<NavbarProps & React$1.RefAttributes<HTMLElement>>;
|
|
2205
|
+
interface NavbarBrandProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2206
|
+
asChild?: boolean;
|
|
2207
|
+
}
|
|
2208
|
+
/**
|
|
2209
|
+
* Brand/logo area of the navbar.
|
|
2210
|
+
* Use asChild to render as a link.
|
|
2211
|
+
*/
|
|
2212
|
+
declare const NavbarBrand: React$1.ForwardRefExoticComponent<NavbarBrandProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2213
|
+
interface NavbarLinksProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2214
|
+
}
|
|
2215
|
+
/**
|
|
2216
|
+
* Container for navigation links.
|
|
2217
|
+
* Centers links on desktop, hidden on mobile (use NavbarMobileMenu instead).
|
|
2218
|
+
*/
|
|
2219
|
+
declare const NavbarLinks: React$1.ForwardRefExoticComponent<NavbarLinksProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2220
|
+
interface NavbarLinkProps extends React$1.AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
2221
|
+
asChild?: boolean;
|
|
2222
|
+
active?: boolean;
|
|
2223
|
+
}
|
|
2224
|
+
/**
|
|
2225
|
+
* Individual navigation link.
|
|
2226
|
+
* Use asChild to render with a router Link component.
|
|
2227
|
+
*/
|
|
2228
|
+
declare const NavbarLink: React$1.ForwardRefExoticComponent<NavbarLinkProps & React$1.RefAttributes<HTMLAnchorElement>>;
|
|
2229
|
+
interface NavbarActionsProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2230
|
+
}
|
|
2231
|
+
/**
|
|
2232
|
+
* Container for navbar action items (search, menu button, etc).
|
|
2233
|
+
*/
|
|
2234
|
+
declare const NavbarActions: React$1.ForwardRefExoticComponent<NavbarActionsProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2235
|
+
interface NavbarMobileMenuProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2236
|
+
}
|
|
2237
|
+
/**
|
|
2238
|
+
* Mobile menu container that displays navigation links on mobile devices.
|
|
2239
|
+
* Hidden on desktop (md and above). Should be used with NavbarMobileMenuButton.
|
|
2240
|
+
* Built on Base UI Dialog for accessibility (focus trap, escape key, click-outside).
|
|
2241
|
+
*/
|
|
2242
|
+
declare const NavbarMobileMenu: React$1.ForwardRefExoticComponent<NavbarMobileMenuProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2243
|
+
interface NavbarMobileMenuButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
2244
|
+
asChild?: boolean;
|
|
2245
|
+
}
|
|
2246
|
+
/**
|
|
2247
|
+
* Button to toggle the mobile menu.
|
|
2248
|
+
* Should be placed in NavbarActions on mobile.
|
|
2249
|
+
* Use asChild to render as a custom button component (e.g., IconButton).
|
|
2250
|
+
*/
|
|
2251
|
+
declare const NavbarMobileMenuButton: React$1.ForwardRefExoticComponent<NavbarMobileMenuButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
2252
|
+
interface NavbarMobileMenuLinkProps extends React$1.AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
2253
|
+
asChild?: boolean;
|
|
2254
|
+
active?: boolean;
|
|
2255
|
+
}
|
|
2256
|
+
/**
|
|
2257
|
+
* Navigation link for the mobile menu.
|
|
2258
|
+
* Automatically closes the mobile menu when clicked.
|
|
2259
|
+
* Use asChild to render with a router Link component.
|
|
2260
|
+
*/
|
|
2261
|
+
declare const NavbarMobileMenuLink: React$1.ForwardRefExoticComponent<NavbarMobileMenuLinkProps & React$1.RefAttributes<HTMLAnchorElement>>;
|
|
2262
|
+
|
|
2263
|
+
declare const usGovBannerVariants: tailwind_variants.TVReturnType<{
|
|
2264
|
+
variant: {
|
|
2265
|
+
default: {
|
|
2266
|
+
root: string;
|
|
2267
|
+
content: string;
|
|
2268
|
+
text: string;
|
|
2269
|
+
};
|
|
2270
|
+
inverted: {
|
|
2271
|
+
root: string;
|
|
2272
|
+
content: string;
|
|
2273
|
+
text: string;
|
|
2274
|
+
};
|
|
2275
|
+
};
|
|
2276
|
+
}, {
|
|
2277
|
+
root: string;
|
|
2278
|
+
content: string;
|
|
2279
|
+
text: string;
|
|
2280
|
+
}, undefined, tailwind_variants_dist_config_js.TVConfig<{
|
|
2281
|
+
variant: {
|
|
2282
|
+
default: {
|
|
2283
|
+
root: string;
|
|
2284
|
+
content: string;
|
|
2285
|
+
text: string;
|
|
2286
|
+
};
|
|
2287
|
+
inverted: {
|
|
2288
|
+
root: string;
|
|
2289
|
+
content: string;
|
|
2290
|
+
text: string;
|
|
2291
|
+
};
|
|
2292
|
+
};
|
|
2293
|
+
}, {
|
|
2294
|
+
variant: {
|
|
2295
|
+
default: {
|
|
2296
|
+
root: string;
|
|
2297
|
+
content: string;
|
|
2298
|
+
text: string;
|
|
2299
|
+
};
|
|
2300
|
+
inverted: {
|
|
2301
|
+
root: string;
|
|
2302
|
+
content: string;
|
|
2303
|
+
text: string;
|
|
2304
|
+
};
|
|
2305
|
+
};
|
|
2306
|
+
}>, {
|
|
2307
|
+
variant: {
|
|
2308
|
+
default: {
|
|
2309
|
+
root: string;
|
|
2310
|
+
content: string;
|
|
2311
|
+
text: string;
|
|
2312
|
+
};
|
|
2313
|
+
inverted: {
|
|
2314
|
+
root: string;
|
|
2315
|
+
content: string;
|
|
2316
|
+
text: string;
|
|
2317
|
+
};
|
|
2318
|
+
};
|
|
2319
|
+
}, {
|
|
2320
|
+
root: string;
|
|
2321
|
+
content: string;
|
|
2322
|
+
text: string;
|
|
2323
|
+
}, tailwind_variants.TVReturnType<{
|
|
2324
|
+
variant: {
|
|
2325
|
+
default: {
|
|
2326
|
+
root: string;
|
|
2327
|
+
content: string;
|
|
2328
|
+
text: string;
|
|
2329
|
+
};
|
|
2330
|
+
inverted: {
|
|
2331
|
+
root: string;
|
|
2332
|
+
content: string;
|
|
2333
|
+
text: string;
|
|
2334
|
+
};
|
|
2335
|
+
};
|
|
2336
|
+
}, {
|
|
2337
|
+
root: string;
|
|
2338
|
+
content: string;
|
|
2339
|
+
text: string;
|
|
2340
|
+
}, undefined, tailwind_variants_dist_config_js.TVConfig<{
|
|
2341
|
+
variant: {
|
|
2342
|
+
default: {
|
|
2343
|
+
root: string;
|
|
2344
|
+
content: string;
|
|
2345
|
+
text: string;
|
|
2346
|
+
};
|
|
2347
|
+
inverted: {
|
|
2348
|
+
root: string;
|
|
2349
|
+
content: string;
|
|
2350
|
+
text: string;
|
|
2351
|
+
};
|
|
2352
|
+
};
|
|
2353
|
+
}, {
|
|
2354
|
+
variant: {
|
|
2355
|
+
default: {
|
|
2356
|
+
root: string;
|
|
2357
|
+
content: string;
|
|
2358
|
+
text: string;
|
|
2359
|
+
};
|
|
2360
|
+
inverted: {
|
|
2361
|
+
root: string;
|
|
2362
|
+
content: string;
|
|
2363
|
+
text: string;
|
|
2364
|
+
};
|
|
2365
|
+
};
|
|
2366
|
+
}>, unknown, unknown, undefined>>;
|
|
2367
|
+
interface USGovBannerProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof usGovBannerVariants> {
|
|
2368
|
+
/**
|
|
2369
|
+
* Custom flag icon element. Defaults to a US flag SVG.
|
|
2370
|
+
*/
|
|
2371
|
+
flagIcon?: React$1.ReactNode;
|
|
2372
|
+
/**
|
|
2373
|
+
* Banner text content
|
|
2374
|
+
* @default "An official website of the United States government"
|
|
2375
|
+
*/
|
|
2376
|
+
text?: string;
|
|
2377
|
+
}
|
|
2378
|
+
/**
|
|
2379
|
+
* US Government official website banner.
|
|
2380
|
+
* Displays the official government website notice with flag icon.
|
|
2381
|
+
* Commonly placed at the very top of government websites.
|
|
2382
|
+
*
|
|
2383
|
+
* Variants:
|
|
2384
|
+
* - default: Light background with dark text (for light pages)
|
|
2385
|
+
* - inverted: Transparent background with white text/flag (for dark backgrounds/heroes)
|
|
2386
|
+
*
|
|
2387
|
+
* @example
|
|
2388
|
+
* ```tsx
|
|
2389
|
+
* // Default (light)
|
|
2390
|
+
* <USGovBanner />
|
|
2391
|
+
*
|
|
2392
|
+
* // Inverted (for dark backgrounds)
|
|
2393
|
+
* <USGovBanner variant="inverted" />
|
|
2394
|
+
* ```
|
|
2395
|
+
*/
|
|
2396
|
+
declare const USGovBanner: React$1.ForwardRefExoticComponent<USGovBannerProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2397
|
+
|
|
2398
|
+
/**
|
|
2399
|
+
* Banner component based on Figma BaseKit / Banners
|
|
2400
|
+
*
|
|
2401
|
+
* Used to surface short, important updates or a single key action
|
|
2402
|
+
* without disrupting the main page content.
|
|
2403
|
+
*
|
|
2404
|
+
* Responsive behavior using 24-column grid:
|
|
2405
|
+
* - Mobile (sm): Stacked layout, 20px horizontal / 32px vertical padding
|
|
2406
|
+
* - Tablet (md): Horizontal layout, 56px padding
|
|
2407
|
+
* - Desktop (lg): Horizontal layout, 72px padding
|
|
2408
|
+
*
|
|
2409
|
+
* Must be placed inside a `grid-container`. Uses `col-full` to span all columns.
|
|
2410
|
+
*/
|
|
2411
|
+
declare const bannerVariants: tailwind_variants.TVReturnType<{
|
|
2412
|
+
colorScheme: {
|
|
2413
|
+
light: string;
|
|
2414
|
+
dark: string;
|
|
2415
|
+
};
|
|
2416
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
2417
|
+
colorScheme: {
|
|
2418
|
+
light: string;
|
|
2419
|
+
dark: string;
|
|
2420
|
+
};
|
|
2421
|
+
}, {
|
|
2422
|
+
colorScheme: {
|
|
2423
|
+
light: string;
|
|
2424
|
+
dark: string;
|
|
2425
|
+
};
|
|
2426
|
+
}>, {
|
|
2427
|
+
colorScheme: {
|
|
2428
|
+
light: string;
|
|
2429
|
+
dark: string;
|
|
2430
|
+
};
|
|
2431
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
2432
|
+
colorScheme: {
|
|
2433
|
+
light: string;
|
|
2434
|
+
dark: string;
|
|
2435
|
+
};
|
|
2436
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
2437
|
+
colorScheme: {
|
|
2438
|
+
light: string;
|
|
2439
|
+
dark: string;
|
|
2440
|
+
};
|
|
2441
|
+
}, {
|
|
2442
|
+
colorScheme: {
|
|
2443
|
+
light: string;
|
|
2444
|
+
dark: string;
|
|
2445
|
+
};
|
|
2446
|
+
}>, unknown, unknown, undefined>>;
|
|
2447
|
+
interface BannerProps extends React$1.HTMLAttributes<HTMLElement>, VariantProps<typeof bannerVariants> {
|
|
2448
|
+
/**
|
|
2449
|
+
* The heading text displayed in the banner
|
|
2450
|
+
*/
|
|
2451
|
+
heading: string;
|
|
2452
|
+
/**
|
|
2453
|
+
* The description text displayed below the heading
|
|
2454
|
+
*/
|
|
2455
|
+
description: string;
|
|
2456
|
+
/**
|
|
2457
|
+
* Optional action element (typically a Button component)
|
|
2458
|
+
*/
|
|
2459
|
+
action?: React$1.ReactNode;
|
|
2460
|
+
}
|
|
2461
|
+
/**
|
|
2462
|
+
* Banner component for surfacing important updates or CTAs.
|
|
2463
|
+
*
|
|
2464
|
+
* Uses the 24-column grid system - must be placed inside a `grid-container`.
|
|
2465
|
+
* Spans full width with `col-full`.
|
|
2466
|
+
*
|
|
2467
|
+
* Responsive across breakpoints:
|
|
2468
|
+
* - Mobile: Stacked layout with smaller padding
|
|
2469
|
+
* - Tablet: Horizontal layout with medium padding
|
|
2470
|
+
* - Desktop: Horizontal layout with larger padding
|
|
2471
|
+
*
|
|
2472
|
+
* @example
|
|
2473
|
+
* ```tsx
|
|
2474
|
+
* <div className="grid-container">
|
|
2475
|
+
* <Banner
|
|
2476
|
+
* heading="Important Update"
|
|
2477
|
+
* description="Check out our new features."
|
|
2478
|
+
* action={<Button>Learn More</Button>}
|
|
2479
|
+
* />
|
|
2480
|
+
* </div>
|
|
2481
|
+
*
|
|
2482
|
+
* // Dark colorScheme
|
|
2483
|
+
* <Banner
|
|
2484
|
+
* colorScheme="dark"
|
|
2485
|
+
* heading="Still Have Questions?"
|
|
2486
|
+
* description="Contact us at support@example.com"
|
|
2487
|
+
* action={<Button variant="secondary">Email Us</Button>}
|
|
2488
|
+
* />
|
|
2489
|
+
* ```
|
|
2490
|
+
*/
|
|
2491
|
+
declare const Banner: React$1.ForwardRefExoticComponent<BannerProps & React$1.RefAttributes<HTMLElement>>;
|
|
2492
|
+
|
|
2493
|
+
/**
|
|
2494
|
+
* CardGrid component for displaying cards in a responsive grid layout
|
|
2495
|
+
*
|
|
2496
|
+
* Variants:
|
|
2497
|
+
* - A: 3 columns on desktop, 2 on tablet, 1 on mobile
|
|
2498
|
+
* - B: 2 columns on desktop/tablet, 1 on mobile
|
|
2499
|
+
*
|
|
2500
|
+
* Uses the 24-column grid system with grid-container as root.
|
|
2501
|
+
*/
|
|
2502
|
+
declare const cardGridVariants: tailwind_variants.TVReturnType<{
|
|
2503
|
+
variant: {
|
|
2504
|
+
A: string;
|
|
2505
|
+
B: string;
|
|
2506
|
+
};
|
|
2507
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
2508
|
+
variant: {
|
|
2509
|
+
A: string;
|
|
2510
|
+
B: string;
|
|
2511
|
+
};
|
|
2512
|
+
}, {
|
|
2513
|
+
variant: {
|
|
2514
|
+
A: string;
|
|
2515
|
+
B: string;
|
|
2516
|
+
};
|
|
2517
|
+
}>, {
|
|
2518
|
+
variant: {
|
|
2519
|
+
A: string;
|
|
2520
|
+
B: string;
|
|
2521
|
+
};
|
|
2522
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
2523
|
+
variant: {
|
|
2524
|
+
A: string;
|
|
2525
|
+
B: string;
|
|
2526
|
+
};
|
|
2527
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
2528
|
+
variant: {
|
|
2529
|
+
A: string;
|
|
2530
|
+
B: string;
|
|
2531
|
+
};
|
|
2532
|
+
}, {
|
|
2533
|
+
variant: {
|
|
2534
|
+
A: string;
|
|
2535
|
+
B: string;
|
|
2536
|
+
};
|
|
2537
|
+
}>, unknown, unknown, undefined>>;
|
|
2538
|
+
interface CardGridProps extends React$1.HTMLAttributes<HTMLElement>, VariantProps<typeof cardGridVariants> {
|
|
2539
|
+
/**
|
|
2540
|
+
* The title text displayed above the cards
|
|
2541
|
+
*/
|
|
2542
|
+
title: string;
|
|
2543
|
+
/**
|
|
2544
|
+
* The card elements to display in the grid
|
|
2545
|
+
*/
|
|
2546
|
+
cards: React$1.ReactNode[];
|
|
2547
|
+
}
|
|
2548
|
+
/**
|
|
2549
|
+
* CardGrid component for displaying cards in a responsive grid layout.
|
|
2550
|
+
*
|
|
2551
|
+
* Uses the 24-column grid system with grid-container as root.
|
|
2552
|
+
*
|
|
2553
|
+
* Layout (Variant A):
|
|
2554
|
+
* - Mobile (sm): Single column, py-72
|
|
2555
|
+
* - Tablet (md): 2 columns, gap-56 between title and cards, gap-y-20 between cards
|
|
2556
|
+
* - Desktop (lg+): 3 columns, py-128, gap-64 between title and cards, gap-y-20 between cards
|
|
2557
|
+
*
|
|
2558
|
+
* Layout (Variant B):
|
|
2559
|
+
* - Mobile (sm): Single column, py-72
|
|
2560
|
+
* - Tablet (md): 2 columns, gap-56 between title and cards, gap-y-20 between cards
|
|
2561
|
+
* - Desktop (lg+): 2 columns, py-128, gap-64 between title and cards, gap-y-20 between cards
|
|
2562
|
+
*
|
|
2563
|
+
* @example
|
|
2564
|
+
* ```tsx
|
|
2565
|
+
* <CardGrid
|
|
2566
|
+
* variant="A"
|
|
2567
|
+
* title="Featured Cards"
|
|
2568
|
+
* cards={[
|
|
2569
|
+
* <Card key="1">...</Card>,
|
|
2570
|
+
* <Card key="2">...</Card>,
|
|
2571
|
+
* ]}
|
|
2572
|
+
* />
|
|
2573
|
+
* ```
|
|
2574
|
+
*/
|
|
2575
|
+
declare const CardGrid: React$1.ForwardRefExoticComponent<CardGridProps & React$1.RefAttributes<HTMLElement>>;
|
|
2576
|
+
|
|
2577
|
+
/**
|
|
2578
|
+
* TwoColumnSection component for text-heavy content sections
|
|
2579
|
+
*
|
|
2580
|
+
* Layout:
|
|
2581
|
+
* - Desktop (lg+): Title left, content right with border-top divider
|
|
2582
|
+
* - Mobile/Tablet: Stacked vertically
|
|
2583
|
+
*
|
|
2584
|
+
* Uses the 24-column grid system.
|
|
2585
|
+
*/
|
|
2586
|
+
declare const twoColumnSectionVariants: tailwind_variants.TVReturnType<{
|
|
2587
|
+
colorScheme: {
|
|
2588
|
+
dark: string;
|
|
2589
|
+
light: string;
|
|
2590
|
+
};
|
|
2591
|
+
layout: {
|
|
2592
|
+
asymmetric: string;
|
|
2593
|
+
equal: string;
|
|
2594
|
+
};
|
|
2595
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
2596
|
+
colorScheme: {
|
|
2597
|
+
dark: string;
|
|
2598
|
+
light: string;
|
|
2599
|
+
};
|
|
2600
|
+
layout: {
|
|
2601
|
+
asymmetric: string;
|
|
2602
|
+
equal: string;
|
|
2603
|
+
};
|
|
2604
|
+
}, {
|
|
2605
|
+
colorScheme: {
|
|
2606
|
+
dark: string;
|
|
2607
|
+
light: string;
|
|
2608
|
+
};
|
|
2609
|
+
layout: {
|
|
2610
|
+
asymmetric: string;
|
|
2611
|
+
equal: string;
|
|
2612
|
+
};
|
|
2613
|
+
}>, {
|
|
2614
|
+
colorScheme: {
|
|
2615
|
+
dark: string;
|
|
2616
|
+
light: string;
|
|
2617
|
+
};
|
|
2618
|
+
layout: {
|
|
2619
|
+
asymmetric: string;
|
|
2620
|
+
equal: string;
|
|
2621
|
+
};
|
|
2622
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
2623
|
+
colorScheme: {
|
|
2624
|
+
dark: string;
|
|
2625
|
+
light: string;
|
|
2626
|
+
};
|
|
2627
|
+
layout: {
|
|
2628
|
+
asymmetric: string;
|
|
2629
|
+
equal: string;
|
|
2630
|
+
};
|
|
2631
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
2632
|
+
colorScheme: {
|
|
2633
|
+
dark: string;
|
|
2634
|
+
light: string;
|
|
2635
|
+
};
|
|
2636
|
+
layout: {
|
|
2637
|
+
asymmetric: string;
|
|
2638
|
+
equal: string;
|
|
2639
|
+
};
|
|
2640
|
+
}, {
|
|
2641
|
+
colorScheme: {
|
|
2642
|
+
dark: string;
|
|
2643
|
+
light: string;
|
|
2644
|
+
};
|
|
2645
|
+
layout: {
|
|
2646
|
+
asymmetric: string;
|
|
2647
|
+
equal: string;
|
|
2648
|
+
};
|
|
2649
|
+
}>, unknown, unknown, undefined>>;
|
|
2650
|
+
interface TwoColumnSectionProps extends React$1.HTMLAttributes<HTMLElement>, VariantProps<typeof twoColumnSectionVariants> {
|
|
2651
|
+
/**
|
|
2652
|
+
* The title text displayed in the left column
|
|
2653
|
+
*/
|
|
2654
|
+
title: string;
|
|
2655
|
+
/**
|
|
2656
|
+
* Lead content - prominently styled (brighter text)
|
|
2657
|
+
* Can be a string or ReactNode for rich content
|
|
2658
|
+
*/
|
|
2659
|
+
lead?: React$1.ReactNode;
|
|
2660
|
+
/**
|
|
2661
|
+
* Body content - secondary styled (muted text)
|
|
2662
|
+
* Can be a string or ReactNode for rich content
|
|
2663
|
+
*/
|
|
2664
|
+
children: React$1.ReactNode;
|
|
2665
|
+
/**
|
|
2666
|
+
* Layout style for the columns
|
|
2667
|
+
* - "asymmetric" (default): Uses 24-column grid with ~40/60 split (title: 9, content: 15)
|
|
2668
|
+
* - "equal": Simple 2-column equal-width layout at md+ breakpoints
|
|
2669
|
+
*/
|
|
2670
|
+
layout?: "asymmetric" | "equal";
|
|
2671
|
+
}
|
|
2672
|
+
/**
|
|
2673
|
+
* TwoColumnSection component for text-heavy content with title/content split.
|
|
2674
|
+
*
|
|
2675
|
+
* Layout:
|
|
2676
|
+
* - Mobile/Tablet: Stacked (title above content)
|
|
2677
|
+
* - Desktop (lg+): Title left (~40%), Content right (~60%)
|
|
2678
|
+
*
|
|
2679
|
+
* @example
|
|
2680
|
+
* ```tsx
|
|
2681
|
+
* <TwoColumnSection
|
|
2682
|
+
* title="US Tech Force"
|
|
2683
|
+
* lead="The US Tech Force is recruiting an elite corps of engineers..."
|
|
2684
|
+
* variant="dark"
|
|
2685
|
+
* >
|
|
2686
|
+
* <p>Through a two-year program, participants will work...</p>
|
|
2687
|
+
* <p>Upon completing the program, engineers can seek...</p>
|
|
2688
|
+
* </TwoColumnSection>
|
|
2689
|
+
* ```
|
|
2690
|
+
*/
|
|
2691
|
+
declare const TwoColumnSection: React$1.ForwardRefExoticComponent<TwoColumnSectionProps & React$1.RefAttributes<HTMLElement>>;
|
|
2692
|
+
|
|
2693
|
+
interface FaqSectionProps extends Omit<React$1.HTMLAttributes<HTMLElement>, "title">, VariantProps<typeof twoColumnSectionVariants> {
|
|
2694
|
+
/**
|
|
2695
|
+
* The title text displayed in the left column
|
|
2696
|
+
* @default "Frequently Asked Questions"
|
|
2697
|
+
*/
|
|
2698
|
+
title?: string;
|
|
2699
|
+
/**
|
|
2700
|
+
* The FAQ content - typically an Accordion with AccordionItems
|
|
2701
|
+
*/
|
|
2702
|
+
children: React$1.ReactNode;
|
|
2703
|
+
}
|
|
2704
|
+
/**
|
|
2705
|
+
* FaqSection component for displaying FAQ content in a two-column layout.
|
|
2706
|
+
*
|
|
2707
|
+
* Wraps TwoColumnSection with FAQ-specific defaults and typography.
|
|
2708
|
+
*
|
|
2709
|
+
* Layout:
|
|
2710
|
+
* - Mobile/Tablet: Stacked (title above content)
|
|
2711
|
+
* - Desktop (lg+): Title left (~40%), FAQ content right (~60%)
|
|
2712
|
+
*
|
|
2713
|
+
* @example
|
|
2714
|
+
* ```tsx
|
|
2715
|
+
* <FaqSection>
|
|
2716
|
+
* <Accordion defaultExpanded="faq-1">
|
|
2717
|
+
* <AccordionItem id="faq-1" title="What is the US Tech Force?">
|
|
2718
|
+
* Tech Force will be an elite group of technology specialists...
|
|
2719
|
+
* </AccordionItem>
|
|
2720
|
+
* <AccordionItem id="faq-2" title="What skills are required?">
|
|
2721
|
+
* We're looking for expertise in software engineering...
|
|
2722
|
+
* </AccordionItem>
|
|
2723
|
+
* </Accordion>
|
|
2724
|
+
* </FaqSection>
|
|
2725
|
+
*
|
|
2726
|
+
* // With custom title
|
|
2727
|
+
* <FaqSection title="Common Questions" colorScheme="light">
|
|
2728
|
+
* ...
|
|
2729
|
+
* </FaqSection>
|
|
2730
|
+
* ```
|
|
2731
|
+
*/
|
|
2732
|
+
declare const FaqSection: React$1.ForwardRefExoticComponent<FaqSectionProps & React$1.RefAttributes<HTMLElement>>;
|
|
2733
|
+
|
|
2734
|
+
declare const DEFAULT_TITLE_TYPOGRAPHY = "typography-h1-display";
|
|
2735
|
+
declare const heroVariants: tailwind_variants.TVReturnType<{
|
|
2736
|
+
variant: {
|
|
2737
|
+
A1: {
|
|
2738
|
+
root: string;
|
|
2739
|
+
content: string[];
|
|
2740
|
+
};
|
|
2741
|
+
A2: {
|
|
2742
|
+
root: string;
|
|
2743
|
+
content: string[];
|
|
2744
|
+
};
|
|
2745
|
+
A3: {
|
|
2746
|
+
root: string;
|
|
2747
|
+
content: string[];
|
|
2748
|
+
};
|
|
2749
|
+
};
|
|
2750
|
+
colorScheme: {
|
|
2751
|
+
dark: {
|
|
2752
|
+
root: string;
|
|
2753
|
+
title: string;
|
|
2754
|
+
};
|
|
2755
|
+
light: {
|
|
2756
|
+
root: string;
|
|
2757
|
+
title: string;
|
|
2758
|
+
};
|
|
2759
|
+
};
|
|
2760
|
+
hasBackground: {
|
|
2761
|
+
true: {
|
|
2762
|
+
root: string;
|
|
2763
|
+
};
|
|
2764
|
+
};
|
|
2765
|
+
}, {
|
|
2766
|
+
root: string;
|
|
2767
|
+
top: string;
|
|
2768
|
+
content: string[];
|
|
2769
|
+
title: string;
|
|
2770
|
+
}, undefined, tailwind_variants_dist_config_js.TVConfig<{
|
|
2771
|
+
variant: {
|
|
2772
|
+
A1: {
|
|
2773
|
+
root: string;
|
|
2774
|
+
content: string[];
|
|
2775
|
+
};
|
|
2776
|
+
A2: {
|
|
2777
|
+
root: string;
|
|
2778
|
+
content: string[];
|
|
2779
|
+
};
|
|
2780
|
+
A3: {
|
|
2781
|
+
root: string;
|
|
2782
|
+
content: string[];
|
|
2783
|
+
};
|
|
2784
|
+
};
|
|
2785
|
+
colorScheme: {
|
|
2786
|
+
dark: {
|
|
2787
|
+
root: string;
|
|
2788
|
+
title: string;
|
|
2789
|
+
};
|
|
2790
|
+
light: {
|
|
2791
|
+
root: string;
|
|
2792
|
+
title: string;
|
|
2793
|
+
};
|
|
2794
|
+
};
|
|
2795
|
+
hasBackground: {
|
|
2796
|
+
true: {
|
|
2797
|
+
root: string;
|
|
2798
|
+
};
|
|
2799
|
+
};
|
|
2800
|
+
}, {
|
|
2801
|
+
variant: {
|
|
2802
|
+
A1: {
|
|
2803
|
+
root: string;
|
|
2804
|
+
content: string[];
|
|
2805
|
+
};
|
|
2806
|
+
A2: {
|
|
2807
|
+
root: string;
|
|
2808
|
+
content: string[];
|
|
2809
|
+
};
|
|
2810
|
+
A3: {
|
|
2811
|
+
root: string;
|
|
2812
|
+
content: string[];
|
|
2813
|
+
};
|
|
2814
|
+
};
|
|
2815
|
+
colorScheme: {
|
|
2816
|
+
dark: {
|
|
2817
|
+
root: string;
|
|
2818
|
+
title: string;
|
|
2819
|
+
};
|
|
2820
|
+
light: {
|
|
2821
|
+
root: string;
|
|
2822
|
+
title: string;
|
|
2823
|
+
};
|
|
2824
|
+
};
|
|
2825
|
+
hasBackground: {
|
|
2826
|
+
true: {
|
|
2827
|
+
root: string;
|
|
2828
|
+
};
|
|
2829
|
+
};
|
|
2830
|
+
}>, {
|
|
2831
|
+
variant: {
|
|
2832
|
+
A1: {
|
|
2833
|
+
root: string;
|
|
2834
|
+
content: string[];
|
|
2835
|
+
};
|
|
2836
|
+
A2: {
|
|
2837
|
+
root: string;
|
|
2838
|
+
content: string[];
|
|
2839
|
+
};
|
|
2840
|
+
A3: {
|
|
2841
|
+
root: string;
|
|
2842
|
+
content: string[];
|
|
2843
|
+
};
|
|
2844
|
+
};
|
|
2845
|
+
colorScheme: {
|
|
2846
|
+
dark: {
|
|
2847
|
+
root: string;
|
|
2848
|
+
title: string;
|
|
2849
|
+
};
|
|
2850
|
+
light: {
|
|
2851
|
+
root: string;
|
|
2852
|
+
title: string;
|
|
2853
|
+
};
|
|
2854
|
+
};
|
|
2855
|
+
hasBackground: {
|
|
2856
|
+
true: {
|
|
2857
|
+
root: string;
|
|
2858
|
+
};
|
|
2859
|
+
};
|
|
2860
|
+
}, {
|
|
2861
|
+
root: string;
|
|
2862
|
+
top: string;
|
|
2863
|
+
content: string[];
|
|
2864
|
+
title: string;
|
|
2865
|
+
}, tailwind_variants.TVReturnType<{
|
|
2866
|
+
variant: {
|
|
2867
|
+
A1: {
|
|
2868
|
+
root: string;
|
|
2869
|
+
content: string[];
|
|
2870
|
+
};
|
|
2871
|
+
A2: {
|
|
2872
|
+
root: string;
|
|
2873
|
+
content: string[];
|
|
2874
|
+
};
|
|
2875
|
+
A3: {
|
|
2876
|
+
root: string;
|
|
2877
|
+
content: string[];
|
|
2878
|
+
};
|
|
2879
|
+
};
|
|
2880
|
+
colorScheme: {
|
|
2881
|
+
dark: {
|
|
2882
|
+
root: string;
|
|
2883
|
+
title: string;
|
|
2884
|
+
};
|
|
2885
|
+
light: {
|
|
2886
|
+
root: string;
|
|
2887
|
+
title: string;
|
|
2888
|
+
};
|
|
2889
|
+
};
|
|
2890
|
+
hasBackground: {
|
|
2891
|
+
true: {
|
|
2892
|
+
root: string;
|
|
2893
|
+
};
|
|
2894
|
+
};
|
|
2895
|
+
}, {
|
|
2896
|
+
root: string;
|
|
2897
|
+
top: string;
|
|
2898
|
+
content: string[];
|
|
2899
|
+
title: string;
|
|
2900
|
+
}, undefined, tailwind_variants_dist_config_js.TVConfig<{
|
|
2901
|
+
variant: {
|
|
2902
|
+
A1: {
|
|
2903
|
+
root: string;
|
|
2904
|
+
content: string[];
|
|
2905
|
+
};
|
|
2906
|
+
A2: {
|
|
2907
|
+
root: string;
|
|
2908
|
+
content: string[];
|
|
2909
|
+
};
|
|
2910
|
+
A3: {
|
|
2911
|
+
root: string;
|
|
2912
|
+
content: string[];
|
|
2913
|
+
};
|
|
2914
|
+
};
|
|
2915
|
+
colorScheme: {
|
|
2916
|
+
dark: {
|
|
2917
|
+
root: string;
|
|
2918
|
+
title: string;
|
|
2919
|
+
};
|
|
2920
|
+
light: {
|
|
2921
|
+
root: string;
|
|
2922
|
+
title: string;
|
|
2923
|
+
};
|
|
2924
|
+
};
|
|
2925
|
+
hasBackground: {
|
|
2926
|
+
true: {
|
|
2927
|
+
root: string;
|
|
2928
|
+
};
|
|
2929
|
+
};
|
|
2930
|
+
}, {
|
|
2931
|
+
variant: {
|
|
2932
|
+
A1: {
|
|
2933
|
+
root: string;
|
|
2934
|
+
content: string[];
|
|
2935
|
+
};
|
|
2936
|
+
A2: {
|
|
2937
|
+
root: string;
|
|
2938
|
+
content: string[];
|
|
2939
|
+
};
|
|
2940
|
+
A3: {
|
|
2941
|
+
root: string;
|
|
2942
|
+
content: string[];
|
|
2943
|
+
};
|
|
2944
|
+
};
|
|
2945
|
+
colorScheme: {
|
|
2946
|
+
dark: {
|
|
2947
|
+
root: string;
|
|
2948
|
+
title: string;
|
|
2949
|
+
};
|
|
2950
|
+
light: {
|
|
2951
|
+
root: string;
|
|
2952
|
+
title: string;
|
|
2953
|
+
};
|
|
2954
|
+
};
|
|
2955
|
+
hasBackground: {
|
|
2956
|
+
true: {
|
|
2957
|
+
root: string;
|
|
2958
|
+
};
|
|
2959
|
+
};
|
|
2960
|
+
}>, unknown, unknown, undefined>>;
|
|
2961
|
+
declare const heroHeaderVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, "relative z-10 w-full", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, "relative z-10 w-full", tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
2962
|
+
declare const heroContentVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
2963
|
+
interface HeroHeaderProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2964
|
+
}
|
|
2965
|
+
/**
|
|
2966
|
+
* Header slot for Hero - used for navigation, gov banners, etc.
|
|
2967
|
+
* Full-width with no padding, sits at the top of the hero.
|
|
2968
|
+
*/
|
|
2969
|
+
declare const HeroHeader: React$1.ForwardRefExoticComponent<HeroHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2970
|
+
interface HeroContentProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
2971
|
+
}
|
|
2972
|
+
/**
|
|
2973
|
+
* Content container for Hero - use for main content.
|
|
2974
|
+
* Has padding and sits above backgrounds with z-10.
|
|
2975
|
+
*/
|
|
2976
|
+
declare const HeroContent: React$1.ForwardRefExoticComponent<HeroContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2977
|
+
interface HeroProps extends Omit<React$1.HTMLAttributes<HTMLElement>, "title">, VariantProps<typeof heroVariants> {
|
|
2978
|
+
/**
|
|
2979
|
+
* The title text displayed in the hero.
|
|
2980
|
+
* If provided, renders an h1 with default typography.
|
|
2981
|
+
* Omit to use children for custom content composition.
|
|
2982
|
+
*/
|
|
2983
|
+
title?: string;
|
|
2984
|
+
/**
|
|
2985
|
+
* Custom typography class for the title using primitive tokens.
|
|
2986
|
+
* Default: "typography-h1-display"
|
|
2987
|
+
*/
|
|
2988
|
+
titleClassName?: string;
|
|
2989
|
+
/**
|
|
2990
|
+
* Color scheme for text content.
|
|
2991
|
+
* - dark: Dark text for use on light backgrounds (default)
|
|
2992
|
+
* - light: Light text for use on dark backgrounds
|
|
2993
|
+
*/
|
|
2994
|
+
colorScheme?: "dark" | "light";
|
|
2995
|
+
/**
|
|
2996
|
+
* Content for the top slot (full-width, no padding).
|
|
2997
|
+
* Use for USGovBanner, Navigation, etc.
|
|
2998
|
+
*/
|
|
2999
|
+
top?: React$1.ReactNode;
|
|
3000
|
+
/**
|
|
3001
|
+
* Background for the hero. Can be:
|
|
3002
|
+
* - A color string (hex, rgb, etc.) for solid backgrounds
|
|
3003
|
+
* - A ReactNode (use HeroBackground.Image, HeroBackground.Video, or HeroBackground.Stream)
|
|
3004
|
+
*/
|
|
3005
|
+
background?: React$1.ReactNode | string;
|
|
3006
|
+
/**
|
|
3007
|
+
* Opacity of the overlay (0-1, default: 0)
|
|
3008
|
+
* Only applies when using a background slot
|
|
3009
|
+
*/
|
|
3010
|
+
overlayOpacity?: number;
|
|
3011
|
+
/**
|
|
3012
|
+
* Color of the overlay (default: "black")
|
|
3013
|
+
*/
|
|
3014
|
+
overlayColor?: string;
|
|
3015
|
+
/**
|
|
3016
|
+
* Border radius for the hero container
|
|
3017
|
+
* Useful for designs with rounded bottom corners
|
|
3018
|
+
*/
|
|
3019
|
+
borderRadius?: string;
|
|
3020
|
+
/**
|
|
3021
|
+
* Theme overrides for component styling via CSS custom properties
|
|
3022
|
+
*/
|
|
3023
|
+
theme?: ComponentTheme;
|
|
3024
|
+
}
|
|
3025
|
+
/**
|
|
3026
|
+
* Hero component for page headers with large display typography.
|
|
3027
|
+
*
|
|
3028
|
+
* Slots:
|
|
3029
|
+
* - `top`: Full-width slot at top for USGovBanner, Navigation (no padding)
|
|
3030
|
+
* - `children`: Main content slot with padding and alignment
|
|
3031
|
+
*
|
|
3032
|
+
* The `title` prop is a convenience for simple heroes - it renders an h1 with
|
|
3033
|
+
* responsive typography. Children are always rendered, so you can use both
|
|
3034
|
+
* or just children for full control.
|
|
3035
|
+
*
|
|
3036
|
+
* Variants:
|
|
3037
|
+
* - A1: Content at bottom (default)
|
|
3038
|
+
* - A2: Content at top
|
|
3039
|
+
* - A3: Content centered
|
|
3040
|
+
*
|
|
3041
|
+
* @example
|
|
3042
|
+
* ```tsx
|
|
3043
|
+
* // Simple - just title and background
|
|
3044
|
+
* <Hero title="Welcome" background="#1a1a1a" />
|
|
3045
|
+
*
|
|
3046
|
+
* // With top slot for banner/nav
|
|
3047
|
+
* <Hero
|
|
3048
|
+
* variant="A1"
|
|
3049
|
+
* background={<HeroBackground.Image src="/hero.jpg" />}
|
|
3050
|
+
* top={
|
|
3051
|
+
* <>
|
|
3052
|
+
* <USGovBanner variant="inverted" />
|
|
3053
|
+
* <Navigation />
|
|
3054
|
+
* </>
|
|
3055
|
+
* }
|
|
3056
|
+
* >
|
|
3057
|
+
* <h1>Board of Peace</h1>
|
|
3058
|
+
* <p>Subtitle goes here</p>
|
|
3059
|
+
* </Hero>
|
|
3060
|
+
* ```
|
|
3061
|
+
*/
|
|
3062
|
+
declare const Hero: React$1.ForwardRefExoticComponent<HeroProps & React$1.RefAttributes<HTMLElement>> & {
|
|
3063
|
+
Header: typeof HeroHeader;
|
|
3064
|
+
Content: typeof HeroContent;
|
|
3065
|
+
};
|
|
3066
|
+
|
|
3067
|
+
interface ProseProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
3068
|
+
children: React$1.ReactNode;
|
|
3069
|
+
}
|
|
3070
|
+
/**
|
|
3071
|
+
* Prose container for long-form content with proper typography and spacing.
|
|
3072
|
+
*
|
|
3073
|
+
* Provides responsive spacing between content blocks:
|
|
3074
|
+
* - Desktop (1440px+): 96px gap
|
|
3075
|
+
* - Tablet (768px+): 72px gap
|
|
3076
|
+
* - Mobile: 56px gap
|
|
3077
|
+
*
|
|
3078
|
+
* Use with ProseSection components for proper content structure.
|
|
3079
|
+
*/
|
|
3080
|
+
declare const Prose: React$1.ForwardRefExoticComponent<ProseProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3081
|
+
interface ProseSectionProps extends React$1.HTMLAttributes<HTMLElement> {
|
|
3082
|
+
/**
|
|
3083
|
+
* The heading text for this section
|
|
3084
|
+
*/
|
|
3085
|
+
heading: string;
|
|
3086
|
+
/**
|
|
3087
|
+
* The heading level to render (h2 or h3)
|
|
3088
|
+
* @default "h2"
|
|
3089
|
+
*/
|
|
3090
|
+
as?: "h2" | "h3";
|
|
3091
|
+
children: React$1.ReactNode;
|
|
3092
|
+
}
|
|
3093
|
+
/**
|
|
3094
|
+
* A section within Prose content, containing a heading and body text.
|
|
3095
|
+
*
|
|
3096
|
+
* Responsive typography:
|
|
3097
|
+
* - h2: Uses typography-h3
|
|
3098
|
+
* - h3: Uses typography-h4
|
|
3099
|
+
* - Body: Uses typography-body-medium
|
|
3100
|
+
*/
|
|
3101
|
+
declare const ProseSection: React$1.ForwardRefExoticComponent<ProseSectionProps & React$1.RefAttributes<HTMLElement>>;
|
|
3102
|
+
|
|
3103
|
+
declare const quoteBlockVariants: tailwind_variants.TVReturnType<{
|
|
3104
|
+
size: {
|
|
3105
|
+
default: {
|
|
3106
|
+
root: string;
|
|
3107
|
+
};
|
|
3108
|
+
compact: {
|
|
3109
|
+
root: string;
|
|
3110
|
+
};
|
|
3111
|
+
};
|
|
3112
|
+
}, {
|
|
3113
|
+
root: string;
|
|
3114
|
+
content: string[];
|
|
3115
|
+
quoteWrapper: string;
|
|
3116
|
+
quote: string[];
|
|
3117
|
+
openQuote: string[];
|
|
3118
|
+
attribution: string;
|
|
3119
|
+
signature: string;
|
|
3120
|
+
byline: string;
|
|
3121
|
+
bylineName: string;
|
|
3122
|
+
bylineTitle: string;
|
|
3123
|
+
}, undefined, tailwind_variants_dist_config_js.TVConfig<{
|
|
3124
|
+
size: {
|
|
3125
|
+
default: {
|
|
3126
|
+
root: string;
|
|
3127
|
+
};
|
|
3128
|
+
compact: {
|
|
3129
|
+
root: string;
|
|
3130
|
+
};
|
|
3131
|
+
};
|
|
3132
|
+
}, {
|
|
3133
|
+
size: {
|
|
3134
|
+
default: {
|
|
3135
|
+
root: string;
|
|
3136
|
+
};
|
|
3137
|
+
compact: {
|
|
3138
|
+
root: string;
|
|
3139
|
+
};
|
|
3140
|
+
};
|
|
3141
|
+
}>, {
|
|
3142
|
+
size: {
|
|
3143
|
+
default: {
|
|
3144
|
+
root: string;
|
|
3145
|
+
};
|
|
3146
|
+
compact: {
|
|
3147
|
+
root: string;
|
|
3148
|
+
};
|
|
3149
|
+
};
|
|
3150
|
+
}, {
|
|
3151
|
+
root: string;
|
|
3152
|
+
content: string[];
|
|
3153
|
+
quoteWrapper: string;
|
|
3154
|
+
quote: string[];
|
|
3155
|
+
openQuote: string[];
|
|
3156
|
+
attribution: string;
|
|
3157
|
+
signature: string;
|
|
3158
|
+
byline: string;
|
|
3159
|
+
bylineName: string;
|
|
3160
|
+
bylineTitle: string;
|
|
3161
|
+
}, tailwind_variants.TVReturnType<{
|
|
3162
|
+
size: {
|
|
3163
|
+
default: {
|
|
3164
|
+
root: string;
|
|
3165
|
+
};
|
|
3166
|
+
compact: {
|
|
3167
|
+
root: string;
|
|
3168
|
+
};
|
|
3169
|
+
};
|
|
3170
|
+
}, {
|
|
3171
|
+
root: string;
|
|
3172
|
+
content: string[];
|
|
3173
|
+
quoteWrapper: string;
|
|
3174
|
+
quote: string[];
|
|
3175
|
+
openQuote: string[];
|
|
3176
|
+
attribution: string;
|
|
3177
|
+
signature: string;
|
|
3178
|
+
byline: string;
|
|
3179
|
+
bylineName: string;
|
|
3180
|
+
bylineTitle: string;
|
|
3181
|
+
}, undefined, tailwind_variants_dist_config_js.TVConfig<{
|
|
3182
|
+
size: {
|
|
3183
|
+
default: {
|
|
3184
|
+
root: string;
|
|
3185
|
+
};
|
|
3186
|
+
compact: {
|
|
3187
|
+
root: string;
|
|
3188
|
+
};
|
|
3189
|
+
};
|
|
3190
|
+
}, {
|
|
3191
|
+
size: {
|
|
3192
|
+
default: {
|
|
3193
|
+
root: string;
|
|
3194
|
+
};
|
|
3195
|
+
compact: {
|
|
3196
|
+
root: string;
|
|
3197
|
+
};
|
|
3198
|
+
};
|
|
3199
|
+
}>, unknown, unknown, undefined>>;
|
|
3200
|
+
interface QuoteBlockProps extends Omit<React$1.HTMLAttributes<HTMLElement>, "children">, VariantProps<typeof quoteBlockVariants> {
|
|
3201
|
+
/**
|
|
3202
|
+
* The quote text to display
|
|
3203
|
+
*/
|
|
3204
|
+
quote: string;
|
|
3205
|
+
/**
|
|
3206
|
+
* Whether to show decorative quote marks
|
|
3207
|
+
* @default true
|
|
3208
|
+
*/
|
|
3209
|
+
showQuoteMarks?: boolean;
|
|
3210
|
+
/**
|
|
3211
|
+
* Signature image URL (optional)
|
|
3212
|
+
*/
|
|
3213
|
+
signatureImage?: string;
|
|
3214
|
+
/**
|
|
3215
|
+
* Alt text for signature image
|
|
3216
|
+
*/
|
|
3217
|
+
signatureAlt?: string;
|
|
3218
|
+
/**
|
|
3219
|
+
* Attribution name (e.g., "Donald J. Trump")
|
|
3220
|
+
*/
|
|
3221
|
+
attributionName?: string;
|
|
3222
|
+
/**
|
|
3223
|
+
* Attribution title (e.g., "45 & 47 President of the United States")
|
|
3224
|
+
*/
|
|
3225
|
+
attributionTitle?: string;
|
|
3226
|
+
/**
|
|
3227
|
+
* Background element - use BackgroundImage or similar
|
|
3228
|
+
*/
|
|
3229
|
+
background?: React$1.ReactNode;
|
|
3230
|
+
/**
|
|
3231
|
+
* Overlay opacity (0-1)
|
|
3232
|
+
*/
|
|
3233
|
+
overlayOpacity?: number;
|
|
3234
|
+
/**
|
|
3235
|
+
* Overlay color
|
|
3236
|
+
*/
|
|
3237
|
+
overlayColor?: string;
|
|
3238
|
+
/**
|
|
3239
|
+
* Custom class for the quote text
|
|
3240
|
+
*/
|
|
3241
|
+
quoteClassName?: string;
|
|
3242
|
+
/**
|
|
3243
|
+
* Custom class for the byline name
|
|
3244
|
+
*/
|
|
3245
|
+
bylineNameClassName?: string;
|
|
3246
|
+
/**
|
|
3247
|
+
* Custom class for the byline title
|
|
3248
|
+
*/
|
|
3249
|
+
bylineTitleClassName?: string;
|
|
3250
|
+
}
|
|
3251
|
+
declare const QuoteBlock: React$1.ForwardRefExoticComponent<QuoteBlockProps & React$1.RefAttributes<HTMLElement>>;
|
|
3252
|
+
|
|
3253
|
+
/**
|
|
3254
|
+
* River component for content sections with text and media
|
|
3255
|
+
*
|
|
3256
|
+
* Variants:
|
|
3257
|
+
* - A: Text on left (9 cols), media on right (15 cols) on desktop
|
|
3258
|
+
* - B: Media on left (15 cols), text on right (9 cols) on desktop
|
|
3259
|
+
*
|
|
3260
|
+
* Uses the 24-column grid system. Must be placed inside a `grid-container`.
|
|
3261
|
+
*/
|
|
3262
|
+
declare const riverVariants: tailwind_variants.TVReturnType<{
|
|
3263
|
+
variant: {
|
|
3264
|
+
A: string;
|
|
3265
|
+
B: string;
|
|
3266
|
+
};
|
|
3267
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
3268
|
+
variant: {
|
|
3269
|
+
A: string;
|
|
3270
|
+
B: string;
|
|
3271
|
+
};
|
|
3272
|
+
}, {
|
|
3273
|
+
variant: {
|
|
3274
|
+
A: string;
|
|
3275
|
+
B: string;
|
|
3276
|
+
};
|
|
3277
|
+
}>, {
|
|
3278
|
+
variant: {
|
|
3279
|
+
A: string;
|
|
3280
|
+
B: string;
|
|
3281
|
+
};
|
|
3282
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
3283
|
+
variant: {
|
|
3284
|
+
A: string;
|
|
3285
|
+
B: string;
|
|
3286
|
+
};
|
|
3287
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
3288
|
+
variant: {
|
|
3289
|
+
A: string;
|
|
3290
|
+
B: string;
|
|
3291
|
+
};
|
|
3292
|
+
}, {
|
|
3293
|
+
variant: {
|
|
3294
|
+
A: string;
|
|
3295
|
+
B: string;
|
|
3296
|
+
};
|
|
3297
|
+
}>, unknown, unknown, undefined>>;
|
|
3298
|
+
interface RiverProps extends React$1.HTMLAttributes<HTMLElement>, VariantProps<typeof riverVariants> {
|
|
3299
|
+
/**
|
|
3300
|
+
* The headline text
|
|
3301
|
+
*/
|
|
3302
|
+
headline: string;
|
|
3303
|
+
/**
|
|
3304
|
+
* The body text
|
|
3305
|
+
*/
|
|
3306
|
+
body: string;
|
|
3307
|
+
/**
|
|
3308
|
+
* Primary action button (required)
|
|
3309
|
+
*/
|
|
3310
|
+
primaryAction: React$1.ReactNode;
|
|
3311
|
+
/**
|
|
3312
|
+
* Secondary action button (optional)
|
|
3313
|
+
*/
|
|
3314
|
+
secondaryAction?: React$1.ReactNode;
|
|
3315
|
+
/**
|
|
3316
|
+
* Media content (image, video, etc.)
|
|
3317
|
+
*/
|
|
3318
|
+
media: React$1.ReactNode;
|
|
3319
|
+
}
|
|
3320
|
+
/**
|
|
3321
|
+
* River component for content sections with text and media.
|
|
3322
|
+
*
|
|
3323
|
+
* Uses the 24-column grid system - must be placed inside a `grid-container`.
|
|
3324
|
+
*
|
|
3325
|
+
* Layout:
|
|
3326
|
+
* - Mobile/Tablet: Stacked (text above media)
|
|
3327
|
+
* - Desktop (lg+):
|
|
3328
|
+
* - Variant A: Text (9 cols) | Media (15 cols)
|
|
3329
|
+
* - Variant B: Media (15 cols) | Text (9 cols)
|
|
3330
|
+
*
|
|
3331
|
+
* @example
|
|
3332
|
+
* ```tsx
|
|
3333
|
+
* <div className="grid-container">
|
|
3334
|
+
* <River
|
|
3335
|
+
* variant="A"
|
|
3336
|
+
* headline="Feature Headline"
|
|
3337
|
+
* body="Description of the feature..."
|
|
3338
|
+
* primaryAction={<Button>Primary</Button>}
|
|
3339
|
+
* secondaryAction={<Button variant="outline">Secondary</Button>}
|
|
3340
|
+
* media={<img src="..." alt="Feature" />}
|
|
3341
|
+
* />
|
|
3342
|
+
* </div>
|
|
3343
|
+
* ```
|
|
3344
|
+
*/
|
|
3345
|
+
declare const River: React$1.ForwardRefExoticComponent<RiverProps & React$1.RefAttributes<HTMLElement>>;
|
|
3346
|
+
|
|
3347
|
+
/**
|
|
3348
|
+
* Tout variants for background and content styling
|
|
3349
|
+
*/
|
|
3350
|
+
declare const toutVariants: tailwind_variants.TVReturnType<{
|
|
3351
|
+
colorScheme: {
|
|
3352
|
+
light: string;
|
|
3353
|
+
dark: string;
|
|
3354
|
+
};
|
|
3355
|
+
align: {
|
|
3356
|
+
left: string;
|
|
3357
|
+
center: string;
|
|
3358
|
+
};
|
|
3359
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
3360
|
+
colorScheme: {
|
|
3361
|
+
light: string;
|
|
3362
|
+
dark: string;
|
|
3363
|
+
};
|
|
3364
|
+
align: {
|
|
3365
|
+
left: string;
|
|
3366
|
+
center: string;
|
|
3367
|
+
};
|
|
3368
|
+
}, {
|
|
3369
|
+
colorScheme: {
|
|
3370
|
+
light: string;
|
|
3371
|
+
dark: string;
|
|
3372
|
+
};
|
|
3373
|
+
align: {
|
|
3374
|
+
left: string;
|
|
3375
|
+
center: string;
|
|
3376
|
+
};
|
|
3377
|
+
}>, {
|
|
3378
|
+
colorScheme: {
|
|
3379
|
+
light: string;
|
|
3380
|
+
dark: string;
|
|
3381
|
+
};
|
|
3382
|
+
align: {
|
|
3383
|
+
left: string;
|
|
3384
|
+
center: string;
|
|
3385
|
+
};
|
|
3386
|
+
}, undefined, tailwind_variants.TVReturnType<{
|
|
3387
|
+
colorScheme: {
|
|
3388
|
+
light: string;
|
|
3389
|
+
dark: string;
|
|
3390
|
+
};
|
|
3391
|
+
align: {
|
|
3392
|
+
left: string;
|
|
3393
|
+
center: string;
|
|
3394
|
+
};
|
|
3395
|
+
}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
|
|
3396
|
+
colorScheme: {
|
|
3397
|
+
light: string;
|
|
3398
|
+
dark: string;
|
|
3399
|
+
};
|
|
3400
|
+
align: {
|
|
3401
|
+
left: string;
|
|
3402
|
+
center: string;
|
|
3403
|
+
};
|
|
3404
|
+
}, {
|
|
3405
|
+
colorScheme: {
|
|
3406
|
+
light: string;
|
|
3407
|
+
dark: string;
|
|
3408
|
+
};
|
|
3409
|
+
align: {
|
|
3410
|
+
left: string;
|
|
3411
|
+
center: string;
|
|
3412
|
+
};
|
|
3413
|
+
}>, unknown, unknown, undefined>>;
|
|
3414
|
+
/**
|
|
3415
|
+
* Tout component based on Figma BaseKit / Touts
|
|
3416
|
+
*
|
|
3417
|
+
* A full-bleed section with a background image and overlaid content.
|
|
3418
|
+
* Content can be positioned on the left side or centered.
|
|
3419
|
+
*
|
|
3420
|
+
* Color schemes:
|
|
3421
|
+
* - light: Light text styling (default)
|
|
3422
|
+
* - dark: Dark text styling
|
|
3423
|
+
*
|
|
3424
|
+
* Alignment:
|
|
3425
|
+
* - left: Content aligned to the left (default)
|
|
3426
|
+
* - center: Content centered
|
|
3427
|
+
*
|
|
3428
|
+
* Responsive behavior:
|
|
3429
|
+
* - Mobile (sm): 600px height, 4 columns with gap-20, content spans all 4 cols
|
|
3430
|
+
* - Tablet (md): 750px height, 12 columns with gap-20, content spans 9 cols (left) or centered
|
|
3431
|
+
* - Desktop (lg): 900px height, 24 columns with gap-20, content spans 9 cols (left) or centered
|
|
3432
|
+
*
|
|
3433
|
+
* This component is self-contained - do NOT wrap in a grid-container.
|
|
3434
|
+
*/
|
|
3435
|
+
interface ToutProps extends React$1.HTMLAttributes<HTMLElement>, VariantProps<typeof toutVariants> {
|
|
3436
|
+
/**
|
|
3437
|
+
* The headline displayed in the tout
|
|
3438
|
+
*/
|
|
3439
|
+
headline: React$1.ReactNode;
|
|
3440
|
+
/**
|
|
3441
|
+
* The body text displayed below the headline (optional)
|
|
3442
|
+
*/
|
|
3443
|
+
body?: string;
|
|
3444
|
+
/**
|
|
3445
|
+
* Primary action button (required)
|
|
3446
|
+
*/
|
|
3447
|
+
primaryAction: React$1.ReactNode;
|
|
3448
|
+
/**
|
|
3449
|
+
* Secondary action button (optional)
|
|
3450
|
+
*/
|
|
3451
|
+
secondaryAction?: React$1.ReactNode;
|
|
3452
|
+
/**
|
|
3453
|
+
* Background media (image or video element)
|
|
3454
|
+
* Should be a full-bleed element that covers the entire section
|
|
3455
|
+
*/
|
|
3456
|
+
backgroundMedia: React$1.ReactNode;
|
|
3457
|
+
/**
|
|
3458
|
+
* Optional footer content to display at the bottom of the section.
|
|
3459
|
+
* Use with NdstudioFooter component for the branded footer.
|
|
3460
|
+
*/
|
|
3461
|
+
footer?: React$1.ReactNode;
|
|
3462
|
+
/**
|
|
3463
|
+
* Component-level theme overrides.
|
|
3464
|
+
* Allows customization of colors, spacing, and surface properties.
|
|
3465
|
+
*/
|
|
3466
|
+
theme?: ComponentTheme;
|
|
3467
|
+
}
|
|
3468
|
+
/**
|
|
3469
|
+
* Tout component for hero-like sections with background media and overlaid content.
|
|
3470
|
+
*
|
|
3471
|
+
* This component is self-contained with its own grid.
|
|
3472
|
+
* Grid setup:
|
|
3473
|
+
* - Desktop (lg): 24 columns, gap-20, content spans 9 cols
|
|
3474
|
+
* - Tablet (md): 12 columns, gap-20, content spans 9 cols
|
|
3475
|
+
* - Mobile: 4 columns, gap-20, content spans all 4 cols
|
|
3476
|
+
*
|
|
3477
|
+
* @example
|
|
3478
|
+
* ```tsx
|
|
3479
|
+
* <Tout
|
|
3480
|
+
* headline="Feature Headline"
|
|
3481
|
+
* body="Description of the feature..."
|
|
3482
|
+
* primaryAction={<Button>Primary</Button>}
|
|
3483
|
+
* secondaryAction={<Button variant="outline" colorScheme="light">Secondary</Button>}
|
|
3484
|
+
* backgroundMedia={
|
|
3485
|
+
* <img
|
|
3486
|
+
* src="/background.jpg"
|
|
3487
|
+
* alt=""
|
|
3488
|
+
* className="absolute inset-0 w-full h-full object-cover"
|
|
3489
|
+
* />
|
|
3490
|
+
* }
|
|
3491
|
+
* footer={<NdstudioFooter />}
|
|
3492
|
+
* />
|
|
3493
|
+
* ```
|
|
3494
|
+
*/
|
|
3495
|
+
declare const Tout: React$1.ForwardRefExoticComponent<ToutProps & React$1.RefAttributes<HTMLElement>>;
|
|
3496
|
+
|
|
3497
|
+
/**
|
|
3498
|
+
* Theme context value
|
|
3499
|
+
*/
|
|
3500
|
+
interface ThemeContextValue {
|
|
3501
|
+
/** CSS variables map for inline styles */
|
|
3502
|
+
cssVars: CSSVariableMap;
|
|
3503
|
+
/** Resolved nested tokens */
|
|
3504
|
+
tokens: NestedStringRecord;
|
|
3505
|
+
/** Current color theme name */
|
|
3506
|
+
colorTheme: ColorThemeName;
|
|
3507
|
+
/** Current surface theme name */
|
|
3508
|
+
surfaceTheme: SurfaceThemeName;
|
|
3509
|
+
}
|
|
3510
|
+
/**
|
|
3511
|
+
* Props for ThemeProvider
|
|
3512
|
+
*/
|
|
3513
|
+
interface ThemeProviderProps {
|
|
3514
|
+
/** Color theme name (defaults to "base") */
|
|
3515
|
+
color?: ColorThemeName;
|
|
3516
|
+
/** Surface theme name (defaults to "base") */
|
|
3517
|
+
surface?: SurfaceThemeName;
|
|
3518
|
+
/** Children to render */
|
|
3519
|
+
children: ReactNode;
|
|
3520
|
+
/** Optional className for the wrapper div */
|
|
3521
|
+
className?: string;
|
|
3522
|
+
/** Whether to render a wrapper div with CSS variables applied (defaults to true) */
|
|
3523
|
+
applyStyles?: boolean;
|
|
3524
|
+
}
|
|
3525
|
+
/**
|
|
3526
|
+
* ThemeProvider component
|
|
3527
|
+
*
|
|
3528
|
+
* Applies theme tokens as CSS variables using type-safe theme names.
|
|
3529
|
+
*
|
|
3530
|
+
* @example
|
|
3531
|
+
* ```tsx
|
|
3532
|
+
* // Use default base themes
|
|
3533
|
+
* <ThemeProvider>
|
|
3534
|
+
* <App />
|
|
3535
|
+
* </ThemeProvider>
|
|
3536
|
+
*
|
|
3537
|
+
* // Use specific themes by name
|
|
3538
|
+
* <ThemeProvider color="civic" surface="sharp">
|
|
3539
|
+
* <App />
|
|
3540
|
+
* </ThemeProvider>
|
|
3541
|
+
*
|
|
3542
|
+
* // Mix and match
|
|
3543
|
+
* <ThemeProvider color="institution" surface="soft">
|
|
3544
|
+
* <App />
|
|
3545
|
+
* </ThemeProvider>
|
|
3546
|
+
* ```
|
|
3547
|
+
*/
|
|
3548
|
+
declare function ThemeProvider({ color, surface, children, className, applyStyles, }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
|
|
3549
|
+
|
|
3550
|
+
/**
|
|
3551
|
+
* Theme Hooks
|
|
3552
|
+
*
|
|
3553
|
+
* React hooks for accessing theme context.
|
|
3554
|
+
*/
|
|
3555
|
+
|
|
3556
|
+
/**
|
|
3557
|
+
* Hook to access the theme context
|
|
3558
|
+
* @throws Error if used outside of ThemeProvider
|
|
3559
|
+
*/
|
|
3560
|
+
declare function useTheme(): ThemeContextValue;
|
|
3561
|
+
/**
|
|
3562
|
+
* Hook to get just the nested tokens
|
|
3563
|
+
*/
|
|
3564
|
+
declare function useThemeTokens(): NestedStringRecord;
|
|
3565
|
+
/**
|
|
3566
|
+
* Hook to get CSS variables for inline styles
|
|
3567
|
+
*/
|
|
3568
|
+
declare function useCSSVars(): CSSVariableMap;
|
|
3569
|
+
|
|
3570
|
+
/**
|
|
3571
|
+
* Theme Utilities
|
|
3572
|
+
*
|
|
3573
|
+
* Helper functions for working with theme tokens and CSS variables.
|
|
3574
|
+
*/
|
|
3575
|
+
|
|
3576
|
+
/**
|
|
3577
|
+
* Convert nested token object to CSS variable map
|
|
3578
|
+
* @example
|
|
3579
|
+
* toCSSVars({ color: { bg: { page: '#fff' } } })
|
|
3580
|
+
* // Returns: { '--color-bg-page': '#fff' }
|
|
3581
|
+
*/
|
|
3582
|
+
declare function toCSSVars(tokens: NestedStringRecord): CSSVariableMap;
|
|
3583
|
+
/**
|
|
3584
|
+
* Apply CSS variables to an element
|
|
3585
|
+
* @example
|
|
3586
|
+
* applyTheme(document.body, { '--color-bg-page': '#fff' })
|
|
3587
|
+
*/
|
|
3588
|
+
declare function applyTheme(element: HTMLElement, cssVars: CSSVariableMap): void;
|
|
3589
|
+
/**
|
|
3590
|
+
* Remove CSS variables from an element
|
|
3591
|
+
*/
|
|
3592
|
+
declare function removeTheme(element: HTMLElement, cssVars: CSSVariableMap): void;
|
|
3593
|
+
/**
|
|
3594
|
+
* Get a specific token value from nested tokens using dot notation
|
|
3595
|
+
* @example
|
|
3596
|
+
* getToken({ color: { bg: { page: '#fff' } } }, 'color.bg.page')
|
|
3597
|
+
* // Returns: '#fff'
|
|
3598
|
+
*/
|
|
3599
|
+
declare function getToken(tokens: NestedStringRecord, path: string): string | undefined;
|
|
3600
|
+
/**
|
|
3601
|
+
* Create a style object with CSS variables for React inline styles
|
|
3602
|
+
* @example
|
|
3603
|
+
* <div style={createThemeStyle(cssVars)}>...</div>
|
|
3604
|
+
*/
|
|
3605
|
+
declare function createThemeStyle(cssVars: CSSVariableMap): React.CSSProperties;
|
|
3606
|
+
/**
|
|
3607
|
+
* Merge multiple CSS variable maps
|
|
3608
|
+
*/
|
|
3609
|
+
declare function mergeCSSVars(...maps: CSSVariableMap[]): CSSVariableMap;
|
|
3610
|
+
/**
|
|
3611
|
+
* Filter CSS variables by prefix
|
|
3612
|
+
* @example
|
|
3613
|
+
* filterCSSVars(cssVars, '--color-')
|
|
3614
|
+
* // Returns only variables starting with --color-
|
|
3615
|
+
*/
|
|
3616
|
+
declare function filterCSSVars(cssVars: CSSVariableMap, prefix: string): CSSVariableMap;
|
|
3617
|
+
|
|
3618
|
+
export { Accordion, AccordionItem, type AccordionItemProps, type AccordionProps, BackgroundCompound as Background, BackgroundGradient, type BackgroundGradientProps, BackgroundImage, type BackgroundImageProps, BackgroundOverlay, type BackgroundOverlayProps, type BackgroundProps, BackgroundStream, type BackgroundStreamProps, BackgroundVideo, type BackgroundVideoProps, Banner, type BannerProps, Button, type ButtonProps, type ButtonTheme, Card, CardActions, type CardActionsProps, CardBody, type CardBodyProps, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardEyebrow, type CardEyebrowProps, CardGrid, type CardGridProps, CardImage, type CardImageProps, type CardProps, CardTitle, type CardTitleProps, type ColorToken, type ComponentTheme, type ComponentThemeColors, type ComponentThemeSpatial, type ComponentThemeSurface, DEFAULT_TITLE_TYPOGRAPHY, DevToolbar, type DevToolbarProps, FONT_SIZES, FaqSection, type FaqSectionProps, type FontSizeToken, GridOverlay, type GridOverlayProps, Hero, BackgroundCompound as HeroBackground, BackgroundImage as HeroBackgroundImage, type BackgroundImageProps as HeroBackgroundImageProps, BackgroundStream as HeroBackgroundStream, type BackgroundStreamProps as HeroBackgroundStreamProps, BackgroundVideo as HeroBackgroundVideo, type BackgroundVideoProps as HeroBackgroundVideoProps, HeroContent, type HeroContentProps, BackgroundGradient as HeroGradient, type BackgroundGradientProps as HeroGradientProps, HeroHeader, type HeroHeaderProps, BackgroundOverlay as HeroOverlay, type BackgroundOverlayProps as HeroOverlayProps, type HeroProps, IconButton, type IconButtonProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, InputGroupInput, type InputGroupInputProps, type InputGroupProps, InputGroupText, type InputGroupTextProps, InputGroupTextarea, type InputGroupTextareaProps, type InputProps, Navbar, NavbarActions, type NavbarActionsProps, NavbarBrand, type NavbarBrandProps, NavbarLink, type NavbarLinkProps, NavbarLinks, type NavbarLinksProps, NavbarMobileMenu, NavbarMobileMenuButton, type NavbarMobileMenuButtonProps, NavbarMobileMenuLink, type NavbarMobileMenuLinkProps, type NavbarMobileMenuProps, type NavbarProps, NdstudioFooter, type NdstudioFooterProps, PagerControl, type PagerControlProps, Popover, PopoverArrow, type PopoverArrowProps, PopoverBackdrop, type PopoverBackdropProps, PopoverClose, type PopoverCloseProps, PopoverDescription, type PopoverDescriptionProps, PopoverParts, PopoverPopup, type PopoverPopupProps, PopoverPortal, type PopoverPortalProps, PopoverPositioner, type PopoverPositionerProps, type PopoverProps, PopoverRoot, type PopoverRootProps, PopoverTitle, type PopoverTitleProps, PopoverTrigger, type PopoverTriggerProps, Prose, type ProseProps, ProseSection, type ProseSectionProps, QuoteBlock, type QuoteBlockProps, type RadiusToken, River, type RiverProps, Select, SelectGroup, SelectGroupLabel, type SelectGroupLabelProps, type SelectGroupProps, SelectOption, type SelectOptionProps, SelectPopup, type SelectPopupProps, type SelectProps, SelectRoot, SelectTrigger, type SelectTriggerProps, type SpacingToken, type ThemeContextValue, ThemeProvider, type ThemeProviderProps, Tooltip, TooltipArrow, type TooltipArrowProps, TooltipParts, TooltipPopup, type TooltipPopupProps, TooltipPortal, type TooltipPortalProps, TooltipPositioner, type TooltipPositionerProps, type TooltipProps, TooltipProvider, type TooltipProviderProps, TooltipRoot, type TooltipRootProps, TooltipTrigger, type TooltipTriggerProps, Tout, type ToutProps, TwoColumnSection, type TwoColumnSectionProps, USGovBanner, type USGovBannerProps, applyTheme, backgroundGradientVariants, backgroundImageVariants, backgroundOverlayVariants, backgroundStreamVariants, backgroundVariants, backgroundVideoVariants, bannerVariants, buttonThemeToStyleVars, buttonVariants, cardGridVariants, cardVariants, createThemeStyle, filterCSSVars, fontSizeToClass, getToken, heroContentVariants, heroHeaderVariants, heroVariants, iconButtonVariants, inputGroupAddonVariants, inputGroupVariants, inputVariants, mergeCSSVars, pagerControlVariants, popoverArrowVariants, popoverPopupVariants, quoteBlockVariants, removeTheme, responsiveTypographyClass, riverVariants, selectOptionVariants, selectPopupVariants, selectTriggerVariants, themeToStyleVars, toCSSVars, tooltipArrowVariants, tooltipPopupVariants, twoColumnSectionVariants, useCSSVars, useTheme, useThemeTokens };
|