26 lines
571 B
Vue
26 lines
571 B
Vue
<script setup lang="ts">
|
|
const show = ref(false)
|
|
const password = defineModel<string>()
|
|
</script>
|
|
|
|
<template>
|
|
<UInput
|
|
v-model="password"
|
|
:type="show ? 'text' : 'password'"
|
|
:ui="{ trailing: 'pe-1' }"
|
|
>
|
|
<template #trailing>
|
|
<UButton
|
|
color="neutral"
|
|
variant="link"
|
|
size="sm"
|
|
:icon="show ? 'i-lucide-eye-off' : 'i-lucide-eye'"
|
|
:aria-label="show ? 'Hide' : 'Show'"
|
|
:aria-pressed="show"
|
|
aria-controls="password"
|
|
@click="show = !show"
|
|
/>
|
|
</template>
|
|
</UInput>
|
|
</template>
|