shadcn-glass-ui 1.0.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 (43) hide show
  1. package/CHANGELOG.md +227 -0
  2. package/LICENSE +201 -0
  3. package/README.md +693 -0
  4. package/dist/components.cjs +59 -0
  5. package/dist/components.d.ts +1413 -0
  6. package/dist/components.js +5 -0
  7. package/dist/hooks.cjs +6 -0
  8. package/dist/hooks.d.ts +225 -0
  9. package/dist/hooks.js +3 -0
  10. package/dist/index.cjs +138 -0
  11. package/dist/index.cjs.map +1 -0
  12. package/dist/index.d.ts +1761 -0
  13. package/dist/index.js +56 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/shadcn-glass-ui.css +3 -0
  16. package/dist/theme-context-BZoCplcU.js +66 -0
  17. package/dist/theme-context-BZoCplcU.js.map +1 -0
  18. package/dist/theme-context-DrLak65e.cjs +102 -0
  19. package/dist/theme-context-DrLak65e.cjs.map +1 -0
  20. package/dist/themes.cjs +7 -0
  21. package/dist/themes.d.ts +36 -0
  22. package/dist/themes.js +2 -0
  23. package/dist/trust-score-card-glass-DqaCKo1w.cjs +8225 -0
  24. package/dist/trust-score-card-glass-DqaCKo1w.cjs.map +1 -0
  25. package/dist/trust-score-card-glass-tJnNNzeS.js +7789 -0
  26. package/dist/trust-score-card-glass-tJnNNzeS.js.map +1 -0
  27. package/dist/use-focus-6xqfE5s6.cjs +130 -0
  28. package/dist/use-focus-6xqfE5s6.cjs.map +1 -0
  29. package/dist/use-focus-CX0TJJIj.js +118 -0
  30. package/dist/use-focus-CX0TJJIj.js.map +1 -0
  31. package/dist/use-wallpaper-tint-D1f3UGGs.cjs +162 -0
  32. package/dist/use-wallpaper-tint-D1f3UGGs.cjs.map +1 -0
  33. package/dist/use-wallpaper-tint-DUgmytlY.js +150 -0
  34. package/dist/use-wallpaper-tint-DUgmytlY.js.map +1 -0
  35. package/dist/utils-BNzkwPwE.cjs +14 -0
  36. package/dist/utils-BNzkwPwE.cjs.map +1 -0
  37. package/dist/utils-CGCOTvxT.js +8 -0
  38. package/dist/utils-CGCOTvxT.js.map +1 -0
  39. package/dist/utils.cjs +2 -0
  40. package/dist/utils.d.ts +10 -0
  41. package/dist/utils.js +2 -0
  42. package/dist/vite.svg +1 -0
  43. package/package.json +196 -0
