@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.
Files changed (106) hide show
  1. package/dist/accordion/index.d.ts +95 -0
  2. package/dist/accordion/index.js +143 -0
  3. package/dist/accordion/index.js.map +1 -0
  4. package/dist/background/index.d.ts +149 -0
  5. package/dist/background/index.js +200 -0
  6. package/dist/background/index.js.map +1 -0
  7. package/dist/banner/index.d.ts +101 -0
  8. package/dist/banner/index.js +81 -0
  9. package/dist/banner/index.js.map +1 -0
  10. package/dist/blurred-video-backdrop/index.d.ts +233 -0
  11. package/dist/blurred-video-backdrop/index.js +266 -0
  12. package/dist/blurred-video-backdrop/index.js.map +1 -0
  13. package/dist/button/index.d.ts +180 -0
  14. package/dist/button/index.js +169 -0
  15. package/dist/button/index.js.map +1 -0
  16. package/dist/button-B2g5fH9b.d.ts +152 -0
  17. package/dist/card/index.d.ts +406 -0
  18. package/dist/card/index.js +219 -0
  19. package/dist/card/index.js.map +1 -0
  20. package/dist/card-grid/index.d.ts +90 -0
  21. package/dist/card-grid/index.js +74 -0
  22. package/dist/card-grid/index.js.map +1 -0
  23. package/dist/component-registry.md +136 -2
  24. package/dist/dev-toolbar/index.d.ts +8 -0
  25. package/dist/dev-toolbar/index.js +206 -0
  26. package/dist/dev-toolbar/index.js.map +1 -0
  27. package/dist/dialog/index.d.ts +268 -0
  28. package/dist/dialog/index.js +288 -0
  29. package/dist/dialog/index.js.map +1 -0
  30. package/dist/faq-section/index.d.ts +47 -0
  31. package/dist/faq-section/index.js +152 -0
  32. package/dist/faq-section/index.js.map +1 -0
  33. package/dist/grid-overlay/index.d.ts +10 -0
  34. package/dist/grid-overlay/index.js +38 -0
  35. package/dist/grid-overlay/index.js.map +1 -0
  36. package/dist/hero/index.d.ts +462 -0
  37. package/dist/hero/index.js +494 -0
  38. package/dist/hero/index.js.map +1 -0
  39. package/dist/hooks/index.d.ts +150 -0
  40. package/dist/hooks/index.js +339 -0
  41. package/dist/hooks/index.js.map +1 -0
  42. package/dist/index.d.ts +46 -5339
  43. package/dist/index.js +157 -4080
  44. package/dist/index.js.map +1 -1
  45. package/dist/input/index.d.ts +404 -0
  46. package/dist/input/index.js +393 -0
  47. package/dist/input/index.js.map +1 -0
  48. package/dist/navbar/index.d.ts +68 -0
  49. package/dist/navbar/index.js +227 -0
  50. package/dist/navbar/index.js.map +1 -0
  51. package/dist/ndstudio-footer/index.d.ts +32 -0
  52. package/dist/ndstudio-footer/index.js +35 -0
  53. package/dist/ndstudio-footer/index.js.map +1 -0
  54. package/dist/pager-control/index.d.ts +173 -0
  55. package/dist/pager-control/index.js +267 -0
  56. package/dist/pager-control/index.js.map +1 -0
  57. package/dist/popover/index.d.ts +200 -0
  58. package/dist/popover/index.js +290 -0
  59. package/dist/popover/index.js.map +1 -0
  60. package/dist/prose/index.d.ts +39 -0
  61. package/dist/prose/index.js +56 -0
  62. package/dist/prose/index.js.map +1 -0
  63. package/dist/quote-block/index.d.ts +156 -0
  64. package/dist/quote-block/index.js +321 -0
  65. package/dist/quote-block/index.js.map +1 -0
  66. package/dist/river/index.d.ts +100 -0
  67. package/dist/river/index.js +107 -0
  68. package/dist/river/index.js.map +1 -0
  69. package/dist/select/index.d.ts +188 -0
  70. package/dist/select/index.js +295 -0
  71. package/dist/select/index.js.map +1 -0
  72. package/dist/theme/index.d.ts +149 -0
  73. package/dist/theme/index.js +211 -0
  74. package/dist/theme/index.js.map +1 -0
  75. package/dist/theme-CzBPUlh_.d.ts +332 -0
  76. package/dist/tooltip/index.d.ts +166 -0
  77. package/dist/tooltip/index.js +200 -0
  78. package/dist/tooltip/index.js.map +1 -0
  79. package/dist/tout/index.d.ts +157 -0
  80. package/dist/tout/index.js +315 -0
  81. package/dist/tout/index.js.map +1 -0
  82. package/dist/two-column-section/index.d.ts +122 -0
  83. package/dist/two-column-section/index.js +121 -0
  84. package/dist/two-column-section/index.js.map +1 -0
  85. package/dist/us-gov-banner/index.d.ts +141 -0
  86. package/dist/us-gov-banner/index.js +74 -0
  87. package/dist/us-gov-banner/index.js.map +1 -0
  88. package/dist/use-captions-AkKlJhov.d.ts +71 -0
  89. package/dist/utils/index.d.ts +7 -0
  90. package/dist/utils/index.js +12 -0
  91. package/dist/utils/index.js.map +1 -0
  92. package/dist/video-dialog/index.d.ts +106 -0
  93. package/dist/video-dialog/index.js +1305 -0
  94. package/dist/video-dialog/index.js.map +1 -0
  95. package/dist/video-player/index.d.ts +115 -0
  96. package/dist/video-player/index.js +879 -0
  97. package/dist/video-player/index.js.map +1 -0
  98. package/dist/video-player-qxf-BURH.d.ts +236 -0
  99. package/dist/video-with-backdrop/index.d.ts +267 -0
  100. package/dist/video-with-backdrop/index.js +1284 -0
  101. package/dist/video-with-backdrop/index.js.map +1 -0
  102. package/package.json +13 -2
  103. package/src/components/organisms/us-gov-banner/us-gov-banner.tsx +5 -27
  104. package/src/theme/hooks.ts +2 -0
  105. package/src/theme/index.ts +2 -0
  106. package/src/theme/theme-provider.tsx +2 -0
