0.8.0: label a track by its unit rather than by assumption
quasi-webview's ruler formatted every tick as a wall clock. Held against a
day-granularity track it printed 00:00 over a month while placing the spans
exactly right, because Track::fraction is unit-agnostic and nothing else in
the path noticed.
makeover-layout 0.26.1's Track::unit closes it, and the match here is
written so a unit added later falls through to no label rather than
silently taking the clock -- which is how this shipped in the first place.
Days label from one, not zero. A strip's offsets are zero-based like every
axis here and nobody calls the first of the month the zeroth.
Two tests, both halves: a month strip labels days and never 00:00, and a day
view still labels 09:00. Fixing the strip must not cost the screen the
vocabulary was added for.
Takes the makeover 0.26.1 cascade: layout 0.26.1, webview 0.44.0, tui
0.24.0, immediate 0.24.0.
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
12 files changed,
+122 insertions,
-62 deletions
| 2296 |
2296 |
|
|
| 2297 |
2297 |
|
[[package]]
|
| 2298 |
2298 |
|
name = "makeover-immediate"
|
| 2299 |
|
- |
version = "0.23.0"
|
|
2299 |
+ |
version = "0.24.0"
|
| 2300 |
2300 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2301 |
|
- |
checksum = "cf5a321862c506ee387d2cff5b8ccf29e8f4f26e736e889eeb3c9c8d8db4c3d4"
|
|
2301 |
+ |
checksum = "03abc4ce154f0ac923c8712215b8611fd9442471edea8abf945f7b64d2f07d49"
|
| 2302 |
2302 |
|
dependencies = [
|
| 2303 |
2303 |
|
"egui",
|
| 2304 |
2304 |
|
"egui_extras",
|
| 2307 |
2307 |
|
|
| 2308 |
2308 |
|
[[package]]
|
| 2309 |
2309 |
|
name = "makeover-layout"
|
| 2310 |
|
- |
version = "0.25.0"
|
|
2310 |
+ |
version = "0.26.1"
|
| 2311 |
2311 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2312 |
|
- |
checksum = "f7480bdecd1ccca99dbfd744327f5598d67dd9be3157c48928466b5e20d4aed3"
|
|
2312 |
+ |
checksum = "58967567e03caca4b9b991734184d7952ac54e2075882cff42312f04f5214bab"
|
| 2313 |
2313 |
|
|
| 2314 |
2314 |
|
[[package]]
|
| 2315 |
2315 |
|
name = "makeover-touch"
|
| 2316 |
|
- |
version = "0.17.0"
|
|
2316 |
+ |
version = "0.18.0"
|
| 2317 |
2317 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2318 |
|
- |
checksum = "bd1cac03a0e0b912a16f07044a79099c5bf8be3741403cd2b980d0aa4e57adac"
|
|
2318 |
+ |
checksum = "bf59a17d309e376a9c501235f3b6f6f8f3f94922ef46b4e9a780fc41149fe0be"
|
| 2319 |
2319 |
|
dependencies = [
|
| 2320 |
2320 |
|
"makeover-geometry",
|
| 2321 |
2321 |
|
"makeover-layout",
|
| 2323 |
2323 |
|
|
| 2324 |
2324 |
|
[[package]]
|
| 2325 |
2325 |
|
name = "makeover-tui"
|
| 2326 |
|
- |
version = "0.23.0"
|
|
2326 |
+ |
version = "0.24.0"
|
| 2327 |
2327 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2328 |
|
- |
checksum = "d2c1f0eb73f3d89511a1a731b0f7e6705c39c7e06a7c944fcde1cbc7aebe5604"
|
|
2328 |
+ |
checksum = "0381a77d593cddee4a3420e383d9a90a9a98c91723532cafabbfc2c18766a84a"
|
| 2329 |
2329 |
|
dependencies = [
|
| 2330 |
2330 |
|
"makeover",
|
| 2331 |
2331 |
|
"makeover-layout",
|
| 2334 |
2334 |
|
|
| 2335 |
2335 |
|
[[package]]
|
| 2336 |
2336 |
|
name = "makeover-webview"
|
| 2337 |
|
- |
version = "0.43.0"
|
|
2337 |
+ |
version = "0.44.0"
|
| 2338 |
2338 |
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2339 |
|
- |
checksum = "1fc6f622ba5546e4ce0b8393addbb23c905dad5b1888ee7b588f04c696fecca4"
|
|
2339 |
+ |
checksum = "d6aa378fc8c66a495fccb751dbf1e6d4e56e07e16f0384e06606ebaa4ff5263d"
|
| 2340 |
2340 |
|
dependencies = [
|
| 2341 |
2341 |
|
"makeover-geometry",
|
| 2342 |
2342 |
|
"makeover-layout",
|
| 3025 |
3025 |
|
|
| 3026 |
3026 |
|
[[package]]
|
| 3027 |
3027 |
|
name = "quasi"
|
| 3028 |
|
- |
version = "0.7.0"
|
|
3028 |
+ |
version = "0.8.0"
|
| 3029 |
3029 |
|
|
| 3030 |
3030 |
|
[[package]]
|
| 3031 |
3031 |
|
name = "quasi-axum"
|
| 3032 |
|
- |
version = "0.7.0"
|
|
3032 |
+ |
version = "0.8.0"
|
| 3033 |
3033 |
|
dependencies = [
|
| 3034 |
3034 |
|
"axum",
|
| 3035 |
3035 |
|
"http",
|
| 3043 |
3043 |
|
|
| 3044 |
3044 |
|
[[package]]
|
| 3045 |
3045 |
|
name = "quasi-basics"
|
| 3046 |
|
- |
version = "0.7.0"
|
|
3046 |
+ |
version = "0.8.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.7.0"
|
|
3056 |
+ |
version = "0.8.0"
|
| 3057 |
3057 |
|
dependencies = [
|
| 3058 |
3058 |
|
"form_urlencoded",
|
| 3059 |
3059 |
|
"http",
|
| 3062 |
3062 |
|
|
| 3063 |
3063 |
|
[[package]]
|
| 3064 |
3064 |
|
name = "quasi-immediate"
|
| 3065 |
|
- |
version = "0.7.0"
|
|
3065 |
+ |
version = "0.8.0"
|
| 3066 |
3066 |
|
dependencies = [
|
| 3067 |
3067 |
|
"docengine",
|
| 3068 |
3068 |
|
"egui",
|
| 3072 |
3072 |
|
|
| 3073 |
3073 |
|
[[package]]
|
| 3074 |
3074 |
|
name = "quasi-router"
|
| 3075 |
|
- |
version = "0.7.0"
|
|
3075 |
+ |
version = "0.8.0"
|
| 3076 |
3076 |
|
dependencies = [
|
| 3077 |
3077 |
|
"makeover-layout",
|
| 3078 |
3078 |
|
]
|
| 3089 |
3089 |
|
|
| 3090 |
3090 |
|
[[package]]
|
| 3091 |
3091 |
|
name = "quasi-tauri"
|
| 3092 |
|
- |
version = "0.7.0"
|
|
3092 |
+ |
version = "0.8.0"
|
| 3093 |
3093 |
|
dependencies = [
|
| 3094 |
3094 |
|
"http",
|
| 3095 |
3095 |
|
"quasi-http",
|
| 3100 |
3100 |
|
|
| 3101 |
3101 |
|
[[package]]
|
| 3102 |
3102 |
|
name = "quasi-tui"
|
| 3103 |
|
- |
version = "0.7.0"
|
|
3103 |
+ |
version = "0.8.0"
|
| 3104 |
3104 |
|
dependencies = [
|
| 3105 |
3105 |
|
"docengine",
|
| 3106 |
3106 |
|
"makeover",
|
| 3112 |
3112 |
|
|
| 3113 |
3113 |
|
[[package]]
|
| 3114 |
3114 |
|
name = "quasi-webview"
|
| 3115 |
|
- |
version = "0.7.0"
|
|
3115 |
+ |
version = "0.8.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 |
|
- |
|
| 5535 |
5527 |
|
[[patch.unused]]
|
| 5536 |
5528 |
|
name = "kberg"
|
| 5537 |
5529 |
|
version = "0.1.0"
|
| 5547 |
5539 |
|
[[patch.unused]]
|
| 5548 |
5540 |
|
name = "tagtree"
|
| 5549 |
5541 |
|
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.7.0"
|
|
3 |
+ |
version = "0.8.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.7.0" }
|
| 17 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.7.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.8.0" }
|
|
17 |
+ |
quasi-http = { path = "../quasi-http", version = "0.8.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.7.0" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.8.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.7.0"
|
|
3 |
+ |
version = "0.8.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.7.0" }
|
| 17 |
|
- |
makeover-layout = "0.25.0"
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.8.0" }
|
|
17 |
+ |
makeover-layout = "0.26.1"
|
| 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.7.0" }
|
| 24 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.7.0" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.8.0" }
|
|
24 |
+ |
quasi-http = { path = "../quasi-http", version = "0.8.0" }
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-http"
|
| 3 |
|
- |
version = "0.7.0"
|
|
3 |
+ |
version = "0.8.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.7.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.8.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.7.0"
|
|
3 |
+ |
version = "0.8.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.7.0" }
|
|
13 |
+ |
quasi-router = { path = "../quasi-router", version = "0.8.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.23.0"
|
|
18 |
+ |
makeover-immediate = "0.24.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.7.0"
|
|
3 |
+ |
version = "0.8.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.25.0"
|
|
16 |
+ |
makeover-layout = "0.26.1"
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-tauri"
|
| 3 |
|
- |
version = "0.7.0"
|
|
3 |
+ |
version = "0.8.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.7.0" }
|
| 17 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.7.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.8.0" }
|
|
17 |
+ |
quasi-http = { path = "../quasi-http", version = "0.8.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.7.0" }
|
|
25 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.8.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.7.0"
|
|
3 |
+ |
version = "0.8.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.7.0" }
|
| 17 |
|
- |
makeover-layout = "0.25.0"
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.8.0" }
|
|
17 |
+ |
makeover-layout = "0.26.1"
|
| 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.23.0", features = ["theme"] }
|
|
23 |
+ |
makeover-tui = { version = "0.24.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
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-webview"
|
| 3 |
|
- |
version = "0.7.0"
|
|
3 |
+ |
version = "0.8.0"
|
| 4 |
4 |
|
description = "The webview renderer for quasi: a screen description in, an htmx document 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.7.0" }
|
| 17 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.7.0" }
|
| 18 |
|
- |
makeover-layout = "0.25.0"
|
| 19 |
|
- |
makeover-webview = "0.43.0"
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.8.0" }
|
|
17 |
+ |
quasi-http = { path = "../quasi-http", version = "0.8.0" }
|
|
18 |
+ |
makeover-layout = "0.26.1"
|
|
19 |
+ |
makeover-webview = "0.44.0"
|
| 20 |
20 |
|
# `Node::Rich` carries markdown source and this is what turns it into markup.
|
| 21 |
21 |
|
# Sanitising comes with it, which is why the node can carry what a user typed.
|
| 22 |
22 |
|
#
|