@syncfusion/ej2-calendars 24.1.47 → 24.2.5

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/CHANGELOG.md +16 -0
  2. package/dist/ej2-calendars.min.js +2 -2
  3. package/dist/ej2-calendars.umd.min.js +2 -2
  4. package/dist/ej2-calendars.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-calendars.es2015.js +94 -25
  6. package/dist/es6/ej2-calendars.es2015.js.map +1 -1
  7. package/dist/es6/ej2-calendars.es5.js +94 -25
  8. package/dist/es6/ej2-calendars.es5.js.map +1 -1
  9. package/dist/global/ej2-calendars.min.js +2 -2
  10. package/dist/global/ej2-calendars.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +10 -10
  13. package/src/calendar/calendar.d.ts +2 -0
  14. package/src/calendar/calendar.js +86 -21
  15. package/src/datepicker/datepicker.js +8 -4
  16. package/styles/bootstrap-dark.css +26 -1
  17. package/styles/bootstrap.css +26 -1
  18. package/styles/bootstrap4.css +26 -1
  19. package/styles/bootstrap5-dark.css +26 -1
  20. package/styles/bootstrap5.css +26 -1
  21. package/styles/calendar/_bootstrap-dark-definition.scss +10 -0
  22. package/styles/calendar/_bootstrap-definition.scss +10 -0
  23. package/styles/calendar/_bootstrap4-definition.scss +10 -0
  24. package/styles/calendar/_bootstrap5-definition.scss +9 -1
  25. package/styles/calendar/_fabric-dark-definition.scss +10 -0
  26. package/styles/calendar/_fabric-definition.scss +11 -1
  27. package/styles/calendar/_fluent-definition.scss +11 -1
  28. package/styles/calendar/_fusionnew-definition.scss +10 -0
  29. package/styles/calendar/_highcontrast-definition.scss +11 -1
  30. package/styles/calendar/_highcontrast-light-definition.scss +10 -0
  31. package/styles/calendar/_layout.scss +3 -0
  32. package/styles/calendar/_material-dark-definition.scss +10 -0
  33. package/styles/calendar/_material-definition.scss +10 -0
  34. package/styles/calendar/_material3-definition.scss +10 -0
  35. package/styles/calendar/_tailwind-definition.scss +10 -1
  36. package/styles/calendar/_theme.scss +24 -3
  37. package/styles/calendar/bootstrap-dark.css +25 -1
  38. package/styles/calendar/bootstrap.css +25 -1
  39. package/styles/calendar/bootstrap4.css +25 -1
  40. package/styles/calendar/bootstrap5-dark.css +26 -1
  41. package/styles/calendar/bootstrap5.css +26 -1
  42. package/styles/calendar/fabric-dark.css +25 -1
  43. package/styles/calendar/fabric.css +27 -3
  44. package/styles/calendar/fluent-dark.css +35 -10
  45. package/styles/calendar/fluent.css +35 -10
  46. package/styles/calendar/highcontrast-light.css +25 -1
  47. package/styles/calendar/highcontrast.css +27 -3
  48. package/styles/calendar/material-dark.css +25 -1
  49. package/styles/calendar/material.css +25 -1
  50. package/styles/calendar/material3-dark.css +25 -1
  51. package/styles/calendar/material3.css +25 -1
  52. package/styles/calendar/tailwind-dark.css +25 -1
  53. package/styles/calendar/tailwind.css +25 -1
  54. package/styles/fabric-dark.css +26 -1
  55. package/styles/fabric.css +28 -3
  56. package/styles/fluent-dark.css +35 -10
  57. package/styles/fluent.css +35 -10
  58. package/styles/highcontrast-light.css +26 -1
  59. package/styles/highcontrast.css +28 -3
  60. package/styles/material-dark.css +26 -1
  61. package/styles/material.css +26 -1
  62. package/styles/material3-dark.css +26 -1
  63. package/styles/material3.css +26 -1
  64. package/styles/tailwind-dark.css +26 -1
  65. package/styles/tailwind.css +26 -1
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 24.1.47
3
+ * version : 24.2.5
4
4
  * Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-calendars@*",
3
- "_id": "@syncfusion/ej2-calendars@24.1.44",
3
+ "_id": "@syncfusion/ej2-calendars@24.2.3",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-hq+p7Z6Oxvg0rwyF+31LVXsu55WkSwqxow/n6yh7IVrfBTpi2bPDHzqLrlnamZw9IIAsQNd0BRauEQAjyHWIkg==",
5
+ "_integrity": "sha512-jRcfZtIe8Ujqp2OFZrsPtDSq4UBajjypANh3DaJ1UVCvCziB8VB78wkrPABbpgb05moR5TR1qCehBu6Q2VnaFg==",
6
6
  "_location": "/@syncfusion/ej2-calendars",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -31,8 +31,8 @@
31
31
  "/@syncfusion/ej2-schedule",
32
32
  "/@syncfusion/ej2-vue-calendars"
33
33
  ],
