mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
145 lines
4.2 KiB
TypeScript
145 lines
4.2 KiB
TypeScript
// --
|
|
// Adapter interface for the layout engine (Yoga)
|
|
|
|
export const LayoutEdge = {
|
|
All: 'all',
|
|
Horizontal: 'horizontal',
|
|
Vertical: 'vertical',
|
|
Left: 'left',
|
|
Right: 'right',
|
|
Top: 'top',
|
|
Bottom: 'bottom',
|
|
Start: 'start',
|
|
End: 'end'
|
|
} as const
|
|
export type LayoutEdge = (typeof LayoutEdge)[keyof typeof LayoutEdge]
|
|
|
|
export const LayoutGutter = {
|
|
All: 'all',
|
|
Column: 'column',
|
|
Row: 'row'
|
|
} as const
|
|
export type LayoutGutter = (typeof LayoutGutter)[keyof typeof LayoutGutter]
|
|
|
|
export const LayoutDisplay = {
|
|
Flex: 'flex',
|
|
None: 'none'
|
|
} as const
|
|
export type LayoutDisplay = (typeof LayoutDisplay)[keyof typeof LayoutDisplay]
|
|
|
|
export const LayoutFlexDirection = {
|
|
Row: 'row',
|
|
RowReverse: 'row-reverse',
|
|
Column: 'column',
|
|
ColumnReverse: 'column-reverse'
|
|
} as const
|
|
export type LayoutFlexDirection = (typeof LayoutFlexDirection)[keyof typeof LayoutFlexDirection]
|
|
|
|
export const LayoutAlign = {
|
|
Auto: 'auto',
|
|
Stretch: 'stretch',
|
|
FlexStart: 'flex-start',
|
|
Center: 'center',
|
|
FlexEnd: 'flex-end'
|
|
} as const
|
|
export type LayoutAlign = (typeof LayoutAlign)[keyof typeof LayoutAlign]
|
|
|
|
export const LayoutJustify = {
|
|
FlexStart: 'flex-start',
|
|
Center: 'center',
|
|
FlexEnd: 'flex-end',
|
|
SpaceBetween: 'space-between',
|
|
SpaceAround: 'space-around',
|
|
SpaceEvenly: 'space-evenly'
|
|
} as const
|
|
export type LayoutJustify = (typeof LayoutJustify)[keyof typeof LayoutJustify]
|
|
|
|
export const LayoutWrap = {
|
|
NoWrap: 'nowrap',
|
|
Wrap: 'wrap',
|
|
WrapReverse: 'wrap-reverse'
|
|
} as const
|
|
export type LayoutWrap = (typeof LayoutWrap)[keyof typeof LayoutWrap]
|
|
|
|
export const LayoutPositionType = {
|
|
Relative: 'relative',
|
|
Absolute: 'absolute'
|
|
} as const
|
|
export type LayoutPositionType = (typeof LayoutPositionType)[keyof typeof LayoutPositionType]
|
|
|
|
export const LayoutOverflow = {
|
|
Visible: 'visible',
|
|
Hidden: 'hidden',
|
|
Scroll: 'scroll'
|
|
} as const
|
|
export type LayoutOverflow = (typeof LayoutOverflow)[keyof typeof LayoutOverflow]
|
|
|
|
export type LayoutMeasureFunc = (width: number, widthMode: LayoutMeasureMode) => { width: number; height: number }
|
|
|
|
export const LayoutMeasureMode = {
|
|
Undefined: 'undefined',
|
|
Exactly: 'exactly',
|
|
AtMost: 'at-most'
|
|
} as const
|
|
export type LayoutMeasureMode = (typeof LayoutMeasureMode)[keyof typeof LayoutMeasureMode]
|
|
|
|
export type LayoutNode = {
|
|
// Tree
|
|
insertChild(child: LayoutNode, index: number): void
|
|
removeChild(child: LayoutNode): void
|
|
getChildCount(): number
|
|
getParent(): LayoutNode | null
|
|
|
|
// Layout computation
|
|
calculateLayout(width?: number, height?: number): void
|
|
setMeasureFunc(fn: LayoutMeasureFunc): void
|
|
unsetMeasureFunc(): void
|
|
markDirty(): void
|
|
|
|
// Layout reading (post-layout)
|
|
getComputedLeft(): number
|
|
getComputedTop(): number
|
|
getComputedWidth(): number
|
|
getComputedHeight(): number
|
|
getComputedBorder(edge: LayoutEdge): number
|
|
getComputedPadding(edge: LayoutEdge): number
|
|
|
|
// Style setters
|
|
setWidth(value: number): void
|
|
setWidthPercent(value: number): void
|
|
setWidthAuto(): void
|
|
setHeight(value: number): void
|
|
setHeightPercent(value: number): void
|
|
setHeightAuto(): void
|
|
setMinWidth(value: number): void
|
|
setMinWidthPercent(value: number): void
|
|
setMinHeight(value: number): void
|
|
setMinHeightPercent(value: number): void
|
|
setMaxWidth(value: number): void
|
|
setMaxWidthPercent(value: number): void
|
|
setMaxHeight(value: number): void
|
|
setMaxHeightPercent(value: number): void
|
|
setFlexDirection(dir: LayoutFlexDirection): void
|
|
setFlexGrow(value: number): void
|
|
setFlexShrink(value: number): void
|
|
setFlexBasis(value: number): void
|
|
setFlexBasisPercent(value: number): void
|
|
setFlexWrap(wrap: LayoutWrap): void
|
|
setAlignItems(align: LayoutAlign): void
|
|
setAlignSelf(align: LayoutAlign): void
|
|
setJustifyContent(justify: LayoutJustify): void
|
|
setDisplay(display: LayoutDisplay): void
|
|
getDisplay(): LayoutDisplay
|
|
setPositionType(type: LayoutPositionType): void
|
|
setPosition(edge: LayoutEdge, value: number): void
|
|
setPositionPercent(edge: LayoutEdge, value: number): void
|
|
setOverflow(overflow: LayoutOverflow): void
|
|
setMargin(edge: LayoutEdge, value: number): void
|
|
setPadding(edge: LayoutEdge, value: number): void
|
|
setBorder(edge: LayoutEdge, value: number): void
|
|
setGap(gutter: LayoutGutter, value: number): void
|
|
|
|
// Lifecycle
|
|
free(): void
|
|
freeRecursive(): void
|
|
}
|