diff --git a/src/components/calendar/calendar-rendering.spec.ts b/src/components/calendar/calendar-rendering.spec.ts
index e058dc7bd..a37ac91ee 100644
--- a/src/components/calendar/calendar-rendering.spec.ts
+++ b/src/components/calendar/calendar-rendering.spec.ts
@@ -140,19 +140,13 @@ describe('Calendar Rendering', () => {
expect(last.children.item(6)?.part.contains('hidden')).to.be.true;
});
- it('should change orientation', async () => {
- const dom = getCalendarDOM(calendar);
-
- expect(
- getComputedStyle(dom.content).getPropertyValue('flex-direction')
- ).to.equal('row');
-
+ it('should set vertical orientation part', async () => {
calendar.orientation = 'vertical';
await elementUpdated(calendar);
- expect(
- getComputedStyle(dom.content).getPropertyValue('flex-direction')
- ).to.equal('column');
+ const dom = getCalendarDOM(calendar);
+ expect(dom.content).to.exist;
+ expect(dom.content.part.contains('content-vertical')).to.be.true;
});
it('successfully enables and disables `hideHeader`', async () => {
diff --git a/src/components/calendar/calendar.ts b/src/components/calendar/calendar.ts
index a480e15db..f4d7393b9 100644
--- a/src/components/calendar/calendar.ts
+++ b/src/components/calendar/calendar.ts
@@ -2,8 +2,6 @@ import { html, nothing } from 'lit';
import { property, query, queryAll, state } from 'lit/decorators.js';
import { choose } from 'lit/directives/choose.js';
import { createRef, type Ref, ref } from 'lit/directives/ref.js';
-import { styleMap } from 'lit/directives/style-map.js';
-
import { addThemingController } from '../../theming/theming-controller.js';
import {
addKeybindings,
@@ -74,6 +72,7 @@ export const focusActiveDate = Symbol();
* @csspart header-title - The header title element of the calendar.
* @csspart header-date - The header date element of the calendar.
* @csspart content - The content element which contains the views and navigation elements of the calendar.
+ * @csspart content-vertical - The content element which contains the views and navigation elements of the calendar in vertical orientation.
* @csspart navigation - The navigation container element of the calendar.
* @csspart months-navigation - The months navigation button element of the calendar.
* @csspart years-navigation - The years navigation button element of the calendar.
@@ -610,7 +609,7 @@ export default class IgcCalendarComponent extends EventEmitterMixin<
@igcActiveDateChange=${this.activeDateChanged}
@igcRangePreviewDateChange=${this.rangePreviewDateChanged}
part="days-view"
- exportparts="days-row, label, date-inner, week-number-inner, week-number, date, first, last, selected, inactive, hidden, current, weekend, range, special, disabled, single, preview"
+ exportparts="days-row, label, date-inner, week-number-inner, week-number, date, first, last, selected, inactive, hidden, current, content-vertical, weekend, range, special, disabled, single, preview"
.active=${this.activeDaysViewIndex === idx}
.activeDate=${date.native}
.disabledDates=${this.disabledDates}
@@ -663,17 +662,14 @@ export default class IgcCalendarComponent extends EventEmitterMixin<
}
protected override render() {
- const direction = this._isDayView && this.orientation === 'horizontal';
-
- const styles = {
- display: 'flex',
- flexGrow: 1,
- flexDirection: direction ? 'row' : 'column',
+ const parts = {
+ content: true,
+ 'content-vertical': this._isDayView && this.orientation === 'vertical',
};
return html`
${this.renderHeader()}
-
+
${choose(this.activeView, [
['days', () => this.renderDaysView()],
['months', () => this.renderMonthView()],
diff --git a/src/components/calendar/helpers.spec.ts b/src/components/calendar/helpers.spec.ts
index 8849e5be9..ec2da7d66 100644
--- a/src/components/calendar/helpers.spec.ts
+++ b/src/components/calendar/helpers.spec.ts
@@ -76,7 +76,7 @@ export function getCalendarDOM(element: IgcCalendarComponent) {
},
},
get content() {
- return root.querySelector('[part="content"]')!;
+ return root.querySelector('[part~="content"]')!;
},
views: {
get days() {
diff --git a/src/components/calendar/themes/calendar.base.scss b/src/components/calendar/themes/calendar.base.scss
index 6cae7a511..06482e5dc 100644
--- a/src/components/calendar/themes/calendar.base.scss
+++ b/src/components/calendar/themes/calendar.base.scss
@@ -139,12 +139,18 @@
padding: rem(16px);
}
-[part='content'] {
+[part~='content'] {
+ display: flex;
+ flex-grow: 1;
border-radius: inherit;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
+[part~='content-vertical'] {
+ flex-direction: column;
+}
+
[part='header-date'],
[part='header-title'] {
margin: 0;
diff --git a/src/components/calendar/themes/shared/bootstrap/calendar.bootstrap.scss b/src/components/calendar/themes/shared/bootstrap/calendar.bootstrap.scss
index 5566bcd69..4a5432b65 100644
--- a/src/components/calendar/themes/shared/bootstrap/calendar.bootstrap.scss
+++ b/src/components/calendar/themes/shared/bootstrap/calendar.bootstrap.scss
@@ -13,7 +13,7 @@ $theme: $bootstrap;
border-radius: var-get($theme, 'border-radius');
}
-:host(igc-calendar:not([orientation='vertical'])) {
+[part~='content']:not([part~='content-vertical']) {
[part='days-view-container'] + [part='days-view-container'] {
[part='navigation'],
igc-days-view::part(days-row) {
diff --git a/src/components/calendar/themes/shared/fluent/calendar.fluent.scss b/src/components/calendar/themes/shared/fluent/calendar.fluent.scss
index f399d0b70..690382837 100644
--- a/src/components/calendar/themes/shared/fluent/calendar.fluent.scss
+++ b/src/components/calendar/themes/shared/fluent/calendar.fluent.scss
@@ -13,7 +13,7 @@ $theme: $fluent;
border-radius: var-get($theme, 'border-radius');
}
-:host(igc-calendar:not([orientation='vertical'])) {
+[part~='content']:not([part~='content-vertical']) {
[part='days-view-container'] + [part='days-view-container'] {
[part='navigation'],
igc-days-view {
diff --git a/src/components/calendar/themes/shared/indigo/calendar.indigo.scss b/src/components/calendar/themes/shared/indigo/calendar.indigo.scss
index ad18aab87..99f7d03c6 100644
--- a/src/components/calendar/themes/shared/indigo/calendar.indigo.scss
+++ b/src/components/calendar/themes/shared/indigo/calendar.indigo.scss
@@ -29,7 +29,7 @@ $theme: $indigo;
}
}
-:host(igc-calendar:not([orientation='vertical'])) {
+[part~='content']:not([part~='content-vertical']) {
[part='days-view-container'] + [part='days-view-container'] {
[part='navigation'],
igc-days-view {
diff --git a/src/components/calendar/themes/shared/material/calendar.material.scss b/src/components/calendar/themes/shared/material/calendar.material.scss
index 5150cf7a2..052604743 100644
--- a/src/components/calendar/themes/shared/material/calendar.material.scss
+++ b/src/components/calendar/themes/shared/material/calendar.material.scss
@@ -18,7 +18,7 @@ $theme: $material;
}
}
-:host(igc-calendar:not([orientation='vertical'])) {
+[part~='content']:not([part~='content-vertical']) {
[part='days-view-container'] + [part='days-view-container'] {
[part='navigation'],
igc-days-view {