polish(ui): יישור 5 פריטי קטגוריה-A למוקאפי X17 המאושרים
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 4s
Lint — undefined names / undefined-names (pull_request) Successful in 10s

ליטושים שבהם הקוד פיגר אחרי מוקאפ-מאושר (אין צורך בסבב-עיצוב חדש):
- methodology/golden-ratios: כותרות-טבלה לעברית (Section/Min/Max → בלוק/מינ׳/מקס׳),
  תיקון מחלקות directional (ml-→me-) ו-token שגוי (ink-faint→ink-muted).
- halacha PanelDeliberation: seedline "הכרעתך תיקלט כתווית-הזהב…" (מוקאפ 18).
- cases-table: תווית-זמן-יחסי ליד מועד-הדיון (היום/מחר/בעוד N ימים, מוקאפ 04b).
- operations BURST: הדגשת chip ברירת-המחדל "שבת 18:00 (ברירת-מחדל)" (מוקאפ 02b).
- archive: סלקטור-שנים (נגזר מ-archived_at) לצד סלקטור-הסוג (מוקאפ 05).

נדחו (לא pure-alignment): chips סינון-מקור בפסיקה-חסרה (דורש פרם-סינון
discovery_source ב-backend); סדר/שמות-טאבים באימון+מתודולוגיה (סיכון לדרוס
שמות שנבחרו בכוונה — הסוכן/שיחה).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-16 19:16:12 +00:00
parent 9fc00d6e7f
commit 251262ab67
5 changed files with 73 additions and 18 deletions

View File

@@ -70,6 +70,17 @@ const HEARING_CLASS_STYLE: Record<HearingClass, string> = {
none: "text-ink-light",
};
/** Relative-time label beside the hearing date (mockup 04b `.hd-rel`). */
function relativeHearing(iso?: string | null): string | null {
const t = hearingMs(iso);
if (t === null) return null;
const days = Math.round((t - startOfToday()) / 86_400_000);
if (days === 0) return "היום";
if (days === 1) return "מחר";
if (days === -1) return "אתמול";
return days > 0 ? `בעוד ${days} ימים` : `לפני ${Math.abs(days)} ימים`;
}
/**
* Default ordering for the case list: the nearest upcoming hearing on top,
* past hearings sinking below it (most-recently-passed first), and cases with
@@ -143,10 +154,16 @@ const columns: ColumnDef<Case>[] = [
sortingFn: hearingDateSort,
cell: ({ row }) => {
const klass = classifyHearing(row.original.hearing_date);
const rel = relativeHearing(row.original.hearing_date);
return (
<span className={`tabular-nums text-sm ${HEARING_CLASS_STYLE[klass]}`}>
{formatDate(row.original.hearing_date ?? undefined)}
</span>
<div className="leading-tight">
<span className={`tabular-nums text-sm ${HEARING_CLASS_STYLE[klass]}`}>
{formatDate(row.original.hearing_date ?? undefined)}
</span>
{rel ? (
<span className="block text-[0.7rem] text-ink-muted">{rel}</span>
) : null}
</div>
);
},
},