@sapudex/web-components 0.111.0 → 0.114.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/.npmrc +1 -2
  2. package/bundle.esm.js +1 -0
  3. package/dist/AccordionItem.d.ts +7 -0
  4. package/dist/AccordionItem.js +6 -2
  5. package/dist/AccordionItem.js.map +1 -1
  6. package/dist/CountrySelector.d.ts +5 -7
  7. package/dist/CountrySelector.js +12 -7
  8. package/dist/CountrySelector.js.map +1 -1
  9. package/dist/Dropdown.d.ts +10 -0
  10. package/dist/Dropdown.js +10 -0
  11. package/dist/Dropdown.js.map +1 -1
  12. package/dist/Footer.d.ts +40 -1
  13. package/dist/Footer.js +151 -1
  14. package/dist/Footer.js.map +1 -1
  15. package/dist/InputGroup.d.ts +75 -0
  16. package/dist/InputGroup.js +101 -0
  17. package/dist/InputGroup.js.map +1 -0
  18. package/dist/MastheadMobileMenu.d.ts +4 -1
  19. package/dist/MastheadMobileMenu.js +10 -3
  20. package/dist/MastheadMobileMenu.js.map +1 -1
  21. package/dist/PhoneNumberField.d.ts +8 -0
  22. package/dist/PhoneNumberField.js +23 -10
  23. package/dist/PhoneNumberField.js.map +1 -1
  24. package/dist/Search.d.ts +58 -2
  25. package/dist/Search.js +159 -12
  26. package/dist/Search.js.map +1 -1
  27. package/dist/SecondaryNavigation.d.ts +5 -1
  28. package/dist/SecondaryNavigation.js +18 -2
  29. package/dist/SecondaryNavigation.js.map +1 -1
  30. package/dist/SelectBox.d.ts +6 -0
  31. package/dist/SelectBox.js +14 -1
  32. package/dist/SelectBox.js.map +1 -1
  33. package/dist/Table.d.ts +5 -5
  34. package/dist/Table.js +5 -5
  35. package/dist/Table.js.map +1 -1
  36. package/dist/Tag.d.ts +7 -1
  37. package/dist/Tag.js +6 -2
  38. package/dist/Tag.js.map +1 -1
  39. package/dist/TextArea.js.map +1 -1
  40. package/dist/assets/{bundle.esm-b7920968.js → bundle.esm-ab45813e.js} +181 -179
  41. package/dist/css/themes/AccordionItem.css +1 -1
  42. package/dist/css/themes/Breadcrumbs.css +1 -1
  43. package/dist/css/themes/CountrySelector.css +1 -1
  44. package/dist/css/themes/DatePicker.css +1 -1
  45. package/dist/css/themes/Dropdown.css +1 -1
  46. package/dist/css/themes/InputGroup.css +1 -0
  47. package/dist/css/themes/MastheadItem.css +1 -1
  48. package/dist/css/themes/MastheadMenuItem.css +1 -1
  49. package/dist/css/themes/MastheadShell.css +1 -1
  50. package/dist/css/themes/PhoneNumberField.css +1 -1
  51. package/dist/css/themes/RatingIndicator.css +1 -1
  52. package/dist/css/themes/Search.css +1 -1
  53. package/dist/css/themes/SearchSuggestions.css +1 -1
  54. package/dist/css/themes/Slider.css +1 -1
  55. package/dist/css/themes/Tag.css +1 -1
  56. package/dist/css/themes/TextField.css +1 -1
  57. package/dist/custom-elements-internal.json +405 -53
  58. package/dist/custom-elements.json +358 -52
  59. package/dist/features/SearchSuggestionsPopover.d.ts +3 -3
  60. package/dist/features/SearchSuggestionsPopover.js +16 -18
  61. package/dist/features/SearchSuggestionsPopover.js.map +1 -1
  62. package/dist/generated/templates/AccordionItemTemplate.lit.js +2 -1
  63. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  64. package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
  65. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  66. package/dist/generated/templates/FooterTemplate.lit.js +15 -15
  67. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  68. package/dist/generated/templates/InputGroupTemplate.lit.d.ts +4 -0
  69. package/dist/generated/templates/InputGroupTemplate.lit.js +7 -0
  70. package/dist/generated/templates/InputGroupTemplate.lit.js.map +1 -0
  71. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +15 -10
  72. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  73. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +1 -1
  74. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  75. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +11 -10
  76. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  77. package/dist/generated/templates/SearchTemplate.lit.js +11 -10
  78. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  79. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +2 -1
  80. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  81. package/dist/generated/themes/AccordionItem.css.js +1 -1
  82. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  83. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  84. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  85. package/dist/generated/themes/CountrySelector.css.js +1 -1
  86. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  87. package/dist/generated/themes/DatePicker.css.js +1 -1
  88. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  89. package/dist/generated/themes/Dropdown.css.js +1 -1
  90. package/dist/generated/themes/Dropdown.css.js.map +1 -1
  91. package/dist/generated/themes/InputGroup.css.d.ts +3 -0
  92. package/dist/generated/themes/InputGroup.css.js +9 -0
  93. package/dist/generated/themes/InputGroup.css.js.map +1 -0
  94. package/dist/generated/themes/MastheadItem.css.js +1 -1
  95. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  96. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  97. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  98. package/dist/generated/themes/MastheadShell.css.js +1 -1
  99. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  100. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  101. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  102. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  103. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  104. package/dist/generated/themes/Search.css.js +1 -1
  105. package/dist/generated/themes/Search.css.js.map +1 -1
  106. package/dist/generated/themes/SearchSuggestions.css.js +1 -1
  107. package/dist/generated/themes/SearchSuggestions.css.js.map +1 -1
  108. package/dist/generated/themes/Slider.css.js +1 -1
  109. package/dist/generated/themes/Slider.css.js.map +1 -1
  110. package/dist/generated/themes/Tag.css.js +1 -1
  111. package/dist/generated/themes/Tag.css.js.map +1 -1
  112. package/dist/generated/themes/TextField.css.js +1 -1
  113. package/dist/generated/themes/TextField.css.js.map +1 -1
  114. package/dist/types/callback.d.ts +2 -0
  115. package/dist/types/callback.js +2 -0
  116. package/dist/types/callback.js.map +1 -0
  117. package/dist/utils/debounce.d.ts +2 -2
  118. package/dist/utils/debounce.js.map +1 -1
  119. package/dist/utils/retryUntilSuccessful.d.ts +3 -0
  120. package/dist/utils/retryUntilSuccessful.js +21 -0
  121. package/dist/utils/retryUntilSuccessful.js.map +1 -0
  122. package/dist/vscode.html-custom-data.json +48 -12
  123. package/dist/web-types.json +205 -29
  124. package/package.json +1 -1
  125. package/src/AccordionItem.hbs +12 -1
  126. package/src/AccordionItem.ts +11 -2
  127. package/src/CountrySelector.hbs +1 -2
  128. package/src/CountrySelector.ts +18 -20
  129. package/src/Dropdown.ts +10 -0
  130. package/src/Footer.hbs +154 -91
  131. package/src/Footer.ts +158 -1
  132. package/src/InputGroup.hbs +20 -0
  133. package/src/InputGroup.ts +136 -0
  134. package/src/MastheadMobileMenu.hbs +51 -28
  135. package/src/MastheadMobileMenu.ts +12 -3
  136. package/src/MastheadProfileMenu.hbs +1 -1
  137. package/src/PhoneNumberField.ts +27 -3
  138. package/src/Search.hbs +23 -1
  139. package/src/Search.ts +203 -15
  140. package/src/SearchSuggestions.hbs +46 -48
  141. package/src/SecondaryNavigation.hbs +6 -4
  142. package/src/SecondaryNavigation.ts +23 -3
  143. package/src/SelectBox.ts +22 -0
  144. package/src/Table.ts +7 -7
  145. package/src/Tag.ts +12 -3
  146. package/src/TextArea.ts +1 -1
  147. package/src/features/SearchSuggestionsPopover.ts +18 -20
  148. package/src/generated/templates/AccordionItemTemplate.lit.ts +2 -1
  149. package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
  150. package/src/generated/templates/FooterTemplate.lit.ts +15 -15
  151. package/src/generated/templates/InputGroupTemplate.lit.ts +12 -0
  152. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +15 -10
  153. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +1 -1
  154. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +11 -10
  155. package/src/generated/templates/SearchTemplate.lit.ts +10 -9
  156. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +2 -1
  157. package/src/generated/themes/AccordionItem.css.ts +1 -1
  158. package/src/generated/themes/Breadcrumbs.css.ts +1 -1
  159. package/src/generated/themes/CountrySelector.css.ts +1 -1
  160. package/src/generated/themes/DatePicker.css.ts +1 -1
  161. package/src/generated/themes/Dropdown.css.ts +1 -1
  162. package/src/generated/themes/InputGroup.css.ts +13 -0
  163. package/src/generated/themes/MastheadItem.css.ts +1 -1
  164. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  165. package/src/generated/themes/MastheadShell.css.ts +1 -1
  166. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  167. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  168. package/src/generated/themes/Search.css.ts +1 -1
  169. package/src/generated/themes/SearchSuggestions.css.ts +1 -1
  170. package/src/generated/themes/Slider.css.ts +1 -1
  171. package/src/generated/themes/Tag.css.ts +1 -1
  172. package/src/generated/themes/TextField.css.ts +1 -1
  173. package/src/themes/AccordionItem.css +20 -15
  174. package/src/themes/Breadcrumbs.css +4 -2
  175. package/src/themes/CountrySelector.css +12 -1
  176. package/src/themes/DatePicker.css +1 -1
  177. package/src/themes/Dropdown.css +2 -2
  178. package/src/themes/InputGroup.css +19 -0
  179. package/src/themes/MastheadItem.css +2 -7
  180. package/src/themes/MastheadMenuItem.css +0 -4
  181. package/src/themes/MastheadShell.css +9 -10
  182. package/src/themes/PhoneNumberField.css +13 -3
  183. package/src/themes/Search.css +160 -17
  184. package/src/themes/SearchSuggestions.css +7 -1
  185. package/src/themes/Tag.css +6 -1
  186. package/src/themes/TextField.css +10 -1
  187. package/src/types/callback.ts +3 -0
  188. package/src/utils/debounce.ts +1 -1
  189. package/src/utils/retryUntilSuccessful.ts +23 -0
