@zekidev/ui 2.0.0 → 2.1.0

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 useEffect4, useRef as useRef2, useState as useState13 } from "react";
18
- import L from "leaflet";
19
- import { jsx as jsx81, jsxs as jsxs57 } 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 = useRef2(null);
66
- const mapRef = useRef2(null);
67
- const tileRef = useRef2(null);
68
- const [loading, setLoading] = useState13(!!locations?.length);
69
- useEffect4(() => {
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
- useEffect4(() => {
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
- useEffect4(() => {
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__ */ jsxs57("div", { className: `relative ${className ?? ""}`, children: [
119
- loading && /* @__PURE__ */ jsx81("div", { className: "absolute inset-0 z-[1000] flex items-center justify-center bg-muted/80 rounded-xl", children: /* @__PURE__ */ jsxs57("div", { className: "flex flex-col items-center gap-2 text-muted-foreground text-sm", children: [
120
- /* @__PURE__ */ jsxs57("svg", { className: "animate-spin h-6 w-6", viewBox: "0 0 24 24", fill: "none", children: [
121
- /* @__PURE__ */ jsx81("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
122
- /* @__PURE__ */ jsx81("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__ */ jsx81("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";
@@ -4016,13 +3828,13 @@ function Banner(props) {
4016
3828
  import { MapPin as MapPin3 } from "lucide-react";
4017
3829
 
4018
3830
  // src/sections/map/leaflet-map.tsx
4019
- import { lazy, Suspense, useEffect as useEffect5, useState as useState14 } from "react";
4020
- import { jsx as jsx82 } from "react/jsx-runtime";
4021
- var LeafletMapInner2 = lazy(
4022
- () => Promise.resolve().then(() => (init_leaflet_map_inner(), leaflet_map_inner_exports)).then((m) => ({ default: m.LeafletMapInner }))
3831
+ import { lazy, Suspense, useEffect as useEffect4, useState as useState13 } from "react";
3832
+ import { jsx as jsx81 } from "react/jsx-runtime";
3833
+ var LeafletMapInner = lazy(
3834
+ () => import("./leaflet-map-inner-SOHFKEYD.js").then((m) => ({ default: m.LeafletMapInner }))
4023
3835
  );
4024
3836
  function MapSkeleton({ className }) {
4025
- return /* @__PURE__ */ jsx82(
3837
+ return /* @__PURE__ */ jsx81(
4026
3838
  "div",
4027
3839
  {
4028
3840
  className: `bg-muted animate-pulse rounded-xl flex items-center justify-center text-muted-foreground text-sm ${className ?? ""}`,
@@ -4031,19 +3843,19 @@ function MapSkeleton({ className }) {
4031
3843
  );
4032
3844
  }
4033
3845
  function LeafletMap({ locations, mapStyle, className }) {
4034
- const [mounted, setMounted] = useState14(false);
4035
- useEffect5(() => {
3846
+ const [mounted, setMounted] = useState13(false);
3847
+ useEffect4(() => {
4036
3848
  setMounted(true);
4037
3849
  }, []);
4038
- if (!mounted) return /* @__PURE__ */ jsx82(MapSkeleton, { className });
4039
- return /* @__PURE__ */ jsx82(Suspense, { fallback: /* @__PURE__ */ jsx82(MapSkeleton, { className }), children: /* @__PURE__ */ jsx82(LeafletMapInner2, { locations, mapStyle, className }) });
3850
+ if (!mounted) return /* @__PURE__ */ jsx81(MapSkeleton, { className });
3851
+ return /* @__PURE__ */ jsx81(Suspense, { fallback: /* @__PURE__ */ jsx81(MapSkeleton, { className }), children: /* @__PURE__ */ jsx81(LeafletMapInner, { locations, mapStyle, className }) });
4040
3852
  }
4041
3853
 
4042
3854
  // src/sections/map/variants/map-pins.tsx
4043
- import { jsx as jsx83, jsxs as jsxs58 } from "react/jsx-runtime";
3855
+ import { jsx as jsx82, jsxs as jsxs57 } from "react/jsx-runtime";
4044
3856
  function MapPins({ title, subtitle, content, badge, locations, mapStyle, background }) {
4045
3857
  const hasLocations = locations?.length > 0;
4046
- return /* @__PURE__ */ jsx83(
3858
+ return /* @__PURE__ */ jsx82(
4047
3859
  "section",
4048
3860
  {
4049
3861
  className: cn(
@@ -4056,11 +3868,11 @@ function MapPins({ title, subtitle, content, badge, locations, mapStyle, backgro
4056
3868
  background === "warning" && "bg-warning text-warning-foreground",
4057
3869
  background === "error" && "bg-error text-error-foreground"
4058
3870
  ),
4059
- children: /* @__PURE__ */ jsxs58("div", { className: "container mx-auto px-4", children: [
4060
- /* @__PURE__ */ jsx83(SectionHeader, { title, subtitle, badge, content, background }),
4061
- 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: [
4062
- /* @__PURE__ */ jsx83(MapPin3, { className: "h-10 w-10 opacity-40" }),
4063
- /* @__PURE__ */ jsx83("p", { className: "text-sm", children: "Agreg\xE1 ubicaciones en el Studio \u2014 las direcciones se geocodifican autom\xE1ticamente." })
3871
+ children: /* @__PURE__ */ jsxs57("div", { className: "container mx-auto px-4", children: [
3872
+ /* @__PURE__ */ jsx82(SectionHeader, { title, subtitle, badge, content, background }),
3873
+ hasLocations ? /* @__PURE__ */ jsx82(LeafletMap, { locations, mapStyle, className: "h-96 w-full rounded-xl overflow-hidden shadow" }) : /* @__PURE__ */ jsxs57("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: [
3874
+ /* @__PURE__ */ jsx82(MapPin3, { className: "h-10 w-10 opacity-40" }),
3875
+ /* @__PURE__ */ jsx82("p", { className: "text-sm", children: "Agreg\xE1 ubicaciones en el Studio \u2014 las direcciones se geocodifican autom\xE1ticamente." })
4064
3876
  ] })
4065
3877
  ] })
4066
3878
  }
@@ -4069,9 +3881,9 @@ function MapPins({ title, subtitle, content, badge, locations, mapStyle, backgro
4069
3881
 
4070
3882
  // src/sections/map/variants/map-listing.tsx
4071
3883
  import { MapPin as MapPin4, Phone as Phone3, Clock as Clock3, MapPinned } from "lucide-react";
4072
- import { jsx as jsx84, jsxs as jsxs59 } from "react/jsx-runtime";
3884
+ import { jsx as jsx83, jsxs as jsxs58 } from "react/jsx-runtime";
4073
3885
  function MapListing({ title, subtitle, content, badge, locations, background }) {
4074
- return /* @__PURE__ */ jsx84(
3886
+ return /* @__PURE__ */ jsx83(
4075
3887
  "section",
4076
3888
  {
4077
3889
  className: cn(
@@ -4084,23 +3896,23 @@ function MapListing({ title, subtitle, content, badge, locations, background })
4084
3896
  background === "warning" && "bg-warning text-warning-foreground",
4085
3897
  background === "error" && "bg-error text-error-foreground"
4086
3898
  ),
4087
- children: /* @__PURE__ */ jsxs59("div", { className: "container mx-auto px-4", children: [
4088
- /* @__PURE__ */ jsx84(SectionHeader, { title, subtitle, badge, content, background }),
4089
- /* @__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: [
4090
- /* @__PURE__ */ jsxs59("div", { className: "flex items-start gap-3 mb-3", children: [
4091
- /* @__PURE__ */ jsx84(MapPin4, { className: "h-5 w-5 text-primary mt-0.5 shrink-0" }),
4092
- /* @__PURE__ */ jsx84("h3", { className: "font-semibold text-lg", children: location.name })
3899
+ children: /* @__PURE__ */ jsxs58("div", { className: "container mx-auto px-4", children: [
3900
+ /* @__PURE__ */ jsx83(SectionHeader, { title, subtitle, badge, content, background }),
3901
+ /* @__PURE__ */ jsx83("div", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3", children: locations.map((location, i) => /* @__PURE__ */ jsxs58("div", { className: "rounded-xl border bg-card p-6 shadow-sm", children: [
3902
+ /* @__PURE__ */ jsxs58("div", { className: "flex items-start gap-3 mb-3", children: [
3903
+ /* @__PURE__ */ jsx83(MapPin4, { className: "h-5 w-5 text-primary mt-0.5 shrink-0" }),
3904
+ /* @__PURE__ */ jsx83("h3", { className: "font-semibold text-lg", children: location.name })
4093
3905
  ] }),
4094
- location.phone && /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-2", children: [
4095
- /* @__PURE__ */ jsx84(Phone3, { className: "h-4 w-4 shrink-0" }),
4096
- /* @__PURE__ */ jsx84("span", { children: location.phone })
3906
+ location.phone && /* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-2", children: [
3907
+ /* @__PURE__ */ jsx83(Phone3, { className: "h-4 w-4 shrink-0" }),
3908
+ /* @__PURE__ */ jsx83("span", { children: location.phone })
4097
3909
  ] }),
4098
- location.hours && /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-2", children: [
4099
- /* @__PURE__ */ jsx84(Clock3, { className: "h-4 w-4 shrink-0" }),
4100
- /* @__PURE__ */ jsx84("span", { children: location.hours })
3910
+ location.hours && /* @__PURE__ */ jsxs58("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-2", children: [
3911
+ /* @__PURE__ */ jsx83(Clock3, { className: "h-4 w-4 shrink-0" }),
3912
+ /* @__PURE__ */ jsx83("span", { children: location.hours })
4101
3913
  ] }),
4102
- location.description && /* @__PURE__ */ jsx84("p", { className: "text-sm text-muted-foreground mt-3", children: location.description }),
4103
- location.address && /* @__PURE__ */ jsxs59(
3914
+ location.description && /* @__PURE__ */ jsx83("p", { className: "text-sm text-muted-foreground mt-3", children: location.description }),
3915
+ location.address && /* @__PURE__ */ jsxs58(
4104
3916
  "a",
4105
3917
  {
4106
3918
  href: `https://maps.google.com/?q=${encodeURIComponent(location.address)}`,
@@ -4108,7 +3920,7 @@ function MapListing({ title, subtitle, content, badge, locations, background })
4108
3920
  rel: "noopener noreferrer",
4109
3921
  className: "inline-flex items-center gap-1 mt-4 text-sm font-medium text-primary hover:underline",
4110
3922
  children: [
4111
- /* @__PURE__ */ jsx84(MapPinned, { className: "h-3.5 w-3.5 shrink-0" }),
3923
+ /* @__PURE__ */ jsx83(MapPinned, { className: "h-3.5 w-3.5 shrink-0" }),
4112
3924
  location.address
4113
3925
  ]
4114
3926
  }
@@ -4121,10 +3933,10 @@ function MapListing({ title, subtitle, content, badge, locations, background })
4121
3933
 
4122
3934
  // src/sections/map/variants/map-split.tsx
4123
3935
  import { MapPin as MapPin5, Phone as Phone4, Clock as Clock4, MapPinned as MapPinned2 } from "lucide-react";
4124
- import { jsx as jsx85, jsxs as jsxs60 } from "react/jsx-runtime";
3936
+ import { jsx as jsx84, jsxs as jsxs59 } from "react/jsx-runtime";
4125
3937
  function MapSplit({ title, subtitle, content, badge, locations, mapStyle, background }) {
4126
3938
  const hasLocations = locations?.length > 0;
4127
- return /* @__PURE__ */ jsx85(
3939
+ return /* @__PURE__ */ jsx84(
4128
3940
  "section",
4129
3941
  {
4130
3942
  className: cn(
@@ -4137,28 +3949,28 @@ function MapSplit({ title, subtitle, content, badge, locations, mapStyle, backgr
4137
3949
  background === "warning" && "bg-warning text-warning-foreground",
4138
3950
  background === "error" && "bg-error text-error-foreground"
4139
3951
  ),
4140
- children: /* @__PURE__ */ jsxs60("div", { className: "container mx-auto px-4", children: [
4141
- /* @__PURE__ */ jsx85(SectionHeader, { title, subtitle, badge, content, background }),
4142
- /* @__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: [
4143
- /* @__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: [
4144
- /* @__PURE__ */ jsx85(MapPin5, { className: "h-10 w-10 opacity-40" }),
4145
- /* @__PURE__ */ jsx85("p", { className: "text-sm", children: "Agreg\xE1 ubicaciones en el Studio \u2014 las direcciones se geocodifican autom\xE1ticamente." })
3952
+ children: /* @__PURE__ */ jsxs59("div", { className: "container mx-auto px-4", children: [
3953
+ /* @__PURE__ */ jsx84(SectionHeader, { title, subtitle, badge, content, background }),
3954
+ /* @__PURE__ */ jsxs59("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: [
3955
+ /* @__PURE__ */ jsx84("div", { className: "min-h-[450px]", children: hasLocations ? /* @__PURE__ */ jsx84(LeafletMap, { locations, mapStyle, className: "h-full min-h-[450px] w-full" }) : /* @__PURE__ */ jsxs59("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: [
3956
+ /* @__PURE__ */ jsx84(MapPin5, { className: "h-10 w-10 opacity-40" }),
3957
+ /* @__PURE__ */ jsx84("p", { className: "text-sm", children: "Agreg\xE1 ubicaciones en el Studio \u2014 las direcciones se geocodifican autom\xE1ticamente." })
4146
3958
  ] }) }),
4147
- /* @__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: [
4148
- /* @__PURE__ */ jsxs60("div", { className: "flex items-start gap-2 mb-2", children: [
4149
- /* @__PURE__ */ jsx85(MapPin5, { className: "h-4 w-4 text-primary mt-1 shrink-0" }),
4150
- /* @__PURE__ */ jsx85("h3", { className: "font-semibold", children: location.name })
3959
+ /* @__PURE__ */ jsx84("div", { className: "bg-card p-6 sm:p-8 overflow-y-auto max-h-[600px]", children: hasLocations ? /* @__PURE__ */ jsx84("div", { className: "space-y-6", children: locations.map((location, i) => /* @__PURE__ */ jsxs59("div", { className: "pb-6 border-b last:border-0 last:pb-0", children: [
3960
+ /* @__PURE__ */ jsxs59("div", { className: "flex items-start gap-2 mb-2", children: [
3961
+ /* @__PURE__ */ jsx84(MapPin5, { className: "h-4 w-4 text-primary mt-1 shrink-0" }),
3962
+ /* @__PURE__ */ jsx84("h3", { className: "font-semibold", children: location.name })
4151
3963
  ] }),
4152
- location.phone && /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-1", children: [
4153
- /* @__PURE__ */ jsx85(Phone4, { className: "h-3.5 w-3.5 shrink-0" }),
4154
- /* @__PURE__ */ jsx85("span", { children: location.phone })
3964
+ location.phone && /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-1", children: [
3965
+ /* @__PURE__ */ jsx84(Phone4, { className: "h-3.5 w-3.5 shrink-0" }),
3966
+ /* @__PURE__ */ jsx84("span", { children: location.phone })
4155
3967
  ] }),
4156
- location.hours && /* @__PURE__ */ jsxs60("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-1", children: [
4157
- /* @__PURE__ */ jsx85(Clock4, { className: "h-3.5 w-3.5 shrink-0" }),
4158
- /* @__PURE__ */ jsx85("span", { children: location.hours })
3968
+ location.hours && /* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-2 text-sm text-muted-foreground mb-1", children: [
3969
+ /* @__PURE__ */ jsx84(Clock4, { className: "h-3.5 w-3.5 shrink-0" }),
3970
+ /* @__PURE__ */ jsx84("span", { children: location.hours })
4159
3971
  ] }),
4160
- location.description && /* @__PURE__ */ jsx85("p", { className: "text-sm text-muted-foreground mt-2", children: location.description }),
4161
- location.address && /* @__PURE__ */ jsxs60(
3972
+ location.description && /* @__PURE__ */ jsx84("p", { className: "text-sm text-muted-foreground mt-2", children: location.description }),
3973
+ location.address && /* @__PURE__ */ jsxs59(
4162
3974
  "a",
4163
3975
  {
4164
3976
  href: `https://maps.google.com/?q=${encodeURIComponent(location.address)}`,
@@ -4166,12 +3978,12 @@ function MapSplit({ title, subtitle, content, badge, locations, mapStyle, backgr
4166
3978
  rel: "noopener noreferrer",
4167
3979
  className: "inline-flex items-center gap-1 mt-3 text-sm font-medium text-primary hover:underline",
4168
3980
  children: [
4169
- /* @__PURE__ */ jsx85(MapPinned2, { className: "h-3.5 w-3.5 shrink-0" }),
3981
+ /* @__PURE__ */ jsx84(MapPinned2, { className: "h-3.5 w-3.5 shrink-0" }),
4170
3982
  location.address
4171
3983
  ]
4172
3984
  }
4173
3985
  )
4174
- ] }, i)) }) : /* @__PURE__ */ jsx85("p", { className: "text-sm text-muted-foreground", children: "No hay ubicaciones agregadas a\xFAn." }) })
3986
+ ] }, i)) }) : /* @__PURE__ */ jsx84("p", { className: "text-sm text-muted-foreground", children: "No hay ubicaciones agregadas a\xFAn." }) })
4175
3987
  ] })
4176
3988
  ] })
4177
3989
  }
@@ -4179,23 +3991,23 @@ function MapSplit({ title, subtitle, content, badge, locations, mapStyle, backgr
4179
3991
  }
4180
3992
 
4181
3993
  // src/sections/map/index.tsx
4182
- import { jsx as jsx86 } from "react/jsx-runtime";
3994
+ import { jsx as jsx85 } from "react/jsx-runtime";
4183
3995
  function MapSection(props) {
4184
3996
  switch (props.variant) {
4185
3997
  case "listing":
4186
- return /* @__PURE__ */ jsx86(MapListing, { ...props });
3998
+ return /* @__PURE__ */ jsx85(MapListing, { ...props });
4187
3999
  case "split":
4188
- return /* @__PURE__ */ jsx86(MapSplit, { ...props });
4000
+ return /* @__PURE__ */ jsx85(MapSplit, { ...props });
4189
4001
  case "pins":
4190
4002
  default:
4191
- return /* @__PURE__ */ jsx86(MapPins, { ...props });
4003
+ return /* @__PURE__ */ jsx85(MapPins, { ...props });
4192
4004
  }
4193
4005
  }
4194
4006
 
4195
4007
  // src/sections/iframe/variants/iframe-simple.tsx
4196
- import { jsx as jsx87, jsxs as jsxs61 } from "react/jsx-runtime";
4008
+ import { jsx as jsx86, jsxs as jsxs60 } from "react/jsx-runtime";
4197
4009
  function IframeSimple({ title, subtitle, content, badge, src, iframeTitle, height, background }) {
4198
- return /* @__PURE__ */ jsx87(
4010
+ return /* @__PURE__ */ jsx86(
4199
4011
  "section",
4200
4012
  {
4201
4013
  className: cn(
@@ -4208,9 +4020,9 @@ function IframeSimple({ title, subtitle, content, badge, src, iframeTitle, heigh
4208
4020
  background === "warning" && "bg-warning text-warning-foreground",
4209
4021
  background === "error" && "bg-error text-error-foreground"
4210
4022
  ),
4211
- children: /* @__PURE__ */ jsxs61("div", { className: "container mx-auto px-4", children: [
4212
- /* @__PURE__ */ jsx87(SectionHeader, { title, subtitle, badge, content, background }),
4213
- /* @__PURE__ */ jsx87(
4023
+ children: /* @__PURE__ */ jsxs60("div", { className: "container mx-auto px-4", children: [
4024
+ /* @__PURE__ */ jsx86(SectionHeader, { title, subtitle, badge, content, background }),
4025
+ /* @__PURE__ */ jsx86(
4214
4026
  "iframe",
4215
4027
  {
4216
4028
  src,
@@ -4227,9 +4039,9 @@ function IframeSimple({ title, subtitle, content, badge, src, iframeTitle, heigh
4227
4039
  }
4228
4040
 
4229
4041
  // src/sections/iframe/variants/iframe-card.tsx
4230
- import { jsx as jsx88, jsxs as jsxs62 } from "react/jsx-runtime";
4042
+ import { jsx as jsx87, jsxs as jsxs61 } from "react/jsx-runtime";
4231
4043
  function IframeCard({ title, subtitle, content, badge, src, iframeTitle, height, background }) {
4232
- return /* @__PURE__ */ jsx88(
4044
+ return /* @__PURE__ */ jsx87(
4233
4045
  "section",
4234
4046
  {
4235
4047
  className: cn(
@@ -4242,9 +4054,9 @@ function IframeCard({ title, subtitle, content, badge, src, iframeTitle, height,
4242
4054
  background === "warning" && "bg-warning text-warning-foreground",
4243
4055
  background === "error" && "bg-error text-error-foreground"
4244
4056
  ),
4245
- children: /* @__PURE__ */ jsxs62("div", { className: "container mx-auto px-4", children: [
4246
- /* @__PURE__ */ jsx88(SectionHeader, { title, subtitle, badge, content, background }),
4247
- /* @__PURE__ */ jsx88("div", { className: "rounded-xl overflow-hidden shadow-lg border", children: /* @__PURE__ */ jsx88(
4057
+ children: /* @__PURE__ */ jsxs61("div", { className: "container mx-auto px-4", children: [
4058
+ /* @__PURE__ */ jsx87(SectionHeader, { title, subtitle, badge, content, background }),
4059
+ /* @__PURE__ */ jsx87("div", { className: "rounded-xl overflow-hidden shadow-lg border", children: /* @__PURE__ */ jsx87(
4248
4060
  "iframe",
4249
4061
  {
4250
4062
  src,
@@ -4261,10 +4073,10 @@ function IframeCard({ title, subtitle, content, badge, src, iframeTitle, height,
4261
4073
  }
4262
4074
 
4263
4075
  // src/sections/iframe/variants/iframe-responsive.tsx
4264
- import { jsx as jsx89, jsxs as jsxs63 } from "react/jsx-runtime";
4076
+ import { jsx as jsx88, jsxs as jsxs62 } from "react/jsx-runtime";
4265
4077
  function IframeResponsive({ title, subtitle, content, badge, src, iframeTitle, height, aspectRatio, background }) {
4266
4078
  const isFixedHeight = !aspectRatio || aspectRatio === "auto";
4267
- return /* @__PURE__ */ jsx89(
4079
+ return /* @__PURE__ */ jsx88(
4268
4080
  "section",
4269
4081
  {
4270
4082
  className: cn(
@@ -4277,9 +4089,9 @@ function IframeResponsive({ title, subtitle, content, badge, src, iframeTitle, h
4277
4089
  background === "warning" && "bg-warning text-warning-foreground",
4278
4090
  background === "error" && "bg-error text-error-foreground"
4279
4091
  ),
4280
- children: /* @__PURE__ */ jsxs63("div", { className: "container mx-auto px-4", children: [
4281
- /* @__PURE__ */ jsx89(SectionHeader, { title, subtitle, badge, content, background }),
4282
- isFixedHeight ? /* @__PURE__ */ jsx89(
4092
+ children: /* @__PURE__ */ jsxs62("div", { className: "container mx-auto px-4", children: [
4093
+ /* @__PURE__ */ jsx88(SectionHeader, { title, subtitle, badge, content, background }),
4094
+ isFixedHeight ? /* @__PURE__ */ jsx88(
4283
4095
  "iframe",
4284
4096
  {
4285
4097
  src,
@@ -4289,7 +4101,7 @@ function IframeResponsive({ title, subtitle, content, badge, src, iframeTitle, h
4289
4101
  allowFullScreen: true,
4290
4102
  sandbox: "allow-scripts allow-same-origin allow-popups allow-forms"
4291
4103
  }
4292
- ) : /* @__PURE__ */ jsx89(
4104
+ ) : /* @__PURE__ */ jsx88(
4293
4105
  "div",
4294
4106
  {
4295
4107
  className: cn(
@@ -4297,7 +4109,7 @@ function IframeResponsive({ title, subtitle, content, badge, src, iframeTitle, h
4297
4109
  aspectRatio === "video" && "aspect-video",
4298
4110
  aspectRatio === "square" && "aspect-square"
4299
4111
  ),
4300
- children: /* @__PURE__ */ jsx89(
4112
+ children: /* @__PURE__ */ jsx88(
4301
4113
  "iframe",
4302
4114
  {
4303
4115
  src,
@@ -4315,24 +4127,24 @@ function IframeResponsive({ title, subtitle, content, badge, src, iframeTitle, h
4315
4127
  }
4316
4128
 
4317
4129
  // src/sections/iframe/index.tsx
4318
- import { jsx as jsx90 } from "react/jsx-runtime";
4130
+ import { jsx as jsx89 } from "react/jsx-runtime";
4319
4131
  function IframeSection(props) {
4320
4132
  switch (props.variant) {
4321
4133
  case "card":
4322
- return /* @__PURE__ */ jsx90(IframeCard, { ...props });
4134
+ return /* @__PURE__ */ jsx89(IframeCard, { ...props });
4323
4135
  case "responsive":
4324
- return /* @__PURE__ */ jsx90(IframeResponsive, { ...props });
4136
+ return /* @__PURE__ */ jsx89(IframeResponsive, { ...props });
4325
4137
  case "simple":
4326
4138
  default:
4327
- return /* @__PURE__ */ jsx90(IframeSimple, { ...props });
4139
+ return /* @__PURE__ */ jsx89(IframeSimple, { ...props });
4328
4140
  }
4329
4141
  }
4330
4142
 
4331
4143
  // src/sections/comparison/variants/comparison-table.tsx
4332
4144
  import { Minus } from "lucide-react";
4333
- import { jsx as jsx91, jsxs as jsxs64 } from "react/jsx-runtime";
4145
+ import { jsx as jsx90, jsxs as jsxs63 } from "react/jsx-runtime";
4334
4146
  function ComparisonTable({ title, subtitle, content, badge, allFeatures, columns, background }) {
4335
- return /* @__PURE__ */ jsx91(
4147
+ return /* @__PURE__ */ jsx90(
4336
4148
  "section",
4337
4149
  {
4338
4150
  className: cn(
@@ -4345,46 +4157,46 @@ function ComparisonTable({ title, subtitle, content, badge, allFeatures, columns
4345
4157
  background === "warning" && "bg-warning text-warning-foreground",
4346
4158
  background === "error" && "bg-error text-error-foreground"
4347
4159
  ),
4348
- children: /* @__PURE__ */ jsxs64("div", { className: "container mx-auto px-4", children: [
4349
- /* @__PURE__ */ jsx91(SectionHeader, { title, subtitle, badge, content, background }),
4350
- /* @__PURE__ */ jsx91("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs64("table", { className: "min-w-[600px] w-full border-collapse", children: [
4351
- /* @__PURE__ */ jsx91("thead", { children: /* @__PURE__ */ jsxs64("tr", { children: [
4352
- /* @__PURE__ */ jsx91("th", { className: "text-left p-4 font-semibold text-muted-foreground w-48", children: "Caracter\xEDsticas" }),
4353
- columns.map((col, i) => /* @__PURE__ */ jsx91(
4160
+ children: /* @__PURE__ */ jsxs63("div", { className: "container mx-auto px-4", children: [
4161
+ /* @__PURE__ */ jsx90(SectionHeader, { title, subtitle, badge, content, background }),
4162
+ /* @__PURE__ */ jsx90("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs63("table", { className: "min-w-[600px] w-full border-collapse", children: [
4163
+ /* @__PURE__ */ jsx90("thead", { children: /* @__PURE__ */ jsxs63("tr", { children: [
4164
+ /* @__PURE__ */ jsx90("th", { className: "text-left p-4 font-semibold text-muted-foreground w-48", children: "Caracter\xEDsticas" }),
4165
+ columns.map((col, i) => /* @__PURE__ */ jsx90(
4354
4166
  "th",
4355
4167
  {
4356
4168
  className: cn(
4357
4169
  "p-4 text-center",
4358
4170
  col.highlighted && "bg-primary/5 border-x border-primary"
4359
4171
  ),
4360
- children: /* @__PURE__ */ jsxs64("div", { className: "flex flex-col items-center gap-1", children: [
4361
- col.badge && /* @__PURE__ */ jsx91(Badge, { variant: "secondary", className: "mb-1", children: col.badge }),
4362
- /* @__PURE__ */ jsx91("span", { className: "font-bold text-lg", children: col.name }),
4363
- col.price && /* @__PURE__ */ jsxs64("span", { className: "text-2xl font-bold", children: [
4172
+ children: /* @__PURE__ */ jsxs63("div", { className: "flex flex-col items-center gap-1", children: [
4173
+ col.badge && /* @__PURE__ */ jsx90(Badge, { variant: "secondary", className: "mb-1", children: col.badge }),
4174
+ /* @__PURE__ */ jsx90("span", { className: "font-bold text-lg", children: col.name }),
4175
+ col.price && /* @__PURE__ */ jsxs63("span", { className: "text-2xl font-bold", children: [
4364
4176
  col.price,
4365
- col.priceFrequency && /* @__PURE__ */ jsxs64("span", { className: "text-sm font-normal text-muted-foreground", children: [
4177
+ col.priceFrequency && /* @__PURE__ */ jsxs63("span", { className: "text-sm font-normal text-muted-foreground", children: [
4366
4178
  "/",
4367
4179
  col.priceFrequency
4368
4180
  ] })
4369
4181
  ] }),
4370
- col.description && /* @__PURE__ */ jsx91("p", { className: "text-sm text-muted-foreground", children: col.description })
4182
+ col.description && /* @__PURE__ */ jsx90("p", { className: "text-sm text-muted-foreground", children: col.description })
4371
4183
  ] })
4372
4184
  },
4373
4185
  i
4374
4186
  ))
4375
4187
  ] }) }),
4376
- /* @__PURE__ */ jsx91("tbody", { children: allFeatures.map((feature, fi) => /* @__PURE__ */ jsxs64("tr", { className: "border-t", children: [
4377
- /* @__PURE__ */ jsx91("td", { className: "p-4 text-sm", children: feature }),
4188
+ /* @__PURE__ */ jsx90("tbody", { children: allFeatures.map((feature, fi) => /* @__PURE__ */ jsxs63("tr", { className: "border-t", children: [
4189
+ /* @__PURE__ */ jsx90("td", { className: "p-4 text-sm", children: feature }),
4378
4190
  columns.map((col, ci) => {
4379
4191
  const cell = col.cells?.[fi] ?? "";
4380
- return /* @__PURE__ */ jsx91(
4192
+ return /* @__PURE__ */ jsx90(
4381
4193
  "td",
4382
4194
  {
4383
4195
  className: cn(
4384
4196
  "p-4 text-center",
4385
4197
  col.highlighted && "bg-primary/5 border-x border-primary"
4386
4198
  ),
4387
- 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" })
4199
+ children: cell ? /* @__PURE__ */ jsx90("span", { className: "text-base leading-none", children: cell }) : /* @__PURE__ */ jsx90(Minus, { className: "h-5 w-5 text-muted-foreground mx-auto" })
4388
4200
  },
4389
4201
  ci
4390
4202
  );
@@ -4397,9 +4209,9 @@ function ComparisonTable({ title, subtitle, content, badge, allFeatures, columns
4397
4209
  }
4398
4210
 
4399
4211
  // src/sections/comparison/variants/comparison-cards.tsx
4400
- import { jsx as jsx92, jsxs as jsxs65 } from "react/jsx-runtime";
4212
+ import { jsx as jsx91, jsxs as jsxs64 } from "react/jsx-runtime";
4401
4213
  function ComparisonCards({ title, subtitle, content, badge, allFeatures, columns, background }) {
4402
- return /* @__PURE__ */ jsx92(
4214
+ return /* @__PURE__ */ jsx91(
4403
4215
  "section",
4404
4216
  {
4405
4217
  className: cn(
@@ -4412,9 +4224,9 @@ function ComparisonCards({ title, subtitle, content, badge, allFeatures, columns
4412
4224
  background === "warning" && "bg-warning text-warning-foreground",
4413
4225
  background === "error" && "bg-error text-error-foreground"
4414
4226
  ),
4415
- children: /* @__PURE__ */ jsxs65("div", { className: "container mx-auto px-4", children: [
4416
- /* @__PURE__ */ jsx92(SectionHeader, { title, subtitle, badge, content, background }),
4417
- /* @__PURE__ */ jsx92("div", { className: "flex flex-wrap justify-center gap-6 items-end", children: columns.map((col, i) => /* @__PURE__ */ jsxs65(
4227
+ children: /* @__PURE__ */ jsxs64("div", { className: "container mx-auto px-4", children: [
4228
+ /* @__PURE__ */ jsx91(SectionHeader, { title, subtitle, badge, content, background }),
4229
+ /* @__PURE__ */ jsx91("div", { className: "flex flex-wrap justify-center gap-6 items-end", children: columns.map((col, i) => /* @__PURE__ */ jsxs64(
4418
4230
  "div",
4419
4231
  {
4420
4232
  className: cn(
@@ -4422,32 +4234,32 @@ function ComparisonCards({ title, subtitle, content, badge, allFeatures, columns
4422
4234
  col.highlighted && "border-primary shadow-lg scale-105"
4423
4235
  ),
4424
4236
  children: [
4425
- col.badge && /* @__PURE__ */ jsx92(Badge, { variant: "secondary", className: "mb-3 self-start", children: col.badge }),
4426
- /* @__PURE__ */ jsx92("h3", { className: "text-xl font-bold mb-1", children: col.name }),
4427
- col.description && /* @__PURE__ */ jsx92("p", { className: "text-sm text-muted-foreground mb-4", children: col.description }),
4428
- col.price && /* @__PURE__ */ jsxs65("div", { className: "mb-6", children: [
4429
- /* @__PURE__ */ jsx92("span", { className: "text-4xl font-bold", children: col.price }),
4430
- col.priceFrequency && /* @__PURE__ */ jsxs65("span", { className: "text-muted-foreground text-sm", children: [
4237
+ col.badge && /* @__PURE__ */ jsx91(Badge, { variant: "secondary", className: "mb-3 self-start", children: col.badge }),
4238
+ /* @__PURE__ */ jsx91("h3", { className: "text-xl font-bold mb-1", children: col.name }),
4239
+ col.description && /* @__PURE__ */ jsx91("p", { className: "text-sm text-muted-foreground mb-4", children: col.description }),
4240
+ col.price && /* @__PURE__ */ jsxs64("div", { className: "mb-6", children: [
4241
+ /* @__PURE__ */ jsx91("span", { className: "text-4xl font-bold", children: col.price }),
4242
+ col.priceFrequency && /* @__PURE__ */ jsxs64("span", { className: "text-muted-foreground text-sm", children: [
4431
4243
  "/",
4432
4244
  col.priceFrequency
4433
4245
  ] })
4434
4246
  ] }),
4435
- /* @__PURE__ */ jsx92("ul", { className: "space-y-2 mb-8 flex-1", children: allFeatures.map((feature, fi) => {
4247
+ /* @__PURE__ */ jsx91("ul", { className: "space-y-2 mb-8 flex-1", children: allFeatures.map((feature, fi) => {
4436
4248
  const cell = col.cells?.[fi] ?? "";
4437
4249
  if (!cell) return null;
4438
- return /* @__PURE__ */ jsxs65("li", { className: "flex items-center gap-2 text-sm", children: [
4439
- /* @__PURE__ */ jsx92("span", { className: "text-base leading-none shrink-0", children: cell }),
4440
- /* @__PURE__ */ jsx92("span", { children: feature })
4250
+ return /* @__PURE__ */ jsxs64("li", { className: "flex items-center gap-2 text-sm", children: [
4251
+ /* @__PURE__ */ jsx91("span", { className: "text-base leading-none shrink-0", children: cell }),
4252
+ /* @__PURE__ */ jsx91("span", { children: feature })
4441
4253
  ] }, fi);
4442
4254
  }) }),
4443
- col.cta?.label && /* @__PURE__ */ jsx92(
4255
+ col.cta?.label && /* @__PURE__ */ jsx91(
4444
4256
  Button,
4445
4257
  {
4446
4258
  asChild: true,
4447
4259
  variant: col.cta.variant ?? "default",
4448
4260
  size: col.cta.size ?? "lg",
4449
4261
  className: "w-full",
4450
- children: /* @__PURE__ */ jsx92("a", { href: col.cta.href, children: col.cta.label })
4262
+ children: /* @__PURE__ */ jsx91("a", { href: col.cta.href, children: col.cta.label })
4451
4263
  }
4452
4264
  )
4453
4265
  ]
@@ -4461,12 +4273,12 @@ function ComparisonCards({ title, subtitle, content, badge, allFeatures, columns
4461
4273
 
4462
4274
  // src/sections/comparison/variants/comparison-highlights.tsx
4463
4275
  import { Check as Check2, Minus as Minus2 } from "lucide-react";
4464
- import { jsx as jsx93, jsxs as jsxs66 } from "react/jsx-runtime";
4276
+ import { jsx as jsx92, jsxs as jsxs65 } from "react/jsx-runtime";
4465
4277
  function ComparisonHighlights({ title, subtitle, content, badge, allFeatures, columns, background }) {
4466
4278
  const hasValue = (col, fi) => !!(col.cells?.[fi] ?? "");
4467
4279
  const sharedRows = allFeatures.filter((_, fi) => columns.every((col) => hasValue(col, fi)));
4468
4280
  const differingRows = allFeatures.map((f, fi) => ({ f, fi })).filter(({ fi }) => !columns.every((col) => hasValue(col, fi)));
4469
- return /* @__PURE__ */ jsx93(
4281
+ return /* @__PURE__ */ jsx92(
4470
4282
  "section",
4471
4283
  {
4472
4284
  className: cn(
@@ -4479,27 +4291,27 @@ function ComparisonHighlights({ title, subtitle, content, badge, allFeatures, co
4479
4291
  background === "warning" && "bg-warning text-warning-foreground",
4480
4292
  background === "error" && "bg-error text-error-foreground"
4481
4293
  ),
4482
- children: /* @__PURE__ */ jsxs66("div", { className: "container mx-auto px-4", children: [
4483
- /* @__PURE__ */ jsx93(SectionHeader, { title, subtitle, badge, content, background }),
4484
- sharedRows.length > 0 && /* @__PURE__ */ jsxs66("div", { className: "mb-12", children: [
4485
- /* @__PURE__ */ jsx93("h3", { className: "text-lg font-semibold mb-4", children: "Todos los planes incluyen" }),
4486
- /* @__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: [
4487
- /* @__PURE__ */ jsx93(Check2, { className: "h-4 w-4 text-green-500 shrink-0" }),
4488
- /* @__PURE__ */ jsx93("span", { children: feature })
4294
+ children: /* @__PURE__ */ jsxs65("div", { className: "container mx-auto px-4", children: [
4295
+ /* @__PURE__ */ jsx92(SectionHeader, { title, subtitle, badge, content, background }),
4296
+ sharedRows.length > 0 && /* @__PURE__ */ jsxs65("div", { className: "mb-12", children: [
4297
+ /* @__PURE__ */ jsx92("h3", { className: "text-lg font-semibold mb-4", children: "Todos los planes incluyen" }),
4298
+ /* @__PURE__ */ jsx92("ul", { className: "grid sm:grid-cols-2 gap-2", children: sharedRows.map((feature, i) => /* @__PURE__ */ jsxs65("li", { className: "flex items-center gap-2 text-sm", children: [
4299
+ /* @__PURE__ */ jsx92(Check2, { className: "h-4 w-4 text-green-500 shrink-0" }),
4300
+ /* @__PURE__ */ jsx92("span", { children: feature })
4489
4301
  ] }, i)) })
4490
4302
  ] }),
4491
- differingRows.length > 0 && /* @__PURE__ */ jsxs66("div", { children: [
4492
- /* @__PURE__ */ jsx93("h3", { className: "text-lg font-semibold mb-4", children: "Lo que cambia entre planes" }),
4493
- /* @__PURE__ */ jsx93("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs66("table", { className: "min-w-[500px] w-full border-collapse text-sm", children: [
4494
- /* @__PURE__ */ jsx93("thead", { children: /* @__PURE__ */ jsxs66("tr", { className: "border-b", children: [
4495
- /* @__PURE__ */ jsx93("th", { className: "text-left p-3 text-muted-foreground font-medium w-48", children: "Caracter\xEDstica" }),
4496
- columns.map((col, i) => /* @__PURE__ */ jsx93("th", { className: "p-3 text-center font-semibold", children: col.name }, i))
4303
+ differingRows.length > 0 && /* @__PURE__ */ jsxs65("div", { children: [
4304
+ /* @__PURE__ */ jsx92("h3", { className: "text-lg font-semibold mb-4", children: "Lo que cambia entre planes" }),
4305
+ /* @__PURE__ */ jsx92("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs65("table", { className: "min-w-[500px] w-full border-collapse text-sm", children: [
4306
+ /* @__PURE__ */ jsx92("thead", { children: /* @__PURE__ */ jsxs65("tr", { className: "border-b", children: [
4307
+ /* @__PURE__ */ jsx92("th", { className: "text-left p-3 text-muted-foreground font-medium w-48", children: "Caracter\xEDstica" }),
4308
+ columns.map((col, i) => /* @__PURE__ */ jsx92("th", { className: "p-3 text-center font-semibold", children: col.name }, i))
4497
4309
  ] }) }),
4498
- /* @__PURE__ */ jsx93("tbody", { children: differingRows.map(({ f: feature, fi }) => /* @__PURE__ */ jsxs66("tr", { className: "border-b last:border-0", children: [
4499
- /* @__PURE__ */ jsx93("td", { className: "p-3", children: feature }),
4310
+ /* @__PURE__ */ jsx92("tbody", { children: differingRows.map(({ f: feature, fi }) => /* @__PURE__ */ jsxs65("tr", { className: "border-b last:border-0", children: [
4311
+ /* @__PURE__ */ jsx92("td", { className: "p-3", children: feature }),
4500
4312
  columns.map((col, ci) => {
4501
4313
  const cell = col.cells?.[fi] ?? "";
4502
- 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);
4314
+ return /* @__PURE__ */ jsx92("td", { className: "p-3 text-center", children: cell ? /* @__PURE__ */ jsx92("span", { className: "text-base leading-none", children: cell }) : /* @__PURE__ */ jsx92(Minus2, { className: "h-4 w-4 text-muted-foreground mx-auto" }) }, ci);
4503
4315
  })
4504
4316
  ] }, fi)) })
4505
4317
  ] }) })
@@ -4510,22 +4322,22 @@ function ComparisonHighlights({ title, subtitle, content, badge, allFeatures, co
4510
4322
  }
4511
4323
 
4512
4324
  // src/sections/comparison/index.tsx
4513
- import { jsx as jsx94 } from "react/jsx-runtime";
4325
+ import { jsx as jsx93 } from "react/jsx-runtime";
4514
4326
  function Comparison(props) {
4515
4327
  switch (props.variant) {
4516
4328
  case "cards":
4517
- return /* @__PURE__ */ jsx94(ComparisonCards, { ...props });
4329
+ return /* @__PURE__ */ jsx93(ComparisonCards, { ...props });
4518
4330
  case "highlights":
4519
- return /* @__PURE__ */ jsx94(ComparisonHighlights, { ...props });
4331
+ return /* @__PURE__ */ jsx93(ComparisonHighlights, { ...props });
4520
4332
  case "table":
4521
4333
  default:
4522
- return /* @__PURE__ */ jsx94(ComparisonTable, { ...props });
4334
+ return /* @__PURE__ */ jsx93(ComparisonTable, { ...props });
4523
4335
  }
4524
4336
  }
4525
4337
 
4526
4338
  // src/sections/duplex/variants/duplex-image-left.tsx
4527
4339
  import { Check as Check3 } from "lucide-react";
4528
- import { jsx as jsx95, jsxs as jsxs67 } from "react/jsx-runtime";
4340
+ import { jsx as jsx94, jsxs as jsxs66 } from "react/jsx-runtime";
4529
4341
  function DuplexImageLeft({
4530
4342
  badge,
4531
4343
  heading,
@@ -4538,7 +4350,7 @@ function DuplexImageLeft({
4538
4350
  bullets,
4539
4351
  background
4540
4352
  }) {
4541
- return /* @__PURE__ */ jsx95(
4353
+ return /* @__PURE__ */ jsx94(
4542
4354
  "section",
4543
4355
  {
4544
4356
  className: cn(
@@ -4551,8 +4363,8 @@ function DuplexImageLeft({
4551
4363
  background === "warning" && "bg-warning text-warning-foreground",
4552
4364
  background === "error" && "bg-error text-error-foreground"
4553
4365
  ),
4554
- 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: [
4555
- /* @__PURE__ */ jsx95("div", { children: videoUrl ? /* @__PURE__ */ jsx95(
4366
+ children: /* @__PURE__ */ jsx94("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs66("div", { className: "grid items-center gap-12 lg:grid-cols-2", children: [
4367
+ /* @__PURE__ */ jsx94("div", { children: videoUrl ? /* @__PURE__ */ jsx94(
4556
4368
  "video",
4557
4369
  {
4558
4370
  src: videoUrl,
@@ -4562,32 +4374,32 @@ function DuplexImageLeft({
4562
4374
  loop: true,
4563
4375
  playsInline: true
4564
4376
  }
4565
- ) : image?.url ? /* @__PURE__ */ jsx95(
4377
+ ) : image?.url ? /* @__PURE__ */ jsx94(
4566
4378
  "img",
4567
4379
  {
4568
4380
  src: image.url,
4569
4381
  alt: image.alt ?? heading,
4570
4382
  className: "w-full rounded-2xl shadow-lg object-cover"
4571
4383
  }
4572
- ) : /* @__PURE__ */ jsx95("div", { className: "w-full h-64 rounded-2xl bg-muted" }) }),
4573
- /* @__PURE__ */ jsxs67("div", { children: [
4574
- badge && /* @__PURE__ */ jsx95(Badge, { variant: "secondary", className: "mb-4", children: badge }),
4575
- /* @__PURE__ */ jsx95("h2", { className: "text-2xl sm:text-3xl md:text-4xl font-bold", children: heading }),
4576
- body && /* @__PURE__ */ jsx95("p", { className: "text-muted-foreground text-lg mt-4", children: body }),
4577
- content && /* @__PURE__ */ jsx95(
4384
+ ) : /* @__PURE__ */ jsx94("div", { className: "w-full h-64 rounded-2xl bg-muted" }) }),
4385
+ /* @__PURE__ */ jsxs66("div", { children: [
4386
+ badge && /* @__PURE__ */ jsx94(Badge, { variant: "secondary", className: "mb-4", children: badge }),
4387
+ /* @__PURE__ */ jsx94("h2", { className: "text-2xl sm:text-3xl md:text-4xl font-bold", children: heading }),
4388
+ body && /* @__PURE__ */ jsx94("p", { className: "text-muted-foreground text-lg mt-4", children: body }),
4389
+ content && /* @__PURE__ */ jsx94(
4578
4390
  "div",
4579
4391
  {
4580
4392
  className: "richtext-content mt-4 text-muted-foreground",
4581
4393
  dangerouslySetInnerHTML: { __html: content }
4582
4394
  }
4583
4395
  ),
4584
- 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: [
4585
- /* @__PURE__ */ jsx95(Check3, { className: "h-4 w-4 text-green-500 shrink-0" }),
4586
- /* @__PURE__ */ jsx95("span", { children: bullet })
4396
+ bullets && bullets.length > 0 && /* @__PURE__ */ jsx94("ul", { className: "mt-4 space-y-2", children: bullets.map((bullet, i) => /* @__PURE__ */ jsxs66("li", { className: "flex items-center gap-2 text-sm", children: [
4397
+ /* @__PURE__ */ jsx94(Check3, { className: "h-4 w-4 text-green-500 shrink-0" }),
4398
+ /* @__PURE__ */ jsx94("span", { children: bullet })
4587
4399
  ] }, i)) }),
4588
- (primaryCTA?.label || secondaryCTA?.label) && /* @__PURE__ */ jsxs67("div", { className: "flex flex-wrap gap-3 mt-6", children: [
4589
- 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 }) }),
4590
- 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 }) })
4400
+ (primaryCTA?.label || secondaryCTA?.label) && /* @__PURE__ */ jsxs66("div", { className: "flex flex-wrap gap-3 mt-6", children: [
4401
+ primaryCTA?.label && /* @__PURE__ */ jsx94(Button, { asChild: true, variant: primaryCTA.variant ?? "default", size: primaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx94("a", { href: primaryCTA.href, children: primaryCTA.label }) }),
4402
+ secondaryCTA?.label && /* @__PURE__ */ jsx94(Button, { asChild: true, variant: secondaryCTA.variant ?? "outline", size: secondaryCTA.size ?? "lg", children: /* @__PURE__ */ jsx94("a", { href: secondaryCTA.href, children: secondaryCTA.label }) })
4591
4403
  ] })
4592
4404
  ] })
4593
4405
  ] }) })
@@ -4597,7 +4409,7 @@ function DuplexImageLeft({
4597
4409
 
4598
4410
  // src/sections/duplex/variants/duplex-image-right.tsx
4599
4411
  import { Check as Check4 } from "lucide-react";
4600
- import { jsx as jsx96, jsxs as jsxs68 } from "react/jsx-runtime";
4412
+ import { jsx as jsx95, jsxs as jsxs67 } from "react/jsx-runtime";
4601
4413
  function DuplexImageRight({
4602
4414
  badge,
4603
4415
  heading,
@@ -4610,7 +4422,7 @@ function DuplexImageRight({
4610
4422
  bullets,
4611
4423
  background
4612
4424
  }) {
4613
- return /* @__PURE__ */ jsx96(
4425
+ return /* @__PURE__ */ jsx95(
4614
4426
  "section",
4615
4427
  {
4616
4428
  className: cn(
@@ -4623,28 +4435,28 @@ function DuplexImageRight({
4623
4435
  background === "warning" && "bg-warning text-warning-foreground",
4624
4436
  background === "error" && "bg-error text-error-foreground"
4625
4437
  ),
4626
- 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: [
4627
- /* @__PURE__ */ jsxs68("div", { children: [
4628
- badge && /* @__PURE__ */ jsx96(Badge, { variant: "secondary", className: "mb-4", children: badge }),
4629
- /* @__PURE__ */ jsx96("h2", { className: "text-2xl sm:text-3xl md:text-4xl font-bold", children: heading }),
4630
- body && /* @__PURE__ */ jsx96("p", { className: "text-muted-foreground text-lg mt-4", children: body }),
4631
- content && /* @__PURE__ */ jsx96(
4438
+ 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: [
4439
+ /* @__PURE__ */ jsxs67("div", { children: [
4440
+ badge && /* @__PURE__ */ jsx95(Badge, { variant: "secondary", className: "mb-4", children: badge }),
4441
+ /* @__PURE__ */ jsx95("h2", { className: "text-2xl sm:text-3xl md:text-4xl font-bold", children: heading }),
4442
+ body && /* @__PURE__ */ jsx95("p", { className: "text-muted-foreground text-lg mt-4", children: body }),
4443
+ content && /* @__PURE__ */ jsx95(
4632
4444
  "div",
4633
4445
  {
4634
4446
  className: "richtext-content mt-4 text-muted-foreground",
4635
4447
  dangerouslySetInnerHTML: { __html: content }
4636
4448
  }
4637
4449
  ),
4638
- 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: [
4639
- /* @__PURE__ */ jsx96(Check4, { className: "h-4 w-4 text-green-500 shrink-0" }),
4640
- /* @__PURE__ */ jsx96("span", { children: bullet })
4450
+ 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: [
4451
+ /* @__PURE__ */ jsx95(Check4, { className: "h-4 w-4 text-green-500 shrink-0" }),
4452
+ /* @__PURE__ */ jsx95("span", { children: bullet })
4641
4453
  ] }, i)) }),
4642
- (primaryCTA?.label || secondaryCTA?.label) && /* @__PURE__ */ jsxs68("div", { className: "flex flex-wrap gap-3 mt-6", children: [
4643
- 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 }) }),
4644
- 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 }) })
4454
+ (primaryCTA?.label || secondaryCTA?.label) && /* @__PURE__ */ jsxs67("div", { className: "flex flex-wrap gap-3 mt-6", children: [
4455
+ 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 }) }),
4456
+ 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 }) })
4645
4457
  ] })
4646
4458
  ] }),
4647
- /* @__PURE__ */ jsx96("div", { children: videoUrl ? /* @__PURE__ */ jsx96(
4459
+ /* @__PURE__ */ jsx95("div", { children: videoUrl ? /* @__PURE__ */ jsx95(
4648
4460
  "video",
4649
4461
  {
4650
4462
  src: videoUrl,
@@ -4654,14 +4466,14 @@ function DuplexImageRight({
4654
4466
  loop: true,
4655
4467
  playsInline: true
4656
4468
  }
4657
- ) : image?.url ? /* @__PURE__ */ jsx96(
4469
+ ) : image?.url ? /* @__PURE__ */ jsx95(
4658
4470
  "img",
4659
4471
  {
4660
4472
  src: image.url,
4661
4473
  alt: image.alt ?? heading,
4662
4474
  className: "w-full rounded-2xl shadow-lg object-cover"
4663
4475
  }
4664
- ) : /* @__PURE__ */ jsx96("div", { className: "w-full h-64 rounded-2xl bg-muted" }) })
4476
+ ) : /* @__PURE__ */ jsx95("div", { className: "w-full h-64 rounded-2xl bg-muted" }) })
4665
4477
  ] }) })
4666
4478
  }
4667
4479
  );
@@ -4669,7 +4481,7 @@ function DuplexImageRight({
4669
4481
 
4670
4482
  // src/sections/duplex/variants/duplex-stacked.tsx
4671
4483
  import { Check as Check5 } from "lucide-react";
4672
- import { jsx as jsx97, jsxs as jsxs69 } from "react/jsx-runtime";
4484
+ import { jsx as jsx96, jsxs as jsxs68 } from "react/jsx-runtime";
4673
4485
  function DuplexStacked({
4674
4486
  badge,
4675
4487
  heading,
@@ -4682,7 +4494,7 @@ function DuplexStacked({
4682
4494
  bullets,
4683
4495
  background
4684
4496
  }) {
4685
- return /* @__PURE__ */ jsx97(
4497
+ return /* @__PURE__ */ jsx96(
4686
4498
  "section",
4687
4499
  {
4688
4500
  className: cn(
@@ -4695,28 +4507,28 @@ function DuplexStacked({
4695
4507
  background === "warning" && "bg-warning text-warning-foreground",
4696
4508
  background === "error" && "bg-error text-error-foreground"
4697
4509
  ),
4698
- children: /* @__PURE__ */ jsxs69("div", { className: "container mx-auto px-4", children: [
4699
- /* @__PURE__ */ jsxs69("div", { className: "max-w-2xl mx-auto text-center mb-10", children: [
4700
- badge && /* @__PURE__ */ jsx97(Badge, { variant: "secondary", className: "mb-4", children: badge }),
4701
- /* @__PURE__ */ jsx97("h2", { className: "text-2xl sm:text-3xl md:text-4xl font-bold", children: heading }),
4702
- body && /* @__PURE__ */ jsx97("p", { className: "text-muted-foreground text-lg mt-4", children: body }),
4703
- content && /* @__PURE__ */ jsx97(
4510
+ children: /* @__PURE__ */ jsxs68("div", { className: "container mx-auto px-4", children: [
4511
+ /* @__PURE__ */ jsxs68("div", { className: "max-w-2xl mx-auto text-center mb-10", children: [
4512
+ badge && /* @__PURE__ */ jsx96(Badge, { variant: "secondary", className: "mb-4", children: badge }),
4513
+ /* @__PURE__ */ jsx96("h2", { className: "text-2xl sm:text-3xl md:text-4xl font-bold", children: heading }),
4514
+ body && /* @__PURE__ */ jsx96("p", { className: "text-muted-foreground text-lg mt-4", children: body }),
4515
+ content && /* @__PURE__ */ jsx96(
4704
4516
  "div",
4705
4517
  {
4706
4518
  className: "richtext-content mt-4 text-muted-foreground",
4707
4519
  dangerouslySetInnerHTML: { __html: content }
4708
4520
  }
4709
4521
  ),
4710
- 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: [
4711
- /* @__PURE__ */ jsx97(Check5, { className: "h-4 w-4 text-green-500 shrink-0" }),
4712
- /* @__PURE__ */ jsx97("span", { children: bullet })
4522
+ bullets && bullets.length > 0 && /* @__PURE__ */ jsx96("ul", { className: "mt-4 space-y-2 text-left inline-block", children: bullets.map((bullet, i) => /* @__PURE__ */ jsxs68("li", { className: "flex items-center gap-2 text-sm", children: [
4523
+ /* @__PURE__ */ jsx96(Check5, { className: "h-4 w-4 text-green-500 shrink-0" }),
4524
+ /* @__PURE__ */ jsx96("span", { children: bullet })
4713
4525
  ] }, i)) }),
4714
- (primaryCTA?.label || secondaryCTA?.label) && /* @__PURE__ */ jsxs69("div", { className: "flex flex-wrap justify-center gap-3 mt-6", children: [
4715
- 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 }) }),
4716
- 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 }) })
4526
+ (primaryCTA?.label || secondaryCTA?.label) && /* @__PURE__ */ jsxs68("div", { className: "flex flex-wrap justify-center gap-3 mt-6", children: [
4527
+ 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 }) }),
4528
+ 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 }) })
4717
4529
  ] })
4718
4530
  ] }),
4719
- videoUrl ? /* @__PURE__ */ jsx97(
4531
+ videoUrl ? /* @__PURE__ */ jsx96(
4720
4532
  "video",
4721
4533
  {
4722
4534
  src: videoUrl,
@@ -4726,7 +4538,7 @@ function DuplexStacked({
4726
4538
  loop: true,
4727
4539
  playsInline: true
4728
4540
  }
4729
- ) : image?.url ? /* @__PURE__ */ jsx97(
4541
+ ) : image?.url ? /* @__PURE__ */ jsx96(
4730
4542
  "img",
4731
4543
  {
4732
4544
  src: image.url,
@@ -4740,23 +4552,23 @@ function DuplexStacked({
4740
4552
  }
4741
4553
 
4742
4554
  // src/sections/duplex/index.tsx
4743
- import { jsx as jsx98 } from "react/jsx-runtime";
4555
+ import { jsx as jsx97 } from "react/jsx-runtime";
4744
4556
  function Duplex(props) {
4745
4557
  switch (props.variant) {
4746
4558
  case "image-right":
4747
- return /* @__PURE__ */ jsx98(DuplexImageRight, { ...props });
4559
+ return /* @__PURE__ */ jsx97(DuplexImageRight, { ...props });
4748
4560
  case "stacked":
4749
- return /* @__PURE__ */ jsx98(DuplexStacked, { ...props });
4561
+ return /* @__PURE__ */ jsx97(DuplexStacked, { ...props });
4750
4562
  case "image-left":
4751
4563
  default:
4752
- return /* @__PURE__ */ jsx98(DuplexImageLeft, { ...props });
4564
+ return /* @__PURE__ */ jsx97(DuplexImageLeft, { ...props });
4753
4565
  }
4754
4566
  }
4755
4567
 
4756
4568
  // src/sections/richtext/variants/richtext-centered.tsx
4757
- import { jsx as jsx99, jsxs as jsxs70 } from "react/jsx-runtime";
4569
+ import { jsx as jsx98, jsxs as jsxs69 } from "react/jsx-runtime";
4758
4570
  function RichtextCentered({ title, subtitle, badge, content, background }) {
4759
- return /* @__PURE__ */ jsx99(
4571
+ return /* @__PURE__ */ jsx98(
4760
4572
  "section",
4761
4573
  {
4762
4574
  className: cn(
@@ -4769,9 +4581,9 @@ function RichtextCentered({ title, subtitle, badge, content, background }) {
4769
4581
  background === "warning" && "bg-warning text-warning-foreground",
4770
4582
  background === "error" && "bg-error text-error-foreground"
4771
4583
  ),
4772
- children: /* @__PURE__ */ jsxs70("div", { className: "container mx-auto px-4", children: [
4773
- /* @__PURE__ */ jsx99(SectionHeader, { title, subtitle, badge, background }),
4774
- /* @__PURE__ */ jsx99(
4584
+ children: /* @__PURE__ */ jsxs69("div", { className: "container mx-auto px-4", children: [
4585
+ /* @__PURE__ */ jsx98(SectionHeader, { title, subtitle, badge, background }),
4586
+ /* @__PURE__ */ jsx98(
4775
4587
  "div",
4776
4588
  {
4777
4589
  className: "richtext-content mx-auto max-w-2xl",
@@ -4784,9 +4596,9 @@ function RichtextCentered({ title, subtitle, badge, content, background }) {
4784
4596
  }
4785
4597
 
4786
4598
  // src/sections/richtext/variants/richtext-wide.tsx
4787
- import { jsx as jsx100, jsxs as jsxs71 } from "react/jsx-runtime";
4599
+ import { jsx as jsx99, jsxs as jsxs70 } from "react/jsx-runtime";
4788
4600
  function RichtextWide({ title, subtitle, badge, content, background }) {
4789
- return /* @__PURE__ */ jsx100(
4601
+ return /* @__PURE__ */ jsx99(
4790
4602
  "section",
4791
4603
  {
4792
4604
  className: cn(
@@ -4799,9 +4611,9 @@ function RichtextWide({ title, subtitle, badge, content, background }) {
4799
4611
  background === "warning" && "bg-warning text-warning-foreground",
4800
4612
  background === "error" && "bg-error text-error-foreground"
4801
4613
  ),
4802
- children: /* @__PURE__ */ jsxs71("div", { className: "container mx-auto px-4", children: [
4803
- /* @__PURE__ */ jsx100(SectionHeader, { title, subtitle, badge, background }),
4804
- /* @__PURE__ */ jsx100(
4614
+ children: /* @__PURE__ */ jsxs70("div", { className: "container mx-auto px-4", children: [
4615
+ /* @__PURE__ */ jsx99(SectionHeader, { title, subtitle, badge, background }),
4616
+ /* @__PURE__ */ jsx99(
4805
4617
  "div",
4806
4618
  {
4807
4619
  className: "richtext-content mx-auto max-w-4xl",
@@ -4814,9 +4626,9 @@ function RichtextWide({ title, subtitle, badge, content, background }) {
4814
4626
  }
4815
4627
 
4816
4628
  // src/sections/richtext/variants/richtext-two-column.tsx
4817
- import { jsx as jsx101, jsxs as jsxs72 } from "react/jsx-runtime";
4629
+ import { jsx as jsx100, jsxs as jsxs71 } from "react/jsx-runtime";
4818
4630
  function RichtextTwoColumn({ title, subtitle, badge, content, background }) {
4819
- return /* @__PURE__ */ jsx101(
4631
+ return /* @__PURE__ */ jsx100(
4820
4632
  "section",
4821
4633
  {
4822
4634
  className: cn(
@@ -4829,9 +4641,9 @@ function RichtextTwoColumn({ title, subtitle, badge, content, background }) {
4829
4641
  background === "warning" && "bg-warning text-warning-foreground",
4830
4642
  background === "error" && "bg-error text-error-foreground"
4831
4643
  ),
4832
- children: /* @__PURE__ */ jsxs72("div", { className: "container mx-auto px-4", children: [
4833
- /* @__PURE__ */ jsx101(SectionHeader, { title, subtitle, badge, background }),
4834
- /* @__PURE__ */ jsx101(
4644
+ children: /* @__PURE__ */ jsxs71("div", { className: "container mx-auto px-4", children: [
4645
+ /* @__PURE__ */ jsx100(SectionHeader, { title, subtitle, badge, background }),
4646
+ /* @__PURE__ */ jsx100(
4835
4647
  "div",
4836
4648
  {
4837
4649
  className: "richtext-content [column-count:1] lg:[column-count:2] gap-8 [&>*]:break-inside-avoid",
@@ -4844,28 +4656,28 @@ function RichtextTwoColumn({ title, subtitle, badge, content, background }) {
4844
4656
  }
4845
4657
 
4846
4658
  // src/sections/richtext/index.tsx
4847
- import { jsx as jsx102 } from "react/jsx-runtime";
4659
+ import { jsx as jsx101 } from "react/jsx-runtime";
4848
4660
  function Richtext(props) {
4849
4661
  switch (props.variant) {
4850
4662
  case "wide":
4851
- return /* @__PURE__ */ jsx102(RichtextWide, { ...props });
4663
+ return /* @__PURE__ */ jsx101(RichtextWide, { ...props });
4852
4664
  case "two-column":
4853
- return /* @__PURE__ */ jsx102(RichtextTwoColumn, { ...props });
4665
+ return /* @__PURE__ */ jsx101(RichtextTwoColumn, { ...props });
4854
4666
  case "centered":
4855
4667
  default:
4856
- return /* @__PURE__ */ jsx102(RichtextCentered, { ...props });
4668
+ return /* @__PURE__ */ jsx101(RichtextCentered, { ...props });
4857
4669
  }
4858
4670
  }
4859
4671
 
4860
4672
  // src/sections/video/video-player.tsx
4861
- import { jsx as jsx103 } from "react/jsx-runtime";
4673
+ import { jsx as jsx102 } from "react/jsx-runtime";
4862
4674
  function VideoPlayer({ url, poster, autoplay, loop, muted, className, title }) {
4863
4675
  const parsed = parseVideoUrl(url);
4864
4676
  if (!parsed) {
4865
- 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" }) });
4677
+ return /* @__PURE__ */ jsx102("div", { className: `bg-muted flex items-center justify-center rounded-xl ${className ?? ""}`, children: /* @__PURE__ */ jsx102("p", { className: "text-muted-foreground text-sm", children: "URL de video no v\xE1lida" }) });
4866
4678
  }
4867
4679
  if (parsed.type === "native") {
4868
- return /* @__PURE__ */ jsx103(
4680
+ return /* @__PURE__ */ jsx102(
4869
4681
  "video",
4870
4682
  {
4871
4683
  src: parsed.embedUrl,
@@ -4880,7 +4692,7 @@ function VideoPlayer({ url, poster, autoplay, loop, muted, className, title }) {
4880
4692
  );
4881
4693
  }
4882
4694
  const src = autoplay ? `${parsed.embedUrl}&autoplay=1&mute=1` : parsed.embedUrl;
4883
- return /* @__PURE__ */ jsx103(
4695
+ return /* @__PURE__ */ jsx102(
4884
4696
  "iframe",
4885
4697
  {
4886
4698
  src,
@@ -4893,9 +4705,9 @@ function VideoPlayer({ url, poster, autoplay, loop, muted, className, title }) {
4893
4705
  }
4894
4706
 
4895
4707
  // src/sections/video/variants/video-full.tsx
4896
- import { jsx as jsx104, jsxs as jsxs73 } from "react/jsx-runtime";
4708
+ import { jsx as jsx103, jsxs as jsxs72 } from "react/jsx-runtime";
4897
4709
  function VideoFull({ title, subtitle, content, badge, videoUrl, poster, autoplay, loop, muted, background }) {
4898
- return /* @__PURE__ */ jsx104(
4710
+ return /* @__PURE__ */ jsx103(
4899
4711
  "section",
4900
4712
  {
4901
4713
  className: cn(
@@ -4908,9 +4720,9 @@ function VideoFull({ title, subtitle, content, badge, videoUrl, poster, autoplay
4908
4720
  background === "warning" && "bg-warning text-warning-foreground",
4909
4721
  background === "error" && "bg-error text-error-foreground"
4910
4722
  ),
4911
- children: /* @__PURE__ */ jsxs73("div", { className: "container mx-auto px-4", children: [
4912
- /* @__PURE__ */ jsx104(SectionHeader, { title, subtitle, badge, content, background }),
4913
- /* @__PURE__ */ jsx104("div", { className: "aspect-video w-full overflow-hidden rounded-xl shadow-lg", children: /* @__PURE__ */ jsx104(
4723
+ children: /* @__PURE__ */ jsxs72("div", { className: "container mx-auto px-4", children: [
4724
+ /* @__PURE__ */ jsx103(SectionHeader, { title, subtitle, badge, content, background }),
4725
+ /* @__PURE__ */ jsx103("div", { className: "aspect-video w-full overflow-hidden rounded-xl shadow-lg", children: /* @__PURE__ */ jsx103(
4914
4726
  VideoPlayer,
4915
4727
  {
4916
4728
  url: videoUrl,
@@ -4928,9 +4740,9 @@ function VideoFull({ title, subtitle, content, badge, videoUrl, poster, autoplay
4928
4740
  }
4929
4741
 
4930
4742
  // src/sections/video/variants/video-contained.tsx
4931
- import { jsx as jsx105, jsxs as jsxs74 } from "react/jsx-runtime";
4743
+ import { jsx as jsx104, jsxs as jsxs73 } from "react/jsx-runtime";
4932
4744
  function VideoContained({ title, subtitle, content, badge, videoUrl, poster, autoplay, loop, muted, background }) {
4933
- return /* @__PURE__ */ jsx105(
4745
+ return /* @__PURE__ */ jsx104(
4934
4746
  "section",
4935
4747
  {
4936
4748
  className: cn(
@@ -4943,9 +4755,9 @@ function VideoContained({ title, subtitle, content, badge, videoUrl, poster, aut
4943
4755
  background === "warning" && "bg-warning text-warning-foreground",
4944
4756
  background === "error" && "bg-error text-error-foreground"
4945
4757
  ),
4946
- children: /* @__PURE__ */ jsxs74("div", { className: "container mx-auto px-4", children: [
4947
- /* @__PURE__ */ jsx105(SectionHeader, { title, subtitle, badge, content, background }),
4948
- /* @__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(
4758
+ children: /* @__PURE__ */ jsxs73("div", { className: "container mx-auto px-4", children: [
4759
+ /* @__PURE__ */ jsx104(SectionHeader, { title, subtitle, badge, content, background }),
4760
+ /* @__PURE__ */ jsx104("div", { className: "max-w-4xl mx-auto", children: /* @__PURE__ */ jsx104("div", { className: "aspect-video w-full overflow-hidden rounded-xl shadow-lg", children: /* @__PURE__ */ jsx104(
4949
4761
  VideoPlayer,
4950
4762
  {
4951
4763
  url: videoUrl,
@@ -4963,9 +4775,9 @@ function VideoContained({ title, subtitle, content, badge, videoUrl, poster, aut
4963
4775
  }
4964
4776
 
4965
4777
  // src/sections/video/variants/video-with-text.tsx
4966
- import { jsx as jsx106, jsxs as jsxs75 } from "react/jsx-runtime";
4778
+ import { jsx as jsx105, jsxs as jsxs74 } from "react/jsx-runtime";
4967
4779
  function VideoWithText({ title, subtitle, content, badge, videoUrl, poster, autoplay, loop, muted, background }) {
4968
- return /* @__PURE__ */ jsx106(
4780
+ return /* @__PURE__ */ jsx105(
4969
4781
  "section",
4970
4782
  {
4971
4783
  className: cn(
@@ -4978,8 +4790,8 @@ function VideoWithText({ title, subtitle, content, badge, videoUrl, poster, auto
4978
4790
  background === "warning" && "bg-warning text-warning-foreground",
4979
4791
  background === "error" && "bg-error text-error-foreground"
4980
4792
  ),
4981
- 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: [
4982
- /* @__PURE__ */ jsx106("div", { className: "aspect-video overflow-hidden rounded-xl shadow-lg", children: /* @__PURE__ */ jsx106(
4793
+ children: /* @__PURE__ */ jsx105("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs74("div", { className: "grid gap-12 items-center lg:grid-cols-2", children: [
4794
+ /* @__PURE__ */ jsx105("div", { className: "aspect-video overflow-hidden rounded-xl shadow-lg", children: /* @__PURE__ */ jsx105(
4983
4795
  VideoPlayer,
4984
4796
  {
4985
4797
  url: videoUrl,
@@ -4991,30 +4803,30 @@ function VideoWithText({ title, subtitle, content, badge, videoUrl, poster, auto
4991
4803
  className: "h-full w-full"
4992
4804
  }
4993
4805
  ) }),
4994
- /* @__PURE__ */ jsx106("div", { children: /* @__PURE__ */ jsx106(SectionHeader, { title, subtitle, badge, content, background, align: "left", className: "mb-0" }) })
4806
+ /* @__PURE__ */ jsx105("div", { children: /* @__PURE__ */ jsx105(SectionHeader, { title, subtitle, badge, content, background, align: "left", className: "mb-0" }) })
4995
4807
  ] }) })
4996
4808
  }
4997
4809
  );
4998
4810
  }
4999
4811
 
5000
4812
  // src/sections/video/index.tsx
5001
- import { jsx as jsx107 } from "react/jsx-runtime";
4813
+ import { jsx as jsx106 } from "react/jsx-runtime";
5002
4814
  function VideoSection(props) {
5003
4815
  switch (props.variant) {
5004
4816
  case "contained":
5005
- return /* @__PURE__ */ jsx107(VideoContained, { ...props });
4817
+ return /* @__PURE__ */ jsx106(VideoContained, { ...props });
5006
4818
  case "with-text":
5007
- return /* @__PURE__ */ jsx107(VideoWithText, { ...props });
4819
+ return /* @__PURE__ */ jsx106(VideoWithText, { ...props });
5008
4820
  case "full":
5009
4821
  default:
5010
- return /* @__PURE__ */ jsx107(VideoFull, { ...props });
4822
+ return /* @__PURE__ */ jsx106(VideoFull, { ...props });
5011
4823
  }
5012
4824
  }
5013
4825
 
5014
4826
  // src/sections/newsletter/newsletter-form.tsx
5015
- import { useState as useState15 } from "react";
4827
+ import { useState as useState14 } from "react";
5016
4828
  import { CheckCircle, Loader2, Mail as Mail3 } from "lucide-react";
5017
- import { Fragment, jsx as jsx108, jsxs as jsxs76 } from "react/jsx-runtime";
4829
+ import { Fragment, jsx as jsx107, jsxs as jsxs75 } from "react/jsx-runtime";
5018
4830
  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";
5019
4831
  function NewsletterForm({
5020
4832
  buttonLabel = "Suscribirme",
@@ -5023,9 +4835,9 @@ function NewsletterForm({
5023
4835
  layout = "stacked",
5024
4836
  className
5025
4837
  }) {
5026
- const [email, setEmail] = useState15("");
5027
- const [status, setStatus] = useState15("idle");
5028
- const [errorMsg, setErrorMsg] = useState15("");
4838
+ const [email, setEmail] = useState14("");
4839
+ const [status, setStatus] = useState14("idle");
4840
+ const [errorMsg, setErrorMsg] = useState14("");
5029
4841
  const handleSubmit = async (e) => {
5030
4842
  e.preventDefault();
5031
4843
  setStatus("loading");
@@ -5048,12 +4860,12 @@ function NewsletterForm({
5048
4860
  }
5049
4861
  };
5050
4862
  if (status === "success") {
5051
- return /* @__PURE__ */ jsxs76("div", { className: cn("flex items-center justify-center gap-3 py-2", className), children: [
5052
- /* @__PURE__ */ jsx108(CheckCircle, { className: "h-5 w-5 shrink-0 text-green-500" }),
5053
- /* @__PURE__ */ jsx108("p", { className: "text-sm font-medium", children: successMessage })
4863
+ return /* @__PURE__ */ jsxs75("div", { className: cn("flex items-center justify-center gap-3 py-2", className), children: [
4864
+ /* @__PURE__ */ jsx107(CheckCircle, { className: "h-5 w-5 shrink-0 text-green-500" }),
4865
+ /* @__PURE__ */ jsx107("p", { className: "text-sm font-medium", children: successMessage })
5054
4866
  ] });
5055
4867
  }
5056
- return /* @__PURE__ */ jsxs76(
4868
+ return /* @__PURE__ */ jsxs75(
5057
4869
  "form",
5058
4870
  {
5059
4871
  onSubmit: handleSubmit,
@@ -5062,9 +4874,9 @@ function NewsletterForm({
5062
4874
  className
5063
4875
  ),
5064
4876
  children: [
5065
- /* @__PURE__ */ jsxs76("div", { className: cn("relative", layout === "inline" && "sm:flex-1"), children: [
5066
- /* @__PURE__ */ jsx108(Mail3, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
5067
- /* @__PURE__ */ jsx108(
4877
+ /* @__PURE__ */ jsxs75("div", { className: cn("relative", layout === "inline" && "sm:flex-1"), children: [
4878
+ /* @__PURE__ */ jsx107(Mail3, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
4879
+ /* @__PURE__ */ jsx107(
5068
4880
  "input",
5069
4881
  {
5070
4882
  type: "email",
@@ -5076,18 +4888,18 @@ function NewsletterForm({
5076
4888
  }
5077
4889
  )
5078
4890
  ] }),
5079
- /* @__PURE__ */ jsx108(Button, { type: "submit", disabled: status === "loading", className: cn(layout === "inline" && "shrink-0"), children: status === "loading" ? /* @__PURE__ */ jsxs76(Fragment, { children: [
5080
- /* @__PURE__ */ jsx108(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }),
4891
+ /* @__PURE__ */ jsx107(Button, { type: "submit", disabled: status === "loading", className: cn(layout === "inline" && "shrink-0"), children: status === "loading" ? /* @__PURE__ */ jsxs75(Fragment, { children: [
4892
+ /* @__PURE__ */ jsx107(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }),
5081
4893
  "Enviando..."
5082
4894
  ] }) : buttonLabel }),
5083
- status === "error" && /* @__PURE__ */ jsx108("p", { className: "text-sm text-destructive", children: errorMsg })
4895
+ status === "error" && /* @__PURE__ */ jsx107("p", { className: "text-sm text-destructive", children: errorMsg })
5084
4896
  ]
5085
4897
  }
5086
4898
  );
5087
4899
  }
5088
4900
 
5089
4901
  // src/sections/newsletter/variants/newsletter-centered.tsx
5090
- import { jsx as jsx109, jsxs as jsxs77 } from "react/jsx-runtime";
4902
+ import { jsx as jsx108, jsxs as jsxs76 } from "react/jsx-runtime";
5091
4903
  function NewsletterCentered({
5092
4904
  title,
5093
4905
  subtitle,
@@ -5098,7 +4910,7 @@ function NewsletterCentered({
5098
4910
  placeholder,
5099
4911
  successMessage
5100
4912
  }) {
5101
- return /* @__PURE__ */ jsx109(
4913
+ return /* @__PURE__ */ jsx108(
5102
4914
  "section",
5103
4915
  {
5104
4916
  className: cn(
@@ -5111,9 +4923,9 @@ function NewsletterCentered({
5111
4923
  background === "warning" && "bg-warning text-warning-foreground",
5112
4924
  background === "error" && "bg-error text-error-foreground"
5113
4925
  ),
5114
- children: /* @__PURE__ */ jsxs77("div", { className: "container mx-auto px-4 text-center", children: [
5115
- /* @__PURE__ */ jsx109(SectionHeader, { title, subtitle, badge, content, background }),
5116
- /* @__PURE__ */ jsx109(
4926
+ children: /* @__PURE__ */ jsxs76("div", { className: "container mx-auto px-4 text-center", children: [
4927
+ /* @__PURE__ */ jsx108(SectionHeader, { title, subtitle, badge, content, background }),
4928
+ /* @__PURE__ */ jsx108(
5117
4929
  NewsletterForm,
5118
4930
  {
5119
4931
  buttonLabel,
@@ -5129,7 +4941,7 @@ function NewsletterCentered({
5129
4941
  }
5130
4942
 
5131
4943
  // src/sections/newsletter/variants/newsletter-card.tsx
5132
- import { jsx as jsx110, jsxs as jsxs78 } from "react/jsx-runtime";
4944
+ import { jsx as jsx109, jsxs as jsxs77 } from "react/jsx-runtime";
5133
4945
  function NewsletterCard({
5134
4946
  title,
5135
4947
  subtitle,
@@ -5140,7 +4952,7 @@ function NewsletterCard({
5140
4952
  placeholder,
5141
4953
  successMessage
5142
4954
  }) {
5143
- return /* @__PURE__ */ jsx110(
4955
+ return /* @__PURE__ */ jsx109(
5144
4956
  "section",
5145
4957
  {
5146
4958
  className: cn(
@@ -5153,9 +4965,9 @@ function NewsletterCard({
5153
4965
  background === "warning" && "bg-warning text-warning-foreground",
5154
4966
  background === "error" && "bg-error text-error-foreground"
5155
4967
  ),
5156
- 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: [
5157
- /* @__PURE__ */ jsx110(SectionHeader, { title, subtitle, badge, content, background }),
5158
- /* @__PURE__ */ jsx110(
4968
+ children: /* @__PURE__ */ jsx109("div", { className: "container mx-auto px-4", children: /* @__PURE__ */ jsxs77("div", { className: "mx-auto max-w-lg rounded-2xl border bg-card p-8 shadow-sm text-center", children: [
4969
+ /* @__PURE__ */ jsx109(SectionHeader, { title, subtitle, badge, content, background }),
4970
+ /* @__PURE__ */ jsx109(
5159
4971
  NewsletterForm,
5160
4972
  {
5161
4973
  buttonLabel,
@@ -5170,7 +4982,7 @@ function NewsletterCard({
5170
4982
  }
5171
4983
 
5172
4984
  // src/sections/newsletter/variants/newsletter-inline.tsx
5173
- import { jsx as jsx111, jsxs as jsxs79 } from "react/jsx-runtime";
4985
+ import { jsx as jsx110, jsxs as jsxs78 } from "react/jsx-runtime";
5174
4986
  function NewsletterInline({
5175
4987
  title,
5176
4988
  subtitle,
@@ -5181,7 +4993,7 @@ function NewsletterInline({
5181
4993
  placeholder,
5182
4994
  successMessage
5183
4995
  }) {
5184
- return /* @__PURE__ */ jsx111(
4996
+ return /* @__PURE__ */ jsx110(
5185
4997
  "section",
5186
4998
  {
5187
4999
  className: cn(
@@ -5194,12 +5006,12 @@ function NewsletterInline({
5194
5006
  background === "warning" && "bg-warning text-warning-foreground",
5195
5007
  background === "error" && "bg-error text-error-foreground"
5196
5008
  ),
5197
- 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: [
5198
- /* @__PURE__ */ jsxs79("div", { className: "flex flex-col gap-2", children: [
5199
- badge && /* @__PURE__ */ jsx111(Badge, { variant: "outline", className: "w-fit", children: badge }),
5200
- title && /* @__PURE__ */ jsx111("h2", { className: "text-2xl font-bold tracking-tight", children: title }),
5201
- subtitle && /* @__PURE__ */ jsx111("p", { className: "text-muted-foreground", children: subtitle }),
5202
- content && /* @__PURE__ */ jsx111(
5009
+ children: /* @__PURE__ */ jsxs78("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: [
5010
+ /* @__PURE__ */ jsxs78("div", { className: "flex flex-col gap-2", children: [
5011
+ badge && /* @__PURE__ */ jsx110(Badge, { variant: "outline", className: "w-fit", children: badge }),
5012
+ title && /* @__PURE__ */ jsx110("h2", { className: "text-2xl font-bold tracking-tight", children: title }),
5013
+ subtitle && /* @__PURE__ */ jsx110("p", { className: "text-muted-foreground", children: subtitle }),
5014
+ content && /* @__PURE__ */ jsx110(
5203
5015
  "div",
5204
5016
  {
5205
5017
  className: "richtext-content mt-1",
@@ -5207,7 +5019,7 @@ function NewsletterInline({
5207
5019
  }
5208
5020
  )
5209
5021
  ] }),
5210
- /* @__PURE__ */ jsx111(
5022
+ /* @__PURE__ */ jsx110(
5211
5023
  NewsletterForm,
5212
5024
  {
5213
5025
  buttonLabel,
@@ -5223,16 +5035,16 @@ function NewsletterInline({
5223
5035
  }
5224
5036
 
5225
5037
  // src/sections/newsletter/newsletter-section.tsx
5226
- import { jsx as jsx112 } from "react/jsx-runtime";
5038
+ import { jsx as jsx111 } from "react/jsx-runtime";
5227
5039
  function Newsletter(props) {
5228
5040
  switch (props.variant) {
5229
5041
  case "card":
5230
- return /* @__PURE__ */ jsx112(NewsletterCard, { ...props });
5042
+ return /* @__PURE__ */ jsx111(NewsletterCard, { ...props });
5231
5043
  case "inline":
5232
- return /* @__PURE__ */ jsx112(NewsletterInline, { ...props });
5044
+ return /* @__PURE__ */ jsx111(NewsletterInline, { ...props });
5233
5045
  case "centered":
5234
5046
  default:
5235
- return /* @__PURE__ */ jsx112(NewsletterCentered, { ...props });
5047
+ return /* @__PURE__ */ jsx111(NewsletterCentered, { ...props });
5236
5048
  }
5237
5049
  }
5238
5050
 
@@ -5260,7 +5072,7 @@ function fileMeta(mimeType) {
5260
5072
  }
5261
5073
 
5262
5074
  // src/sections/downloads/variants/file-row.tsx
5263
- import { jsx as jsx113, jsxs as jsxs80 } from "react/jsx-runtime";
5075
+ import { jsx as jsx112, jsxs as jsxs79 } from "react/jsx-runtime";
5264
5076
  var iconMap = {
5265
5077
  "file-text": FileText,
5266
5078
  "file-image": FileImage,
@@ -5272,21 +5084,21 @@ function FileRow({ item }) {
5272
5084
  const IconComp = iconMap[icon];
5273
5085
  const size = formatBytes(item.file.size);
5274
5086
  const href = buildDownloadUrl(item.file);
5275
- return /* @__PURE__ */ jsxs80("div", { className: "flex items-center gap-3 py-3 border-b last:border-0", children: [
5276
- /* @__PURE__ */ jsx113("div", { className: ["flex-shrink-0", color].join(" "), children: /* @__PURE__ */ jsx113(IconComp, { className: "h-5 w-5" }) }),
5277
- /* @__PURE__ */ jsxs80("div", { className: "flex-1 min-w-0", children: [
5278
- /* @__PURE__ */ jsx113("p", { className: "text-sm font-medium truncate", children: item.label }),
5279
- size && /* @__PURE__ */ jsx113("p", { className: "text-xs text-muted-foreground mt-0.5", children: size })
5087
+ return /* @__PURE__ */ jsxs79("div", { className: "flex items-center gap-3 py-3 border-b last:border-0", children: [
5088
+ /* @__PURE__ */ jsx112("div", { className: ["flex-shrink-0", color].join(" "), children: /* @__PURE__ */ jsx112(IconComp, { className: "h-5 w-5" }) }),
5089
+ /* @__PURE__ */ jsxs79("div", { className: "flex-1 min-w-0", children: [
5090
+ /* @__PURE__ */ jsx112("p", { className: "text-sm font-medium truncate", children: item.label }),
5091
+ size && /* @__PURE__ */ jsx112("p", { className: "text-xs text-muted-foreground mt-0.5", children: size })
5280
5092
  ] }),
5281
- /* @__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: [
5282
- /* @__PURE__ */ jsx113(Download, { className: "h-3.5 w-3.5" }),
5283
- /* @__PURE__ */ jsx113("span", { className: "hidden sm:inline", children: "Descargar" })
5093
+ /* @__PURE__ */ jsx112(Button, { asChild: true, size: "sm", variant: "outline", className: "shrink-0 gap-1.5", children: /* @__PURE__ */ jsxs79("a", { href, download: true, target: "_blank", rel: "noopener noreferrer", children: [
5094
+ /* @__PURE__ */ jsx112(Download, { className: "h-3.5 w-3.5" }),
5095
+ /* @__PURE__ */ jsx112("span", { className: "hidden sm:inline", children: "Descargar" })
5284
5096
  ] }) })
5285
5097
  ] });
5286
5098
  }
5287
5099
 
5288
5100
  // src/sections/downloads/variants/downloads-grouped.tsx
5289
- import { jsx as jsx114, jsxs as jsxs81 } from "react/jsx-runtime";
5101
+ import { jsx as jsx113, jsxs as jsxs80 } from "react/jsx-runtime";
5290
5102
  function DownloadsGrouped({
5291
5103
  title,
5292
5104
  subtitle,
@@ -5295,7 +5107,7 @@ function DownloadsGrouped({
5295
5107
  background,
5296
5108
  groups
5297
5109
  }) {
5298
- return /* @__PURE__ */ jsx114(
5110
+ return /* @__PURE__ */ jsx113(
5299
5111
  "section",
5300
5112
  {
5301
5113
  className: cn(
@@ -5308,8 +5120,8 @@ function DownloadsGrouped({
5308
5120
  background === "warning" && "bg-warning text-warning-foreground",
5309
5121
  background === "error" && "bg-error text-error-foreground"
5310
5122
  ),
5311
- children: /* @__PURE__ */ jsxs81("div", { className: "container mx-auto px-4", children: [
5312
- /* @__PURE__ */ jsx114(
5123
+ children: /* @__PURE__ */ jsxs80("div", { className: "container mx-auto px-4", children: [
5124
+ /* @__PURE__ */ jsx113(
5313
5125
  SectionHeader,
5314
5126
  {
5315
5127
  title,
@@ -5319,15 +5131,15 @@ function DownloadsGrouped({
5319
5131
  background
5320
5132
  }
5321
5133
  ),
5322
- groups.length > 0 && /* @__PURE__ */ jsx114("div", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3", children: groups.map((group) => /* @__PURE__ */ jsxs81(
5134
+ groups.length > 0 && /* @__PURE__ */ jsx113("div", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3", children: groups.map((group) => /* @__PURE__ */ jsxs80(
5323
5135
  "div",
5324
5136
  {
5325
5137
  className: "rounded-xl border bg-card p-6 shadow-sm",
5326
5138
  children: [
5327
- /* @__PURE__ */ jsx114("h3", { className: "text-base font-semibold mb-4", children: group.title }),
5328
- /* @__PURE__ */ jsxs81("div", { children: [
5329
- group.files.map((file) => /* @__PURE__ */ jsx114(FileRow, { item: file }, file._key)),
5330
- group.files.length === 0 && /* @__PURE__ */ jsx114("p", { className: "text-sm text-muted-foreground", children: "Sin archivos." })
5139
+ /* @__PURE__ */ jsx113("h3", { className: "text-base font-semibold mb-4", children: group.title }),
5140
+ /* @__PURE__ */ jsxs80("div", { children: [
5141
+ group.files.map((file) => /* @__PURE__ */ jsx113(FileRow, { item: file }, file._key)),
5142
+ group.files.length === 0 && /* @__PURE__ */ jsx113("p", { className: "text-sm text-muted-foreground", children: "Sin archivos." })
5331
5143
  ] })
5332
5144
  ]
5333
5145
  },
@@ -5340,7 +5152,7 @@ function DownloadsGrouped({
5340
5152
 
5341
5153
  // src/sections/downloads/variants/downloads-accordion.tsx
5342
5154
  import { FolderOpen } from "lucide-react";
5343
- import { jsx as jsx115, jsxs as jsxs82 } from "react/jsx-runtime";
5155
+ import { jsx as jsx114, jsxs as jsxs81 } from "react/jsx-runtime";
5344
5156
  function DownloadsAccordion({
5345
5157
  title,
5346
5158
  subtitle,
@@ -5349,7 +5161,7 @@ function DownloadsAccordion({
5349
5161
  background,
5350
5162
  groups
5351
5163
  }) {
5352
- return /* @__PURE__ */ jsx115(
5164
+ return /* @__PURE__ */ jsx114(
5353
5165
  "section",
5354
5166
  {
5355
5167
  className: cn(
@@ -5362,8 +5174,8 @@ function DownloadsAccordion({
5362
5174
  background === "warning" && "bg-warning text-warning-foreground",
5363
5175
  background === "error" && "bg-error text-error-foreground"
5364
5176
  ),
5365
- children: /* @__PURE__ */ jsxs82("div", { className: "container mx-auto px-4", children: [
5366
- /* @__PURE__ */ jsx115(
5177
+ children: /* @__PURE__ */ jsxs81("div", { className: "container mx-auto px-4", children: [
5178
+ /* @__PURE__ */ jsx114(
5367
5179
  SectionHeader,
5368
5180
  {
5369
5181
  title,
@@ -5373,16 +5185,16 @@ function DownloadsAccordion({
5373
5185
  background
5374
5186
  }
5375
5187
  ),
5376
- 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(
5188
+ groups.length > 0 && /* @__PURE__ */ jsx114("div", { className: "mx-auto max-w-3xl", children: /* @__PURE__ */ jsx114(Accordion, { type: "multiple", className: "space-y-3", children: groups.map((group) => /* @__PURE__ */ jsxs81(
5377
5189
  AccordionItem,
5378
5190
  {
5379
5191
  value: group._key,
5380
5192
  className: "rounded-xl border bg-card px-6 shadow-sm",
5381
5193
  children: [
5382
- /* @__PURE__ */ jsx115(AccordionTrigger, { className: "text-base font-semibold gap-3 hover:no-underline", children: /* @__PURE__ */ jsxs82("div", { className: "flex items-center gap-2", children: [
5383
- /* @__PURE__ */ jsx115(FolderOpen, { className: "h-4 w-4 text-muted-foreground shrink-0" }),
5384
- /* @__PURE__ */ jsx115("span", { children: group.title }),
5385
- /* @__PURE__ */ jsxs82("span", { className: "ml-1 text-xs font-normal text-muted-foreground", children: [
5194
+ /* @__PURE__ */ jsx114(AccordionTrigger, { className: "text-base font-semibold gap-3 hover:no-underline", children: /* @__PURE__ */ jsxs81("div", { className: "flex items-center gap-2", children: [
5195
+ /* @__PURE__ */ jsx114(FolderOpen, { className: "h-4 w-4 text-muted-foreground shrink-0" }),
5196
+ /* @__PURE__ */ jsx114("span", { children: group.title }),
5197
+ /* @__PURE__ */ jsxs81("span", { className: "ml-1 text-xs font-normal text-muted-foreground", children: [
5386
5198
  "(",
5387
5199
  group.files.length,
5388
5200
  " ",
@@ -5390,9 +5202,9 @@ function DownloadsAccordion({
5390
5202
  ")"
5391
5203
  ] })
5392
5204
  ] }) }),
5393
- /* @__PURE__ */ jsxs82(AccordionContent, { className: "pb-2", children: [
5394
- group.files.map((file) => /* @__PURE__ */ jsx115(FileRow, { item: file }, file._key)),
5395
- group.files.length === 0 && /* @__PURE__ */ jsx115("p", { className: "text-sm text-muted-foreground py-2", children: "Sin archivos." })
5205
+ /* @__PURE__ */ jsxs81(AccordionContent, { className: "pb-2", children: [
5206
+ group.files.map((file) => /* @__PURE__ */ jsx114(FileRow, { item: file }, file._key)),
5207
+ group.files.length === 0 && /* @__PURE__ */ jsx114("p", { className: "text-sm text-muted-foreground py-2", children: "Sin archivos." })
5396
5208
  ] })
5397
5209
  ]
5398
5210
  },
@@ -5404,7 +5216,7 @@ function DownloadsAccordion({
5404
5216
  }
5405
5217
 
5406
5218
  // src/sections/downloads/variants/downloads-flat.tsx
5407
- import { jsx as jsx116, jsxs as jsxs83 } from "react/jsx-runtime";
5219
+ import { jsx as jsx115, jsxs as jsxs82 } from "react/jsx-runtime";
5408
5220
  function DownloadsFlat({
5409
5221
  title,
5410
5222
  subtitle,
@@ -5413,7 +5225,7 @@ function DownloadsFlat({
5413
5225
  background,
5414
5226
  groups
5415
5227
  }) {
5416
- return /* @__PURE__ */ jsx116(
5228
+ return /* @__PURE__ */ jsx115(
5417
5229
  "section",
5418
5230
  {
5419
5231
  className: cn(
@@ -5426,8 +5238,8 @@ function DownloadsFlat({
5426
5238
  background === "warning" && "bg-warning text-warning-foreground",
5427
5239
  background === "error" && "bg-error text-error-foreground"
5428
5240
  ),
5429
- children: /* @__PURE__ */ jsxs83("div", { className: "container mx-auto px-4", children: [
5430
- /* @__PURE__ */ jsx116(
5241
+ children: /* @__PURE__ */ jsxs82("div", { className: "container mx-auto px-4", children: [
5242
+ /* @__PURE__ */ jsx115(
5431
5243
  SectionHeader,
5432
5244
  {
5433
5245
  title,
@@ -5437,14 +5249,14 @@ function DownloadsFlat({
5437
5249
  background
5438
5250
  }
5439
5251
  ),
5440
- groups.length > 0 && /* @__PURE__ */ jsx116("div", { className: "mx-auto max-w-3xl space-y-10", children: groups.map((group) => /* @__PURE__ */ jsxs83("div", { children: [
5441
- /* @__PURE__ */ jsxs83("div", { className: "flex items-center gap-3 mb-4", children: [
5442
- /* @__PURE__ */ jsx116("h3", { className: "text-sm font-semibold uppercase tracking-wider text-muted-foreground", children: group.title }),
5443
- /* @__PURE__ */ jsx116("div", { className: "flex-1 border-t" })
5252
+ groups.length > 0 && /* @__PURE__ */ jsx115("div", { className: "mx-auto max-w-3xl space-y-10", children: groups.map((group) => /* @__PURE__ */ jsxs82("div", { children: [
5253
+ /* @__PURE__ */ jsxs82("div", { className: "flex items-center gap-3 mb-4", children: [
5254
+ /* @__PURE__ */ jsx115("h3", { className: "text-sm font-semibold uppercase tracking-wider text-muted-foreground", children: group.title }),
5255
+ /* @__PURE__ */ jsx115("div", { className: "flex-1 border-t" })
5444
5256
  ] }),
5445
- /* @__PURE__ */ jsxs83("div", { className: "rounded-xl border bg-card px-6 divide-y-0", children: [
5446
- group.files.map((file) => /* @__PURE__ */ jsx116(FileRow, { item: file }, file._key)),
5447
- group.files.length === 0 && /* @__PURE__ */ jsx116("p", { className: "text-sm text-muted-foreground py-4", children: "Sin archivos." })
5257
+ /* @__PURE__ */ jsxs82("div", { className: "rounded-xl border bg-card px-6 divide-y-0", children: [
5258
+ group.files.map((file) => /* @__PURE__ */ jsx115(FileRow, { item: file }, file._key)),
5259
+ group.files.length === 0 && /* @__PURE__ */ jsx115("p", { className: "text-sm text-muted-foreground py-4", children: "Sin archivos." })
5448
5260
  ] })
5449
5261
  ] }, group._key)) })
5450
5262
  ] })
@@ -5453,23 +5265,23 @@ function DownloadsFlat({
5453
5265
  }
5454
5266
 
5455
5267
  // src/sections/downloads/index.tsx
5456
- import { jsx as jsx117 } from "react/jsx-runtime";
5268
+ import { jsx as jsx116 } from "react/jsx-runtime";
5457
5269
  function Downloads(props) {
5458
5270
  switch (props.variant) {
5459
5271
  case "accordion":
5460
- return /* @__PURE__ */ jsx117(DownloadsAccordion, { ...props });
5272
+ return /* @__PURE__ */ jsx116(DownloadsAccordion, { ...props });
5461
5273
  case "flat":
5462
- return /* @__PURE__ */ jsx117(DownloadsFlat, { ...props });
5274
+ return /* @__PURE__ */ jsx116(DownloadsFlat, { ...props });
5463
5275
  case "grouped":
5464
5276
  default:
5465
- return /* @__PURE__ */ jsx117(DownloadsGrouped, { ...props });
5277
+ return /* @__PURE__ */ jsx116(DownloadsGrouped, { ...props });
5466
5278
  }
5467
5279
  }
5468
5280
 
5469
5281
  // src/sections/event-registration/registration-form.tsx
5470
- import { useState as useState16, useRef as useRef3 } from "react";
5282
+ import { useState as useState15, useRef as useRef2 } from "react";
5471
5283
  import { CheckCircle as CheckCircle2, Loader2 as Loader22, ImageIcon, X as X3 } from "lucide-react";
5472
- import { Fragment as Fragment2, jsx as jsx118, jsxs as jsxs84 } from "react/jsx-runtime";
5284
+ import { Fragment as Fragment2, jsx as jsx117, jsxs as jsxs83 } from "react/jsx-runtime";
5473
5285
  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";
5474
5286
  function DynamicField({
5475
5287
  field,
@@ -5479,16 +5291,16 @@ function DynamicField({
5479
5291
  onFileChange
5480
5292
  }) {
5481
5293
  const id = `field-${field.label}`;
5482
- const fileInputRef = useRef3(null);
5294
+ const fileInputRef = useRef2(null);
5483
5295
  const previewUrl = fileValue ? URL.createObjectURL(fileValue) : value || null;
5484
- const label = /* @__PURE__ */ jsxs84("label", { htmlFor: id, className: "text-sm font-medium leading-none", children: [
5296
+ const label = /* @__PURE__ */ jsxs83("label", { htmlFor: id, className: "text-sm font-medium leading-none", children: [
5485
5297
  field.label,
5486
- field.required && /* @__PURE__ */ jsx118("span", { className: "ml-1 text-destructive", children: "*" })
5298
+ field.required && /* @__PURE__ */ jsx117("span", { className: "ml-1 text-destructive", children: "*" })
5487
5299
  ] });
5488
5300
  if (field.fieldType === "image") {
5489
- return /* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1.5", children: [
5301
+ return /* @__PURE__ */ jsxs83("div", { className: "flex flex-col gap-1.5", children: [
5490
5302
  label,
5491
- /* @__PURE__ */ jsxs84(
5303
+ /* @__PURE__ */ jsxs83(
5492
5304
  "div",
5493
5305
  {
5494
5306
  className: cn(
@@ -5497,8 +5309,8 @@ function DynamicField({
5497
5309
  ),
5498
5310
  onClick: () => fileInputRef.current?.click(),
5499
5311
  children: [
5500
- previewUrl ? /* @__PURE__ */ jsxs84(Fragment2, { children: [
5501
- /* @__PURE__ */ jsx118(
5312
+ previewUrl ? /* @__PURE__ */ jsxs83(Fragment2, { children: [
5313
+ /* @__PURE__ */ jsx117(
5502
5314
  "img",
5503
5315
  {
5504
5316
  src: previewUrl,
@@ -5506,7 +5318,7 @@ function DynamicField({
5506
5318
  className: "max-h-40 rounded object-contain"
5507
5319
  }
5508
5320
  ),
5509
- /* @__PURE__ */ jsx118(
5321
+ /* @__PURE__ */ jsx117(
5510
5322
  "button",
5511
5323
  {
5512
5324
  type: "button",
@@ -5516,15 +5328,15 @@ function DynamicField({
5516
5328
  onChange("");
5517
5329
  },
5518
5330
  className: "absolute right-2 top-2 rounded-full bg-background/80 p-1 hover:bg-destructive/10",
5519
- children: /* @__PURE__ */ jsx118(X3, { className: "h-4 w-4 text-destructive" })
5331
+ children: /* @__PURE__ */ jsx117(X3, { className: "h-4 w-4 text-destructive" })
5520
5332
  }
5521
5333
  )
5522
- ] }) : /* @__PURE__ */ jsxs84(Fragment2, { children: [
5523
- /* @__PURE__ */ jsx118(ImageIcon, { className: "h-8 w-8 text-muted-foreground" }),
5524
- /* @__PURE__ */ jsx118("p", { className: "text-sm text-muted-foreground", children: field.placeholder ?? "Hac\xE9 click para seleccionar una imagen" }),
5525
- /* @__PURE__ */ jsx118("p", { className: "text-xs text-muted-foreground", children: "JPG, PNG, WEBP \xB7 m\xE1x. 10 MB" })
5334
+ ] }) : /* @__PURE__ */ jsxs83(Fragment2, { children: [
5335
+ /* @__PURE__ */ jsx117(ImageIcon, { className: "h-8 w-8 text-muted-foreground" }),
5336
+ /* @__PURE__ */ jsx117("p", { className: "text-sm text-muted-foreground", children: field.placeholder ?? "Hac\xE9 click para seleccionar una imagen" }),
5337
+ /* @__PURE__ */ jsx117("p", { className: "text-xs text-muted-foreground", children: "JPG, PNG, WEBP \xB7 m\xE1x. 10 MB" })
5526
5338
  ] }),
5527
- /* @__PURE__ */ jsx118(
5339
+ /* @__PURE__ */ jsx117(
5528
5340
  "input",
5529
5341
  {
5530
5342
  ref: fileInputRef,
@@ -5546,9 +5358,9 @@ function DynamicField({
5546
5358
  ] });
5547
5359
  }
5548
5360
  if (field.fieldType === "textarea") {
5549
- return /* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1.5", children: [
5361
+ return /* @__PURE__ */ jsxs83("div", { className: "flex flex-col gap-1.5", children: [
5550
5362
  label,
5551
- /* @__PURE__ */ jsx118(
5363
+ /* @__PURE__ */ jsx117(
5552
5364
  "textarea",
5553
5365
  {
5554
5366
  id,
@@ -5563,9 +5375,9 @@ function DynamicField({
5563
5375
  ] });
5564
5376
  }
5565
5377
  if (field.fieldType === "select") {
5566
- return /* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1.5", children: [
5378
+ return /* @__PURE__ */ jsxs83("div", { className: "flex flex-col gap-1.5", children: [
5567
5379
  label,
5568
- /* @__PURE__ */ jsxs84(
5380
+ /* @__PURE__ */ jsxs83(
5569
5381
  "select",
5570
5382
  {
5571
5383
  id,
@@ -5574,17 +5386,17 @@ function DynamicField({
5574
5386
  required: field.required,
5575
5387
  className: cn(inputBase2, "h-10"),
5576
5388
  children: [
5577
- /* @__PURE__ */ jsx118("option", { value: "", children: field.placeholder ?? "Seleccion\xE1 una opci\xF3n" }),
5578
- (field.options ?? []).map((opt) => /* @__PURE__ */ jsx118("option", { value: opt, children: opt }, opt))
5389
+ /* @__PURE__ */ jsx117("option", { value: "", children: field.placeholder ?? "Seleccion\xE1 una opci\xF3n" }),
5390
+ (field.options ?? []).map((opt) => /* @__PURE__ */ jsx117("option", { value: opt, children: opt }, opt))
5579
5391
  ]
5580
5392
  }
5581
5393
  )
5582
5394
  ] });
5583
5395
  }
5584
5396
  if (field.fieldType === "date") {
5585
- return /* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1.5", children: [
5397
+ return /* @__PURE__ */ jsxs83("div", { className: "flex flex-col gap-1.5", children: [
5586
5398
  label,
5587
- /* @__PURE__ */ jsx118(
5399
+ /* @__PURE__ */ jsx117(
5588
5400
  DatePicker,
5589
5401
  {
5590
5402
  id,
@@ -5596,9 +5408,9 @@ function DynamicField({
5596
5408
  )
5597
5409
  ] });
5598
5410
  }
5599
- return /* @__PURE__ */ jsxs84("div", { className: "flex flex-col gap-1.5", children: [
5411
+ return /* @__PURE__ */ jsxs83("div", { className: "flex flex-col gap-1.5", children: [
5600
5412
  label,
5601
- /* @__PURE__ */ jsx118(
5413
+ /* @__PURE__ */ jsx117(
5602
5414
  "input",
5603
5415
  {
5604
5416
  id,
@@ -5631,12 +5443,12 @@ function RegistrationForm({
5631
5443
  successMessage = "\xA1Tu registro fue enviado con \xE9xito!",
5632
5444
  className
5633
5445
  }) {
5634
- const [values, setValues] = useState16(
5446
+ const [values, setValues] = useState15(
5635
5447
  () => Object.fromEntries(fields.map((f) => [f.label, ""]))
5636
5448
  );
5637
- const [fileValues, setFileValues] = useState16({});
5638
- const [status, setStatus] = useState16("idle");
5639
- const [errorMsg, setErrorMsg] = useState16("");
5449
+ const [fileValues, setFileValues] = useState15({});
5450
+ const [status, setStatus] = useState15("idle");
5451
+ const [errorMsg, setErrorMsg] = useState15("");
5640
5452
  const handleChange = (label, val) => setValues((prev) => ({ ...prev, [label]: val }));
5641
5453
  const handleFileChange = (label, file) => setFileValues((prev) => ({ ...prev, [label]: file }));
5642
5454
  const handleSubmit = async (e) => {
@@ -5671,13 +5483,13 @@ function RegistrationForm({
5671
5483
  }
5672
5484
  };
5673
5485
  if (status === "success") {
5674
- return /* @__PURE__ */ jsxs84("div", { className: cn("flex flex-col items-center gap-4 py-8 text-center", className), children: [
5675
- /* @__PURE__ */ jsx118(CheckCircle2, { className: "h-14 w-14 text-green-500" }),
5676
- /* @__PURE__ */ jsx118("p", { className: "text-lg font-semibold", children: successMessage })
5486
+ return /* @__PURE__ */ jsxs83("div", { className: cn("flex flex-col items-center gap-4 py-8 text-center", className), children: [
5487
+ /* @__PURE__ */ jsx117(CheckCircle2, { className: "h-14 w-14 text-green-500" }),
5488
+ /* @__PURE__ */ jsx117("p", { className: "text-lg font-semibold", children: successMessage })
5677
5489
  ] });
5678
5490
  }
5679
- return /* @__PURE__ */ jsxs84("form", { onSubmit: handleSubmit, className: cn("grid gap-4", className), children: [
5680
- fields.map((field) => /* @__PURE__ */ jsx118(
5491
+ return /* @__PURE__ */ jsxs83("form", { onSubmit: handleSubmit, className: cn("grid gap-4", className), children: [
5492
+ fields.map((field) => /* @__PURE__ */ jsx117(
5681
5493
  DynamicField,
5682
5494
  {
5683
5495
  field,
@@ -5688,16 +5500,16 @@ function RegistrationForm({
5688
5500
  },
5689
5501
  field.label
5690
5502
  )),
5691
- status === "error" && /* @__PURE__ */ jsx118("p", { className: "rounded-md bg-destructive/10 px-4 py-2 text-sm text-destructive", children: errorMsg }),
5692
- /* @__PURE__ */ jsx118(Button, { type: "submit", disabled: status === "loading", className: "mt-2 w-full", size: "lg", children: status === "loading" ? /* @__PURE__ */ jsxs84(Fragment2, { children: [
5693
- /* @__PURE__ */ jsx118(Loader22, { className: "mr-2 h-4 w-4 animate-spin" }),
5503
+ status === "error" && /* @__PURE__ */ jsx117("p", { className: "rounded-md bg-destructive/10 px-4 py-2 text-sm text-destructive", children: errorMsg }),
5504
+ /* @__PURE__ */ jsx117(Button, { type: "submit", disabled: status === "loading", className: "mt-2 w-full", size: "lg", children: status === "loading" ? /* @__PURE__ */ jsxs83(Fragment2, { children: [
5505
+ /* @__PURE__ */ jsx117(Loader22, { className: "mr-2 h-4 w-4 animate-spin" }),
5694
5506
  "Enviando..."
5695
5507
  ] }) : buttonLabel })
5696
5508
  ] });
5697
5509
  }
5698
5510
 
5699
5511
  // src/sections/event-registration/variants/registration-centered.tsx
5700
- import { jsx as jsx119, jsxs as jsxs85 } from "react/jsx-runtime";
5512
+ import { jsx as jsx118, jsxs as jsxs84 } from "react/jsx-runtime";
5701
5513
  function RegistrationCentered({
5702
5514
  title,
5703
5515
  subtitle,
@@ -5709,7 +5521,7 @@ function RegistrationCentered({
5709
5521
  buttonLabel,
5710
5522
  successMessage
5711
5523
  }) {
5712
- return /* @__PURE__ */ jsx119(
5524
+ return /* @__PURE__ */ jsx118(
5713
5525
  "section",
5714
5526
  {
5715
5527
  className: cn(
@@ -5722,9 +5534,9 @@ function RegistrationCentered({
5722
5534
  background === "warning" && "bg-warning text-warning-foreground",
5723
5535
  background === "error" && "bg-error text-error-foreground"
5724
5536
  ),
5725
- children: /* @__PURE__ */ jsxs85("div", { className: "container mx-auto px-4", children: [
5726
- /* @__PURE__ */ jsx119(SectionHeader, { title, subtitle, badge, content, background }),
5727
- /* @__PURE__ */ jsx119(
5537
+ children: /* @__PURE__ */ jsxs84("div", { className: "container mx-auto px-4", children: [
5538
+ /* @__PURE__ */ jsx118(SectionHeader, { title, subtitle, badge, content, background }),
5539
+ /* @__PURE__ */ jsx118(
5728
5540
  RegistrationForm,
5729
5541
  {
5730
5542
  formId,
@@ -5741,7 +5553,7 @@ function RegistrationCentered({
5741
5553
  }
5742
5554
 
5743
5555
  // src/sections/event-registration/variants/registration-card.tsx
5744
- import { jsx as jsx120, jsxs as jsxs86 } from "react/jsx-runtime";
5556
+ import { jsx as jsx119, jsxs as jsxs85 } from "react/jsx-runtime";
5745
5557
  function RegistrationCard({
5746
5558
  title,
5747
5559
  subtitle,
@@ -5753,7 +5565,7 @@ function RegistrationCard({
5753
5565
  buttonLabel,
5754
5566
  successMessage
5755
5567
  }) {
5756
- return /* @__PURE__ */ jsx120(
5568
+ return /* @__PURE__ */ jsx119(
5757
5569
  "section",
5758
5570
  {
5759
5571
  className: cn(
@@ -5766,9 +5578,9 @@ function RegistrationCard({
5766
5578
  background === "warning" && "bg-warning text-warning-foreground",
5767
5579
  background === "error" && "bg-error text-error-foreground"
5768
5580
  ),
5769
- children: /* @__PURE__ */ jsxs86("div", { className: "container mx-auto px-4", children: [
5770
- /* @__PURE__ */ jsx120(SectionHeader, { title, subtitle, badge, content, background }),
5771
- /* @__PURE__ */ jsx120("div", { className: "mx-auto max-w-xl rounded-2xl border bg-card p-8 shadow-sm", children: /* @__PURE__ */ jsx120(
5581
+ children: /* @__PURE__ */ jsxs85("div", { className: "container mx-auto px-4", children: [
5582
+ /* @__PURE__ */ jsx119(SectionHeader, { title, subtitle, badge, content, background }),
5583
+ /* @__PURE__ */ jsx119("div", { className: "mx-auto max-w-xl rounded-2xl border bg-card p-8 shadow-sm", children: /* @__PURE__ */ jsx119(
5772
5584
  RegistrationForm,
5773
5585
  {
5774
5586
  formId,
@@ -5784,7 +5596,7 @@ function RegistrationCard({
5784
5596
  }
5785
5597
 
5786
5598
  // src/sections/event-registration/variants/registration-split.tsx
5787
- import { jsx as jsx121, jsxs as jsxs87 } from "react/jsx-runtime";
5599
+ import { jsx as jsx120, jsxs as jsxs86 } from "react/jsx-runtime";
5788
5600
  function RegistrationSplit({
5789
5601
  title,
5790
5602
  subtitle,
@@ -5796,7 +5608,7 @@ function RegistrationSplit({
5796
5608
  successMessage,
5797
5609
  image
5798
5610
  }) {
5799
- return /* @__PURE__ */ jsx121(
5611
+ return /* @__PURE__ */ jsx120(
5800
5612
  "section",
5801
5613
  {
5802
5614
  className: cn(
@@ -5809,14 +5621,14 @@ function RegistrationSplit({
5809
5621
  background === "warning" && "bg-warning text-warning-foreground",
5810
5622
  background === "error" && "bg-error text-error-foreground"
5811
5623
  ),
5812
- children: /* @__PURE__ */ jsxs87("div", { className: "container mx-auto grid items-center gap-12 px-4 lg:grid-cols-2", children: [
5813
- /* @__PURE__ */ jsxs87("div", { className: "flex flex-col gap-6", children: [
5814
- badge && /* @__PURE__ */ jsx121(Badge, { variant: "outline", className: "w-fit", children: badge }),
5815
- title && /* @__PURE__ */ jsx121("h2", { className: "text-3xl font-bold tracking-tight lg:text-4xl", children: title }),
5816
- subtitle && /* @__PURE__ */ jsx121("p", { className: "text-lg text-muted-foreground", children: subtitle }),
5817
- 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" }) })
5624
+ children: /* @__PURE__ */ jsxs86("div", { className: "container mx-auto grid items-center gap-12 px-4 lg:grid-cols-2", children: [
5625
+ /* @__PURE__ */ jsxs86("div", { className: "flex flex-col gap-6", children: [
5626
+ badge && /* @__PURE__ */ jsx120(Badge, { variant: "outline", className: "w-fit", children: badge }),
5627
+ title && /* @__PURE__ */ jsx120("h2", { className: "text-3xl font-bold tracking-tight lg:text-4xl", children: title }),
5628
+ subtitle && /* @__PURE__ */ jsx120("p", { className: "text-lg text-muted-foreground", children: subtitle }),
5629
+ image && /* @__PURE__ */ jsx120("div", { className: "aspect-video w-full overflow-hidden rounded-2xl", children: /* @__PURE__ */ jsx120("img", { src: image.url, alt: image.alt ?? title ?? "", className: "h-full w-full object-cover" }) })
5818
5630
  ] }),
5819
- /* @__PURE__ */ jsx121("div", { className: "rounded-2xl border bg-card p-8 shadow-sm", children: /* @__PURE__ */ jsx121(
5631
+ /* @__PURE__ */ jsx120("div", { className: "rounded-2xl border bg-card p-8 shadow-sm", children: /* @__PURE__ */ jsx120(
5820
5632
  RegistrationForm,
5821
5633
  {
5822
5634
  formId,
@@ -5832,16 +5644,16 @@ function RegistrationSplit({
5832
5644
  }
5833
5645
 
5834
5646
  // src/sections/event-registration/event-registration-section.tsx
5835
- import { jsx as jsx122 } from "react/jsx-runtime";
5647
+ import { jsx as jsx121 } from "react/jsx-runtime";
5836
5648
  function EventRegistration(props) {
5837
5649
  switch (props.variant) {
5838
5650
  case "card":
5839
- return /* @__PURE__ */ jsx122(RegistrationCard, { ...props });
5651
+ return /* @__PURE__ */ jsx121(RegistrationCard, { ...props });
5840
5652
  case "split":
5841
- return /* @__PURE__ */ jsx122(RegistrationSplit, { ...props });
5653
+ return /* @__PURE__ */ jsx121(RegistrationSplit, { ...props });
5842
5654
  case "centered":
5843
5655
  default:
5844
- return /* @__PURE__ */ jsx122(RegistrationCentered, { ...props });
5656
+ return /* @__PURE__ */ jsx121(RegistrationCentered, { ...props });
5845
5657
  }
5846
5658
  }
5847
5659
  export {