@@ -0,0 +1,332 @@
1
+ /**
2
+ * Component-level theming interface
3
+ *
4
+ * This interface defines all the customizable design tokens that can be
5
+ * overridden at the component level. Components accepting a `theme` prop
6
+ * will apply these values as CSS custom properties, allowing fine-grained
7
+ * control over appearance without creating new variants.
8
+ *
9
+ * All values use primitive token names (e.g., "gray-100", "spacing-40")
10
+ * which are converted to CSS variable references internally.
11
+ */
12
+ /**
13
+ * Color token names - maps to `--color-{name}` CSS variables
14
+ * @example "gray-100", "ember-v300", "alpha-black-10"
15
+ */
16
+ 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";
17
+ /**
18
+ * Spacing token names - maps to `--spacing-{name}` CSS variables
19
+ * @example "spacing-40", "spacing-72"
20
+ */
21
+ 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";
22
+ /**
23
+ * Radius token names - maps to `--radii-{name}` CSS variables
24
+ * @example "radii-4", "radii-6"
25
+ */
26
+ 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";
27
+ /**
28
+ * Font size token values - primitive font sizes available in the design system
29
+ * These correspond to Tailwind classes like `text-64`, `text-128`, etc.
30
+ * @example 64, 128, 192
31
+ */
32
+ 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;
33
+ /**
34
+ * Array of all available font sizes for use in UI selectors/dropdowns
35
+ */
36
+ declare const FONT_SIZES: FontSizeToken[];
37
+ /**
38
+ * Helper to generate typography class string from font size
39
+ * @example fontSizeToClass(128) => "text-128 leading-128 tracking-128"
40
+ */
41
+ declare function fontSizeToClass(size: FontSizeToken): string;
42
+ /**
43
+ * Helper to generate responsive typography class string
44
+ * @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"
45
+ */
46
+ declare function responsiveTypographyClass(mobile: FontSizeToken, tablet: FontSizeToken, desktop: FontSizeToken): string;
47
+ interface ComponentThemeColors {
48
+ /**
49
+ * Background color for sections
50
+ * @example "gray-100"
51
+ */
52
+ bgSection?: ColorToken;
53
+ /**
54
+ * Background color for cards
55
+ * @example "white"
56
+ */
57
+ cardBackground?: ColorToken;
58
+ /**
59
+ * Muted background color
60
+ * @example "gray-50"
61
+ */
62
+ bgMuted?: ColorToken;
63
+ /**
64
+ * Primary text color
65
+ * @example "gray-1100"
66
+ */
67
+ textPrimary?: ColorToken;
68
+ /**
69
+ * Secondary text color
70
+ * @example "gray-800"
71
+ */
72
+ textSecondary?: ColorToken;
73
+ /**
74
+ * Muted text color
75
+ * @example "gray-600"
76
+ */
77
+ textMuted?: ColorToken;
78
+ /**
79
+ * Inverted text color (for dark backgrounds)
80
+ * @example "gray-100"
81
+ */
82
+ textInverted?: ColorToken;
83
+ /**
84
+ * Link text color
85
+ * @example "gray-1100"
86
+ */
87
+ textLink?: ColorToken;
88
+ /**
89
+ * Link hover text color
90
+ * @example "gray-700"
91
+ */
92
+ textLinkHover?: ColorToken;
93
+ /**
94
+ * Brand accent color
95
+ * @example "ember-v300"
96
+ */
97
+ accentBrand?: ColorToken;
98
+ /**
99
+ * Soft brand accent color
100
+ * @example "ember-100"
101
+ */
102
+ accentBrandSoft?: ColorToken;
103
+ /**
104
+ * Subtle border color
105
+ * @example "alpha-black-10"
106
+ */
107
+ borderSubtle?: ColorToken;
108
+ /**
109
+ * Strong border color
110
+ * @example "alpha-black-20"
111
+ */
112
+ borderStrong?: ColorToken;
113
+ /**
114
+ * Focus border color (uses accentBrand by default)
115
+ * @example "ember-v300"
116
+ */
117
+ borderFocus?: ColorToken;
118
+ /**
119
+ * Divider border color
120
+ * @example "alpha-black-10"
121
+ */
122
+ borderDivider?: ColorToken;
123
+ /**
124
+ * Primary button background color
125
+ * @example "gray-1100"
126
+ */
127
+ buttonPrimaryBg?: ColorToken;
128
+ /**
129
+ * Primary button hover background color
130
+ * @example "gray-600"
131
+ */
132
+ buttonPrimaryBgHover?: ColorToken;
133
+ /**
134
+ * Secondary button background color
135
+ * @example "white"
136
+ */
137
+ buttonSecondaryBg?: ColorToken;
138
+ /**
139
+ * Secondary button hover background color
140
+ * @example "gray-100"
141
+ */
142
+ buttonSecondaryBgHover?: ColorToken;
143
+ }
144
+ interface ComponentThemeSpatial {
145
+ /**
146
+ * Grid margin for large breakpoint
147
+ * @example "spacing-72"
148
+ */
149
+ gridLargeMargin?: SpacingToken;
150
+ /**
151
+ * Grid gutter for large breakpoint
152
+ * @example "spacing-24"
153
+ */
154
+ gridLargeGutter?: SpacingToken;
155
+ /**
156
+ * Number of grid columns for large breakpoint
157
+ */
158
+ gridLargeColumns?: number;
159
+ /**
160
+ * Grid margin for medium breakpoint
161
+ * @example "spacing-56"
162
+ */
163
+ gridMediumMargin?: SpacingToken;
164
+ /**
165
+ * Grid gutter for medium breakpoint
166
+ * @example "spacing-20"
167
+ */
168
+ gridMediumGutter?: SpacingToken;
169
+ /**
170
+ * Number of grid columns for medium breakpoint
171
+ */
172
+ gridMediumColumns?: number;
173
+ /**
174
+ * Grid margin for small breakpoint
175
+ * @example "spacing-24"
176
+ */
177
+ gridSmallMargin?: SpacingToken;
178
+ /**
179
+ * Grid gutter for small breakpoint
180
+ * @example "spacing-12"
181
+ */
182
+ gridSmallGutter?: SpacingToken;
183
+ /**
184
+ * Number of grid columns for small breakpoint
185
+ */
186
+ gridSmallColumns?: number;
187
+ /**
188
+ * Section gap for large breakpoint
189
+ * @example "spacing-64"
190
+ */
191
+ sectionLargeGap?: SpacingToken;
192
+ /**
193
+ * Section padding for large breakpoint
194
+ * @example "spacing-128"
195
+ */
196
+ sectionLargePadding?: SpacingToken;
197
+ /**
198
+ * Section gap for medium breakpoint
199
+ * @example "spacing-56"
200
+ */
201
+ sectionMediumGap?: SpacingToken;
202
+ /**
203
+ * Section padding for medium breakpoint
204
+ * @example "spacing-96"
205
+ */
206
+ sectionMediumPadding?: SpacingToken;
207
+ /**
208
+ * Section gap for small breakpoint
209
+ * @example "spacing-32"
210
+ */
211
+ sectionSmallGap?: SpacingToken;
212
+ /**
213
+ * Section padding for small breakpoint
214
+ * @example "spacing-64"
215
+ */
216
+ sectionSmallPadding?: SpacingToken;
217
+ /**
218
+ * Card gap for large size
219
+ * @example "spacing-10"
220
+ */
221
+ cardLargeGap?: SpacingToken;
222
+ /**
223
+ * Card padding for large size
224
+ * @example "spacing-24"
225
+ */
226
+ cardLargePadding?: SpacingToken;
227
+ /**
228
+ * Card gap for small size
229
+ * @example "spacing-12"
230
+ */
231
+ cardSmallGap?: SpacingToken;
232
+ /**
233
+ * Card padding for small size
234
+ * @example "spacing-16"
235
+ */
236
+ cardSmallPadding?: SpacingToken;
237
+ }
238
+ interface ComponentThemeSurface {
239
+ /**
240
+ * Card border radius
241
+ * @example "radii-4"
242
+ */
243
+ cardRadius?: RadiusToken;
244
+ /**
245
+ * Card stroke/border width in pixels
246
+ * @example 1
247
+ */
248
+ cardStroke?: number;
249
+ /**
250
+ * Button border radius
251
+ * @example "radii-6"
252
+ */
253
+ buttonRadius?: RadiusToken;
254
+ /**
255
+ * Button stroke/border weight in pixels
256
+ * @example 1
257
+ */
258
+ buttonStrokeWeight?: number;
259
+ }
260
+ /**
261
+ * Complete component theme interface combining colors, spatial, and surface tokens.
262
+ *
263
+ * @example
264
+ * ```tsx
265
+ * const customTheme: ComponentTheme = {
266
+ * colors: {
267
+ * textPrimary: "gray-100",
268
+ * accentBrand: "ember-500",
269
+ * },
270
+ * spatial: {
271
+ * sectionLargePadding: "spacing-96",
272
+ * },
273
+ * surface: {
274
+ * cardRadius: "radii-8",
275
+ * },
276
+ * };
277
+ *
278
+ * <Tout theme={customTheme} ... />
279
+ * ```
280
+ */
281
+ interface ComponentTheme {
282
+ colors?: ComponentThemeColors;
283
+ spatial?: ComponentThemeSpatial;
284
+ surface?: ComponentThemeSurface;
285
+ }
286
+ /**
287
+ * Button-specific theme interface for customizing individual button appearance.
288
+ *
289
+ * @example
290
+ * ```tsx
291
+ * const buttonTheme: ButtonTheme = {
292
+ * bg: "ember-500",
293
+ * bgHover: "ember-600",
294
+ * text: "white",
295
+ * radius: "radii-8",
296
+ * };
297
+ *
298
+ * <Button theme={buttonTheme}>Themed Button</Button>
299
+ * ```
300
+ */
301
+ interface ButtonTheme {
302
+ /** Background color */
303
+ bg?: ColorToken;
304
+ /** Background color on hover */
305
+ bgHover?: ColorToken;
306
+ /** Background color on active/press */
307
+ bgActive?: ColorToken;
308
+ /** Text color */
309
+ text?: ColorToken;
310
+ /** Border color (if using border) */
311
+ borderColor?: ColorToken;
312
+ /** Border width in pixels (0 for no border) */
313
+ borderWidth?: number;
314
+ /** Border radius */
315
+ radius?: RadiusToken;
316
+ }
317
+ /**
318
+ * Converts a ComponentTheme object to CSS custom properties (inline style object)
319
+ *
320
+ * @param theme - The theme object to convert
321
+ * @returns An object suitable for use as React inline styles
322
+ */
323
+ declare function themeToStyleVars(theme: ComponentTheme | undefined): React.CSSProperties;
324
+ /**
325
+ * Converts a ButtonTheme object to CSS custom properties (inline style object)
326
+ *
327
+ * @param theme - The button theme object to convert
328
+ * @returns An object suitable for use as React inline styles
329
+ */
330
+ declare function buttonThemeToStyleVars(theme: ButtonTheme | undefined): React.CSSProperties;
331
+
332
+ export { type ButtonTheme as B, type ColorToken as C, type FontSizeToken as F, type RadiusToken as R, type SpacingToken as S, type ComponentTheme as a, type ComponentThemeColors as b, type ComponentThemeSpatial as c, type ComponentThemeSurface as d, buttonThemeToStyleVars as e, FONT_SIZES as f, fontSizeToClass as g, responsiveTypographyClass as r, themeToStyleVars as t };
@@ -0,0 +1,166 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as tailwind_variants from 'tailwind-variants';
3
+ import { VariantProps } from 'tailwind-variants';
4
+ import * as tailwind_variants_dist_config_js from 'tailwind-variants/dist/config.js';
5
+ import { Tooltip as Tooltip$1 } from '@base-ui-components/react/tooltip';
6
+ import * as React from 'react';
7
+
8
+ /**
9
+ * Tooltip popup variants
10
+ *
11
+ * Uses semantic tokens for themeable styling:
12
+ * - color.tooltip.bg - Dark background
13
+ * - color.tooltip.text - Light text
14
+ * - surface.tooltip.radius - Small border radius
15
+ * - spatial.component.tooltip.padding-x/y - Consistent padding
16
+ */
17
+ declare const tooltipPopupVariants: tailwind_variants.TVReturnType<{
18
+ variant: {
19
+ default: string;
20
+ };
21
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
22
+ variant: {
23
+ default: string;
24
+ };
25
+ }, {
26
+ variant: {
27
+ default: string;
28
+ };
29
+ }>, {
30
+ variant: {
31
+ default: string;
32
+ };
33
+ }, undefined, tailwind_variants.TVReturnType<{
34
+ variant: {
35
+ default: string;
36
+ };
37
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
38
+ variant: {
39
+ default: string;
40
+ };
41
+ }, {
42
+ variant: {
43
+ default: string;
44
+ };
45
+ }>, unknown, unknown, undefined>>;
46
+ /**
47
+ * Tooltip arrow variants - uses shared floating arrow variants
48
+ */
49
+ 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>>;
50
+ interface TooltipProviderProps extends Tooltip$1.Provider.Props {
51
+ children: React.ReactNode;
52
+ }
53
+ /**
54
+ * Tooltip Provider
55
+ *
56
+ * Manages shared delays across multiple tooltips.
57
+ * Wrap your app or a section with this to enable tooltip delay grouping.
58
+ */
59
+ declare const TooltipProvider: ({ children, ...props }: TooltipProviderProps) => react_jsx_runtime.JSX.Element;
60
+ interface TooltipRootProps extends Tooltip$1.Root.Props {
61
+ children: React.ReactNode;
62
+ }
63
+ /**
64
+ * Tooltip Root
65
+ *
66
+ * Groups all tooltip parts. Does not render an element.
67
+ */
68
+ declare const TooltipRoot: ({ children, ...props }: TooltipRootProps) => react_jsx_runtime.JSX.Element;
69
+ interface TooltipTriggerProps extends React.ComponentProps<typeof Tooltip$1.Trigger> {
70
+ className?: string;
71
+ }
72
+ /**
73
+ * Tooltip Trigger
74
+ *
75
+ * The element that triggers the tooltip on hover/focus.
76
+ * Renders as the child element with tooltip behavior attached.
77
+ * When children is a single React element, uses `render` prop to avoid wrapper element.
78
+ */
79
+ declare const TooltipTrigger: React.ForwardRefExoticComponent<Omit<TooltipTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
80
+ interface TooltipPortalProps extends Tooltip$1.Portal.Props {
81
+ children: React.ReactNode;
82
+ }
83
+ /**
84
+ * Tooltip Portal
85
+ *
86
+ * Renders the tooltip popup in a portal outside the DOM hierarchy.
87
+ */
88
+ declare const TooltipPortal: ({ children, ...props }: TooltipPortalProps) => react_jsx_runtime.JSX.Element;
89
+ interface TooltipPositionerProps extends Omit<React.ComponentProps<typeof Tooltip$1.Positioner>, "className"> {
90
+ className?: string;
91
+ }
92
+ /**
93
+ * Tooltip Positioner
94
+ *
95
+ * Positions the tooltip popup relative to the trigger.
96
+ */
97
+ declare const TooltipPositioner: React.ForwardRefExoticComponent<Omit<TooltipPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
98
+ interface TooltipPopupProps extends Omit<React.ComponentProps<typeof Tooltip$1.Popup>, "className">, VariantProps<typeof tooltipPopupVariants> {
99
+ className?: string;
100
+ }
101
+ /**
102
+ * Tooltip Popup
103
+ *
104
+ * The tooltip content container with styled appearance.
105
+ */
106
+ declare const TooltipPopup: React.ForwardRefExoticComponent<Omit<TooltipPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
107
+ interface TooltipArrowProps extends Omit<React.ComponentProps<typeof Tooltip$1.Arrow>, "className"> {
108
+ className?: string;
109
+ }
110
+ /**
111
+ * Tooltip Arrow
112
+ *
113
+ * Visual pointer element for the tooltip.
114
+ * Uses shared FloatingArrowSvg with tooltip-bg color token.
115
+ */
116
+ declare const TooltipArrow: React.ForwardRefExoticComponent<Omit<TooltipArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
117
+ interface TooltipProps {
118
+ /** The content to show in the tooltip */
119
+ content: React.ReactNode;
120
+ /** The element that triggers the tooltip */
121
+ children: React.ReactNode;
122
+ /** Side of the trigger to show the tooltip */
123
+ side?: "top" | "bottom" | "left" | "right";
124
+ /** Offset from the trigger */
125
+ sideOffset?: number;
126
+ /** Alignment along the side */
127
+ align?: "start" | "center" | "end";
128
+ /** Delay before showing the tooltip (ms) */
129
+ delay?: number;
130
+ /** Delay before hiding the tooltip (ms) */
131
+ closeDelay?: number;
132
+ /** Whether to show an arrow */
133
+ showArrow?: boolean;
134
+ /** Controlled open state */
135
+ open?: boolean;
136
+ /** Default open state */
137
+ defaultOpen?: boolean;
138
+ /** Callback when open state changes */
139
+ onOpenChange?: (open: boolean) => void;
140
+ /** Additional className for the popup */
141
+ className?: string;
142
+ }
143
+ /**
144
+ * Tooltip
145
+ *
146
+ * A simple, pre-composed tooltip component for common use cases.
147
+ *
148
+ * @example
149
+ * ```tsx
150
+ * <Tooltip content="Save your changes">
151
+ * <Button>Save</Button>
152
+ * </Tooltip>
153
+ * ```
154
+ */
155
+ declare const Tooltip: ({ content, children, side, sideOffset, align, delay, closeDelay, showArrow, open, defaultOpen, onOpenChange, className, }: TooltipProps) => react_jsx_runtime.JSX.Element;
156
+ declare const TooltipParts: (({ children, ...props }: TooltipRootProps) => react_jsx_runtime.JSX.Element) & {
157
+ Provider: ({ children, ...props }: TooltipProviderProps) => react_jsx_runtime.JSX.Element;
158
+ Root: ({ children, ...props }: TooltipRootProps) => react_jsx_runtime.JSX.Element;
159
+ Trigger: React.ForwardRefExoticComponent<Omit<TooltipTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
160
+ Portal: ({ children, ...props }: TooltipPortalProps) => react_jsx_runtime.JSX.Element;
161
+ Positioner: React.ForwardRefExoticComponent<Omit<TooltipPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
162
+ Popup: React.ForwardRefExoticComponent<Omit<TooltipPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
163
+ Arrow: React.ForwardRefExoticComponent<Omit<TooltipArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
164
+ };
165
+
166
+ export { 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, tooltipArrowVariants, tooltipPopupVariants };