@openui5/sap.ui.unified 1.150.0 → 1.152.0

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 (65) hide show
  1. package/THIRDPARTY.txt +6 -6
  2. package/package.json +2 -2
  3. package/src/sap/ui/unified/.library +1 -1
  4. package/src/sap/ui/unified/Calendar.js +190 -1
  5. package/src/sap/ui/unified/CalendarAppointment.js +1 -1
  6. package/src/sap/ui/unified/CalendarDateInterval.js +1 -1
  7. package/src/sap/ui/unified/CalendarLegend.js +1 -1
  8. package/src/sap/ui/unified/CalendarLegendItem.js +1 -1
  9. package/src/sap/ui/unified/CalendarMonthInterval.js +1 -1
  10. package/src/sap/ui/unified/CalendarOneMonthInterval.js +1 -1
  11. package/src/sap/ui/unified/CalendarRenderer.js +8 -2
  12. package/src/sap/ui/unified/CalendarRow.js +1 -1
  13. package/src/sap/ui/unified/CalendarTimeInterval.js +1 -1
  14. package/src/sap/ui/unified/CalendarWeekInterval.js +1 -1
  15. package/src/sap/ui/unified/ColorPicker.js +46 -1
  16. package/src/sap/ui/unified/ColorPickerPopover.js +1 -1
  17. package/src/sap/ui/unified/ColorPickerRenderer.js +49 -15
  18. package/src/sap/ui/unified/ContentSwitcher.js +1 -1
  19. package/src/sap/ui/unified/Currency.js +1 -1
  20. package/src/sap/ui/unified/CurrencyRenderer.js +1 -1
  21. package/src/sap/ui/unified/DateRange.js +1 -1
  22. package/src/sap/ui/unified/DateTypeRange.js +27 -6
  23. package/src/sap/ui/unified/FileUploader.js +1 -1
  24. package/src/sap/ui/unified/FileUploaderParameter.js +1 -1
  25. package/src/sap/ui/unified/FileUploaderXHRSettings.js +1 -1
  26. package/src/sap/ui/unified/Menu.js +1 -1
  27. package/src/sap/ui/unified/MenuItem.js +2 -2
  28. package/src/sap/ui/unified/MenuItemBase.js +1 -1
  29. package/src/sap/ui/unified/MenuItemGroup.js +1 -1
  30. package/src/sap/ui/unified/MenuRenderer.js +4 -2
  31. package/src/sap/ui/unified/MenuTextFieldItem.js +7 -3
  32. package/src/sap/ui/unified/MonthlyRecurrenceRule.js +1 -1
  33. package/src/sap/ui/unified/NonWorkingPeriod.js +1 -1
  34. package/src/sap/ui/unified/RecurrenceRule.js +1 -1
  35. package/src/sap/ui/unified/RecurringCalendarAppointment.js +1 -1
  36. package/src/sap/ui/unified/RecurringNonWorkingPeriod.js +1 -1
  37. package/src/sap/ui/unified/Shell.js +1 -1
  38. package/src/sap/ui/unified/ShellHeadItem.js +2 -30
  39. package/src/sap/ui/unified/ShellHeadUserItem.js +3 -31
  40. package/src/sap/ui/unified/ShellHeader.js +29 -13
  41. package/src/sap/ui/unified/ShellLayout.js +1 -1
  42. package/src/sap/ui/unified/ShellOverlay.js +1 -1
  43. package/src/sap/ui/unified/SplitContainer.js +1 -1
  44. package/src/sap/ui/unified/TimeRange.js +1 -1
  45. package/src/sap/ui/unified/WeeklyRecurrenceRule.js +1 -1
  46. package/src/sap/ui/unified/YearlyRecurrenceRule.js +1 -1
  47. package/src/sap/ui/unified/calendar/DatesRow.js +1 -1
  48. package/src/sap/ui/unified/calendar/Header.js +1 -1
  49. package/src/sap/ui/unified/calendar/HeaderRenderer.js +1 -0
  50. package/src/sap/ui/unified/calendar/IndexPicker.js +1 -1
  51. package/src/sap/ui/unified/calendar/Month.js +83 -3
  52. package/src/sap/ui/unified/calendar/MonthPicker.js +1 -1
  53. package/src/sap/ui/unified/calendar/MonthRenderer.js +46 -14
  54. package/src/sap/ui/unified/calendar/MonthsRow.js +1 -1
  55. package/src/sap/ui/unified/calendar/OneMonthDatesRow.js +1 -1
  56. package/src/sap/ui/unified/calendar/TimesRow.js +1 -1
  57. package/src/sap/ui/unified/calendar/WeeksRow.js +1 -1
  58. package/src/sap/ui/unified/calendar/YearPicker.js +1 -1
  59. package/src/sap/ui/unified/calendar/YearRangePicker.js +1 -1
  60. package/src/sap/ui/unified/library.js +2 -2
  61. package/src/sap/ui/unified/themes/base/Calendar.less +39 -6
  62. package/src/sap/ui/unified/themes/base/ColorPicker.less +125 -3
  63. package/src/sap/ui/unified/themes/base/FileUploader.less +5 -0
  64. package/src/sap/ui/unified/themes/base/ShellHeader.less +2 -7
  65. package/src/sap/ui/unified/themes/sap_hcb/Calendar.less +2 -1
