Files
lynkeduppro-crm/src/components/dashboard/rules.tsx
T
Goutam d7eb82f182 Redesign Support as bento hub, restore full sidebar, Western names
- Support Center overview rebuilt as a bento grid: large live-chat hero
  tile, support team tile, mini channel tiles and a recent-tickets strip.
- Restore full workspace sidebar (Workspace/Team/Profile groups) with a
  premium golden active state; unbuilt modules show a Coming Soon view.
- Use Western names across the UI (James Carter; Emma Wilson, Liam Foster,
  Sophie Turner, Noah Mitchell) incl. tickets, threads, portal demo user.
- Remove the Allottee card from Profile; add a clean Account & identity
  card and live-editable contacts.
- Relabel "Plot" -> "House number" everywhere; drop the allotment chip in
  favour of the property category.
- Premium visual pass: brand gradients, depth, glow accents, pill tabs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 22:19:07 +05:30

45 lines
1.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use client";
// ============================================================
// Rules Checklist — the 113 business rules in one place.
// (house 181 · OTP to registered mobile · KYC two-docs ·
// password policy · ticket lifecycle · …)
// ============================================================
import { useMemo, useState } from "react";
import { rules } from "./account-data";
import { Icon, PageHead, Pill, Segmented } from "./ui";
export function Rules() {
const tags = useMemo(() => ["All", ...Array.from(new Set(rules.map((r) => r.tag)))], []);
const [tag, setTag] = useState("All");
const list = tag === "All" ? rules : rules.filter((r) => r.tag === tag);
return (
<div className="view">
<PageHead
eyebrow="Reference"
title="Rules Checklist"
subtitle="The 13 business rules that govern Profile & Support — one source of truth."
icon="check-circle"
actions={<Pill tone="blue">{rules.length} rules</Pill>}
/>
<Segmented value={tag} onChange={setTag} options={tags.map((t) => ({ value: t, label: t }))} />
<div className="rules-grid view-body">
{list.map((r) => (
<div className="card rule-card" key={r.n} style={{ ["--accent" as string]: r.tagColor }}>
<div className="rule-top">
<span className="rule-n">{String(r.n).padStart(2, "0")}</span>
<Pill tone="custom" style={{ color: r.tagColor, background: `color-mix(in srgb, ${r.tagColor} 16%, transparent)` }}>{r.tag}</Pill>
</div>
<div className="rule-title"><Icon name="check-circle" size={16} /> {r.title}</div>
<p className="rule-detail">{r.detail}</p>
</div>
))}
</div>
</div>
);
}