@ctonti/ask-golf-veneto 1.0.6 → 1.0.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.mts","names":[],"sources":["../../src/components/intro.tsx","../../src/components/main.tsx","../../src/components/preview.tsx","../../src/components/renderer.tsx","../../src/components.ts"],"mappings":";;;;;iBAKgB,KAAA,CAAA,GAAK,OAAA,CAAA,GAAA,CAAA,OAAA;;;iBCAL,IAAA,CAAA,GAAI,OAAA,CAAA,GAAA,CAAA,OAAA;;;iBCIJ,OAAA,CAAA;EAAU;AAAA;EAAU,IAAA,GAAO,IAAA;AAAA,IAAa,OAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBASxC,eAAA,CAAA;EACd,IAAA;EACA;AAAA;EAEA,IAAA,GAAO,IAAA;EACP,SAAA;AAAA,IACD,OAAA,CAAA,GAAA,CAAA,OAAA;;;iBCTe,QAAA,CAAA;EACd,IAAA;EACA,WAAA;EACA;AAAA;EAEA,IAAA,GAAO,IAAA;EACP,WAAA;EACA,OAAA;AAAA,IACD,OAAA,CAAA,GAAA,CAAA,OAAA;;;cCdY,UAAA;eAOZ,QAAA;;;;;;;KAEW,UAAA,UAAoB,UAAA"}
1
+ {"version":3,"file":"client.d.mts","names":[],"sources":["../../src/components/intro.tsx","../../src/components/main.tsx","../../src/components/preview.tsx","../../src/components/renderer.tsx","../../src/components.ts"],"mappings":";;;;;iBAMgB,KAAA,CAAA,GAAK,OAAA,CAAA,GAAA,CAAA,OAAA;;;iBCDL,IAAA,CAAA,GAAI,OAAA,CAAA,GAAA,CAAA,OAAA;;;iBCIJ,OAAA,CAAA;EAAU;AAAA;EAAU,IAAA,GAAO,IAAA;AAAA,IAAa,OAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBASxC,eAAA,CAAA;EACd,IAAA;EACA;AAAA;EAEA,IAAA,GAAO,IAAA;EACP,SAAA;AAAA,IACD,OAAA,CAAA,GAAA,CAAA,OAAA;;;iBCTe,QAAA,CAAA;EACd,IAAA;EACA,WAAA;EACA;AAAA;EAEA,IAAA,GAAO,IAAA;EACP,WAAA;EACA,OAAA;AAAA,IACD,OAAA,CAAA,GAAA,CAAA,OAAA;;;cCdY,UAAA;eAOZ,QAAA;;;;;;;KAEW,UAAA,UAAoB,UAAA"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as Preview, i as Renderer, n as Chat, o as PreviewRenderer, r as COMPONENTS, s as Main, t as App } from "../app-Bc1Wuyn1.mjs";
2
+ import { a as Preview, i as Renderer, n as Chat, o as PreviewRenderer, r as COMPONENTS, s as Main, t as App } from "../app-BGCvMdkI.mjs";
3
3
  export { App, COMPONENTS, Chat, Main, Preview, PreviewRenderer, Renderer };
@@ -1,2 +1,2 @@
1
- import { i as renderPreview, n as handlers, r as registry, t as executeAction } from "../registry-YcWNxjzA.mjs";
1
+ import { i as renderPreview, n as handlers, r as registry, t as executeAction } from "../registry-DEzfV8_2.mjs";
2
2
  export { executeAction, handlers, registry, renderPreview };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { n as Chat, t as App } from "./app-Bc1Wuyn1.mjs";
1
+ import { n as Chat, t as App } from "./app-BGCvMdkI.mjs";
2
2
  import { initializeAskPlugin } from "@websolutespa/ask-plugin";
3
3
  //#region src/plugin.tsx
