This is the first step towards the final v2.0.0 release. In this release, we've introduced a variety of changes to expose more functionality from Bubbles and have fixed numerous issues!
This release now uses the charm.land/* domain for imports 🖥️
go get charm.land/bubbles/v2@v2.0.0-rc.1
Progress 🌈
Special thanks to the legendary @lrstanley for his outstanding work on improving the blend algorithm in the Progress Bubble.
Textarea ✍️
You can now use PageUp, PageDown, ScrollYOffset, ScrollPosition, MoveToBeginning , and MoveToEnd, along with numerous bug fixes!
Viewport 📜
The Viewport Bubble now supports horizontal mouse wheel scrolling, thanks to @UnseenBook.
Table 🔢
This release includes a critical out-of-bound fix by @s0ders.
Changelog
New!
- faa17cb: feat(progress): support multiple stops and improved blend algorithm (#838) (@lrstanley)
- bc03e71: feat(textarea): add PageUp & PageDown support (#844) (@lrstanley)
- c690ea5: feat(textarea): add ScrollYOffset and ScrollPosition methods (@lrstanley)
- a4c42b5: feat(textarea): add focus status to setPromptFunc (#797) (@meowgorithm)
- 696244a: feat(textarea): expose MoveToBegin and MoveToEnd methods (#809) (@aymanbagabas)
- 1e2ffbb: feat(textarea): get the word under the cursor (#814) (@caarlos0)
- a0a432e: feat(viewport): horizontal scroll with mouse wheel (@UnseenBook)
- ea344ab: feat(viewport): horizontal scroll with mouse wheel (#761) (@UnseenBook)
- dff42dd: feat: update keybindings in list setSize method (@Broderick-Westrope)
Fixed
- f2434c3: Revert "fix(viewport): normalize method names" (@caarlos0)
- c376ce3: fix(cursor): fix data race on blinkTag (#784) (@DryHumour)
- ba5555a: fix(cursor): set ID on virutal cursors (@meowgorithm)
- c2223a7: fix(list): ensure correct cursor positions with page/cursor methods (#831) (#837) (@lrstanley)
- 11d52ca: fix(table): preventing cursor from being out-of-bounds. (@s0ders)
- b3f0c9e: fix(textarea): cursorline now fills the line when a placeholder is present (@meowgorithm)
- 50038eb: fix(textarea): ensure cursor is always in view (#840) (@lrstanley)
- c4068c6: fix(textarea): ensure viewport content is set during update (@aymanbagabas)
- 8b55efb: fix(textarea): placeholder with chinese chars (#767) (@caarlos0)
- bb1d1d2: fix(textarea): suppress blink messages when real cursor is active (@meowgorithm)
- 86f3326: fix(textarea): update tests to reflect changes in textarea content (@aymanbagabas)
- efdc0e8: fix(textarea): use pointer receiver for Model methods (@aymanbagabas)
- 49ff5c0: fix(textinput): improve placeholder (#768) (@caarlos0)
- c7f889e: fix(viewport): normalize method names (@caarlos0)
- 39668ec: fix(viewport): normalize method names (#763) (@caarlos0)
- bd2a5b0: fix: golangci-lint 2 fixes (#769) (@caarlos0)
- b1cef26: fix: normalize yoffset (@caarlos0)
- 84fd71d: fix: use charm.land import path for bubbletea (@aymanbagabas)
- 7c44f63: v1: fix(list): ensure correct cursor positions with page/cursor methods (#831) (@lrstanley)
Docs
- 7fcf75d: docs(readme): update footer image and copyright date (@meowgorithm)
- d4feefe: docs: remove Charm Cloud reference (#785) (@ShalokShalom)
Other stuff
- 6f4a536: Update viewport/viewport.go (@caarlos0)
- daab808: ci: sync dependabot config (#786) (@charmcli)
- 4b2d311: ci: sync dependabot config (#835) (@charmcli)
- cce8481: ci: sync golangci-lint config (#770) (@github-actions[bot])
- 8562e90: ci: sync golangci-lint config (#781) (@github-actions[bot])
- b531de8: fix!(textarea): virtual cursor blink (@meowgorithm)
- 8e84f33: fix!(textinput): cursor fixes and improvements (@meowgorithm)
- d42b7c4: fix(textarea/tests): update tests per API changes (@meowgorithm)
- 56bbc4a: fix(textinput,textarea): don't draw real cusor when blurred (@meowgorithm)
- 538d39c: refactor(help): use setter/getter for help width (@aymanbagabas)
- 7445f97: refactor(viewport): softwrap; improve perf; various bug fixes (#823) (@lrstanley)
- da0b892: refactor: migrate imports to charm.land/lipgloss (@aymanbagabas)
- 07735d1: refactor: update module path to charm.land (@aymanbagabas)
- e8fcfc5: refactor: use msg.Content for PasteMsg in textinput and textarea (@aymanbagabas)
- f54a125: test(table): improve table unit tests (#601) (@Broderick-Westrope)
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.