{
  "name": "checkbox",
  "dependencies": [],
  "registryDependencies": [],
  "files": [
    {
      "name": "Checkbox.vue",
      "content": "<script setup lang=\"ts\">\nimport type { CheckboxRootEmits, CheckboxRootProps } from 'radix-vue';\nimport { CheckboxIndicator, CheckboxRoot, useForwardPropsEmits } from 'radix-vue';\nimport { CheckIcon } from 'lucide-vue-next';\n\ninterface Props extends CheckboxRootProps {\n  label?: string;\n  description?: string;\n  id?: string;\n}\n\nconst props = defineProps<Props>();\nconst emits = defineEmits<CheckboxRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n  <div\n    class=\"sigma-ui-checkbox-wrapper\"\n    :class=\"[{ 'sigma-ui-checkbox-wrapper--flex-start': props.description }]\"\n  >\n    <CheckboxRoot\n      v-bind=\"forwarded\"\n      :id=\"(props.label && props.id) || forwarded.id\"\n      class=\"sigma-ui-checkbox\"\n    >\n      <transition name=\"fade-slide-top\">\n        <CheckboxIndicator class=\"sigma-ui-checkbox__indicator\">\n          <slot>\n            <CheckIcon class=\"sigma-ui-checkbox__icon\" />\n          </slot>\n        </CheckboxIndicator>\n      </transition>\n    </CheckboxRoot>\n    <div\n      v-if=\"props.label\"\n      class=\"sigma-ui-checkbox__content\"\n    >\n      <label\n        v-if=\"props.label\"\n        class=\"sigma-ui-checkbox__label\"\n        :for=\"props.id\"\n      >{{ props.label }}\n      </label>\n      <p\n        v-if=\"props.description\"\n        class=\"sigma-ui-checkbox__description\"\n      >\n        {{ props.description }}\n      </p>\n    </div>\n  </div>\n</template>\n\n<style>\n.sigma-ui-checkbox-wrapper {\n  display: flex;\n  align-items: center;\n  gap: 0.5rem;\n}\n\n.sigma-ui-checkbox-wrapper--flex-start {\n  align-items: flex-start;\n}\n\n.sigma-ui-checkbox {\n  height: 1rem;\n  width: 1rem;\n  flex-shrink: 0;\n  border-radius: var(--radius-xs);\n  border: 1px solid hsl(var(--primary));\n  background-color: hsl(var(--background));\n  overflow: hidden;\n}\n\n.sigma-ui-checkbox:focus-visible {\n  outline: none;\n  box-shadow:\n    0 0 0 2px hsl(var(--background)),\n    0 0 0 4px hsl(var(--ring));\n}\n\n.sigma-ui-checkbox:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\n\n.sigma-ui-checkbox[data-state=\"checked\"] {\n  background-color: hsl(var(--primary));\n  color: hsl(var(--primary-foreground));\n}\n\n.sigma-ui-checkbox__indicator {\n  display: flex;\n  height: 100%;\n  width: 100%;\n  align-items: center;\n  justify-content: center;\n  color: currentColor;\n}\n\n.sigma-ui-checkbox__content {\n  display: flex;\n  flex-direction: column;\n  gap: 0.375rem;\n  line-height: 1;\n}\n\n.sigma-ui-checkbox__label {\n  font-size: 0.875rem;\n  font-weight: 500;\n  line-height: 1;\n  user-select: none;\n}\n\n.sigma-ui-checkbox:disabled + .sigma-ui-checkbox__content .sigma-ui-checkbox__label,\n.sigma-ui-checkbox:disabled + .sigma-ui-checkbox__content .sigma-ui-checkbox__description {\n  opacity: 0.7;\n}\n\n.sigma-ui-checkbox__description {\n  font-size: 0.875rem;\n  line-height: 1.25rem;\n  color: hsl(var(--muted-foreground));\n  user-select: none;\n}\n</style>\n"
    },
    {
      "name": "index.ts",
      "content": "export { default as Checkbox } from './Checkbox.vue';\n"
    }
  ],
  "type": "components:ui"
}