// Fylgja (https://fylgja.dev)
// Licensed under MIT Open Source

@use "sass:string";
@use "props" as btn;

$selectors: ":where(button, [type=button], [type=submit], [type=reset]), .btn" !default;

$disabled-selectors: ":disabled, .is-disabled, [aria-disabled=true]" !default;
$active-selectors: ":active, .is-active, [aria-current=page], [aria-current=true], [aria-selected=true], :where(:has(input:checked))" !default;
$use-input-file: true !default;
$wrapper: "is" !default;

$btn-selectors: $selectors;

@if string.index($btn-selectors, ",") {
	$btn-selectors: ":#{$wrapper}(#{$selectors})";
}

@if $use-input-file {
	#{$btn-selectors},
	::file-selector-button {
		@include btn.base;
	}

	#{$btn-selectors} {
		vertical-align: middle;
	}

	:is(#{$btn-selectors}):hover,
	::file-selector-button:hover {
		@include btn.hover;
	}

	:is(#{$btn-selectors}):is(#{$active-selectors}) {
		@include btn.active;
	}

	:is(#{$btn-selectors}):is(#{$disabled-selectors}),
	:disabled::file-selector-button {
		@include btn.disabled;
	}
} @else {
	#{$btn-selectors} {
		@include btn.base;
		vertical-align: middle;
	}

	#{$btn-selectors} {
		&:hover {
			@include btn.hover;
		}

		&:is(#{$active-selectors}) {
			@include btn.active;
		}

		&:is(#{$disabled-selectors}) {
			@include btn.disabled;
		}
	}
}
