145 lines
4.3 KiB
Vue
145 lines
4.3 KiB
Vue
<template>
|
|
<DocSectionText v-bind="$attrs">
|
|
<p>FocusTrap is enabled by attaching the directive with the v- prefix.</p>
|
|
</DocSectionText>
|
|
<div class="card flex justify-center">
|
|
<div v-focustrap class="w-full sm:w-80 flex flex-col gap-6">
|
|
<IconField>
|
|
<InputIcon>
|
|
<i class="pi pi-user" />
|
|
</InputIcon>
|
|
<InputText id="input" v-model="name" type="text" placeholder="Name" autofocus fluid />
|
|
</IconField>
|
|
|
|
<IconField>
|
|
<InputIcon>
|
|
<i class="pi pi-envelope" />
|
|
</InputIcon>
|
|
<InputText id="email" v-model="email" type="email" placeholder="Email" fluid />
|
|
</IconField>
|
|
|
|
<div class="flex items-center gap-2">
|
|
<Checkbox id="accept" v-model="accept" name="accept" value="Accept" />
|
|
<label for="accept">I agree to the terms and conditions.</label>
|
|
</div>
|
|
|
|
<Button type="submit" label="Submit" class="mt-2" />
|
|
</div>
|
|
</div>
|
|
<DocSectionCode :code="code" />
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
name: null,
|
|
email: null,
|
|
accept: false,
|
|
code: {
|
|
basic: `
|
|
<div v-focustrap class="w-full sm:w-80 flex flex-col gap-6">
|
|
<IconField>
|
|
<InputIcon>
|
|
<i class="pi pi-user" />
|
|
</InputIcon>
|
|
<InputText id="input" v-model="name" type="text" placeholder="Name" autofocus fluid />
|
|
</IconField>
|
|
|
|
<IconField>
|
|
<InputIcon>
|
|
<i class="pi pi-envelope" />
|
|
</InputIcon>
|
|
<InputText id="email" v-model="email" type="email" placeholder="Email" fluid />
|
|
</IconField>
|
|
|
|
<div class="flex items-center gap-2">
|
|
<Checkbox id="accept" v-model="accept" name="accept" value="Accept" />
|
|
<label for="accept">I agree to the terms and conditions.</label>
|
|
</div>
|
|
|
|
<Button type="submit" label="Submit" class="mt-2" />
|
|
</div>
|
|
`,
|
|
options: `
|
|
<template>
|
|
<div class="card flex justify-center">
|
|
<div v-focustrap class="w-full sm:w-80 flex flex-col gap-6">
|
|
<IconField>
|
|
<InputIcon>
|
|
<i class="pi pi-user" />
|
|
</InputIcon>
|
|
<InputText id="input" v-model="name" type="text" placeholder="Name" autofocus fluid />
|
|
</IconField>
|
|
|
|
<IconField>
|
|
<InputIcon>
|
|
<i class="pi pi-envelope" />
|
|
</InputIcon>
|
|
<InputText id="email" v-model="email" type="email" placeholder="Email" fluid />
|
|
</IconField>
|
|
|
|
<div class="flex items-center gap-2">
|
|
<Checkbox id="accept" v-model="accept" name="accept" value="Accept" />
|
|
<label for="accept">I agree to the terms and conditions.</label>
|
|
</div>
|
|
|
|
<Button type="submit" label="Submit" class="mt-2" />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
name: null,
|
|
email: null,
|
|
accept: false
|
|
};
|
|
}
|
|
};
|
|
<\/script>
|
|
`,
|
|
composition: `
|
|
<template>
|
|
<div class="card flex justify-center">
|
|
<div v-focustrap class="w-full sm:w-80 flex flex-col gap-6">
|
|
<IconField>
|
|
<InputIcon>
|
|
<i class="pi pi-user" />
|
|
</InputIcon>
|
|
<InputText id="input" v-model="name" type="text" placeholder="Name" autofocus fluid />
|
|
</IconField>
|
|
|
|
<IconField>
|
|
<InputIcon>
|
|
<i class="pi pi-envelope" />
|
|
</InputIcon>
|
|
<InputText id="email" v-model="email" type="email" placeholder="Email" fluid />
|
|
</IconField>
|
|
|
|
<div class="flex items-center gap-2">
|
|
<Checkbox id="accept" v-model="accept" name="accept" value="Accept" />
|
|
<label for="accept">I agree to the terms and conditions.</label>
|
|
</div>
|
|
|
|
<Button type="submit" label="Submit" class="mt-2" />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref } from 'vue';
|
|
|
|
const name = ref();
|
|
const email = ref();
|
|
const accept = ref(false);
|
|
<\/script>
|
|
`
|
|
}
|
|
};
|
|
}
|
|
};
|
|
</script>
|