UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

75 lines 2.36 kB
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