Files
ravixalgorithmandClaude Opus 5.5 74cc4307b9 feat(ui): redesign the app in the dashboard-craft language
Floated shell with a dark sidebar and browser-style tabs, hatch shells, bento tiles,
warm OKLCH palette with OpenStock teal, Plus Jakarta Sans + IBM Plex Mono.
Rebuilt stock page (native header, streaming), watchlist (real table, alerts pane,
news rows), auth pages (live product preview, choice chips), search palette,
alert modal and donate popup. Removes Header/Footer/NavItems/UserDropdown/SirayBanner
and the unused watchlist widgets.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 15:28:19 +05:30

30 lines
885 B
TypeScript

import React from "react";
import { cn } from "@/lib/utils";
type PanelProps = {
title?: string;
sub?: React.ReactNode;
action?: React.ReactNode;
className?: string;
bodyClassName?: string;
children: React.ReactNode;
};
// Concentric hatch shell: a recessed hatched frame holding one raised card.
const Panel = ({ title, sub, action, className, bodyClassName, children }: PanelProps) => (
<section className={cn('hatch', className)}>
{title && (
<div className="section-head">
<div className="min-w-0">
<h2 className="section-title">{title}</h2>
{sub && <p className="section-sub">{sub}</p>}
</div>
{action}
</div>
)}
<div className={cn('card', bodyClassName)}>{children}</div>
</section>
);
export default Panel;