34
- "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-calendars/-/ej2-calendars-24.1.44.tgz",
35
- "_shasum": "3cb336842e625b26afb16b7cfdf71c421abcc743",
34
+ "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-calendars/-/ej2-calendars-24.2.3.tgz",
35
+ "_shasum": "2d154e96239cdb5a7aa35879fb8937c9e1d9f418",
36
36
  "_spec": "@syncfusion/ej2-calendars@*",
37
37
  "_where": "/jenkins/workspace/elease-automation_release_24.1.1/packages/included",
38
38
  "author": {
@@ -43,11 +43,11 @@
43
43
  },
44
44
  "bundleDependencies": false,
45
45
  "dependencies": {
46
- "@syncfusion/ej2-base": "~24.1.46",
47
- "@syncfusion/ej2-buttons": "~24.1.46",
48
- "@syncfusion/ej2-inputs": "~24.1.47",
49
- "@syncfusion/ej2-lists": "~24.1.46",
50
- "@syncfusion/ej2-popups": "~24.1.46"
46
+ "@syncfusion/ej2-base": "~24.2.5",
47
+ "@syncfusion/ej2-buttons": "~24.2.5",
48
+ "@syncfusion/ej2-inputs": "~24.2.5",
49
+ "@syncfusion/ej2-lists": "~24.2.4",
50
+ "@syncfusion/ej2-popups": "~24.2.5"
51
51
  },
52
52
  "deprecated": false,
53
53
  "description": "A complete package of date or time components with built-in features such as date formatting, inline editing, multiple (range) selection, range restriction, month and year selection, strict mode, and globalization.",
@@ -80,6 +80,6 @@
80
80
  "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
81
81
  },
82
82
  "typings": "index.d.ts",
83
- "version": "24.1.47",
83
+ "version": "24.2.5",
84
84
  "sideEffects": false
85
85
  }
@@ -362,6 +362,8 @@ export declare class CalendarBase extends Component<HTMLElement> implements INot
362
362
  protected minMaxUpdate(value?: Date): void;
363
363
  protected createHeader(): void;
364
364
  protected createContent(): void;
365
+ private addContentFocus;
366
+ private removeContentFocus;
365
367
  protected getCultureValues(): string[];
366
368
  protected toCapitalize(text: string): string;
367
369
  protected createContentHeader(): void;
@@ -33,6 +33,7 @@ var DEVICE = 'e-device';
33
33
  var HEADER = 'e-header';
34
34
  var RTL = 'e-rtl';
35
35
  var CONTENT = 'e-content';
36
+ var CONTENTTABLE = 'e-content-table';
36
37
  var YEAR = 'e-year';
37
38
  var MONTH = 'e-month';
38
39
  var DECADE = 'e-decade';
@@ -48,6 +49,7 @@ var WEEKEND = 'e-weekend';
48
49
  var WEEKNUMBER = 'e-week-number';
49
50
  var SELECTED = 'e-selected';
50
51
  var FOCUSEDDATE = 'e-focused-date';
52
+ var FOCUSEDCELL = 'e-focused-cell';
51
53
  var OTHERMONTHROW = 'e-month-hide';
52
54
  var TODAY = 'e-today';
53
55
  var TITLE = 'e-title';
