widgets/layout/cl_shell_slots library

Classes

CLShellPageActions
Pubblica actions sul canale page dello shell (CLShellScope) per tutta la vita del widget: lo shell le ricolloca da sé (header su desktop/tablet, area contestuale sopra la bottom bar su mobile). Incapsula il lifecycle che le pagine altrimenti ricablano a mano — lookup dello scope, publish post-frame, gate sulla rotta corrente, clear in dispose — così una pagina passa da ~15 righe sparse (campo + didChangeDependencies + post-frame + dispose) a un solo widget nel tree:
CLShellScope
Espone il ShellSlotsController alle pagine discendenti. Lookup NON sottoscrivente: la pagina che pubblica non si ricostruisce quando i slot cambiano (è lo shell ad ascoltare il controller).
ShellAction
Slot generici che una pagina pubblica verso lo shell. Lo shell li RICOLLOCA per breakpoint (header desktop/tablet, header compatto + bottom mobile) ma NON conosce il dominio: un sort/filtro è solo una ShellAction con icona e onTap che chiama il controller della pagina. Niente tipi di dominio qui → lo shell resta un layout primitive riusabile in altri progetti.
ShellBack
Intento "indietro": presente solo se la pagina può tornare indietro (es. un dettaglio). null negli elenchi root.
ShellContextControl
Controllo contestuale legato al controller della pagina. Union GENERICA: bottone / ricerca / custom / reveal. Su desktop+tablet la pagina tiene i propri controlli inline; lo shell usa questi solo dove il design li ricolloca (riga alta del bottom mobile).
ShellCrumb
Voce di breadcrumb. onTap == null → voce corrente (non navigabile).
ShellCustom
Escape hatch per controlli non standard (es. stepper mesi di un calendario). Il builder DEVE catturare i controller per riferimento, NON via context.read (verrebbe costruito sotto lo shell, antenato sbagliato).
ShellRevealControl
Controllo che, su mobile, NON apre un overlay esterno ma RIVELA il proprio contenuto inline nell'area contestuale (le righe di controlli collassano e al loro posto compare panelBuilder). Toggle: ritap chiude. Lo shell tiene lo stato di apertura (per id); il close passato chiude il pannello.
ShellSearch
Campo ricerca generico. Il controller è POSSEDUTO dalla pagina e passato per riferimento.
ShellSlots
Insieme degli slot pubblicati da una pagina.
ShellSlotsController
Stato dei slot, su DUE canali indipendenti che lo shell unisce: