gvf3n4ygn-test
Version:
CLI for SIGMA-UI components.
72 lines • 15.1 kB
JSON
{
"name": "menubar",
"dependencies": [],
"registryDependencies": [],
"files": [
{
"name": "Menubar.vue",
"content": "<script setup lang=\"ts\">\nimport {\n MenubarRoot,\n type MenubarRootEmits,\n type MenubarRootProps,\n useForwardPropsEmits,\n} from 'radix-vue';\n\nconst props = defineProps<MenubarRootProps>();\nconst emits = defineEmits<MenubarRootEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <MenubarRoot\n v-bind=\"forwarded\"\n class=\"sigma-ui-menubar\"\n >\n <slot />\n </MenubarRoot>\n</template>\n\n<style>\n.sigma-ui-menubar {\n display: flex;\n height: 2.5rem;\n align-items: center;\n gap: 0.25rem;\n border-radius: var(--radius-md);\n border: 1px solid hsl(var(--border));\n background-color: hsl(var(--background));\n padding: 0.25rem;\n}\n</style>\n"
},
{
"name": "MenubarCheckboxItem.vue",
"content": "<script setup lang=\"ts\">\nimport {\n MenubarCheckboxItem,\n type MenubarCheckboxItemEmits,\n type MenubarCheckboxItemProps,\n MenubarItemIndicator,\n useForwardPropsEmits,\n} from 'radix-vue';\nimport { CheckIcon } from 'lucide-vue-next';\n\nconst props = defineProps<MenubarCheckboxItemProps>();\nconst emits = defineEmits<MenubarCheckboxItemEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <MenubarCheckboxItem\n v-bind=\"forwarded\"\n class=\"sigma-ui-menubar-checkbox-item\"\n >\n <span class=\"sigma-ui-menubar-checkbox-item__indicator\">\n <MenubarItemIndicator>\n <CheckIcon class=\"sigma-ui-menubar-checkbox-item__icon\" />\n </MenubarItemIndicator>\n </span>\n <slot />\n </MenubarCheckboxItem>\n</template>\n\n<style>\n.sigma-ui-menubar-checkbox-item {\n position: relative;\n display: flex;\n cursor: default;\n user-select: none;\n align-items: center;\n border-radius: var(--radius-sm);\n padding: 0.375rem 0.5rem 0.375rem 2rem;\n font-size: 0.875rem;\n outline: none;\n}\n\n.sigma-ui-menubar-checkbox-item:focus {\n background-color: hsl(var(--accent));\n color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-menubar-checkbox-item[data-disabled] {\n pointer-events: none;\n opacity: 0.5;\n}\n\n.sigma-ui-menubar-checkbox-item__indicator {\n position: absolute;\n left: 0.5rem;\n display: flex;\n height: 0.875rem;\n width: 0.875rem;\n align-items: center;\n justify-content: center;\n}\n\n.sigma-ui-menubar-checkbox-item__icon {\n width: 1rem;\n height: 1rem;\n}\n</style>\n"
},
{
"name": "MenubarContent.vue",
"content": "<script setup lang=\"ts\">\nimport {\n MenubarContent,\n type MenubarContentProps,\n MenubarPortal,\n useForwardProps,\n} from 'radix-vue';\n\nconst props = withDefaults(\n defineProps<MenubarContentProps>(),\n {\n align: 'start',\n alignOffset: -4,\n sideOffset: 8,\n },\n);\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n <MenubarPortal>\n <MenubarContent\n v-bind=\"forwardedProps\"\n class=\"sigma-ui-menubar-content\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </MenubarContent>\n </MenubarPortal>\n</template>\n\n<style>\n.sigma-ui-menubar-content {\n z-index: 50;\n min-width: 12rem;\n overflow: hidden;\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 padding: 0.25rem;\n box-shadow: var(--shadow-md);\n transform-origin: var(--radix-menubar-content-transform-origin);\n animation: fadeOut 100ms ease-in forwards;\n}\n\n.sigma-ui-menubar-content[data-state=\"open\"] {\n animation: fadeIn 200ms ease-out;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n transform: scale(1);\n }\n to {\n opacity: 0;\n transform: scale(0.95);\n }\n}\n</style>\n"
},
{
"name": "MenubarGroup.vue",
"content": "<script setup lang=\"ts\">\nimport { MenubarGroup, type MenubarGroupProps } from 'radix-vue';\n\nconst props = defineProps<MenubarGroupProps>();\n</script>\n\n<template>\n <MenubarGroup v-bind=\"props\">\n <slot />\n </MenubarGroup>\n</template>\n"
},
{
"name": "MenubarItem.vue",
"content": "<script setup lang=\"ts\">\nimport {\n MenubarItem,\n type MenubarItemEmits,\n type MenubarItemProps,\n useForwardPropsEmits,\n} from 'radix-vue';\n\nconst props = defineProps<MenubarItemProps & { inset?: boolean }>();\nconst emits = defineEmits<MenubarItemEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <MenubarItem\n v-bind=\"forwarded\"\n class=\"sigma-ui-menubar-item\"\n :class=\"[{ 'sigma-ui-menubar-item--inset': inset }]\"\n >\n <slot />\n </MenubarItem>\n</template>\n\n<style>\n.sigma-ui-menubar-item {\n position: relative;\n display: flex;\n cursor: default;\n user-select: none;\n align-items: center;\n border-radius: var(--radius-sm);\n padding: 0.375rem 0.5rem;\n font-size: 0.875rem;\n outline: none;\n}\n\n.sigma-ui-menubar-item:focus {\n background-color: hsl(var(--accent));\n color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-menubar-item[data-disabled] {\n pointer-events: none;\n opacity: 0.5;\n}\n\n.sigma-ui-menubar-item--inset {\n padding-left: 2rem;\n}\n</style>\n"
},
{
"name": "MenubarLabel.vue",
"content": "<script setup lang=\"ts\">\nimport { MenubarLabel, type MenubarLabelProps } from 'radix-vue';\n\nconst props = defineProps<MenubarLabelProps & { inset?: boolean }>();\n</script>\n\n<template>\n <MenubarLabel\n class=\"sigma-ui-menubar-label\"\n :class=\"[{ 'sigma-ui-menubar-label--inset': inset }, $attrs.class]\"\n >\n <slot />\n </MenubarLabel>\n</template>\n\n<style>\n.sigma-ui-menubar-label {\n padding: 0.375rem 0.5rem;\n font-size: 0.875rem;\n font-weight: 600;\n}\n\n.sigma-ui-menubar-label--inset {\n padding-left: 2rem;\n}\n</style>\n"
},
{
"name": "MenubarMenu.vue",
"content": "<script setup lang=\"ts\">\nimport { MenubarMenu, type MenubarMenuProps } from 'radix-vue';\n\nconst props = defineProps<MenubarMenuProps>();\n</script>\n\n<template>\n <MenubarMenu v-bind=\"props\">\n <slot />\n </MenubarMenu>\n</template>\n"
},
{
"name": "MenubarRadioGroup.vue",
"content": "<script setup lang=\"ts\">\nimport {\n MenubarRadioGroup,\n type MenubarRadioGroupEmits,\n type MenubarRadioGroupProps,\n useForwardPropsEmits,\n} from 'radix-vue';\n\nconst props = defineProps<MenubarRadioGroupProps>();\n\nconst emits = defineEmits<MenubarRadioGroupEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <MenubarRadioGroup v-bind=\"forwarded\">\n <slot />\n </MenubarRadioGroup>\n</template>\n"
},
{
"name": "MenubarRadioItem.vue",
"content": "<script setup lang=\"ts\">\nimport {\n MenubarItemIndicator,\n MenubarRadioItem,\n type MenubarRadioItemEmits,\n type MenubarRadioItemProps,\n useForwardPropsEmits,\n} from 'radix-vue';\nimport { CircleIcon } from 'lucide-vue-next';\n\nconst props = defineProps<MenubarRadioItemProps>();\nconst emits = defineEmits<MenubarRadioItemEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <MenubarRadioItem\n v-bind=\"forwarded\"\n class=\"sigma-ui-menubar-radio-item\"\n >\n <span class=\"sigma-ui-menubar-radio-item__indicator\">\n <MenubarItemIndicator>\n <CircleIcon class=\"sigma-ui-menubar-radio-item__icon\" />\n </MenubarItemIndicator>\n </span>\n <slot />\n </MenubarRadioItem>\n</template>\n\n<style>\n.sigma-ui-menubar-radio-item {\n position: relative;\n display: flex;\n cursor: default;\n user-select: none;\n align-items: center;\n border-radius: var(--radius-sm);\n padding: 0.375rem 0.5rem 0.375rem 2rem;\n font-size: 0.875rem;\n outline: none;\n}\n\n.sigma-ui-menubar-radio-item:focus {\n background-color: hsl(var(--accent));\n color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-menubar-radio-item[data-disabled] {\n pointer-events: none;\n opacity: 0.5;\n}\n\n.sigma-ui-menubar-radio-item__indicator {\n position: absolute;\n left: 0.5rem;\n display: flex;\n height: 0.875rem;\n width: 0.875rem;\n align-items: center;\n justify-content: center;\n}\n\n.sigma-ui-menubar-radio-item__icon {\n width: 0.5rem;\n height: 0.5rem;\n fill: currentColor;\n}\n</style>\n"
},
{
"name": "MenubarSeparator.vue",
"content": "<script setup lang=\"ts\">\nimport { MenubarSeparator, type MenubarSeparatorProps, useForwardProps } from 'radix-vue';\n\nconst props = defineProps<MenubarSeparatorProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n <MenubarSeparator\n class=\"sigma-ui-menubar-separator\"\n v-bind=\"forwardedProps\"\n />\n</template>\n\n<style>\n.sigma-ui-menubar-separator {\n margin-inline: -0.25rem;\n margin-block: 0.25rem;\n height: 1px;\n background-color: hsl(var(--muted));\n}\n</style>\n"
},
{
"name": "MenubarShortcut.vue",
"content": "<script setup lang=\"ts\">\n\n</script>\n\n<template>\n <span\n class=\"sigma-ui-menubar-shortcut\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </span>\n</template>\n\n<style>\n.sigma-ui-menubar-shortcut {\n margin-left: auto;\n font-size: 0.75rem;\n letter-spacing: 0.05em;\n color: hsl(var(--muted-foreground));\n}\n</style>\n"
},
{
"name": "MenubarSub.vue",
"content": "<script setup lang=\"ts\">\nimport { MenubarSub, type MenubarSubEmits, useForwardPropsEmits } from 'radix-vue';\n\ninterface MenubarSubRootProps {\n defaultOpen?: boolean;\n open?: boolean;\n}\n\nconst props = defineProps<MenubarSubRootProps>();\nconst emits = defineEmits<MenubarSubEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <MenubarSub v-bind=\"forwarded\">\n <slot />\n </MenubarSub>\n</template>\n"
},
{
"name": "MenubarSubContent.vue",
"content": "<script setup lang=\"ts\">\nimport {\n MenubarPortal,\n MenubarSubContent,\n type MenubarSubContentEmits,\n type MenubarSubContentProps,\n useForwardPropsEmits,\n} from 'radix-vue';\n\nconst props = defineProps<MenubarSubContentProps>();\nconst emits = defineEmits<MenubarSubContentEmits>();\n\nconst forwarded = useForwardPropsEmits(props, emits);\n</script>\n\n<template>\n <MenubarPortal>\n <MenubarSubContent\n v-bind=\"forwarded\"\n class=\"sigma-ui-menubar-subcontent\"\n :class=\"[$attrs.class]\"\n >\n <slot />\n </MenubarSubContent>\n </MenubarPortal>\n</template>\n\n<style>\n.sigma-ui-menubar-subcontent {\n z-index: 50;\n min-width: 8rem;\n overflow: hidden;\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 padding: 0.25rem;\n box-shadow: var(--shadow-md);\n transform-origin: var(--radix-menubar-content-transform-origin);\n animation: fadeOut 100ms ease-in forwards;\n}\n\n.sigma-ui-menubar-subcontent[data-state=\"open\"] {\n animation: fadeIn 200ms ease-out;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n transform: scale(1);\n }\n to {\n opacity: 0;\n transform: scale(0.95);\n }\n}\n</style>\n"
},
{
"name": "MenubarSubTrigger.vue",
"content": "<script setup lang=\"ts\">\nimport { MenubarSubTrigger, type MenubarSubTriggerProps, useForwardProps } from 'radix-vue';\nimport { ChevronRightIcon } from 'lucide-vue-next';\n\nconst props = defineProps<MenubarSubTriggerProps & { inset?: boolean }>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n <MenubarSubTrigger\n v-bind=\"forwardedProps\"\n class=\"sigma-ui-menubar-subtrigger\"\n :class=\"[{ 'sigma-ui-menubar-subtrigger--inset': inset }]\"\n >\n <slot />\n <ChevronRightIcon class=\"sigma-ui-menubar-subtrigger__icon\" />\n </MenubarSubTrigger>\n</template>\n\n<style>\n.sigma-ui-menubar-subtrigger {\n display: flex;\n cursor: default;\n user-select: none;\n align-items: center;\n border-radius: var(--radius-sm);\n padding: 0.375rem 0.5rem;\n font-size: 0.875rem;\n outline: none;\n}\n\n.sigma-ui-menubar-subtrigger:focus {\n background-color: hsl(var(--accent));\n color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-menubar-subtrigger[data-state=\"open\"] {\n background-color: hsl(var(--accent));\n color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-menubar-subtrigger--inset {\n padding-left: 2rem;\n}\n\n.sigma-ui-menubar-subtrigger__icon {\n margin-left: auto;\n height: 1rem;\n width: 1rem;\n}\n</style>\n"
},
{
"name": "MenubarTrigger.vue",
"content": "<script setup lang=\"ts\">\nimport { MenubarTrigger, type MenubarTriggerProps, useForwardProps } from 'radix-vue';\n\nconst props = defineProps<MenubarTriggerProps>();\n\nconst forwardedProps = useForwardProps(props);\n</script>\n\n<template>\n <MenubarTrigger\n v-bind=\"forwardedProps\"\n class=\"sigma-ui-menubar-trigger\"\n >\n <slot />\n </MenubarTrigger>\n</template>\n\n<style>\n.sigma-ui-menubar-trigger {\n display: flex;\n cursor: default;\n user-select: none;\n align-items: center;\n border-radius: var(--radius-sm);\n padding: 0.375rem 0.75rem;\n font-size: 0.875rem;\n font-weight: 500;\n outline: none;\n}\n\n.sigma-ui-menubar-trigger:focus {\n background-color: hsl(var(--accent));\n color: hsl(var(--accent-foreground));\n}\n\n.sigma-ui-menubar-trigger[data-state=\"open\"] {\n background-color: hsl(var(--accent));\n color: hsl(var(--accent-foreground));\n}\n</style>\n"
},
{
"name": "index.ts",
"content": "export { default as Menubar } from './Menubar.vue';\nexport { default as MenubarItem } from './MenubarItem.vue';\nexport { default as MenubarContent } from './MenubarContent.vue';\nexport { default as MenubarGroup } from './MenubarGroup.vue';\nexport { default as MenubarMenu } from './MenubarMenu.vue';\nexport { default as MenubarRadioGroup } from './MenubarRadioGroup.vue';\nexport { default as MenubarRadioItem } from './MenubarRadioItem.vue';\nexport { default as MenubarCheckboxItem } from './MenubarCheckboxItem.vue';\nexport { default as MenubarSeparator } from './MenubarSeparator.vue';\nexport { default as MenubarSub } from './MenubarSub.vue';\nexport { default as MenubarSubContent } from './MenubarSubContent.vue';\nexport { default as MenubarSubTrigger } from './MenubarSubTrigger.vue';\nexport { default as MenubarTrigger } from './MenubarTrigger.vue';\nexport { default as MenubarShortcut } from './MenubarShortcut.vue';\nexport { default as MenubarLabel } from './MenubarLabel.vue';\n"
}
],
"type": "components:ui"
}