@tarsis/toolkit 0.6.5 → 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 (78) hide show
  1. package/dist/Container-BVX2MW1U.cjs +138 -0
  2. package/dist/Container-BirkN1fA.js +119 -0
  3. package/dist/SelectBase-BC6WKZVF.cjs +448 -0
  4. package/dist/SelectBase-DPcXvMTa.js +399 -0
  5. package/dist/Slot-SOe-b2n6.cjs +77 -0
  6. package/dist/Slot-z71j7q57.js +65 -0
  7. package/dist/animation-BFpILbqb.js +102 -0
  8. package/dist/animation-BauloIgQ.cjs +119 -0
  9. package/dist/assets-BMqH4phf.cjs +52 -0
  10. package/dist/assets-huTvlamy.js +29 -0
  11. package/dist/audio/fail.mp3 +0 -0
  12. package/dist/audio/fail.ogg +0 -0
  13. package/dist/audio/hover.mp3 +0 -0
  14. package/dist/audio/hover.ogg +0 -0
  15. package/dist/audio/lock/fail.mp3 +0 -0
  16. package/dist/audio/lock/fail.ogg +0 -0
  17. package/dist/audio/lock/hover.mp3 +0 -0
  18. package/dist/audio/lock/hover.ogg +0 -0
  19. package/dist/audio/lock/prev-next.mp3 +0 -0
  20. package/dist/audio/lock/prev-next.ogg +0 -0
  21. package/dist/audio/lock/select.mp3 +0 -0
  22. package/dist/audio/lock/select.ogg +0 -0
  23. package/dist/audio/lock/success.mp3 +0 -0
  24. package/dist/audio/lock/success.ogg +0 -0
  25. package/dist/audio/prev-next.mp3 +0 -0
  26. package/dist/audio/prev-next.ogg +0 -0
  27. package/dist/audio/select.mp3 +0 -0
  28. package/dist/audio/select.ogg +0 -0
  29. package/dist/audio/success.mp3 +0 -0
  30. package/dist/audio/success.ogg +0 -0
  31. package/dist/chunk-CKQMccvm.cjs +28 -0
  32. package/dist/fonts/orbitron/orbitron-black.fnt +426 -0
  33. package/dist/fonts/orbitron/orbitron-black.png +0 -0
  34. package/dist/fonts/orbitron-black.fnt +426 -0
  35. package/dist/fonts/orbitron-black.png +0 -0
  36. package/dist/gl-B0NhVYRl.cjs +177 -0
  37. package/dist/gl-BipoEx9s.js +171 -0
  38. package/dist/hooks.cjs +661 -24
  39. package/dist/hooks.d.ts +72 -0
  40. package/dist/hooks.js +635 -1
  41. package/dist/index.cjs +26708 -384
  42. package/dist/index.d.ts +913 -27
  43. package/dist/index.js +26282 -3
  44. package/dist/layout.cjs +5 -0
  45. package/dist/layout.d.ts +45 -0
  46. package/dist/layout.js +2 -0
  47. package/dist/primitives.cjs +13 -0
  48. package/dist/primitives.d.ts +178 -0
  49. package/dist/primitives.js +3 -0
  50. package/dist/server.cjs +25 -0
  51. package/dist/server.d.ts +70 -0
  52. package/dist/server.js +2 -0
  53. package/dist/styles.css +3872 -2798
  54. package/dist/tokens-B2AxRYyF.js +434 -0
  55. package/dist/tokens-DlMougUi.cjs +469 -0
  56. package/dist/tokens.cjs +12 -0
  57. package/dist/tokens.d.ts +435 -0
  58. package/dist/tokens.js +3 -0
  59. package/dist/useMergeRefs-BM2-gSLn.js +16 -0
  60. package/dist/useMergeRefs-C_l6omwU.cjs +28 -0
  61. package/dist/utils-BGgmkNY4.cjs +330 -0
  62. package/dist/utils-Dw5El_3G.js +222 -0
  63. package/dist/utils.cjs +44 -38
  64. package/dist/utils.d.ts +75 -0
  65. package/dist/utils.js +3 -1
  66. package/dist/values-BTw18-W5.js +138 -0
  67. package/dist/values-BqSJ0h9o.cjs +275 -0
  68. package/package.json +88 -36
  69. package/dist/gl-Bp3e3vph.js +0 -3258
  70. package/dist/gl-Duf2UKsB.cjs +0 -3262
  71. package/dist/index-BcIzOPR7.cjs +0 -116866
  72. package/dist/index-BjG_vCX_.js +0 -3910
  73. package/dist/index-ZBjz1bHI.cjs +0 -3912
  74. package/dist/index-ss50SEnC.js +0 -116503
  75. package/dist/svg-BT_esDTZ.cjs +0 -236
  76. package/dist/svg-CQLdTbLk.js +0 -205
  77. package/dist/useWindowReady-6kIdYolB.cjs +0 -9317
  78. package/dist/useWindowReady-tUs-ONyG.js +0 -9224
package/dist/index.d.ts CHANGED
@@ -1,9 +1,8 @@
1
- import { AnchorHTMLAttributes } from 'react';
2
1
  import { ButtonHTMLAttributes } from 'react';
2
+ import { ComponentPropsWithRef } from 'react';
3
3
  import { CSSProperties } from 'react';
4
4
  import { default as default_2 } from 'react';
5
5
  import { DependencyList } from 'react';
6
- import { DetailedHTMLProps } from 'react';
7
6
  import { ElementType } from 'react';
8
7
  import { HTMLAttributes } from 'react';
9
8
  import { IconType } from 'react-icons';
@@ -14,10 +13,13 @@ import { JSXElementConstructor } from 'react';
14
13
  import { MotionValue } from 'motion-dom';
15
14
  import { MotionValue as MotionValue_2 } from 'motion/react';
16
15
  import { MouseEvent as MouseEvent_2 } from 'react';
16
+ import { OffsetOptions } from '@floating-ui/react';
17
+ import { Placement } from '@floating-ui/react';
17
18
  import { ReactElement } from 'react';
18
19
  import { ReactNode } from 'react';
19
20
  import { ReactPortal } from 'react';
20
21
  import { Ref } from 'react';
22
+ import { RefCallback } from 'react';
21
23
  import { RefObject } from 'react';
22
24
 
23
25
  export declare const AccentShardCard: () => JSX.Element;
@@ -32,6 +34,8 @@ export declare const AirplaneAnimation: () => JSX.Element;
32
34
 
33
35
  export declare const AlienSkeuomorphicLoaders: () => JSX.Element;
34
36
 
37
+ declare type AnchorControlProps = ComponentPropsWithRef<'a'>;
38
+
35
39
  export declare const AnimatedBlendedCard: () => JSX.Element;
36
40
 
37
41
  export declare const AnimatedHeroTitle: () => JSX.Element;
@@ -44,6 +48,23 @@ export declare const AnimatedIconsNav: () => JSX.Element;
44
48
 
45
49
  export declare const AnimatedShareMenu: () => JSX.Element;
46
50
 
51
+ /**
52
+ * JS-accessible animation duration values (in seconds)
53
+ * for use with GSAP, framer-motion, and Web Animations API.
54
+ * Source of truth for the CSS var equivalents in global.css.
55
+ */
56
+ export declare const animationDuration: {
57
+ readonly fastest: 0.1;
58
+ readonly fast: 0.15;
59
+ readonly short: 0.2;
60
+ readonly medium: 0.3;
61
+ readonly long: 0.4;
62
+ readonly slow: 0.5;
63
+ readonly slowest: 0.8;
64
+ };
65
+
66
+ export declare type AnimationDurationName = keyof typeof animationDuration;
67
+
47
68
  export declare const animationLogger: BaseLogger;
48
69
 
49
70
  export declare const ApertureVideo: () => JSX.Element;
@@ -103,6 +124,13 @@ export declare const BorderLink: ({ children, className, ...rest }: Props_50) =>
103
124
 
104
125
  export declare const BouncyClock: () => JSX.Element;
105
126
 
127
+ export declare type BoundedMap<K, V> = ReturnType<typeof createBoundedMap<K, V>>;
128
+
129
+ export declare type BoundedMapOptions = {
130
+ maxSize: number;
131
+ ttlMs?: number;
132
+ };
133
+
106
134
  export declare const BrandCard: ({ children, label, hoverColor, className, contentClassName, }: Props_32) => JSX.Element;
107
135
 
108
136
  export declare const BreakingProgress: ({ loop }: Props_8) => JSX.Element;
@@ -121,10 +149,38 @@ export declare const BulletsCarousel: () => JSX.Element;
121
149
 
122
150
  export declare const BurningButton: () => JSX.Element;
123
151
 
