diff --git a/src/components/features/aboutMe/Experiencia.tsx b/src/components/ui/About/Tabs/Experience.tsx
similarity index 67%
rename from src/components/features/aboutMe/Experiencia.tsx
rename to src/components/ui/About/Tabs/Experience.tsx
index 7ea9a7e..6059f4a 100644
--- a/src/components/features/aboutMe/Experiencia.tsx
+++ b/src/components/ui/About/Tabs/Experience.tsx
@@ -1,8 +1,8 @@
-import { ItemDataExperiencia } from "@/components/features/aboutMe/Items/ItemDataExperiencia";
+import { ItemExperience } from "@/components/ui/About/Items/ItemExperience.tsx";
import { getI18N } from "@/i18n";
import type { PropsLang } from "@/interfaces/currentLang.interface";
-export const Experiencia = ({ currentLocale }: PropsLang) => {
+export const Experience = ({ currentLocale }: PropsLang) => {
const i18n = getI18N({ currentLocale });
return (
@@ -13,7 +13,7 @@ export const Experiencia = ({ currentLocale }: PropsLang) => {
diff --git a/src/components/features/aboutMe/Habilidades.tsx b/src/components/ui/About/Tabs/Skills.tsx
similarity index 68%
rename from src/components/features/aboutMe/Habilidades.tsx
rename to src/components/ui/About/Tabs/Skills.tsx
index 035a86b..7a5083b 100644
--- a/src/components/features/aboutMe/Habilidades.tsx
+++ b/src/components/ui/About/Tabs/Skills.tsx
@@ -1,8 +1,8 @@
-import { ItemDataHabilidades } from "@/components/features/aboutMe/Items/ItemDataHabilidades";
+import { ItemSkills } from "@/components/ui/About/Items/ItemSkills.tsx";
import { getI18N } from "@/i18n";
import type { PropsLang } from "@/interfaces/currentLang.interface";
-export const Habilidades = ({ currentLocale }: PropsLang) => {
+export const Skills = ({ currentLocale }: PropsLang) => {
const i18n = getI18N({ currentLocale });
return (
@@ -13,7 +13,7 @@ export const Habilidades = ({ currentLocale }: PropsLang) => {
diff --git a/src/components/organisms/TabsAcerca.tsx b/src/components/ui/About/TabsAbout.tsx
similarity index 89%
rename from src/components/organisms/TabsAcerca.tsx
rename to src/components/ui/About/TabsAbout.tsx
index 49b73cf..e7c4dc2 100644
--- a/src/components/organisms/TabsAcerca.tsx
+++ b/src/components/ui/About/TabsAbout.tsx
@@ -1,11 +1,11 @@
import { Briefcase, GraduationCap, PencilRuler, UserRound } from "lucide-react";
import { useEffect, useState } from "react";
-import { Educacion } from "@/components/features/aboutMe/Educacion";
-import { Experiencia } from "@/components/features/aboutMe/Experiencia";
-import { Habilidades } from "@/components/features/aboutMe/Habilidades";
-import { SobreMi } from "@/components/features/aboutMe/SobreMi";
+import { Education } from "@/components/ui/About/Tabs/Education.tsx";
+import { Experience } from "@/components/ui/About/Tabs/Experience.tsx";
+import { Skills } from "@/components/ui/About/Tabs/Skills.tsx";
+import { Aboutme } from "@/components/ui/About/Tabs/Aboutme.tsx";
import { getI18N } from "@/i18n";
-import type { PropsLang } from "@/interfaces/currentLang.interface";
+import type { PropsLang } from "@/interfaces/currentLang.interface.ts";
export const TabsAcerca = ({ currentLocale }: PropsLang) => {
const [activeTab, setActiveTab] = useState
("experiencia");
@@ -119,15 +119,15 @@ export const TabsAcerca = ({ currentLocale }: PropsLang) => {
{/* Contenedor del contenido del tab con un ancho flexible */}
{activeTab === "experiencia" && (
-
+
)}
{activeTab === "educacion" && (
-
+
)}
{activeTab === "habilidades" && (
-
+
)}
- {activeTab === "sobreMi" &&
}
+ {activeTab === "sobreMi" &&
}
);
diff --git a/src/components/atoms/Bubble.tsx b/src/components/ui/Bubble/Bubble.tsx
similarity index 100%
rename from src/components/atoms/Bubble.tsx
rename to src/components/ui/Bubble/Bubble.tsx
diff --git a/src/components/templates/Contacto.astro b/src/components/ui/Contact/Contact.astro
similarity index 73%
rename from src/components/templates/Contacto.astro
rename to src/components/ui/Contact/Contact.astro
index ba3f5a3..a079206 100644
--- a/src/components/templates/Contacto.astro
+++ b/src/components/ui/Contact/Contact.astro
@@ -1,5 +1,5 @@
---
-import { Form } from "@/components/features/contact/Form";
+import { Form } from "@/components/ui/Contact/Form";
const { currentLocale } = Astro;
---
diff --git a/src/components/features/contact/Form.tsx b/src/components/ui/Contact/Form.tsx
similarity index 98%
rename from src/components/features/contact/Form.tsx
rename to src/components/ui/Contact/Form.tsx
index 377e0c6..d8b3528 100644
--- a/src/components/features/contact/Form.tsx
+++ b/src/components/ui/Contact/Form.tsx
@@ -3,9 +3,12 @@ import { motion } from "framer-motion";
import { Mail, Send, Github, Linkedin, MessageCircle } from "lucide-react";
import { type FieldError, useForm } from "react-hook-form";
import toast, { Toaster } from "react-hot-toast";
-import { useTheme } from "@/hooks/useTheme";
+import { useTheme } from "@/hooks/useTheme.ts";
import { getI18N } from "@/i18n";
-import type { FormData, PropsLang } from "@/interfaces/currentLang.interface";
+import type {
+ FormData,
+ PropsLang,
+} from "@/interfaces/currentLang.interface.ts";
import { contactSchema } from "@/schemas/contactSchema";
export const Form = ({ currentLocale }: PropsLang) => {
diff --git a/src/components/templates/Header.astro b/src/components/ui/Home/Home.astro
similarity index 98%
rename from src/components/templates/Header.astro
rename to src/components/ui/Home/Home.astro
index a64b9ed..81117a5 100644
--- a/src/components/templates/Header.astro
+++ b/src/components/ui/Home/Home.astro
@@ -7,7 +7,7 @@ import {
MoveRight,
SquareArrowOutUpRight,
} from "lucide-react";
-import { Bubble } from "@/components/atoms/Bubble";
+import { Bubble } from "@/components/ui/Bubble/Bubble";
import { getI18N } from "@/i18n";
import { Image } from "astro:assets";
diff --git a/src/components/features/navbar/ItemsNav.tsx b/src/components/ui/Navbar/Items/ItemsNav.tsx
similarity index 100%
rename from src/components/features/navbar/ItemsNav.tsx
rename to src/components/ui/Navbar/Items/ItemsNav.tsx
diff --git a/src/components/features/navbar/LangDrop.tsx b/src/components/ui/Navbar/Items/LangDrop.tsx
similarity index 100%
rename from src/components/features/navbar/LangDrop.tsx
rename to src/components/ui/Navbar/Items/LangDrop.tsx
diff --git a/src/components/features/navbar/ThemeSwitch.tsx b/src/components/ui/Navbar/Items/ThemeSwitch.tsx
similarity index 100%
rename from src/components/features/navbar/ThemeSwitch.tsx
rename to src/components/ui/Navbar/Items/ThemeSwitch.tsx
diff --git a/src/components/organisms/Nav.tsx b/src/components/ui/Navbar/Nav.tsx
similarity index 95%
rename from src/components/organisms/Nav.tsx
rename to src/components/ui/Navbar/Nav.tsx
index 2ad8b16..622848a 100644
--- a/src/components/organisms/Nav.tsx
+++ b/src/components/ui/Navbar/Nav.tsx
@@ -1,10 +1,10 @@
import { AnimatePresence, motion } from "framer-motion";
import { Menu, X } from "lucide-react";
import { useEffect, useRef, useState } from "react";
-import { ItemsNav } from "@/components/features/navbar/ItemsNav";
-import { LangDrop } from "@/components/features/navbar/LangDrop";
-import { ThemeDrop } from "@/components/features/navbar/ThemeSwitch";
-import type { PropsLang } from "@/interfaces/currentLang.interface";
+import { ItemsNav } from "@/components/ui/Navbar/Items/ItemsNav.tsx";
+import { LangDrop } from "@/components/ui/Navbar/Items/LangDrop.tsx";
+import { ThemeDrop } from "@/components/ui/Navbar/Items/ThemeSwitch.tsx";
+import type { PropsLang } from "@/interfaces/currentLang.interface.ts";
export const Nav = ({ currentLocale }: PropsLang) => {
const [isOpen, setIsOpen] = useState(false);
diff --git a/src/components/features/opinions/Items/CountryFlag.tsx b/src/components/ui/Opinions/Items/CountryFlag.tsx
similarity index 96%
rename from src/components/features/opinions/Items/CountryFlag.tsx
rename to src/components/ui/Opinions/Items/CountryFlag.tsx
index 5dc9053..f080355 100644
--- a/src/components/features/opinions/Items/CountryFlag.tsx
+++ b/src/components/ui/Opinions/Items/CountryFlag.tsx
@@ -1,5 +1,5 @@
import ReactCountryFlag from "react-country-flag";
-import type { CountryFlagProps } from "@/interfaces/currentLang.interface";
+import type { CountryFlagProps } from "@/interfaces/currentLang.interface.ts";
export const CountryFlag = ({
countryCode,
diff --git a/src/components/templates/Opiniones.astro b/src/components/ui/Opinions/Opiniones.astro
similarity index 74%
rename from src/components/templates/Opiniones.astro
rename to src/components/ui/Opinions/Opiniones.astro
index 435ca5b..3709646 100644
--- a/src/components/templates/Opiniones.astro
+++ b/src/components/ui/Opinions/Opiniones.astro
@@ -1,5 +1,5 @@
---
-import { Opinions } from "@/components/features/opinions/Opinions";
+import { Opinions } from "@/components/ui/Opinions/Opinions";
const { currentLocale } = Astro;
---
diff --git a/src/components/features/opinions/Opinions.tsx b/src/components/ui/Opinions/Opinions.tsx
similarity index 98%
rename from src/components/features/opinions/Opinions.tsx
rename to src/components/ui/Opinions/Opinions.tsx
index 0015767..f42cbfe 100644
--- a/src/components/features/opinions/Opinions.tsx
+++ b/src/components/ui/Opinions/Opinions.tsx
@@ -6,8 +6,8 @@ import { getI18N } from "@/i18n";
import type {
PropsLang,
Testimonial,
-} from "@/interfaces/currentLang.interface";
-import { CountryFlag } from "@/components/features/opinions/Items/CountryFlag";
+} from "@/interfaces/currentLang.interface.ts";
+import { CountryFlag } from "@/components/ui/Opinions/Items/CountryFlag.tsx";
const containerVariants = {
hidden: { opacity: 0 },
diff --git a/src/components/features/opinions/sendOpinions.tsx b/src/components/ui/Opinions/SendOpinions.tsx
similarity index 97%
rename from src/components/features/opinions/sendOpinions.tsx
rename to src/components/ui/Opinions/SendOpinions.tsx
index b5547bb..5c72d56 100644
--- a/src/components/features/opinions/sendOpinions.tsx
+++ b/src/components/ui/Opinions/SendOpinions.tsx
@@ -3,14 +3,14 @@ import { AnimatePresence, motion } from "framer-motion";
import { Briefcase, Globe, MessageSquare, Send, User } from "lucide-react";
import { useId, useMemo, useState } from "react";
import { type FieldError, useForm } from "react-hook-form";
-import { SubmittedOpinion } from "@/components/features/opinions/SubmittedOpinion";
+import { SubmittedOpinion } from "@/components/ui/Opinions/SubmittedOpinion.tsx";
import { getI18N } from "@/i18n";
import type {
FormOpinions,
PropsLang,
-} from "@/interfaces/currentLang.interface";
-import { opinionsSchema } from "@/schemas/opinionsSchema";
-import { countries } from "@/utils/countries";
+} from "@/interfaces/currentLang.interface.ts";
+import { opinionsSchema } from "@/schemas/opinionsSchema.ts";
+import { countries } from "@/utils/countries.ts";
import ReactCountryFlag from "react-country-flag";
export const SendOpinions = ({ currentLocale }: PropsLang) => {
diff --git a/src/components/features/opinions/SubmittedOpinion.tsx b/src/components/ui/Opinions/SubmittedOpinion.tsx
similarity index 99%
rename from src/components/features/opinions/SubmittedOpinion.tsx
rename to src/components/ui/Opinions/SubmittedOpinion.tsx
index 598c7a6..659cbcb 100644
--- a/src/components/features/opinions/SubmittedOpinion.tsx
+++ b/src/components/ui/Opinions/SubmittedOpinion.tsx
@@ -1,7 +1,7 @@
import { motion, type Variants } from "framer-motion";
import { Check } from "lucide-react";
import { getI18N } from "@/i18n";
-import type { PropsLang } from "@/interfaces/currentLang.interface";
+import type { PropsLang } from "@/interfaces/currentLang.interface.ts";
const successVariants: Variants = {
hidden: { opacity: 0, scale: 0.8 },
diff --git a/src/components/ui/Opinions/send/SendOpinions.astro b/src/components/ui/Opinions/send/SendOpinions.astro
new file mode 100644
index 0000000..8d89cfd
--- /dev/null
+++ b/src/components/ui/Opinions/send/SendOpinions.astro
@@ -0,0 +1,10 @@
+---
+import { SendOpinions } from "@/components/ui/Opinions/SendOpinions.tsx";
+
+const { currentLocale } = Astro;
+---
+
+