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 = {children}; $[4] = children; $[5] = t6; } else { t6 = $[5]; } let t7; if ($[6] !== outerRef || $[7] !== t5 || $[8] !== t6) { t7 = {t6}; $[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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