{# Signal-chip component. Replaces the open-coded label pattern (10+ duplicates across the dashboard cost-drivers, opportunities table, failures table, opportunity detail). Usage: {% from "components/_signal_chip.html" import signal_chip %} {{ signal_chip("Build", color="brand") }} {{ signal_chip("slot contention", color="amber", overflow="+2") }} {{ signal_chip("dbt", color="emerald", title="dbt-originated") }} Parameters: - label (str) chip text - color (str) palette: brand | emerald | rose | amber | teal | slate (default) - overflow (str, optional) trailing emphasised text such as "+2" used for "first issue + N more" cells - title (str, optional) ``title`` attribute on the chip #} {% macro signal_chip(label, color="slate", overflow=None, title=None) -%} {%- set _palette = { "brand": {"text": "text-brand-700 dark:text-brand-200", "dot": "bg-brand-500 dark:bg-brand-400"}, "emerald": {"text": "text-emerald-700 dark:text-emerald-300", "dot": "bg-emerald-500 dark:bg-emerald-400"}, "rose": {"text": "text-rose-700 dark:text-rose-300", "dot": "bg-rose-500 dark:bg-rose-400"}, "amber": {"text": "text-amber-700 dark:text-amber-300", "dot": "bg-amber-500 dark:bg-amber-400"}, "teal": {"text": "text-teal-700 dark:text-teal-300", "dot": "bg-teal-500 dark:bg-teal-400"}, "slate": {"text": "text-slate-600 dark:text-slate-300", "dot": "bg-slate-400 dark:bg-slate-500"}, }.get(color, {"text": "text-slate-600 dark:text-slate-300", "dot": "bg-slate-400 dark:bg-slate-500"}) -%} {{ label }} {%- if overflow %} {{ overflow }} {%- endif %} {%- endmacro %}