| import { c as _c } from "react/compiler-runtime"; | |
| import React, { useCallback, useLayoutEffect, useRef, useState } from 'react'; | |
| import { useTerminalSize } from '../../hooks/useTerminalSize.js'; | |
| import { useTerminalViewport } from '../../ink/hooks/use-terminal-viewport.js'; | |
| import { Box, type DOMElement, measureElement } from '../../ink.js'; | |
| type Props = { | |
| children: React.ReactNode; | |
| lock?: 'always' | 'offscreen'; | |
| }; | |
| export function Ratchet(t0) { | |
| const $ = _c(10); | |
| const { | |
| children, | |
| lock: t1 | |
| } = t0; | |
| const lock = t1 === undefined ? "always" : t1; | |
| const [viewportRef, t2] = useTerminalViewport(); | |
| const { | |
| isVisible | |
| } = t2; | |
| const { | |
| rows | |
| } = useTerminalSize(); | |
| const innerRef = useRef(null); | |
| const maxHeight = useRef(0); | |
| const [minHeight, setMinHeight] = useState(0); | |
| let t3; | |
| if ($[0] !== viewportRef) { | |
| t3 = el => { | |
| viewportRef(el); | |
| }; | |
| $[0] = viewportRef; | |
| $[1] = t3; | |
| } else { | |
| t3 = $[1]; | |
| } | |
| const outerRef = t3; | |
| const engaged = lock === "always" || !isVisible; | |
| let t4; | |
| if ($[2] !== rows) { | |
| t4 = () => { | |
| if (!innerRef.current) { | |
| return; | |
| } | |
| const { | |
| height | |
| } = measureElement(innerRef.current); | |
| if (height > maxHeight.current) { | |
| maxHeight.current = Math.min(height, rows); | |
| setMinHeight(maxHeight.current); | |
| } | |
| }; | |
| $[2] = rows; | |
| $[3] = t4; | |
| } else { | |
| t4 = $[3]; | |
| } | |
| useLayoutEffect(t4); | |
| const t5 = engaged ? minHeight : undefined; | |
| let t6; | |
| if ($[4] !== children) { | |
| t6 = <Box ref={innerRef} flexDirection="column">{children}</Box>; | |
| $[4] = children; | |
| $[5] = t6; | |
| } else { | |
| t6 = $[5]; | |
| } | |
| let t7; | |
| if ($[6] !== outerRef || $[7] !== t5 || $[8] !== t6) { | |
| t7 = <Box minHeight={t5} ref={outerRef}>{t6}</Box>; | |
| $[6] = outerRef; | |
| $[7] = t5; | |
| $[8] = t6; | |
| $[9] = t7; | |
| } else { | |
| t7 = $[9]; | |
| } | |
| return t7; | |
| } | |
| //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlTGF5b3V0RWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VUZXJtaW5hbFNpemUiLCJ1c2VUZXJtaW5hbFZpZXdwb3J0IiwiQm94IiwiRE9NRWxlbWVudCIsIm1lYXN1cmVFbGVtZW50IiwiUHJvcHMiLCJjaGlsZHJlbiIsIlJlYWN0Tm9kZSIsImxvY2siLCJSYXRjaGV0IiwidDAiLCIkIiwiX2MiLCJ0MSIsInVuZGVmaW5lZCIsInZpZXdwb3J0UmVmIiwidDIiLCJpc1Zpc2libGUiLCJyb3dzIiwiaW5uZXJSZWYiLCJtYXhIZWlnaHQiLCJtaW5IZWlnaHQiLCJzZXRNaW5IZWlnaHQiLCJ0MyIsImVsIiwib3V0ZXJSZWYiLCJlbmdhZ2VkIiwidDQiLCJjdXJyZW50IiwiaGVpZ2h0IiwiTWF0aCIsIm1pbiIsInQ1IiwidDYiLCJ0NyJdLCJzb3VyY2VzIjpbIlJhdGNoZXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlTGF5b3V0RWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUZXJtaW5hbFNpemUgfSBmcm9tICcuLi8uLi9ob29rcy91c2VUZXJtaW5hbFNpemUuanMnXG5pbXBvcnQgeyB1c2VUZXJtaW5hbFZpZXdwb3J0IH0gZnJvbSAnLi4vLi4vaW5rL2hvb2tzL3VzZS10ZXJtaW5hbC12aWV3cG9ydC5qcydcbmltcG9ydCB7IEJveCwgdHlwZSBET01FbGVtZW50LCBtZWFzdXJlRWxlbWVudCB9IGZyb20gJy4uLy4uL2luay5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuICBsb2NrPzogJ2Fsd2F5cycgfCAnb2Zmc2NyZWVuJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUmF0Y2hldCh7IGNoaWxkcmVuLCBsb2NrID0gJ2Fsd2F5cycgfTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBbdmlld3BvcnRSZWYsIHsgaXNWaXNpYmxlIH1dID0gdXNlVGVybWluYWxWaWV3cG9ydCgpXG4gIGNvbnN0IHsgcm93cyB9ID0gdXNlVGVybWluYWxTaXplKClcbiAgY29uc3QgaW5uZXJSZWYgPSB1c2VSZWY8RE9NRWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IG1heEhlaWdodCA9IHVzZVJlZigwKVxuICBjb25zdCBbbWluSGVpZ2h0LCBzZXRNaW5IZWlnaHRdID0gdXNlU3RhdGUoMClcblxuICBjb25zdCBvdXRlclJlZiA9IHVzZUNhbGxiYWNrKFxuICAgIChlbDogRE9NRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIHZpZXdwb3J0UmVmKGVsKVxuICAgIH0sXG4gICAgW3ZpZXdwb3J0UmVmXSxcbiAgKVxuXG4gIGNvbnN0IGVuZ2FnZWQgPSBsb2NrID09PSAnYWx3YXlzJyB8fCAhaXNWaXNpYmxlXG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlubmVyUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB7IGhlaWdodCB9ID0gbWVhc3VyZUVsZW1lbnQoaW5uZXJSZWYuY3VycmVudClcbiAgICBpZiAoaGVpZ2h0ID4gbWF4SGVpZ2h0LmN1cnJlbnQpIHtcbiAgICAgIG1heEhlaWdodC5jdXJyZW50ID0gTWF0aC5taW4oaGVpZ2h0LCByb3dzKVxuICAgICAgc2V0TWluSGVpZ2h0KG1heEhlaWdodC5jdXJyZW50KVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gKFxuICAgIDxCb3ggbWluSGVpZ2h0PXtlbmdhZ2VkID8gbWluSGVpZ2h0IDogdW5kZWZpbmVkfSByZWY9e291dGVyUmVmfT5cbiAgICAgIDxCb3ggcmVmPXtpbm5lclJlZn0gZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0JveD5cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1h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 |