"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const errorMessage = require("@hookform/error-message");
const reactHookForm = require("react-hook-form");
;/* empty css                                                                                                                                                                                        */
;/* empty css                                                                                                                                                                                         */
;/* empty css                                                                                                                                                                                                 */
;/* empty css                                                                                                                                                                                            */
;/* empty css                                                                                                                                                                                            */
const Checkbox = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/Checkbox/Checkbox.cjs");
const Flex = require("../../node_modules/.pnpm/@mantine_core@7.15.2_patch_hash_jclkxeaefn6uz54h34k3r3yjsq_@mantine_hooks@7.15.2_react@18.3.1_szqfuioo5damkjdixckhzmwycq/node_modules/@mantine/core/esm/components/Flex/Flex.cjs");
const FormCheckbox = ({ name, rules, onChange, ...rest }) => {
  const { control, formState, getFieldState } = reactHookForm.useFormContext();
  const { error } = getFieldState(name, formState);
  return /* @__PURE__ */ jsxRuntime.jsx(
    reactHookForm.Controller,
    {
      control,
      name,
      rules,
      render: ({ field }) => {
        const { onChange: handleChange, value, ...restField } = field;
        return /* @__PURE__ */ jsxRuntime.jsx(
          Checkbox.Checkbox,
          {
            checked: value,
            ...rest,
            onChange: (e) => {
              handleChange(e.currentTarget.checked);
              onChange == null ? void 0 : onChange(e);
            },
            ...restField,
            error: error ? /* @__PURE__ */ jsxRuntime.jsx(errorMessage.ErrorMessage, { errors: formState.errors, name }) : void 0
          }
        );
      }
    }
  );
};
const FormCheckboxGroup = ({
  name,
  rules,
  data,
  onChange,
  direction,
  gap = "sm",
  label,
  ...rest
}) => {
  const { control, formState, getFieldState } = reactHookForm.useFormContext();
  const { error } = getFieldState(name, formState);
  return /* @__PURE__ */ jsxRuntime.jsx(
    reactHookForm.Controller,
    {
      control,
      name,
      rules,
      render: ({ field }) => {
        const { onChange: handleChange, value, ...restField } = field;
        return /* @__PURE__ */ jsxRuntime.jsx(
          Checkbox.Checkbox.Group,
          {
            ...rest,
            label,
            value,
            onChange: (val) => {
              handleChange(val);
              onChange == null ? void 0 : onChange(val);
            },
            ...restField,
            error: error ? /* @__PURE__ */ jsxRuntime.jsx(errorMessage.ErrorMessage, { errors: formState.errors, name }) : void 0,
            children: /* @__PURE__ */ jsxRuntime.jsx(Flex.Flex, { direction, gap, mt: label ? "xs" : void 0, children: data.map((i) => /* @__PURE__ */ React.createElement(Checkbox.Checkbox, { ...i, key: i.value })) })
          }
        );
      }
    }
  );
};
exports.FormCheckbox = FormCheckbox;
exports.FormCheckboxGroup = FormCheckboxGroup;
