@ctonti/ask-golf-veneto 1.0.4 → 1.0.5
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/{app-DWg095Qd.mjs → app-a0BueseU.mjs} +43 -14
- package/dist/app-a0BueseU.mjs.map +1 -0
- package/dist/browser.js +694 -480
- package/dist/browser.js.map +1 -1
- package/dist/exports/client.mjs +1 -1
- package/dist/exports/registry.mjs +1 -1
- package/dist/globals.css +1 -0
- package/dist/index.mjs +1 -1
- package/dist/registry-YcWNxjzA.mjs +1385 -0
- package/dist/registry-YcWNxjzA.mjs.map +1 -0
- package/dist/styles.css +800 -240
- package/package.json +2 -2
- package/dist/app-DWg095Qd.mjs.map +0 -1
- package/dist/registry-Bq-3Pbqd.mjs +0 -1211
- package/dist/registry-Bq-3Pbqd.mjs.map +0 -1
|
@@ -0,0 +1,1385 @@
|
|
|
1
|
+
import { t as catalog } from "./catalog-BlF_Hq2u.mjs";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { cn } from "@websolutespa/ask-ui";
|
|
5
|
+
import { defineRegistry } from "@json-render/react";
|
|
6
|
+
import { toast } from "sonner";
|
|
7
|
+
import { renderToStaticMarkup } from "react-dom/server";
|
|
8
|
+
import { Button } from "@websolutespa/ask-ui/components/button";
|
|
9
|
+
import { Skeleton } from "@websolutespa/ask-ui/components/skeleton";
|
|
10
|
+
import { Bed, Bus, Car, Check, Circle, Compass, Flag, Footprints, Gauge, Heart, Landmark, Lightbulb, Mail, MapPin, Mountain, Navigation, Palette, Phone, Plane, Quote, Ruler, Ship, Sparkles, Target, Train, TreePine, Users, UtensilsCrossed, Wine } from "lucide-react";
|
|
11
|
+
//#region src/blocks/root.tsx
|
|
12
|
+
const Root = ({ children }) => {
|
|
13
|
+
return /* @__PURE__ */ jsx("div", {
|
|
14
|
+
"data-type": "root",
|
|
15
|
+
className: cn("flex flex-col py-8 gap-8 @md:gap-16 bg-background text-foreground"),
|
|
16
|
+
children
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region src/blocks/link.tsx
|
|
21
|
+
const Link = ({ props }) => {
|
|
22
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
23
|
+
"data-type": "link",
|
|
24
|
+
asChild: true,
|
|
25
|
+
variant: props.variant === "outline" ? "outline" : props.variant === "secondary" ? "secondary" : props.variant === "danger" ? "destructive" : "default",
|
|
26
|
+
children: /* @__PURE__ */ jsx("a", {
|
|
27
|
+
href: props.href,
|
|
28
|
+
target: "_blank",
|
|
29
|
+
rel: "noopener noreferrer",
|
|
30
|
+
children: props.label
|
|
31
|
+
})
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
//#endregion
|
|
35
|
+
//#region src/blocks/hero-viaggio.tsx
|
|
36
|
+
const HeroViaggio = ({ props }) => {
|
|
37
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
38
|
+
"data-type": "hero-viaggio",
|
|
39
|
+
className: cn("relative flex flex-col items-center justify-center py-24 @md:py-32 px-8 bg-[#213f31] text-white overflow-hidden rounded-2xl shadow-2xl border border-white/10"),
|
|
40
|
+
children: [props.imageSrc ? /* @__PURE__ */ jsxs("div", {
|
|
41
|
+
className: "absolute inset-0 z-0",
|
|
42
|
+
children: [/* @__PURE__ */ jsx("img", {
|
|
43
|
+
src: props.imageSrc,
|
|
44
|
+
alt: "",
|
|
45
|
+
className: "w-full h-full object-cover"
|
|
46
|
+
}), /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-gradient-to-b from-[#213f31]/90 via-[#213f31]/70 to-[#213f31]/90 mix-blend-multiply" })]
|
|
47
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
48
|
+
className: "absolute inset-0 z-0 bg-gradient-to-br from-[#213f31] to-[#12241b]",
|
|
49
|
+
children: /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-[url('https://www.transparenttextures.com/patterns/cubes.png')] opacity-20 mix-blend-overlay" })
|
|
50
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
51
|
+
className: "relative z-10 flex flex-col items-center text-center max-w-4xl mx-auto space-y-8",
|
|
52
|
+
children: [
|
|
53
|
+
/* @__PURE__ */ jsx("div", { className: "w-16 h-px bg-[#e8d9c0]/50 mb-4" }),
|
|
54
|
+
/* @__PURE__ */ jsx("h1", {
|
|
55
|
+
className: "font-heading text-[40px] @md:text-[64px] @lg:text-[80px] italic leading-[1.1] drop-shadow-lg text-[#faf8f3]",
|
|
56
|
+
children: props.title
|
|
57
|
+
}),
|
|
58
|
+
props.tagline && /* @__PURE__ */ jsx("p", {
|
|
59
|
+
className: "font-sans font-light uppercase tracking-[0.2em] text-[#e8d9c0] text-sm @md:text-base max-w-2xl drop-shadow",
|
|
60
|
+
children: props.tagline
|
|
61
|
+
}),
|
|
62
|
+
/* @__PURE__ */ jsx("div", { className: "w-16 h-px bg-[#e8d9c0]/50 mt-4" }),
|
|
63
|
+
props.stats && props.stats.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
64
|
+
className: "flex flex-wrap items-center justify-center gap-6 pt-8",
|
|
65
|
+
children: props.stats.map((stat, i) => /* @__PURE__ */ jsxs("div", {
|
|
66
|
+
className: "flex flex-col items-center bg-white/5 backdrop-blur-md border border-white/10 rounded-xl px-6 py-4 min-w-[120px]",
|
|
67
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
68
|
+
className: "font-heading italic text-3xl @md:text-4xl text-[#e8d9c0] mb-1",
|
|
69
|
+
children: stat.value
|
|
70
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
71
|
+
className: "font-sans text-[10px] uppercase tracking-widest text-white/70 font-semibold",
|
|
72
|
+
children: stat.label
|
|
73
|
+
})]
|
|
74
|
+
}, i))
|
|
75
|
+
})
|
|
76
|
+
]
|
|
77
|
+
})]
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
//#endregion
|
|
81
|
+
//#region src/blocks/hero-viaggio-skeleton.tsx
|
|
82
|
+
const HeroViaggioSkeleton = (_props) => {
|
|
83
|
+
return /* @__PURE__ */ jsx("div", {
|
|
84
|
+
"data-type": "hero-viaggio-skeleton",
|
|
85
|
+
className: "flex flex-col items-center justify-center py-16 @md:py-24 px-6 bg-primary/10 rounded-xl overflow-hidden",
|
|
86
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
87
|
+
className: "flex flex-col items-center w-full max-w-4xl space-y-6",
|
|
88
|
+
children: [
|
|
89
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-[40px] @md:h-[64px] @lg:h-[80px] w-3/4 max-w-2xl bg-primary/20 rounded-lg" }),
|
|
90
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-[24px] @md:h-[28px] w-2/3 max-w-xl bg-primary/20 rounded-lg" }),
|
|
91
|
+
/* @__PURE__ */ jsxs("div", {
|
|
92
|
+
className: "flex gap-3 pt-6",
|
|
93
|
+
children: [
|
|
94
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-9 w-24 bg-primary/20 rounded-full" }),
|
|
95
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-9 w-32 bg-primary/20 rounded-full" }),
|
|
96
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-9 w-28 bg-primary/20 rounded-full" })
|
|
97
|
+
]
|
|
98
|
+
})
|
|
99
|
+
]
|
|
100
|
+
})
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
//#endregion
|
|
104
|
+
//#region src/blocks/concept-card.tsx
|
|
105
|
+
const ICON_MAP = {
|
|
106
|
+
golf: Circle,
|
|
107
|
+
wine: Wine,
|
|
108
|
+
art: Palette,
|
|
109
|
+
nature: TreePine,
|
|
110
|
+
family: Users,
|
|
111
|
+
outdoor: Mountain,
|
|
112
|
+
food: UtensilsCrossed,
|
|
113
|
+
wellness: Heart,
|
|
114
|
+
culture: Landmark
|
|
115
|
+
};
|
|
116
|
+
const ConceptCard = ({ props }) => {
|
|
117
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
118
|
+
"data-type": "concept-card",
|
|
119
|
+
className: cn("bg-[#faf8f3] rounded-2xl border border-[#e8d9c0] shadow-lg overflow-hidden flex flex-col p-8 @md:p-10 space-y-8 @md:space-y-0 @md:flex-row @md:gap-12 relative"),
|
|
120
|
+
children: [
|
|
121
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 w-32 h-32 bg-[#e8d9c0]/20 rounded-bl-full -z-0" }),
|
|
122
|
+
/* @__PURE__ */ jsxs("div", {
|
|
123
|
+
className: "flex-1 relative z-10 flex flex-col justify-center space-y-6 @md:border-r border-[#e8d9c0] @md:pr-10",
|
|
124
|
+
children: [
|
|
125
|
+
/* @__PURE__ */ jsxs("div", {
|
|
126
|
+
className: "flex items-center gap-2 mb-2",
|
|
127
|
+
children: [/* @__PURE__ */ jsx("span", { className: "w-8 h-px bg-[#478264]" }), /* @__PURE__ */ jsx("span", {
|
|
128
|
+
className: "text-[10px] uppercase tracking-widest font-bold text-[#478264]",
|
|
129
|
+
children: "Il Concept"
|
|
130
|
+
})]
|
|
131
|
+
}),
|
|
132
|
+
/* @__PURE__ */ jsxs("div", {
|
|
133
|
+
className: "relative",
|
|
134
|
+
children: [/* @__PURE__ */ jsx(Quote, { className: "w-8 h-8 text-[#e8d9c0] absolute -top-4 -left-2 -z-10 opacity-50" }), /* @__PURE__ */ jsxs("h3", {
|
|
135
|
+
className: "font-heading italic text-[#213f31] text-2xl @md:text-3xl leading-snug",
|
|
136
|
+
children: [
|
|
137
|
+
"“",
|
|
138
|
+
props.concept,
|
|
139
|
+
"”"
|
|
140
|
+
]
|
|
141
|
+
})]
|
|
142
|
+
}),
|
|
143
|
+
props.themes && props.themes.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
144
|
+
className: "flex flex-wrap gap-2 pt-2",
|
|
145
|
+
children: props.themes.map((theme, i) => {
|
|
146
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
147
|
+
className: "flex items-center gap-1.5 bg-white border border-[#e8d9c0] text-[#213f31] text-[10px] uppercase tracking-widest font-bold px-3 py-1.5 rounded-sm shadow-sm",
|
|
148
|
+
children: [/* @__PURE__ */ jsx(ICON_MAP[theme.icon.toLowerCase()] || Circle, { className: "w-3.5 h-3.5 text-[#478264]" }), /* @__PURE__ */ jsx("span", { children: theme.label })]
|
|
149
|
+
}, i);
|
|
150
|
+
})
|
|
151
|
+
})
|
|
152
|
+
]
|
|
153
|
+
}),
|
|
154
|
+
/* @__PURE__ */ jsxs("div", {
|
|
155
|
+
className: "flex-1 relative z-10 flex flex-col justify-center",
|
|
156
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
157
|
+
className: "text-[10px] uppercase tracking-widest font-bold text-[#213f31]/40 mb-3",
|
|
158
|
+
children: "La Visione"
|
|
159
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
160
|
+
className: "text-[#213f31]/80 font-sans leading-relaxed text-sm @md:text-base",
|
|
161
|
+
children: props.debrief
|
|
162
|
+
})]
|
|
163
|
+
})
|
|
164
|
+
]
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
//#endregion
|
|
168
|
+
//#region src/blocks/concept-card-skeleton.tsx
|
|
169
|
+
const ConceptCardSkeleton = (_props) => {
|
|
170
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
171
|
+
"data-type": "concept-card-skeleton",
|
|
172
|
+
className: "bg-card rounded-xl border border-border shadow-sm p-6 @md:p-8 flex flex-col @md:flex-row gap-6 @md:gap-12",
|
|
173
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
174
|
+
className: "flex-1 border-l-4 border-muted pl-6 space-y-2",
|
|
175
|
+
children: [
|
|
176
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }),
|
|
177
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[90%]" }),
|
|
178
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[80%]" })
|
|
179
|
+
]
|
|
180
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
181
|
+
className: "flex-1 space-y-6",
|
|
182
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
183
|
+
className: "space-y-2",
|
|
184
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-full" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-[70%]" })]
|
|
185
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
186
|
+
className: "flex gap-2",
|
|
187
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-20 rounded-full" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-24 rounded-full" })]
|
|
188
|
+
})]
|
|
189
|
+
})]
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
//#endregion
|
|
193
|
+
//#region src/blocks/day-plan.tsx
|
|
194
|
+
const LOGISTICS_ICON_MAP = {
|
|
195
|
+
car: Car,
|
|
196
|
+
train: Train,
|
|
197
|
+
ship: Ship,
|
|
198
|
+
default: Navigation
|
|
199
|
+
};
|
|
200
|
+
const DayPlan = ({ props }) => {
|
|
201
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
202
|
+
"data-type": "day-plan",
|
|
203
|
+
className: cn("flex flex-col w-full shadow-xl rounded-2xl overflow-hidden border border-[#e8d9c0]/50 bg-[#faf8f3]"),
|
|
204
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
205
|
+
className: "relative overflow-hidden bg-[#213f31] px-8 py-10 flex flex-col gap-4",
|
|
206
|
+
children: [
|
|
207
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 opacity-10 bg-[url('https://www.transparenttextures.com/patterns/cubes.png')] mix-blend-overlay" }),
|
|
208
|
+
props.imageSrc && /* @__PURE__ */ jsxs("div", {
|
|
209
|
+
className: "absolute inset-0 z-0",
|
|
210
|
+
children: [/* @__PURE__ */ jsx("img", {
|
|
211
|
+
src: props.imageSrc,
|
|
212
|
+
alt: "",
|
|
213
|
+
className: "w-full h-full object-cover opacity-40 mix-blend-luminosity"
|
|
214
|
+
}), /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-[#213f31] to-transparent" })]
|
|
215
|
+
}),
|
|
216
|
+
/* @__PURE__ */ jsxs("div", {
|
|
217
|
+
className: "flex items-center justify-between z-10",
|
|
218
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
219
|
+
className: "font-sans uppercase tracking-[0.25em] text-[#e8d9c0] text-[10px] font-bold bg-[#e8d9c0]/10 px-3 py-1 rounded-sm backdrop-blur-sm border border-[#e8d9c0]/20",
|
|
220
|
+
children: ["Giorno ", props.dayNumber]
|
|
221
|
+
}), props.location && /* @__PURE__ */ jsxs("div", {
|
|
222
|
+
className: "flex items-center gap-1.5 text-[#e8d9c0] text-xs font-medium uppercase tracking-widest bg-black/20 px-3 py-1 rounded-sm backdrop-blur-sm",
|
|
223
|
+
children: [/* @__PURE__ */ jsx(MapPin, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ jsx("span", { children: props.location })]
|
|
224
|
+
})]
|
|
225
|
+
}),
|
|
226
|
+
/* @__PURE__ */ jsx("h2", {
|
|
227
|
+
className: "font-heading text-white text-4xl @md:text-5xl z-10 leading-tight italic mt-2 drop-shadow-md",
|
|
228
|
+
children: props.title
|
|
229
|
+
})
|
|
230
|
+
]
|
|
231
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
232
|
+
className: "bg-[#faf8f3] px-6 @md:px-8 py-4",
|
|
233
|
+
children: [
|
|
234
|
+
props.golf && /* @__PURE__ */ jsxs("div", {
|
|
235
|
+
className: "py-8 border-b border-[#e8d9c0]/60 last:border-0 relative",
|
|
236
|
+
children: [
|
|
237
|
+
/* @__PURE__ */ jsx("div", { className: "absolute left-0 top-8 w-1 h-12 bg-[#478264] rounded-r-md -ml-6 @md:-ml-8" }),
|
|
238
|
+
/* @__PURE__ */ jsxs("div", {
|
|
239
|
+
className: "flex items-center gap-2 mb-4",
|
|
240
|
+
children: [/* @__PURE__ */ jsx(Flag, { className: "w-5 h-5 text-[#478264]" }), /* @__PURE__ */ jsx("h3", {
|
|
241
|
+
className: "font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#478264]",
|
|
242
|
+
children: "Golf Experience"
|
|
243
|
+
})]
|
|
244
|
+
}),
|
|
245
|
+
/* @__PURE__ */ jsxs("div", {
|
|
246
|
+
className: "space-y-4 pl-2 @md:pl-4",
|
|
247
|
+
children: [
|
|
248
|
+
/* @__PURE__ */ jsx("p", {
|
|
249
|
+
className: "font-heading text-3xl text-[#213f31]",
|
|
250
|
+
children: props.golf.clubName
|
|
251
|
+
}),
|
|
252
|
+
/* @__PURE__ */ jsxs("div", {
|
|
253
|
+
className: "flex gap-2",
|
|
254
|
+
children: [/* @__PURE__ */ jsxs("span", {
|
|
255
|
+
className: "text-xs font-semibold uppercase tracking-wider bg-white px-3 py-1.5 rounded-md text-[#213f31] border border-[#e8d9c0] shadow-sm",
|
|
256
|
+
children: [props.golf.holes, " Buche"]
|
|
257
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
258
|
+
className: "text-xs font-semibold uppercase tracking-wider bg-white px-3 py-1.5 rounded-md text-[#213f31] border border-[#e8d9c0] shadow-sm",
|
|
259
|
+
children: ["Par ", props.golf.par]
|
|
260
|
+
})]
|
|
261
|
+
}),
|
|
262
|
+
/* @__PURE__ */ jsx("p", {
|
|
263
|
+
className: "text-base text-[#213f31]/80 leading-relaxed font-sans",
|
|
264
|
+
children: props.golf.description
|
|
265
|
+
}),
|
|
266
|
+
props.golf.highlight && /* @__PURE__ */ jsx("div", {
|
|
267
|
+
className: "bg-white p-4 rounded-xl border border-[#e8d9c0] shadow-sm mt-4 inline-block",
|
|
268
|
+
children: /* @__PURE__ */ jsxs("p", {
|
|
269
|
+
className: "text-base italic text-[#478264] font-heading text-xl",
|
|
270
|
+
children: [
|
|
271
|
+
"\"",
|
|
272
|
+
props.golf.highlight,
|
|
273
|
+
"\""
|
|
274
|
+
]
|
|
275
|
+
})
|
|
276
|
+
})
|
|
277
|
+
]
|
|
278
|
+
})
|
|
279
|
+
]
|
|
280
|
+
}),
|
|
281
|
+
props.explore && props.explore.length > 0 && /* @__PURE__ */ jsxs("div", {
|
|
282
|
+
className: "py-8 border-b border-[#e8d9c0]/60 last:border-0 relative",
|
|
283
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
284
|
+
className: "flex items-center gap-2 mb-5",
|
|
285
|
+
children: [/* @__PURE__ */ jsx(Compass, { className: "w-5 h-5 text-[#213f31]/50" }), /* @__PURE__ */ jsx("h3", {
|
|
286
|
+
className: "font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#213f31]/50",
|
|
287
|
+
children: "Esplora"
|
|
288
|
+
})]
|
|
289
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
290
|
+
className: "grid grid-cols-1 @md:grid-cols-2 gap-5 pl-0 @md:pl-4",
|
|
291
|
+
children: props.explore.map((attr, i) => /* @__PURE__ */ jsxs("div", {
|
|
292
|
+
className: "bg-white p-5 rounded-xl border border-[#e8d9c0] shadow-sm flex flex-col gap-3 transition-shadow hover:shadow-md",
|
|
293
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
294
|
+
className: "flex items-start justify-between gap-3",
|
|
295
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
296
|
+
className: "font-heading text-2xl text-[#213f31] leading-tight",
|
|
297
|
+
children: attr.name
|
|
298
|
+
}), attr.type && /* @__PURE__ */ jsx("span", {
|
|
299
|
+
className: "text-[9px] uppercase tracking-widest font-bold bg-[#faf8f3] text-[#213f31] border border-[#e8d9c0] px-2 py-1 rounded-full whitespace-nowrap",
|
|
300
|
+
children: attr.type
|
|
301
|
+
})]
|
|
302
|
+
}), attr.description && /* @__PURE__ */ jsx("p", {
|
|
303
|
+
className: "text-sm text-[#213f31]/70 leading-relaxed",
|
|
304
|
+
children: attr.description
|
|
305
|
+
})]
|
|
306
|
+
}, i))
|
|
307
|
+
})]
|
|
308
|
+
}),
|
|
309
|
+
props.dine && /* @__PURE__ */ jsxs("div", {
|
|
310
|
+
className: "py-8 border-b border-[#e8d9c0]/60 last:border-0",
|
|
311
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
312
|
+
className: "flex items-center gap-2 mb-5",
|
|
313
|
+
children: [/* @__PURE__ */ jsx(UtensilsCrossed, { className: "w-5 h-5 text-[#213f31]/50" }), /* @__PURE__ */ jsx("h3", {
|
|
314
|
+
className: "font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#213f31]/50",
|
|
315
|
+
children: "Gusto"
|
|
316
|
+
})]
|
|
317
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
318
|
+
className: "bg-white p-6 rounded-xl border border-[#e8d9c0] shadow-sm pl-6 relative overflow-hidden",
|
|
319
|
+
children: [
|
|
320
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 w-24 h-24 bg-[#478264]/5 rounded-bl-full -z-10" }),
|
|
321
|
+
/* @__PURE__ */ jsxs("p", {
|
|
322
|
+
className: "font-heading text-3xl text-[#213f31] flex flex-col @md:flex-row @md:items-baseline gap-2 mb-3",
|
|
323
|
+
children: [props.dine.name, props.dine.cuisine && /* @__PURE__ */ jsxs("span", {
|
|
324
|
+
className: "font-sans font-medium uppercase tracking-[0.15em] text-[#478264] text-xs",
|
|
325
|
+
children: ["· ", props.dine.cuisine]
|
|
326
|
+
})]
|
|
327
|
+
}),
|
|
328
|
+
/* @__PURE__ */ jsx("p", {
|
|
329
|
+
className: "text-base text-[#213f31]/80 leading-relaxed mb-4",
|
|
330
|
+
children: props.dine.description
|
|
331
|
+
}),
|
|
332
|
+
props.dine.dish && /* @__PURE__ */ jsxs("div", {
|
|
333
|
+
className: "flex items-start gap-3 bg-[#faf8f3] p-4 rounded-xl border border-[#e8d9c0]/50",
|
|
334
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
335
|
+
className: "text-[#478264] text-lg mt-0.5",
|
|
336
|
+
children: "★"
|
|
337
|
+
}), /* @__PURE__ */ jsxs("p", {
|
|
338
|
+
className: "text-sm text-[#213f31] leading-relaxed",
|
|
339
|
+
children: [
|
|
340
|
+
/* @__PURE__ */ jsx("span", {
|
|
341
|
+
className: "font-bold text-[10px] uppercase tracking-widest text-[#213f31]/50 block mb-1",
|
|
342
|
+
children: "Piatto firma"
|
|
343
|
+
}),
|
|
344
|
+
" ",
|
|
345
|
+
props.dine.dish
|
|
346
|
+
]
|
|
347
|
+
})]
|
|
348
|
+
})
|
|
349
|
+
]
|
|
350
|
+
})]
|
|
351
|
+
}),
|
|
352
|
+
props.wine && /* @__PURE__ */ jsxs("div", {
|
|
353
|
+
className: "py-8 border-b border-[#e8d9c0]/60 last:border-0",
|
|
354
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
355
|
+
className: "flex items-center gap-2 mb-5",
|
|
356
|
+
children: [/* @__PURE__ */ jsx(Wine, { className: "w-5 h-5 text-[#8b3a3a]" }), /* @__PURE__ */ jsx("h3", {
|
|
357
|
+
className: "font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#8b3a3a]",
|
|
358
|
+
children: "Degustazione"
|
|
359
|
+
})]
|
|
360
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
361
|
+
className: "bg-gradient-to-br from-[#fffdfa] to-[#fff5f5] p-6 rounded-xl border border-[#8b3a3a]/15 shadow-sm pl-6 relative",
|
|
362
|
+
children: [
|
|
363
|
+
/* @__PURE__ */ jsx("div", {
|
|
364
|
+
className: "absolute right-4 top-4 opacity-5",
|
|
365
|
+
children: /* @__PURE__ */ jsx(Wine, { className: "w-24 h-24 text-[#8b3a3a]" })
|
|
366
|
+
}),
|
|
367
|
+
/* @__PURE__ */ jsx("p", {
|
|
368
|
+
className: "font-heading text-3xl text-[#213f31] mb-3 relative z-10",
|
|
369
|
+
children: props.wine.name
|
|
370
|
+
}),
|
|
371
|
+
/* @__PURE__ */ jsx("p", {
|
|
372
|
+
className: "text-base text-[#213f31]/80 leading-relaxed mb-5 relative z-10 max-w-2xl",
|
|
373
|
+
children: props.wine.description
|
|
374
|
+
}),
|
|
375
|
+
props.wine.wines && props.wine.wines.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
376
|
+
className: "flex flex-wrap gap-2 relative z-10",
|
|
377
|
+
children: props.wine.wines.map((wine, i) => /* @__PURE__ */ jsx("span", {
|
|
378
|
+
className: "text-xs font-semibold uppercase tracking-wider bg-white border border-[#8b3a3a]/20 text-[#8b3a3a] px-3.5 py-1.5 rounded-full shadow-sm",
|
|
379
|
+
children: wine
|
|
380
|
+
}, i))
|
|
381
|
+
})
|
|
382
|
+
]
|
|
383
|
+
})]
|
|
384
|
+
}),
|
|
385
|
+
props.stay && /* @__PURE__ */ jsxs("div", {
|
|
386
|
+
className: "py-8 border-b border-[#e8d9c0]/60 last:border-0",
|
|
387
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
388
|
+
className: "flex items-center gap-2 mb-5",
|
|
389
|
+
children: [/* @__PURE__ */ jsx(Bed, { className: "w-5 h-5 text-[#b8955e]" }), /* @__PURE__ */ jsx("h3", {
|
|
390
|
+
className: "font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#b8955e]",
|
|
391
|
+
children: "Soggiorno"
|
|
392
|
+
})]
|
|
393
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
394
|
+
className: "bg-gradient-to-br from-[#fdfbf7] to-[#f4ebd9]/80 p-6 rounded-xl border border-[#b8955e]/30 shadow-sm pl-6",
|
|
395
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
396
|
+
className: "flex flex-col @md:flex-row @md:items-center justify-between mb-3 gap-3",
|
|
397
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
398
|
+
className: "font-heading text-3xl text-[#213f31]",
|
|
399
|
+
children: props.stay.name
|
|
400
|
+
}), props.stay.type && /* @__PURE__ */ jsx("span", {
|
|
401
|
+
className: "text-[10px] uppercase tracking-widest font-bold bg-[#b8955e] text-white px-3 py-1.5 rounded-sm self-start @md:self-auto shadow-sm",
|
|
402
|
+
children: props.stay.type
|
|
403
|
+
})]
|
|
404
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
405
|
+
className: "text-base text-[#213f31]/80 leading-relaxed max-w-2xl",
|
|
406
|
+
children: props.stay.description
|
|
407
|
+
})]
|
|
408
|
+
})]
|
|
409
|
+
}),
|
|
410
|
+
props.logistics && /* @__PURE__ */ jsxs("div", {
|
|
411
|
+
className: "py-8 border-b border-[#e8d9c0]/60 last:border-0",
|
|
412
|
+
children: [
|
|
413
|
+
/* @__PURE__ */ jsxs("div", {
|
|
414
|
+
className: "flex items-center gap-2 mb-5",
|
|
415
|
+
children: [/* @__PURE__ */ jsx(Navigation, { className: "w-5 h-5 text-[#213f31]/40" }), /* @__PURE__ */ jsx("h3", {
|
|
416
|
+
className: "font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#213f31]/40",
|
|
417
|
+
children: "Spostamenti"
|
|
418
|
+
})]
|
|
419
|
+
}),
|
|
420
|
+
/* @__PURE__ */ jsxs("div", {
|
|
421
|
+
className: "flex flex-col @md:flex-row @md:items-center justify-between bg-white p-5 rounded-xl border border-[#e8d9c0] pl-6 gap-5 shadow-sm",
|
|
422
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
423
|
+
className: "flex flex-wrap items-center gap-3 text-[#213f31] font-heading text-2xl",
|
|
424
|
+
children: [
|
|
425
|
+
/* @__PURE__ */ jsx("span", { children: props.logistics.from }),
|
|
426
|
+
/* @__PURE__ */ jsx("span", {
|
|
427
|
+
className: "text-[#e8d9c0] mx-2",
|
|
428
|
+
children: "⟶"
|
|
429
|
+
}),
|
|
430
|
+
/* @__PURE__ */ jsx("span", { children: props.logistics.to })
|
|
431
|
+
]
|
|
432
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
433
|
+
className: "flex items-center gap-4 shrink-0",
|
|
434
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
435
|
+
className: "flex items-center gap-2 bg-[#faf8f3] px-4 py-2 rounded-full border border-[#e8d9c0]",
|
|
436
|
+
children: [/* @__PURE__ */ jsx(props.logistics.transport && LOGISTICS_ICON_MAP[props.logistics.transport] ? LOGISTICS_ICON_MAP[props.logistics.transport] : LOGISTICS_ICON_MAP.default, { className: "w-4 h-4 text-[#213f31]/70" }), /* @__PURE__ */ jsx("span", {
|
|
437
|
+
className: "text-sm font-semibold uppercase tracking-wider text-[#213f31]/80",
|
|
438
|
+
children: props.logistics.time
|
|
439
|
+
})]
|
|
440
|
+
})
|
|
441
|
+
})]
|
|
442
|
+
}),
|
|
443
|
+
props.logistics.note && /* @__PURE__ */ jsx("p", {
|
|
444
|
+
className: "text-sm text-[#213f31]/60 italic mt-3 pl-2 @md:pl-4",
|
|
445
|
+
children: props.logistics.note
|
|
446
|
+
})
|
|
447
|
+
]
|
|
448
|
+
}),
|
|
449
|
+
props.curiosity && /* @__PURE__ */ jsx("div", {
|
|
450
|
+
className: "py-8 last:border-0",
|
|
451
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
452
|
+
className: "bg-gradient-to-r from-[#f4ebd9]/40 to-transparent rounded-2xl p-6 flex gap-5 items-start border border-[#e8d9c0]/60 relative overflow-hidden",
|
|
453
|
+
children: [
|
|
454
|
+
/* @__PURE__ */ jsx("div", { className: "absolute left-0 top-0 bottom-0 w-1.5 bg-[#b8955e]" }),
|
|
455
|
+
/* @__PURE__ */ jsx("div", {
|
|
456
|
+
className: "bg-white p-2.5 rounded-full shadow-sm shrink-0 border border-[#e8d9c0]",
|
|
457
|
+
children: /* @__PURE__ */ jsx(Lightbulb, { className: "w-5 h-5 text-[#b8955e]" })
|
|
458
|
+
}),
|
|
459
|
+
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", {
|
|
460
|
+
className: "text-[10px] uppercase tracking-widest font-bold text-[#b8955e] block mb-2",
|
|
461
|
+
children: "Lo sapevi che?"
|
|
462
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
463
|
+
className: "text-base font-sans text-[#213f31]/90 leading-relaxed italic",
|
|
464
|
+
children: props.curiosity
|
|
465
|
+
})] })
|
|
466
|
+
]
|
|
467
|
+
})
|
|
468
|
+
})
|
|
469
|
+
]
|
|
470
|
+
})]
|
|
471
|
+
});
|
|
472
|
+
};
|
|
473
|
+
//#endregion
|
|
474
|
+
//#region src/blocks/day-plan-skeleton.tsx
|
|
475
|
+
const DayPlanSkeleton = (_props) => {
|
|
476
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
477
|
+
"data-type": "day-plan-skeleton",
|
|
478
|
+
className: "flex flex-col w-full shadow-sm rounded-xl overflow-hidden border border-border",
|
|
479
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
480
|
+
className: "bg-primary/10 px-6 py-5 space-y-3",
|
|
481
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
482
|
+
className: "flex justify-between",
|
|
483
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-20 bg-primary/20" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-24 bg-primary/20" })]
|
|
484
|
+
}), /* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-2/3 bg-primary/20" })]
|
|
485
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
486
|
+
className: "bg-card px-6 py-2",
|
|
487
|
+
children: [
|
|
488
|
+
1,
|
|
489
|
+
2,
|
|
490
|
+
3
|
|
491
|
+
].map((i) => /* @__PURE__ */ jsxs("div", {
|
|
492
|
+
className: "py-5 border-b border-border/50 last:border-0 space-y-3",
|
|
493
|
+
children: [
|
|
494
|
+
/* @__PURE__ */ jsxs("div", {
|
|
495
|
+
className: "flex items-center gap-2",
|
|
496
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "w-4 h-4 rounded-full" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-16" })]
|
|
497
|
+
}),
|
|
498
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-1/3" }),
|
|
499
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }),
|
|
500
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[90%]" })
|
|
501
|
+
]
|
|
502
|
+
}, i))
|
|
503
|
+
})]
|
|
504
|
+
});
|
|
505
|
+
};
|
|
506
|
+
//#endregion
|
|
507
|
+
//#region src/blocks/golf-club-spotlight.tsx
|
|
508
|
+
const GolfClubSpotlight = ({ props }) => {
|
|
509
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
510
|
+
"data-type": "golf-club-spotlight",
|
|
511
|
+
className: cn("bg-white rounded-2xl border border-[#e8d9c0] shadow-lg relative overflow-hidden flex flex-col @md:flex-row"),
|
|
512
|
+
children: [
|
|
513
|
+
/* @__PURE__ */ jsx("div", {
|
|
514
|
+
className: "absolute top-0 right-0 bg-[#478264] text-white text-[9px] font-bold uppercase tracking-[0.2em] px-4 py-2 rounded-bl-xl z-20 shadow-md",
|
|
515
|
+
children: "Network Golf in Veneto"
|
|
516
|
+
}),
|
|
517
|
+
/* @__PURE__ */ jsxs("div", {
|
|
518
|
+
className: "w-full @md:w-5/12 min-h-[300px] relative",
|
|
519
|
+
children: [
|
|
520
|
+
props.imageSrc ? /* @__PURE__ */ jsx("img", {
|
|
521
|
+
src: props.imageSrc,
|
|
522
|
+
alt: props.name,
|
|
523
|
+
className: "w-full h-full object-cover"
|
|
524
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
525
|
+
className: "w-full h-full bg-gradient-to-br from-[#213f31] to-[#12241b] flex items-center justify-center p-8",
|
|
526
|
+
children: /* @__PURE__ */ jsx(Flag, { className: "w-20 h-20 text-white/10" })
|
|
527
|
+
}),
|
|
528
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent" }),
|
|
529
|
+
/* @__PURE__ */ jsxs("div", {
|
|
530
|
+
className: "absolute bottom-4 left-4 right-4 z-10 block @md:hidden text-white",
|
|
531
|
+
children: [/* @__PURE__ */ jsx("h2", {
|
|
532
|
+
className: "font-heading text-3xl mb-1",
|
|
533
|
+
children: props.name
|
|
534
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
535
|
+
className: "font-sans text-sm font-light italic text-white/80",
|
|
536
|
+
children: props.tagline
|
|
537
|
+
})]
|
|
538
|
+
})
|
|
539
|
+
]
|
|
540
|
+
}),
|
|
541
|
+
/* @__PURE__ */ jsxs("div", {
|
|
542
|
+
className: "w-full @md:w-7/12 p-6 @md:p-8 flex flex-col",
|
|
543
|
+
children: [
|
|
544
|
+
/* @__PURE__ */ jsxs("div", {
|
|
545
|
+
className: "hidden @md:block mb-6",
|
|
546
|
+
children: [/* @__PURE__ */ jsx("h2", {
|
|
547
|
+
className: "font-heading text-4xl text-[#213f31] mb-2 pr-12 leading-tight",
|
|
548
|
+
children: props.name
|
|
549
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
550
|
+
className: "font-heading italic text-[#478264] text-xl",
|
|
551
|
+
children: props.tagline
|
|
552
|
+
})]
|
|
553
|
+
}),
|
|
554
|
+
props.stats && /* @__PURE__ */ jsxs("div", {
|
|
555
|
+
className: "grid grid-cols-2 @lg:grid-cols-3 gap-3 mb-8",
|
|
556
|
+
children: [
|
|
557
|
+
props.stats.holes && /* @__PURE__ */ jsxs("div", {
|
|
558
|
+
className: "flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50",
|
|
559
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
560
|
+
className: "bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]",
|
|
561
|
+
children: /* @__PURE__ */ jsx(Circle, { className: "w-4 h-4 text-[#478264]" })
|
|
562
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
563
|
+
className: "flex flex-col",
|
|
564
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
565
|
+
className: "text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold",
|
|
566
|
+
children: "Buche"
|
|
567
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
568
|
+
className: "text-sm font-bold text-[#213f31]",
|
|
569
|
+
children: props.stats.holes
|
|
570
|
+
})]
|
|
571
|
+
})]
|
|
572
|
+
}),
|
|
573
|
+
props.stats.par && /* @__PURE__ */ jsxs("div", {
|
|
574
|
+
className: "flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50",
|
|
575
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
576
|
+
className: "bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]",
|
|
577
|
+
children: /* @__PURE__ */ jsx(Target, { className: "w-4 h-4 text-[#478264]" })
|
|
578
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
579
|
+
className: "flex flex-col",
|
|
580
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
581
|
+
className: "text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold",
|
|
582
|
+
children: "Par"
|
|
583
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
584
|
+
className: "text-sm font-bold text-[#213f31]",
|
|
585
|
+
children: props.stats.par
|
|
586
|
+
})]
|
|
587
|
+
})]
|
|
588
|
+
}),
|
|
589
|
+
props.stats.distance && /* @__PURE__ */ jsxs("div", {
|
|
590
|
+
className: "flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50",
|
|
591
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
592
|
+
className: "bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]",
|
|
593
|
+
children: /* @__PURE__ */ jsx(Ruler, { className: "w-4 h-4 text-[#478264]" })
|
|
594
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
595
|
+
className: "flex flex-col",
|
|
596
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
597
|
+
className: "text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold",
|
|
598
|
+
children: "Lunghezza"
|
|
599
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
600
|
+
className: "text-sm font-bold text-[#213f31]",
|
|
601
|
+
children: props.stats.distance
|
|
602
|
+
})]
|
|
603
|
+
})]
|
|
604
|
+
}),
|
|
605
|
+
props.stats.courses && /* @__PURE__ */ jsxs("div", {
|
|
606
|
+
className: "flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50",
|
|
607
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
608
|
+
className: "bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]",
|
|
609
|
+
children: /* @__PURE__ */ jsx(MapPin, { className: "w-4 h-4 text-[#478264]" })
|
|
610
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
611
|
+
className: "flex flex-col",
|
|
612
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
613
|
+
className: "text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold",
|
|
614
|
+
children: "Percorsi"
|
|
615
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
616
|
+
className: "text-sm font-bold text-[#213f31]",
|
|
617
|
+
children: props.stats.courses
|
|
618
|
+
})]
|
|
619
|
+
})]
|
|
620
|
+
}),
|
|
621
|
+
props.stats.difficulty && /* @__PURE__ */ jsxs("div", {
|
|
622
|
+
className: "flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50",
|
|
623
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
624
|
+
className: "bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]",
|
|
625
|
+
children: /* @__PURE__ */ jsx(Gauge, { className: "w-4 h-4 text-[#478264]" })
|
|
626
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
627
|
+
className: "flex flex-col",
|
|
628
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
629
|
+
className: "text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold",
|
|
630
|
+
children: "Difficoltà"
|
|
631
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
632
|
+
className: "text-sm font-bold text-[#213f31]",
|
|
633
|
+
children: props.stats.difficulty
|
|
634
|
+
})]
|
|
635
|
+
})]
|
|
636
|
+
}),
|
|
637
|
+
props.stats.terrain && /* @__PURE__ */ jsxs("div", {
|
|
638
|
+
className: "flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50",
|
|
639
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
640
|
+
className: "bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]",
|
|
641
|
+
children: /* @__PURE__ */ jsx(Mountain, { className: "w-4 h-4 text-[#478264]" })
|
|
642
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
643
|
+
className: "flex flex-col",
|
|
644
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
645
|
+
className: "text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold",
|
|
646
|
+
children: "Terreno"
|
|
647
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
648
|
+
className: "text-sm font-bold text-[#213f31]",
|
|
649
|
+
children: props.stats.terrain
|
|
650
|
+
})]
|
|
651
|
+
})]
|
|
652
|
+
})
|
|
653
|
+
]
|
|
654
|
+
}),
|
|
655
|
+
/* @__PURE__ */ jsx("p", {
|
|
656
|
+
className: "text-sm text-[#213f31]/80 leading-relaxed mb-6 font-sans",
|
|
657
|
+
children: props.description
|
|
658
|
+
}),
|
|
659
|
+
props.attractions && props.attractions.length > 0 && /* @__PURE__ */ jsxs("div", {
|
|
660
|
+
className: "mb-6 bg-[#faf8f3] p-4 rounded-xl border border-[#e8d9c0]/50",
|
|
661
|
+
children: [/* @__PURE__ */ jsx("h4", {
|
|
662
|
+
className: "text-[10px] font-bold uppercase tracking-widest text-[#213f31]/60 mb-3",
|
|
663
|
+
children: "Nei dintorni"
|
|
664
|
+
}), /* @__PURE__ */ jsx("ul", {
|
|
665
|
+
className: "text-sm space-y-2 grid grid-cols-1 @lg:grid-cols-2 gap-x-4",
|
|
666
|
+
children: props.attractions.map((attr, i) => /* @__PURE__ */ jsxs("li", {
|
|
667
|
+
className: "flex items-center gap-2 text-[#213f31]/90",
|
|
668
|
+
children: [/* @__PURE__ */ jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-[#e8d9c0]" }), attr]
|
|
669
|
+
}, i))
|
|
670
|
+
})]
|
|
671
|
+
}),
|
|
672
|
+
/* @__PURE__ */ jsxs("div", {
|
|
673
|
+
className: "mt-auto pt-5 border-t border-[#e8d9c0] flex flex-wrap gap-5 text-xs text-[#213f31]/60 font-medium",
|
|
674
|
+
children: [
|
|
675
|
+
props.address && /* @__PURE__ */ jsxs("div", {
|
|
676
|
+
className: "flex items-center gap-2",
|
|
677
|
+
children: [/* @__PURE__ */ jsx(MapPin, { className: "w-4 h-4 text-[#478264]" }), /* @__PURE__ */ jsx("span", { children: props.address })]
|
|
678
|
+
}),
|
|
679
|
+
props.phone && /* @__PURE__ */ jsxs("div", {
|
|
680
|
+
className: "flex items-center gap-2",
|
|
681
|
+
children: [/* @__PURE__ */ jsx(Phone, { className: "w-4 h-4 text-[#478264]" }), /* @__PURE__ */ jsx("span", { children: props.phone })]
|
|
682
|
+
}),
|
|
683
|
+
props.email && /* @__PURE__ */ jsxs("div", {
|
|
684
|
+
className: "flex items-center gap-2",
|
|
685
|
+
children: [/* @__PURE__ */ jsx(Mail, { className: "w-4 h-4 text-[#478264]" }), /* @__PURE__ */ jsx("span", { children: props.email })]
|
|
686
|
+
})
|
|
687
|
+
]
|
|
688
|
+
})
|
|
689
|
+
]
|
|
690
|
+
})
|
|
691
|
+
]
|
|
692
|
+
});
|
|
693
|
+
};
|
|
694
|
+
//#endregion
|
|
695
|
+
//#region src/blocks/golf-club-spotlight-skeleton.tsx
|
|
696
|
+
const GolfClubSpotlightSkeleton = (_props) => {
|
|
697
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
698
|
+
"data-type": "golf-club-spotlight-skeleton",
|
|
699
|
+
className: "bg-card rounded-xl border border-border shadow-sm flex flex-col @md:flex-row overflow-hidden",
|
|
700
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "w-full @md:w-2/5 min-h-[250px] rounded-none" }), /* @__PURE__ */ jsxs("div", {
|
|
701
|
+
className: "w-full @md:w-3/5 p-6 @md:p-8 space-y-6",
|
|
702
|
+
children: [
|
|
703
|
+
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-3/4 mb-2" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-1/2" })] }),
|
|
704
|
+
/* @__PURE__ */ jsx("div", {
|
|
705
|
+
className: "grid grid-cols-2 @lg:grid-cols-3 gap-3",
|
|
706
|
+
children: [
|
|
707
|
+
1,
|
|
708
|
+
2,
|
|
709
|
+
3,
|
|
710
|
+
4,
|
|
711
|
+
5,
|
|
712
|
+
6
|
|
713
|
+
].map((i) => /* @__PURE__ */ jsx(Skeleton, { className: "h-12 w-full rounded-lg" }, i))
|
|
714
|
+
}),
|
|
715
|
+
/* @__PURE__ */ jsxs("div", {
|
|
716
|
+
className: "space-y-2",
|
|
717
|
+
children: [
|
|
718
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }),
|
|
719
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[90%]" }),
|
|
720
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[80%]" })
|
|
721
|
+
]
|
|
722
|
+
}),
|
|
723
|
+
/* @__PURE__ */ jsxs("div", {
|
|
724
|
+
className: "pt-4 border-t border-border flex gap-4",
|
|
725
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-24" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-24" })]
|
|
726
|
+
})
|
|
727
|
+
]
|
|
728
|
+
})]
|
|
729
|
+
});
|
|
730
|
+
};
|
|
731
|
+
//#endregion
|
|
732
|
+
//#region src/blocks/experience-grid.tsx
|
|
733
|
+
const ExperienceGrid = ({ props, children }) => {
|
|
734
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
735
|
+
"data-type": "experience-grid",
|
|
736
|
+
className: cn("space-y-6 @md:space-y-8 py-4"),
|
|
737
|
+
children: [props.title && /* @__PURE__ */ jsxs("div", {
|
|
738
|
+
className: "flex flex-col items-center mb-8",
|
|
739
|
+
children: [/* @__PURE__ */ jsx("span", { className: "w-8 h-px bg-[#478264] mb-4" }), /* @__PURE__ */ jsx("h2", {
|
|
740
|
+
className: "font-heading text-3xl @md:text-4xl text-[#213f31] text-center italic",
|
|
741
|
+
children: props.title
|
|
742
|
+
})]
|
|
743
|
+
}), props.experiences && /* @__PURE__ */ jsx("div", {
|
|
744
|
+
className: "grid grid-cols-1 @md:grid-cols-2 @lg:grid-cols-3 gap-6",
|
|
745
|
+
children: props.experiences.map((exp, i) => {
|
|
746
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
747
|
+
className: "bg-white rounded-xl border border-[#e8d9c0]/50 p-6 shadow-sm hover:shadow-xl transition-all duration-300 flex flex-col h-full relative group",
|
|
748
|
+
children: [
|
|
749
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-0 left-0 w-full h-1 bg-[#478264] rounded-t-xl opacity-0 group-hover:opacity-100 transition-opacity" }),
|
|
750
|
+
/* @__PURE__ */ jsx("div", {
|
|
751
|
+
className: "mb-4",
|
|
752
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
753
|
+
className: "text-[10px] uppercase font-bold tracking-[0.2em] px-3 py-1.5 rounded-sm bg-[#faf8f3] text-[#213f31]/60 border border-[#e8d9c0]",
|
|
754
|
+
children: exp.category
|
|
755
|
+
})
|
|
756
|
+
}),
|
|
757
|
+
/* @__PURE__ */ jsx("h3", {
|
|
758
|
+
className: "font-heading text-2xl text-[#213f31] mb-2 leading-tight group-hover:text-[#478264] transition-colors",
|
|
759
|
+
children: exp.name
|
|
760
|
+
}),
|
|
761
|
+
exp.location && /* @__PURE__ */ jsxs("div", {
|
|
762
|
+
className: "flex items-center gap-1.5 text-xs text-[#213f31]/50 uppercase tracking-widest font-semibold mb-4",
|
|
763
|
+
children: [/* @__PURE__ */ jsx(MapPin, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ jsx("span", { children: exp.location })]
|
|
764
|
+
}),
|
|
765
|
+
/* @__PURE__ */ jsx("p", {
|
|
766
|
+
className: "text-sm text-[#213f31]/80 leading-relaxed mb-6 flex-grow font-sans",
|
|
767
|
+
children: exp.description
|
|
768
|
+
}),
|
|
769
|
+
exp.highlight && /* @__PURE__ */ jsx("div", {
|
|
770
|
+
className: "mt-auto pt-4 border-t border-[#e8d9c0]/50",
|
|
771
|
+
children: /* @__PURE__ */ jsxs("p", {
|
|
772
|
+
className: "text-sm italic text-[#b8955e] font-serif leading-relaxed",
|
|
773
|
+
children: [
|
|
774
|
+
"\"",
|
|
775
|
+
exp.highlight,
|
|
776
|
+
"\""
|
|
777
|
+
]
|
|
778
|
+
})
|
|
779
|
+
})
|
|
780
|
+
]
|
|
781
|
+
}, i);
|
|
782
|
+
})
|
|
783
|
+
})]
|
|
784
|
+
});
|
|
785
|
+
};
|
|
786
|
+
//#endregion
|
|
787
|
+
//#region src/blocks/experience-grid-skeleton.tsx
|
|
788
|
+
const ExperienceGridSkeleton = (_props) => {
|
|
789
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
790
|
+
"data-type": "experience-grid-skeleton",
|
|
791
|
+
className: "space-y-6",
|
|
792
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-48" }), /* @__PURE__ */ jsx("div", {
|
|
793
|
+
className: "grid grid-cols-1 @md:grid-cols-2 @lg:grid-cols-3 gap-4",
|
|
794
|
+
children: [
|
|
795
|
+
1,
|
|
796
|
+
2,
|
|
797
|
+
3
|
|
798
|
+
].map((i) => /* @__PURE__ */ jsxs("div", {
|
|
799
|
+
className: "bg-card rounded-xl border border-border p-5 h-48 flex flex-col gap-3",
|
|
800
|
+
children: [
|
|
801
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-20 rounded-md" }),
|
|
802
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-3/4" }),
|
|
803
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-1/3" }),
|
|
804
|
+
/* @__PURE__ */ jsxs("div", {
|
|
805
|
+
className: "space-y-2 flex-grow",
|
|
806
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[80%]" })]
|
|
807
|
+
})
|
|
808
|
+
]
|
|
809
|
+
}, i))
|
|
810
|
+
})]
|
|
811
|
+
});
|
|
812
|
+
};
|
|
813
|
+
//#endregion
|
|
814
|
+
//#region src/blocks/route-strip.tsx
|
|
815
|
+
const TRANSPORT_ICONS = {
|
|
816
|
+
car: Car,
|
|
817
|
+
train: Train,
|
|
818
|
+
bus: Bus,
|
|
819
|
+
boat: Ship,
|
|
820
|
+
walk: Footprints,
|
|
821
|
+
flight: Plane
|
|
822
|
+
};
|
|
823
|
+
const RouteStrip = ({ props }) => {
|
|
824
|
+
if (!props.legs || props.legs.length === 0) return null;
|
|
825
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
826
|
+
"data-type": "route-strip",
|
|
827
|
+
className: cn("bg-[#faf8f3] border border-[#e8d9c0] rounded-2xl p-6 @md:p-10 shadow-sm relative overflow-hidden"),
|
|
828
|
+
children: [
|
|
829
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 w-32 h-32 bg-[#e8d9c0]/10 rounded-bl-full -z-0" }),
|
|
830
|
+
/* @__PURE__ */ jsx("h3", {
|
|
831
|
+
className: "font-heading text-2xl text-[#213f31] mb-8 text-center italic",
|
|
832
|
+
children: "Il tuo itinerario"
|
|
833
|
+
}),
|
|
834
|
+
/* @__PURE__ */ jsxs("div", {
|
|
835
|
+
className: "hidden @md:flex items-center justify-between relative w-full px-8 pb-4 z-10",
|
|
836
|
+
children: [/* @__PURE__ */ jsx("div", { className: "absolute top-8 left-16 right-16 h-[1px] border-b border-dashed border-[#e8d9c0] -translate-y-1/2 z-0" }), props.legs.map((leg, i) => {
|
|
837
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
838
|
+
className: "relative z-10 flex flex-col items-center group w-40",
|
|
839
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
840
|
+
className: "flex items-center justify-center w-16 h-16 rounded-full bg-white border border-[#e8d9c0] shadow-md group-hover:border-[#b8955e] group-hover:shadow-lg transition-all mb-4 relative",
|
|
841
|
+
children: [/* @__PURE__ */ jsx(TRANSPORT_ICONS[leg.transport?.toLowerCase()] || Car, { className: "w-6 h-6 text-[#213f31]" }), /* @__PURE__ */ jsx("div", { className: "absolute -bottom-2 w-2 h-2 rounded-full bg-[#b8955e]" })]
|
|
842
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
843
|
+
className: "flex flex-col items-center text-center",
|
|
844
|
+
children: [
|
|
845
|
+
/* @__PURE__ */ jsx("span", {
|
|
846
|
+
className: "text-sm font-heading text-[#213f31] mb-1 text-xl leading-tight",
|
|
847
|
+
children: leg.from
|
|
848
|
+
}),
|
|
849
|
+
/* @__PURE__ */ jsxs("span", {
|
|
850
|
+
className: "text-[10px] uppercase tracking-widest text-[#213f31]/40 font-bold mb-2",
|
|
851
|
+
children: ["verso ", leg.to]
|
|
852
|
+
}),
|
|
853
|
+
/* @__PURE__ */ jsxs("div", {
|
|
854
|
+
className: "flex gap-2 bg-white px-3 py-1.5 rounded-sm border border-[#e8d9c0] shadow-sm",
|
|
855
|
+
children: [
|
|
856
|
+
leg.time && /* @__PURE__ */ jsx("span", {
|
|
857
|
+
className: "text-[#b8955e] text-[10px] font-bold uppercase tracking-wider",
|
|
858
|
+
children: leg.time
|
|
859
|
+
}),
|
|
860
|
+
leg.time && leg.distance && /* @__PURE__ */ jsx("span", {
|
|
861
|
+
className: "text-[#e8d9c0]",
|
|
862
|
+
children: "|"
|
|
863
|
+
}),
|
|
864
|
+
leg.distance && /* @__PURE__ */ jsx("span", {
|
|
865
|
+
className: "text-[#b8955e] text-[10px] font-bold uppercase tracking-wider",
|
|
866
|
+
children: leg.distance
|
|
867
|
+
})
|
|
868
|
+
]
|
|
869
|
+
})
|
|
870
|
+
]
|
|
871
|
+
})]
|
|
872
|
+
}, i);
|
|
873
|
+
})]
|
|
874
|
+
}),
|
|
875
|
+
/* @__PURE__ */ jsxs("div", {
|
|
876
|
+
className: "flex @md:hidden flex-col gap-8 relative pl-6 py-4 z-10",
|
|
877
|
+
children: [/* @__PURE__ */ jsx("div", { className: "absolute top-8 bottom-8 left-[39px] w-[1px] border-l border-dashed border-[#e8d9c0] z-0" }), props.legs.map((leg, i) => {
|
|
878
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
879
|
+
className: "relative z-10 flex items-start gap-6",
|
|
880
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
881
|
+
className: "flex items-center justify-center w-12 h-12 rounded-full bg-white border border-[#e8d9c0] shadow-sm shrink-0 relative mt-1",
|
|
882
|
+
children: [/* @__PURE__ */ jsx(TRANSPORT_ICONS[leg.transport?.toLowerCase()] || Car, { className: "w-5 h-5 text-[#213f31]" }), /* @__PURE__ */ jsx("div", { className: "absolute -right-1 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-[#b8955e]" })]
|
|
883
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
884
|
+
className: "flex flex-col bg-white p-4 rounded-xl border border-[#e8d9c0] shadow-sm w-full",
|
|
885
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
886
|
+
className: "flex items-center gap-2 mb-2 flex-wrap",
|
|
887
|
+
children: [
|
|
888
|
+
/* @__PURE__ */ jsx("span", {
|
|
889
|
+
className: "text-xl font-heading text-[#213f31]",
|
|
890
|
+
children: leg.from
|
|
891
|
+
}),
|
|
892
|
+
/* @__PURE__ */ jsx("span", {
|
|
893
|
+
className: "text-[#e8d9c0] mx-1",
|
|
894
|
+
children: "⟶"
|
|
895
|
+
}),
|
|
896
|
+
/* @__PURE__ */ jsx("span", {
|
|
897
|
+
className: "text-xl font-heading text-[#213f31]/80",
|
|
898
|
+
children: leg.to
|
|
899
|
+
})
|
|
900
|
+
]
|
|
901
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
902
|
+
className: "flex gap-3",
|
|
903
|
+
children: [leg.time && /* @__PURE__ */ jsx("span", {
|
|
904
|
+
className: "bg-[#faf8f3] border border-[#e8d9c0]/50 text-[#b8955e] text-[9px] uppercase tracking-widest font-bold px-2 py-1 rounded-sm",
|
|
905
|
+
children: leg.time
|
|
906
|
+
}), leg.distance && /* @__PURE__ */ jsx("span", {
|
|
907
|
+
className: "bg-[#faf8f3] border border-[#e8d9c0]/50 text-[#b8955e] text-[9px] uppercase tracking-widest font-bold px-2 py-1 rounded-sm",
|
|
908
|
+
children: leg.distance
|
|
909
|
+
})]
|
|
910
|
+
})]
|
|
911
|
+
})]
|
|
912
|
+
}, i);
|
|
913
|
+
})]
|
|
914
|
+
})
|
|
915
|
+
]
|
|
916
|
+
});
|
|
917
|
+
};
|
|
918
|
+
//#endregion
|
|
919
|
+
//#region src/blocks/route-strip-skeleton.tsx
|
|
920
|
+
const RouteStripSkeleton = (_props) => {
|
|
921
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
922
|
+
"data-type": "route-strip-skeleton",
|
|
923
|
+
className: "bg-muted rounded-xl p-6",
|
|
924
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
925
|
+
className: "hidden @md:flex justify-between items-center relative w-full pt-4 pb-2 px-4",
|
|
926
|
+
children: [/* @__PURE__ */ jsx("div", { className: "absolute top-1/2 left-8 right-8 h-[2px] bg-border/40 -translate-y-1/2" }), [
|
|
927
|
+
1,
|
|
928
|
+
2,
|
|
929
|
+
3
|
|
930
|
+
].map((i) => /* @__PURE__ */ jsxs("div", {
|
|
931
|
+
className: "z-10 flex flex-col items-center bg-muted px-4 gap-3",
|
|
932
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "w-10 h-10 rounded-full" }), /* @__PURE__ */ jsxs("div", {
|
|
933
|
+
className: "flex flex-col items-center gap-1",
|
|
934
|
+
children: [
|
|
935
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-16" }),
|
|
936
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-2 w-12" }),
|
|
937
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-20 rounded" })
|
|
938
|
+
]
|
|
939
|
+
})]
|
|
940
|
+
}, i))]
|
|
941
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
942
|
+
className: "flex @md:hidden flex-col gap-6 relative pl-4 py-2",
|
|
943
|
+
children: [/* @__PURE__ */ jsx("div", { className: "absolute top-4 bottom-4 left-[27px] w-[2px] bg-border/40" }), [
|
|
944
|
+
1,
|
|
945
|
+
2,
|
|
946
|
+
3
|
|
947
|
+
].map((i) => /* @__PURE__ */ jsxs("div", {
|
|
948
|
+
className: "z-10 flex items-start gap-4",
|
|
949
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "w-8 h-8 rounded-full shrink-0" }), /* @__PURE__ */ jsxs("div", {
|
|
950
|
+
className: "flex flex-col gap-2 pt-1 w-full max-w-[200px]",
|
|
951
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-24 rounded" })]
|
|
952
|
+
})]
|
|
953
|
+
}, i))]
|
|
954
|
+
})]
|
|
955
|
+
});
|
|
956
|
+
};
|
|
957
|
+
//#endregion
|
|
958
|
+
//#region src/blocks/taste-card.tsx
|
|
959
|
+
const BADGE_ICONS = {
|
|
960
|
+
wine: Wine,
|
|
961
|
+
food: UtensilsCrossed,
|
|
962
|
+
experience: Sparkles
|
|
963
|
+
};
|
|
964
|
+
const TasteCard = ({ props }) => {
|
|
965
|
+
const Icon = BADGE_ICONS[props.type?.toLowerCase()] || Sparkles;
|
|
966
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
967
|
+
"data-type": "taste-card",
|
|
968
|
+
className: cn("bg-[#faf8f3] rounded-2xl border border-[#e8d9c0] shadow-lg overflow-hidden flex flex-col @md:flex-row group"),
|
|
969
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
970
|
+
className: "w-full @md:w-[45%] min-h-[250px] relative overflow-hidden",
|
|
971
|
+
children: [
|
|
972
|
+
props.imageSrc ? /* @__PURE__ */ jsx("img", {
|
|
973
|
+
src: props.imageSrc,
|
|
974
|
+
alt: props.name,
|
|
975
|
+
className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105"
|
|
976
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
977
|
+
className: "w-full h-full bg-[#f4ebd9] flex items-center justify-center p-8",
|
|
978
|
+
children: /* @__PURE__ */ jsx(Icon, { className: "w-16 h-16 text-[#b8955e]/20" })
|
|
979
|
+
}),
|
|
980
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/50 via-transparent to-transparent" }),
|
|
981
|
+
/* @__PURE__ */ jsxs("div", {
|
|
982
|
+
className: "absolute top-4 left-4 bg-white/95 backdrop-blur px-3 py-1.5 rounded-sm shadow-md flex items-center gap-2 z-10 border border-[#e8d9c0]/50",
|
|
983
|
+
children: [/* @__PURE__ */ jsx(Icon, { className: "w-4 h-4 text-[#8b3a3a]" }), /* @__PURE__ */ jsx("span", {
|
|
984
|
+
className: "text-[10px] font-bold uppercase tracking-widest text-[#213f31]",
|
|
985
|
+
children: props.type
|
|
986
|
+
})]
|
|
987
|
+
})
|
|
988
|
+
]
|
|
989
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
990
|
+
className: "w-full @md:w-[55%] p-6 @md:p-8 flex flex-col bg-white",
|
|
991
|
+
children: [
|
|
992
|
+
/* @__PURE__ */ jsx("h3", {
|
|
993
|
+
className: "font-heading text-3xl text-[#213f31] mb-2 leading-tight",
|
|
994
|
+
children: props.name
|
|
995
|
+
}),
|
|
996
|
+
props.location && /* @__PURE__ */ jsxs("div", {
|
|
997
|
+
className: "flex items-center gap-1.5 text-[10px] uppercase tracking-[0.2em] font-bold text-[#b8955e] mb-5",
|
|
998
|
+
children: [/* @__PURE__ */ jsx(MapPin, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ jsx("span", { children: props.location })]
|
|
999
|
+
}),
|
|
1000
|
+
/* @__PURE__ */ jsx("p", {
|
|
1001
|
+
className: "text-base text-[#213f31]/80 leading-relaxed mb-6 font-sans",
|
|
1002
|
+
children: props.description
|
|
1003
|
+
}),
|
|
1004
|
+
props.highlights && props.highlights.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
1005
|
+
className: "flex flex-wrap gap-2 mb-6",
|
|
1006
|
+
children: props.highlights.map((item, i) => /* @__PURE__ */ jsx("span", {
|
|
1007
|
+
className: "bg-[#faf8f3] border border-[#e8d9c0] text-[#213f31]/70 text-[10px] uppercase tracking-widest font-bold px-3 py-1.5 rounded-sm shadow-sm",
|
|
1008
|
+
children: item
|
|
1009
|
+
}, i))
|
|
1010
|
+
}),
|
|
1011
|
+
props.recommendation && /* @__PURE__ */ jsxs("div", {
|
|
1012
|
+
className: "mt-auto bg-gradient-to-r from-[#fdfbf7] to-white border border-[#e8d9c0]/50 border-l-2 border-l-[#8b3a3a] rounded-r-lg p-4 shadow-sm relative overflow-hidden",
|
|
1013
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
1014
|
+
className: "absolute right-0 top-0 bottom-0 opacity-5",
|
|
1015
|
+
children: /* @__PURE__ */ jsx(UtensilsCrossed, { className: "w-16 h-16" })
|
|
1016
|
+
}), /* @__PURE__ */ jsxs("p", {
|
|
1017
|
+
className: "text-sm italic text-[#213f31]/90 leading-relaxed relative z-10",
|
|
1018
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
1019
|
+
className: "font-sans font-bold uppercase tracking-widest text-[9px] text-[#8b3a3a] not-italic block mb-1",
|
|
1020
|
+
children: "Da non perdere"
|
|
1021
|
+
}), props.recommendation]
|
|
1022
|
+
})]
|
|
1023
|
+
})
|
|
1024
|
+
]
|
|
1025
|
+
})]
|
|
1026
|
+
});
|
|
1027
|
+
};
|
|
1028
|
+
//#endregion
|
|
1029
|
+
//#region src/blocks/taste-card-skeleton.tsx
|
|
1030
|
+
const TasteCardSkeleton = (_props) => {
|
|
1031
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
1032
|
+
"data-type": "taste-card-skeleton",
|
|
1033
|
+
className: "bg-card rounded-xl border border-border shadow-sm flex flex-col @md:flex-row overflow-hidden",
|
|
1034
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "w-full @md:w-[40%] min-h-[200px] rounded-none" }), /* @__PURE__ */ jsxs("div", {
|
|
1035
|
+
className: "w-full @md:w-[60%] p-5 @md:p-6 flex flex-col gap-4",
|
|
1036
|
+
children: [
|
|
1037
|
+
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-3/4 mb-2" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-1/3" })] }),
|
|
1038
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1039
|
+
className: "space-y-2",
|
|
1040
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[90%]" })]
|
|
1041
|
+
}),
|
|
1042
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1043
|
+
className: "flex gap-2",
|
|
1044
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-20 rounded-full" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-24 rounded-full" })]
|
|
1045
|
+
}),
|
|
1046
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-10 w-full mt-auto rounded-lg" })
|
|
1047
|
+
]
|
|
1048
|
+
})]
|
|
1049
|
+
});
|
|
1050
|
+
};
|
|
1051
|
+
//#endregion
|
|
1052
|
+
//#region src/blocks/stay-card.tsx
|
|
1053
|
+
const StayCard = ({ props }) => {
|
|
1054
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
1055
|
+
"data-type": "stay-card",
|
|
1056
|
+
className: cn("bg-white rounded-2xl border border-[#e8d9c0] shadow-lg overflow-hidden flex flex-col relative group"),
|
|
1057
|
+
children: [
|
|
1058
|
+
props.priceRange && /* @__PURE__ */ jsx("div", {
|
|
1059
|
+
className: "absolute top-4 right-4 bg-[#213f31]/90 backdrop-blur px-3 py-1.5 rounded-sm shadow-md z-10 text-[10px] uppercase tracking-[0.2em] font-bold text-[#e8d9c0] border border-[#e8d9c0]/20",
|
|
1060
|
+
children: props.priceRange
|
|
1061
|
+
}),
|
|
1062
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1063
|
+
className: "w-full aspect-[4/3] relative overflow-hidden",
|
|
1064
|
+
children: [props.imageSrc ? /* @__PURE__ */ jsx("img", {
|
|
1065
|
+
src: props.imageSrc,
|
|
1066
|
+
alt: props.name,
|
|
1067
|
+
className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105"
|
|
1068
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
1069
|
+
className: "w-full h-full bg-[#faf8f3] flex items-center justify-center border-b border-[#e8d9c0]",
|
|
1070
|
+
children: /* @__PURE__ */ jsx(Bed, { className: "w-12 h-12 text-[#b8955e]/20" })
|
|
1071
|
+
}), /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/60 to-transparent" })]
|
|
1072
|
+
}),
|
|
1073
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1074
|
+
className: "p-6 @md:p-8 flex flex-col flex-grow relative bg-white",
|
|
1075
|
+
children: [
|
|
1076
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1077
|
+
className: "absolute -top-6 left-6 right-6 flex items-center justify-between",
|
|
1078
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
1079
|
+
className: "text-[10px] font-bold uppercase tracking-widest text-white bg-[#b8955e] px-3 py-1.5 rounded-sm shadow-md",
|
|
1080
|
+
children: props.type
|
|
1081
|
+
}), props.stars && /* @__PURE__ */ jsx("div", {
|
|
1082
|
+
className: "flex gap-0.5 text-[#e8d9c0] text-sm tracking-tighter bg-[#213f31] px-2 py-1 rounded-sm shadow-md",
|
|
1083
|
+
children: "★".repeat(props.stars)
|
|
1084
|
+
})]
|
|
1085
|
+
}),
|
|
1086
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1087
|
+
className: "mt-2",
|
|
1088
|
+
children: [/* @__PURE__ */ jsx("h3", {
|
|
1089
|
+
className: "font-heading text-3xl text-[#213f31] leading-tight mb-2",
|
|
1090
|
+
children: props.name
|
|
1091
|
+
}), props.location && /* @__PURE__ */ jsxs("div", {
|
|
1092
|
+
className: "flex items-center gap-1.5 text-[10px] uppercase tracking-widest font-bold text-[#213f31]/50 mb-5",
|
|
1093
|
+
children: [/* @__PURE__ */ jsx(MapPin, { className: "w-3.5 h-3.5" }), /* @__PURE__ */ jsx("span", { children: props.location })]
|
|
1094
|
+
})]
|
|
1095
|
+
}),
|
|
1096
|
+
props.features && props.features.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
1097
|
+
className: "flex flex-col gap-2 mb-6",
|
|
1098
|
+
children: props.features.map((feature, i) => /* @__PURE__ */ jsxs("div", {
|
|
1099
|
+
className: "flex items-start gap-3 text-sm text-[#213f31]/80 font-sans",
|
|
1100
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
1101
|
+
className: "mt-0.5 bg-[#b8955e]/10 p-0.5 rounded-full shrink-0",
|
|
1102
|
+
children: /* @__PURE__ */ jsx(Check, { className: "w-3 h-3 text-[#b8955e]" })
|
|
1103
|
+
}), /* @__PURE__ */ jsx("span", { children: feature })]
|
|
1104
|
+
}, i))
|
|
1105
|
+
}),
|
|
1106
|
+
props.whyPerfect && /* @__PURE__ */ jsx("div", {
|
|
1107
|
+
className: "mt-auto bg-[#faf8f3] border border-[#e8d9c0] rounded-xl p-5 shadow-sm",
|
|
1108
|
+
children: /* @__PURE__ */ jsxs("p", {
|
|
1109
|
+
className: "text-sm italic text-[#213f31]/80 leading-relaxed",
|
|
1110
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
1111
|
+
className: "font-sans font-bold not-italic block text-[9px] uppercase tracking-[0.2em] text-[#b8955e] mb-1.5",
|
|
1112
|
+
children: "L'opinione dell'esperto"
|
|
1113
|
+
}), props.whyPerfect]
|
|
1114
|
+
})
|
|
1115
|
+
})
|
|
1116
|
+
]
|
|
1117
|
+
})
|
|
1118
|
+
]
|
|
1119
|
+
});
|
|
1120
|
+
};
|
|
1121
|
+
//#endregion
|
|
1122
|
+
//#region src/blocks/stay-card-skeleton.tsx
|
|
1123
|
+
const StayCardSkeleton = (_props) => {
|
|
1124
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
1125
|
+
"data-type": "stay-card-skeleton",
|
|
1126
|
+
className: "bg-card rounded-xl border border-border shadow-sm flex flex-col overflow-hidden",
|
|
1127
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "w-full aspect-video rounded-none" }), /* @__PURE__ */ jsxs("div", {
|
|
1128
|
+
className: "p-5 flex flex-col gap-4",
|
|
1129
|
+
children: [
|
|
1130
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1131
|
+
className: "flex gap-2",
|
|
1132
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-16 rounded" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-12 rounded" })]
|
|
1133
|
+
}),
|
|
1134
|
+
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-3/4 mb-2" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-1/3" })] }),
|
|
1135
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1136
|
+
className: "flex flex-wrap gap-2",
|
|
1137
|
+
children: [
|
|
1138
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-20 rounded" }),
|
|
1139
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-24 rounded" }),
|
|
1140
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-16 rounded" })
|
|
1141
|
+
]
|
|
1142
|
+
}),
|
|
1143
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-20 w-full mt-2 rounded-lg" })
|
|
1144
|
+
]
|
|
1145
|
+
})]
|
|
1146
|
+
});
|
|
1147
|
+
};
|
|
1148
|
+
//#endregion
|
|
1149
|
+
//#region src/blocks/trip-summary.tsx
|
|
1150
|
+
const TripSummary = ({ props }) => {
|
|
1151
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
1152
|
+
"data-type": "trip-summary",
|
|
1153
|
+
className: cn("bg-[#213f31] text-[#faf8f3] rounded-2xl px-6 py-16 @md:px-12 relative overflow-hidden shadow-2xl"),
|
|
1154
|
+
children: [
|
|
1155
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 z-0 bg-[url('https://www.transparenttextures.com/patterns/cubes.png')] opacity-10 mix-blend-overlay" }),
|
|
1156
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/40 to-transparent z-0" }),
|
|
1157
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1158
|
+
className: "relative z-10 flex flex-col items-center max-w-4xl mx-auto space-y-12",
|
|
1159
|
+
children: [
|
|
1160
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1161
|
+
className: "text-center space-y-4",
|
|
1162
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
1163
|
+
className: "text-[10px] uppercase tracking-[0.3em] font-bold text-[#e8d9c0]",
|
|
1164
|
+
children: "Il Tuo Viaggio in Sintesi"
|
|
1165
|
+
}), /* @__PURE__ */ jsx("h2", {
|
|
1166
|
+
className: "font-heading italic text-4xl @md:text-5xl text-center leading-tight",
|
|
1167
|
+
children: props.title
|
|
1168
|
+
})]
|
|
1169
|
+
}),
|
|
1170
|
+
props.stats && props.stats.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
1171
|
+
className: "flex flex-wrap justify-center gap-10 @md:gap-20 w-full py-8 border-y border-white/10",
|
|
1172
|
+
children: props.stats.map((stat, i) => /* @__PURE__ */ jsxs("div", {
|
|
1173
|
+
className: "flex flex-col items-center",
|
|
1174
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
1175
|
+
className: "font-heading text-5xl @md:text-6xl italic text-[#e8d9c0] mb-2 drop-shadow-md",
|
|
1176
|
+
children: stat.value
|
|
1177
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
1178
|
+
className: "text-[10px] uppercase tracking-[0.2em] font-bold text-white/70",
|
|
1179
|
+
children: stat.label
|
|
1180
|
+
})]
|
|
1181
|
+
}, i))
|
|
1182
|
+
}),
|
|
1183
|
+
props.highlights && props.highlights.length > 0 && /* @__PURE__ */ jsxs("div", {
|
|
1184
|
+
className: "w-full max-w-3xl",
|
|
1185
|
+
children: [/* @__PURE__ */ jsx("h3", {
|
|
1186
|
+
className: "text-center font-sans text-xs uppercase tracking-[0.2em] font-bold text-[#e8d9c0] mb-8",
|
|
1187
|
+
children: "Highlights dell'Esperienza"
|
|
1188
|
+
}), /* @__PURE__ */ jsx("ul", {
|
|
1189
|
+
className: "grid grid-cols-1 @md:grid-cols-2 gap-y-6 gap-x-12",
|
|
1190
|
+
children: props.highlights.map((hl, i) => /* @__PURE__ */ jsxs("li", {
|
|
1191
|
+
className: "flex items-start gap-4",
|
|
1192
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
1193
|
+
className: "mt-1 bg-[#478264] rounded-full p-1 shrink-0 shadow-md border border-[#478264]/20",
|
|
1194
|
+
children: /* @__PURE__ */ jsx(Check, { className: "w-3 h-3 text-white" })
|
|
1195
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
1196
|
+
className: "text-sm font-medium leading-relaxed text-white/90",
|
|
1197
|
+
children: hl
|
|
1198
|
+
})]
|
|
1199
|
+
}, i))
|
|
1200
|
+
})]
|
|
1201
|
+
}),
|
|
1202
|
+
props.closingMessage && /* @__PURE__ */ jsx("div", {
|
|
1203
|
+
className: "pt-8 w-full max-w-2xl text-center",
|
|
1204
|
+
children: /* @__PURE__ */ jsxs("p", {
|
|
1205
|
+
className: "font-heading italic text-2xl @md:text-3xl text-[#e8d9c0] leading-snug",
|
|
1206
|
+
children: [
|
|
1207
|
+
"“",
|
|
1208
|
+
props.closingMessage,
|
|
1209
|
+
"”"
|
|
1210
|
+
]
|
|
1211
|
+
})
|
|
1212
|
+
}),
|
|
1213
|
+
props.ctaText && /* @__PURE__ */ jsx("div", {
|
|
1214
|
+
className: "mt-8",
|
|
1215
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
1216
|
+
className: "bg-[#e8d9c0] hover:bg-white text-[#213f31] rounded-full px-10 py-7 text-xs font-bold uppercase tracking-[0.2em] shadow-xl transition-all hover:scale-105 border-0",
|
|
1217
|
+
children: props.ctaText
|
|
1218
|
+
})
|
|
1219
|
+
})
|
|
1220
|
+
]
|
|
1221
|
+
})
|
|
1222
|
+
]
|
|
1223
|
+
});
|
|
1224
|
+
};
|
|
1225
|
+
//#endregion
|
|
1226
|
+
//#region src/blocks/trip-summary-skeleton.tsx
|
|
1227
|
+
const TripSummarySkeleton = (_props) => {
|
|
1228
|
+
return /* @__PURE__ */ jsx("div", {
|
|
1229
|
+
"data-type": "trip-summary-skeleton",
|
|
1230
|
+
className: "bg-primary/90 rounded-xl px-6 py-12 @md:px-12",
|
|
1231
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
1232
|
+
className: "flex flex-col items-center max-w-4xl mx-auto space-y-10",
|
|
1233
|
+
children: [
|
|
1234
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-10 w-2/3 max-w-md bg-primary-foreground/20" }),
|
|
1235
|
+
/* @__PURE__ */ jsx("div", {
|
|
1236
|
+
className: "flex flex-wrap justify-center gap-8 @md:gap-16 w-full",
|
|
1237
|
+
children: [
|
|
1238
|
+
1,
|
|
1239
|
+
2,
|
|
1240
|
+
3
|
|
1241
|
+
].map((i) => /* @__PURE__ */ jsxs("div", {
|
|
1242
|
+
className: "flex flex-col items-center gap-2",
|
|
1243
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "h-12 w-16 bg-primary-foreground/20" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-20 bg-primary-foreground/20" })]
|
|
1244
|
+
}, i))
|
|
1245
|
+
}),
|
|
1246
|
+
/* @__PURE__ */ jsx("div", {
|
|
1247
|
+
className: "bg-primary-foreground/10 rounded-2xl p-6 @md:p-8 w-full max-w-2xl",
|
|
1248
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
1249
|
+
className: "grid grid-cols-1 @md:grid-cols-2 gap-4",
|
|
1250
|
+
children: [
|
|
1251
|
+
1,
|
|
1252
|
+
2,
|
|
1253
|
+
3,
|
|
1254
|
+
4
|
|
1255
|
+
].map((i) => /* @__PURE__ */ jsxs("div", {
|
|
1256
|
+
className: "flex gap-3",
|
|
1257
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "w-5 h-5 rounded-full bg-primary-foreground/30 shrink-0" }), /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full bg-primary-foreground/20" })]
|
|
1258
|
+
}, i))
|
|
1259
|
+
})
|
|
1260
|
+
}),
|
|
1261
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-3/4 max-w-lg bg-primary-foreground/20" }),
|
|
1262
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-12 w-48 rounded-full bg-primary-foreground/20 mt-4" })
|
|
1263
|
+
]
|
|
1264
|
+
})
|
|
1265
|
+
});
|
|
1266
|
+
};
|
|
1267
|
+
//#endregion
|
|
1268
|
+
//#region src/blocks/insider-tip.tsx
|
|
1269
|
+
const InsiderTip = ({ props }) => {
|
|
1270
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
1271
|
+
"data-type": "insider-tip",
|
|
1272
|
+
className: cn("bg-gradient-to-r from-[#f4ebd9] to-white border border-[#e8d9c0] rounded-xl px-6 py-5 @md:px-8 @md:py-6 flex gap-5 shadow-sm relative overflow-hidden"),
|
|
1273
|
+
children: [
|
|
1274
|
+
/* @__PURE__ */ jsx("div", { className: "absolute left-0 top-0 bottom-0 w-1.5 bg-[#b8955e]" }),
|
|
1275
|
+
/* @__PURE__ */ jsx("div", {
|
|
1276
|
+
className: "bg-white p-3 rounded-full shadow-sm shrink-0 h-fit border border-[#e8d9c0]/50",
|
|
1277
|
+
children: /* @__PURE__ */ jsx(Lightbulb, { className: "w-6 h-6 text-[#b8955e]" })
|
|
1278
|
+
}),
|
|
1279
|
+
/* @__PURE__ */ jsxs("div", {
|
|
1280
|
+
className: "flex flex-col space-y-2",
|
|
1281
|
+
children: [
|
|
1282
|
+
/* @__PURE__ */ jsx("div", {
|
|
1283
|
+
className: "flex items-center gap-2",
|
|
1284
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
1285
|
+
className: "text-[9px] uppercase tracking-widest font-bold text-[#b8955e] bg-[#b8955e]/10 px-2 py-1 rounded-sm",
|
|
1286
|
+
children: "Il consiglio del concierge"
|
|
1287
|
+
})
|
|
1288
|
+
}),
|
|
1289
|
+
props.title && /* @__PURE__ */ jsx("h4", {
|
|
1290
|
+
className: "font-heading text-xl text-[#213f31] leading-tight",
|
|
1291
|
+
children: props.title
|
|
1292
|
+
}),
|
|
1293
|
+
/* @__PURE__ */ jsx("p", {
|
|
1294
|
+
className: "font-sans text-sm text-[#213f31]/80 leading-relaxed",
|
|
1295
|
+
children: props.text
|
|
1296
|
+
}),
|
|
1297
|
+
props.source && /* @__PURE__ */ jsx("span", {
|
|
1298
|
+
className: "text-[10px] uppercase tracking-widest font-bold text-[#213f31]/40 mt-3 block",
|
|
1299
|
+
children: props.source
|
|
1300
|
+
})
|
|
1301
|
+
]
|
|
1302
|
+
})
|
|
1303
|
+
]
|
|
1304
|
+
});
|
|
1305
|
+
};
|
|
1306
|
+
//#endregion
|
|
1307
|
+
//#region src/blocks/insider-tip-skeleton.tsx
|
|
1308
|
+
const InsiderTipSkeleton = (_props) => {
|
|
1309
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
1310
|
+
"data-type": "insider-tip-skeleton",
|
|
1311
|
+
className: "bg-muted/30 border-l-4 border-muted rounded-r-xl px-6 py-5 flex gap-4",
|
|
1312
|
+
children: [/* @__PURE__ */ jsx(Skeleton, { className: "w-6 h-6 rounded-full shrink-0" }), /* @__PURE__ */ jsxs("div", {
|
|
1313
|
+
className: "flex flex-col w-full gap-2 pt-1",
|
|
1314
|
+
children: [
|
|
1315
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-1/3" }),
|
|
1316
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }),
|
|
1317
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[80%]" }),
|
|
1318
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-1/4 mt-2" })
|
|
1319
|
+
]
|
|
1320
|
+
})]
|
|
1321
|
+
});
|
|
1322
|
+
};
|
|
1323
|
+
//#endregion
|
|
1324
|
+
//#region src/registry.ts
|
|
1325
|
+
const { registry, handlers, executeAction } = defineRegistry(catalog, {
|
|
1326
|
+
components: {
|
|
1327
|
+
Root,
|
|
1328
|
+
Link,
|
|
1329
|
+
HeroViaggio,
|
|
1330
|
+
HeroViaggioSkeleton,
|
|
1331
|
+
ConceptCard,
|
|
1332
|
+
ConceptCardSkeleton,
|
|
1333
|
+
DayPlan,
|
|
1334
|
+
DayPlanSkeleton,
|
|
1335
|
+
GolfClubSpotlight,
|
|
1336
|
+
GolfClubSpotlightSkeleton,
|
|
1337
|
+
ExperienceGrid,
|
|
1338
|
+
ExperienceGridSkeleton,
|
|
1339
|
+
RouteStrip,
|
|
1340
|
+
RouteStripSkeleton,
|
|
1341
|
+
TasteCard,
|
|
1342
|
+
TasteCardSkeleton,
|
|
1343
|
+
StayCard,
|
|
1344
|
+
StayCardSkeleton,
|
|
1345
|
+
TripSummary,
|
|
1346
|
+
TripSummarySkeleton,
|
|
1347
|
+
InsiderTip,
|
|
1348
|
+
InsiderTipSkeleton
|
|
1349
|
+
},
|
|
1350
|
+
actions: {
|
|
1351
|
+
setState: async () => {},
|
|
1352
|
+
pushState: async () => {},
|
|
1353
|
+
removeState: async () => {},
|
|
1354
|
+
linkClick: async (params) => {
|
|
1355
|
+
const href = params?.href || "#";
|
|
1356
|
+
toast.info(`Navigating to: ${href}`);
|
|
1357
|
+
}
|
|
1358
|
+
}
|
|
1359
|
+
});
|
|
1360
|
+
/**
|
|
1361
|
+
* Render a single component to static HTML for layout builder previews.
|
|
1362
|
+
*/
|
|
1363
|
+
function renderPreview(componentName, props) {
|
|
1364
|
+
const Component = registry[componentName];
|
|
1365
|
+
if (!Component) return null;
|
|
1366
|
+
const elementProps = {
|
|
1367
|
+
props,
|
|
1368
|
+
emit: () => {},
|
|
1369
|
+
on: () => ({
|
|
1370
|
+
shouldPreventDefault: false,
|
|
1371
|
+
emit: () => {},
|
|
1372
|
+
bound: false
|
|
1373
|
+
}),
|
|
1374
|
+
element: {
|
|
1375
|
+
type: componentName,
|
|
1376
|
+
props
|
|
1377
|
+
},
|
|
1378
|
+
loading: false
|
|
1379
|
+
};
|
|
1380
|
+
return renderToStaticMarkup(React.createElement(Component, elementProps));
|
|
1381
|
+
}
|
|
1382
|
+
//#endregion
|
|
1383
|
+
export { renderPreview as i, handlers as n, registry as r, executeAction as t };
|
|
1384
|
+
|
|
1385
|
+
//# sourceMappingURL=registry-YcWNxjzA.mjs.map
|