From ebd8286e753853e248912eb4d997a480ff5e60eb Mon Sep 17 00:00:00 2001 From: juan Date: Sat, 13 Sep 2025 17:45:04 +0200 Subject: [PATCH] first commit --- .env.development | 1 + .env.production | 1 + .gitignore | 24 + .prettierignore | 4 + .vscode/settings.json | 11 + README.md | 72 +++ app.config.ts | 26 ++ jsrepo.json | 12 + package.json | 89 ++++ postcss.config.mjs | 6 + public/conocenos.webp | Bin 0 -> 99450 bytes public/favicon.ico | Bin 0 -> 15406 bytes public/helvetiaLogo.svg | 1 + public/site.webmanifest | 9 + public/sitemap.xml | 1 + src/TextAnimations/BlurText/BlurText.tsx | 129 ++++++ src/TextAnimations/CountUp/CountUp.tsx | 116 +++++ .../RotatingText/RotatingText.tsx | 276 +++++++++++ src/TextAnimations/TextCursor/TextCursor.tsx | 174 +++++++ src/api.ts | 6 + src/client.tsx | 8 + src/components/ButtonCall.tsx | 50 ++ src/components/Cookies.tsx | 58 +++ src/components/DefaultCatchBoundary.tsx | 53 +++ src/components/Footer.tsx | 76 +++ src/components/Kpi.tsx | 105 +++++ src/components/Modal.tsx | 124 +++++ src/components/NavBarComponents.tsx | 230 ++++++++++ src/components/NotFound.tsx | 34 ++ src/components/PostError.tsx | 5 + src/components/ThemeSwitcher.tsx | 31 ++ src/components/UserError.tsx | 5 + src/content/coche.ts | 44 ++ src/content/decesos.ts | 178 ++++++++ src/content/hogar.ts | 105 +++++ src/content/home.ts | 32 ++ src/content/perros.ts | 113 +++++ src/content/salud.ts | 74 +++ src/content/vida.ts | 107 +++++ src/global-middleware.ts | 5 + src/routeTree.gen.ts | 431 ++++++++++++++++++ src/router.tsx | 27 ++ src/routes/__root.tsx | 110 +++++ src/routes/formulario/index.tsx | 242 ++++++++++ .../formulario/politicas-formulario.tsx | 91 ++++ src/routes/formulario/politicas.tsx | 110 +++++ src/routes/index.tsx | 349 ++++++++++++++ src/routes/seguros/decesos.tsx | 196 ++++++++ src/routes/seguros/hogar.tsx | 244 ++++++++++ src/routes/seguros/mascotas/caballos.tsx | 95 ++++ src/routes/seguros/mascotas/index.tsx | 72 +++ src/routes/seguros/mascotas/perros.tsx | 203 +++++++++ src/routes/seguros/salud.tsx | 366 +++++++++++++++ src/routes/seguros/vehiculos/coche.tsx | 84 ++++ src/routes/seguros/vehiculos/index.tsx | 49 ++ src/routes/seguros/vehiculos/moto.tsx | 77 ++++ src/routes/seguros/vida.tsx | 270 +++++++++++ src/ssr.tsx | 13 + src/styles/app.css | 26 ++ src/utils/seo.ts | 33 ++ src/utils/sitemap.ts | 17 + tailwind.config.js | 60 +++ tailwind.config.mjs | 4 + tsconfig.json | 22 + 64 files changed, 5586 insertions(+) create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .gitignore create mode 100644 .prettierignore create mode 100644 .vscode/settings.json create mode 100644 README.md create mode 100644 app.config.ts create mode 100644 jsrepo.json create mode 100644 package.json create mode 100644 postcss.config.mjs create mode 100644 public/conocenos.webp create mode 100644 public/favicon.ico create mode 100644 public/helvetiaLogo.svg create mode 100644 public/site.webmanifest create mode 100644 public/sitemap.xml create mode 100644 src/TextAnimations/BlurText/BlurText.tsx create mode 100644 src/TextAnimations/CountUp/CountUp.tsx create mode 100644 src/TextAnimations/RotatingText/RotatingText.tsx create mode 100644 src/TextAnimations/TextCursor/TextCursor.tsx create mode 100644 src/api.ts create mode 100644 src/client.tsx create mode 100644 src/components/ButtonCall.tsx create mode 100644 src/components/Cookies.tsx create mode 100644 src/components/DefaultCatchBoundary.tsx create mode 100644 src/components/Footer.tsx create mode 100644 src/components/Kpi.tsx create mode 100644 src/components/Modal.tsx create mode 100644 src/components/NavBarComponents.tsx create mode 100644 src/components/NotFound.tsx create mode 100644 src/components/PostError.tsx create mode 100644 src/components/ThemeSwitcher.tsx create mode 100644 src/components/UserError.tsx create mode 100644 src/content/coche.ts create mode 100644 src/content/decesos.ts create mode 100644 src/content/hogar.ts create mode 100644 src/content/home.ts create mode 100644 src/content/perros.ts create mode 100644 src/content/salud.ts create mode 100644 src/content/vida.ts create mode 100644 src/global-middleware.ts create mode 100644 src/routeTree.gen.ts create mode 100644 src/router.tsx create mode 100644 src/routes/__root.tsx create mode 100644 src/routes/formulario/index.tsx create mode 100644 src/routes/formulario/politicas-formulario.tsx create mode 100644 src/routes/formulario/politicas.tsx create mode 100644 src/routes/index.tsx create mode 100644 src/routes/seguros/decesos.tsx create mode 100644 src/routes/seguros/hogar.tsx create mode 100644 src/routes/seguros/mascotas/caballos.tsx create mode 100644 src/routes/seguros/mascotas/index.tsx create mode 100644 src/routes/seguros/mascotas/perros.tsx create mode 100644 src/routes/seguros/salud.tsx create mode 100644 src/routes/seguros/vehiculos/coche.tsx create mode 100644 src/routes/seguros/vehiculos/index.tsx create mode 100644 src/routes/seguros/vehiculos/moto.tsx create mode 100644 src/routes/seguros/vida.tsx create mode 100644 src/ssr.tsx create mode 100644 src/styles/app.css create mode 100644 src/utils/seo.ts create mode 100644 src/utils/sitemap.ts create mode 100644 tailwind.config.js create mode 100644 tailwind.config.mjs create mode 100644 tsconfig.json diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..b7bdc3f --- /dev/null +++ b/.env.development @@ -0,0 +1 @@ +EMAIL_SENDER="p3n4lv3r@gmail.com" \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..b7bdc3f --- /dev/null +++ b/.env.production @@ -0,0 +1 @@ +EMAIL_SENDER="p3n4lv3r@gmail.com" \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..be22d1f --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +node_modules +package-lock.json +yarn.lock +dist +.netlify + +.DS_Store +.cache +.env +.vercel +.output +.vinxi + +/build/ +/api/ +/server/build +/public/build +.vinxi +# Sentry Config File +.env.sentry-build-plugin +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..2be5eaa --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +**/build +**/public +pnpm-lock.yaml +routeTree.gen.ts \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..00b5278 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "files.watcherExclude": { + "**/routeTree.gen.ts": true + }, + "search.exclude": { + "**/routeTree.gen.ts": true + }, + "files.readonlyInclude": { + "**/routeTree.gen.ts": true + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..90cba4a --- /dev/null +++ b/README.md @@ -0,0 +1,72 @@ +# Welcome to TanStack.com! + +This site is built with TanStack Router! + +- [TanStack Router Docs](https://tanstack.com/router) + +It's deployed automagically with Netlify! + +- [Netlify](https://netlify.com/) + +## Development + +From your terminal: + +```sh +pnpm install +pnpm dev +``` + +This starts your app in development mode, rebuilding assets on file changes. + +## Editing and previewing the docs of TanStack projects locally + +The documentations for all TanStack projects except for `React Charts` are hosted on [https://tanstack.com](https://tanstack.com), powered by this TanStack Router app. +In production, the markdown doc pages are fetched from the GitHub repos of the projects, but in development they are read from the local file system. + +Follow these steps if you want to edit the doc pages of a project (in these steps we'll assume it's [`TanStack/form`](https://github.com/tanstack/form)) and preview them locally : + +1. Create a new directory called `tanstack`. + +```sh +mkdir tanstack +``` + +2. Enter the directory and clone this repo and the repo of the project there. + +```sh +cd tanstack +git clone git@github.com:TanStack/tanstack.com.git +git clone git@github.com:TanStack/form.git +``` + +> [!NOTE] +> Your `tanstack` directory should look like this: +> +> ``` +> tanstack/ +> | +> +-- form/ +> | +> +-- tanstack.com/ +> ``` + +> [!WARNING] +> Make sure the name of the directory in your local file system matches the name of the project's repo. For example, `tanstack/form` must be cloned into `form` (this is the default) instead of `some-other-name`, because that way, the doc pages won't be found. + +3. Enter the `tanstack/tanstack.com` directory, install the dependencies and run the app in dev mode: + +```sh +cd tanstack.com +pnpm i +# The app will run on https://localhost:3000 by default +pnpm dev +``` + +4. Now you can visit http://localhost:3000/form/latest/docs/overview in the browser and see the changes you make in `tanstack/form/docs`. + +> [!NOTE] +> The updated pages need to be manually reloaded in the browser. + +> [!WARNING] +> You will need to update the `docs/config.json` file (in the project's repo) if you add a new doc page! diff --git a/app.config.ts b/app.config.ts new file mode 100644 index 0000000..5fbb7e0 --- /dev/null +++ b/app.config.ts @@ -0,0 +1,26 @@ +import { defineConfig } from "@tanstack/react-start/config"; +import tsConfigPaths from "vite-tsconfig-paths"; +import { sitemap } from "./src/utils/sitemap"; +import { generateSitemap } from "tanstack-router-sitemap"; + + +export default defineConfig({ + server: { + preset: "netlify", + prerender: { + routes: ["/", "/seguros", "/formulario"], + crawlLinks: true, + }, + }, + tsr: { + appDirectory: "src", + }, + vite: { + plugins: [ + tsConfigPaths({ + projects: ["./tsconfig.json"], + }), + generateSitemap(sitemap) + ], + }, +}); diff --git a/jsrepo.json b/jsrepo.json new file mode 100644 index 0000000..ac4a9be --- /dev/null +++ b/jsrepo.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://unpkg.com/jsrepo@1.47.1/schemas/project-config.json", + "repos": ["https://reactbits.dev/ts/tailwind"], + "includeTests": false, + "watermark": true, + "formatter": "prettier", + "configFiles": {}, + "paths": { + "*": "./src/blocks", + "TextAnimations": "./src/TextAnimations" + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c3f387c --- /dev/null +++ b/package.json @@ -0,0 +1,89 @@ +{ + "name": "tanstack-start-example-basic", + "private": true, + "sideEffects": false, + "type": "module", + "scripts": { + "dev": "vinxi dev", + "build": "vinxi build", + "start": "vinxi start" + }, + "dependencies": { + "@heroui/accordion": "^2.2.13", + "@heroui/alert": "^2.2.16", + "@heroui/autocomplete": "^2.3.17", + "@heroui/avatar": "^2.2.12", + "@heroui/badge": "^2.2.10", + "@heroui/breadcrumbs": "^2.2.12", + "@heroui/button": "^2.2.16", + "@heroui/calendar": "^2.2.16", + "@heroui/card": "^2.2.15", + "@heroui/checkbox": "^2.3.15", + "@heroui/chip": "^2.2.12", + "@heroui/code": "^2.2.12", + "@heroui/date-input": "^2.3.15", + "@heroui/date-picker": "^2.3.16", + "@heroui/divider": "^2.2.11", + "@heroui/drawer": "^2.2.13", + "@heroui/dropdown": "^2.3.16", + "@heroui/form": "^2.1.15", + "@heroui/image": "^2.2.10", + "@heroui/input": "^2.4.16", + "@heroui/input-otp": "^2.1.15", + "@heroui/kbd": "^2.2.12", + "@heroui/link": "^2.2.13", + "@heroui/listbox": "^2.3.15", + "@heroui/menu": "^2.2.15", + "@heroui/modal": "^2.2.13", + "@heroui/navbar": "^2.2.14", + "@heroui/pagination": "^2.2.14", + "@heroui/popover": "^2.3.16", + "@heroui/progress": "^2.2.12", + "@heroui/radio": "^2.3.15", + "@heroui/ripple": "^2.2.12", + "@heroui/scroll-shadow": "^2.3.10", + "@heroui/select": "^2.4.16", + "@heroui/skeleton": "^2.2.10", + "@heroui/slider": "^2.4.13", + "@heroui/snippet": "^2.2.17", + "@heroui/spinner": "^2.2.13", + "@heroui/system": "^2.4.12", + "@heroui/table": "^2.2.15", + "@heroui/tabs": "^2.2.13", + "@heroui/theme": "^2.4.12", + "@heroui/tooltip": "^2.2.13", + "@heroui/user": "^2.2.12", + "@iconify-json/cib": "^1.2.2", + "@iconify-json/solar": "^1.2.2", + "@iconify/tailwind": "^1.2.0", + "@microsoft/clarity": "^1.0.0", + "@tanstack/react-query": "^5.69.0", + "@tanstack/react-query-devtools": "^5.69.0", + "@tanstack/react-router": "^1.114.22", + "@tanstack/react-router-devtools": "^1.114.22", + "@tanstack/react-router-with-query": "^1.114.25", + "@tanstack/react-start": "^1.114.22", + "@tanstack/zod-adapter": "^1.114.34", + "axios": "^1.8.3", + "framer-motion": "^11.18.2", + "react": "^19.0.0", + "react-cookie": "^8.0.1", + "react-dom": "^19.0.0", + "redaxios": "^0.5.1", + "sonner": "^2.0.1", + "tailwind-merge": "^2.6.0", + "vinxi": "0.5.3", + "zod": "^3.24.2" + }, + "devDependencies": { + "@types/node": "^22.5.4", + "@types/react": "^19.0.8", + "@types/react-dom": "^19.0.3", + "autoprefixer": "^10.4.20", + "postcss": "^8.5.1", + "tailwindcss": "^3.4.17", + "tanstack-router-sitemap": "^1.0.12", + "typescript": "^5.7.2", + "vite-tsconfig-paths": "^5.1.4" + } +} diff --git a/postcss.config.mjs b/postcss.config.mjs new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/postcss.config.mjs @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/public/conocenos.webp b/public/conocenos.webp new file mode 100644 index 0000000000000000000000000000000000000000..799f9088dd0df112b159ea6c9e522317ad273b23 GIT binary patch literal 99450 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

