Nutrient Toolbar Scope
Receiver scope for NutrientMainToolbar's content, carrying the modifiers a piece of the toolbar uses to say how it wants to be sized and placed — the same two RowScope has, weight and align, and for the same reason: per-child layout control belongs on the child, not in the parent's parameter list. Everything else is a standard modifier: Modifier.fillMaxWidth() on a child grows a wrapping toolbar to the width it was offered, Modifier.width(…) fixes a child.
These are parent data modifiers. The toolbar's measure pass reads them off its direct children, so they only work on something composed directly in the content slot: wrap a piece in your own Box and the toolbar sees the Box instead, exactly as RowScope.weight does.
The toolbar's own width falls out of them, which is why it needs no width parameter: a caller's width modifier on the toolbar always wins (Modifier.fillMaxWidth(), Modifier.width(240.dp), or the tight constraints the SDK gives the bar it mounts itself), and otherwise the toolbar is as wide as its content.
Functions
Aligns this child vertically within the bar's height. Defaults to centered.
What NutrientMainToolbar's slots hold by default, as one piece of content: the coordinator's title, then its items taking the width that is left (NutrientToolbarScope.weight) — so trailing items pin to the far edge of a full-bleed bar while a floating one stays as wide as its icons.
Gives this child a share of the width left over after the unweighted children. Unlike RowScope.weight, it does not make the toolbar fill the width it was offered: a weighted child stretches when the caller fixed the toolbar's width (so trailing items stay pinned to the far edge of a full-bleed bar) and shrinks to its content when the toolbar is wrapping (so a floating toolbar is exactly as wide as its icons). The item row's default.