Teren-app/resources/js/Components/ui/progress/Progress.vue
2026-01-05 18:27:35 +01:00

35 lines
985 B
Vue

<script setup>
import { reactiveOmit } from "@vueuse/core";
import { ProgressIndicator, ProgressRoot } from "reka-ui";
import { cn } from "@/lib/utils";
const props = defineProps({
modelValue: { type: [Number, null], required: false, default: 0 },
max: { type: Number, required: false },
getValueLabel: { type: Function, required: false },
getValueText: { type: Function, required: false },
asChild: { type: Boolean, required: false },
as: { type: null, required: false },
class: { type: null, required: false },
});
const delegatedProps = reactiveOmit(props, "class");
</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-primary transition-all"
:style="`transform: translateX(-${100 - (props.modelValue ?? 0)}%);`"
/>
</ProgressRoot>
</template>