* Add country dropdown and flags
* Fix build for country flags
* Improve country select filtering and scoreboard teams
* Fix country select display value
* Fix country select input display
* Add player filtering to scoreboard selects
* Hide selected player while typing
* Avoid duplicated text in player selects
* Show selected player only when not typing
* Add bracket panel for round details
* Agregar BracketPanel para selección de ronda y reubicar detalles en el dashboard
### Motivation
- Separar y enriquecer el control de "Detalles de la ronda" en su propio panel para permitir selección de Stage, Bracket side o texto Custom.
- Mover la UI de ronda fuera de `ScoreboardPanel` para mantenerlo enfocado en jugadores y puntuaciones y colocar el nuevo `BracketPanel` a la derecha en el dashboard.
- No se empleó ninguna skill de `/opt/codex/skills`; los cambios se hicieron directamente sobre los componentes existentes.
### Description
- Se añadió `src/dashboard/example/components/BracketPanel.vue` con opciones de `Stage` (pools, top 128, ..., Grand Final Reset), `Bracket side` (None/Winners/Loosers) y modo `Custom` activable mediante `QBtnToggle`, y lógica para parsear/actualizar `scoreboard.round` en el store.
- Se eliminó el bloque de "Detalles de la ronda" de `src/dashboard/example/components/ScoreboardPanel.vue` para evitar duplicidad y mantener responsabilidad única.
- Se actualizó `src/dashboard/example/views/Dashboard.vue` para mostrar `ScoreboardPanel` y `BracketPanel` lado a lado dentro de tarjetas y ajustar estilos de layout.
### Testing
- Se levantó el servidor de desarrollo con `npx vite --host 0.0.0.0 --port 5173` y `vite` reportó inputs escritos y el servidor listo; `vue-tsc` devolvió `Found 0 errors`, por lo que el proyecto se inspeccionó sin errores de tipo.
- Se tomó una captura automática del dashboard mediante Playwright y el script guardó `artifacts/dashboard-bracket-panel.png` exitosamente.
- Los comandos de commit se ejecutaron y los cambios fueron registrados en el repositorio sin errores.
* Agregar BracketPanel para selección de ronda y reubicar detalles en el dashboard
### Motivation
- Separar y enriquecer el control de "Detalles de la ronda" en su propio panel para permitir selección de Stage, Bracket side o texto Custom.
- Mover la UI de ronda fuera de `ScoreboardPanel` para mantenerlo enfocado en jugadores y puntuaciones y colocar el nuevo `BracketPanel` a la derecha en el dashboard.
- No se empleó ninguna skill de `/opt/codex/skills`; los cambios se hicieron directamente sobre los componentes existentes.
### Description
- Se añadió `src/dashboard/example/components/BracketPanel.vue` con opciones de `Stage` (pools, top 128, ..., Grand Final Reset), `Bracket side` (None/Winners/Loosers) y modo `Custom` activable mediante `QBtnToggle`, y lógica para parsear/actualizar `scoreboard.round` en el store.
- Se eliminó el bloque de "Detalles de la ronda" de `src/dashboard/example/components/ScoreboardPanel.vue` para evitar duplicidad y mantener responsabilidad única.
- Se actualizó `src/dashboard/example/views/Dashboard.vue` para mostrar `ScoreboardPanel` y `BracketPanel` lado a lado dentro de tarjetas y ajustar estilos de layout.
### Testing
- Se levantó el servidor de desarrollo con `npx vite --host 0.0.0.0 --port 5173` y `vite` reportó inputs escritos y el servidor listo; `vue-tsc` devolvió `Found 0 errors`, por lo que el proyecto se inspeccionó sin errores de tipo.
- Se tomó una captura automática del dashboard mediante Playwright y el script guardó `artifacts/dashboard-bracket-panel.png` exitosamente.
- Los comandos de commit se ejecutaron y los cambios fueron registrados en el repositorio sin errores.
* Agregar BracketPanel para selección de ronda y reubicar detalles en el dashboard
### Motivation
- Separar y enriquecer el control de "Detalles de la ronda" en su propio panel para permitir selección de Stage, Bracket side o texto Custom.
- Mover la UI de ronda fuera de `ScoreboardPanel` para mantenerlo enfocado en jugadores y puntuaciones y colocar el nuevo `BracketPanel` a la derecha en el dashboard.
- No se empleó ninguna skill de `/opt/codex/skills`; los cambios se hicieron directamente sobre los componentes existentes.
### Description
- Se añadió `src/dashboard/example/components/BracketPanel.vue` con opciones de `Stage` (pools, top 128, ..., Grand Final Reset), `Bracket side` (None/Winners/Loosers) y modo `Custom` activable mediante `QBtnToggle`, y lógica para parsear/actualizar `scoreboard.round` en el store.
- Se eliminó el bloque de "Detalles de la ronda" de `src/dashboard/example/components/ScoreboardPanel.vue` para evitar duplicidad y mantener responsabilidad única.
- Se actualizó `src/dashboard/example/views/Dashboard.vue` para mostrar `ScoreboardPanel` y `BracketPanel` lado a lado dentro de tarjetas y ajustar estilos de layout.
### Testing
- Se levantó el servidor de desarrollo con `npx vite --host 0.0.0.0 --port 5173` y `vite` reportó inputs escritos y el servidor listo; `vue-tsc` devolvió `Found 0 errors`, por lo que el proyecto se inspeccionó sin errores de tipo.
- Se tomó una captura automática del dashboard mediante Playwright y el script guardó `artifacts/dashboard-bracket-panel.png` exitosamente.
- Los comandos de commit se ejecutaron y los cambios fueron registrados en el repositorio sin errores.
* Agregar BracketPanel para selección de ronda y reubicar detalles en el dashboard
### Motivation
- Separar y enriquecer el control de "Detalles de la ronda" en su propio panel para permitir selección de Stage, Bracket side o texto Custom.
- Mover la UI de ronda fuera de `ScoreboardPanel` para mantenerlo enfocado en jugadores y puntuaciones y colocar el nuevo `BracketPanel` a la derecha en el dashboard.
- No se empleó ninguna skill de `/opt/codex/skills`; los cambios se hicieron directamente sobre los componentes existentes.
### Description
- Se añadió `src/dashboard/example/components/BracketPanel.vue` con opciones de `Stage` (pools, top 128, ..., Grand Final Reset), `Bracket side` (None/Winners/Loosers) y modo `Custom` activable mediante `QBtnToggle`, y lógica para parsear/actualizar `scoreboard.round` en el store.
- Se eliminó el bloque de "Detalles de la ronda" de `src/dashboard/example/components/ScoreboardPanel.vue` para evitar duplicidad y mantener responsabilidad única.
- Se actualizó `src/dashboard/example/views/Dashboard.vue` para mostrar `ScoreboardPanel` y `BracketPanel` lado a lado dentro de tarjetas y ajustar estilos de layout.
### Testing
- Se levantó el servidor de desarrollo con `npx vite --host 0.0.0.0 --port 5173` y `vite` reportó inputs escritos y el servidor listo; `vue-tsc` devolvió `Found 0 errors`, por lo que el proyecto se inspeccionó sin errores de tipo.
- Se tomó una captura automática del dashboard mediante Playwright y el script guardó `artifacts/dashboard-bracket-panel.png` exitosamente.
- Los comandos de commit se ejecutaron y los cambios fueron registrados en el repositorio sin errores.
* Agregar BracketPanel para selección de ronda y reubicar detalles en el dashboard
### Motivation
- Separar y enriquecer el control de "Detalles de la ronda" en su propio panel para permitir selección de Stage, Bracket side o texto Custom.
- Mover la UI de ronda fuera de `ScoreboardPanel` para mantenerlo enfocado en jugadores y puntuaciones y colocar el nuevo `BracketPanel` a la derecha en el dashboard.
- No se empleó ninguna skill de `/opt/codex/skills`; los cambios se hicieron directamente sobre los componentes existentes.
### Description
- Se añadió `src/dashboard/example/components/BracketPanel.vue` con opciones de `Stage` (pools, top 128, ..., Grand Final Reset), `Bracket side` (None/Winners/Loosers) y modo `Custom` activable mediante `QBtnToggle`, y lógica para parsear/actualizar `scoreboard.round` en el store.
- Se eliminó el bloque de "Detalles de la ronda" de `src/dashboard/example/components/ScoreboardPanel.vue` para evitar duplicidad y mantener responsabilidad única.
- Se actualizó `src/dashboard/example/views/Dashboard.vue` para mostrar `ScoreboardPanel` y `BracketPanel` lado a lado dentro de tarjetas y ajustar estilos de layout.
### Testing
- Se levantó el servidor de desarrollo con `npx vite --host 0.0.0.0 --port 5173` y `vite` reportó inputs escritos y el servidor listo; `vue-tsc` devolvió `Found 0 errors`, por lo que el proyecto se inspeccionó sin errores de tipo.
- Se tomó una captura automática del dashboard mediante Playwright y el script guardó `artifacts/dashboard-bracket-panel.png` exitosamente.
- Los comandos de commit se ejecutaron y los cambios fueron registrados en el repositorio sin errores.
### Motivation
- Adjust the sidebar branding and selected-menu styling to match the requested visual change: insert a space between "by" and "Pandipipas" and use the accent color `#2596be` for the Pandipipas link and the sidebar selected/menu text.
### Description
- Updated `src/dashboard/example/main.vue` to insert a space between the "by" label and the Pandipipas link and set `.by-link` color to `#2596be`.
- Added `class="sidebar-drawer"` to the `QDrawer` and `active-class="sidebar-item-active"` to `QItem`, and included scoped CSS rules to color sidebar text, icons and the active menu item using `#2596be`.
### Testing
- Ran `npm install` and then `npm run watch` and observed `vue-tsc` report no type errors and Vite successfully wrote the dashboard input HTML (serve started), indicating build/type-check passed.
- Attempted an automated UI screenshot with Playwright, but Chromium crashed in this environment and the screenshot step failed.
------
[Codex Task](https://chatgpt.com/codex/tasks/task_e_6987852b9310832aa6db62a087febdf4)
### Motivation
- Añadir branding al sidebar para mostrar el logo, el título del programa y la atribución enlazada a GitHub sin alterar la apariencia ni el comportamiento de los botones del menú.
- Mantener la arquitectura actual del dashboard y usar el asset local `image.png` ya presente en `src/dashboard/example`.
### Description
- Se modificó `src/dashboard/example/main.vue` para reemplazar el `QToolbar` del sidebar por un bloque `div.sidebar-header` que contiene la imagen del logo, el título y la atribución enlazada a `https://github.com/Pandipipas`.
- Se añadió la constante `logoUrl` usando `new URL('./image.png', import.meta.url).href` para cargar el logo desde el bundle.
- Se insertó un `QSeparator` entre el nuevo encabezado y la lista de menú existente para mantener separación visual sin cambiar los botones.
- Se añadieron estilos `scoped` para `sidebar-header`, `sidebar-logo` y las clases de la atribución para mantener apariencia y disposición consistentes.
### Testing
- Arrancado el servidor de desarrollo con `npx vite --host 0.0.0.0 --port 4173`, el servidor sirvió la entrada pero `vue-tsc` reportó errores por no resolver `vue-router` (dependencia/tipos faltantes).
- Se ejecutó un script de Playwright para capturar una captura de pantalla del dashboard y la ejecución finalizó correctamente guardando el artefacto en `artifacts/sidebar.png`.
------
[Codex Task](https://chatgpt.com/codex/tasks/task_e_69877287b5d0832a8302b07edf1a8219)