{
  "name": "radio-group",
  "dependencies": [],
  "registryDependencies": [],
  "files": [
    {
      "name": "RadioGroup.vue",
      "content": "<script setup lang=\"ts\">\nimport { RadioGroupRoot, type RadioGroupRootEmits, type RadioGroupRootProps, useForwardPropsEmits } from 'radix-vue';\n\nconst props = defineProps<RadioGroupRootProps>();\nconst emits = defineEmits<RadioGroupRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n  <RadioGroupRoot\n    class=\"sigma-ui-radio-group\"\n    v-bind=\"forwarded\"\n  >\n    <slot />\n  </RadioGroupRoot>\n</template>\n\n<style>\n.sigma-ui-radio-group {\n  display: grid;\n  gap: 0.5rem;\n}\n</style>\n"
    },
    {
      "name": "RadioGroupItem.vue",
      "content": "<script setup lang=\"ts\">\nimport {\n  RadioGroupIndicator,\n  RadioGroupItem,\n  type RadioGroupItemProps,\n  useForwardProps,\n} from 'radix-vue';\nimport { CircleIcon } from 'lucide-vue-next';\n\nconst props = defineProps<RadioGroupItemProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n  <RadioGroupItem\n    v-bind=\"forwardedProps\"\n    class=\"sigma-ui-radio-group-item\"\n  >\n    <RadioGroupIndicator\n      class=\"sigma-ui-radio-group-item__indicator\"\n    >\n      <CircleIcon class=\"sigma-ui-radio-group-item__icon\" />\n    </RadioGroupIndicator>\n  </RadioGroupItem>\n</template>\n\n<style>\n.sigma-ui-radio-group-item {\n  aspect-ratio: 1;\n  height: 1rem;\n  width: 1rem;\n  border-radius: var(--radius-full);\n  border: 1px solid hsl(var(--primary));\n  color: hsl(var(--primary));\n  background-color: transparent;\n  transition: all 150ms ease-out;\n}\n\n.sigma-ui-radio-group-item:focus {\n  outline: none;\n}\n\n.sigma-ui-radio-group-item:focus-visible {\n  box-shadow: 0 0 0 2px hsl(var(--background)),\n              0 0 0 4px hsl(var(--ring));\n}\n\n.sigma-ui-radio-group-item:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\n\n.sigma-ui-radio-group-item__indicator {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.sigma-ui-radio-group-item__icon {\n  height: 0.625rem;\n  width: 0.625rem;\n  fill: currentColor;\n  color: currentColor;\n}\n\n.sigma-ui-radio-group-item[data-state=\"checked\"] .sigma-ui-radio-group-item__icon {\n  animation: radioCheck 150ms ease-out;\n}\n\n.sigma-ui-radio-group-item[data-state=\"unchecked\"] .sigma-ui-radio-group-item__icon {\n  animation: radioUncheck 150ms ease-in;\n}\n\n@keyframes radioCheck {\n  from {\n    opacity: 0;\n    transform: scale(0.8);\n    filter: blur(4px);\n  }\n  to {\n    opacity: 1;\n    transform: scale(1);\n    filter: blur(0);\n  }\n}\n\n@keyframes radioUncheck {\n  from {\n    opacity: 1;\n    transform: scale(1);\n    filter: blur(0);\n  }\n  to {\n    opacity: 0;\n    transform: scale(0.8);\n    filter: blur(4px);\n  }\n}\n</style>\n"
    },
    {
      "name": "index.ts",
      "content": "export { default as RadioGroup } from './RadioGroup.vue';\nexport { default as RadioGroupItem } from './RadioGroupItem.vue';\n"
    }
  ],
  "type": "components:ui"
}