2CI#u*u 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 Oe&cO$@(_9&fB*no_iR`I literal 0 HcmV?d00001 diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..1a1751676f7e22811b1070572093996c93c87617 GIT binary patch literal 15406 zcmeHOd0bW1+Fl2T)asg*b?Ynb=5X`&-CNczGfPshnW^PmhMJl=CJLyC8iErjB7!1= z%=0WD0t$kNf(oc84uDKf;D7_*z&VHWeDAyW*>FJYTG{>QyXW_NS$nU&*84nb?X}k4 z`*{~as6-p_+;f7`H^iK_LVPHMc;gNE{H-oR_)y-v@9MAj79y*w5N}Z#szNp7d`ceg z=Qg#k@cO}B`2AEQLYAsU^lG)(?NlVveB4D=RNqHBi7@LZyk>X`-?=&wyaXc324dGH zh`sI*2ZA9E$3YxV(}}Zro+2xvqoE%&Gttr5;%^xu$Xs8~f$F(IWCTHE$5Opih%-kZ z&Yy-jl?h|pAsJjp@v(NPk*BSN3PZOKf=D3D{ee_(C&aN7h|`CuUIE0#a)`n_3=NqA zF3WYeew3H!8|bXk`EOAn+)ag*2_NI>WPgaGyY-kWm?m!BVg-cSkCwHgSkV7%d$ihpd+fwB2n%=`AHbdAe!S+2u%Eu2wg?hGhq zwxvNjHX7#*6PqjedU_4aH|QF#E9E%lx@LY*lYwoauNnjVw_<^p8Xd=Mg_*Aoi+ts4 zN|_d^dU>2qy*yrrap8M0DKs1JWdDHC?g#MKIbq=Z1<_TMHt0PiYimy5!@5g#XqNzpXtEec~usxTf6PbkDqAu50ezz_=_Pt%P-o2*Owy3VuMqO8Gt*$AvExLMsqx-eXE{~qS zii2O7@;dVd*=JmqJ_o=9-? z5_?=tM2bh}-;Jj@@SNIPxKH*Gp409N?^zK33m}3lAi}I5BCR2Iu7!x-2$8sj?%{Tb zeO|oI+!u!;eZ-O7wCeuGpU13DgzG3gzSl^&em@Z|t%ISGQ;FG zj@PMUDH>6b=_qn@JN+sazO#E#dkcj3kD&D)BG3?bjRCGJMCuM|uYwyx>th1p?uE$D zfGEg@IF|=elwTk+f_ps)XL|`ZeLtxMtK|OPZ5E)4U?wID2aEW|}8@+;m!x z4}?NwMa#H(jJuz3vmnmqO6#*IE0mrS9a6lnvF~5vU^-3onloN?ZJ2p)h+t}S*m9cF zt7Y5-#@$Bk^@K3QJ+ccTZx6(YbizHJ87#T90#y9nQl8gMTKBV9#Q+w0snR`&i zEn?iWgj+(m7a=OE_h_WL2e&@vCYu7I&AMA^LD*hRZ zF%=H6KEh|KjS3Ey)b1rJY+j*)FJY&Kt5BLFu;*YO^a+cCD#b&-2S@0gC7jN5 zoa`9APtcglO@fNXf1lk4uqXQ+sV@6qU+j~8GX`TZCga=Nmvqib9eBU!$n&^xTu4@y z*B<$qy|FibGCVv(VQG6G7OQ}1b~hn5_|W{PIi5y#D1zpC4B8*sjif>1xtnzOXnY;!ZKQWI_M!J9)z=>z`sL%sYx4Cxb1z&s^P>DmSkEnHn75-wx^C)0 z?~fxK(e5i}EcDdEYzJWKp?hTANBLCpCG246%z_BN6`SpU1ApE39r}4WN!Mq((fIq) z0dGtTZnb=CK7KKeu$RV=MeCs0lIRAE@=KJ?#|EV1gA?=c*ObZlF{}cUw$R)jz5xTR z(i+Pv^?p+tqtjU@>8@KR>OiSvOA~I>yW-~<7nX=GgTnC6;UDnsk(u}?z#b#k(K`FN zEvC8^HkP;8RgH0>$yk}F*5@@)%GTub7mly5%h2Vm%V>aN)@e29vF97~**68fJ?5d$ z{wa7PVH{oy9g7baN1)A+6|hOUkLmGQcrS7(-aha>dPYrctgrZayi}Lxn4|UDl%s_s zy*tyfWZfgjqfh!|={@(z)28TudLf2JyEN8i zACf=4FU9Bd@CGS=Y#`0ky^UC2uBWvo+X}R3G7b7it^niy581Oj2BM4KU_9?XgvQ=< zbTl6?^-quFiBi9G4<8TvW7iDo8~V~>N<@QntzUo+&Zo4Pn%)4LT)7Nmdz7HFSE=Sc z85CQ4vKTLV4WkRj()U8A?fvo8)_zdU8-^F?JK}|af1zveFg)iw2p@;9#OU4b7#>fH ziGdHtld``NJ83NBYp{;KQQS*3*hJqMPGpS9*!&C#u2lO3RjFZUcIVFEPuo62yDc9; zFcUBk*R}1h`$Pkm^R(`CTD99djA2QPbX~tE@OPQ2(l*#%z@L~-t4h3Qt9(w;`4u>C< z^vb?_=34gM(|D9cU)hKG2iDQ}iEXt^`mHl?I#Y(Eo9FQ6kq7kdM%aAcWxGb$t-gOU zKL1YK&FPze=fJi6+Zo8eeL!z~tehJj^Yy0u?5l?`JLV$h?Z1HIw+^5~W&^!16E@pE zToWnsceRZ4=)Wa*_Vy~i5nE7vJqEwdb|RxV2?xs)rFze2Q~NUr`vCQM#xJ+KC7UZ( zJUU&f^mV*)WrybSl^u9o+nkt*31P)JUK)&{Cn_`|o5osh>-W1QW^3oyFFE$EzTn_< zv%>EFtqMEbs<0>HwB@mUUS8;g>T>)0)fYDToW11PY>u_&|8etBV&D0G$qJMEC01Vb z=PmQp=a*hrmn_v$%67fJ#4?YsaTzZAxPJe?mt&oTBw8_z?1|_ku) zoLL*GBuyrszS%8BcG!C&J)KnX|G>{)hWhd9%iUkiJv1Vr0!CCz14$y>;SLhK0yK^pc=Y zswdVK&nd>jb80eaS8{**P=71DIrhMsoy41B5UkrVZ;nN)qOAH>NFSsP>Rgf)xeQ#w&}yhLOjUk!YK0%q%b#eR zETVV4#j;izu~LrRNcx=}^*63x>)y#!CJ#HHoO>HxC?nG7X z+(||lv5YlK3weGjdTA{6cf7v8lN8>h*QWW(F*MeS4SDA#lXjabYpAU4ojI)Nw{nb4 z;#~r9se;Fjq%DfQ_`DT<(;e72bKQT^JZPNl*SI#ZA<#uAm2%b+9;S4 zb7PK=YRBR!;-#gtRmscdt8`ZLRbaE6tAgpAr_gufFtlahb&{|Z z9?XfkF~>*o4{;S1n^&sT8%T?^Un*<8&Z|`L-bC?BpAHxkIb6Ta(D+Gm)@#4i-^`o! z?wlk!hRT}v$xPy%E$hIAq{k|}%N5?#->e5$U8V6v<#-*XwvS2q5rKYBOPGw!db7lZ zI59Wo*c$%`578|#MARu-u3@@6SRg(?Alh4CqQ?L{yK@y(2{itB4Dpy@?i~Ali1%?> zE9dp3C2#KY@*+v&SCO9m?4b}$4EkEaU@XQo)*V-lin-MQ64L-J@Y)2co$Q= zp-k5OS%c^Gh1VNi^Qq5`a&}=*?rONC{gZsRl`t5KF&UdVD14Y3b7Zc}S!qLgzIg9= zs<@aGq(ay>(&z0}@LW&&HjSG|cNNkiRXDLv;Os$x@;rfxV=C;~I|LKm_v3|FdY1BB zke;s`FQWUw>m}b0=E&opjo14;T8H>Of#(Que<3Xc6Mb{BCv_+)j;kc!jKNrp$=J++ zxiBZ@#vGX|b7uZFHZVGw+0(M zCf;6l0CQK|gT>FJuahtK$-Wtbu^5xF6>VPTVnlj<2QXLW%-omR-R`o^>2&-yk9hb6 zY)4q=TI`Hkiny3Xh>Bc}kdO`V^7Vn!_B7g0a0M2&v=5+#nbWx#O{nZS14b z(=CN;Ke}z%i~b?!FvzbIz2@z~NV8%rGNbtYCucEZz(p*!)HUvc3j2#uRT;jr< zn43RwWUkDaxi49R9_DtaG+$3Tx!xArX|dRz`qz&1bA$X}I#zv2YwBbgHDzF8 zv!n#`S3kgqgH!P1vOAbK?luO!UWOTc?!(qt1MAnd*z&0cOU;{bTl3Exm|76Th^%(M19n98H{~7FCc@oDG z_w7jH*okD@DOIdRo;l}J-cPP~vB32~Q+a(kF^t|TCip{)cEc#E6X5dSt(}TLun@DnuQ!(a zVQV#{{{Pw)-M;f~%x}%d6V9tKBklQd?OWdycx~rb`1_$57~~bySnnIhQknmVP55-_ z{>J>r_4|9uEs4@WHhPYeQ@&N4u13E%tl3_%W$_ve@NvQ0o>nl8 zxh7qE$72=VJvtKu&Y4Luj=r9&VHKxEfAcuvzaCx2IbnWKbu&MWd(V_TXiqS;ir3Yw zO4b#wqP=O9lIhbuI{chek57U&6VIs>ubYp>3D@a)IuHNInt`{{Owc!HHeU0afVr_n z={F9HMb;@Axk zgID5X%UIa%Q`5f3I~0e^#`{4l@uL6dcr$qdUiKXQ5JpSP)_6QrrWsFdlKnxAUE^NC zL((2WY44!@Aq|FxyHcEXCO*iYkDiI&qLcHdQf!dphduU8#G8o|(A&uz&y2K2yP+#E zc5^0XC+6UvAuG^pw+a4vd@hDuw4!@83qzuudH>-r81GqZetkW~Ib?1WTckdo5k~P` zDNioP+?{f@BOEF2$hNtKjgJdMucS$MGl_VnPLg7+F9v;%S0hJCG1%8*N8_2F$H3@c zi}1{s))>6q8{GrH#XA(2?sw`Z^ga3`r3>(vo!?;b{?iZnXS~*M6(0R*AH(83a+&3{ zkFuXD@y~AJ$=qE|J?OFZl(v!#EzLYL53dD|p?)5Zm&1okdp$W$$Z_L8Q4ICZl-J&h zz9|RIMcdIc(bfGc^r3O}_e0b1I>i=y?)?_MQ@+E%s5RJhyyhYQE%Er=jAEOc@?_52by4IP61rcJ%Gc>t8gl~ z^$?CB?tpC#n7m7i?ZjvC5iP!Q12p%*ovSFvckj9B8jBW7`tP_oEuHnPS;H$~15-kyCp*x285Y7E9&S z%$d3KH(20hycbxhxfn<>>DJ7p^fKNFo{OiP`{5~X4H&%38iChpAHoQ{rpBy;S`1HZ zKqzt8cu9kS6xVOhyg9}lP8LcQqEDmXOQajW-?c<+qC4$B=|pp(ozp+5-#?MYPZ!$%z?HqgZ`2{e=1R zFF~WRh}YDs$)MOSI(E98kA5)=@T$*9yzKo2Ui0}1qf*wvySf6O?Xkq$)W6&wo*Pf| zJ@7P^>;k@O$a}ZIz7)TldR?u@zaq4FJB0R<&^?HJP*2YadKceKT$Mcq zysvdmBk) zOHW169-vY5TpKH`IqhjqPd?y?IY&IO^2|>7SD&MDcVu7WNAVe1Q;YZqwREipZdYrm zeKnX_R!^EL@#K98F%KE-r$#d6KTNEi4{YG>45J zC$4l*T|6`EUSaK_d*_hV!dm7j=dsrg!DR1p^zs=6la!yK6p(IGx+}l zCGW_c!^pgOP%gvQTb5PM4O1#-Ra$}ev|mm7e+B-Zg(j<}V^bpa*zpT)LopJcI&~-0 z^wh2N+EcgEAX_@6iZ#zW*;t12l`@5mt74@F25SArvEpg|26sjR#p{) zoYEM?6zoO*#YlQj$iy>;)fB&>H8PXdnJk*CPw2<%()p@@mntj0Eh?|L*HvD2$L}?p z$Sl0M<~Ba|yNuMck;p6$!)v)Ub>b+k?}uoOB+Ms7znPnxSGIJ!alz4-_VHZ2dBH(_ z^TI|*R^dP?oBmunHau7IIdwqs*=;B~w+%NdHmTVc`}8RJgZ2+JYk@Q`+TJeT_+Cxf z8q2z})$w(ut18LxtE|kXlIyY$_C<58+51cj$Uo$i=lAW3WnCT=uk7)l#BxM^3GHGp sUYw*kZ&9czwx}V4-fB3n{`}%3F2iNH4%cNLe+aq%I{j}CJVp=vAC(LAUjP6A literal 0 HcmV?d00001 diff --git a/public/helvetiaLogo.svg b/public/helvetiaLogo.svg new file mode 100644 index 0000000..6654b87 --- /dev/null +++ b/public/helvetiaLogo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..a12ef50 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1,9 @@ +{ + "name": "", + "short_name": "", + "icons": [ + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..0be9ce5 --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1 @@ +https://victoriaseguros.com/seguros/decesosdaily1.0https://victoriaseguros.com/seguros/saluddaily1.0https://victoriaseguros.com/seguros/mascotasdaily1.0https://victoriaseguros.com/seguros/vehiculosdaily1.0https://victoriaseguros.com/seguros/vidadaily1.0https://victoriaseguros.com/seguros/hogardaily1.0https://victoriaseguros.com/formulariodaily1.0 \ No newline at end of file diff --git a/src/TextAnimations/BlurText/BlurText.tsx b/src/TextAnimations/BlurText/BlurText.tsx new file mode 100644 index 0000000..fc72f87 --- /dev/null +++ b/src/TextAnimations/BlurText/BlurText.tsx @@ -0,0 +1,129 @@ +/* + Installed from https://reactbits.dev/ts/tailwind/ +*/ + +import { useRef, useEffect, useState } from "react"; +import { useSprings, animated, SpringValue } from "@react-spring/web"; + +const AnimatedSpan = animated.span as React.FC< + React.HTMLAttributes +>; + +interface BlurTextProps { + text?: string; + delay?: number; + className?: string; + animateBy?: "words" | "letters"; + direction?: "top" | "bottom"; + threshold?: number; + rootMargin?: string; + animationFrom?: Record; + animationTo?: Record[]; + easing?: (t: number) => number | string; + onAnimationComplete?: () => void; +} + +const BlurText: React.FC = ({ + text = "", + delay = 200, + className = "", + animateBy = "words", + direction = "top", + threshold = 0.1, + rootMargin = "0px", + animationFrom, + animationTo, + easing = "easeOutCubic", + onAnimationComplete, +}) => { + const elements = animateBy === "words" ? text.split(" ") : text.split(""); + const [inView, setInView] = useState(false); + const ref = useRef(null); + const animatedCount = useRef(0); + + // Default animations based on direction + const defaultFrom: Record = + direction === "top" + ? { + filter: "blur(10px)", + opacity: 0, + transform: "translate3d(0,-50px,0)", + } + : { + filter: "blur(10px)", + opacity: 0, + transform: "translate3d(0,50px,0)", + }; + + const defaultTo: Record[] = [ + { + filter: "blur(5px)", + opacity: 0.5, + transform: + direction === "top" ? "translate3d(0,5px,0)" : "translate3d(0,-5px,0)", + }, + { filter: "blur(0px)", opacity: 1, transform: "translate3d(0,0,0)" }, + ]; + + useEffect(() => { + const observer = new IntersectionObserver( + ([entry]) => { + if (entry.isIntersecting) { + setInView(true); + if (ref.current) { + observer.unobserve(ref.current); + } + } + }, + { threshold, rootMargin }, + ); + + if (ref.current) { + observer.observe(ref.current); + } + + return () => observer.disconnect(); + }, [threshold, rootMargin]); + + const springs = useSprings( + elements.length, + elements.map((_, i) => ({ + from: animationFrom || defaultFrom, + to: inView + ? async ( + next: (arg: Record>) => Promise, + ) => { + for (const step of animationTo || defaultTo) { + await next(step); + } + animatedCount.current += 1; + if ( + animatedCount.current === elements.length && + onAnimationComplete + ) { + onAnimationComplete(); + } + } + : animationFrom || defaultFrom, + delay: i * delay, + config: { easing: easing as any }, + })), + ); + + return ( +

