Merge branch 'develop' into feature/fix_selection_logic

This commit is contained in:
Max 2022-02-16 15:40:08 -05:00
commit e2f0e1eb15
9 changed files with 308 additions and 182 deletions

View file

@ -97,6 +97,10 @@ export default {
.btn-primary { .btn-primary {
width: 100%; width: 100%;
} }
a {
display: flex;
justify-content: center;
}
@media only screen and (min-width: 340px) { @media only screen and (min-width: 340px) {
.button-col, .button-col,
.link-col { .link-col {
@ -105,6 +109,10 @@ export default {
.btn-primary { .btn-primary {
width: auto; width: auto;
} }
a {
display: flex;
justify-content: start;
}
} }
} }
</style> </style>

View file

@ -13,6 +13,14 @@
tabIndex="1" tabIndex="1"
checkboxLabel="I'm a checkbox" checkboxLabel="I'm a checkbox"
/> />
<p class="my-3">With Error:</p>
<checkbox
checkboxName="demo checkbox"
buttonID="checkbox-2"
tabIndex="1"
checkboxLabel="Error!"
hasError
/>
</div> </div>
</div> </div>
<div class="row my-4"> <div class="row my-4">
@ -28,22 +36,32 @@
buttonID="radio-button-a" buttonID="radio-button-a"
isRequired isRequired
value="I'm a radio button!" value="I'm a radio button!"
modelValue="Model Value 1"
screenReaderOnlyText="Model Value 1" screenReaderOnlyText="Model Value 1"
/> />
</div>
<div class="col">
<radio <radio
groupName="radio-demo-2" groupName="radio-demo-2"
buttonLabel="I'm also a radio button!" buttonLabel="I'm also a radio button!"
buttonID="radio-button-b" buttonID="radio-button-b"
isRequired isRequired
value="I'm also a radio button!" value="I'm also a radio button!"
modelValue="Model Value 2"
screenReaderOnlyText="Model Value 2" screenReaderOnlyText="Model Value 2"
/> />
</div> </div>
</div> </div>
<div class="row">
<div class="col">
<p class="my-3">With Error:</p>
<radio
groupName="radio-demo-3"
buttonLabel="Error!"
buttonID="radio-button-c"
isRequired
value="Error!"
screenReaderOnlyText="Model Value 1"
hasError
/>
</div>
</div>
<div class="row my-4"> <div class="row my-4">
<div class="col"> <div class="col">
<h4 class="m-0 p-2 bg-light rounded">Buttons</h4> <h4 class="m-0 p-2 bg-light rounded">Buttons</h4>
@ -61,12 +79,39 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col my-3 d-flex align-items-center"> <div class="col my-3 d-flex align-items-center">
<buttonMain buttonText="Secondary" loaderColor="white" sizeInRem="1" /> <buttonMain
isPrimary
buttonText="Primary Disabled"
loaderColor="white"
sizeInRem="1"
disabled
/>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col my-3 d-flex align-items-center"> <div class="col my-3 d-flex align-items-center">
<buttonBack backButtonAccessibleText="Back button label" /> <buttonMain
buttonText="Secondary"
loaderColor="white"
sizeInRem="1"
/>
</div>
</div>
<div class="row">
<div class="col my-3 d-flex align-items-center">
<buttonMain
buttonText="Secondary Disabled"
loaderColor="white"
sizeInRem="1"
disabled
/>
</div>
</div>
<div class="row">
<div class="col my-3 d-flex align-items-center">
<buttonBack
backButtonAccessibleText="Back button label"
/>
</div> </div>
</div> </div>
<div class="row my-4"> <div class="row my-4">
@ -98,44 +143,6 @@
/> />
</div> </div>
</div> </div>
<div class="row my-4">
<div class="col">
<h4 class="m-0 p-2 bg-light rounded">List Card</h4>
<h6 class="mx-2 my-0">Functioning as Checkbox in Column Layout</h6>
</div>
</div>
<fieldset>
<legend class="sr-only">Functioning as Checkbox</legend>
<div class="row g-2">
<listCard
isMultiSelect
buttonImage="https://digitalconsumercms-dev.safelite.com/images/default-source/damage-options/car.svg?sfvrsn=1468d7f1_3"
buttonLabel="Windshield"
altText=""
buttonID="List Card Checkbox 1"
groupID="checkbox-demo-1"
buttonLabelSubCopy="Description"
/>
<listCard
isMultiSelect
buttonImage="https://digitalconsumercms-dev.safelite.com/images/default-source/damage-options/car.svg?sfvrsn=1468d7f1_3"
buttonLabel="Windshield"
altText=""
buttonID="List Card Checkbox 2"
groupID="checkbox-demo-1"
buttonLabelSubCopy="Description with more than one line"
/>
<listCard
isMultiSelect
buttonImage="https://digitalconsumercms-dev.safelite.com/images/default-source/damage-options/car.svg?sfvrsn=1468d7f1_3"
buttonLabel="Windshield"
altText=""
buttonID="List Card Checkbox 3"
groupID="checkbox-demo-1"
buttonLabelSubCopy=""
/>
</div>
</fieldset>
<div class="row my-4"> <div class="row my-4">
<div class="col"> <div class="col">
<h4 class="m-0 p-2 bg-light rounded">List Card</h4> <h4 class="m-0 p-2 bg-light rounded">List Card</h4>
@ -151,7 +158,7 @@
buttonImage="https://digitalconsumercms-dev.safelite.com/images/default-source/damage-options/car.svg?sfvrsn=1468d7f1_3" buttonImage="https://digitalconsumercms-dev.safelite.com/images/default-source/damage-options/car.svg?sfvrsn=1468d7f1_3"
buttonLabel="Windshield" buttonLabel="Windshield"
altText="" altText=""
buttonID="List Card Checkbox" buttonID="List Card Checkbox 1"
groupID="checkbox-demo-1" groupID="checkbox-demo-1"
buttonLabelSubCopy="Description" buttonLabelSubCopy="Description"
/> />
@ -168,13 +175,31 @@
buttonImage="https://digitalconsumercms-dev.safelite.com/images/default-source/damage-options/car.svg?sfvrsn=1468d7f1_3" buttonImage="https://digitalconsumercms-dev.safelite.com/images/default-source/damage-options/car.svg?sfvrsn=1468d7f1_3"
buttonLabel="Windshield" buttonLabel="Windshield"
altText="" altText=""
buttonID="List Card Checkbox b" buttonID="List Card Checkbox 2"
groupID="checkbox-demo-1a" groupID="checkbox-demo-1a"
buttonLabelSubCopy="" buttonLabelSubCopy=""
/> />
</fieldset> </fieldset>
</div> </div>
</div> </div>
<div class="row g-2">
<div class="col">
<h6 class="mx-2 my-4">Checkbox with Error</h6>
<fieldset>
<legend class="sr-only">Checkbox with Error</legend>
<listCard
isMultiSelect
buttonImage="https://digitalconsumercms-dev.safelite.com/images/default-source/damage-options/car.svg?sfvrsn=1468d7f1_3"
buttonLabel="Windshield"
altText=""
buttonID="List Card Checkbox 3"
groupID="checkbox-demo-1e"
buttonLabelSubCopy="Description"
hasError
/>
</fieldset>
</div>
</div>
<div class="row g-2"> <div class="row g-2">
<div class="col"> <div class="col">
<h6 class="mx-2 my-4">Functioning as Radio Button</h6> <h6 class="mx-2 my-4">Functioning as Radio Button</h6>
@ -186,7 +211,7 @@
buttonLabel="Windshield" buttonLabel="Windshield"
altText="" altText=""
buttonID="List Card Radio Button" buttonID="List Card Radio Button"
groupID="radio-demo-2" groupID="radio-demo-2b"
buttonLabelSubCopy="Description" buttonLabelSubCopy="Description"
/> />
</fieldset> </fieldset>
@ -209,6 +234,24 @@
</fieldset> </fieldset>
</div> </div>
</div> </div>
<div class="row g-2">
<div class="col">
<h6 class="mx-2 my-4">Radio Button with Error</h6>
<fieldset>
<legend class="sr-only">Radio Button with Error</legend>
<listCard
isRadio
buttonImage="https://digitalconsumercms-dev.safelite.com/images/default-source/damage-options/car.svg?sfvrsn=1468d7f1_3"
buttonLabel="Windshield"
altText=""
buttonID="List Card Radio Button c"
groupID="radio-demo-2b"
buttonLabelSubCopy="Description"
hasError
/>
</fieldset>
</div>
</div>
<div class="row g-2"> <div class="row g-2">
<div class="col"> <div class="col">
<h6 class="mx-2 my-4">Horizontal as Checkbox</h6> <h6 class="mx-2 my-4">Horizontal as Checkbox</h6>
@ -245,6 +288,25 @@
</fieldset> </fieldset>
</div> </div>
</div> </div>
<div class="row g-2">
<div class="col">
<h6 class="mx-2 my-4">Horizontal with Error</h6>
<fieldset>
<legend class="sr-only">Horizontal with Error</legend>
<listCard
isMultiSelect
isWide
buttonImage="https://digitalconsumercms-dev.safelite.com/images/default-source/damage-options/car.svg?sfvrsn=1468d7f1_3"
buttonLabel="Side Window"
altText=""
buttonID="List Card Horizontal Checkbox d"
groupID="checkbox-demo-3d"
buttonLabelSubCopy=""
hasError
/>
</fieldset>
</div>
</div>
<div class="row g-2"> <div class="row g-2">
<div class="col"> <div class="col">
<h6 class="mx-2 my-4">Horizontal as Radio Button</h6> <h6 class="mx-2 my-4">Horizontal as Radio Button</h6>
@ -279,6 +341,24 @@
</fieldset> </fieldset>
</div> </div>
</div> </div>
<div class="row g-2">
<div class="col">
<h6 class="mx-2 my-4">Horizontal with Error</h6>
<fieldset>
<legend class="sr-only">Horizontal with Error</legend>
<listCard
isWide
buttonImage="https://digitalconsumercms-dev.safelite.com/images/default-source/damage-options/car.svg?sfvrsn=1468d7f1_3"
buttonLabel="Windshield"
altText=""
buttonID="List Card Horizontal Radio Button e"
groupID="radio-demo-4e"
buttonLabelSubCopy=""
hasError
/>
</fieldset>
</div>
</div>
<div class="row my-4"> <div class="row my-4">
<div class="col"> <div class="col">
<h4 class="m-0 p-2 bg-light rounded">List Button - Single-Line</h4> <h4 class="m-0 p-2 bg-light rounded">List Button - Single-Line</h4>
@ -333,6 +413,21 @@
sizeInRem="1" sizeInRem="1"
screenReaderOnlyText=" opens new window" screenReaderOnlyText=" opens new window"
/> />
<h6 class="mx-2 my-4 d-flex align-self-start">Checkbox with Error</h6>
<listButton
isMultiSelect
groupName="demo-2"
ariaLabelBy="vehicle-year"
buttonID="2019b"
buttonLabel="2019"
isRequired="true"
textPosition="text-start"
loaderColor="blue"
loaderPosition="right"
sizeInRem="1"
screenReaderOnlyText=" opens new window"
hasError
/>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@ -381,6 +476,20 @@
sizeInRem="1" sizeInRem="1"
screenReaderOnlyText=" opens new window" screenReaderOnlyText=" opens new window"
/> />
<h6 class="mx-2 my-4">Radio Button with Error</h6>
<listButton
groupName="demo-1-checkbox"
ariaLabelBy="vehicle-year"
buttonID="2016"
buttonLabel="2016"
isRequired="true"
textPosition="text-start"
loaderColor="blue"
loaderPosition="right"
sizeInRem="1"
screenReaderOnlyText=" opens new window"
hasError
/>
</div> </div>
</div> </div>
<div class="row my-4"> <div class="row my-4">
@ -652,6 +761,63 @@
/> />
</div> </div>
</div> </div>
<div class="row px-3">
<h6 class="mx-2 my-4 d-flex align-self-start">Checkbox with Error</h6>
<!-- The role="radiogroup" and aria-labelledby must be included in the parent component for the group -->
<div
role="radiogroup"
aria-labelledby="demo-4-radio-group"
class="d-flex flex-row p-0"
>
<!-- The h3 and id must be included. The id must match the aria-labelledby of the parent div. -->
<h3 class="sr-only" id="demo-4-radio-group">Select Vehicle Year</h3>
<listButtonHorizontal
isMultiSelect
groupName="demo-4b"
ariaLabelBy="vehicle-model"
buttonID="1b"
buttonLabel="1"
textPosition="text-center"
loaderColor="blue"
loaderPosition="right"
sizeInRem="1"
v-bind:totalInGroup="3"
v-bind:positionInGroup="1"
screenReaderOnlyText=" opens new window"
hasError
/>
<listButtonHorizontal
isMultiSelect
groupName="demo-4b"
ariaLabelBy="vehicle-model"
buttonID="2b"
buttonLabel="2"
textPosition="text-center"
loaderColor="blue"
loaderPosition="right"
sizeInRem="1"
v-bind:totalInGroup="3"
v-bind:positionInGroup="2"
screenReaderOnlyText=" opens new window"
hasError
/>
<listButtonHorizontal
isMultiSelect
groupName="demo-4b"
ariaLabelBy="vehicle-model"
buttonID="3b"
buttonLabel="3"
textPosition="text-center"
loaderColor="blue"
loaderPosition="right"
sizeInRem="1"
v-bind:totalInGroup="3"
v-bind:positionInGroup="3"
screenReaderOnlyText=" opens new window"
hasError
/>
</div>
</div>
<div class="row px-3"> <div class="row px-3">
<!-- The role="radiogroup" and aria-labelledby must be included in the parent component for the group --> <!-- The role="radiogroup" and aria-labelledby must be included in the parent component for the group -->
<h6 class="mx-2 my-0">Functioning as Radio Buttons</h6> <h6 class="mx-2 my-0">Functioning as Radio Buttons</h6>
@ -706,6 +872,63 @@
/> />
</div> </div>
</div> </div>
<div class="row px-3">
<h6 class="mx-2 my-4 d-flex align-self-start">Radio Button with Error</h6>
<!-- The role="radiogroup" and aria-labelledby must be included in the parent component for the group -->
<div
role="radiogroup"
aria-labelledby="demo-4-checkbox-group"
class="d-flex flex-row p-0"
>
<!-- The h3 and id must be included. The id must match the aria-labelledby of the parent div. -->
<h3 class="sr-only" id="demo-4-checkbox-group">Select Vehicle Year</h3>
<listButtonHorizontal
groupName="demo-4-checkboxc"
ariaLabelBy="vehicle-model"
buttonID="4c"
buttonLabel="4"
textPosition="text-center"
loaderEnabled="true"
loaderColor="blue"
loaderPosition="right"
sizeInRem="1"
v-bind:totalInGroup="3"
v-bind:positionInGroup="1"
screenReaderOnlyText=" opens new window"
hasError
/>
<listButtonHorizontal
groupName="demo-4-checkboxc"
ariaLabelBy="vehicle-model"
buttonID="5c"
buttonLabel="5"
textPosition="text-center"
loaderEnabled="true"
loaderColor="blue"
loaderPosition="right"
sizeInRem="1"
v-bind:totalInGroup="3"
v-bind:positionInGroup="2"
screenReaderOnlyText=" opens new window"
hasError
/>
<listButtonHorizontal
groupName="demo-4-checkboxc"
ariaLabelBy="vehicle-model"
buttonID="6c"
buttonLabel="6"
textPosition="text-center"
loaderEnabled="true"
loaderColor="blue"
loaderPosition="right"
sizeInRem="1"
v-bind:totalInGroup="3"
v-bind:positionInGroup="3"
screenReaderOnlyText=" opens new window"
hasError
/>
</div>
</div>
<div class="row my-4"> <div class="row my-4">
<div class="col"> <div class="col">
<h4 class="m-0 p-2 bg-light rounded">Typography</h4> <h4 class="m-0 p-2 bg-light rounded">Typography</h4>
@ -822,129 +1045,6 @@
/> />
</div> </div>
</div> </div>
<div class="row my-4">
<div class="col">
<h4 class="m-0 p-2 bg-light rounded">Site Header</h4>
</div>
</div>
<div class="row my-3">
<div class="col">
<funnelHeader
imageSrc="https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/safelite-logo.svg?sfvrsn=45e7ed06_3"
/>
</div>
</div>
<div class="row my-4">
<div class="col">
<h4 class="m-0 p-2 bg-light rounded">Vehicle Banner</h4>
</div>
</div>
<div class="row my-3">
<div class="col">
<vehicleBanner
vehicleImageSrc="https://digitalconsumercms-dev.safelite.com/images/default-source/default-album/blurred-image.jpg?sfvrsn=a6ce3034_3"
:displayGenericVehicleImage=true
/>
</div>
</div>
<div class="row my-4">
<div class="col">
<h4 class="m-0 p-2 bg-light rounded">Button Question</h4>
</div>
</div>
<div class="row">
<div class="col">
<buttonQuestion
:answers="checkboxAnswers"
:isMultiSelect="true"
ariaLabelBy="checkbox"
groupName="checkbox-list"
questionText="List Button as checkbox"
/>
<buttonQuestion
:answers="radioAnswers"
ariaLabelBy="radio"
groupName="radio-list"
questionText="List Button as radio"
/>
<buttonQuestion
:answers="horizontalCheckboxAnswers"
buttonType="listButtonHorizontal"
:isMultiSelect="true"
isColumn
ariaLabelBy="checkbox"
groupName="checkbox-list-horizontal"
questionText="List Button Horizontal as checkbox"
/>
<buttonQuestion
:answers="horizontalRadioAnswers"
buttonType="listButtonHorizontal"
isColumn
ariaLabelBy="radio"
groupName="radio-list-horizontal"
questionText="List Button Horizontal as radio"
sizeInRem="1"
/>
<buttonQuestion
:answers="listCardCheckBox"
buttonType="listCard"
isMultiSelect
ariaLabelBy="check_card"
groupName="check-list-card"
questionText="List Card as checkbox"
/>
<buttonQuestion
:answers="listCardRadio"
buttonType="listCard"
ariaLabelBy="radio_card"
groupName="radio-card"
questionText="List Card as radio"
/>
<buttonQuestion
isMultiSelect
isWide
:answers="listCardCheckBoxHorizontal"
buttonType="listCard"
ariaLabelBy="horizontal_check_card"
groupName="horizontal_check-card"
questionText="List Card Horizontal as checkbox"
/>
<buttonQuestion
isMultiSelect
isWide
:answers="listCardCheckBoxHorizontalSubText"
buttonType="listCard"
ariaLabelBy="horizontal_check_card-st"
groupName="horizontal_check-card-st"
questionText="With Subtext"
/>
<buttonQuestion
isWide
:answers="listRadioHorizontal"
buttonType="listCard"
ariaLabelBy="horizontal_radio_card"
groupName="horizontal_cradio-card"
questionText="List Card Horizontal as radio"
/>
<buttonQuestion
isWide
:answers="listRadioHorizontalSubText"
buttonType="listCard"
ariaLabelBy="horizontal_radio_card-st"
groupName="horizontal_cradio-card-st"
questionText="With Subtext"
/>
<buttonQuestion
isMultiSelect
isRow
:answers="listCardGroup"
buttonType="listCard"
ariaLabelBy="horizontal_radio_card-group"
groupName="horizontal_cradio-card-group"
questionText="In column layout"
/>
</div>
</div>
</div> </div>
</template> </template>
@ -954,8 +1054,6 @@ import buttonBack from "@/common-components/button-back/button-back";
import listCard from "@/ux-components/list-card/list-card"; import listCard from "@/ux-components/list-card/list-card";
import listButton from "@/ux-components/list-button/list-button"; import listButton from "@/ux-components/list-button/list-button";
import alert from "@/ux-components/alert/alert"; import alert from "@/ux-components/alert/alert";
import vehicleBanner from "@/common-components/vehicle-banner/vehicle-banner";
import funnelHeader from "@/common-components/funnel-header/funnel-header";
import listButtonHorizontal from "@/ux-components/list-button-horizontal/list-button-horizontal"; import listButtonHorizontal from "@/ux-components/list-button-horizontal/list-button-horizontal";
import checkbox from "@/ux-components/checkbox/checkbox"; import checkbox from "@/ux-components/checkbox/checkbox";
import radio from "@/ux-components/radio/radio"; import radio from "@/ux-components/radio/radio";
@ -968,11 +1066,9 @@ export default {
listCard, listCard,
listButton, listButton,
alert, alert,
vehicleBanner,
listButtonHorizontal, listButtonHorizontal,
checkbox, checkbox,
radio, radio,
funnelHeader,
textLink textLink
}, },
data() { data() {

View file

@ -13,6 +13,7 @@
input[type=checkbox]:checked + label, input[type=checkbox]:checked + label,
input[type=radio]:checked + label { input[type=radio]:checked + label {
box-shadow: 0 0 0 2.5px transparent !important; box-shadow: 0 0 0 2.5px transparent !important;
border: 1px solid $blue;
} }
&.list-button-horizontal { &.list-button-horizontal {
color: $red; color: $red;
@ -20,6 +21,16 @@
border: 1px solid $red; border: 1px solid $red;
} }
} }
&.ui-radio,
&.ui-checkbox {
input[type=radio]+label:before,
input[type=checkbox]+label:before {
border: 1px solid $red;
}
input[type=checkbox]:checked + label:before {
border: 1px solid $blue;
}
}
} }
.form-test-error { .form-test-error {

View file

@ -56,6 +56,7 @@ export default {
border-radius: $border-radius-lg; border-radius: $border-radius-lg;
color: $white; color: $white;
justify-content: center; justify-content: center;
font-weight: 500;
&:hover { &:hover {
background: linear-gradient( background: linear-gradient(
270deg, 270deg,
@ -82,7 +83,8 @@ export default {
$gray-200 0%, $gray-200 0%,
$gray-200 100% $gray-200 100%
) !important; ) !important;
color: $gray-550 !important; color: $gray-600 !important;
font-weight: 400;
height: 48px; height: 48px;
border: none; border: none;
border-radius: $border-radius-lg; border-radius: $border-radius-lg;
@ -103,6 +105,7 @@ export default {
border: 1px solid $blue; border: 1px solid $blue;
border-radius: $border-radius-lg; border-radius: $border-radius-lg;
color: $blue; color: $blue;
font-weight: 500;
transition: all 150ms linear; transition: all 150ms linear;
&:hover { &:hover {
color: $white; color: $white;
@ -118,10 +121,13 @@ export default {
} }
&:disabled { &:disabled {
background: transparent; background: transparent;
color: $gray !important; color: $gray-550 !important;
font-weight: 400;
height: 48px; height: 48px;
border: 1px solid $gray-300; border: 1px solid $gray-550;
border-radius: $border-radius-lg; border-radius: $border-radius-lg;
cursor: pointer;
pointer-events: all;
} }
&.has-loader { &.has-loader {
color: $white; color: $white;

View file

@ -1,6 +1,6 @@
<template> <template>
<!-- Checkbox groups MUST be wrapped in a <fieldset> and <legend> tag --> <!-- Checkbox groups MUST be wrapped in a <fieldset> and <legend> tag -->
<div class="ui-checkbox d-flex"> <div class="ui-checkbox d-flex" :class="[hasError ? 'has-error' : '']">
<input <input
type="checkbox" type="checkbox"
aria-checked="false" aria-checked="false"
@ -28,6 +28,7 @@ export default {
checkboxLabel: String, checkboxLabel: String,
screenReaderOnlyText: String, screenReaderOnlyText: String,
isRequired: Boolean, isRequired: Boolean,
hasError: Boolean
}, },
}; };
</script> </script>

View file

@ -1,6 +1,7 @@
<template> <template>
<div <div
class="list-group list-button-horizontal d-flex flex-column w-100 mb-2" class="list-group list-button-horizontal d-flex flex-column w-100 mb-2"
:class="hasError ? 'has-error' : ''"
@mouseup="handleClick(value)" @mouseup="handleClick(value)"
@keyup.space="handleClick(value)" @keyup.space="handleClick(value)"
> >
@ -71,6 +72,7 @@ export default {
default: "", default: "",
}, },
selectedButtonIDs: [Array, String], selectedButtonIDs: [Array, String],
hasError: Boolean,
}, },
data() { data() {
return { return {

View file

@ -1,6 +1,7 @@
<template> <template>
<div <div
class="list-group list-button d-flex flex-column w-100 mb-2" class="list-group list-button d-flex flex-column w-100 mb-2"
:class="hasError ? 'has-error' : ''"
@mouseup="handleClick(value)" @mouseup="handleClick(value)"
@keyup.space="handleClick(value)" @keyup.space="handleClick(value)"
> >
@ -73,6 +74,7 @@ export default {
default: "", default: "",
}, },
selectedButtonIDs: [Array, String], selectedButtonIDs: [Array, String],
hasError: Boolean,
}, },
data() { data() {
return { return {

View file

@ -2,7 +2,7 @@
<div :class="'col' + colLength"> <div :class="'col' + colLength">
<div <div
class="list-card w-100 rounded-3 d-flex align-items-center h-100" class="list-card w-100 rounded-3 d-flex align-items-center h-100"
:class="[isWide ? 'horizontal' : '', errors.length > 0 ? 'has-error' : '']" :class="[isWide ? 'horizontal' : '', errors.length > 0 ? 'has-error' : '', hasError ? 'has-error' : '']"
> >
<input <input
:type="isMultiSelect ? 'checkbox' : 'radio'" :type="isMultiSelect ? 'checkbox' : 'radio'"
@ -53,10 +53,8 @@ import { useField } from "vee-validate";
export default { export default {
name: "listCard", name: "listCard",
props: { props: {
//Must choose one of the following four options
isMultiSelect: Boolean, //Defines use as checkbox isMultiSelect: Boolean, //Defines use as checkbox
isWide: Boolean, isWide: Boolean,
//end must choose
buttonImage: String, //Required: File name of image buttonImage: String, //Required: File name of image
buttonImageId: String, buttonImageId: String,
buttonLabel: String, //Required: Label text buttonLabel: String, //Required: Label text
@ -73,6 +71,7 @@ export default {
colLength: String, colLength: String,
validationRules: String, validationRules: String,
selectedButtonIDs: [Array, String], selectedButtonIDs: [Array, String],
hasError: Boolean,
}, },
data(){ data(){
return { return {

View file

@ -1,6 +1,6 @@
<template> <template>
<!-- Checkbox groups MUST be wrapped in a <fieldset> and <legend> tag and must contain tabindex --> <!-- Checkbox groups MUST be wrapped in a <fieldset> and <legend> tag and must contain tabindex -->
<div class="ui-radio d-flex"> <div class="ui-radio d-flex" :class="[hasError ? 'has-error' : '']">
<input <input
type="radio" type="radio"
aria-checked="false" aria-checked="false"
@ -35,6 +35,7 @@ export default {
default: "", default: "",
}, },
screenReaderOnlyText: String, screenReaderOnlyText: String,
hasError: Boolean,
}, },
data() { data() {
return { return {