baseui
Version:
A React Component library implementing the Base design language
186 lines (185 loc) • 6.2 kB
TypeScript
import type * as React from 'react';
import type { FLOATING_MARKER_ANCHOR_POSITIONS, NEEDLE_SIZES, PINHEAD_SIZES_SHAPES, FLOATING_MARKER_SIZES, PINHEAD_TYPES, FLOATING_MARKER_ANCHOR_TYPES, BADGE_ENHANCER_SIZES, LABEL_ENHANCER_POSITIONS, KIND, LOCATION_PUCK_SIZES, LOCATION_PUCK_TYPES, FLOATING_ROUTE_MARKER_ANCHOR_POSITIONS } from './constants';
import type { Override } from '../helpers/overrides';
export type AnchorPositions = (typeof FLOATING_MARKER_ANCHOR_POSITIONS)[keyof typeof FLOATING_MARKER_ANCHOR_POSITIONS];
export type NeedleSize = (typeof NEEDLE_SIZES)[keyof typeof NEEDLE_SIZES];
export type PinHead = (typeof PINHEAD_TYPES)[keyof typeof PINHEAD_TYPES];
export type PinHeadSize = (typeof PINHEAD_SIZES_SHAPES)[keyof typeof PINHEAD_SIZES_SHAPES];
export type FloatingMarkerSize = (typeof FLOATING_MARKER_SIZES)[keyof typeof FLOATING_MARKER_SIZES];
export type FloatingMarkerAnchorType = (typeof FLOATING_MARKER_ANCHOR_TYPES)[keyof typeof FLOATING_MARKER_ANCHOR_TYPES];
export type BadgeEnhancerSize = (typeof BADGE_ENHANCER_SIZES)[keyof typeof BADGE_ENHANCER_SIZES];
export type LabelEnhancerPosition = (typeof LABEL_ENHANCER_POSITIONS)[keyof typeof LABEL_ENHANCER_POSITIONS];
export type Kind = (typeof KIND)[keyof typeof KIND];
export type LocationPuckSize = (typeof LOCATION_PUCK_SIZES)[keyof typeof LOCATION_PUCK_SIZES];
export type LocationPuckType = (typeof LOCATION_PUCK_TYPES)[keyof typeof LOCATION_PUCK_TYPES];
export type FloatingRouteMarkerAnchorPositions = (typeof FLOATING_ROUTE_MARKER_ANCHOR_POSITIONS)[keyof typeof FLOATING_ROUTE_MARKER_ANCHOR_POSITIONS];
export type FixedMarkerOverrides = {
Root?: Override;
InnerAnchor?: Override;
OuterAnchor?: Override;
PinHead?: Override;
LabelSlot?: Override;
Label?: Override;
SecondaryLabel?: Override;
EnhancerSlot?: Override;
PinHeadContainer?: Override;
AnchorContainer?: Override;
Needle?: Override;
DragShadow?: Override;
DragShadowContainer?: Override;
DragContainer?: Override;
BadgeEnhancer?: Override;
LabelEnhancer?: Override;
LabelEnhancerContainer?: Override;
};
export type NeedleProps = {
size: NeedleSize;
background?: string;
overrides: FixedMarkerOverrides;
};
export type ItemProps = {
children?: React.ReactNode;
color?: string;
size?: number;
};
export type LabelEnhancer = {
labelEnhancerContent?: string;
labelEnhancerPosition?: LabelEnhancerPosition;
};
export type LabelEhancerComponent = {
needleHeight: number;
size: PinHeadSize;
overrides?: FixedMarkerOverrides;
} & LabelEnhancer;
export type BadgeEnhancer = {
badgeEnhancerSize?: BadgeEnhancerSize | null;
badgeEnhancerContent?: React.ComponentType<{
size: number;
}>;
};
export type BadgeEnhancerComponent = {
pinHeadSize: PinHeadSize;
markerType: PinHead;
overrides: FixedMarkerOverrides;
} & BadgeEnhancer;
export type BadgePosition = {
x: number;
y: number;
};
export type FixedMarkerProps = {
size?: PinHeadSize;
needle?: NeedleSize;
label?: React.ReactNode;
startEnhancer?: React.ComponentType<{
size: number;
}>;
endEnhancer?: React.ComponentType<{
size: number;
}>;
kind?: Kind;
dragging?: boolean;
overrides?: FixedMarkerOverrides;
} & BadgeEnhancer & LabelEnhancer;
export type FloatingMarkerOverrides = {
Root?: Override;
InnerAnchor?: Override;
OuterAnchor?: Override;
PinHead?: Override;
LabelSlot?: Override;
Label?: Override;
SecondaryLabel?: Override;
EnhancerSlot?: Override;
PinHeadContainer?: Override;
AnchorContainer?: Override;
Needle?: Override;
DragShadow?: Override;
DragShadowContainer?: Override;
DragContainer?: Override;
BadgeEnhancer?: Override;
LabelEnhancer?: Override;
LabelEnhancerContainer?: Override;
};
export type FloatingMarkerProps = {
label?: React.ReactNode;
secondaryLabel?: React.ReactNode;
anchor?: AnchorPositions;
endEnhancer?: React.ComponentType<{
size: number;
}>;
startEnhancer?: React.ComponentType<{
size: number;
}>;
anchorType?: FloatingMarkerAnchorType;
size?: FloatingMarkerSize;
overrides?: FloatingMarkerOverrides;
};
export type PinHeadProps = {
size?: PinHeadSize;
label?: React.ReactNode;
secondaryLabel?: React.ReactNode;
endEnhancer?: React.ComponentType<{
size: number;
}>;
startEnhancer?: React.ComponentType<{
size: number;
}>;
color: string;
background: string;
type?: PinHead;
anchorType?: FloatingMarkerAnchorType;
needle?: NeedleSize;
overrides?: FloatingMarkerOverrides | FixedMarkerOverrides;
} & BadgeEnhancer & LabelEnhancer;
export type DragShadowProps = {
background: string;
dragging: boolean;
height: number;
overrides: FixedMarkerOverrides;
};
export type LocationPuckOverrides = {
Root?: Override;
LocationPuckApproximation?: Override;
ConsumerLocationPuckCore?: Override;
EarnerLocationPuckCore?: Override;
};
export type LocationPuckProps = {
size?: LocationPuckSize;
heading?: number;
confidenceRadius?: number;
showHeading?: boolean;
type?: LocationPuckType;
overrides?: LocationPuckOverrides;
};
export type ConsumerLocationPuckProps = {
heading: number;
confidenceRadius?: number;
showHeading?: boolean;
overrides: LocationPuckOverrides;
};
export type EarnerLocationPuckProps = {
heading: number;
confidenceRadius?: number;
size: LocationPuckSize;
overrides?: LocationPuckOverrides;
};
export type FloatingRouteMarkerOverrides = {
Root?: Override;
PointerContainer?: Override;
Pointer?: Override;
Label?: Override;
SecondaryLabel?: Override;
IconContainer?: Override;
};
export type FloatingRouteMarkerProps = {
label?: React.ReactNode;
secondaryLabel?: React.ReactNode;
startEnhancer?: React.ComponentType<{
size: number;
}>;
endEnhancer?: React.ComponentType<{
size: number;
}>;
anchorPosition?: FloatingRouteMarkerAnchorPositions;
overrides?: FloatingRouteMarkerOverrides;
selected?: boolean;
};