admin: phosphor icons replace hand-drawn svgs and text-character glyphs
Release / guard (push) Successful in 39s
Gates / frontend (push) Failing after 2m25s
Gates / package (push) Skipped
Gates / container (push) Skipped
Gates / frontend (push) Failing after 1m59s
Gates / package (push) Skipped
Gates / container (push) Skipped
Gates / test-aarch64 (push) Successful in 8m18s
CI / gates (push) Failing after 11m34s
Gates / test (push) Successful in 2m18s
Gates / test-aarch64 (push) Successful in 7m23s
Release / gates (push) Failing after 18m51s
Release / publish (push) Skipped
Gates / test (push) Successful in 2m36s

health strip marks, menu ticks, chip crosses, the search magnifier, the checkbox check and the back arrows all come from @phosphor-icons/react now, pinned exactly and entered in the license ledger. changelog and version bump for 0.0.15, including the bundle budget raise to 900000 bytes.
This commit is contained in:
2026-08-31 18:04:25 +02:00
parent b774b05456
commit 2525b01893
19 changed files with 123 additions and 53 deletions
+12 -2
View File
@@ -15,6 +15,8 @@
* a claim about the current state, until a poll succeeds again.
*/
import type { ReactNode } from "react";
import { Circle, Pause, Warning, X } from "@phosphor-icons/react";
import { useQuery } from "@tanstack/react-query";
import { Link } from "@tanstack/react-router";
import * as stylex from "@stylexjs/stylex";
@@ -95,6 +97,9 @@ const styles = stylex.create({
danger: {
color: colors.dangerText,
},
icon: {
display: "inline-flex",
},
message: {
marginTop: "0.5rem",
fontSize: "0.875rem",
@@ -106,7 +111,12 @@ const styles = stylex.create({
const TONES = { ok: styles.ok, notice: styles.notice, warn: styles.warn, danger: styles.danger } as const;
/** Text and icon carry the state; the colour only agrees with them. */
const ICONS: Record<FactTone, string> = { ok: "●", notice: "‖", warn: "!", danger: "✕" };
const ICONS: Record<FactTone, ReactNode> = {
ok: <Circle size={12} weight="fill" />,
notice: <Pause size={12} />,
warn: <Warning size={12} />,
danger: <X size={12} />,
};
function FactLinkAnchor({ link }: { link: FactLink }) {
if (link.kind === "filter") {
@@ -151,7 +161,7 @@ function FactLinkAnchor({ link }: { link: FactLink }) {
function Fact({ fact }: { fact: HealthFact }) {
return (
<li {...stylex.props(styles.fact, fact.tone === "ok" ? styles.quiet : styles.highlighted)}>
<span aria-hidden="true" {...stylex.props(TONES[fact.tone])}>
<span aria-hidden="true" {...stylex.props(styles.icon, TONES[fact.tone])}>
{ICONS[fact.tone]}
</span>
<span {...stylex.props(styles.label)}>{fact.label}</span>