Add filled variant support

pull/7319/merge
Cagatay Civici 2025-03-01 15:43:07 +03:00
parent b7c4b443b0
commit 94fe4e59a7
5 changed files with 46 additions and 4 deletions

View File

@ -0,0 +1,31 @@
<template>
<DocSectionText v-bind="$attrs">
<p>Specify the <i>variant</i> property as <i>filled</i> to display the component with a higher visual emphasis than the default <i>outlined</i> style.</p>
</DocSectionText>
<div class="card flex justify-center">
<PlexInputText v-model="value" variant="filled" />
</div>
<DocSectionCode :code="code" hideToggleCode hideStackBlitz />
</template>
<script setup>
import PlexInputText from '@/plex/inputtext';
import { ref } from 'vue';
const value = ref(null);
const code = ref(`
<template>
<div class="card flex justify-center">
<PlexInputText v-model="value" variant="filled" />
</div>
</template>
<script setup>
import PlexInputText from '@/plex/inputtext';
import { ref } from 'vue';
const value = ref(null);
<\/script>
`);
</script>

View File

@ -6,6 +6,7 @@
import BasicDoc from '@/doc/inputtext/BasicDoc.vue'; import BasicDoc from '@/doc/inputtext/BasicDoc.vue';
import DisabledDoc from '@/doc/inputtext/DisabledDoc.vue'; import DisabledDoc from '@/doc/inputtext/DisabledDoc.vue';
/*import HelpTextDoc from '@/doc/inputtext/HelpTextDoc.vue';*/ /*import HelpTextDoc from '@/doc/inputtext/HelpTextDoc.vue';*/
import FilledDoc from '@/doc/inputtext/FilledDoc.vue';
import ImportDoc from '@/doc/inputtext/ImportDoc.vue'; import ImportDoc from '@/doc/inputtext/ImportDoc.vue';
import InvalidDoc from '@/doc/inputtext/InvalidDoc.vue'; import InvalidDoc from '@/doc/inputtext/InvalidDoc.vue';
import SizesDoc from '@/doc/inputtext/SizesDoc.vue'; import SizesDoc from '@/doc/inputtext/SizesDoc.vue';
@ -22,11 +23,16 @@ const docs = ref([
label: 'Basic', label: 'Basic',
component: BasicDoc component: BasicDoc
}, },
{
id: 'filled',
label: 'Filled',
component: FilledDoc
},
{ {
id: 'sizes', id: 'sizes',
label: 'Sizes', label: 'Sizes',
component: SizesDoc component: SizesDoc
}/*, } /*,
{ {
id: 'helptext', id: 'helptext',
label: 'Help Text', label: 'Help Text',

View File

@ -9,6 +9,7 @@ import { ref } from 'vue';
const theme = ref({ const theme = ref({
root: `appearance-none rounded-md outline-none root: `appearance-none rounded-md outline-none
bg-surface-0 dark:bg-surface-950 bg-surface-0 dark:bg-surface-950
p-filled:bg-surface-50 dark:p-filled:bg-surface-800
text-surface-700 dark:text-surface-0 text-surface-700 dark:text-surface-0
placeholder:text-surface-500 dark:placeholder:text-surface-400 placeholder:text-surface-500 dark:placeholder:text-surface-400
border border-surface-300 dark:border-surface-700 border border-surface-300 dark:border-surface-700

View File

@ -11,6 +11,7 @@ export default {
addVariant('p-small', '&[data-p~="small"]') addVariant('p-small', '&[data-p~="small"]')
addVariant('p-large', '&[data-p~="large"]') addVariant('p-large', '&[data-p~="large"]')
addVariant('p-fluid', '&[data-p~="fluid"]') addVariant('p-fluid', '&[data-p~="fluid"]')
addVariant('p-filled', '&[data-p~="filled"]')
}) })
], ],
theme: { theme: {

View File

@ -30,13 +30,16 @@ export default {
dataP() { dataP() {
const p = []; const p = [];
if (this.$invalid) { if (this.$invalid) {
p.push('invalid') p.push('invalid');
} }
if (this.size) { if (this.size) {
p.push(this.size) p.push(this.size);
} }
if (this.$fluid) { if (this.$fluid) {
p.push('fluid') p.push('fluid');
}
if (this.$variant === 'filled') {
p.push('filled');
} }
return p.join(' '); return p.join(' ');