Files
fn_registry/frontend/functions/ui/theme_provider.md
T
egutierrez dc78d8fea3 feat: funciones frontend React/TS — componentes UI, hooks Wails, charts y tipos
Componentes React reutilizables: card, dialog, tabs, select, alert, badge, button, input, label,
skeleton, tooltip, progress_bar, page_header, form_field, settings_page, crud_page, analytics_page,
dashboard_layout. Charts: area, bar, line, sparkline, kpi_card, chart_container.
Hooks Wails: use_wails_query, use_wails_mutation, use_wails_stream, use_wails_event, use_animated_canvas.
Funciones core: cn, format_compact, chart_colors, get_series_color, wails_cache, theme_config_to_colors.
Tipos: chart_series, wails_ipc, theme_config, component_variants.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 20:55:34 +02:00

1.8 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, props, emits, has_state, framework, variant, source_repo, source_license, source_file
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path props emits has_state framework variant source_repo source_license source_file
theme_provider component typescript ui 1.0.0 impure ThemeProvider(props: { children: ReactNode; themes: Record<string, Theme>; defaultTheme?: string }): JSX.Element Provider de tema React con context, persistencia en localStorage, detección de preferencia del sistema y hook useTheme.
theme
provider
context
hook
component
ui
apply_theme_typescript_ui
ThemeConfig_typescript_ui
false
react
false
frontend/functions/ui/theme_provider.tsx
name type required description
themes Record<string, Theme> true Mapa de temas disponibles
name type required description
defaultTheme string false Nombre del tema por defecto
name type required description
children ReactNode true Contenido de la app
true react
default
https://gitea-dgg044oo04woo4ggcsws4gk0.organic-machine.com/Bl4cksmith/Frontend_Library MIT frontend/src/hooks/use-theme.tsx

Ejemplo

import { ThemeProvider, useTheme } from './theme_provider'

<ThemeProvider themes={allThemes} defaultTheme="dark">
  <App />
</ThemeProvider>

// Dentro de un componente:
function ThemeSwitcher() {
  const { themeName, setTheme, themes } = useTheme()
  return (
    <select value={themeName} onChange={(e) => setTheme(e.target.value)}>
      {Object.values(themes).map(t => <option key={t.name} value={t.name}>{t.label}</option>)}
    </select>
  )
}

Notas

Detecta prefers-color-scheme automáticamente. Persiste elección en localStorage. Exporta ThemeProvider (componente) y useTheme (hook).