Files
Webklar.com/node_modules/@radix-ui/react-scroll-area/dist/index.d.ts
Basilosaurusrex f027651f9b main repo
2025-11-24 18:09:40 +01:00

134 lines
6.0 KiB
TypeScript

import * as React from 'react';
import { Primitive } from '@radix-ui/react-primitive';
type Scope<C = any> = {
[scopeName: string]: React.Context<C>[];
} | undefined;
type ScopeHook = (scope: Scope) => {
[__scopeProp: string]: Scope;
};
interface CreateScope {
scopeName: string;
(): ScopeHook;
}
type Direction = 'ltr' | 'rtl';
type Sizes = {
content: number;
viewport: number;
scrollbar: {
size: number;
paddingStart: number;
paddingEnd: number;
};
};
declare const createScrollAreaScope: CreateScope;
type ScrollAreaContextValue = {
type: 'auto' | 'always' | 'scroll' | 'hover';
dir: Direction;
scrollHideDelay: number;
scrollArea: ScrollAreaElement | null;
viewport: ScrollAreaViewportElement | null;
onViewportChange(viewport: ScrollAreaViewportElement | null): void;
content: HTMLDivElement | null;
onContentChange(content: HTMLDivElement): void;
scrollbarX: ScrollAreaScrollbarElement | null;
onScrollbarXChange(scrollbar: ScrollAreaScrollbarElement | null): void;
scrollbarXEnabled: boolean;
onScrollbarXEnabledChange(rendered: boolean): void;
scrollbarY: ScrollAreaScrollbarElement | null;
onScrollbarYChange(scrollbar: ScrollAreaScrollbarElement | null): void;
scrollbarYEnabled: boolean;
onScrollbarYEnabledChange(rendered: boolean): void;
onCornerWidthChange(width: number): void;
onCornerHeightChange(height: number): void;
};
type ScrollAreaElement = React.ElementRef<typeof Primitive.div>;
type PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;
interface ScrollAreaProps extends PrimitiveDivProps {
type?: ScrollAreaContextValue['type'];
dir?: ScrollAreaContextValue['dir'];
scrollHideDelay?: number;
}
declare const ScrollArea: React.ForwardRefExoticComponent<ScrollAreaProps & React.RefAttributes<HTMLDivElement>>;
type ScrollAreaViewportElement = React.ElementRef<typeof Primitive.div>;
interface ScrollAreaViewportProps extends PrimitiveDivProps {
nonce?: string;
}
declare const ScrollAreaViewport: React.ForwardRefExoticComponent<ScrollAreaViewportProps & React.RefAttributes<HTMLDivElement>>;
type ScrollAreaScrollbarElement = ScrollAreaScrollbarVisibleElement;
interface ScrollAreaScrollbarProps extends ScrollAreaScrollbarVisibleProps {
forceMount?: true;
}
declare const ScrollAreaScrollbar: React.ForwardRefExoticComponent<ScrollAreaScrollbarProps & React.RefAttributes<HTMLDivElement>>;
type ScrollAreaScrollbarVisibleElement = ScrollAreaScrollbarAxisElement;
interface ScrollAreaScrollbarVisibleProps extends Omit<ScrollAreaScrollbarAxisProps, keyof ScrollAreaScrollbarAxisPrivateProps> {
orientation?: 'horizontal' | 'vertical';
}
type ScrollAreaScrollbarAxisPrivateProps = {
hasThumb: boolean;
sizes: Sizes;
onSizesChange(sizes: Sizes): void;
onThumbChange(thumb: ScrollAreaThumbElement | null): void;
onThumbPointerDown(pointerPos: number): void;
onThumbPointerUp(): void;
onThumbPositionChange(): void;
onWheelScroll(scrollPos: number): void;
onDragScroll(pointerPos: number): void;
};
type ScrollAreaScrollbarAxisElement = ScrollAreaScrollbarImplElement;
interface ScrollAreaScrollbarAxisProps extends Omit<ScrollAreaScrollbarImplProps, keyof ScrollAreaScrollbarImplPrivateProps>, ScrollAreaScrollbarAxisPrivateProps {
}
type ScrollbarContext = {
hasThumb: boolean;
scrollbar: ScrollAreaScrollbarElement | null;
onThumbChange(thumb: ScrollAreaThumbElement | null): void;
onThumbPointerUp(): void;
onThumbPointerDown(pointerPos: {
x: number;
y: number;
}): void;
onThumbPositionChange(): void;
};
type ScrollAreaScrollbarImplElement = React.ElementRef<typeof Primitive.div>;
type ScrollAreaScrollbarImplPrivateProps = {
sizes: Sizes;
hasThumb: boolean;
onThumbChange: ScrollbarContext['onThumbChange'];
onThumbPointerUp: ScrollbarContext['onThumbPointerUp'];
onThumbPointerDown: ScrollbarContext['onThumbPointerDown'];
onThumbPositionChange: ScrollbarContext['onThumbPositionChange'];
onWheelScroll(event: WheelEvent, maxScrollPos: number): void;
onDragScroll(pointerPos: {
x: number;
y: number;
}): void;
onResize(): void;
};
interface ScrollAreaScrollbarImplProps extends Omit<PrimitiveDivProps, keyof ScrollAreaScrollbarImplPrivateProps>, ScrollAreaScrollbarImplPrivateProps {
}
type ScrollAreaThumbElement = ScrollAreaThumbImplElement;
interface ScrollAreaThumbProps extends ScrollAreaThumbImplProps {
/**
* Used to force mounting when more control is needed. Useful when
* controlling animation with React animation libraries.
*/
forceMount?: true;
}
declare const ScrollAreaThumb: React.ForwardRefExoticComponent<ScrollAreaThumbProps & React.RefAttributes<HTMLDivElement>>;
type ScrollAreaThumbImplElement = React.ElementRef<typeof Primitive.div>;
interface ScrollAreaThumbImplProps extends PrimitiveDivProps {
}
interface ScrollAreaCornerProps extends ScrollAreaCornerImplProps {
}
declare const ScrollAreaCorner: React.ForwardRefExoticComponent<ScrollAreaCornerProps & React.RefAttributes<HTMLDivElement>>;
interface ScrollAreaCornerImplProps extends PrimitiveDivProps {
}
declare const Root: React.ForwardRefExoticComponent<ScrollAreaProps & React.RefAttributes<HTMLDivElement>>;
declare const Viewport: React.ForwardRefExoticComponent<ScrollAreaViewportProps & React.RefAttributes<HTMLDivElement>>;
declare const Scrollbar: React.ForwardRefExoticComponent<ScrollAreaScrollbarProps & React.RefAttributes<HTMLDivElement>>;
declare const Thumb: React.ForwardRefExoticComponent<ScrollAreaThumbProps & React.RefAttributes<HTMLDivElement>>;
declare const Corner: React.ForwardRefExoticComponent<ScrollAreaCornerProps & React.RefAttributes<HTMLDivElement>>;
export { Corner, Root, ScrollArea, ScrollAreaCorner, type ScrollAreaCornerProps, type ScrollAreaProps, ScrollAreaScrollbar, type ScrollAreaScrollbarProps, ScrollAreaThumb, type ScrollAreaThumbProps, ScrollAreaViewport, type ScrollAreaViewportProps, Scrollbar, Thumb, Viewport, createScrollAreaScope };