@macrostrat/column-components
Version:
React rendering primitives for stratigraphic columns
41 lines (40 loc) • 2.02 kB
TypeScript
import { Component, ReactNode } from 'react';
import { ColumnCtx, ColumnDivision } from './column';
export interface ColumnLayoutCtx<T extends ColumnDivision> extends ColumnCtx<T> {
width: number;
grainSizes?: string[];
grainsizeScale?: (d: string) => number;
xScale: any;
widthForDivision: (d: ColumnDivision) => number;
}
declare const ColumnLayoutContext: import('react').Context<ColumnLayoutCtx<ColumnDivision>>;
export interface ColumnLayoutProviderProps<T extends ColumnDivision> extends Partial<ColumnCtx<T>> {
grainSizes?: string[];
grainsizeScale?: (d: string) => number;
width: number;
xScale?: any;
children?: ReactNode;
}
declare function ColumnLayoutProvider<T extends ColumnDivision>({ children, width, grainSizes, grainsizeScale, xScale, }: ColumnLayoutProviderProps<T>): import('react').FunctionComponentElement<import('react').ProviderProps<ColumnLayoutCtx<ColumnDivision>>>;
export interface CrossAxisLayoutProviderProps {
width: number;
domain: number[];
range?: number[];
children?: ReactNode;
}
declare class CrossAxisLayoutProvider extends Component<CrossAxisLayoutProviderProps> {
static contextType: import('react').Context<ColumnCtx<ColumnDivision>>;
context: ColumnCtx<ColumnDivision>;
render(): import('react').FunctionComponentElement<ColumnLayoutProviderProps<ColumnDivision>>;
}
export type GrainsizeLayoutProps = {
grainSizes: string[];
children?: ReactNode;
width?: number;
grainsizeScaleStart?: number;
grainsizeScaleRange?: [number, number];
tickPositions?: number[];
};
declare function GrainsizeLayoutProvider({ width, grainSizes, grainsizeScaleStart, grainsizeScaleRange, tickPositions, children, }: GrainsizeLayoutProps): import('react').FunctionComponentElement<ColumnLayoutProviderProps<ColumnDivision>>;
export declare function useColumnLayout(): ColumnLayoutCtx<ColumnDivision>;
export { ColumnLayoutContext, ColumnLayoutProvider, CrossAxisLayoutProvider, GrainsizeLayoutProvider, };