* feat: hopp ui initialized * feat: button components added * feat: windi css integration * chore: package removed from hopp ui * feat: storybook added * feat: move all smart components hoppscotch-ui * fix: import issue from components/smart * fix: env input component import * feat: add hoppui to windicss config * fix: remove storybook * feat: move components from hoppscotch-ui * feat: storybook added * feat: storybook progress * feat: themeing storybook * feat: add stories * chore: package updated * chore: stories added * feat: stories added * feat: stories added * feat: icons resolved * feat: i18n composable resolved * feat: histoire added * chore: resolved prettier issue * feat: radio story added * feat: story added for all components * feat: new components added to stories * fix: resolved issues * feat: readme.md added * feat: context/provider added * chore: removed app component registry * chore: remove importing of all components in hopp-ui to allow code splitting * chore: fix vite config errors * chore: jsdoc added * chore: any replaced with smart-item * chore: i18n added to ui components * chore: clean up - removed a duplicate button --------- Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com> Co-authored-by: Liyas Thomas <liyascthomas@gmail.com>
57 lines
1.1 KiB
Vue
57 lines
1.1 KiB
Vue
<template>
|
|
<svg :height="radius * 2" :width="radius * 2">
|
|
<circle
|
|
:stroke-width="stroke"
|
|
class="stroke-green-500"
|
|
fill="transparent"
|
|
:r="normalizedRadius"
|
|
:cx="radius"
|
|
:cy="radius"
|
|
/>
|
|
<circle
|
|
:stroke-width="stroke"
|
|
stroke="currentColor"
|
|
fill="transparent"
|
|
:r="normalizedRadius"
|
|
:cx="radius"
|
|
:cy="radius"
|
|
:style="{ strokeDashoffset: strokeDashoffset }"
|
|
:stroke-dasharray="circumference + ' ' + circumference"
|
|
/>
|
|
</svg>
|
|
</template>
|
|
|
|
<script lang="ts">
|
|
import { defineComponent } from "vue"
|
|
|
|
export default defineComponent({
|
|
props: {
|
|
radius: {
|
|
type: Number,
|
|
default: 12,
|
|
},
|
|
progress: {
|
|
type: Number,
|
|
default: 50,
|
|
},
|
|
stroke: {
|
|
type: Number,
|
|
default: 4,
|
|
},
|
|
},
|
|
data() {
|
|
const normalizedRadius = this.radius - this.stroke * 2
|
|
const circumference = normalizedRadius * 2 * Math.PI
|
|
|
|
return {
|
|
normalizedRadius,
|
|
circumference,
|
|
}
|
|
},
|
|
computed: {
|
|
strokeDashoffset() {
|
|
return this.circumference - (this.progress / 100) * this.circumference
|
|
},
|
|
},
|
|
})
|
|
</script>
|