Files
solidtime/resources/js/packages/ui/src/progress/Progress.vue
2026-03-23 17:43:46 +01:00

26 lines
819 B
Vue

<script setup lang="ts">
import { cn } from '../utils/cn';
import { ProgressIndicator, ProgressRoot, type ProgressRootProps } from 'reka-ui';
import { computed, type HTMLAttributes } from 'vue';
const props = withDefaults(defineProps<ProgressRootProps & { class?: HTMLAttributes['class'] }>(), {
modelValue: 0,
});
const delegatedProps = computed(() => {
const { class: _, ...delegated } = props;
return delegated;
});
</script>
<template>
<ProgressRoot
v-bind="delegatedProps"
:class="cn('relative h-2 w-full overflow-hidden rounded-full bg-primary/20', props.class)">
<ProgressIndicator
class="h-full w-full flex-1 bg-quaternary transition-all"
:style="`transform: translateX(-${100 - (props.modelValue ?? 0)}%)`" />
</ProgressRoot>
</template>