import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from "../../../constants/event.mjs";
import { isNumber } from "../../../utils/types.mjs";
import { buildProps, definePropType } from "../../../utils/vue/props/runtime.mjs";
import { iconPropType } from "../../../utils/vue/icon.mjs";
import { mutable } from "../../../utils/typescript.mjs";
import { useSizeProp } from "../../../hooks/use-size/index.mjs";
import { useAriaProps } from "../../../hooks/use-aria/index.mjs";
import { Star, StarFilled } from "@element-plus/icons-vue";

//#region ../../packages/components/rate/src/rate.ts
/**
* @deprecated Removed after 3.0.0, Use `RateProps` instead.
*/
const rateProps = buildProps({
	modelValue: {
		type: Number,
		default: 0
	},
	id: {
		type: String,
		default: void 0
	},
	lowThreshold: {
		type: Number,
		default: 2
	},
	highThreshold: {
		type: Number,
		default: 4
	},
	max: {
		type: Number,
		default: 5
	},
	colors: {
		type: definePropType([Array, Object]),
		default: () => mutable([
			"",
			"",
			""
		])
	},
	voidColor: {
		type: String,
		default: ""
	},
	disabledVoidColor: {
		type: String,
		default: ""
	},
	icons: {
		type: definePropType([Array, Object]),
		default: () => [
			StarFilled,
			StarFilled,
			StarFilled
		]
	},
	voidIcon: {
		type: iconPropType,
		default: () => Star
	},
	disabledVoidIcon: {
		type: iconPropType,
		default: () => StarFilled
	},
	disabled: {
		type: Boolean,
		default: void 0
	},
	allowHalf: Boolean,
	showText: Boolean,
	showScore: Boolean,
	textColor: {
		type: String,
		default: ""
	},
	texts: {
		type: definePropType(Array),
		default: () => mutable([
			"Extremely bad",
			"Disappointed",
			"Fair",
			"Satisfied",
			"Surprise"
		])
	},
	scoreTemplate: {
		type: String,
		default: "{value}"
	},
	size: useSizeProp,
	clearable: Boolean,
	...useAriaProps(["ariaLabel"])
});
const rateEmits = {
	[CHANGE_EVENT]: (value) => isNumber(value),
	[UPDATE_MODEL_EVENT]: (value) => isNumber(value)
};

//#endregion
export { rateEmits, rateProps };
//# sourceMappingURL=rate.mjs.map