init: scripts diversos (crawlers, conversores, scrapers)

This commit is contained in:
2026-03-05 20:38:36 +00:00
commit 6ac6f4be2a
925 changed files with 850330 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
/**
* Sidebar.tsx
*
* @author Descomplicar® Crescimento Digital
* @link https://descomplicar.pt
* @copyright 2025 Descomplicar®
*/
import React from 'react';
import { DashboardIcon } from './icons/DashboardIcon';
import { SettingsIcon } from './icons/SettingsIcon';
import { AccountIcon } from './icons/AccountIcon';
import { HelpIcon } from './icons/HelpIcon';
interface SidebarProps {
activeView: string;
setActiveView: (view: string) => void;
}
const Sidebar: React.FC<SidebarProps> = ({ activeView, setActiveView }) => {
const navItems = [
{ id: 'dashboard', name: 'Dashboard', icon: <DashboardIcon className="w-5 h-5" /> },
{ id: 'contas', name: 'Contas', icon: <AccountIcon className="w-5 h-5" /> },
{ id: 'configuracoes', name: 'Configurações', icon: <SettingsIcon className="w-5 h-5" /> },
{ id: 'ajuda', name: 'Ajuda', icon: <HelpIcon className="w-5 h-5" /> },
];
return (
<aside className="w-64 bg-white dark:bg-slate-800/50 p-4 border-r border-slate-200 dark:border-slate-700 hidden md:block">
<nav className="flex flex-col gap-2">
{navItems.map(item => (
<a
key={item.id}
href="#"
onClick={(e) => {
e.preventDefault();
setActiveView(item.id);
}}
className={`flex items-center gap-3 px-4 py-2.5 rounded-lg text-sm font-medium transition-colors ${
activeView === item.id
? 'bg-sky-500 text-white'
: 'text-slate-600 dark:text-slate-300 hover:bg-slate-100 dark:hover:bg-slate-700'
}`}
>
{item.icon}
<span>{item.name}</span>
</a>
))}
</nav>
</aside>
);
};
export default Sidebar;