nice-ui
Version:
React design system, components, and utilities
43 lines (42 loc) • 1.49 kB
TypeScript
export type TPieceColor = 'b' | 'w';
export type TPieceType = 'r' | 'b' | 'k' | 'n' | 'p' | 'q' | 'R' | 'B' | 'K' | 'N' | 'P' | 'Q';
export type TSquarePositionComponent = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
export type TPieceNames = 'br' | 'bb' | 'bk' | 'bn' | 'bp' | 'bq' | 'wr' | 'wb' | 'wk' | 'wn' | 'wp' | 'wq';
export type TLineBody = string | '-' | '--' | '---' | '----' | '-----' | '=' | '==' | '===' | '====' | '=====';
export type TLineTip = string | '' | '>' | '>>' | '>>>' | '>>>>' | '>>>>>' | '<' | '<<' | '<<<' | '<<<<' | '<<<<<' | 'o' | 'O';
export interface ILine {
from: [TSquarePositionComponent, TSquarePositionComponent];
to: [TSquarePositionComponent, TSquarePositionComponent];
body?: TLineBody;
tipTo?: TLineTip;
tipFrom?: TLineTip;
color?: string;
opacity?: number;
}
export interface ISquare {
xy: [TSquarePositionComponent, TSquarePositionComponent];
piece?: TPieceType;
pieceOpacity?: number;
color?: string;
opacity?: number;
borderTop?: boolean;
borderRight?: boolean;
borderBottom?: boolean;
borderLeft?: boolean;
}
export interface IBorder {
xy: [TSquarePositionComponent, TSquarePositionComponent];
segments: string;
offset?: [number, number];
segmentSize?: number;
color?: string;
opacity?: number;
width?: number;
fillColor?: string;
fillOpacity?: number;
}
export interface IBoardLayout {
lines?: ILine[];
squares?: ISquare[];
borders?: IBorder[];
}