diff --git a/CHANGELOG.md b/CHANGELOG.md index 515d909..0fd2ee2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project uses semantic versioning while it remains pre-1.0. ## [Unreleased] +## [0.7.0] - 2026-07-21 + ### Added - Added opt-in typed SGR mouse input with coordinate-aware component and overlay @@ -27,6 +29,9 @@ and this project uses semantic versioning while it remains pre-1.0. ### Fixed +- Fixed coordinate-aware mouse routing through padded nested boxes, prevented + resize-invalidated render candidates from publishing uncommitted geometry, + and preserved extended SGR mouse-button identities. #46 - Fixed multiline text rendering for LF, CRLF, and CR boundaries, made loader cancellation thread-safe and idempotent, and prevented concurrent TUI image sessions from sharing mutable terminal geometry. #49 @@ -252,7 +257,8 @@ and this project uses semantic versioning while it remains pre-1.0. - GitHub Actions CI, jar packaging, GitHub Packages publishing, and GitHub release artifacts. -[Unreleased]: https://github.com/zikolach/siglyph/compare/v0.6.0...HEAD +[Unreleased]: https://github.com/zikolach/siglyph/compare/v0.7.0...HEAD +[0.7.0]: https://github.com/zikolach/siglyph/compare/v0.6.0...v0.7.0 [0.6.0]: https://github.com/zikolach/siglyph/compare/v0.5.0...v0.6.0 [0.5.0]: https://github.com/zikolach/siglyph/compare/v0.4.0...v0.5.0 [0.4.0]: https://github.com/zikolach/siglyph/compare/v0.3.0...v0.4.0 diff --git a/README.md b/README.md index 112c34c..b2eed5a 100644 --- a/README.md +++ b/README.md @@ -35,10 +35,10 @@ Published artifacts are available on Maven Central. GitHub Packages and GitHub R ```scala libraryDependencies ++= Seq( - "io.github.zikolach" %% "siglyph-core" % "0.6.0", - "io.github.zikolach" %% "siglyph-terminal-jvm" % "0.6.0", - "io.github.zikolach" %% "siglyph-markdown" % "0.6.0", - "io.github.zikolach" %% "siglyph-image" % "0.6.0" + "io.github.zikolach" %% "siglyph-core" % "0.7.0", + "io.github.zikolach" %% "siglyph-terminal-jvm" % "0.7.0", + "io.github.zikolach" %% "siglyph-markdown" % "0.7.0", + "io.github.zikolach" %% "siglyph-image" % "0.7.0" ) ``` @@ -49,18 +49,18 @@ object app extends ScalaModule { def scalaVersion = "3.7.4" def mvnDeps = Seq( - mvn"io.github.zikolach::siglyph-core::0.6.0", - mvn"io.github.zikolach::siglyph-terminal-jvm::0.6.0", - mvn"io.github.zikolach::siglyph-markdown::0.6.0", - mvn"io.github.zikolach::siglyph-image::0.6.0" + mvn"io.github.zikolach::siglyph-core::0.7.0", + mvn"io.github.zikolach::siglyph-terminal-jvm::0.7.0", + mvn"io.github.zikolach::siglyph-markdown::0.7.0", + mvn"io.github.zikolach::siglyph-image::0.7.0" ) } ``` To include optional `siglyph-extras`, add it to your dependency list: -- **SBT:** `"io.github.zikolach" %% "siglyph-extras" % "0.6.0"` -- **Mill:** `mvn"io.github.zikolach::siglyph-extras::0.6.0"` +- **SBT:** `"io.github.zikolach" %% "siglyph-extras" % "0.7.0"` +- **Mill:** `mvn"io.github.zikolach::siglyph-extras::0.7.0"` For Scala Native versions that include optional Native artifacts, add these platform-aware Mill coordinates from a `ScalaNativeModule` in addition to `siglyph-core` and `siglyph-terminal-native`: @@ -111,7 +111,11 @@ Single-file demos live in [`examples/scala-cli/`](examples/scala-cli/) and are i ./examples/scala-cli/mouse.scala ``` -The released examples reference Maven Central dependencies, so they can run without cloning or GitHub Packages credentials. The unreleased mouse example references local `0.6.0-SNAPSHOT` artifacts; run `./scripts/publish-local-snapshot.sh` from the repository root before running it. The alternate-screen Sonatype Central explorer uses the full alternate-screen height, shows built-in loader states and published dates, and copies selected build snippets through terminal clipboard escape sequences with an inline `Copied!` badge. +The released examples reference Maven Central dependencies, so they can run without cloning, +publishing local snapshots, or using GitHub Packages credentials. The alternate-screen Sonatype +Central explorer uses the full alternate-screen height, shows built-in loader states and published +dates, and copies selected build snippets through terminal clipboard escape sequences with an +inline `Copied!` badge. ## Quick example diff --git a/examples/scala-cli/README.md b/examples/scala-cli/README.md index 1e3dc18..f7938da 100644 --- a/examples/scala-cli/README.md +++ b/examples/scala-cli/README.md @@ -2,9 +2,7 @@ Small single-file demos intended for `scala-cli`. -The released examples use Maven Central `0.6.0` artifacts. The mouse example uses local -`0.6.0-SNAPSHOT` artifacts to exercise unreleased mouse-input APIs; run -`./scripts/publish-local-snapshot.sh` from the repository root before running it. +The released examples use Maven Central `0.7.0` artifacts. Run from this repository: @@ -85,7 +83,7 @@ Validation has the same lexical contract on JVM and Scala Native. It accepts sta `mouse.scala` demonstrates opt-in mouse reporting with `TUIOptions(mouseInput = true)`, typed `TerminalInput.Mouse` logging, coordinate-routed mouse events in a custom component, and wheel scrolling over `SelectList` and `Editor`. While the demo runs, terminal wheel scrollback is captured by mouse reporting; unhandled wheel events are logged but cannot be passed back to the terminal reliably. -To run an example against local sources instead of the published local snapshot, pass the source roots to Scala CLI: +To run an example against local sources instead of the published release, pass the source roots to Scala CLI: ```bash scala-cli run --workspace /tmp/siglyph-mouse-demo \ diff --git a/examples/scala-cli/alternate-screen-maven.scala b/examples/scala-cli/alternate-screen-maven.scala index af6d96d..f9ace28 100755 --- a/examples/scala-cli/alternate-screen-maven.scala +++ b/examples/scala-cli/alternate-screen-maven.scala @@ -1,7 +1,7 @@ #!/usr/bin/env -S scala-cli shebang //> using scala 3.7.4 -//> using dep io.github.zikolach::siglyph-core:0.6.0 -//> using dep io.github.zikolach::siglyph-terminal-jvm:0.6.0 +//> using dep io.github.zikolach::siglyph-core:0.7.0 +//> using dep io.github.zikolach::siglyph-terminal-jvm:0.7.0 //> using dep com.github.plokhotnyuk.jsoniter-scala::jsoniter-scala-core:2.38.17 //> using dep com.github.plokhotnyuk.jsoniter-scala::jsoniter-scala-macros:2.38.17 diff --git a/examples/scala-cli/editor-autocomplete.scala b/examples/scala-cli/editor-autocomplete.scala index 075a19f..e21fbda 100755 --- a/examples/scala-cli/editor-autocomplete.scala +++ b/examples/scala-cli/editor-autocomplete.scala @@ -1,7 +1,7 @@ #!/usr/bin/env -S scala-cli shebang //> using scala 3.7.4 -//> using dep io.github.zikolach::siglyph-core:0.6.0 -//> using dep io.github.zikolach::siglyph-terminal-jvm:0.6.0 +//> using dep io.github.zikolach::siglyph-core:0.7.0 +//> using dep io.github.zikolach::siglyph-terminal-jvm:0.7.0 import java.io.File import java.util.concurrent.Executors diff --git a/examples/scala-cli/hello.scala b/examples/scala-cli/hello.scala index f46a2dd..96534c4 100755 --- a/examples/scala-cli/hello.scala +++ b/examples/scala-cli/hello.scala @@ -1,7 +1,7 @@ #!/usr/bin/env -S scala-cli shebang //> using scala 3.7.4 -//> using dep io.github.zikolach::siglyph-core:0.6.0 -//> using dep io.github.zikolach::siglyph-terminal-jvm:0.6.0 +//> using dep io.github.zikolach::siglyph-core:0.7.0 +//> using dep io.github.zikolach::siglyph-terminal-jvm:0.7.0 import scalatui.components.* import scalatui.core.TUI diff --git a/examples/scala-cli/image.scala b/examples/scala-cli/image.scala index c0c1bc1..7595e5c 100755 --- a/examples/scala-cli/image.scala +++ b/examples/scala-cli/image.scala @@ -1,8 +1,8 @@ #!/usr/bin/env -S scala-cli shebang //> using scala 3.7.4 -//> using dep io.github.zikolach::siglyph-core:0.6.0 -//> using dep io.github.zikolach::siglyph-terminal-jvm:0.6.0 -//> using dep io.github.zikolach::siglyph-image:0.6.0 +//> using dep io.github.zikolach::siglyph-core:0.7.0 +//> using dep io.github.zikolach::siglyph-terminal-jvm:0.7.0 +//> using dep io.github.zikolach::siglyph-image:0.7.0 import java.nio.file.Paths diff --git a/examples/scala-cli/markdown.scala b/examples/scala-cli/markdown.scala index efa3b62..0cbc7e4 100755 --- a/examples/scala-cli/markdown.scala +++ b/examples/scala-cli/markdown.scala @@ -1,7 +1,7 @@ #!/usr/bin/env -S scala-cli shebang //> using scala 3.7.4 -//> using dep io.github.zikolach::siglyph-core:0.6.0 -//> using dep io.github.zikolach::siglyph-markdown:0.6.0 +//> using dep io.github.zikolach::siglyph-core:0.7.0 +//> using dep io.github.zikolach::siglyph-markdown:0.7.0 import scalatui.components.* import scalatui.core.TUI diff --git a/examples/scala-cli/mouse.scala b/examples/scala-cli/mouse.scala index 6509b65..c3f8911 100755 --- a/examples/scala-cli/mouse.scala +++ b/examples/scala-cli/mouse.scala @@ -1,8 +1,7 @@ #!/usr/bin/env -S scala-cli shebang //> using scala 3.7.4 -//> using repository m2Local -//> using dep io.github.zikolach::siglyph-core:0.6.0-SNAPSHOT -//> using dep io.github.zikolach::siglyph-terminal-jvm:0.6.0-SNAPSHOT +//> using dep io.github.zikolach::siglyph-core:0.7.0 +//> using dep io.github.zikolach::siglyph-terminal-jvm:0.7.0 import scalatui.ansi.Ansi import scalatui.components.*