import type { JSX, ValidComponent } from "@solidjs/web"; import { type BaseUIEventReasons } from "../internals/change-event-details.js"; import type { FieldRootState } from "../internals/field-constants.js"; import { type MaybeAccessor } from "../internals/maybe-accessor.js"; import type { BaseUIComponentProps } from "../internals/types.js"; import type { CheckboxGroupChangeEventDetails } from "./checkbox-group-context.js"; export type CheckboxGroupChangeEventReason = BaseUIEventReasons["none"]; export type { CheckboxGroupChangeEventDetails }; /** * State projected to `data-*` attributes. Extends the field-root state — * forms/fields drive the `data-*` validity surface. */ export interface CheckboxGroupState extends FieldRootState { /** Whether the group (and all its children) are disabled. */ disabled: boolean; } export interface CheckboxGroupProps extends BaseUIComponentProps<"div", CheckboxGroupState> { /** * Tag/component to render. Defaults to `"div"`. Replaces the * pre-spike `render` prop (axis G). */ as?: ValidComponent; /** * Controlled value array of the ticked child checkboxes. When provided * (resolved value not `undefined`), the consumer owns the state — pair * with {@link onValueChange}. When omitted, the group manages its own * value (seeded from {@link defaultValue}). An empty array IS a * controlled value. */ value?: MaybeAccessor; /** * Initial value array when uncontrolled. Read once at mount. * @default [] */ defaultValue?: MaybeAccessor; /** Fires when the set of ticked values changes. */ onValueChange?: ((value: string[], details: CheckboxGroupChangeEventDetails) => void) | undefined; /** Every value a child can contribute (parent-checkbox pattern). */ allValues?: MaybeAccessor; /** Whether the group should ignore user interaction. @default false */ disabled?: MaybeAccessor; } /** * Provides a shared value array to a series of `` elements. * Renders a `
` (or `as` override). * * §1 wave 2: replaces `renderElement` with `dynamic(() => props.as ?? "div")`. * Field-validity attrs (`data-valid`/`data-invalid`/`data-touched`/`data-dirty`/ * `data-filled`/`data-focused`) flow via `fieldStateAttrs(state)`; the * `data-disabled` presence attr is emitted via an inline getter; aria-invalid * + aria-describedby come from `validation.getValidationProps()`. */ export declare function CheckboxGroup(props: CheckboxGroupProps): JSX.Element; //# sourceMappingURL=checkbox-group.d.ts.map