@use 'sass:map';
@use './tools/' as tools;

@use 'bold/index' as bold;
@use 'extralight/index' as extralight;
@use 'light/index' as light;
@use 'medium/index' as medium;
@use 'regular/index' as regular;
@use 'semibold/index' as semibold;
@use 'text/index' as text;
@use 'thin/index' as thin;

$font-prefix: '..' !default;
$unicode-ranges: ('JP-000','JP-001','JP-002','JP-003','JP-004','JP-005','JP-006','JP-007','JP-008','JP-009','JP-010','JP-011','JP-012','JP-013','JP-014','JP-015','JP-016','JP-017','JP-018','JP-019','JP-020','JP-021','JP-022','JP-023','JP-024','JP-025','JP-026','JP-027','JP-028','JP-029','JP-030','JP-031','JP-032','JP-033','JP-034','JP-035','JP-036','JP-037','JP-038','JP-039','JP-040','JP-041','JP-042','JP-043','JP-044','JP-045','JP-046','JP-047','JP-048','JP-049','JP-050','JP-051','JP-052','JP-053','JP-054','JP-055','JP-056','JP-057','JP-058','JP-059','JP-060','JP-061','JP-062','JP-063','JP-064','JP-065','JP-066','JP-067','JP-068','JP-069','JP-070','JP-071','JP-072','JP-073','JP-074','JP-075','JP-076','JP-077','JP-078','JP-079','JP-080','JP-081','JP-082','JP-083','JP-084','JP-085','JP-086','JP-087','JP-088','JP-089','JP-090','JP-091','JP-092','JP-093','JP-094','JP-095','JP-096','JP-097','JP-098','JP-099','JP-100','JP-101','JP-102','JP-103','JP-104','JP-105','JP-106','JP-107','JP-108','JP-109','JP-110','JP-111','JP-112','JP-113','JP-114','JP-115','JP-116','JP-117','JP-118','JP-119','JP-120','JP-121','JP-122','JP-123');
$-font-weights: (
	bold: true,
	extralight: true,
	light: true,
	medium: true,
	regular: true,
	semibold: true,
	text: true,
	thin: true
);
$font-weights: () !default;
$font-weights: map.merge($-font-weights, $font-weights);

@mixin all($font-prefix: $font-prefix, $unicode-ranges: $unicode-ranges) {
	@if tools.enabled($font-weights, 'bold') {
		@include bold.all($font-prefix, $unicode-ranges);
	}

	@if tools.enabled($font-weights, 'extralight') {
		@include extralight.all($font-prefix, $unicode-ranges);
	}

	@if tools.enabled($font-weights, 'light') {
		@include light.all($font-prefix, $unicode-ranges);
	}

	@if tools.enabled($font-weights, 'medium') {
		@include medium.all($font-prefix, $unicode-ranges);
	}

	@if tools.enabled($font-weights, 'regular') {
		@include regular.all($font-prefix, $unicode-ranges);
	}

	@if tools.enabled($font-weights, 'semibold') {
		@include semibold.all($font-prefix, $unicode-ranges);
	}

	@if tools.enabled($font-weights, 'text') {
		@include text.all($font-prefix, $unicode-ranges);
	}

	@if tools.enabled($font-weights, 'thin') {
		@include thin.all($font-prefix, $unicode-ranges);
	}
}

@mixin default($font-prefix: $font-prefix, $unicode-ranges: $unicode-ranges) {
	@if tools.enabled($font-weights, 'light') {
		@include light.all($font-prefix, $unicode-ranges);
	}

	@if tools.enabled($font-weights, 'regular') {
		@include regular.all($font-prefix, $unicode-ranges);
	}

	@if tools.enabled($font-weights, 'semibold') {
		@include semibold.all($font-prefix, $unicode-ranges);
	}
}