0.6.0: describe a time axis
Node::Timeline and Placed, over makeover-layout 0.24.0's Track. The third
way this vocabulary says several of the same kind of thing: List puts them
in order, Table lines their parts up in columns, and this puts them on a
clock.
A placed row is an ordinary Row and gains no members. Placement is a pair
beside it rather than fields on it, so every list, table and detail pane in
the tree does not carry two integers it has no use for.
quasi-webview draws the ruler and places each entry by percentage, with
overlapping entries packed into lanes by greedy first-fit. The lane count is
per-track rather than per-cluster, which is a layout decision this renderer
owns and a test records as one. The only inline style the crate writes is
four numbers makeover's rules read; there is no pixel in it, asserted.
quasi-tui draws a clock column and one line per entry. A terminal cannot
place by percentage and does not have to: the description said these things
happen at these times, and a clock column says exactly that. What it gives
up is duration and overlap as shapes, which is presentation, and the comment
says so rather than filing it as a finding.
Containment is Of::Rows, the same as a list. A placement says how the
collection is arranged, not what is in it, so a walker that handles a list
needs nothing new.
Takes the makeover 0.24.0 cascade: layout 0.24.0, webview 0.42.0, tui
0.22.0, immediate 0.22.0.
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
16 files changed,
+473 insertions,
-57 deletions
| 2296 |
2296 |
|
|
| 2297 |
2297 |
|
[[package]]
|
| 2298 |
2298 |
|
name = "makeover-immediate"
|
| 2299 |
|
- |
version = "0.21.0"
|
|
2299 |
+ |
version = "0.22.0"
|
| 2300 |
2300 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2301 |
|
- |
checksum = "0670b8f5e4d0f29c1c1a714b5e73c4e26ed474f931716ff6406275e1b3b4259f"
|
|
2301 |
+ |
checksum = "2535b06fbfe15197c9871543a1c270e3744803132d68d391e4a19dbb7e4e942a"
|
| 2302 |
2302 |
|
dependencies = [
|
| 2303 |
2303 |
|
"egui",
|
| 2304 |
2304 |
|
"egui_extras",
|
| 2307 |
2307 |
|
|
| 2308 |
2308 |
|
[[package]]
|
| 2309 |
2309 |
|
name = "makeover-layout"
|
| 2310 |
|
- |
version = "0.23.0"
|
|
2310 |
+ |
version = "0.24.0"
|
| 2311 |
2311 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2312 |
|
- |
checksum = "6109712c400d787df788da4379559540b6b262b18b6cd4f42d7c084b2e6e8d79"
|
|
2312 |
+ |
checksum = "d7e8857e635b4b23c21bbea360a4b33eefb4c6ff252a4cf4b3564a55de55d19e"
|
| 2313 |
2313 |
|
|
| 2314 |
2314 |
|
[[package]]
|
| 2315 |
2315 |
|
name = "makeover-touch"
|
| 2316 |
|
- |
version = "0.15.0"
|
|
2316 |
+ |
version = "0.16.0"
|
| 2317 |
2317 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2318 |
|
- |
checksum = "e3e9a630a8003974a31b3ceeea36684c94254e7e517a0fb3029b5fd9ed667692"
|
|
2318 |
+ |
checksum = "af562d05e17947bb8fe7f3ce45d8f9b803627ae14b8931ebf578e12ddae85bdc"
|
| 2319 |
2319 |
|
dependencies = [
|
| 2320 |
2320 |
|
"makeover-geometry",
|
| 2321 |
2321 |
|
"makeover-layout",
|
| 2323 |
2323 |
|
|
| 2324 |
2324 |
|
[[package]]
|
| 2325 |
2325 |
|
name = "makeover-tui"
|
| 2326 |
|
- |
version = "0.21.0"
|
|
2326 |
+ |
version = "0.22.0"
|
| 2327 |
2327 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2328 |
|
- |
checksum = "3f4bb2e3873442d9f429bcc5083bc7a8217ef0f496b2da6d10e80206e889f5e4"
|
|
2328 |
+ |
checksum = "027e2be8f603b034a809ac2a7be7dc055ac7d3a864a3fa6f1a4418b8d976ad4f"
|
| 2329 |
2329 |
|
dependencies = [
|
| 2330 |
2330 |
|
"makeover",
|
| 2331 |
2331 |
|
"makeover-layout",
|
| 2334 |
2334 |
|
|
| 2335 |
2335 |
|
[[package]]
|
| 2336 |
2336 |
|
name = "makeover-webview"
|
| 2337 |
|
- |
version = "0.41.0"
|
|
2337 |
+ |
version = "0.42.0"
|
| 2338 |
2338 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2339 |
|
- |
checksum = "8dce89f8aff6c9b0a91e0f5c601b4321b8f059feee437bc7b570850b5c665e26"
|
|
2339 |
+ |
checksum = "6937a91744ab84f225f36656819a9db4b0a08d5adfb65a7f71f0b03b1281cd0e"
|
| 2340 |
2340 |
|
dependencies = [
|
| 2341 |
2341 |
|
"makeover-geometry",
|
| 2342 |
2342 |
|
"makeover-layout",
|
| 3025 |
3025 |
|
|
| 3026 |
3026 |
|
[[package]]
|
| 3027 |
3027 |
|
name = "quasi"
|
| 3028 |
|
- |
version = "0.5.0"
|
|
3028 |
+ |
version = "0.6.0"
|
| 3029 |
3029 |
|
|
| 3030 |
3030 |
|
[[package]]
|
| 3031 |
3031 |
|
name = "quasi-axum"
|
| 3032 |
|
- |
version = "0.5.0"
|
|
3032 |
+ |
version = "0.6.0"
|
| 3033 |
3033 |
|
dependencies = [
|
| 3034 |
3034 |
|
"axum",
|
| 3035 |
3035 |
|
"http",
|
| 3043 |
3043 |
|
|
| 3044 |
3044 |
|
[[package]]
|
| 3045 |
3045 |
|
name = "quasi-basics"
|
| 3046 |
|
- |
version = "0.5.0"
|
|
3046 |
+ |
version = "0.6.0"
|
| 3047 |
3047 |
|
dependencies = [
|
| 3048 |
3048 |
|
"makeover-layout",
|
| 3049 |
3049 |
|
"quasi-http",
|
| 3053 |
3053 |
|
|
| 3054 |
3054 |
|
[[package]]
|
| 3055 |
3055 |
|
name = "quasi-http"
|
| 3056 |
|
- |
version = "0.5.0"
|
|
3056 |
+ |
version = "0.6.0"
|
| 3057 |
3057 |
|
dependencies = [
|
| 3058 |
3058 |
|
"form_urlencoded",
|
| 3059 |
3059 |
|
"http",
|
| 3062 |
3062 |
|
|
| 3063 |
3063 |
|
[[package]]
|
| 3064 |
3064 |
|
name = "quasi-immediate"
|
| 3065 |
|
- |
version = "0.5.0"
|
|
3065 |
+ |
version = "0.6.0"
|
| 3066 |
3066 |
|
dependencies = [
|
| 3067 |
3067 |
|
"docengine",
|
| 3068 |
3068 |
|
"egui",
|
| 3072 |
3072 |
|
|
| 3073 |
3073 |
|
[[package]]
|
| 3074 |
3074 |
|
name = "quasi-router"
|
| 3075 |
|
- |
version = "0.5.0"
|
|
3075 |
+ |
version = "0.6.0"
|
| 3076 |
3076 |
|
dependencies = [
|
| 3077 |
3077 |
|
"makeover-layout",
|
| 3078 |
3078 |
|
]
|
| 3089 |
3089 |
|
|
| 3090 |
3090 |
|
[[package]]
|
| 3091 |
3091 |
|
name = "quasi-tauri"
|
| 3092 |
|
- |
version = "0.5.0"
|
|
3092 |
+ |
version = "0.6.0"
|
| 3093 |
3093 |
|
dependencies = [
|
| 3094 |
3094 |
|
"http",
|
| 3095 |
3095 |
|
"quasi-http",
|
| 3100 |
3100 |
|
|
| 3101 |
3101 |
|
[[package]]
|
| 3102 |
3102 |
|
name = "quasi-tui"
|
| 3103 |
|
- |
version = "0.5.0"
|
|
3103 |
+ |
version = "0.6.0"
|
| 3104 |
3104 |
|
dependencies = [
|
| 3105 |
3105 |
|
"docengine",
|
| 3106 |
3106 |
|
"makeover",
|
| 3112 |
3112 |
|
|
| 3113 |
3113 |
|
[[package]]
|
| 3114 |
3114 |
|
name = "quasi-webview"
|
| 3115 |
|
- |
version = "0.5.0"
|
|
3115 |
+ |
version = "0.6.0"
|
| 3116 |
3116 |
|
dependencies = [
|
| 3117 |
3117 |
|
"docengine",
|
| 3118 |
3118 |
|
"makeover-layout",
|
| 5524 |
5524 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 5525 |
5525 |
|
checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|
| 5526 |
5526 |
|
|
|
5527 |
+ |
[[patch.unused]]
|
|
5528 |
+ |
name = "synckit-client"
|
|
5529 |
+ |
version = "0.8.0"
|
|
5530 |
+ |
|
|
5531 |
+ |
[[patch.unused]]
|
|
5532 |
+ |
name = "synckit-config"
|
|
5533 |
+ |
version = "0.2.0"
|
|
5534 |
+ |
|
| 5527 |
5535 |
|
[[patch.unused]]
|
| 5528 |
5536 |
|
name = "kberg"
|
| 5529 |
5537 |
|
version = "0.1.0"
|
| 5539 |
5547 |
|
[[patch.unused]]
|
| 5540 |
5548 |
|
name = "tagtree"
|
| 5541 |
5549 |
|
version = "0.4.0"
|
| 5542 |
|
- |
|
| 5543 |
|
- |
[[patch.unused]]
|
| 5544 |
|
- |
name = "synckit-client"
|
| 5545 |
|
- |
version = "0.8.0"
|
| 5546 |
|
- |
|
| 5547 |
|
- |
[[patch.unused]]
|
| 5548 |
|
- |
name = "synckit-config"
|
| 5549 |
|
- |
version = "0.2.0"
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-axum"
|
| 3 |
|
- |
version = "0.5.0"
|
|
3 |
+ |
version = "0.6.0"
|
| 4 |
4 |
|
description = "The axum host adapter for quasi-router: an HTTP request in, a rendered description out"
|
| 5 |
5 |
|
edition.workspace = true
|
| 6 |
6 |
|
rust-version.workspace = true
|
| 13 |
13 |
|
workspace = true
|
| 14 |
14 |
|
|
| 15 |
15 |
|
[dependencies]
|
| 16 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.5.0" }
|
| 17 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.5.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.6.0" }
|
|
17 |
+ |
quasi-http = { path = "../quasi-http", version = "0.6.0" }
|
| 18 |
18 |
|
axum = "0.8.8"
|
| 19 |
19 |
|
http = "1.3.1"
|
| 20 |
20 |
|
tokio = { version = "1.50.0", features = ["rt"] }
|
| 21 |
21 |
|
|
| 22 |
22 |
|
[dev-dependencies]
|
| 23 |
|
- |
quasi-webview = { path = "../quasi-webview", version = "0.5.0" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.6.0" }
|
| 24 |
24 |
|
tokio = { version = "1.50.0", features = ["macros", "rt-multi-thread"] }
|
| 25 |
25 |
|
tower = { version = "0.5.3", features = ["util"] }
|
| 26 |
26 |
|
http-body-util = "0.1.3"
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-basics"
|
| 3 |
|
- |
version = "0.5.0"
|
|
3 |
+ |
version = "0.6.0"
|
| 4 |
4 |
|
description = "The first-party widget set: named assemblies of primitives, shared across our apps"
|
| 5 |
5 |
|
edition.workspace = true
|
| 6 |
6 |
|
rust-version.workspace = true
|
| 13 |
13 |
|
workspace = true
|
| 14 |
14 |
|
|
| 15 |
15 |
|
[dependencies]
|
| 16 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.5.0" }
|
| 17 |
|
- |
makeover-layout = "0.23.0"
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.6.0" }
|
|
17 |
+ |
makeover-layout = "0.24.0"
|
| 18 |
18 |
|
|
| 19 |
19 |
|
[dev-dependencies]
|
| 20 |
20 |
|
# A widget's guarantees are claims about what a renderer draws, so they are
|
| 21 |
21 |
|
# tested against a real one rather than by walking the tree the assembly just
|
| 22 |
22 |
|
# built. The webview is the renderer that recognises names today.
|
| 23 |
|
- |
quasi-webview = { path = "../quasi-webview", version = "0.5.0" }
|
| 24 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.5.0" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.6.0" }
|
|
24 |
+ |
quasi-http = { path = "../quasi-http", version = "0.6.0" }
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-http"
|
| 3 |
|
- |
version = "0.5.0"
|
|
3 |
+ |
version = "0.6.0"
|
| 4 |
4 |
|
description = "The http-shaped seam quasi's webview host adapters share: decoding in, a rendered description out"
|
| 5 |
5 |
|
edition.workspace = true
|
| 6 |
6 |
|
rust-version.workspace = true
|
| 13 |
13 |
|
workspace = true
|
| 14 |
14 |
|
|
| 15 |
15 |
|
[dependencies]
|
| 16 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.5.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.6.0" }
|
| 17 |
17 |
|
http = "1.3.1"
|
| 18 |
18 |
|
form_urlencoded = "1.2.2"
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-immediate"
|
| 3 |
|
- |
version = "0.5.0"
|
|
3 |
+ |
version = "0.6.0"
|
| 4 |
4 |
|
edition = "2024"
|
| 5 |
5 |
|
description = "The immediate-mode renderer for quasi-router: a described screen in, an egui frame out. Immediate mode is the constraint that matters, not the library."
|
| 6 |
6 |
|
license = "MIT"
|
| 10 |
10 |
|
categories = ["gui"]
|
| 11 |
11 |
|
|
| 12 |
12 |
|
[dependencies]
|
| 13 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.5.0" }
|
|
13 |
+ |
quasi-router = { path = "../quasi-router", version = "0.6.0" }
|
| 14 |
14 |
|
# The node drawing, which is the makeover layer's and not this crate's. Every
|
| 15 |
15 |
|
# widget here that is not a container comes from it: a screen walk that painted
|
| 16 |
16 |
|
# its own meter would be the divergence the suite exists to end, one copy per
|
| 17 |
17 |
|
# renderer instead of one copy per app.
|
| 18 |
|
- |
makeover-immediate = "0.21.0"
|
|
18 |
+ |
makeover-immediate = "0.22.0"
|
| 19 |
19 |
|
egui = { version = "0.35", default-features = false }
|
| 20 |
20 |
|
# Markdown to text for `Node::Rich`. The same crate the webview renderer takes,
|
| 21 |
21 |
|
# reading the same source: what differs is that it can emit markup and this
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-router"
|
| 3 |
|
- |
version = "0.5.0"
|
|
3 |
+ |
version = "0.6.0"
|
| 4 |
4 |
|
description = "Host-agnostic router: a request in, a renderer-agnostic description out"
|
| 5 |
5 |
|
edition.workspace = true
|
| 6 |
6 |
|
rust-version.workspace = true
|
| 13 |
13 |
|
workspace = true
|
| 14 |
14 |
|
|
| 15 |
15 |
|
[dependencies]
|
| 16 |
|
- |
makeover-layout = "0.23.0"
|
|
16 |
+ |
makeover-layout = "0.24.0"
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-tauri"
|
| 3 |
|
- |
version = "0.5.0"
|
|
3 |
+ |
version = "0.6.0"
|
| 4 |
4 |
|
description = "The Tauri custom-protocol host adapter for quasi-router: a webview request in, a rendered description out"
|
| 5 |
5 |
|
edition.workspace = true
|
| 6 |
6 |
|
rust-version.workspace = true
|
| 13 |
13 |
|
workspace = true
|
| 14 |
14 |
|
|
| 15 |
15 |
|
[dependencies]
|
| 16 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.5.0" }
|
| 17 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.5.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.6.0" }
|
|
17 |
+ |
quasi-http = { path = "../quasi-http", version = "0.6.0" }
|
| 18 |
18 |
|
http = "1.3.1"
|
| 19 |
19 |
|
# Default features off: this crate uses tauri's protocol registration and its
|
| 20 |
20 |
|
# blocking pool, and nothing else. An app brings the features it wants, and the
|
| 22 |
22 |
|
tauri = { version = "2.11.5", default-features = false }
|
| 23 |
23 |
|
|
| 24 |
24 |
|
[dev-dependencies]
|
| 25 |
|
- |
quasi-webview = { path = "../quasi-webview", version = "0.5.0" }
|
|
25 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.6.0" }
|
| 26 |
26 |
|
# The doctest names a concrete `Runtime`, and `Wry` is behind a default feature
|
| 27 |
27 |
|
# this crate does not otherwise ask for. Only the example needs it: nothing in
|
| 28 |
28 |
|
# the test module builds a window, which is what keeps them runnable with no
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-tui"
|
| 3 |
|
- |
version = "0.5.0"
|
|
3 |
+ |
version = "0.6.0"
|
| 4 |
4 |
|
description = "The terminal renderer for quasi: a screen description in, cells in a ratatui buffer out"
|
| 5 |
5 |
|
edition.workspace = true
|
| 6 |
6 |
|
rust-version.workspace = true
|
| 13 |
13 |
|
workspace = true
|
| 14 |
14 |
|
|
| 15 |
15 |
|
[dependencies]
|
| 16 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.5.0" }
|
| 17 |
|
- |
makeover-layout = "0.23.0"
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.6.0" }
|
|
17 |
+ |
makeover-layout = "0.24.0"
|
| 18 |
18 |
|
# The depth palette, the theme bridge and the table. Everything else this crate
|
| 19 |
19 |
|
# draws is written here first and lifted upstream once a second consumer wants
|
| 20 |
20 |
|
# it, which is the order the suite has always moved in: the constrained consumer
|
| 21 |
21 |
|
# finds the shape, and the shared crate takes it after it is known rather than
|
| 22 |
22 |
|
# before.
|
| 23 |
|
- |
makeover-tui = { version = "0.21.0", features = ["theme"] }
|
|
23 |
+ |
makeover-tui = { version = "0.22.0", features = ["theme"] }
|
| 24 |
24 |
|
ratatui = { version = "0.30", default-features = false }
|
| 25 |
25 |
|
# `Node::Rich` carries markdown source. A terminal has no markup to hand it to,
|
| 26 |
26 |
|
# so it takes the runs: `render_runs` is the words with the marks that were over
|