35 Commits

Author SHA1 Message Date
8d688fa304 Add module-info files (#886) 2025-05-15 03:55:54 +00:00
d77614b518 Split Terminal API from TTY Terminal implementation (#785)
This fixes the public API problem in the runtime.

Expose a TestTerminal from the testing library as well.
2025-03-13 15:30:10 +00:00
423ba21f8c Push terminal feature detection into terminal library (#784)
This starts to provide a high-level terminal abstraction. It's not perfect, but it's good enough to start with.
2025-03-13 04:34:30 +00:00
8957294eff Add support for Kitty underlines (#765) 2025-03-02 06:47:20 -05:00
d601be5e6a Perform rudimentary ansi color level detection (#711)
There is a lot to add here, but this gets us off the ground.
2025-02-19 00:51:01 -05:00
93cccf14ff Add focus and theme to Terminal, make cursor and sync conditional (#696) 2025-02-15 14:50:17 -05:00
cc31d49df5 Switch to our own terminal library (#695)
* Switch to our own terminal library

This handles raw mode, VT parsing, and other system integration.

* Docs needs native libraries now

* API dump

* More test hacks

* Formatting
2025-02-14 14:44:52 -05:00
26765723a2 Drop Jansi, use Mordant for output (#692) 2025-02-14 15:37:13 +00:00
3b8a8aa718 Use our own env var lookup (#686)
Reducing Mordant reliance in preparation to switch to our own raw mode mechanism.
2025-02-07 21:28:35 +00:00
44ef3f4706 Centralize most opt-in usage (#655) 2025-01-23 15:16:40 -05:00
321290f5c1 Create mosaic-testing module (#528) 2025-01-03 21:55:32 +00:00
a2e163c04e Render as fast as possible (#578)
Do not delay to space out frames. Instead, send frames as fast as possible and only render when something changes. This ensures we reflect changes as soon as possible rather than after an artificial delay.
2024-12-19 12:14:55 -05:00
e2f598859e Use more efficient collections where possible (#483)
These avoid boxing, virtual calls, or both. Not all usages have been updated, just the easy targets.
2024-09-25 09:20:56 -04:00
2b4cb8a69c Add rudimentary key handling (#442)
This forces all usages into raw mode, regardless of whether you are listening for keys or not.
2024-09-10 18:11:15 -04:00
b7516bc630 Stuff (#466)
- Klib API dumps
- UInt comparison
- Publishing gets Dokka automatically
2024-09-07 00:00:20 -04:00
83e079deba Migrate to finalization hook library (#460) 2024-08-31 00:06:50 -04:00
0e1266fd72 Delete old intermediate source sets (#461) 2024-08-31 04:05:02 +00:00
e308b86351 Hide and show the cursor automatically during rendering (#452) 2024-08-26 16:30:32 +00:00
83474b8724 Remove JS support (#447)
Demand for this is low, probably 0. If someone wants for it they can file an issue and we can discuss support further.

Downgrade to Gradle 8.9 because of KT-70700.
2024-08-23 09:59:23 -04:00
d24b8cd880 Add unit test for counter (#397) 2024-08-16 19:14:25 -04:00
4d053dbbd3 Change runMosaic to support effects (#284) 2024-08-16 16:58:08 -04:00
a5ec60767d Update to Kotlin 2.0
* Update Kotlin and Compose to v2

* Kotlin 2.0 updates

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jake Wharton <jw@squareup.com>
2024-05-28 16:55:50 -04:00
f192af3b26 Add Binary Compatibility Validator (#298)
* Add Binary Compatibility Validator

Tracking changes to the library's public contract.

https://github.com/Kotlin/binary-compatibility-validator

* Apply suggestions from code review

---------

Co-authored-by: Jake Wharton <github@jakewharton.com>
2024-01-16 16:45:19 +00:00
201de77270 Migrate to AssertK (#245) 2023-11-13 19:35:57 +00:00
a07ef25b0e Enable default hierarchy (#244) 2023-11-13 18:57:01 +00:00
f02173c4d1 Migrate to Poko from data classes (#240)
At least for those in public API.
2023-11-13 17:29:22 +00:00
a8e0d288d7 CompositionLocal for terminal size by Mordant (#230)
* CompositionLocal for terminal size by Mordant

The Mordant KMP library has been added to the mosaic-runtime module in commonMain, which allows you to interact with the cli.

This makes it possible to get the size of the terminal via `CompositionLocal` - `Terminal.current.size`.

* Use local variable for terminalInfo in loop with terminal size update

Co-authored-by: Jake Wharton <github@jakewharton.com>

---------

Co-authored-by: Jake Wharton <github@jakewharton.com>
2023-11-13 11:35:59 -05:00
6708134b54 Render nodes in debug output even if drawing fails (#156) 2023-03-16 04:12:28 +00:00
f599129b61 Inject the whole compiler coordinate triple (#116)
This will make it easier to switch to JB Compose.

Also clean up some other version catalog stuff.
2023-02-19 05:02:40 +00:00
e199b74e8a Enable explicit API 2023-01-26 22:12:09 -05:00
cfc92c4b98 Fix programatic source set dependencies
This ensures that HMPP can correctly see our hierarchy and match it to our dependencies.
2023-01-26 15:46:00 -05:00
a1a42bf4ee Don't be a chump and expose runMosaicBlocking everywhere
Or, at least, everywhere possible given our constraints.
2023-01-25 23:23:42 -05:00
20e36199c2 Port runtime to multiplatorm 2023-01-23 21:32:35 -05:00
e2bbf68f2b Migrate to version catalogs 2022-09-02 21:45:25 -04:00
08538ec896 Restructure the project to put Mosaic at the root
Samples are now in a nested build.
2022-08-11 22:38:19 -04:00