mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-08 03:01:47 +00:00
feat: fork ink and make it work nicely
This commit is contained in:
parent
cb79018977
commit
8760faf991
139 changed files with 24952 additions and 140 deletions
27
ui-tui/packages/hermes-ink/src/ink/get-max-width.ts
Normal file
27
ui-tui/packages/hermes-ink/src/ink/get-max-width.ts
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
import { LayoutEdge, type LayoutNode } from './layout/node.js'
|
||||
|
||||
/**
|
||||
* Returns the yoga node's content width (computed width minus padding and
|
||||
* border).
|
||||
*
|
||||
* Warning: can return a value WIDER than the parent container. In a
|
||||
* column-direction flex parent, width is the cross axis — align-items:
|
||||
* stretch never shrinks children below their intrinsic size, so the text
|
||||
* node overflows (standard CSS behavior). Yoga measures leaf nodes in two
|
||||
* passes: the AtMost pass determines width, the Exactly pass determines
|
||||
* height. getComputedWidth() reflects the wider AtMost result while
|
||||
* getComputedHeight() reflects the narrower Exactly result. Callers that
|
||||
* use this for wrapping should clamp to actual available screen space so
|
||||
* the rendered line count stays consistent with the layout height.
|
||||
*/
|
||||
const getMaxWidth = (yogaNode: LayoutNode): number => {
|
||||
return (
|
||||
yogaNode.getComputedWidth() -
|
||||
yogaNode.getComputedPadding(LayoutEdge.Left) -
|
||||
yogaNode.getComputedPadding(LayoutEdge.Right) -
|
||||
yogaNode.getComputedBorder(LayoutEdge.Left) -
|
||||
yogaNode.getComputedBorder(LayoutEdge.Right)
|
||||
)
|
||||
}
|
||||
|
||||
export default getMaxWidth
|
||||
Loading…
Add table
Add a link
Reference in a new issue