@enact/sandstone
Version:
Large-screen/TV support library for Enact, containing a variety of UI components.
65 lines (56 loc) • 2.1 kB
TypeScript
// Type definitions for sandstone/Spinner
import { SkinnableProps as sandstone_Skinnable_SkinnableProps } from "@enact/sandstone/Skinnable";
import { SpinnerBaseProps as ui_Spinner_SpinnerBaseProps } from "@enact/ui/Spinner";
import * as React from "react";
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
export interface SpinnerBaseProps extends ui_Spinner_SpinnerBaseProps {
/**
* Customizes the component by mapping the supplied collection of CSS class names to the
corresponding internal elements and states of this component.
*
* The following classes are supported:
* * `spinner` - The root component class, unless there is a scrim. The scrim and floating
layer can be a sibling or parent to this root "spinner" element.
*/
css?: object;
/**
* Customize the size of this component.
*
* Recommended usage is "medium" (default) for standalone and popup scenarios, while "small"
is best suited for use inside other elements, like .
*/
size?: "medium" | "small";
/**
* Removes the background color (making it transparent).
*/
transparent?: boolean;
}
/**
* The base component, defining all of the properties.
*/
export class SpinnerBase extends React.Component<
Merge<React.HTMLProps<HTMLElement>, SpinnerBaseProps>
> {}
export interface SpinnerProps
extends Merge<SpinnerBaseProps, SpinnerDecoratorProps> {
/**
* Determines how far the click-blocking should extend.
*
* It can be either `'screen'` , `'container'` , or `null` . `'screen'` pauses spotlight.
Changing this property to `'screen'` after creation is not supported.
*/
blockClickOn?: "screen" | "container";
}
/**
* A Sandstone-styled Spinner.
*/
export class Spinner extends React.Component<
Merge<React.HTMLProps<HTMLElement>, SpinnerProps>
> {}
export interface SpinnerDecoratorProps
extends sandstone_Skinnable_SkinnableProps {}
export function SpinnerDecorator<P>(
Component: React.ComponentType<P> | string,
): React.ComponentType<P & SpinnerDecoratorProps>;
export default Spinner;