152
+ export declare const ButtonBase: (props: ButtonBaseRenderProps) => JSX.Element;
153
+
154
+ export declare type ButtonBaseAsChildProps = ButtonBaseOwnProps & Omit<ButtonHTMLAttributes<HTMLButtonElement>, keyof ButtonBaseOwnProps> & {
155
+ children: ReactNode;
156
+ ref?: Ref<HTMLElement>;
157
+ };
158
+
159
+ declare type ButtonBaseOwnProps = {
160
+ variant?: ButtonVariant;
161
+ size?: ButtonSize;
162
+ pending?: boolean;
163
+ disabled?: boolean;
164
+ style?: CSSProperties;
165
+ className?: string;
166
+ asChild?: boolean;
167
+ };
168
+
169
+ export declare type ButtonBaseProps<E extends ElementType = 'button'> = ButtonBaseOwnProps & Omit<PolymorphicProps<E>, keyof ButtonBaseOwnProps>;
170
+
171
+ declare type ButtonBaseRenderProps = (ButtonBaseProps<ElementType> | ButtonBaseAsChildProps) & {
172
+ as?: ElementType;
173
+ ref?: Ref<HTMLElement>;
174
+ };
175
+
124
176
  export declare const ButtonHoverFill: () => JSX.Element;
125
177
 
126
178
  export declare const ButtonShimmer: () => JSX.Element;
127
179
 
180
+ export declare type ButtonSize = 'sm' | 'md' | 'lg';
181
+
182
+ export declare type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger' | 'success' | 'unstyled';
183
+
128
184
  export declare const ButtonWithDot: () => JSX.Element;
129
185
 
130
186
  export declare const CanOfDigits: ({ className, controls, initialValue, }: Props_54) => JSX.Element;
@@ -157,6 +213,28 @@ export declare const ChaseLoader: () => JSX.Element;
157
213
 
158
214
  export declare const Checkbox: ({ rootClassName, className, inputClassName, ref, }: Props_41) => JSX.Element;
159
215
 
216
+ export declare const CheckboxBase: ({ checked: controlledChecked, defaultChecked, indeterminate, onChange, disabled, name, value, className, style, children, ref, inputRef: externalInputRef, inputProps, asChild, ...ariaProps }: CheckboxBaseProps) => JSX.Element;
217
+
218
+ export declare type CheckboxBaseProps = {
219
+ checked?: boolean;
220
+ defaultChecked?: boolean;
221
+ indeterminate?: boolean;
222
+ onChange?: (checked: boolean) => void;
223
+ disabled?: boolean;
224
+ name?: string;
225
+ value?: string;
226
+ className?: string;
227
+ style?: CSSProperties;
228
+ children?: ReactNode;
229
+ 'aria-label'?: string;
230
+ 'aria-labelledby'?: string;
231
+ ref?: Ref<HTMLLabelElement>;
232
+ inputRef?: Ref<HTMLInputElement>;
233
+ inputProps?: Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'checked' | 'disabled' | 'name' | 'value'>;
234
+ /** Render the root as the provided child element instead of `<label>`. */
235
+ asChild?: boolean;
236
+ };
237
+
160
238
  export declare const ChequeredCard: () => JSX.Element;
161
239
 
162
240
  export declare const Chips: () => JSX.Element;
@@ -183,10 +261,29 @@ export declare const ClickButtonParticles: () => JSX.Element;
183
261
 
184
262
  export declare const ClickSpark: () => JSX.Element;
185
263
 
264
+ export declare const Cluster: ({ gap, justify, align, asChild, className, style, children, ref, ...rest }: ClusterProps) => JSX.Element;
265
+
266
+ export declare type ClusterProps = {
267
+ gap?: string;
268
+ justify?: 'start' | 'center' | 'end' | 'between';
269
+ align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';
270
+ asChild?: boolean;
271
+ className?: string;
272
+ style?: CSSProperties;
273
+ children?: ReactNode;
274
+ ref?: Ref<HTMLElement>;
275
+ } & Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'style'>;
276
+
186
277
  export declare const CollapseAnimation: () => JSX.Element;
187
278
 
188
279
  export declare const ColorfulButtons: () => JSX.Element;
189
280
 
281
+ export declare type ColorValidationResult = {
282
+ valid: boolean;
283
+ missing: SemanticVar[];
284
+ present: SemanticVar[];
285
+ };
286
+
190
287
  export declare const ComingSoonBadge: () => JSX.Element;
191
288
 
192
289
  export declare const ComplexGradient: () => JSX.Element;
