fix : correction du composant

This commit is contained in:
2026-02-25 10:36:50 +01:00
parent 480defcd82
commit 67436a0025
2 changed files with 22 additions and 28 deletions

View File

@@ -305,9 +305,9 @@ describe('MalioInput', () => {
it('passes icon size prop to icon component', () => {
const wrapper = mount(InputForTest, {
props: {iconName: 'mdi:key-outline', iconSize: 'text-2xl'},
props: {iconName: 'mdi:key-outline', iconSize: '24'},
})
expect(wrapper.get('[data-test="icon"]').attributes('size')).toBe('text-2xl')
expect(wrapper.get('[data-test="icon"]').attributes('height')).toBe('24')
})
it('applies icon color class', () => {

View File

@@ -8,17 +8,16 @@
v-maska="mask"
:name="name"
:autocomplete="autocomplete"
class="floating-input grow-height peer min-h-[40px] w-full border bg-white pl-3 pr-3 py-1 outline-none border-m-muted focus:border-2"
class="floating-input grow-height peer min-h-[40px] w-full border bg-white pl-3 pr-3 py-1 outline-none focus:border-2"
:class="[
disabled ? 'cursor-not-allowed text-black/60 [&:not(:placeholder-shown)]:border-m-muted border-m-muted' : 'cursor-text',
hasError
? 'border-m-error focus:border-m-error focus:pl-[11px] [&:not(:placeholder-shown)]:border-m-error'
: hasSuccess
? 'border-m-success focus:border-m-success focus:pl-[11px] [&:not(:placeholder-shown)]:border-m-success'
: 'border-m-border focus:border-m-primary focus:pl-[11px]',
: 'border-m-muted focus:border-m-primary focus:pl-[11px]',
textInput,
iconInputPaddingClass,
inputClass,
rounded,
]"
:required="required"
@@ -50,22 +49,20 @@
textLabel,
]"
>
{{ label }}
{{ label }}
</label>
<Icon
<IconifyIcon
v-if="iconName"
:name="iconName"
:size="iconSize"
:icon="iconName"
:width="iconSize"
:height="iconSize"
data-test="icon"
:class="[
hasError
? 'text-m-error'
: hasSuccess
? 'text-m-success'
: 'text-m-muted',
'pointer-events-none absolute right-2 top-1/2 -translate-y-1/2',
iconColor,
]"
hasError ? 'text-m-error' : hasSuccess ? 'text-m-success' : '',
'pointer-events-none absolute right-2 top-1/2 -translate-y-1/2',
iconColor,
]"
/>
</div>
@@ -81,16 +78,18 @@
'mt-1 text-xs ml-[2px] ',
]"
>
{{ hint || error || successMessage }}
{{ hint || error || success }}
</p>
</template>
<script setup lang="ts">
import type {MaskInputOptions} from 'maska'
import {vMaska} from 'maska/vue'
import {computed, useAttrs, useId} from 'vue'
import { Icon as IconifyIcon } from '@iconify/vue'
defineOptions({inheritAttrs: false})
defineOptions({name: 'MalioInputText', inheritAttrs: false})
const props = withDefaults(
defineProps<{
@@ -103,7 +102,6 @@ const props = withDefaults(
maxWidth?: string
textInput?: string
textLabel?: string
inputClass?: string
labelClass?: string
required?: boolean
maxLength?: number | string
@@ -113,7 +111,6 @@ const props = withDefaults(
hint?: string
error?: string
success?: string
succes?: string
iconName?: string
rounded?: string
iconSize?: string | number
@@ -129,22 +126,20 @@ const props = withDefaults(
label: '',
minWidth: 'w-96',
maxWidth: '',
inputClass: '',
labelClass: '',
textInput: 'text-lg',
labelClass: '',
required: false,
maxLength: undefined,
minLength: undefined,
readonly: false,
textLabel: 'text-sml',
textLabel: 'text-sm',
disabled: false,
rounded: 'rounded-md',
hint: '',
error: '',
success: '',
succes: '',
iconSize: 24,
iconColor: '',
iconColor: 'text-m-muted',
mask: undefined,
},
)
@@ -153,9 +148,8 @@ const attrs = useAttrs()
const generatedId = useId()
const inputId = computed(() => props.id?.toString() || `malio-input-text-${generatedId}`)
const successMessage = computed(() => props.success || props.succes || '')
const hasError = computed(() => !!props.error)
const hasSuccess = computed(() => !!successMessage.value)
const hasSuccess = computed(() => !!props.success)
const describedBy = computed(() => {
const ids: string[] = []