% !TeX TXS-program:compile = txs:///lualatex

\documentclass[tikz]{standalone}
%\usepackage[utf8]{inputenc}
%\usepackage[T1]{fontenc}
\usepackage{customenvs-tikzpictos}
\usepackage{tablericons}
\usepackage{cabin}
\usepackage[french,english]{babel}
\setlength\parindent{0pt}

%====height
\newlength\badgeAIheightoftext
\setlength\badgeAIheightoftext{0.25cm}

%====AIgen
\newlength\tkzbadgeaiheight
\newlength\tkzbadgeaidepth

\defKV[tkzbadgeai]{%
	style=\def\tkzbadgeaistyle{#1},%
	font percent=\tikzset{badgeai font percent/.style={font=#1}},%
	font label=\tikzset{badgeai font/.style={font=#1}},%
	strut=\def\tkzbadgeaistrut{#1},%
	dstrut=\def\tkzbadgeaidstrut{#1}
}
\setKVdefault[tkzbadgeai]{%
	style=rect,%
	font percent=\bfseries\sffamily,%
	font label=\bfseries\sffamily,%
	strut={M},%
	dstrut={(qM)}
}

\newcommand\inttkzbadgeai[1]{%
%	\draw[thin,lightgray,xstep=0.25,ystep=0.25] (0,0) grid (6,2.5) ;
%	\draw[gray,xstep=0.5,ystep=0.5] (0,0) grid (6,2.5) ;
	\IfStrEq{\tkzbadgeaistyle}{rect}
		{%
			\draw[line width=\fpeval{\tkzbadgeaiscale*0.75}mm,rounded corners=\fpeval{\tkzbadgeaiscale*3.75}mm] (0,0) rectangle (6,2.5) ;
			\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,lightgray!75,line cap=round] (2.25,0.75)--(5.5,0.75) ;
			\xintifboolexpr{#1 == 0}%
			{%
				\draw (1,1.25) node[inner sep=0pt] {\tablericon[height=1.75cm]{brain}} ;
				\draw (5.25,0.375) node[badgeai font percent,left,inner sep=0pt] {\resizebox{!}{0.225cm}{0\% \labelofbadgeAI}} ;
				\draw (2.0625,1.75) node[badgeai font,right,inner sep=0pt,text width=2.25cm] {\resizebox{!}{\badgeAIheightoftext}{\globalphantombadge\labelofdagezero}} ;
			}%
			{}
			\xintifboolexpr{#1 == 20}%
			{%
				\draw (1,1.25) node[inner sep=0pt] {\tablericon[height=1.75cm]{file-certificate}} ;
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,cyan!50,line cap=round] (2.25,0.75)--++({0.2*3.25},0) ;
				\draw (5.25,0.375) node[badgeai font percent,left,inner sep=0pt] {\resizebox{!}{0.225cm}{20\% \labelofbadgeAI}} ;
				\draw (2.0625,1.75) node[badgeai font,right,inner sep=0pt,text width=2.25cm] {\resizebox{!}{\badgeAIheightoftext}{\globalphantombadge\labelofdagetwentyA}} ;
				\draw (2.0625,1.25) node[badgeai font,right,inner sep=0pt,text width=2.25cm] {\resizebox{!}{\badgeAIheightoftext}{\globalphantombadge\labelofdagetwentyB}} ;
				
			}%
			{}%
			\xintifboolexpr{#1 == 40}%
			{%
				\draw (1,1.25) node[inner sep=0pt] {\tablericon[height=1.75cm]{file-digit}} ;
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,orange!50,line cap=round] (2.25,0.75)--++({0.4*3.25},0) ;
				\draw (5.25,0.375) node[badgeai font percent,left,inner sep=0pt] {\resizebox{!}{0.225cm}{40\% \labelofbadgeAI}} ;
				\draw (2.0625,1.75) node[badgeai font,right,inner sep=0pt,text width=2.25cm] {\resizebox{!}{\badgeAIheightoftext}{\globalphantombadge\labelofdagefourtyA}} ;
				\draw (2.0625,1.25) node[badgeai font,right,inner sep=0pt,text width=2.25cm] {\resizebox{!}{\badgeAIheightoftext}{\globalphantombadge\labelofdagefourtyB}} ;
			}%
			{}%
			\xintifboolexpr{#1 == 60}%
			{%
				\draw (1,1.25) node[inner sep=0pt] {\tablericon[height=1.75cm]{file-text-ai}} ;
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,orange!75,line cap=round] (2.25,0.75)--++({0.6*3.25},0) ;
				\draw (5.25,0.375) node[badgeai font percent,left,inner sep=0pt] {\resizebox{!}{0.225cm}{60\% \labelofbadgeAI}} ;
				\draw (2.0625,1.75) node[badgeai font,right,inner sep=0pt,text width=2.25cm] {\resizebox{!}{\badgeAIheightoftext}{\globalphantombadge\labelofdagesixtyA}} ;
				\draw (2.0625,1.25) node[badgeai font,right,inner sep=0pt,text width=2.25cm] {\resizebox{!}{\badgeAIheightoftext}{\globalphantombadge\labelofdagesixtyB}} ;
			}%
			{}%
			\xintifboolexpr{#1 == 80}%
			{%
				\draw (1,1.25) node[inner sep=0pt] {\tablericon[height=1.75cm]{file-spark}} ;
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,orange!75!red,line cap=round] (2.25,0.75)--++({0.8*3.25},0) ;
				\draw (5.25,0.375) node[badgeai font percent,left,inner sep=0pt] {\resizebox{!}{0.225cm}{80\% \labelofbadgeAI}} ;
				\draw (2.0625,1.75) node[badgeai font,right,inner sep=0pt,text width=2.25cm] {\resizebox{!}{\badgeAIheightoftext}{\globalphantombadge\labelofdageeightyA}} ;
				\draw (2.0625,1.25) node[badgeai font,right,inner sep=0pt,text width=2.25cm] {\resizebox{!}{\badgeAIheightoftext}{\globalphantombadge\labelofdageeightyB}} ;
			}%
			{}%
			\xintifboolexpr{#1 == 100}%
			{%
				\draw (1,1.25) node[inner sep=0pt] {\tablericon[height=1.75cm]{robot}} ;
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,red,line cap=round] (2.25,0.75)--++({1*3.25},0) ;
				\draw (5.25,0.375) node[badgeai font percent,left,inner sep=0pt] {\resizebox{!}{0.225cm}{100\% \labelofbadgeAI}} ;
				\draw (2.0625,1.75) node[badgeai font,right,inner sep=0pt,text width=2.25cm] {\resizebox{!}{\badgeAIheightoftext}{\globalphantombadge\labelofdagehundredA}} ;
				\draw (2.0625,1.25) node[badgeai font,right,inner sep=0pt,text width=2.25cm] {\resizebox{!}{\badgeAIheightoftext}{\globalphantombadge\labelofdagehundredB}} ;
			}%
			{}%
		}%
		{}%
	\IfStrEq{\tkzbadgeaistyle}{carre}
		{%
			\draw[line width=\fpeval{\tkzbadgeaiscale*0.75}mm,rounded corners=\fpeval{\tkzbadgeaiscale*3.75}mm] (0,0) rectangle (2.5,2.5) ;
			\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,lightgray!75,line cap=round] (0.3,0.55)--(2.2,0.55) ;
			\xintifboolexpr{#1 == 0}%
			{%
				\draw (1.25,1.575) node[inner sep=0pt] {\tablericon[height=1.75cm]{brain}} ;
				\draw (1.25,0.225) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.225cm}{0\% \labelofbadgeAI}} ;
			}%
			{}
			\xintifboolexpr{#1 == 20}%
			{%
				\draw (1.25,1.575) node[inner sep=0pt] {\tablericon[height=1.75cm]{file-certificate}} ;
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,cyan!50,line cap=round] (0.3,0.55)--++({0.2*1.9},0) ;
				\draw (1.25,0.225) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.225cm}{20\% \labelofbadgeAI}} ;
			}%
			{}%
			\xintifboolexpr{#1 == 40}%
			{%
				\draw (1.25,1.575) node[inner sep=0pt] {\tablericon[height=1.75cm]{file-digit}} ;
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,orange!50,line cap=round] (0.3,0.55)--++({0.4*1.9},0) ;
				\draw (1.25,0.225) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.225cm}{40\% \labelofbadgeAI}} ;
			}%
			{}%
			\xintifboolexpr{#1 == 60}%
			{%
				\draw (1.25,1.575) node[inner sep=0pt] {\tablericon[height=1.75cm]{file-text-ai}} ;
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,orange!75,line cap=round] (0.3,0.55)--++({0.6*1.9},0) ;
				\draw (1.25,0.225) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.225cm}{60\% \labelofbadgeAI}} ;
			}%
			{}%
			\xintifboolexpr{#1 == 80}%
			{%
				\draw (1.25,1.575) node[inner sep=0pt] {\tablericon[height=1.75cm]{file-spark}} ;
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,orange!75!red,line cap=round] (0.3,0.55)--++({0.8*1.9},0) ;
				\draw (1.25,0.225) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.225cm}{80\% \labelofbadgeAI}} ;
			}%
			{}%
			\xintifboolexpr{#1 == 100}%
			{%
				\draw (1.25,1.575) node[inner sep=0pt] {\tablericon[height=1.75cm]{robot}} ;
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,red,line cap=round] (0.3,0.55)--++({1*1.9},0) ;
				\draw (1.25,0.225) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.225cm}{100\% \labelofbadgeAI}} ;
			}%
			{}%
		}%
		{}%
	\IfStrEq{\tkzbadgeaistyle}{ligne}
		{%
			\draw[line width=\fpeval{\tkzbadgeaiscale*0.75}mm,rounded corners=\fpeval{\tkzbadgeaiscale*3.75}mm] (0,0) rectangle (3,1) ;
			\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,lightgray!75,line cap=round] (1,0.5)--(2.5,0.5) ;
			\xintifboolexpr{#1 == 0}%
			{%
				\filldraw[green!50!black] (1.15,0.5) circle[radius=0.35cm] node[inner sep=0pt] {\tablericon[height=0.6cm]{brain}} ;
				\draw (0.5,0.667) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.2cm}{0\%}} ;
				\draw (0.5,0.333) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.2cm}{\labelofbadgeAI}} ;
			}%
			{}
			\xintifboolexpr{#1 == 20}%
			{%
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,cyan!50,line cap=round] (1,0.5)--({1.15 + 1*(1.2)/5},0.5) ;
				\filldraw[cyan!50] ({1.15 + 1*(1.2)/5},0.5) circle[radius=0.35cm] node[inner sep=0pt] {\tablericon[height=0.6cm]{file-certificate}} ;
				\draw (0.5,0.667) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.2cm}{20\%}} ;
				\draw (0.5,0.333) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.2cm}{\labelofbadgeAI}} ;
			}%
			{}%
			\xintifboolexpr{#1 == 40}%
			{%
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,orange!50,line cap=round] (1,0.5)--({1.15 + 2*(1.2)/5},0.5) ;
				\filldraw[orange!50] ({1.15 + 2*(1.2)/5},0.5) circle[radius=0.35cm] node[inner sep=0pt] {\tablericon[height=0.6cm]{file-digit}} ;
%				\draw (1.25,1.575) node[inner sep=0pt] {\tablericon[height=1.75cm]{file-digit}} ;
				\draw (0.5,0.667) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.2cm}{40\%}} ;
				\draw (0.5,0.333) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.2cm}{\labelofbadgeAI}} ;
			}%
			{}%
			\xintifboolexpr{#1 == 60}%
			{%
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,orange!75,line cap=round] (1,0.5)--({1.15 + 3*(1.2)/5},0.5) ;
				\filldraw[orange!75] ({1.15 + 3*(1.2)/5},0.5) circle[radius=0.35cm] node[inner sep=0pt] {\tablericon[height=0.6cm]{file-text-ai}} ;
%				\draw (1.25,1.575) node[inner sep=0pt] {\tablericon[height=1.75cm]{file-text-ai}} ;
				\draw (0.5,0.667) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.2cm}{60\%}} ;
				\draw (0.5,0.333) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.2cm}{\labelofbadgeAI}} ;
			}%
			{}%
			\xintifboolexpr{#1 == 80}%
			{%
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,orange!75!red,line cap=round] (1,0.5)--({1.15 + 4*(1.2)/5},0.5) ;
				\filldraw[orange!75!red] ({1.15 + 4*(1.2)/5},0.5) circle[radius=0.35cm] node[inner sep=0pt] {\tablericon[height=0.6cm]{file-spark}} ;
%				\draw (1.25,1.575) node[inner sep=0pt] {\tablericon[height=1.75cm]{file-spark}} ;
				\draw (0.5,0.667) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.2cm}{80\%}} ;
				\draw (0.5,0.333) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.2cm}{\labelofbadgeAI}} ;
			}%
			{}%
			\xintifboolexpr{#1 == 100}%
			{%
				\draw[line width=\fpeval{\tkzbadgeaiscale*3}mm,red,line cap=round] (1,0.5)--({1.15 + 5*(1.2)/5},0.5) ;
				\filldraw[red] ({1.15 + 5*(1.2)/5},0.5) circle[radius=0.35cm] node[inner sep=0pt] {\tablericon[height=0.6cm]{robot}} ;
%				\draw (1.25,1.575) node[inner sep=0pt] {\tablericon[height=1.75cm]{robot}} ;
				\draw (0.5,0.667) node[badgeai font percent,inner sep=0pt,xscale=0.667] {\resizebox{!}{0.225cm}{100\%}} ;
				\draw (0.5,0.333) node[badgeai font percent,inner sep=0pt] {\resizebox{!}{0.2cm}{\labelofbadgeAI}} ;
			}%
			{}%
		}%
		{}%
}

