From 5ec057c34b2ee73b317a8dc67079991f528c4ca3 Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 18:07:04 +0200 Subject: [PATCH 01/45] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20=20Added=20Group?= =?UTF-8?q?=20componen=20interface=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/group/IVGroup.type.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/components/group/IVGroup.type.ts diff --git a/src/components/group/IVGroup.type.ts b/src/components/group/IVGroup.type.ts new file mode 100644 index 0000000..f8446ba --- /dev/null +++ b/src/components/group/IVGroup.type.ts @@ -0,0 +1,19 @@ +/** + * Interface representing the props for the Group component. + */ +export default interface IVGroup { + /** + * Defines the visual style or status of the group. + * - `'default'`: Standard appearance. + * - `'error'`: Indicates an error state. + * - `'success'`: Indicates a successful state. + * - `undefined`: No specific type applied. + */ + type: 'default' | 'error' | 'success' | undefined; + + /** + * If true, disables the group component, making it non-interactive. + * Optional. + */ + disabled?: boolean; +} From d5903668bad44b43b381564ccafc957f1dab3ec5 Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 18:12:47 +0200 Subject: [PATCH 02/45] =?UTF-8?q?=E2=9C=A8=20feature:=20Added=20Group=20co?= =?UTF-8?q?mponent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/group/VGroup.vue | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/components/group/VGroup.vue diff --git a/src/components/group/VGroup.vue b/src/components/group/VGroup.vue new file mode 100644 index 0000000..88d2191 --- /dev/null +++ b/src/components/group/VGroup.vue @@ -0,0 +1,34 @@ + + + + + From 451f665907c09440be963c36d968c8093c008390 Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 18:15:18 +0200 Subject: [PATCH 03/45] =?UTF-8?q?=E2=9C=A8=20feature:=20Added=20Group=20co?= =?UTF-8?q?mponent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/group/VGroup.vue | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/group/VGroup.vue b/src/components/group/VGroup.vue index 88d2191..a2cb2c1 100644 --- a/src/components/group/VGroup.vue +++ b/src/components/group/VGroup.vue @@ -9,12 +9,12 @@ const props = withDefaults(defineProps(), { From ba8ffaf82febd82e5b34aed155a650cf88e12eb2 Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 18:28:28 +0200 Subject: [PATCH 04/45] =?UTF-8?q?=E2=9C=85=20test:=20added=20test=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/VGroup.spec.ts | 50 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 test/VGroup.spec.ts diff --git a/test/VGroup.spec.ts b/test/VGroup.spec.ts new file mode 100644 index 0000000..24dedac --- /dev/null +++ b/test/VGroup.spec.ts @@ -0,0 +1,50 @@ +import { describe, test, expect } from 'vitest' +import { mount } from '@vue/test-utils' +import VGroup from '../src/components/group/VGroup.vue' + +describe('VGroup', () => { + test('renders default slot content', () => { + const wrapper = mount(VGroup, { + props: {type: undefined}, + slots: { + default: 'Test Content', + }, + }) + expect(wrapper.html()).toContain('Test Content') + }) + + test('applies default class when no type is specified', () => { + const wrapper = mount(VGroup) + expect(wrapper.classes()).toContain('container') + expect(wrapper.classes()).not.toContain('error') + expect(wrapper.classes()).not.toContain('success') + }) + + test('applies "error" class when type is "error"', () => { + const wrapper = mount(VGroup, { + props: { type: 'error' }, + }) + expect(wrapper.classes()).toContain('error') + }) + + test('applies "success" class when type is "success"', () => { + const wrapper = mount(VGroup, { + props: { type: 'success' }, + }) + expect(wrapper.classes()).toContain('success') + }) + + test('applies "disabled" class when disabled is true', () => { + const wrapper = mount(VGroup, { + props: { disabled: true, type: undefined }, + }) + expect(wrapper.classes()).toContain('disabled') + }) + + test('does not apply "disabled" class when disabled is false', () => { + const wrapper = mount(VGroup, { + props: { disabled: false, type: undefined }, + }) + expect(wrapper.classes()).not.toContain('disabled') + }) +}) From 22f3881b415214019d37bc564536da0c71fc0f77 Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 21:22:19 +0200 Subject: [PATCH 05/45] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20=20Added=20label?= =?UTF-8?q?=20component=20interface?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/label/IVLabel.type.ts | 39 ++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/components/label/IVLabel.type.ts diff --git a/src/components/label/IVLabel.type.ts b/src/components/label/IVLabel.type.ts new file mode 100644 index 0000000..d9e975a --- /dev/null +++ b/src/components/label/IVLabel.type.ts @@ -0,0 +1,39 @@ +/** + * Interface representing the props for the Label component. + */ +export default interface IVLabel { + /** + * The text content displayed as the label. + */ + label: string; + + /** + * The visual style of the label, indicating its semantic meaning. + * - `default`: Standard label appearance. + * - `error`: Indicates an error state. + * - `success`: Indicates a successful or valid state. + * + * @default 'default' + */ + type?: 'default' | 'error' | 'success' | undefined; + + /** + * Whether the label is disabled. When true, the label appears inactive or grayed out. + * + * @default false + */ + disabled?: boolean; + + /** + * Optional hint text displayed alongside or below the label to provide additional context. + */ + hint?: string; + + /** + * Indicates whether the associated field is required. + * + * @default false + */ + required?: boolean; +} + From 4fcc65dc17fbd08bd304aa518f1d8be97f15ba7f Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 21:25:00 +0200 Subject: [PATCH 06/45] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20=20Added=20Group?= =?UTF-8?q?=20componen=20interface=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/group/IVGroup.type.ts | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/components/group/IVGroup.type.ts b/src/components/group/IVGroup.type.ts index f8446ba..3a5c5e2 100644 --- a/src/components/group/IVGroup.type.ts +++ b/src/components/group/IVGroup.type.ts @@ -2,18 +2,17 @@ * Interface representing the props for the Group component. */ export default interface IVGroup { - /** - * Defines the visual style or status of the group. - * - `'default'`: Standard appearance. - * - `'error'`: Indicates an error state. - * - `'success'`: Indicates a successful state. - * - `undefined`: No specific type applied. - */ - type: 'default' | 'error' | 'success' | undefined; - - /** - * If true, disables the group component, making it non-interactive. - * Optional. - */ - disabled?: boolean; + /** + * Defines the visual style or status of the group. + * - `'default'`: Standard appearance. + * - `'error'`: Indicates an error state. + * - `'success'`: Indicates a successful state. + * - `undefined`: No specific type applied. + */ + type: 'default' | 'error' | 'success' | undefined; + /** + * If true, disables the group component, making it non-interactive. + * Optional. + */ + disabled?: boolean; } From a1c9f23840e1db4725309d6ca97a94eaf67b8d3f Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 21:43:23 +0200 Subject: [PATCH 07/45] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20=20=20Added=20Hin?= =?UTF-8?q?t=20component=20interface?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/hint/IVHint.type.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/components/hint/IVHint.type.ts diff --git a/src/components/hint/IVHint.type.ts b/src/components/hint/IVHint.type.ts new file mode 100644 index 0000000..1cfd440 --- /dev/null +++ b/src/components/hint/IVHint.type.ts @@ -0,0 +1,28 @@ +/** + * Interface representing the properties of the Hint component. + */ +export default interface IVHint { + /** + * The title or main message displayed in the hint. + */ + title: string; + + /** + * Determines whether an icon should be displayed alongside the hint. + * Optional. Defaults to false if not provided. + */ + icon?: boolean; + + /** + * Specifies the type of hint to display. + * Can be one of the following: 'info', 'warning', 'alert', 'success', 'active', or an empty string. + * Optional. + */ + type?: 'info' | 'warning' | 'alert' | 'success' | 'active' | ''; + + /** + * Indicates whether the hint is disabled. + * Optional. When true, the hint may appear inactive or be hidden. + */ + disabled?: boolean; +} From 6d131ce9d223c74519d4f5b2e3c6435b5318fefc Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 21:51:54 +0200 Subject: [PATCH 08/45] =?UTF-8?q?=F0=9F=92=84=20Update=20the=20primevue=20?= =?UTF-8?q?configuration=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/style/primevue-configuration.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/assets/style/primevue-configuration.css b/src/assets/style/primevue-configuration.css index 3736d1a..84b0262 100644 --- a/src/assets/style/primevue-configuration.css +++ b/src/assets/style/primevue-configuration.css @@ -1,2 +1,3 @@ @import './primevue-style/button.css'; @import './primevue-style/accordion.css'; +@import './primevue-style/message.css'; From e8279f10dc0b29b68264322e7fc8f2c7b985c992 Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 22:00:31 +0200 Subject: [PATCH 09/45] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20=20Updated=20Hint?= =?UTF-8?q?=20component=20interface?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/hint/IVHint.type.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/components/hint/IVHint.type.ts b/src/components/hint/IVHint.type.ts index 1cfd440..c86f724 100644 --- a/src/components/hint/IVHint.type.ts +++ b/src/components/hint/IVHint.type.ts @@ -7,11 +7,8 @@ export default interface IVHint { */ title: string; - /** - * Determines whether an icon should be displayed alongside the hint. - * Optional. Defaults to false if not provided. - */ - icon?: boolean; + /** Name of the icon to display */ + icon?: string; /** * Specifies the type of hint to display. From 1a13f203de0ef42423874e8511b31414c136af6d Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 22:55:25 +0200 Subject: [PATCH 10/45] =?UTF-8?q?=F0=9F=92=84=20Adding=20the=20style=20of?= =?UTF-8?q?=20the=20primevue=20accordion=20component?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/style/primevue-style/message.css | 87 +++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/assets/style/primevue-style/message.css diff --git a/src/assets/style/primevue-style/message.css b/src/assets/style/primevue-style/message.css new file mode 100644 index 0000000..4cae7fe --- /dev/null +++ b/src/assets/style/primevue-style/message.css @@ -0,0 +1,87 @@ +:root { + --p-message-simple-content-padding: 0; + --p-message-outlined-border-width: var(--border-width); + --p-message-close-icon-size: 1rem; + --p-message-close-icon-lg-size: 1.125rem; + --p-message-close-icon-sm-size: 0.875rem; + --p-message-close-button-width: 1.75rem; + --p-message-close-button-height: 1.75rem; + --p-message-close-button-border-radius: 0px; + --p-message-close-button-focus-ring-width: var(--focus-width); + --p-message-close-button-focus-ring-style: var(--focus-style); + --p-message-close-button-focus-ring-offset: var(--focus-offset); + --p-message-icon-size: calc(0.125rem + var(--text-body-MD-standard-text-Regular-size)); + --p-message-icon-lg-size: calc(0.125rem + var(--text-body-MD-standard-text-Regular-size)); + --p-message-icon-sm-size: calc(0.125rem + var(--text-body-XS-mention-text-Regular-size)); + --p-message-text-font-size: var(--text-body-MD-standard-text-Regular-size); + --p-message-text-font-weight: var(--text-body-XS-mention-text-Regular-weight); + --p-message-text-lg-font-size: var(--text-body-MD-standard-text-Regular-size); + --p-message-text-sm-font-size: var(--text-body-XS-mention-text-Regular-size); + --p-message-content-padding: 0.5rem 0.75rem; + --p-message-content-gap: 0.75rem; + --p-message-content-lg-padding: 0.625rem 0.875rem; + --p-message-content-sm-padding: 0.375rem 0.625rem; + --p-message-border-radius: 0px; + --p-message-border-width: var(--border-width); + --p-message-transition-duration: var(--transition-duration); + /* --p-message-contrast-background: + --p-message-contrast-border-color: + --p-message-contrast-color: + --p-message-contrast-shadow: + --p-message-contrast-simple-color: + --p-message-contrast-outlined-color: + --p-message-contrast-outlined-border-color: + --p-message-contrast-close-button-hover-background: + --p-message-contrast-close-button-focus-ring-color: + --p-message-contrast-close-button-focus-ring-shadow: */ + --p-message-secondary-background: none; + --p-message-secondary-border-color: none; + --p-message-secondary-color: none; + --p-message-secondary-shadow: none; + --p-message-secondary-simple-color: var(--text-mention-grey); + --p-message-secondary-outlined-color: none; + --p-message-secondary-outlined-border-color: none; + --p-message-secondary-close-button-hover-background: none; + --p-message-secondary-close-button-focus-ring-color: none; + --p-message-secondary-close-button-focus-ring-shadow: none; + --p-message-error-background: color-mix(in srgb,var(--background-contrast-error),transparent 5%); + --p-message-error-border-color: var(--border-plain-error); + --p-message-error-color: var(--text-default-grey); + --p-message-error-shadow: none; + --p-message-error-simple-color: var(--text-default-grey); + --p-message-error-outlined-color: none; + --p-message-error-outlined-border-color: none; + --p-message-error-close-button-hover-background: none; + --p-message-error-close-button-focus-ring-color: none; + --p-message-error-close-button-focus-ring-shadow: none; + --p-message-warn-background: color-mix(in srgb,var(--background-contrast-warning),transparent 5%); + --p-message-warn-border-color: var(--border-plain-warning); + --p-message-warn-color: var(--text-default-grey); + --p-message-warn-shadow: none; + --p-message-warn-simple-color: var(--text-default-grey); + --p-message-warn-outlined-color: none; + --p-message-warn-outlined-border-color: none; + --p-message-warn-close-button-hover-background: none; + --p-message-warn-close-button-focus-ring-color: none; + --p-message-warn-close-button-focus-ring-shadow: none; + --p-message-success-background: color-mix(in srgb,var(--background-contrast-success),transparent 5%); + --p-message-success-border-color: var(--border-plain-success); + --p-message-success-color: var(--text-default-grey); + --p-message-success-shadow: none; + --p-message-success-simple-color: var(--text-default-grey); + --p-message-success-outlined-color: var(none); + --p-message-success-outlined-border-color: var(none); + --p-message-success-close-button-hover-background: none; + --p-message-success-close-button-focus-ring-color: none; + --p-message-success-close-button-focus-ring-shadow: none; + --p-message-info-background: color-mix(in srgb,var(--background-contrast-info),transparent 5%); + --p-message-info-border-color: var(--border-plain-info); + --p-message-info-color: var(--text-default-grey); + --p-message-info-shadow: none; + --p-message-info-simple-color: var(--text-default-grey); + --p-message-info-outlined-color: none; + --p-message-info-outlined-border-color: none; + --p-message-info-close-button-hover-background: none; + --p-message-info-close-button-focus-ring-color: none; + --p-message-info-close-button-focus-ring-shadow: none; +} From 698eb9eee6d0e1185bf6d88f2703deae2d7640b1 Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 23:03:33 +0200 Subject: [PATCH 11/45] =?UTF-8?q?=F0=9F=92=84=20Updating=20the=20style=20o?= =?UTF-8?q?f=20the=20primevue=20accordion=20component?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/style/primevue-style/message.css | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/assets/style/primevue-style/message.css b/src/assets/style/primevue-style/message.css index 4cae7fe..f115ee3 100644 --- a/src/assets/style/primevue-style/message.css +++ b/src/assets/style/primevue-style/message.css @@ -27,13 +27,13 @@ /* --p-message-contrast-background: --p-message-contrast-border-color: --p-message-contrast-color: - --p-message-contrast-shadow: - --p-message-contrast-simple-color: - --p-message-contrast-outlined-color: + --p-message-contrast-shadow: */ + --p-message-contrast-simple-color: var(--text-action-high-blue-france); + /* --p-message-contrast-outlined-color: --p-message-contrast-outlined-border-color: --p-message-contrast-close-button-hover-background: --p-message-contrast-close-button-focus-ring-color: - --p-message-contrast-close-button-focus-ring-shadow: */ + --p-message-contrast-close-button-focus-ring-shadow: */ --p-message-secondary-background: none; --p-message-secondary-border-color: none; --p-message-secondary-color: none; @@ -48,7 +48,7 @@ --p-message-error-border-color: var(--border-plain-error); --p-message-error-color: var(--text-default-grey); --p-message-error-shadow: none; - --p-message-error-simple-color: var(--text-default-grey); + --p-message-error-simple-color: var(--text-default-error); --p-message-error-outlined-color: none; --p-message-error-outlined-border-color: none; --p-message-error-close-button-hover-background: none; @@ -58,7 +58,7 @@ --p-message-warn-border-color: var(--border-plain-warning); --p-message-warn-color: var(--text-default-grey); --p-message-warn-shadow: none; - --p-message-warn-simple-color: var(--text-default-grey); + --p-message-warn-simple-color: var(--text-default-warning); --p-message-warn-outlined-color: none; --p-message-warn-outlined-border-color: none; --p-message-warn-close-button-hover-background: none; @@ -68,7 +68,7 @@ --p-message-success-border-color: var(--border-plain-success); --p-message-success-color: var(--text-default-grey); --p-message-success-shadow: none; - --p-message-success-simple-color: var(--text-default-grey); + --p-message-success-simple-color: var(--text-default-success); --p-message-success-outlined-color: var(none); --p-message-success-outlined-border-color: var(none); --p-message-success-close-button-hover-background: none; @@ -78,7 +78,7 @@ --p-message-info-border-color: var(--border-plain-info); --p-message-info-color: var(--text-default-grey); --p-message-info-shadow: none; - --p-message-info-simple-color: var(--text-default-grey); + --p-message-info-simple-color: var(--text-default-info); --p-message-info-outlined-color: none; --p-message-info-outlined-border-color: none; --p-message-info-close-button-hover-background: none; From 7dfca1b256254d779085137bcaa9175178e28fed Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 23:12:18 +0200 Subject: [PATCH 12/45] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20=20Updated=20Hint?= =?UTF-8?q?=20component=20interface?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/hint/IVHint.type.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/hint/IVHint.type.ts b/src/components/hint/IVHint.type.ts index c86f724..1cfd440 100644 --- a/src/components/hint/IVHint.type.ts +++ b/src/components/hint/IVHint.type.ts @@ -7,8 +7,11 @@ export default interface IVHint { */ title: string; - /** Name of the icon to display */ - icon?: string; + /** + * Determines whether an icon should be displayed alongside the hint. + * Optional. Defaults to false if not provided. + */ + icon?: boolean; /** * Specifies the type of hint to display. From e6ece32d74be95b2e456305fdb2953f18e800ff4 Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 23:21:31 +0200 Subject: [PATCH 13/45] =?UTF-8?q?=E2=9C=A8=20feature:=20Added=20Hint=20com?= =?UTF-8?q?ponent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/hint/VHint.vue | 54 +++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/components/hint/VHint.vue diff --git a/src/components/hint/VHint.vue b/src/components/hint/VHint.vue new file mode 100644 index 0000000..3edaf9d --- /dev/null +++ b/src/components/hint/VHint.vue @@ -0,0 +1,54 @@ + + + + + From 93fccc88bb3f5cc4765918a1c98654ef457cd587 Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 23:38:16 +0200 Subject: [PATCH 14/45] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20=20Updated=20labe?= =?UTF-8?q?l=20component=20interface?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/label/IVLabel.type.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/components/label/IVLabel.type.ts b/src/components/label/IVLabel.type.ts index d9e975a..caad633 100644 --- a/src/components/label/IVLabel.type.ts +++ b/src/components/label/IVLabel.type.ts @@ -35,5 +35,12 @@ export default interface IVLabel { * @default false */ required?: boolean; + + /** + * The ID of the input element that this label is associated with. + * This helps improve accessibility by linking the label to its corresponding input. + */ + for: string; + } From 29a0094b50d7a441619a86fa4f778c816ea5fb63 Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Mon, 21 Jul 2025 23:42:59 +0200 Subject: [PATCH 15/45] =?UTF-8?q?=E2=9C=A8=20feature:=20Added=20Label=20co?= =?UTF-8?q?mponent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/label/VLabel.vue | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/components/label/VLabel.vue diff --git a/src/components/label/VLabel.vue b/src/components/label/VLabel.vue new file mode 100644 index 0000000..bd5bb36 --- /dev/null +++ b/src/components/label/VLabel.vue @@ -0,0 +1,48 @@ + + + + + From 2bf927615796e984921d84d996091e927db84109 Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Tue, 22 Jul 2025 00:41:21 +0200 Subject: [PATCH 16/45] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20=20=20Added=20Inp?= =?UTF-8?q?ut=20component=20interface=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/input/IVInput.type.ts | 251 +++++++++++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100644 src/components/input/IVInput.type.ts diff --git a/src/components/input/IVInput.type.ts b/src/components/input/IVInput.type.ts new file mode 100644 index 0000000..cbe45f4 --- /dev/null +++ b/src/components/input/IVInput.type.ts @@ -0,0 +1,251 @@ +import type { HintedString, Nullable} from '@primevue/core'; +import type { HTMLAttributes, InputHTMLAttributes } from 'vue'; + +/** + * Interface representing the props for the InputText component. + */ +export interface IInputText { + /** + * The unique identifier for the input element. + */ + id?: string; + + /** + * The ID used to associate the input with a description element for accessibility. + */ + descriptionId?: string; + + /** + * Optional hint text displayed below the input. + */ + hint?: string; + + /** + * Indicates whether the input is in an invalid state. + */ + isInvalid?: boolean; + + /** + * Indicates whether the input is in a valid state. + */ + isValid?: boolean; + + /** + * If true, renders a