"use client" import { forwardRef } from "react" import { Checkbox as AriaCheckbox } from "react-aria-components" import { useController, useFormContext } from "react-hook-form" import { useIntl } from "react-intl" import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon" import Caption from "@/components/TempDesignSystem/Text/Caption" import { getErrorMessage } from "./errors" import styles from "./checkbox.module.css" import type { CheckboxProps } from "@/types/components/checkbox" const Checkbox = forwardRef< HTMLInputElement, React.PropsWithChildren >(function Checkbox( { className = "", name, children, registerOptions, hideError, topAlign = false, }, ref ) { const { control } = useFormContext() const { field, fieldState } = useController({ control, name, rules: registerOptions, }) const intl = useIntl() return ( {({ isSelected }) => ( <> {isSelected && ( )} {children} {fieldState.error && !hideError ? ( {getErrorMessage(intl, fieldState.error.message)} ) : null} )} ) }) export default Checkbox