@@ -228,6 +230,7 @@ var CalendarBase = /** @class */ (function (_super) {
228
230
  var ariaTitleAttrs = {
229
231
  'aria-atomic': 'true', 'aria-live': 'assertive', 'aria-label': 'title'
230
232
  };
233
+ var tabIndexAttr = { 'tabindex': '0' };
231
234
  this.headerElement = this.createElement('div', { className: HEADER });
232
235
  var iconContainer = this.createElement('div', { className: ICONCONTAINER });
233
236
  this.previousIcon = this.createElement('button', { className: '' + PREVICON, attrs: { type: 'button' } });
@@ -237,6 +240,7 @@ var CalendarBase = /** @class */ (function (_super) {
237
240
  isCenterRipple: true
238
241
  });
239
242
  attributes(this.previousIcon, ariaPrevAttrs);
243
+ attributes(this.previousIcon, tabIndexAttr);
240
244
  this.nextIcon = this.createElement('button', { className: '' + NEXTICON, attrs: { type: 'button' } });
241
245
  rippleEffect(this.nextIcon, {
242
246
  selector: '.e-next',
@@ -248,8 +252,10 @@ var CalendarBase = /** @class */ (function (_super) {
248
252
  attributes(this.nextIcon, { tabIndex: '-1' });
249
253
  }
250
254
  attributes(this.nextIcon, ariaNextAttrs);
255
+ attributes(this.nextIcon, tabIndexAttr);
251
256
  this.headerTitleElement = this.createElement('div', { className: '' + LINK + ' ' + TITLE });
252
257
  attributes(this.headerTitleElement, ariaTitleAttrs);
258
+ attributes(this.headerTitleElement, tabIndexAttr);
253
259
  this.headerElement.appendChild(this.headerTitleElement);
254
260
  this.previousIcon.appendChild(this.createElement('span', { className: '' + PREVSPAN + ' ' + ICON }));
255
261
  this.nextIcon.appendChild(this.createElement('span', { className: '' + NEXTSPAN + ' ' + ICON }));
@@ -266,7 +272,7 @@ var CalendarBase = /** @class */ (function (_super) {
266
272
  };
267
273
  CalendarBase.prototype.createContent = function () {
268
274
  this.contentElement = this.createElement('div', { className: CONTENT });
269
- this.table = this.createElement('table', { attrs: { tabIndex: '0', 'role': 'grid', 'aria-activedescendant': '', 'aria-labelledby': this.element.id } });
275
+ this.table = this.createElement('table', { attrs: { 'class': CONTENTTABLE, 'tabIndex': '0', 'role': 'grid', 'aria-activedescendant': '', 'aria-labelledby': this.element.id } });
270
276
  if (this.getModuleName() === 'calendar') {
271
277
  this.element.appendChild(this.contentElement);
272
278
  }
@@ -279,6 +285,30 @@ var CalendarBase = /** @class */ (function (_super) {
279
285
  if (this.showTodayButton) {
280
286
  this.createContentFooter();
281
287
  }
288
+ if (this.getModuleName() != 'daterangepicker') {
289
+ EventHandler.add(this.table, 'focus', this.addContentFocus, this);
290
+ EventHandler.add(this.table, 'blur', this.removeContentFocus, this);
291
+ }
292
+ };
293
+ CalendarBase.prototype.addContentFocus = function (args) {
294
+ var focusedDate = this.tableBodyElement.querySelector('tr td.e-focused-date');
295
+ var selectedDate = this.tableBodyElement.querySelector('tr td.e-selected');
296
+ if (!isNullOrUndefined(selectedDate)) {
297
+ selectedDate.classList.add(FOCUSEDCELL);
298
+ }
299
+ else if (!isNullOrUndefined(focusedDate)) {
300
+ focusedDate.classList.add(FOCUSEDCELL);
301
+ }
302
+ };
303
+ CalendarBase.prototype.removeContentFocus = function (args) {
304
+ var focusedDate = this.tableBodyElement.querySelector('tr td.e-focused-date');
305
+ var selectedDate = this.tableBodyElement.querySelector('tr td.e-selected');
306
+ if (!isNullOrUndefined(selectedDate)) {
307
+ selectedDate.classList.remove(FOCUSEDCELL);
308
+ }
309
+ else if (!isNullOrUndefined(focusedDate)) {
310
+ focusedDate.classList.remove(FOCUSEDCELL);
311
+ }
282
312
  };
283
313
  CalendarBase.prototype.getCultureValues = function () {
284
314
  var culShortNames = [];
@@ -363,6 +393,7 @@ var CalendarBase = /** @class */ (function (_super) {
363
393
  CalendarBase.prototype.updateFooter = function () {
364
394
  this.todayElement.textContent = this.l10.getConstant('today');
365
395
  this.todayElement.setAttribute('aria-label', this.l10.getConstant('today'));
396
+ this.todayElement.setAttribute('tabindex', '0');
366
397
  };
367
398
  CalendarBase.prototype.createContentFooter = function () {
368
399
  if (this.showTodayButton) {
@@ -467,34 +498,54 @@ var CalendarBase = /** @class */ (function (_super) {
467
498
  this.effect = '';
468
499
  switch (e.action) {
469
500
  case 'moveLeft':
470
- this.keyboardNavigate(-1, view, e, this.max, this.min);
471
- e.preventDefault();
501
+ if (this.getModuleName() != 'daterangepicker' && !isNullOrUndefined(e.target) && e.target.classList.length > 0 && e.target.classList.contains('e-content-table')) {
502
+ this.keyboardNavigate(-1, view, e, this.max, this.min);
503
+ e.preventDefault();
504
+ }
472
505
  break;
473
506
  case 'moveRight':
474
- this.keyboardNavigate(1, view, e, this.max, this.min);
475
- e.preventDefault();
507
+ if (this.getModuleName() != 'daterangepicker' && !isNullOrUndefined(e.target) && e.target.classList.length > 0 && e.target.classList.contains('e-content-table')) {
508
+ this.keyboardNavigate(1, view, e, this.max, this.min);
509
+ e.preventDefault();
510
+ }
476
511
  break;
477
512
  case 'moveUp':
478
- if (view === 0) {
479
- this.keyboardNavigate(-7, view, e, this.max, this.min); // move the current date to the previous seven days.
480
- }
481
- else {
482
- this.keyboardNavigate(-4, view, e, this.max, this.min); // move the current year to the previous four days.
513
+ if (this.getModuleName() != 'daterangepicker' && !isNullOrUndefined(e.target) && e.target.classList.length > 0 && e.target.classList.contains('e-content-table')) {
514
+ if (view === 0) {
515
+ this.keyboardNavigate(-7, view, e, this.max, this.min); // move the current date to the previous seven days.
516
+ }
517
+ else {
518
+ this.keyboardNavigate(-4, view, e, this.max, this.min); // move the current year to the previous four days.
519
+ }
520
+ e.preventDefault();
483
521
  }
484
- e.preventDefault();
485
522
  break;
486
523
  case 'moveDown':
487
- if (view === 0) {
488
- this.keyboardNavigate(7, view, e, this.max, this.min);
489
- }
490
- else {
491
- this.keyboardNavigate(4, view, e, this.max, this.min);
524
+ if (this.getModuleName() != 'daterangepicker' && !isNullOrUndefined(e.target) && e.target.classList.length > 0 && e.target.classList.contains('e-content-table')) {
525
+ if (view === 0) {
526
+ this.keyboardNavigate(7, view, e, this.max, this.min);
527
+ }
528
+ else {
529
+ this.keyboardNavigate(4, view, e, this.max, this.min);
530
+ }
531
+ e.preventDefault();
492
532
  }
493
- e.preventDefault();
494
533
  break;
495
534
  case 'select':
496
- if (e.target === this.todayElement) {
535
+ if (e.target === this.headerTitleElement) {
536
+ this.navigateTitle(e);
537
+ }
538
+ else if (e.target === this.previousIcon) {
539
+ this.navigatePrevious(e);
540
+ }
541
+ else if (e.target === this.nextIcon) {
542
+ this.navigateNext(e);
543
+ }
544
+ else if (e.target === this.todayElement) {
497
545
  this.todayButtonClick(e, value);
546
+ if (this.getModuleName() === 'datepicker' || this.getModuleName() === 'datetimepicker') {
547
+ this.element.focus();
548
+ }
498
549
  }
499
550
  else {
500
551
  var element = !isNullOrUndefined(focusedDate) ? focusedDate : selectedDate;
@@ -507,6 +558,9 @@ var CalendarBase = /** @class */ (function (_super) {
507
558
  else {
508
559
  this.contentClick(null, --view, (element), value);
509
560
  }
561
+ if (this.getModuleName() === 'datepicker' || this.getModuleName() === 'datetimepicker') {
562
+ this.element.focus();
563
+ }
510
564
  }
511
565
  }
512
566
  break;
@@ -576,9 +630,20 @@ var CalendarBase = /** @class */ (function (_super) {
576
630
  this.navigateTo('Month', new Date(this.currentDate.getFullYear(), 11, 31));
577
631
  e.preventDefault();
578
632
  break;
579
- }
580
- if (this.getModuleName() === 'calendar') {
581
- this.table.focus();
633
+ case 'tab':
634
+ if ((this.getModuleName() === 'datepicker' || this.getModuleName() === 'datetimepicker') && e.target === this.todayElement) {
635
+ e.preventDefault();
636
+ this.element.focus();
637
+ this.hide();
638
+ }
639
+ break;
640
+ case 'shiftTab':
641
+ if ((this.getModuleName() === 'datepicker' || this.getModuleName() === 'datetimepicker') && e.target === this.headerTitleElement) {
642
+ e.preventDefault();
643
+ this.element.focus();
644
+ this.hide();
645
+ }
646
+ break;
582
647
  }
583
648
  };
584
649
  CalendarBase.prototype.keyboardNavigate = function (number, currentView, e, max, min) {
@@ -672,8 +672,6 @@ var DatePicker = /** @class */ (function (_super) {
672
672
  this.inputElement.focus();
673
673
  }
674
674
  break;
675
- case 'tab':
676
- this.hide(e);
677
675
  }
678
676
  };
679
677
  DatePicker.prototype.inputFocusHandler = function () {
@@ -835,7 +833,13 @@ var DatePicker = /** @class */ (function (_super) {
835
833
  this.inputElement.selectionStart = start;
836
834
  this.inputElement.selectionEnd = end;
837
835
  }
838
- this.hide(e);
836
+ if (e.action === 'tab' && e.target === this.inputElement && this.isCalendar() && document.activeElement === this.inputElement) {
837
+ e.preventDefault();
838
+ this.headerTitleElement.focus();
839
+ }
840
+ if (e.action === 'shiftTab' && e.target === this.inputElement && this.isCalendar() && document.activeElement === this.inputElement) {
841
+ this.hide(e);
842
+ }
839
843
  break;
840
844
  }
841
845
  default:
@@ -859,7 +863,7 @@ var DatePicker = /** @class */ (function (_super) {
859
863
  };
860
864
  DatePicker.prototype.popupUpdate = function () {
861
865
  if ((isNullOrUndefined(this.value)) && (!isNullOrUndefined(this.previousDate)) ||
862
- (+this.value !== +this.previousDate)) {
866
+ (((this.getModuleName() !== 'datetimepicker') && (+this.value !== +this.previousDate)) || ((this.getModuleName() === 'datetimepicker') && (+this.value !== +this.previousDateTime)))) {
863
867
  if (this.popupObj) {
864
868
  if (this.popupObj.element.querySelectorAll('.' + SELECTED).length > 0) {
865
869
  removeClass(this.popupObj.element.querySelectorAll('.' + SELECTED), [SELECTED]);
@@ -204,6 +204,9 @@ ejs-calendar {
204
204
  font-size: 16px;
205
205
  font-weight: 600;
206
206
  text-align: left;
207
+ padding: 0 5px;
208
+ border: none;
209
+ border-radius: 4px;
207
210
  }
208
211
  .e-calendar .e-header .e-title,
209
212
  .e-bigger.e-small .e-calendar .e-header .e-title {
@@ -587,10 +590,22 @@ ejs-calendar {
587
590
  }
588
591
  .e-calendar .e-header .e-title:hover,
589
592
  .e-bigger.e-small .e-calendar .e-header .e-title:hover {
590
- color: #fff;
593
+ background: none;
591
594
  cursor: pointer;
592
595
  text-decoration: none;
593
596
  }
597
+ .e-calendar .e-header .e-title:focus,
598
+ .e-bigger.e-small .e-calendar .e-header .e-title:focus {
599
+ box-shadow: 0 0 0 1px #fff;
600
+ background: none;
601
+ text-decoration: none;
602
+ }
603
+ .e-calendar .e-header .e-title:active,
604
+ .e-bigger.e-small .e-calendar .e-header .e-title:active {
605
+ box-shadow: none;
606
+ background: transparent;
607
+ text-decoration: none;
608
+ }
594
609
  .e-calendar .e-header .e-prev:hover > span, .e-calendar .e-header .e-next:hover > span,
595
610
  .e-bigger.e-small .e-calendar .e-header .e-prev:hover > span,
596
611
  .e-bigger.e-small .e-calendar .e-header .e-next:hover > span {
@@ -603,6 +618,11 @@ ejs-calendar {
603
618
  .e-bigger.e-small .e-calendar .e-header .e-next:hover {
604
619
  background: #484848;
605
620
  }
621
+ .e-calendar .e-header .e-prev:focus, .e-calendar .e-header .e-next:focus,
622
+ .e-bigger.e-small .e-calendar .e-header .e-prev:focus,
623
+ .e-bigger.e-small .e-calendar .e-header .e-next:focus {
624
+ box-shadow: 0 0 0 1px #fff;
625
+ }
606
626
  .e-calendar .e-header .e-prev:active, .e-calendar .e-header .e-next:active,
607
627
  .e-bigger.e-small .e-calendar .e-header .e-prev:active,
608
628
  .e-bigger.e-small .e-calendar .e-header .e-next:active {
@@ -822,6 +842,11 @@ ejs-calendar {
822
842
  transform: scale(1);
823
843
  }
824
844
  }
845
+ .e-calendar .e-content-table .e-cell.e-focused-cell span.e-day {
846
+ box-shadow: 0 0 0 1px #fff;
847
+ border-radius: 4px;
848
+ }
849
+
825
850
  /* stylelint-disable property-no-vendor-prefix */
826
851
  /*! component icons */
827
852
  .e-time-wrapper .e-time-icon.e-icons::before,
@@ -205,6 +205,9 @@ ejs-calendar {
205
205
  font-size: 16px;
206
206
  font-weight: 600;
207
207
  text-align: left;
208
+ padding: 0 5px;
209
+ border: none;
210
+ border-radius: 4px;
208
211
  }
209
212
  .e-calendar .e-header .e-title,
210
213
  .e-bigger.e-small .e-calendar .e-header .e-title {
@@ -588,10 +591,22 @@ ejs-calendar {
588
591
  }
589
592
  .e-calendar .e-header .e-title:hover,
590
593
  .e-bigger.e-small .e-calendar .e-header .e-title:hover {
591
- color: #333;
594
+ background: none;
592
595
  cursor: pointer;
593
596
  text-decoration: none;
594
597
  }
598
+ .e-calendar .e-header .e-title:focus,
599
+ .e-bigger.e-small .e-calendar .e-header .e-title:focus {
600
+ box-shadow: 0 0 0 1px #000;
601
+ background: none;
602
+ text-decoration: none;
603
+ }
604
+ .e-calendar .e-header .e-title:active,
605
+ .e-bigger.e-small .e-calendar .e-header .e-title:active {
606
+ box-shadow: none;
607
+ background: none;
608
+ text-decoration: none;
609
+ }
595
610
  .e-calendar .e-header .e-prev:hover > span, .e-calendar .e-header .e-next:hover > span,
596
611
  .e-bigger.e-small .e-calendar .e-header .e-prev:hover > span,
597
612
  .e-bigger.e-small .e-calendar .e-header .e-next:hover > span {
@@ -604,6 +619,11 @@ ejs-calendar {
604
619
  .e-bigger.e-small .e-calendar .e-header .e-next:hover {
605
620
  background: #e6e6e6;
606
621
  }
622
+ .e-calendar .e-header .e-prev:focus, .e-calendar .e-header .e-next:focus,
623
+ .e-bigger.e-small .e-calendar .e-header .e-prev:focus,
624
+ .e-bigger.e-small .e-calendar .e-header .e-next:focus {
625
+ box-shadow: 0 0 0 1px #000;
626
+ }
607
627
  .e-calendar .e-header .e-prev:active, .e-calendar .e-header .e-next:active,
608
628
  .e-bigger.e-small .e-calendar .e-header .e-prev:active,
609
629
  .e-bigger.e-small .e-calendar .e-header .e-next:active {
@@ -823,6 +843,11 @@ ejs-calendar {
823
843
  transform: scale(1);
824
844
  }
825
845
  }
846
+ .e-calendar .e-content-table .e-cell.e-focused-cell span.e-day {
847
+ box-shadow: 0 0 0 1px #000;
848
+ border-radius: 4px;
849
+ }
850
+
826
851
  /* stylelint-disable property-no-vendor-prefix */
827
852
  /*! component icons */
828
853
  .e-time-wrapper .e-time-icon.e-icons::before,
@@ -205,6 +205,9 @@ ejs-calendar {
205
205
  font-size: 16px;
206
206
  font-weight: 600;
207
207
  text-align: left;
208
+ padding: 0 5px;
209
+ border: none;
210
+ border-radius: 4px;
208
211
  }
209
212
  .e-calendar .e-header .e-title,
210
213
  .e-bigger.e-small .e-calendar .e-header .e-title {
@@ -588,10 +591,22 @@ ejs-calendar {
588
591
  }
589
592
  .e-calendar .e-header .e-title:hover,
590
593
  .e-bigger.e-small .e-calendar .e-header .e-title:hover {
591
- color: #212529;
594
+ background: none;
592
595
  cursor: pointer;
593
596
  text-decoration: none;
594
597
  }
598
+ .e-calendar .e-header .e-title:focus,
599
+ .e-bigger.e-small .e-calendar .e-header .e-title:focus {
600
+ box-shadow: 0 0 0 1px #212529;
601
+ background: none;
602
+ text-decoration: none;
603
+ }
604
+ .e-calendar .e-header .e-title:active,
605
+ .e-bigger.e-small .e-calendar .e-header .e-title:active {
606
+ box-shadow: none;
607
+ background: transparent;
608
+ text-decoration: none;
609
+ }
595
610
  .e-calendar .e-header .e-prev:hover > span, .e-calendar .e-header .e-next:hover > span,
596
611
  .e-bigger.e-small .e-calendar .e-header .e-prev:hover > span,
597
612
  .e-bigger.e-small .e-calendar .e-header .e-next:hover > span {
@@ -604,6 +619,11 @@ ejs-calendar {
604
619
  .e-bigger.e-small .e-calendar .e-header .e-next:hover {
605
620
  background: #f2f4f6;
606
621
  }
622
+ .e-calendar .e-header .e-prev:focus, .e-calendar .e-header .e-next:focus,
623
+ .e-bigger.e-small .e-calendar .e-header .e-prev:focus,
624
+ .e-bigger.e-small .e-calendar .e-header .e-next:focus {
625
+ box-shadow: 0 0 0 1px #212529;
626
+ }
607
627
  .e-calendar .e-header .e-prev:active, .e-calendar .e-header .e-next:active,
608
628
  .e-bigger.e-small .e-calendar .e-header .e-prev:active,
609
629
  .e-bigger.e-small .e-calendar .e-header .e-next:active {
@@ -823,6 +843,11 @@ ejs-calendar {
823
843
  transform: scale(1);
824
844
  }
825
845
  }
846
+ .e-calendar .e-content-table .e-cell.e-focused-cell span.e-day {
847
+ box-shadow: 0 0 0 1px #212529;
848
+ border-radius: 4px;
849
+ }
850
+
826
851
  /* stylelint-disable property-no-vendor-prefix */
827
852
  /*! component icons */
828
853
  .e-time-wrapper .e-time-icon.e-icons::before,
@@ -205,6 +205,9 @@ ejs-calendar {
205
205
  font-size: 16px;
206
206
  font-weight: 700;
207
207
  text-align: left;
208
+ padding: 3px 5px;
209
+ border: none;
210
+ border-radius: 4px;
208
211
  }
209
212
  .e-calendar .e-header .e-title,
210
213
  .e-bigger.e-small .e-calendar .e-header .e-title {
@@ -625,10 +628,22 @@ ejs-calendar {
625
628
  }
626
629
  .e-calendar .e-header .e-title:hover,
627
630
  .e-bigger.e-small .e-calendar .e-header .e-title:hover {
628
- color: #7b848d;
631
+ background: #343a40;
629
632
  cursor: pointer;
630
633
  text-decoration: none;
631
634
  }
635
+ .e-calendar .e-header .e-title:focus,
636
+ .e-bigger.e-small .e-calendar .e-header .e-title:focus {
637
+ box-shadow: 0 0 0 1px #7b848d;
638
+ background: none;
639
+ text-decoration: none;
640
+ }
641
+ .e-calendar .e-header .e-title:active,
642
+ .e-bigger.e-small .e-calendar .e-header .e-title:active {
643
+ box-shadow: none;
644
+ background: #6c757d;
645
+ text-decoration: none;
646
+ }
632
647
  .e-calendar .e-header .e-prev:hover > span, .e-calendar .e-header .e-next:hover > span,
633
648
  .e-bigger.e-small .e-calendar .e-header .e-prev:hover > span,
634
649
  .e-bigger.e-small .e-calendar .e-header .e-next:hover > span {
@@ -641,6 +656,11 @@ ejs-calendar {
641
656
  .e-bigger.e-small .e-calendar .e-header .e-next:hover {
642
657
  background: #5c636a;
643
658
  }
659
+ .e-calendar .e-header .e-prev:focus, .e-calendar .e-header .e-next:focus,
660
+ .e-bigger.e-small .e-calendar .e-header .e-prev:focus,
661
+ .e-bigger.e-small .e-calendar .e-header .e-next:focus {
662
+ box-shadow: 0 0 0 1px #7b848d;
663
+ }
644
664
  .e-calendar .e-header .e-prev:active, .e-calendar .e-header .e-next:active,
645
665
  .e-bigger.e-small .e-calendar .e-header .e-prev:active,
646
666
  .e-bigger.e-small .e-calendar .e-header .e-next:active {
@@ -893,6 +913,11 @@ ejs-calendar {
893
913
  color: rgba(255, 255, 255, 0.65);
894
914
  }
895
915
 
916
+ .e-calendar .e-content-table .e-cell.e-focused-cell span.e-day {
917
+ box-shadow: 0 0 0 1px #7b848d;
918
+ border-radius: 4px;
919
+ }
920
+
896
921
  /* stylelint-disable property-no-vendor-prefix */
897
922
  /* stylelint-disable-line no-empty-source */
898
923
  /*! component icons */
@@ -205,6 +205,9 @@ ejs-calendar {
205
205
  font-size: 16px;
206
206
  font-weight: 700;
207
207
  text-align: left;
208
+ padding: 3px 5px;
209
+ border: none;
210
+ border-radius: 4px;
208
211
  }
209
212
  .e-calendar .e-header .e-title,
210
213
  .e-bigger.e-small .e-calendar .e-header .e-title {
@@ -625,10 +628,22 @@ ejs-calendar {
625
628
  }
626
629
  .e-calendar .e-header .e-title:hover,
627
630
  .e-bigger.e-small .e-calendar .e-header .e-title:hover {
628
- color: #6c757d;
631
+ background: #e9ecef;
629
632
  cursor: pointer;
630
633
  text-decoration: none;
631
634
  }
635
+ .e-calendar .e-header .e-title:focus,
636
+ .e-bigger.e-small .e-calendar .e-header .e-title:focus {
637
+ box-shadow: 0 0 0 1px #6c757d;
638
+ background: none;
639
+ text-decoration: none;
640
+ }
641
+ .e-calendar .e-header .e-title:active,
642
+ .e-bigger.e-small .e-calendar .e-header .e-title:active {
643
+ box-shadow: none;
644
+ background: #ced4da;
645
+ text-decoration: none;
646
+ }
632
647
  .e-calendar .e-header .e-prev:hover > span, .e-calendar .e-header .e-next:hover > span,
633
648
  .e-bigger.e-small .e-calendar .e-header .e-prev:hover > span,
634
649
  .e-bigger.e-small .e-calendar .e-header .e-next:hover > span {
@@ -641,6 +656,11 @@ ejs-calendar {
641
656
  .e-bigger.e-small .e-calendar .e-header .e-next:hover {
642
657
  background: #5c636a;
643
658
  }
659
+ .e-calendar .e-header .e-prev:focus, .e-calendar .e-header .e-next:focus,
660
+ .e-bigger.e-small .e-calendar .e-header .e-prev:focus,
661
+ .e-bigger.e-small .e-calendar .e-header .e-next:focus {
662
+ box-shadow: 0 0 0 1px #6c757d;
663
+ }
644
664
  .e-calendar .e-header .e-prev:active, .e-calendar .e-header .e-next:active,
645
665
  .e-bigger.e-small .e-calendar .e-header .e-prev:active,
646
666
  .e-bigger.e-small .e-calendar .e-header .e-next:active {
@@ -893,6 +913,11 @@ ejs-calendar {
893
913
  color: rgba(255, 255, 255, 0.65);
894
914
  }
895
915
 
916
+ .e-calendar .e-content-table .e-cell.e-focused-cell span.e-day {
917
+ box-shadow: 0 0 0 1px #6c757d;
918
+ border-radius: 4px;
919
+ }
920
+
896
921
  /* stylelint-disable property-no-vendor-prefix */
897
922
  /* stylelint-disable-line no-empty-source */
898
923
  /*! component icons */
@@ -25,6 +25,16 @@ $calendar-title-font-size: 16px !default;
25
25
  $calendar-title-margin-left-style: 8px !default;
26
26
  $calendar-title-font-weight-style: 600 !default;
27
27
  $calendar-title-decoration-style: none !default;
28
+ $calendar-header-title-padding: 0 5px !default;
29
+
30
+ //Focus related styles
31
+ $calendar-title-focus-box-shadow: 0 0 0 1px $grey-light-font !default;
32
+ $calendar-title-focus-background: none !default;
33
+ $calendar-title-active-background: transparent !default;
34
+ $calendar-icon-focus-box-shadow: 0 0 0 1px $grey-light-font !default;
35
+ $calendar-title-border-radius: 4px !default;
36
+ $calendar-title-hover-bg-color: none !default;
37
+ $calendar-focused-cell-box-shadow: 0 0 0 1px $grey-light-font !default;
28
38
 
29
39
  //bgcolor
30
40
  $calendar-header-font-color: $grey-dark-font !default;
@@ -27,6 +27,16 @@ $calendar-title-font-size: 16px !default;
27
27
  $calendar-title-margin-left-style: 8px !default;
28
28
  $calendar-title-font-weight-style: 600 !default;
29
29
  $calendar-title-decoration-style: none !default;
30
+ $calendar-header-title-padding: 0 5px !default;
31
+
32
+ // Focus related styles
33
+ $calendar-title-focus-box-shadow: 0 0 0 1px $gray-base !default;
34
+ $calendar-title-focus-background: none !default;
35
+ $calendar-title-active-background: none !default;
36
+ $calendar-icon-focus-box-shadow: 0 0 0 1px $gray-base !default;
37
+ $calendar-title-border-radius: 4px !default;
38
+ $calendar-title-hover-bg-color: none !default;
39
+ $calendar-focused-cell-box-shadow: 0 0 0 1px $gray-base !default;
30
40
 
31
41
  //header color
32
42
  $calendar-header-font-color: rgba($grey-light-font, .87) !default;
@@ -27,6 +27,16 @@ $calendar-title-font-size: 16px !default;
27
27
  $calendar-title-margin-left-style: 8px !default;
28
28
  $calendar-title-font-weight-style: 600 !default;
29
29
  $calendar-title-decoration-style: none !default;
30
+ $calendar-header-title-padding: 0 5px !default;
31
+
32
+ //Focus related styles
33
+ $calendar-title-focus-box-shadow: 0 0 0 1px $gray-900 !default;
34
+ $calendar-title-focus-background: none !default;
35
+ $calendar-title-active-background: transparent !default;
36
+ $calendar-icon-focus-box-shadow: 0 0 0 1px $gray-900 !default;
37
+ $calendar-title-border-radius: 4px !default;
38
+ $calendar-title-hover-bg-color: none !default;
39
+ $calendar-focused-cell-box-shadow: 0 0 0 1px $gray-900 !default;
30
40
 
31
41
  //header color
32
42
  $calendar-header-font-color: $gray-900 !default;
@@ -26,6 +26,7 @@ $calendar-title-font-size: $text-base !default;
26
26
  $calendar-title-margin-left-style: 2px !default;
27
27
  $calendar-title-font-weight-style: $font-weight-bold !default;
28
28
  $calendar-title-decoration-style: none !default;
29
+ $calendar-header-title-padding: 3px 5px !default;
29
30
 
30
31
  // common size properties
31
32
  $calendar-wrapper-border-radius: 4px !default;
@@ -158,13 +159,20 @@ $calendar-header-icon-color: $icon-color !default;
158
159
  $calendar-title-font-color: $content-text-color-alt1 !default;
159
160
  $calendar-icon-font-color: $content-text-color-alt1 !default;
160
161
  $calendar-active-icon-color: $secondary-text-color !default;
161
- $calendar-title-hover-color: $content-text-color-alt3 !default;
162
+ $calendar-title-hover-color: $content-bg-color-alt2 !default;
163
+ $calendar-title-border-radius: 4px !default;
164
+ $calendar-title-hover-bg-color: $content-bg-color-alt2 !default;
165
+ $calendar-title-focus-box-shadow: 0 0 0 1px $content-text-color-alt3 !default;
166
+ $calendar-icon-focus-box-shadow: 0 0 0 1px $content-text-color-alt3 !default;
167
+ $calendar-title-focus-background: none !default;
168
+ $calendar-title-active-background: $content-bg-color-alt4 !default;
162
169
  $calendar-icon-hover-color: $secondary-text-color !default;
163
170
  $calendar-icon-hover-bg-color: $secondary-bg-color-hover !default;
164
171
  $calendar-device-icon-hover-bg-color: $secondary-bg-color-hover !default;
165
172
  $calendar-default-border-color: none !default;
166
173
  $calendar-icon-hover-border-color: $content-bg-color-hover !default;
167
174
  $calendar-active-state-icon-bg-color: $secondary-border-color-pressed !default;
175
+ $calendar-focused-cell-box-shadow: 0 0 0 1px $content-text-color-alt3 !default;
168
176
 
169
177
  //popup styles
170
178
  $calendar-border-style: 1px solid $border-light !default;