@@ -197,12 +294,45 @@ export declare const ConfettiButton: ({ className, onClick, children, ...props }
197
294
 
198
295
  declare type Constructor<T> = new (...args: any[]) => T;
199
296
 
297
+ export declare const Container: ({ maxWidth, padding, asChild, className, style, children, ref, ...rest }: ContainerProps) => JSX.Element;
298
+
299
+ export declare type ContainerProps = {
300
+ maxWidth?: string;
301
+ padding?: string;
302
+ asChild?: boolean;
303
+ className?: string;
304
+ style?: CSSProperties;
305
+ children?: ReactNode;
306
+ ref?: Ref<HTMLElement>;
307
+ } & Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'style'>;
308
+
200
309
  export declare const ContrastBackgroundText: () => JSX.Element;
201
310
 
202
311
  export declare const Counter: () => JSX.Element;
203
312
 
204
313
  export declare const CoverFlowGallery: () => JSX.Element;
205
314
 
315
+ /**
316
+ * LRU map with optional TTL. Evicts least-recently-used entries
317
+ * when maxSize is exceeded, and expired entries on access.
318
+ */
319
+ export declare function createBoundedMap<K, V>(options: BoundedMapOptions): {
320
+ get(key: K): V | undefined;
321
+ has(key: K): boolean;
322
+ set(key: K, value: V): void;
323
+ delete(key: K): boolean;
324
+ clear(): void;
325
+ readonly size: number;
326
+ };
327
+
328
+ /**
329
+ * Create standardized enter/exit motion variants using toolkit tokens.
330
+ * Returns `{ initial, animate, exit }` for framer-motion / motion.
331
+ */
332
+ export declare const createPresenceVariants: (enter: Record<string, unknown>, exit: Record<string, unknown>, duration?: number, easingCurve?: readonly [number, number, number, number]) => PresenceVariants;
333
+
334
+ export declare type CssVarRef = `var(--${string})`;
335
+
206
336
  export declare const CubeLoader: () => JSX.Element;
207
337
 
208
338
  export declare const CurtainRevealMenu: () => JSX.Element;
@@ -231,6 +361,23 @@ export declare const DialControl: ({ limit }: Props_45) => JSX.Element;
231
361
 
232
362
  export declare const DialFuturistic: () => JSX.Element;
233
363
 
364
+ export declare const DialogBase: ({ open, onClose, children, className, overlayClassName, style, ref: externalRef, closeOnOverlayClick, closeOnEscape, ...ariaProps }: DialogBaseProps) => JSX.Element;
365
+
366
+ export declare type DialogBaseProps = {
367
+ open: boolean;
368
+ onClose: () => void;
369
+ children: ReactNode;
370
+ className?: string;
371
+ overlayClassName?: string;
372
+ style?: CSSProperties;
373
+ ref?: Ref<HTMLDialogElement>;
374
+ closeOnOverlayClick?: boolean;
375
+ closeOnEscape?: boolean;
376
+ 'aria-label'?: string;
377
+ 'aria-labelledby'?: string;
378
+ 'aria-describedby'?: string;
379
+ };
380
+
234
381
  export declare const DissolveElementEffect: ({ children, duration, maxScale, className, onTrigger, trigger, }: Props_13) => JSX.Element;
235
382
 
236
383
  /**
@@ -398,6 +545,28 @@ export declare const DynamicIconButton: () => JSX.Element;
398
545
 
399
546
  export declare const DynamicIsland: ({ position }: Props_2) => JSX.Element;
400
547
 
548
+ /**
549
+ * Cubic-bezier tuples for programmatic use.
550
+ * CSS equivalents live in global.css --ease-* vars.
551
+ */
552
+ export declare const easing: {
553
+ readonly linear: readonly [0, 0, 1, 1];
554
+ readonly ease: readonly [0.25, 0.1, 0.25, 1];
555
+ readonly easeIn: readonly [0.42, 0, 1, 1];
556
+ readonly easeOut: readonly [0, 0, 0.58, 1];
557
+ readonly easeInOut: readonly [0.42, 0, 0.58, 1];
558
+ readonly easeInOutCubic: readonly [0.4, 0, 0.2, 1];
559
+ readonly easeOutCubic: readonly [0.215, 0.61, 0.355, 1];
560
+ readonly easeOutQuad: readonly [0.25, 0.46, 0.45, 0.94];
561
+ readonly easeInOutQuad: readonly [0.455, 0.03, 0.515, 0.955];
562
+ readonly easeInQuart: readonly [0.5, 0, 0.75, 0];
563
+ readonly easeOutQuart: readonly [0.25, 1, 0.5, 1];
564
+ readonly easeInOutQuart: readonly [0.76, 0, 0.24, 1];
565
+ readonly easeOutExpo: readonly [0.16, 1, 0.3, 1];
566
+ };
567
+
568
+ export declare type EasingName = keyof typeof easing;
569
+
401
570
  export declare const EchoClickButton: () => JSX.Element;
402
571
 
403
572
  export declare const ElasticCursor: () => JSX.Element;
@@ -431,6 +600,8 @@ declare type ExpansionProps = InteractiveElementProps & {
431
600
 
432
601
  declare type ExternalDockMotionItemSignature = (props: Omit<Props_46, 'mouseX'> & Use) => JSX_2.Element;
433
602
 
603
+ export declare const fadePresence: PresenceVariants;
604
+
434
605
  export declare const FadeUp: ({ children, delay, duration, once, }: {
435
606
  children: ReactNode;
436
607
  delay?: number;
@@ -456,6 +627,67 @@ export declare const FluidGooeyTextBackground: () => JSX.Element;
456
627
 
457
628
  export declare const FootprintButton: () => JSX.Element;
458
629
 
630
+ /**
631
+ * Formats seconds into MM:SS display string.
632
+ */
633
+ export declare function formatDuration(totalSeconds: number): string;
634
+
635
+ /**
636
+ * Formats milliseconds into MM:SS.ms display string.
637
+ * Useful for timers and stopwatches.
638
+ */
639
+ export declare function formatTime(totalMs: number): string;
640
+
641
+ export declare const FormField: (({ children, className, style, id, hasError, hasHint, }: FormFieldProps) => JSX.Element) & {
642
+ Label: ({ children, className }: FormFieldLabelProps) => JSX.Element;
643
+ Control: ({ children }: FormFieldControlProps) => JSX.Element;
644
+ Error: ({ children, className }: FormFieldErrorProps) => JSX.Element | null;
645
+ Hint: ({ children, className }: FormFieldHintProps) => JSX.Element | null;
646
+ };
647
+
648
+ declare type FormFieldAria = {
649
+ 'aria-describedby'?: string;
650
+ 'aria-invalid'?: boolean;
651
+ 'aria-errormessage'?: string;
652
+ id: string;
653
+ };
654
+
655
+ declare type FormFieldControlProps = {
656
+ children: (props: UseFormFieldReturn['fieldProps']) => ReactNode;
657
+ };
658
+
659
+ declare type FormFieldErrorProps = {
660
+ children: ReactNode;
661
+ className?: string;
662
+ };
663
+
664
+ declare type FormFieldHintProps = {
665
+ children: ReactNode;
666
+ className?: string;
667
+ };
668
+
669
+ export declare type FormFieldIds = {
670
+ fieldId: string;
671
+ labelId: string;
672
+ errorId: string;
673
+ hintId: string;
674
+ descriptionId: string;
675
+ };
676
+
677
+ declare type FormFieldLabelProps = {
678
+ children: ReactNode;
679
+ className?: string;
680
+ };
681
+
682
+ export declare type FormFieldProps = {
683
+ children: ReactNode;
684
+ className?: string;
685
+ style?: CSSProperties;
686
+ id?: string;
687
+ hasError?: boolean;
688
+ hasHint?: boolean;
689
+ };
690
+
459
691
  export declare const ForwardArrowLink: () => JSX.Element;
460
692
 
461
693
  export declare const FullScreenImageCarousel: () => JSX.Element;
@@ -470,6 +702,12 @@ export declare const getCurrentLogLevel: () => LogLevel;
470
702
 
471
703
  export declare function getPath(x: number, smoothing: number): string;
472
704
 
705
+ /**
706
+ * Extract the CSS custom property name from a var() reference.
707
+ * `'var(--space-4)'` -> `'--space-4'`
708
+ */
709
+ export declare const getVarName: (token: CssVarRef) => string;
710
+
473
711
  export declare const GlassIcon: () => JSX.Element;
474
712
 
475
713
  export declare const GlassMusicPlayer: ({ title, artist, imageUrl, variant, onPlay, onFastForward, className, children, }: Props_62) => JSX.Element;
@@ -489,7 +727,7 @@ export declare const GlidingReveal: () => JSX.Element;
489
727
 
490
728
  export declare const GlitterCard: () => JSX.Element;
491
729
 
492
- export declare const GlowButton: ({ children, className, type, ref, ...rest }: Props_24) => JSX.Element;
730
+ export declare const GlowButton: ({ children, className, ref, ...rest }: Props_24) => JSX.Element;
493
731
 
494
732
  export declare const GlowingDropdown: () => JSX.Element;
495
733
 
@@ -529,6 +767,20 @@ export declare const GridHover: () => JSX.Element;
529
767
 
530
768
  export declare const GridViewTransition: () => JSX.Element;
531
769
 
770
+ declare type GsapCallable = (...args: unknown[]) => unknown;
771
+
772
+ declare type GsapCleanup = () => void;
773
+
774
+ export declare type GsapContextLike = {
775
+ add(methodName: string, func: GsapCallable, scope?: Element | string | object): GsapCallable;
776
+ add<T extends GsapCallable>(func: T, scope?: Element | string | object): ReturnType<T>;
777
+ ignore(func: GsapCallable): void;
778
+ kill(revert?: boolean): void;
779
+ revert(config?: object): void;
780
+ clear(): void;
781
+ isReverted: boolean;
782
+ };
783
+
532
784
  export declare const HamburgerMusic: () => JSX.Element;
533
785
 
534
786
  export declare const HamburgerX: ({ isOpen, onClick }: Props_47) => JSX.Element;
@@ -563,6 +815,28 @@ export declare const IndeterminateCheckboxes: () => JSX.Element;
563
815
 
564
816
  export declare const InfiniteLoader: () => JSX.Element;
565
817
 
818
+ export declare const InputBase: ({ label, error, hint, prefix, suffix, disabled, className, wrapperClassName, style, ref, id: externalId, asChild, children, ...inputProps }: InputBaseProps & {
819
+ children?: ReactNode;
820
+ }) => JSX.Element;
821
+
822
+ export declare type InputBaseProps = {
823
+ label?: ReactNode;
824
+ error?: ReactNode;
825
+ hint?: ReactNode;
826
+ prefix?: ReactNode;
827
+ suffix?: ReactNode;
828
+ disabled?: boolean;
829
+ className?: string;
830
+ wrapperClassName?: string;
831
+ style?: CSSProperties;
832
+ ref?: Ref<HTMLInputElement>;
833
+ id?: string;
834
+ /** Render the control slot as the provided child element instead of `<input>`. */
835
+ asChild?: boolean;
836
+ } & Omit<InputHTMLAttributes<HTMLInputElement>, 'prefix'>;
837
+
838
+ declare type InputControlProps = ComponentPropsWithRef<'input'>;
839
+
566
840
  export declare const InputFirework: () => JSX.Element;
567
841
 
568
842
  declare type Interaction = 'possible' | 'impossible';
@@ -657,6 +931,8 @@ export declare const MagneticButton: () => JSX.Element;
657
931
 
658
932
  export declare const MagnifiedNavItems: () => JSX.Element;
659
933
 
934
+ export declare function mergeRefs<T>(...refs: PossibleRef<T>[]): RefCallback<T>;
935
+
660
936
  export declare const MetalCircleController: () => JSX.Element;
661
937
 
662
938
  export declare const MinimalisticAccordion: ({ summary, children, defaultOpen, onToggle, className, }: Props_15) => JSX.Element;
@@ -703,6 +979,12 @@ export declare const NoisyButton: () => JSX.Element;
703
979
 
704
980
  export declare const noop: (..._args: unknown[]) => void;
705
981
 
982
+ /**
983
+ * Normalises unknown thrown values into proper Error instances.
984
+ * Preserves original Error objects; wraps strings and unknowns.
985
+ */
986
+ export declare function normalizeError(err: unknown): Error;
987
+
706
988
  export declare const NotificationBell: () => JSX.Element;
707
989
 
708
990
  export declare const notReachable: (arg: never) => never;
@@ -731,7 +1013,7 @@ export declare const PieLoader: () => JSX.Element;
731
1013
 
732
1014
  export declare const PinDropdown: () => JSX.Element;
733
1015
 
734
- declare type Placement = 'top' | 'bottom' | 'left' | 'right';
1016
+ declare type Placement_2 = 'top' | 'bottom' | 'left' | 'right';
735
1017
 
736
1018
  export declare const PlayPauseButton: () => JSX.Element;
737
1019
 
@@ -739,10 +1021,47 @@ export declare const PlayPauseMusicButton: () => JSX.Element;
739
1021
 
740
1022
  export declare const PolaroidStack: () => JSX.Element;
741
1023
 
1024
+ declare type PolymorphicOwnProps<E extends ElementType> = {
1025
+ as?: E;
1026
+ };
1027
+
1028
+ declare type PolymorphicProps<E extends ElementType> = PolymorphicOwnProps<E> & Omit<ComponentPropsWithRef<E>, keyof PolymorphicOwnProps<E>>;
1029
+
1030
+ export declare const PopoverBase: ({ open, onOpenChange, trigger, children, placement, offsetValue, className, style, triggerRef: externalTriggerRef, ...ariaProps }: PopoverBaseProps) => JSX.Element;
1031
+
1032
+ export declare type PopoverBaseProps = {
1033
+ open: boolean;
1034
+ onOpenChange: (open: boolean) => void;
1035
+ trigger: ReactNode;
1036
+ children: ReactNode;
1037
+ placement?: Placement;
1038
+ offsetValue?: OffsetOptions;
1039
+ className?: string;
1040
+ style?: CSSProperties;
1041
+ triggerRef?: Ref<HTMLElement>;
1042
+ 'aria-label'?: string;
1043
+ 'aria-labelledby'?: string;
1044
+ };
1045
+
1046
+ export declare const Portal: ({ children, container }: PortalProps) => ReactPortal | null;
1047
+
1048
+ export declare type PortalProps = {
1049
+ children: ReactNode;
1050
+ container?: HTMLElement | null;
1051
+ };
1052
+
742
1053
  export declare const PositionHover: () => JSX.Element;
743
1054
 
1055
+ declare type PossibleRef<T> = Ref<T> | undefined | null;
1056
+
744
1057
  export declare const PredictionButton: () => JSX.Element;
745
1058
 
1059
+ export declare type PresenceVariants = {
1060
+ initial: Record<string, unknown>;
1061
+ animate: Record<string, unknown>;
1062
+ exit: Record<string, unknown>;
1063
+ };
1064
+
746
1065
  export declare const ProductTile: ({ children, onClick, className, }: Props_38) => JSX.Element;
747
1066
 
748
1067
  export declare const ProfileCard: () => JSX.Element;
@@ -803,13 +1122,17 @@ declare type Props_16 = {
803
1122
  className?: string;
804
1123
  };
805
1124
 
806
- declare type Props_17 = DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
1125
+ declare type Props_17 = ButtonBaseProps<ElementType> & {
1126
+ ref?: Ref<HTMLElement>;
1127
+ };
807
1128
 
808
1129
  declare type Props_18 = {
809
1130
  className?: string;
810
1131
  };
811
1132
 
812
- declare type Props_19 = DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
1133
+ declare type Props_19 = Omit<ButtonBaseProps<ElementType>, 'variant'> & {
1134
+ ref?: Ref<HTMLElement>;
1135
+ };
813
1136
 
814
1137
  declare type Props_2 = {
815
1138
  position?: 'static' | 'fixed';
@@ -821,32 +1144,35 @@ declare type Props_20 = {
821
1144
  children?: ReactNode;
822
1145
  };
823
1146
 
824
- declare interface Props_21 extends DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement> {
1147
+ declare type Props_21 = ButtonBaseProps<ElementType> & {
825
1148
  children?: ReactNode;
826
- className?: string;
827
- }
1149
+ ref?: Ref<HTMLElement>;
1150
+ };
828
1151
 
829
1152
  declare type Props_22 = {
830
1153
  onClick?: VoidFunction;
831
1154
  children?: ReactNode;
832
1155
  };
833
1156
 
834
- declare interface Props_23 extends DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement> {
835
- children?: ReactNode;
1157
+ declare type Props_23 = ButtonBaseProps<ElementType> & {
836
1158
  alternativeChildren?: ReactNode;
837
- className?: string;
838
- }
1159
+ ref?: Ref<HTMLElement>;
1160
+ };
839
1161
 
840
- declare type Props_24 = ButtonHTMLAttributes<HTMLButtonElement> & {
841
- ref?: Ref<HTMLButtonElement>;
1162
+ declare type Props_24 = ButtonBaseProps<ElementType> & {
1163
+ ref?: Ref<HTMLElement>;
842
1164
  };
843
1165
 
844
- declare type Props_25 = DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
1166
+ declare type Props_25 = ButtonBaseProps<ElementType> & {
1167
+ ref?: Ref<HTMLElement>;
1168
+ };
845
1169
 
846
- declare type Props_26 = DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
1170
+ declare type Props_26 = ButtonBaseProps<ElementType> & {
1171
+ ref?: Ref<HTMLElement>;
1172
+ };
847
1173
 
848
- declare type Props_27 = DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement> & {
849
- className?: string;
1174
+ declare type Props_27 = ButtonBaseProps<ElementType> & {
1175
+ ref?: Ref<HTMLElement>;
850
1176
  };
851
1177
 
852
1178
  declare type Props_28 = {
@@ -862,7 +1188,9 @@ declare type Props_3 = {
862
1188
  className?: string;
863
1189
  };
864
1190
 
865
- declare type Props_30 = DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
1191
+ declare type Props_30 = ButtonBaseProps<ElementType> & {
1192
+ ref?: Ref<HTMLElement>;
1193
+ };
866
1194
 
867
1195
  declare type Props_31 = {
868
1196
  onClick?: (e: MouseEvent_2<HTMLButtonElement>) => void;
@@ -935,7 +1263,7 @@ declare type Props_40 = {
935
1263
  children?: ReactElement<any> | ReactElement<any>[];
936
1264
  };
937
1265
 
938
- declare type Props_41 = DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> & {
1266
+ declare type Props_41 = InputControlProps & {
939
1267
  rootClassName?: string;
940
1268
  className?: string;
941
1269
  inputClassName?: string;
@@ -989,15 +1317,15 @@ declare type Props_5 = {
989
1317
  isVertical?: boolean;
990
1318
  };
991
1319
 
992
- declare type Props_50 = DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;
1320
+ declare type Props_50 = AnchorControlProps;
993
1321
 
994
- declare type Props_51 = DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;
1322
+ declare type Props_51 = AnchorControlProps;
995
1323
 
996
- declare interface Props_52 extends DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement> {
1324
+ declare interface Props_52 extends AnchorControlProps {
997
1325
  href: string;
998
1326
  }
999
1327
 
1000
- declare interface Props_53 extends DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement> {
1328
+ declare interface Props_53 extends AnchorControlProps {
1001
1329
  href: string;
1002
1330
  }
1003
1331
 
@@ -1061,7 +1389,7 @@ declare type Props_62 = {
1061
1389
  children?: ReactNode;
1062
1390
  };
1063
1391
 
1064
- declare type Props_63 = DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> & {
1392
+ declare type Props_63 = InputControlProps & {
1065
1393
  className?: string;
1066
1394
  };
1067
1395
 
@@ -1166,6 +1494,21 @@ export declare const RegularLink: ({ children, href, className, target, rel, ref
1166
1494
 
1167
1495
  export declare const RepostButton: () => JSX.Element;
1168
1496
 
1497
+ /**
1498
+ * All semantic CSS custom property names that must be defined per theme.
1499
+ * Used for CI/test validation to assert theme completeness.
1500
+ */
1501
+ export declare const REQUIRED_SEMANTIC_VARS: readonly ["--color-surface-canvas", "--color-surface-raised", "--color-surface-elevated", "--color-surface-overlay", "--color-surface-inverse", "--color-surface-disabled", "--color-text-primary", "--color-text-secondary", "--color-text-tertiary", "--color-text-inverse", "--color-text-disabled", "--color-border-muted", "--color-border-subtle", "--color-border-strong", "--color-accent-primary", "--color-accent-primary-muted", "--color-accent-primary-emphasis", "--color-accent-success", "--color-accent-success-emphasis", "--color-accent-warning", "--color-accent-warning-emphasis", "--color-accent-danger", "--color-accent-danger-emphasis", "--color-accent-highlight", "--color-accent-highlight-emphasis", "--color-focus-ring", "--color-bg"];
1502
+
1503
+ export declare type ResolvedTheme = 'light' | 'dark';
1504
+
1505
+ /**
1506
+ * Resolve the computed value of a CSS variable token at runtime.
1507
+ * Checks `document.body` first so semantic theme tokens resolve from the
1508
+ * same element they are defined on, then falls back to `document.documentElement`.
1509
+ */
1510
+ export declare const resolveToken: (token: CssVarRef, element?: Element) => string;
1511
+
1169
1512
  export declare const RevealImageAnimation: () => JSX.Element;
1170
1513
 
1171
1514
  export declare const RhombusGallery: () => JSX.Element;
@@ -1180,6 +1523,8 @@ export declare const RubberButton: () => JSX.Element;
1180
1523
 
1181
1524
  export declare const RunningButton: () => JSX.Element;
1182
1525
 
1526
+ export declare const scalePresence: PresenceVariants;
1527
+
1183
1528
  export declare const SchrodingerFormControls: () => JSX.Element;
1184
1529
 
1185
1530
  export declare const ScrambledText: ({ children, reveal }: Props_69) => JSX.Element;
@@ -1206,6 +1551,31 @@ export declare const SegmentedControls: ({ activeId, options, onChange, isVertic
1206
1551
 
1207
1552
  export declare const SegmentedToggle: () => JSX.Element;
1208
1553
 
1554
+ export declare const SelectBase: <V extends string = string>({ options, value: controlledValue, defaultValue, onChange, placeholder, disabled, name, className, style, ref, ...ariaProps }: SelectBaseProps<V>) => JSX.Element;
1555
+
1556
+ export declare type SelectBaseProps<V extends string = string> = {
1557
+ options: SelectOption<V>[];
1558
+ value?: V;
1559
+ defaultValue?: V;
1560
+ onChange?: (value: V) => void;
1561
+ placeholder?: ReactNode;
1562
+ disabled?: boolean;
1563
+ name?: string;
1564
+ className?: string;
1565
+ style?: CSSProperties;
1566
+ ref?: Ref<HTMLDivElement>;
1567
+ 'aria-label'?: string;
1568
+ 'aria-labelledby'?: string;
1569
+ };
1570
+
1571
+ export declare type SelectOption<V extends string = string> = {
1572
+ value: V;
1573
+ label: ReactNode;
1574
+ disabled?: boolean;
1575
+ };
1576
+
1577
+ export declare type SemanticVar = (typeof REQUIRED_SEMANTIC_VARS)[number];
1578
+
1209
1579
  export declare const setLogLevel: (level: LogLevel) => void;
1210
1580
 
1211
1581
  export declare const setRequestId: (id: string) => void;
@@ -1265,8 +1635,12 @@ declare enum SlideDirection {
1265
1635
  RIGHT = "right"
1266
1636
  }
1267
1637
 
1638
+ export declare const slideDownPresence: PresenceVariants;
1639
+
1268
1640
  export declare const SlideIn: ({ children, direction, delay }: Props_9) => JSX.Element;
1269
1641
 
1642
+ export declare const slideUpPresence: PresenceVariants;
1643
+
1270
1644
  export declare const SlidingButton: () => JSX.Element;
1271
1645
 
1272
1646
  export declare const SlidingIcon: () => JSX.Element;
@@ -1275,6 +1649,20 @@ export declare const SlidingImages: () => JSX.Element;
1275
1649
 
1276
1650
  export declare const SlidingStepper: () => JSX.Element;
1277
1651
 
1652
+ export declare const Slot: ({ children, ref, ...slotProps }: SlotProps) => ReactElement<unknown, string | JSXElementConstructor<any>> | null;
1653
+
1654
+ export declare type SlotProps = HTMLAttributes<HTMLElement> & {
1655
+ children?: ReactNode;
1656
+ ref?: Ref<HTMLElement>;
1657
+ };
1658
+
1659
+ declare const Slottable_2: ({ children }: SlottableProps) => JSX.Element;
1660
+ export { Slottable_2 as Slottable }
1661
+
1662
+ export declare type SlottableProps = {
1663
+ children: ReactNode;
1664
+ };
1665
+
1278
1666
  export declare const SmileyPreloader: () => JSX.Element;
1279
1667
 
1280
1668
  export declare const SmokeTextDisappearance: ({ children }: Props_10) => JSX.Element;
@@ -1297,12 +1685,73 @@ export declare const SpiralLoadingText: ({ text, className }: Props_72) => JSX.E
1297
1685
 
1298
1686
  export declare const SplashCursor: ({ onClick }: Props_44) => JSX.Element;
1299
1687
 
1688
+ /**
1689
+ * Standardised spring presets for framer-motion / react-spring.
1690
+ * Usage: <motion.div transition={springPreset.bouncy} />
1691
+ */
1692
+ export declare const springPreset: {
1693
+ readonly stiff: {
1694
+ readonly type: "spring";
1695
+ readonly stiffness: 400;
1696
+ readonly damping: 30;
1697
+ readonly mass: 1;
1698
+ };
1699
+ readonly bouncy: {
1700
+ readonly type: "spring";
1701
+ readonly stiffness: 300;
1702
+ readonly damping: 15;
1703
+ readonly mass: 1;
1704
+ };
1705
+ readonly gentle: {
1706
+ readonly type: "spring";
1707
+ readonly stiffness: 150;
1708
+ readonly damping: 20;
1709
+ readonly mass: 1;
1710
+ };
1711
+ readonly snappy: {
1712
+ readonly type: "spring";
1713
+ readonly stiffness: 500;
1714
+ readonly damping: 35;
1715
+ readonly mass: 0.8;
1716
+ };
1717
+ readonly slow: {
1718
+ readonly type: "spring";
1719
+ readonly stiffness: 100;
1720
+ readonly damping: 20;
1721
+ readonly mass: 1.5;
1722
+ };
1723
+ };
1724
+
1725
+ export declare type SpringPresetName = keyof typeof springPreset;
1726
+
1300
1727
  export declare const SquircleAvatar: () => JSX.Element;
1301
1728
 
1302
1729
  export declare const SquishButton: ({ children, className, ...rest }: Props_30) => JSX.Element;
1303
1730
 
1731
+ export declare const Stack: ({ gap, align, divider, asChild, className, style, children, ref, ...rest }: StackProps) => JSX.Element;
1732
+
1304
1733
  export declare const StackingCards: () => JSX.Element;
1305
1734
 
1735
+ export declare type StackProps = {
1736
+ gap?: string;
1737
+ align?: 'start' | 'center' | 'end' | 'stretch';
1738
+ divider?: ReactNode;
1739
+ asChild?: boolean;
1740
+ className?: string;
1741
+ style?: CSSProperties;
1742
+ children?: ReactNode;
1743
+ ref?: Ref<HTMLElement>;
1744
+ } & Omit<HTMLAttributes<HTMLDivElement>, 'className' | 'style'>;
1745
+
1746
+ export declare const staggerDelay = 0.03;
1747
+
1748
+ /**
1749
+ * Wrapper around the View Transitions API.
1750
+ * Uses `document.startViewTransition` when available (Chrome 111+, Safari 18+),
1751
+ * falls back to calling the callback directly on unsupported browsers.
1752
+ */
1753
+ export declare const startViewTransition: (callback: () => void | Promise<void>) => ViewTransitionReturn;
1754
+
1306
1755
  export declare const StaticSolarEclipse: () => JSX.Element;
1307
1756
 
1308
1757
  export declare const StickyHeader: () => JSX.Element;
@@ -1327,6 +1776,31 @@ export declare const SuccessLoader: ({ status }: Props_58) => JSX.Element;
1327
1776
 
1328
1777
  export declare const SuccessLoadingButton: ({ onClick, onSuccess, children, className, disabled, }: Props_31) => JSX.Element;
1329
1778
 
1779
+ /**
1780
+ * Check if the View Transitions API is supported in the current browser.
1781
+ */
1782
+ export declare const supportsViewTransitions: () => boolean;
1783
+
1784
+ export declare const SwitchBase: ({ checked: controlledChecked, defaultChecked, onChange, disabled, name, value, className, style, children, ref, inputProps, asChild, ...ariaProps }: SwitchBaseProps) => JSX.Element;
1785
+
1786
+ export declare type SwitchBaseProps = {
1787
+ checked?: boolean;
1788
+ defaultChecked?: boolean;
1789
+ onChange?: (checked: boolean) => void;
1790
+ disabled?: boolean;
1791
+ name?: string;
1792
+ value?: string;
1793
+ className?: string;
1794
+ style?: CSSProperties;
1795
+ children?: ReactNode;
1796
+ 'aria-label'?: string;
1797
+ 'aria-labelledby'?: string;
1798
+ ref?: Ref<HTMLLabelElement>;
1799
+ inputProps?: Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'role' | 'checked' | 'disabled' | 'name' | 'value'>;
1800
+ /** Render the root as the provided child element instead of `<label>`. */
1801
+ asChild?: boolean;
1802
+ };
1803
+
1330
1804
  /**
1331
1805
  * TabBarAnimation Component
1332
1806
  *
@@ -1358,6 +1832,25 @@ export declare const ThanosDisappearEffectList: () => JSX.Element;
1358
1832
 
1359
1833
  export declare const ThanosDissolve: ({ images, duration, maxScale, className, onDelete, }: Props_12) => JSX.Element;
1360
1834
 
1835
+ declare type ThemeContextValue = {
1836
+ mode: ThemeMode;
1837
+ resolvedTheme: ResolvedTheme;
1838
+ setMode: (mode: ThemeMode) => void;
1839
+ toggleTheme: () => void;
1840
+ };
1841
+
1842
+ export declare type ThemeMode = 'light' | 'dark' | 'system';
1843
+
1844
+ export declare const ThemeProvider: ({ children, defaultMode, mode: controlledMode, onModeChange, storageKey, }: ThemeProviderProps) => JSX.Element;
1845
+
1846
+ export declare type ThemeProviderProps = {
1847
+ children: ReactNode;
1848
+ defaultMode?: ThemeMode;
1849
+ mode?: ThemeMode;
1850
+ onModeChange?: (mode: ThemeMode) => void;
1851
+ storageKey?: string;
1852
+ };
1853
+
1361
1854
  export declare const ThreadsLikeButton: () => JSX.Element;
1362
1855
 
1363
1856
  export declare const ThreeDotsLoader: () => JSX.Element;
@@ -1385,6 +1878,325 @@ export declare const ToggleBubble: () => JSX.Element;
1385
1878
 
1386
1879
  export declare const ToggleClipPath: () => JSX.Element;
1387
1880
 
1881
+ export declare const Token: {
1882
+ readonly color: {
1883
+ readonly black: "var(--color-black)";
1884
+ readonly white: "var(--color-white)";
1885
+ readonly accent1: "var(--color-accent1)";
1886
+ readonly accent2: "var(--color-accent2)";
1887
+ readonly accent3: "var(--color-accent3)";
1888
+ readonly accentGreen: "var(--color-accent-green)";
1889
+ readonly accentGreen1: "var(--color-accent-green1)";
1890
+ readonly surfaceCanvas: "var(--color-surface-canvas)";
1891
+ readonly surfaceRaised: "var(--color-surface-raised)";
1892
+ readonly surfaceElevated: "var(--color-surface-elevated)";
1893
+ readonly surfaceOverlay: "var(--color-surface-overlay)";
1894
+ readonly surfaceInverse: "var(--color-surface-inverse)";
1895
+ readonly surfaceDisabled: "var(--color-surface-disabled)";
1896
+ readonly textPrimary: "var(--color-text-primary)";
1897
+ readonly textSecondary: "var(--color-text-secondary)";
1898
+ readonly textTertiary: "var(--color-text-tertiary)";
1899
+ readonly textInverse: "var(--color-text-inverse)";
1900
+ readonly textDisabled: "var(--color-text-disabled)";
1901
+ readonly borderMuted: "var(--color-border-muted)";
1902
+ readonly borderSubtle: "var(--color-border-subtle)";
1903
+ readonly borderStrong: "var(--color-border-strong)";
1904
+ readonly accentPrimary: "var(--color-accent-primary)";
1905
+ readonly accentPrimaryMuted: "var(--color-accent-primary-muted)";
1906
+ readonly accentPrimaryEmphasis: "var(--color-accent-primary-emphasis)";
1907
+ readonly accentSuccess: "var(--color-accent-success)";
1908
+ readonly accentSuccessEmphasis: "var(--color-accent-success-emphasis)";
1909
+ readonly accentWarning: "var(--color-accent-warning)";
1910
+ readonly accentWarningEmphasis: "var(--color-accent-warning-emphasis)";
1911
+ readonly accentDanger: "var(--color-accent-danger)";
1912
+ readonly accentDangerEmphasis: "var(--color-accent-danger-emphasis)";
1913
+ readonly accentHighlight: "var(--color-accent-highlight)";
1914
+ readonly accentHighlightEmphasis: "var(--color-accent-highlight-emphasis)";
1915
+ readonly focusRing: "var(--color-focus-ring)";
1916
+ readonly bg: "var(--color-bg)";
1917
+ readonly gray1: "var(--color-gray1)";
1918
+ readonly gray2: "var(--color-gray2)";
1919
+ readonly gray3: "var(--color-gray3)";
1920
+ readonly gray4: "var(--color-gray4)";
1921
+ readonly gray5: "var(--color-gray5)";
1922
+ readonly gray6: "var(--color-gray6)";
1923
+ readonly gray7: "var(--color-gray7)";
1924
+ readonly gray8: "var(--color-gray8)";
1925
+ readonly gray9: "var(--color-gray9)";
1926
+ readonly gray10: "var(--color-gray10)";
1927
+ readonly gray11: "var(--color-gray11)";
1928
+ readonly gray12: "var(--color-gray12)";
1929
+ readonly grayA1: "var(--color-grayA1)";
1930
+ readonly grayA2: "var(--color-grayA2)";
1931
+ readonly grayA3: "var(--color-grayA3)";
1932
+ readonly grayA4: "var(--color-grayA4)";
1933
+ readonly grayA5: "var(--color-grayA5)";
1934
+ readonly grayA6: "var(--color-grayA6)";
1935
+ readonly grayA7: "var(--color-grayA7)";
1936
+ readonly grayA8: "var(--color-grayA8)";
1937
+ readonly grayA9: "var(--color-grayA9)";
1938
+ readonly grayA10: "var(--color-grayA10)";
1939
+ readonly grayA11: "var(--color-grayA11)";
1940
+ readonly grayA12: "var(--color-grayA12)";
1941
+ readonly blue1: "var(--color-blue1)";
1942
+ readonly blue2: "var(--color-blue2)";
1943
+ readonly blue3: "var(--color-blue3)";
1944
+ readonly blue4: "var(--color-blue4)";
1945
+ readonly blue5: "var(--color-blue5)";
1946
+ readonly blue6: "var(--color-blue6)";
1947
+ readonly blue7: "var(--color-blue7)";
1948
+ readonly blue8: "var(--color-blue8)";
1949
+ readonly blue9: "var(--color-blue9)";
1950
+ readonly blue10: "var(--color-blue10)";
1951
+ readonly blue11: "var(--color-blue11)";
1952
+ readonly blue12: "var(--color-blue12)";
1953
+ readonly green1: "var(--color-green1)";
1954
+ readonly green2: "var(--color-green2)";
1955
+ readonly green3: "var(--color-green3)";
1956
+ readonly green4: "var(--color-green4)";
1957
+ readonly green5: "var(--color-green5)";
1958
+ readonly green6: "var(--color-green6)";
1959
+ readonly green7: "var(--color-green7)";
1960
+ readonly green8: "var(--color-green8)";
1961
+ readonly green9: "var(--color-green9)";
1962
+ readonly green10: "var(--color-green10)";
1963
+ readonly green11: "var(--color-green11)";
1964
+ readonly green12: "var(--color-green12)";
1965
+ readonly amber1: "var(--color-amber1)";
1966
+ readonly amber2: "var(--color-amber2)";
1967
+ readonly amber3: "var(--color-amber3)";
1968
+ readonly amber4: "var(--color-amber4)";
1969
+ readonly amber5: "var(--color-amber5)";
1970
+ readonly amber6: "var(--color-amber6)";
1971
+ readonly amber7: "var(--color-amber7)";
1972
+ readonly amber8: "var(--color-amber8)";
1973
+ readonly amber9: "var(--color-amber9)";
1974
+ readonly amber10: "var(--color-amber10)";
1975
+ readonly amber11: "var(--color-amber11)";
1976
+ readonly amber12: "var(--color-amber12)";
1977
+ readonly purple1: "var(--color-purple1)";
1978
+ readonly purple2: "var(--color-purple2)";
1979
+ readonly purple3: "var(--color-purple3)";
1980
+ readonly purple4: "var(--color-purple4)";
1981
+ readonly purple5: "var(--color-purple5)";
1982
+ readonly purple6: "var(--color-purple6)";
1983
+ readonly purple7: "var(--color-purple7)";
1984
+ readonly purple8: "var(--color-purple8)";
1985
+ readonly purple9: "var(--color-purple9)";
1986
+ readonly purple10: "var(--color-purple10)";
1987
+ readonly purple11: "var(--color-purple11)";
1988
+ readonly purple12: "var(--color-purple12)";
1989
+ readonly red1: "var(--color-red1)";
1990
+ readonly red2: "var(--color-red2)";
1991
+ readonly red3: "var(--color-red3)";
1992
+ readonly red4: "var(--color-red4)";
1993
+ readonly red5: "var(--color-red5)";
1994
+ readonly red6: "var(--color-red6)";
1995
+ readonly red7: "var(--color-red7)";
1996
+ readonly red8: "var(--color-red8)";
1997
+ readonly red9: "var(--color-red9)";
1998
+ readonly red10: "var(--color-red10)";
1999
+ readonly red11: "var(--color-red11)";
2000
+ readonly red12: "var(--color-red12)";
2001
+ };
2002
+ readonly space: {
2003
+ readonly s1: "var(--space-1)";
2004
+ readonly s2: "var(--space-2)";
2005
+ readonly s3: "var(--space-3)";
2006
+ readonly s4: "var(--space-4)";
2007
+ readonly s5: "var(--space-5)";
2008
+ readonly s6: "var(--space-6)";
2009
+ readonly s7: "var(--space-7)";
2010
+ readonly s8: "var(--space-8)";
2011
+ readonly s9: "var(--space-9)";
2012
+ readonly s10: "var(--space-10)";
2013
+ readonly s11: "var(--space-11)";
2014
+ readonly s12: "var(--space-12)";
2015
+ readonly s13: "var(--space-13)";
2016
+ readonly s14: "var(--space-14)";
2017
+ readonly s15: "var(--space-15)";
2018
+ readonly xs: "var(--space-xs)";
2019
+ readonly sm: "var(--space-sm)";
2020
+ readonly md: "var(--space-md)";
2021
+ readonly lg: "var(--space-lg)";
2022
+ readonly xl: "var(--space-xl)";
2023
+ readonly '2xl': "var(--space-2xl)";
2024
+ readonly '3xl': "var(--space-3xl)";
2025
+ };
2026
+ readonly radius: {
2027
+ readonly r1: "var(--radius-1)";
2028
+ readonly r2: "var(--radius-2)";
2029
+ readonly r3: "var(--radius-3)";
2030
+ readonly r4: "var(--radius-4)";
2031
+ readonly r5: "var(--radius-5)";
2032
+ readonly r6: "var(--radius-6)";
2033
+ readonly r7: "var(--radius-7)";
2034
+ readonly xs: "var(--radius-xs)";
2035
+ readonly sm: "var(--radius-sm)";
2036
+ readonly md: "var(--radius-md)";
2037
+ readonly lg: "var(--radius-lg)";
2038
+ readonly xl: "var(--radius-xl)";
2039
+ readonly round: "var(--radius-round)";
2040
+ readonly pill: "var(--radius-pill)";
2041
+ };
2042
+ readonly shadow: {
2043
+ readonly sm: "var(--shadow-sm)";
2044
+ readonly md: "var(--shadow-md)";
2045
+ readonly lg: "var(--shadow-lg)";
2046
+ readonly raised: "var(--shadow-raised)";
2047
+ readonly overlay: "var(--shadow-overlay)";
2048
+ };
2049
+ readonly font: {
2050
+ readonly fancy: "var(--font-fancy)";
2051
+ readonly body: "var(--font-body)";
2052
+ readonly numeric: "var(--font-numeric)";
2053
+ };
2054
+ readonly fontSize: {
2055
+ readonly f1: "var(--font-size-1)";
2056
+ readonly f2: "var(--font-size-2)";
2057
+ readonly f3: "var(--font-size-3)";
2058
+ readonly f4: "var(--font-size-4)";
2059
+ readonly f5: "var(--font-size-5)";
2060
+ readonly f6: "var(--font-size-6)";
2061
+ readonly f7: "var(--font-size-7)";
2062
+ };
2063
+ readonly fontWeight: {
2064
+ readonly regular: "var(--font-weight-regular)";
2065
+ readonly medium: "var(--font-weight-medium)";
2066
+ readonly semibold: "var(--font-weight-semibold)";
2067
+ readonly bold: "var(--font-weight-bold)";
2068
+ };
2069
+ readonly lineHeight: {
2070
+ readonly tight: "var(--line-height-tight)";
2071
+ readonly snug: "var(--line-height-snug)";
2072
+ readonly body: "var(--line-height-body)";
2073
+ readonly loose: "var(--line-height-loose)";
2074
+ };
2075
+ readonly letterSpacing: {
2076
+ readonly tight: "var(--letter-spacing-tight)";
2077
+ readonly normal: "var(--letter-spacing-normal)";
2078
+ readonly wide: "var(--letter-spacing-wide)";
2079
+ };
2080
+ readonly duration: {
2081
+ readonly fastest: "var(--duration-fastest)";
2082
+ readonly fast: "var(--duration-fast)";
2083
+ readonly normal: "var(--duration-normal)";
2084
+ readonly slow: "var(--duration-slow)";
2085
+ readonly slowest: "var(--duration-slowest)";
2086
+ };
2087
+ readonly easing: {
2088
+ readonly snappy: "var(--easing-snappy)";
2089
+ readonly inQuad: "var(--ease-in-quad)";
2090
+ readonly inCubic: "var(--ease-in-cubic)";
2091
+ readonly inQuart: "var(--ease-in-quart)";
2092
+ readonly inQuint: "var(--ease-in-quint)";
2093
+ readonly inExpo: "var(--ease-in-expo)";
2094
+ readonly inCirc: "var(--ease-in-circ)";
2095
+ readonly outQuad: "var(--ease-out-quad)";
2096
+ readonly outCubic: "var(--ease-out-cubic)";
2097
+ readonly outQuart: "var(--ease-out-quart)";
2098
+ readonly outQuint: "var(--ease-out-quint)";
2099
+ readonly outExpo: "var(--ease-out-expo)";
2100
+ readonly outCirc: "var(--ease-out-circ)";
2101
+ readonly inOutQuad: "var(--ease-in-out-quad)";
2102
+ readonly inOutCubic: "var(--ease-in-out-cubic)";
2103
+ readonly inOutQuart: "var(--ease-in-out-quart)";
2104
+ readonly inOutQuint: "var(--ease-in-out-quint)";
2105
+ readonly inOutExpo: "var(--ease-in-out-expo)";
2106
+ readonly inOutCirc: "var(--ease-in-out-circ)";
2107
+ };
2108
+ readonly transition: {
2109
+ readonly all: "var(--transition-all)";
2110
+ readonly shadow: "var(--transition-shadow)";
2111
+ readonly colors: "var(--transition-colors)";
2112
+ readonly background: "var(--transition-background)";
2113
+ readonly border: "var(--transition-border)";
2114
+ readonly opacity: "var(--transition-opacity)";
2115
+ readonly transform: "var(--transition-transform)";
2116
+ };
2117
+ readonly colorChannel: {
2118
+ readonly accent: "var(--color-channel-accent)";
2119
+ readonly success: "var(--color-channel-success)";
2120
+ readonly danger: "var(--color-channel-danger)";
2121
+ readonly warning: "var(--color-channel-warning)";
2122
+ readonly highlight: "var(--color-channel-highlight)";
2123
+ readonly white: "var(--color-channel-white)";
2124
+ readonly black: "var(--color-channel-black)";
2125
+ };
2126
+ readonly effectChannel: {
2127
+ readonly accent: "var(--effect-channel-accent)";
2128
+ readonly danger: "var(--effect-channel-danger)";
2129
+ readonly focusOutline: "var(--effect-channel-focus-outline)";
2130
+ readonly glass: "var(--effect-channel-glass)";
2131
+ readonly highlight: "var(--effect-channel-highlight)";
2132
+ readonly shadow: "var(--effect-channel-shadow)";
2133
+ };
2134
+ readonly effect: {
2135
+ readonly accentRingSoft: "var(--effect-accent-ring-soft)";
2136
+ readonly focusOutline: "var(--effect-focus-outline)";
2137
+ readonly focusOutlineHighlight: "var(--effect-focus-outline-highlight)";
2138
+ readonly focusShadowAccent: "var(--effect-focus-shadow-accent)";
2139
+ readonly focusShadowHighlight: "var(--effect-focus-shadow-highlight)";
2140
+ readonly glassBorder: "var(--effect-glass-border)";
2141
+ readonly glassBorderSoft: "var(--effect-glass-border-soft)";
2142
+ readonly glassRing: "var(--effect-glass-ring)";
2143
+ readonly glassShadowDepth: "var(--effect-glass-shadow-depth)";
2144
+ readonly glassShadowSoft: "var(--effect-glass-shadow-soft)";
2145
+ readonly glassShell: "var(--effect-glass-shell)";
2146
+ readonly glassSurface: "var(--effect-glass-surface)";
2147
+ readonly glowBorder: "var(--effect-glow-border)";
2148
+ readonly glowCool: "var(--effect-glow-cool)";
2149
+ readonly glowOutline: "var(--effect-glow-outline)";
2150
+ readonly glowSheenEnd: "var(--effect-glow-sheen-end)";
2151
+ readonly glowSheenStart: "var(--effect-glow-sheen-start)";
2152
+ readonly glowVeil: "var(--effect-glow-veil)";
2153
+ readonly glowWarm: "var(--effect-glow-warm)";
2154
+ readonly glossLineFaint: "var(--effect-gloss-line-faint)";
2155
+ readonly glossLineMedium: "var(--effect-gloss-line-medium)";
2156
+ readonly glossLineSoft: "var(--effect-gloss-line-soft)";
2157
+ readonly glossLineStrong: "var(--effect-gloss-line-strong)";
2158
+ readonly highlightTrail: "var(--effect-highlight-trail)";
2159
+ readonly overlayScrim: "var(--effect-overlay-scrim)";
2160
+ readonly selectionAccent: "var(--effect-selection-accent)";
2161
+ readonly shadowFaint: "var(--effect-shadow-faint)";
2162
+ readonly shadowInteractive: "var(--effect-shadow-interactive)";
2163
+ readonly shadowMuted: "var(--effect-shadow-muted)";
2164
+ readonly shadowSoft: "var(--effect-shadow-soft)";
2165
+ readonly shadowStrong: "var(--effect-shadow-strong)";
2166
+ readonly thumbShadow: "var(--effect-thumb-shadow)";
2167
+ readonly tooltipSurface: "var(--effect-tooltip-surface)";
2168
+ };
2169
+ readonly utils: {
2170
+ readonly opacity: (channel: string, value: number | string) => string;
2171
+ };
2172
+ readonly textStyle: {
2173
+ readonly heading1: "var(--text-heading-1)";
2174
+ readonly heading2: "var(--text-heading-2)";
2175
+ readonly heading3: "var(--text-heading-3)";
2176
+ readonly body: "var(--text-body)";
2177
+ readonly bodyEmphasis: "var(--text-body-emphasis)";
2178
+ readonly small: "var(--text-small)";
2179
+ readonly caption: "var(--text-caption)";
2180
+ };
2181
+ readonly zIndex: {
2182
+ readonly n1: "var(--z-index-n1)";
2183
+ readonly z0: "var(--z-index-0)";
2184
+ readonly z1: "var(--z-index-1)";
2185
+ readonly z2: "var(--z-index-2)";
2186
+ readonly z3: "var(--z-index-3)";
2187
+ readonly z4: "var(--z-index-4)";
2188
+ readonly z5: "var(--z-index-5)";
2189
+ readonly max: "var(--z-index-max)";
2190
+ };
2191
+ readonly breakpoint: {
2192
+ readonly sm: "var(--breakpoint-sm)";
2193
+ readonly md: "var(--breakpoint-md)";
2194
+ readonly lg: "var(--breakpoint-lg)";
2195
+ readonly xl: "var(--breakpoint-xl)";
2196
+ };
2197
+ readonly focusRingWidth: "var(--focus-ring-width)";
2198
+ };
2199
+
1388
2200
  declare type ToolbarButton = {
1389
2201
  icon: IconType;
1390
2202
  onClick?: VoidFunction;
@@ -1392,6 +2204,21 @@ declare type ToolbarButton = {
1392
2204
 
1393
2205
  export declare const Tooltip: ({ children, label, delay, className, placement, offset: offsetValue, animate, disableOnClick, variant, }: TooltipProps) => JSX.Element;
1394
2206
 
2207
+ export declare const TooltipBase: ({ content, children, placement, delayMs, closeDelayMs, open: controlledOpen, onOpenChange: controlledOnOpenChange, className, style, triggerRef: externalTriggerRef, }: TooltipBaseProps) => JSX.Element;
2208
+
2209
+ export declare type TooltipBaseProps = {
2210
+ content: ReactNode;
2211
+ children: ReactNode;
2212
+ placement?: Placement;
2213
+ delayMs?: number;
2214
+ closeDelayMs?: number;
2215
+ open?: boolean;
2216
+ onOpenChange?: (open: boolean) => void;
2217
+ className?: string;
2218
+ style?: CSSProperties;
2219
+ triggerRef?: Ref<HTMLElement>;
2220
+ };
2221
+
1395
2222
  declare type TooltipOptions = {
1396
2223
  delay?: number;
1397
2224
  animate?: boolean;
@@ -1402,7 +2229,7 @@ export declare interface TooltipProps {
1402
2229
  label: ReactNode;
1403
2230
  delay?: number;
1404
2231
  className?: string;
1405
- placement?: Placement;
2232
+ placement?: Placement_2;
1406
2233
  offset?: number;
1407
2234
  animate?: boolean;
1408
2235
  disableOnClick?: boolean;
@@ -1448,6 +2275,8 @@ declare interface UseBowserResult {
1448
2275
  isChrome: boolean;
1449
2276
  }
1450
2277
 
2278
+ export declare function useControllableState<T>(controlledValue: T | undefined, defaultValue: T, onChange?: (value: T) => void): [T, (next: T | ((prev: T) => T)) => void];
2279
+
1451
2280
  /**
1452
2281
  * Custom hook that debounces a callback function to delay its execution until after
1453
2282
  * a specified wait time has elapsed since the last time it was invoked.
@@ -1512,6 +2341,39 @@ export declare function useEffectEvent<TArgs extends any[], TReturn>(callback: (
1512
2341
 
1513
2342
  export declare function useEffectEvent<TArgs extends any[], TReturn>(callback: ((...args: TArgs) => TReturn) | undefined): (...args: TArgs) => TReturn | undefined;
1514
2343
 
2344
+ export declare function useFormField(options?: UseFormFieldOptions): UseFormFieldReturn;
2345
+
2346
+ export declare function useFormFieldContext(): UseFormFieldReturn;
2347
+
2348
+ export declare type UseFormFieldOptions = {
2349
+ id?: string;
2350
+ hasError?: boolean;
2351
+ hasHint?: boolean;
2352
+ };
2353
+
2354
+ export declare type UseFormFieldReturn = {
2355
+ ids: FormFieldIds;
2356
+ labelProps: {
2357
+ htmlFor: string;
2358
+ id: string;
2359
+ };
2360
+ fieldProps: FormFieldAria;
2361
+ errorProps: {
2362
+ id: string;
2363
+ role: 'alert';
2364
+ };
2365
+ hintProps: {
2366
+ id: string;
2367
+ };
2368
+ };
2369
+
2370
+ /**
2371
+ * Creates a GSAP context scoped to the given ref.
2372
+ * All animations created inside the callback are automatically
2373
+ * reverted on unmount — preventing DOM leak bugs.
2374
+ */
2375
+ export declare function useGsapContext(scope: RefObject<HTMLElement | null>, callback: (ctx: GsapContextLike) => void | GsapCleanup, deps?: unknown[]): RefObject<GsapContextLike | null>;
2376
+
1515
2377
  /**
1516
2378
  * Custom hook that manages an interval with automatic cleanup.
1517
2379
  * Provides a reliable way to handle intervals that are properly cleaned up
@@ -1541,6 +2403,8 @@ export declare const useLiveRef: <T>(value: T) => RefObject<T>;
1541
2403
 
1542
2404
  export declare const useMatchMedia: (query: string) => boolean | null;
1543
2405
 
2406
+ export declare function useMergeRefs<T>(...refs: PossibleRef<T>[]): RefCallback<T>;
2407
+
1544
2408
  export declare const useOklch: () => void;
1545
2409
 
1546
2410
  /**
@@ -1594,6 +2458,10 @@ export declare const usePreviousState: <T>(value: T) => T | undefined;
1594
2458
  */
1595
2459
  export declare const useRaf: (callback: VoidFunction, enabled?: boolean) => VoidFunction;
1596
2460
 
2461
+ export declare function useReducedMotion(): boolean;
2462
+
2463
+ export declare function useTheme(): ThemeContextValue;
2464
+
1597
2465
  /**
1598
2466
  * Custom hook that throttles a callback function to limit how often it can be invoked.
1599
2467
  *
@@ -1650,12 +2518,30 @@ export declare const useWindowReady: () => boolean;
1650
2518
 
1651
2519
  export declare const utilsLogger: BaseLogger;
1652
2520
 
2521
+ /**
2522
+ * Validate that all required semantic CSS variables are defined
2523
+ * on the given element (defaults to `document.body`).
2524
+ */
2525
+ export declare const validateColorScheme: (element?: Element) => ColorValidationResult;
2526
+
1653
2527
  export declare const values: <T extends Record<string | number | symbol, any>>(input: T) => Array<T[keyof T]>;
1654
2528
 
1655
2529
  export declare const ViewTransitionAddToCard: () => JSX.Element;
1656
2530
 
1657
2531
  export declare const ViewTransitionImageGallery: () => JSX.Element;
1658
2532
 
2533
+ export declare type ViewTransitionReturn = {
2534
+ finished: Promise<void>;
2535
+ ready: Promise<void>;
2536
+ updateCallbackDone: Promise<void>;
2537
+ };
2538
+
2539
+ export declare const VisuallyHidden: ({ children, style, ...props }: VisuallyHiddenProps) => JSX.Element;
2540
+
2541
+ export declare type VisuallyHiddenProps = HTMLAttributes<HTMLSpanElement> & {
2542
+ children: ReactNode;
2543
+ };
2544
+
1659
2545
  export declare const VoiceAnimation: () => JSX.Element;
1660
2546
 
1661
2547
  export declare const wait: (ms: number) => Promise<unknown>;