diff --git a/docs/.docgen/components-metadata.json b/docs/.docgen/components-metadata.json index fea21679..5ef1b1c2 100644 --- a/docs/.docgen/components-metadata.json +++ b/docs/.docgen/components-metadata.json @@ -2867,6 +2867,17 @@ "value": "'Label'" } }, + { + "name": "required", + "description": "Exibe asterisco de obrigatório (obs.: não faz a validação)", + "type": { + "name": "boolean" + }, + "defaultValue": { + "func": false, + "value": "false" + } + }, { "name": "inline", "description": "Quando true passa a mostrar as opções de cores fora do popover.", diff --git a/docs/components/forms/color-picker.md b/docs/components/forms/color-picker.md index 7050e0ba..a3b646d7 100644 --- a/docs/components/forms/color-picker.md +++ b/docs/components/forms/color-picker.md @@ -168,6 +168,7 @@ const argsInline = ref({ label: "Cor", modelValue: '#2AC092', state: 'default', + required: false, errorMessage: 'Campo obrigatório', }); @@ -176,6 +177,7 @@ const argsWithPopover = ref({ popoverHeight: 190, modelValue: '#2AC092', state: 'default', + required: false, errorMessage: 'Campo obrigatório', }); diff --git a/package-lock.json b/package-lock.json index cff882a0..1090de21 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@sysvale/cuida", - "version": "3.154.8", + "version": "3.154.9", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@sysvale/cuida", - "version": "3.154.8", + "version": "3.154.9", "dependencies": { "@popperjs/core": "^2.11.6", "@sysvale/cuida-icons": "^1.18.0", diff --git a/package.json b/package.json index 2dce9b8c..8235d0a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@sysvale/cuida", - "version": "3.154.9", + "version": "3.154.10", "description": "A design system built by Sysvale, using storybook and Vue components", "repository": { "type": "git", diff --git a/src/components/ColorPicker.vue b/src/components/ColorPicker.vue index 5987301f..a4b0b94a 100644 --- a/src/components/ColorPicker.vue +++ b/src/components/ColorPicker.vue @@ -2,6 +2,7 @@
{{ label }} +
-
+
import CdsPopover from './Popover.vue'; import CdsIcon from './Icon.vue'; +import CdsRequiredIndicator from './RequiredIndicator.vue'; import sassColorVariables from '../assets/sass/tokens/colors.module.scss'; import ContrastChecker from '../utils/methods/contrastChecker'; import paleteBuilder from '../utils/methods/paleteBuilder.js'; @@ -92,6 +94,7 @@ export default { components: { CdsPopover, CdsIcon, + CdsRequiredIndicator, }, props: { @@ -110,6 +113,13 @@ export default { default: 'Label', }, /** + * Exibe asterisco de obrigatório (obs.: não faz a validação) + */ + required: { + type: Boolean, + default: false, + }, + /** * Quando true passa a mostrar as opções de cores fora do popover. */ inline: { diff --git a/src/tests/ColorPicker.spec.ts b/src/tests/ColorPicker.spec.ts index 35a888a9..ce6e3f1d 100644 --- a/src/tests/ColorPicker.spec.ts +++ b/src/tests/ColorPicker.spec.ts @@ -15,4 +15,30 @@ describe('ColorPicker', () => { expect(wrapper.html()).toMatchSnapshot(); }); + + test('renders the required indicator when the required prop is true', async () => { + const wrapper = mount(ColorPicker, { + props: { + modelValue: '#000000', + required: true, + inline: true, + }, + }); + + const requiredIndicator = wrapper.findComponent({ name: 'CdsRequiredIndicator' }); + expect(requiredIndicator.exists()).toBe(true); + }); + + test('does not render the required indicator in popover mode even if the required prop is true', async () => { + const wrapper = mount(ColorPicker, { + props: { + modelValue: '#000000', + required: true, + inline: false, + }, + }); + + const requiredIndicator = wrapper.findComponent({ name: 'CdsRequiredIndicator' }); + expect(requiredIndicator.exists()).toBe(false); + }); }); diff --git a/src/tests/__snapshots__/ColorPicker.spec.ts.snap b/src/tests/__snapshots__/ColorPicker.spec.ts.snap index 7815b743..c2fa300a 100644 --- a/src/tests/__snapshots__/ColorPicker.spec.ts.snap +++ b/src/tests/__snapshots__/ColorPicker.spec.ts.snap @@ -2,7 +2,9 @@ exports[`ColorPicker > renders correctly 1`] = ` "
-
Label
+
Label + +