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: