@nationaldesignstudio/react 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion/index.d.ts +95 -0
- package/dist/accordion/index.js +143 -0
- package/dist/accordion/index.js.map +1 -0
- package/dist/background/index.d.ts +149 -0
- package/dist/background/index.js +200 -0
- package/dist/background/index.js.map +1 -0
- package/dist/banner/index.d.ts +101 -0
- package/dist/banner/index.js +81 -0
- package/dist/banner/index.js.map +1 -0
- package/dist/blurred-video-backdrop/index.d.ts +233 -0
- package/dist/blurred-video-backdrop/index.js +266 -0
- package/dist/blurred-video-backdrop/index.js.map +1 -0
- package/dist/button/index.d.ts +180 -0
- package/dist/button/index.js +169 -0
- package/dist/button/index.js.map +1 -0
- package/dist/button-B2g5fH9b.d.ts +152 -0
- package/dist/card/index.d.ts +406 -0
- package/dist/card/index.js +219 -0
- package/dist/card/index.js.map +1 -0
- package/dist/card-grid/index.d.ts +90 -0
- package/dist/card-grid/index.js +74 -0
- package/dist/card-grid/index.js.map +1 -0
- package/dist/component-registry.md +136 -2
- package/dist/dev-toolbar/index.d.ts +8 -0
- package/dist/dev-toolbar/index.js +206 -0
- package/dist/dev-toolbar/index.js.map +1 -0
- package/dist/dialog/index.d.ts +268 -0
- package/dist/dialog/index.js +288 -0
- package/dist/dialog/index.js.map +1 -0
- package/dist/faq-section/index.d.ts +47 -0
- package/dist/faq-section/index.js +152 -0
- package/dist/faq-section/index.js.map +1 -0
- package/dist/grid-overlay/index.d.ts +10 -0
- package/dist/grid-overlay/index.js +38 -0
- package/dist/grid-overlay/index.js.map +1 -0
- package/dist/hero/index.d.ts +462 -0
- package/dist/hero/index.js +494 -0
- package/dist/hero/index.js.map +1 -0
- package/dist/hooks/index.d.ts +150 -0
- package/dist/hooks/index.js +339 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +46 -5339
- package/dist/index.js +157 -4080
- package/dist/index.js.map +1 -1
- package/dist/input/index.d.ts +404 -0
- package/dist/input/index.js +393 -0
- package/dist/input/index.js.map +1 -0
- package/dist/navbar/index.d.ts +68 -0
- package/dist/navbar/index.js +227 -0
- package/dist/navbar/index.js.map +1 -0
- package/dist/ndstudio-footer/index.d.ts +32 -0
- package/dist/ndstudio-footer/index.js +35 -0
- package/dist/ndstudio-footer/index.js.map +1 -0
- package/dist/pager-control/index.d.ts +173 -0
- package/dist/pager-control/index.js +267 -0
- package/dist/pager-control/index.js.map +1 -0
- package/dist/popover/index.d.ts +200 -0
- package/dist/popover/index.js +290 -0
- package/dist/popover/index.js.map +1 -0
- package/dist/prose/index.d.ts +39 -0
- package/dist/prose/index.js +56 -0
- package/dist/prose/index.js.map +1 -0
- package/dist/quote-block/index.d.ts +156 -0
- package/dist/quote-block/index.js +321 -0
- package/dist/quote-block/index.js.map +1 -0
- package/dist/river/index.d.ts +100 -0
- package/dist/river/index.js +107 -0
- package/dist/river/index.js.map +1 -0
- package/dist/select/index.d.ts +188 -0
- package/dist/select/index.js +295 -0
- package/dist/select/index.js.map +1 -0
- package/dist/theme/index.d.ts +149 -0
- package/dist/theme/index.js +211 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme-CzBPUlh_.d.ts +332 -0
- package/dist/tooltip/index.d.ts +166 -0
- package/dist/tooltip/index.js +200 -0
- package/dist/tooltip/index.js.map +1 -0
- package/dist/tout/index.d.ts +157 -0
- package/dist/tout/index.js +315 -0
- package/dist/tout/index.js.map +1 -0
- package/dist/two-column-section/index.d.ts +122 -0
- package/dist/two-column-section/index.js +121 -0
- package/dist/two-column-section/index.js.map +1 -0
- package/dist/us-gov-banner/index.d.ts +141 -0
- package/dist/us-gov-banner/index.js +74 -0
- package/dist/us-gov-banner/index.js.map +1 -0
- package/dist/use-captions-AkKlJhov.d.ts +71 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.js +12 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/video-dialog/index.d.ts +106 -0
- package/dist/video-dialog/index.js +1305 -0
- package/dist/video-dialog/index.js.map +1 -0
- package/dist/video-player/index.d.ts +115 -0
- package/dist/video-player/index.js +879 -0
- package/dist/video-player/index.js.map +1 -0
- package/dist/video-player-qxf-BURH.d.ts +236 -0
- package/dist/video-with-backdrop/index.d.ts +267 -0
- package/dist/video-with-backdrop/index.js +1284 -0
- package/dist/video-with-backdrop/index.js.map +1 -0
- package/package.json +13 -2
- package/src/components/organisms/us-gov-banner/us-gov-banner.tsx +5 -27
- package/src/theme/hooks.ts +2 -0
- package/src/theme/index.ts +2 -0
- package/src/theme/theme-provider.tsx +2 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { clsx } from 'clsx';
|
|
3
|
+
import { tv, cnBase } from 'tailwind-variants';
|
|
4
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
// src/components/sections/faq-section/faq-section.tsx
|
|
7
|
+
function cn(...inputs) {
|
|
8
|
+
return cnBase(clsx(inputs));
|
|
9
|
+
}
|
|
10
|
+
var twoColumnSectionVariants = tv({
|
|
11
|
+
// Base styles - responsive padding using primitive spacing tokens
|
|
12
|
+
base: [
|
|
13
|
+
"w-full",
|
|
14
|
+
// Small (mobile): 20px x, 56px top, 20px bottom
|
|
15
|
+
"px-20 pt-56 pb-20",
|
|
16
|
+
// Medium (tablet): 56px x, 56px y
|
|
17
|
+
"md:px-56 md:py-56",
|
|
18
|
+
// Large (desktop): 72px x, 72px top, 112px bottom
|
|
19
|
+
"lg:px-72 lg:pt-72 lg:pb-112"
|
|
20
|
+
],
|
|
21
|
+
variants: {
|
|
22
|
+
colorScheme: {
|
|
23
|
+
dark: "bg-gray-1200",
|
|
24
|
+
light: "bg-white"
|
|
25
|
+
},
|
|
26
|
+
layout: {
|
|
27
|
+
asymmetric: "",
|
|
28
|
+
equal: ""
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
defaultVariants: {
|
|
32
|
+
colorScheme: "dark",
|
|
33
|
+
layout: "asymmetric"
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
var TwoColumnSection = React.forwardRef(
|
|
37
|
+
({
|
|
38
|
+
className,
|
|
39
|
+
colorScheme = "dark",
|
|
40
|
+
layout,
|
|
41
|
+
title,
|
|
42
|
+
lead,
|
|
43
|
+
children,
|
|
44
|
+
...props
|
|
45
|
+
}, ref) => {
|
|
46
|
+
return /* @__PURE__ */ jsx(
|
|
47
|
+
"section",
|
|
48
|
+
{
|
|
49
|
+
ref,
|
|
50
|
+
className: twoColumnSectionVariants({
|
|
51
|
+
colorScheme,
|
|
52
|
+
layout,
|
|
53
|
+
class: className
|
|
54
|
+
}),
|
|
55
|
+
...props,
|
|
56
|
+
children: /* @__PURE__ */ jsxs(
|
|
57
|
+
"div",
|
|
58
|
+
{
|
|
59
|
+
className: cn(
|
|
60
|
+
"border-t pt-36",
|
|
61
|
+
colorScheme === "dark" ? "border-gray-700" : "border-gray-300",
|
|
62
|
+
// Grid layout - uses primitive spacing tokens
|
|
63
|
+
"grid grid-cols-1 gap-56",
|
|
64
|
+
layout === "equal" ? "md:grid-cols-2" : "lg:grid-cols-24 lg:gap-56"
|
|
65
|
+
),
|
|
66
|
+
children: [
|
|
67
|
+
/* @__PURE__ */ jsx(
|
|
68
|
+
"h2",
|
|
69
|
+
{
|
|
70
|
+
className: cn(
|
|
71
|
+
"typography-subheading-medium",
|
|
72
|
+
colorScheme === "dark" ? "text-gray-100" : "text-gray-900",
|
|
73
|
+
// Column span based on layout
|
|
74
|
+
layout !== "equal" && "lg:col-span-9"
|
|
75
|
+
),
|
|
76
|
+
children: title
|
|
77
|
+
}
|
|
78
|
+
),
|
|
79
|
+
/* @__PURE__ */ jsxs(
|
|
80
|
+
"div",
|
|
81
|
+
{
|
|
82
|
+
className: cn(
|
|
83
|
+
"flex flex-col gap-56",
|
|
84
|
+
layout !== "equal" && "lg:col-span-15"
|
|
85
|
+
),
|
|
86
|
+
children: [
|
|
87
|
+
lead && /* @__PURE__ */ jsx(
|
|
88
|
+
"div",
|
|
89
|
+
{
|
|
90
|
+
className: cn(
|
|
91
|
+
"typography-body-large",
|
|
92
|
+
colorScheme === "dark" ? "text-gray-100" : "text-gray-900"
|
|
93
|
+
),
|
|
94
|
+
children: typeof lead === "string" ? /* @__PURE__ */ jsx("p", { children: lead }) : lead
|
|
95
|
+
}
|
|
96
|
+
),
|
|
97
|
+
/* @__PURE__ */ jsx(
|
|
98
|
+
"div",
|
|
99
|
+
{
|
|
100
|
+
className: cn(
|
|
101
|
+
"typography-body-medium flex flex-col gap-[1em]",
|
|
102
|
+
colorScheme === "dark" ? "text-gray-400" : "text-gray-600"
|
|
103
|
+
),
|
|
104
|
+
children
|
|
105
|
+
}
|
|
106
|
+
)
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
)
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
)
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
);
|
|
117
|
+
TwoColumnSection.displayName = "TwoColumnSection";
|
|
118
|
+
var FaqSection = React.forwardRef(
|
|
119
|
+
({
|
|
120
|
+
className,
|
|
121
|
+
colorScheme = "light",
|
|
122
|
+
title = "Frequently Asked Questions",
|
|
123
|
+
children,
|
|
124
|
+
layout,
|
|
125
|
+
...props
|
|
126
|
+
}, ref) => {
|
|
127
|
+
return /* @__PURE__ */ jsx(
|
|
128
|
+
TwoColumnSection,
|
|
129
|
+
{
|
|
130
|
+
ref,
|
|
131
|
+
colorScheme,
|
|
132
|
+
layout: layout ?? void 0,
|
|
133
|
+
title,
|
|
134
|
+
className: cn(
|
|
135
|
+
// Override title typography to be larger
|
|
136
|
+
"[&_h2]:typography-h4",
|
|
137
|
+
// Accordion typography overrides
|
|
138
|
+
"[&_button]:typography-body-large [&_button]:md:typography-h5",
|
|
139
|
+
"[&_[data-accordion-panel]]:typography-body-medium [&_[data-accordion-panel]]:md:typography-body-large",
|
|
140
|
+
className
|
|
141
|
+
),
|
|
142
|
+
...props,
|
|
143
|
+
children
|
|
144
|
+
}
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
);
|
|
148
|
+
FaqSection.displayName = "FaqSection";
|
|
149
|
+
|
|
150
|
+
export { FaqSection };
|
|
151
|
+
//# sourceMappingURL=index.js.map
|
|
152
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/utils.ts","../../src/components/sections/two-column-section/two-column-section.tsx","../../src/components/sections/faq-section/faq-section.tsx"],"names":["twMerge","React2","jsx"],"mappings":"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","file":"index.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { cnBase as twMerge } from \"tailwind-variants\";\n\nexport { twMerge };\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * TwoColumnSection component for text-heavy content sections\n *\n * Layout:\n * - Desktop (lg+): Title left, content right with border-top divider\n * - Mobile/Tablet: Stacked vertically\n *\n * Uses the 24-column grid system.\n */\nconst twoColumnSectionVariants = tv({\n\t// Base styles - responsive padding using primitive spacing tokens\n\tbase: [\n\t\t\"w-full\",\n\t\t// Small (mobile): 20px x, 56px top, 20px bottom\n\t\t\"px-20 pt-56 pb-20\",\n\t\t// Medium (tablet): 56px x, 56px y\n\t\t\"md:px-56 md:py-56\",\n\t\t// Large (desktop): 72px x, 72px top, 112px bottom\n\t\t\"lg:px-72 lg:pt-72 lg:pb-112\",\n\t],\n\tvariants: {\n\t\tcolorScheme: {\n\t\t\tdark: \"bg-gray-1200\",\n\t\t\tlight: \"bg-white\",\n\t\t},\n\t\tlayout: {\n\t\t\tasymmetric: \"\",\n\t\t\tequal: \"\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tcolorScheme: \"dark\",\n\t\tlayout: \"asymmetric\",\n\t},\n});\n\nexport interface TwoColumnSectionProps\n\textends React.HTMLAttributes<HTMLElement>,\n\t\tVariantProps<typeof twoColumnSectionVariants> {\n\t/**\n\t * The title text displayed in the left column\n\t */\n\ttitle: string;\n\t/**\n\t * Lead content - prominently styled (brighter text)\n\t * Can be a string or ReactNode for rich content\n\t */\n\tlead?: React.ReactNode;\n\t/**\n\t * Body content - secondary styled (muted text)\n\t * Can be a string or ReactNode for rich content\n\t */\n\tchildren: React.ReactNode;\n\t/**\n\t * Layout style for the columns\n\t * - \"asymmetric\" (default): Uses 24-column grid with ~40/60 split (title: 9, content: 15)\n\t * - \"equal\": Simple 2-column equal-width layout at md+ breakpoints\n\t */\n\tlayout?: \"asymmetric\" | \"equal\";\n}\n\n/**\n * TwoColumnSection component for text-heavy content with title/content split.\n *\n * Layout:\n * - Mobile/Tablet: Stacked (title above content)\n * - Desktop (lg+): Title left (~40%), Content right (~60%)\n *\n * @example\n * ```tsx\n * <TwoColumnSection\n * title=\"US Tech Force\"\n * lead=\"The US Tech Force is recruiting an elite corps of engineers...\"\n * variant=\"dark\"\n * >\n * <p>Through a two-year program, participants will work...</p>\n * <p>Upon completing the program, engineers can seek...</p>\n * </TwoColumnSection>\n * ```\n */\nconst TwoColumnSection = React.forwardRef<HTMLElement, TwoColumnSectionProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tcolorScheme = \"dark\",\n\t\t\tlayout,\n\t\t\ttitle,\n\t\t\tlead,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\treturn (\n\t\t\t<section\n\t\t\t\tref={ref}\n\t\t\t\tclassName={twoColumnSectionVariants({\n\t\t\t\t\tcolorScheme,\n\t\t\t\t\tlayout,\n\t\t\t\t\tclass: className,\n\t\t\t\t})}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{/* Inner container with border-top - uses primitive spacing tokens */}\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"border-t pt-36\",\n\t\t\t\t\t\tcolorScheme === \"dark\" ? \"border-gray-700\" : \"border-gray-300\",\n\t\t\t\t\t\t// Grid layout - uses primitive spacing tokens\n\t\t\t\t\t\t\"grid grid-cols-1 gap-56\",\n\t\t\t\t\t\tlayout === \"equal\" ? \"md:grid-cols-2\" : \"lg:grid-cols-24 lg:gap-56\",\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{/* Title column */}\n\t\t\t\t\t<h2\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"typography-subheading-medium\",\n\t\t\t\t\t\t\tcolorScheme === \"dark\" ? \"text-gray-100\" : \"text-gray-900\",\n\t\t\t\t\t\t\t// Column span based on layout\n\t\t\t\t\t\t\tlayout !== \"equal\" && \"lg:col-span-9\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</h2>\n\n\t\t\t\t\t{/* Content column - uses primitive spacing tokens */}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"flex flex-col gap-56\",\n\t\t\t\t\t\t\tlayout !== \"equal\" && \"lg:col-span-15\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Lead content - brighter/prominent */}\n\t\t\t\t\t\t{lead && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"typography-body-large\",\n\t\t\t\t\t\t\t\t\tcolorScheme === \"dark\" ? \"text-gray-100\" : \"text-gray-900\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{typeof lead === \"string\" ? <p>{lead}</p> : lead}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* Body content - muted */}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"typography-body-medium flex flex-col gap-[1em]\",\n\t\t\t\t\t\t\t\tcolorScheme === \"dark\" ? \"text-gray-400\" : \"text-gray-600\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t);\n\t},\n);\nTwoColumnSection.displayName = \"TwoColumnSection\";\n\nexport { TwoColumnSection, twoColumnSectionVariants };\n","import * as React from \"react\";\nimport type { VariantProps } from \"tailwind-variants\";\nimport { cn } from \"@/lib/utils\";\nimport { TwoColumnSection } from \"../two-column-section\";\nimport type { twoColumnSectionVariants } from \"../two-column-section/two-column-section\";\n\nexport interface FaqSectionProps\n\textends Omit<React.HTMLAttributes<HTMLElement>, \"title\">,\n\t\tVariantProps<typeof twoColumnSectionVariants> {\n\t/**\n\t * The title text displayed in the left column\n\t * @default \"Frequently Asked Questions\"\n\t */\n\ttitle?: string;\n\t/**\n\t * The FAQ content - typically an Accordion with AccordionItems\n\t */\n\tchildren: React.ReactNode;\n}\n\n/**\n * FaqSection component for displaying FAQ content in a two-column layout.\n *\n * Wraps TwoColumnSection with FAQ-specific defaults and typography.\n *\n * Layout:\n * - Mobile/Tablet: Stacked (title above content)\n * - Desktop (lg+): Title left (~40%), FAQ content right (~60%)\n *\n * @example\n * ```tsx\n * <FaqSection>\n * <Accordion defaultExpanded=\"faq-1\">\n * <AccordionItem id=\"faq-1\" title=\"What is the US Tech Force?\">\n * Tech Force will be an elite group of technology specialists...\n * </AccordionItem>\n * <AccordionItem id=\"faq-2\" title=\"What skills are required?\">\n * We're looking for expertise in software engineering...\n * </AccordionItem>\n * </Accordion>\n * </FaqSection>\n *\n * // With custom title\n * <FaqSection title=\"Common Questions\" colorScheme=\"light\">\n * ...\n * </FaqSection>\n * ```\n */\nconst FaqSection = React.forwardRef<HTMLElement, FaqSectionProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tcolorScheme = \"light\",\n\t\t\ttitle = \"Frequently Asked Questions\",\n\t\t\tchildren,\n\t\t\tlayout,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\treturn (\n\t\t\t<TwoColumnSection\n\t\t\t\tref={ref}\n\t\t\t\tcolorScheme={colorScheme}\n\t\t\t\tlayout={layout ?? undefined}\n\t\t\t\ttitle={title}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t// Override title typography to be larger\n\t\t\t\t\t\"[&_h2]:typography-h4\",\n\t\t\t\t\t// Accordion typography overrides\n\t\t\t\t\t\"[&_button]:typography-body-large [&_button]:md:typography-h5\",\n\t\t\t\t\t\"[&_[data-accordion-panel]]:typography-body-medium [&_[data-accordion-panel]]:md:typography-body-large\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</TwoColumnSection>\n\t\t);\n\t},\n);\nFaqSection.displayName = \"FaqSection\";\n\nexport { FaqSection };\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
interface GridOverlayProps {
|
|
4
|
+
columnOpacity?: number;
|
|
5
|
+
borderOpacity?: number;
|
|
6
|
+
visible?: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare function GridOverlay({ columnOpacity, borderOpacity, visible, }: GridOverlayProps): react_jsx_runtime.JSX.Element;
|
|
9
|
+
|
|
10
|
+
export { GridOverlay, type GridOverlayProps };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
// src/components/dev-tools/grid-overlay/grid-overlay.tsx
|
|
4
|
+
function GridOverlay({
|
|
5
|
+
columnOpacity = 0.15,
|
|
6
|
+
borderOpacity = 0.3,
|
|
7
|
+
visible = true
|
|
8
|
+
}) {
|
|
9
|
+
const columns = Array.from({ length: 24 }, (_, i) => i);
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
"div",
|
|
12
|
+
{
|
|
13
|
+
className: `
|
|
14
|
+
fixed inset-0 z-[9998] pointer-events-none overflow-hidden
|
|
15
|
+
transition-opacity duration-300 ease-out
|
|
16
|
+
${visible ? "opacity-100" : "opacity-0"}
|
|
17
|
+
`,
|
|
18
|
+
"aria-hidden": "true",
|
|
19
|
+
"data-testid": "grid-overlay",
|
|
20
|
+
children: /* @__PURE__ */ jsx("div", { className: "h-full w-full max-w-[90rem] mx-auto px-[var(--spatial-grid-small-margin)] md:px-[var(--spatial-grid-medium-margin)] lg:px-[var(--spatial-grid-large-margin)]", children: /* @__PURE__ */ jsx("div", { className: "h-full grid grid-cols-4 md:grid-cols-12 lg:grid-cols-24 gap-[var(--spatial-grid-small-gutter)] md:gap-[var(--spatial-grid-medium-gutter)] lg:gap-[var(--spatial-grid-large-gutter)]", children: columns.map((index) => /* @__PURE__ */ jsx(
|
|
21
|
+
"div",
|
|
22
|
+
{
|
|
23
|
+
className: "h-full border border-red-500",
|
|
24
|
+
style: {
|
|
25
|
+
backgroundColor: `rgb(239 68 68 / ${columnOpacity})`,
|
|
26
|
+
borderColor: `rgb(239 68 68 / ${borderOpacity})`
|
|
27
|
+
},
|
|
28
|
+
"data-column": index + 1
|
|
29
|
+
},
|
|
30
|
+
index
|
|
31
|
+
)) }) })
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { GridOverlay };
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/dev-tools/grid-overlay/grid-overlay.tsx"],"names":[],"mappings":";;;AAMO,SAAS,WAAA,CAAY;AAAA,EAC3B,aAAA,GAAgB,IAAA;AAAA,EAChB,aAAA,GAAgB,GAAA;AAAA,EAChB,OAAA,GAAU;AACX,CAAA,EAAqB;AACpB,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAG,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,CAAC,CAAA;AAEtD,EAAA,uBACC,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAW;AAAA;AAAA;AAAA,IAAA,EAGR,OAAA,GAAU,gBAAgB,WAAW;AAAA,GAAA,CAAA;AAAA,MAExC,aAAA,EAAY,MAAA;AAAA,MACZ,aAAA,EAAY,cAAA;AAAA,MAEZ,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8JAAA,EACd,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qLAAA,EACb,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,KAAA,qBACb,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UAEA,SAAA,EAAU,8BAAA;AAAA,UACV,KAAA,EAAO;AAAA,YACN,eAAA,EAAiB,mBAAmB,aAAa,CAAA,CAAA,CAAA;AAAA,YACjD,WAAA,EAAa,mBAAmB,aAAa,CAAA,CAAA;AAAA,WAC9C;AAAA,UACA,eAAa,KAAA,GAAQ;AAAA,SAAA;AAAA,QANhB;AAAA,OAQN,GACF,CAAA,EACD;AAAA;AAAA,GACD;AAEF","file":"index.js","sourcesContent":["export interface GridOverlayProps {\n\tcolumnOpacity?: number;\n\tborderOpacity?: number;\n\tvisible?: boolean;\n}\n\nexport function GridOverlay({\n\tcolumnOpacity = 0.15,\n\tborderOpacity = 0.3,\n\tvisible = true,\n}: GridOverlayProps) {\n\tconst columns = Array.from({ length: 24 }, (_, i) => i);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`\n\t\t\t\tfixed inset-0 z-[9998] pointer-events-none overflow-hidden\n\t\t\t\ttransition-opacity duration-300 ease-out\n\t\t\t\t${visible ? \"opacity-100\" : \"opacity-0\"}\n\t\t\t`}\n\t\t\taria-hidden=\"true\"\n\t\t\tdata-testid=\"grid-overlay\"\n\t\t>\n\t\t\t<div className=\"h-full w-full max-w-[90rem] mx-auto px-[var(--spatial-grid-small-margin)] md:px-[var(--spatial-grid-medium-margin)] lg:px-[var(--spatial-grid-large-margin)]\">\n\t\t\t\t<div className=\"h-full grid grid-cols-4 md:grid-cols-12 lg:grid-cols-24 gap-[var(--spatial-grid-small-gutter)] md:gap-[var(--spatial-grid-medium-gutter)] lg:gap-[var(--spatial-grid-large-gutter)]\">\n\t\t\t\t\t{columns.map((index) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tclassName=\"h-full border border-red-500\"\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: `rgb(239 68 68 / ${columnOpacity})`,\n\t\t\t\t\t\t\t\tborderColor: `rgb(239 68 68 / ${borderOpacity})`,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdata-column={index + 1}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
import * as tailwind_variants from 'tailwind-variants';
|
|
2
|
+
import { VariantProps } from 'tailwind-variants';
|
|
3
|
+
import * as tailwind_variants_dist_config_js from 'tailwind-variants/dist/config.js';
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { a as ComponentTheme } from '../theme-CzBPUlh_.js';
|
|
6
|
+
export { Background as HeroBackground, BackgroundImage as HeroBackgroundImage, BackgroundImageProps as HeroBackgroundImageProps, BackgroundStream as HeroBackgroundStream, BackgroundStreamProps as HeroBackgroundStreamProps, BackgroundVideo as HeroBackgroundVideo, BackgroundVideoProps as HeroBackgroundVideoProps, BackgroundGradient as HeroGradient, BackgroundGradientProps as HeroGradientProps, BackgroundOverlay as HeroOverlay, BackgroundOverlayProps as HeroOverlayProps } from '../background/index.js';
|
|
7
|
+
import 'react/jsx-runtime';
|
|
8
|
+
import '@base-ui-components/react/use-render';
|
|
9
|
+
|
|
10
|
+
declare const DEFAULT_TITLE_TYPOGRAPHY = "typography-h1-display";
|
|
11
|
+
declare const heroVariants: tailwind_variants.TVReturnType<{
|
|
12
|
+
variant: {
|
|
13
|
+
A1: {
|
|
14
|
+
root: string;
|
|
15
|
+
content: string[];
|
|
16
|
+
};
|
|
17
|
+
A2: {
|
|
18
|
+
root: string;
|
|
19
|
+
content: string[];
|
|
20
|
+
};
|
|
21
|
+
A3: {
|
|
22
|
+
root: string;
|
|
23
|
+
content: string[];
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Vertical alignment of content within the hero.
|
|
28
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
29
|
+
*/
|
|
30
|
+
contentAlign: {
|
|
31
|
+
top: {
|
|
32
|
+
content: string;
|
|
33
|
+
};
|
|
34
|
+
center: {
|
|
35
|
+
content: string;
|
|
36
|
+
};
|
|
37
|
+
bottom: {
|
|
38
|
+
content: string;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
colorScheme: {
|
|
42
|
+
dark: {
|
|
43
|
+
root: string;
|
|
44
|
+
title: string;
|
|
45
|
+
};
|
|
46
|
+
light: {
|
|
47
|
+
root: string;
|
|
48
|
+
title: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
hasBackground: {
|
|
52
|
+
true: {
|
|
53
|
+
root: string;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
}, {
|
|
57
|
+
root: string;
|
|
58
|
+
top: string;
|
|
59
|
+
content: string[];
|
|
60
|
+
title: string;
|
|
61
|
+
indicator: string;
|
|
62
|
+
}, undefined, tailwind_variants_dist_config_js.TVConfig<{
|
|
63
|
+
variant: {
|
|
64
|
+
A1: {
|
|
65
|
+
root: string;
|
|
66
|
+
content: string[];
|
|
67
|
+
};
|
|
68
|
+
A2: {
|
|
69
|
+
root: string;
|
|
70
|
+
content: string[];
|
|
71
|
+
};
|
|
72
|
+
A3: {
|
|
73
|
+
root: string;
|
|
74
|
+
content: string[];
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Vertical alignment of content within the hero.
|
|
79
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
80
|
+
*/
|
|
81
|
+
contentAlign: {
|
|
82
|
+
top: {
|
|
83
|
+
content: string;
|
|
84
|
+
};
|
|
85
|
+
center: {
|
|
86
|
+
content: string;
|
|
87
|
+
};
|
|
88
|
+
bottom: {
|
|
89
|
+
content: string;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
colorScheme: {
|
|
93
|
+
dark: {
|
|
94
|
+
root: string;
|
|
95
|
+
title: string;
|
|
96
|
+
};
|
|
97
|
+
light: {
|
|
98
|
+
root: string;
|
|
99
|
+
title: string;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
hasBackground: {
|
|
103
|
+
true: {
|
|
104
|
+
root: string;
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
}, {
|
|
108
|
+
variant: {
|
|
109
|
+
A1: {
|
|
110
|
+
root: string;
|
|
111
|
+
content: string[];
|
|
112
|
+
};
|
|
113
|
+
A2: {
|
|
114
|
+
root: string;
|
|
115
|
+
content: string[];
|
|
116
|
+
};
|
|
117
|
+
A3: {
|
|
118
|
+
root: string;
|
|
119
|
+
content: string[];
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Vertical alignment of content within the hero.
|
|
124
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
125
|
+
*/
|
|
126
|
+
contentAlign: {
|
|
127
|
+
top: {
|
|
128
|
+
content: string;
|
|
129
|
+
};
|
|
130
|
+
center: {
|
|
131
|
+
content: string;
|
|
132
|
+
};
|
|
133
|
+
bottom: {
|
|
134
|
+
content: string;
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
colorScheme: {
|
|
138
|
+
dark: {
|
|
139
|
+
root: string;
|
|
140
|
+
title: string;
|
|
141
|
+
};
|
|
142
|
+
light: {
|
|
143
|
+
root: string;
|
|
144
|
+
title: string;
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
hasBackground: {
|
|
148
|
+
true: {
|
|
149
|
+
root: string;
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
}>, {
|
|
153
|
+
variant: {
|
|
154
|
+
A1: {
|
|
155
|
+
root: string;
|
|
156
|
+
content: string[];
|
|
157
|
+
};
|
|
158
|
+
A2: {
|
|
159
|
+
root: string;
|
|
160
|
+
content: string[];
|
|
161
|
+
};
|
|
162
|
+
A3: {
|
|
163
|
+
root: string;
|
|
164
|
+
content: string[];
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* Vertical alignment of content within the hero.
|
|
169
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
170
|
+
*/
|
|
171
|
+
contentAlign: {
|
|
172
|
+
top: {
|
|
173
|
+
content: string;
|
|
174
|
+
};
|
|
175
|
+
center: {
|
|
176
|
+
content: string;
|
|
177
|
+
};
|
|
178
|
+
bottom: {
|
|
179
|
+
content: string;
|
|
180
|
+
};
|
|
181
|
+
};
|
|
182
|
+
colorScheme: {
|
|
183
|
+
dark: {
|
|
184
|
+
root: string;
|
|
185
|
+
title: string;
|
|
186
|
+
};
|
|
187
|
+
light: {
|
|
188
|
+
root: string;
|
|
189
|
+
title: string;
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
hasBackground: {
|
|
193
|
+
true: {
|
|
194
|
+
root: string;
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
}, {
|
|
198
|
+
root: string;
|
|
199
|
+
top: string;
|
|
200
|
+
content: string[];
|
|
201
|
+
title: string;
|
|
202
|
+
indicator: string;
|
|
203
|
+
}, tailwind_variants.TVReturnType<{
|
|
204
|
+
variant: {
|
|
205
|
+
A1: {
|
|
206
|
+
root: string;
|
|
207
|
+
content: string[];
|
|
208
|
+
};
|
|
209
|
+
A2: {
|
|
210
|
+
root: string;
|
|
211
|
+
content: string[];
|
|
212
|
+
};
|
|
213
|
+
A3: {
|
|
214
|
+
root: string;
|
|
215
|
+
content: string[];
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
/**
|
|
219
|
+
* Vertical alignment of content within the hero.
|
|
220
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
221
|
+
*/
|
|
222
|
+
contentAlign: {
|
|
223
|
+
top: {
|
|
224
|
+
content: string;
|
|
225
|
+
};
|
|
226
|
+
center: {
|
|
227
|
+
content: string;
|
|
228
|
+
};
|
|
229
|
+
bottom: {
|
|
230
|
+
content: string;
|
|
231
|
+
};
|
|
232
|
+
};
|
|
233
|
+
colorScheme: {
|
|
234
|
+
dark: {
|
|
235
|
+
root: string;
|
|
236
|
+
title: string;
|
|
237
|
+
};
|
|
238
|
+
light: {
|
|
239
|
+
root: string;
|
|
240
|
+
title: string;
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
hasBackground: {
|
|
244
|
+
true: {
|
|
245
|
+
root: string;
|
|
246
|
+
};
|
|
247
|
+
};
|
|
248
|
+
}, {
|
|
249
|
+
root: string;
|
|
250
|
+
top: string;
|
|
251
|
+
content: string[];
|
|
252
|
+
title: string;
|
|
253
|
+
indicator: string;
|
|
254
|
+
}, undefined, tailwind_variants_dist_config_js.TVConfig<{
|
|
255
|
+
variant: {
|
|
256
|
+
A1: {
|
|
257
|
+
root: string;
|
|
258
|
+
content: string[];
|
|
259
|
+
};
|
|
260
|
+
A2: {
|
|
261
|
+
root: string;
|
|
262
|
+
content: string[];
|
|
263
|
+
};
|
|
264
|
+
A3: {
|
|
265
|
+
root: string;
|
|
266
|
+
content: string[];
|
|
267
|
+
};
|
|
268
|
+
};
|
|
269
|
+
/**
|
|
270
|
+
* Vertical alignment of content within the hero.
|
|
271
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
272
|
+
*/
|
|
273
|
+
contentAlign: {
|
|
274
|
+
top: {
|
|
275
|
+
content: string;
|
|
276
|
+
};
|
|
277
|
+
center: {
|
|
278
|
+
content: string;
|
|
279
|
+
};
|
|
280
|
+
bottom: {
|
|
281
|
+
content: string;
|
|
282
|
+
};
|
|
283
|
+
};
|
|
284
|
+
colorScheme: {
|
|
285
|
+
dark: {
|
|
286
|
+
root: string;
|
|
287
|
+
title: string;
|
|
288
|
+
};
|
|
289
|
+
light: {
|
|
290
|
+
root: string;
|
|
291
|
+
title: string;
|
|
292
|
+
};
|
|
293
|
+
};
|
|
294
|
+
hasBackground: {
|
|
295
|
+
true: {
|
|
296
|
+
root: string;
|
|
297
|
+
};
|
|
298
|
+
};
|
|
299
|
+
}, {
|
|
300
|
+
variant: {
|
|
301
|
+
A1: {
|
|
302
|
+
root: string;
|
|
303
|
+
content: string[];
|
|
304
|
+
};
|
|
305
|
+
A2: {
|
|
306
|
+
root: string;
|
|
307
|
+
content: string[];
|
|
308
|
+
};
|
|
309
|
+
A3: {
|
|
310
|
+
root: string;
|
|
311
|
+
content: string[];
|
|
312
|
+
};
|
|
313
|
+
};
|
|
314
|
+
/**
|
|
315
|
+
* Vertical alignment of content within the hero.
|
|
316
|
+
* Provides a simpler API than variant for basic alignment needs.
|
|
317
|
+
*/
|
|
318
|
+
contentAlign: {
|
|
319
|
+
top: {
|
|
320
|
+
content: string;
|
|
321
|
+
};
|
|
322
|
+
center: {
|
|
323
|
+
content: string;
|
|
324
|
+
};
|
|
325
|
+
bottom: {
|
|
326
|
+
content: string;
|
|
327
|
+
};
|
|
328
|
+
};
|
|
329
|
+
colorScheme: {
|
|
330
|
+
dark: {
|
|
331
|
+
root: string;
|
|
332
|
+
title: string;
|
|
333
|
+
};
|
|
334
|
+
light: {
|
|
335
|
+
root: string;
|
|
336
|
+
title: string;
|
|
337
|
+
};
|
|
338
|
+
};
|
|
339
|
+
hasBackground: {
|
|
340
|
+
true: {
|
|
341
|
+
root: string;
|
|
342
|
+
};
|
|
343
|
+
};
|
|
344
|
+
}>, unknown, unknown, undefined>>;
|
|
345
|
+
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>>;
|
|
346
|
+
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>>;
|
|
347
|
+
interface HeroHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Header slot for Hero - used for navigation, gov banners, etc.
|
|
351
|
+
* Full-width with no padding, sits at the top of the hero.
|
|
352
|
+
*/
|
|
353
|
+
declare const HeroHeader: React.ForwardRefExoticComponent<HeroHeaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
354
|
+
interface HeroContentProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Content container for Hero - use for main content.
|
|
358
|
+
* Has padding and sits above backgrounds with z-10.
|
|
359
|
+
*/
|
|
360
|
+
declare const HeroContent: React.ForwardRefExoticComponent<HeroContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
361
|
+
interface HeroProps extends Omit<React.HTMLAttributes<HTMLElement>, "title">, VariantProps<typeof heroVariants> {
|
|
362
|
+
/**
|
|
363
|
+
* The title text displayed in the hero.
|
|
364
|
+
* If provided, renders an h1 with default typography.
|
|
365
|
+
* Omit to use children for custom content composition.
|
|
366
|
+
*/
|
|
367
|
+
title?: string;
|
|
368
|
+
/**
|
|
369
|
+
* Custom typography class for the title using primitive tokens.
|
|
370
|
+
* Default: "typography-h1-display"
|
|
371
|
+
*/
|
|
372
|
+
titleClassName?: string;
|
|
373
|
+
/**
|
|
374
|
+
* Color scheme for text content.
|
|
375
|
+
* - dark: Dark text for use on light backgrounds (default)
|
|
376
|
+
* - light: Light text for use on dark backgrounds
|
|
377
|
+
*/
|
|
378
|
+
colorScheme?: "dark" | "light";
|
|
379
|
+
/**
|
|
380
|
+
* Content for the top slot (full-width, no padding).
|
|
381
|
+
* Use for USGovBanner, Navigation, etc.
|
|
382
|
+
*/
|
|
383
|
+
top?: React.ReactNode;
|
|
384
|
+
/**
|
|
385
|
+
* Indicator slot for scroll hints, arrows, or other visual cues.
|
|
386
|
+
* Rendered at the bottom of the hero, below the main content.
|
|
387
|
+
* @example
|
|
388
|
+
* ```tsx
|
|
389
|
+
* <Hero indicator={<ChevronDown className="animate-bounce" />}>
|
|
390
|
+
* <h1>Welcome</h1>
|
|
391
|
+
* </Hero>
|
|
392
|
+
* ```
|
|
393
|
+
*/
|
|
394
|
+
indicator?: React.ReactNode;
|
|
395
|
+
/**
|
|
396
|
+
* Background for the hero. Can be:
|
|
397
|
+
* - A color string (hex, rgb, etc.) for solid backgrounds
|
|
398
|
+
* - A ReactNode (use HeroBackground.Image, HeroBackground.Video, or HeroBackground.Stream)
|
|
399
|
+
*/
|
|
400
|
+
background?: React.ReactNode | string;
|
|
401
|
+
/**
|
|
402
|
+
* Opacity of the overlay (0-1, default: 0)
|
|
403
|
+
* Only applies when using a background slot
|
|
404
|
+
*/
|
|
405
|
+
overlayOpacity?: number;
|
|
406
|
+
/**
|
|
407
|
+
* Color of the overlay (default: "black")
|
|
408
|
+
*/
|
|
409
|
+
overlayColor?: string;
|
|
410
|
+
/**
|
|
411
|
+
* Border radius for the hero container
|
|
412
|
+
* Useful for designs with rounded bottom corners
|
|
413
|
+
*/
|
|
414
|
+
borderRadius?: string;
|
|
415
|
+
/**
|
|
416
|
+
* Theme overrides for component styling via CSS custom properties
|
|
417
|
+
*/
|
|
418
|
+
theme?: ComponentTheme;
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Hero component for page headers with large display typography.
|
|
422
|
+
*
|
|
423
|
+
* Slots:
|
|
424
|
+
* - `top`: Full-width slot at top for USGovBanner, Navigation (no padding)
|
|
425
|
+
* - `children`: Main content slot with padding and alignment
|
|
426
|
+
*
|
|
427
|
+
* The `title` prop is a convenience for simple heroes - it renders an h1 with
|
|
428
|
+
* responsive typography. Children are always rendered, so you can use both
|
|
429
|
+
* or just children for full control.
|
|
430
|
+
*
|
|
431
|
+
* Variants:
|
|
432
|
+
* - A1: Content at bottom (default)
|
|
433
|
+
* - A2: Content at top
|
|
434
|
+
* - A3: Content centered
|
|
435
|
+
*
|
|
436
|
+
* @example
|
|
437
|
+
* ```tsx
|
|
438
|
+
* // Simple - just title and background
|
|
439
|
+
* <Hero title="Welcome" background="#1a1a1a" />
|
|
440
|
+
*
|
|
441
|
+
* // With top slot for banner/nav
|
|
442
|
+
* <Hero
|
|
443
|
+
* variant="A1"
|
|
444
|
+
* background={<HeroBackground.Image src="/hero.jpg" />}
|
|
445
|
+
* top={
|
|
446
|
+
* <>
|
|
447
|
+
* <USGovBanner variant="inverted" />
|
|
448
|
+
* <Navigation />
|
|
449
|
+
* </>
|
|
450
|
+
* }
|
|
451
|
+
* >
|
|
452
|
+
* <h1>Board of Peace</h1>
|
|
453
|
+
* <p>Subtitle goes here</p>
|
|
454
|
+
* </Hero>
|
|
455
|
+
* ```
|
|
456
|
+
*/
|
|
457
|
+
declare const Hero: React.ForwardRefExoticComponent<HeroProps & React.RefAttributes<HTMLElement>> & {
|
|
458
|
+
Header: typeof HeroHeader;
|
|
459
|
+
Content: typeof HeroContent;
|
|
460
|
+
};
|
|
461
|
+
|
|
462
|
+
export { DEFAULT_TITLE_TYPOGRAPHY, Hero, HeroContent, type HeroContentProps, HeroHeader, type HeroHeaderProps, type HeroProps, heroContentVariants, heroHeaderVariants, heroVariants };
|