import type { BuilderReturn, Orientation } from '../../internal/types.js'; import type { Writable } from 'svelte/store'; import type { createRadioGroup } from './create.js'; import type { ChangeFn } from '../../internal/helpers/index.js'; export type { RadioGroupComponentEvents } from './events.js'; export type CreateRadioGroupProps = { /** * When `true`, prevents the user from interacting with the radio group. * * @default false */ disabled?: boolean; /** * When `true`, indicates that the user must select a radio button before * the owning form can be submitted. * * @default false */ required?: boolean; name?: string; /** * Whether or not the radio group should loop around when the end * is reached. * * @default false */ loop?: boolean; /** * The orientation of the radio group. * * @default 'horizontal' */ orientation?: Orientation; /** * The uncontrolled default value of the radio group. * * @default undefined */ defaultValue?: string; /** * The controlled value store for the radio group. * If provided, this will override the value passed to `defaultValue`. */ value?: Writable; /** * The callback invoked when the value store of the radio group changes. * * @see https://melt-ui.com/docs/controlled#change-functions */ onValueChange?: ChangeFn; }; export type RadioGroupItemProps = { value: string; disabled?: boolean; } | string; export type RadioGroup = BuilderReturn; export type RadioGroupElements = RadioGroup['elements']; export type RadioGroupOptions = RadioGroup['options']; export type RadioGroupStates = RadioGroup['states']; export type RadioGroupHelpers = RadioGroup['helpers'];