Files
ogame-vue-ts/src/components/ui/progress/Progress.vue
2026-01-06 03:00:02 +08:00

28 lines
874 B
Vue

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