\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{PrimeTeX/packages/CrossRef}[2025-07-09]

% Cross references
	\NewDocumentCommand{\refPart}{O{Part~} m}{#1\ref{pt:#2}}
	\NewDocumentCommand{\refChapter}{O{Chapter~} m}{#1\ref{ch:#2}}
	\NewDocumentCommand{\refAppendix}{O{Appendix~} m}{#1\ref{ch:#2}}
	\NewDocumentCommand{\refSection}{O{Section~} m}{#1\ref{sec:#2}}
	\NewDocumentCommand{\refSubsection}{O{Subsection~} m}{#1\ref{subsec:#2}}
	\NewDocumentCommand{\refSubsubsection}{O{Sub-subsection~} m}{#1\ref{sssec:#2}}
	\NewDocumentCommand{\refParagraph}{O{Paragraph} m}{#1\ref{par:#2}}
	\NewDocumentCommand{\refSubparagraph}{O{Subparagraph~} m}{#1\ref{subpar:#2}}
	\NewDocumentCommand{\refTable}{O{Table~} m}{#1\ref{tbl:#2}}
	\NewDocumentCommand{\refFigure}{O{Figure~} m}{#1\ref{fig:#2}}

	\NewDocumentCommand{\lblGeneral}{>{\TrimSpaces}O{} >{\TrimSpaces}m m >{\TrimSpaces}m}{
		\if\relax\detokenize{#1}\relax % Check if #1 is empty string.
			#3{#2}\label{#4:#2}
		\else
			#3{#2}\label{#4:#1}
		\fi
	}
	\NewDocumentCommand{\lblPart}{O{} m}{
		\lblGeneral[#1]{#2}{\part}{pt}
	}
	\NewDocumentCommand{\lblChapter}{O{} m}{
		\lblGeneral[#1]{#2}{\chapter}{ch}
	}
	\NewDocumentCommand{\lblSection}{O{} m}{
		\lblGeneral[#1]{#2}{\section}{sec}
	}
	\NewDocumentCommand{\lblSubsection}{O{} m}{
		\lblGeneral[#1]{#2}{\subsection}{subsec}
	}
	\NewDocumentCommand{\lblSubsubsection}{O{} m}{
		\lblGeneral[#1]{#2}{\subsubsection}{sssec}
	}
	\NewDocumentCommand{\lblParagraph}{O{} m}{
		\lblGeneral[#1]{#2}{\paragraph}{par}
	}
	\NewDocumentCommand{\lblSubparagraph}{O{} m}{
		\lblGeneral[#1]{#2}{\subparagraph}{subpar}
	}
	\NewDocumentCommand{\lblTable}{O{} m}{
		\lblGeneral[#1]{#2}{\caption}{tbl}
	}
	\NewDocumentCommand{\lblFigure}{O{} m}{
		\lblGeneral[#1]{#2}{\caption}{fig}
	}