0.28.0: a row group says what it does when it runs out of room
Task 111910aa, ruling wiki layout-room-and-fallback (Max 2026-08-18).
Region::Band names goingson's .page-header in its own doc, and nothing named
that a Band and a TabGroup's strip occupy one row. goingson asserted that
adjacency in a stylesheet -- position: absolute, top 0, right 0 -- which is the
one construction the description layer cannot audit. Out of flow the toolbar
contributed no width to the row it shared, so nothing could collide with it and
nothing prevented the collision: at 913 CSS pixels the help control clipped off
the edge, at 700 the search field sat on the "Contacts" pill, at 560 the new
contact button left the viewport and could not be reached at all.
Slot::run is the missing sentence. Run carries the required Fallback and the
members that share the row, ranked. across(fallback) takes the fallback as an
argument and there is no form that omits one, so rule 2 is held by the
signature; beside() asserts the row was declared, Row::part's precedent, so a
member cannot be added to a row that never said what it does when it is tight.
No sizes. The description says what the row holds and each renderer derives the
minimum in its own units. Room is measured per render and never authored.
A tab group's strip stays generated from its children's labels rather than
becoming a node, so the case is described without a new Region member. What
shares the strip's row is Run::members. Describing the strip in its own right
is makeover-layout 978d24f8 and is not needed for this.
Priority per member was already here: Ranked has carried one since 0.27.4, so
Shed and Menu read what the vocabulary already said.
The run is walked with the body in find, find_mut and feeds_into. A region that
moved out of the pane and stopped being addressable would stop updating, which
is a worse bug than the overlap the move fixes. Boxed for fed_by's reason:
Node::Region holds a Slot by value.
Breaking, so every consumer moves in this pass: MNW server, goingson and
audiofiles take quasi 0.28, and the whole tree takes makeover-layout 0.29.
14 files changed,
+327 insertions,
-69 deletions
| 2606 |
2606 |
|
[[package]]
|
| 2607 |
2607 |
|
name = "makeover-immediate"
|
| 2608 |
2608 |
|
version = "0.28.0"
|
| 2609 |
|
- |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2610 |
|
- |
checksum = "53eb783cd5fda606d921e021af39d4c4604e6a7bd3fe9747c3739fe5ff7224b1"
|
| 2611 |
2609 |
|
dependencies = [
|
| 2612 |
2610 |
|
"egui",
|
| 2613 |
2611 |
|
"egui_extras",
|
| 2616 |
2614 |
|
|
| 2617 |
2615 |
|
[[package]]
|
| 2618 |
2616 |
|
name = "makeover-layout"
|
| 2619 |
|
- |
version = "0.28.2"
|
| 2620 |
|
- |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2621 |
|
- |
checksum = "23a39310f0553033a02c056725a24295519e4d28ecb5597796fbfc7b2aa81dfa"
|
|
2617 |
+ |
version = "0.29.0"
|
| 2622 |
2618 |
|
|
| 2623 |
2619 |
|
[[package]]
|
| 2624 |
2620 |
|
name = "makeover-touch"
|
| 2625 |
2621 |
|
version = "0.20.0"
|
| 2626 |
|
- |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2627 |
|
- |
checksum = "0f2f1181373d7a2762512060ebd0804910c456bc99e7d8263a7967dbb63c10a3"
|
| 2628 |
2622 |
|
dependencies = [
|
| 2629 |
2623 |
|
"makeover-geometry",
|
| 2630 |
2624 |
|
"makeover-layout",
|
| 2633 |
2627 |
|
[[package]]
|
| 2634 |
2628 |
|
name = "makeover-tui"
|
| 2635 |
2629 |
|
version = "0.28.0"
|
| 2636 |
|
- |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2637 |
|
- |
checksum = "6d0d5477580f4514a63a66c0955ea32323798fedcf78433c11769bee7ef65268"
|
| 2638 |
2630 |
|
dependencies = [
|
| 2639 |
2631 |
|
"makeover",
|
| 2640 |
2632 |
|
"makeover-layout",
|
| 2644 |
2636 |
|
[[package]]
|
| 2645 |
2637 |
|
name = "makeover-webview"
|
| 2646 |
2638 |
|
version = "0.48.0"
|
| 2647 |
|
- |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2648 |
|
- |
checksum = "62ed5f0d1d82e482e7fc7a933e9c84647a3f3ead0c14c4304a537c1820c3aaf2"
|
| 2649 |
2639 |
|
dependencies = [
|
| 2650 |
2640 |
|
"makeover-geometry",
|
| 2651 |
2641 |
|
"makeover-layout",
|
| 3414 |
3404 |
|
|
| 3415 |
3405 |
|
[[package]]
|
| 3416 |
3406 |
|
name = "quasi"
|
| 3417 |
|
- |
version = "0.27.0"
|
|
3407 |
+ |
version = "0.28.0"
|
| 3418 |
3408 |
|
|
| 3419 |
3409 |
|
[[package]]
|
| 3420 |
3410 |
|
name = "quasi-axum"
|
| 3421 |
|
- |
version = "0.27.0"
|
|
3411 |
+ |
version = "0.28.0"
|
| 3422 |
3412 |
|
dependencies = [
|
| 3423 |
3413 |
|
"axum",
|
| 3424 |
3414 |
|
"http",
|
| 3432 |
3422 |
|
|
| 3433 |
3423 |
|
[[package]]
|
| 3434 |
3424 |
|
name = "quasi-basics"
|
| 3435 |
|
- |
version = "0.27.0"
|
|
3425 |
+ |
version = "0.28.0"
|
| 3436 |
3426 |
|
dependencies = [
|
| 3437 |
3427 |
|
"makeover-layout",
|
| 3438 |
3428 |
|
"quasi-http",
|
| 3442 |
3432 |
|
|
| 3443 |
3433 |
|
[[package]]
|
| 3444 |
3434 |
|
name = "quasi-bench"
|
| 3445 |
|
- |
version = "0.27.0"
|
|
3435 |
+ |
version = "0.28.0"
|
| 3446 |
3436 |
|
dependencies = [
|
| 3447 |
3437 |
|
"dhat",
|
| 3448 |
3438 |
|
"makeover",
|
| 3457 |
3447 |
|
|
| 3458 |
3448 |
|
[[package]]
|
| 3459 |
3449 |
|
name = "quasi-http"
|
| 3460 |
|
- |
version = "0.27.0"
|
|
3450 |
+ |
version = "0.28.0"
|
| 3461 |
3451 |
|
dependencies = [
|
| 3462 |
3452 |
|
"form_urlencoded",
|
| 3463 |
3453 |
|
"http",
|
| 3466 |
3456 |
|
|
| 3467 |
3457 |
|
[[package]]
|
| 3468 |
3458 |
|
name = "quasi-immediate"
|
| 3469 |
|
- |
version = "0.27.0"
|
|
3459 |
+ |
version = "0.28.0"
|
| 3470 |
3460 |
|
dependencies = [
|
| 3471 |
3461 |
|
"docengine",
|
| 3472 |
3462 |
|
"egui",
|
| 3476 |
3466 |
|
|
| 3477 |
3467 |
|
[[package]]
|
| 3478 |
3468 |
|
name = "quasi-notifs"
|
| 3479 |
|
- |
version = "0.27.0"
|
|
3469 |
+ |
version = "0.28.0"
|
| 3480 |
3470 |
|
dependencies = [
|
| 3481 |
3471 |
|
"quasi-router",
|
| 3482 |
3472 |
|
"synckit-config",
|
| 3484 |
3474 |
|
|
| 3485 |
3475 |
|
[[package]]
|
| 3486 |
3476 |
|
name = "quasi-router"
|
| 3487 |
|
- |
version = "0.27.0"
|
|
3477 |
+ |
version = "0.28.0"
|
| 3488 |
3478 |
|
dependencies = [
|
| 3489 |
3479 |
|
"makeover-layout",
|
| 3490 |
3480 |
|
]
|
| 3501 |
3491 |
|
|
| 3502 |
3492 |
|
[[package]]
|
| 3503 |
3493 |
|
name = "quasi-tauri"
|
| 3504 |
|
- |
version = "0.27.0"
|
|
3494 |
+ |
version = "0.28.0"
|
| 3505 |
3495 |
|
dependencies = [
|
| 3506 |
3496 |
|
"http",
|
| 3507 |
3497 |
|
"quasi-http",
|
| 3514 |
3504 |
|
|
| 3515 |
3505 |
|
[[package]]
|
| 3516 |
3506 |
|
name = "quasi-tui"
|
| 3517 |
|
- |
version = "0.27.0"
|
|
3507 |
+ |
version = "0.28.0"
|
| 3518 |
3508 |
|
dependencies = [
|
| 3519 |
3509 |
|
"docengine",
|
| 3520 |
3510 |
|
"makeover",
|
| 3526 |
3516 |
|
|
| 3527 |
3517 |
|
[[package]]
|
| 3528 |
3518 |
|
name = "quasi-webview"
|
| 3529 |
|
- |
version = "0.27.0"
|
|
3519 |
+ |
version = "0.28.0"
|
| 3530 |
3520 |
|
dependencies = [
|
| 3531 |
3521 |
|
"docengine",
|
| 3532 |
3522 |
|
"makeover-layout",
|
| 6197 |
6187 |
|
"winnow 1.0.4",
|
| 6198 |
6188 |
|
]
|
| 6199 |
6189 |
|
|
|
6190 |
+ |
[[patch.unused]]
|
|
6191 |
+ |
name = "quasi-type"
|
|
6192 |
+ |
version = "0.1.0"
|
|
6193 |
+ |
|
| 6200 |
6194 |
|
[[patch.unused]]
|
| 6201 |
6195 |
|
name = "kberg"
|
| 6202 |
6196 |
|
version = "0.1.0"
|
| 6216 |
6210 |
|
[[patch.unused]]
|
| 6217 |
6211 |
|
name = "synckit-client"
|
| 6218 |
6212 |
|
version = "0.8.0"
|
| 6219 |
|
- |
|
| 6220 |
|
- |
[[patch.unused]]
|
| 6221 |
|
- |
name = "quasi-type"
|
| 6222 |
|
- |
version = "0.1.0"
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-axum"
|
| 3 |
|
- |
version = "0.27.0"
|
|
3 |
+ |
version = "0.28.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.27.0" }
|
| 17 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.27.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.28.0" }
|
|
17 |
+ |
quasi-http = { path = "../quasi-http", version = "0.28.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.27.0" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.28.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.27.0"
|
|
3 |
+ |
version = "0.28.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.27.0" }
|
| 17 |
|
- |
makeover-layout = "0.28.2"
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.28.0" }
|
|
17 |
+ |
makeover-layout = "0.29.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.27.0" }
|
| 24 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.27.0" }
|
|
23 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.28.0" }
|
|
24 |
+ |
quasi-http = { path = "../quasi-http", version = "0.28.0" }
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-bench"
|
| 3 |
|
- |
version = "0.27.0"
|
|
3 |
+ |
version = "0.28.0"
|
| 4 |
4 |
|
description = "What a described screen costs to render, in time and in allocations"
|
| 5 |
5 |
|
edition.workspace = true
|
| 6 |
6 |
|
rust-version.workspace = true
|
| 22 |
22 |
|
count = ["dep:dhat"]
|
| 23 |
23 |
|
|
| 24 |
24 |
|
[dependencies]
|
| 25 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.27.0" }
|
| 26 |
|
- |
quasi-webview = { path = "../quasi-webview", version = "0.27.0" }
|
| 27 |
|
- |
quasi-tui = { path = "../quasi-tui", version = "0.27.0" }
|
|
25 |
+ |
quasi-router = { path = "../quasi-router", version = "0.28.0" }
|
|
26 |
+ |
quasi-webview = { path = "../quasi-webview", version = "0.28.0" }
|
|
27 |
+ |
quasi-tui = { path = "../quasi-tui", version = "0.28.0" }
|
| 28 |
28 |
|
# `Serves` is the trait carrying `screen` and `fragment`, which is what the
|
| 29 |
29 |
|
# webview is measured through. Taken directly rather than through quasi-webview
|
| 30 |
30 |
|
# because a bench calling a trait method should name the trait it calls.
|
| 31 |
|
- |
quasi-http = { path = "../quasi-http", version = "0.27.0" }
|
| 32 |
|
- |
makeover-layout = "0.28.2"
|
|
31 |
+ |
quasi-http = { path = "../quasi-http", version = "0.28.0" }
|
|
32 |
+ |
makeover-layout = "0.29.0"
|
| 33 |
33 |
|
makeover-tui = { version = "0.28.0", features = ["theme"] }
|
| 34 |
34 |
|
# Only to load a bundled theme file. `makeover_tui::Theme` is `#[non_exhaustive]`,
|
| 35 |
35 |
|
# so `Theme::from_theme` is the one way to get one, the same reason quasi-tui's
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-http"
|
| 3 |
|
- |
version = "0.27.0"
|
|
3 |
+ |
version = "0.28.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.27.0" }
|
|
16 |
+ |
quasi-router = { path = "../quasi-router", version = "0.28.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.27.0"
|
|
3 |
+ |
version = "0.28.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"
|
| 12 |
12 |
|
categories = ["gui"]
|
| 13 |
13 |
|
|
| 14 |
14 |
|
[dependencies]
|
| 15 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.27.0" }
|
|
15 |
+ |
quasi-router = { path = "../quasi-router", version = "0.28.0" }
|
| 16 |
16 |
|
# The node drawing, which is the makeover layer's and not this crate's. Every
|
| 17 |
17 |
|
# widget here that is not a container comes from it: a screen walk that painted
|
| 18 |
18 |
|
# its own meter would be the divergence the suite exists to end, one copy per
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-notifs"
|
| 3 |
|
- |
version = "0.27.0"
|
|
3 |
+ |
version = "0.28.0"
|
| 4 |
4 |
|
description = "Declared notification kinds and the registry that holds them: what a notification says and what it is for, apart from how it reaches a person"
|
| 5 |
5 |
|
edition.workspace = true
|
| 6 |
6 |
|
rust-version.workspace = true
|
| 24 |
24 |
|
describe = ["dep:quasi-router"]
|
| 25 |
25 |
|
|
| 26 |
26 |
|
[dependencies]
|
| 27 |
|
- |
quasi-router = { path = "../quasi-router", version = "0.27.0", optional = true }
|
|
27 |
+ |
quasi-router = { path = "../quasi-router", version = "0.28.0", optional = true }
|
| 28 |
28 |
|
synckit-config = { git = "https://makenot.work/git/max/synckit.git", version = "0.2", optional = true }
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "quasi-router"
|
| 3 |
|
- |
version = "0.27.0"
|
|
3 |
+ |
version = "0.28.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.28.2"
|
|
16 |
+ |
makeover-layout = "0.29.0"
|