Skip to content

v0.7.0

Latest
Compare
Choose a tag to compare
@caarlos0 caarlos0 released this 16 Apr 19:33
· 24 commits to main since this release
151ba05

Less bugs, more feats

This is a quality-of-life release which fixes a handful of behavioral and rendering issues, and adds a few of useful features.

go get github.com/charmbracelet/huh@latest

Accessible mode: now more accessible

We made several updates to accessible mode, and it should now work better with
screen readers.

It will also now respect WithInput and WithOutput.

Focused? Hovered Filtered?

Useful when integrating with an existing Bubble Tea app, you can now get the
currently focused field, as well as the which option the cursor is pointing at, which we’re calling "hover":

f := huh.NewForm(
  huh.NewGroup(
    huh.NewSelect[string]().
      Options(huh.NewOptions(
        "Banana",
        "Apple",
        "Orange",
      )...).
      Title("Favorite fruit?"),
    huh.NewMultiSelect[string]().
      Options(huh.NewOptions(
        "Pudim",
        "Sagu",
        "Chocolate",
      )...).
      Title("Favorite dessert?"),
  ),
)
_ = f.Run()

field := f.GetFocusedField()
switch field := field.(type) {
case *huh.Select[string]:
  fmt.Println(field.Hovered())
case *huh.MultiSelect[string]:
  fmt.Println(field.Hovered())
}

You can also use GetFiltering to check if the user is currently filtering.

Spinning, but not out of control

Spinner was revamped and now properly handles context cancellations,
interrupts, and more. You can also use the new ActionWithError to set an action that might error.

Other improvements

  • FilePicker got a couple of improvements: you can now set the Cursor, and the UI has received a bit of extra polish.
  • Group now properly renders their Title and Description.
  • Text can now be configured to not allow opening the external editor.
  • Select and MultiSelect now properly handle multi-line options, as well as automatically wrap long options so they are properly rendered.
  • Title and Description of all components now properly wrap, fixing many rendering issues.
  • Both Column and Grid layouts received bug fixes and improvements.
  • Interrupt signals (SIGINT) are now properly handled.

Changelog

New Contributors


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.