genai_components library
CL Components — UI component library for Generazione AI projects.
Classes
- AiAssistantConfig
- Configuration for the AI Assistant.
- AiConversationStore
-
Persistenza conversazioni dell'assistente. Scoped per
scope(es. tenantId) → conversazioni di tenant diversi non si mischiano (isolamento). Pluggable: l'app fornisce un'implementazione via AiAssistantConfig.conversationStore. - AiConversationSummary
- Riassunto di una conversazione salvata (per la lista history).
- AiSuggestionChip
- A suggestion chip shown in the chat overlay's empty state.
- AiTool
- A developer-facing tool that can be registered with the AI assistant. Combines a ToolDefinition with an executable handler function.
- AlertManager
-
AssignEntitiesModal<
T> -
A generic modal for selecting one or many entities of type
Tfrom a searchable list. - BaseFilterMenuItem
-
BaseGraphController<
E> - Base controller class that all specific graph controllers should extend
- BaseModel
-
BaseTableColumn<
TType extends Object> - ChewieVideoPlayerWidget
- ChewieVideoPlayerWidgetState
- CLActionChip
-
Compact inline action chip — used for in-row/in-card actions like
"Gestisci", "Badge", "Modifica" etc. Smaller than
CLButton.compact(28px high vs 32) with tonal-tint chrome (color × 0.10bg + colored label/icon). Replaces ad-hocContainer + InkWell + Paddingpatterns scattered in pages. - CLActionText
- CLAdaptiveShell
- Shell adattivo a slot. Sceglie sidebar/drawer/bottom-bar per larghezza. Trasparente alle logiche app: riceve dati + slot, non conosce router/AI/auth.
- CLAlert
- Skillera Refined Editorial alert.
- CLAttachedMedia
- Modello leggero per rappresentare un media allegato. Può essere esteso o mappato dal modello specifico del progetto.
- CLAvatarWidget
- CLAvatarWidget — avatar circolare con stack di media o iniziali su gradient.
-
CLBarChart<
T> - Bar chart generico basato su fl_chart.
- CLBottomBar
- Bottom bar mobile. Due modalità:
- CLBottomBarItem
-
Voce fissa custom della bottom bar (es. menu, AI, profilo, ricerca) — non
legata alle destinations nav. Usata via CLBottomBar.items / shell
bottomBarItems. selectedKey (opzionale) evidenzia la voce quando coincide con la selezione corrente dello shell (es. la voce Dashboard). - CLButton
- CLCalendar
-
Calendario in-theme, ora su
ShadCalendarreale (dependency shadcn_ui). Header con nav mese, riga giorni settimana, griglia; selected = primary CL · today = stile Shad · fuori-mese attenuato. Settimana lun-first, IT. - CLCalendarDayData
- Modello per i dati di un giorno nel calendario
- CLCalendarLegendItem
- Item della legenda
- CLCard
- Generic elevated card with optional clickable hover/press feedback.
- CLCheckbox
- CLCheckbox — checkbox stilizzata come nella PagedDataTable.
- CLClipboardWidget
- CLClipboardWidget — testo + bottone copia con feedback visivo.
- CLCodeText
- Widget per visualizzare un codice con prefisso grigio (es: "# - ABC123")
- CLCollapsible
-
Sezione espandibile/collassabile con animazione. Alternativa più semplice
a
CustomExpansionTilecon stile coerente al tema. - CLCommandItem
- CLCommandPalette
- Command palette / global search stile shadcn — generica e decoupled.
- CLCompactActionScope
-
Scope che chiede ai bottoni discendenti (
CLButton,CLOutlineButton) di collassare a tondo icon-only quando iconOnly è true. - CLConfirmationDialog
- A simple yes/no confirmation dialog.
- CLConfirmRejectButtons
- CLContainer
- CLContextMenu
- Region che apre un CLPopupMenu al tasto destro (desktop) o long-press (mobile) sopra child, alla posizione del cursore. Equivalente essenziale di ShadContextMenuRegion, costruito sui primitivi CL (nessun overlay proprio: il dismiss tap-fuori/Esc è gestito dal barrier di CLPopupMenu).
- CLDatePicker
-
Date picker in-theme (shadcn
ShadDatePicker): trigger a bottone (icona calendario + data/placeholder) che apre un popover ancorato con il calendario. Variantisingleerange. Nessun dialog Material. - CLDateRangeTableFilter
- Filtro range di date — due CLTextField.date affiancati (Da / A)
- CLDateTableFilter
- Filtro data singola — CLDatePicker (trigger + popover calendario in-theme).
- CLDateTimeTableFilter
- Filtro data e ora — CLTextField.dateTime (gg/mm/aaaa hh:mm)
- CLDestination
-
Destinazione di navigazione neutra: nessuna dipendenza da router/Modular.
L'app converte il proprio albero route in
List<CLDestination>(adapter). -
CLDialog<
T> - Base class for CL dialogs with title, optional subtitle, and confirm/cancel actions.
- CLDivider
- CLDivider — divider con stile standard del design system.
-
CLDropdown<
T extends Object> - CLDropdownRegistry
-
Singleton registry mapping CLDropdown hint labels → their DropdownState.
Used by the AI assistant's
select_dropdown_itemtool to bypass the UI and select items programmatically without needing to tap/open overlays. -
CLDropdownTableFilterAsync<
TValue extends Object> - Esempio di utilizzo:
-
CLDropdownTableFilterSync<
TValue extends Object> - Filtro dropdown che usa CLDropdown con supporto per ricerca sincrona
- CLEmptyState
- Stato vuoto standard — Tier 1.
- CLEntityTabs
- Registro di tab di dettaglio entità, domain-tagged e permission-gated, costruito SOPRA CLTabView.
- ClFilePicker
- CLFocusRingPainter
-
Focus ring stile shadcn: anello arrotondato disegnato VERSO L'ESTERNO del
controllo (gap + spessore), senza occupare spazio nel layout → nessun salto
del contenuto quando appare/scompare. Usato dai bottoni CL come
foregroundPainter, mostrato solo su focus da tastiera (traversal). - CLGhostButton
- CLGraphEdge
- CLGraphNode
- Nodo del grafo, indipendente dal motore di rendering.
- CLGraphNodeAction
-
Azione/indicatore su una card del grafo, resa come slot in alto a destra.
Di norma un'icona tappabile (es. frecce ordine ▲▼); con label mostra invece
un testo (es. numero d'ordine corrente) e con interactive
falsediventa puro display (nessun hotspot, non tappabile). - CLIconButton
- Bottone pieno solo-icona, quadrato. Stesse micro-interazioni di CLButton (press scale/offset, hover blend, haptic, spinner). Pensato per azioni compatte in header/toolbar — es. il pulsante AI in header — dove serve un'icona prominente senza label. Supporta ombra e bordo opzionali.
- CLInfoBanner
- CLInfoBanner — banner esplicativo contestuale con icona, testo e azione opzionale.
-
CLInputGroup<
T> - "Input group" / "segmented input" — a single visual chrome containing a leading dropdown and a trailing text field, sharing border, radius, height and focus state. Common pattern (Bootstrap input-group, Tailwind "addon", etc.) used for typed inputs that require a category selector.
-
CLInputGroupItem<
T> - Group item descriptor for CLInputGroup.
- CLLabelValue
- Riga label → value per le pagine di dettaglio.
- CLLifecycleProgress
- CLLifecycleProgress — barra orizzontale che mostra gli step di un flusso con stato.
- CLLinkButton
-
Bottone "link" (variante shadcn): solo testo colorato dal tono, underline
su hover, nessun background né bordo. Nucleo su
ShadButton.raw(variantelink); toni dal motoreCLToneStyle(variantelink). - CLMedia
- CLMediaAttachWidget
- Widget riutilizzabile per gestire i media allegati a una risorsa.
- CLMediaViewer
- CLMediaViewerItem
- CLMetricCard
- Hero-style KPI card for dashboards.
- CLMonthCalendar
- Widget calendario mensile riutilizzabile
- CLMonthTableFilter
- Filtro mese — CLTextField.month (mm/aaaa)
-
Lista navigazione condivisa da sidebar (desktop) e drawer (tablet/mobile).
Scrollabile, rende l'albero
CLDestinationcon gruppi/sezioni espandibili. -
Rail di navigazione icon-only (tier tablet). Una icona per voce top-level:
le foglie navigano (
onSelect), i gruppi/sezioni aprono il drawer espanso (onOpenGroup).header/footersono slot opzionali (es. tenant in alto, help+utente in basso). In bolla (frosted) bg/bordo li dà la card esterna. - CLNodeGraph
-
Canvas a nodi data-driven: render nodi+archi da
nodes/edges, tap→select, drag-porta (dx→sx) per creare prereq, drag-corpo per spostare il nodo (effimero), hover arco→cestino per eliminare, "Ordina" per risnappare al layout. Nessun motore imperativo: si ridisegna dalle props. - CLOutlineButton
- CLPageContainer
- Wrapper che centra il contenuto con un maxWidth e padding laterale fisso. Usa questo come root delle pagine shell per evitare che il contenuto si allarghi troppo su monitor ultrawide.
- CLPagination
- CLPagination — paginazione refined editorial Skillera.
- CLPdfViewer
- CLPill
- CLPill — chip/pill atomico per stati, conteggi, tag.
- CLPopupMenu
- Popup menu riusabile con lo stesso stile delle tableActions della PagedDataTable.
- CLPopupMenuItem
- Elemento di un CLPopupMenu.
- CLPopupSurface
- Shared visual + entry-animation wrapper for floating popups (dropdowns, overlay menus, autocomplete suggestions).
- CLPressable
- Primitivo di interazione condiviso — Foundation / Tier 0.
- CLPressableState
- Stato interattivo risolto, passato al builder di CLPressable.
- CLProgress
- Barra di progresso lineare stile shadcn.
- CLResponsiveGrid
- Grid responsiva con colonne configurabili per breakpoint. Default shadcn: 1 col <600, 2 col <1024, 3 col <1440, 4 col ≥1440.
- CLResponsiveStack
- Row su desktop (≥1024px), Column su mobile/tablet. Usa gap per lo spazio tra gli elementi.
- CLRoleBadge
- Widget per visualizzare un badge con icona + testo colorato in un container arrotondato Usato per figure come Metodologo, Progettista, Ente di Formazione, ecc.
- CLRoleIcon
- Widget per visualizzare solo l'icona del ruolo in un CircleAvatar con tooltip
- CLSectionCard
- CLSectionCard — card con header colorato, icona HugeIcon, titolo/sottotitolo e contenuto.
- CLSeparator
- Linea divisoria semantica, orizzontale o verticale.
- CLSheet
- Pannello slide-in laterale da destra. Utile per form di dettaglio. Usa CLSheet.show per aprirlo.
- CLShellConfig
- Parametri di layout dello shell. Default = valori attuali del progetto.
- 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).
- CLShimmer
- Widget che mostra un effetto shimmer (loading skeleton)
- CLShimmerTableRows
- Widget per mostrare shimmer loading nelle righe della tabella
- CLSizes
- Design tokens del DS Skillera.
- CLSkeleton
- Loading placeholder animato stile shadcn. Usa CLSkeleton per nuovi componenti; CLShimmer rimane per retrocompatibilità.
- CLSoftButton
- CLStatStrip
- Strip di statistiche a TUTTA larghezza: un'unica card orizzontale con N segmenti equi (icona tinta + valore in evidenza + label), separati da divider verticali. Nata per le fasce dashboard (KPI di oggi, "da approvare", totali periodo) al posto di N card affiancate: stessa informazione, una sola riga di altezza, larghezza piena.
- CLStatStripItem
- Voce di una CLStatStrip: icona tinta + valore + label, opzionalmente tappabile.
- CLStatusBadge
- Widget per visualizzare uno status con pallino colorato + testo Esempio: ● In attesa, ● Approvata, ● Rifiutata
- CLSummaryStatCard
- CLSurface
- Primitivo L1 Foundation — l'unico posto dove si costruisce una "superficie" (background + bordo + radius + ombra + clip).
- CLSurveyBuilder
- CLSurveyBuilderState
- CLSurveyResultViewer
- CLSurveyResultViewerState
- CLSurveyViewer
- CLSurveyViewerState
- CLTabItem
- CLTableStyle
- Override colori per-istanza di PagedDataTable. Ogni campo null -> token CLTheme.
- CLTabView
- Tab view in stile editoriale: nessun chrome a bottone, label sottolineata quando attiva. Divider 1px continuo sotto la riga delle tab; l'indicatore 3px del tab attivo sovrascrive il divider creando l'effetto "active rail".
- CLTextField
- CLTextFieldState
- CLTheme
- --- Theme root ----------------------------------------------------------
- CLThemeProvider
- Provider generico per iniettare un tema CLTheme custom nell'app.
- CLTimePicker
-
Time picker in-theme (shadcn
ShadTimePicker): input a campi segmentati (ore/minuti, opzionali secondi e periodo AM/PM). Emette TimeOfDay. - CLTimeTableFilter
- Filtro solo ora — CLTextField.time (hh:mm)
- CLTitle
- CLTitle — titolo di sezione con divider opzionali sopra/sotto.
- CLToast
- Toast notification temporanea stile shadcn. Usa CLToast.show per mostrare una notifica.
- CLToneColors
- Colori risolti per un dato (tone × variant × stato interattivo).
- CLToneStyle
- Recipe L2 — l'unico posto dove vive la matematica del chrome tonale.
- CLTooltipWrapper
- Wrapper tooltip con delay di 500ms e stile coerente con il tema.
-
CLUniversalRepeatable<
T extends Object> -
CLViewToggle<
T extends Object> - Toggle a pill per alternare tra più viste (es. tabella / calendario). Scala automaticamente tra desktop (icona + label) e mobile (solo icona).
- CLViewToggleItem
- Modello per un'opzione del toggle vista.
- CLYearTableFilter
- Filtro anno — CLTextField.year (aaaa)
- ColorUtils
- --- Utils ---------------------------------------------------------------
- ConfirmationDialog
- Legacy confirmation dialog. Public API preserved verbatim: ConfirmationDialog({Key?, String? confirmationMessage, required Function() onTap})
- CustomAlertListener
- CustomInteractiveViewerController
-
A controller for
CustomInteractiveViewerthat manages transformation state and provides methods for programmatically manipulating the view. -
CustomRowBuilder<
TResult extends Object> - Allows you to pass a custom RowBuilder method.
- DarkModeTheme
- DashedGraphArrow
- A graph arrow style that renders a dashed arrow using a customizable dash pattern
- DatePickerTableFilter
- DateRangePickerTableFilter
- DefaultAlertListener
- DivorceDecorator
- A decorator that draws a diagonal line through a marriage line to indicate divorce
-
DropdownTableFilter<
TValue> -
EditableTableColumn<
TType extends Object, TValue extends Object> - Defines a BaseTableColumn that allows the content of a cell to be modified, updating the underlying item too.
- EntityTab
- Descrittore dichiarativo di una singola tab di dettaglio entità.
-
ExcerptText<
T extends Object> -
ExcerptTextState<
T extends Object> - FFUploadedFile
- Filtering
- FilterMenuDivider
- FilterMenuItem
- FilterMenuItemBuilder
-
Genogram<
E> - A widget that displays an organizational chart
-
GenogramController<
E> - Controller responsible for managing and laying out genogram (family tree) charts
- GenogramEdgeConfig
- Configuration for genogram edge painter styling
-
GenogramEdgePainter<
E> - A highly customizable painter for genogram edges
- GradientBackgroundWidget
- Widget per il background con gradiente radiale e cerchi decorativi.
- GraphArrowStyle
- Base abstract class for arrow/line styles in graphs
- InteractionConfig
- Configuration for gesture and interaction behavior in CustomInteractiveViewer.
- ISelectableDropdown
- Abstract interface that all DropdownState instances implement to support programmatic item selection (e.g., from AI assistant custom tools).
- KeyboardConfig
- Configuration for keyboard controls in CustomInteractiveViewer.
- LifecycleStep
- LightModeTheme
- LoadingWidget
- LogoWidget
- MarriageDecorator
- Base abstract class for decorators that can be applied to marriage lines
- MarriageLineStyle
- Represents the style of a marriage line in a genogram
- MarriageStyle
- Represents the style of a specific marriage relationship
- Media
-
NodeBuilderDetails<
T> - Contains all necessary properties that are passed to the node builder function to customize the appearance and behavior of each node in the graph.
- OpenAiProvider
- LLM provider implementation for OpenAI-compatible APIs.
- OptionEditor
- Widget per editare una singola opzione, con possibilità di aggiungere domande subordinate
- OptionEditorState
-
OrgChart<
E> - A widget that displays an organizational chart
-
OrgChartController<
E> - Controller specifically for organizational charts
-
PagedDataTable<
TKey extends Comparable, TResultId extends Comparable, TResult extends Object> -
A paginated DataTable that allows page caching and filtering
TKeyis the type of the page tokenTResultis the type of data the data table will show. - PagedDataTableConfiguration
-
PagedDataTableController<
TKey extends Comparable, TResultId extends Comparable, TResult extends Object> - Represents a controller of a PagedDataTable
- PagedDataTableFilterBarMenu
- PagedDataTablePaginationInfo
- PagedDataTableRowMetrics
- Single source of truth for the fixed leading/trailing slot widths of a desktop PagedDataTable row. The RESERVATION math (PagedDataTable.build), the DATA row (_PagedDataTableRow), the HEADER row (_PagedDataTableHeaderRow) and the SHIMMER rows (_ShimmerRows) all read these exact values, so the width reserved for columns can never drift from the width actually rendered.
- PagedDataTableTheme
- PagedDataTableThemeData
-
PaginationResult<
TPaginationKey extends Object, TResult extends Object> - Contains a set of elements and optionally a next page token
-
ProgrammaticTableFilter<
TValue> - A filter that is not visible in the popup dialog but can be set with the controller.
- QRCodeDialog
- A dialog that displays a QR code rendered from data along with the raw textual payload for accessibility and copy/paste.
- Question
- QuestionEditor
- Widget per editare una singola domanda
- QuestionEditorState
- QuestionResult
- RepeatableFieldConfig
- Configurazione universale per il repeatable
- ResponsiveGrid
- ResponsiveGridItem
-
Implementazione su
shared_preferences. Una entry JSON per scope:cl_ai_conv:<scope>→ lista di{id, title, updatedAt, messages:[...]}. Tiene al massimo maxConversations conversazioni (le più recenti). - 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
onTapche 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).
nullnegli 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
closepassato 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:
- SolidGraphArrow
- A graph arrow style that renders a solid arrow
- SortBy
- SurveyWidget
- Crea un form Survey
-
TableAction<
T extends Object> - Action available on a table row.
- TableActionItem
-
TableColumn<
TType extends Object> - Defines a simple BaseTableColumn that renders a cell based on cellBuilder
-
TableExtraMenu<
T extends Object> -
TableFilter<
TValue> -
TableFilterState<
TValue> -
TableRowAction<
T> - Lightweight action descriptor consumed by TableColumnBuilder.actionColumn.
- TextTableFilter
- ThemeTypography
- TimeInputField
- TimeTextInputFormatter
- ToolDefinition
- Definition of a tool that the LLM can call.
- ToolParameter
- A parameter definition for a tool.
- Typography
- --- Typography ----------------------------------------------------------
-
UniversalRepeatableItem<
T extends Object> - Validators
- VideoPlayerWidget
- VideoPlayerWidgetState
- ZoomConfig
- Configuration for zoom-related behavior in CustomInteractiveViewer.
Enums
- ActionOnNodeRemoval
- AlertPosition
- AlertType
- CLActionChipTone
- Tonal variants for CLActionChip.
- CLCalendarCaptionLayout
-
Layout dell'intestazione (shadcn
ShadCalendarCaptionLayout): etichetta testuale, oppure dropdown per mese e/o anno. - CLCalendarVariant
-
Modalità di selezione del CLCalendar (shadcn
ShadCalendarVariant). - CLGraphEdgeKind
- Tipo di arco: contenimento (gerarchia), propedeuticità, ordine, o link-lezione. lessonLink parte dalla porta triangolino (non dal pallino prereq): il pallino resta riservato alla propedeuticità.
- CLGraphLinkRole
- Ruolo di un link tracciato dall'utente, in base alle porte coinvolte.
- CLMediaViewerMode
- CLPopupAlignment
- Allineamento orizzontale del popup rispetto all'anchor.
- CLProgressVariant
- CLSurfaceKind
- Preset di superficie — le tipologie ricorrenti censite dall'audit 2026-07-02.
- CLToastVariant
- CLTone
-
Toni semantici del kit.
neutralè il grigio non semantico (muted/accent). - CLVariant
- Asse di variante del catalogo (stile shadcn): solid = riempito · soft = tinta leggera · outline = bordo · ghost = nudo · link = testo.
- ConnectionPoint
- Connection points on a node
- ConnectionType
- Connection types for drawing lines between nodes
- EntityDomain
- Dominio applicativo a cui appartiene una sezione di dettaglio entità.
- Gender
- Gender enum for genogram nodes
- GraphOrientation
- The orientation of the organizational chart
- LineEndingType
- Line ending types for edge connections
- MarriageStatus
- Marriage status enum for genogram relationships
- MessageRole
- Unified message role for AI/LLM conversations.
- RelationshipType
- Relationship type in a genogram
- ResourceType
- ScrollMode
- Defines the scroll behavior for CustomInteractiveViewer.
- ToolName
- AI tool-call names used by the assistant agent.
Extensions
- DeepCopy on Question
- EntityDomainX on EntityDomain
- Etichette it_IT e accento cromatico per EntityDomain.
- TableColumnBuilder on BuildContext
- Convenience builders for the most common TableColumn shapes used inside PagedDataTable. Reduces boilerplate when declaring column lists.
- TextStyleHelper on TextStyle
- --- TextStyle extension --------------------------------------------------
Constants
- kCardH → const double
- kCardW → const double
- kCLModalScrim → const Color
- Shared overlay scrim tokens — single source of truth for barrier colors.
- kCLPopoverScrim → const Color
- kThemeModeKey → const String
- kTriDy → const double
- Offset verticale (sotto il centro del bordo destro) della porta triangolino "link-lezione". Condiviso tra il widget (che disegna il triangolino) e il painter (che ancora gli archi CLGraphEdgeKind.lessonLink a quel punto), così la porta e l'arco restano allineati da un'unica sorgente di verità.
Functions
-
classifyGraphLink(
String fromPortId, String toPortId) → ({CLGraphLinkRole role, bool sourceIsFrom}) - Porte del nodo CL (vedi CLNodeGraph): contenimento = parent(in)/children(out), propedeuticità = requires(in)/unlocks(out).
-
clHierarchicalLayout(
List< CLGraphNode> nodes, List<CLGraphEdge> edges) → Map<String, Offset> -
Layout gerarchico L→R deterministico: la colonna è la profondità nella
gerarchia di contenimento; la y di un nodo è la media delle y dei suoi
figli (foglie impilate in ordine stabile). Gli archi
linksono ignorati. -
clModuleFlowLayout(
List< CLGraphNode> nodes, List<CLGraphEdge> edges) → Map<String, Offset> - Layout a bande per modulo: ogni nodo con figli di containment è la TESTA di una banda (colonna 0, centrato verticalmente); i suoi figli (risorse) fluiscono a destra per prereq (colonna = 1 + profondità catena calcolata sui SOLI prereq intra-modulo), impilati per ordine d'input evitando collisioni. Bande impilate verticalmente in ordine d'input dei moduli. Nodi senza modulo → in coda. Deterministico. Usa containment (modulo→risorsa) + prerequisite (risorsa→risorsa).
-
clPrereqFlowLayout(
List< CLGraphNode> nodes, List<CLGraphEdge> edges) → Map<String, Offset> -
Layout "flusso prereq": colonna = profondità nella catena prereq (longest-path
dai root senza prereq); riga = impilamento greedy in ordine d'input evitando
collisioni per colonna. I nodi vanno passati GIÀ ordinati per
order(indice in lista = order). Ignora archi non-prerequisite. Deterministico. - Larghezza → modalità navigazione.
Typedefs
-
CLGraphLayout
= Map<
String, Offset> Function(List<CLGraphNode> nodes, List<CLGraphEdge> edges) - Strategia di posizionamento: da nodi+archi a coordinate.
- CLPressableBuilder = Widget Function(BuildContext context, CLPressableState state)
- ErrorBuilder = Widget Function(Object error)
-
FetchCallback<
TKey extends Object, TResult extends Object> = FutureOr< PaginationResult< Function(TKey pageToken, int pageSize, SortBy? sortBy, Filtering filtering)TKey, TResult> > -
Getter<
T extends Object, TValue extends Object> = TValue? Function(T item) -
ModelIdGetter<
TResultId extends Comparable, TResult extends Object> = TResultId Function(TResult item) - PostTaskChipsBuilder = ButtonsContent? Function(AgentResponse response)
- Callback type for building post-task follow-up chips.
-
RowBuilder<
TResult extends Object> = Widget Function(BuildContext context, TResult item) -
Setter<
T extends Object, TValue> = FutureOr< bool> Function(T item, TValue newValue, int rowIndex) - Sizes = CLSizes
- Retrocompatibilità: il vecchio nome Sizes resta disponibile come alias.
- WidgetBuilder = Widget Function(BuildContext context)