docs/developer_docs/components/ui/checkbox.mdx
import { StoryWithControls } from '../../../src/components/StorybookWrapper';
Checkbox component that supports both regular and indeterminate states, built on top of Ant Design v5 Checkbox.
<StoryWithControls component="Checkbox" props={{ checked: false, indeterminate: false }} controls={[ { name: "checked", label: "Checked", type: "boolean", description: "Whether the checkbox is checked." }, { name: "indeterminate", label: "Indeterminate", type: "boolean", description: "Whether the checkbox is in indeterminate state (partially selected)." } ]} />
Edit the code below to experiment with the component:
function Demo() {
return (
<Checkbox
// Add props here
/>
);
}
function AllStates() {
return (
<div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>
<Checkbox checked={false}>Unchecked</Checkbox>
<Checkbox checked={true}>Checked</Checkbox>
<Checkbox indeterminate={true}>Indeterminate</Checkbox>
<Checkbox disabled>Disabled unchecked</Checkbox>
<Checkbox disabled checked>Disabled checked</Checkbox>
</div>
);
}
function SelectAllDemo() {
const [selected, setSelected] = React.useState([]);
const options = ['Option A', 'Option B', 'Option C'];
const allSelected = selected.length === options.length;
const indeterminate = selected.length > 0 && !allSelected;
return (
<div>
<Checkbox
checked={allSelected}
indeterminate={indeterminate}
onChange={(e) => setSelected(e.target.checked ? [...options] : [])}
>
Select All
</Checkbox>
<div style={{ marginLeft: 24, marginTop: 8 }}>
{options.map(opt => (
<div key={opt}>
<Checkbox
checked={selected.includes(opt)}
onChange={() => setSelected(prev =>
prev.includes(opt) ? prev.filter(x => x !== opt) : [...prev, opt]
)}
>
{opt}
</Checkbox>
</div>
))}
</div>
</div>
);
}
| Prop | Type | Default | Description |
|---|---|---|---|
checked | boolean | false | Whether the checkbox is checked. |
indeterminate | boolean | false | Whether the checkbox is in indeterminate state (partially selected). |
import { Checkbox } from '@superset/components';
:::tip[Improve this page] This documentation is auto-generated from the component's Storybook story. Help improve it by editing the story file. :::