{
  "name": "calendar",
  "dependencies": [],
  "registryDependencies": [],
  "files": [
    {
      "name": "Calendar.vue",
      "content": "<script lang=\"ts\" setup>\nimport { CalendarRoot, type CalendarRootEmits, type CalendarRootProps, useForwardPropsEmits } from 'radix-vue';\nimport { CalendarCell, CalendarCellTrigger, CalendarGrid, CalendarGridBody, CalendarGridHead, CalendarGridRow, CalendarHeadCell, CalendarHeader, CalendarHeading, CalendarNextButton, CalendarPrevButton } from '.';\n\nconst props = defineProps<CalendarRootProps>();\nconst emits = defineEmits<CalendarRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n  <CalendarRoot\n    v-slot=\"{ grid, weekDays }\"\n    class=\"sigma-ui-calendar\"\n    v-bind=\"forwarded\"\n  >\n    <CalendarHeader>\n      <CalendarPrevButton />\n      <CalendarHeading />\n      <CalendarNextButton />\n    </CalendarHeader>\n\n    <div class=\"sigma-ui-calendar__grid-container\">\n      <CalendarGrid\n        v-for=\"month in grid\"\n        :key=\"month.value.toString()\"\n      >\n        <CalendarGridHead>\n          <CalendarGridRow>\n            <CalendarHeadCell\n              v-for=\"day in weekDays\"\n              :key=\"day\"\n            >\n              {{ day }}\n            </CalendarHeadCell>\n          </CalendarGridRow>\n        </CalendarGridHead>\n        <CalendarGridBody>\n          <CalendarGridRow\n            v-for=\"(weekDates, index) in month.rows\"\n            :key=\"`weekDate-${index}`\"\n            class=\"sigma-ui-calendar__week-row\"\n          >\n            <CalendarCell\n              v-for=\"weekDate in weekDates\"\n              :key=\"weekDate.toString()\"\n              :date=\"weekDate\"\n            >\n              <CalendarCellTrigger\n                :day=\"weekDate\"\n                :month=\"month.value\"\n              />\n            </CalendarCell>\n          </CalendarGridRow>\n        </CalendarGridBody>\n      </CalendarGrid>\n    </div>\n  </CalendarRoot>\n</template>\n\n<style>\n.sigma-ui-calendar {\n  padding: 0.75rem;\n}\n\n.sigma-ui-calendar__grid-container {\n  display: flex;\n  flex-direction: column;\n  gap: 1rem;\n  margin-top: 1rem;\n}\n\n.sigma-ui-calendar__week-row {\n  margin-top: 0.5rem;\n  width: 100%;\n}\n\n@media (min-width: 640px) {\n  .sigma-ui-calendar__grid-container {\n    flex-direction: row;\n    gap: 1rem;\n  }\n}\n</style>\n"
    },
    {
      "name": "CalendarCell.vue",
      "content": "<script lang=\"ts\" setup>\nimport { CalendarCell, type CalendarCellProps, useForwardProps } from 'radix-vue';\n\nconst props = defineProps<CalendarCellProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n  <CalendarCell\n    class=\"sigma-ui-calendar-cell\"\n    v-bind=\"forwardedProps\"\n  >\n    <slot />\n  </CalendarCell>\n</template>\n\n<style>\n.sigma-ui-calendar-cell {\n  position: relative;\n  height: 2.25rem;\n  width: 2.25rem;\n  padding: 0;\n  text-align: center;\n  font-size: 0.875rem;\n}\n\n.sigma-ui-calendar-cell:focus-within {\n  position: relative;\n  z-index: 20;\n}\n\n.sigma-ui-calendar-cell:has([data-selected]) {\n  border-radius: var(--radius-md);\n  background-color: hsl(var(--accent));\n}\n\n.sigma-ui-calendar-cell:has([data-selected][data-outside-month]) {\n  background-color: hsl(var(--accent) / 0.5);\n}\n</style>\n"
    },
    {
      "name": "CalendarCellTrigger.vue",
      "content": "<script lang=\"ts\" setup>\nimport { CalendarCellTrigger, type CalendarCellTriggerProps, useForwardProps } from 'radix-vue';\nimport { buttonVariants } from '@ui/registry/css/ui/button';\n\nconst props = defineProps<CalendarCellTriggerProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n  <CalendarCellTrigger\n    class=\"sigma-ui-calendar-cell-trigger\"\n    :class=\"[buttonVariants({ variant: 'ghost' })]\"\n    v-bind=\"forwardedProps\"\n  >\n    <slot />\n  </CalendarCellTrigger>\n</template>\n\n<style>\n.sigma-ui-calendar-cell-trigger {\n  height: 2.25rem;\n  width: 2.25rem;\n  padding: 0;\n  font-weight: normal;\n  background-color: transparent;\n  border-radius: var(--radius-sm);\n  transition-property: all;\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n  transition-duration: 150ms;\n}\n\n.sigma-ui-calendar-cell-trigger:hover {\n  background-color: hsl(var(--muted));\n  color: hsl(var(--muted-foreground));\n}\n\n.sigma-ui-calendar-cell-trigger[data-today]:not([data-selected]) {\n  background-color: hsl(var(--accent));\n  color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-calendar-cell-trigger[data-selected] {\n  background-color: hsl(var(--primary));\n  color: hsl(var(--primary-foreground));\n  opacity: 1;\n}\n\n.sigma-ui-calendar-cell-trigger[data-selected]:hover,\n.sigma-ui-calendar-cell-trigger[data-selected]:focus {\n  background-color: hsl(var(--primary));\n  color: hsl(var(--primary-foreground));\n}\n\n.sigma-ui-calendar-cell-trigger[data-disabled] {\n  color: hsl(var(--muted-foreground));\n  opacity: 0.5;\n}\n\n.sigma-ui-calendar-cell-trigger[data-unavailable] {\n  color: hsl(var(--destructive-foreground));\n  text-decoration: line-through;\n}\n\n.sigma-ui-calendar-cell-trigger[data-outside-month] {\n  pointer-events: none;\n  color: hsl(var(--muted-foreground));\n  opacity: 0.5;\n}\n\n.sigma-ui-calendar-cell-trigger[data-outside-month][data-selected] {\n  background-color: hsl(var(--accent) / 0.5);\n  color: hsl(var(--muted-foreground));\n  opacity: 0.3;\n}\n</style>\n"
    },
    {
      "name": "CalendarGrid.vue",
      "content": "<script lang=\"ts\" setup>\nimport { CalendarGrid, type CalendarGridProps, useForwardProps } from 'radix-vue';\n\nconst props = defineProps<CalendarGridProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n  <CalendarGrid\n    class=\"sigma-ui-calendar-grid\"\n    v-bind=\"forwardedProps\"\n  >\n    <slot />\n  </CalendarGrid>\n</template>\n\n<style>\n.sigma-ui-calendar-grid {\n  width: 100%;\n  border-collapse: collapse;\n  display: flex;\n  flex-direction: column;\n  gap: 0.25rem;\n}\n</style>\n"
    },
    {
      "name": "CalendarGridBody.vue",
      "content": "<script lang=\"ts\" setup>\nimport { CalendarGridBody, type CalendarGridBodyProps } from 'radix-vue';\n\nconst props = defineProps<CalendarGridBodyProps>();\n</script>\n\n<template>\n  <CalendarGridBody v-bind=\"props\">\n    <slot />\n  </CalendarGridBody>\n</template>\n"
    },
    {
      "name": "CalendarGridHead.vue",
      "content": "<script lang=\"ts\" setup>\nimport { CalendarGridHead, type CalendarGridHeadProps } from 'radix-vue';\n\nconst props = defineProps<CalendarGridHeadProps>();\n</script>\n\n<template>\n  <CalendarGridHead v-bind=\"props\">\n    <slot />\n  </CalendarGridHead>\n</template>\n"
    },
    {
      "name": "CalendarGridRow.vue",
      "content": "<script lang=\"ts\" setup>\nimport { CalendarGridRow, type CalendarGridRowProps, useForwardProps } from 'radix-vue';\n\nconst props = defineProps<CalendarGridRowProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n  <CalendarGridRow\n    class=\"sigma-ui-calendar-grid-row\"\n    v-bind=\"forwardedProps\"\n  >\n    <slot />\n  </CalendarGridRow>\n</template>\n\n<style>\n.sigma-ui-calendar-grid-row {\n  display: flex;\n}\n</style>\n"
    },
    {
      "name": "CalendarHeadCell.vue",
      "content": "<script lang=\"ts\" setup>\nimport { CalendarHeadCell, type CalendarHeadCellProps, useForwardProps } from 'radix-vue';\n\nconst props = defineProps<CalendarHeadCellProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n  <CalendarHeadCell\n    class=\"sigma-ui-calendar-head-cell\"\n    v-bind=\"forwardedProps\"\n  >\n    <slot />\n  </CalendarHeadCell>\n</template>\n\n<style>\n.sigma-ui-calendar-head-cell {\n  width: 2.25rem;\n  border-radius: var(--radius-md);\n  font-size: 0.8rem;\n  font-weight: normal;\n  color: hsl(var(--muted-foreground));\n}\n</style>\n"
    },
    {
      "name": "CalendarHeader.vue",
      "content": "<script lang=\"ts\" setup>\nimport { CalendarHeader, type CalendarHeaderProps, useForwardProps } from 'radix-vue';\n\nconst props = defineProps<CalendarHeaderProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n  <CalendarHeader\n    class=\"sigma-ui-calendar-header\"\n    v-bind=\"forwardedProps\"\n  >\n    <slot />\n  </CalendarHeader>\n</template>\n\n<style>\n.sigma-ui-calendar-header {\n  position: relative;\n  display: flex;\n  width: 100%;\n  align-items: center;\n  justify-content: space-between;\n  padding-top: 0.25rem;\n}\n</style>\n"
    },
    {
      "name": "CalendarHeading.vue",
      "content": "<script lang=\"ts\" setup>\nimport { CalendarHeading, type CalendarHeadingProps, useForwardProps } from 'radix-vue';\n\nconst props = defineProps<CalendarHeadingProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n  <CalendarHeading\n    v-slot=\"{ headingValue }\"\n    class=\"sigma-ui-calendar-heading\"\n    v-bind=\"forwardedProps\"\n  >\n    <slot :heading-value=\"headingValue\">\n      {{ headingValue }}\n    </slot>\n  </CalendarHeading>\n</template>\n\n<style>\n.sigma-ui-calendar-heading {\n  font-size: 0.875rem;\n  font-weight: 500;\n}\n</style>\n"
    },
    {
      "name": "CalendarNextButton.vue",
      "content": "<script lang=\"ts\" setup>\nimport { CalendarNext, type CalendarNextProps, useForwardProps } from 'radix-vue';\nimport { ChevronRightIcon } from 'lucide-vue-next';\nimport { buttonVariants } from '@ui/registry/css/ui/button';\n\nconst props = defineProps<CalendarNextProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n  <CalendarNext\n    class=\"sigma-ui-calendar-next\"\n    :class=\"[buttonVariants({ variant: 'outline' })]\"\n    v-bind=\"forwardedProps\"\n  >\n    <slot>\n      <ChevronRightIcon class=\"sigma-ui-calendar-next__icon\" />\n    </slot>\n  </CalendarNext>\n</template>\n\n<style>\n.sigma-ui-calendar-next {\n  height: 1.75rem;\n  width: 1.75rem;\n  background-color: transparent;\n  padding: 0;\n  opacity: 0.5;\n  border: 1px solid hsl(var(--border));\n  border-radius: var(--radius-sm);\n  transition-property: all;\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n  transition-duration: 150ms;\n}\n\n.sigma-ui-calendar-next:hover {\n  opacity: 1;\n  background-color: hsl(var(--accent));\n  color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-calendar-next__icon {\n  height: 1rem;\n  width: 1rem;\n}\n</style>\n"
    },
    {
      "name": "CalendarPrevButton.vue",
      "content": "<script lang=\"ts\" setup>\nimport { CalendarPrev, type CalendarPrevProps, useForwardProps } from 'radix-vue';\nimport { ChevronLeftIcon } from 'lucide-vue-next';\nimport { buttonVariants } from '@ui/registry/css/ui/button';\n\nconst props = defineProps<CalendarPrevProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n  <CalendarPrev\n    class=\"sigma-ui-calendar-prev\"\n    :class=\"[buttonVariants({ variant: 'outline' })]\"\n    v-bind=\"forwardedProps\"\n  >\n    <slot>\n      <ChevronLeftIcon class=\"sigma-ui-calendar-prev__icon\" />\n    </slot>\n  </CalendarPrev>\n</template>\n\n<style>\n.sigma-ui-calendar-prev {\n  height: 1.75rem;\n  width: 1.75rem;\n  background-color: transparent;\n  padding: 0;\n  opacity: 0.5;\n  border: 1px solid hsl(var(--border));\n  border-radius: var(--radius-sm);\n  transition-property: all;\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n  transition-duration: 150ms;\n}\n\n.sigma-ui-calendar-prev:hover {\n  opacity: 1;\n  background-color: hsl(var(--accent));\n  color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-calendar-prev__icon {\n  height: 1rem;\n  width: 1rem;\n}\n</style>\n"
    },
    {
      "name": "index.ts",
      "content": "export { default as Calendar } from './Calendar.vue';\nexport { default as CalendarCell } from './CalendarCell.vue';\nexport { default as CalendarCellTrigger } from './CalendarCellTrigger.vue';\nexport { default as CalendarGrid } from './CalendarGrid.vue';\nexport { default as CalendarGridBody } from './CalendarGridBody.vue';\nexport { default as CalendarGridHead } from './CalendarGridHead.vue';\nexport { default as CalendarGridRow } from './CalendarGridRow.vue';\nexport { default as CalendarHeadCell } from './CalendarHeadCell.vue';\nexport { default as CalendarHeader } from './CalendarHeader.vue';\nexport { default as CalendarHeading } from './CalendarHeading.vue';\nexport { default as CalendarNextButton } from './CalendarNextButton.vue';\nexport { default as CalendarPrevButton } from './CalendarPrevButton.vue';\n"
    }
  ],
  "type": "components:ui"
}