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

\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}}

% Line-breaking zero-width space.
\NewDocumentCommand{\zws}{}{\hspace{0pt}}
% Line-breaking dot.
\NewDocumentCommand{\bdot}{}{.\zws}

% MenuKeys configuration.
\renewmenumacro{\directory}[/]{hyphenatepaths}
\renewmenumacro{\keys}[+]{shadowedangularkeys}
\renewmenumacro{\menu}[>]{angularmenus}

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

\NewDocumentCommand{\ControlString}{}{Ctrl\,\ctrl}
\NewDocumentCommand{\EnterString}{}{Enter\,\return}
\NewDocumentCommand{\ShiftString}{}{Shift\,\shift}
\NewDocumentCommand{\AltString}{}{Alt\,\altmac}