-
-
+
+
+
+
-
-
-
-
- | Título |
- Plataforma |
- Fecha |
- Acciones |
-
-
-
- {filtered.map(t => (
-
- | {t.title} |
- {t.platform} |
- {t.scheduled || '-'} |
-
-
-
-
- |
+ {!filtered || filtered.length === 0 ? (
+
+
+ {activeTab === 'upcoming'
+ ? 'No hay transmisiones programadas todavía.'
+ : 'No hay transmisiones anteriores.'
+ }
+
+
+ ) : (
+
+
+
+
+ | Título |
+ Creado |
+ Programado |
+ |
- ))}
-
-
-
+
+
+ {filtered.map(t => (
+
+
+
+
+
+
+ {platformIcons[t.platform] || platformIcons['YouTube']}
+
+
+ {t.title}
+ {t.scheduled || '—'}
+
+
+
+
+
+
+
+
+
+ |
+
+ ))}
+
+
+
+ )}
)
}
diff --git a/packages/broadcast-panel/src/styles.css b/packages/broadcast-panel/src/styles.css
index 52e0345..46be1c9 100644
--- a/packages/broadcast-panel/src/styles.css
+++ b/packages/broadcast-panel/src/styles.css
@@ -2,4 +2,100 @@
@tailwind components;
@tailwind utilities;
-body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; }
+/* Variables CSS Globales - Light & Dark Theme */
+:root {
+ --primary-blue: #4f46e5;
+ --primary-blue-hover: #4338ca;
+ --background-color: #f7f8fa;
+ --surface-color: #ffffff;
+ --text-primary: #1f2937;
+ --text-secondary: #6b7280;
+ --border-light: #e5e7eb;
+ --active-bg-light: #eef2ff;
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
+ --shadow-md: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
+ --shadow-lg: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
+ --skeleton-base: #e5e7eb;
+ --skeleton-highlight: #f3f4f6;
+}
+
+[data-theme="dark"] {
+ --primary-blue: #6366f1;
+ --primary-blue-hover: #4f46e5;
+ --background-color: #0f172a;
+ --surface-color: #1e293b;
+ --text-primary: #f1f5f9;
+ --text-secondary: #cbd5e1;
+ --border-light: #334155;
+ --active-bg-light: #312e81;
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
+ --shadow-md: 0 1px 3px 0 rgba(0, 0, 0, 0.4);
+ --shadow-lg: 0 4px 6px -1px rgba(0, 0, 0, 0.5);
+ --skeleton-base: #334155;
+ --skeleton-highlight: #475569;
+}
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ background-color: var(--background-color);
+ color: var(--text-primary);
+ transition: background-color 0.3s ease, color 0.3s ease;
+}
+
+button {
+ cursor: pointer;
+ font-family: inherit;
+}
+
+a {
+ text-decoration: none;
+ color: inherit;
+}
+
+/* Skeleton Loading Animation */
+@keyframes shimmer {
+ 0% {
+ background-position: -1000px 0;
+ }
+ 100% {
+ background-position: 1000px 0;
+ }
+}
+
+.skeleton {
+ animation: shimmer 2s infinite linear;
+ background: linear-gradient(
+ to right,
+ var(--skeleton-base) 4%,
+ var(--skeleton-highlight) 25%,
+ var(--skeleton-base) 36%
+ );
+ background-size: 1000px 100%;
+}
+
+/* Scrollbar personalizado */
+::-webkit-scrollbar {
+ width: 8px;
+ height: 8px;
+}
+
+::-webkit-scrollbar-track {
+ background: var(--background-color);
+}
+
+::-webkit-scrollbar-thumb {
+ background: var(--border-light);
+ border-radius: 4px;
+}
+
+::-webkit-scrollbar-thumb:hover {
+ background: var(--text-secondary);
+}
diff --git a/packages/broadcast-panel/src/vite-env.d.ts b/packages/broadcast-panel/src/vite-env.d.ts
new file mode 100644
index 0000000..d1c3d9e
--- /dev/null
+++ b/packages/broadcast-panel/src/vite-env.d.ts
@@ -0,0 +1,4 @@
+declare module '*.module.css' {
+ const classes: { [key: string]: string }
+ export default classes
+}