\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{PrimeTeX/packages/Fonts}[2025-06-24]

% Specify Fonts
	\RequirePackage{fontspec}

	\NewDocumentCommand{\fontpath}{}{PrimeTeX/fonts}

	% Main font: Roboto Serif
	\setmainfont{RobotoSerif}[
		Path			= {\fontpath/RobotoSerif/},
		Extension		= .ttf,
		UprightFont		= *-Light,
		BoldFont		= *-SemiBold,
		ItalicFont		= *-LightItalic,
		BoldItalicFont	= *-SemiBoldItalic,
	]

	% Sans serif font: Roboto
	\setsansfont{Roboto}[
		Path			= {\fontpath/Roboto/},
		Extension		= .ttf,
		UprightFont		= *-Regular,
		BoldFont		= *-Bold,
		ItalicFont		= *-Italic,
		BoldItalicFont	= *-BoldItalic,
	]

	% Monospace font: Roboto Mono
	\setmonofont{RobotoMono}[
		Path			= {\fontpath/RobotoMono/},
		Extension		= .ttf,
		UprightFont		= *-Regular,
		BoldFont		= *-Bold,
		ItalicFont		= *-Italic,
		BoldItalicFont	= *-BoldItalic,
	]

	% Headings & Titles font: Roboto Slab
	\newfontfamily{\sbfamily}{RobotoSlab}[
		Path			= {\fontpath/},
		Extension		= .ttf,
		UprightFont		= RobotoSlab/RobotoSlab-SemiBold,
		BoldFont		= RobotoSlab/RobotoSlab-Black,
		% Roboto Slab doesn't have any italic form, so use 
		% the Roboto Serif version.
		ItalicFont		= RobotoSerif/RobotoSerif-SemiBoldItalic,
		BoldItalicFont	= RobotoSerif/RobotoSerif-ExtraBoldItalic,
	]

	% Emoji font: Noto Emoji
	\newfontfamily{\emfamily}{NotoEmoji}[
		Path			= {\fontpath/},
		Extension		= .ttf,
		UprightFont		= NotoEmoji/NotoEmoji-Regular,
		BoldFont		= NotoEmoji/NotoEmoji-Bold,
		ItalicFont		= NotoEmoji/NotoEmoji-Light,
	]

\NewDocumentCommand{\serif}{m}{\textrm{#1}}
\NewDocumentCommand{\sans}{m}{\textsf{#1}}
\NewDocumentCommand{\mono}{m}{\texttt{#1}}
\NewDocumentCommand{\slab}{m}{{\sbfamily{}#1}}
\NewDocumentCommand{\code}{m}{\mono{\small{}#1}}
\NewDocumentCommand{\emoji}{m}{{\emfamily{}#1}}

\RequirePackage{amssymb}

\RequirePackage[os=win]{menukeys}

\renewmenumacro{\directory}[/]{hyphenatepaths}
\renewmenumacro{\keys}[+]{shadowedangularkeys}
\renewmenumacro{\menu}[>]{angularmenus}

\RenewDocumentCommand{\ctrlname}{}{$\wedge$}