UNPKG

sigma-ui

Version:
50 lines 7.49 kB
{ "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';\nimport { cn } from '@ui/utils';\n\nconst props = defineProps<ComboboxAnchorProps>();\n\nconst forwarded = useForwardProps(props);\n</script>\n\n<template>\n <ComboboxAnchor\n v-bind=\"{ ...forwarded, ...$attrs }\"\n :class=\"cn('w-[200px]', $attrs.class ?? '')\"\n >\n <slot />\n </ComboboxAnchor>\n</template>\n" }, { "name": "ComboboxEmpty.vue", "content": "<script setup lang=\"ts\">\nimport type { ComboboxEmptyProps } from 'reka-ui';\nimport { ComboboxEmpty } from 'reka-ui';\nimport { cn } from '@ui/utils';\n\nconst props = defineProps<ComboboxEmptyProps>();\n</script>\n\n<template>\n <ComboboxEmpty\n v-bind=\"{ ...props, ...$attrs }\"\n :class=\"cn('py-6 text-center text-sm', $attrs.class ?? '')\"\n >\n <slot />\n </ComboboxEmpty>\n</template>\n" }, { "name": "ComboboxGroup.vue", "content": "<script setup lang=\"ts\">\nimport type { ComboboxGroupProps } from 'reka-ui';\nimport { ComboboxGroup, ComboboxLabel } from 'reka-ui';\nimport { cn } from '@ui/utils';\n\nconst props = defineProps<ComboboxGroupProps & {\n heading?: string;\n}>();\n</script>\n\n<template>\n <ComboboxGroup\n v-bind=\"{ ...props, ...$attrs }\"\n :class=\"cn('overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground', $attrs.class ?? '')\"\n >\n <ComboboxLabel\n v-if=\"heading\"\n class=\"px-2 py-1.5 text-xs font-medium text-muted-foreground\"\n >\n {{ heading }}\n </ComboboxLabel>\n <slot />\n </ComboboxGroup>\n</template>\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';\nimport { cn } from '@ui/utils';\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=\"cn('flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background disabled:cursor-not-allowed disabled:opacity-50', props.class)\"\n >\n <slot />\n </ComboboxInput>\n</template>\n" }, { "name": "ComboboxItem.vue", "content": "<script setup lang=\"ts\">\nimport type { ComboboxItemEmits, ComboboxItemProps } from 'reka-ui';\nimport { ComboboxItem, useForwardPropsEmits } from 'reka-ui';\nimport { cn } from '@ui/utils';\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=\"cn('relative flex cursor-default gap-2 select-none justify-between items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0', $attrs.class ?? '')\"\n >\n <slot />\n </ComboboxItem>\n</template>\n" }, { "name": "ComboboxList.vue", "content": "<script setup lang=\"ts\">\nimport type { ComboboxContentEmits, ComboboxContentProps } from 'reka-ui';\nimport { ComboboxContent, ComboboxPortal, ComboboxViewport, useForwardPropsEmits } from 'reka-ui';\nimport { cn } from '@ui/utils';\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=\"cn('z-50 w-[200px] rounded-md border bg-popover text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', $attrs.class ?? '')\"\n >\n <ComboboxViewport>\n <slot />\n </ComboboxViewport>\n </ComboboxContent>\n </ComboboxPortal>\n</template>\n" }, { "name": "ComboboxSeparator.vue", "content": "<script setup lang=\"ts\">\nimport type { ComboboxSeparatorProps } from 'reka-ui';\nimport { ComboboxSeparator } from 'reka-ui';\nimport { cn } from '@ui/utils';\n\nconst props = defineProps<ComboboxSeparatorProps>();\n</script>\n\n<template>\n <ComboboxSeparator\n v-bind=\"{ ...props, ...$attrs }\"\n :class=\"cn('-mx-1 h-px bg-border', $attrs.class ?? '')\"\n >\n <slot />\n </ComboboxSeparator>\n</template>\n" }, { "name": "ComboboxTrigger.vue", "content": "<script setup lang=\"ts\">\nimport type { ComboboxTriggerProps } from 'reka-ui';\nimport { ComboboxTrigger, useForwardProps } from 'reka-ui';\nimport { cn } from '@ui/utils';\n\nconst props = defineProps<ComboboxTriggerProps>();\n\nconst forwarded = useForwardProps(props);\n</script>\n\n<template>\n <ComboboxTrigger\n v-bind=\"{ ...forwarded, ...$attrs }\"\n :class=\"cn('', $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" }