\NewDocumentCommand\tkzbadgeai{ O{} D<>{} m m }{%
	%1 = keys
	%2 = tikz options
	%3 = percentage
	\restoreKV[tkzbadgeai]%
	\setKV[tkzbadgeai]{#1}%
	\intpictotestautodautolen{#4}%
	{%
		\settoheight\tkzbadgeaiheight{\hbox{\tkzbadgeaistrut}}%
	}%
	{%
		\settototalheight\tkzbadgeaiheight{\hbox{\tkzbadgeaidstrut}}%
		\settodepth\tkzbadgeaidepth{\hbox{\tkzbadgeaidstrut}}%
	}%
	{%
		\setlength\tkzbadgeaiheight{#4}%
	}%
	\IfStrEq{\tkzbadgeaistyle}{ligne}%
		{%
			\xdef\tkzbadgeaiscale{\fpeval{\tkzbadgeaiheight/10.75mm}}%
		}%
		{%
			\xdef\tkzbadgeaiscale{\fpeval{\tkzbadgeaiheight/25.75mm}}%
		}%
	%picture
	\intpictotestdautolen{#4}%
	{%
		%\setlength\tkzbadgeaidepth{-\tkzbadgeaidepth}%
		\raisebox{-\tkzbadgeaidepth}{%
			\begin{tikzpicture}[scale=\tkzbadgeaiscale,transform shape]
				\inttkzbadgeai{#3}
			\end{tikzpicture}%
		}%
	}%#3
	{%
		\begin{tikzpicture}[scale=\tkzbadgeaiscale,transform shape]
			\inttkzbadgeai{#3}
		\end{tikzpicture}%
	}%
}

\begin{document}

%====fr
\def\labelofbadgeAI{d'IA}
\def\labelofdagezero{Produit sans IA.}
\def\labelofdagetwentyA{Produit sans IA,}
\def\labelofdagetwentyB{mais vérifié par IA.}
\def\labelofdagefourtyA{Plan ou brouillon par IA,}
\def\labelofdagefourtyB{contenu produit sans IA.}
\def\labelofdagesixtyA{Contenu produit par IA,}
\def\labelofdagesixtyB{retouches manuelles.}
\def\labelofdageeightyA{Contenu produit par IA,}
\def\labelofdageeightyB{et relu sans IA.}
\def\labelofdagehundredA{Contenu produit}
\def\labelofdagehundredB{entièrement par IA.}

\def\globalphantombadge{\vphantom{\labelofdagezero\labelofdagetwentyA\labelofdagetwentyB\labelofdagefourtyA\labelofdagefourtyB\labelofdagesixtyA\labelofdagesixtyB\labelofdageeightyA\labelofdageeightyB\labelofdagehundredA\labelofdagehundredB}}

\tkzbadgeai{0}{25.75mm}

\tkzbadgeai{20}{25.75mm}

\tkzbadgeai{40}{25.75mm}

\tkzbadgeai{60}{25.75mm}

\tkzbadgeai{80}{25.75mm}

\tkzbadgeai{100}{25.75mm}

%carre
\tkzbadgeai[style=carre]{0}{25.75mm}

\tkzbadgeai[style=carre]{20}{25.75mm}

\tkzbadgeai[style=carre]{40}{25.75mm}

\tkzbadgeai[style=carre]{60}{25.75mm}

\tkzbadgeai[style=carre]{80}{25.75mm}

\tkzbadgeai[style=carre]{100}{25.75mm}

%ligne
\tkzbadgeai[style=ligne]{0}{10.75mm}

\tkzbadgeai[style=ligne]{20}{10.75mm}

\tkzbadgeai[style=ligne]{40}{10.75mm}

\tkzbadgeai[style=ligne]{60}{10.75mm}

\tkzbadgeai[style=ligne]{80}{10.75mm}

\tkzbadgeai[style=ligne]{100}{10.75mm}

%====en
\def\labelofbadgeAI{AI}
\def\labelofdagezero{No AI used.}
\def\labelofdagetwentyA{No AI used,}
\def\labelofdagetwentyB{but AI-verified.}
\def\labelofdagefourtyA{AI outline/draft,}
\def\labelofdagefourtyB{content w/o AI.}
\def\labelofdagesixtyA{AI-generated,}
\def\labelofdagesixtyB{manually edited.}
\def\labelofdageeightyA{AI-generated content,}
\def\labelofdageeightyB{reviewed w/o AI.}
\def\labelofdagehundredA{Fully AI-generated}
\def\labelofdagehundredB{\vphantom{L}content.}

\def\globalphantombadge{\vphantom{\labelofdagezero\labelofdagetwentyA\labelofdagetwentyB\labelofdagefourtyA\labelofdagefourtyB\labelofdagesixtyA\labelofdagesixtyB\labelofdageeightyA\labelofdageeightyB\labelofdagehundredA\labelofdagehundredB}}

\tkzbadgeai{0}{25.75mm}

\tkzbadgeai{20}{25.75mm}

\tkzbadgeai{40}{25.75mm}

\tkzbadgeai{60}{25.75mm}

\tkzbadgeai{80}{25.75mm}

\tkzbadgeai{100}{25.75mm}

%carre
\tkzbadgeai[style=carre]{0}{25.75mm}

\tkzbadgeai[style=carre]{20}{25.75mm}

\tkzbadgeai[style=carre]{40}{25.75mm}

\tkzbadgeai[style=carre]{60}{25.75mm}

\tkzbadgeai[style=carre]{80}{25.75mm}

\tkzbadgeai[style=carre]{100}{25.75mm}

%ligne
\tkzbadgeai[style=ligne]{0}{10.75mm}

\tkzbadgeai[style=ligne]{20}{10.75mm}

\tkzbadgeai[style=ligne]{40}{10.75mm}

\tkzbadgeai[style=ligne]{60}{10.75mm}

\tkzbadgeai[style=ligne]{80}{10.75mm}

\tkzbadgeai[style=ligne]{100}{10.75mm}

\end{document}