import React from 'react'; import { Box, Text } from '../index.js'; type Props = { query: string; placeholder?: string; isFocused: boolean; isTerminalFocused: boolean; prefix?: string; width?: number | string; cursorOffset?: number; borderless?: boolean; }; export function SearchBox({ query, placeholder = 'Search…', isFocused, isTerminalFocused, prefix = '\u2315', width, cursorOffset, borderless = false, }: Props): React.ReactNode { const offset = cursorOffset ?? query.length; return ( {prefix}{' '} {isFocused ? ( <> {query ? ( isTerminalFocused ? ( <> {query.slice(0, offset)} {offset < query.length ? query[offset] : ' '} {offset < query.length && {query.slice(offset + 1)}} ) : ( {query} ) ) : isTerminalFocused ? ( <> {placeholder.charAt(0)} {placeholder.slice(1)} ) : ( {placeholder} )} ) : query ? ( {query} ) : ( {placeholder} )} ); }