diff --git a/app/cuadros.js b/app/cuadros.js
index 0a971b1..c07aaeb 100644
--- a/app/cuadros.js
+++ b/app/cuadros.js
@@ -1,12 +1,57 @@
-const Cuadrado =({valor, alHcerClick})=> {
- return(
-
- )
-}
+import { useState } from "react";
-export default Cuadrado
\ No newline at end of file
+const Cuadrado = ({ valor, alHcerClick }) => {
+ const [showMenu, setShowMenu] = useState(false);
+
+ const handleMouseEnter = () => {
+ setShowMenu(true);
+ };
+
+ const handleMouseLeave = () => {
+
+ setTimeout(() => {
+ if (!document.querySelector('.menu')?.contains(document.activeElement)) {
+ setShowMenu(false);
+ }
+ }, 100);
+ };
+
+ const handleSelect = (valor) => {
+ alHcerClick(valor);
+ setShowMenu(false);
+ };
+
+ return (
+
+
+ {showMenu && (
+
+
+
+
+ )}
+
+ );
+};
+
+export default Cuadrado;
diff --git a/app/globals.css b/app/globals.css
new file mode 100644
index 0000000..13d40b8
--- /dev/null
+++ b/app/globals.css
@@ -0,0 +1,27 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+:root {
+ --background: #ffffff;
+ --foreground: #171717;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --background: #0a0a0a;
+ --foreground: #ededed;
+ }
+}
+
+body {
+ color: var(--foreground);
+ background: var(--background);
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+@layer utilities {
+ .text-balance {
+ text-wrap: balance;
+ }
+}
diff --git a/app/layout.js b/app/layout.js
index e7dbb01..645b929 100644
--- a/app/layout.js
+++ b/app/layout.js
@@ -1,3 +1,4 @@
+import './globals.css'
export const metadata={
title: 'Totito',
description:'generado con next.js'
diff --git a/app/index.jsx b/app/page.jsx
similarity index 100%
rename from app/index.jsx
rename to app/page.jsx
diff --git a/app/tablero.js b/app/tablero.js
index fa99432..2c0ed0e 100644
--- a/app/tablero.js
+++ b/app/tablero.js
@@ -1,35 +1,39 @@
-import{ usiState } from "react"
-import Cuadrado from "./cuadros"
-const Tablero =()=>{
- const [cuadros, setCuadros]= usiState(Array(9).fill(''))
- const [turno, setTuerno]=usiState('X')
-
- const pintaFigura=(indexItem)=>{
-
- const misCuadros= cuadros.slice()
- setCuadros(misCuadros)
- if(turno==='X'){ // Verifica los turnos
- setTuerno('O')
- }
- else{
- setTuerno('X')
- }
- }
- return(
- ,// Titulo
-
- { //cuerpo e interactividad
- cuadros.map((items, indexItem)=>{
- return pintaFigura(indexItem)}
- />
- })
- }
-
- )
-}
+'use client';
-export default Tablero
+import { useState } from "react";
+import Cuadrado from "./cuadros";
+
+const Tablero = () => {
+ const [cuadros, setCuadros] = useState(Array(9).fill(''));
+ const [turno, setTurno] = useState('X');
+
+ const pintaFigura = (indexItem, valor) => {
+ if (cuadros[indexItem] === '') { // Solo actualiza si el cuadro está vacío
+ const misCuadros = cuadros.slice();
+ misCuadros[indexItem] = valor; // Coloca el valor ('X' o 'O') en el cuadro
+ setCuadros(misCuadros);
+
+ // Alterna el turno
+ setTurno(turno === 'X' ? 'O' : 'X');
+ }
+ };
+
+ return (
+ <>
+ Totito
{/* Titulo */}
+
+ {
+ cuadros.map((items, indexItem) => (
+ pintaFigura(indexItem, valor)}
+ />
+ ))}
+
+ >
+ );
+};
+
+export default Tablero;