gvf3n4ygn-test
Version:
CLI for SIGMA-UI components.
20 lines • 2.45 kB
JSON
{
"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"
}