|
import { createBitAttrs, getOptionUpdater } from "../../internal/index.js"; |
|
import { createRadioGroup } from "@melt-ui/svelte"; |
|
import { getContext, setContext } from "svelte"; |
|
import { removeUndefined } from "../../internal/index.js"; |
|
function getRadioGroupData() { |
|
const NAME = "radio-group"; |
|
const ITEM_NAME = "radio-group-item"; |
|
const PARTS = ["root", "item", "input", "item-indicator"]; |
|
return { |
|
NAME, |
|
ITEM_NAME, |
|
PARTS, |
|
}; |
|
} |
|
export function setCtx(props) { |
|
const { NAME, PARTS } = getRadioGroupData(); |
|
const getAttrs = createBitAttrs(NAME, PARTS); |
|
const radioGroup = { ...createRadioGroup(removeUndefined(props)), getAttrs }; |
|
setContext(NAME, radioGroup); |
|
return { |
|
...radioGroup, |
|
updateOption: getOptionUpdater(radioGroup.options), |
|
}; |
|
} |
|
export function getCtx() { |
|
const { NAME } = getRadioGroupData(); |
|
return getContext(NAME); |
|
} |
|
export function setItemCtx(value) { |
|
const { ITEM_NAME } = getRadioGroupData(); |
|
const radioGroup = { ...getCtx(), value }; |
|
setContext(ITEM_NAME, radioGroup); |
|
return radioGroup; |
|
} |
|
export function getRadioIndicator() { |
|
const { ITEM_NAME } = getRadioGroupData(); |
|
return getContext(ITEM_NAME); |
|
} |
|
|