UNPKG

gvf3n4ygn-test

Version:
20 lines 2.45 kB
{ "name": "toggle-group", "dependencies": [], "registryDependencies": [], "files": [ { "name": "ToggleGroup.vue", "content": "<script setup lang=\"ts\">\nimport type { VariantProps } from 'class-variance-authority';\nimport { provide } from 'vue';\nimport { ToggleGroupRoot, type ToggleGroupRootEmits, type ToggleGroupRootProps, useForwardPropsEmits } from 'reka-ui';\nimport type { toggleVariants } from '@ui/registry/css/ui/toggle';\n\ntype ToggleGroupVariants = VariantProps<typeof toggleVariants>;\n\nconst props = defineProps<ToggleGroupRootProps & {\n\n variant?: ToggleGroupVariants['variant'];\n size?: ToggleGroupVariants['size'];\n}>();\nconst emits = defineEmits<ToggleGroupRootEmits>();\n\nprovide('toggleGroup', {\n variant: props.variant,\n size: props.size,\n});\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <ToggleGroupRoot\n v-bind=\"forwarded\"\n class=\"sigma-ui-toggle-group\"\n >\n <slot />\n </ToggleGroupRoot>\n</template>\n\n<style>\n.sigma-ui-toggle-group {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n}\n</style>\n" }, { "name": "ToggleGroupItem.vue", "content": "<script setup lang=\"ts\">\nimport type { VariantProps } from 'class-variance-authority';\nimport { computed, inject } from 'vue';\nimport { ToggleGroupItem, type ToggleGroupItemProps, useForwardProps } from 'reka-ui';\nimport { toggleVariants } from '@ui/registry/css/ui/toggle';\n\ntype ToggleGroupVariants = VariantProps<typeof toggleVariants>;\n\nconst props = defineProps<ToggleGroupItemProps & {\n variant?: ToggleGroupVariants['variant'];\n size?: ToggleGroupVariants['size'];\n}>();\n\nconst context = inject<ToggleGroupVariants>('toggleGroup');\n\nconst delegatedProps = computed(() => ({ ...props, variant: undefined, size: undefined }));\n\nconst forwardedProps = useForwardProps(delegatedProps);\n</script>\n\n<template>\n <ToggleGroupItem\n v-bind=\"forwardedProps\"\n :class=\"[\n toggleVariants({\n variant: context?.variant || variant,\n size: context?.size || size,\n }),\n ]\"\n >\n <slot />\n </ToggleGroupItem>\n</template>\n" }, { "name": "index.ts", "content": "export { default as ToggleGroup } from './ToggleGroup.vue';\nexport { default as ToggleGroupItem } from './ToggleGroupItem.vue';\n" } ], "type": "components:ui" }