@@ -78,7 +78,7 @@ sap.ui.define([
78
78
  * If used inside the calendar the properties and aggregation are directly taken from the parent
79
79
  * (To not duplicate and sync DateRanges and so on...)
80
80
  * @extends sap.ui.core.Control
81
- * @version 1.150.0
81
+ * @version 1.152.0
82
82
  *
83
83
  * @constructor
84
84
  * @public
@@ -155,6 +155,15 @@ sap.ui.define([
155
155
  */
156
156
  showWeekNumbers : {type : "boolean", group : "Appearance", defaultValue : true},
157
157
 
158
+ /**
159
+ * Determines whether the header of the week numbers column is displayed.
160
+ * The column header text is translated according to the active language.
161
+ *
162
+ * <b>Note:</b> Takes effect only when <code>showWeekNumbers</code> is set to <code>true</code>.
163
+ * @since 1.151
164
+ */
165
+ showWeekNumbersHeader : {type : "boolean", group : "Appearance", defaultValue : false},
166
+
158
167
  /**
159
168
  * The value of this property is set trough the sap.ui.unified.Calendar control,
160
169
  * in order for the current sap.ui.unified.calendar.Month control to know which
@@ -326,6 +335,30 @@ sap.ui.define([
326
335
  return "";
327
336
  };
328
337
 
338
+ /**
339
+ * Returns the text to display in the week numbers column header.
340
+ * Returns an empty string when the header should not be shown.
341
+ * @returns {string} The week numbers column header text, or empty string
342
+ * @private
343
+ */
344
+ Month.prototype._getWeekNumbersHeaderText = function() {
345
+ if (!this.getShowWeekNumbersHeader()) {
346
+ return "";
347
+ }
348
+
349
+ // Locales where the calendar week abbreviation (sap-calendarWeek narrow) is too long
350
+ // to fit in the week number column header cell — verified manually.
351
+ // These fall back to the "week" narrow display name from CLDR (week-narrow.displayName).
352
+ const _oLongCWLocales = new Set(["ar", "ar-EG", "ar-SA", "he", "vi", "zh-CN", "zh-HK", "zh-TW"]),
353
+ oLocaleData = this._getLocaleData();
354
+
355
+ if (_oLongCWLocales.has(this._getLocale())) {
356
+ return oLocaleData.getDisplayName("week", "narrow");
357
+ }
358
+
359
+ return oLocaleData.getCalendarWeek("narrow").replace("{0}", "").trim();
360
+ };
361
+
329
362
  Month.prototype.exit = function(){
330
363
 
331
364
  if (this._oItemNavigation) {
@@ -364,6 +397,14 @@ sap.ui.define([
364
397
 
365
398
  // check if day names are too big -> use smaller ones
366
399
  _checkNamesLength.call(this);
400
+
401
+ if (this._bFocusFromTouch) {
402
+ const iFocusedIndex = this._oItemNavigation.getFocusedIndex();
403
+ const oDomRef = this._oItemNavigation.getItemDomRefs()[iFocusedIndex];
404
+ if (oDomRef) {
405
+ oDomRef.classList.add("sapUiCalItemFocusFromTouch");
406
+ }
407
+ }
367
408
  };
368
409
 
369
410
  Month.prototype.onmouseover = function(oEvent) {
@@ -971,10 +1012,10 @@ sap.ui.define([
971
1012
  // collects non working day with the first occurrence of one of the types01..types20
972
1013
  if ((oTimeStamp === oStartTimeStamp && !oEndDate) || (oTimeStamp >= oStartTimeStamp && oTimeStamp <= oEndTimeStamp)) {
973
1014
  if (!bNonWorkingType && !oType) {
974
- oType = {type: oRange.getType(), secondaryType: oRange.getSecondaryType(), tooltip: oRange.getTooltip_AsString(), color: oRange.getColor(), customData: oRange.getCustomData()};
1015
+ oType = Month.prototype._createDateTypeObject.call(this, oRange, true);
975
1016
  aTypes.push(oType);
976
1017
  } else if (bNonWorkingType && !oTypeNW) {
977
- oTypeNW = {type: oRange.getType(), secondaryType: oRange.getSecondaryType(), tooltip: oRange.getTooltip_AsString(), customData: oRange.getCustomData()};
1018
+ oTypeNW = Month.prototype._createDateTypeObject.call(this, oRange, false);
978
1019
  aTypes.push(oTypeNW);
979
1020
  }
980
1021
  if (oType && oTypeNW) {
@@ -987,6 +1028,28 @@ sap.ui.define([
987
1028
 
988
1029
  };
989
1030
 
1031
+ /*
1032
+ * Creates a date type object from a given date range.
1033
+ * @param {sap.ui.unified.DateRange} oRange the date range
1034
+ * @param {boolean} bSetColor whether to include the color property
1035
+ * @returns {object} the date type object
1036
+ * @private
1037
+ */
1038
+ Month.prototype._createDateTypeObject = function(oRange, bSetColor) {
1039
+ const oTypeObject = {
1040
+ type: oRange.getType(),
1041
+ secondaryType: oRange.getSecondaryType(),
1042
+ tooltip: oRange.getTooltip_AsString(),
1043
+ customData: oRange.getCustomData(),
1044
+ ariaHasPopup: oRange.getAriaHasPopup(),
1045
+ bAriaHasPopupExplicit: !oRange.isPropertyInitial("ariaHasPopup")
1046
+ };
1047
+ if (bSetColor) {
1048
+ oTypeObject.color = oRange.getColor();
1049
+ }
1050
+ return oTypeObject;
1051
+ };
1052
+
990
1053
  /*
991
1054
  * Checks if a given date is enabled
992
1055
  * aside from the disabledDates aggregation the min. and max. dates are also checked
@@ -1084,6 +1147,10 @@ sap.ui.define([
1084
1147
  clientY: oEvent.clientY
1085
1148
  };
1086
1149
 
1150
+ if (oEvent.target.closest(".sapUiCalItem")) {
1151
+ this._bFocusFromTouch = true;
1152
+ }
1153
+
1087
1154
  // handle only mouse down on a week number
1088
1155
  if (oEvent.button
1089
1156
  || Device.support.touch
@@ -1102,6 +1169,12 @@ sap.ui.define([
1102
1169
  this._handleWeekSelection(oFirstDayOfWeekCalendarDate, bFocusStartDate);
1103
1170
  };
1104
1171
 
1172
+ Month.prototype.ontouchstart = function(oEvent) {
1173
+ if (oEvent.target.closest(".sapUiCalItem")) {
1174
+ this._bFocusFromTouch = true;
1175
+ }
1176
+ };
1177
+
1105
1178
  Month.prototype.onmouseup = function(oEvent){
1106
1179
  // BCP: 1980116734
1107
1180
  // on a combi device right mouse button resulted in a selection (both a week or a single day)
@@ -1188,6 +1261,7 @@ sap.ui.define([
1188
1261
  if (oEvent.which === KeyCodes.SPACE){
1189
1262
  this.bSpaceButtonPressed = true;
1190
1263
  }
1264
+ this._bFocusFromTouch = false;
1191
1265
  };
1192
1266
  Month.prototype.onkeyup = function(oEvent){
1193
1267
  if (oEvent.which === KeyCodes.SPACE){
@@ -2164,6 +2238,12 @@ sap.ui.define([
2164
2238
  this._selectedWithMouse = true;
2165
2239
  }
2166
2240
 
2241
+ if (this._bFocusFromTouch) {
2242
+ oDomRef.classList.add("sapUiCalItemFocusFromTouch");
2243
+ } else {
2244
+ oDomRef.classList.remove("sapUiCalItemFocusFromTouch");
2245
+ }
2246
+
2167
2247
  if (bFireFocus) {
2168
2248
  this.fireFocus({date: oFocusedDate.toLocalJSDate(), otherMonth: bOtherMonth});
2169
2249
  }
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  * renders a MonthPicker with ItemNavigation
58
58
  * This is used inside the calendar. Not for stand alone usage
59
59
  * @extends sap.ui.core.Control
60
- * @version 1.150.0
60
+ * @version 1.152.0
61
61
  *
62
62
  * @constructor
63
63
  * @public
@@ -17,7 +17,8 @@ sap.ui.define([
17
17
  'sap/ui/core/InvisibleText',
18
18
  'sap/ui/core/date/UI5Date',
19
19
  "sap/ui/core/date/CalendarUtils",
20
- "sap/ui/core/Locale"
20
+ "sap/ui/core/Locale",
21
+ "sap/ui/core/library"
21
22
  ],
22
23
  function(
23
24
  CalendarType,
@@ -32,13 +33,17 @@ sap.ui.define([
32
33
  InvisibleText,
33
34
  UI5Date,
34
35
  CalendarDateUtils,
35
- Locale
36
+ Locale,
37
+ coreLibrary
36
38
  ) {
37
39
  "use strict";
38
40
 
39
41
 
40
42
  // shortcut for sap.ui.unified.CalendarDayType
41
- var CalendarDayType = library.CalendarDayType;
43
+ const CalendarDayType = library.CalendarDayType;
44
+
45
+ // shortcut for sap.ui.core.aria.HasPopup
46
+ const AriaHasPopup = coreLibrary.aria.HasPopup;
42
47
 
43
48
 
44
49
 
@@ -197,10 +202,10 @@ sap.ui.define([
197
202
 
198
203
  MonthRenderer.renderDayNames = function(oRm, oMonth, oLocaleData, iStartDay, iDays, bDayNumberAsId, sWidth){
199
204
 
200
- var iFirstDayOfWeek = oMonth._getFirstDayOfWeek();
201
- var sId = oMonth.getId();
202
- var sDayId = "";
203
- var sCalendarType = oMonth.getPrimaryCalendarType();
205
+ var iFirstDayOfWeek = oMonth._getFirstDayOfWeek(),
206
+ sId = oMonth.getId(),
207
+ sCalendarType = oMonth.getPrimaryCalendarType(),
208
+ sDayId = "";
204
209
 
205
210
  var aWeekDays = [];
206
211
  if (oMonth._bLongWeekDays || !oMonth._bNamesLengthChecked) {
@@ -211,7 +216,7 @@ sap.ui.define([
211
216
  var aWeekDaysWide = oLocaleData.getDaysStandAlone("wide", sCalendarType);
212
217
 
213
218
  if (oMonth.getShowWeekNumbers() && sCalendarType !== CalendarType.Islamic) { // on Islamic primary calendar week numbers are not shown, do not add dummy cell
214
- this.renderDummyCell(oRm, "sapUiCalWH", true, "columnheader");
219
+ this.renderDummyCell(oRm, "sapUiCalWH", true, oMonth._getWeekNumbersHeaderText(), "columnheader");
215
220
  }
216
221
 
217
222
  for ( var i = 0; i < iDays; i++) {
@@ -308,7 +313,7 @@ sap.ui.define([
308
313
 
309
314
  if (iLength === 28) {
310
315
  // there are only 4 full weeks (28 days), add one hidden 'day' div in order to open space for 5-th week
311
- this.renderDummyCell(oRm, "sapUiCalItem", false, "");
316
+ this.renderDummyCell(oRm, "sapUiCalItem", false, "", "");
312
317
  }
313
318
  };
314
319
 
@@ -316,22 +321,35 @@ sap.ui.define([
316
321
  * Generates empty 'day' div that adds space for one more week in the calendar, in case of 4 full weeks only (28 days)
317
322
  * @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the render output buffer
318
323
  * @param {string} sClassName css class that will be added to the dummy element styles
319
- * @param {boolean} bVisible if set to true the dummy element will be visible
324
+ * @param {boolean} bShowColumn if set to true the dummy element will be visible
325
+ * @param {string} sCellText text to render inside the dummy element; if empty, no text span is rendered
320
326
  * @param {string} sRole aria role attribute
321
327
  * @private
322
328
  */
323
- MonthRenderer.renderDummyCell = function(oRm, sClassName, bVisible, sRole) {
329
+ MonthRenderer.renderDummyCell = function(oRm, sClassName, bShowColumn, sCellText, sRole) {
330
+ var sFullText = Library.getResourceBundleFor("sap.ui.unified").getText("CALENDAR_WEEK");
324
331
  oRm.openStart("div");
325
332
  oRm.class(sClassName);
326
333
  oRm.class("sapUiCalDummy");
327
- oRm.style("visibility", bVisible ? "visible" : "hidden");
334
+ oRm.style("visibility", bShowColumn ? "visible" : "hidden");
328
335
  oRm.attr("role", sRole);
336
+ if (sCellText) {
337
+ oRm.attr("title", sFullText);
338
+ }
329
339
  oRm.openEnd();
330
340
 
341
+ if (sCellText) {
342
+ oRm.openStart("span");
343
+ oRm.attr("aria-hidden", "true");
344
+ oRm.openEnd();
345
+ oRm.text(sCellText);
346
+ oRm.close("span");
347
+ }
348
+
331
349
  oRm.openStart("span");
332
350
  oRm.class("sapUiPseudoInvisibleText");
333
351
  oRm.openEnd();
334
- oRm.text(Library.getResourceBundleFor("sap.ui.unified").getText("CALENDAR_WEEK"));
352
+ oRm.text(sFullText);
335
353
  oRm.close("span");
336
354
 
337
355
  oRm.close('div');
@@ -443,6 +461,15 @@ sap.ui.define([
443
461
  var bEnabled = oMonth._checkDateEnabled(oDay);
444
462
  var bShouldBeMarkedAsSpecialDate = oMonth._isSpecialDateMarkerEnabled(oDay);
445
463
 
464
+ // Determine effective aria-haspopup from per-date value on matched DateTypeRange entries.
465
+ let sHasPopup = AriaHasPopup.None;
466
+ for (let i = 0; i < aDayTypes.length; i++) {
467
+ if (aDayTypes[i].bAriaHasPopupExplicit) {
468
+ sHasPopup = aDayTypes[i].ariaHasPopup;
469
+ break;
470
+ }
471
+ }
472
+
446
473
  const sFirstSpecialDateType = aDayTypes.length > 0 && aDayTypes[0].type;
447
474
  const sSecondaryDateType = aDayTypes.length > 0 && aDayTypes[0].secondaryType;
448
475
  const bIsWeekend = oHelper.aNonWorkingDays && oHelper.aNonWorkingDays instanceof Array
@@ -581,6 +608,10 @@ sap.ui.define([
581
608
  CalendarLegendRenderer.addCalendarTypeAccInfo(mAccProps, sAriaType, oLegend);
582
609
  }
583
610
 
611
+ if (sHasPopup !== AriaHasPopup.None) {
612
+ mAccProps["haspopup"] = sHasPopup.toLowerCase();
613
+ }
614
+
584
615
  if (aDayTypes[0] && aDayTypes[0].customData?.length && bShouldBeMarkedAsSpecialDate) {
585
616
  //render customData
586
617
  aDayTypes[0].customData.forEach((customData) => {
@@ -593,7 +624,8 @@ sap.ui.define([
593
624
  oRm.accessibilityState(null, mAccProps);
594
625
  oRm.openEnd(); // div element
595
626
 
596
- if (aDayTypes[0] && bShouldBeMarkedAsSpecialDate){ //if there's a special date inside current month, render it
627
+ if (aDayTypes[0] && bShouldBeMarkedAsSpecialDate
628
+ && (aDayTypes[0].type !== CalendarDayType.None || aDayTypes[0].color)) { //if there's a special date inside current month, render it
597
629
  oRm.openStart("div");
598
630
  oRm.class("sapUiCalSpecialDate");
599
631
  const sColor = aDayTypes[0].color?.toLowerCase();
@@ -70,7 +70,7 @@ sap.ui.define([
70
70
  * The MontsRow works with UI5Date or JavaScript Date objects, but only the month and the year are used to display and interact.
71
71
  * As representation for a month, the 1st of the month will always be returned in the API.
72
72
  * @extends sap.ui.core.Control
73
- * @version 1.150.0
73
+ * @version 1.152.0
74
74
  *
75
75
  * @constructor
76
76
  * @public
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * Other usages are not supported.
35
35
  *
36
36
  * @extends sap.ui.unified.calendar.DatesRow
37
- * @version 1.150.0
37
+ * @version 1.152.0
38
38
  *
39
39
  * @constructor
40
40
  * @private
@@ -69,7 +69,7 @@ sap.ui.define([
69
69
  *
70
70
  * The TimesRow works with UI5Date or JavaScript Date objects.
71
71
  * @extends sap.ui.core.Control
72
- * @version 1.150.0
72
+ * @version 1.152.0
73
73
  *
74
74
  * @constructor
75
75
  * @public
@@ -41,7 +41,7 @@ sap.ui.define([
41
41
  * The WeeksRow works with UI5Date or JavaScript Date objects for its API, but internally uses CalendarDate objects for calculations.
42
42
  *
43
43
  * @extends sap.ui.core.Control
44
- * @version 1.150.0
44
+ * @version 1.152.0
45
45
  *
46
46
  * @constructor
47
47
  * @private
@@ -61,7 +61,7 @@ sap.ui.define([
61
61
  * As in all date-time controls, all pubic JS Date objects that are given (e.g. <code>setDate()</code>) or read
62
62
  * (e.g. <code>getFirstRenderedDate</code>) with values which are considered as date objects in browser(local) timezone.
63
63
  * @extends sap.ui.core.Control
64
- * @version 1.150.0
64
+ * @version 1.152.0
65
65
  *
66
66
  * @constructor
67
67
  * @public
@@ -45,7 +45,7 @@ sap.ui.define([
45
45
  * @extends sap.ui.unified.calendar.YearPicker
46
46
  *
47
47
  * @author SAP SE
48
- * @version 1.150.0
48
+ * @version 1.152.0
49
49
  *
50
50
  * @constructor
51
51
  * @private
@@ -32,14 +32,14 @@ sap.ui.define([
32
32
  * @namespace
33
33
  * @alias sap.ui.unified
34
34
  * @author SAP SE
35
- * @version 1.150.0
35
+ * @version 1.152.0
36
36
  * @since 1.28
37
37
  * @public
38
38
  */
39
39
  var thisLib = Library.init({
40
40
  name : "sap.ui.unified",
41
41
  apiVersion: 2,
42
- version: "1.150.0",
42
+ version: "1.152.0",
43
43
  dependencies : ["sap.ui.core"],
44
44
  designtime: "sap/ui/unified/designtime/library.designtime",
45
45
  types: [
@@ -151,14 +151,18 @@
151
151
  }
152
152
 
153
153
  /* no default (browser) outline, if device needs focus visualization its defined later */
154
- .sapUiCalHead button:focus,
155
- .sapUiCalCancel:focus {
154
+ html.sap-desktop .sapUiCalHead button:focus,
155
+ html.sap-desktop .sapUiCalCancel:focus,
156
+ .sapUiCalHead button:focus-visible,
157
+ .sapUiCalCancel:focus-visible {
156
158
  outline: none;
157
159
  }
158
160
 
159
161
  /* hover and focus makes only sense on desktops. On mobile devices it's not needed */
160
162
  html.sap-desktop .sapUiCalHead button:focus,
161
- html.sap-desktop .sapUiCalCancel:focus {
163
+ html.sap-desktop .sapUiCalCancel:focus,
164
+ .sapUiCalHead button:focus-visible,
165
+ .sapUiCalCancel:focus-visible {
162
166
  background-color: var(--sapButton_Hover_Background);
163
167
  color: var(--sapButton_Hover_TextColor);
164
168
  }
@@ -498,7 +502,7 @@ html.sap-desktop .sapUiCalHead button.sapUiCalDsbl:focus,
498
502
  .sapUiCalItem {
499
503
  line-height: 1.875rem;
500
504
 
501
- &:focus {
505
+ &:focus-visible {
502
506
  line-height: 1.75rem;
503
507
  }
504
508
 
@@ -510,6 +514,13 @@ html.sap-desktop .sapUiCalHead button.sapUiCalDsbl:focus,
510
514
  }
511
515
  }
512
516
 
517
+ html.sap-desktop .sapUiCalMonthPicker.sapUiCalMonthSecType .sapUiCalItem:focus,
518
+ html.sap-desktop .sapUiCalYearPicker.sapUiCalMonthSecType .sapUiCalItem:focus,
519
+ .sapUiCalMonthPicker.sapUiCalMonthSecType .sapUiCalItem:focus-visible,
520
+ .sapUiCalYearPicker.sapUiCalMonthSecType .sapUiCalItem:focus-visible {
521
+ line-height: 1.75rem;
522
+ }
523
+
513
524
  .sapUiSizeCozy {
514
525
 
515
526
  .sapUiCal:not(.sapUiCalDateInt) {
@@ -547,7 +558,7 @@ html.sap-desktop .sapUiCalHead button.sapUiCalDsbl:focus,
547
558
  .sapUiCalItem {
548
559
  line-height: 1rem;
549
560
 
550
- &:focus {
561
+ &:focus-visible {
551
562
  line-height: 0.875rem;
552
563
 
553
564
  .sapUiCalItemSecText {
@@ -557,6 +568,17 @@ html.sap-desktop .sapUiCalHead button.sapUiCalDsbl:focus,
557
568
  }
558
569
  }
559
570
 
571
+ html.sap-desktop .sapUiSizeCompact .sapUiCalMonthPicker.sapUiCalMonthSecType .sapUiCalItem:focus,
572
+ html.sap-desktop .sapUiSizeCompact .sapUiCalYearPicker.sapUiCalMonthSecType .sapUiCalItem:focus,
573
+ .sapUiSizeCompact .sapUiCalMonthPicker.sapUiCalMonthSecType .sapUiCalItem:focus-visible,
574
+ .sapUiSizeCompact .sapUiCalYearPicker.sapUiCalMonthSecType .sapUiCalItem:focus-visible {
575
+ line-height: 0.875rem;
576
+
577
+ .sapUiCalItemSecText {
578
+ line-height: 0.875rem;
579
+ }
580
+ }
581
+
560
582
  /* Day, Month and YearPicker on popup */
561
583
  .sapUiCalMonthView[data-sap-ui-popup],
562
584
  .sapUiCalMonthPicker[data-sap-ui-popup],
@@ -766,7 +788,14 @@ html.sapUiMedia-Std-Phone .sapUiCalHeadB0 {
766
788
  box-sizing: border-box;
767
789
  }
768
790
 
769
- .sapUiCalMonthSecType .sapUiCalItem:focus > .sapUiCalItemSecText {
791
+ .sapUiCalItem:focus-visible {
792
+ outline-width: none;
793
+ outline-style: none;
794
+ outline-color: none;
795
+ }
796
+
797
+ html.sap-desktop .sapUiCalMonthSecType .sapUiCalItem:focus > .sapUiCalItemSecText,
798
+ .sapUiCalMonthSecType .sapUiCalItem:focus-visible > .sapUiCalItemSecText {
770
799
  line-height: 0.75rem;
771
800
  }
772
801
 
@@ -1012,6 +1041,10 @@ html.sapUiMedia-Std-Phone .sapUiCalHeadB0 {
1012
1041
  height: 2rem;
1013
1042
  }
1014
1043
 
1044
+ .sapUiSizeCompact .sapUiCalWH {
1045
+ overflow: visible;
1046
+ }
1047
+
1015
1048
  .sapUiSizeCompact .sapUiCal:not(.sapUiCalInt) {
1016
1049
 
1017
1050
  .sapUiCalContent {
@@ -170,7 +170,6 @@
170
170
  border-color: var(--sapField_BorderColor);
171
171
  position: relative;
172
172
  cursor: crosshair;
173
- display: inline-block;
174
173
  width: 105px;
175
174
  height: 105px;
176
175
  background-color: none;
@@ -371,7 +370,7 @@
371
370
  padding: 10px 0;
372
371
 
373
372
  .sapMSliderInner {
374
- height: 1.625rem;
373
+ height: 1.5rem;
375
374
  border: 1px solid var(--sapContent_ForegroundBorderColor);
376
375
  border-radius: 0;
377
376
  box-sizing: border-box;
@@ -386,7 +385,7 @@
386
385
  /* slider handle */
387
386
  .sapMSliderHandle {
388
387
  width: 0.9375rem;
389
- height: 1.875rem;
388
+ height: 1.75rem;
390
389
  box-shadow: inset 0 0 0 0.125rem var(--sapContent_ContrastShadowColor);
391
390
  top: -0.45rem;
392
391
  /* to center the handle at the both ends */
@@ -681,6 +680,129 @@
681
680
  border-bottom: none;
682
681
  }
683
682
  }
683
+
684
+ &.sapUiCPHighZoom {
685
+ .sapUiColorPicker-ColorPickerBox {
686
+ float: none;
687
+ width: 100%;
688
+ max-width: 100%;
689
+ height: auto;
690
+ display: block;
691
+ box-sizing: border-box;
692
+
693
+ &::after {
694
+ padding-bottom: 100%;
695
+ }
696
+ }
697
+
698
+ .sapUiCPSlidersPhone {
699
+ width: 100%;
700
+ box-sizing: border-box;
701
+ }
702
+
703
+ .sapUiColorPicker-ColorPickerSlider,
704
+ .sapUiColorPicker-ColorPickerAlphaSlider {
705
+ width: 100%;
706
+ }
707
+
708
+ .sapMDialogScrollCont.sapMDialogStretchContent {
709
+ overflow: hidden;
710
+ }
711
+ }
712
+ }
713
+
714
+ .sapUiColorPicker-Simplified.sapUnifiedColorPicker.sapUiCPHighZoom {
715
+ box-sizing: border-box;
716
+ width: 100%;
717
+ max-width: 100%;
718
+ min-width: 0;
719
+ overflow: hidden;
720
+ padding: 1rem;
721
+
722
+ .sapUiColorPicker-ColorPickerBox {
723
+ float: none;
724
+ width: 100%;
725
+ max-width: 100%;
726
+ margin: 0 auto 0.5rem auto;
727
+ height: auto;
728
+ display: block;
729
+ box-sizing: border-box;
730
+
731
+ &::after {
732
+ padding-bottom: 100%;
733
+ }
734
+ }
735
+
736
+ .sapUiColorPicker-ColorPickerSlider {
737
+ width: 100%;
738
+ max-width: 100%;
739
+ box-sizing: border-box;
740
+ margin: 0.5rem auto 0 auto;
741
+ height: 2.25rem;
742
+ }
743
+
744
+ .sapUiCPHexRow {
745
+ display: flex;
746
+ flex-direction: row;
747
+ align-items: flex-start;
748
+ gap: 0.5rem;
749
+ width: 100%;
750
+ }
751
+
752
+ .sapUiCPComparisonWrapper {
753
+ flex: 0 0 3.375rem;
754
+ width: 3.375rem;
755
+ box-sizing: border-box;
756
+ height: 2.25rem;
757
+ border: 1px solid var(--sapContent_ForegroundBorderColor);
758
+ }
759
+
760
+ .sapUiColorPicker-ColorPickerHexField {
761
+ box-sizing: border-box;
762
+ margin-top: 0;
763
+ }
764
+
765
+ .sapUiColorPicker-ColorPickerHexField.sapMInputBase {
766
+ width: 100%;
767
+ }
768
+
769
+ .sapUiCPHexWrapper {
770
+ display: flex;
771
+ flex-direction: column;
772
+ flex: 1 1 0;
773
+ min-width: 0;
774
+ height: auto;
775
+ box-sizing: border-box;
776
+ line-height: 1.25rem;
777
+ margin-bottom: 0;
778
+ }
779
+
780
+ .sapUiCPHexText {
781
+ display: block;
782
+ text-align: center;
783
+ width: 100%;
784
+ }
785
+
786
+ .sapUiColorPicker-ColorPickerOldColor.sapUiColorPicker-ColorPickerOldColor,
787
+ .sapUiColorPicker-ColorPickerNewColor.sapUiColorPicker-ColorPickerNewColor {
788
+ width: 50%;
789
+ height: 2.25rem;
790
+ border: 0;
791
+ border-bottom: 1px solid var(--sapContent_ForegroundBorderColor);
792
+ }
793
+ }
794
+
795
+ .sapMDialog.sapMResponsivePopover .sapUiColorPicker-Simplified.sapUnifiedColorPicker.sapUiCPHighZoom {
796
+ padding-top: 0;
797
+ padding-bottom: 0;
798
+ }
799
+
800
+ .sapMPopover.sapMResponsivePopover .sapUiColorPicker-Simplified.sapUnifiedColorPicker.sapUiCPHighZoom {
801
+ padding-top: 1rem;
802
+ }
803
+
804
+ .sapMResponsivePopover:has(.sapUiColorPicker-Simplified.sapUnifiedColorPicker.sapUiCPHighZoom) .sapMPopoverScroll {
805
+ overflow: hidden;
684
806
  }
685
807
 
686
808
  /* unified Large */
@@ -435,4 +435,9 @@ html[data-sap-ui-browser^='cr'] .sapUiFupInputMask > input {
435
435
  .sapUiFup.sapUiFupButtonOnly.sapMInputBase:not(.sapMFocus) .sapMInputBaseContentWrapper:has(.sapMBtnEmphasized):not(.sapMInputBaseReadonlyWrapper):not(.sapMInputBaseContentWrapperState):not(.sapMInputBaseDisabledWrapper):hover {
436
436
  background-color: var(--sapButton_Emphasized_Hover_Background);
437
437
  border-color: var(--sapButton_Emphasized_Hover_BorderColor);
438
+ }
439
+
440
+ /* Override default width of the FileUploader when it is used inside a Bar/Toolbar/OverflowToolbar */
441
+ .sapMIBar .sapUiFup:not(.sapUiFupButtonOnly) {
442
+ width: 12rem;
438
443
  }
@@ -140,7 +140,7 @@
140
140
  font-size: @_sap_ui_unified_ShellHeader_HeaderBarHeight / 2;
141
141
  margin: @_sap_ui_unified_ShellHeader_ButtonOuterSpace - @_sap_ui_unified_ShellHeader_ButtonOutlineWidth;
142
142
  margin-top: @_sap_ui_unified_ShellHeader_ButtonOuterSpace;
143
- color: var(--sapTextColor);
143
+ color: var(--sapButton_IconColor);
144
144
  border-radius: @_sap_ui_unified_ShellHeader_ButtonBorderRadius;
145
145
  border: @_sap_ui_unified_ShellHeader_ButtonOutlineWidth solid transparent;
146
146
  box-sizing: border-box;
@@ -180,11 +180,6 @@
180
180
  border-right: @_sap_ui_unified_ShellHeader_ButtonSeparatorWidth solid var(--sapToolbar_SeparatorColor);
181
181
  }
182
182
 
183
- .sapUiUfdShellHeadItm > span,
184
- .sapUiUfdShellHeadUsrItm {
185
- color: var(--sapButton_IconColor);
186
- }
187
-
188
183
  html.sapUiMedia-Std-Desktop .sapUiUfdShellHeadItm:hover > span,
189
184
  html.sapUiMedia-Std-Desktop .sapUiUfdShellHeadUsrItm:hover > * {
190
185
  background-color: var(--sapButton_Hover_Background);
@@ -300,7 +295,7 @@ html.sapUiMedia-Std-Desktop .sapUiUfdShellHeadItm.sapUiUfdShellHeadItmSel:hover
300
295
  display: inline-block;
301
296
  vertical-align: top;
302
297
  height: 100%;
303
- color: var(--sapButton_TextColor);
298
+ color: var(--sapButton_IconColor);
304
299
  }
305
300
 
306
301
  .sapUiUfdShellHeadUsrItm > * {
@@ -14,7 +14,8 @@
14
14
  border-radius: 0.375rem;
15
15
  }
16
16
 
17
- .sapUiCalHeadB:focus{
17
+ html.sap-desktop .sapUiCalHeadB:focus,
18
+ .sapUiCalHeadB:focus-visible {
18
19
  border-radius: 0;
19
20
  }
20
21