import { CheckboxProps } from "@lifesg/react-design-system/checkbox"; import type { IPopoverSchema, ITextSchema, ITypographySchema } from "../../elements"; import type { IInlineWrapperSchema } from "../../elements/wrapper"; import { TComponentOmitProps, TFrontendEngineFieldSchema } from "../../frontend-engine"; import { IBaseFieldSchema } from "../types"; export interface ICheckboxGroupOption { label: string | Record; value: string; disabled?: boolean | undefined; } export interface IToggleOption extends ICheckboxGroupOption { none?: boolean | undefined; children?: Record> | undefined; subLabel?: string | undefined; } export type TCheckboxToggleLayoutType = "horizontal" | "vertical"; interface ICheckboxGroupDefaultSchema extends IBaseFieldSchema<"checkbox", V>, TComponentOmitProps { options: ICheckboxGroupOption[]; customOptions?: { styleType: "default"; } | undefined; } interface ICheckboxGroupToggleSchema extends IBaseFieldSchema<"checkbox", V>, TComponentOmitProps { options: IToggleOption[]; customOptions: { styleType: "toggle"; indicator?: boolean | undefined; border?: boolean | undefined; layoutType?: TCheckboxToggleLayoutType | undefined; }; } export type TCheckboxGroupSchema = ICheckboxGroupDefaultSchema | ICheckboxGroupToggleSchema; export {};