4
4
  const askGolfVeneto = initializeAskPlugin({
@@ -1,5 +1,6 @@
1
1
  import { t as catalog } from "./catalog-BlF_Hq2u.mjs";
2
2
  import React from "react";
3
+ 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";
3
4
  import { jsx, jsxs } from "react/jsx-runtime";
4
5
  import { cn } from "@websolutespa/ask-ui";
5
6
  import { defineRegistry } from "@json-render/react";
@@ -7,7 +8,6 @@ import { toast } from "sonner";
7
8
  import { renderToStaticMarkup } from "react-dom/server";
8
9
  import { Button } from "@websolutespa/ask-ui/components/button";
9
10
  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
11
  //#region src/blocks/root.tsx
12
12
  const Root = ({ children }) => {
13
13
  return /* @__PURE__ */ jsx("div", {
@@ -1382,4 +1382,4 @@ function renderPreview(componentName, props) {
1382
1382
  //#endregion
1383
1383
  export { renderPreview as i, handlers as n, registry as r, executeAction as t };
1384
1384
 
1385
- //# sourceMappingURL=registry-YcWNxjzA.mjs.map
1385
+ //# sourceMappingURL=registry-DEzfV8_2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry-YcWNxjzA.mjs","names":[],"sources":["../src/blocks/root.tsx","../src/blocks/link.tsx","../src/blocks/hero-viaggio.tsx","../src/blocks/hero-viaggio-skeleton.tsx","../src/blocks/concept-card.tsx","../src/blocks/concept-card-skeleton.tsx","../src/blocks/day-plan.tsx","../src/blocks/day-plan-skeleton.tsx","../src/blocks/golf-club-spotlight.tsx","../src/blocks/golf-club-spotlight-skeleton.tsx","../src/blocks/experience-grid.tsx","../src/blocks/experience-grid-skeleton.tsx","../src/blocks/route-strip.tsx","../src/blocks/route-strip-skeleton.tsx","../src/blocks/taste-card.tsx","../src/blocks/taste-card-skeleton.tsx","../src/blocks/stay-card.tsx","../src/blocks/stay-card-skeleton.tsx","../src/blocks/trip-summary.tsx","../src/blocks/trip-summary-skeleton.tsx","../src/blocks/insider-tip.tsx","../src/blocks/insider-tip-skeleton.tsx","../src/registry.ts"],"sourcesContent":["import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\n\nexport const Root = ({ children }: ComponentContext<'Root'>) => {\n return (\n <div\n data-type=\"root\"\n className={cn(\"flex flex-col py-8 gap-8 @md:gap-16 bg-background text-foreground\")}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { Button } from '@websolutespa/ask-ui/components/button';\n\nexport const Link = ({ props }: ComponentContext<'Link'>) => {\n const variant =\n props.variant === 'outline'\n ? 'outline'\n : props.variant === 'secondary'\n ? 'secondary'\n : props.variant === 'danger'\n ? 'destructive'\n : 'default';\n return (\n <Button data-type=\"link\" asChild variant={variant}>\n <a href={props.href} target=\"_blank\" rel=\"noopener noreferrer\">\n {props.label}\n </a>\n </Button>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\n\nexport const HeroViaggio = ({ props }: ComponentContext<'HeroViaggio'>) => {\n return (\n <div\n data-type=\"hero-viaggio\"\n className={cn(\n \"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\"\n )}\n >\n {props.imageSrc ? (\n <div className=\"absolute inset-0 z-0\">\n <img src={props.imageSrc} alt=\"\" className=\"w-full h-full object-cover\" />\n <div className=\"absolute inset-0 bg-gradient-to-b from-[#213f31]/90 via-[#213f31]/70 to-[#213f31]/90 mix-blend-multiply\" />\n </div>\n ) : (\n <div className=\"absolute inset-0 z-0 bg-gradient-to-br from-[#213f31] to-[#12241b]\">\n <div className=\"absolute inset-0 bg-[url('https://www.transparenttextures.com/patterns/cubes.png')] opacity-20 mix-blend-overlay\" />\n </div>\n )}\n \n <div className=\"relative z-10 flex flex-col items-center text-center max-w-4xl mx-auto space-y-8\">\n <div className=\"w-16 h-px bg-[#e8d9c0]/50 mb-4\"></div>\n <h1 className=\"font-heading text-[40px] @md:text-[64px] @lg:text-[80px] italic leading-[1.1] drop-shadow-lg text-[#faf8f3]\">\n {props.title}\n </h1>\n \n {props.tagline && (\n <p className=\"font-sans font-light uppercase tracking-[0.2em] text-[#e8d9c0] text-sm @md:text-base max-w-2xl drop-shadow\">\n {props.tagline}\n </p>\n )}\n <div className=\"w-16 h-px bg-[#e8d9c0]/50 mt-4\"></div>\n \n {props.stats && props.stats.length > 0 && (\n <div className=\"flex flex-wrap items-center justify-center gap-6 pt-8\">\n {props.stats.map((stat, i) => (\n <div key={i} 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]\">\n <span className=\"font-heading italic text-3xl @md:text-4xl text-[#e8d9c0] mb-1\">{stat.value}</span>\n <span className=\"font-sans text-[10px] uppercase tracking-widest text-white/70 font-semibold\">{stat.label}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const HeroViaggioSkeleton = (_props: ComponentContext<'HeroViaggioSkeleton'>) => {\n return (\n <div\n data-type=\"hero-viaggio-skeleton\"\n className={\n \"flex flex-col items-center justify-center py-16 @md:py-24 px-6 bg-primary/10 rounded-xl overflow-hidden\"\n }\n >\n <div className=\"flex flex-col items-center w-full max-w-4xl space-y-6\">\n <Skeleton className=\"h-[40px] @md:h-[64px] @lg:h-[80px] w-3/4 max-w-2xl bg-primary/20 rounded-lg\" />\n <Skeleton className=\"h-[24px] @md:h-[28px] w-2/3 max-w-xl bg-primary/20 rounded-lg\" />\n <div className=\"flex gap-3 pt-6\">\n <Skeleton className=\"h-9 w-24 bg-primary/20 rounded-full\" />\n <Skeleton className=\"h-9 w-32 bg-primary/20 rounded-full\" />\n <Skeleton className=\"h-9 w-28 bg-primary/20 rounded-full\" />\n </div>\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Circle, Wine, Palette, TreePine, Users, Mountain, UtensilsCrossed, Heart, Landmark, Quote } from 'lucide-react';\n\nconst ICON_MAP: Record<string, React.ElementType> = {\n golf: Circle,\n wine: Wine,\n art: Palette,\n nature: TreePine,\n family: Users,\n outdoor: Mountain,\n food: UtensilsCrossed,\n wellness: Heart,\n culture: Landmark,\n};\n\nexport const ConceptCard = ({ props }: ComponentContext<'ConceptCard'>) => {\n return (\n <div\n data-type=\"concept-card\"\n 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\")}\n >\n <div className=\"absolute top-0 right-0 w-32 h-32 bg-[#e8d9c0]/20 rounded-bl-full -z-0\"></div>\n \n <div className=\"flex-1 relative z-10 flex flex-col justify-center space-y-6 @md:border-r border-[#e8d9c0] @md:pr-10\">\n <div className=\"flex items-center gap-2 mb-2\">\n <span className=\"w-8 h-px bg-[#478264]\"></span>\n <span className=\"text-[10px] uppercase tracking-widest font-bold text-[#478264]\">Il Concept</span>\n </div>\n <div className=\"relative\">\n <Quote className=\"w-8 h-8 text-[#e8d9c0] absolute -top-4 -left-2 -z-10 opacity-50\" />\n <h3 className=\"font-heading italic text-[#213f31] text-2xl @md:text-3xl leading-snug\">\n &ldquo;{props.concept}&rdquo;\n </h3>\n </div>\n \n {props.themes && props.themes.length > 0 && (\n <div className=\"flex flex-wrap gap-2 pt-2\">\n {props.themes.map((theme, i) => {\n const Icon = ICON_MAP[theme.icon.toLowerCase()] || Circle;\n return (\n <div key={i} 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\">\n <Icon className=\"w-3.5 h-3.5 text-[#478264]\" />\n <span>{theme.label}</span>\n </div>\n );\n })}\n </div>\n )}\n </div>\n\n <div className=\"flex-1 relative z-10 flex flex-col justify-center\">\n <span className=\"text-[10px] uppercase tracking-widest font-bold text-[#213f31]/40 mb-3\">La Visione</span>\n <p className=\"text-[#213f31]/80 font-sans leading-relaxed text-sm @md:text-base\">\n {props.debrief}\n </p>\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const ConceptCardSkeleton = (_props: ComponentContext<'ConceptCardSkeleton'>) => {\n return (\n <div\n data-type=\"concept-card-skeleton\"\n 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\"}\n >\n <div className=\"flex-1 border-l-4 border-muted pl-6 space-y-2\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-[90%]\" />\n <Skeleton className=\"h-4 w-[80%]\" />\n </div>\n <div className=\"flex-1 space-y-6\">\n <div className=\"space-y-2\">\n <Skeleton className=\"h-6 w-full\" />\n <Skeleton className=\"h-6 w-[70%]\" />\n </div>\n <div className=\"flex gap-2\">\n <Skeleton className=\"h-7 w-20 rounded-full\" />\n <Skeleton className=\"h-7 w-24 rounded-full\" />\n </div>\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Flag, Compass, UtensilsCrossed, Wine, Bed, Car, Train, Ship, Lightbulb, MapPin, Navigation } from 'lucide-react';\n\nconst LOGISTICS_ICON_MAP: Record<string, React.ElementType> = {\n car: Car,\n train: Train,\n ship: Ship,\n default: Navigation\n};\n\nexport const DayPlan = ({ props }: ComponentContext<'DayPlan'>) => {\n return (\n <div data-type=\"day-plan\" className={cn(\"flex flex-col w-full shadow-xl rounded-2xl overflow-hidden border border-[#e8d9c0]/50 bg-[#faf8f3]\")}>\n {/* Header */}\n <div className=\"relative overflow-hidden bg-[#213f31] px-8 py-10 flex flex-col gap-4\">\n <div className=\"absolute inset-0 opacity-10 bg-[url('https://www.transparenttextures.com/patterns/cubes.png')] mix-blend-overlay\"></div>\n {props.imageSrc && (\n <div className=\"absolute inset-0 z-0\">\n <img src={props.imageSrc} alt=\"\" className=\"w-full h-full object-cover opacity-40 mix-blend-luminosity\" />\n <div className=\"absolute inset-0 bg-gradient-to-t from-[#213f31] to-transparent\"></div>\n </div>\n )}\n <div className=\"flex items-center justify-between z-10\">\n <span 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\">\n Giorno {props.dayNumber}\n </span>\n {props.location && (\n <div 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\">\n <MapPin className=\"w-3.5 h-3.5\" />\n <span>{props.location}</span>\n </div>\n )}\n </div>\n <h2 className=\"font-heading text-white text-4xl @md:text-5xl z-10 leading-tight italic mt-2 drop-shadow-md\">\n {props.title}\n </h2>\n </div>\n \n {/* Body */}\n <div className=\"bg-[#faf8f3] px-6 @md:px-8 py-4\">\n {props.golf && (\n <div className=\"py-8 border-b border-[#e8d9c0]/60 last:border-0 relative\">\n <div className=\"absolute left-0 top-8 w-1 h-12 bg-[#478264] rounded-r-md -ml-6 @md:-ml-8\"></div>\n <div className=\"flex items-center gap-2 mb-4\">\n <Flag className=\"w-5 h-5 text-[#478264]\" />\n <h3 className=\"font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#478264]\">Golf Experience</h3>\n </div>\n <div className=\"space-y-4 pl-2 @md:pl-4\">\n <p className=\"font-heading text-3xl text-[#213f31]\">{props.golf.clubName}</p>\n <div className=\"flex gap-2\">\n <span className=\"text-xs font-semibold uppercase tracking-wider bg-white px-3 py-1.5 rounded-md text-[#213f31] border border-[#e8d9c0] shadow-sm\">\n {props.golf.holes} Buche\n </span>\n <span className=\"text-xs font-semibold uppercase tracking-wider bg-white px-3 py-1.5 rounded-md text-[#213f31] border border-[#e8d9c0] shadow-sm\">\n Par {props.golf.par}\n </span>\n </div>\n <p className=\"text-base text-[#213f31]/80 leading-relaxed font-sans\">{props.golf.description}</p>\n {props.golf.highlight && (\n <div className=\"bg-white p-4 rounded-xl border border-[#e8d9c0] shadow-sm mt-4 inline-block\">\n <p className=\"text-base italic text-[#478264] font-heading text-xl\">\"{props.golf.highlight}\"</p>\n </div>\n )}\n </div>\n </div>\n )}\n \n {props.explore && props.explore.length > 0 && (\n <div className=\"py-8 border-b border-[#e8d9c0]/60 last:border-0 relative\">\n <div className=\"flex items-center gap-2 mb-5\">\n <Compass className=\"w-5 h-5 text-[#213f31]/50\" />\n <h3 className=\"font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#213f31]/50\">Esplora</h3>\n </div>\n <div className=\"grid grid-cols-1 @md:grid-cols-2 gap-5 pl-0 @md:pl-4\">\n {props.explore.map((attr, i) => (\n <div key={i} className=\"bg-white p-5 rounded-xl border border-[#e8d9c0] shadow-sm flex flex-col gap-3 transition-shadow hover:shadow-md\">\n <div className=\"flex items-start justify-between gap-3\">\n <span className=\"font-heading text-2xl text-[#213f31] leading-tight\">{attr.name}</span>\n {attr.type && (\n <span className=\"text-[9px] uppercase tracking-widest font-bold bg-[#faf8f3] text-[#213f31] border border-[#e8d9c0] px-2 py-1 rounded-full whitespace-nowrap\">\n {attr.type}\n </span>\n )}\n </div>\n {attr.description && (\n <p className=\"text-sm text-[#213f31]/70 leading-relaxed\">{attr.description}</p>\n )}\n </div>\n ))}\n </div>\n </div>\n )}\n \n {props.dine && (\n <div className=\"py-8 border-b border-[#e8d9c0]/60 last:border-0\">\n <div className=\"flex items-center gap-2 mb-5\">\n <UtensilsCrossed className=\"w-5 h-5 text-[#213f31]/50\" />\n <h3 className=\"font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#213f31]/50\">Gusto</h3>\n </div>\n <div className=\"bg-white p-6 rounded-xl border border-[#e8d9c0] shadow-sm pl-6 relative overflow-hidden\">\n <div className=\"absolute top-0 right-0 w-24 h-24 bg-[#478264]/5 rounded-bl-full -z-10\"></div>\n <p className=\"font-heading text-3xl text-[#213f31] flex flex-col @md:flex-row @md:items-baseline gap-2 mb-3\">\n {props.dine.name}\n {props.dine.cuisine && <span className=\"font-sans font-medium uppercase tracking-[0.15em] text-[#478264] text-xs\">· {props.dine.cuisine}</span>}\n </p>\n <p className=\"text-base text-[#213f31]/80 leading-relaxed mb-4\">{props.dine.description}</p>\n {props.dine.dish && (\n <div className=\"flex items-start gap-3 bg-[#faf8f3] p-4 rounded-xl border border-[#e8d9c0]/50\">\n <span className=\"text-[#478264] text-lg mt-0.5\">★</span>\n <p className=\"text-sm text-[#213f31] leading-relaxed\"><span className=\"font-bold text-[10px] uppercase tracking-widest text-[#213f31]/50 block mb-1\">Piatto firma</span> {props.dine.dish}</p>\n </div>\n )}\n </div>\n </div>\n )}\n \n {props.wine && (\n <div className=\"py-8 border-b border-[#e8d9c0]/60 last:border-0\">\n <div className=\"flex items-center gap-2 mb-5\">\n <Wine className=\"w-5 h-5 text-[#8b3a3a]\" />\n <h3 className=\"font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#8b3a3a]\">Degustazione</h3>\n </div>\n <div className=\"bg-gradient-to-br from-[#fffdfa] to-[#fff5f5] p-6 rounded-xl border border-[#8b3a3a]/15 shadow-sm pl-6 relative\">\n <div className=\"absolute right-4 top-4 opacity-5\">\n <Wine className=\"w-24 h-24 text-[#8b3a3a]\" />\n </div>\n <p className=\"font-heading text-3xl text-[#213f31] mb-3 relative z-10\">{props.wine.name}</p>\n <p className=\"text-base text-[#213f31]/80 leading-relaxed mb-5 relative z-10 max-w-2xl\">{props.wine.description}</p>\n {props.wine.wines && props.wine.wines.length > 0 && (\n <div className=\"flex flex-wrap gap-2 relative z-10\">\n {props.wine.wines.map((wine, i) => (\n <span key={i} 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\">\n {wine}\n </span>\n ))}\n </div>\n )}\n </div>\n </div>\n )}\n \n {props.stay && (\n <div className=\"py-8 border-b border-[#e8d9c0]/60 last:border-0\">\n <div className=\"flex items-center gap-2 mb-5\">\n <Bed className=\"w-5 h-5 text-[#b8955e]\" />\n <h3 className=\"font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#b8955e]\">Soggiorno</h3>\n </div>\n <div className=\"bg-gradient-to-br from-[#fdfbf7] to-[#f4ebd9]/80 p-6 rounded-xl border border-[#b8955e]/30 shadow-sm pl-6\">\n <div className=\"flex flex-col @md:flex-row @md:items-center justify-between mb-3 gap-3\">\n <p className=\"font-heading text-3xl text-[#213f31]\">{props.stay.name}</p>\n {props.stay.type && (\n <span 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\">\n {props.stay.type}\n </span>\n )}\n </div>\n <p className=\"text-base text-[#213f31]/80 leading-relaxed max-w-2xl\">{props.stay.description}</p>\n </div>\n </div>\n )}\n \n {props.logistics && (\n <div className=\"py-8 border-b border-[#e8d9c0]/60 last:border-0\">\n <div className=\"flex items-center gap-2 mb-5\">\n <Navigation className=\"w-5 h-5 text-[#213f31]/40\" />\n <h3 className=\"font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#213f31]/40\">Spostamenti</h3>\n </div>\n <div 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\">\n <div className=\"flex flex-wrap items-center gap-3 text-[#213f31] font-heading text-2xl\">\n <span>{props.logistics.from}</span>\n <span className=\"text-[#e8d9c0] mx-2\">⟶</span> \n <span>{props.logistics.to}</span>\n </div>\n <div className=\"flex items-center gap-4 shrink-0\">\n <div className=\"flex items-center gap-2 bg-[#faf8f3] px-4 py-2 rounded-full border border-[#e8d9c0]\">\n {(() => {\n const Icon = (props.logistics.transport && LOGISTICS_ICON_MAP[props.logistics.transport]) ? LOGISTICS_ICON_MAP[props.logistics.transport] : LOGISTICS_ICON_MAP.default;\n return <Icon className=\"w-4 h-4 text-[#213f31]/70\" />;\n })()}\n <span className=\"text-sm font-semibold uppercase tracking-wider text-[#213f31]/80\">{props.logistics.time}</span>\n </div>\n </div>\n </div>\n {props.logistics.note && (\n <p className=\"text-sm text-[#213f31]/60 italic mt-3 pl-2 @md:pl-4\">{props.logistics.note}</p>\n )}\n </div>\n )}\n \n {props.curiosity && (\n <div className=\"py-8 last:border-0\">\n <div 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\">\n <div className=\"absolute left-0 top-0 bottom-0 w-1.5 bg-[#b8955e]\"></div>\n <div className=\"bg-white p-2.5 rounded-full shadow-sm shrink-0 border border-[#e8d9c0]\">\n <Lightbulb className=\"w-5 h-5 text-[#b8955e]\" />\n </div>\n <div>\n <span className=\"text-[10px] uppercase tracking-widest font-bold text-[#b8955e] block mb-2\">Lo sapevi che?</span>\n <p className=\"text-base font-sans text-[#213f31]/90 leading-relaxed italic\">\n {props.curiosity}\n </p>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const DayPlanSkeleton = (_props: ComponentContext<'DayPlanSkeleton'>) => {\n return (\n <div data-type=\"day-plan-skeleton\" className={\"flex flex-col w-full shadow-sm rounded-xl overflow-hidden border border-border\"}>\n <div className=\"bg-primary/10 px-6 py-5 space-y-3\">\n <div className=\"flex justify-between\">\n <Skeleton className=\"h-3 w-20 bg-primary/20\" />\n <Skeleton className=\"h-4 w-24 bg-primary/20\" />\n </div>\n <Skeleton className=\"h-8 w-2/3 bg-primary/20\" />\n </div>\n <div className=\"bg-card px-6 py-2\">\n {[1, 2, 3].map((i) => (\n <div key={i} className=\"py-5 border-b border-border/50 last:border-0 space-y-3\">\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"w-4 h-4 rounded-full\" />\n <Skeleton className=\"h-3 w-16\" />\n </div>\n <Skeleton className=\"h-5 w-1/3\" />\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-[90%]\" />\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Circle, Target, MapPin, Ruler, Gauge, Mountain, Phone, Mail, Flag } from 'lucide-react';\n\nexport const GolfClubSpotlight = ({ props }: ComponentContext<'GolfClubSpotlight'>) => {\n return (\n <div \n data-type=\"golf-club-spotlight\" \n className={cn(\"bg-white rounded-2xl border border-[#e8d9c0] shadow-lg relative overflow-hidden flex flex-col @md:flex-row\")}\n >\n <div 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\">\n Network Golf in Veneto\n </div>\n \n <div className=\"w-full @md:w-5/12 min-h-[300px] relative\">\n {props.imageSrc ? (\n <img src={props.imageSrc} alt={props.name} className=\"w-full h-full object-cover\" />\n ) : (\n <div className=\"w-full h-full bg-gradient-to-br from-[#213f31] to-[#12241b] flex items-center justify-center p-8\">\n <Flag className=\"w-20 h-20 text-white/10\" />\n </div>\n )}\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent\"></div>\n <div className=\"absolute bottom-4 left-4 right-4 z-10 block @md:hidden text-white\">\n <h2 className=\"font-heading text-3xl mb-1\">{props.name}</h2>\n <p className=\"font-sans text-sm font-light italic text-white/80\">{props.tagline}</p>\n </div>\n </div>\n \n <div className=\"w-full @md:w-7/12 p-6 @md:p-8 flex flex-col\">\n <div className=\"hidden @md:block mb-6\">\n <h2 className=\"font-heading text-4xl text-[#213f31] mb-2 pr-12 leading-tight\">{props.name}</h2>\n <p className=\"font-heading italic text-[#478264] text-xl\">{props.tagline}</p>\n </div>\n \n {props.stats && (\n <div className=\"grid grid-cols-2 @lg:grid-cols-3 gap-3 mb-8\">\n {props.stats.holes && (\n <div className=\"flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50\">\n <div className=\"bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]\"><Circle className=\"w-4 h-4 text-[#478264]\" /></div>\n <div className=\"flex flex-col\">\n <span className=\"text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold\">Buche</span>\n <span className=\"text-sm font-bold text-[#213f31]\">{props.stats.holes}</span>\n </div>\n </div>\n )}\n {props.stats.par && (\n <div className=\"flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50\">\n <div className=\"bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]\"><Target className=\"w-4 h-4 text-[#478264]\" /></div>\n <div className=\"flex flex-col\">\n <span className=\"text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold\">Par</span>\n <span className=\"text-sm font-bold text-[#213f31]\">{props.stats.par}</span>\n </div>\n </div>\n )}\n {props.stats.distance && (\n <div className=\"flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50\">\n <div className=\"bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]\"><Ruler className=\"w-4 h-4 text-[#478264]\" /></div>\n <div className=\"flex flex-col\">\n <span className=\"text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold\">Lunghezza</span>\n <span className=\"text-sm font-bold text-[#213f31]\">{props.stats.distance}</span>\n </div>\n </div>\n )}\n {props.stats.courses && (\n <div className=\"flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50\">\n <div className=\"bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]\"><MapPin className=\"w-4 h-4 text-[#478264]\" /></div>\n <div className=\"flex flex-col\">\n <span className=\"text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold\">Percorsi</span>\n <span className=\"text-sm font-bold text-[#213f31]\">{props.stats.courses}</span>\n </div>\n </div>\n )}\n {props.stats.difficulty && (\n <div className=\"flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50\">\n <div className=\"bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]\"><Gauge className=\"w-4 h-4 text-[#478264]\" /></div>\n <div className=\"flex flex-col\">\n <span className=\"text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold\">Difficoltà</span>\n <span className=\"text-sm font-bold text-[#213f31]\">{props.stats.difficulty}</span>\n </div>\n </div>\n )}\n {props.stats.terrain && (\n <div className=\"flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50\">\n <div className=\"bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]\"><Mountain className=\"w-4 h-4 text-[#478264]\" /></div>\n <div className=\"flex flex-col\">\n <span className=\"text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold\">Terreno</span>\n <span className=\"text-sm font-bold text-[#213f31]\">{props.stats.terrain}</span>\n </div>\n </div>\n )}\n </div>\n )}\n \n <p className=\"text-sm text-[#213f31]/80 leading-relaxed mb-6 font-sans\">\n {props.description}\n </p>\n \n {props.attractions && props.attractions.length > 0 && (\n <div className=\"mb-6 bg-[#faf8f3] p-4 rounded-xl border border-[#e8d9c0]/50\">\n <h4 className=\"text-[10px] font-bold uppercase tracking-widest text-[#213f31]/60 mb-3\">Nei dintorni</h4>\n <ul className=\"text-sm space-y-2 grid grid-cols-1 @lg:grid-cols-2 gap-x-4\">\n {props.attractions.map((attr, i) => (\n <li key={i} className=\"flex items-center gap-2 text-[#213f31]/90\">\n <span className=\"w-1.5 h-1.5 rounded-full bg-[#e8d9c0]\" />\n {attr}\n </li>\n ))}\n </ul>\n </div>\n )}\n \n <div className=\"mt-auto pt-5 border-t border-[#e8d9c0] flex flex-wrap gap-5 text-xs text-[#213f31]/60 font-medium\">\n {props.address && (\n <div className=\"flex items-center gap-2\">\n <MapPin className=\"w-4 h-4 text-[#478264]\" />\n <span>{props.address}</span>\n </div>\n )}\n {props.phone && (\n <div className=\"flex items-center gap-2\">\n <Phone className=\"w-4 h-4 text-[#478264]\" />\n <span>{props.phone}</span>\n </div>\n )}\n {props.email && (\n <div className=\"flex items-center gap-2\">\n <Mail className=\"w-4 h-4 text-[#478264]\" />\n <span>{props.email}</span>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const GolfClubSpotlightSkeleton = (_props: ComponentContext<'GolfClubSpotlightSkeleton'>) => {\n return (\n <div \n data-type=\"golf-club-spotlight-skeleton\" \n className={\"bg-card rounded-xl border border-border shadow-sm flex flex-col @md:flex-row overflow-hidden\"}\n >\n <Skeleton className=\"w-full @md:w-2/5 min-h-[250px] rounded-none\" />\n <div className=\"w-full @md:w-3/5 p-6 @md:p-8 space-y-6\">\n <div>\n <Skeleton className=\"h-8 w-3/4 mb-2\" />\n <Skeleton className=\"h-5 w-1/2\" />\n </div>\n <div className=\"grid grid-cols-2 @lg:grid-cols-3 gap-3\">\n {[1,2,3,4,5,6].map(i => <Skeleton key={i} className=\"h-12 w-full rounded-lg\" />)}\n </div>\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-[90%]\" />\n <Skeleton className=\"h-4 w-[80%]\" />\n </div>\n <div className=\"pt-4 border-t border-border flex gap-4\">\n <Skeleton className=\"h-4 w-24\" />\n <Skeleton className=\"h-4 w-24\" />\n </div>\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { MapPin } from 'lucide-react';\n\nexport const ExperienceGrid = ({ props, children }: ComponentContext<'ExperienceGrid'>) => {\n return (\n <div data-type=\"experience-grid\" className={cn(\"space-y-6 @md:space-y-8 py-4\")}>\n {props.title && (\n <div className=\"flex flex-col items-center mb-8\">\n <span className=\"w-8 h-px bg-[#478264] mb-4\"></span>\n <h2 className=\"font-heading text-3xl @md:text-4xl text-[#213f31] text-center italic\">{props.title}</h2>\n </div>\n )}\n \n {props.experiences && (\n <div className=\"grid grid-cols-1 @md:grid-cols-2 @lg:grid-cols-3 gap-6\">\n {props.experiences.map((exp, i) => {\n return (\n <div key={i} 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\">\n <div className=\"absolute top-0 left-0 w-full h-1 bg-[#478264] rounded-t-xl opacity-0 group-hover:opacity-100 transition-opacity\"></div>\n <div className=\"mb-4\">\n <span className=\"text-[10px] uppercase font-bold tracking-[0.2em] px-3 py-1.5 rounded-sm bg-[#faf8f3] text-[#213f31]/60 border border-[#e8d9c0]\">\n {exp.category}\n </span>\n </div>\n <h3 className=\"font-heading text-2xl text-[#213f31] mb-2 leading-tight group-hover:text-[#478264] transition-colors\">{exp.name}</h3>\n {exp.location && (\n <div className=\"flex items-center gap-1.5 text-xs text-[#213f31]/50 uppercase tracking-widest font-semibold mb-4\">\n <MapPin className=\"w-3.5 h-3.5\" />\n <span>{exp.location}</span>\n </div>\n )}\n <p className=\"text-sm text-[#213f31]/80 leading-relaxed mb-6 flex-grow font-sans\">\n {exp.description}\n </p>\n {exp.highlight && (\n <div className=\"mt-auto pt-4 border-t border-[#e8d9c0]/50\">\n <p className=\"text-sm italic text-[#b8955e] font-serif leading-relaxed\">\n \"{exp.highlight}\"\n </p>\n </div>\n )}\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const ExperienceGridSkeleton = (_props: ComponentContext<'ExperienceGridSkeleton'>) => {\n return (\n <div data-type=\"experience-grid-skeleton\" className={\"space-y-6\"}>\n <Skeleton className=\"h-8 w-48\" />\n <div className=\"grid grid-cols-1 @md:grid-cols-2 @lg:grid-cols-3 gap-4\">\n {[1, 2, 3].map((i) => (\n <div key={i} className=\"bg-card rounded-xl border border-border p-5 h-48 flex flex-col gap-3\">\n <Skeleton className=\"h-5 w-20 rounded-md\" />\n <Skeleton className=\"h-6 w-3/4\" />\n <Skeleton className=\"h-3 w-1/3\" />\n <div className=\"space-y-2 flex-grow\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-[80%]\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Car, Train, Bus, Ship, Footprints, Plane } from 'lucide-react';\n\nconst TRANSPORT_ICONS: Record<string, React.ElementType> = {\n car: Car,\n train: Train,\n bus: Bus,\n boat: Ship,\n walk: Footprints,\n flight: Plane,\n};\n\nexport const RouteStrip = ({ props }: ComponentContext<'RouteStrip'>) => {\n if (!props.legs || props.legs.length === 0) return null;\n \n return (\n <div data-type=\"route-strip\" className={cn(\"bg-[#faf8f3] border border-[#e8d9c0] rounded-2xl p-6 @md:p-10 shadow-sm relative overflow-hidden\")}>\n <div className=\"absolute top-0 right-0 w-32 h-32 bg-[#e8d9c0]/10 rounded-bl-full -z-0\"></div>\n \n <h3 className=\"font-heading text-2xl text-[#213f31] mb-8 text-center italic\">Il tuo itinerario</h3>\n\n {/* Desktop view */}\n <div className=\"hidden @md:flex items-center justify-between relative w-full px-8 pb-4 z-10\">\n <div className=\"absolute top-8 left-16 right-16 h-[1px] border-b border-dashed border-[#e8d9c0] -translate-y-1/2 z-0\" />\n \n {props.legs.map((leg, i) => {\n const Icon = TRANSPORT_ICONS[leg.transport?.toLowerCase()] || Car;\n return (\n <div key={i} className=\"relative z-10 flex flex-col items-center group w-40\">\n <div 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\">\n <Icon className=\"w-6 h-6 text-[#213f31]\" />\n <div className=\"absolute -bottom-2 w-2 h-2 rounded-full bg-[#b8955e]\"></div>\n </div>\n <div className=\"flex flex-col items-center text-center\">\n <span className=\"text-sm font-heading text-[#213f31] mb-1 text-xl leading-tight\">{leg.from}</span>\n <span className=\"text-[10px] uppercase tracking-widest text-[#213f31]/40 font-bold mb-2\">verso {leg.to}</span>\n <div className=\"flex gap-2 bg-white px-3 py-1.5 rounded-sm border border-[#e8d9c0] shadow-sm\">\n {leg.time && <span className=\"text-[#b8955e] text-[10px] font-bold uppercase tracking-wider\">{leg.time}</span>}\n {leg.time && leg.distance && <span className=\"text-[#e8d9c0]\">|</span>}\n {leg.distance && <span className=\"text-[#b8955e] text-[10px] font-bold uppercase tracking-wider\">{leg.distance}</span>}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n\n {/* Mobile view */}\n <div className=\"flex @md:hidden flex-col gap-8 relative pl-6 py-4 z-10\">\n <div className=\"absolute top-8 bottom-8 left-[39px] w-[1px] border-l border-dashed border-[#e8d9c0] z-0\" />\n \n {props.legs.map((leg, i) => {\n const Icon = TRANSPORT_ICONS[leg.transport?.toLowerCase()] || Car;\n return (\n <div key={i} className=\"relative z-10 flex items-start gap-6\">\n <div className=\"flex items-center justify-center w-12 h-12 rounded-full bg-white border border-[#e8d9c0] shadow-sm shrink-0 relative mt-1\">\n <Icon className=\"w-5 h-5 text-[#213f31]\" />\n <div className=\"absolute -right-1 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-[#b8955e]\"></div>\n </div>\n <div className=\"flex flex-col bg-white p-4 rounded-xl border border-[#e8d9c0] shadow-sm w-full\">\n <div className=\"flex items-center gap-2 mb-2 flex-wrap\">\n <span className=\"text-xl font-heading text-[#213f31]\">{leg.from}</span>\n <span className=\"text-[#e8d9c0] mx-1\">⟶</span>\n <span className=\"text-xl font-heading text-[#213f31]/80\">{leg.to}</span>\n </div>\n <div className=\"flex gap-3\">\n {leg.time && <span className=\"bg-[#faf8f3] border border-[#e8d9c0]/50 text-[#b8955e] text-[9px] uppercase tracking-widest font-bold px-2 py-1 rounded-sm\">{leg.time}</span>}\n {leg.distance && <span className=\"bg-[#faf8f3] border border-[#e8d9c0]/50 text-[#b8955e] text-[9px] uppercase tracking-widest font-bold px-2 py-1 rounded-sm\">{leg.distance}</span>}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const RouteStripSkeleton = (_props: ComponentContext<'RouteStripSkeleton'>) => {\n return (\n <div data-type=\"route-strip-skeleton\" className={\"bg-muted rounded-xl p-6\"}>\n <div className=\"hidden @md:flex justify-between items-center relative w-full pt-4 pb-2 px-4\">\n <div className=\"absolute top-1/2 left-8 right-8 h-[2px] bg-border/40 -translate-y-1/2\" />\n {[1, 2, 3].map(i => (\n <div key={i} className=\"z-10 flex flex-col items-center bg-muted px-4 gap-3\">\n <Skeleton className=\"w-10 h-10 rounded-full\" />\n <div className=\"flex flex-col items-center gap-1\">\n <Skeleton className=\"h-3 w-16\" />\n <Skeleton className=\"h-2 w-12\" />\n <Skeleton className=\"h-4 w-20 rounded\" />\n </div>\n </div>\n ))}\n </div>\n <div className=\"flex @md:hidden flex-col gap-6 relative pl-4 py-2\">\n <div className=\"absolute top-4 bottom-4 left-[27px] w-[2px] bg-border/40\" />\n {[1, 2, 3].map(i => (\n <div key={i} className=\"z-10 flex items-start gap-4\">\n <Skeleton className=\"w-8 h-8 rounded-full shrink-0\" />\n <div className=\"flex flex-col gap-2 pt-1 w-full max-w-[200px]\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-5 w-24 rounded\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { MapPin, Wine, UtensilsCrossed, Sparkles } from 'lucide-react';\n\nconst BADGE_ICONS: Record<string, React.ElementType> = {\n wine: Wine,\n food: UtensilsCrossed,\n experience: Sparkles,\n};\n\nexport const TasteCard = ({ props }: ComponentContext<'TasteCard'>) => {\n const Icon = BADGE_ICONS[props.type?.toLowerCase()] || Sparkles;\n \n return (\n <div data-type=\"taste-card\" className={cn(\"bg-[#faf8f3] rounded-2xl border border-[#e8d9c0] shadow-lg overflow-hidden flex flex-col @md:flex-row group\")}>\n <div className=\"w-full @md:w-[45%] min-h-[250px] relative overflow-hidden\">\n {props.imageSrc ? (\n <img src={props.imageSrc} alt={props.name} className=\"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105\" />\n ) : (\n <div className=\"w-full h-full bg-[#f4ebd9] flex items-center justify-center p-8\">\n <Icon className=\"w-16 h-16 text-[#b8955e]/20\" />\n </div>\n )}\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/50 via-transparent to-transparent\"></div>\n <div 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\">\n <Icon className=\"w-4 h-4 text-[#8b3a3a]\" />\n <span className=\"text-[10px] font-bold uppercase tracking-widest text-[#213f31]\">{props.type}</span>\n </div>\n </div>\n \n <div className=\"w-full @md:w-[55%] p-6 @md:p-8 flex flex-col bg-white\">\n <h3 className=\"font-heading text-3xl text-[#213f31] mb-2 leading-tight\">{props.name}</h3>\n {props.location && (\n <div className=\"flex items-center gap-1.5 text-[10px] uppercase tracking-[0.2em] font-bold text-[#b8955e] mb-5\">\n <MapPin className=\"w-3.5 h-3.5\" />\n <span>{props.location}</span>\n </div>\n )}\n \n <p className=\"text-base text-[#213f31]/80 leading-relaxed mb-6 font-sans\">\n {props.description}\n </p>\n \n {props.highlights && props.highlights.length > 0 && (\n <div className=\"flex flex-wrap gap-2 mb-6\">\n {props.highlights.map((item, i) => (\n <span key={i} 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\">\n {item}\n </span>\n ))}\n </div>\n )}\n \n {props.recommendation && (\n <div 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\">\n <div className=\"absolute right-0 top-0 bottom-0 opacity-5\">\n <UtensilsCrossed className=\"w-16 h-16\" />\n </div>\n <p className=\"text-sm italic text-[#213f31]/90 leading-relaxed relative z-10\">\n <span className=\"font-sans font-bold uppercase tracking-widest text-[9px] text-[#8b3a3a] not-italic block mb-1\">Da non perdere</span>\n {props.recommendation}\n </p>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const TasteCardSkeleton = (_props: ComponentContext<'TasteCardSkeleton'>) => {\n return (\n <div data-type=\"taste-card-skeleton\" className={\"bg-card rounded-xl border border-border shadow-sm flex flex-col @md:flex-row overflow-hidden\"}>\n <Skeleton className=\"w-full @md:w-[40%] min-h-[200px] rounded-none\" />\n <div className=\"w-full @md:w-[60%] p-5 @md:p-6 flex flex-col gap-4\">\n <div>\n <Skeleton className=\"h-6 w-3/4 mb-2\" />\n <Skeleton className=\"h-3 w-1/3\" />\n </div>\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-[90%]\" />\n </div>\n <div className=\"flex gap-2\">\n <Skeleton className=\"h-6 w-20 rounded-full\" />\n <Skeleton className=\"h-6 w-24 rounded-full\" />\n </div>\n <Skeleton className=\"h-10 w-full mt-auto rounded-lg\" />\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Bed, MapPin, Check } from 'lucide-react';\n\nexport const StayCard = ({ props }: ComponentContext<'StayCard'>) => {\n return (\n <div data-type=\"stay-card\" className={cn(\"bg-white rounded-2xl border border-[#e8d9c0] shadow-lg overflow-hidden flex flex-col relative group\")}>\n {props.priceRange && (\n <div 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\">\n {props.priceRange}\n </div>\n )}\n \n <div className=\"w-full aspect-[4/3] relative overflow-hidden\">\n {props.imageSrc ? (\n <img src={props.imageSrc} alt={props.name} className=\"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105\" />\n ) : (\n <div className=\"w-full h-full bg-[#faf8f3] flex items-center justify-center border-b border-[#e8d9c0]\">\n <Bed className=\"w-12 h-12 text-[#b8955e]/20\" />\n </div>\n )}\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/60 to-transparent\"></div>\n </div>\n \n <div className=\"p-6 @md:p-8 flex flex-col flex-grow relative bg-white\">\n <div className=\"absolute -top-6 left-6 right-6 flex items-center justify-between\">\n <span className=\"text-[10px] font-bold uppercase tracking-widest text-white bg-[#b8955e] px-3 py-1.5 rounded-sm shadow-md\">\n {props.type}\n </span>\n {props.stars && (\n <div className=\"flex gap-0.5 text-[#e8d9c0] text-sm tracking-tighter bg-[#213f31] px-2 py-1 rounded-sm shadow-md\">\n {\"★\".repeat(props.stars)}\n </div>\n )}\n </div>\n \n <div className=\"mt-2\">\n <h3 className=\"font-heading text-3xl text-[#213f31] leading-tight mb-2\">{props.name}</h3>\n {props.location && (\n <div className=\"flex items-center gap-1.5 text-[10px] uppercase tracking-widest font-bold text-[#213f31]/50 mb-5\">\n <MapPin className=\"w-3.5 h-3.5\" />\n <span>{props.location}</span>\n </div>\n )}\n </div>\n \n {props.features && props.features.length > 0 && (\n <div className=\"flex flex-col gap-2 mb-6\">\n {props.features.map((feature, i) => (\n <div key={i} className=\"flex items-start gap-3 text-sm text-[#213f31]/80 font-sans\">\n <div className=\"mt-0.5 bg-[#b8955e]/10 p-0.5 rounded-full shrink-0\">\n <Check className=\"w-3 h-3 text-[#b8955e]\" />\n </div>\n <span>{feature}</span>\n </div>\n ))}\n </div>\n )}\n \n {props.whyPerfect && (\n <div className=\"mt-auto bg-[#faf8f3] border border-[#e8d9c0] rounded-xl p-5 shadow-sm\">\n <p className=\"text-sm italic text-[#213f31]/80 leading-relaxed\">\n <span className=\"font-sans font-bold not-italic block text-[9px] uppercase tracking-[0.2em] text-[#b8955e] mb-1.5\">L'opinione dell'esperto</span>\n {props.whyPerfect}\n </p>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const StayCardSkeleton = (_props: ComponentContext<'StayCardSkeleton'>) => {\n return (\n <div data-type=\"stay-card-skeleton\" className={\"bg-card rounded-xl border border-border shadow-sm flex flex-col overflow-hidden\"}>\n <Skeleton className=\"w-full aspect-video rounded-none\" />\n <div className=\"p-5 flex flex-col gap-4\">\n <div className=\"flex gap-2\">\n <Skeleton className=\"h-5 w-16 rounded\" />\n <Skeleton className=\"h-5 w-12 rounded\" />\n </div>\n <div>\n <Skeleton className=\"h-6 w-3/4 mb-2\" />\n <Skeleton className=\"h-3 w-1/3\" />\n </div>\n <div className=\"flex flex-wrap gap-2\">\n <Skeleton className=\"h-6 w-20 rounded\" />\n <Skeleton className=\"h-6 w-24 rounded\" />\n <Skeleton className=\"h-6 w-16 rounded\" />\n </div>\n <Skeleton className=\"h-20 w-full mt-2 rounded-lg\" />\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Button } from '@websolutespa/ask-ui/components/button';\nimport { Check } from 'lucide-react';\n\nexport const TripSummary = ({ props }: ComponentContext<'TripSummary'>) => {\n return (\n <div data-type=\"trip-summary\" className={cn(\"bg-[#213f31] text-[#faf8f3] rounded-2xl px-6 py-16 @md:px-12 relative overflow-hidden shadow-2xl\")}>\n <div className=\"absolute inset-0 z-0 bg-[url('https://www.transparenttextures.com/patterns/cubes.png')] opacity-10 mix-blend-overlay\" />\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/40 to-transparent z-0\" />\n \n <div className=\"relative z-10 flex flex-col items-center max-w-4xl mx-auto space-y-12\">\n <div className=\"text-center space-y-4\">\n <span className=\"text-[10px] uppercase tracking-[0.3em] font-bold text-[#e8d9c0]\">Il Tuo Viaggio in Sintesi</span>\n <h2 className=\"font-heading italic text-4xl @md:text-5xl text-center leading-tight\">{props.title}</h2>\n </div>\n \n {props.stats && props.stats.length > 0 && (\n <div className=\"flex flex-wrap justify-center gap-10 @md:gap-20 w-full py-8 border-y border-white/10\">\n {props.stats.map((stat, i) => (\n <div key={i} className=\"flex flex-col items-center\">\n <span className=\"font-heading text-5xl @md:text-6xl italic text-[#e8d9c0] mb-2 drop-shadow-md\">{stat.value}</span>\n <span className=\"text-[10px] uppercase tracking-[0.2em] font-bold text-white/70\">{stat.label}</span>\n </div>\n ))}\n </div>\n )}\n \n {props.highlights && props.highlights.length > 0 && (\n <div className=\"w-full max-w-3xl\">\n <h3 className=\"text-center font-sans text-xs uppercase tracking-[0.2em] font-bold text-[#e8d9c0] mb-8\">Highlights dell'Esperienza</h3>\n <ul className=\"grid grid-cols-1 @md:grid-cols-2 gap-y-6 gap-x-12\">\n {props.highlights.map((hl, i) => (\n <li key={i} className=\"flex items-start gap-4\">\n <div className=\"mt-1 bg-[#478264] rounded-full p-1 shrink-0 shadow-md border border-[#478264]/20\">\n <Check className=\"w-3 h-3 text-white\" />\n </div>\n <span className=\"text-sm font-medium leading-relaxed text-white/90\">{hl}</span>\n </li>\n ))}\n </ul>\n </div>\n )}\n \n {props.closingMessage && (\n <div className=\"pt-8 w-full max-w-2xl text-center\">\n <p className=\"font-heading italic text-2xl @md:text-3xl text-[#e8d9c0] leading-snug\">\n &ldquo;{props.closingMessage}&rdquo;\n </p>\n </div>\n )}\n \n {props.ctaText && (\n <div className=\"mt-8\">\n <Button 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\">\n {props.ctaText}\n </Button>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const TripSummarySkeleton = (_props: ComponentContext<'TripSummarySkeleton'>) => {\n return (\n <div data-type=\"trip-summary-skeleton\" className={\"bg-primary/90 rounded-xl px-6 py-12 @md:px-12\"}>\n <div className=\"flex flex-col items-center max-w-4xl mx-auto space-y-10\">\n <Skeleton className=\"h-10 w-2/3 max-w-md bg-primary-foreground/20\" />\n \n <div className=\"flex flex-wrap justify-center gap-8 @md:gap-16 w-full\">\n {[1, 2, 3].map((i) => (\n <div key={i} className=\"flex flex-col items-center gap-2\">\n <Skeleton className=\"h-12 w-16 bg-primary-foreground/20\" />\n <Skeleton className=\"h-3 w-20 bg-primary-foreground/20\" />\n </div>\n ))}\n </div>\n \n <div className=\"bg-primary-foreground/10 rounded-2xl p-6 @md:p-8 w-full max-w-2xl\">\n <div className=\"grid grid-cols-1 @md:grid-cols-2 gap-4\">\n {[1, 2, 3, 4].map(i => (\n <div key={i} className=\"flex gap-3\">\n <Skeleton className=\"w-5 h-5 rounded-full bg-primary-foreground/30 shrink-0\" />\n <Skeleton className=\"h-4 w-full bg-primary-foreground/20\" />\n </div>\n ))}\n </div>\n </div>\n \n <Skeleton className=\"h-8 w-3/4 max-w-lg bg-primary-foreground/20\" />\n <Skeleton className=\"h-12 w-48 rounded-full bg-primary-foreground/20 mt-4\" />\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Lightbulb } from 'lucide-react';\n\nexport const InsiderTip = ({ props }: ComponentContext<'InsiderTip'>) => {\n return (\n <div data-type=\"insider-tip\" 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\")}>\n <div className=\"absolute left-0 top-0 bottom-0 w-1.5 bg-[#b8955e]\"></div>\n <div className=\"bg-white p-3 rounded-full shadow-sm shrink-0 h-fit border border-[#e8d9c0]/50\">\n <Lightbulb className=\"w-6 h-6 text-[#b8955e]\" />\n </div>\n <div className=\"flex flex-col space-y-2\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-[9px] uppercase tracking-widest font-bold text-[#b8955e] bg-[#b8955e]/10 px-2 py-1 rounded-sm\">Il consiglio del concierge</span>\n </div>\n {props.title && <h4 className=\"font-heading text-xl text-[#213f31] leading-tight\">{props.title}</h4>}\n <p className=\"font-sans text-sm text-[#213f31]/80 leading-relaxed\">{props.text}</p>\n {props.source && <span className=\"text-[10px] uppercase tracking-widest font-bold text-[#213f31]/40 mt-3 block\">{props.source}</span>}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const InsiderTipSkeleton = (_props: ComponentContext<'InsiderTipSkeleton'>) => {\n return (\n <div data-type=\"insider-tip-skeleton\" className={\"bg-muted/30 border-l-4 border-muted rounded-r-xl px-6 py-5 flex gap-4\"}>\n <Skeleton className=\"w-6 h-6 rounded-full shrink-0\" />\n <div className=\"flex flex-col w-full gap-2 pt-1\">\n <Skeleton className=\"h-5 w-1/3\" />\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-[80%]\" />\n <Skeleton className=\"h-3 w-1/4 mt-2\" />\n </div>\n </div>\n );\n};\n","import { defineRegistry } from '@json-render/react';\nimport React from 'react';\nimport { renderToStaticMarkup } from 'react-dom/server';\nimport { toast } from 'sonner';\nimport { catalog } from './catalog';\n\nimport { Root } from './blocks/root';\nimport { Link } from './blocks/link';\nimport { HeroViaggio } from './blocks/hero-viaggio';\nimport { HeroViaggioSkeleton } from './blocks/hero-viaggio-skeleton';\nimport { ConceptCard } from './blocks/concept-card';\nimport { ConceptCardSkeleton } from './blocks/concept-card-skeleton';\nimport { DayPlan } from './blocks/day-plan';\nimport { DayPlanSkeleton } from './blocks/day-plan-skeleton';\nimport { GolfClubSpotlight } from './blocks/golf-club-spotlight';\nimport { GolfClubSpotlightSkeleton } from './blocks/golf-club-spotlight-skeleton';\nimport { ExperienceGrid } from './blocks/experience-grid';\nimport { ExperienceGridSkeleton } from './blocks/experience-grid-skeleton';\nimport { RouteStrip } from './blocks/route-strip';\nimport { RouteStripSkeleton } from './blocks/route-strip-skeleton';\nimport { TasteCard } from './blocks/taste-card';\nimport { TasteCardSkeleton } from './blocks/taste-card-skeleton';\nimport { StayCard } from './blocks/stay-card';\nimport { StayCardSkeleton } from './blocks/stay-card-skeleton';\nimport { TripSummary } from './blocks/trip-summary';\nimport { TripSummarySkeleton } from './blocks/trip-summary-skeleton';\nimport { InsiderTip } from './blocks/insider-tip';\nimport { InsiderTipSkeleton } from './blocks/insider-tip-skeleton';\n\nexport const { registry, handlers, executeAction } = defineRegistry(catalog, {\n components: {\n Root,\n Link,\n HeroViaggio,\n HeroViaggioSkeleton,\n ConceptCard,\n ConceptCardSkeleton,\n DayPlan,\n DayPlanSkeleton,\n GolfClubSpotlight,\n GolfClubSpotlightSkeleton,\n ExperienceGrid,\n ExperienceGridSkeleton,\n RouteStrip,\n RouteStripSkeleton,\n TasteCard,\n TasteCardSkeleton,\n StayCard,\n StayCardSkeleton,\n TripSummary,\n TripSummarySkeleton,\n InsiderTip,\n InsiderTipSkeleton,\n },\n actions: {\n setState: async () => { /* noop */ },\n pushState: async () => { /* noop */ },\n removeState: async () => { /* noop */ },\n linkClick: async (params) => {\n const href = (params?.href as string) || '#';\n toast.info(`Navigating to: ${href}`);\n },\n },\n});\n\n/**\n * Render a single component to static HTML for layout builder previews.\n */\nexport function renderPreview(\n componentName: string,\n props: Record<string, unknown>,\n): string | null {\n const Component = registry[componentName];\n if (!Component) return null;\n const elementProps = {\n props,\n emit: () => { /* noop */ },\n on: () => ({ shouldPreventDefault: false, emit: () => { /* noop */ }, bound: false }),\n element: { type: componentName, props },\n loading: false,\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return renderToStaticMarkup(React.createElement(Component as any, elementProps));\n}\n"],"mappings":";;;;;;;;;;;AAGA,MAAa,QAAQ,EAAE,eAAyC;AAC9D,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,oEAAoE;EAEjF;EACG,CAAA;;;;ACPV,MAAa,QAAQ,EAAE,YAAsC;AAS3D,QACE,oBAAC,QAAD;EAAQ,aAAU;EAAO,SAAA;EAAQ,SARjC,MAAM,YAAY,YACd,YACA,MAAM,YAAY,cAChB,cACA,MAAM,YAAY,WAChB,gBACA;YAGN,oBAAC,KAAD;GAAG,MAAM,MAAM;GAAM,QAAO;GAAS,KAAI;aACtC,MAAM;GACL,CAAA;EACG,CAAA;;;;ACdb,MAAa,eAAe,EAAE,YAA6C;AACzE,QACE,qBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,gKACD;YAJH,CAMG,MAAM,WACL,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,oBAAC,OAAD;IAAK,KAAK,MAAM;IAAU,KAAI;IAAG,WAAU;IAA+B,CAAA,EAC1E,oBAAC,OAAD,EAAK,WAAU,2GAA4G,CAAA,CACvH;OAEN,oBAAC,OAAD;GAAK,WAAU;aACb,oBAAC,OAAD,EAAK,WAAU,oHAAqH,CAAA;GAChI,CAAA,EAGR,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,OAAD,EAAK,WAAU,kCAAuC,CAAA;IACtD,oBAAC,MAAD;KAAI,WAAU;eACX,MAAM;KACJ,CAAA;IAEJ,MAAM,WACL,oBAAC,KAAD;KAAG,WAAU;eACV,MAAM;KACL,CAAA;IAEN,oBAAC,OAAD,EAAK,WAAU,kCAAuC,CAAA;IAErD,MAAM,SAAS,MAAM,MAAM,SAAS,KACnC,oBAAC,OAAD;KAAK,WAAU;eACZ,MAAM,MAAM,KAAK,MAAM,MACtB,qBAAC,OAAD;MAAa,WAAU;gBAAvB,CACE,oBAAC,QAAD;OAAM,WAAU;iBAAiE,KAAK;OAAa,CAAA,EACnG,oBAAC,QAAD;OAAM,WAAU;iBAA+E,KAAK;OAAa,CAAA,CAC7G;QAHI,EAGJ,CACN;KACE,CAAA;IAEJ;KACF;;;;;AC1CV,MAAa,uBAAuB,WAAoD;AACtF,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WACE;YAGF,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,UAAD,EAAU,WAAU,+EAAgF,CAAA;IACpG,oBAAC,UAAD,EAAU,WAAU,iEAAkE,CAAA;IACtF,qBAAC,OAAD;KAAK,WAAU;eAAf;MACE,oBAAC,UAAD,EAAU,WAAU,uCAAwC,CAAA;MAC5D,oBAAC,UAAD,EAAU,WAAU,uCAAwC,CAAA;MAC5D,oBAAC,UAAD,EAAU,WAAU,uCAAwC,CAAA;MACxD;;IACF;;EACF,CAAA;;;;ACjBV,MAAM,WAA8C;CAClD,MAAM;CACN,MAAM;CACN,KAAK;CACL,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,MAAM;CACN,UAAU;CACV,SAAS;CACV;AAED,MAAa,eAAe,EAAE,YAA6C;AACzE,QACE,qBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,iKAAiK;YAFjL;GAIE,oBAAC,OAAD,EAAK,WAAU,yEAA8E,CAAA;GAE7F,qBAAC,OAAD;IAAK,WAAU;cAAf;KACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,QAAD,EAAM,WAAU,yBAA+B,CAAA,EAC/C,oBAAC,QAAD;OAAM,WAAU;iBAAiE;OAAiB,CAAA,CAC9F;;KACN,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,OAAD,EAAO,WAAU,mEAAoE,CAAA,EACrF,qBAAC,MAAD;OAAI,WAAU;iBAAd;QAAsF;QAC5E,MAAM;QAAQ;QACnB;SACD;;KAEL,MAAM,UAAU,MAAM,OAAO,SAAS,KACrC,oBAAC,OAAD;MAAK,WAAU;gBACZ,MAAM,OAAO,KAAK,OAAO,MAAM;AAE9B,cACE,qBAAC,OAAD;QAAa,WAAU;kBAAvB,CACE,oBAHS,SAAS,MAAM,KAAK,aAAa,KAAK,QAG/C,EAAM,WAAU,8BAA+B,CAAA,EAC/C,oBAAC,QAAD,EAAA,UAAO,MAAM,OAAa,CAAA,CACtB;UAHI,EAGJ;QAER;MACE,CAAA;KAEJ;;GAEN,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,QAAD;KAAM,WAAU;eAAyE;KAAiB,CAAA,EAC1G,oBAAC,KAAD;KAAG,WAAU;eACV,MAAM;KACL,CAAA,CACA;;GACF;;;;;ACrDV,MAAa,uBAAuB,WAAoD;AACtF,QACE,qBAAC,OAAD;EACE,aAAU;EACV,WAAW;YAFb,CAIE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA;IACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA;IACpC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA;IAChC;MACN,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA,EACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA,CAChC;OACN,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,UAAD,EAAU,WAAU,yBAA0B,CAAA,EAC9C,oBAAC,UAAD,EAAU,WAAU,yBAA0B,CAAA,CAC1C;MACF;KACF;;;;;ACrBV,MAAM,qBAAwD;CAC5D,KAAK;CACL,OAAO;CACP,MAAM;CACN,SAAS;CACV;AAED,MAAa,WAAW,EAAE,YAAyC;AACjE,QACE,qBAAC,OAAD;EAAK,aAAU;EAAW,WAAW,GAAG,qGAAqG;YAA7I,CAEE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,OAAD,EAAK,WAAU,oHAAyH,CAAA;IACvI,MAAM,YACL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,OAAD;MAAK,KAAK,MAAM;MAAU,KAAI;MAAG,WAAU;MAA+D,CAAA,EAC1G,oBAAC,OAAD,EAAK,WAAU,mEAAwE,CAAA,CACnF;;IAER,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,QAAD;MAAM,WAAU;gBAAhB,CAA8K,WACpK,MAAM,UACT;SACN,MAAM,YACL,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,QAAD,EAAQ,WAAU,eAAgB,CAAA,EAClC,oBAAC,QAAD,EAAA,UAAO,MAAM,UAAgB,CAAA,CACzB;QAEJ;;IACN,oBAAC,MAAD;KAAI,WAAU;eACX,MAAM;KACJ,CAAA;IACD;MAGN,qBAAC,OAAD;GAAK,WAAU;aAAf;IACG,MAAM,QACL,qBAAC,OAAD;KAAK,WAAU;eAAf;MACE,oBAAC,OAAD,EAAK,WAAU,4EAAiF,CAAA;MAChG,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAAC,MAAD,EAAM,WAAU,0BAA2B,CAAA,EAC3C,oBAAC,MAAD;QAAI,WAAU;kBAAwE;QAAoB,CAAA,CACtG;;MACN,qBAAC,OAAD;OAAK,WAAU;iBAAf;QACE,oBAAC,KAAD;SAAG,WAAU;mBAAwC,MAAM,KAAK;SAAa,CAAA;QAC7E,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,qBAAC,QAAD;UAAM,WAAU;oBAAhB,CACG,MAAM,KAAK,OAAM,SACb;aACP,qBAAC,QAAD;UAAM,WAAU;oBAAhB,CAAkJ,QAC3I,MAAM,KAAK,IACX;YACH;;QACN,oBAAC,KAAD;SAAG,WAAU;mBAAyD,MAAM,KAAK;SAAgB,CAAA;QAChG,MAAM,KAAK,aACV,oBAAC,OAAD;SAAK,WAAU;mBACZ,qBAAC,KAAD;UAAG,WAAU;oBAAb;WAAoE;WAAE,MAAM,KAAK;WAAU;WAAK;;SAC7F,CAAA;QAEJ;;MACF;;IAGP,MAAM,WAAW,MAAM,QAAQ,SAAS,KACvC,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,SAAD,EAAS,WAAU,6BAA8B,CAAA,EACjD,oBAAC,MAAD;OAAI,WAAU;iBAA2E;OAAY,CAAA,CACjG;SACN,oBAAC,OAAD;MAAK,WAAU;gBACZ,MAAM,QAAQ,KAAK,MAAM,MACxB,qBAAC,OAAD;OAAa,WAAU;iBAAvB,CACE,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,QAAD;SAAM,WAAU;mBAAsD,KAAK;SAAY,CAAA,EACtF,KAAK,QACJ,oBAAC,QAAD;SAAM,WAAU;mBACb,KAAK;SACD,CAAA,CAEL;WACL,KAAK,eACJ,oBAAC,KAAD;QAAG,WAAU;kBAA6C,KAAK;QAAgB,CAAA,CAE7E;SAZI,EAYJ,CACN;MACE,CAAA,CACF;;IAGP,MAAM,QACL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,iBAAD,EAAiB,WAAU,6BAA8B,CAAA,EACzD,oBAAC,MAAD;OAAI,WAAU;iBAA2E;OAAU,CAAA,CAC/F;SACN,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,oBAAC,OAAD,EAAK,WAAU,yEAA8E,CAAA;OAC7F,qBAAC,KAAD;QAAG,WAAU;kBAAb,CACG,MAAM,KAAK,MACX,MAAM,KAAK,WAAW,qBAAC,QAAD;SAAM,WAAU;mBAAhB,CAA2F,MAAG,MAAM,KAAK,QAAe;WAC7I;;OACJ,oBAAC,KAAD;QAAG,WAAU;kBAAoD,MAAM,KAAK;QAAgB,CAAA;OAC3F,MAAM,KAAK,QACV,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,QAAD;SAAM,WAAU;mBAAgC;SAAQ,CAAA,EACxD,qBAAC,KAAD;SAAG,WAAU;mBAAb;UAAsD,oBAAC,QAAD;WAAM,WAAU;qBAA+E;WAAmB,CAAA;;UAAE,MAAM,KAAK;UAAS;WAC1L;;OAEJ;QACF;;IAGP,MAAM,QACL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,MAAD,EAAM,WAAU,0BAA2B,CAAA,EAC3C,oBAAC,MAAD;OAAI,WAAU;iBAAwE;OAAiB,CAAA,CACnG;SACN,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,oBAAC,OAAD;QAAK,WAAU;kBACZ,oBAAC,MAAD,EAAM,WAAU,4BAA6B,CAAA;QAC1C,CAAA;OACN,oBAAC,KAAD;QAAG,WAAU;kBAA2D,MAAM,KAAK;QAAS,CAAA;OAC5F,oBAAC,KAAD;QAAG,WAAU;kBAA4E,MAAM,KAAK;QAAgB,CAAA;OACnH,MAAM,KAAK,SAAS,MAAM,KAAK,MAAM,SAAS,KAC7C,oBAAC,OAAD;QAAK,WAAU;kBACZ,MAAM,KAAK,MAAM,KAAK,MAAM,MAC3B,oBAAC,QAAD;SAAc,WAAU;mBACrB;SACI,EAFI,EAEJ,CACP;QACE,CAAA;OAEJ;QACF;;IAGP,MAAM,QACL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,KAAD,EAAK,WAAU,0BAA2B,CAAA,EAC1C,oBAAC,MAAD;OAAI,WAAU;iBAAwE;OAAc,CAAA,CAChG;SACN,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAAC,KAAD;QAAG,WAAU;kBAAwC,MAAM,KAAK;QAAS,CAAA,EACxE,MAAM,KAAK,QACV,oBAAC,QAAD;QAAM,WAAU;kBACb,MAAM,KAAK;QACP,CAAA,CAEL;UACN,oBAAC,KAAD;OAAG,WAAU;iBAAyD,MAAM,KAAK;OAAgB,CAAA,CAC7F;QACF;;IAGP,MAAM,aACL,qBAAC,OAAD;KAAK,WAAU;eAAf;MACE,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAAC,YAAD,EAAY,WAAU,6BAA8B,CAAA,EACpD,oBAAC,MAAD;QAAI,WAAU;kBAA2E;QAAgB,CAAA,CACrG;;MACN,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,qBAAC,OAAD;QAAK,WAAU;kBAAf;SACE,oBAAC,QAAD,EAAA,UAAO,MAAM,UAAU,MAAY,CAAA;SACnC,oBAAC,QAAD;UAAM,WAAU;oBAAsB;UAAQ,CAAA;SAC9C,oBAAC,QAAD,EAAA,UAAO,MAAM,UAAU,IAAU,CAAA;SAC7B;WACN,oBAAC,OAAD;QAAK,WAAU;kBACb,qBAAC,OAAD;SAAK,WAAU;mBAAf,CAGY,oBADO,MAAM,UAAU,aAAa,mBAAmB,MAAM,UAAU,aAAc,mBAAmB,MAAM,UAAU,aAAa,mBAAmB,SACxJ,EAAM,WAAU,6BAA8B,CAAA,EAExD,oBAAC,QAAD;UAAM,WAAU;oBAAoE,MAAM,UAAU;UAAY,CAAA,CAC5G;;QACF,CAAA,CACF;;MACL,MAAM,UAAU,QACf,oBAAC,KAAD;OAAG,WAAU;iBAAuD,MAAM,UAAU;OAAS,CAAA;MAE3F;;IAGP,MAAM,aACL,oBAAC,OAAD;KAAK,WAAU;eACb,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,oBAAC,OAAD,EAAK,WAAU,qDAA0D,CAAA;OACzE,oBAAC,OAAD;QAAK,WAAU;kBACb,oBAAC,WAAD,EAAW,WAAU,0BAA2B,CAAA;QAC5C,CAAA;OACN,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,QAAD;QAAM,WAAU;kBAA4E;QAAqB,CAAA,EACjH,oBAAC,KAAD;QAAG,WAAU;kBACV,MAAM;QACL,CAAA,CACA,EAAA,CAAA;OACF;;KACF,CAAA;IAEJ;KACF;;;;;AC3MV,MAAa,mBAAmB,WAAgD;AAC9E,QACE,qBAAC,OAAD;EAAK,aAAU;EAAoB,WAAW;YAA9C,CACE,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,UAAD,EAAU,WAAU,0BAA2B,CAAA,EAC/C,oBAAC,UAAD,EAAU,WAAU,0BAA2B,CAAA,CAC3C;OACN,oBAAC,UAAD,EAAU,WAAU,2BAA4B,CAAA,CAC5C;MACN,oBAAC,OAAD;GAAK,WAAU;aACZ;IAAC;IAAG;IAAG;IAAE,CAAC,KAAK,MACd,qBAAC,OAAD;IAAa,WAAU;cAAvB;KACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,UAAD,EAAU,WAAU,wBAAyB,CAAA,EAC7C,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA,CAC7B;;KACN,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA;KAClC,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA;KACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA;KAChC;MARI,EAQJ,CACN;GACE,CAAA,CACF;;;;;ACvBV,MAAa,qBAAqB,EAAE,YAAmD;AACrF,QACE,qBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,6GAA6G;YAF7H;GAIE,oBAAC,OAAD;IAAK,WAAU;cAAwI;IAEjJ,CAAA;GAEN,qBAAC,OAAD;IAAK,WAAU;cAAf;KACG,MAAM,WACL,oBAAC,OAAD;MAAK,KAAK,MAAM;MAAU,KAAK,MAAM;MAAM,WAAU;MAA+B,CAAA,GAEpF,oBAAC,OAAD;MAAK,WAAU;gBACb,oBAAC,MAAD,EAAM,WAAU,2BAA4B,CAAA;MACxC,CAAA;KAER,oBAAC,OAAD,EAAK,WAAU,kFAAuF,CAAA;KACtG,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACG,oBAAC,MAAD;OAAI,WAAU;iBAA8B,MAAM;OAAU,CAAA,EAC5D,oBAAC,KAAD;OAAG,WAAU;iBAAqD,MAAM;OAAY,CAAA,CACjF;;KACF;;GAEN,qBAAC,OAAD;IAAK,WAAU;cAAf;KACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,MAAD;OAAI,WAAU;iBAAiE,MAAM;OAAU,CAAA,EAC/F,oBAAC,KAAD;OAAG,WAAU;iBAA8C,MAAM;OAAY,CAAA,CACzE;;KAEL,MAAM,SACL,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACG,MAAM,MAAM,SACX,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD;SAAK,WAAU;mBAAgE,oBAAC,QAAD,EAAQ,WAAU,0BAA2B,CAAA;SAAM,CAAA,EAClI,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,QAAD;UAAM,WAAU;oBAAmE;UAAY,CAAA,EAC/F,oBAAC,QAAD;UAAM,WAAU;oBAAoC,MAAM,MAAM;UAAa,CAAA,CACzE;WACF;;OAEP,MAAM,MAAM,OACX,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD;SAAK,WAAU;mBAAgE,oBAAC,QAAD,EAAQ,WAAU,0BAA2B,CAAA;SAAM,CAAA,EAClI,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,QAAD;UAAM,WAAU;oBAAmE;UAAU,CAAA,EAC7F,oBAAC,QAAD;UAAM,WAAU;oBAAoC,MAAM,MAAM;UAAW,CAAA,CACvE;WACF;;OAEP,MAAM,MAAM,YACX,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD;SAAK,WAAU;mBAAgE,oBAAC,OAAD,EAAO,WAAU,0BAA2B,CAAA;SAAM,CAAA,EACjI,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,QAAD;UAAM,WAAU;oBAAmE;UAAgB,CAAA,EACnG,oBAAC,QAAD;UAAM,WAAU;oBAAoC,MAAM,MAAM;UAAgB,CAAA,CAC5E;WACF;;OAEP,MAAM,MAAM,WACX,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD;SAAK,WAAU;mBAAgE,oBAAC,QAAD,EAAQ,WAAU,0BAA2B,CAAA;SAAM,CAAA,EAClI,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,QAAD;UAAM,WAAU;oBAAmE;UAAe,CAAA,EAClG,oBAAC,QAAD;UAAM,WAAU;oBAAoC,MAAM,MAAM;UAAe,CAAA,CAC3E;WACF;;OAEP,MAAM,MAAM,cACX,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD;SAAK,WAAU;mBAAgE,oBAAC,OAAD,EAAO,WAAU,0BAA2B,CAAA;SAAM,CAAA,EACjI,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,QAAD;UAAM,WAAU;oBAAmE;UAAiB,CAAA,EACpG,oBAAC,QAAD;UAAM,WAAU;oBAAoC,MAAM,MAAM;UAAkB,CAAA,CAC9E;WACF;;OAEP,MAAM,MAAM,WACX,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD;SAAK,WAAU;mBAAgE,oBAAC,UAAD,EAAU,WAAU,0BAA2B,CAAA;SAAM,CAAA,EACpI,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,QAAD;UAAM,WAAU;oBAAmE;UAAc,CAAA,EACjG,oBAAC,QAAD;UAAM,WAAU;oBAAoC,MAAM,MAAM;UAAe,CAAA,CAC3E;WACF;;OAEJ;;KAGR,oBAAC,KAAD;MAAG,WAAU;gBACV,MAAM;MACL,CAAA;KAEH,MAAM,eAAe,MAAM,YAAY,SAAS,KAC/C,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,MAAD;OAAI,WAAU;iBAAyE;OAAiB,CAAA,EACxG,oBAAC,MAAD;OAAI,WAAU;iBACX,MAAM,YAAY,KAAK,MAAM,MAC5B,qBAAC,MAAD;QAAY,WAAU;kBAAtB,CACE,oBAAC,QAAD,EAAM,WAAU,yCAA0C,CAAA,EACzD,KACE;UAHI,EAGJ,CACL;OACC,CAAA,CACD;;KAGR,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACG,MAAM,WACL,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,QAAD,EAAQ,WAAU,0BAA2B,CAAA,EAC7C,oBAAC,QAAD,EAAA,UAAO,MAAM,SAAe,CAAA,CACxB;;OAEP,MAAM,SACL,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD,EAAO,WAAU,0BAA2B,CAAA,EAC5C,oBAAC,QAAD,EAAA,UAAO,MAAM,OAAa,CAAA,CACtB;;OAEP,MAAM,SACL,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,MAAD,EAAM,WAAU,0BAA2B,CAAA,EAC3C,oBAAC,QAAD,EAAA,UAAO,MAAM,OAAa,CAAA,CACtB;;OAEJ;;KACF;;GACF;;;;;ACjIV,MAAa,6BAA6B,WAA0D;AAClG,QACE,qBAAC,OAAD;EACE,aAAU;EACV,WAAW;YAFb,CAIE,oBAAC,UAAD,EAAU,WAAU,+CAAgD,CAAA,EACpE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,UAAD,EAAU,WAAU,kBAAmB,CAAA,EACvC,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA,CAC9B,EAAA,CAAA;IACN,oBAAC,OAAD;KAAK,WAAU;eACZ;MAAC;MAAE;MAAE;MAAE;MAAE;MAAE;MAAE,CAAC,KAAI,MAAK,oBAAC,UAAD,EAAkB,WAAU,0BAA2B,EAAxC,EAAwC,CAAC;KAC5E,CAAA;IACN,qBAAC,OAAD;KAAK,WAAU;eAAf;MACE,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA;MACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA;MACpC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA;MAChC;;IACN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA,EACjC,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA,CAC7B;;IACF;KACF;;;;;ACzBV,MAAa,kBAAkB,EAAE,OAAO,eAAmD;AACzF,QACE,qBAAC,OAAD;EAAK,aAAU;EAAkB,WAAW,GAAG,+BAA+B;YAA9E,CACG,MAAM,SACL,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,oBAAC,QAAD,EAAM,WAAU,8BAAoC,CAAA,EACpD,oBAAC,MAAD;IAAI,WAAU;cAAwE,MAAM;IAAW,CAAA,CACnG;MAGP,MAAM,eACL,oBAAC,OAAD;GAAK,WAAU;aACZ,MAAM,YAAY,KAAK,KAAK,MAAM;AACjC,WACE,qBAAC,OAAD;KAAa,WAAU;eAAvB;MACE,oBAAC,OAAD,EAAK,WAAU,mHAAwH,CAAA;MACvI,oBAAC,OAAD;OAAK,WAAU;iBACb,oBAAC,QAAD;QAAM,WAAU;kBACb,IAAI;QACA,CAAA;OACH,CAAA;MACN,oBAAC,MAAD;OAAI,WAAU;iBAAwG,IAAI;OAAU,CAAA;MACnI,IAAI,YACH,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAAC,QAAD,EAAQ,WAAU,eAAgB,CAAA,EAClC,oBAAC,QAAD,EAAA,UAAO,IAAI,UAAgB,CAAA,CACvB;;MAER,oBAAC,KAAD;OAAG,WAAU;iBACV,IAAI;OACH,CAAA;MACH,IAAI,aACH,oBAAC,OAAD;OAAK,WAAU;iBACb,qBAAC,KAAD;QAAG,WAAU;kBAAb;SAAwE;SACpE,IAAI;SAAU;SACd;;OACA,CAAA;MAEJ;OAxBI,EAwBJ;KAER;GACE,CAAA,CAEJ;;;;;AC3CV,MAAa,0BAA0B,WAAuD;AAC5F,QACE,qBAAC,OAAD;EAAK,aAAU;EAA2B,WAAW;YAArD,CACE,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA,EACjC,oBAAC,OAAD;GAAK,WAAU;aACZ;IAAC;IAAG;IAAG;IAAE,CAAC,KAAK,MACd,qBAAC,OAAD;IAAa,WAAU;cAAvB;KACE,oBAAC,UAAD,EAAU,WAAU,uBAAwB,CAAA;KAC5C,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA;KAClC,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA;KAClC,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA,EACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA,CAChC;;KACF;MARI,EAQJ,CACN;GACE,CAAA,CACF;;;;;ACjBV,MAAM,kBAAqD;CACzD,KAAK;CACL,OAAO;CACP,KAAK;CACL,MAAM;CACN,MAAM;CACN,QAAQ;CACT;AAED,MAAa,cAAc,EAAE,YAA4C;AACvE,KAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,WAAW,EAAG,QAAO;AAEnD,QACE,qBAAC,OAAD;EAAK,aAAU;EAAc,WAAW,GAAG,mGAAmG;YAA9I;GACE,oBAAC,OAAD,EAAK,WAAU,yEAA8E,CAAA;GAE7F,oBAAC,MAAD;IAAI,WAAU;cAA+D;IAAsB,CAAA;GAGnG,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,OAAD,EAAK,WAAU,wGAAyG,CAAA,EAEvH,MAAM,KAAK,KAAK,KAAK,MAAM;AAE1B,YACE,qBAAC,OAAD;MAAa,WAAU;gBAAvB,CACE,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAJO,gBAAgB,IAAI,WAAW,aAAa,KAAK,KAIxD,EAAM,WAAU,0BAA2B,CAAA,EAC3C,oBAAC,OAAD,EAAK,WAAU,wDAA6D,CAAA,CACxE;UACN,qBAAC,OAAD;OAAK,WAAU;iBAAf;QACE,oBAAC,QAAD;SAAM,WAAU;mBAAkE,IAAI;SAAY,CAAA;QAClG,qBAAC,QAAD;SAAM,WAAU;mBAAhB,CAAyF,UAAO,IAAI,GAAU;;QAC9G,qBAAC,OAAD;SAAK,WAAU;mBAAf;UACG,IAAI,QAAQ,oBAAC,QAAD;WAAM,WAAU;qBAAiE,IAAI;WAAY,CAAA;UAC7G,IAAI,QAAQ,IAAI,YAAY,oBAAC,QAAD;WAAM,WAAU;qBAAiB;WAAQ,CAAA;UACrE,IAAI,YAAY,oBAAC,QAAD;WAAM,WAAU;qBAAiE,IAAI;WAAgB,CAAA;UAClH;;QACF;SACF;QAdI,EAcJ;MAER,CACE;;GAGN,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,OAAD,EAAK,WAAU,2FAA4F,CAAA,EAE1G,MAAM,KAAK,KAAK,KAAK,MAAM;AAE1B,YACE,qBAAC,OAAD;MAAa,WAAU;gBAAvB,CACE,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAJO,gBAAgB,IAAI,WAAW,aAAa,KAAK,KAIxD,EAAM,WAAU,0BAA2B,CAAA,EAC3C,oBAAC,OAAD,EAAK,WAAU,gFAAqF,CAAA,CAChG;UACN,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,qBAAC,OAAD;QAAK,WAAU;kBAAf;SACE,oBAAC,QAAD;UAAM,WAAU;oBAAuC,IAAI;UAAY,CAAA;SACvE,oBAAC,QAAD;UAAM,WAAU;oBAAsB;UAAQ,CAAA;SAC9C,oBAAC,QAAD;UAAM,WAAU;oBAA0C,IAAI;UAAU,CAAA;SACpE;WACN,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACG,IAAI,QAAQ,oBAAC,QAAD;SAAM,WAAU;mBAA8H,IAAI;SAAY,CAAA,EAC1K,IAAI,YAAY,oBAAC,QAAD;SAAM,WAAU;mBAA8H,IAAI;SAAgB,CAAA,CAC/K;UACF;SACF;QAhBI,EAgBJ;MAER,CACE;;GACF;;;;;ACvEV,MAAa,sBAAsB,WAAmD;AACpF,QACE,qBAAC,OAAD;EAAK,aAAU;EAAuB,WAAW;YAAjD,CACE,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,oBAAC,OAAD,EAAK,WAAU,yEAA0E,CAAA,EACxF;IAAC;IAAG;IAAG;IAAE,CAAC,KAAI,MACb,qBAAC,OAAD;IAAa,WAAU;cAAvB,CACE,oBAAC,UAAD,EAAU,WAAU,0BAA2B,CAAA,EAC/C,qBAAC,OAAD;KAAK,WAAU;eAAf;MACE,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA;MACjC,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA;MACjC,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA;MACrC;OACF;MAPI,EAOJ,CACN,CACE;MACN,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,oBAAC,OAAD,EAAK,WAAU,4DAA6D,CAAA,EAC3E;IAAC;IAAG;IAAG;IAAE,CAAC,KAAI,MACb,qBAAC,OAAD;IAAa,WAAU;cAAvB,CACE,oBAAC,UAAD,EAAU,WAAU,iCAAkC,CAAA,EACtD,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA,EACnC,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA,CACrC;OACF;MANI,EAMJ,CACN,CACE;KACF;;;;;AC5BV,MAAM,cAAiD;CACrD,MAAM;CACN,MAAM;CACN,YAAY;CACb;AAED,MAAa,aAAa,EAAE,YAA2C;CACrE,MAAM,OAAO,YAAY,MAAM,MAAM,aAAa,KAAK;AAEvD,QACE,qBAAC,OAAD;EAAK,aAAU;EAAa,WAAW,GAAG,8GAA8G;YAAxJ,CACE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACG,MAAM,WACL,oBAAC,OAAD;KAAK,KAAK,MAAM;KAAU,KAAK,MAAM;KAAM,WAAU;KAAuF,CAAA,GAE5I,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,MAAD,EAAM,WAAU,+BAAgC,CAAA;KAC5C,CAAA;IAER,oBAAC,OAAD,EAAK,WAAU,kFAAuF,CAAA;IACtG,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,MAAD,EAAM,WAAU,0BAA2B,CAAA,EAC3C,oBAAC,QAAD;MAAM,WAAU;gBAAkE,MAAM;MAAY,CAAA,CAChG;;IACF;MAEN,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,MAAD;KAAI,WAAU;eAA2D,MAAM;KAAU,CAAA;IACxF,MAAM,YACL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,QAAD,EAAQ,WAAU,eAAgB,CAAA,EAClC,oBAAC,QAAD,EAAA,UAAO,MAAM,UAAgB,CAAA,CACzB;;IAGR,oBAAC,KAAD;KAAG,WAAU;eACV,MAAM;KACL,CAAA;IAEH,MAAM,cAAc,MAAM,WAAW,SAAS,KAC7C,oBAAC,OAAD;KAAK,WAAU;eACZ,MAAM,WAAW,KAAK,MAAM,MAC3B,oBAAC,QAAD;MAAc,WAAU;gBACrB;MACI,EAFI,EAEJ,CACP;KACE,CAAA;IAGP,MAAM,kBACL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,OAAD;MAAK,WAAU;gBACb,oBAAC,iBAAD,EAAiB,WAAU,aAAc,CAAA;MACrC,CAAA,EACN,qBAAC,KAAD;MAAG,WAAU;gBAAb,CACE,oBAAC,QAAD;OAAM,WAAU;iBAAgG;OAAqB,CAAA,EACpI,MAAM,eACL;QACA;;IAEJ;KACF;;;;;AC7DV,MAAa,qBAAqB,WAAkD;AAClF,QACE,qBAAC,OAAD;EAAK,aAAU;EAAsB,WAAW;YAAhD,CACE,oBAAC,UAAD,EAAU,WAAU,iDAAkD,CAAA,EACtE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,UAAD,EAAU,WAAU,kBAAmB,CAAA,EACvC,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA,CAC9B,EAAA,CAAA;IACN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA,EACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA,CAChC;;IACN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,UAAD,EAAU,WAAU,yBAA0B,CAAA,EAC9C,oBAAC,UAAD,EAAU,WAAU,yBAA0B,CAAA,CAC1C;;IACN,oBAAC,UAAD,EAAU,WAAU,kCAAmC,CAAA;IACnD;KACF;;;;;ACnBV,MAAa,YAAY,EAAE,YAA0C;AACnE,QACE,qBAAC,OAAD;EAAK,aAAU;EAAY,WAAW,GAAG,sGAAsG;YAA/I;GACG,MAAM,cACL,oBAAC,OAAD;IAAK,WAAU;cACZ,MAAM;IACH,CAAA;GAGR,qBAAC,OAAD;IAAK,WAAU;cAAf,CACG,MAAM,WACL,oBAAC,OAAD;KAAK,KAAK,MAAM;KAAU,KAAK,MAAM;KAAM,WAAU;KAAuF,CAAA,GAE5I,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,KAAD,EAAK,WAAU,+BAAgC,CAAA;KAC3C,CAAA,EAER,oBAAC,OAAD,EAAK,WAAU,kEAAuE,CAAA,CAClF;;GAEN,qBAAC,OAAD;IAAK,WAAU;cAAf;KACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACG,oBAAC,QAAD;OAAM,WAAU;iBACb,MAAM;OACF,CAAA,EACN,MAAM,SACL,oBAAC,OAAD;OAAK,WAAU;iBACZ,IAAI,OAAO,MAAM,MAAM;OACpB,CAAA,CAEL;;KAEN,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,MAAD;OAAI,WAAU;iBAA2D,MAAM;OAAU,CAAA,EACxF,MAAM,YACL,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAAC,QAAD,EAAQ,WAAU,eAAgB,CAAA,EAClC,oBAAC,QAAD,EAAA,UAAO,MAAM,UAAgB,CAAA,CACzB;SAEJ;;KAEL,MAAM,YAAY,MAAM,SAAS,SAAS,KACzC,oBAAC,OAAD;MAAK,WAAU;gBACZ,MAAM,SAAS,KAAK,SAAS,MAC5B,qBAAC,OAAD;OAAa,WAAU;iBAAvB,CACE,oBAAC,OAAD;QAAK,WAAU;kBACb,oBAAC,OAAD,EAAO,WAAU,0BAA2B,CAAA;QACxC,CAAA,EACN,oBAAC,QAAD,EAAA,UAAO,SAAe,CAAA,CAClB;SALI,EAKJ,CACN;MACE,CAAA;KAGP,MAAM,cACL,oBAAC,OAAD;MAAK,WAAU;gBACb,qBAAC,KAAD;OAAG,WAAU;iBAAb,CACE,oBAAC,QAAD;QAAM,WAAU;kBAAmG;QAA8B,CAAA,EAChJ,MAAM,WACL;;MACA,CAAA;KAEJ;;GACF;;;;;AChEV,MAAa,oBAAoB,WAAiD;AAChF,QACE,qBAAC,OAAD;EAAK,aAAU;EAAqB,WAAW;YAA/C,CACE,oBAAC,UAAD,EAAU,WAAU,oCAAqC,CAAA,EACzD,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA,EACzC,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA,CACrC;;IACN,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,UAAD,EAAU,WAAU,kBAAmB,CAAA,EACvC,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA,CAC9B,EAAA,CAAA;IACN,qBAAC,OAAD;KAAK,WAAU;eAAf;MACE,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA;MACzC,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA;MACzC,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA;MACrC;;IACN,oBAAC,UAAD,EAAU,WAAU,+BAAgC,CAAA;IAChD;KACF;;;;;ACnBV,MAAa,eAAe,EAAE,YAA6C;AACzE,QACE,qBAAC,OAAD;EAAK,aAAU;EAAe,WAAW,GAAG,mGAAmG;YAA/I;GACE,oBAAC,OAAD,EAAK,WAAU,wHAAyH,CAAA;GACxI,oBAAC,OAAD,EAAK,WAAU,sEAAuE,CAAA;GAEtF,qBAAC,OAAD;IAAK,WAAU;cAAf;KACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,QAAD;OAAM,WAAU;iBAAkE;OAAgC,CAAA,EAClH,oBAAC,MAAD;OAAI,WAAU;iBAAuE,MAAM;OAAW,CAAA,CAClG;;KAEL,MAAM,SAAS,MAAM,MAAM,SAAS,KACnC,oBAAC,OAAD;MAAK,WAAU;gBACZ,MAAM,MAAM,KAAK,MAAM,MACtB,qBAAC,OAAD;OAAa,WAAU;iBAAvB,CACE,oBAAC,QAAD;QAAM,WAAU;kBAAgF,KAAK;QAAa,CAAA,EAClH,oBAAC,QAAD;QAAM,WAAU;kBAAkE,KAAK;QAAa,CAAA,CAChG;SAHI,EAGJ,CACN;MACE,CAAA;KAGP,MAAM,cAAc,MAAM,WAAW,SAAS,KAC7C,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,MAAD;OAAI,WAAU;iBAAyF;OAA+B,CAAA,EACtI,oBAAC,MAAD;OAAI,WAAU;iBACX,MAAM,WAAW,KAAK,IAAI,MACzB,qBAAC,MAAD;QAAY,WAAU;kBAAtB,CACE,oBAAC,OAAD;SAAK,WAAU;mBACb,oBAAC,OAAD,EAAO,WAAU,sBAAuB,CAAA;SACpC,CAAA,EACN,oBAAC,QAAD;SAAM,WAAU;mBAAqD;SAAU,CAAA,CAC5E;UALI,EAKJ,CACL;OACC,CAAA,CACD;;KAGP,MAAM,kBACL,oBAAC,OAAD;MAAK,WAAU;gBACb,qBAAC,KAAD;OAAG,WAAU;iBAAb;QAAqF;QAC3E,MAAM;QAAe;QAC3B;;MACA,CAAA;KAGP,MAAM,WACL,oBAAC,OAAD;MAAK,WAAU;gBACb,oBAAC,QAAD;OAAQ,WAAU;iBACf,MAAM;OACA,CAAA;MACL,CAAA;KAEJ;;GACF;;;;;ACxDV,MAAa,uBAAuB,WAAoD;AACtF,QACE,oBAAC,OAAD;EAAK,aAAU;EAAwB,WAAW;YAChD,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,UAAD,EAAU,WAAU,gDAAiD,CAAA;IAErE,oBAAC,OAAD;KAAK,WAAU;eACZ;MAAC;MAAG;MAAG;MAAE,CAAC,KAAK,MACd,qBAAC,OAAD;MAAa,WAAU;gBAAvB,CACE,oBAAC,UAAD,EAAU,WAAU,sCAAuC,CAAA,EAC3D,oBAAC,UAAD,EAAU,WAAU,qCAAsC,CAAA,CACtD;QAHI,EAGJ,CACN;KACE,CAAA;IAEN,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,OAAD;MAAK,WAAU;gBACZ;OAAC;OAAG;OAAG;OAAG;OAAE,CAAC,KAAI,MAChB,qBAAC,OAAD;OAAa,WAAU;iBAAvB,CACE,oBAAC,UAAD,EAAU,WAAU,0DAA2D,CAAA,EAC/E,oBAAC,UAAD,EAAU,WAAU,uCAAwC,CAAA,CACxD;SAHI,EAGJ,CACN;MACE,CAAA;KACF,CAAA;IAEN,oBAAC,UAAD,EAAU,WAAU,+CAAgD,CAAA;IACpE,oBAAC,UAAD,EAAU,WAAU,wDAAyD,CAAA;IACzE;;EACF,CAAA;;;;AC7BV,MAAa,cAAc,EAAE,YAA4C;AACvE,QACE,qBAAC,OAAD;EAAK,aAAU;EAAc,WAAW,GAAG,wJAAwJ;YAAnM;GACE,oBAAC,OAAD,EAAK,WAAU,qDAA0D,CAAA;GACzE,oBAAC,OAAD;IAAK,WAAU;cACb,oBAAC,WAAD,EAAW,WAAU,0BAA2B,CAAA;IAC5C,CAAA;GACN,qBAAC,OAAD;IAAK,WAAU;cAAf;KACE,oBAAC,OAAD;MAAK,WAAU;gBACZ,oBAAC,QAAD;OAAM,WAAU;iBAAqG;OAAiC,CAAA;MACnJ,CAAA;KACL,MAAM,SAAS,oBAAC,MAAD;MAAI,WAAU;gBAAqD,MAAM;MAAW,CAAA;KACpG,oBAAC,KAAD;MAAG,WAAU;gBAAuD,MAAM;MAAS,CAAA;KAClF,MAAM,UAAU,oBAAC,QAAD;MAAM,WAAU;gBAAgF,MAAM;MAAc,CAAA;KACjI;;GACF;;;;;ACfV,MAAa,sBAAsB,WAAmD;AACpF,QACE,qBAAC,OAAD;EAAK,aAAU;EAAuB,WAAW;YAAjD,CACE,oBAAC,UAAD,EAAU,WAAU,iCAAkC,CAAA,EACtD,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA;IAClC,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA;IACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA;IACpC,oBAAC,UAAD,EAAU,WAAU,kBAAmB,CAAA;IACnC;KACF;;;;;ACeV,MAAa,EAAE,UAAU,UAAU,kBAAkB,eAAe,SAAS;CAC3E,YAAY;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;CACD,SAAS;EACP,UAAU,YAAY;EACtB,WAAW,YAAY;EACvB,aAAa,YAAY;EACzB,WAAW,OAAO,WAAW;GAC3B,MAAM,OAAQ,QAAQ,QAAmB;AACzC,SAAM,KAAK,kBAAkB,OAAO;;EAEvC;CACF,CAAC;;;;AAKF,SAAgB,cACd,eACA,OACe;CACf,MAAM,YAAY,SAAS;AAC3B,KAAI,CAAC,UAAW,QAAO;CACvB,MAAM,eAAe;EACnB;EACA,YAAY;EACZ,WAAW;GAAE,sBAAsB;GAAO,YAAY;GAAgB,OAAO;GAAO;EACpF,SAAS;GAAE,MAAM;GAAe;GAAO;EACvC,SAAS;EACV;AAED,QAAO,qBAAqB,MAAM,cAAc,WAAkB,aAAa,CAAC"}
1
+ {"version":3,"file":"registry-DEzfV8_2.mjs","names":[],"sources":["../src/blocks/root.tsx","../src/blocks/link.tsx","../src/blocks/hero-viaggio.tsx","../src/blocks/hero-viaggio-skeleton.tsx","../src/blocks/concept-card.tsx","../src/blocks/concept-card-skeleton.tsx","../src/blocks/day-plan.tsx","../src/blocks/day-plan-skeleton.tsx","../src/blocks/golf-club-spotlight.tsx","../src/blocks/golf-club-spotlight-skeleton.tsx","../src/blocks/experience-grid.tsx","../src/blocks/experience-grid-skeleton.tsx","../src/blocks/route-strip.tsx","../src/blocks/route-strip-skeleton.tsx","../src/blocks/taste-card.tsx","../src/blocks/taste-card-skeleton.tsx","../src/blocks/stay-card.tsx","../src/blocks/stay-card-skeleton.tsx","../src/blocks/trip-summary.tsx","../src/blocks/trip-summary-skeleton.tsx","../src/blocks/insider-tip.tsx","../src/blocks/insider-tip-skeleton.tsx","../src/registry.ts"],"sourcesContent":["import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\n\nexport const Root = ({ children }: ComponentContext<'Root'>) => {\n return (\n <div\n data-type=\"root\"\n className={cn(\"flex flex-col py-8 gap-8 @md:gap-16 bg-background text-foreground\")}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { Button } from '@websolutespa/ask-ui/components/button';\n\nexport const Link = ({ props }: ComponentContext<'Link'>) => {\n const variant =\n props.variant === 'outline'\n ? 'outline'\n : props.variant === 'secondary'\n ? 'secondary'\n : props.variant === 'danger'\n ? 'destructive'\n : 'default';\n return (\n <Button data-type=\"link\" asChild variant={variant}>\n <a href={props.href} target=\"_blank\" rel=\"noopener noreferrer\">\n {props.label}\n </a>\n </Button>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\n\nexport const HeroViaggio = ({ props }: ComponentContext<'HeroViaggio'>) => {\n return (\n <div\n data-type=\"hero-viaggio\"\n className={cn(\n \"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\"\n )}\n >\n {props.imageSrc ? (\n <div className=\"absolute inset-0 z-0\">\n <img src={props.imageSrc} alt=\"\" className=\"w-full h-full object-cover\" />\n <div className=\"absolute inset-0 bg-gradient-to-b from-[#213f31]/90 via-[#213f31]/70 to-[#213f31]/90 mix-blend-multiply\" />\n </div>\n ) : (\n <div className=\"absolute inset-0 z-0 bg-gradient-to-br from-[#213f31] to-[#12241b]\">\n <div className=\"absolute inset-0 bg-[url('https://www.transparenttextures.com/patterns/cubes.png')] opacity-20 mix-blend-overlay\" />\n </div>\n )}\n \n <div className=\"relative z-10 flex flex-col items-center text-center max-w-4xl mx-auto space-y-8\">\n <div className=\"w-16 h-px bg-[#e8d9c0]/50 mb-4\"></div>\n <h1 className=\"font-heading text-[40px] @md:text-[64px] @lg:text-[80px] italic leading-[1.1] drop-shadow-lg text-[#faf8f3]\">\n {props.title}\n </h1>\n \n {props.tagline && (\n <p className=\"font-sans font-light uppercase tracking-[0.2em] text-[#e8d9c0] text-sm @md:text-base max-w-2xl drop-shadow\">\n {props.tagline}\n </p>\n )}\n <div className=\"w-16 h-px bg-[#e8d9c0]/50 mt-4\"></div>\n \n {props.stats && props.stats.length > 0 && (\n <div className=\"flex flex-wrap items-center justify-center gap-6 pt-8\">\n {props.stats.map((stat, i) => (\n <div key={i} 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]\">\n <span className=\"font-heading italic text-3xl @md:text-4xl text-[#e8d9c0] mb-1\">{stat.value}</span>\n <span className=\"font-sans text-[10px] uppercase tracking-widest text-white/70 font-semibold\">{stat.label}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const HeroViaggioSkeleton = (_props: ComponentContext<'HeroViaggioSkeleton'>) => {\n return (\n <div\n data-type=\"hero-viaggio-skeleton\"\n className={\n \"flex flex-col items-center justify-center py-16 @md:py-24 px-6 bg-primary/10 rounded-xl overflow-hidden\"\n }\n >\n <div className=\"flex flex-col items-center w-full max-w-4xl space-y-6\">\n <Skeleton className=\"h-[40px] @md:h-[64px] @lg:h-[80px] w-3/4 max-w-2xl bg-primary/20 rounded-lg\" />\n <Skeleton className=\"h-[24px] @md:h-[28px] w-2/3 max-w-xl bg-primary/20 rounded-lg\" />\n <div className=\"flex gap-3 pt-6\">\n <Skeleton className=\"h-9 w-24 bg-primary/20 rounded-full\" />\n <Skeleton className=\"h-9 w-32 bg-primary/20 rounded-full\" />\n <Skeleton className=\"h-9 w-28 bg-primary/20 rounded-full\" />\n </div>\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Circle, Wine, Palette, TreePine, Users, Mountain, UtensilsCrossed, Heart, Landmark, Quote } from 'lucide-react';\n\nconst ICON_MAP: Record<string, React.ElementType> = {\n golf: Circle,\n wine: Wine,\n art: Palette,\n nature: TreePine,\n family: Users,\n outdoor: Mountain,\n food: UtensilsCrossed,\n wellness: Heart,\n culture: Landmark,\n};\n\nexport const ConceptCard = ({ props }: ComponentContext<'ConceptCard'>) => {\n return (\n <div\n data-type=\"concept-card\"\n 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\")}\n >\n <div className=\"absolute top-0 right-0 w-32 h-32 bg-[#e8d9c0]/20 rounded-bl-full -z-0\"></div>\n \n <div className=\"flex-1 relative z-10 flex flex-col justify-center space-y-6 @md:border-r border-[#e8d9c0] @md:pr-10\">\n <div className=\"flex items-center gap-2 mb-2\">\n <span className=\"w-8 h-px bg-[#478264]\"></span>\n <span className=\"text-[10px] uppercase tracking-widest font-bold text-[#478264]\">Il Concept</span>\n </div>\n <div className=\"relative\">\n <Quote className=\"w-8 h-8 text-[#e8d9c0] absolute -top-4 -left-2 -z-10 opacity-50\" />\n <h3 className=\"font-heading italic text-[#213f31] text-2xl @md:text-3xl leading-snug\">\n &ldquo;{props.concept}&rdquo;\n </h3>\n </div>\n \n {props.themes && props.themes.length > 0 && (\n <div className=\"flex flex-wrap gap-2 pt-2\">\n {props.themes.map((theme, i) => {\n const Icon = ICON_MAP[theme.icon.toLowerCase()] || Circle;\n return (\n <div key={i} 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\">\n <Icon className=\"w-3.5 h-3.5 text-[#478264]\" />\n <span>{theme.label}</span>\n </div>\n );\n })}\n </div>\n )}\n </div>\n\n <div className=\"flex-1 relative z-10 flex flex-col justify-center\">\n <span className=\"text-[10px] uppercase tracking-widest font-bold text-[#213f31]/40 mb-3\">La Visione</span>\n <p className=\"text-[#213f31]/80 font-sans leading-relaxed text-sm @md:text-base\">\n {props.debrief}\n </p>\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const ConceptCardSkeleton = (_props: ComponentContext<'ConceptCardSkeleton'>) => {\n return (\n <div\n data-type=\"concept-card-skeleton\"\n 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\"}\n >\n <div className=\"flex-1 border-l-4 border-muted pl-6 space-y-2\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-[90%]\" />\n <Skeleton className=\"h-4 w-[80%]\" />\n </div>\n <div className=\"flex-1 space-y-6\">\n <div className=\"space-y-2\">\n <Skeleton className=\"h-6 w-full\" />\n <Skeleton className=\"h-6 w-[70%]\" />\n </div>\n <div className=\"flex gap-2\">\n <Skeleton className=\"h-7 w-20 rounded-full\" />\n <Skeleton className=\"h-7 w-24 rounded-full\" />\n </div>\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Flag, Compass, UtensilsCrossed, Wine, Bed, Car, Train, Ship, Lightbulb, MapPin, Navigation } from 'lucide-react';\n\nconst LOGISTICS_ICON_MAP: Record<string, React.ElementType> = {\n car: Car,\n train: Train,\n ship: Ship,\n default: Navigation\n};\n\nexport const DayPlan = ({ props }: ComponentContext<'DayPlan'>) => {\n return (\n <div data-type=\"day-plan\" className={cn(\"flex flex-col w-full shadow-xl rounded-2xl overflow-hidden border border-[#e8d9c0]/50 bg-[#faf8f3]\")}>\n {/* Header */}\n <div className=\"relative overflow-hidden bg-[#213f31] px-8 py-10 flex flex-col gap-4\">\n <div className=\"absolute inset-0 opacity-10 bg-[url('https://www.transparenttextures.com/patterns/cubes.png')] mix-blend-overlay\"></div>\n {props.imageSrc && (\n <div className=\"absolute inset-0 z-0\">\n <img src={props.imageSrc} alt=\"\" className=\"w-full h-full object-cover opacity-40 mix-blend-luminosity\" />\n <div className=\"absolute inset-0 bg-gradient-to-t from-[#213f31] to-transparent\"></div>\n </div>\n )}\n <div className=\"flex items-center justify-between z-10\">\n <span 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\">\n Giorno {props.dayNumber}\n </span>\n {props.location && (\n <div 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\">\n <MapPin className=\"w-3.5 h-3.5\" />\n <span>{props.location}</span>\n </div>\n )}\n </div>\n <h2 className=\"font-heading text-white text-4xl @md:text-5xl z-10 leading-tight italic mt-2 drop-shadow-md\">\n {props.title}\n </h2>\n </div>\n \n {/* Body */}\n <div className=\"bg-[#faf8f3] px-6 @md:px-8 py-4\">\n {props.golf && (\n <div className=\"py-8 border-b border-[#e8d9c0]/60 last:border-0 relative\">\n <div className=\"absolute left-0 top-8 w-1 h-12 bg-[#478264] rounded-r-md -ml-6 @md:-ml-8\"></div>\n <div className=\"flex items-center gap-2 mb-4\">\n <Flag className=\"w-5 h-5 text-[#478264]\" />\n <h3 className=\"font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#478264]\">Golf Experience</h3>\n </div>\n <div className=\"space-y-4 pl-2 @md:pl-4\">\n <p className=\"font-heading text-3xl text-[#213f31]\">{props.golf.clubName}</p>\n <div className=\"flex gap-2\">\n <span className=\"text-xs font-semibold uppercase tracking-wider bg-white px-3 py-1.5 rounded-md text-[#213f31] border border-[#e8d9c0] shadow-sm\">\n {props.golf.holes} Buche\n </span>\n <span className=\"text-xs font-semibold uppercase tracking-wider bg-white px-3 py-1.5 rounded-md text-[#213f31] border border-[#e8d9c0] shadow-sm\">\n Par {props.golf.par}\n </span>\n </div>\n <p className=\"text-base text-[#213f31]/80 leading-relaxed font-sans\">{props.golf.description}</p>\n {props.golf.highlight && (\n <div className=\"bg-white p-4 rounded-xl border border-[#e8d9c0] shadow-sm mt-4 inline-block\">\n <p className=\"text-base italic text-[#478264] font-heading text-xl\">\"{props.golf.highlight}\"</p>\n </div>\n )}\n </div>\n </div>\n )}\n \n {props.explore && props.explore.length > 0 && (\n <div className=\"py-8 border-b border-[#e8d9c0]/60 last:border-0 relative\">\n <div className=\"flex items-center gap-2 mb-5\">\n <Compass className=\"w-5 h-5 text-[#213f31]/50\" />\n <h3 className=\"font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#213f31]/50\">Esplora</h3>\n </div>\n <div className=\"grid grid-cols-1 @md:grid-cols-2 gap-5 pl-0 @md:pl-4\">\n {props.explore.map((attr, i) => (\n <div key={i} className=\"bg-white p-5 rounded-xl border border-[#e8d9c0] shadow-sm flex flex-col gap-3 transition-shadow hover:shadow-md\">\n <div className=\"flex items-start justify-between gap-3\">\n <span className=\"font-heading text-2xl text-[#213f31] leading-tight\">{attr.name}</span>\n {attr.type && (\n <span className=\"text-[9px] uppercase tracking-widest font-bold bg-[#faf8f3] text-[#213f31] border border-[#e8d9c0] px-2 py-1 rounded-full whitespace-nowrap\">\n {attr.type}\n </span>\n )}\n </div>\n {attr.description && (\n <p className=\"text-sm text-[#213f31]/70 leading-relaxed\">{attr.description}</p>\n )}\n </div>\n ))}\n </div>\n </div>\n )}\n \n {props.dine && (\n <div className=\"py-8 border-b border-[#e8d9c0]/60 last:border-0\">\n <div className=\"flex items-center gap-2 mb-5\">\n <UtensilsCrossed className=\"w-5 h-5 text-[#213f31]/50\" />\n <h3 className=\"font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#213f31]/50\">Gusto</h3>\n </div>\n <div className=\"bg-white p-6 rounded-xl border border-[#e8d9c0] shadow-sm pl-6 relative overflow-hidden\">\n <div className=\"absolute top-0 right-0 w-24 h-24 bg-[#478264]/5 rounded-bl-full -z-10\"></div>\n <p className=\"font-heading text-3xl text-[#213f31] flex flex-col @md:flex-row @md:items-baseline gap-2 mb-3\">\n {props.dine.name}\n {props.dine.cuisine && <span className=\"font-sans font-medium uppercase tracking-[0.15em] text-[#478264] text-xs\">· {props.dine.cuisine}</span>}\n </p>\n <p className=\"text-base text-[#213f31]/80 leading-relaxed mb-4\">{props.dine.description}</p>\n {props.dine.dish && (\n <div className=\"flex items-start gap-3 bg-[#faf8f3] p-4 rounded-xl border border-[#e8d9c0]/50\">\n <span className=\"text-[#478264] text-lg mt-0.5\">★</span>\n <p className=\"text-sm text-[#213f31] leading-relaxed\"><span className=\"font-bold text-[10px] uppercase tracking-widest text-[#213f31]/50 block mb-1\">Piatto firma</span> {props.dine.dish}</p>\n </div>\n )}\n </div>\n </div>\n )}\n \n {props.wine && (\n <div className=\"py-8 border-b border-[#e8d9c0]/60 last:border-0\">\n <div className=\"flex items-center gap-2 mb-5\">\n <Wine className=\"w-5 h-5 text-[#8b3a3a]\" />\n <h3 className=\"font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#8b3a3a]\">Degustazione</h3>\n </div>\n <div className=\"bg-gradient-to-br from-[#fffdfa] to-[#fff5f5] p-6 rounded-xl border border-[#8b3a3a]/15 shadow-sm pl-6 relative\">\n <div className=\"absolute right-4 top-4 opacity-5\">\n <Wine className=\"w-24 h-24 text-[#8b3a3a]\" />\n </div>\n <p className=\"font-heading text-3xl text-[#213f31] mb-3 relative z-10\">{props.wine.name}</p>\n <p className=\"text-base text-[#213f31]/80 leading-relaxed mb-5 relative z-10 max-w-2xl\">{props.wine.description}</p>\n {props.wine.wines && props.wine.wines.length > 0 && (\n <div className=\"flex flex-wrap gap-2 relative z-10\">\n {props.wine.wines.map((wine, i) => (\n <span key={i} 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\">\n {wine}\n </span>\n ))}\n </div>\n )}\n </div>\n </div>\n )}\n \n {props.stay && (\n <div className=\"py-8 border-b border-[#e8d9c0]/60 last:border-0\">\n <div className=\"flex items-center gap-2 mb-5\">\n <Bed className=\"w-5 h-5 text-[#b8955e]\" />\n <h3 className=\"font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#b8955e]\">Soggiorno</h3>\n </div>\n <div className=\"bg-gradient-to-br from-[#fdfbf7] to-[#f4ebd9]/80 p-6 rounded-xl border border-[#b8955e]/30 shadow-sm pl-6\">\n <div className=\"flex flex-col @md:flex-row @md:items-center justify-between mb-3 gap-3\">\n <p className=\"font-heading text-3xl text-[#213f31]\">{props.stay.name}</p>\n {props.stay.type && (\n <span 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\">\n {props.stay.type}\n </span>\n )}\n </div>\n <p className=\"text-base text-[#213f31]/80 leading-relaxed max-w-2xl\">{props.stay.description}</p>\n </div>\n </div>\n )}\n \n {props.logistics && (\n <div className=\"py-8 border-b border-[#e8d9c0]/60 last:border-0\">\n <div className=\"flex items-center gap-2 mb-5\">\n <Navigation className=\"w-5 h-5 text-[#213f31]/40\" />\n <h3 className=\"font-sans font-bold uppercase text-xs tracking-[0.2em] text-[#213f31]/40\">Spostamenti</h3>\n </div>\n <div 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\">\n <div className=\"flex flex-wrap items-center gap-3 text-[#213f31] font-heading text-2xl\">\n <span>{props.logistics.from}</span>\n <span className=\"text-[#e8d9c0] mx-2\">⟶</span> \n <span>{props.logistics.to}</span>\n </div>\n <div className=\"flex items-center gap-4 shrink-0\">\n <div className=\"flex items-center gap-2 bg-[#faf8f3] px-4 py-2 rounded-full border border-[#e8d9c0]\">\n {(() => {\n const Icon = (props.logistics.transport && LOGISTICS_ICON_MAP[props.logistics.transport]) ? LOGISTICS_ICON_MAP[props.logistics.transport] : LOGISTICS_ICON_MAP.default;\n return <Icon className=\"w-4 h-4 text-[#213f31]/70\" />;\n })()}\n <span className=\"text-sm font-semibold uppercase tracking-wider text-[#213f31]/80\">{props.logistics.time}</span>\n </div>\n </div>\n </div>\n {props.logistics.note && (\n <p className=\"text-sm text-[#213f31]/60 italic mt-3 pl-2 @md:pl-4\">{props.logistics.note}</p>\n )}\n </div>\n )}\n \n {props.curiosity && (\n <div className=\"py-8 last:border-0\">\n <div 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\">\n <div className=\"absolute left-0 top-0 bottom-0 w-1.5 bg-[#b8955e]\"></div>\n <div className=\"bg-white p-2.5 rounded-full shadow-sm shrink-0 border border-[#e8d9c0]\">\n <Lightbulb className=\"w-5 h-5 text-[#b8955e]\" />\n </div>\n <div>\n <span className=\"text-[10px] uppercase tracking-widest font-bold text-[#b8955e] block mb-2\">Lo sapevi che?</span>\n <p className=\"text-base font-sans text-[#213f31]/90 leading-relaxed italic\">\n {props.curiosity}\n </p>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const DayPlanSkeleton = (_props: ComponentContext<'DayPlanSkeleton'>) => {\n return (\n <div data-type=\"day-plan-skeleton\" className={\"flex flex-col w-full shadow-sm rounded-xl overflow-hidden border border-border\"}>\n <div className=\"bg-primary/10 px-6 py-5 space-y-3\">\n <div className=\"flex justify-between\">\n <Skeleton className=\"h-3 w-20 bg-primary/20\" />\n <Skeleton className=\"h-4 w-24 bg-primary/20\" />\n </div>\n <Skeleton className=\"h-8 w-2/3 bg-primary/20\" />\n </div>\n <div className=\"bg-card px-6 py-2\">\n {[1, 2, 3].map((i) => (\n <div key={i} className=\"py-5 border-b border-border/50 last:border-0 space-y-3\">\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"w-4 h-4 rounded-full\" />\n <Skeleton className=\"h-3 w-16\" />\n </div>\n <Skeleton className=\"h-5 w-1/3\" />\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-[90%]\" />\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Circle, Target, MapPin, Ruler, Gauge, Mountain, Phone, Mail, Flag } from 'lucide-react';\n\nexport const GolfClubSpotlight = ({ props }: ComponentContext<'GolfClubSpotlight'>) => {\n return (\n <div \n data-type=\"golf-club-spotlight\" \n className={cn(\"bg-white rounded-2xl border border-[#e8d9c0] shadow-lg relative overflow-hidden flex flex-col @md:flex-row\")}\n >\n <div 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\">\n Network Golf in Veneto\n </div>\n \n <div className=\"w-full @md:w-5/12 min-h-[300px] relative\">\n {props.imageSrc ? (\n <img src={props.imageSrc} alt={props.name} className=\"w-full h-full object-cover\" />\n ) : (\n <div className=\"w-full h-full bg-gradient-to-br from-[#213f31] to-[#12241b] flex items-center justify-center p-8\">\n <Flag className=\"w-20 h-20 text-white/10\" />\n </div>\n )}\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent\"></div>\n <div className=\"absolute bottom-4 left-4 right-4 z-10 block @md:hidden text-white\">\n <h2 className=\"font-heading text-3xl mb-1\">{props.name}</h2>\n <p className=\"font-sans text-sm font-light italic text-white/80\">{props.tagline}</p>\n </div>\n </div>\n \n <div className=\"w-full @md:w-7/12 p-6 @md:p-8 flex flex-col\">\n <div className=\"hidden @md:block mb-6\">\n <h2 className=\"font-heading text-4xl text-[#213f31] mb-2 pr-12 leading-tight\">{props.name}</h2>\n <p className=\"font-heading italic text-[#478264] text-xl\">{props.tagline}</p>\n </div>\n \n {props.stats && (\n <div className=\"grid grid-cols-2 @lg:grid-cols-3 gap-3 mb-8\">\n {props.stats.holes && (\n <div className=\"flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50\">\n <div className=\"bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]\"><Circle className=\"w-4 h-4 text-[#478264]\" /></div>\n <div className=\"flex flex-col\">\n <span className=\"text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold\">Buche</span>\n <span className=\"text-sm font-bold text-[#213f31]\">{props.stats.holes}</span>\n </div>\n </div>\n )}\n {props.stats.par && (\n <div className=\"flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50\">\n <div className=\"bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]\"><Target className=\"w-4 h-4 text-[#478264]\" /></div>\n <div className=\"flex flex-col\">\n <span className=\"text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold\">Par</span>\n <span className=\"text-sm font-bold text-[#213f31]\">{props.stats.par}</span>\n </div>\n </div>\n )}\n {props.stats.distance && (\n <div className=\"flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50\">\n <div className=\"bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]\"><Ruler className=\"w-4 h-4 text-[#478264]\" /></div>\n <div className=\"flex flex-col\">\n <span className=\"text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold\">Lunghezza</span>\n <span className=\"text-sm font-bold text-[#213f31]\">{props.stats.distance}</span>\n </div>\n </div>\n )}\n {props.stats.courses && (\n <div className=\"flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50\">\n <div className=\"bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]\"><MapPin className=\"w-4 h-4 text-[#478264]\" /></div>\n <div className=\"flex flex-col\">\n <span className=\"text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold\">Percorsi</span>\n <span className=\"text-sm font-bold text-[#213f31]\">{props.stats.courses}</span>\n </div>\n </div>\n )}\n {props.stats.difficulty && (\n <div className=\"flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50\">\n <div className=\"bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]\"><Gauge className=\"w-4 h-4 text-[#478264]\" /></div>\n <div className=\"flex flex-col\">\n <span className=\"text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold\">Difficoltà</span>\n <span className=\"text-sm font-bold text-[#213f31]\">{props.stats.difficulty}</span>\n </div>\n </div>\n )}\n {props.stats.terrain && (\n <div className=\"flex items-center gap-3 bg-[#faf8f3] p-3 rounded-xl border border-[#e8d9c0]/50\">\n <div className=\"bg-white p-1.5 rounded-full shadow-sm border border-[#e8d9c0]\"><Mountain className=\"w-4 h-4 text-[#478264]\" /></div>\n <div className=\"flex flex-col\">\n <span className=\"text-[9px] uppercase tracking-widest text-[#213f31]/50 font-bold\">Terreno</span>\n <span className=\"text-sm font-bold text-[#213f31]\">{props.stats.terrain}</span>\n </div>\n </div>\n )}\n </div>\n )}\n \n <p className=\"text-sm text-[#213f31]/80 leading-relaxed mb-6 font-sans\">\n {props.description}\n </p>\n \n {props.attractions && props.attractions.length > 0 && (\n <div className=\"mb-6 bg-[#faf8f3] p-4 rounded-xl border border-[#e8d9c0]/50\">\n <h4 className=\"text-[10px] font-bold uppercase tracking-widest text-[#213f31]/60 mb-3\">Nei dintorni</h4>\n <ul className=\"text-sm space-y-2 grid grid-cols-1 @lg:grid-cols-2 gap-x-4\">\n {props.attractions.map((attr, i) => (\n <li key={i} className=\"flex items-center gap-2 text-[#213f31]/90\">\n <span className=\"w-1.5 h-1.5 rounded-full bg-[#e8d9c0]\" />\n {attr}\n </li>\n ))}\n </ul>\n </div>\n )}\n \n <div className=\"mt-auto pt-5 border-t border-[#e8d9c0] flex flex-wrap gap-5 text-xs text-[#213f31]/60 font-medium\">\n {props.address && (\n <div className=\"flex items-center gap-2\">\n <MapPin className=\"w-4 h-4 text-[#478264]\" />\n <span>{props.address}</span>\n </div>\n )}\n {props.phone && (\n <div className=\"flex items-center gap-2\">\n <Phone className=\"w-4 h-4 text-[#478264]\" />\n <span>{props.phone}</span>\n </div>\n )}\n {props.email && (\n <div className=\"flex items-center gap-2\">\n <Mail className=\"w-4 h-4 text-[#478264]\" />\n <span>{props.email}</span>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const GolfClubSpotlightSkeleton = (_props: ComponentContext<'GolfClubSpotlightSkeleton'>) => {\n return (\n <div \n data-type=\"golf-club-spotlight-skeleton\" \n className={\"bg-card rounded-xl border border-border shadow-sm flex flex-col @md:flex-row overflow-hidden\"}\n >\n <Skeleton className=\"w-full @md:w-2/5 min-h-[250px] rounded-none\" />\n <div className=\"w-full @md:w-3/5 p-6 @md:p-8 space-y-6\">\n <div>\n <Skeleton className=\"h-8 w-3/4 mb-2\" />\n <Skeleton className=\"h-5 w-1/2\" />\n </div>\n <div className=\"grid grid-cols-2 @lg:grid-cols-3 gap-3\">\n {[1,2,3,4,5,6].map(i => <Skeleton key={i} className=\"h-12 w-full rounded-lg\" />)}\n </div>\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-[90%]\" />\n <Skeleton className=\"h-4 w-[80%]\" />\n </div>\n <div className=\"pt-4 border-t border-border flex gap-4\">\n <Skeleton className=\"h-4 w-24\" />\n <Skeleton className=\"h-4 w-24\" />\n </div>\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { MapPin } from 'lucide-react';\n\nexport const ExperienceGrid = ({ props, children }: ComponentContext<'ExperienceGrid'>) => {\n return (\n <div data-type=\"experience-grid\" className={cn(\"space-y-6 @md:space-y-8 py-4\")}>\n {props.title && (\n <div className=\"flex flex-col items-center mb-8\">\n <span className=\"w-8 h-px bg-[#478264] mb-4\"></span>\n <h2 className=\"font-heading text-3xl @md:text-4xl text-[#213f31] text-center italic\">{props.title}</h2>\n </div>\n )}\n \n {props.experiences && (\n <div className=\"grid grid-cols-1 @md:grid-cols-2 @lg:grid-cols-3 gap-6\">\n {props.experiences.map((exp, i) => {\n return (\n <div key={i} 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\">\n <div className=\"absolute top-0 left-0 w-full h-1 bg-[#478264] rounded-t-xl opacity-0 group-hover:opacity-100 transition-opacity\"></div>\n <div className=\"mb-4\">\n <span className=\"text-[10px] uppercase font-bold tracking-[0.2em] px-3 py-1.5 rounded-sm bg-[#faf8f3] text-[#213f31]/60 border border-[#e8d9c0]\">\n {exp.category}\n </span>\n </div>\n <h3 className=\"font-heading text-2xl text-[#213f31] mb-2 leading-tight group-hover:text-[#478264] transition-colors\">{exp.name}</h3>\n {exp.location && (\n <div className=\"flex items-center gap-1.5 text-xs text-[#213f31]/50 uppercase tracking-widest font-semibold mb-4\">\n <MapPin className=\"w-3.5 h-3.5\" />\n <span>{exp.location}</span>\n </div>\n )}\n <p className=\"text-sm text-[#213f31]/80 leading-relaxed mb-6 flex-grow font-sans\">\n {exp.description}\n </p>\n {exp.highlight && (\n <div className=\"mt-auto pt-4 border-t border-[#e8d9c0]/50\">\n <p className=\"text-sm italic text-[#b8955e] font-serif leading-relaxed\">\n \"{exp.highlight}\"\n </p>\n </div>\n )}\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const ExperienceGridSkeleton = (_props: ComponentContext<'ExperienceGridSkeleton'>) => {\n return (\n <div data-type=\"experience-grid-skeleton\" className={\"space-y-6\"}>\n <Skeleton className=\"h-8 w-48\" />\n <div className=\"grid grid-cols-1 @md:grid-cols-2 @lg:grid-cols-3 gap-4\">\n {[1, 2, 3].map((i) => (\n <div key={i} className=\"bg-card rounded-xl border border-border p-5 h-48 flex flex-col gap-3\">\n <Skeleton className=\"h-5 w-20 rounded-md\" />\n <Skeleton className=\"h-6 w-3/4\" />\n <Skeleton className=\"h-3 w-1/3\" />\n <div className=\"space-y-2 flex-grow\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-[80%]\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Car, Train, Bus, Ship, Footprints, Plane } from 'lucide-react';\n\nconst TRANSPORT_ICONS: Record<string, React.ElementType> = {\n car: Car,\n train: Train,\n bus: Bus,\n boat: Ship,\n walk: Footprints,\n flight: Plane,\n};\n\nexport const RouteStrip = ({ props }: ComponentContext<'RouteStrip'>) => {\n if (!props.legs || props.legs.length === 0) return null;\n \n return (\n <div data-type=\"route-strip\" className={cn(\"bg-[#faf8f3] border border-[#e8d9c0] rounded-2xl p-6 @md:p-10 shadow-sm relative overflow-hidden\")}>\n <div className=\"absolute top-0 right-0 w-32 h-32 bg-[#e8d9c0]/10 rounded-bl-full -z-0\"></div>\n \n <h3 className=\"font-heading text-2xl text-[#213f31] mb-8 text-center italic\">Il tuo itinerario</h3>\n\n {/* Desktop view */}\n <div className=\"hidden @md:flex items-center justify-between relative w-full px-8 pb-4 z-10\">\n <div className=\"absolute top-8 left-16 right-16 h-[1px] border-b border-dashed border-[#e8d9c0] -translate-y-1/2 z-0\" />\n \n {props.legs.map((leg, i) => {\n const Icon = TRANSPORT_ICONS[leg.transport?.toLowerCase()] || Car;\n return (\n <div key={i} className=\"relative z-10 flex flex-col items-center group w-40\">\n <div 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\">\n <Icon className=\"w-6 h-6 text-[#213f31]\" />\n <div className=\"absolute -bottom-2 w-2 h-2 rounded-full bg-[#b8955e]\"></div>\n </div>\n <div className=\"flex flex-col items-center text-center\">\n <span className=\"text-sm font-heading text-[#213f31] mb-1 text-xl leading-tight\">{leg.from}</span>\n <span className=\"text-[10px] uppercase tracking-widest text-[#213f31]/40 font-bold mb-2\">verso {leg.to}</span>\n <div className=\"flex gap-2 bg-white px-3 py-1.5 rounded-sm border border-[#e8d9c0] shadow-sm\">\n {leg.time && <span className=\"text-[#b8955e] text-[10px] font-bold uppercase tracking-wider\">{leg.time}</span>}\n {leg.time && leg.distance && <span className=\"text-[#e8d9c0]\">|</span>}\n {leg.distance && <span className=\"text-[#b8955e] text-[10px] font-bold uppercase tracking-wider\">{leg.distance}</span>}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n\n {/* Mobile view */}\n <div className=\"flex @md:hidden flex-col gap-8 relative pl-6 py-4 z-10\">\n <div className=\"absolute top-8 bottom-8 left-[39px] w-[1px] border-l border-dashed border-[#e8d9c0] z-0\" />\n \n {props.legs.map((leg, i) => {\n const Icon = TRANSPORT_ICONS[leg.transport?.toLowerCase()] || Car;\n return (\n <div key={i} className=\"relative z-10 flex items-start gap-6\">\n <div className=\"flex items-center justify-center w-12 h-12 rounded-full bg-white border border-[#e8d9c0] shadow-sm shrink-0 relative mt-1\">\n <Icon className=\"w-5 h-5 text-[#213f31]\" />\n <div className=\"absolute -right-1 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-[#b8955e]\"></div>\n </div>\n <div className=\"flex flex-col bg-white p-4 rounded-xl border border-[#e8d9c0] shadow-sm w-full\">\n <div className=\"flex items-center gap-2 mb-2 flex-wrap\">\n <span className=\"text-xl font-heading text-[#213f31]\">{leg.from}</span>\n <span className=\"text-[#e8d9c0] mx-1\">⟶</span>\n <span className=\"text-xl font-heading text-[#213f31]/80\">{leg.to}</span>\n </div>\n <div className=\"flex gap-3\">\n {leg.time && <span className=\"bg-[#faf8f3] border border-[#e8d9c0]/50 text-[#b8955e] text-[9px] uppercase tracking-widest font-bold px-2 py-1 rounded-sm\">{leg.time}</span>}\n {leg.distance && <span className=\"bg-[#faf8f3] border border-[#e8d9c0]/50 text-[#b8955e] text-[9px] uppercase tracking-widest font-bold px-2 py-1 rounded-sm\">{leg.distance}</span>}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const RouteStripSkeleton = (_props: ComponentContext<'RouteStripSkeleton'>) => {\n return (\n <div data-type=\"route-strip-skeleton\" className={\"bg-muted rounded-xl p-6\"}>\n <div className=\"hidden @md:flex justify-between items-center relative w-full pt-4 pb-2 px-4\">\n <div className=\"absolute top-1/2 left-8 right-8 h-[2px] bg-border/40 -translate-y-1/2\" />\n {[1, 2, 3].map(i => (\n <div key={i} className=\"z-10 flex flex-col items-center bg-muted px-4 gap-3\">\n <Skeleton className=\"w-10 h-10 rounded-full\" />\n <div className=\"flex flex-col items-center gap-1\">\n <Skeleton className=\"h-3 w-16\" />\n <Skeleton className=\"h-2 w-12\" />\n <Skeleton className=\"h-4 w-20 rounded\" />\n </div>\n </div>\n ))}\n </div>\n <div className=\"flex @md:hidden flex-col gap-6 relative pl-4 py-2\">\n <div className=\"absolute top-4 bottom-4 left-[27px] w-[2px] bg-border/40\" />\n {[1, 2, 3].map(i => (\n <div key={i} className=\"z-10 flex items-start gap-4\">\n <Skeleton className=\"w-8 h-8 rounded-full shrink-0\" />\n <div className=\"flex flex-col gap-2 pt-1 w-full max-w-[200px]\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-5 w-24 rounded\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { MapPin, Wine, UtensilsCrossed, Sparkles } from 'lucide-react';\n\nconst BADGE_ICONS: Record<string, React.ElementType> = {\n wine: Wine,\n food: UtensilsCrossed,\n experience: Sparkles,\n};\n\nexport const TasteCard = ({ props }: ComponentContext<'TasteCard'>) => {\n const Icon = BADGE_ICONS[props.type?.toLowerCase()] || Sparkles;\n \n return (\n <div data-type=\"taste-card\" className={cn(\"bg-[#faf8f3] rounded-2xl border border-[#e8d9c0] shadow-lg overflow-hidden flex flex-col @md:flex-row group\")}>\n <div className=\"w-full @md:w-[45%] min-h-[250px] relative overflow-hidden\">\n {props.imageSrc ? (\n <img src={props.imageSrc} alt={props.name} className=\"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105\" />\n ) : (\n <div className=\"w-full h-full bg-[#f4ebd9] flex items-center justify-center p-8\">\n <Icon className=\"w-16 h-16 text-[#b8955e]/20\" />\n </div>\n )}\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/50 via-transparent to-transparent\"></div>\n <div 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\">\n <Icon className=\"w-4 h-4 text-[#8b3a3a]\" />\n <span className=\"text-[10px] font-bold uppercase tracking-widest text-[#213f31]\">{props.type}</span>\n </div>\n </div>\n \n <div className=\"w-full @md:w-[55%] p-6 @md:p-8 flex flex-col bg-white\">\n <h3 className=\"font-heading text-3xl text-[#213f31] mb-2 leading-tight\">{props.name}</h3>\n {props.location && (\n <div className=\"flex items-center gap-1.5 text-[10px] uppercase tracking-[0.2em] font-bold text-[#b8955e] mb-5\">\n <MapPin className=\"w-3.5 h-3.5\" />\n <span>{props.location}</span>\n </div>\n )}\n \n <p className=\"text-base text-[#213f31]/80 leading-relaxed mb-6 font-sans\">\n {props.description}\n </p>\n \n {props.highlights && props.highlights.length > 0 && (\n <div className=\"flex flex-wrap gap-2 mb-6\">\n {props.highlights.map((item, i) => (\n <span key={i} 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\">\n {item}\n </span>\n ))}\n </div>\n )}\n \n {props.recommendation && (\n <div 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\">\n <div className=\"absolute right-0 top-0 bottom-0 opacity-5\">\n <UtensilsCrossed className=\"w-16 h-16\" />\n </div>\n <p className=\"text-sm italic text-[#213f31]/90 leading-relaxed relative z-10\">\n <span className=\"font-sans font-bold uppercase tracking-widest text-[9px] text-[#8b3a3a] not-italic block mb-1\">Da non perdere</span>\n {props.recommendation}\n </p>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const TasteCardSkeleton = (_props: ComponentContext<'TasteCardSkeleton'>) => {\n return (\n <div data-type=\"taste-card-skeleton\" className={\"bg-card rounded-xl border border-border shadow-sm flex flex-col @md:flex-row overflow-hidden\"}>\n <Skeleton className=\"w-full @md:w-[40%] min-h-[200px] rounded-none\" />\n <div className=\"w-full @md:w-[60%] p-5 @md:p-6 flex flex-col gap-4\">\n <div>\n <Skeleton className=\"h-6 w-3/4 mb-2\" />\n <Skeleton className=\"h-3 w-1/3\" />\n </div>\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-[90%]\" />\n </div>\n <div className=\"flex gap-2\">\n <Skeleton className=\"h-6 w-20 rounded-full\" />\n <Skeleton className=\"h-6 w-24 rounded-full\" />\n </div>\n <Skeleton className=\"h-10 w-full mt-auto rounded-lg\" />\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Bed, MapPin, Check } from 'lucide-react';\n\nexport const StayCard = ({ props }: ComponentContext<'StayCard'>) => {\n return (\n <div data-type=\"stay-card\" className={cn(\"bg-white rounded-2xl border border-[#e8d9c0] shadow-lg overflow-hidden flex flex-col relative group\")}>\n {props.priceRange && (\n <div 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\">\n {props.priceRange}\n </div>\n )}\n \n <div className=\"w-full aspect-[4/3] relative overflow-hidden\">\n {props.imageSrc ? (\n <img src={props.imageSrc} alt={props.name} className=\"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105\" />\n ) : (\n <div className=\"w-full h-full bg-[#faf8f3] flex items-center justify-center border-b border-[#e8d9c0]\">\n <Bed className=\"w-12 h-12 text-[#b8955e]/20\" />\n </div>\n )}\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/60 to-transparent\"></div>\n </div>\n \n <div className=\"p-6 @md:p-8 flex flex-col flex-grow relative bg-white\">\n <div className=\"absolute -top-6 left-6 right-6 flex items-center justify-between\">\n <span className=\"text-[10px] font-bold uppercase tracking-widest text-white bg-[#b8955e] px-3 py-1.5 rounded-sm shadow-md\">\n {props.type}\n </span>\n {props.stars && (\n <div className=\"flex gap-0.5 text-[#e8d9c0] text-sm tracking-tighter bg-[#213f31] px-2 py-1 rounded-sm shadow-md\">\n {\"★\".repeat(props.stars)}\n </div>\n )}\n </div>\n \n <div className=\"mt-2\">\n <h3 className=\"font-heading text-3xl text-[#213f31] leading-tight mb-2\">{props.name}</h3>\n {props.location && (\n <div className=\"flex items-center gap-1.5 text-[10px] uppercase tracking-widest font-bold text-[#213f31]/50 mb-5\">\n <MapPin className=\"w-3.5 h-3.5\" />\n <span>{props.location}</span>\n </div>\n )}\n </div>\n \n {props.features && props.features.length > 0 && (\n <div className=\"flex flex-col gap-2 mb-6\">\n {props.features.map((feature, i) => (\n <div key={i} className=\"flex items-start gap-3 text-sm text-[#213f31]/80 font-sans\">\n <div className=\"mt-0.5 bg-[#b8955e]/10 p-0.5 rounded-full shrink-0\">\n <Check className=\"w-3 h-3 text-[#b8955e]\" />\n </div>\n <span>{feature}</span>\n </div>\n ))}\n </div>\n )}\n \n {props.whyPerfect && (\n <div className=\"mt-auto bg-[#faf8f3] border border-[#e8d9c0] rounded-xl p-5 shadow-sm\">\n <p className=\"text-sm italic text-[#213f31]/80 leading-relaxed\">\n <span className=\"font-sans font-bold not-italic block text-[9px] uppercase tracking-[0.2em] text-[#b8955e] mb-1.5\">L'opinione dell'esperto</span>\n {props.whyPerfect}\n </p>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const StayCardSkeleton = (_props: ComponentContext<'StayCardSkeleton'>) => {\n return (\n <div data-type=\"stay-card-skeleton\" className={\"bg-card rounded-xl border border-border shadow-sm flex flex-col overflow-hidden\"}>\n <Skeleton className=\"w-full aspect-video rounded-none\" />\n <div className=\"p-5 flex flex-col gap-4\">\n <div className=\"flex gap-2\">\n <Skeleton className=\"h-5 w-16 rounded\" />\n <Skeleton className=\"h-5 w-12 rounded\" />\n </div>\n <div>\n <Skeleton className=\"h-6 w-3/4 mb-2\" />\n <Skeleton className=\"h-3 w-1/3\" />\n </div>\n <div className=\"flex flex-wrap gap-2\">\n <Skeleton className=\"h-6 w-20 rounded\" />\n <Skeleton className=\"h-6 w-24 rounded\" />\n <Skeleton className=\"h-6 w-16 rounded\" />\n </div>\n <Skeleton className=\"h-20 w-full mt-2 rounded-lg\" />\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Button } from '@websolutespa/ask-ui/components/button';\nimport { Check } from 'lucide-react';\n\nexport const TripSummary = ({ props }: ComponentContext<'TripSummary'>) => {\n return (\n <div data-type=\"trip-summary\" className={cn(\"bg-[#213f31] text-[#faf8f3] rounded-2xl px-6 py-16 @md:px-12 relative overflow-hidden shadow-2xl\")}>\n <div className=\"absolute inset-0 z-0 bg-[url('https://www.transparenttextures.com/patterns/cubes.png')] opacity-10 mix-blend-overlay\" />\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/40 to-transparent z-0\" />\n \n <div className=\"relative z-10 flex flex-col items-center max-w-4xl mx-auto space-y-12\">\n <div className=\"text-center space-y-4\">\n <span className=\"text-[10px] uppercase tracking-[0.3em] font-bold text-[#e8d9c0]\">Il Tuo Viaggio in Sintesi</span>\n <h2 className=\"font-heading italic text-4xl @md:text-5xl text-center leading-tight\">{props.title}</h2>\n </div>\n \n {props.stats && props.stats.length > 0 && (\n <div className=\"flex flex-wrap justify-center gap-10 @md:gap-20 w-full py-8 border-y border-white/10\">\n {props.stats.map((stat, i) => (\n <div key={i} className=\"flex flex-col items-center\">\n <span className=\"font-heading text-5xl @md:text-6xl italic text-[#e8d9c0] mb-2 drop-shadow-md\">{stat.value}</span>\n <span className=\"text-[10px] uppercase tracking-[0.2em] font-bold text-white/70\">{stat.label}</span>\n </div>\n ))}\n </div>\n )}\n \n {props.highlights && props.highlights.length > 0 && (\n <div className=\"w-full max-w-3xl\">\n <h3 className=\"text-center font-sans text-xs uppercase tracking-[0.2em] font-bold text-[#e8d9c0] mb-8\">Highlights dell'Esperienza</h3>\n <ul className=\"grid grid-cols-1 @md:grid-cols-2 gap-y-6 gap-x-12\">\n {props.highlights.map((hl, i) => (\n <li key={i} className=\"flex items-start gap-4\">\n <div className=\"mt-1 bg-[#478264] rounded-full p-1 shrink-0 shadow-md border border-[#478264]/20\">\n <Check className=\"w-3 h-3 text-white\" />\n </div>\n <span className=\"text-sm font-medium leading-relaxed text-white/90\">{hl}</span>\n </li>\n ))}\n </ul>\n </div>\n )}\n \n {props.closingMessage && (\n <div className=\"pt-8 w-full max-w-2xl text-center\">\n <p className=\"font-heading italic text-2xl @md:text-3xl text-[#e8d9c0] leading-snug\">\n &ldquo;{props.closingMessage}&rdquo;\n </p>\n </div>\n )}\n \n {props.ctaText && (\n <div className=\"mt-8\">\n <Button 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\">\n {props.ctaText}\n </Button>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const TripSummarySkeleton = (_props: ComponentContext<'TripSummarySkeleton'>) => {\n return (\n <div data-type=\"trip-summary-skeleton\" className={\"bg-primary/90 rounded-xl px-6 py-12 @md:px-12\"}>\n <div className=\"flex flex-col items-center max-w-4xl mx-auto space-y-10\">\n <Skeleton className=\"h-10 w-2/3 max-w-md bg-primary-foreground/20\" />\n \n <div className=\"flex flex-wrap justify-center gap-8 @md:gap-16 w-full\">\n {[1, 2, 3].map((i) => (\n <div key={i} className=\"flex flex-col items-center gap-2\">\n <Skeleton className=\"h-12 w-16 bg-primary-foreground/20\" />\n <Skeleton className=\"h-3 w-20 bg-primary-foreground/20\" />\n </div>\n ))}\n </div>\n \n <div className=\"bg-primary-foreground/10 rounded-2xl p-6 @md:p-8 w-full max-w-2xl\">\n <div className=\"grid grid-cols-1 @md:grid-cols-2 gap-4\">\n {[1, 2, 3, 4].map(i => (\n <div key={i} className=\"flex gap-3\">\n <Skeleton className=\"w-5 h-5 rounded-full bg-primary-foreground/30 shrink-0\" />\n <Skeleton className=\"h-4 w-full bg-primary-foreground/20\" />\n </div>\n ))}\n </div>\n </div>\n \n <Skeleton className=\"h-8 w-3/4 max-w-lg bg-primary-foreground/20\" />\n <Skeleton className=\"h-12 w-48 rounded-full bg-primary-foreground/20 mt-4\" />\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Lightbulb } from 'lucide-react';\n\nexport const InsiderTip = ({ props }: ComponentContext<'InsiderTip'>) => {\n return (\n <div data-type=\"insider-tip\" 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\")}>\n <div className=\"absolute left-0 top-0 bottom-0 w-1.5 bg-[#b8955e]\"></div>\n <div className=\"bg-white p-3 rounded-full shadow-sm shrink-0 h-fit border border-[#e8d9c0]/50\">\n <Lightbulb className=\"w-6 h-6 text-[#b8955e]\" />\n </div>\n <div className=\"flex flex-col space-y-2\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-[9px] uppercase tracking-widest font-bold text-[#b8955e] bg-[#b8955e]/10 px-2 py-1 rounded-sm\">Il consiglio del concierge</span>\n </div>\n {props.title && <h4 className=\"font-heading text-xl text-[#213f31] leading-tight\">{props.title}</h4>}\n <p className=\"font-sans text-sm text-[#213f31]/80 leading-relaxed\">{props.text}</p>\n {props.source && <span className=\"text-[10px] uppercase tracking-widest font-bold text-[#213f31]/40 mt-3 block\">{props.source}</span>}\n </div>\n </div>\n );\n};\n","import type { ComponentContext } from '../catalog';\nimport { cn } from '@websolutespa/ask-ui';\nimport { Skeleton } from '@websolutespa/ask-ui/components/skeleton';\n\nexport const InsiderTipSkeleton = (_props: ComponentContext<'InsiderTipSkeleton'>) => {\n return (\n <div data-type=\"insider-tip-skeleton\" className={\"bg-muted/30 border-l-4 border-muted rounded-r-xl px-6 py-5 flex gap-4\"}>\n <Skeleton className=\"w-6 h-6 rounded-full shrink-0\" />\n <div className=\"flex flex-col w-full gap-2 pt-1\">\n <Skeleton className=\"h-5 w-1/3\" />\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-[80%]\" />\n <Skeleton className=\"h-3 w-1/4 mt-2\" />\n </div>\n </div>\n );\n};\n","import { defineRegistry } from '@json-render/react';\nimport React from 'react';\nimport { renderToStaticMarkup } from 'react-dom/server';\nimport { toast } from 'sonner';\nimport { catalog } from './catalog';\n\nimport { Root } from './blocks/root';\nimport { Link } from './blocks/link';\nimport { HeroViaggio } from './blocks/hero-viaggio';\nimport { HeroViaggioSkeleton } from './blocks/hero-viaggio-skeleton';\nimport { ConceptCard } from './blocks/concept-card';\nimport { ConceptCardSkeleton } from './blocks/concept-card-skeleton';\nimport { DayPlan } from './blocks/day-plan';\nimport { DayPlanSkeleton } from './blocks/day-plan-skeleton';\nimport { GolfClubSpotlight } from './blocks/golf-club-spotlight';\nimport { GolfClubSpotlightSkeleton } from './blocks/golf-club-spotlight-skeleton';\nimport { ExperienceGrid } from './blocks/experience-grid';\nimport { ExperienceGridSkeleton } from './blocks/experience-grid-skeleton';\nimport { RouteStrip } from './blocks/route-strip';\nimport { RouteStripSkeleton } from './blocks/route-strip-skeleton';\nimport { TasteCard } from './blocks/taste-card';\nimport { TasteCardSkeleton } from './blocks/taste-card-skeleton';\nimport { StayCard } from './blocks/stay-card';\nimport { StayCardSkeleton } from './blocks/stay-card-skeleton';\nimport { TripSummary } from './blocks/trip-summary';\nimport { TripSummarySkeleton } from './blocks/trip-summary-skeleton';\nimport { InsiderTip } from './blocks/insider-tip';\nimport { InsiderTipSkeleton } from './blocks/insider-tip-skeleton';\n\nexport const { registry, handlers, executeAction } = defineRegistry(catalog, {\n components: {\n Root,\n Link,\n HeroViaggio,\n HeroViaggioSkeleton,\n ConceptCard,\n ConceptCardSkeleton,\n DayPlan,\n DayPlanSkeleton,\n GolfClubSpotlight,\n GolfClubSpotlightSkeleton,\n ExperienceGrid,\n ExperienceGridSkeleton,\n RouteStrip,\n RouteStripSkeleton,\n TasteCard,\n TasteCardSkeleton,\n StayCard,\n StayCardSkeleton,\n TripSummary,\n TripSummarySkeleton,\n InsiderTip,\n InsiderTipSkeleton,\n },\n actions: {\n setState: async () => { /* noop */ },\n pushState: async () => { /* noop */ },\n removeState: async () => { /* noop */ },\n linkClick: async (params) => {\n const href = (params?.href as string) || '#';\n toast.info(`Navigating to: ${href}`);\n },\n },\n});\n\n/**\n * Render a single component to static HTML for layout builder previews.\n */\nexport function renderPreview(\n componentName: string,\n props: Record<string, unknown>,\n): string | null {\n const Component = registry[componentName];\n if (!Component) return null;\n const elementProps = {\n props,\n emit: () => { /* noop */ },\n on: () => ({ shouldPreventDefault: false, emit: () => { /* noop */ }, bound: false }),\n element: { type: componentName, props },\n loading: false,\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return renderToStaticMarkup(React.createElement(Component as any, elementProps));\n}\n"],"mappings":";;;;;;;;;;;AAGA,MAAa,QAAQ,EAAE,eAAyC;AAC9D,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,oEAAoE;EAEjF;EACG,CAAA;;;;ACPV,MAAa,QAAQ,EAAE,YAAsC;AAS3D,QACE,oBAAC,QAAD;EAAQ,aAAU;EAAO,SAAA;EAAQ,SARjC,MAAM,YAAY,YACd,YACA,MAAM,YAAY,cAChB,cACA,MAAM,YAAY,WAChB,gBACA;YAGN,oBAAC,KAAD;GAAG,MAAM,MAAM;GAAM,QAAO;GAAS,KAAI;aACtC,MAAM;GACL,CAAA;EACG,CAAA;;;;ACdb,MAAa,eAAe,EAAE,YAA6C;AACzE,QACE,qBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,gKACD;YAJH,CAMG,MAAM,WACL,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,oBAAC,OAAD;IAAK,KAAK,MAAM;IAAU,KAAI;IAAG,WAAU;IAA+B,CAAA,EAC1E,oBAAC,OAAD,EAAK,WAAU,2GAA4G,CAAA,CACvH;OAEN,oBAAC,OAAD;GAAK,WAAU;aACb,oBAAC,OAAD,EAAK,WAAU,oHAAqH,CAAA;GAChI,CAAA,EAGR,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,OAAD,EAAK,WAAU,kCAAuC,CAAA;IACtD,oBAAC,MAAD;KAAI,WAAU;eACX,MAAM;KACJ,CAAA;IAEJ,MAAM,WACL,oBAAC,KAAD;KAAG,WAAU;eACV,MAAM;KACL,CAAA;IAEN,oBAAC,OAAD,EAAK,WAAU,kCAAuC,CAAA;IAErD,MAAM,SAAS,MAAM,MAAM,SAAS,KACnC,oBAAC,OAAD;KAAK,WAAU;eACZ,MAAM,MAAM,KAAK,MAAM,MACtB,qBAAC,OAAD;MAAa,WAAU;gBAAvB,CACE,oBAAC,QAAD;OAAM,WAAU;iBAAiE,KAAK;OAAa,CAAA,EACnG,oBAAC,QAAD;OAAM,WAAU;iBAA+E,KAAK;OAAa,CAAA,CAC7G;QAHI,EAGJ,CACN;KACE,CAAA;IAEJ;KACF;;;;;AC1CV,MAAa,uBAAuB,WAAoD;AACtF,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WACE;YAGF,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,UAAD,EAAU,WAAU,+EAAgF,CAAA;IACpG,oBAAC,UAAD,EAAU,WAAU,iEAAkE,CAAA;IACtF,qBAAC,OAAD;KAAK,WAAU;eAAf;MACE,oBAAC,UAAD,EAAU,WAAU,uCAAwC,CAAA;MAC5D,oBAAC,UAAD,EAAU,WAAU,uCAAwC,CAAA;MAC5D,oBAAC,UAAD,EAAU,WAAU,uCAAwC,CAAA;MACxD;;IACF;;EACF,CAAA;;;;ACjBV,MAAM,WAA8C;CAClD,MAAM;CACN,MAAM;CACN,KAAK;CACL,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,MAAM;CACN,UAAU;CACV,SAAS;CACV;AAED,MAAa,eAAe,EAAE,YAA6C;AACzE,QACE,qBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,iKAAiK;YAFjL;GAIE,oBAAC,OAAD,EAAK,WAAU,yEAA8E,CAAA;GAE7F,qBAAC,OAAD;IAAK,WAAU;cAAf;KACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,QAAD,EAAM,WAAU,yBAA+B,CAAA,EAC/C,oBAAC,QAAD;OAAM,WAAU;iBAAiE;OAAiB,CAAA,CAC9F;;KACN,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,OAAD,EAAO,WAAU,mEAAoE,CAAA,EACrF,qBAAC,MAAD;OAAI,WAAU;iBAAd;QAAsF;QAC5E,MAAM;QAAQ;QACnB;SACD;;KAEL,MAAM,UAAU,MAAM,OAAO,SAAS,KACrC,oBAAC,OAAD;MAAK,WAAU;gBACZ,MAAM,OAAO,KAAK,OAAO,MAAM;AAE9B,cACE,qBAAC,OAAD;QAAa,WAAU;kBAAvB,CACE,oBAHS,SAAS,MAAM,KAAK,aAAa,KAAK,QAG/C,EAAM,WAAU,8BAA+B,CAAA,EAC/C,oBAAC,QAAD,EAAA,UAAO,MAAM,OAAa,CAAA,CACtB;UAHI,EAGJ;QAER;MACE,CAAA;KAEJ;;GAEN,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,QAAD;KAAM,WAAU;eAAyE;KAAiB,CAAA,EAC1G,oBAAC,KAAD;KAAG,WAAU;eACV,MAAM;KACL,CAAA,CACA;;GACF;;;;;ACrDV,MAAa,uBAAuB,WAAoD;AACtF,QACE,qBAAC,OAAD;EACE,aAAU;EACV,WAAW;YAFb,CAIE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA;IACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA;IACpC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA;IAChC;MACN,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA,EACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA,CAChC;OACN,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,UAAD,EAAU,WAAU,yBAA0B,CAAA,EAC9C,oBAAC,UAAD,EAAU,WAAU,yBAA0B,CAAA,CAC1C;MACF;KACF;;;;;ACrBV,MAAM,qBAAwD;CAC5D,KAAK;CACL,OAAO;CACP,MAAM;CACN,SAAS;CACV;AAED,MAAa,WAAW,EAAE,YAAyC;AACjE,QACE,qBAAC,OAAD;EAAK,aAAU;EAAW,WAAW,GAAG,qGAAqG;YAA7I,CAEE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,OAAD,EAAK,WAAU,oHAAyH,CAAA;IACvI,MAAM,YACL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,OAAD;MAAK,KAAK,MAAM;MAAU,KAAI;MAAG,WAAU;MAA+D,CAAA,EAC1G,oBAAC,OAAD,EAAK,WAAU,mEAAwE,CAAA,CACnF;;IAER,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,QAAD;MAAM,WAAU;gBAAhB,CAA8K,WACpK,MAAM,UACT;SACN,MAAM,YACL,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,QAAD,EAAQ,WAAU,eAAgB,CAAA,EAClC,oBAAC,QAAD,EAAA,UAAO,MAAM,UAAgB,CAAA,CACzB;QAEJ;;IACN,oBAAC,MAAD;KAAI,WAAU;eACX,MAAM;KACJ,CAAA;IACD;MAGN,qBAAC,OAAD;GAAK,WAAU;aAAf;IACG,MAAM,QACL,qBAAC,OAAD;KAAK,WAAU;eAAf;MACE,oBAAC,OAAD,EAAK,WAAU,4EAAiF,CAAA;MAChG,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAAC,MAAD,EAAM,WAAU,0BAA2B,CAAA,EAC3C,oBAAC,MAAD;QAAI,WAAU;kBAAwE;QAAoB,CAAA,CACtG;;MACN,qBAAC,OAAD;OAAK,WAAU;iBAAf;QACE,oBAAC,KAAD;SAAG,WAAU;mBAAwC,MAAM,KAAK;SAAa,CAAA;QAC7E,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,qBAAC,QAAD;UAAM,WAAU;oBAAhB,CACG,MAAM,KAAK,OAAM,SACb;aACP,qBAAC,QAAD;UAAM,WAAU;oBAAhB,CAAkJ,QAC3I,MAAM,KAAK,IACX;YACH;;QACN,oBAAC,KAAD;SAAG,WAAU;mBAAyD,MAAM,KAAK;SAAgB,CAAA;QAChG,MAAM,KAAK,aACV,oBAAC,OAAD;SAAK,WAAU;mBACZ,qBAAC,KAAD;UAAG,WAAU;oBAAb;WAAoE;WAAE,MAAM,KAAK;WAAU;WAAK;;SAC7F,CAAA;QAEJ;;MACF;;IAGP,MAAM,WAAW,MAAM,QAAQ,SAAS,KACvC,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,SAAD,EAAS,WAAU,6BAA8B,CAAA,EACjD,oBAAC,MAAD;OAAI,WAAU;iBAA2E;OAAY,CAAA,CACjG;SACN,oBAAC,OAAD;MAAK,WAAU;gBACZ,MAAM,QAAQ,KAAK,MAAM,MACxB,qBAAC,OAAD;OAAa,WAAU;iBAAvB,CACE,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,QAAD;SAAM,WAAU;mBAAsD,KAAK;SAAY,CAAA,EACtF,KAAK,QACJ,oBAAC,QAAD;SAAM,WAAU;mBACb,KAAK;SACD,CAAA,CAEL;WACL,KAAK,eACJ,oBAAC,KAAD;QAAG,WAAU;kBAA6C,KAAK;QAAgB,CAAA,CAE7E;SAZI,EAYJ,CACN;MACE,CAAA,CACF;;IAGP,MAAM,QACL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,iBAAD,EAAiB,WAAU,6BAA8B,CAAA,EACzD,oBAAC,MAAD;OAAI,WAAU;iBAA2E;OAAU,CAAA,CAC/F;SACN,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,oBAAC,OAAD,EAAK,WAAU,yEAA8E,CAAA;OAC7F,qBAAC,KAAD;QAAG,WAAU;kBAAb,CACG,MAAM,KAAK,MACX,MAAM,KAAK,WAAW,qBAAC,QAAD;SAAM,WAAU;mBAAhB,CAA2F,MAAG,MAAM,KAAK,QAAe;WAC7I;;OACJ,oBAAC,KAAD;QAAG,WAAU;kBAAoD,MAAM,KAAK;QAAgB,CAAA;OAC3F,MAAM,KAAK,QACV,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,QAAD;SAAM,WAAU;mBAAgC;SAAQ,CAAA,EACxD,qBAAC,KAAD;SAAG,WAAU;mBAAb;UAAsD,oBAAC,QAAD;WAAM,WAAU;qBAA+E;WAAmB,CAAA;;UAAE,MAAM,KAAK;UAAS;WAC1L;;OAEJ;QACF;;IAGP,MAAM,QACL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,MAAD,EAAM,WAAU,0BAA2B,CAAA,EAC3C,oBAAC,MAAD;OAAI,WAAU;iBAAwE;OAAiB,CAAA,CACnG;SACN,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,oBAAC,OAAD;QAAK,WAAU;kBACZ,oBAAC,MAAD,EAAM,WAAU,4BAA6B,CAAA;QAC1C,CAAA;OACN,oBAAC,KAAD;QAAG,WAAU;kBAA2D,MAAM,KAAK;QAAS,CAAA;OAC5F,oBAAC,KAAD;QAAG,WAAU;kBAA4E,MAAM,KAAK;QAAgB,CAAA;OACnH,MAAM,KAAK,SAAS,MAAM,KAAK,MAAM,SAAS,KAC7C,oBAAC,OAAD;QAAK,WAAU;kBACZ,MAAM,KAAK,MAAM,KAAK,MAAM,MAC3B,oBAAC,QAAD;SAAc,WAAU;mBACrB;SACI,EAFI,EAEJ,CACP;QACE,CAAA;OAEJ;QACF;;IAGP,MAAM,QACL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,KAAD,EAAK,WAAU,0BAA2B,CAAA,EAC1C,oBAAC,MAAD;OAAI,WAAU;iBAAwE;OAAc,CAAA,CAChG;SACN,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAAC,KAAD;QAAG,WAAU;kBAAwC,MAAM,KAAK;QAAS,CAAA,EACxE,MAAM,KAAK,QACV,oBAAC,QAAD;QAAM,WAAU;kBACb,MAAM,KAAK;QACP,CAAA,CAEL;UACN,oBAAC,KAAD;OAAG,WAAU;iBAAyD,MAAM,KAAK;OAAgB,CAAA,CAC7F;QACF;;IAGP,MAAM,aACL,qBAAC,OAAD;KAAK,WAAU;eAAf;MACE,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAAC,YAAD,EAAY,WAAU,6BAA8B,CAAA,EACpD,oBAAC,MAAD;QAAI,WAAU;kBAA2E;QAAgB,CAAA,CACrG;;MACN,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,qBAAC,OAAD;QAAK,WAAU;kBAAf;SACE,oBAAC,QAAD,EAAA,UAAO,MAAM,UAAU,MAAY,CAAA;SACnC,oBAAC,QAAD;UAAM,WAAU;oBAAsB;UAAQ,CAAA;SAC9C,oBAAC,QAAD,EAAA,UAAO,MAAM,UAAU,IAAU,CAAA;SAC7B;WACN,oBAAC,OAAD;QAAK,WAAU;kBACb,qBAAC,OAAD;SAAK,WAAU;mBAAf,CAGY,oBADO,MAAM,UAAU,aAAa,mBAAmB,MAAM,UAAU,aAAc,mBAAmB,MAAM,UAAU,aAAa,mBAAmB,SACxJ,EAAM,WAAU,6BAA8B,CAAA,EAExD,oBAAC,QAAD;UAAM,WAAU;oBAAoE,MAAM,UAAU;UAAY,CAAA,CAC5G;;QACF,CAAA,CACF;;MACL,MAAM,UAAU,QACf,oBAAC,KAAD;OAAG,WAAU;iBAAuD,MAAM,UAAU;OAAS,CAAA;MAE3F;;IAGP,MAAM,aACL,oBAAC,OAAD;KAAK,WAAU;eACb,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,oBAAC,OAAD,EAAK,WAAU,qDAA0D,CAAA;OACzE,oBAAC,OAAD;QAAK,WAAU;kBACb,oBAAC,WAAD,EAAW,WAAU,0BAA2B,CAAA;QAC5C,CAAA;OACN,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,QAAD;QAAM,WAAU;kBAA4E;QAAqB,CAAA,EACjH,oBAAC,KAAD;QAAG,WAAU;kBACV,MAAM;QACL,CAAA,CACA,EAAA,CAAA;OACF;;KACF,CAAA;IAEJ;KACF;;;;;AC3MV,MAAa,mBAAmB,WAAgD;AAC9E,QACE,qBAAC,OAAD;EAAK,aAAU;EAAoB,WAAW;YAA9C,CACE,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,UAAD,EAAU,WAAU,0BAA2B,CAAA,EAC/C,oBAAC,UAAD,EAAU,WAAU,0BAA2B,CAAA,CAC3C;OACN,oBAAC,UAAD,EAAU,WAAU,2BAA4B,CAAA,CAC5C;MACN,oBAAC,OAAD;GAAK,WAAU;aACZ;IAAC;IAAG;IAAG;IAAE,CAAC,KAAK,MACd,qBAAC,OAAD;IAAa,WAAU;cAAvB;KACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,UAAD,EAAU,WAAU,wBAAyB,CAAA,EAC7C,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA,CAC7B;;KACN,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA;KAClC,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA;KACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA;KAChC;MARI,EAQJ,CACN;GACE,CAAA,CACF;;;;;ACvBV,MAAa,qBAAqB,EAAE,YAAmD;AACrF,QACE,qBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,6GAA6G;YAF7H;GAIE,oBAAC,OAAD;IAAK,WAAU;cAAwI;IAEjJ,CAAA;GAEN,qBAAC,OAAD;IAAK,WAAU;cAAf;KACG,MAAM,WACL,oBAAC,OAAD;MAAK,KAAK,MAAM;MAAU,KAAK,MAAM;MAAM,WAAU;MAA+B,CAAA,GAEpF,oBAAC,OAAD;MAAK,WAAU;gBACb,oBAAC,MAAD,EAAM,WAAU,2BAA4B,CAAA;MACxC,CAAA;KAER,oBAAC,OAAD,EAAK,WAAU,kFAAuF,CAAA;KACtG,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACG,oBAAC,MAAD;OAAI,WAAU;iBAA8B,MAAM;OAAU,CAAA,EAC5D,oBAAC,KAAD;OAAG,WAAU;iBAAqD,MAAM;OAAY,CAAA,CACjF;;KACF;;GAEN,qBAAC,OAAD;IAAK,WAAU;cAAf;KACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,MAAD;OAAI,WAAU;iBAAiE,MAAM;OAAU,CAAA,EAC/F,oBAAC,KAAD;OAAG,WAAU;iBAA8C,MAAM;OAAY,CAAA,CACzE;;KAEL,MAAM,SACL,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACG,MAAM,MAAM,SACX,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD;SAAK,WAAU;mBAAgE,oBAAC,QAAD,EAAQ,WAAU,0BAA2B,CAAA;SAAM,CAAA,EAClI,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,QAAD;UAAM,WAAU;oBAAmE;UAAY,CAAA,EAC/F,oBAAC,QAAD;UAAM,WAAU;oBAAoC,MAAM,MAAM;UAAa,CAAA,CACzE;WACF;;OAEP,MAAM,MAAM,OACX,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD;SAAK,WAAU;mBAAgE,oBAAC,QAAD,EAAQ,WAAU,0BAA2B,CAAA;SAAM,CAAA,EAClI,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,QAAD;UAAM,WAAU;oBAAmE;UAAU,CAAA,EAC7F,oBAAC,QAAD;UAAM,WAAU;oBAAoC,MAAM,MAAM;UAAW,CAAA,CACvE;WACF;;OAEP,MAAM,MAAM,YACX,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD;SAAK,WAAU;mBAAgE,oBAAC,OAAD,EAAO,WAAU,0BAA2B,CAAA;SAAM,CAAA,EACjI,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,QAAD;UAAM,WAAU;oBAAmE;UAAgB,CAAA,EACnG,oBAAC,QAAD;UAAM,WAAU;oBAAoC,MAAM,MAAM;UAAgB,CAAA,CAC5E;WACF;;OAEP,MAAM,MAAM,WACX,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD;SAAK,WAAU;mBAAgE,oBAAC,QAAD,EAAQ,WAAU,0BAA2B,CAAA;SAAM,CAAA,EAClI,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,QAAD;UAAM,WAAU;oBAAmE;UAAe,CAAA,EAClG,oBAAC,QAAD;UAAM,WAAU;oBAAoC,MAAM,MAAM;UAAe,CAAA,CAC3E;WACF;;OAEP,MAAM,MAAM,cACX,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD;SAAK,WAAU;mBAAgE,oBAAC,OAAD,EAAO,WAAU,0BAA2B,CAAA;SAAM,CAAA,EACjI,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,QAAD;UAAM,WAAU;oBAAmE;UAAiB,CAAA,EACpG,oBAAC,QAAD;UAAM,WAAU;oBAAoC,MAAM,MAAM;UAAkB,CAAA,CAC9E;WACF;;OAEP,MAAM,MAAM,WACX,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD;SAAK,WAAU;mBAAgE,oBAAC,UAAD,EAAU,WAAU,0BAA2B,CAAA;SAAM,CAAA,EACpI,qBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,oBAAC,QAAD;UAAM,WAAU;oBAAmE;UAAc,CAAA,EACjG,oBAAC,QAAD;UAAM,WAAU;oBAAoC,MAAM,MAAM;UAAe,CAAA,CAC3E;WACF;;OAEJ;;KAGR,oBAAC,KAAD;MAAG,WAAU;gBACV,MAAM;MACL,CAAA;KAEH,MAAM,eAAe,MAAM,YAAY,SAAS,KAC/C,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,MAAD;OAAI,WAAU;iBAAyE;OAAiB,CAAA,EACxG,oBAAC,MAAD;OAAI,WAAU;iBACX,MAAM,YAAY,KAAK,MAAM,MAC5B,qBAAC,MAAD;QAAY,WAAU;kBAAtB,CACE,oBAAC,QAAD,EAAM,WAAU,yCAA0C,CAAA,EACzD,KACE;UAHI,EAGJ,CACL;OACC,CAAA,CACD;;KAGR,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACG,MAAM,WACL,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,QAAD,EAAQ,WAAU,0BAA2B,CAAA,EAC7C,oBAAC,QAAD,EAAA,UAAO,MAAM,SAAe,CAAA,CACxB;;OAEP,MAAM,SACL,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,OAAD,EAAO,WAAU,0BAA2B,CAAA,EAC5C,oBAAC,QAAD,EAAA,UAAO,MAAM,OAAa,CAAA,CACtB;;OAEP,MAAM,SACL,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,oBAAC,MAAD,EAAM,WAAU,0BAA2B,CAAA,EAC3C,oBAAC,QAAD,EAAA,UAAO,MAAM,OAAa,CAAA,CACtB;;OAEJ;;KACF;;GACF;;;;;ACjIV,MAAa,6BAA6B,WAA0D;AAClG,QACE,qBAAC,OAAD;EACE,aAAU;EACV,WAAW;YAFb,CAIE,oBAAC,UAAD,EAAU,WAAU,+CAAgD,CAAA,EACpE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,UAAD,EAAU,WAAU,kBAAmB,CAAA,EACvC,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA,CAC9B,EAAA,CAAA;IACN,oBAAC,OAAD;KAAK,WAAU;eACZ;MAAC;MAAE;MAAE;MAAE;MAAE;MAAE;MAAE,CAAC,KAAI,MAAK,oBAAC,UAAD,EAAkB,WAAU,0BAA2B,EAAxC,EAAwC,CAAC;KAC5E,CAAA;IACN,qBAAC,OAAD;KAAK,WAAU;eAAf;MACE,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA;MACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA;MACpC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA;MAChC;;IACN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA,EACjC,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA,CAC7B;;IACF;KACF;;;;;ACzBV,MAAa,kBAAkB,EAAE,OAAO,eAAmD;AACzF,QACE,qBAAC,OAAD;EAAK,aAAU;EAAkB,WAAW,GAAG,+BAA+B;YAA9E,CACG,MAAM,SACL,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,oBAAC,QAAD,EAAM,WAAU,8BAAoC,CAAA,EACpD,oBAAC,MAAD;IAAI,WAAU;cAAwE,MAAM;IAAW,CAAA,CACnG;MAGP,MAAM,eACL,oBAAC,OAAD;GAAK,WAAU;aACZ,MAAM,YAAY,KAAK,KAAK,MAAM;AACjC,WACE,qBAAC,OAAD;KAAa,WAAU;eAAvB;MACE,oBAAC,OAAD,EAAK,WAAU,mHAAwH,CAAA;MACvI,oBAAC,OAAD;OAAK,WAAU;iBACb,oBAAC,QAAD;QAAM,WAAU;kBACb,IAAI;QACA,CAAA;OACH,CAAA;MACN,oBAAC,MAAD;OAAI,WAAU;iBAAwG,IAAI;OAAU,CAAA;MACnI,IAAI,YACH,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAAC,QAAD,EAAQ,WAAU,eAAgB,CAAA,EAClC,oBAAC,QAAD,EAAA,UAAO,IAAI,UAAgB,CAAA,CACvB;;MAER,oBAAC,KAAD;OAAG,WAAU;iBACV,IAAI;OACH,CAAA;MACH,IAAI,aACH,oBAAC,OAAD;OAAK,WAAU;iBACb,qBAAC,KAAD;QAAG,WAAU;kBAAb;SAAwE;SACpE,IAAI;SAAU;SACd;;OACA,CAAA;MAEJ;OAxBI,EAwBJ;KAER;GACE,CAAA,CAEJ;;;;;AC3CV,MAAa,0BAA0B,WAAuD;AAC5F,QACE,qBAAC,OAAD;EAAK,aAAU;EAA2B,WAAW;YAArD,CACE,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA,EACjC,oBAAC,OAAD;GAAK,WAAU;aACZ;IAAC;IAAG;IAAG;IAAE,CAAC,KAAK,MACd,qBAAC,OAAD;IAAa,WAAU;cAAvB;KACE,oBAAC,UAAD,EAAU,WAAU,uBAAwB,CAAA;KAC5C,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA;KAClC,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA;KAClC,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA,EACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA,CAChC;;KACF;MARI,EAQJ,CACN;GACE,CAAA,CACF;;;;;ACjBV,MAAM,kBAAqD;CACzD,KAAK;CACL,OAAO;CACP,KAAK;CACL,MAAM;CACN,MAAM;CACN,QAAQ;CACT;AAED,MAAa,cAAc,EAAE,YAA4C;AACvE,KAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,WAAW,EAAG,QAAO;AAEnD,QACE,qBAAC,OAAD;EAAK,aAAU;EAAc,WAAW,GAAG,mGAAmG;YAA9I;GACE,oBAAC,OAAD,EAAK,WAAU,yEAA8E,CAAA;GAE7F,oBAAC,MAAD;IAAI,WAAU;cAA+D;IAAsB,CAAA;GAGnG,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,OAAD,EAAK,WAAU,wGAAyG,CAAA,EAEvH,MAAM,KAAK,KAAK,KAAK,MAAM;AAE1B,YACE,qBAAC,OAAD;MAAa,WAAU;gBAAvB,CACE,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAJO,gBAAgB,IAAI,WAAW,aAAa,KAAK,KAIxD,EAAM,WAAU,0BAA2B,CAAA,EAC3C,oBAAC,OAAD,EAAK,WAAU,wDAA6D,CAAA,CACxE;UACN,qBAAC,OAAD;OAAK,WAAU;iBAAf;QACE,oBAAC,QAAD;SAAM,WAAU;mBAAkE,IAAI;SAAY,CAAA;QAClG,qBAAC,QAAD;SAAM,WAAU;mBAAhB,CAAyF,UAAO,IAAI,GAAU;;QAC9G,qBAAC,OAAD;SAAK,WAAU;mBAAf;UACG,IAAI,QAAQ,oBAAC,QAAD;WAAM,WAAU;qBAAiE,IAAI;WAAY,CAAA;UAC7G,IAAI,QAAQ,IAAI,YAAY,oBAAC,QAAD;WAAM,WAAU;qBAAiB;WAAQ,CAAA;UACrE,IAAI,YAAY,oBAAC,QAAD;WAAM,WAAU;qBAAiE,IAAI;WAAgB,CAAA;UAClH;;QACF;SACF;QAdI,EAcJ;MAER,CACE;;GAGN,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,OAAD,EAAK,WAAU,2FAA4F,CAAA,EAE1G,MAAM,KAAK,KAAK,KAAK,MAAM;AAE1B,YACE,qBAAC,OAAD;MAAa,WAAU;gBAAvB,CACE,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAJO,gBAAgB,IAAI,WAAW,aAAa,KAAK,KAIxD,EAAM,WAAU,0BAA2B,CAAA,EAC3C,oBAAC,OAAD,EAAK,WAAU,gFAAqF,CAAA,CAChG;UACN,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,qBAAC,OAAD;QAAK,WAAU;kBAAf;SACE,oBAAC,QAAD;UAAM,WAAU;oBAAuC,IAAI;UAAY,CAAA;SACvE,oBAAC,QAAD;UAAM,WAAU;oBAAsB;UAAQ,CAAA;SAC9C,oBAAC,QAAD;UAAM,WAAU;oBAA0C,IAAI;UAAU,CAAA;SACpE;WACN,qBAAC,OAAD;QAAK,WAAU;kBAAf,CACG,IAAI,QAAQ,oBAAC,QAAD;SAAM,WAAU;mBAA8H,IAAI;SAAY,CAAA,EAC1K,IAAI,YAAY,oBAAC,QAAD;SAAM,WAAU;mBAA8H,IAAI;SAAgB,CAAA,CAC/K;UACF;SACF;QAhBI,EAgBJ;MAER,CACE;;GACF;;;;;ACvEV,MAAa,sBAAsB,WAAmD;AACpF,QACE,qBAAC,OAAD;EAAK,aAAU;EAAuB,WAAW;YAAjD,CACE,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,oBAAC,OAAD,EAAK,WAAU,yEAA0E,CAAA,EACxF;IAAC;IAAG;IAAG;IAAE,CAAC,KAAI,MACb,qBAAC,OAAD;IAAa,WAAU;cAAvB,CACE,oBAAC,UAAD,EAAU,WAAU,0BAA2B,CAAA,EAC/C,qBAAC,OAAD;KAAK,WAAU;eAAf;MACE,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA;MACjC,oBAAC,UAAD,EAAU,WAAU,YAAa,CAAA;MACjC,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA;MACrC;OACF;MAPI,EAOJ,CACN,CACE;MACN,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,oBAAC,OAAD,EAAK,WAAU,4DAA6D,CAAA,EAC3E;IAAC;IAAG;IAAG;IAAE,CAAC,KAAI,MACb,qBAAC,OAAD;IAAa,WAAU;cAAvB,CACE,oBAAC,UAAD,EAAU,WAAU,iCAAkC,CAAA,EACtD,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA,EACnC,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA,CACrC;OACF;MANI,EAMJ,CACN,CACE;KACF;;;;;AC5BV,MAAM,cAAiD;CACrD,MAAM;CACN,MAAM;CACN,YAAY;CACb;AAED,MAAa,aAAa,EAAE,YAA2C;CACrE,MAAM,OAAO,YAAY,MAAM,MAAM,aAAa,KAAK;AAEvD,QACE,qBAAC,OAAD;EAAK,aAAU;EAAa,WAAW,GAAG,8GAA8G;YAAxJ,CACE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACG,MAAM,WACL,oBAAC,OAAD;KAAK,KAAK,MAAM;KAAU,KAAK,MAAM;KAAM,WAAU;KAAuF,CAAA,GAE5I,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,MAAD,EAAM,WAAU,+BAAgC,CAAA;KAC5C,CAAA;IAER,oBAAC,OAAD,EAAK,WAAU,kFAAuF,CAAA;IACtG,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,MAAD,EAAM,WAAU,0BAA2B,CAAA,EAC3C,oBAAC,QAAD;MAAM,WAAU;gBAAkE,MAAM;MAAY,CAAA,CAChG;;IACF;MAEN,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,MAAD;KAAI,WAAU;eAA2D,MAAM;KAAU,CAAA;IACxF,MAAM,YACL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,QAAD,EAAQ,WAAU,eAAgB,CAAA,EAClC,oBAAC,QAAD,EAAA,UAAO,MAAM,UAAgB,CAAA,CACzB;;IAGR,oBAAC,KAAD;KAAG,WAAU;eACV,MAAM;KACL,CAAA;IAEH,MAAM,cAAc,MAAM,WAAW,SAAS,KAC7C,oBAAC,OAAD;KAAK,WAAU;eACZ,MAAM,WAAW,KAAK,MAAM,MAC3B,oBAAC,QAAD;MAAc,WAAU;gBACrB;MACI,EAFI,EAEJ,CACP;KACE,CAAA;IAGP,MAAM,kBACL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,OAAD;MAAK,WAAU;gBACb,oBAAC,iBAAD,EAAiB,WAAU,aAAc,CAAA;MACrC,CAAA,EACN,qBAAC,KAAD;MAAG,WAAU;gBAAb,CACE,oBAAC,QAAD;OAAM,WAAU;iBAAgG;OAAqB,CAAA,EACpI,MAAM,eACL;QACA;;IAEJ;KACF;;;;;AC7DV,MAAa,qBAAqB,WAAkD;AAClF,QACE,qBAAC,OAAD;EAAK,aAAU;EAAsB,WAAW;YAAhD,CACE,oBAAC,UAAD,EAAU,WAAU,iDAAkD,CAAA,EACtE,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,UAAD,EAAU,WAAU,kBAAmB,CAAA,EACvC,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA,CAC9B,EAAA,CAAA;IACN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA,EACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA,CAChC;;IACN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,UAAD,EAAU,WAAU,yBAA0B,CAAA,EAC9C,oBAAC,UAAD,EAAU,WAAU,yBAA0B,CAAA,CAC1C;;IACN,oBAAC,UAAD,EAAU,WAAU,kCAAmC,CAAA;IACnD;KACF;;;;;ACnBV,MAAa,YAAY,EAAE,YAA0C;AACnE,QACE,qBAAC,OAAD;EAAK,aAAU;EAAY,WAAW,GAAG,sGAAsG;YAA/I;GACG,MAAM,cACL,oBAAC,OAAD;IAAK,WAAU;cACZ,MAAM;IACH,CAAA;GAGR,qBAAC,OAAD;IAAK,WAAU;cAAf,CACG,MAAM,WACL,oBAAC,OAAD;KAAK,KAAK,MAAM;KAAU,KAAK,MAAM;KAAM,WAAU;KAAuF,CAAA,GAE5I,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,KAAD,EAAK,WAAU,+BAAgC,CAAA;KAC3C,CAAA,EAER,oBAAC,OAAD,EAAK,WAAU,kEAAuE,CAAA,CAClF;;GAEN,qBAAC,OAAD;IAAK,WAAU;cAAf;KACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACG,oBAAC,QAAD;OAAM,WAAU;iBACb,MAAM;OACF,CAAA,EACN,MAAM,SACL,oBAAC,OAAD;OAAK,WAAU;iBACZ,IAAI,OAAO,MAAM,MAAM;OACpB,CAAA,CAEL;;KAEN,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,MAAD;OAAI,WAAU;iBAA2D,MAAM;OAAU,CAAA,EACxF,MAAM,YACL,qBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,oBAAC,QAAD,EAAQ,WAAU,eAAgB,CAAA,EAClC,oBAAC,QAAD,EAAA,UAAO,MAAM,UAAgB,CAAA,CACzB;SAEJ;;KAEL,MAAM,YAAY,MAAM,SAAS,SAAS,KACzC,oBAAC,OAAD;MAAK,WAAU;gBACZ,MAAM,SAAS,KAAK,SAAS,MAC5B,qBAAC,OAAD;OAAa,WAAU;iBAAvB,CACE,oBAAC,OAAD;QAAK,WAAU;kBACb,oBAAC,OAAD,EAAO,WAAU,0BAA2B,CAAA;QACxC,CAAA,EACN,oBAAC,QAAD,EAAA,UAAO,SAAe,CAAA,CAClB;SALI,EAKJ,CACN;MACE,CAAA;KAGP,MAAM,cACL,oBAAC,OAAD;MAAK,WAAU;gBACb,qBAAC,KAAD;OAAG,WAAU;iBAAb,CACE,oBAAC,QAAD;QAAM,WAAU;kBAAmG;QAA8B,CAAA,EAChJ,MAAM,WACL;;MACA,CAAA;KAEJ;;GACF;;;;;AChEV,MAAa,oBAAoB,WAAiD;AAChF,QACE,qBAAC,OAAD;EAAK,aAAU;EAAqB,WAAW;YAA/C,CACE,oBAAC,UAAD,EAAU,WAAU,oCAAqC,CAAA,EACzD,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,qBAAC,OAAD;KAAK,WAAU;eAAf,CACE,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA,EACzC,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA,CACrC;;IACN,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,UAAD,EAAU,WAAU,kBAAmB,CAAA,EACvC,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA,CAC9B,EAAA,CAAA;IACN,qBAAC,OAAD;KAAK,WAAU;eAAf;MACE,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA;MACzC,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA;MACzC,oBAAC,UAAD,EAAU,WAAU,oBAAqB,CAAA;MACrC;;IACN,oBAAC,UAAD,EAAU,WAAU,+BAAgC,CAAA;IAChD;KACF;;;;;ACnBV,MAAa,eAAe,EAAE,YAA6C;AACzE,QACE,qBAAC,OAAD;EAAK,aAAU;EAAe,WAAW,GAAG,mGAAmG;YAA/I;GACE,oBAAC,OAAD,EAAK,WAAU,wHAAyH,CAAA;GACxI,oBAAC,OAAD,EAAK,WAAU,sEAAuE,CAAA;GAEtF,qBAAC,OAAD;IAAK,WAAU;cAAf;KACE,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,QAAD;OAAM,WAAU;iBAAkE;OAAgC,CAAA,EAClH,oBAAC,MAAD;OAAI,WAAU;iBAAuE,MAAM;OAAW,CAAA,CAClG;;KAEL,MAAM,SAAS,MAAM,MAAM,SAAS,KACnC,oBAAC,OAAD;MAAK,WAAU;gBACZ,MAAM,MAAM,KAAK,MAAM,MACtB,qBAAC,OAAD;OAAa,WAAU;iBAAvB,CACE,oBAAC,QAAD;QAAM,WAAU;kBAAgF,KAAK;QAAa,CAAA,EAClH,oBAAC,QAAD;QAAM,WAAU;kBAAkE,KAAK;QAAa,CAAA,CAChG;SAHI,EAGJ,CACN;MACE,CAAA;KAGP,MAAM,cAAc,MAAM,WAAW,SAAS,KAC7C,qBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,oBAAC,MAAD;OAAI,WAAU;iBAAyF;OAA+B,CAAA,EACtI,oBAAC,MAAD;OAAI,WAAU;iBACX,MAAM,WAAW,KAAK,IAAI,MACzB,qBAAC,MAAD;QAAY,WAAU;kBAAtB,CACE,oBAAC,OAAD;SAAK,WAAU;mBACb,oBAAC,OAAD,EAAO,WAAU,sBAAuB,CAAA;SACpC,CAAA,EACN,oBAAC,QAAD;SAAM,WAAU;mBAAqD;SAAU,CAAA,CAC5E;UALI,EAKJ,CACL;OACC,CAAA,CACD;;KAGP,MAAM,kBACL,oBAAC,OAAD;MAAK,WAAU;gBACb,qBAAC,KAAD;OAAG,WAAU;iBAAb;QAAqF;QAC3E,MAAM;QAAe;QAC3B;;MACA,CAAA;KAGP,MAAM,WACL,oBAAC,OAAD;MAAK,WAAU;gBACb,oBAAC,QAAD;OAAQ,WAAU;iBACf,MAAM;OACA,CAAA;MACL,CAAA;KAEJ;;GACF;;;;;ACxDV,MAAa,uBAAuB,WAAoD;AACtF,QACE,oBAAC,OAAD;EAAK,aAAU;EAAwB,WAAW;YAChD,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,UAAD,EAAU,WAAU,gDAAiD,CAAA;IAErE,oBAAC,OAAD;KAAK,WAAU;eACZ;MAAC;MAAG;MAAG;MAAE,CAAC,KAAK,MACd,qBAAC,OAAD;MAAa,WAAU;gBAAvB,CACE,oBAAC,UAAD,EAAU,WAAU,sCAAuC,CAAA,EAC3D,oBAAC,UAAD,EAAU,WAAU,qCAAsC,CAAA,CACtD;QAHI,EAGJ,CACN;KACE,CAAA;IAEN,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,OAAD;MAAK,WAAU;gBACZ;OAAC;OAAG;OAAG;OAAG;OAAE,CAAC,KAAI,MAChB,qBAAC,OAAD;OAAa,WAAU;iBAAvB,CACE,oBAAC,UAAD,EAAU,WAAU,0DAA2D,CAAA,EAC/E,oBAAC,UAAD,EAAU,WAAU,uCAAwC,CAAA,CACxD;SAHI,EAGJ,CACN;MACE,CAAA;KACF,CAAA;IAEN,oBAAC,UAAD,EAAU,WAAU,+CAAgD,CAAA;IACpE,oBAAC,UAAD,EAAU,WAAU,wDAAyD,CAAA;IACzE;;EACF,CAAA;;;;AC7BV,MAAa,cAAc,EAAE,YAA4C;AACvE,QACE,qBAAC,OAAD;EAAK,aAAU;EAAc,WAAW,GAAG,wJAAwJ;YAAnM;GACE,oBAAC,OAAD,EAAK,WAAU,qDAA0D,CAAA;GACzE,oBAAC,OAAD;IAAK,WAAU;cACb,oBAAC,WAAD,EAAW,WAAU,0BAA2B,CAAA;IAC5C,CAAA;GACN,qBAAC,OAAD;IAAK,WAAU;cAAf;KACE,oBAAC,OAAD;MAAK,WAAU;gBACZ,oBAAC,QAAD;OAAM,WAAU;iBAAqG;OAAiC,CAAA;MACnJ,CAAA;KACL,MAAM,SAAS,oBAAC,MAAD;MAAI,WAAU;gBAAqD,MAAM;MAAW,CAAA;KACpG,oBAAC,KAAD;MAAG,WAAU;gBAAuD,MAAM;MAAS,CAAA;KAClF,MAAM,UAAU,oBAAC,QAAD;MAAM,WAAU;gBAAgF,MAAM;MAAc,CAAA;KACjI;;GACF;;;;;ACfV,MAAa,sBAAsB,WAAmD;AACpF,QACE,qBAAC,OAAD;EAAK,aAAU;EAAuB,WAAW;YAAjD,CACE,oBAAC,UAAD,EAAU,WAAU,iCAAkC,CAAA,EACtD,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA;IAClC,oBAAC,UAAD,EAAU,WAAU,cAAe,CAAA;IACnC,oBAAC,UAAD,EAAU,WAAU,eAAgB,CAAA;IACpC,oBAAC,UAAD,EAAU,WAAU,kBAAmB,CAAA;IACnC;KACF;;;;;ACeV,MAAa,EAAE,UAAU,UAAU,kBAAkB,eAAe,SAAS;CAC3E,YAAY;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;CACD,SAAS;EACP,UAAU,YAAY;EACtB,WAAW,YAAY;EACvB,aAAa,YAAY;EACzB,WAAW,OAAO,WAAW;GAC3B,MAAM,OAAQ,QAAQ,QAAmB;AACzC,SAAM,KAAK,kBAAkB,OAAO;;EAEvC;CACF,CAAC;;;;AAKF,SAAgB,cACd,eACA,OACe;CACf,MAAM,YAAY,SAAS;AAC3B,KAAI,CAAC,UAAW,QAAO;CACvB,MAAM,eAAe;EACnB;EACA,YAAY;EACZ,WAAW;GAAE,sBAAsB;GAAO,YAAY;GAAgB,OAAO;GAAO;EACpF,SAAS;GAAE,MAAM;GAAe;GAAO;EACvC,SAAS;EACV;AAED,QAAO,qBAAqB,MAAM,cAAc,WAAkB,aAAa,CAAC"}