analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
75 lines • 2.36 kB
TypeScript
import { ReactNode } from 'react';
/**
* Item (filho) do grupo hierarquico.
*/
export interface HierarchicalCheckboxItem {
id: string;
label: ReactNode;
disabled?: boolean;
}
/**
* Grupo (pai) que agrupa varios itens.
*/
export interface HierarchicalCheckboxGroupItem {
id: string;
label: ReactNode;
items: HierarchicalCheckboxItem[];
}
/**
* Layout dos itens (filhos) dentro de cada grupo.
*/
export type HierarchicalCheckboxItemsLayout = 'column' | 'row';
export interface HierarchicalCheckboxGroupProps {
/** Lista de grupos, cada um com seus itens filhos */
groups: HierarchicalCheckboxGroupItem[];
/** Ids dos itens (filhos) atualmente selecionados */
selectedIds: string[];
/** Callback disparado quando a selecao muda */
onChange: (selectedIds: string[]) => void;
/**
* Layout dos filhos de cada grupo.
* - `column` (default): um abaixo do outro
* - `row`: inline, com quebra de linha
*/
itemsLayout?: HierarchicalCheckboxItemsLayout;
/** Renderiza Divider entre grupos (default: true) */
showGroupDividers?: boolean;
/** Classes extras aplicadas ao container raiz */
className?: string;
/** Classes extras aplicadas ao label do grupo (pai) */
groupLabelClassName?: string;
}
/**
* HierarchicalCheckboxGroup - lista de grupos pai/filho com estado
* `indeterminate` automatico no pai baseado na selecao dos filhos.
*
* Comportamento do pai:
* - Todos os filhos selecionados -> `checked`
* - Alguns filhos selecionados -> `indeterminate`
* - Nenhum filho selecionado -> `unchecked`
* - Click no pai: marca/desmarca todos os filhos daquele grupo
*
* @example
* ```tsx
* <HierarchicalCheckboxGroup
* groups={[
* {
* id: 'ef',
* label: 'Ensino fundamental',
* items: [
* { id: 'ef-6', label: '6º ano' },
* { id: 'ef-7', label: '7º ano' },
* ],
* },
* ]}
* selectedIds={selected}
* onChange={setSelected}
* />
* ```
*/
declare const HierarchicalCheckboxGroup: {
({ groups, selectedIds, onChange, itemsLayout, showGroupDividers, className, groupLabelClassName, }: HierarchicalCheckboxGroupProps): import("react/jsx-runtime").JSX.Element;
displayName: string;
};
export default HierarchicalCheckboxGroup;
//# sourceMappingURL=HierarchicalCheckboxGroup.d.ts.map