import { defineComponent, watch, createVNode } from "vue";
import { useChildren, useCustomFieldValue } from "../../../@vant/use/dist/index.esm.mjs";
import { unknownProp, numericProp } from "../utils/props.mjs";
import { createNamespace } from "../utils/create.mjs";
const [name, bem] = createNamespace("radio-group");
const radioGroupProps = {
  shape: String,
  disabled: Boolean,
  iconSize: numericProp,
  direction: String,
  modelValue: unknownProp,
  checkedColor: String
};
const RADIO_KEY = Symbol(name);
var stdin_default = defineComponent({
  name,
  props: radioGroupProps,
  emits: ["change", "update:modelValue"],
  setup(props, {
    emit,
    slots
  }) {
    const {
      linkChildren
    } = useChildren(RADIO_KEY);
    const updateValue = (value) => emit("update:modelValue", value);
    watch(() => props.modelValue, (value) => emit("change", value));
    linkChildren({
      props,
      updateValue
    });
    useCustomFieldValue(() => props.modelValue);
    return () => {
      var _a;
      return createVNode("div", {
        "class": bem([props.direction]),
        "role": "radiogroup"
      }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
    };
  }
});
export {
  RADIO_KEY,
  stdin_default as default,
  radioGroupProps
};
