Pit Viper

v2.26.1

Pit Viper

v2.26.1
v1 / v2

  • Home
  • PV Components
  • PvTag

PvTag

Documentation

Example

Source

HTML
<script setup lang="ts">
import PvTag from "@/components/base/PvTag/PvTag.vue";
import { TagSize, TagVariant } from "@/components/base/PvTag/types";

const tagSizeOptions = ["sm", "md", "lg"] as TagSize[];
const tagVariantOption = ["primary", "tertiary"] as TagVariant[];

const tagSizeLength = tagSizeOptions.length + 1;
const tagVariantSize = tagVariantOption.length * 2 + 1;
</script>

<template>
<div
class="container pv-stack-16 pv-border-top"
:style="{
'grid-template-columns': `repeat(${tagSizeLength}, 1fr`,
'grid-template-rows': `repeat(${tagVariantSize}, 1fr`,
height: `${tagVariantSize * 50}px`,
}"

>

<div>Simple Tag</div>
<div v-for="size in tagSizeOptions" :key="'header-' + size">

</div>

<template v-for="variant in tagVariantOption" :key="variant">
<div>

</div>

<div v-for="size in tagSizeOptions" :key="variant + '-' + size">
<PvTag label="Example" :size="size" :variant="variant" />
</div>
</template>

<template v-for="variant in tagVariantOption" :key="variant">
<div> Rounded</div>

<div v-for="size in tagSizeOptions" :key="variant + '-' + size">
<PvTag label="Example" :size="size" :variant="variant" rounded />
</div>
</template>
</div>

<div
class="container pv-stack-16 pv-border-top"
:style="{
'grid-template-columns': `repeat(${tagSizeLength}, 1fr`,
'grid-template-rows': `repeat(${tagVariantSize}, 1fr`,
height: `${tagVariantSize * 50}px`,
}"

>

<div>Simple Tag with Icon</div>
<div v-for="size in tagSizeOptions" :key="'header-' + size">

</div>

<template v-for="variant in tagVariantOption" :key="variant">
<div>

</div>

<div v-for="size in tagSizeOptions" :key="variant + '-' + size">
<PvTag label="Example" :size="size" :variant="variant" icon="user" />
</div>
</template>
<template v-for="variant in tagVariantOption" :key="variant">
<div> Rounded</div>

<div v-for="size in tagSizeOptions" :key="variant + '-' + size">
<PvTag
label="Example"
:size="size"
:variant="variant"
icon="user"
rounded
/>

</div>
</template>
</div>

<div
class="container pv-stack-16 pv-border-top"
:style="{
'grid-template-columns': `repeat(${tagSizeLength}, 1fr`,
'grid-template-rows': `repeat(${tagVariantSize}, 1fr`,
height: `${tagVariantSize * 50}px`,
}"

>

<div>Simple Tag with Close Icon</div>
<div v-for="size in tagSizeOptions" :key="'header-' + size">

</div>

<template v-for="variant in tagVariantOption" :key="variant">
<div>

</div>

<div v-for="size in tagSizeOptions" :key="variant + '-' + size">
<PvTag label="Example" :size="size" :variant="variant" show-clear />
</div>
</template>
<template v-for="variant in tagVariantOption" :key="variant">
<div> Rounded</div>

<div v-for="size in tagSizeOptions" :key="variant + '-' + size">
<PvTag
label="Example"
:size="size"
:variant="variant"
show-clear
rounded
/>

</div>
</template>
</div>

<div
class="container pv-stack-16 pv-border-top"
:style="{
'grid-template-columns': `repeat(${tagSizeLength}, 1fr`,
'grid-template-rows': `repeat(${tagVariantSize}, 1fr`,
height: `${tagVariantSize * 50}px`,
}"

>

<div>Full PvTag</div>
<div v-for="size in tagSizeOptions" :key="'header-' + size">

</div>

<template v-for="variant in tagVariantOption" :key="variant">
<div>

</div>

<div v-for="size in tagSizeOptions" :key="variant + '-' + size">
<PvTag
label="Example"
:size="size"
:variant="variant"
show-clear
icon="user"
/>

</div>
</template>

<template v-for="variant in tagVariantOption" :key="variant">
<div> Rounded</div>

<div v-for="size in tagSizeOptions" :key="variant + '-' + size">
<PvTag
label="Example"
:size="size"
:variant="variant"
show-clear
icon="user"
rounded
/>

</div>
</template>
</div>
</template>

<style>
.container {
display: grid;
gap: 10px;
align-items: center;
justify-items: center;
}
</style>

Properties

Prop Name Type Required Default Description
label string yes

N/A

Tag Label
icon string | undefined no

N/A

Tag Icon
rounded boolean | undefined no

N/A

Show rounded state
showClear boolean | undefined no

N/A

Show left clear icon
size TagSize | undefined no

'Medium'
Tag size

-
variant TagVariant | undefined no

'Tertiary'
Tag Variant

-
Event Name Type Description
handle-close [payload: string] -
handle-click [payload: string] -