mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
* feat(react-sketchapp): excluded and enhanced types * fix(react-sketchapp): fixed errors * chore(react-sketchapp): version bump * refactor(react-sketchapp): moved types file to same level as index and render * fix(react-sketchapp): fixed function param
227 lines
5.6 KiB
TypeScript
227 lines
5.6 KiB
TypeScript
// Sketchy things
|
|
export type SketchLayer = any;
|
|
|
|
export interface WrappedSketchLayer {
|
|
sketchObject: SketchLayer;
|
|
}
|
|
|
|
export interface MSArray<T> {
|
|
[key: number]: T;
|
|
length: number;
|
|
}
|
|
|
|
export type NSString = any;
|
|
|
|
export interface SketchPage {
|
|
name: () => NSString;
|
|
setName: (name: string) => void;
|
|
layers: () => SketchLayer[];
|
|
}
|
|
|
|
export type SketchStyle = any;
|
|
|
|
export interface SketchSharedStyleContainer {
|
|
setObjects: (objects: SketchStyle[]) => void;
|
|
addSharedStyleWithName_firstInstance: (name: string, ins: SketchStyle) => any;
|
|
}
|
|
|
|
export type MSGradient = any;
|
|
export type MSColor = any;
|
|
|
|
export interface SketchAssetCollection {
|
|
colors: () => MSColor[];
|
|
gradients: () => MSGradient[];
|
|
}
|
|
|
|
export interface SketchDocumentData {
|
|
assets: () => SketchAssetCollection;
|
|
layerStyles: () => void;
|
|
layerTextStyles: () => SketchSharedStyleContainer;
|
|
layerSymbols: () => void;
|
|
removePageAtIndex: (index: number) => void;
|
|
addBlankPage: () => SketchPage;
|
|
currentPage: () => SketchPage;
|
|
setCurrentPage: (page: SketchPage) => void;
|
|
pages: () => MSArray<SketchPage>;
|
|
symbolsPageOrCreateIfNecessary: () => SketchPage;
|
|
}
|
|
|
|
export interface SketchDocument {
|
|
documentData: () => SketchDocumentData;
|
|
showMessage: (message: string) => void;
|
|
}
|
|
|
|
export interface WrappedSketchDocument {
|
|
sketchObject: SketchDocument | SketchDocumentData;
|
|
}
|
|
|
|
export interface SketchContext {
|
|
document: SketchDocument;
|
|
}
|
|
|
|
// Reacty things
|
|
|
|
export interface Size {
|
|
width: number;
|
|
height: number;
|
|
}
|
|
|
|
// undefined: max content
|
|
// exactly: fill available space
|
|
// at-most: fit content
|
|
export type MeasureMode = 'undefined' | 'exactly' | 'at-most';
|
|
|
|
export type Color = string | number;
|
|
|
|
export type BorderStyle = 'solid' | 'dotted' | 'dashed';
|
|
|
|
export type Overflow = 'visible' | 'hidden' | 'scroll';
|
|
|
|
export interface LayoutInfo {
|
|
width: number;
|
|
height: number;
|
|
top: number;
|
|
left: number;
|
|
right: number;
|
|
bottom: number;
|
|
direction?: 'ltr' | 'rtl';
|
|
}
|
|
|
|
export interface ViewStyle {
|
|
color?: Color;
|
|
shadowColor?: Color;
|
|
shadowInner?: boolean;
|
|
shadowSpread?: number;
|
|
shadowOffset?: { width: number; height: number };
|
|
shadowOpacity?: number;
|
|
shadowRadius?: number;
|
|
width?: number;
|
|
height?: number;
|
|
top?: number;
|
|
left?: number;
|
|
right?: number;
|
|
bottom?: number;
|
|
minWidth?: number;
|
|
maxWidth?: number;
|
|
minHeight?: number;
|
|
maxHeight?: number;
|
|
margin?: number;
|
|
marginVertical?: number;
|
|
marginHorizontal?: number;
|
|
marginTop?: number;
|
|
marginBottom?: number;
|
|
marginLeft?: number;
|
|
marginRight?: number;
|
|
padding?: number;
|
|
paddingVertical?: number;
|
|
paddingHorizontal?: number;
|
|
paddingTop?: number;
|
|
paddingBottom?: number;
|
|
paddingLeft?: number;
|
|
paddingRight?: number;
|
|
position?: 'absolute' | 'relative';
|
|
flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
|
|
flexWrap?: 'wrap' | 'nowrap';
|
|
justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around';
|
|
alignItems?: 'flex-start' | 'flex-end' | 'center' | 'stretch';
|
|
alignSelf?: 'auto' | 'flex-start' | 'flex-end' | 'center' | 'stretch';
|
|
overflow?: Overflow;
|
|
overflowX?: Overflow;
|
|
overflowY?: Overflow;
|
|
flex?: number;
|
|
flexGrow?: number;
|
|
flexShrink?: number;
|
|
flexBasis?: number;
|
|
aspectRatio?: number;
|
|
zIndex?: number;
|
|
backfaceVisibility?: 'visible' | 'hidden';
|
|
backgroundColor?: Color;
|
|
borderColor?: Color;
|
|
borderTopColor?: Color;
|
|
borderRightColor?: Color;
|
|
borderBottomColor?: Color;
|
|
borderLeftColor?: Color;
|
|
borderRadius?: number;
|
|
borderTopLeftRadius?: number;
|
|
borderTopRightRadius?: number;
|
|
borderBottomLeftRadius?: number;
|
|
borderBottomRightRadius?: number;
|
|
borderStyle?: BorderStyle;
|
|
borderTopStyle?: BorderStyle;
|
|
borderRightStyle?: BorderStyle;
|
|
borderBottomStyle?: BorderStyle;
|
|
borderLeftStyle?: BorderStyle;
|
|
borderWidth?: number;
|
|
borderTopWidth?: number;
|
|
borderRightWidth?: number;
|
|
borderBottomWidth?: number;
|
|
borderLeftWidth?: number;
|
|
opacity?: number;
|
|
transform?: string;
|
|
transformOrigin?: string;
|
|
}
|
|
|
|
export interface TextStyle {
|
|
color?: Color;
|
|
fontFamily?: string;
|
|
fontSize?: number;
|
|
fontStyle?: 'normal' | 'italic';
|
|
fontWeight?: string;
|
|
textDecoration?: string;
|
|
textShadowOpacity?: number;
|
|
textShadowSpread?: number;
|
|
textShadowOffset?: { width: number; height: number };
|
|
textShadowRadius?: number;
|
|
textShadowColor?: Color;
|
|
textTransform?: 'uppercase' | 'lowercase';
|
|
letterSpacing?: number;
|
|
lineHeight?: number;
|
|
textAlign?: 'auto' | 'left' | 'right' | 'center' | 'justify';
|
|
paragraphSpacing?: number;
|
|
writingDirection?: 'auto' | 'ltr' | 'rtl';
|
|
}
|
|
|
|
export interface TextNode {
|
|
content: string;
|
|
textStyles: TextStyle;
|
|
}
|
|
|
|
export type TextNodes = TextNode[];
|
|
|
|
export interface TreeNode {
|
|
type: string;
|
|
style: ViewStyle;
|
|
textStyle: TextStyle;
|
|
layout: LayoutInfo;
|
|
props: any;
|
|
children?: TreeNode[];
|
|
}
|
|
|
|
export type LayerCreator = (
|
|
style: ViewStyle,
|
|
layout: LayoutInfo,
|
|
textStyle: TextStyle,
|
|
props: any,
|
|
value?: string,
|
|
) => SketchLayer;
|
|
|
|
export interface ResizeConstraints {
|
|
top: boolean;
|
|
right: boolean;
|
|
bottom: boolean;
|
|
left: boolean;
|
|
fixedHeight: boolean;
|
|
fixedWidth: boolean;
|
|
}
|
|
|
|
export interface SketchShadow {
|
|
shadowColor: Color;
|
|
shadowOffset: { width: number; height: number };
|
|
shadowSpread: number;
|
|
shadowOpacity: number;
|
|
shadowRadius: number;
|
|
shadowInner: boolean;
|
|
}
|
|
|
|
export type SketchShadows = SketchShadow[];
|