Skip to content

Commit 793038b

Browse files
feat(ui5-input): align value state message to spec (#12017)
- Removed inline styling for popover headers - Standardized the value state message appearance across components - Align the value state message popup to the specs
1 parent 344d683 commit 793038b

File tree

8 files changed

+19
-12
lines changed

8 files changed

+19
-12
lines changed

packages/main/src/ComboBox.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1495,12 +1495,10 @@ class ComboBox extends UI5Element implements IFormInputElement {
14951495
get styles() {
14961496
const remSizeInPx = parseInt(getComputedStyle(document.documentElement).fontSize);
14971497
return {
1498-
popoverHeader: {
1499-
"width": `${this.offsetWidth}px`,
1500-
},
15011498
suggestionPopoverHeader: {
15021499
"display": this._listWidth === 0 ? "none" : "inline-block",
15031500
"width": `${this._listWidth || ""}px`,
1501+
"max-width": "inherit",
15041502
},
15051503
suggestionsPopover: {
15061504
"min-width": `${this.offsetWidth || 0}px`,

packages/main/src/ComboBoxPopoverTemplate.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ export default function ComboBoxPopoverTemplate(this: ComboBox) {
122122
onClose={this._handleValueStatePopoverAfterClose}
123123
onFocusOut={this._handleValueStatePopoverFocusout}
124124
>
125-
<div slot="header" class={this.classes.popoverValueState} style={this.styles.popoverHeader}>
125+
<div slot="header" class={this.classes.popoverValueState}>
126126
<Icon class="ui5-input-value-state-message-icon" name={this._valueStateMessageIcon}/>
127127
{ valueStateMessage.call(this) }
128128
</div>

packages/main/src/Input.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1795,19 +1795,17 @@ class Input extends UI5Element implements SuggestionComponent, IFormInputElement
17951795
}
17961796

17971797
get styles() {
1798-
const remSizeIxPx = parseInt(getComputedStyle(document.documentElement).fontSize);
1798+
const remSizeInPx = parseInt(getComputedStyle(document.documentElement).fontSize);
17991799

18001800
const stylesObject = {
1801-
popoverHeader: {
1802-
"max-width": this._inputWidth ? `${this._inputWidth}px` : "",
1803-
},
18041801
suggestionPopoverHeader: {
18051802
"display": this._listWidth === 0 ? "none" : "inline-block",
18061803
"width": this._listWidth ? `${this._listWidth}px` : "",
1804+
"max-width": "inherit",
18071805
},
18081806
suggestionsPopover: {
18091807
"min-width": this._inputWidth ? `${this._inputWidth}px` : "",
1810-
"max-width": this._inputWidth && (this._inputWidth / remSizeIxPx) > 40 ? `${this._inputWidth}px` : "40rem",
1808+
"max-width": this._inputWidth && (this._inputWidth / remSizeInPx) > 40 ? `${this._inputWidth}px` : "40rem",
18111809
},
18121810
innerInput: {
18131811
"padding": "",

packages/main/src/InputPopoverTemplate.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export default function InputPopoverTemplate(this: Input, hooks?: { suggestionsL
2929
open={this.valueStateOpen}
3030
onClose={this._handleValueStatePopoverAfterClose}
3131
>
32-
<div slot="header" class={this.classes.popoverValueState} style={this.styles.popoverHeader}>
32+
<div slot="header" class={this.classes.popoverValueState}>
3333
<Icon class="ui5-input-value-state-message-icon" name={valueStateMessageInputIcon.call(this)} />
3434
{ this.valueStateOpen && valueStateMessage.call(this) }
3535
</div>

packages/main/src/MultiComboBox.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2182,7 +2182,7 @@ class MultiComboBox extends UI5Element implements IFormInputElement {
21822182
"display": this._listWidth === 0 ? "none" : "inline-block",
21832183
},
21842184
popoverHeader: {
2185-
"max-width": isPhone() ? "100%" : `${this._inputWidth}px`,
2185+
"max-width": isPhone() ? "100%" : `22rem`,
21862186
},
21872187
suggestionsPopover: {
21882188
"min-width": `${this._inputWidth}px`,

packages/main/src/themes/MultiComboBoxPopover.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,7 @@
3636
:host([readonly]) ::slotted([ui5-mcb-item]) {
3737
cursor: auto;
3838
}
39+
40+
[ui5-responsive-popover] .ui5-valuestatemessage-header, [ui5-popover] .ui5-valuestatemessage-header {
41+
max-width: inherit;
42+
}

packages/main/src/themes/ValueStateMessage.css

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@
4747
}
4848

4949
[ui5-responsive-popover] .ui5-valuestatemessage-header, [ui5-popover] .ui5-valuestatemessage-header {
50-
min-height: 2rem;
50+
min-height: var(--_ui5_value_state_message_popover_header_min_height);
51+
min-width: var(--_ui5_value_state_message_popover_header_min_width);
52+
max-width: var(--_ui5_value_state_message_popover_header_max_width);
53+
width: var(--_ui5_value_state_message_popover_header_width);
5154
}
5255

5356
[ui5-responsive-popover] .ui5-valuestatemessage-header {

packages/main/src/themes/base/ValueStateMessage-parameters.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
--_ui5_value_state_header_box_shadow_success: inset 0 -0.0625rem var(--sapField_SuccessColor);
1717
--_ui5_value_state_header_box_shadow_warning: inset 0 -0.0625rem var(--sapField_WarningColor);
1818
--_ui5_value_state_message_line_height: 1rem;
19+
--_ui5_value_state_message_popover_header_min_height: 2rem;
20+
--_ui5_value_state_message_popover_header_min_width: 6rem;
21+
--_ui5_value_state_message_popover_header_max_width: 22rem;
22+
--_ui5_value_state_message_popover_header_width: auto;
1923
--_ui5_value_state_message_icon_offset_phone: 1rem;
2024
--_ui5_value_state_header_border_bottom: none;
2125
}

0 commit comments

Comments
 (0)