@@ -0,0 +1,1413 @@
1
+ import { ButtonHTMLAttributes } from 'react';
2
+ import { ClassProp } from 'class-variance-authority/types';
3
+ import { FC } from 'react';
4
+ import { ForwardRefExoticComponent } from 'react';
5
+ import { HTMLAttributes } from 'react';
6
+ import { InputHTMLAttributes } from 'react';
7
+ import { JSX } from 'react/jsx-runtime';
8
+ import { LucideIcon } from 'lucide-react';
9
+ import * as React_2 from 'react';
10
+ import { ReactNode } from 'react';
11
+ import { RefAttributes } from 'react';
12
+ import { VariantProps } from 'class-variance-authority';
13
+
14
+ export declare const AICardGlass: ForwardRefExoticComponent<AICardGlassProps & RefAttributes<HTMLDivElement>>;
15
+
16
+ declare interface AICardGlassProps extends React.HTMLAttributes<HTMLDivElement> {
17
+ readonly onGenerate?: () => void;
18
+ readonly features?: readonly string[];
19
+ readonly estimatedTime?: string;
20
+ }
21
+
22
+ export declare const AlertGlass: ForwardRefExoticComponent<AlertGlassProps & RefAttributes<HTMLDivElement>>;
23
+
24
+ declare interface AlertGlassProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style' | 'title'>, VariantProps<typeof alertVariants> {
25
+ readonly title?: string;
26
+ readonly children: ReactNode;
27
+ readonly dismissible?: boolean;
28
+ readonly onDismiss?: () => void;
29
+ }
30
+
31
+ declare const alertVariants: (props?: ({
32
+ variant?: "default" | "destructive" | "success" | "warning" | "info" | "error" | null | undefined;
33
+ } & ClassProp) | undefined) => string;
34
+
35
+ export declare const AvatarGlass: ForwardRefExoticComponent<AvatarGlassProps & RefAttributes<HTMLDivElement>>;
36
+
37
+ /**
38
+ * Props for the AvatarGlass component
39
+ *
40
+ * A glass-themed avatar component with status indicators and size variants.
41
+ * Displays user initials with theme-aware styling and optional status badge.
42
+ *
43
+ * @example
44
+ * ```tsx
45
+ * // Basic avatar
46
+ * <AvatarGlass name="John Doe" />
47
+ *
48
+ * // With status indicator
49
+ * <AvatarGlass name="Jane Smith" status="online" size="lg" />
50
+ *
51
+ * // Different sizes
52
+ * <AvatarGlass name="Alex" size="sm" />
53
+ * <AvatarGlass name="Sam" size="xl" />
54
+ *
55
+ * // As a link (asChild pattern)
56
+ * <AvatarGlass asChild name="Sarah Connor" status="online">
57
+ * <a href="/profile/sarah">View Profile</a>
58
+ * </AvatarGlass>
59
+ * ```
60
+ */
61
+ declare interface AvatarGlassProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'>, VariantProps<typeof avatarSizes> {
62
+ /**
63
+ * Render as child element instead of div (polymorphic rendering).
64
+ * Useful for making avatars clickable links.
65
+ * @default false
66
+ * @example
67
+ * ```tsx
68
+ * <AvatarGlass asChild name="John">
69
+ * <a href="/profile">View Profile</a>
70
+ * </AvatarGlass>
71
+ * ```
72
+ */
73
+ readonly asChild?: boolean;
74
+ /**
75
+ * Full name of the user. Automatically generates initials (first 2 letters).
76
+ * @example "John Doe" → "JD"
77
+ */
78
+ readonly name: string;
79
+ /**
80
+ * Optional status indicator with glow effect
81
+ * @default undefined
82
+ */
83
+ readonly status?: AvatarStatus;
84
+ /**
85
+ * Size variant of the avatar
86
+ * @default "md"
87
+ */
88
+ readonly size?: 'sm' | 'md' | 'lg' | 'xl';
89
+ }
90
+
91
+ declare const avatarSizes: (props?: ({
92
+ size?: "sm" | "md" | "lg" | "xl" | null | undefined;
93
+ } & ClassProp) | undefined) => string;
94
+
95
+ /**
96
+ * Avatar status indicator type
97
+ */
98
+ declare type AvatarStatus = 'online' | 'offline' | 'busy' | 'away';
99
+
100
+ export declare const BadgeGlass: ForwardRefExoticComponent<BadgeGlassProps & RefAttributes<HTMLSpanElement>>;
101
+
102
+ declare interface BadgeGlassProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'style'>, VariantProps<typeof badgeVariants> {
103
+ readonly children: ReactNode;
104
+ readonly variant?: BadgeVariant;
105
+ readonly dot?: boolean;
106
+ }
107
+
108
+ /**
109
+ * BadgeGlass CVA Variants
110
+ * Extracted for Fast Refresh compatibility
111
+ */
112
+ declare type BadgeVariant = 'default' | 'secondary' | 'destructive' | 'outline' | 'success' | 'warning' | 'info';
113
+
114
+ declare const badgeVariants: (props?: ({
115
+ size?: "sm" | "md" | "lg" | null | undefined;
116
+ } & ClassProp) | undefined) => string;
117
+
118
+ export declare const BaseProgressGlass: ForwardRefExoticComponent<BaseProgressGlassProps & RefAttributes<HTMLDivElement>>;
119
+
120
+ declare interface BaseProgressGlassProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {
121
+ readonly value?: number;
122
+ readonly max?: number;
123
+ readonly children?: ReactNode | ((percentage: number) => ReactNode);
124
+ }
125
+
126
+ export declare const ButtonGlass: ForwardRefExoticComponent<ButtonGlassProps & RefAttributes<HTMLButtonElement>>;
127
+
128
+ /**
129
+ * Props for the ButtonGlass component
130
+ *
131
+ * A glass-themed button with ripple effects, loading states, and icon support.
132
+ * Features theme-aware styling and hover animations.
133
+ *
134
+ * @example
135
+ * ```tsx
136
+ * // Basic button
137
+ * <ButtonGlass variant="primary">Click me</ButtonGlass>
138
+ *
139
+ * // With icon
140
+ * <ButtonGlass icon={Check} iconPosition="left">Save</ButtonGlass>
141
+ *
142
+ * // Loading state
143
+ * <ButtonGlass loading>Processing...</ButtonGlass>
144
+ *
145
+ * // Different variants
146
+ * <ButtonGlass variant="ghost">Cancel</ButtonGlass>
147
+ * <ButtonGlass variant="success">Confirm</ButtonGlass>
148
+ *
149
+ * // As a link (asChild pattern)
150
+ * <ButtonGlass asChild variant="primary">
151
+ * <a href="/dashboard">Go to Dashboard</a>
152
+ * </ButtonGlass>
153
+ *
154
+ * // With Next.js Link
155
+ * <ButtonGlass asChild variant="ghost">
156
+ * <Link href="/settings">Settings</Link>
157
+ * </ButtonGlass>
158
+ * ```
159
+ */
160
+ declare interface ButtonGlassProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'style'>, VariantProps<typeof buttonGlassVariants> {
161
+ /**
162
+ * Render as child element instead of button (polymorphic rendering).
163
+ * Useful for rendering buttons as links or other interactive elements.
164
+ *
165
+ * **Note:** When using `asChild`, decorative effects (ripple, shine, glow)
166
+ * are disabled to maintain compatibility with Radix UI Slot.
167
+ * Only styles and event handlers are passed to the child element.
168
+ *
169
+ * @default false
170
+ * @example
171
+ * ```tsx
172
+ * <ButtonGlass asChild>
173
+ * <a href="/about">About Us</a>
174
+ * </ButtonGlass>
175
+ * ```
176
+ */
177
+ readonly asChild?: boolean;
178
+ /**
179
+ * Visual style variant of the button
180
+ * @default "primary"
181
+ */
182
+ readonly variant?: ButtonGlassVariant;
183
+ /**
184
+ * Show loading spinner and disable interactions
185
+ * @default false
186
+ */
187
+ readonly loading?: boolean;
188
+ /**
189
+ * Icon component from lucide-react to display
190
+ * @example icon={Check}
191
+ */
192
+ readonly icon?: LucideIcon;
193
+ /**
194
+ * Position of the icon relative to button text
195
+ * @default "left"
196
+ */
197
+ readonly iconPosition?: 'left' | 'right';
198
+ /**
199
+ * Size variant of the button
200
+ * @default "md"
201
+ */
202
+ readonly size?: 'sm' | 'md' | 'lg' | 'icon';
203
+ }
204
+
205
+ /**
206
+ * ButtonGlass CVA Variants
207
+ * Extracted for Fast Refresh compatibility
208
+ */
209
+ declare type ButtonGlassVariant = 'primary' | 'secondary' | 'ghost' | 'destructive' | 'success' | 'text';
210
+
211
+ declare const buttonGlassVariants: (props?: ({
212
+ variant?: "destructive" | "success" | "text" | "secondary" | "primary" | "ghost" | null | undefined;
213
+ size?: "sm" | "md" | "lg" | "xl" | "icon" | null | undefined;
214
+ } & ClassProp) | undefined) => string;
215
+
216
+ declare const cardIntensity: (props?: ({
217
+ intensity?: "medium" | "strong" | "subtle" | null | undefined;
218
+ hover?: boolean | null | undefined;
219
+ padding?: "default" | "none" | "compact" | "featured" | null | undefined;
220
+ } & ClassProp) | undefined) => string;
221
+
222
+ export declare const CareerStatsGlass: ForwardRefExoticComponent<CareerStatsGlassProps & RefAttributes<HTMLDivElement>>;
223
+
224
+ declare interface CareerStatsGlassProps extends React.HTMLAttributes<HTMLDivElement> {
225
+ readonly totalCommits?: number;
226
+ readonly totalPRs?: number;
227
+ readonly totalRepos?: number;
228
+ readonly years?: readonly YearData[];
229
+ }
230
+
231
+ export declare const CareerStatsHeaderGlass: ForwardRefExoticComponent<CareerStatsHeaderGlassProps & RefAttributes<HTMLDivElement>>;
232
+
233
+ declare interface CareerStatsHeaderGlassProps extends HTMLAttributes<HTMLDivElement> {
234
+ /** Total commits count */
235
+ readonly totalCommits: number;
236
+ /** Total pull requests count */
237
+ readonly totalPRs: number;
238
+ /** Total repositories count */
239
+ readonly totalRepos: number;
240
+ /** Header title */
241
+ readonly title?: string;
242
+ /** Stats wrap on mobile */
243
+ readonly wrapStats?: boolean;
244
+ }
245
+
246
+ export declare const CheckboxGlass: ForwardRefExoticComponent<CheckboxGlassProps & RefAttributes<HTMLInputElement>>;
247
+
248
+ declare interface CheckboxGlassProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange'> {
249
+ readonly checked: boolean;
250
+ readonly onChange?: (checked: boolean) => void;
251
+ readonly label?: string;
252
+ }
253
+
254
+ declare type CircularMetricColor = 'emerald' | 'amber' | 'blue' | 'red';
255
+
256
+ /**
257
+ * CircularMetricGlass - Compact circular progress metric display
258
+ *
259
+ * Designed for mobile layouts where rectangular MetricCardGlass is too wide.
260
+ * Shows a circular progress indicator with percentage inside and label below.
261
+ *
262
+ * @example
263
+ * ```tsx
264
+ * <CircularMetricGlass label="Reg" value={84} color="emerald" />
265
+ * ```
266
+ */
267
+ export declare const CircularMetricGlass: ForwardRefExoticComponent<CircularMetricGlassProps & RefAttributes<HTMLDivElement>>;
268
+
269
+ declare interface CircularMetricGlassProps extends React.HTMLAttributes<HTMLDivElement> {
270
+ /** Metric label (e.g., "Reg", "Imp") */
271
+ readonly label: string;
272
+ /** Metric value (0-100) */
273
+ readonly value: number;
274
+ /** Metric color */
275
+ readonly color?: CircularMetricColor;
276
+ /** Size variant */
277
+ readonly size?: 'sm' | 'md';
278
+ }
279
+
280
+ export declare const CircularProgressGlass: ForwardRefExoticComponent<CircularProgressGlassProps & RefAttributes<HTMLDivElement>>;
281
+
282
+ declare interface CircularProgressGlassProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>, VariantProps<typeof circularProgressVariants> {
283
+ /** Progress value (0-100) for determinate variant */
284
+ readonly value?: number;
285
+ /** Variant type */
286
+ readonly variant?: 'determinate' | 'indeterminate';
287
+ /** Stroke width in pixels */
288
+ readonly thickness?: number;
289
+ /** Background track width in pixels */
290
+ readonly trackWidth?: number;
291
+ /** Progress color gradient */
292
+ readonly color?: CircularProgressGradient;
293
+ /** Track color (background circle) */
294
+ readonly trackColor?: string;
295
+ /** Show percentage label in center */
296
+ readonly showLabel?: boolean;
297
+ /** Custom label text (overrides percentage) */
298
+ readonly label?: string;
299
+ /** Custom color for the center label text */
300
+ readonly labelColor?: string;
301
+ /** Show glow effect */
302
+ readonly showGlow?: boolean;
303
+ /** Glow intensity */
304
+ readonly glowIntensity?: 'low' | 'medium' | 'high';
305
+ /** Stroke linecap style */
306
+ readonly strokeLinecap?: 'round' | 'butt' | 'square';
307
+ /** Animation duration in seconds */
308
+ readonly animationDuration?: number;
309
+ }
310
+
311
+ declare type CircularProgressGradient = 'violet' | 'blue' | 'cyan' | 'amber' | 'emerald' | 'rose';
312
+
313
+ declare const circularProgressVariants: (props?: ({
314
+ size?: "sm" | "md" | "lg" | "xl" | null | undefined;
315
+ } & ClassProp) | undefined) => string;
316
+
317
+ export declare const ComboBoxGlass: <T = string>(props: ComboBoxGlassProps<T> & {
318
+ ref?: React.ForwardedRef<HTMLButtonElement>;
319
+ }) => ReturnType<typeof ComboBoxGlassInner>;
320
+
321
+ declare function ComboBoxGlassInner<T = string>({ options, value, onChange, placeholder, emptyText, searchPlaceholder, glassVariant, disabled, className, popoverClassName, clearable, side, align, label, error, success, required, size, searchable, icon: TriggerIcon, }: ComboBoxGlassProps<T>, ref: React.ForwardedRef<HTMLButtonElement>): JSX.Element;
322
+
323
+ declare namespace ComboBoxGlassInner {
324
+ var displayName: string;
325
+ }
326
+
327
+ declare interface ComboBoxGlassProps<T = string> {
328
+ /** Available options */
329
+ readonly options: readonly ComboBoxOption<T>[];
330
+ /** Currently selected value */
331
+ readonly value?: T;
332
+ /** Callback when value changes */
333
+ readonly onChange?: (value: T | undefined) => void;
334
+ /** Placeholder text for trigger button */
335
+ readonly placeholder?: string;
336
+ /** Text shown when no results found */
337
+ readonly emptyText?: string;
338
+ /** Placeholder for search input */
339
+ readonly searchPlaceholder?: string;
340
+ /** Glass variant style */
341
+ readonly glassVariant?: GlassVariant;
342
+ /** Disabled state */
343
+ readonly disabled?: boolean;
344
+ /** Custom className for container */
345
+ readonly className?: string;
346
+ /** Custom className for popover content */
347
+ readonly popoverClassName?: string;
348
+ /** Allow clearing selection */
349
+ readonly clearable?: boolean;
350
+ /** Popover side */
351
+ readonly side?: 'top' | 'right' | 'bottom' | 'left';
352
+ /** Popover alignment */
353
+ readonly align?: 'start' | 'center' | 'end';
354
+ /** Label text displayed above the field */
355
+ readonly label?: string;
356
+ /** Error message - displays in red below the field */
357
+ readonly error?: string;
358
+ /** Success message - displays in green if no error */
359
+ readonly success?: string;
360
+ /** Shows required asterisk (*) next to label */
361
+ readonly required?: boolean;
362
+ /** Size variant (affects trigger button height and padding) */
363
+ readonly size?: InputGlassSize;
364
+ /** Enable/disable search functionality */
365
+ readonly searchable?: boolean;
366
+ /** Optional icon for trigger button (displayed before text) */
367
+ readonly icon?: LucideIcon;
368
+ }
369
+
370
+ declare interface ComboBoxOption<T = string> {
371
+ readonly value: T;
372
+ readonly label: string;
373
+ readonly disabled?: boolean;
374
+ /** Optional icon component for the option */
375
+ readonly icon?: LucideIcon;
376
+ }
377
+
378
+ export declare const ContributionMetricsGlass: ForwardRefExoticComponent<ContributionMetricsGlassProps & RefAttributes<HTMLDivElement>>;
379
+
380
+ declare interface ContributionMetricsGlassProps extends HTMLAttributes<HTMLDivElement> {
381
+ /** User's commit count */
382
+ readonly userCommits: number;
383
+ /** User's contribution percentage */
384
+ readonly userContribution: number;
385
+ /** Total project commits (calculated if not provided) */
386
+ readonly totalProjectCommits?: number;
387
+ /** Estimated lines of code */
388
+ readonly estimatedLines?: number;
389
+ /** Grid layout (1 or 2 columns) */
390
+ readonly columns?: 1 | 2;
391
+ }
392
+
393
+ export declare const DropdownGlass: React_2.ForwardRefExoticComponent<DropdownGlassProps & React_2.RefAttributes<HTMLDivElement>>;
394
+
395
+ declare interface DropdownGlassProps {
396
+ readonly trigger: React_2.ReactNode;
397
+ readonly items: readonly DropdownItem[];
398
+ readonly align?: 'left' | 'right';
399
+ readonly className?: string;
400
+ }
401
+
402
+ declare interface DropdownItem {
403
+ readonly label?: string;
404
+ readonly icon?: LucideIcon;
405
+ readonly onClick?: () => void;
406
+ readonly danger?: boolean;
407
+ readonly divider?: boolean;
408
+ }
409
+
410
+ export declare const ExpandableHeaderGlass: ForwardRefExoticComponent<ExpandableHeaderGlassProps & RefAttributes<HTMLButtonElement>>;
411
+
412
+ declare interface ExpandableHeaderGlassProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'title'> {
413
+ /** Header title */
414
+ readonly title: ReactNode;
415
+ /** Leading icon component */
416
+ readonly icon?: LucideIcon;
417
+ /** Icon color (CSS variable or color value) */
418
+ readonly iconColor?: string;
419
+ /** Expanded state */
420
+ readonly expanded: boolean;
421
+ /** Toggle callback */
422
+ readonly onToggle?: () => void;
423
+ }
424
+
425
+ export declare const FlagAlertGlass: ForwardRefExoticComponent<FlagAlertGlassProps & RefAttributes<HTMLDivElement>>;
426
+
427
+ declare interface FlagAlertGlassProps extends React.HTMLAttributes<HTMLDivElement> {
428
+ readonly type?: FlagType;
429
+ readonly title: string;
430
+ readonly description?: string;
431
+ }
432
+
433
+ declare interface FlagData {
434
+ readonly type: FlagType;
435
+ readonly title: string;
436
+ readonly description?: string;
437
+ }
438
+
439
+ export declare const FlagsSectionGlass: ForwardRefExoticComponent<FlagsSectionGlassProps & RefAttributes<HTMLDivElement>>;
440
+
441
+ declare interface FlagsSectionGlassProps extends React.HTMLAttributes<HTMLDivElement> {
442
+ readonly flags?: readonly FlagData[];
443
+ readonly expanded?: boolean;
444
+ readonly onToggle?: () => void;
445
+ }
446
+
447
+ declare type FlagType = "warning" | "danger";
448
+
449
+ /**
450
+ * FormFieldWrapper component
451
+ *
452
+ * Provides consistent structure for form fields with labels and validation messages.
453
+ * Used by InputGlass, SliderGlass, and other form components.
454
+ *
455
+ * @example
456
+ * ```tsx
457
+ * // Basic usage
458
+ * <FormFieldWrapper label="Email" htmlFor="email-input">
459
+ * <input id="email-input" type="email" />
460
+ * </FormFieldWrapper>
461
+ *
462
+ * // With validation
463
+ * <FormFieldWrapper
464
+ * label="Username"
465
+ * error="Username is required"
466
+ * required
467
+ * htmlFor="username"
468
+ * >
469
+ * <input id="username" />
470
+ * </FormFieldWrapper>
471
+ *
472
+ * // Success state
473
+ * <FormFieldWrapper
474
+ * label="Password"
475
+ * success="Strong password"
476
+ * htmlFor="password"
477
+ * >
478
+ * <input id="password" type="password" />
479
+ * </FormFieldWrapper>
480
+ * ```
481
+ */
482
+ export declare const FormFieldWrapper: ForwardRefExoticComponent<FormFieldWrapperProps & RefAttributes<HTMLDivElement>>;
483
+
484
+ /**
485
+ * Props for the FormFieldWrapper component
486
+ */
487
+ declare interface FormFieldWrapperProps extends HTMLAttributes<HTMLDivElement> {
488
+ /**
489
+ * Label text displayed above the field
490
+ */
491
+ label?: string;
492
+ /**
493
+ * Error message - takes priority over success
494
+ * Displays in red below the field
495
+ */
496
+ error?: string;
497
+ /**
498
+ * Success message - displays in green if no error
499
+ * Displays below the field
500
+ */
501
+ success?: string;
502
+ /**
503
+ * ID to link label with input via htmlFor
504
+ * Should match the input's id attribute
505
+ */
506
+ htmlFor?: string;
507
+ /**
508
+ * Shows red asterisk (*) next to label
509
+ * @default false
510
+ */
511
+ required?: boolean;
512
+ /**
513
+ * The form control element(s) to wrap
514
+ */
515
+ children: ReactNode;
516
+ }
517
+
518
+ export declare const GlassCard: ForwardRefExoticComponent<GlassCardProps & RefAttributes<HTMLDivElement>>;
519
+
520
+ /**
521
+ * Props for the GlassCard component
522
+ *
523
+ * @example
524
+ * ```tsx
525
+ * // Basic card
526
+ * <GlassCard intensity="medium">Content</GlassCard>
527
+ *
528
+ * // As a clickable link
529
+ * <GlassCard asChild intensity="medium">
530
+ * <a href="/details">View Details</a>
531
+ * </GlassCard>
532
+ * ```
533
+ */
534
+ declare interface GlassCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'>, VariantProps<typeof cardIntensity> {
535
+ /**
536
+ * Render as child element instead of div (polymorphic rendering).
537
+ * Useful for making cards clickable links or custom interactive elements.
538
+ * @default false
539
+ * @example
540
+ * ```tsx
541
+ * <GlassCard asChild>
542
+ * <a href="/article">Article Content</a>
543
+ * </GlassCard>
544
+ * ```
545
+ */
546
+ readonly asChild?: boolean;
547
+ readonly children: ReactNode;
548
+ readonly glow?: GlowType;
549
+ readonly padding?: PaddingType;
550
+ }
551
+
552
+ declare type GlassVariant = 'glass' | 'frosted' | 'fluted' | 'crystal';
553
+
554
+ /**
555
+ * GlassCard CVA Variants
556
+ * Extracted for Fast Refresh compatibility
557
+ */
558
+ declare type GlowType = 'blue' | 'violet' | 'cyan' | null;
559
+
560
+ export declare const HeaderBrandingGlass: ForwardRefExoticComponent<HeaderBrandingGlassProps & RefAttributes<HTMLDivElement>>;
561
+
562
+ declare interface HeaderBrandingGlassProps extends HTMLAttributes<HTMLDivElement> {
563
+ /** Logo icon component */
564
+ readonly logoIcon: LucideIcon;
565
+ /** Main title */
566
+ readonly title: string;
567
+ /** Subtitle (hidden on mobile) */
568
+ readonly subtitle?: string;
569
+ /** Logo click handler */
570
+ readonly onLogoClick?: () => void;
571
+ /** Logo aria label */
572
+ readonly logoAriaLabel?: string;
573
+ }
574
+
575
+ export declare const HeaderNavGlass: ForwardRefExoticComponent<HeaderNavGlassProps & RefAttributes<HTMLElement>>;
576
+
577
+ declare interface HeaderNavGlassProps extends React.HTMLAttributes<HTMLElement> {
578
+ readonly username?: string;
579
+ readonly onSearch?: (value: string) => void;
580
+ readonly onThemeToggle?: () => void;
581
+ }
582
+
583
+ export declare const IconButtonGlass: ForwardRefExoticComponent<IconButtonGlassProps & RefAttributes<HTMLButtonElement>>;
584
+
585
+ declare interface IconButtonGlassProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof iconButtonVariants> {
586
+ /** Lucide icon component */
587
+ readonly icon: LucideIcon;
588
+ /** Icon size in pixels (default: 20) */
589
+ readonly iconSize?: number;
590
+ /** Accessible label for screen readers */
591
+ readonly 'aria-label': string;
592
+ }
593
+
594
+ declare const iconButtonVariants: (props?: ({
595
+ size?: "sm" | "md" | "lg" | "touch" | null | undefined;
596
+ variant?: "ghost" | "subtle" | "gradient" | null | undefined;
597
+ } & ClassProp) | undefined) => string;
598
+
599
+ export declare const InputGlass: ForwardRefExoticComponent<InputGlassProps & RefAttributes<HTMLInputElement>>;
600
+
601
+ /**
602
+ * Props for the InputGlass component
603
+ *
604
+ * A glass-themed input field with labels, validation states, and icon support.
605
+ * Features focus glow effects and theme-aware styling.
606
+ *
607
+ * @example
608
+ * ```tsx
609
+ * // Basic input with label
610
+ * <InputGlass label="Email" placeholder="you@example.com" />
611
+ *
612
+ * // With validation states
613
+ * <InputGlass label="Username" error="Username is required" />
614
+ * <InputGlass label="Password" success="Strong password" type="password" />
615
+ *
616
+ * // With icon
617
+ * <InputGlass icon={Search} placeholder="Search..." />
618
+ * <InputGlass icon={Mail} iconPosition="right" />
619
+ * ```
620
+ */
621
+ declare interface InputGlassProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'>, VariantProps<typeof inputVariants> {
622
+ /**
623
+ * Label text displayed above the input field
624
+ */
625
+ readonly label?: string;
626
+ /**
627
+ * Error message to display below the input (red styling)
628
+ */
629
+ readonly error?: string;
630
+ /**
631
+ * Success message to display below the input (green styling)
632
+ */
633
+ readonly success?: string;
634
+ /**
635
+ * Icon component from lucide-react to display
636
+ * @example icon={Search}
637
+ */
638
+ readonly icon?: LucideIcon;
639
+ /**
640
+ * Position of the icon relative to input text
641
+ * @default "left"
642
+ */
643
+ readonly iconPosition?: 'left' | 'right';
644
+ /**
645
+ * @deprecated Use `size` prop instead. Will be removed in v4.0
646
+ * @default "md"
647
+ */
648
+ readonly inputSize?: 'sm' | 'md' | 'lg';
649
+ }
650
+
651
+ /**
652
+ * InputGlass CVA Variants
653
+ * Extracted for Fast Refresh compatibility
654
+ */
655
+ declare type InputGlassSize = 'sm' | 'md' | 'lg';
656
+
657
+ declare const inputVariants: (props?: ({
658
+ size?: "sm" | "md" | "lg" | null | undefined;
659
+ } & ClassProp) | undefined) => string;
660
+
661
+ /**
662
+ * InteractiveCard component
663
+ *
664
+ * Provides consistent hover animations and glass effects for card components.
665
+ * Replaces ~80 lines of duplicated hover state management across 4+ components.
666
+ *
667
+ * @example
668
+ * ```tsx
669
+ * // Basic usage
670
+ * <InteractiveCard>
671
+ * <h3>Card Title</h3>
672
+ * <p>Card content</p>
673
+ * </InteractiveCard>
674
+ *
675
+ * // With hover effects
676
+ * <InteractiveCard
677
+ * hoverLift
678
+ * hoverGlow="var(--glow-primary)"
679
+ * hoverBg="var(--card-hover-bg)"
680
+ * hoverBorderColor="var(--card-hover-border)"
681
+ * >
682
+ * <MetricContent />
683
+ * </InteractiveCard>
684
+ *
685
+ * // Custom blur and rounding
686
+ * <InteractiveCard
687
+ * blur="md"
688
+ * rounded="rounded-3xl"
689
+ * baseBg="var(--metric-emerald-bg)"
690
+ * >
691
+ * <StatusCard />
692
+ * </InteractiveCard>
693
+ * ```
694
+ */
695
+ export declare const InteractiveCard: ForwardRefExoticComponent<InteractiveCardProps & RefAttributes<HTMLDivElement>>;
696
+
697
+ /**
698
+ * Props for the InteractiveCard component
699
+ */
700
+ declare interface InteractiveCardProps extends HTMLAttributes<HTMLDivElement> {
701
+ /**
702
+ * Enable hover lift effect (translateY -2px)
703
+ * @default true
704
+ */
705
+ hoverLift?: boolean;
706
+ /**
707
+ * CSS variable for hover glow effect
708
+ * @example 'var(--glow-primary)'
709
+ */
710
+ hoverGlow?: string;
711
+ /**
712
+ * CSS variable for hover background
713
+ * @example 'var(--card-hover-bg)'
714
+ */
715
+ hoverBg?: string;
716
+ /**
717
+ * CSS variable for base background
718
+ * @default 'var(--card-bg)'
719
+ */
720
+ baseBg?: string;
721
+ /**
722
+ * CSS variable for border color
723
+ * @default 'var(--card-border)'
724
+ */
725
+ borderColor?: string;
726
+ /**
727
+ * CSS variable for hover border color
728
+ */
729
+ hoverBorderColor?: string;
730
+ /**
731
+ * Blur level for glass effect
732
+ * @default 'sm'
733
+ */
734
+ blur?: 'sm' | 'md' | 'lg' | 'xl';
735
+ /**
736
+ * Disable all hover interactions
737
+ * @default false
738
+ */
739
+ disabled?: boolean;
740
+ /**
741
+ * Border radius class
742
+ * @default 'rounded-2xl'
743
+ */
744
+ rounded?: 'rounded-xl' | 'rounded-2xl' | 'rounded-3xl';
745
+ /**
746
+ * Transition speed
747
+ * @default 'var(--transition-slow)'
748
+ */
749
+ transition?: string;
750
+ }
751
+
752
+ export declare const LanguageBarGlass: ForwardRefExoticComponent<LanguageBarGlassProps & RefAttributes<HTMLDivElement>>;
753
+
754
+ declare interface LanguageBarGlassProps extends React.HTMLAttributes<HTMLDivElement> {
755
+ readonly languages: readonly LanguageData[];
756
+ readonly showLegend?: boolean;
757
+ }
758
+
759
+ declare interface LanguageData {
760
+ readonly name: string;
761
+ readonly percent: number;
762
+ readonly color?: string;
763
+ }
764
+
765
+ export declare const MetricCardGlass: ForwardRefExoticComponent<MetricCardGlassProps & RefAttributes<HTMLDivElement>>;
766
+
767
+ declare interface MetricCardGlassProps extends React.HTMLAttributes<HTMLDivElement> {
768
+ readonly label: string;
769
+ readonly value: number;
770
+ readonly color?: MetricColor;
771
+ }
772
+
773
+ declare type MetricColor = "emerald" | "amber" | "blue" | "red";
774
+
775
+ declare interface MetricData {
776
+ readonly label: string;
777
+ readonly value: number;
778
+ readonly color: MetricColor;
779
+ }
780
+
781
+ declare interface MetricData_2 {
782
+ readonly label: string;
783
+ readonly value: number;
784
+ readonly color: MetricColor;
785
+ }
786
+
787
+ export declare const MetricsGridGlass: ForwardRefExoticComponent<MetricsGridGlassProps & RefAttributes<HTMLDivElement>>;
788
+
789
+ declare interface MetricsGridGlassProps extends HTMLAttributes<HTMLDivElement> {
790
+ /** Array of metrics to display */
791
+ readonly metrics: readonly MetricData[];
792
+ /** Number of columns on desktop (1-6) */
793
+ readonly columns?: 1 | 2 | 3 | 4 | 5 | 6;
794
+ /** Gap size */
795
+ readonly gap?: 'sm' | 'md' | 'lg';
796
+ }
797
+
798
+ declare interface ModalBodyProps {
799
+ children: ReactNode;
800
+ className?: string;
801
+ }
802
+
803
+ declare interface ModalCloseProps {
804
+ className?: string;
805
+ }
806
+
807
+ declare interface ModalContentProps {
808
+ children: ReactNode;
809
+ className?: string;
810
+ }
811
+
812
+ declare interface ModalDescriptionProps {
813
+ children: ReactNode;
814
+ className?: string;
815
+ }
816
+
817
+ declare interface ModalFooterProps {
818
+ children: ReactNode;
819
+ className?: string;
820
+ }
821
+
822
+ /**
823
+ * ModalGlass - Compound Component API
824
+ *
825
+ * @example
826
+ * ```tsx
827
+ * <ModalGlass.Root open={open} onOpenChange={setOpen}>
828
+ * <ModalGlass.Overlay />
829
+ * <ModalGlass.Content>
830
+ * <ModalGlass.Header>
831
+ * <ModalGlass.Title>Confirm</ModalGlass.Title>
832
+ * <ModalGlass.Description>Are you sure?</ModalGlass.Description>
833
+ * <ModalGlass.Close />
834
+ * </ModalGlass.Header>
835
+ * <ModalGlass.Body>
836
+ * <p>Body content</p>
837
+ * </ModalGlass.Body>
838
+ * <ModalGlass.Footer>
839
+ * <ButtonGlass>Cancel</ButtonGlass>
840
+ * </ModalGlass.Footer>
841
+ * </ModalGlass.Content>
842
+ * </ModalGlass.Root>
843
+ * ```
844
+ */
845
+ export declare const ModalGlass: {
846
+ Root: FC<ModalRootProps>;
847
+ Overlay: FC<ModalOverlayProps>;
848
+ Content: ForwardRefExoticComponent<ModalContentProps & RefAttributes<HTMLDivElement>>;
849
+ Header: FC<ModalHeaderProps>;
850
+ Body: FC<ModalBodyProps>;
851
+ Footer: FC<ModalFooterProps>;
852
+ Title: FC<ModalTitleProps>;
853
+ Description: FC<ModalDescriptionProps>;
854
+ Close: FC<ModalCloseProps>;
855
+ };
856
+
857
+ declare interface ModalHeaderProps {
858
+ children: ReactNode;
859
+ className?: string;
860
+ }
861
+
862
+ declare interface ModalOverlayProps {
863
+ className?: string;
864
+ }
865
+
866
+ declare interface ModalRootProps extends React.HTMLAttributes<HTMLDivElement> {
867
+ /** Open state */
868
+ open: boolean;
869
+ /** Callback when open state changes */
870
+ onOpenChange?: (open: boolean) => void;
871
+ /** Size variant */
872
+ size?: ModalSize;
873
+ /** Child components */
874
+ children: ReactNode;
875
+ }
876
+
877
+ /**
878
+ * ModalGlass CVA Variants
879
+ * Extracted for Fast Refresh compatibility
880
+ */
881
+ declare type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
882
+
883
+ declare interface ModalTitleProps {
884
+ children: ReactNode;
885
+ className?: string;
886
+ }
887
+
888
+ export declare const NotificationGlass: ForwardRefExoticComponent<NotificationGlassProps & RefAttributes<HTMLDivElement>>;
889
+
890
+ declare interface NotificationGlassProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title' | 'style'>, VariantProps<typeof notificationVariants> {
891
+ readonly title: string;
892
+ readonly message: string;
893
+ /** Notification variant (shadcn/ui compatible) */
894
+ readonly variant?: 'default' | 'destructive' | 'success' | 'warning';
895
+ /** @deprecated Use variant prop instead. Will be removed in next major version. */
896
+ readonly type?: NotificationType;
897
+ readonly onClose: () => void;
898
+ }
899
+
900
+ /**
901
+ * NotificationGlass CVA Variants
902
+ * Extracted for Fast Refresh compatibility
903
+ */
904
+ declare type NotificationType = 'info' | 'success' | 'warning' | 'error';
905
+
906
+ declare const notificationVariants: (props?: ({
907
+ type?: "success" | "warning" | "info" | "error" | null | undefined;
908
+ } & ClassProp) | undefined) => string;
909
+
910
+ declare type OwnershipFilter = 'your' | 'contrib' | 'all';
911
+
912
+ declare type PaddingType = 'none' | 'compact' | 'default' | 'featured';
913
+
914
+ export declare const PopoverGlass: React_2.ForwardRefExoticComponent<PopoverGlassProps & React_2.RefAttributes<HTMLDivElement>>;
915
+
916
+ declare interface PopoverGlassProps {
917
+ /** The trigger element that opens the popover */
918
+ readonly trigger: React_2.ReactNode;
919
+ /** The content to display inside the popover */
920
+ readonly children: React_2.ReactNode;
921
+ /** The preferred side of the trigger to render against */
922
+ readonly side?: 'top' | 'right' | 'bottom' | 'left';
923
+ /** The preferred alignment against the trigger */
924
+ readonly align?: 'start' | 'center' | 'end';
925
+ /** The distance in pixels from the trigger */
926
+ readonly sideOffset?: number;
927
+ /** Controlled open state */
928
+ readonly open?: boolean;
929
+ /** Callback when open state changes */
930
+ readonly onOpenChange?: (open: boolean) => void;
931
+ /** Whether to show the arrow pointer */
932
+ readonly showArrow?: boolean;
933
+ /** Additional class name for the content wrapper */
934
+ readonly className?: string;
935
+ }
936
+
937
+ export declare const ProfileAvatarGlass: ForwardRefExoticComponent<ProfileAvatarGlassProps & RefAttributes<HTMLDivElement>>;
938
+
939
+ declare interface ProfileAvatarGlassProps extends React.HTMLAttributes<HTMLDivElement> {
940
+ readonly initials: string;
941
+ readonly size?: ProfileAvatarSize;
942
+ readonly status?: ProfileAvatarStatus;
943
+ readonly glowing?: boolean;
944
+ }
945
+
946
+ declare type ProfileAvatarSize = "sm" | "md" | "lg" | "xl";
947
+
948
+ declare type ProfileAvatarStatus = "online" | "offline" | "busy" | "away";
949
+
950
+ export declare const ProfileHeaderGlass: ForwardRefExoticComponent<ProfileHeaderGlassProps & RefAttributes<HTMLDivElement>>;
951
+
952
+ declare interface ProfileHeaderGlassProps extends React.HTMLAttributes<HTMLDivElement> {
953
+ readonly name?: string;
954
+ readonly username?: string;
955
+ readonly joinDate?: string;
956
+ readonly stats?: ProfileStats;
957
+ readonly languages?: readonly LanguageData[];
958
+ readonly onAIGenerate?: () => void;
959
+ }
960
+
961
+ declare interface ProfileStats {
962
+ readonly repos?: number;
963
+ readonly followers?: number;
964
+ readonly following?: number;
965
+ }
966
+
967
+ export declare const ProgressGlass: ForwardRefExoticComponent<ProgressGlassProps & RefAttributes<HTMLDivElement>>;
968
+
969
+ declare interface ProgressGlassProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'style'>, VariantProps<typeof progressSizes> {
970
+ readonly value: number;
971
+ readonly gradient?: ProgressGradient;
972
+ readonly showLabel?: boolean;
973
+ }
974
+
975
+ declare type ProgressGradient = 'violet' | 'blue' | 'cyan' | 'amber' | 'emerald' | 'rose';
976
+
977
+ declare const progressSizes: (props?: ({
978
+ size?: "sm" | "md" | "lg" | "xl" | null | undefined;
979
+ } & ClassProp) | undefined) => string;
980
+
981
+ export declare const ProjectsListGlass: ForwardRefExoticComponent<ProjectsListGlassProps & RefAttributes<HTMLDivElement>>;
982
+
983
+ declare interface ProjectsListGlassProps extends React.HTMLAttributes<HTMLDivElement> {
984
+ /** List of repositories to display */
985
+ readonly repositories: readonly Repository[];
986
+ /** Show only flagged (non-green) repositories */
987
+ readonly showFlaggedOnly?: boolean;
988
+ /** Filter by creation year */
989
+ readonly selectedYear?: number | null;
990
+ /** Callback to clear all filters */
991
+ readonly onClearFilters?: () => void;
992
+ /** Custom title (overrides auto-generated) */
993
+ readonly title?: string;
994
+ /** Current ownership filter */
995
+ readonly ownershipFilter?: OwnershipFilter;
996
+ /** Callback when ownership filter changes */
997
+ readonly onOwnershipChange?: (filter: OwnershipFilter) => void;
998
+ /** Current sort field */
999
+ readonly sortBy?: SortField;
1000
+ /** Current sort order */
1001
+ readonly sortOrder?: SortOrder;
1002
+ /** Callback when sort changes */
1003
+ readonly onSortChange?: (field: SortField, order: SortOrder) => void;
1004
+ /** Show header controls (sort dropdown, ownership filter). Default: true when callbacks provided */
1005
+ readonly showControls?: boolean;
1006
+ }
1007
+
1008
+ export declare const RainbowProgressGlass: ForwardRefExoticComponent<RainbowProgressGlassProps & RefAttributes<HTMLDivElement>>;
1009
+
1010
+ declare interface RainbowProgressGlassProps extends React.HTMLAttributes<HTMLDivElement> {
1011
+ readonly value: number;
1012
+ readonly size?: RainbowProgressSize;
1013
+ readonly showGlow?: boolean;
1014
+ }
1015
+
1016
+ declare type RainbowProgressSize = "sm" | "md" | "lg" | "xl";
1017
+
1018
+ declare interface Repository {
1019
+ readonly name: string;
1020
+ readonly languages: string;
1021
+ readonly commits: number;
1022
+ readonly contribution: number;
1023
+ readonly stars?: number;
1024
+ readonly flagType?: RepositoryFlagType;
1025
+ readonly issues?: readonly string[];
1026
+ readonly createdYear?: number;
1027
+ /** Ownership type for Your/Contrib filtering */
1028
+ readonly ownership?: 'your' | 'contrib';
1029
+ }
1030
+
1031
+ export declare const RepositoryCardGlass: ForwardRefExoticComponent<RepositoryCardGlassProps & RefAttributes<HTMLDivElement>>;
1032
+
1033
+ declare interface RepositoryCardGlassProps extends React.HTMLAttributes<HTMLDivElement> {
1034
+ readonly name: string;
1035
+ readonly languages: string;
1036
+ readonly commits: number;
1037
+ readonly contribution: number;
1038
+ readonly stars?: number;
1039
+ readonly flagType?: RepositoryFlagType;
1040
+ readonly issues?: readonly string[];
1041
+ readonly expanded?: boolean;
1042
+ readonly onToggle?: () => void;
1043
+ readonly onGitHubClick?: () => void;
1044
+ readonly onAIAnalysisClick?: () => void;
1045
+ }
1046
+
1047
+ declare type RepositoryFlagType = "green" | "yellow" | "red";
1048
+
1049
+ declare type RepositoryFlagType_2 = 'green' | 'yellow' | 'red';
1050
+
1051
+ export declare const RepositoryHeaderGlass: ForwardRefExoticComponent<RepositoryHeaderGlassProps & RefAttributes<HTMLDivElement>>;
1052
+
1053
+ declare interface RepositoryHeaderGlassProps extends HTMLAttributes<HTMLDivElement> {
1054
+ /** Repository name */
1055
+ readonly name: string;
1056
+ /** Flag/status type */
1057
+ readonly flagType?: RepositoryFlagType_2;
1058
+ /** Star count */
1059
+ readonly stars?: number;
1060
+ /** Is expanded state */
1061
+ readonly expanded?: boolean;
1062
+ /** Abbreviated star count for mobile (1.2k instead of 1234) */
1063
+ readonly abbreviatedStars?: boolean;
1064
+ }
1065
+
1066
+ export declare const RepositoryMetadataGlass: ForwardRefExoticComponent<RepositoryMetadataGlassProps & RefAttributes<HTMLDivElement>>;
1067
+
1068
+ declare interface RepositoryMetadataGlassProps extends HTMLAttributes<HTMLDivElement> {
1069
+ /** Programming languages used */
1070
+ readonly languages: string;
1071
+ /** Number of commits */
1072
+ readonly commits: number;
1073
+ /** Contribution percentage */
1074
+ readonly contribution: number;
1075
+ /** Stacked layout for mobile */
1076
+ readonly stacked?: boolean;
1077
+ }
1078
+
1079
+ export declare const SearchBoxGlass: ForwardRefExoticComponent<SearchBoxGlassProps & RefAttributes<HTMLInputElement>>;
1080
+
1081
+ declare interface SearchBoxGlassProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onSubmit' | 'onChange'> {
1082
+ /** Callback when search is submitted (Enter key or button click) */
1083
+ readonly onSubmit?: (value: string) => void;
1084
+ /** Initial search value */
1085
+ readonly defaultValue?: string;
1086
+ /** Controlled value */
1087
+ readonly value?: string;
1088
+ /** Controlled change handler */
1089
+ readonly onChange?: (value: string) => void;
1090
+ /** Compact variant for mobile (icon only button) */
1091
+ readonly variant?: 'default' | 'compact';
1092
+ /** Input width class (default: w-48) */
1093
+ readonly inputWidth?: string;
1094
+ }
1095
+
1096
+ export declare const SegmentedControlGlass: ForwardRefExoticComponent<SegmentedControlGlassProps & RefAttributes<HTMLDivElement>>;
1097
+
1098
+ declare interface SegmentedControlGlassProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> {
1099
+ readonly options: readonly SegmentOption[];
1100
+ readonly value: string;
1101
+ readonly onChange?: (value: string) => void;
1102
+ }
1103
+
1104
+ declare interface SegmentOption {
1105
+ readonly value: string;
1106
+ readonly label: string;
1107
+ }
1108
+
1109
+ export declare const SkeletonGlass: ForwardRefExoticComponent<SkeletonGlassProps & RefAttributes<HTMLDivElement>>;
1110
+
1111
+ declare interface SkeletonGlassProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof skeletonVariants> {
1112
+ readonly width?: string | number;
1113
+ readonly height?: string | number;
1114
+ }
1115
+
1116
+ declare const skeletonVariants: (props?: ({
1117
+ variant?: "title" | "text" | "avatar" | "thumbnail" | "card" | null | undefined;
1118
+ } & ClassProp) | undefined) => string;
1119
+
1120
+ export declare const SliderGlass: ForwardRefExoticComponent<SliderGlassProps & RefAttributes<HTMLInputElement>>;
1121
+
1122
+ declare interface SliderGlassProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value'> {
1123
+ readonly value: number;
1124
+ readonly onChange: (value: number) => void;
1125
+ readonly min?: number;
1126
+ readonly max?: number;
1127
+ readonly step?: number;
1128
+ readonly showValue?: boolean;
1129
+ readonly label?: string;
1130
+ readonly error?: string;
1131
+ readonly success?: string;
1132
+ }
1133
+
1134
+ export declare const SortDropdownGlass: ForwardRefExoticComponent<SortDropdownGlassProps & RefAttributes<HTMLDivElement>>;
1135
+
1136
+ declare interface SortDropdownGlassProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
1137
+ /** Current sort field */
1138
+ readonly sortBy: SortField;
1139
+ /** Current sort order */
1140
+ readonly sortOrder: SortOrder;
1141
+ /** Callback when sort changes */
1142
+ readonly onSortChange: (field: SortField, order: SortOrder) => void;
1143
+ /** Available sort options (default: all) */
1144
+ readonly options?: readonly SortField[];
1145
+ /** Compact mode for mobile */
1146
+ readonly compact?: boolean;
1147
+ }
1148
+
1149
+ declare type SortField = 'commits' | 'stars' | 'name' | 'contribution';
1150
+
1151
+ declare type SortOrder = 'asc' | 'desc';
1152
+
1153
+ export declare const StatItemGlass: ForwardRefExoticComponent<StatItemGlassProps & RefAttributes<HTMLSpanElement>>;
1154
+
1155
+ declare interface StatItemGlassProps extends HTMLAttributes<HTMLSpanElement>, VariantProps<typeof statItemVariants> {
1156
+ /** Lucide icon component */
1157
+ readonly icon: LucideIcon;
1158
+ /** Stat value (number or formatted string) */
1159
+ readonly value: number | string;
1160
+ /** Stat label */
1161
+ readonly label: string;
1162
+ /** Icon size in pixels */
1163
+ readonly iconSize?: number;
1164
+ /** Abbreviated format for mobile (1.2k instead of 1234) */
1165
+ readonly abbreviated?: boolean;
1166
+ }
1167
+
1168
+ declare const statItemVariants: (props?: ({
1169
+ size?: "sm" | "md" | "lg" | null | undefined;
1170
+ layout?: "horizontal" | "vertical" | null | undefined;
1171
+ } & ClassProp) | undefined) => string;
1172
+
1173
+ export declare const StatusIndicatorGlass: ForwardRefExoticComponent<StatusIndicatorGlassProps & RefAttributes<HTMLDivElement>>;
1174
+
1175
+ declare interface StatusIndicatorGlassProps extends React.HTMLAttributes<HTMLDivElement> {
1176
+ readonly type?: StatusType;
1177
+ readonly size?: StatusSize;
1178
+ }
1179
+
1180
+ declare type StatusSize = "normal" | "large";
1181
+
1182
+ declare type StatusType = "green" | "yellow" | "red";
1183
+
1184
+ declare interface TabsContentProps {
1185
+ /** Value of the tab this content belongs to */
1186
+ value: string;
1187
+ /** Content to display when tab is active */
1188
+ children: ReactNode;
1189
+ /** Optional className */
1190
+ className?: string;
1191
+ }
1192
+
1193
+ /**
1194
+ * TabsGlass - Compound Component API
1195
+ *
1196
+ * @example
1197
+ * ```tsx
1198
+ * <TabsGlass.Root value={activeTab} onValueChange={setActiveTab}>
1199
+ * <TabsGlass.List>
1200
+ * <TabsGlass.Trigger value="tab1">Overview</TabsGlass.Trigger>
1201
+ * <TabsGlass.Trigger value="tab2">Analytics</TabsGlass.Trigger>
1202
+ * </TabsGlass.List>
1203
+ * <TabsGlass.Content value="tab1">
1204
+ * <p>Overview content</p>
1205
+ * </TabsGlass.Content>
1206
+ * <TabsGlass.Content value="tab2">
1207
+ * <p>Analytics content</p>
1208
+ * </TabsGlass.Content>
1209
+ * </TabsGlass.Root>
1210
+ * ```
1211
+ *
1212
+ * @since v1.0.0 - Legacy API removed (tabs/activeTab/onChange props)
1213
+ */
1214
+ export declare const TabsGlass: {
1215
+ Root: FC<TabsRootProps>;
1216
+ List: ForwardRefExoticComponent<TabsListProps & RefAttributes<HTMLDivElement>>;
1217
+ Trigger: ForwardRefExoticComponent<TabsTriggerProps & RefAttributes<HTMLButtonElement>>;
1218
+ Content: FC<TabsContentProps>;
1219
+ };
1220
+
1221
+ declare interface TabsListProps extends React.HTMLAttributes<HTMLDivElement> {
1222
+ children: ReactNode;
1223
+ className?: string;
1224
+ }
1225
+
1226
+ declare interface TabsRootProps {
1227
+ /** Current active tab value */
1228
+ value: string;
1229
+ /** Callback when tab value changes */
1230
+ onValueChange?: (value: string) => void;
1231
+ /** Child components */
1232
+ children: ReactNode;
1233
+ /** Optional className for container */
1234
+ className?: string;
1235
+ }
1236
+
1237
+ declare interface TabsTriggerProps {
1238
+ /** Value of this tab */
1239
+ value: string;
1240
+ /** Tab label/content */
1241
+ children: ReactNode;
1242
+ /** Optional className */
1243
+ className?: string;
1244
+ /** Disabled state */
1245
+ disabled?: boolean;
1246
+ }
1247
+
1248
+ export declare const ThemeToggleGlass: ForwardRefExoticComponent<ThemeToggleGlassProps & RefAttributes<HTMLButtonElement>>;
1249
+
1250
+ declare interface ThemeToggleGlassProps extends ButtonHTMLAttributes<HTMLButtonElement> {
1251
+ /** Custom theme toggle handler (overrides default cycleTheme) */
1252
+ readonly onToggle?: () => void;
1253
+ /** Icon size in pixels (default: 20) */
1254
+ readonly iconSize?: number;
1255
+ /** Show icon only (hide label on mobile) */
1256
+ readonly iconOnly?: boolean;
1257
+ }
1258
+
1259
+ export declare const ToggleGlass: ForwardRefExoticComponent<ToggleGlassProps & RefAttributes<HTMLButtonElement>>;
1260
+
1261
+ declare interface ToggleGlassProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'>, VariantProps<typeof toggleSizes> {
1262
+ readonly checked: boolean;
1263
+ readonly onChange?: (checked: boolean) => void;
1264
+ readonly label?: string;
1265
+ }
1266
+
1267
+ declare const toggleSizes: (props?: ({
1268
+ size?: "sm" | "md" | "lg" | null | undefined;
1269
+ } & ClassProp) | undefined) => string;
1270
+
1271
+ export declare const TooltipGlass: ForwardRefExoticComponent<TooltipGlassProps & RefAttributes<HTMLDivElement>>;
1272
+
1273
+ declare interface TooltipGlassProps extends VariantProps<typeof tooltipPositions> {
1274
+ readonly children: ReactNode;
1275
+ readonly content: string;
1276
+ readonly position?: TooltipPosition;
1277
+ readonly className?: string;
1278
+ }
1279
+
1280
+ /**
1281
+ * TooltipGlass CVA Variants
1282
+ * Extracted for Fast Refresh compatibility
1283
+ */
1284
+ declare type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
1285
+
1286
+ declare const tooltipPositions: (props?: ({
1287
+ position?: "bottom" | "left" | "right" | "top" | null | undefined;
1288
+ } & ClassProp) | undefined) => string;
1289
+
1290
+ /**
1291
+ * TouchTarget wrapper component
1292
+ *
1293
+ * Ensures interactive elements meet accessibility standards for touch devices.
1294
+ * Automatically applies minimum dimensions and optional centering.
1295
+ *
1296
+ * @example
1297
+ * ```tsx
1298
+ * // Basic usage with default 44px minimum
1299
+ * <TouchTarget>
1300
+ * <button className="w-8 h-8">×</button>
1301
+ * </TouchTarget>
1302
+ *
1303
+ * // Material Design 48px minimum
1304
+ * <TouchTarget minSize={48}>
1305
+ * <Checkbox />
1306
+ * </TouchTarget>
1307
+ *
1308
+ * // Custom alignment
1309
+ * <TouchTarget center={false} className="justify-start">
1310
+ * <IconButton />
1311
+ * </TouchTarget>
1312
+ * ```
1313
+ */
1314
+ export declare const TouchTarget: ForwardRefExoticComponent<TouchTargetProps & RefAttributes<HTMLDivElement>>;
1315
+
1316
+ /**
1317
+ * Props for the TouchTarget component
1318
+ */
1319
+ declare interface TouchTargetProps extends HTMLAttributes<HTMLDivElement> {
1320
+ /**
1321
+ * Child element(s) to wrap with touch target
1322
+ */
1323
+ children: ReactNode;
1324
+ /**
1325
+ * Minimum touch target size in pixels
1326
+ * @default 44 - Apple HIG minimum
1327
+ */
1328
+ minSize?: 44 | 48;
1329
+ /**
1330
+ * Center content within touch target
1331
+ * @default true
1332
+ */
1333
+ center?: boolean;
1334
+ }
1335
+
1336
+ export declare const TrustScoreCardGlass: ForwardRefExoticComponent<TrustScoreCardGlassProps & RefAttributes<HTMLDivElement>>;
1337
+
1338
+ declare interface TrustScoreCardGlassProps extends React.HTMLAttributes<HTMLDivElement> {
1339
+ readonly score?: number;
1340
+ readonly metrics?: readonly MetricData_2[];
1341
+ }
1342
+
1343
+ export declare const TrustScoreDisplayGlass: ForwardRefExoticComponent<TrustScoreDisplayGlassProps & RefAttributes<HTMLDivElement>>;
1344
+
1345
+ declare interface TrustScoreDisplayGlassProps extends HTMLAttributes<HTMLDivElement> {
1346
+ /** Score value (0-100) */
1347
+ readonly score: number;
1348
+ /** Maximum score (default: 100) */
1349
+ readonly maxScore?: number;
1350
+ /** Title text */
1351
+ readonly title?: string;
1352
+ /** Show icon */
1353
+ readonly showIcon?: boolean;
1354
+ /** Size variant */
1355
+ readonly size?: 'sm' | 'md' | 'lg';
1356
+ }
1357
+
1358
+ export declare const UserInfoGlass: ForwardRefExoticComponent<UserInfoGlassProps & RefAttributes<HTMLDivElement>>;
1359
+
1360
+ declare interface UserInfoGlassProps extends HTMLAttributes<HTMLDivElement> {
1361
+ /** Full name */
1362
+ readonly name: string;
1363
+ /** Username (without @) */
1364
+ readonly username: string;
1365
+ /** Join date string (e.g., "Jan 2023") */
1366
+ readonly joinDate: string;
1367
+ /** Username link URL (default: #) */
1368
+ readonly profileUrl?: string;
1369
+ /** Layout orientation */
1370
+ readonly layout?: 'vertical' | 'horizontal';
1371
+ }
1372
+
1373
+ export declare const UserStatsLineGlass: ForwardRefExoticComponent<UserStatsLineGlassProps & RefAttributes<HTMLDivElement>>;
1374
+
1375
+ declare interface UserStatsLineGlassProps extends HTMLAttributes<HTMLDivElement> {
1376
+ /** Number of repositories */
1377
+ readonly repos: number;
1378
+ /** Number of followers */
1379
+ readonly followers: number;
1380
+ /** Number of following */
1381
+ readonly following: number;
1382
+ /** Wrap stats on mobile */
1383
+ readonly wrap?: boolean;
1384
+ /** Abbreviated numbers for mobile (1.2k instead of 1234) */
1385
+ readonly abbreviated?: boolean;
1386
+ }
1387
+
1388
+ export declare const YearCardGlass: ForwardRefExoticComponent<YearCardGlassProps & RefAttributes<HTMLDivElement>>;
1389
+
1390
+ declare interface YearCardGlassProps extends React.HTMLAttributes<HTMLDivElement> {
1391
+ readonly year: string | number;
1392
+ readonly emoji: string;
1393
+ readonly label: string;
1394
+ readonly commits: string;
1395
+ readonly progress: number;
1396
+ readonly isExpanded?: boolean;
1397
+ readonly gradient?: ProgressGradient;
1398
+ readonly prs?: number;
1399
+ readonly repos?: number;
1400
+ readonly onShowYear?: () => void;
1401
+ }
1402
+
1403
+ declare interface YearData {
1404
+ readonly year: string | number;
1405
+ readonly emoji: string;
1406
+ readonly label: string;
1407
+ readonly commits: string;
1408
+ readonly progress: number;
1409
+ readonly prs?: number;
1410
+ readonly repos?: number;
1411
+ }
1412
+
1413
+ export { }