@zekidev/ui 2.2.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,191 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropNames = Object.getOwnPropertyNames;
3
- var __esm = (fn, res) => function __init() {
4
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
5
- };
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
-
11
- // src/sections/map/leaflet-map-inner.tsx
12
- var leaflet_map_inner_exports = {};
13
- __export(leaflet_map_inner_exports, {
14
- LeafletMapInner: () => LeafletMapInner
15
- });
16
- import "leaflet/dist/leaflet.css";
17
- import { useEffect as useEffect5, useRef as useRef3, useState as useState13 } from "react";
18
- import L from "leaflet";
19
- import { jsx as jsx82, jsxs as jsxs58 } from "react/jsx-runtime";
20
- async function geocodeAddress(address) {
21
- try {
22
- const res = await fetch(
23
- `https://nominatim.openstreetmap.org/search?format=json&limit=1&q=${encodeURIComponent(address)}`,
24
- { headers: { "Accept-Language": "en", "User-Agent": "LandingBuilder/1.0" } }
25
- );
26
- if (!res.ok) return null;
27
- const data = await res.json();
28
- if (!data.length) return null;
29
- return [parseFloat(data[0].lat), parseFloat(data[0].lon)];
30
- } catch {
31
- return null;
32
- }
33
- }
34
- async function geocodeAll(locations) {
35
- const result = [];
36
- for (const loc of locations) {
37
- if (loc.lat != null && loc.lng != null) {
38
- result.push({ ...loc, coords: [loc.lat, loc.lng] });
39
- continue;
40
- }
41
- if (loc.address) {
42
- const coords = await geocodeAddress(loc.address);
43
- if (coords) result.push({ ...loc, coords });
44
- await new Promise((r) => setTimeout(r, 1e3));
45
- }
46
- }
47
- return result;
48
- }
49
- function buildPopup(loc) {
50
- const parts = [];
51
- parts.push(`<strong style="display:block;font-size:13px">${loc.name}</strong>`);
52
- if (loc.address)
53
- parts.push(`<span style="display:block;font-size:11px;color:#6b7280;margin-top:2px">${loc.address}</span>`);
54
- if (loc.phone)
55
- parts.push(`<span style="display:block;font-size:11px;margin-top:2px">${loc.phone}</span>`);
56
- if (loc.hours)
57
- parts.push(`<span style="display:block;font-size:11px;color:#6b7280;margin-top:2px">${loc.hours}</span>`);
58
- if (loc.address)
59
- parts.push(
60
- `<a href="https://maps.google.com/?q=${encodeURIComponent(loc.address)}" target="_blank" rel="noopener noreferrer" style="display:block;font-size:11px;color:#2563eb;margin-top:4px">Ver en Google Maps \u2192</a>`
61
- );
62
- return parts.join("");
63
- }
64
- function LeafletMapInner({ locations, mapStyle = "standard", className }) {
65
- const containerRef = useRef3(null);
66
- const mapRef = useRef3(null);
67
- const tileRef = useRef3(null);
68
- const [loading, setLoading] = useState13(!!locations?.length);
69
- useEffect5(() => {
70
- if (!containerRef.current || mapRef.current) return;
71
- const tile = TILES[mapStyle] ?? TILES.standard;
72
- const map = L.map(containerRef.current, { scrollWheelZoom: false });
73
- const tileLayer = L.tileLayer(tile.url, { attribution: tile.attribution, maxZoom: tile.maxZoom ?? 19 }).addTo(map);
74
- map.setView([20, 0], 2);
75
- mapRef.current = map;
76
- tileRef.current = tileLayer;
77
- return () => {
78
- map.remove();
79
- mapRef.current = null;
80
- tileRef.current = null;
81
- };
82
- }, []);
83
- useEffect5(() => {
84
- if (!mapRef.current) return;
85
- const tile = TILES[mapStyle] ?? TILES.standard;
86
- tileRef.current?.remove();
87
- tileRef.current = L.tileLayer(tile.url, { attribution: tile.attribution, maxZoom: tile.maxZoom ?? 19 }).addTo(mapRef.current);
88
- }, [mapStyle]);
89
- useEffect5(() => {
90
- if (!locations?.length) {
91
- setLoading(false);
92
- return;
93
- }
94
- let cancelled = false;
95
- setLoading(true);
96
- geocodeAll(locations).then((geocoded) => {
97
- if (cancelled || !mapRef.current) return;
98
- mapRef.current.eachLayer((layer) => {
99
- if (layer instanceof L.Marker) layer.remove();
100
- });
101
- geocoded.forEach((loc) => {
102
- L.marker(loc.coords, { icon: markerIcon }).addTo(mapRef.current).bindPopup(buildPopup(loc));
103
- });
104
- if (geocoded.length === 1) {
105
- mapRef.current.setView(geocoded[0].coords, 14);
106
- } else if (geocoded.length > 1) {
107
- mapRef.current.fitBounds(
108
- geocoded.map((l) => l.coords),
109
- { padding: [48, 48] }
110
- );
111
- }
112
- setLoading(false);
113
- });
114
- return () => {
115
- cancelled = true;
116
- };
117
- }, [locations]);
118
- return /* @__PURE__ */ jsxs58("div", { className: `relative ${className ?? ""}`, children: [
119
- loading && /* @__PURE__ */ jsx82("div", { className: "absolute inset-0 z-[1000] flex items-center justify-center bg-muted/80 rounded-xl", children: /* @__PURE__ */ jsxs58("div", { className: "flex flex-col items-center gap-2 text-muted-foreground text-sm", children: [
120
- /* @__PURE__ */ jsxs58("svg", { className: "animate-spin h-6 w-6", viewBox: "0 0 24 24", fill: "none", children: [
121
- /* @__PURE__ */ jsx82("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
122
- /* @__PURE__ */ jsx82("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z" })
123
- ] }),
124
- "Geocoding addresses\u2026"
125
- ] }) }),
126
- /* @__PURE__ */ jsx82("div", { ref: containerRef, style: { height: "100%", width: "100%" } })
127
- ] });
128
- }
129
- var OSM_ATTR, CARTO_ATTR, ESRI_ATTR, TILES, markerIcon;
130
- var init_leaflet_map_inner = __esm({
131
- "src/sections/map/leaflet-map-inner.tsx"() {
132
- "use strict";
133
- "use client";
134
- OSM_ATTR = '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors';
135
- CARTO_ATTR = `${OSM_ATTR} &copy; <a href="https://carto.com/attributions">CARTO</a>`;
136
- ESRI_ATTR = "Tiles &copy; Esri &mdash; Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community";
137
- TILES = {
138
- // OpenStreetMap
139
- standard: {
140
- url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
141
- attribution: OSM_ATTR
142
- },
143
- // CartoDB Positron — clean, minimal, ideal for data overlays
144
- light: {
145
- url: "https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png",
146
- attribution: CARTO_ATTR
147
- },
148
- // CartoDB Dark Matter
149
- dark: {
150
- url: "https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png",
151
- attribution: CARTO_ATTR
152
- },
153
- // CartoDB Voyager — colorful, modern
154
- voyager: {
155
- url: "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png",
156
- attribution: CARTO_ATTR
157
- },
158
- // OpenTopoMap — topographic with elevation contours
159
- topo: {
160
- url: "https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png",
161
- attribution: `${OSM_ATTR}, <a href="https://viewfinderpanoramas.org">SRTM</a> | Map style: &copy; <a href="https://opentopomap.org">OpenTopoMap</a>`,
162
- maxZoom: 17
163
- },
164
- // ESRI World Imagery — satellite/aerial photography
165
- satellite: {
166
- url: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
167
- attribution: ESRI_ATTR,
168
- maxZoom: 18
169
- },
170
- // ESRI World Street Map — detailed street basemap
171
- streets: {
172
- url: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}",
173
- attribution: ESRI_ATTR,
174
- maxZoom: 18
175
- }
176
- };
177
- markerIcon = new L.Icon({
178
- iconUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png",
179
- iconRetinaUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon-2x.png",
180
- shadowUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png",
181
- iconSize: [25, 41],
182
- iconAnchor: [12, 41],
183
- popupAnchor: [1, -34],
184
- shadowSize: [41, 41]
185
- });
186
- }
187
- });
188
-
189
1
  // src/lib/utils.ts
190
2
  import { clsx } from "clsx";
191
3
  import { twMerge } from "tailwind-merge";