@@ -1,10 +1,10 @@
1
1
  :host {
2
- --udex-accordion-icon-color: var(--sapContent_MarkerIconColor, var(--udexColorBlue9));
3
- --udex-accordion-headline-color: var(--sapTextColor, var(--udexCoreTextDark));
4
- --udex-accordion-headline-font-size: var(--sapFontHeader5Size, var(--udexTypographyHeadingMediumXXXSFontSize, 18px));
5
- --udex-accordion-title-font-weight: var(--udexTypographyFontWeightMedium, 500);
6
- --udex-accordion-border-color: var(--sapList_BorderColor, var(--udexColorGrey4));
7
- --udex-accordion-border-width: .5px;
2
+ --udex-accordion-item-icon-color: var(--sapContent_MarkerIconColor, var(--udexColorBlue9));
3
+ --udex-accordion-item-headline-color: var(--sapTextColor, var(--udexCoreTextDark));
4
+ --udex-accordion-item-headline-font-size: var(--sapFontHeader5Size, var(--udexTypographyHeadingMediumXXXSFontSize, 18px));
5
+ --udex-accordion-item-title-font-weight: var(--udexTypographyFontWeightMedium, 500);
6
+ --udex-accordion-item-border-color: var(--sapList_BorderColor, var(--udexColorGrey4));
7
+ --udex-accordion-item-border-width: .5px;
8
8
  --udex-accordion-item-header-padding: 12px 12px 12px 8px;
9
9
  --udex-accordion-item-content-margin: var(--udexSpacer12, 12px) var(--udexSpacer16, 16px);
10
10
  font-family: var(--sapFontFamily, sans-serif);
@@ -17,26 +17,26 @@
17
17
 
18
18
  .udex-accordion-item__header {
19
19
  align-items: center;
20
- color: var(--udex-accordion-headline-color);
20
+ color: var(--udex-accordion-item-headline-color);
21
21
  display: flex;
22
- font-size: var(--udex-accordion-headline-font-size);
22
+ font-size: var(--udex-accordion-item-headline-font-size);
23
23
  gap: var(--udexSpacer12, 12px);
24
24
  padding: var(--udex-accordion-item-header-padding);
25
25
  line-height: var(--udexTypographyHeadingLineHeight, 1.1);
26
- border-bottom: var(--udex-accordion-border-width) solid var(--udex-accordion-border-color);
26
+ border-bottom: var(--udex-accordion-item-border-width) solid var(--udex-accordion-item-border-color);
27
27
  cursor: pointer;
28
28
  }
29
29
 
30
30
  :host([desktop]) .udex-accordion-item__header:focus,
31
31
  .udex-accordion-item__header:focus-visible {
32
- outline: 2px solid #002A86;
33
- border-radius: 8px;
32
+ outline: 2px solid var(--udexColorBlue10, #002A86);
33
+ border-radius: var(--udexRadiusM, 8px);
34
34
  }
35
35
 
36
36
  .udex-accordion-item__icon {
37
37
  height: var(--udex-button-icon-l-size, 18px);
38
38
  width: var(--udex-button-icon-l-size, 18px);
39
- color: var(--udex-accordion-icon-color);
39
+ color: var(--udex-accordion-item-icon-color);
40
40
  transform: rotate(0);
41
41
  }
42
42
 
@@ -61,9 +61,9 @@
61
61
  }
62
62
 
63
63
  .udex-accordion-item__title {
64
- margin: 0;
65
- font-weight: var(--udex-accordion-title-font-weight);
66
- flex: 1;
64
+ font-weight: var(--udex-accordion-item-title-font-weight);
65
+ align-items: center;
66
+ display: flex;
67
67
  }
68
68
 
69
69
  .udex-accordion-item__content {
@@ -78,3 +78,8 @@
78
78
  .active .udex-accordion-item__content {
79
79
  display: block;
80
80
  }
81
+
82
+ .udex-accordion-item__badge {
83
+ display: inline-flex;
84
+ margin-inline-start: var(--udexSpacer8);
85
+ }
@@ -1,7 +1,7 @@
1
1
  :host {
2
2
  --udex-breadcrumbs-item-color: var(--sapNeutralElementColor, var(--udexColorGrey6, #5B738B ));
3
3
  --udex-breadcrumbs-item-font-size: var(--udexTypographyBodyXXSFontSize, 12px);
4
- --udex-breadcrumbs_margin: 0;
4
+ --udex-breadcrumbs-margin: 0;
5
5
  }
6
6
 
7
7
  .udex-breadcrumbs {
@@ -22,6 +22,7 @@
22
22
 
23
23
  .udex-breadcrumbs > ol > li {
24
24
  display: inline-flex;
25
+ align-items: baseline;
25
26
  }
26
27
 
27
28
  .udex-breadcrumbs__separator::after {
@@ -120,6 +121,7 @@
120
121
  padding-left: 0;
121
122
  }
122
123
 
123
- .udex-breadcrumbs__arrow-wrapper [ui5-link][focused] [ui5-icon]:after, .udex-breadcrumbs__arrow-wrapper:hover [ui5-icon]:after {
124
+ .udex-breadcrumbs__arrow-wrapper [ui5-link][focused] [ui5-icon]:after,
125
+ .udex-breadcrumbs__arrow-wrapper:hover [ui5-icon]:after {
124
126
  border-bottom: 0;
125
127
  }
@@ -2,6 +2,9 @@
2
2
  --udex-country-selector-flag-width: 30px;
3
3
  --udex-country-selector-flag-height: 20px;
4
4
  --udex-country-selector-input-disabled-opacity: var(--sapContent_DisabledOpacity, 0.4);
5
+ --udex-country-selector-min-width: 320px;
6
+ --udex-country-selector-max-width: 100%;
7
+ --udex-country-selector-min-width-xs-and-s: 100%;
5
8
  }
6
9
 
7
10
  .udex-country-selector__text {
@@ -18,11 +21,19 @@
18
21
  right: var(--udexSpacer32);
19
22
  }
20
23
 
24
+ @media (width < 640px) {
25
+ .udex-country-selector__trigger{
26
+ min-width: var(--udex-country-selector-min-width-xs-and-s);
27
+ }
28
+ }
29
+
21
30
  .udex-country-selector__trigger {
22
31
  display: flex;
23
32
  align-items: center;
24
33
  position: relative;
25
- width: max-content;
34
+ max-width: var(--udex-country-selector-max-width);
35
+ min-width: var(--udex-country-selector-min-width);
36
+ width: 100%;
26
37
  }
27
38
 
28
39
  :host(:not([disabled]):not([displayonly]):not([readonly])) .udex-country-selector__trigger {
@@ -10,7 +10,7 @@
10
10
  }
11
11
 
12
12
  .udex-date-picker__calendar {
13
- min-width: var(--udex-date-picker-width, 354px);
13
+ min-width: var(--udex-date-picker-width);
14
14
  background-color: var(--udexNeutralColorWhite, #ffffff);
15
15
  border-radius: 8px;
16
16
  box-shadow: 0 2px 8px 0 #2236494D;
@@ -6,8 +6,8 @@
6
6
  --udex-dropdown-default-background-color: var(--udexColorNeutralWhite, #fff);
7
7
  --udex-dropdown-horizontal-distance: 0;
8
8
  --udex-dropdown-vertical-distance: 0;
9
- --udex-dropdown-pane-max-width: 640px;
10
9
  --udex-dropdown-pane-min-width: 320px;
10
+ --udex-dropdown-pane-width: fit-content;
11
11
  --udex-dropdown-pane-max-height: none;
12
12
  --udex-dropdown-pane-overflow: visible;
13
13
  --udex-dropdown-pane-content-overflow: auto;
@@ -19,7 +19,7 @@
19
19
  border-radius: var(--udex-dropdown-border-radius);
20
20
  background: var(--udex-dropdown-default-background-color);
21
21
  min-width: var(--udex-dropdown-pane-min-width);
22
- max-width: var(--udex-dropdown-pane-max-width);
22
+ width: var(--udex-dropdown-pane-width);
23
23
  max-height: var(--udex-dropdown-pane-max-height);
24
24
  margin: var(--udex-dropdown-vertical-distance) var(--udex-dropdown-horizontal-distance);
25
25
  overflow: var(--udex-dropdown-pane-overflow);
@@ -0,0 +1,19 @@
1
+ .udex-input-group__content {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: var(--udexSpacer4);
5
+ }
6
+
7
+ :host([orientation="Horizontal"]) .udex-input-group__content {
8
+ flex-direction: row;
9
+ flex-wrap: wrap;
10
+ gap: var(--udexSpacer12);
11
+ }
12
+
13
+ .udex-input-group__content {
14
+ padding-bottom: var(--udexSpacer4);
15
+ }
16
+
17
+ .hidden-text {
18
+ display: none;
19
+ }
@@ -153,6 +153,8 @@
153
153
  border-radius: var(--udex-masthead-item-border-radius);
154
154
  }
155
155
 
156
+ :host(:active) .udex-masthead-item.udex-masthead-item__button--icon:after,
157
+ :host([selected]) .udex-masthead-item.udex-masthead-item__button--icon:after,
156
158
  :host(:active) .udex-masthead-item.udex-masthead-item__button--profile:after,
157
159
  :host([selected]) .udex-masthead-item.udex-masthead-item__button--profile:after {
158
160
  bottom: -14px;
@@ -165,13 +167,6 @@
165
167
  color:var(--udex-masthead-item-color-active);
166
168
  }
167
169
 
168
- :host(:active) .udex-masthead-item.udex-masthead-item__button--icon:after,
169
- :host([selected]) .udex-masthead-item.udex-masthead-item__button--icon:after{
170
- bottom: -20px;
171
- left: -7px;
172
- right: -7px;
173
- }
174
-
175
170
  .udex-masthead-item__icon-container {
176
171
  display: flex;
177
172
  align-items: center;
@@ -160,10 +160,6 @@ button.udex-masthead-menu-item {
160
160
  }
161
161
 
162
162
  @media (max-width: 1279px) {
163
- :host([has-border]) .udex-masthead-menu-item_is-list{
164
- border-bottom: none
165
- }
166
-
167
163
  .udex-masthead-menu-item {
168
164
  padding: var(--udex-masthead-menu-item-padding-mobile);
169
165
  }
@@ -124,16 +124,12 @@
124
124
  .udex-masthead-shell__right-menu {
125
125
  display: flex;
126
126
  align-items: center;
127
+ gap: var(--udexSpacer8);
127
128
  }
128
129
 
129
130
  .udex-masthead-shell__explore {
130
131
  white-space: nowrap;
131
- margin-inline-end: var(--udexSpacer20);
132
- }
133
-
134
- .udex-masthead-shell__cart,
135
- .udex-masthead-shell__search-icon {
136
- margin-inline-end: 10px;
132
+ margin-inline-end: var(--udexSpacer12);
137
133
  }
138
134
 
139
135
  .udex-masthead-shell__cart,
@@ -149,12 +145,11 @@
149
145
 
150
146
  .udex-masthead-shell__menu-btn {
151
147
  height: 18px;
152
- margin-inline-start: var(--udexSpacer20);
153
148
  }
154
149
 
155
150
  .udex-masthead-shell__close-btn {
156
151
  position: relative;
157
- margin-inline-start: var(--udexSpacer24);
152
+ margin-inline-start: var(--udexSpacer12);
158
153
  }
159
154
 
160
155
  .udex-masthead-shell__close-btn:before {
@@ -164,14 +159,14 @@
164
159
  top: 0;
165
160
  bottom: 0;
166
161
  height: 32px;
167
- border-radius: 2px;
162
+ border-radius: var(--udexRadiusXXS);
168
163
  width: 1px;
169
164
  background: var(--udex-masthead-shell-close-button-divider-color);
170
165
  }
171
166
 
172
167
  :dir(rtl) .udex-masthead-shell__close-btn:before {
173
168
  left: auto;
174
- right: -20px;
169
+ right: -12px;
175
170
  }
176
171
 
177
172
  :dir(rtl) .udex-masthead-mobile-wrap {
@@ -225,6 +220,10 @@
225
220
  .udex-masthead-shell_mobile-menu-open .udex-masthead-shell__close-btn {
226
221
  display: flex;
227
222
  }
223
+
224
+ .udex-masthead-shell__right-menu {
225
+ gap: var(--udexSpacer12);
226
+ }
228
227
  }
229
228
 
230
229
  @media (max-width: 979px) {
@@ -37,7 +37,6 @@
37
37
 
38
38
  --udex-phone-number-field-color-label-background: var(--sapField_Background, #fff);
39
39
 
40
- --udex-phone-number-field-width: 320px;
41
40
  --udex-phone-number-field-height: 42px;
42
41
  --udex-phone-number-field-paddings: 9px var(--udexSpacer12, 12px);
43
42
  --udex-phone-number-field-button-margins-vertical: -10px;
@@ -48,12 +47,20 @@
48
47
  --udex-phone-number-field-flag-height: 20px;
49
48
  --udex-phone-number-field-button-border: var(--udexColorGrey4, #A9B4BE);
50
49
  --udex-phone-number-field-button-color-tertiary-standard-hover-border: var(--udexColorGrey4, #A9B4BE);
51
-
50
+ --udex-phone-number-field-min-width: 320px;
51
+ --udex-phone-number-field-min-width-xs-and-s :100%;
52
+ --udex-phone-number-field-max-width: 100%;
52
53
  display: block;
53
54
  font-family: var(--sapFontFamily, sans-serif);
54
55
  font-size: var(--sapFontSize, 16px);
55
56
  color: var(--udex-phone-number-field-color-standard-default-text);
56
- width: var(--udex-phone-number-field-width);
57
+
58
+ }
59
+
60
+ @media (width < 640px) {
61
+ .udex-phone-number-field{
62
+ min-width: var(--udex-phone-number-field-min-width-xs-and-s);
63
+ }
57
64
  }
58
65
 
59
66
  .udex-phone-number-field {
@@ -64,6 +71,9 @@
64
71
  background: var(--udex-phone-number-field-color-standard-default-background);
65
72
  border-radius: var(--udex-phone-number-field-radius);
66
73
  border: 1px solid var(--udex-phone-number-field-color-standard-default-border);
74
+ min-width: var(--udex-phone-number-field-min-width);
75
+ max-width: var(--udex-phone-number-field-max-width);
76
+ width: 100%;
67
77
  }
68
78
 
69
79
  .udex-phone-number-field__label {
@@ -20,7 +20,20 @@
20
20
  --udex-input-padding-horizontal: var(--udexSpacer12, 12px);
21
21
  --udex-input-padding-vertical: var(--udexSpacer8, 8px);
22
22
 
23
- --udex-button-icon-size: var(--sapGroup_Title_FontSize, var(--udexCoreSizeIconInput));
23
+ --udex-button-icon-size: var(--sapFontHeader2Size, 28px);
24
+
25
+ --udex-dropdown-border-width: auto;
26
+
27
+ --udex-search-container-padding-inline-end: 12px;
28
+ --udex-search-label-inset-inline-start: 12px;
29
+ --udex-search-icons-margin-inline-end: 12px;
30
+
31
+ --udex-search-label-width: calc(
32
+ 100% -
33
+ var(--udex-search-label-inset-inline-start) -
34
+ var(--udex-input-padding-horizontal) -
35
+ var(--udex-search-container-padding-inline-end)
36
+ );
24
37
 
25
38
  display: block;
26
39
  width: 100%;
@@ -30,7 +43,8 @@
30
43
  display: none;
31
44
  }
32
45
 
33
- :host(:not([mode="Home Search"])) .udex-search__label.udex-search__label--active.udex-search__label--animation-enabled {
46
+ :host(:not([mode="Home Search"])) .udex-search__label.udex-search__label--active.udex-search__label--animation-enabled,
47
+ :host(:not([mode="Home Search"])) .udex-search-prefix .udex-search__label.udex-search__label--active.udex-search__label--animation-enabled {
34
48
  display: block;
35
49
  line-height: 18px;
36
50
  transform: translateY(-110%);
@@ -42,20 +56,36 @@
42
56
  background-color: #FFFFFF;
43
57
  }
44
58
 
45
- :host([mode="Home Search"]) .udex-search__root {
59
+ :host([mode="Home Search"]) .udex-search__root,
60
+ :host([mode="Home Search"]) .udex-search__root.udex-search-prefix {
46
61
  --udex-input-radius: var(--udexRadiusXXL, 24px);
47
62
  position: relative;
48
63
  z-index: 1;
49
64
  }
50
65
 
51
- :host([mode="Home Search"]) .udex-search__root.udex-search__root--show-popover::after {
66
+ :host([mode="Home Search"]) .udex-search__root.udex-search-prefix {
67
+ display: flex;
68
+ width: 100%;
69
+ position: relative;
70
+ z-index: 1;
71
+ }
72
+
73
+ :host([mode="Home Search"]) .udex-search-prefix .udex-search__prefix + .udex-search__container {
74
+ border-start-start-radius: 0;
75
+ border-start-end-radius: var(--udexRadiusXXL, 24px);
76
+ border-end-start-radius: 0;
77
+ border-end-end-radius: var(--udexRadiusXXL, 24px);
78
+ flex-grow: 1;
79
+ }
80
+
81
+ :host([mode="Home Search"]) .udex-search__root.udex-search__root--show-popover::after,
82
+ :host([mode="Home Search"]) .udex-search__root.udex-search-prefix.udex-search__root--show-popover::after {
52
83
  content: '';
53
84
  position: absolute;
54
85
  z-index: -1;
55
86
  height: 21px;
56
- left: 0;
57
- right: 0;
58
- bottom: 0;
87
+ inset-inline: 0;
88
+ inset-block-end: 0;
59
89
  background-color: var(--udexColorNeutralWhite, #fff);
60
90
  border-left: 1px solid var(--udexColorGrey6, #5B738B);
61
91
  border-right: 1px solid var(--udexColorGrey6, #5B738B);
@@ -63,17 +93,25 @@
63
93
  overflow-y: hidden;
64
94
  }
65
95
 
96
+ :host([mode="Home Search"]) .udex-search__root.udex-search-prefix.udex-search__root--show-popover::after {
97
+ inset-inline-start: auto;
98
+ width: 50px;
99
+ }
100
+
66
101
  :host([mode="Home Search"]) .udex-search__container:not(.udex-search__container--has-value),
67
- :host([mode="Home Search"]) .udex-search__container:not(.udex-search__container--has-value) .udex-search__field {
102
+ :host([mode="Home Search"]) .udex-search__container:not(.udex-search__container--has-value) .udex-search__field,
103
+ :host([mode="Home Search"]) .udex-search-prefix .udex-search__container:not(.udex-search__container--has-value),
104
+ :host([mode="Home Search"]) .udex-search-prefix .udex-search__container:not(.udex-search__container--has-value) .udex-search__field {
68
105
  background-color: var(--udex-input-background-color);
69
106
  }
70
107
 
71
- :host([mode="Home Search"]) .udex-search__label.udex-search__label--active {
108
+ :host([mode="Home Search"]) .udex-search__label.udex-search__label--active,
109
+ :host([mode="Home Search"]) .udex-search-prefix .udex-search__label.udex-search__label--active {
72
110
  display: none;
73
111
  }
74
112
 
75
113
  .udex-search__container {
76
- padding-inline-end: 12px;
114
+ padding-inline-end: var(--udex-search-container-padding-inline-end);
77
115
  display: flex;
78
116
  align-items: center;
79
117
  position: relative;
@@ -133,7 +171,7 @@ input[type="search"]::-webkit-search-results-decoration {
133
171
  .udex-search__label {
134
172
  position: absolute;
135
173
  inset-block-start: 9px;
136
- inset-inline-start: 12px;
174
+ inset-inline-start: var(--udex-search-label-inset-inline-start);
137
175
  z-index: 2;
138
176
  color: var(--udex-input-color-label);
139
177
  font-family: var(--udex-input-font-family-label);
@@ -141,6 +179,22 @@ input[type="search"]::-webkit-search-results-decoration {
141
179
  font-weight: var(--udex-input-font-weight-label);
142
180
  line-height: var(--udex-input-line-height-label);
143
181
  transition: transform 150ms ease-out, font-size 150ms ease-out;
182
+ overflow: hidden;
183
+ white-space: nowrap;
184
+ max-width: var(--udex-search-label-width);
185
+ }
186
+
187
+ .udex-search__label-with-search-icon,
188
+ .udex-search__label-with-voice-icon {
189
+ max-width: calc(var(--udex-search-label-width) - var(--udex-button-icon-size));
190
+ }
191
+
192
+ .udex-search__label-with-search-icon.udex-search__label-with-voice-icon {
193
+ max-width: calc(
194
+ var(--udex-search-label-width) -
195
+ var(--udex-button-icon-size) * 2 -
196
+ var(--udex-search-icons-margin-inline-end)
197
+ );
144
198
  }
145
199
 
146
200
  .udex-search__icons {
@@ -153,7 +207,7 @@ input[type="search"]::-webkit-search-results-decoration {
153
207
  }
154
208
 
155
209
  .udex-search__icons>* {
156
- margin-inline-end: 12px;
210
+ margin-inline-end: var(--udex-search-icons-margin-inline-end);
157
211
  }
158
212
 
159
213
  .udex-search__icons>*:last-child {
@@ -181,8 +235,8 @@ input[type="search"]::-webkit-search-results-decoration {
181
235
  [ui5-button].udex-search__button:focus::before {
182
236
  content: '';
183
237
  position: absolute;
184
- inset-block-start: -5px;
185
- inset-inline-start: -5px;
238
+ inset-block-start: 0;
239
+ inset-inline-start: 0;
186
240
  width: 28px;
187
241
  height: 28px;
188
242
  border: 2px solid #0040B0;
@@ -190,7 +244,11 @@ input[type="search"]::-webkit-search-results-decoration {
190
244
  box-sizing: border-box;
191
245
  }
192
246
 
193
- [ui5-button].udex-search__button::part(button),
247
+ [ui5-button].udex-search__button::part(button) {
248
+ width: 28px;
249
+ height: 28px;
250
+ }
251
+
194
252
  [ui5-button].udex-search__button::part(icon) {
195
253
  width: 18px;
196
254
  height: 18px;
@@ -220,10 +278,95 @@ input[type="search"]::-webkit-search-results-decoration {
220
278
  content: '';
221
279
  position: absolute;
222
280
  z-index: -1;
223
- top: -5px;
224
- left: -5px;
281
+ top: 0;
282
+ left: 0;
225
283
  width: 28px;
226
284
  height: 28px;
227
285
  background-color: #0070F2;
228
286
  border-radius: 50%;
229
287
  }
288
+
289
+ .udex-search__prefix {
290
+ position: relative;
291
+ z-index: 1;
292
+ }
293
+
294
+ .udex-search__prefix--show-popover::after {
295
+ content: "";
296
+ position: absolute;
297
+ z-index: -1;
298
+ height: 50%;
299
+ width: 50px;
300
+ inset-inline-start: 0;
301
+ inset-block-end: 0;
302
+ background-color: var(--udexColorNeutralWhite, #fff);
303
+ border-left: 1px solid var(--udexColorGrey6, #5B738B);
304
+ border-right: 1px solid var(--udexColorGrey6, #5B738B);
305
+ box-shadow: var(--sapContent_Shadow1, 0px 2px 8px 0px rgba(34, 54, 73, 0.3));
306
+ overflow-y: hidden;
307
+ }
308
+
309
+ .udex-search__prefix-button {
310
+ padding-inline: var(--udexSpacer12) var(--udexSpacer8);
311
+ display: flex;
312
+ align-items: center;
313
+ max-width: 200px;
314
+ height: 100%;
315
+ border: 1px solid var(--udex-input-color-border);
316
+ border-inline-end: 0;
317
+ border-start-start-radius: var(--udexRadiusXXL, 24px);
318
+ border-end-start-radius: var(--udexRadiusXXL, 24px);
319
+ background-color: var(--sapShell_Navigation_Active_Background, var(--udexColorGrey1));
320
+ color: var(--sapContent_LabelColor, var(--udexColorGrey7));
321
+ font-family: var(--sapFontFamily, sans-serif);
322
+ font-size: var(--udexTypographyBodySFontSize, 16px);
323
+ font-weight: var(--udexTypographyFontWeightRegular, 400);
324
+ line-height: var(--udexTypographyBodyLineHeight, 1.5);
325
+ text-align: start;
326
+ white-space: nowrap;
327
+ }
328
+
329
+ .udex-search__prefix-button:hover {
330
+ cursor: pointer;
331
+ background-color: var(--udexCoreBase);
332
+ color: var(--udexColorBlue8)
333
+ }
334
+
335
+ .udex-search__prefix-button:focus,
336
+ .udex-search__prefix-button:focus-visible {
337
+ outline: 2px solid var(--udexColorBlue10, #002A86);
338
+ outline-offset: -2px;
339
+ }
340
+
341
+ .udex-search__prefix-button--active {
342
+ background-color: var(--udexCoreBase);
343
+ color: var(--udexColorBlue10)
344
+ }
345
+
346
+ .udex-search__prefix-label {
347
+ margin-inline-end: var(--udexSpacer4, 4px);
348
+ max-width: calc(100% - 20px);
349
+ overflow: hidden;
350
+ text-overflow: ellipsis;
351
+ }
352
+
353
+ .udex-search__prefix-icon {
354
+ width: 16px;
355
+ height: 16px;
356
+ color: inherit;
357
+ flex-shrink: 1;
358
+ }
359
+
360
+ .udex-search__prefix-popover {
361
+ border-start-start-radius: 0;
362
+ border-start-end-radius: 0;
363
+ border: 1px solid var(--udexCoreBorderDefault);
364
+ border-block-start: 0;
365
+ box-shadow: var(--sapContent_Shadow1, 0px 2px 8px 0px rgba(34,54,73,0.3));
366
+ background-color: var(--udexColorNeutralWhite, #fff);
367
+ clip-path: inset(0px -10px -10px -10px);
368
+ }
369
+
370
+ .udex-search__prefix-popover::part(content) {
371
+ padding: 0;
372
+ }
@@ -62,7 +62,8 @@
62
62
  border-block-end: 0;
63
63
  }
64
64
 
65
- .udex-search-suggestions__heading {
65
+ .udex-search-suggestions__heading,
66
+ .udex-search-suggestions__message {
66
67
  margin-block-end: var(--udex-heading-margin-vertical);
67
68
  padding-inline: var(--udex-heading-padding-horizontal) var(--udex-heading-padding-horizontal);
68
69
  display: block;
@@ -74,6 +75,11 @@
74
75
  text-transform: uppercase;
75
76
  }
76
77
 
78
+ .udex-search-suggestions__message {
79
+ margin-block: var(--udex-heading-margin-vertical);
80
+ text-align: center;
81
+ }
82
+
77
83
  .udex-search-suggestions__list {
78
84
  margin: 0;
79
85
  padding: 0;
@@ -75,7 +75,7 @@
75
75
  position: relative;
76
76
  max-width: 100%;
77
77
  }
78
-
78
+
79
79
  .udex-tag--medium {
80
80
  font-size: var(--udex-tags-medium-font-size);
81
81
  line-height: var(--udex-tags-medium-line-height);
@@ -107,6 +107,11 @@
107
107
  background-color: var(--udex-tags-grey-selected-background-color);
108
108
  }
109
109
 
110
+ .udex-tag-grey.udex-tag--nonselectable,
111
+ .udex-tag-grey.udex-tag--nonselectable:hover {
112
+ color: var(--udex-tags-text-color);
113
+ }
114
+
110
115
  .udex-tag-grey.udex-tag--selected:after {
111
116
  content: '';
112
117
  position: absolute;
@@ -29,12 +29,21 @@
29
29
  --udex-input-color-read-only-default-background: var(--sapField_ReadOnly_Background, var(--udexColorGrey2));
30
30
 
31
31
  --udex-input-padding: 9px var(--udexSpacer12, 12px);
32
+ --udex-input-min-width-xs-and-s: 100%;
33
+ --udex-input-max-width: 100%;
32
34
  }
33
35
 
34
36
  .udex-text-field__container {
35
- width: 100%;
36
37
  position: relative;
37
38
  font-family: var(--sapFontFamily, sans-serif);
39
+ max-width: var(--udex-input-max-width);
40
+ width: 100%;
41
+ }
42
+
43
+ @media (width < 640px) {
44
+ .udex-text-field__container{
45
+ min-width: var(--udex-input-min-width-xs-and-s);
46
+ }
38
47
  }
39
48
 
40
49
  :host([disabled]) .udex-text-field__container {
@@ -0,0 +1,3 @@
1
+ type CallbackFunction<T = any> = (args?: any) => T;
2
+
3
+ export default CallbackFunction;
@@ -1,4 +1,4 @@
1
- type CallbackFunction = (args: any) => any;
1
+ import CallbackFunction from "../types/callback.js";
2
2
 
3
3
  const debounce = <T extends CallbackFunction>(cb: T, timeout = 300) => {
4
4
  let timer: ReturnType<typeof setTimeout>;
@@ -0,0 +1,23 @@
1
+ import CallbackFunction from "../types/callback.js";
2
+
3
+ const retryUntilSuccessful = (checkFn: CallbackFunction<void>, delay: number, maxAttempts: number, errorMessage: string): Promise<void> => {
4
+ return new Promise((resolve, reject) => {
5
+ let currentAttempt = 0;
6
+
7
+ const attempt = () => {
8
+ currentAttempt++;
9
+ const result = checkFn();
10
+ if (result !== undefined) {
11
+ resolve(result);
12
+ } else if (currentAttempt < maxAttempts) {
13
+ setTimeout(attempt, delay);
14
+ } else {
15
+ reject(new Error(errorMessage));
16
+ }
17
+ };
18
+
19
+ attempt();
20
+ });
21
+ };
22
+
23
+ export default retryUntilSuccessful;