TriStateCheckbox
Checkboxes can have a parent-child relationship with other checkboxes. When the parent checkbox is checked, all child checkboxes are checked. If a parent checkbox is unchecked, all child checkboxes are unchecked. If some, but not all, child checkboxes are checked, the parent checkbox becomes an indeterminate checkbox.

Parameters
whether this checkbox is checked, unchecked, or in an indeterminate state
called when this checkbox is clicked. If null, then this checkbox will not be interactable, unless something else handles its input events and updates its state.
the Modifier to be applied to this checkbox
controls the enabled state of this checkbox. When false, this component will not respond to user input, and it will appear visually disabled and disabled to accessibility services.
CheckboxColors that will be used to resolve the colors used for this checkbox in different states. See CheckboxDefaults.colors.
an optional hoisted MutableInteractionSource for observing and emitting Interactions for this checkbox. You can use this to change the checkbox's appearance or preview the checkbox in different states. Note that if null is provided, interactions will still happen internally.
See also
if you want a simple component that represents Boolean state
Samples
androidx.compose.material3.samples.TriStateCheckboxSampleCheckboxes can have a parent-child relationship with other checkboxes. When the parent checkbox is checked, all child checkboxes are checked. If a parent checkbox is unchecked, all child checkboxes are unchecked. If some, but not all, child checkboxes are checked, the parent checkbox becomes an indeterminate checkbox.

This Checkbox function offers greater flexibility in visual customization. Using the Stroke parameters, you can control the appearance of both the checkmark and the box that surrounds it.
A sample of a TriStateCheckbox that uses a Stroke with rounded StrokeCap and androidx.compose.ui.graphics.StrokeJoin:
Parameters
whether this checkbox is checked, unchecked, or in an indeterminate state
called when this checkbox is clicked. If null, then this checkbox will not be interactable, unless something else handles its input events and updates its state.
stroke for the checkmark.
stroke for the checkmark's box outline. Note that this stroke is applied when drawing the outline's rounded rectangle, so attributions such as androidx.compose.ui.graphics.StrokeJoin will be ignored.
the Modifier to be applied to this checkbox
controls the enabled state of this checkbox. When false, this component will not respond to user input, and it will appear visually disabled and disabled to accessibility services.
CheckboxColors that will be used to resolve the colors used for this checkbox in different states. See CheckboxDefaults.colors.
an optional hoisted MutableInteractionSource for observing and emitting Interactions for this checkbox. You can use this to change the checkbox's appearance or preview the checkbox in different states. Note that if null is provided, interactions will still happen internally.
See also
if you want a simple component that represents Boolean state