diff --git a/packages/components/src/components/select/select.lite.tsx b/packages/components/src/components/select/select.lite.tsx index 2d986bf6ebd9..797127b0a8c7 100644 --- a/packages/components/src/components/select/select.lite.tsx +++ b/packages/components/src/components/select/select.lite.tsx @@ -114,7 +114,6 @@ export default function DBSelect(props: DBSelectProps) { ref={component} data-value={props.value || state._value} aria-invalid={props.invalid} - aria-required={props.required} required={props.required} disabled={props.disabled} id={state._id} diff --git a/packages/components/src/components/select/select.scss b/packages/components/src/components/select/select.scss index febb3725b260..ba9b252a9480 100644 --- a/packages/components/src/components/select/select.scss +++ b/packages/components/src/components/select/select.scss @@ -36,6 +36,8 @@ @extend %db-overwrite-font-size-sm; @extend %select-icon; @extend %default-form-message; + @extend %disabled-form-element; + @extend %required-form-element; @include form.get-input-color-variants(); diff --git a/showcases/angular-showcase/src/app/components/form/form.component.html b/showcases/angular-showcase/src/app/components/form/form.component.html index 2c81a5b109c4..e17d5033504d 100644 --- a/showcases/angular-showcase/src/app/components/form/form.component.html +++ b/showcases/angular-showcase/src/app/components/form/form.component.html @@ -46,6 +46,17 @@ label="Checkbox ngModel" > +

DBSelect:

+ + + + +
Reactive Forms Example:
@@ -139,15 +150,27 @@
Reactive Forms Example:
label="Checkbox" >
-

DBSelect:

+

Select:

+ + + +

Button:

Reset diff --git a/showcases/angular-showcase/src/app/components/form/form.component.ts b/showcases/angular-showcase/src/app/components/form/form.component.ts index bd0fa32d7bcc..7a42207b9953 100644 --- a/showcases/angular-showcase/src/app/components/form/form.component.ts +++ b/showcases/angular-showcase/src/app/components/form/form.component.ts @@ -21,7 +21,8 @@ export class FormComponent { textarea: 'default value', radio: 'X', checkbox: true, - checkbox2: true + checkbox2: true, + select: 'test2' }; dataList = [{ key: 'test', value: 'Test' }, { key: 'test2' }]; @@ -30,7 +31,8 @@ export class FormComponent { form = new FormGroup({ input: new FormControl('Filled with formControl'), textarea: new FormControl('Filled with formControl as well'), - checkbox: new FormControl(true) + checkbox: new FormControl(true), + select: new FormControl('test2') }); getRadioName = (radioName: string): string => `Radio ${radioName}`; @@ -78,6 +80,12 @@ export class FormComponent { this.checked = [this.checked[0], event.target.checked]; }; + handleChange4 = (event: any) => { + this.form.get('select')?.setValue(event.target.value, { + onlySelf: true + }); + }; + showValues(): void { // eslint-disable-next-line no-alert alert( diff --git a/showcases/angular-showcase/src/app/components/select/select.component.html b/showcases/angular-showcase/src/app/components/select/select.component.html index 7f7c3cefb30a..ef30675f9801 100644 --- a/showcases/angular-showcase/src/app/components/select/select.component.html +++ b/showcases/angular-showcase/src/app/components/select/select.component.html @@ -16,6 +16,7 @@ [options]="exampleProps.options" [disabled]="exampleProps.disabled" [icon]="exampleProps.icon" + [required]="exampleProps.required" [value]="exampleProps.value" [message]="exampleProps.message" >{{ exampleName }} ( + message={message} + required={required}> {children} ); diff --git a/showcases/shared/select.json b/showcases/shared/select.json index cd79ceae4a50..465c444266c7 100644 --- a/showcases/shared/select.json +++ b/showcases/shared/select.json @@ -1,4 +1,33 @@ [ + { + "name": "Tonality", + "examples": [ + { + "name": "functional", + "className": "db-ui-functional", + "props": { + "label": "Label", + "message": "functional" + } + }, + { + "name": "regular (Default)", + "className": "db-ui-regular", + "props": { + "label": "Label", + "message": "regular (Default)" + } + }, + { + "name": "expressive", + "className": "db-ui-expressive", + "props": { + "label": "Label", + "message": "expressive" + } + } + ] + }, { "name": "Variant", "examples": [ @@ -117,6 +146,22 @@ ] } }, + { + "name": "Required", + "props": { + "label": "Label", + "message": "Required", + "options": [ + { + "value": "Option 1" + }, + { + "value": "Option 2" + } + ], + "required": true + } + }, { "name": "Disabled", "props": { diff --git a/showcases/vue-showcase/src/components/select/Select.vue b/showcases/vue-showcase/src/components/select/Select.vue index 6f66a7e8f4bf..74c6b162bf7e 100644 --- a/showcases/vue-showcase/src/components/select/Select.vue +++ b/showcases/vue-showcase/src/components/select/Select.vue @@ -17,6 +17,7 @@ import { DBSelect } from "../../../../../output/vue/vue3/src"; :icon="exampleProps.icon" :value="exampleProps.value" :message="exampleProps.message" + :required="exampleProps.required" >{{ exampleName }}