@@ -4116,13 +3928,13 @@ function Banner(props) {
4116
3928
  import { MapPin as MapPin3 } from "lucide-react";
4117
3929
 
4118
3930
  // src/sections/map/leaflet-map.tsx
4119
- import { lazy, Suspense, useEffect as useEffect6, useState as useState14 } from "react";
4120
- import { jsx as jsx83 } from "react/jsx-runtime";
4121
- var LeafletMapInner2 = lazy(
4122
- () => Promise.resolve().then(() => (init_leaflet_map_inner(), leaflet_map_inner_exports)).then((m) => ({ default: m.LeafletMapInner }))
3931
+ import { lazy, Suspense, useEffect as useEffect5, useState as useState13 } from "react";
3932
+ import { jsx as jsx82 } from "react/jsx-runtime";
3933
+ var LeafletMapInner = lazy(
3934
+ () => import("./leaflet-map-inner-SOHFKEYD.js").then((m) => ({ default: m.LeafletMapInner }))
4123
3935
  );
4124
3936
  function MapSkeleton({ className }) {
4125
- return /* @__PURE__ */ jsx83(
3937
+ return /* @__PURE__ */ jsx82(
4126
3938
  "div",
4127
3939
  {
4128
3940
  className: `bg-muted animate-pulse rounded-xl flex items-center justify-center text-muted-foreground text-sm ${className ?? ""}`,
@@ -4131,19 +3943,19 @@ function MapSkeleton({ className }) {
4131
3943
  );
4132
3944
  }
4133
3945
  function LeafletMap({ locations, mapStyle, className }) {
4134
- const [mounted, setMounted] = useState14(false);
4135
- useEffect6(() => {
3946
+ const [mounted, setMounted] = useState13(false);
3947
+ useEffect5(() => {
4136
3948
  setMounted(true);
4137
3949
  }, []);
4138
- if (!mounted) return /* @__PURE__ */ jsx83(MapSkeleton, { className });
4139
- return /* @__PURE__ */ jsx83(Suspense, { fallback: /* @__PURE__ */ jsx83(MapSkeleton, { className }), children: /* @__PURE__ */ jsx83(LeafletMapInner2, { locations, mapStyle, className }) });
3950
+ if (!mounted) return /* @__PURE__ */ jsx82(MapSkeleton, { className });
3951
+ return /* @__PURE__ */ jsx82(Suspense, { fallback: /* @__PURE__ */ jsx82(MapSkeleton, { className }), children: /* @__PURE__ */ jsx82(LeafletMapInner, { locations, mapStyle, className }) });
4140
3952
  }
4141
3953
 
4142
3954
  // src/sections/map/variants/map-pins.tsx
4143
- import { jsx as jsx84, jsxs as jsxs59 } from "react/jsx-runtime";
3955
+ import { jsx as jsx83, jsxs as jsxs58 } from "react/jsx-runtime";
4144
3956
  function MapPins({ title, subtitle, content, badge, locations, mapStyle, background }) {
4145
3957
  const hasLocations = locations?.length > 0;
4146
- return /* @__PURE__ */ jsx84(
3958
+ return /* @__PURE__ */ jsx83(
4147
3959
  "section",
4148
3960
  {
4149
3961
  className: cn(
@@ -4156,11 +3968,11 @@ function MapPins({ title, subtitle, content, badge, locations, mapStyle, backgro
4156
3968
  background === "warning" && "bg-warning text-warning-foreground",
4157
3969
  background === "error" && "bg-error text-error-foreground"
4158
3970
  ),
4159
- children: /* @__PURE__ */ jsxs59("div", { className: "container mx-auto px-4", children: [
4160
- /* @__PURE__ */ jsx84(SectionHeader, { title, subtitle, badge, content, background }),
4161
- hasLocations ? /* @__PURE__ */ jsx84(LeafletMap, { locations, mapStyle, className: "h-96 w-full rounded-xl overflow-hidden shadow" }) : /* @__PURE__ */ jsxs59("div", { className: "h-96 bg-muted rounded-xl flex flex-col items-center justify-center gap-3 text-muted-foreground text-center px-6", children: [
4162
- /* @__PURE__ */ jsx84(MapPin3, { className: "h-10 w-10 opacity-40" }),
4163
- /* @__PURE__ */ jsx84("p", { className: "text-sm", children: "Agreg\xE1 ubicaciones en el Studio \u2014 las direcciones se geocodifican autom\xE1ticamente." })
3971
+ children: /* @__PURE__ */ jsxs58("div", { className: "container mx-auto px-4", children: [
3972
+ /* @__PURE__ */ jsx83(SectionHeader, { title, subtitle, badge, content, background }),
3973
+ hasLocations ? /* @__PURE__ */ jsx83(LeafletMap, { locations, mapStyle, className: "h-96 w-full rounded-xl overflow-hidden shadow" }) : /* @__PURE__ */ jsxs58("div", { className: "h-96 bg-muted rounded-xl flex flex-col items-center justify-center gap-3 text-muted-foreground text-center px-6", children: [
3974
+ /* @__PURE__ */ jsx83(MapPin3, { className: "h-10 w-10 opacity-40" }),
3975
+ /* @__PURE__ */ jsx83("p", { className: "text-sm", children: "Agreg\xE1 ubicaciones en el Studio \u2014 las direcciones se geocodifican autom\xE1ticamente." })
4164
3976
  ] })
4165
3977
  ] })
4166
3978
  }
@@ -4169,9 +3981,9 @@ function MapPins({ title, subtitle, content, badge, locations, mapStyle, backgro
4169
3981
 
4170
3982
  // src/sections/map/variants/map-listing.tsx
4171
3983
  import { MapPin as MapPin4, Phone as Phone3, Clock as Clock3, MapPinned } from "lucide-react";
4172
- import { jsx as jsx85, jsxs as jsxs60 } from "react/jsx-runtime";
3984
+ import { jsx as jsx84, jsxs as jsxs59 } from "react/jsx-runtime";
4173
3985
  function MapListing({ title, subtitle, content, badge, locations, background }) {
4174
- return /* @__PURE__ */ jsx85(
3986
+ return /* @__PURE__ */ jsx84(
4175
3987
  "section",
4176
3988
  {
4177
3989
  className: cn(
@@ -4184,23 +3996,23 @@ function MapListing({ title, subtitle, content, badge, locations, background })
4184
3996
  background === "warning" && "bg-warning text-warning-foreground",
4185
3997
  background === "error" && "bg-error text-error-foreground"
4186
3998
  ),
4187
- children: /* @__PURE__ */ jsxs60("div", { className: "container mx-auto px-4", children: [
4188
- /* @__PURE__ */ jsx85(SectionHeader, { title, subtitle, badge, content, background }),
4189
- /* @__PURE__ */ jsx85("div", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3", children: locations.map((location, i) => /* @__PURE__ */ jsxs60("div", { className: "rounded-xl border bg-card p-6 shadow-sm", children: [
4190
- /* @__PURE__ */ jsxs60("div", { className: "flex items-start gap-3 mb-3", children: [
4191
- /* @__PURE__ */ jsx85(MapPin4, { className: "h-5 w-5 text-primary mt-0.5 shrink-0" }),
4192
- /* @__PURE__ */ jsx85("h3", { className: "font-semibold text-lg", children: location.name })
3999
+ children: /* @__PURE__ */ jsxs59("div", { className: "container mx-auto px-4", children: [
4000
+ /* @__PURE__ */ jsx84(SectionHeader, { title, subtitle, badge, content, background }),
4001
+ /* @__PURE__ */ jsx84("div", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3", children: locations.map((location, i) => /* @__PURE__ */ jsxs59("div", { className: "rounded-xl border bg-card p-6 shadow-sm", children: [
4002
+ /* @__PURE__ */ jsxs59("div", { className: "flex items-start gap-3 mb-3", children: [
4003
+ /* @__PURE__ */ jsx84(MapPin4, { className: "h-5 w-5 text-primary mt-0.5 shrink-0" }),
4004
+ /* @__PURE__ */ jsx84("h3", { className: "font-semibold text-lg", children: location.name })
4193
4005
  ] }),
4194
- location.phone && /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-2", children: [
4195
- /* @__PURE__ */ jsx85(Phone3, { className: "h-4 w-4 shrink-0" }),
4196
- /* @__PURE__ */ jsx85("span", { children: location.phone })
4006
+ location.phone && /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-2", children: [
4007
+ /* @__PURE__ */ jsx84(Phone3, { className: "h-4 w-4 shrink-0" }),
4008
+ /* @__PURE__ */ jsx84("span", { children: location.phone })
4197
4009
  ] }),
4198
- location.hours && /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-2", children: [
4199
- /* @__PURE__ */ jsx85(Clock3, { className: "h-4 w-4 shrink-0" }),
4200
- /* @__PURE__ */ jsx85("span", { children: location.hours })
4010
+ location.hours && /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-2", children: [
4011
+ /* @__PURE__ */ jsx84(Clock3, { className: "h-4 w-4 shrink-0" }),
4012
+ /* @__PURE__ */ jsx84("span", { children: location.hours })
4201
4013
  ] }),
4202
- location.description && /* @__PURE__ */ jsx85("p", { className: "text-sm text-muted-foreground mt-3", children: location.description }),
4203
- location.address && /* @__PURE__ */ jsxs60(
4014
+ location.description && /* @__PURE__ */ jsx84("p", { className: "text-sm text-muted-foreground mt-3", children: location.description }),
4015
+ location.address && /* @__PURE__ */ jsxs59(
4204
4016
  "a",
4205
4017
  {
4206
4018
  href: `https://maps.google.com/?q=${encodeURIComponent(location.address)}`,
@@ -4208,7 +4020,7 @@ function MapListing({ title, subtitle, content, badge, locations, background })
4208
4020
  rel: "noopener noreferrer",
4209
4021
  className: "inline-flex items-center gap-1 mt-4 text-sm font-medium text-primary hover:underline",
4210
4022
  children: [
4211
- /* @__PURE__ */ jsx85(MapPinned, { className: "h-3.5 w-3.5 shrink-0" }),
4023
+ /* @__PURE__ */ jsx84(MapPinned, { className: "h-3.5 w-3.5 shrink-0" }),
4212
4024
  location.address
4213
4025
  ]
4214
4026
  }
@@ -4221,10 +4033,10 @@ function MapListing({ title, subtitle, content, badge, locations, background })
4221
4033
 
4222
4034
  // src/sections/map/variants/map-split.tsx
4223
4035
  import { MapPin as MapPin5, Phone as Phone4, Clock as Clock4, MapPinned as MapPinned2 } from "lucide-react";
4224
- import { jsx as jsx86, jsxs as jsxs61 } from "react/jsx-runtime";
4036
+ import { jsx as jsx85, jsxs as jsxs60 } from "react/jsx-runtime";
4225
4037
  function MapSplit({ title, subtitle, content, badge, locations, mapStyle, background }) {
4226
4038
  const hasLocations = locations?.length > 0;
4227
- return /* @__PURE__ */ jsx86(
4039
+ return /* @__PURE__ */ jsx85(
4228
4040
  "section",
4229
4041
  {
4230
4042
  className: cn(
@@ -4237,28 +4049,28 @@ function MapSplit({ title, subtitle, content, badge, locations, mapStyle, backgr
4237
4049
  background === "warning" && "bg-warning text-warning-foreground",
4238
4050
  background === "error" && "bg-error text-error-foreground"
4239
4051
  ),
4240
- children: /* @__PURE__ */ jsxs61("div", { className: "container mx-auto px-4", children: [
4241
- /* @__PURE__ */ jsx86(SectionHeader, { title, subtitle, badge, content, background }),
4242
- /* @__PURE__ */ jsxs61("div", { className: "grid gap-0 lg:grid-cols-2 items-stretch overflow-hidden rounded-xl border shadow-sm divide-y lg:divide-y-0 lg:divide-x", children: [
4243
- /* @__PURE__ */ jsx86("div", { className: "min-h-[450px]", children: hasLocations ? /* @__PURE__ */ jsx86(LeafletMap, { locations, mapStyle, className: "h-full min-h-[450px] w-full" }) : /* @__PURE__ */ jsxs61("div", { className: "w-full h-full min-h-[450px] bg-muted flex flex-col items-center justify-center gap-3 text-muted-foreground text-center px-6", children: [
4244
- /* @__PURE__ */ jsx86(MapPin5, { className: "h-10 w-10 opacity-40" }),
4245
- /* @__PURE__ */ jsx86("p", { className: "text-sm", children: "Agreg\xE1 ubicaciones en el Studio \u2014 las direcciones se geocodifican autom\xE1ticamente." })
4052
+ children: /* @__PURE__ */ jsxs60("div", { className: "container mx-auto px-4", children: [
4053
+ /* @__PURE__ */ jsx85(SectionHeader, { title, subtitle, badge, content, background }),
4054
+ /* @__PURE__ */ jsxs60("div", { className: "grid gap-0 lg:grid-cols-2 items-stretch overflow-hidden rounded-xl border shadow-sm divide-y lg:divide-y-0 lg:divide-x", children: [
4055
+ /* @__PURE__ */ jsx85("div", { className: "min-h-[450px]", children: hasLocations ? /* @__PURE__ */ jsx85(LeafletMap, { locations, mapStyle, className: "h-full min-h-[450px] w-full" }) : /* @__PURE__ */ jsxs60("div", { className: "w-full h-full min-h-[450px] bg-muted flex flex-col items-center justify-center gap-3 text-muted-foreground text-center px-6", children: [
4056
+ /* @__PURE__ */ jsx85(MapPin5, { className: "h-10 w-10 opacity-40" }),
4057
+ /* @__PURE__ */ jsx85("p", { className: "text-sm", children: "Agreg\xE1 ubicaciones en el Studio \u2014 las direcciones se geocodifican autom\xE1ticamente." })
4246
4058
  ] }) }),
4247
- /* @__PURE__ */ jsx86("div", { className: "bg-card p-6 sm:p-8 overflow-y-auto max-h-[600px]", children: hasLocations ? /* @__PURE__ */ jsx86("div", { className: "space-y-6", children: locations.map((location, i) => /* @__PURE__ */ jsxs61("div", { className: "pb-6 border-b last:border-0 last:pb-0", children: [
4248
- /* @__PURE__ */ jsxs61("div", { className: "flex items-start gap-2 mb-2", children: [
4249
- /* @__PURE__ */ jsx86(MapPin5, { className: "h-4 w-4 text-primary mt-1 shrink-0" }),
4250
- /* @__PURE__ */ jsx86("h3", { className: "font-semibold", children: location.name })
4059
+ /* @__PURE__ */ jsx85("div", { className: "bg-card p-6 sm:p-8 overflow-y-auto max-h-[600px]", children: hasLocations ? /* @__PURE__ */ jsx85("div", { className: "space-y-6", children: locations.map((location, i) => /* @__PURE__ */ jsxs60("div", { className: "pb-6 border-b last:border-0 last:pb-0", children: [
4060
+ /* @__PURE__ */ jsxs60("div", { className: "flex items-start gap-2 mb-2", children: [
4061
+ /* @__PURE__ */ jsx85(MapPin5, { className: "h-4 w-4 text-primary mt-1 shrink-0" }),
4062
+ /* @__PURE__ */ jsx85("h3", { className: "font-semibold", children: location.name })
4251
4063
  ] }),
4252
- location.phone && /* @__PURE__ */ jsxs61("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-1", children: [
4253
- /* @__PURE__ */ jsx86(Phone4, { className: "h-3.5 w-3.5 shrink-0" }),
4254
- /* @__PURE__ */ jsx86("span", { children: location.phone })
4064
+ location.phone && /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-1", children: [
4065
+ /* @__PURE__ */ jsx85(Phone4, { className: "h-3.5 w-3.5 shrink-0" }),
4066
+ /* @__PURE__ */ jsx85("span", { children: location.phone })
4255
4067
  ] }),
4256
- location.hours && /* @__PURE__ */ jsxs61("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-1", children: [
4257
- /* @__PURE__ */ jsx86(Clock4, { className: "h-3.5 w-3.5 shrink-0" }),
4258
- /* @__PURE__ */ jsx86("span", { children: location.hours })
4068
+ location.hours && /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-1", children: [
4069
+ /* @__PURE__ */ jsx85(Clock4, { className: "h-3.5 w-3.5 shrink-0" }),
4070
+ /* @__PURE__ */ jsx85("span", { children: location.hours })
4259
4071
  ] }),
4260
- location.description && /* @__PURE__ */ jsx86("p", { className: "text-sm text-muted-foreground mt-2", children: location.description }),
4261
- location.address && /* @__PURE__ */ jsxs61(
4072
+ location.description && /* @__PURE__ */ jsx85("p", { className: "text-sm text-muted-foreground mt-2", children: location.description }),
4073
+ location.address && /* @__PURE__ */ jsxs60(
4262
4074
  "a",
4263
4075
  {
4264
4076
  href: `https://maps.google.com/?q=${encodeURIComponent(location.address)}`,
@@ -4266,12 +4078,12 @@ function MapSplit({ title, subtitle, content, badge, locations, mapStyle, backgr
4266
4078
  rel: "noopener noreferrer",
4267
4079
  className: "inline-flex items-center gap-1 mt-3 text-sm font-medium text-primary hover:underline",
4268
4080
  children: [
4269
- /* @__PURE__ */ jsx86(MapPinned2, { className: "h-3.5 w-3.5 shrink-0" }),
4081
+ /* @__PURE__ */ jsx85(MapPinned2, { className: "h-3.5 w-3.5 shrink-0" }),
4270
4082
  location.address
4271
4083
  ]
4272
4084
  }
4273
4085
  )
4274
- ] }, i)) }) : /* @__PURE__ */ jsx86("p", { className: "text-sm text-muted-foreground", children: "No hay ubicaciones agregadas a\xFAn." }) })
4086
+ ] }, i)) }) : /* @__PURE__ */ jsx85("p", { className: "text-sm text-muted-foreground", children: "No hay ubicaciones agregadas a\xFAn." }) })
4275
4087
  ] })
4276
4088
  ] })
4277
4089
  }
@@ -4279,23 +4091,23 @@ function MapSplit({ title, subtitle, content, badge, locations, mapStyle, backgr
4279
4091
  }
4280
4092
 
4281
4093
  // src/sections/map/index.tsx
4282
- import { jsx as jsx87 } from "react/jsx-runtime";
4094
+ import { jsx as jsx86 } from "react/jsx-runtime";
4283
4095
  function MapSection(props) {
4284
4096
  switch (props.variant) {
4285
4097
  case "listing":
4286
- return /* @__PURE__ */ jsx87(MapListing, { ...props });
4098
+ return /* @__PURE__ */ jsx86(MapListing, { ...props });
4287
4099
  case "split":
4288
- return /* @__PURE__ */ jsx87(MapSplit, { ...props });
4100
+ return /* @__PURE__ */ jsx86(MapSplit, { ...props });
4289
4101
  case "pins":
4290
4102
  default:
4291
- return /* @__PURE__ */ jsx87(MapPins, { ...props });
4103
+ return /* @__PURE__ */ jsx86(MapPins, { ...props });
4292
4104
  }
4293
4105
  }
4294
4106
 
4295
4107
  // src/sections/iframe/variants/iframe-simple.tsx
4296
- import { jsx as jsx88, jsxs as jsxs62 } from "react/jsx-runtime";
4108
+ import { jsx as jsx87, jsxs as jsxs61 } from "react/jsx-runtime";
4297
4109
  function IframeSimple({ title, subtitle, content, badge, src, iframeTitle, height, background }) {
4298
- return /* @__PURE__ */ jsx88(
4110
+ return /* @__PURE__ */ jsx87(
4299
4111
  "section",
4300
4112
  {
4301
4113
  className: cn(
@@ -4308,9 +4120,9 @@ function IframeSimple({ title, subtitle, content, badge, src, iframeTitle, heigh
4308
4120
  background === "warning" && "bg-warning text-warning-foreground",
4309
4121
  background === "error" && "bg-error text-error-foreground"
4310
4122
  ),
4311
- children: /* @__PURE__ */ jsxs62("div", { className: "container mx-auto px-4", children: [
4312
- /* @__PURE__ */ jsx88(SectionHeader, { title, subtitle, badge, content, background }),
4313
- /* @__PURE__ */ jsx88(
4123
+ children: /* @__PURE__ */ jsxs61("div", { className: "container mx-auto px-4", children: [
4124
+ /* @__PURE__ */ jsx87(SectionHeader, { title, subtitle, badge, content, background }),
4125
+ /* @__PURE__ */ jsx87(
4314
4126
  "iframe",
4315
4127
  {
4316
4128
  src,
@@ -4327,9 +4139,9 @@ function IframeSimple({ title, subtitle, content, badge, src, iframeTitle, heigh
4327
4139
  }
4328
4140
 
4329
4141
  // src/sections/iframe/variants/iframe-card.tsx
4330
- import { jsx as jsx89, jsxs as jsxs63 } from "react/jsx-runtime";
4142
+ import { jsx as jsx88, jsxs as jsxs62 } from "react/jsx-runtime";
4331
4143
  function IframeCard({ title, subtitle, content, badge, src, iframeTitle, height, background }) {
4332
- return /* @__PURE__ */ jsx89(
4144
+ return /* @__PURE__ */ jsx88(
4333
4145
  "section",
4334
4146
  {
4335
4147
  className: cn(
@@ -4342,9 +4154,9 @@ function IframeCard({ title, subtitle, content, badge, src, iframeTitle, height,
4342
4154
  background === "warning" && "bg-warning text-warning-foreground",
4343
4155
  background === "error" && "bg-error text-error-foreground"
4344
4156
  ),
4345
- children: /* @__PURE__ */ jsxs63("div", { className: "container mx-auto px-4", children: [
4346
- /* @__PURE__ */ jsx89(SectionHeader, { title, subtitle, badge, content, background }),
4347
- /* @__PURE__ */ jsx89("div", { className: "rounded-xl overflow-hidden shadow-lg border", children: /* @__PURE__ */ jsx89(
4157
+ children: /* @__PURE__ */ jsxs62("div", { className: "container mx-auto px-4", children: [
4158
+ /* @__PURE__ */ jsx88(SectionHeader, { title, subtitle, badge, content, background }),
4159
+ /* @__PURE__ */ jsx88("div", { className: "rounded-xl overflow-hidden shadow-lg border", children: /* @__PURE__ */ jsx88(
4348
4160
  "iframe",
4349
4161
  {
4350
4162
  src,
@@ -4361,10 +4173,10 @@ function IframeCard({ title, subtitle, content, badge, src, iframeTitle, height,
4361
4173
  }
4362
4174
 
4363
4175
  // src/sections/iframe/variants/iframe-responsive.tsx
4364
- import { jsx as jsx90, jsxs as jsxs64 } from "react/jsx-runtime";
4176
+ import { jsx as jsx89, jsxs as jsxs63 } from "react/jsx-runtime";
4365
4177
  function IframeResponsive({ title, subtitle, content, badge, src, iframeTitle, height, aspectRatio, background }) {
4366
4178
  const isFixedHeight = !aspectRatio || aspectRatio === "auto";
4367
- return /* @__PURE__ */ jsx90(
4179
+ return /* @__PURE__ */ jsx89(
4368
4180
  "section",
4369
4181
  {
4370
4182
  className: cn(
@@ -4377,9 +4189,9 @@ function IframeResponsive({ title, subtitle, content, badge, src, iframeTitle, h
4377
4189
  background === "warning" && "bg-warning text-warning-foreground",
4378
4190
  background === "error" && "bg-error text-error-foreground"
4379
4191
  ),
4380
- children: /* @__PURE__ */ jsxs64("div", { className: "container mx-auto px-4", children: [
4381
- /* @__PURE__ */ jsx90(SectionHeader, { title, subtitle, badge, content, background }),
4382
- isFixedHeight ? /* @__PURE__ */ jsx90(
4192
+ children: /* @__PURE__ */ jsxs63("div", { className: "container mx-auto px-4", children: [
4193
+ /* @__PURE__ */ jsx89(SectionHeader, { title, subtitle, badge, content, background }),
4194
+ isFixedHeight ? /* @__PURE__ */ jsx89(
4383
4195
  "iframe",
4384
4196
  {
4385
4197
  src,
@@ -4389,7 +4201,7 @@ function IframeResponsive({ title, subtitle, content, badge, src, iframeTitle, h
4389
4201
  allowFullScreen: true,
4390
4202
  sandbox: "allow-scripts allow-same-origin allow-popups allow-forms"
4391
4203
  }
4392
- ) : /* @__PURE__ */ jsx90(
4204
+ ) : /* @__PURE__ */ jsx89(
4393
4205
  "div",
4394
4206
  {
4395
4207
  className: cn(
@@ -4397,7 +4209,7 @@ function IframeResponsive({ title, subtitle, content, badge, src, iframeTitle, h
4397
4209
  aspectRatio === "video" && "aspect-video",
4398
4210
  aspectRatio === "square" && "aspect-square"
4399
4211
  ),
4400
- children: /* @__PURE__ */ jsx90(
4212
+ children: /* @__PURE__ */ jsx89(
4401
4213
  "iframe",
4402
4214
  {
4403
4215
  src,
@@ -4415,24 +4227,24 @@ function IframeResponsive({ title, subtitle, content, badge, src, iframeTitle, h
4415
4227
  }
4416
4228
 
4417
4229
  // src/sections/iframe/index.tsx
4418
- import { jsx as jsx91 } from "react/jsx-runtime";
4230
+ import { jsx as jsx90 } from "react/jsx-runtime";
4419
4231
  function IframeSection(props) {
4420
4232
  switch (props.variant) {
4421
4233
  case "card":
4422
- return /* @__PURE__ */ jsx91(IframeCard, { ...props });
4234
+ return /* @__PURE__ */ jsx90(IframeCard, { ...props });
4423
4235
  case "responsive":
4424
- return /* @__PURE__ */ jsx91(IframeResponsive, { ...props });
4236
+ return /* @__PURE__ */ jsx90(IframeResponsive, { ...props });
4425
4237
  case "simple":
4426
4238
  default:
4427
- return /* @__PURE__ */ jsx91(IframeSimple, { ...props });
4239
+ return /* @__PURE__ */ jsx90(IframeSimple, { ...props });
4428
4240
  }
4429
4241
  }
4430
4242
 
4431
4243
  // src/sections/comparison/variants/comparison-table.tsx
4432
4244
  import { Minus } from "lucide-react";
4433
- import { jsx as jsx92, jsxs as jsxs65 } from "react/jsx-runtime";
4245
+ import { jsx as jsx91, jsxs as jsxs64 } from "react/jsx-runtime";
4434
4246
  function ComparisonTable({ title, subtitle, content, badge, allFeatures, columns, background }) {
4435
- return /* @__PURE__ */ jsx92(
4247
+ return /* @__PURE__ */ jsx91(
4436
4248
  "section",
4437
4249
  {
4438
4250
  className: cn(
@@ -4445,46 +4257,46 @@ function ComparisonTable({ title, subtitle, content, badge, allFeatures, columns
4445
4257
  background === "warning" && "bg-warning text-warning-foreground",
4446
4258
  background === "error" && "bg-error text-error-foreground"
4447
4259
  ),
4448
- children: /* @__PURE__ */ jsxs65("div", { className: "container mx-auto px-4", children: [
4449
- /* @__PURE__ */ jsx92(SectionHeader, { title, subtitle, badge, content, background }),
4450
- /* @__PURE__ */ jsx92("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs65("table", { className: "min-w-[600px] w-full border-collapse", children: [
4451
- /* @__PURE__ */ jsx92("thead", { children: /* @__PURE__ */ jsxs65("tr", { children: [
4452
- /* @__PURE__ */ jsx92("th", { className: "text-left p-4 font-semibold text-muted-foreground w-48", children: "Caracter\xEDsticas" }),
4453
- columns.map((col, i) => /* @__PURE__ */ jsx92(
4260
+ children: /* @__PURE__ */ jsxs64("div", { className: "container mx-auto px-4", children: [
4261
+ /* @__PURE__ */ jsx91(SectionHeader, { title, subtitle, badge, content, background }),
4262
+ /* @__PURE__ */ jsx91("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs64("table", { className: "min-w-[600px] w-full border-collapse", children: [
4263
+ /* @__PURE__ */ jsx91("thead", { children: /* @__PURE__ */ jsxs64("tr", { children: [
4264
+ /* @__PURE__ */ jsx91("th", { className: "text-left p-4 font-semibold text-muted-foreground w-48", children: "Caracter\xEDsticas" }),
4265
+ columns.map((col, i) => /* @__PURE__ */ jsx91(
4454
4266
  "th",
4455
4267
  {
4456
4268
  className: cn(
4457
4269
  "p-4 text-center",
4458
4270
  col.highlighted && "bg-primary/5 border-x border-primary"
4459
4271
  ),
4460
- children: /* @__PURE__ */ jsxs65("div", { className: "flex flex-col items-center gap-1", children: [
4461
- col.badge && /* @__PURE__ */ jsx92(Badge, { variant: "secondary", className: "mb-1", children: col.badge }),
4462
- /* @__PURE__ */ jsx92("span", { className: "font-bold text-lg", children: col.name }),
4463
- col.price && /* @__PURE__ */ jsxs65("span", { className: "text-2xl font-bold", children: [
4272
+ children: /* @__PURE__ */ jsxs64("div", { className: "flex flex-col items-center gap-1", children: [
4273
+ col.badge && /* @__PURE__ */ jsx91(Badge, { variant: "secondary", className: "mb-1", children: col.badge }),
4274
+ /* @__PURE__ */ jsx91("span", { className: "font-bold text-lg", children: col.name }),
4275
+ col.price && /* @__PURE__ */ jsxs64("span", { className: "text-2xl font-bold", children: [
4464
4276
  col.price,
4465
- col.priceFrequency && /* @__PURE__ */ jsxs65("span", { className: "text-sm font-normal text-muted-foreground", children: [
4277
+ col.priceFrequency && /* @__PURE__ */ jsxs64("span", { className: "text-sm font-normal text-muted-foreground", children: [
4466
4278
  "/",
4467
4279
  col.priceFrequency
4468
4280
  ] })
4469
4281
  ] }),
4470
- col.description && /* @__PURE__ */ jsx92("p", { className: "text-sm text-muted-foreground", children: col.description })
4282
+ col.description && /* @__PURE__ */ jsx91("p", { className: "text-sm text-muted-foreground", children: col.description })
4471
4283
  ] })
4472
4284
  },
4473
4285
  i
4474
4286
  ))
4475
4287
  ] }) }),
4476
- /* @__PURE__ */ jsx92("tbody", { children: allFeatures.map((feature, fi) => /* @__PURE__ */ jsxs65("tr", { className: "border-t", children: [
4477
- /* @__PURE__ */ jsx92("td", { className: "p-4 text-sm", children: feature }),
4288
+ /* @__PURE__ */ jsx91("tbody", { children: allFeatures.map((feature, fi) => /* @__PURE__ */ jsxs64("tr", { className: "border-t", children: [
4289
+ /* @__PURE__ */ jsx91("td", { className: "p-4 text-sm", children: feature }),
4478
4290
  columns.map((col, ci) => {
4479
4291
  const cell = col.cells?.[fi] ?? "";
4480
- return /* @__PURE__ */ jsx92(
4292
+ return /* @__PURE__ */ jsx91(
4481
4293
  "td",
4482
4294
  {
4483
4295
  className: cn(
4484
4296
  "p-4 text-center",
4485
4297
  col.highlighted && "bg-primary/5 border-x border-primary"
4486
4298
  ),
4487
- children: cell ? /* @__PURE__ */ jsx92("span", { className: "text-base leading-none", children: cell }) : /* @__PURE__ */ jsx92(Minus, { className: "h-5 w-5 text-muted-foreground mx-auto" })
4299
+ children: cell ? /* @__PURE__ */ jsx91("span", { className: "text-base leading-none", children: cell }) : /* @__PURE__ */ jsx91(Minus, { className: "h-5 w-5 text-muted-foreground mx-auto" })
4488
4300
  },
4489
4301
  ci
4490
4302
  );
@@ -4497,9 +4309,9 @@ function ComparisonTable({ title, subtitle, content, badge, allFeatures, columns
4497
4309
  }
4498
4310
 
4499
4311
  // src/sections/comparison/variants/comparison-cards.tsx
4500
- import { jsx as jsx93, jsxs as jsxs66 } from "react/jsx-runtime";
4312
+ import { jsx as jsx92, jsxs as jsxs65 } from "react/jsx-runtime";
4501
4313
  function ComparisonCards({ title, subtitle, content, badge, allFeatures, columns, background }) {
4502
- return /* @__PURE__ */ jsx93(
4314
+ return /* @__PURE__ */ jsx92(
4503
4315
  "section",
4504
4316
  {
4505
4317
  className: cn(
@@ -4512,9 +4324,9 @@ function ComparisonCards({ title, subtitle, content, badge, allFeatures, columns
4512
4324
  background === "warning" && "bg-warning text-warning-foreground",
4513
4325
  background === "error" && "bg-error text-error-foreground"
4514
4326
  ),
4515
- children: /* @__PURE__ */ jsxs66("div", { className: "container mx-auto px-4", children: [
4516
- /* @__PURE__ */ jsx93(SectionHeader, { title, subtitle, badge, content, background }),
4517
- /* @__PURE__ */ jsx93("div", { className: "flex flex-wrap justify-center gap-6 items-end", children: columns.map((col, i) => /* @__PURE__ */ jsxs66(
4327
+ children: /* @__PURE__ */ jsxs65("div", { className: "container mx-auto px-4", children: [
4328
+ /* @__PURE__ */ jsx92(SectionHeader, { title, subtitle, badge, content, background }),
4329
+ /* @__PURE__ */ jsx92("div", { className: "flex flex-wrap justify-center gap-6 items-end", children: columns.map((col, i) => /* @__PURE__ */ jsxs65(
4518
4330
  "div",
4519
4331
  {
4520
4332
  className: cn(
@@ -4522,32 +4334,32 @@ function ComparisonCards({ title, subtitle, content, badge, allFeatures, columns
4522
4334
  col.highlighted && "border-primary shadow-lg scale-105"
4523
4335
  ),
4524
4336
  children: [
4525
- col.badge && /* @__PURE__ */ jsx93(Badge, { variant: "secondary", className: "mb-3 self-start", children: col.badge }),
4526
- /* @__PURE__ */ jsx93("h3", { className: "text-xl font-bold mb-1", children: col.name }),
4527
- col.description && /* @__PURE__ */ jsx93("p", { className: "text-sm text-muted-foreground mb-4", children: col.description }),
4528
- col.price && /* @__PURE__ */ jsxs66("div", { className: "mb-6", children: [
4529
- /* @__PURE__ */ jsx93("span", { className: "text-4xl font-bold", children: col.price }),
4530
- col.priceFrequency && /* @__PURE__ */ jsxs66("span", { className: "text-muted-foreground text-sm", children: [
4337
+ col.badge && /* @__PURE__ */ jsx92(Badge, { variant: "secondary", className: "mb-3 self-start", children: col.badge }),
4338
+ /* @__PURE__ */ jsx92("h3", { className: "text-xl font-bold mb-1", children: col.name }),
4339
+ col.description && /* @__PURE__ */ jsx92("p", { className: "text-sm text-muted-foreground mb-4", children: col.description }),
4340
+ col.price && /* @__PURE__ */ jsxs65("div", { className: "mb-6", children: [
4341
+ /* @__PURE__ */ jsx92("span", { className: "text-4xl font-bold", children: col.price }),
4342
+ col.priceFrequency && /* @__PURE__ */ jsxs65("span", { className: "text-muted-foreground text-sm", children: [
4531
4343
  "/",
4532
4344
  col.priceFrequency
4533
4345
  ] })
4534
4346
  ] }),
4535
- /* @__PURE__ */ jsx93("ul", { className: "space-y-2 mb-8 flex-1", children: allFeatures.map((feature, fi) => {
4347
+ /* @__PURE__ */ jsx92("ul", { className: "space-y-2 mb-8 flex-1", children: allFeatures.map((feature, fi) => {
4536
4348
  const cell = col.cells?.[fi] ?? "";
4537
4349
  if (!cell) return null;
4538
- return /* @__PURE__ */ jsxs66("li", { className: "flex items-center gap-2 text-sm", children: [
4539
- /* @__PURE__ */ jsx93("span", { className: "text-base leading-none shrink-0", children: cell }),
4540
- /* @__PURE__ */ jsx93("span", { children: feature })
4350
+ return /* @__PURE__ */ jsxs65("li", { className: "flex items-center gap-2 text-sm", children: [
4351
+ /* @__PURE__ */ jsx92("span", { className: "text-base leading-none shrink-0", children: cell }),
4352
+ /* @__PURE__ */ jsx92("span", { children: feature })
4541
4353
  ] }, fi);
4542
4354
  }) }),
4543
- col.cta?.label && /* @__PURE__ */ jsx93(
4355
+ col.cta?.label && /* @__PURE__ */ jsx92(
4544
4356
  Button,
4545
4357
  {
4546
4358
  asChild: true,
4547
4359
  variant: col.cta.variant ?? "default",
4548
4360
  size: col.cta.size ?? "lg",
4549
4361
  className: "w-full",
4550
- children: /* @__PURE__ */ jsx93("a", { href: col.cta.href, children: col.cta.label })
4362
+ children: /* @__PURE__ */ jsx92("a", { href: col.cta.href, children: col.cta.label })
4551
4363
  }
4552
4364
  )
4553
4365
  ]
@@ -4561,12 +4373,12 @@ function ComparisonCards({ title, subtitle, content, badge, allFeatures, columns
4561
4373
 
4562
4374
  // src/sections/comparison/variants/comparison-highlights.tsx
4563
4375
  import { Check as Check2, Minus as Minus2 } from "lucide-react";
4564
- import { jsx as jsx94, jsxs as jsxs67 } from "react/jsx-runtime";
4376
+ import { jsx as jsx93, jsxs as jsxs66 } from "react/jsx-runtime";
4565
4377
  function ComparisonHighlights({ title, subtitle, content, badge, allFeatures, columns, background }) {
4566
4378
  const hasValue = (col, fi) => !!(col.cells?.[fi] ?? "");
4567
4379
  const sharedRows = allFeatures.filter((_, fi) => columns.every((col) => hasValue(col, fi)));
4568
4380
  const differingRows = allFeatures.map((f, fi) => ({ f, fi })).filter(({ fi }) => !columns.every((col) => hasValue(col, fi)));
4569
- return /* @__PURE__ */ jsx94(
4381
+ return /* @__PURE__ */ jsx93(
4570
4382
  "section",
4571
4383
  {
4572
4384
  className: cn(
@@ -4579,27 +4391,27 @@ function ComparisonHighlights({ title, subtitle, content, badge, allFeatures, co
4579
4391
  background === "warning" && "bg-warning text-warning-foreground",
4580
4392
  background === "error" && "bg-error text-error-foreground"
4581
4393
  ),
4582
- children: /* @__PURE__ */ jsxs67("div", { className: "container mx-auto px-4", children: [
4583
- /* @__PURE__ */ jsx94(SectionHeader, { title, subtitle, badge, content, background }),
4584
- sharedRows.length > 0 && /* @__PURE__ */ jsxs67("div", { className: "mb-12", children: [
4585
- /* @__PURE__ */ jsx94("h3", { className: "text-lg font-semibold mb-4", children: "Todos los planes incluyen" }),
4586
- /* @__PURE__ */ jsx94("ul", { className: "grid sm:grid-cols-2 gap-2", children: sharedRows.map((feature, i) => /* @__PURE__ */ jsxs67("li", { className: "flex items-center gap-2 text-sm", children: [
4587
- /* @__PURE__ */ jsx94(Check2, { className: "h-4 w-4 text-green-500 shrink-0" }),
4588
- /* @__PURE__ */ jsx94("span", { children: feature })
4394
+ children: /* @__PURE__ */ jsxs66("div", { className: "container mx-auto px-4", children: [
4395
+ /* @__PURE__ */ jsx93(SectionHeader, { title, subtitle, badge, content, background }),
4396
+ sharedRows.length > 0 && /* @__PURE__ */ jsxs66("div", { className: "mb-12", children: [
4397
+ /* @__PURE__ */ jsx93("h3", { className: "text-lg font-semibold mb-4", children: "Todos los planes incluyen" }),
4398
+ /* @__PURE__ */ jsx93("ul", { className: "grid sm:grid-cols-2 gap-2", children: sharedRows.map((feature, i) => /* @__PURE__ */ jsxs66("li", { className: "flex items-center gap-2 text-sm", children: [
4399
+ /* @__PURE__ */ jsx93(Check2, { className: "h-4 w-4 text-green-500 shrink-0" }),
4400
+ /* @__PURE__ */ jsx93("span", { children: feature })
4589
4401
  ] }, i)) })
4590
4402
  ] }),
4591
- differingRows.length > 0 && /* @__PURE__ */ jsxs67("div", { children: [
4592
- /* @__PURE__ */ jsx94("h3", { className: "text-lg font-semibold mb-4", children: "Lo que cambia entre planes" }),
4593
- /* @__PURE__ */ jsx94("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs67("table", { className: "min-w-[500px] w-full border-collapse text-sm", children: [
4594
- /* @__PURE__ */ jsx94("thead", { children: /* @__PURE__ */ jsxs67("tr", { className: "border-b", children: [
4595
- /* @__PURE__ */ jsx94("th", { className: "text-left p-3 text-muted-foreground font-medium w-48", children: "Caracter\xEDstica" }),
4596
- columns.map((col, i) => /* @__PURE__ */ jsx94("th", { className: "p-3 text-center font-semibold", children: col.name }, i))
4403
+ differingRows.length > 0 && /* @__PURE__ */ jsxs66("div", { children: [
4404
+ /* @__PURE__ */ jsx93("h3", { className: "text-lg font-semibold mb-4", children: "Lo que cambia entre planes" }),
4405
+ /* @__PURE__ */ jsx93("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs66("table", { className: "min-w-[500px] w-full border-collapse text-sm", children: [
4406
+ /* @__PURE__ */ jsx93("thead", { children: /* @__PURE__ */ jsxs66("tr", { className: "border-b", children: [
4407
+ /* @__PURE__ */ jsx93("th", { className: "text-left p-3 text-muted-foreground font-medium w-48", children: "Caracter\xEDstica" }),
4408
+ columns.map((col, i) => /* @__PURE__ */ jsx93("th", { className: "p-3 text-center font-semibold", children: col.name }, i))
4597
4409
  ] }) }),
4598
- /* @__PURE__ */ jsx94("tbody", { children: differingRows.map(({ f: feature, fi }) => /* @__PURE__ */ jsxs67("tr", { className: "border-b last:border-0", children: [
4599
- /* @__PURE__ */ jsx94("td", { className: "p-3", children: feature }),
4410
+ /* @__PURE__ */ jsx93("tbody", { children: differingRows.map(({ f: feature, fi }) => /* @__PURE__ */ jsxs66("tr", { className: "border-b last:border-0", children: [
4411
+ /* @__PURE__ */ jsx93("td", { className: "p-3", children: feature }),
4600
4412
  columns.map((col, ci) => {
4601
4413
  const cell = col.cells?.[fi] ?? "";
4602
- return /* @__PURE__ */ jsx94("td", { className: "p-3 text-center", children: cell ? /* @__PURE__ */ jsx94("span", { className: "text-base leading-none", children: cell }) : /* @__PURE__ */ jsx94(Minus2, { className: "h-4 w-4 text-muted-foreground mx-auto" }) }, ci);
4414
+ return /* @__PURE__ */ jsx93("td", { className: "p-3 text-center", children: cell ? /* @__PURE__ */ jsx93("span", { className: "text-base leading-none", children: cell }) : /* @__PURE__ */ jsx93(Minus2, { className: "h-4 w-4 text-muted-foreground mx-auto" }) }, ci);
4603
4415
  })
4604
4416
  ] }, fi)) })
4605
4417
  ] }) })
@@ -4610,22 +4422,22 @@ function ComparisonHighlights({ title, subtitle, content, badge, allFeatures, co
4610
4422
  }
4611
4423
 
4612
4424
  // src/sections/comparison/index.tsx
4613
- import { jsx as jsx95 } from "react/jsx-runtime";
4425
+ import { jsx as jsx94 } from "react/jsx-runtime";
4614
4426
  function Comparison(props) {
4615
4427
  switch (props.variant) {
4616
4428
  case "cards":
4617
- return /* @__PURE__ */ jsx95(ComparisonCards, { ...props });
4429
+ return /* @__PURE__ */ jsx94(ComparisonCards, { ...props });
4618
4430
  case "highlights":
4619
- return /* @__PURE__ */ jsx95(ComparisonHighlights, { ...props });
4431
+ return /* @__PURE__ */ jsx94(ComparisonHighlights, { ...props });
4620
4432
  case "table":
4621
4433
  default:
4622
- return /* @__PURE__ */ jsx95(ComparisonTable, { ...props });
4434
+ return /* @__PURE__ */ jsx94(ComparisonTable, { ...props });
4623
4435
  }
4624
4436
  }
4625
4437
 
4626
4438
  // src/sections/duplex/variants/duplex-image-left.tsx
4627
4439
  import { Check as Check3 } from "lucide-react";
4628
- import { jsx as jsx96, jsxs as jsxs68 } from "react/jsx-runtime";
4440
+ import { jsx as jsx95, jsxs as jsxs67 } from "react/jsx-runtime";
4629
4441
  function DuplexImageLeft({
4630
4442
  badge,
4631
4443
  heading,
@@ -4638,7 +4450,7 @@ function DuplexImageLeft({
4638
4450
  bullets,
4639
4451
  background
4640
4452
  }) {
4641
- return /* @__PURE__ */ jsx96(
4453
+ return /* @__PURE__ */ jsx95(
4642
4454
  "section",
4643
4455
  {
4644
4456
  className: cn(
@@ -4651,8 +4463,8 @@ function DuplexImageLeft({
4651
4463
  background === "warning" && "bg-warning text-warning-foreground",
4652
4464
  background === "error" && "bg-error text-error-foreground"
4653
4465
  ),
4654
- children: /* @__PURE__ */ jsx96("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs68("div", { className: "grid items-center gap-12 lg:grid-cols-2", children: [
4655
- /* @__PURE__ */ jsx96("div", { children: videoUrl ? /* @__PURE__ */ jsx96(
4466
+ children: /* @__PURE__ */ jsx95("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs67("div", { className: "grid items-center gap-12 lg:grid-cols-2", children: [
4467
+ /* @__PURE__ */ jsx95("div", { children: videoUrl ? /* @__PURE__ */ jsx95(
4656
4468
  "video",
4657
4469
  {
4658
4470
  src: videoUrl,
@@ -4662,32 +4474,32 @@ function DuplexImageLeft({
4662
4474
  loop: true,
4663
4475
  playsInline: true
4664
4476
  }
4665
- ) : image?.url ? /* @__PURE__ */ jsx96(
4477
+ ) : image?.url ? /* @__PURE__ */ jsx95(
4666
4478
  "img",
4667
4479
  {
4668
4480
  src: image.url,
4669
4481
  alt: image.alt ?? heading,
4670
4482
  className: "w-full rounded-2xl shadow-lg object-cover"
4671
4483
  }
4672
- ) : /* @__PURE__ */ jsx96("div", { className: "w-full h-64 rounded-2xl bg-muted" }) }),
4673
- /* @__PURE__ */ jsxs68("div", { children: [
4674
- badge && /* @__PURE__ */ jsx96(Badge, { variant: "secondary", className: "mb-4", children: badge }),
4675
- /* @__PURE__ */ jsx96("h2", { className: "text-2xl sm:text-3xl md:text-4xl font-bold", children: heading }),
4676
- body && /* @__PURE__ */ jsx96("p", { className: "text-muted-foreground text-lg mt-4", children: body }),
4677
- content && /* @__PURE__ */ jsx96(
4484
+ ) : /* @__PURE__ */ jsx95("div", { className: "w-full h-64 rounded-2xl bg-muted" }) }),
4485
+ /* @__PURE__ */ jsxs67("div", { children: [
4486
+ badge && /* @__PURE__ */ jsx95(Badge, { variant: "secondary", className: "mb-4", children: badge }),
4487
+ /* @__PURE__ */ jsx95("h2", { className: "text-2xl sm:text-3xl md:text-4xl font-bold", children: heading }),
4488
+ body && /* @__PURE__ */ jsx95("p", { className: "text-muted-foreground text-lg mt-4", children: body }),
4489
+ content && /* @__PURE__ */ jsx95(
4678
4490
  "div",
4679
4491
  {
4680
4492
  className: "richtext-content mt-4 text-muted-foreground",
4681
4493
  dangerouslySetInnerHTML: { __html: content }
4682
4494
  }
4683
4495
  ),
4684
- bullets && bullets.length > 0 && /* @__PURE__ */ jsx96("ul", { className: "mt-4 space-y-2", children: bullets.map((bullet, i) => /* @__PURE__ */ jsxs68("li", { className: "flex items-center gap-2 text-sm", children: [
4685
- /* @__PURE__ */ jsx96(Check3, { className: "h-4 w-4 text-green-500 shrink-0" }),
4686
- /* @__PURE__ */ jsx96("span", { children: bullet })
4496
+ bullets && bullets.length > 0 && /* @__PURE__ */ jsx95("ul", { className: "mt-4 space-y-2", children: bullets.map((bullet, i) => /* @__PURE__ */ jsxs67("li", { className: "flex items-center gap-2 text-sm", children: [
4497
+ /* @__PURE__ */ jsx95(Check3, { className: "h-4 w-4 text-green-500 shrink-0" }),
4498
+ /* @__PURE__ */ jsx95("span", { children: bullet })
4687
4499
  ] }, i)) }),
4688
- (primaryCTA?.label || secondaryCTA?.label) && /* @__PURE__ */ jsxs68("div", { className: "flex flex-wrap gap-3 mt-6", children: [
4689
- primaryCTA?.label && /* @__PURE__ */ jsx96(Button, { asChild: true, variant: primaryCTA.variant ?? "default", size: primaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx96("a", { href: primaryCTA.href, children: primaryCTA.label }) }),
4690
- secondaryCTA?.label && /* @__PURE__ */ jsx96(Button, { asChild: true, variant: secondaryCTA.variant ?? "outline", size: secondaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx96("a", { href: secondaryCTA.href, children: secondaryCTA.label }) })
4500
+ (primaryCTA?.label || secondaryCTA?.label) && /* @__PURE__ */ jsxs67("div", { className: "flex flex-wrap gap-3 mt-6", children: [
4501
+ primaryCTA?.label && /* @__PURE__ */ jsx95(Button, { asChild: true, variant: primaryCTA.variant ?? "default", size: primaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx95("a", { href: primaryCTA.href, children: primaryCTA.label }) }),
4502
+ secondaryCTA?.label && /* @__PURE__ */ jsx95(Button, { asChild: true, variant: secondaryCTA.variant ?? "outline", size: secondaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx95("a", { href: secondaryCTA.href, children: secondaryCTA.label }) })
4691
4503
  ] })
4692
4504
  ] })
4693
4505
  ] }) })
@@ -4697,7 +4509,7 @@ function DuplexImageLeft({
4697
4509
 
4698
4510
  // src/sections/duplex/variants/duplex-image-right.tsx
4699
4511
  import { Check as Check4 } from "lucide-react";
4700
- import { jsx as jsx97, jsxs as jsxs69 } from "react/jsx-runtime";
4512
+ import { jsx as jsx96, jsxs as jsxs68 } from "react/jsx-runtime";
4701
4513
  function DuplexImageRight({
4702
4514
  badge,
4703
4515
  heading,
@@ -4710,7 +4522,7 @@ function DuplexImageRight({
4710
4522
  bullets,
4711
4523
  background
4712
4524
  }) {
4713
- return /* @__PURE__ */ jsx97(
4525
+ return /* @__PURE__ */ jsx96(
4714
4526
  "section",
4715
4527
  {
4716
4528
  className: cn(
@@ -4723,28 +4535,28 @@ function DuplexImageRight({
4723
4535
  background === "warning" && "bg-warning text-warning-foreground",
4724
4536
  background === "error" && "bg-error text-error-foreground"
4725
4537
  ),
4726
- children: /* @__PURE__ */ jsx97("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs69("div", { className: "grid items-center gap-12 lg:grid-cols-2", children: [
4727
- /* @__PURE__ */ jsxs69("div", { children: [
4728
- badge && /* @__PURE__ */ jsx97(Badge, { variant: "secondary", className: "mb-4", children: badge }),
4729
- /* @__PURE__ */ jsx97("h2", { className: "text-2xl sm:text-3xl md:text-4xl font-bold", children: heading }),
4730
- body && /* @__PURE__ */ jsx97("p", { className: "text-muted-foreground text-lg mt-4", children: body }),
4731
- content && /* @__PURE__ */ jsx97(
4538
+ children: /* @__PURE__ */ jsx96("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs68("div", { className: "grid items-center gap-12 lg:grid-cols-2", children: [
4539
+ /* @__PURE__ */ jsxs68("div", { children: [
4540
+ badge && /* @__PURE__ */ jsx96(Badge, { variant: "secondary", className: "mb-4", children: badge }),
4541
+ /* @__PURE__ */ jsx96("h2", { className: "text-2xl sm:text-3xl md:text-4xl font-bold", children: heading }),
4542
+ body && /* @__PURE__ */ jsx96("p", { className: "text-muted-foreground text-lg mt-4", children: body }),
4543
+ content && /* @__PURE__ */ jsx96(
4732
4544
  "div",
4733
4545
  {
4734
4546
  className: "richtext-content mt-4 text-muted-foreground",
4735
4547
  dangerouslySetInnerHTML: { __html: content }
4736
4548
  }
4737
4549
  ),
4738
- bullets && bullets.length > 0 && /* @__PURE__ */ jsx97("ul", { className: "mt-4 space-y-2", children: bullets.map((bullet, i) => /* @__PURE__ */ jsxs69("li", { className: "flex items-center gap-2 text-sm", children: [
4739
- /* @__PURE__ */ jsx97(Check4, { className: "h-4 w-4 text-green-500 shrink-0" }),
4740
- /* @__PURE__ */ jsx97("span", { children: bullet })
4550
+ bullets && bullets.length > 0 && /* @__PURE__ */ jsx96("ul", { className: "mt-4 space-y-2", children: bullets.map((bullet, i) => /* @__PURE__ */ jsxs68("li", { className: "flex items-center gap-2 text-sm", children: [
4551
+ /* @__PURE__ */ jsx96(Check4, { className: "h-4 w-4 text-green-500 shrink-0" }),
4552
+ /* @__PURE__ */ jsx96("span", { children: bullet })
4741
4553
  ] }, i)) }),
4742
- (primaryCTA?.label || secondaryCTA?.label) && /* @__PURE__ */ jsxs69("div", { className: "flex flex-wrap gap-3 mt-6", children: [
4743
- primaryCTA?.label && /* @__PURE__ */ jsx97(Button, { asChild: true, variant: primaryCTA.variant ?? "default", size: primaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx97("a", { href: primaryCTA.href, children: primaryCTA.label }) }),
4744
- secondaryCTA?.label && /* @__PURE__ */ jsx97(Button, { asChild: true, variant: secondaryCTA.variant ?? "outline", size: secondaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx97("a", { href: secondaryCTA.href, children: secondaryCTA.label }) })
4554
+ (primaryCTA?.label || secondaryCTA?.label) && /* @__PURE__ */ jsxs68("div", { className: "flex flex-wrap gap-3 mt-6", children: [
4555
+ primaryCTA?.label && /* @__PURE__ */ jsx96(Button, { asChild: true, variant: primaryCTA.variant ?? "default", size: primaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx96("a", { href: primaryCTA.href, children: primaryCTA.label }) }),
4556
+ secondaryCTA?.label && /* @__PURE__ */ jsx96(Button, { asChild: true, variant: secondaryCTA.variant ?? "outline", size: secondaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx96("a", { href: secondaryCTA.href, children: secondaryCTA.label }) })
4745
4557
  ] })
4746
4558
  ] }),
4747
- /* @__PURE__ */ jsx97("div", { children: videoUrl ? /* @__PURE__ */ jsx97(
4559
+ /* @__PURE__ */ jsx96("div", { children: videoUrl ? /* @__PURE__ */ jsx96(
4748
4560
  "video",
4749
4561
  {
4750
4562
  src: videoUrl,
@@ -4754,14 +4566,14 @@ function DuplexImageRight({
4754
4566
  loop: true,
4755
4567
  playsInline: true
4756
4568
  }
4757
- ) : image?.url ? /* @__PURE__ */ jsx97(
4569
+ ) : image?.url ? /* @__PURE__ */ jsx96(
4758
4570
  "img",
4759
4571
  {
4760
4572
  src: image.url,
4761
4573
  alt: image.alt ?? heading,
4762
4574
  className: "w-full rounded-2xl shadow-lg object-cover"
4763
4575
  }
4764
- ) : /* @__PURE__ */ jsx97("div", { className: "w-full h-64 rounded-2xl bg-muted" }) })
4576
+ ) : /* @__PURE__ */ jsx96("div", { className: "w-full h-64 rounded-2xl bg-muted" }) })
4765
4577
  ] }) })
4766
4578
  }
4767
4579
  );
@@ -4769,7 +4581,7 @@ function DuplexImageRight({
4769
4581
 
4770
4582
  // src/sections/duplex/variants/duplex-stacked.tsx
4771
4583
  import { Check as Check5 } from "lucide-react";
4772
- import { jsx as jsx98, jsxs as jsxs70 } from "react/jsx-runtime";
4584
+ import { jsx as jsx97, jsxs as jsxs69 } from "react/jsx-runtime";
4773
4585
  function DuplexStacked({
4774
4586
  badge,
4775
4587
  heading,
@@ -4782,7 +4594,7 @@ function DuplexStacked({
4782
4594
  bullets,
4783
4595
  background
4784
4596
  }) {
4785
- return /* @__PURE__ */ jsx98(
4597
+ return /* @__PURE__ */ jsx97(
4786
4598
  "section",
4787
4599
  {
4788
4600
  className: cn(
@@ -4795,28 +4607,28 @@ function DuplexStacked({
4795
4607
  background === "warning" && "bg-warning text-warning-foreground",
4796
4608
  background === "error" && "bg-error text-error-foreground"
4797
4609
  ),
4798
- children: /* @__PURE__ */ jsxs70("div", { className: "container mx-auto px-4", children: [
4799
- /* @__PURE__ */ jsxs70("div", { className: "max-w-2xl mx-auto text-center mb-10", children: [
4800
- badge && /* @__PURE__ */ jsx98(Badge, { variant: "secondary", className: "mb-4", children: badge }),
4801
- /* @__PURE__ */ jsx98("h2", { className: "text-2xl sm:text-3xl md:text-4xl font-bold", children: heading }),
4802
- body && /* @__PURE__ */ jsx98("p", { className: "text-muted-foreground text-lg mt-4", children: body }),
4803
- content && /* @__PURE__ */ jsx98(
4610
+ children: /* @__PURE__ */ jsxs69("div", { className: "container mx-auto px-4", children: [
4611
+ /* @__PURE__ */ jsxs69("div", { className: "max-w-2xl mx-auto text-center mb-10", children: [
4612
+ badge && /* @__PURE__ */ jsx97(Badge, { variant: "secondary", className: "mb-4", children: badge }),
4613
+ /* @__PURE__ */ jsx97("h2", { className: "text-2xl sm:text-3xl md:text-4xl font-bold", children: heading }),
4614
+ body && /* @__PURE__ */ jsx97("p", { className: "text-muted-foreground text-lg mt-4", children: body }),
4615
+ content && /* @__PURE__ */ jsx97(
4804
4616
  "div",
4805
4617
  {
4806
4618
  className: "richtext-content mt-4 text-muted-foreground",
4807
4619
  dangerouslySetInnerHTML: { __html: content }
4808
4620
  }
4809
4621
  ),
4810
- bullets && bullets.length > 0 && /* @__PURE__ */ jsx98("ul", { className: "mt-4 space-y-2 text-left inline-block", children: bullets.map((bullet, i) => /* @__PURE__ */ jsxs70("li", { className: "flex items-center gap-2 text-sm", children: [
4811
- /* @__PURE__ */ jsx98(Check5, { className: "h-4 w-4 text-green-500 shrink-0" }),
4812
- /* @__PURE__ */ jsx98("span", { children: bullet })
4622
+ bullets && bullets.length > 0 && /* @__PURE__ */ jsx97("ul", { className: "mt-4 space-y-2 text-left inline-block", children: bullets.map((bullet, i) => /* @__PURE__ */ jsxs69("li", { className: "flex items-center gap-2 text-sm", children: [
4623
+ /* @__PURE__ */ jsx97(Check5, { className: "h-4 w-4 text-green-500 shrink-0" }),
4624
+ /* @__PURE__ */ jsx97("span", { children: bullet })
4813
4625
  ] }, i)) }),
4814
- (primaryCTA?.label || secondaryCTA?.label) && /* @__PURE__ */ jsxs70("div", { className: "flex flex-wrap justify-center gap-3 mt-6", children: [
4815
- primaryCTA?.label && /* @__PURE__ */ jsx98(Button, { asChild: true, variant: primaryCTA.variant ?? "default", size: primaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx98("a", { href: primaryCTA.href, children: primaryCTA.label }) }),
4816
- secondaryCTA?.label && /* @__PURE__ */ jsx98(Button, { asChild: true, variant: secondaryCTA.variant ?? "outline", size: secondaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx98("a", { href: secondaryCTA.href, children: secondaryCTA.label }) })
4626
+ (primaryCTA?.label || secondaryCTA?.label) && /* @__PURE__ */ jsxs69("div", { className: "flex flex-wrap justify-center gap-3 mt-6", children: [
4627
+ primaryCTA?.label && /* @__PURE__ */ jsx97(Button, { asChild: true, variant: primaryCTA.variant ?? "default", size: primaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx97("a", { href: primaryCTA.href, children: primaryCTA.label }) }),
4628
+ secondaryCTA?.label && /* @__PURE__ */ jsx97(Button, { asChild: true, variant: secondaryCTA.variant ?? "outline", size: secondaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx97("a", { href: secondaryCTA.href, children: secondaryCTA.label }) })
4817
4629
  ] })
4818
4630
  ] }),
4819
- videoUrl ? /* @__PURE__ */ jsx98(
4631
+ videoUrl ? /* @__PURE__ */ jsx97(
4820
4632
  "video",
4821
4633
  {
4822
4634
  src: videoUrl,
@@ -4826,7 +4638,7 @@ function DuplexStacked({
4826
4638
  loop: true,
4827
4639
  playsInline: true
4828
4640
  }
4829
- ) : image?.url ? /* @__PURE__ */ jsx98(
4641
+ ) : image?.url ? /* @__PURE__ */ jsx97(
4830
4642
  "img",
4831
4643
  {
4832
4644
  src: image.url,
@@ -4840,23 +4652,23 @@ function DuplexStacked({
4840
4652
  }
4841
4653
 
4842
4654
  // src/sections/duplex/index.tsx
4843
- import { jsx as jsx99 } from "react/jsx-runtime";
4655
+ import { jsx as jsx98 } from "react/jsx-runtime";
4844
4656
  function Duplex(props) {
4845
4657
  switch (props.variant) {
4846
4658
  case "image-right":
4847
- return /* @__PURE__ */ jsx99(DuplexImageRight, { ...props });
4659
+ return /* @__PURE__ */ jsx98(DuplexImageRight, { ...props });
4848
4660
  case "stacked":
4849
- return /* @__PURE__ */ jsx99(DuplexStacked, { ...props });
4661
+ return /* @__PURE__ */ jsx98(DuplexStacked, { ...props });
4850
4662
  case "image-left":
4851
4663
  default:
4852
- return /* @__PURE__ */ jsx99(DuplexImageLeft, { ...props });
4664
+ return /* @__PURE__ */ jsx98(DuplexImageLeft, { ...props });
4853
4665
  }
4854
4666
  }
4855
4667
 
4856
4668
  // src/sections/richtext/variants/richtext-centered.tsx
4857
- import { jsx as jsx100, jsxs as jsxs71 } from "react/jsx-runtime";
4669
+ import { jsx as jsx99, jsxs as jsxs70 } from "react/jsx-runtime";
4858
4670
  function RichtextCentered({ title, subtitle, badge, content, background }) {
4859
- return /* @__PURE__ */ jsx100(
4671
+ return /* @__PURE__ */ jsx99(
4860
4672
  "section",
4861
4673
  {
4862
4674
  className: cn(
@@ -4869,9 +4681,9 @@ function RichtextCentered({ title, subtitle, badge, content, background }) {
4869
4681
  background === "warning" && "bg-warning text-warning-foreground",
4870
4682
  background === "error" && "bg-error text-error-foreground"
4871
4683
  ),
4872
- children: /* @__PURE__ */ jsxs71("div", { className: "container mx-auto px-4", children: [
4873
- /* @__PURE__ */ jsx100(SectionHeader, { title, subtitle, badge, background }),
4874
- /* @__PURE__ */ jsx100(
4684
+ children: /* @__PURE__ */ jsxs70("div", { className: "container mx-auto px-4", children: [
4685
+ /* @__PURE__ */ jsx99(SectionHeader, { title, subtitle, badge, background }),
4686
+ /* @__PURE__ */ jsx99(
4875
4687
  "div",
4876
4688
  {
4877
4689
  className: "richtext-content mx-auto max-w-2xl",
@@ -4884,9 +4696,9 @@ function RichtextCentered({ title, subtitle, badge, content, background }) {
4884
4696
  }
4885
4697
 
4886
4698
  // src/sections/richtext/variants/richtext-wide.tsx
4887
- import { jsx as jsx101, jsxs as jsxs72 } from "react/jsx-runtime";
4699
+ import { jsx as jsx100, jsxs as jsxs71 } from "react/jsx-runtime";
4888
4700
  function RichtextWide({ title, subtitle, badge, content, background }) {
4889
- return /* @__PURE__ */ jsx101(
4701
+ return /* @__PURE__ */ jsx100(
4890
4702
  "section",
4891
4703
  {
4892
4704
  className: cn(
@@ -4899,9 +4711,9 @@ function RichtextWide({ title, subtitle, badge, content, background }) {
4899
4711
  background === "warning" && "bg-warning text-warning-foreground",
4900
4712
  background === "error" && "bg-error text-error-foreground"
4901
4713
  ),
4902
- children: /* @__PURE__ */ jsxs72("div", { className: "container mx-auto px-4", children: [
4903
- /* @__PURE__ */ jsx101(SectionHeader, { title, subtitle, badge, background }),
4904
- /* @__PURE__ */ jsx101(
4714
+ children: /* @__PURE__ */ jsxs71("div", { className: "container mx-auto px-4", children: [
4715
+ /* @__PURE__ */ jsx100(SectionHeader, { title, subtitle, badge, background }),
4716
+ /* @__PURE__ */ jsx100(
4905
4717
  "div",
4906
4718
  {
4907
4719
  className: "richtext-content mx-auto max-w-4xl",
@@ -4914,9 +4726,9 @@ function RichtextWide({ title, subtitle, badge, content, background }) {
4914
4726
  }
4915
4727
 
4916
4728
  // src/sections/richtext/variants/richtext-two-column.tsx
4917
- import { jsx as jsx102, jsxs as jsxs73 } from "react/jsx-runtime";
4729
+ import { jsx as jsx101, jsxs as jsxs72 } from "react/jsx-runtime";
4918
4730
  function RichtextTwoColumn({ title, subtitle, badge, content, background }) {
4919
- return /* @__PURE__ */ jsx102(
4731
+ return /* @__PURE__ */ jsx101(
4920
4732
  "section",
4921
4733
  {
4922
4734
  className: cn(
@@ -4929,9 +4741,9 @@ function RichtextTwoColumn({ title, subtitle, badge, content, background }) {
4929
4741
  background === "warning" && "bg-warning text-warning-foreground",
4930
4742
  background === "error" && "bg-error text-error-foreground"
4931
4743
  ),
4932
- children: /* @__PURE__ */ jsxs73("div", { className: "container mx-auto px-4", children: [
4933
- /* @__PURE__ */ jsx102(SectionHeader, { title, subtitle, badge, background }),
4934
- /* @__PURE__ */ jsx102(
4744
+ children: /* @__PURE__ */ jsxs72("div", { className: "container mx-auto px-4", children: [
4745
+ /* @__PURE__ */ jsx101(SectionHeader, { title, subtitle, badge, background }),
4746
+ /* @__PURE__ */ jsx101(
4935
4747
  "div",
4936
4748
  {
4937
4749
  className: "richtext-content [column-count:1] lg:[column-count:2] gap-8 [&>*]:break-inside-avoid",
@@ -4944,28 +4756,28 @@ function RichtextTwoColumn({ title, subtitle, badge, content, background }) {
4944
4756
  }
4945
4757
 
4946
4758
  // src/sections/richtext/index.tsx
4947
- import { jsx as jsx103 } from "react/jsx-runtime";
4759
+ import { jsx as jsx102 } from "react/jsx-runtime";
4948
4760
  function Richtext(props) {
4949
4761
  switch (props.variant) {
4950
4762
  case "wide":
4951
- return /* @__PURE__ */ jsx103(RichtextWide, { ...props });
4763
+ return /* @__PURE__ */ jsx102(RichtextWide, { ...props });
4952
4764
  case "two-column":
4953
- return /* @__PURE__ */ jsx103(RichtextTwoColumn, { ...props });
4765
+ return /* @__PURE__ */ jsx102(RichtextTwoColumn, { ...props });
4954
4766
  case "centered":
4955
4767
  default:
4956
- return /* @__PURE__ */ jsx103(RichtextCentered, { ...props });
4768
+ return /* @__PURE__ */ jsx102(RichtextCentered, { ...props });
4957
4769
  }
4958
4770
  }
4959
4771
 
4960
4772
  // src/sections/video/video-player.tsx
4961
- import { jsx as jsx104 } from "react/jsx-runtime";
4773
+ import { jsx as jsx103 } from "react/jsx-runtime";
4962
4774
  function VideoPlayer({ url, poster, autoplay, loop, muted, className, title }) {
4963
4775
  const parsed = parseVideoUrl(url);
4964
4776
  if (!parsed) {
4965
- return /* @__PURE__ */ jsx104("div", { className: `bg-muted flex items-center justify-center rounded-xl ${className ?? ""}`, children: /* @__PURE__ */ jsx104("p", { className: "text-muted-foreground text-sm", children: "URL de video no v\xE1lida" }) });
4777
+ return /* @__PURE__ */ jsx103("div", { className: `bg-muted flex items-center justify-center rounded-xl ${className ?? ""}`, children: /* @__PURE__ */ jsx103("p", { className: "text-muted-foreground text-sm", children: "URL de video no v\xE1lida" }) });
4966
4778
  }
4967
4779
  if (parsed.type === "native") {
4968
- return /* @__PURE__ */ jsx104(
4780
+ return /* @__PURE__ */ jsx103(
4969
4781
  "video",
4970
4782
  {
4971
4783
  src: parsed.embedUrl,
@@ -4980,7 +4792,7 @@ function VideoPlayer({ url, poster, autoplay, loop, muted, className, title }) {
4980
4792
  );
4981
4793
  }
4982
4794
  const src = autoplay ? `${parsed.embedUrl}&autoplay=1&mute=1` : parsed.embedUrl;
4983
- return /* @__PURE__ */ jsx104(
4795
+ return /* @__PURE__ */ jsx103(
4984
4796
  "iframe",
4985
4797
  {
4986
4798
  src,
@@ -4993,9 +4805,9 @@ function VideoPlayer({ url, poster, autoplay, loop, muted, className, title }) {
4993
4805
  }
4994
4806
 
4995
4807
  // src/sections/video/variants/video-full.tsx
4996
- import { jsx as jsx105, jsxs as jsxs74 } from "react/jsx-runtime";
4808
+ import { jsx as jsx104, jsxs as jsxs73 } from "react/jsx-runtime";
4997
4809
  function VideoFull({ title, subtitle, content, badge, videoUrl, poster, autoplay, loop, muted, background }) {
4998
- return /* @__PURE__ */ jsx105(
4810
+ return /* @__PURE__ */ jsx104(
4999
4811
  "section",
5000
4812
  {
5001
4813
  className: cn(
@@ -5008,9 +4820,9 @@ function VideoFull({ title, subtitle, content, badge, videoUrl, poster, autoplay
5008
4820
  background === "warning" && "bg-warning text-warning-foreground",
5009
4821
  background === "error" && "bg-error text-error-foreground"
5010
4822
  ),
5011
- children: /* @__PURE__ */ jsxs74("div", { className: "container mx-auto px-4", children: [
5012
- /* @__PURE__ */ jsx105(SectionHeader, { title, subtitle, badge, content, background }),
5013
- /* @__PURE__ */ jsx105("div", { className: "aspect-video w-full overflow-hidden rounded-xl shadow-lg", children: /* @__PURE__ */ jsx105(
4823
+ children: /* @__PURE__ */ jsxs73("div", { className: "container mx-auto px-4", children: [
4824
+ /* @__PURE__ */ jsx104(SectionHeader, { title, subtitle, badge, content, background }),
4825
+ /* @__PURE__ */ jsx104("div", { className: "aspect-video w-full overflow-hidden rounded-xl shadow-lg", children: /* @__PURE__ */ jsx104(
5014
4826
  VideoPlayer,
5015
4827
  {
5016
4828
  url: videoUrl,
@@ -5028,9 +4840,9 @@ function VideoFull({ title, subtitle, content, badge, videoUrl, poster, autoplay
5028
4840
  }
5029
4841
 
5030
4842
  // src/sections/video/variants/video-contained.tsx
5031
- import { jsx as jsx106, jsxs as jsxs75 } from "react/jsx-runtime";
4843
+ import { jsx as jsx105, jsxs as jsxs74 } from "react/jsx-runtime";
5032
4844
  function VideoContained({ title, subtitle, content, badge, videoUrl, poster, autoplay, loop, muted, background }) {
5033
- return /* @__PURE__ */ jsx106(
4845
+ return /* @__PURE__ */ jsx105(
5034
4846
  "section",
5035
4847
  {
5036
4848
  className: cn(
@@ -5043,9 +4855,9 @@ function VideoContained({ title, subtitle, content, badge, videoUrl, poster, aut
5043
4855
  background === "warning" && "bg-warning text-warning-foreground",
5044
4856
  background === "error" && "bg-error text-error-foreground"
5045
4857
  ),
5046
- children: /* @__PURE__ */ jsxs75("div", { className: "container mx-auto px-4", children: [
5047
- /* @__PURE__ */ jsx106(SectionHeader, { title, subtitle, badge, content, background }),
5048
- /* @__PURE__ */ jsx106("div", { className: "max-w-4xl mx-auto", children: /* @__PURE__ */ jsx106("div", { className: "aspect-video w-full overflow-hidden rounded-xl shadow-lg", children: /* @__PURE__ */ jsx106(
4858
+ children: /* @__PURE__ */ jsxs74("div", { className: "container mx-auto px-4", children: [
4859
+ /* @__PURE__ */ jsx105(SectionHeader, { title, subtitle, badge, content, background }),
4860
+ /* @__PURE__ */ jsx105("div", { className: "max-w-4xl mx-auto", children: /* @__PURE__ */ jsx105("div", { className: "aspect-video w-full overflow-hidden rounded-xl shadow-lg", children: /* @__PURE__ */ jsx105(
5049
4861
  VideoPlayer,
5050
4862
  {
5051
4863
  url: videoUrl,
@@ -5063,9 +4875,9 @@ function VideoContained({ title, subtitle, content, badge, videoUrl, poster, aut
5063
4875
  }
5064
4876
 
5065
4877
  // src/sections/video/variants/video-with-text.tsx
5066
- import { jsx as jsx107, jsxs as jsxs76 } from "react/jsx-runtime";
4878
+ import { jsx as jsx106, jsxs as jsxs75 } from "react/jsx-runtime";
5067
4879
  function VideoWithText({ title, subtitle, content, badge, videoUrl, poster, autoplay, loop, muted, background }) {
5068
- return /* @__PURE__ */ jsx107(
4880
+ return /* @__PURE__ */ jsx106(
5069
4881
  "section",
5070
4882
  {
5071
4883
  className: cn(
@@ -5078,8 +4890,8 @@ function VideoWithText({ title, subtitle, content, badge, videoUrl, poster, auto
5078
4890
  background === "warning" && "bg-warning text-warning-foreground",
5079
4891
  background === "error" && "bg-error text-error-foreground"
5080
4892
  ),
5081
- children: /* @__PURE__ */ jsx107("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs76("div", { className: "grid gap-12 items-center lg:grid-cols-2", children: [
5082
- /* @__PURE__ */ jsx107("div", { className: "aspect-video overflow-hidden rounded-xl shadow-lg", children: /* @__PURE__ */ jsx107(
4893
+ children: /* @__PURE__ */ jsx106("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs75("div", { className: "grid gap-12 items-center lg:grid-cols-2", children: [
4894
+ /* @__PURE__ */ jsx106("div", { className: "aspect-video overflow-hidden rounded-xl shadow-lg", children: /* @__PURE__ */ jsx106(
5083
4895
  VideoPlayer,
5084
4896
  {
5085
4897
  url: videoUrl,
@@ -5091,30 +4903,30 @@ function VideoWithText({ title, subtitle, content, badge, videoUrl, poster, auto
5091
4903
  className: "h-full w-full"
5092
4904
  }
5093
4905
  ) }),
5094
- /* @__PURE__ */ jsx107("div", { children: /* @__PURE__ */ jsx107(SectionHeader, { title, subtitle, badge, content, background, align: "left", className: "mb-0" }) })
4906
+ /* @__PURE__ */ jsx106("div", { children: /* @__PURE__ */ jsx106(SectionHeader, { title, subtitle, badge, content, background, align: "left", className: "mb-0" }) })
5095
4907
  ] }) })
5096
4908
  }
5097
4909
  );
5098
4910
  }
5099
4911
 
5100
4912
  // src/sections/video/index.tsx
5101
- import { jsx as jsx108 } from "react/jsx-runtime";
4913
+ import { jsx as jsx107 } from "react/jsx-runtime";
5102
4914
  function VideoSection(props) {
5103
4915
  switch (props.variant) {
5104
4916
  case "contained":
5105
- return /* @__PURE__ */ jsx108(VideoContained, { ...props });
4917
+ return /* @__PURE__ */ jsx107(VideoContained, { ...props });
5106
4918
  case "with-text":
5107
- return /* @__PURE__ */ jsx108(VideoWithText, { ...props });
4919
+ return /* @__PURE__ */ jsx107(VideoWithText, { ...props });
5108
4920
  case "full":
5109
4921
  default:
5110
- return /* @__PURE__ */ jsx108(VideoFull, { ...props });
4922
+ return /* @__PURE__ */ jsx107(VideoFull, { ...props });
5111
4923
  }
5112
4924
  }
5113
4925
 
5114
4926
  // src/sections/newsletter/newsletter-form.tsx
5115
- import { useState as useState15 } from "react";
4927
+ import { useState as useState14 } from "react";
5116
4928
  import { CheckCircle, Loader2, Mail as Mail3 } from "lucide-react";
5117
- import { Fragment, jsx as jsx109, jsxs as jsxs77 } from "react/jsx-runtime";
4929
+ import { Fragment, jsx as jsx108, jsxs as jsxs76 } from "react/jsx-runtime";
5118
4930
  var inputBase = "flex w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50";
5119
4931
  function NewsletterForm({
5120
4932
  buttonLabel = "Suscribirme",
@@ -5123,9 +4935,9 @@ function NewsletterForm({
5123
4935
  layout = "stacked",
5124
4936
  className
5125
4937
  }) {
5126
- const [email, setEmail] = useState15("");
5127
- const [status, setStatus] = useState15("idle");
5128
- const [errorMsg, setErrorMsg] = useState15("");
4938
+ const [email, setEmail] = useState14("");
4939
+ const [status, setStatus] = useState14("idle");
4940
+ const [errorMsg, setErrorMsg] = useState14("");
5129
4941
  const handleSubmit = async (e) => {
5130
4942
  e.preventDefault();
5131
4943
  setStatus("loading");
@@ -5148,12 +4960,12 @@ function NewsletterForm({
5148
4960
  }
5149
4961
  };
5150
4962
  if (status === "success") {
5151
- return /* @__PURE__ */ jsxs77("div", { className: cn("flex items-center justify-center gap-3 py-2", className), children: [
5152
- /* @__PURE__ */ jsx109(CheckCircle, { className: "h-5 w-5 shrink-0 text-green-500" }),
5153
- /* @__PURE__ */ jsx109("p", { className: "text-sm font-medium", children: successMessage })
4963
+ return /* @__PURE__ */ jsxs76("div", { className: cn("flex items-center justify-center gap-3 py-2", className), children: [
4964
+ /* @__PURE__ */ jsx108(CheckCircle, { className: "h-5 w-5 shrink-0 text-green-500" }),
4965
+ /* @__PURE__ */ jsx108("p", { className: "text-sm font-medium", children: successMessage })
5154
4966
  ] });
5155
4967
  }
5156
- return /* @__PURE__ */ jsxs77(
4968
+ return /* @__PURE__ */ jsxs76(
5157
4969
  "form",
5158
4970
  {
5159
4971
  onSubmit: handleSubmit,
@@ -5162,9 +4974,9 @@ function NewsletterForm({
5162
4974
  className
5163
4975
  ),
5164
4976
  children: [
5165
- /* @__PURE__ */ jsxs77("div", { className: cn("relative", layout === "inline" && "sm:flex-1"), children: [
5166
- /* @__PURE__ */ jsx109(Mail3, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
5167
- /* @__PURE__ */ jsx109(
4977
+ /* @__PURE__ */ jsxs76("div", { className: cn("relative", layout === "inline" && "sm:flex-1"), children: [
4978
+ /* @__PURE__ */ jsx108(Mail3, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
4979
+ /* @__PURE__ */ jsx108(
5168
4980
  "input",
5169
4981
  {
5170
4982
  type: "email",
@@ -5176,18 +4988,18 @@ function NewsletterForm({
5176
4988
  }
5177
4989
  )
5178
4990
  ] }),
5179
- /* @__PURE__ */ jsx109(Button, { type: "submit", disabled: status === "loading", className: cn(layout === "inline" && "shrink-0"), children: status === "loading" ? /* @__PURE__ */ jsxs77(Fragment, { children: [
5180
- /* @__PURE__ */ jsx109(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }),
4991
+ /* @__PURE__ */ jsx108(Button, { type: "submit", disabled: status === "loading", className: cn(layout === "inline" && "shrink-0"), children: status === "loading" ? /* @__PURE__ */ jsxs76(Fragment, { children: [
4992
+ /* @__PURE__ */ jsx108(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }),
5181
4993
  "Enviando..."
5182
4994
  ] }) : buttonLabel }),
5183
- status === "error" && /* @__PURE__ */ jsx109("p", { className: "text-sm text-destructive", children: errorMsg })
4995
+ status === "error" && /* @__PURE__ */ jsx108("p", { className: "text-sm text-destructive", children: errorMsg })
5184
4996
  ]
5185
4997
  }
5186
4998
  );
5187
4999
  }
5188
5000
 
5189
5001
  // src/sections/newsletter/variants/newsletter-centered.tsx
5190
- import { jsx as jsx110, jsxs as jsxs78 } from "react/jsx-runtime";
5002
+ import { jsx as jsx109, jsxs as jsxs77 } from "react/jsx-runtime";
5191
5003
  function NewsletterCentered({
5192
5004
  title,
5193
5005
  subtitle,
@@ -5198,7 +5010,7 @@ function NewsletterCentered({
5198
5010
  placeholder,
5199
5011
  successMessage
5200
5012
  }) {
5201
- return /* @__PURE__ */ jsx110(
5013
+ return /* @__PURE__ */ jsx109(
5202
5014
  "section",
5203
5015
  {
5204
5016
  className: cn(
@@ -5211,9 +5023,9 @@ function NewsletterCentered({
5211
5023
  background === "warning" && "bg-warning text-warning-foreground",
5212
5024
  background === "error" && "bg-error text-error-foreground"
5213
5025
  ),
5214
- children: /* @__PURE__ */ jsxs78("div", { className: "container mx-auto px-4 text-center", children: [
5215
- /* @__PURE__ */ jsx110(SectionHeader, { title, subtitle, badge, content, background }),
5216
- /* @__PURE__ */ jsx110(
5026
+ children: /* @__PURE__ */ jsxs77("div", { className: "container mx-auto px-4 text-center", children: [
5027
+ /* @__PURE__ */ jsx109(SectionHeader, { title, subtitle, badge, content, background }),
5028
+ /* @__PURE__ */ jsx109(
5217
5029
  NewsletterForm,
5218
5030
  {
5219
5031
  buttonLabel,
@@ -5229,7 +5041,7 @@ function NewsletterCentered({
5229
5041
  }
5230
5042
 
5231
5043
  // src/sections/newsletter/variants/newsletter-card.tsx
5232
- import { jsx as jsx111, jsxs as jsxs79 } from "react/jsx-runtime";
5044
+ import { jsx as jsx110, jsxs as jsxs78 } from "react/jsx-runtime";
5233
5045
  function NewsletterCard({
5234
5046
  title,
5235
5047
  subtitle,
@@ -5240,7 +5052,7 @@ function NewsletterCard({
5240
5052
  placeholder,
5241
5053
  successMessage
5242
5054
  }) {
5243
- return /* @__PURE__ */ jsx111(
5055
+ return /* @__PURE__ */ jsx110(
5244
5056
  "section",
5245
5057
  {
5246
5058
  className: cn(
@@ -5253,9 +5065,9 @@ function NewsletterCard({
5253
5065
  background === "warning" && "bg-warning text-warning-foreground",
5254
5066
  background === "error" && "bg-error text-error-foreground"
5255
5067
  ),
5256
- children: /* @__PURE__ */ jsx111("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs79("div", { className: "mx-auto max-w-lg rounded-2xl border bg-card p-8 shadow-sm text-center", children: [
5257
- /* @__PURE__ */ jsx111(SectionHeader, { title, subtitle, badge, content, background }),
5258
- /* @__PURE__ */ jsx111(
5068
+ children: /* @__PURE__ */ jsx110("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs78("div", { className: "mx-auto max-w-lg rounded-2xl border bg-card p-8 shadow-sm text-center", children: [
5069
+ /* @__PURE__ */ jsx110(SectionHeader, { title, subtitle, badge, content, background }),
5070
+ /* @__PURE__ */ jsx110(
5259
5071
  NewsletterForm,
5260
5072
  {
5261
5073
  buttonLabel,
@@ -5270,7 +5082,7 @@ function NewsletterCard({
5270
5082
  }
5271
5083
 
5272
5084
  // src/sections/newsletter/variants/newsletter-inline.tsx
5273
- import { jsx as jsx112, jsxs as jsxs80 } from "react/jsx-runtime";
5085
+ import { jsx as jsx111, jsxs as jsxs79 } from "react/jsx-runtime";
5274
5086
  function NewsletterInline({
5275
5087
  title,
5276
5088
  subtitle,
@@ -5281,7 +5093,7 @@ function NewsletterInline({
5281
5093
  placeholder,
5282
5094
  successMessage
5283
5095
  }) {
5284
- return /* @__PURE__ */ jsx112(
5096
+ return /* @__PURE__ */ jsx111(
5285
5097
  "section",
5286
5098
  {
5287
5099
  className: cn(
@@ -5294,12 +5106,12 @@ function NewsletterInline({
5294
5106
  background === "warning" && "bg-warning text-warning-foreground",
5295
5107
  background === "error" && "bg-error text-error-foreground"
5296
5108
  ),
5297
- children: /* @__PURE__ */ jsxs80("div", { className: "container mx-auto flex flex-col gap-6 px-4 lg:flex-row lg:items-center lg:justify-between max-w-4xl", children: [
5298
- /* @__PURE__ */ jsxs80("div", { className: "flex flex-col gap-2", children: [
5299
- badge && /* @__PURE__ */ jsx112(Badge, { variant: "outline", className: "w-fit", children: badge }),
5300
- title && /* @__PURE__ */ jsx112("h2", { className: "text-2xl font-bold tracking-tight", children: title }),
5301
- subtitle && /* @__PURE__ */ jsx112("p", { className: "text-muted-foreground", children: subtitle }),
5302
- content && /* @__PURE__ */ jsx112(
5109
+ children: /* @__PURE__ */ jsxs79("div", { className: "container mx-auto flex flex-col gap-6 px-4 lg:flex-row lg:items-center lg:justify-between max-w-4xl", children: [
5110
+ /* @__PURE__ */ jsxs79("div", { className: "flex flex-col gap-2", children: [
5111
+ badge && /* @__PURE__ */ jsx111(Badge, { variant: "outline", className: "w-fit", children: badge }),
5112
+ title && /* @__PURE__ */ jsx111("h2", { className: "text-2xl font-bold tracking-tight", children: title }),
5113
+ subtitle && /* @__PURE__ */ jsx111("p", { className: "text-muted-foreground", children: subtitle }),
5114
+ content && /* @__PURE__ */ jsx111(
5303
5115
  "div",
5304
5116
  {
5305
5117
  className: "richtext-content mt-1",
@@ -5307,7 +5119,7 @@ function NewsletterInline({
5307
5119
  }
5308
5120
  )
5309
5121
  ] }),
5310
- /* @__PURE__ */ jsx112(
5122
+ /* @__PURE__ */ jsx111(
5311
5123
  NewsletterForm,
5312
5124
  {
5313
5125
  buttonLabel,
@@ -5323,16 +5135,16 @@ function NewsletterInline({
5323
5135
  }
5324
5136
 
5325
5137
  // src/sections/newsletter/newsletter-section.tsx
5326
- import { jsx as jsx113 } from "react/jsx-runtime";
5138
+ import { jsx as jsx112 } from "react/jsx-runtime";
5327
5139
  function Newsletter(props) {
5328
5140
  switch (props.variant) {
5329
5141
  case "card":
5330
- return /* @__PURE__ */ jsx113(NewsletterCard, { ...props });
5142
+ return /* @__PURE__ */ jsx112(NewsletterCard, { ...props });
5331
5143
  case "inline":
5332
- return /* @__PURE__ */ jsx113(NewsletterInline, { ...props });
5144
+ return /* @__PURE__ */ jsx112(NewsletterInline, { ...props });
5333
5145
  case "centered":
5334
5146
  default:
5335
- return /* @__PURE__ */ jsx113(NewsletterCentered, { ...props });
5147
+ return /* @__PURE__ */ jsx112(NewsletterCentered, { ...props });
5336
5148
  }
5337
5149
  }
5338
5150
 
@@ -5360,7 +5172,7 @@ function fileMeta(mimeType) {
5360
5172
  }
5361
5173
 
5362
5174
  // src/sections/downloads/variants/file-row.tsx
5363
- import { jsx as jsx114, jsxs as jsxs81 } from "react/jsx-runtime";
5175
+ import { jsx as jsx113, jsxs as jsxs80 } from "react/jsx-runtime";
5364
5176
  var iconMap = {
5365
5177
  "file-text": FileText,
5366
5178
  "file-image": FileImage,
@@ -5372,21 +5184,21 @@ function FileRow({ item }) {
5372
5184
  const IconComp = iconMap[icon];
5373
5185
  const size = formatBytes(item.file.size);
5374
5186
  const href = buildDownloadUrl(item.file);
5375
- return /* @__PURE__ */ jsxs81("div", { className: "flex items-center gap-3 py-3 border-b last:border-0", children: [
5376
- /* @__PURE__ */ jsx114("div", { className: ["flex-shrink-0", color].join(" "), children: /* @__PURE__ */ jsx114(IconComp, { className: "h-5 w-5" }) }),
5377
- /* @__PURE__ */ jsxs81("div", { className: "flex-1 min-w-0", children: [
5378
- /* @__PURE__ */ jsx114("p", { className: "text-sm font-medium truncate", children: item.label }),
5379
- size && /* @__PURE__ */ jsx114("p", { className: "text-xs text-muted-foreground mt-0.5", children: size })
5187
+ return /* @__PURE__ */ jsxs80("div", { className: "flex items-center gap-3 py-3 border-b last:border-0", children: [
5188
+ /* @__PURE__ */ jsx113("div", { className: ["flex-shrink-0", color].join(" "), children: /* @__PURE__ */ jsx113(IconComp, { className: "h-5 w-5" }) }),
5189
+ /* @__PURE__ */ jsxs80("div", { className: "flex-1 min-w-0", children: [
5190
+ /* @__PURE__ */ jsx113("p", { className: "text-sm font-medium truncate", children: item.label }),
5191
+ size && /* @__PURE__ */ jsx113("p", { className: "text-xs text-muted-foreground mt-0.5", children: size })
5380
5192
  ] }),
5381
- /* @__PURE__ */ jsx114(Button, { asChild: true, size: "sm", variant: "outline", className: "shrink-0 gap-1.5", children: /* @__PURE__ */ jsxs81("a", { href, download: true, target: "_blank", rel: "noopener noreferrer", children: [
5382
- /* @__PURE__ */ jsx114(Download, { className: "h-3.5 w-3.5" }),
5383
- /* @__PURE__ */ jsx114("span", { className: "hidden sm:inline", children: "Descargar" })
5193
+ /* @__PURE__ */ jsx113(Button, { asChild: true, size: "sm", variant: "outline", className: "shrink-0 gap-1.5", children: /* @__PURE__ */ jsxs80("a", { href, download: true, target: "_blank", rel: "noopener noreferrer", children: [
5194
+ /* @__PURE__ */ jsx113(Download, { className: "h-3.5 w-3.5" }),
5195
+ /* @__PURE__ */ jsx113("span", { className: "hidden sm:inline", children: "Descargar" })
5384
5196
  ] }) })
5385
5197
  ] });
5386
5198
  }
5387
5199
 
5388
5200
  // src/sections/downloads/variants/downloads-grouped.tsx
5389
- import { jsx as jsx115, jsxs as jsxs82 } from "react/jsx-runtime";
5201
+ import { jsx as jsx114, jsxs as jsxs81 } from "react/jsx-runtime";
5390
5202
  function DownloadsGrouped({
5391
5203
  title,
5392
5204
  subtitle,
@@ -5395,7 +5207,7 @@ function DownloadsGrouped({
5395
5207
  background,
5396
5208
  groups
5397
5209
  }) {
5398
- return /* @__PURE__ */ jsx115(
5210
+ return /* @__PURE__ */ jsx114(
5399
5211
  "section",
5400
5212
  {
5401
5213
  className: cn(
@@ -5408,8 +5220,8 @@ function DownloadsGrouped({
5408
5220
  background === "warning" && "bg-warning text-warning-foreground",
5409
5221
  background === "error" && "bg-error text-error-foreground"
5410
5222
  ),
5411
- children: /* @__PURE__ */ jsxs82("div", { className: "container mx-auto px-4", children: [
5412
- /* @__PURE__ */ jsx115(
5223
+ children: /* @__PURE__ */ jsxs81("div", { className: "container mx-auto px-4", children: [
5224
+ /* @__PURE__ */ jsx114(
5413
5225
  SectionHeader,
5414
5226
  {
5415
5227
  title,
@@ -5419,15 +5231,15 @@ function DownloadsGrouped({
5419
5231
  background
5420
5232
  }
5421
5233
  ),
5422
- groups.length > 0 && /* @__PURE__ */ jsx115("div", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3", children: groups.map((group) => /* @__PURE__ */ jsxs82(
5234
+ groups.length > 0 && /* @__PURE__ */ jsx114("div", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3", children: groups.map((group) => /* @__PURE__ */ jsxs81(
5423
5235
  "div",
5424
5236
  {
5425
5237
  className: "rounded-xl border bg-card p-6 shadow-sm",
5426
5238
  children: [
5427
- /* @__PURE__ */ jsx115("h3", { className: "text-base font-semibold mb-4", children: group.title }),
5428
- /* @__PURE__ */ jsxs82("div", { children: [
5429
- group.files.map((file) => /* @__PURE__ */ jsx115(FileRow, { item: file }, file._key)),
5430
- group.files.length === 0 && /* @__PURE__ */ jsx115("p", { className: "text-sm text-muted-foreground", children: "Sin archivos." })
5239
+ /* @__PURE__ */ jsx114("h3", { className: "text-base font-semibold mb-4", children: group.title }),
5240
+ /* @__PURE__ */ jsxs81("div", { children: [
5241
+ group.files.map((file) => /* @__PURE__ */ jsx114(FileRow, { item: file }, file._key)),
5242
+ group.files.length === 0 && /* @__PURE__ */ jsx114("p", { className: "text-sm text-muted-foreground", children: "Sin archivos." })
5431
5243
  ] })
5432
5244
  ]
5433
5245
  },
@@ -5440,7 +5252,7 @@ function DownloadsGrouped({
5440
5252
 
5441
5253
  // src/sections/downloads/variants/downloads-accordion.tsx
5442
5254
  import { FolderOpen } from "lucide-react";
5443
- import { jsx as jsx116, jsxs as jsxs83 } from "react/jsx-runtime";
5255
+ import { jsx as jsx115, jsxs as jsxs82 } from "react/jsx-runtime";
5444
5256
  function DownloadsAccordion({
5445
5257
  title,
5446
5258
  subtitle,
@@ -5449,7 +5261,7 @@ function DownloadsAccordion({
5449
5261
  background,
5450
5262
  groups
5451
5263
  }) {
5452
- return /* @__PURE__ */ jsx116(
5264
+ return /* @__PURE__ */ jsx115(
5453
5265
  "section",
5454
5266
  {
5455
5267
  className: cn(
@@ -5462,8 +5274,8 @@ function DownloadsAccordion({
5462
5274
  background === "warning" && "bg-warning text-warning-foreground",
5463
5275
  background === "error" && "bg-error text-error-foreground"
5464
5276
  ),
5465
- children: /* @__PURE__ */ jsxs83("div", { className: "container mx-auto px-4", children: [
5466
- /* @__PURE__ */ jsx116(
5277
+ children: /* @__PURE__ */ jsxs82("div", { className: "container mx-auto px-4", children: [
5278
+ /* @__PURE__ */ jsx115(
5467
5279
  SectionHeader,
5468
5280
  {
5469
5281
  title,
@@ -5473,16 +5285,16 @@ function DownloadsAccordion({
5473
5285
  background
5474
5286
  }
5475
5287
  ),
5476
- groups.length > 0 && /* @__PURE__ */ jsx116("div", { className: "mx-auto max-w-3xl", children: /* @__PURE__ */ jsx116(Accordion, { type: "multiple", className: "space-y-3", children: groups.map((group) => /* @__PURE__ */ jsxs83(
5288
+ groups.length > 0 && /* @__PURE__ */ jsx115("div", { className: "mx-auto max-w-3xl", children: /* @__PURE__ */ jsx115(Accordion, { type: "multiple", className: "space-y-3", children: groups.map((group) => /* @__PURE__ */ jsxs82(
5477
5289
  AccordionItem,
5478
5290
  {
5479
5291
  value: group._key,
5480
5292
  className: "rounded-xl border bg-card px-6 shadow-sm",
5481
5293
  children: [
5482
- /* @__PURE__ */ jsx116(AccordionTrigger, { className: "text-base font-semibold gap-3 hover:no-underline", children: /* @__PURE__ */ jsxs83("div", { className: "flex items-center gap-2", children: [
5483
- /* @__PURE__ */ jsx116(FolderOpen, { className: "h-4 w-4 text-muted-foreground shrink-0" }),
5484
- /* @__PURE__ */ jsx116("span", { children: group.title }),
5485
- /* @__PURE__ */ jsxs83("span", { className: "ml-1 text-xs font-normal text-muted-foreground", children: [
5294
+ /* @__PURE__ */ jsx115(AccordionTrigger, { className: "text-base font-semibold gap-3 hover:no-underline", children: /* @__PURE__ */ jsxs82("div", { className: "flex items-center gap-2", children: [
5295
+ /* @__PURE__ */ jsx115(FolderOpen, { className: "h-4 w-4 text-muted-foreground shrink-0" }),
5296
+ /* @__PURE__ */ jsx115("span", { children: group.title }),
5297
+ /* @__PURE__ */ jsxs82("span", { className: "ml-1 text-xs font-normal text-muted-foreground", children: [
5486
5298
  "(",
5487
5299
  group.files.length,
5488
5300
  " ",
@@ -5490,9 +5302,9 @@ function DownloadsAccordion({
5490
5302
  ")"
5491
5303
  ] })
5492
5304
  ] }) }),
5493
- /* @__PURE__ */ jsxs83(AccordionContent, { className: "pb-2", children: [
5494
- group.files.map((file) => /* @__PURE__ */ jsx116(FileRow, { item: file }, file._key)),
5495
- group.files.length === 0 && /* @__PURE__ */ jsx116("p", { className: "text-sm text-muted-foreground py-2", children: "Sin archivos." })
5305
+ /* @__PURE__ */ jsxs82(AccordionContent, { className: "pb-2", children: [
5306
+ group.files.map((file) => /* @__PURE__ */ jsx115(FileRow, { item: file }, file._key)),
5307
+ group.files.length === 0 && /* @__PURE__ */ jsx115("p", { className: "text-sm text-muted-foreground py-2", children: "Sin archivos." })
5496
5308
  ] })
5497
5309
  ]
5498
5310
  },
@@ -5504,7 +5316,7 @@ function DownloadsAccordion({
5504
5316
  }
5505
5317
 
5506
5318
  // src/sections/downloads/variants/downloads-flat.tsx
5507
- import { jsx as jsx117, jsxs as jsxs84 } from "react/jsx-runtime";
5319
+ import { jsx as jsx116, jsxs as jsxs83 } from "react/jsx-runtime";
5508
5320
  function DownloadsFlat({
5509
5321
  title,
5510
5322
  subtitle,
@@ -5513,7 +5325,7 @@ function DownloadsFlat({
5513
5325
  background,
5514
5326
  groups
5515
5327
  }) {
5516
- return /* @__PURE__ */ jsx117(
5328
+ return /* @__PURE__ */ jsx116(
5517
5329
  "section",
5518
5330
  {
5519
5331
  className: cn(
@@ -5526,8 +5338,8 @@ function DownloadsFlat({
5526
5338
  background === "warning" && "bg-warning text-warning-foreground",
5527
5339
  background === "error" && "bg-error text-error-foreground"
5528
5340
  ),
5529
- children: /* @__PURE__ */ jsxs84("div", { className: "container mx-auto px-4", children: [
5530
- /* @__PURE__ */ jsx117(
5341
+ children: /* @__PURE__ */ jsxs83("div", { className: "container mx-auto px-4", children: [
5342
+ /* @__PURE__ */ jsx116(
5531
5343
  SectionHeader,
5532
5344
  {
5533
5345
  title,
@@ -5537,14 +5349,14 @@ function DownloadsFlat({
5537
5349
  background
5538
5350
  }
5539
5351
  ),
5540
- groups.length > 0 && /* @__PURE__ */ jsx117("div", { className: "mx-auto max-w-3xl space-y-10", children: groups.map((group) => /* @__PURE__ */ jsxs84("div", { children: [
5541
- /* @__PURE__ */ jsxs84("div", { className: "flex items-center gap-3 mb-4", children: [
5542
- /* @__PURE__ */ jsx117("h3", { className: "text-sm font-semibold uppercase tracking-wider text-muted-foreground", children: group.title }),
5543
- /* @__PURE__ */ jsx117("div", { className: "flex-1 border-t" })
5352
+ groups.length > 0 && /* @__PURE__ */ jsx116("div", { className: "mx-auto max-w-3xl space-y-10", children: groups.map((group) => /* @__PURE__ */ jsxs83("div", { children: [
5353
+ /* @__PURE__ */ jsxs83("div", { className: "flex items-center gap-3 mb-4", children: [
5354
+ /* @__PURE__ */ jsx116("h3", { className: "text-sm font-semibold uppercase tracking-wider text-muted-foreground", children: group.title }),
5355
+ /* @__PURE__ */ jsx116("div", { className: "flex-1 border-t" })
5544
5356
  ] }),
5545
- /* @__PURE__ */ jsxs84("div", { className: "rounded-xl border bg-card px-6 divide-y-0", children: [
5546
- group.files.map((file) => /* @__PURE__ */ jsx117(FileRow, { item: file }, file._key)),
5547
- group.files.length === 0 && /* @__PURE__ */ jsx117("p", { className: "text-sm text-muted-foreground py-4", children: "Sin archivos." })
5357
+ /* @__PURE__ */ jsxs83("div", { className: "rounded-xl border bg-card px-6 divide-y-0", children: [
5358
+ group.files.map((file) => /* @__PURE__ */ jsx116(FileRow, { item: file }, file._key)),
5359
+ group.files.length === 0 && /* @__PURE__ */ jsx116("p", { className: "text-sm text-muted-foreground py-4", children: "Sin archivos." })
5548
5360
  ] })
5549
5361
  ] }, group._key)) })
5550
5362
  ] })
@@ -5553,23 +5365,23 @@ function DownloadsFlat({
5553
5365
  }
5554
5366
 
5555
5367
  // src/sections/downloads/index.tsx
5556
- import { jsx as jsx118 } from "react/jsx-runtime";
5368
+ import { jsx as jsx117 } from "react/jsx-runtime";
5557
5369
  function Downloads(props) {
5558
5370
  switch (props.variant) {
5559
5371
  case "accordion":
5560
- return /* @__PURE__ */ jsx118(DownloadsAccordion, { ...props });
5372
+ return /* @__PURE__ */ jsx117(DownloadsAccordion, { ...props });
5561
5373
  case "flat":
5562
- return /* @__PURE__ */ jsx118(DownloadsFlat, { ...props });
5374
+ return /* @__PURE__ */ jsx117(DownloadsFlat, { ...props });
5563
5375
  case "grouped":
5564
5376
  default:
5565
- return /* @__PURE__ */ jsx118(DownloadsGrouped, { ...props });
5377
+ return /* @__PURE__ */ jsx117(DownloadsGrouped, { ...props });
5566
5378
  }
5567
5379
  }
5568
5380
 
5569
5381
  // src/sections/event-registration/registration-form.tsx
5570
- import { useState as useState16, useRef as useRef4 } from "react";
5382
+ import { useState as useState15, useRef as useRef3 } from "react";
5571
5383
  import { CheckCircle as CheckCircle2, Loader2 as Loader22, ImageIcon, X as X3 } from "lucide-react";
5572
- import { Fragment as Fragment2, jsx as jsx119, jsxs as jsxs85 } from "react/jsx-runtime";
5384
+ import { Fragment as Fragment2, jsx as jsx118, jsxs as jsxs84 } from "react/jsx-runtime";
5573
5385
  var inputBase2 = "flex w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50";
5574
5386
  function DynamicField({
5575
5387
  field,
@@ -5579,16 +5391,16 @@ function DynamicField({
5579
5391
  onFileChange
5580
5392
  }) {
5581
5393
  const id = `field-${field.label}`;
5582
- const fileInputRef = useRef4(null);
5394
+ const fileInputRef = useRef3(null);
5583
5395
  const previewUrl = fileValue ? URL.createObjectURL(fileValue) : value || null;
5584
- const label = /* @__PURE__ */ jsxs85("label", { htmlFor: id, className: "text-sm font-medium leading-none", children: [
5396
+ const label = /* @__PURE__ */ jsxs84("label", { htmlFor: id, className: "text-sm font-medium leading-none", children: [
5585
5397
  field.label,
5586
- field.required && /* @__PURE__ */ jsx119("span", { className: "ml-1 text-destructive", children: "*" })
5398
+ field.required && /* @__PURE__ */ jsx118("span", { className: "ml-1 text-destructive", children: "*" })
5587
5399
  ] });
5588
5400
  if (field.fieldType === "image") {
5589
- return /* @__PURE__ */ jsxs85("div", { className: "flex flex-col gap-1.5", children: [
5401
+ return /* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1.5", children: [
5590
5402
  label,
5591
- /* @__PURE__ */ jsxs85(
5403
+ /* @__PURE__ */ jsxs84(
5592
5404
  "div",
5593
5405
  {
5594
5406
  className: cn(
@@ -5597,8 +5409,8 @@ function DynamicField({
5597
5409
  ),
5598
5410
  onClick: () => fileInputRef.current?.click(),
5599
5411
  children: [
5600
- previewUrl ? /* @__PURE__ */ jsxs85(Fragment2, { children: [
5601
- /* @__PURE__ */ jsx119(
5412
+ previewUrl ? /* @__PURE__ */ jsxs84(Fragment2, { children: [
5413
+ /* @__PURE__ */ jsx118(
5602
5414
  "img",
5603
5415
  {
5604
5416
  src: previewUrl,
@@ -5606,7 +5418,7 @@ function DynamicField({
5606
5418
  className: "max-h-40 rounded object-contain"
5607
5419
  }
5608
5420
  ),
5609
- /* @__PURE__ */ jsx119(
5421
+ /* @__PURE__ */ jsx118(
5610
5422
  "button",
5611
5423
  {
5612
5424
  type: "button",
@@ -5616,15 +5428,15 @@ function DynamicField({
5616
5428
  onChange("");
5617
5429
  },
5618
5430
  className: "absolute right-2 top-2 rounded-full bg-background/80 p-1 hover:bg-destructive/10",
5619
- children: /* @__PURE__ */ jsx119(X3, { className: "h-4 w-4 text-destructive" })
5431
+ children: /* @__PURE__ */ jsx118(X3, { className: "h-4 w-4 text-destructive" })
5620
5432
  }
5621
5433
  )
5622
- ] }) : /* @__PURE__ */ jsxs85(Fragment2, { children: [
5623
- /* @__PURE__ */ jsx119(ImageIcon, { className: "h-8 w-8 text-muted-foreground" }),
5624
- /* @__PURE__ */ jsx119("p", { className: "text-sm text-muted-foreground", children: field.placeholder ?? "Hac\xE9 click para seleccionar una imagen" }),
5625
- /* @__PURE__ */ jsx119("p", { className: "text-xs text-muted-foreground", children: "JPG, PNG, WEBP \xB7 m\xE1x. 10 MB" })
5434
+ ] }) : /* @__PURE__ */ jsxs84(Fragment2, { children: [
5435
+ /* @__PURE__ */ jsx118(ImageIcon, { className: "h-8 w-8 text-muted-foreground" }),
5436
+ /* @__PURE__ */ jsx118("p", { className: "text-sm text-muted-foreground", children: field.placeholder ?? "Hac\xE9 click para seleccionar una imagen" }),
5437
+ /* @__PURE__ */ jsx118("p", { className: "text-xs text-muted-foreground", children: "JPG, PNG, WEBP \xB7 m\xE1x. 10 MB" })
5626
5438
  ] }),
5627
- /* @__PURE__ */ jsx119(
5439
+ /* @__PURE__ */ jsx118(
5628
5440
  "input",
5629
5441
  {
5630
5442
  ref: fileInputRef,
@@ -5646,9 +5458,9 @@ function DynamicField({
5646
5458
  ] });
5647
5459
  }
5648
5460
  if (field.fieldType === "textarea") {
5649
- return /* @__PURE__ */ jsxs85("div", { className: "flex flex-col gap-1.5", children: [
5461
+ return /* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1.5", children: [
5650
5462
  label,
5651
- /* @__PURE__ */ jsx119(
5463
+ /* @__PURE__ */ jsx118(
5652
5464
  "textarea",
5653
5465
  {
5654
5466
  id,
@@ -5663,9 +5475,9 @@ function DynamicField({
5663
5475
  ] });
5664
5476
  }
5665
5477
  if (field.fieldType === "select") {
5666
- return /* @__PURE__ */ jsxs85("div", { className: "flex flex-col gap-1.5", children: [
5478
+ return /* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1.5", children: [
5667
5479
  label,
5668
- /* @__PURE__ */ jsxs85(
5480
+ /* @__PURE__ */ jsxs84(
5669
5481
  "select",
5670
5482
  {
5671
5483
  id,
@@ -5674,17 +5486,17 @@ function DynamicField({
5674
5486
  required: field.required,
5675
5487
  className: cn(inputBase2, "h-10"),
5676
5488
  children: [
5677
- /* @__PURE__ */ jsx119("option", { value: "", children: field.placeholder ?? "Seleccion\xE1 una opci\xF3n" }),
5678
- (field.options ?? []).map((opt) => /* @__PURE__ */ jsx119("option", { value: opt, children: opt }, opt))
5489
+ /* @__PURE__ */ jsx118("option", { value: "", children: field.placeholder ?? "Seleccion\xE1 una opci\xF3n" }),
5490
+ (field.options ?? []).map((opt) => /* @__PURE__ */ jsx118("option", { value: opt, children: opt }, opt))
5679
5491
  ]
5680
5492
  }
5681
5493
  )
5682
5494
  ] });
5683
5495
  }
5684
5496
  if (field.fieldType === "date") {
5685
- return /* @__PURE__ */ jsxs85("div", { className: "flex flex-col gap-1.5", children: [
5497
+ return /* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1.5", children: [
5686
5498
  label,
5687
- /* @__PURE__ */ jsx119(
5499
+ /* @__PURE__ */ jsx118(
5688
5500
  DatePicker,
5689
5501
  {
5690
5502
  id,
@@ -5696,9 +5508,9 @@ function DynamicField({
5696
5508
  )
5697
5509
  ] });
5698
5510
  }
5699
- return /* @__PURE__ */ jsxs85("div", { className: "flex flex-col gap-1.5", children: [
5511
+ return /* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1.5", children: [
5700
5512
  label,
5701
- /* @__PURE__ */ jsx119(
5513
+ /* @__PURE__ */ jsx118(
5702
5514
  "input",
5703
5515
  {
5704
5516
  id,
@@ -5731,12 +5543,12 @@ function RegistrationForm({
5731
5543
  successMessage = "\xA1Tu registro fue enviado con \xE9xito!",
5732
5544
  className
5733
5545
  }) {
5734
- const [values, setValues] = useState16(
5546
+ const [values, setValues] = useState15(
5735
5547
  () => Object.fromEntries(fields.map((f) => [f.label, ""]))
5736
5548
  );
5737
- const [fileValues, setFileValues] = useState16({});
5738
- const [status, setStatus] = useState16("idle");
5739
- const [errorMsg, setErrorMsg] = useState16("");
5549
+ const [fileValues, setFileValues] = useState15({});
5550
+ const [status, setStatus] = useState15("idle");
5551
+ const [errorMsg, setErrorMsg] = useState15("");
5740
5552
  const handleChange = (label, val) => setValues((prev) => ({ ...prev, [label]: val }));
5741
5553
  const handleFileChange = (label, file) => setFileValues((prev) => ({ ...prev, [label]: file }));
5742
5554
  const handleSubmit = async (e) => {
@@ -5771,13 +5583,13 @@ function RegistrationForm({
5771
5583
  }
5772
5584
  };
5773
5585
  if (status === "success") {
5774
- return /* @__PURE__ */ jsxs85("div", { className: cn("flex flex-col items-center gap-4 py-8 text-center", className), children: [
5775
- /* @__PURE__ */ jsx119(CheckCircle2, { className: "h-14 w-14 text-green-500" }),
5776
- /* @__PURE__ */ jsx119("p", { className: "text-lg font-semibold", children: successMessage })
5586
+ return /* @__PURE__ */ jsxs84("div", { className: cn("flex flex-col items-center gap-4 py-8 text-center", className), children: [
5587
+ /* @__PURE__ */ jsx118(CheckCircle2, { className: "h-14 w-14 text-green-500" }),
5588
+ /* @__PURE__ */ jsx118("p", { className: "text-lg font-semibold", children: successMessage })
5777
5589
  ] });
5778
5590
  }
5779
- return /* @__PURE__ */ jsxs85("form", { onSubmit: handleSubmit, className: cn("grid gap-4", className), children: [
5780
- fields.map((field) => /* @__PURE__ */ jsx119(
5591
+ return /* @__PURE__ */ jsxs84("form", { onSubmit: handleSubmit, className: cn("grid gap-4", className), children: [
5592
+ fields.map((field) => /* @__PURE__ */ jsx118(
5781
5593
  DynamicField,
5782
5594
  {
5783
5595
  field,
@@ -5788,16 +5600,16 @@ function RegistrationForm({
5788
5600
  },
5789
5601
  field.label
5790
5602
  )),
5791
- status === "error" && /* @__PURE__ */ jsx119("p", { className: "rounded-md bg-destructive/10 px-4 py-2 text-sm text-destructive", children: errorMsg }),
5792
- /* @__PURE__ */ jsx119(Button, { type: "submit", disabled: status === "loading", className: "mt-2 w-full", size: "lg", children: status === "loading" ? /* @__PURE__ */ jsxs85(Fragment2, { children: [
5793
- /* @__PURE__ */ jsx119(Loader22, { className: "mr-2 h-4 w-4 animate-spin" }),
5603
+ status === "error" && /* @__PURE__ */ jsx118("p", { className: "rounded-md bg-destructive/10 px-4 py-2 text-sm text-destructive", children: errorMsg }),
5604
+ /* @__PURE__ */ jsx118(Button, { type: "submit", disabled: status === "loading", className: "mt-2 w-full", size: "lg", children: status === "loading" ? /* @__PURE__ */ jsxs84(Fragment2, { children: [
5605
+ /* @__PURE__ */ jsx118(Loader22, { className: "mr-2 h-4 w-4 animate-spin" }),
5794
5606
  "Enviando..."
5795
5607
  ] }) : buttonLabel })
5796
5608
  ] });
5797
5609
  }
5798
5610
 
5799
5611
  // src/sections/event-registration/variants/registration-centered.tsx
5800
- import { jsx as jsx120, jsxs as jsxs86 } from "react/jsx-runtime";
5612
+ import { jsx as jsx119, jsxs as jsxs85 } from "react/jsx-runtime";
5801
5613
  function RegistrationCentered({
5802
5614
  title,
5803
5615
  subtitle,
@@ -5809,7 +5621,7 @@ function RegistrationCentered({
5809
5621
  buttonLabel,
5810
5622
  successMessage
5811
5623
  }) {
5812
- return /* @__PURE__ */ jsx120(
5624
+ return /* @__PURE__ */ jsx119(
5813
5625
  "section",
5814
5626
  {
5815
5627
  className: cn(
@@ -5822,9 +5634,9 @@ function RegistrationCentered({
5822
5634
  background === "warning" && "bg-warning text-warning-foreground",
5823
5635
  background === "error" && "bg-error text-error-foreground"
5824
5636
  ),
5825
- children: /* @__PURE__ */ jsxs86("div", { className: "container mx-auto px-4", children: [
5826
- /* @__PURE__ */ jsx120(SectionHeader, { title, subtitle, badge, content, background }),
5827
- /* @__PURE__ */ jsx120(
5637
+ children: /* @__PURE__ */ jsxs85("div", { className: "container mx-auto px-4", children: [
5638
+ /* @__PURE__ */ jsx119(SectionHeader, { title, subtitle, badge, content, background }),
5639
+ /* @__PURE__ */ jsx119(
5828
5640
  RegistrationForm,
5829
5641
  {
5830
5642
  formId,
@@ -5841,7 +5653,7 @@ function RegistrationCentered({
5841
5653
  }
5842
5654
 
5843
5655
  // src/sections/event-registration/variants/registration-card.tsx
5844
- import { jsx as jsx121, jsxs as jsxs87 } from "react/jsx-runtime";
5656
+ import { jsx as jsx120, jsxs as jsxs86 } from "react/jsx-runtime";
5845
5657
  function RegistrationCard({
5846
5658
  title,
5847
5659
  subtitle,
@@ -5853,7 +5665,7 @@ function RegistrationCard({
5853
5665
  buttonLabel,
5854
5666
  successMessage
5855
5667
  }) {
5856
- return /* @__PURE__ */ jsx121(
5668
+ return /* @__PURE__ */ jsx120(
5857
5669
  "section",
5858
5670
  {
5859
5671
  className: cn(
@@ -5866,9 +5678,9 @@ function RegistrationCard({
5866
5678
  background === "warning" && "bg-warning text-warning-foreground",
5867
5679
  background === "error" && "bg-error text-error-foreground"
5868
5680
  ),
5869
- children: /* @__PURE__ */ jsxs87("div", { className: "container mx-auto px-4", children: [
5870
- /* @__PURE__ */ jsx121(SectionHeader, { title, subtitle, badge, content, background }),
5871
- /* @__PURE__ */ jsx121("div", { className: "mx-auto max-w-xl rounded-2xl border bg-card p-8 shadow-sm", children: /* @__PURE__ */ jsx121(
5681
+ children: /* @__PURE__ */ jsxs86("div", { className: "container mx-auto px-4", children: [
5682
+ /* @__PURE__ */ jsx120(SectionHeader, { title, subtitle, badge, content, background }),
5683
+ /* @__PURE__ */ jsx120("div", { className: "mx-auto max-w-xl rounded-2xl border bg-card p-8 shadow-sm", children: /* @__PURE__ */ jsx120(
5872
5684
  RegistrationForm,
5873
5685
  {
5874
5686
  formId,
@@ -5884,7 +5696,7 @@ function RegistrationCard({
5884
5696
  }
5885
5697
 
5886
5698
  // src/sections/event-registration/variants/registration-split.tsx
5887
- import { jsx as jsx122, jsxs as jsxs88 } from "react/jsx-runtime";
5699
+ import { jsx as jsx121, jsxs as jsxs87 } from "react/jsx-runtime";
5888
5700
  function RegistrationSplit({
5889
5701
  title,
5890
5702
  subtitle,
@@ -5896,7 +5708,7 @@ function RegistrationSplit({
5896
5708
  successMessage,
5897
5709
  image
5898
5710
  }) {
5899
- return /* @__PURE__ */ jsx122(
5711
+ return /* @__PURE__ */ jsx121(
5900
5712
  "section",
5901
5713
  {
5902
5714
  className: cn(
@@ -5909,14 +5721,14 @@ function RegistrationSplit({
5909
5721
  background === "warning" && "bg-warning text-warning-foreground",
5910
5722
  background === "error" && "bg-error text-error-foreground"
5911
5723
  ),
5912
- children: /* @__PURE__ */ jsxs88("div", { className: "container mx-auto grid items-center gap-12 px-4 lg:grid-cols-2", children: [
5913
- /* @__PURE__ */ jsxs88("div", { className: "flex flex-col gap-6", children: [
5914
- badge && /* @__PURE__ */ jsx122(Badge, { variant: "outline", className: "w-fit", children: badge }),
5915
- title && /* @__PURE__ */ jsx122("h2", { className: "text-3xl font-bold tracking-tight lg:text-4xl", children: title }),
5916
- subtitle && /* @__PURE__ */ jsx122("p", { className: "text-lg text-muted-foreground", children: subtitle }),
5917
- image && /* @__PURE__ */ jsx122("div", { className: "aspect-video w-full overflow-hidden rounded-2xl", children: /* @__PURE__ */ jsx122("img", { src: image.url, alt: image.alt ?? title ?? "", className: "h-full w-full object-cover" }) })
5724
+ children: /* @__PURE__ */ jsxs87("div", { className: "container mx-auto grid items-center gap-12 px-4 lg:grid-cols-2", children: [
5725
+ /* @__PURE__ */ jsxs87("div", { className: "flex flex-col gap-6", children: [
5726
+ badge && /* @__PURE__ */ jsx121(Badge, { variant: "outline", className: "w-fit", children: badge }),
5727
+ title && /* @__PURE__ */ jsx121("h2", { className: "text-3xl font-bold tracking-tight lg:text-4xl", children: title }),
5728
+ subtitle && /* @__PURE__ */ jsx121("p", { className: "text-lg text-muted-foreground", children: subtitle }),
5729
+ image && /* @__PURE__ */ jsx121("div", { className: "aspect-video w-full overflow-hidden rounded-2xl", children: /* @__PURE__ */ jsx121("img", { src: image.url, alt: image.alt ?? title ?? "", className: "h-full w-full object-cover" }) })
5918
5730
  ] }),
5919
- /* @__PURE__ */ jsx122("div", { className: "rounded-2xl border bg-card p-8 shadow-sm", children: /* @__PURE__ */ jsx122(
5731
+ /* @__PURE__ */ jsx121("div", { className: "rounded-2xl border bg-card p-8 shadow-sm", children: /* @__PURE__ */ jsx121(
5920
5732
  RegistrationForm,
5921
5733
  {
5922
5734
  formId,
@@ -5932,16 +5744,16 @@ function RegistrationSplit({
5932
5744
  }
5933
5745
 
5934
5746
  // src/sections/event-registration/event-registration-section.tsx
5935
- import { jsx as jsx123 } from "react/jsx-runtime";
5747
+ import { jsx as jsx122 } from "react/jsx-runtime";
5936
5748
  function EventRegistration(props) {
5937
5749
  switch (props.variant) {
5938
5750
  case "card":
5939
- return /* @__PURE__ */ jsx123(RegistrationCard, { ...props });
5751
+ return /* @__PURE__ */ jsx122(RegistrationCard, { ...props });
5940
5752
  case "split":
5941
- return /* @__PURE__ */ jsx123(RegistrationSplit, { ...props });
5753
+ return /* @__PURE__ */ jsx122(RegistrationSplit, { ...props });
5942
5754
  case "centered":
5943
5755
  default:
5944
- return /* @__PURE__ */ jsx123(RegistrationCentered, { ...props });
5756
+ return /* @__PURE__ */ jsx122(RegistrationCentered, { ...props });
5945
5757
  }
5946
5758
  }
5947
5759
  export {