@use '../../scss/theming' as *;

@mixin daff-notification-theme($theme) {
	$primary: daff-get-palette($theme, primary);
	$info: daff-get-palette($theme, informational);
	$warn: daff-get-palette($theme, warn);
	$critical: daff-get-palette($theme, critical);
	$success: daff-get-palette($theme, success);
	$neutral: daff-get-palette($theme, neutral);
	$base: daff-get-base-color($theme, base);
	$base-contrast: daff-get-base-color($theme, base-contrast);
	$mode: daff-get-theme-mode($theme);

	.daff-notification {
		@include light($mode) {
			background: daff-color($neutral, 10);
			border: 1px solid daff-color($neutral, 20);
			color: $base-contrast;

			&.daff-info {
				background: daff-color($primary, 10);
				border: 1px solid daff-color($primary, 20);
				color: $base-contrast;

				.daff-prefix {
					color: daff-color($primary, 80);
				}
			}

			&.daff-success {
				background: daff-color($success, 10);
				border: 1px solid daff-color($success, 20);
				color: $base-contrast;

				.daff-prefix {
					color: daff-color($success, 80);
				}
			}

			&.daff-warn {
				background: daff-color($warn, 10);
				border: 1px solid daff-color($warn, 20);
				color: $base-contrast;

				.daff-prefix {
					color: daff-color($warn, 80);
				}
			}

			&.daff-critical {
				background: daff-color($critical, 10);
				border: 1px solid daff-color($critical, 20);
				color: $base-contrast;

				.daff-prefix {
					color: daff-color($critical, 80);
				}
			}
		}

		@include dark($mode) {
			background: daff-color($neutral, 90);
			border: 1px solid daff-color($neutral, 80);
			color: $base-contrast;

			&.daff-info {
				background: daff-color($primary, 100);
				border: 1px solid daff-color($primary, 90);
				color: $base-contrast;

				.daff-prefix {
					color: daff-color($primary, 30);
				}
			}

			&.daff-success {
				background: daff-color($success, 100);
				border: 1px solid daff-color($success, 90);
				color: $base-contrast;

				.daff-prefix {
					color: daff-color($success, 30);
				}
			}

			&.daff-warn {
				background: daff-color($warn, 100);
				border: 1px solid daff-color($warn, 90);
				color: $base-contrast;

				.daff-prefix {
					color: daff-color($warn, 30);
				}
			}

			&.daff-critical {
				background: daff-color($critical, 100);
				border: 1px solid daff-color($critical, 90);
				color: $base-contrast;

				.daff-prefix {
					color: daff-color($critical, 30);
				}
			}
		}
	}
}
