{
  "name": "combobox",
  "dependencies": [
    "@vueuse/core"
  ],
  "registryDependencies": [],
  "files": [
    {
      "name": "Combobox.vue",
      "content": "<script setup lang=\"ts\">\nimport { ComboboxRoot, type ComboboxRootEmits, type ComboboxRootProps, useForwardPropsEmits } from 'reka-ui';\n\nconst props = defineProps<ComboboxRootProps>();\nconst emits = defineEmits<ComboboxRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n  <ComboboxRoot v-bind=\"forwarded\">\n    <slot />\n  </ComboboxRoot>\n</template>\n"
    },
    {
      "name": "ComboboxAnchor.vue",
      "content": "<script setup lang=\"ts\">\nimport type { ComboboxAnchorProps } from 'reka-ui';\nimport { ComboboxAnchor, useForwardProps } from 'reka-ui';\n\nconst props = defineProps<ComboboxAnchorProps>();\n\nconst forwarded = useForwardProps(props);\n</script>\n\n<template>\n  <ComboboxAnchor\n    v-bind=\"{ ...forwarded, ...$attrs }\"\n    :class=\"['sigma-ui-combobox-anchor', $attrs.class]\"\n  >\n    <slot />\n  </ComboboxAnchor>\n</template>\n\n<style>\n.sigma-ui-combobox-anchor {\n  width: 200px;\n}\n</style>\n"
    },
    {
      "name": "ComboboxEmpty.vue",
      "content": "<script setup lang=\"ts\">\nimport type { ComboboxEmptyProps } from 'reka-ui';\nimport { ComboboxEmpty } from 'reka-ui';\n\nconst props = defineProps<ComboboxEmptyProps>();\n</script>\n\n<template>\n  <ComboboxEmpty\n    v-bind=\"{ ...props, ...$attrs }\"\n    :class=\"['sigma-ui-combobox-empty', $attrs.class]\"\n  >\n    <slot />\n  </ComboboxEmpty>\n</template>\n\n<style>\n.sigma-ui-combobox-empty {\n  padding-top: 1.5rem;\n  padding-bottom: 1.5rem;\n  text-align: center;\n  font-size: 0.875rem;\n  line-height: 1.25rem;\n}\n</style>\n"
    },
    {
      "name": "ComboboxGroup.vue",
      "content": "<script setup lang=\"ts\">\nimport type { ComboboxGroupProps } from 'reka-ui';\nimport { ComboboxGroup, ComboboxLabel } from 'reka-ui';\n\nconst props = defineProps<ComboboxGroupProps & {\n  heading?: string;\n}>();\n</script>\n\n<template>\n  <ComboboxGroup\n    v-bind=\"{ ...props, ...$attrs }\"\n    :class=\"['sigma-ui-combobox-group', $attrs.class]\"\n  >\n    <ComboboxLabel\n      v-if=\"heading\"\n      class=\"sigma-ui-combobox-group__heading\"\n    >\n      {{ heading }}\n    </ComboboxLabel>\n    <slot />\n  </ComboboxGroup>\n</template>\n\n<style>\n.sigma-ui-combobox-group {\n  overflow: hidden;\n  padding: 0.25rem;\n  color: hsl(var(--foreground));\n}\n\n.sigma-ui-combobox-group [cmdk-group-heading] {\n  padding: 0.375rem 0.5rem;\n  font-size: 0.75rem;\n  line-height: 1rem;\n  font-weight: 500;\n  color: hsl(var(--muted-foreground));\n}\n\n.sigma-ui-combobox-group__heading {\n  padding: 0.375rem 0.5rem;\n  font-size: 0.75rem;\n  line-height: 1rem;\n  font-weight: 500;\n  color: hsl(var(--muted-foreground));\n}\n</style>\n"
    },
    {
      "name": "ComboboxInput.vue",
      "content": "<script setup lang=\"ts\">\nimport type { HTMLAttributes } from 'vue';\nimport { reactiveOmit } from '@vueuse/core';\nimport { ComboboxInput, type ComboboxInputEmits, type ComboboxInputProps, useForwardPropsEmits } from 'reka-ui';\n\nconst props = defineProps<ComboboxInputProps & {\n  class?: HTMLAttributes['class'];\n}>();\n\nconst emits = defineEmits<ComboboxInputEmits>();\n\nconst delegatedProps = reactiveOmit(props, 'class');\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits);\n</script>\n\n<template>\n  <ComboboxInput\n    v-bind=\"forwarded\"\n    :class=\"['sigma-ui-combobox-input', props.class]\"\n  >\n    <slot />\n  </ComboboxInput>\n</template>\n\n<style>\n.sigma-ui-combobox-input {\n  display: flex;\n  height: 2.25rem;\n  width: 100%;\n  border-radius: 0.375rem;\n  border: 1px solid hsl(var(--input));\n  background-color: transparent;\n  padding: 0.25rem 0.75rem;\n  font-size: 0.875rem;\n  line-height: 1.25rem;\n  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n  transition-duration: 150ms;\n}\n\n.sigma-ui-combobox-input:focus-visible {\n  outline: none;\n  box-shadow: 0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--ring));\n}\n\n.sigma-ui-combobox-input:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\n\n.sigma-ui-combobox-input::file-selector-button {\n  border: 0;\n  background-color: transparent;\n  font-size: 0.875rem;\n  font-weight: 500;\n}\n\n.sigma-ui-combobox-input::placeholder {\n  color: hsl(var(--muted-foreground));\n}\n</style>\n"
    },
    {
      "name": "ComboboxItem.vue",
      "content": "<script setup lang=\"ts\">\nimport type { ComboboxItemEmits, ComboboxItemProps } from 'reka-ui';\nimport { ComboboxItem, useForwardPropsEmits } from 'reka-ui';\n\nconst props = defineProps<ComboboxItemProps>();\nconst emits = defineEmits<ComboboxItemEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n  <ComboboxItem\n    v-bind=\"{ ...forwarded, ...$attrs }\"\n    :class=\"['sigma-ui-combobox-item', $attrs.class]\"\n  >\n    <slot />\n  </ComboboxItem>\n</template>\n\n<style>\n.sigma-ui-combobox-item {\n  position: relative;\n  display: flex;\n  cursor: default;\n  gap: 0.5rem;\n  user-select: none;\n  justify-content: space-between;\n  align-items: center;\n  border-radius: 0.125rem;\n  padding: 0.375rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.25rem;\n  outline: none;\n}\n\n.sigma-ui-combobox-item[data-highlighted] {\n  background-color: hsl(var(--accent));\n  color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-combobox-item[data-disabled] {\n  pointer-events: none;\n  opacity: 0.5;\n}\n\n.sigma-ui-combobox-item svg {\n  width: 1rem;\n  height: 1rem;\n  flex-shrink: 0;\n}\n</style>\n"
    },
    {
      "name": "ComboboxList.vue",
      "content": "<script setup lang=\"ts\">\nimport type { ComboboxContentEmits, ComboboxContentProps } from 'reka-ui';\nimport { ComboboxContent, ComboboxPortal, ComboboxViewport, useForwardPropsEmits } from 'reka-ui';\n\nconst props = withDefaults(defineProps<ComboboxContentProps>(), {\n  position: 'popper',\n  align: 'center',\n  sideOffset: 4,\n});\nconst emits = defineEmits<ComboboxContentEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n  <ComboboxPortal>\n    <ComboboxContent\n      v-bind=\"{ ...forwarded, ...$attrs }\"\n      :class=\"['sigma-ui-combobox-list', $attrs.class]\"\n    >\n      <ComboboxViewport>\n        <slot />\n      </ComboboxViewport>\n    </ComboboxContent>\n  </ComboboxPortal>\n</template>\n\n<style>\n.sigma-ui-combobox-list {\n  position: relative;\n  z-index: 50;\n  width: 200px;\n  border-radius: var(--radius-md);\n  border: 1px solid hsl(var(--border));\n  background-color: hsl(var(--popover));\n  color: hsl(var(--popover-foreground));\n  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n  transform-origin: var(--reka-popover-content-transform-origin);\n}\n\n.sigma-ui-combobox-list[data-state=\"open\"][data-side=\"bottom\"] {\n  animation: slideFromTop 150ms ease-out;\n}\n\n.sigma-ui-combobox-list[data-state=\"closed\"][data-side=\"bottom\"] {\n  animation: slideToTop 150ms ease-in;\n}\n\n.sigma-ui-combobox-list[data-state=\"open\"][data-side=\"top\"] {\n  animation: slideFromBottom 150ms ease-out;\n}\n\n.sigma-ui-combobox-list[data-state=\"closed\"][data-side=\"top\"] {\n  animation: slideToBottom 150ms ease-in;\n}\n\n.sigma-ui-combobox-list[data-state=\"open\"][data-side=\"left\"] {\n  animation: slideFromRight 150ms ease-out;\n}\n\n.sigma-ui-combobox-list[data-state=\"closed\"][data-side=\"left\"] {\n  animation: slideToRight 150ms ease-in;\n}\n\n.sigma-ui-combobox-list[data-state=\"open\"][data-side=\"right\"] {\n  animation: slideFromLeft 150ms ease-out;\n}\n\n.sigma-ui-combobox-list[data-state=\"closed\"][data-side=\"right\"] {\n  animation: slideToLeft 150ms ease-in;\n}\n\n@keyframes slideFromTop {\n  from {\n    transform: translateY(-1rem) scaleY(0.98);\n    filter: blur(4px);\n  }\n  to {\n    transform: translateY(0) scaleY(1);\n    filter: blur(0px);\n  }\n}\n\n@keyframes slideToTop {\n  from {\n    transform: translateY(0) scaleY(1);\n    filter: blur(0px);\n  }\n  to {\n    transform: translateY(-1rem) scaleY(0.98);\n    filter: blur(4px);\n  }\n}\n\n@keyframes slideFromBottom {\n  from {\n    transform: translateY(1rem) scaleY(0.98);\n    filter: blur(4px);\n  }\n  to {\n    transform: translateY(0) scaleY(1);\n    filter: blur(0px);\n  }\n}\n\n@keyframes slideToBottom {\n  from {\n    transform: translateY(0) scaleY(1);\n    filter: blur(0px);\n  }\n  to {\n    transform: translateY(1rem) scaleY(0.98);\n    filter: blur(4px);\n  }\n}\n\n@keyframes slideFromLeft {\n  from {\n    transform: translateX(-1rem) scaleY(0.98);\n    filter: blur(4px);\n  }\n  to {\n    transform: translateX(0) scaleY(1);\n    filter: blur(0px);\n  }\n}\n\n@keyframes slideToLeft {\n  from {\n    transform: translateX(0) scaleY(1);\n    filter: blur(0px);\n  }\n  to {\n    transform: translateX(-1rem) scaleY(0.98);\n    filter: blur(4px);\n  }\n}\n\n@keyframes slideFromRight {\n  from {\n    transform: translateX(1rem) scaleY(0.98);\n    filter: blur(4px);\n  }\n  to {\n    transform: translateX(0) scaleY(1);\n    filter: blur(0px);\n  }\n}\n\n@keyframes slideToRight {\n  from {\n    transform: translateX(0) scaleY(1);\n    filter: blur(0px);\n  }\n  to {\n    transform: translateX(1rem) scaleY(0.98);\n    filter: blur(4px);\n  }\n}\n</style>\n"
    },
    {
      "name": "ComboboxSeparator.vue",
      "content": "<script setup lang=\"ts\">\nimport type { ComboboxSeparatorProps } from 'reka-ui';\nimport { ComboboxSeparator } from 'reka-ui';\n\nconst props = defineProps<ComboboxSeparatorProps>();\n</script>\n\n<template>\n  <ComboboxSeparator\n    v-bind=\"{ ...props, ...$attrs }\"\n    :class=\"['sigma-ui-combobox-separator', $attrs.class]\"\n  >\n    <slot />\n  </ComboboxSeparator>\n</template>\n\n<style>\n.sigma-ui-combobox-separator {\n  margin-left: -0.25rem;\n  margin-right: -0.25rem;\n  height: 1px;\n  background-color: hsl(var(--border));\n}\n</style>\n"
    },
    {
      "name": "ComboboxTrigger.vue",
      "content": "<script setup lang=\"ts\">\nimport type { ComboboxTriggerProps } from 'reka-ui';\nimport { ComboboxTrigger, useForwardProps } from 'reka-ui';\n\nconst props = defineProps<ComboboxTriggerProps>();\n\nconst forwarded = useForwardProps(props);\n</script>\n\n<template>\n  <ComboboxTrigger\n    v-bind=\"{ ...forwarded, ...$attrs }\"\n    :class=\"[$attrs.class]\"\n    tabindex=\"0\"\n  >\n    <slot />\n  </ComboboxTrigger>\n</template>\n"
    },
    {
      "name": "index.ts",
      "content": "export { default as Combobox } from './Combobox.vue';\nexport { default as ComboboxAnchor } from './ComboboxAnchor.vue';\nexport { default as ComboboxEmpty } from './ComboboxEmpty.vue';\nexport { default as ComboboxGroup } from './ComboboxGroup.vue';\nexport { default as ComboboxInput } from './ComboboxInput.vue';\nexport { default as ComboboxItem } from './ComboboxItem.vue';\nexport { default as ComboboxList } from './ComboboxList.vue';\nexport { default as ComboboxSeparator } from './ComboboxSeparator.vue';\n\nexport { ComboboxCancel, ComboboxItemIndicator, ComboboxTrigger } from 'reka-ui';\n"
    }
  ],
  "type": "components:ui"
}