sigma-ui
Version:
CLI for SIGMA-UI components.
20 lines • 2.4 kB
JSON
{
"name": "scroll-area",
"dependencies": [],
"registryDependencies": [],
"files": [
{
"name": "ScrollArea.vue",
"content": "<script setup lang=\"ts\">\nimport {\n ScrollAreaCorner,\n ScrollAreaRoot,\n type ScrollAreaRootProps,\n ScrollAreaViewport,\n} from 'reka-ui';\n\nimport ScrollBar from './ScrollBar.vue';\n\nconst props = defineProps<ScrollAreaRootProps>();\n</script>\n\n<template>\n <ScrollAreaRoot\n v-bind=\"props\"\n class=\"sigma-ui-scroll-area\"\n >\n <ScrollAreaViewport class=\"sigma-ui-scroll-area__viewport\">\n <slot />\n </ScrollAreaViewport>\n <ScrollBar />\n <ScrollAreaCorner />\n </ScrollAreaRoot>\n</template>\n\n<style>\n.sigma-ui-scroll-area {\n position: relative;\n overflow: hidden;\n}\n\n.sigma-ui-scroll-area__viewport {\n width: 100%;\n height: 100%;\n border-radius: inherit;\n}\n</style>\n"
},
{
"name": "ScrollBar.vue",
"content": "<script setup lang=\"ts\">\nimport { ScrollAreaScrollbar, type ScrollAreaScrollbarProps, ScrollAreaThumb } from 'reka-ui';\n\nconst props = withDefaults(defineProps<ScrollAreaScrollbarProps>(), {\n orientation: 'vertical',\n});\n</script>\n\n<template>\n <ScrollAreaScrollbar\n v-bind=\"props\"\n class=\"sigma-ui-scroll-area-scrollbar\"\n >\n <ScrollAreaThumb class=\"sigma-ui-scroll-area-scrollbar__thumb\" />\n </ScrollAreaScrollbar>\n</template>\n\n<style>\n.sigma-ui-scroll-area-scrollbar {\n display: flex;\n touch-action: none;\n transition-duration: 150ms;\n transition-property: color, background-color, border-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n}\n\n.sigma-ui-scroll-area-scrollbar[data-orientation=\"vertical\"] {\n width: 0.625rem;\n height: 100%;\n padding: 1px;\n border-left: 1px solid transparent;\n}\n\n.sigma-ui-scroll-area-scrollbar[data-orientation=\"horizontal\"] {\n height: 0.625rem;\n flex-direction: column;\n padding: 1px;\n border-top: 1px solid transparent;\n}\n\n.sigma-ui-scroll-area-scrollbar__thumb {\n position: relative;\n flex: 1;\n border-radius: var(--radius-full);\n background-color: hsl(var(--border));\n}\n</style>\n"
},
{
"name": "index.ts",
"content": "export { default as ScrollArea } from './ScrollArea.vue';\nexport { default as ScrollBar } from './ScrollBar.vue';\n"
}
],
"type": "components:ui"
}