flipper-plugin
Version:
Flipper Desktop plugin SDK and components
105 lines • 4.15 kB
TypeScript
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
import React, { CSSProperties } from 'react';
import { PaddingProps, Spacing } from './theme';
export type SplitLayoutProps = {
/**
* If set, items will be centered over the orthogonal direction, if false (the default) items will be stretched.
*/
center?: boolean;
gap?: Spacing;
children: [React.ReactNode, React.ReactNode];
style?: CSSProperties;
className?: string;
} & SplitHorizontalResizableProps & SplitVerticalResizableProps;
type SplitHorizontalResizableProps = {
resizable: true;
/**
* Width describes the width of the resizable pane. To set a global width use the style attribute.
*/
width?: number;
minWidth?: number;
maxWidth?: number;
} | {};
type SplitVerticalResizableProps = {
resizable: true;
/**
* Width describes the width of the resizable pane. To set a global width use the style attribute.
*/
height?: number;
minHeight?: number;
maxHeight?: number;
} | {};
/**
* The Layout component divides all available screenspace over two components:
* A fixed top (or left) component, and all remaining space to a bottom component.
*
* The main area will be scrollable by default, but if multiple containers are nested,
* scrolling can be disabled by using `scrollable={false}`
*
* If initialSize is set, the fixed container will be made resizable
*
* Use Layout.Top / Right / Bottom / Left to indicate where the fixed element should live.
*/
export declare const Layout: {
Top(props: SplitLayoutProps & SplitVerticalResizableProps): JSX.Element;
Bottom(props: SplitLayoutProps & SplitVerticalResizableProps): JSX.Element;
Left(props: SplitLayoutProps & SplitHorizontalResizableProps): JSX.Element;
Right(props: SplitLayoutProps & SplitHorizontalResizableProps): JSX.Element;
Container: import("@emotion/styled").StyledComponent<{
theme?: import("@emotion/react").Theme | undefined;
as?: React.ElementType<any> | undefined;
} & {
children?: React.ReactNode;
className?: string | undefined;
style?: React.CSSProperties | undefined;
borderBottom?: boolean | undefined;
borderTop?: boolean | undefined;
borderRight?: boolean | undefined;
borderLeft?: boolean | undefined;
bordered?: boolean | undefined;
rounded?: boolean | undefined;
width?: number | undefined;
height?: number | undefined;
grow?: boolean | undefined;
shrink?: boolean | undefined;
gap?: Spacing;
center?: boolean | undefined;
} & PaddingProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
ScrollContainer: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
horizontal?: boolean | undefined;
vertical?: boolean | undefined;
} & PaddingProps & React.RefAttributes<HTMLDivElement>>;
Horizontal: import("@emotion/styled").StyledComponent<{
theme?: import("@emotion/react").Theme | undefined;
as?: React.ElementType<any> | undefined;
} & {
children?: React.ReactNode;
className?: string | undefined;
style?: React.CSSProperties | undefined;
borderBottom?: boolean | undefined;
borderTop?: boolean | undefined;
borderRight?: boolean | undefined;
borderLeft?: boolean | undefined;
bordered?: boolean | undefined;
rounded?: boolean | undefined;
width?: number | undefined;
height?: number | undefined;
grow?: boolean | undefined;
shrink?: boolean | undefined;
gap?: Spacing;
center?: boolean | undefined;
} & PaddingProps & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
children?: React.ReactNode;
} & {
theme?: import("@emotion/react").Theme | undefined;
}, {}, {}>;
};
export {};
//# sourceMappingURL=Layout.d.ts.map