reka-ui
Version:
Vue port for Radix UI Primitives.
1 lines • 1.82 kB
Source Map (JSON)
{"version":3,"file":"MenuRadioItem.cjs","sources":["../../src/Menu/MenuRadioItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n MenuItemEmits,\n MenuItemProps,\n} from './MenuItem.vue'\n\nexport type MenuRadioItemEmits = MenuItemEmits\n\nexport interface MenuRadioItemProps extends MenuItemProps {\n /** The unique value of the item. */\n value: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, toRefs } from 'vue'\nimport { getCheckedState } from './utils'\nimport MenuItem from './MenuItem.vue'\nimport { injectMenuRadioGroupContext } from './MenuRadioGroup.vue'\nimport { provideMenuItemIndicatorContext } from './MenuItemIndicator.vue'\n\nconst props = defineProps<MenuRadioItemProps>()\nconst emits = defineEmits<MenuRadioItemEmits>()\n\nconst { value } = toRefs(props)\nconst radioGroupContext = injectMenuRadioGroupContext()\nconst modelValue = computed(\n () => radioGroupContext.modelValue.value === value?.value,\n)\n\nprovideMenuItemIndicatorContext({ modelValue })\n</script>\n\n<template>\n <MenuItem\n role=\"menuitemradio\"\n v-bind=\"props\"\n :aria-checked=\"modelValue\"\n :data-state=\"getCheckedState(modelValue)\"\n @select=\"\n async (event) => {\n emits('select', event);\n radioGroupContext.onValueChange(value);\n }\n \"\n >\n <slot />\n </MenuItem>\n</template>\n"],"names":["toRefs","injectMenuRadioGroupContext","computed","provideMenuItemIndicatorContext"],"mappings":";;;;;;;;;;;;;;;;;;;AAqBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,EAAE,KAAA,EAAU,GAAAA,UAAA,CAAO,KAAK,CAAA;AAC9B,IAAA,MAAM,oBAAoBC,+CAA4B,EAAA;AACtD,IAAA,MAAM,UAAa,GAAAC,YAAA;AAAA,MACjB,MAAM,iBAAA,CAAkB,UAAW,CAAA,KAAA,KAAU,KAAO,EAAA;AAAA,KACtD;AAEA,IAAgCC,sDAAA,CAAA,EAAE,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;"}