@use "sass:color";
@use "variables" as *;
@use "mixins" as *;
$header-height: 3em;

.react-datepicker-wrapper {
	display: block;
	padding: 0;
	border: 0;
	width: fit-content;
}

.react-datepicker {
	font-family: $datepicker__font-family;
	font-size: $datepicker__font-size;
	background-color: #fff;
	color: $datepicker__text-color;
	border: $datepicker__border;
	border-radius: $datepicker__border-radius;
	display: inline-block;
	position: relative;

	// Reverting value set in .react-datepicker-popper
	line-height: initial;
}

.react-datepicker--time-only {
	.react-datepicker__time-container {
		border-left: 0;
	}

	.react-datepicker__time,
	.react-datepicker__time-box {
		border-bottom-left-radius: 0.3rem;
		border-bottom-right-radius: 0.3rem;
	}
}

.react-datepicker-popper {
	z-index: 99;

	// Eliminating extra space at the bottom of the container
	line-height: 0;

	.react-datepicker__triangle {
		stroke: $datepicker__border-color;
	}

	&[data-placement^="bottom"] {
		.react-datepicker__triangle {
			fill: $datepicker__background-color;
			color: $datepicker__background-color;
		}
	}

	&[data-placement^="top"] {
		.react-datepicker__triangle {
			fill: #fff;
			color: #fff;
		}
	}
}

.react-datepicker__header__dropdown {
	//display: flex;
	//height: $datepicker__navigation-button-size;

	// Leave space for month-buttons.
	margin-right: $datepicker__navigation-button-size * 1.5;
	margin-left: $datepicker__navigation-button-size * 1.5;
	//justify-content: end;
	//min-width: 16rem;
}


.react-datepicker__header {
	text-align: center;
	background-color: $datepicker__background-color;
	border-bottom: $datepicker__border;
	border-top-left-radius: $datepicker__border-radius;
	padding: 8px 0;
	position: relative;

	&--time {
		padding-bottom: 8px;
		padding-left: 5px;
		padding-right: 5px;

		&:not(&--only) {
			border-top-left-radius: 0;
		}
	}

	&:not(&--has-time-select) {
		border-top-right-radius: $datepicker__border-radius;
	}
}

.react-datepicker__month-dropdown-container,
.react-datepicker__year-dropdown-container {
	//background: $background;
	display: inline-flex;
	align-items: center;
	position: relative;
	&:before {
		content: '▾';
		position: absolute;
		height: inherit;
		width: 1em;
		right: 1rem;
	}
	&:not(:first-child) {
		@media (min-width: 500px) {
			margin-left: 1em;
		}
	}
}


.react-datepicker__year-dropdown-container--select,
.react-datepicker__month-dropdown-container--select,
.react-datepicker__month-year-dropdown-container--select,
.react-datepicker__year-dropdown-container--scroll,
.react-datepicker__month-dropdown-container--scroll,
.react-datepicker__month-year-dropdown-container--scroll {
	//display: inline-block;
	//margin: 0 15px;
	//position: relative;
}

