source dump of claude code
at main 152 lines 4.3 kB view raw
1// -- 2// Adapter interface for the layout engine (Yoga) 3 4export const LayoutEdge = { 5 All: 'all', 6 Horizontal: 'horizontal', 7 Vertical: 'vertical', 8 Left: 'left', 9 Right: 'right', 10 Top: 'top', 11 Bottom: 'bottom', 12 Start: 'start', 13 End: 'end', 14} as const 15export type LayoutEdge = (typeof LayoutEdge)[keyof typeof LayoutEdge] 16 17export const LayoutGutter = { 18 All: 'all', 19 Column: 'column', 20 Row: 'row', 21} as const 22export type LayoutGutter = (typeof LayoutGutter)[keyof typeof LayoutGutter] 23 24export const LayoutDisplay = { 25 Flex: 'flex', 26 None: 'none', 27} as const 28export type LayoutDisplay = (typeof LayoutDisplay)[keyof typeof LayoutDisplay] 29 30export const LayoutFlexDirection = { 31 Row: 'row', 32 RowReverse: 'row-reverse', 33 Column: 'column', 34 ColumnReverse: 'column-reverse', 35} as const 36export type LayoutFlexDirection = 37 (typeof LayoutFlexDirection)[keyof typeof LayoutFlexDirection] 38 39export const LayoutAlign = { 40 Auto: 'auto', 41 Stretch: 'stretch', 42 FlexStart: 'flex-start', 43 Center: 'center', 44 FlexEnd: 'flex-end', 45} as const 46export type LayoutAlign = (typeof LayoutAlign)[keyof typeof LayoutAlign] 47 48export const LayoutJustify = { 49 FlexStart: 'flex-start', 50 Center: 'center', 51 FlexEnd: 'flex-end', 52 SpaceBetween: 'space-between', 53 SpaceAround: 'space-around', 54 SpaceEvenly: 'space-evenly', 55} as const 56export type LayoutJustify = (typeof LayoutJustify)[keyof typeof LayoutJustify] 57 58export const LayoutWrap = { 59 NoWrap: 'nowrap', 60 Wrap: 'wrap', 61 WrapReverse: 'wrap-reverse', 62} as const 63export type LayoutWrap = (typeof LayoutWrap)[keyof typeof LayoutWrap] 64 65export const LayoutPositionType = { 66 Relative: 'relative', 67 Absolute: 'absolute', 68} as const 69export type LayoutPositionType = 70 (typeof LayoutPositionType)[keyof typeof LayoutPositionType] 71 72export const LayoutOverflow = { 73 Visible: 'visible', 74 Hidden: 'hidden', 75 Scroll: 'scroll', 76} as const 77export type LayoutOverflow = 78 (typeof LayoutOverflow)[keyof typeof LayoutOverflow] 79 80export type LayoutMeasureFunc = ( 81 width: number, 82 widthMode: LayoutMeasureMode, 83) => { width: number; height: number } 84 85export const LayoutMeasureMode = { 86 Undefined: 'undefined', 87 Exactly: 'exactly', 88 AtMost: 'at-most', 89} as const 90export type LayoutMeasureMode = 91 (typeof LayoutMeasureMode)[keyof typeof LayoutMeasureMode] 92 93export type LayoutNode = { 94 // Tree 95 insertChild(child: LayoutNode, index: number): void 96 removeChild(child: LayoutNode): void 97 getChildCount(): number 98 getParent(): LayoutNode | null 99 100 // Layout computation 101 calculateLayout(width?: number, height?: number): void 102 setMeasureFunc(fn: LayoutMeasureFunc): void 103 unsetMeasureFunc(): void 104 markDirty(): void 105 106 // Layout reading (post-layout) 107 getComputedLeft(): number 108 getComputedTop(): number 109 getComputedWidth(): number 110 getComputedHeight(): number 111 getComputedBorder(edge: LayoutEdge): number 112 getComputedPadding(edge: LayoutEdge): number 113 114 // Style setters 115 setWidth(value: number): void 116 setWidthPercent(value: number): void 117 setWidthAuto(): void 118 setHeight(value: number): void 119 setHeightPercent(value: number): void 120 setHeightAuto(): void 121 setMinWidth(value: number): void 122 setMinWidthPercent(value: number): void 123 setMinHeight(value: number): void 124 setMinHeightPercent(value: number): void 125 setMaxWidth(value: number): void 126 setMaxWidthPercent(value: number): void 127 setMaxHeight(value: number): void 128 setMaxHeightPercent(value: number): void 129 setFlexDirection(dir: LayoutFlexDirection): void 130 setFlexGrow(value: number): void 131 setFlexShrink(value: number): void 132 setFlexBasis(value: number): void 133 setFlexBasisPercent(value: number): void 134 setFlexWrap(wrap: LayoutWrap): void 135 setAlignItems(align: LayoutAlign): void 136 setAlignSelf(align: LayoutAlign): void 137 setJustifyContent(justify: LayoutJustify): void 138 setDisplay(display: LayoutDisplay): void 139 getDisplay(): LayoutDisplay 140 setPositionType(type: LayoutPositionType): void 141 setPosition(edge: LayoutEdge, value: number): void 142 setPositionPercent(edge: LayoutEdge, value: number): void 143 setOverflow(overflow: LayoutOverflow): void 144 setMargin(edge: LayoutEdge, value: number): void 145 setPadding(edge: LayoutEdge, value: number): void 146 setBorder(edge: LayoutEdge, value: number): void 147 setGap(gutter: LayoutGutter, value: number): void 148 149 // Lifecycle 150 free(): void 151 freeRecursive(): void 152}