+ {springs.map((props, index) => ( + + {elements[index] === " " ? "\u00A0" : elements[index]} + {animateBy === "words" && index < elements.length - 1 && "\u00A0"} + + ))} +

+ ); +}; + +export default BlurText; diff --git a/src/TextAnimations/CountUp/CountUp.tsx b/src/TextAnimations/CountUp/CountUp.tsx new file mode 100644 index 0000000..9f14c71 --- /dev/null +++ b/src/TextAnimations/CountUp/CountUp.tsx @@ -0,0 +1,116 @@ +/* + Installed from https://reactbits.dev/ts/tailwind/ +*/ + +import { useEffect, useRef } from "react"; +import { useInView, useMotionValue, useSpring } from "framer-motion"; + +interface CountUpProps { + to: number; + from?: number; + direction?: "up" | "down"; + delay?: number; + duration?: number; + className?: string; + startWhen?: boolean; + separator?: string; + onStart?: () => void; + onEnd?: () => void; +} + +export default function CountUp({ + to, + from = 0, + direction = "up", + delay = 0, + duration = 2, // Duration of the animation in seconds + className = "", + startWhen = true, + separator = "", + onStart, + onEnd, +}: CountUpProps) { + const ref = useRef(null); + const motionValue = useMotionValue(direction === "down" ? to : from); + + // Calculate damping and stiffness based on duration + const damping = 20 + 40 * (1 / duration); // Adjust this formula for finer control + const stiffness = 100 * (1 / duration); // Adjust this formula for finer control + + const springValue = useSpring(motionValue, { + damping, + stiffness, + }); + + const isInView = useInView(ref, { once: true, margin: "0px" }); + + // Set initial text content to the initial value based on direction + useEffect(() => { + if (ref.current) { + ref.current.textContent = String(direction === "down" ? to : from); + } + }, [from, to, direction]); + + // Start the animation when in view and startWhen is true + useEffect(() => { + if (isInView && startWhen) { + if (typeof onStart === "function") { + onStart(); + } + + const timeoutId = setTimeout(() => { + motionValue.set(direction === "down" ? from : to); + }, delay * 1000); + + const durationTimeoutId = setTimeout( + () => { + if (typeof onEnd === "function") { + onEnd(); + } + }, + delay * 1000 + duration * 1000, + ); + + return () => { + clearTimeout(timeoutId); + clearTimeout(durationTimeoutId); + }; + } + }, [ + isInView, + startWhen, + motionValue, + direction, + from, + to, + delay, + onStart, + onEnd, + duration, + ]); + + // Update text content with formatted number on spring value change + useEffect(() => { + const unsubscribe = springValue.on("change", (latest) => { + if (ref.current) { + const options = { + useGrouping: !!separator, + minimumFractionDigits: 0, + maximumFractionDigits: 0, + }; + + const formattedNumber = Intl.NumberFormat("en-US", options).format( + Number(latest.toFixed(0)), + ); + + ref.current.textContent = separator + ? formattedNumber.replace(/,/g, separator) + : formattedNumber; + } + }); + + return () => unsubscribe(); + }, [springValue, separator]); + + return ; +} diff --git a/src/TextAnimations/RotatingText/RotatingText.tsx b/src/TextAnimations/RotatingText/RotatingText.tsx new file mode 100644 index 0000000..a82af6e --- /dev/null +++ b/src/TextAnimations/RotatingText/RotatingText.tsx @@ -0,0 +1,276 @@ +/* + Installed from https://reactbits.dev/ts/tailwind/ +*/ + +import React, { + forwardRef, + useCallback, + useEffect, + useImperativeHandle, + useMemo, + useState, +} from "react"; +import { + motion, + AnimatePresence, + Transition, + type VariantLabels, + type Target, + type AnimationControls, + type TargetAndTransition, +} from "framer-motion"; + +function cn(...classes: (string | undefined | null | boolean)[]): string { + return classes.filter(Boolean).join(" "); +} + +export interface RotatingTextRef { + next: () => void; + previous: () => void; + jumpTo: (index: number) => void; + reset: () => void; +} + +export interface RotatingTextProps + extends Omit< + React.ComponentPropsWithoutRef, + "children" | "transition" | "initial" | "animate" | "exit" + > { + texts: string[]; + transition?: Transition; + initial?: boolean | Target | VariantLabels; + animate?: boolean | VariantLabels | AnimationControls | TargetAndTransition; + exit?: Target | VariantLabels; + animatePresenceMode?: "sync" | "wait"; + animatePresenceInitial?: boolean; + rotationInterval?: number; + staggerDuration?: number; + staggerFrom?: "first" | "last" | "center" | "random" | number; + loop?: boolean; + auto?: boolean; + splitBy?: string; + onNext?: (index: number) => void; + mainClassName?: string; + splitLevelClassName?: string; + elementLevelClassName?: string; +} + +const RotatingText = forwardRef( + ( + { + texts, + transition = { type: "spring", damping: 25, stiffness: 300 }, + initial = { y: "100%", opacity: 0 }, + animate = { y: 0, opacity: 1 }, + exit = { y: "-120%", opacity: 0 }, + animatePresenceMode = "wait", + animatePresenceInitial = false, + rotationInterval = 2000, + staggerDuration = 0, + staggerFrom = "first", + loop = true, + auto = true, + splitBy = "characters", + onNext, + mainClassName, + splitLevelClassName, + elementLevelClassName, + ...rest + }, + ref, + ) => { + const [currentTextIndex, setCurrentTextIndex] = useState(0); + + const splitIntoCharacters = (text: string): string[] => { + if (typeof Intl !== "undefined" && Intl.Segmenter) { + const segmenter = new Intl.Segmenter("en", { granularity: "grapheme" }); + return Array.from( + segmenter.segment(text), + (segment) => segment.segment, + ); + } + return Array.from(text); + }; + + const elements = useMemo(() => { + const currentText: string = texts[currentTextIndex]; + if (splitBy === "characters") { + const words = currentText.split(" "); + return words.map((word, i) => ({ + characters: splitIntoCharacters(word), + needsSpace: i !== words.length - 1, + })); + } + if (splitBy === "words") { + return currentText.split(" ").map((word, i, arr) => ({ + characters: [word], + needsSpace: i !== arr.length - 1, + })); + } + if (splitBy === "lines") { + return currentText.split("\n").map((line, i, arr) => ({ + characters: [line], + needsSpace: i !== arr.length - 1, + })); + } + + return currentText.split(splitBy).map((part, i, arr) => ({ + characters: [part], + needsSpace: i !== arr.length - 1, + })); + }, [texts, currentTextIndex, splitBy]); + + const getStaggerDelay = useCallback( + (index: number, totalChars: number): number => { + const total = totalChars; + if (staggerFrom === "first") return index * staggerDuration; + if (staggerFrom === "last") + return (total - 1 - index) * staggerDuration; + if (staggerFrom === "center") { + const center = Math.floor(total / 2); + return Math.abs(center - index) * staggerDuration; + } + if (staggerFrom === "random") { + const randomIndex = Math.floor(Math.random() * total); + return Math.abs(randomIndex - index) * staggerDuration; + } + return Math.abs((staggerFrom as number) - index) * staggerDuration; + }, + [staggerFrom, staggerDuration], + ); + + const handleIndexChange = useCallback( + (newIndex: number) => { + setCurrentTextIndex(newIndex); + if (onNext) onNext(newIndex); + }, + [onNext], + ); + + const next = useCallback(() => { + const nextIndex = + currentTextIndex === texts.length - 1 + ? loop + ? 0 + : currentTextIndex + : currentTextIndex + 1; + if (nextIndex !== currentTextIndex) { + handleIndexChange(nextIndex); + } + }, [currentTextIndex, texts.length, loop, handleIndexChange]); + + const previous = useCallback(() => { + const prevIndex = + currentTextIndex === 0 + ? loop + ? texts.length - 1 + : currentTextIndex + : currentTextIndex - 1; + if (prevIndex !== currentTextIndex) { + handleIndexChange(prevIndex); + } + }, [currentTextIndex, texts.length, loop, handleIndexChange]); + + const jumpTo = useCallback( + (index: number) => { + const validIndex = Math.max(0, Math.min(index, texts.length - 1)); + if (validIndex !== currentTextIndex) { + handleIndexChange(validIndex); + } + }, + [texts.length, currentTextIndex, handleIndexChange], + ); + + const reset = useCallback(() => { + if (currentTextIndex !== 0) { + handleIndexChange(0); + } + }, [currentTextIndex, handleIndexChange]); + + useImperativeHandle( + ref, + () => ({ + next, + previous, + jumpTo, + reset, + }), + [next, previous, jumpTo, reset], + ); + + useEffect(() => { + if (!auto) return; + const intervalId = setInterval(next, rotationInterval); + return () => clearInterval(intervalId); + }, [next, rotationInterval, auto]); + + return ( + + {texts[currentTextIndex]} + + + + + ); + }, +); + +RotatingText.displayName = "RotatingText"; +export default RotatingText; diff --git a/src/TextAnimations/TextCursor/TextCursor.tsx b/src/TextAnimations/TextCursor/TextCursor.tsx new file mode 100644 index 0000000..6850967 --- /dev/null +++ b/src/TextAnimations/TextCursor/TextCursor.tsx @@ -0,0 +1,174 @@ +/* + Installed from https://reactbits.dev/ts/tailwind/ +*/ + +import React, { useState, useEffect, useRef } from "react"; +import { motion, AnimatePresence } from "framer-motion"; + +interface TextCursorProps { + text: string; + delay?: number; + spacing?: number; + followMouseDirection?: boolean; + randomFloat?: boolean; + exitDuration?: number; + removalInterval?: number; + maxPoints?: number; +} + +interface TrailItem { + id: number; + x: number; + y: number; + angle: number; + randomX?: number; + randomY?: number; + randomRotate?: number; +} + +const TextCursor: React.FC = ({ + text = "⚛️", + delay = 0.01, + spacing = 100, + followMouseDirection = true, + randomFloat = true, + exitDuration = 0.5, + removalInterval = 30, + maxPoints = 5, +}) => { + const [trail, setTrail] = useState([]); + const containerRef = useRef(null); + const lastMoveTimeRef = useRef(Date.now()); + const idCounter = useRef(0); + + const handleMouseMove = (e: MouseEvent) => { + if (!containerRef.current) return; + const rect = containerRef.current.getBoundingClientRect(); + const mouseX = e.clientX - rect.left; + const mouseY = e.clientY - rect.top; + + setTrail((prev) => { + let newTrail = [...prev]; + if (newTrail.length === 0) { + newTrail.push({ + id: idCounter.current++, + x: mouseX, + y: mouseY, + angle: 0, + ...(randomFloat && { + randomX: Math.random() * 10 - 5, + randomY: Math.random() * 10 - 5, + randomRotate: Math.random() * 10 - 5, + }), + }); + } else { + const last = newTrail[newTrail.length - 1]; + const dx = mouseX - last.x; + const dy = mouseY - last.y; + const distance = Math.sqrt(dx * dx + dy * dy); + if (distance >= spacing) { + let rawAngle = (Math.atan2(dy, dx) * 180) / Math.PI; + if (rawAngle > 90) rawAngle -= 180; + else if (rawAngle < -90) rawAngle += 180; + const computedAngle = followMouseDirection ? rawAngle : 0; + const steps = Math.floor(distance / spacing); + for (let i = 1; i <= steps; i++) { + const t = (spacing * i) / distance; + const newX = last.x + dx * t; + const newY = last.y + dy * t; + newTrail.push({ + id: idCounter.current++, + x: newX, + y: newY, + angle: computedAngle, + ...(randomFloat && { + randomX: Math.random() * 10 - 5, + randomY: Math.random() * 10 - 5, + randomRotate: Math.random() * 10 - 5, + }), + }); + } + } + } + if (newTrail.length > maxPoints) { + newTrail = newTrail.slice(newTrail.length - maxPoints); + } + return newTrail; + }); + lastMoveTimeRef.current = Date.now(); + }; + + useEffect(() => { + const container = containerRef.current; + if (!container) return; + container.addEventListener("mousemove", handleMouseMove); + return () => container.removeEventListener("mousemove", handleMouseMove); + }, []); + + useEffect(() => { + const interval = setInterval(() => { + if (Date.now() - lastMoveTimeRef.current > 100) { + setTrail((prev) => (prev.length > 0 ? prev.slice(1) : prev)); + } + }, removalInterval); + return () => clearInterval(interval); + }, [removalInterval]); + + return ( +
+
+ + {trail.map((item) => ( + + {text} + + ))} + +
+
+ ); +}; + +export default TextCursor; diff --git a/src/api.ts b/src/api.ts new file mode 100644 index 0000000..8b9fef1 --- /dev/null +++ b/src/api.ts @@ -0,0 +1,6 @@ +import { + createStartAPIHandler, + defaultAPIFileRouteHandler, +} from '@tanstack/react-start/api' + +export default createStartAPIHandler(defaultAPIFileRouteHandler) diff --git a/src/client.tsx b/src/client.tsx new file mode 100644 index 0000000..1593d1b --- /dev/null +++ b/src/client.tsx @@ -0,0 +1,8 @@ +/// +import { hydrateRoot } from 'react-dom/client' +import { StartClient } from '@tanstack/react-start' +import { createRouter } from './router' + +const router = createRouter() + +hydrateRoot(document, ) diff --git a/src/components/ButtonCall.tsx b/src/components/ButtonCall.tsx new file mode 100644 index 0000000..04d838e --- /dev/null +++ b/src/components/ButtonCall.tsx @@ -0,0 +1,50 @@ +import { Button } from "@heroui/button"; +import { getRouteApi, Link } from "@tanstack/react-router"; + +const routeApi = getRouteApi("/"); + +function ButtonCall({ + text = "Solicitar llamada", + secure, +}: { + text?: string; + secure: string; +}) { + const navigate = routeApi.useNavigate(); + const waUrl = `https://wa.me/${+34633620767}`; + return ( +
+ +
+ ); +} + +export default ButtonCall; diff --git a/src/components/Cookies.tsx b/src/components/Cookies.tsx new file mode 100644 index 0000000..98a6f72 --- /dev/null +++ b/src/components/Cookies.tsx @@ -0,0 +1,58 @@ +import { Button } from "@heroui/button"; +import { useEffect, useState } from "react"; +import { useCookies } from "react-cookie"; + +export default function CookieConsent() { + const [cookies, setCookie, removeCookie] = useCookies(["cookieConsent"]); + const [visible, setVisible] = useState(false); + + useEffect(() => { + if (!cookies.cookieConsent) { + setVisible(true); + } + }, [cookies]); + + const acceptCookies = () => { + setCookie("cookieConsent", "true", { + path: "/", + maxAge: 60 * 60 * 24 * 365, + }); + setVisible(false); + }; + + // const rejectCookies = () => { + // removeCookie("cookieConsent", { path: "/" }); + // setVisible(false); + // }; + + if (!visible) return null; + + return ( +
+

+ Utilizamos cookies para mejorar tu experiencia en el sitio. Al continuar + navegando, aceptas nuestra{" "} + + política de cookies + + / + + + política de privacidad + + . +

+
+
+ + {/* */} +
+
+
+ ); +} diff --git a/src/components/DefaultCatchBoundary.tsx b/src/components/DefaultCatchBoundary.tsx new file mode 100644 index 0000000..f750e7b --- /dev/null +++ b/src/components/DefaultCatchBoundary.tsx @@ -0,0 +1,53 @@ +import { + ErrorComponent, + Link, + rootRouteId, + useMatch, + useRouter, +} from '@tanstack/react-router' +import type { ErrorComponentProps } from '@tanstack/react-router' + +export function DefaultCatchBoundary({ error }: ErrorComponentProps) { + const router = useRouter() + const isRoot = useMatch({ + strict: false, + select: (state) => state.id === rootRouteId, + }) + + console.error('DefaultCatchBoundary Error:', error) + + return ( +
+ +
+ + {isRoot ? ( + + Home + + ) : ( + { + e.preventDefault() + window.history.back() + }} + > + Go Back + + )} +
+
+ ) +} diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx new file mode 100644 index 0000000..e483840 --- /dev/null +++ b/src/components/Footer.tsx @@ -0,0 +1,76 @@ +import { Chip } from "@heroui/chip"; +import { Image } from "@heroui/image"; +import { Link } from "@tanstack/react-router"; + +export const Footer = () => { + return ( + + ); +}; diff --git a/src/components/Kpi.tsx b/src/components/Kpi.tsx new file mode 100644 index 0000000..9c664bf --- /dev/null +++ b/src/components/Kpi.tsx @@ -0,0 +1,105 @@ +import { Card } from "@heroui/card"; +import { Chip } from "@heroui/chip"; +import { cn } from "@heroui/theme"; + +type TrendCardProps = { + title: string; + value: string; + change: string; + changeType: "positive" | "neutral" | "negative"; + trendType: "up" | "neutral" | "down"; + trendChipPosition?: "top" | "bottom"; + trendChipVariant?: "flat" | "light"; +}; + +const data: TrendCardProps[] = [ + { + title: "Hogar", + value: "+300", + change: "0.0%", + changeType: "neutral", + trendType: "neutral", + }, + { + title: "Decesos", + value: "+1500", + change: "1.0%", + changeType: "positive", + trendType: "up", + }, + { + title: "Vehículos", + value: "+200", + change: "1.0%", + changeType: "positive", + trendType: "up", + }, + { + title: "Mascotas", + value: "+100", + change: "1.0%", + changeType: "positive", + trendType: "up", + }, +]; + +const TrendCard = ({ + title, + value, + change, + changeType, + trendType, + trendChipPosition = "top", + trendChipVariant = "light", +}: TrendCardProps) => { + return ( + +
+
+
{title}
+
{value}
+ + + ) : trendType === "neutral" ? ( + + ) : ( + + ) + } + variant={trendChipVariant} + > + {change} + + + + ); +}; + +export default function Kpi() { + return ( +
+ {data.map((props, index) => ( + + ))} +
+ ); +} diff --git a/src/components/Modal.tsx b/src/components/Modal.tsx new file mode 100644 index 0000000..3e7e664 --- /dev/null +++ b/src/components/Modal.tsx @@ -0,0 +1,124 @@ +import { + Modal, + ModalContent, + ModalHeader, + ModalBody, + ModalFooter, + useDisclosure, +} from "@heroui/modal"; + +import { Form } from "@heroui/form"; +import { Input, Textarea } from "@heroui/input"; +import { Select, SelectItem } from "@heroui/select"; + +interface PropsForm { + // TODO: Replace zod infer + name: string; + time: string; + description: string; + email: string; +} + +import { Button } from "@heroui/button"; +import { toast } from "sonner"; +import { useMutation } from "@tanstack/react-query"; +import axios from "axios"; + +export default function ModalComponent() { + const { isOpen, onOpen, onOpenChange } = useDisclosure(); + + const { mutate } = useMutation({ + mutationKey: ["send-email"], + mutationFn: async (data: PropsForm) => { + const { name, time, description, email } = data; + await axios.post( + "https://sender-nr0t.onrender.com/sender", + { + to: "p3n4lv3r@gmail.com", + subject: "Correo decesos", + message: ` +

Nombre: ${name}

+

Horario: ${time}

+
+

Descripción: ${description}

+

Email: ${email}

+ `, + }, + { + headers: { + "Content-Type": "application/json", + "User-Agent": "insomnia/10.3.1", + }, + } + ); + }, + onSuccess: () => { + toast.success("Petición enviada", { id: "email-toast" }); + }, + onError: () => { + toast.error("Error al enviar petición", { id: "email-toast" }); + }, + }); + + const onSubmit = (event: React.FormEvent) => { + event.preventDefault(); + const formData = new FormData(event.currentTarget); + + const name = formData.get("nombre") as string; + const time = formData.get("horario") as string; + const description = formData.get("descripcion") as string; + const email = formData.get("email") as string; + + toast.loading("Enviando", { id: "email-toast" }); + + mutate({ name, time, description, email }); + }; + + return ( + <> + {/* */} + + + + {() => ( + <> +
+ + Formulario contacto + + +
+ + +