.react-datepicker__current-month,
.react-datepicker-time__header,
.react-datepicker-year-header {
	margin-top: 0;
	//color: $datepicker__header-color;
	//font-weight: bold;
	//font-size: $datepicker__font-size * 1.18;
	// Visually hidden.
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

//h2.react-datepicker__current-month {
//	padding: 0;
//	margin: 0;
//}

.react-datepicker-time__header {
	text-overflow: ellipsis;
	white-space: nowrap;
	overflow: hidden;
}

.react-datepicker__navigation {
	align-items: center;
	background: none;
	display: flex;
	justify-content: center;
	text-align: center;
	cursor: pointer;
	position: absolute;
	top: 2px;
	padding: 0;
	border: none;
	z-index: 1;
	height: $datepicker__navigation-button-size;
	width: $datepicker__navigation-button-size;
	text-indent: -999em;
	overflow: hidden;

	&--previous,
	&--next {
		align-items: center;
		background: none;
		display: flex;
		justify-content: center;
		text-align: center;
		cursor: pointer;
		position: absolute;
		top: .5em;
		z-index: 1;
		width: $datepicker__navigation-button-size;
		height: $datepicker__navigation-button-size;
		border-radius: $datepicker__border-radius;
		text-indent: -999em;
		overflow: hidden;
		box-sizing: content-box;
		border: 1px solid transparent;

		&:before {
			//background: $background;
			content: "▸";
			text-indent: 0;
			display: flex;
			justify-content: center;
			align-items: center;
			position: absolute;
			height: $datepicker__navigation-button-size;
			width: $datepicker__navigation-button-size;
			line-height: 3;
		}
		&:hover {
			outline: 1px solid $datepicker__selected-color;
		}
	}

	&--previous {
		margin-left: auto;
		margin-right: auto;
		left: .5em;
		&:before {
			transform: rotate(180deg);
		}
	}

	&--next {
		right: .5em;

		&--with-time:not(&--with-today-button) {
			right: 85px;
		}
	}

	&--years {
		position: relative;
		top: 0;
		display: block;
		margin-left: auto;
		margin-right: auto;

		&-previous {
			top: 4px;
		}

		&-upcoming {
			top: -4px;
		}
	}

	&:hover {
		*::before {
			border-color: color.adjust($datepicker__muted-color, $lightness: -15%);
		}
	}
}

.react-datepicker__navigation-icon {
	//position: relative;
	//top: -1px;
	//font-size: 20px;
	//width: 0;
	//
	//&::before {
	//	@extend %navigation-chevron;
	//}

	//&--next {
	//	left: -2px;
	//
	//	&::before {
	//		transform: rotate(45deg);
	//		left: -7px;
	//	}
	//}
	//
	//&--previous {
	//	right: -2px;
	//
	//	&::before {
	//		transform: rotate(225deg);
	//		right: -7px;
	//	}
	//}
}

.react-datepicker__month-container {
	float: left;
}

.react-datepicker__year {
	margin: $datepicker__margin;
	text-align: center;

	&-wrapper {
		display: flex;
		flex-wrap: wrap;
		max-width: 180px;
	}

	.react-datepicker__year-text {
		display: inline-block;
		width: 4rem;
		margin: 2px;
	}
}

.react-datepicker__month {
	margin: $datepicker__margin;
	text-align: center;
	min-height: 12.5em;
	display: flex;
	flex-direction: column;
	justify-content: center;

	.react-datepicker__month-text,
	.react-datepicker__quarter-text {
		display: inline-block;
		width: 4rem;
		margin: 2px;
	}
}

.react-datepicker__input-time-container {
	clear: both;
	width: 100%;
	float: left;
	margin: 5px 0 10px 15px;
	text-align: center;

	.react-datepicker-time__caption {
		display: inline-block;
	}

	.react-datepicker-time__input-container {
		display: inline-block;

		.react-datepicker-time__input {
			display: inline-block;
			margin-left: 10px;

			input {
				width: auto;
			}

			input[type="time"]::-webkit-inner-spin-button,
			input[type="time"]::-webkit-outer-spin-button {
				-webkit-appearance: none;
				margin: 0;
			}

			input[type="time"] {
				-moz-appearance: textfield;
			}
		}

		.react-datepicker-time__delimiter {
			margin-left: 5px;
			display: inline-block;
		}
	}
}

.react-datepicker__time-container {
	float: right;
	border-left: $datepicker__border;
	width: 85px;

	&--with-today-button {
		display: inline;
		border: 1px solid #aeaeae;
		border-radius: 0.3rem;
		position: absolute;
		right: -87px;
		top: 0;
	}

	.react-datepicker__time {
		position: relative;
		background: white;
		border-bottom-right-radius: 0.3rem;

		.react-datepicker__time-box {
			width: 85px;
			overflow-x: hidden;
			margin: 0 auto;
			text-align: center;
			border-bottom-right-radius: 0.3rem;

			ul.react-datepicker__time-list {
				list-style: none;
				margin: 0;
				height: calc(195px + (#{$datepicker__item-size} / 2));
				overflow-y: scroll;
				padding-right: 0;
				padding-left: 0;
				width: 100%;
				height: $datepicker__navigation-button-size;
				box-sizing: content-box;

				li.react-datepicker__time-list-item {
					height: 30px;
					padding: 5px 10px;
					white-space: nowrap;

					&:hover {
						cursor: pointer;
						background-color: $datepicker__background-color;
					}

					&--selected {
						background-color: $datepicker__selected-color;
						color: white;
						font-weight: bold;

						&:hover {
							background-color: $datepicker__selected-color;
						}
					}

					&--disabled {
						color: $datepicker__muted-color;

						&:hover {
							cursor: default;
							background-color: transparent;
						}
					}
				}
			}
		}
	}
}

.react-datepicker__week-number {
	color: $datepicker__muted-color;
	display: inline-block;
	width: $datepicker__item-size;
	line-height: $datepicker__item-size;
	text-align: center;
	margin: $datepicker__day-margin;

	&.react-datepicker__week-number--clickable {
		cursor: pointer;

		&:not(.react-datepicker__week-number--selected):hover {
			border-radius: $datepicker__border-radius;
			background-color: $datepicker__background-color;
		}
	}

	&--selected {
		border-radius: $datepicker__border-radius;
		background-color: $datepicker__selected-color;
		color: #fff;

		&:hover {
			background-color: color.adjust(
					$datepicker__selected-color,
				$lightness: -5%
			);
		}
	}
}

.react-datepicker__day-names {
	white-space: nowrap;
	margin-bottom: -8px;
}

.react-datepicker__week {
	white-space: nowrap;
}

.react-datepicker__day-name,
.react-datepicker__day,
.react-datepicker__time-name {
	color: $datepicker__text-color;
	display: inline-block;
	width: $datepicker__item-size;
	line-height: $datepicker__item-size;
	text-align: center;
	margin: $datepicker__day-margin;
}

.react-datepicker__day,
.react-datepicker__month-text,
.react-datepicker__quarter-text,
.react-datepicker__year-text {
	cursor: pointer;

	&:not([aria-disabled="true"]):hover {
		border-radius: $datepicker__border-radius;
		background-color: $datepicker__background-color;
	}

	&--today {
		font-weight: bold;
	}

	&--highlighted {
		border-radius: $datepicker__border-radius;
		background-color: $datepicker__highlighted-color;
		color: #fff;

		&:not([aria-disabled="true"]):hover {
			background-color: color.adjust(
					$datepicker__highlighted-color,
				$lightness: -5%
			);
		}

		&-custom-1 {
			color: magenta;
		}

		&-custom-2 {
			color: green;
		}
	}

	&--holidays {
		position: relative;
		border-radius: $datepicker__border-radius;
		background-color: $datepicker__holidays-color;
		color: #fff;

		.overlay {
			position: absolute;
			bottom: 100%;
			left: 50%;
			transform: translateX(-50%);
			background-color: #333;
			color: #fff;
			padding: 4px;
			border-radius: 4px;
			white-space: nowrap;
			visibility: hidden;
			opacity: 0;
			transition:
				visibility 0s,
				opacity 0.3s ease-in-out;
		}

		&:not([aria-disabled="true"]):hover {
			background-color: color.adjust(
					$datepicker__holidays-color,
				$lightness: -10%
			);
		}

		&:hover .overlay {
			visibility: visible;
			opacity: 1;
		}
	}

	&--selected,
	&--in-selecting-range,
	&--in-range {
		border-radius: $datepicker__border-radius;
		background-color: $datepicker__selected-color;
		color: #fff;

		&:not([aria-disabled="true"]):hover {
			background-color: color.adjust(
					$datepicker__selected-color,
				$lightness: -5%
			);
		}
	}

	&--keyboard-selected {
		border-radius: $datepicker__border-radius;
		background-color: color.adjust(
				$datepicker__selected-color,
			$lightness: 45%
		);
		color: rgb(0, 0, 0);

		&:not([aria-disabled="true"]):hover {
			background-color: color.adjust(
					$datepicker__selected-color,
				$lightness: -5%
			);
		}
	}

	&--in-selecting-range:not(&--in-range) {
		background-color: $datepicker__selected-color--disabled;
	}

	&--in-range:not(&--in-selecting-range) {
		.react-datepicker__month--selecting-range &,
		.react-datepicker__year--selecting-range & {
			background-color: $datepicker__background-color;
			color: $datepicker__text-color;
		}
	}

	&--disabled {
		cursor: default;
		color: $datepicker__muted-color;

		.overlay {
			position: absolute;
			bottom: 70%;
			left: 50%;
			transform: translateX(-50%);
			background-color: #333;
			color: #fff;
			padding: 4px;
			border-radius: 4px;
			white-space: nowrap;
			visibility: hidden;
			opacity: 0;
			transition:
				visibility 0s,
				opacity 0.3s ease-in-out;
		}
	}
}

.react-datepicker__input-container {
	position: relative;
	display: inline-block;

	.react-datepicker__calendar-icon {
		position: absolute;
		display: flex;
		height: 100%;
		width: 1.8rem;
		padding: 0 .5em;
	}
}

.react-datepicker__view-calendar-icon {
	input {
		padding: .5em 0 .5em $datepicker__navigation-button-size;
	}
}

.react-datepicker__month-read-view,
.datepicker__month-dropdown-container--scroll {
	// Add min width so Popup Window doesn't resize.
	min-width: 7em;
}
.react-datepicker__year-read-view,
.react-datepicker__month-read-view,
.react-datepicker__month-year-read-view {
	//border: 1px solid transparent;
	border-radius: $datepicker__border-radius;
	border: 1px solid transparent;
	position: relative;
	//line-height: 2;
	padding: .2em 2em .2em 1em;
	display: flex;
	align-items: center;
	color: $datepicker__header-color;
	font-weight: bold;
	height: $datepicker__navigation-button-size;
	//font-size: $datepicker__font-size * 1.18;

	//position: relative;
	//display: none;

	&:hover {
		//text-decoration: underline;
		outline: 1px solid $datepicker__selected-color;
	}



	&:hover {
		cursor: pointer;

		//.react-datepicker__year-read-view--down-arrow,
		//.react-datepicker__month-read-view--down-arrow {
		//	border-top-color: color.adjust(
		//			$datepicker__muted-color,
		//		$lightness: -10%
		//	);
		//}
	}

	&--down-arrow {
		//@extend %navigation-chevron;
		//
		//transform: rotate(135deg);
		//right: -16px;
		//top: 0;
	}
}

.react-datepicker__year-dropdown,
.react-datepicker__month-dropdown,
.react-datepicker__month-year-dropdown {
	background-color: $datepicker__background-color;
	position: absolute;
	width: 100%;
	left: 0;
	top: 0;
	right: 0;
	z-index: 1;
	text-align: center;
	border: 1px solid transparent;
	font-size: 1rem;
	box-sizing: border-box;
	border-radius: $datepicker__border-radius;

	&:hover {
		outline: 1px solid $datepicker__selected-color;
		cursor: pointer;
	}

	&--scrollable {
		height: 150px;
		overflow-y: scroll;
	}
}

.react-datepicker__year-option,
.react-datepicker__month-option,
.react-datepicker__month-year-option {
	width: 100%;
	display: block;
	margin-left: auto;
	margin-right: auto;
	line-height: 2;

	&:last-of-type {
		-webkit-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		user-select: none;
		border-bottom-left-radius: $datepicker__border-radius;
		border-bottom-right-radius: $datepicker__border-radius;
	}

	&:hover {
		background-color: $datepicker__muted-color;

		.react-datepicker__navigation--years-upcoming {
			border-bottom-color: color.adjust(
					$datepicker__muted-color,
				$lightness: -10%
			);
		}

		.react-datepicker__navigation--years-previous {
			border-top-color: color.adjust(
					$datepicker__muted-color,
				$lightness: -10%
			);
		}
	}

	&--selected {
		position: absolute;
		left: 15px;
	}
}
// Add Years to scoll-select list
.react-datepicker__navigation--years {
	&:before {
		content: '▾';
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		right:0;
		bottom: 0;
		text-indent: 0;
	}
	&:hover {
		color: $datepicker__selected-color;
	}
}
.react-datepicker__navigation--years-upcoming {
	&:before {
		transform: rotate(180deg);
	}
}

.react-datepicker__close-icon {
	cursor: pointer;
	background-color: transparent;
	border: 0;
	outline: 0;
	padding: 0 6px 0 0;
	position: absolute;
	top: 0;
	right: 0;
	height: 100%;
	display: table-cell;
	vertical-align: middle;

	&::after {
		// close.
		transition: color .5s ease;
		cursor: pointer;
		color: #ccc;
		font-size: 1.4rem;
		content: "✘";
		padding-right: .25em;
	}
	&:hover {
		&:after {
			color: #0a0a0a;
		}
	}

	&--disabled {
		cursor: default;

		&::after {
			cursor: default;
			background-color: $datepicker__muted-color;
		}
	}
}

.react-datepicker__today-button {
	background: $datepicker__background-color;
	border-top: $datepicker__border;
	cursor: pointer;
	text-align: center;
	font-weight: bold;
	padding: 5px 0;
	clear: left;
	line-height: 2;
	&:hover {
		color: $datepicker__selected-color;
		text-decoration: underline;
	}
}

.react-datepicker__portal {
	position: fixed;
	width: 100vw;
	height: 100vh;
	background-color: rgba(0, 0, 0, 0.8);
	left: 0;
	top: 0;
	justify-content: center;
	align-items: center;
	display: flex;
	z-index: 2147483647;

	.react-datepicker__day-name,
	.react-datepicker__day,
	.react-datepicker__time-name {
		width: 3rem;
		line-height: 3rem;
	}

	@media (max-width: 400px), (max-height: 550px) {
		.react-datepicker__day-name,
		.react-datepicker__day,
		.react-datepicker__time-name {
			width: 2rem;
			line-height: 2rem;
			font-size: $datepicker__font-size * 0.8;
		}
	}

	.react-datepicker__current-month,
	.react-datepicker-time__header {
		font-size: $datepicker__font-size;
	}
}

.react-datepicker__children-container {
	width: 13.8rem;
	margin: 0.4rem;
	padding-right: 0.2rem;
	padding-left: 0.2rem;
	height: auto;
}

.react-datepicker__aria-live {
	position: absolute;
	clip-path: circle(0);
	border: 0;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	width: 1px;
	white-space: nowrap;
}

