package input import ( "fmt" "os" "github.com/charmbracelet/bubbles/textinput" tea "github.com/charmbracelet/bubbletea" "github.com/charmbracelet/gum/internal/stdin" ) // Run provides a shell script interface for the text input bubble. // https://github.com/charmbracelet/bubbles/textinput func (o Options) Run() error { in, _ := stdin.Read() i := textinput.New() if in != "" && o.Value == "" { i.SetValue(in) } else { i.SetValue(o.Value) } i.Focus() i.Prompt = o.Prompt i.Placeholder = o.Placeholder i.Width = o.Width i.PromptStyle = o.PromptStyle.ToLipgloss() i.CursorStyle = o.CursorStyle.ToLipgloss() p := tea.NewProgram(model{i}, tea.WithOutput(os.Stderr)) m, err := p.StartReturningModel() fmt.Println(m.(model).textinput.Value()) return err }