@planetaexo/design-system 0.78.0 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -19255,6 +19255,320 @@ function USP({
19255
19255
  )
19256
19256
  ] }) });
19257
19257
  }
19258
+ var C = {
19259
+ imageOverlay: "linear-gradient(90deg, rgba(7,33,27,.93) 0%, rgba(8,42,34,.82) 52%, rgba(8,42,34,.62) 100%)",
19260
+ baseBg: "#0a2c25",
19261
+ eyebrow: "#a7e8c4",
19262
+ head: "#f4f1e9",
19263
+ sub: "rgba(244,241,233,.78)",
19264
+ desc: "rgba(244,241,233,.72)",
19265
+ divider: "rgba(244,241,233,.16)",
19266
+ chipBg: "rgba(167,232,196,.16)",
19267
+ chipIcon: "#bff0d6",
19268
+ ctaBg: "#bff0d6",
19269
+ ctaText: "#08231e"
19270
+ };
19271
+ var COLS2 = {
19272
+ 2: "sm:grid-cols-2",
19273
+ 3: "sm:grid-cols-2 lg:grid-cols-3",
19274
+ 4: "sm:grid-cols-2 lg:grid-cols-4"
19275
+ };
19276
+ var ArrowIcon3 = () => /* @__PURE__ */ jsxRuntime.jsxs(
19277
+ "svg",
19278
+ {
19279
+ viewBox: "0 0 24 24",
19280
+ width: "18",
19281
+ height: "18",
19282
+ fill: "none",
19283
+ stroke: "currentColor",
19284
+ strokeWidth: 2,
19285
+ strokeLinecap: "round",
19286
+ strokeLinejoin: "round",
19287
+ "aria-hidden": true,
19288
+ className: "ml-2",
19289
+ children: [
19290
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5 12h14" }),
19291
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m12 5 7 7-7 7" })
19292
+ ]
19293
+ }
19294
+ );
19295
+ function USPBand({
19296
+ eyebrow,
19297
+ heading,
19298
+ subheading,
19299
+ items,
19300
+ imageSrc,
19301
+ cta,
19302
+ columns,
19303
+ className
19304
+ }) {
19305
+ const cols = columns != null ? columns : Math.min(Math.max(items.length, 2), 4);
19306
+ return /* @__PURE__ */ jsxRuntime.jsxs(
19307
+ "section",
19308
+ {
19309
+ className: cn("relative w-full overflow-hidden", className),
19310
+ style: { backgroundColor: C.baseBg },
19311
+ children: [
19312
+ imageSrc && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
19313
+ /* @__PURE__ */ jsxRuntime.jsx(
19314
+ "img",
19315
+ {
19316
+ src: imageSrc,
19317
+ alt: "",
19318
+ "aria-hidden": true,
19319
+ loading: "lazy",
19320
+ decoding: "async",
19321
+ className: "absolute inset-0 h-full w-full object-cover"
19322
+ }
19323
+ ),
19324
+ /* @__PURE__ */ jsxRuntime.jsx(
19325
+ "div",
19326
+ {
19327
+ "aria-hidden": true,
19328
+ className: "absolute inset-0",
19329
+ style: { background: C.imageOverlay }
19330
+ }
19331
+ )
19332
+ ] }),
19333
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative mx-auto w-full max-w-6xl px-6 py-20 sm:px-8 sm:py-24", children: [
19334
+ eyebrow && /* @__PURE__ */ jsxRuntime.jsx(
19335
+ "p",
19336
+ {
19337
+ className: "font-heading text-xs font-bold uppercase tracking-[0.2em]",
19338
+ style: { color: C.eyebrow },
19339
+ children: eyebrow
19340
+ }
19341
+ ),
19342
+ /* @__PURE__ */ jsxRuntime.jsx(
19343
+ "h2",
19344
+ {
19345
+ className: "mt-4 max-w-[15ch] font-heading text-3xl font-black uppercase leading-[0.98] tracking-tight sm:text-4xl lg:text-5xl",
19346
+ style: { color: C.head },
19347
+ children: heading
19348
+ }
19349
+ ),
19350
+ subheading && /* @__PURE__ */ jsxRuntime.jsx(
19351
+ "p",
19352
+ {
19353
+ className: "mt-4 max-w-[52ch] font-sans text-lg leading-relaxed",
19354
+ style: { color: C.sub },
19355
+ children: subheading
19356
+ }
19357
+ ),
19358
+ cta && /* @__PURE__ */ jsxRuntime.jsxs(
19359
+ "a",
19360
+ {
19361
+ href: cta.href,
19362
+ onClick: cta.onClick,
19363
+ className: "mt-7 inline-flex items-center rounded-full px-6 py-3 font-heading text-sm font-bold uppercase tracking-wide no-underline transition-transform duration-200 hover:-translate-y-0.5",
19364
+ style: { backgroundColor: C.ctaBg, color: C.ctaText },
19365
+ children: [
19366
+ cta.label,
19367
+ /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon3, {})
19368
+ ]
19369
+ }
19370
+ ),
19371
+ /* @__PURE__ */ jsxRuntime.jsx(
19372
+ "div",
19373
+ {
19374
+ className: cn(
19375
+ "mt-14 grid grid-cols-1 gap-x-8 gap-y-10 lg:gap-x-0",
19376
+ COLS2[cols]
19377
+ ),
19378
+ children: items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsxs(
19379
+ "div",
19380
+ {
19381
+ className: "lg:px-7 lg:[&:first-child]:pl-0 lg:[&:not(:first-child)]:border-l lg:[&:not(:first-child)]:border-solid",
19382
+ style: { borderColor: C.divider },
19383
+ children: [
19384
+ item.icon && /* @__PURE__ */ jsxRuntime.jsx(
19385
+ "span",
19386
+ {
19387
+ className: "mb-5 flex h-[54px] w-[54px] items-center justify-center rounded-full [&>svg]:size-6",
19388
+ style: { backgroundColor: C.chipBg, color: C.chipIcon },
19389
+ children: item.icon
19390
+ }
19391
+ ),
19392
+ /* @__PURE__ */ jsxRuntime.jsx(
19393
+ "h3",
19394
+ {
19395
+ className: "font-heading text-lg font-bold leading-snug",
19396
+ style: { color: C.head },
19397
+ children: item.title
19398
+ }
19399
+ ),
19400
+ /* @__PURE__ */ jsxRuntime.jsx(
19401
+ "p",
19402
+ {
19403
+ className: "mt-3 font-sans text-[15px] leading-relaxed",
19404
+ style: { color: C.desc },
19405
+ children: item.description
19406
+ }
19407
+ )
19408
+ ]
19409
+ },
19410
+ i
19411
+ ))
19412
+ }
19413
+ )
19414
+ ] })
19415
+ ]
19416
+ }
19417
+ );
19418
+ }
19419
+ var TONES = {
19420
+ light: {
19421
+ bg: "#faf7f1",
19422
+ vars: {
19423
+ "--ps-eyebrow": "#1a5f56",
19424
+ "--ps-head": "#2e2d2c",
19425
+ "--ps-sub": "#74726e",
19426
+ "--ps-chip-bd": "#ccd2d0",
19427
+ "--ps-chip-fg": "#2e2d2c",
19428
+ "--ps-chip-hover-bg": "#1a5f56",
19429
+ "--ps-chip-hover-fg": "#ffffff",
19430
+ "--ps-feat-bg": "#1a5f56",
19431
+ "--ps-feat-fg": "#ffffff",
19432
+ "--ps-feat-hover-bg": "#0d3832"
19433
+ }
19434
+ },
19435
+ dark: {
19436
+ bg: "#14352e",
19437
+ vars: {
19438
+ "--ps-eyebrow": "#a7e8c4",
19439
+ "--ps-head": "#f4f1e9",
19440
+ "--ps-sub": "rgba(244,241,233,.7)",
19441
+ "--ps-chip-bd": "rgba(244,241,233,.22)",
19442
+ "--ps-chip-fg": "#f4f1e9",
19443
+ "--ps-chip-hover-bg": "#f4f1e9",
19444
+ "--ps-chip-hover-fg": "#14352e",
19445
+ "--ps-feat-bg": "#bff0d6",
19446
+ "--ps-feat-fg": "#08231e",
19447
+ "--ps-feat-hover-bg": "#a7e8c4"
19448
+ }
19449
+ }
19450
+ };
19451
+ var SIZES = {
19452
+ md: {
19453
+ pad: "py-20 sm:py-28",
19454
+ heading: "text-2xl sm:text-3xl lg:text-4xl",
19455
+ chip: "px-5 py-2.5 text-sm",
19456
+ gap: "gap-2.5",
19457
+ chipsMt: "mt-9"
19458
+ },
19459
+ sm: {
19460
+ pad: "py-16 sm:py-24",
19461
+ heading: "text-xl sm:text-2xl lg:text-3xl",
19462
+ chip: "px-3.5 py-1.5 text-[13px]",
19463
+ gap: "gap-2",
19464
+ chipsMt: "mt-7"
19465
+ }
19466
+ };
19467
+ var SCOPED_CSS = `
19468
+ .ps-chip{border:1px solid var(--ps-chip-bd);background:transparent;color:var(--ps-chip-fg);text-decoration:none;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
19469
+ .ps-chip:hover{background:var(--ps-chip-hover-bg);border-color:var(--ps-chip-hover-bg);color:var(--ps-chip-hover-fg)}
19470
+ .ps-chip[data-featured="true"]{background:var(--ps-feat-bg);border-color:var(--ps-feat-bg);color:var(--ps-feat-fg)}
19471
+ .ps-chip[data-featured="true"]:hover{background:var(--ps-feat-hover-bg);border-color:var(--ps-feat-hover-bg)}
19472
+ `;
19473
+ function PopularSearches({
19474
+ eyebrow,
19475
+ title,
19476
+ subtitle,
19477
+ chips,
19478
+ tone = "light",
19479
+ size = "md",
19480
+ align = "center",
19481
+ className
19482
+ }) {
19483
+ const t = TONES[tone];
19484
+ const s = SIZES[size];
19485
+ const centered = align === "center";
19486
+ return /* @__PURE__ */ jsxRuntime.jsxs(
19487
+ "section",
19488
+ {
19489
+ className: cn("ps-root w-full", className),
19490
+ style: __spreadValues({ backgroundColor: t.bg }, t.vars),
19491
+ children: [
19492
+ /* @__PURE__ */ jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: SCOPED_CSS } }),
19493
+ /* @__PURE__ */ jsxRuntime.jsxs(
19494
+ "div",
19495
+ {
19496
+ className: cn(
19497
+ "mx-auto w-full max-w-6xl px-6 sm:px-8",
19498
+ s.pad,
19499
+ centered && "text-center"
19500
+ ),
19501
+ children: [
19502
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("max-w-2xl", centered && "mx-auto"), children: [
19503
+ eyebrow && /* @__PURE__ */ jsxRuntime.jsx(
19504
+ "p",
19505
+ {
19506
+ className: "mb-3 font-ui text-xs font-bold uppercase tracking-[0.24em]",
19507
+ style: { color: "var(--ps-eyebrow)" },
19508
+ children: eyebrow
19509
+ }
19510
+ ),
19511
+ /* @__PURE__ */ jsxRuntime.jsx(
19512
+ "h2",
19513
+ {
19514
+ className: cn(
19515
+ "font-heading font-black uppercase leading-[1.05]",
19516
+ s.heading
19517
+ ),
19518
+ style: { color: "var(--ps-head)" },
19519
+ children: title
19520
+ }
19521
+ ),
19522
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx(
19523
+ "p",
19524
+ {
19525
+ className: cn("mt-3 max-w-[46ch] text-base", centered && "mx-auto"),
19526
+ style: { color: "var(--ps-sub)" },
19527
+ children: subtitle
19528
+ }
19529
+ )
19530
+ ] }),
19531
+ /* @__PURE__ */ jsxRuntime.jsx(
19532
+ "div",
19533
+ {
19534
+ className: cn(
19535
+ "flex max-w-4xl flex-wrap items-center",
19536
+ s.gap,
19537
+ s.chipsMt,
19538
+ centered ? "mx-auto justify-center" : "justify-start"
19539
+ ),
19540
+ children: chips.map((chip, i) => {
19541
+ const className2 = "ps-chip inline-flex items-center rounded-full font-ui font-bold " + s.chip;
19542
+ const inner = chip.label;
19543
+ return chip.href ? /* @__PURE__ */ jsxRuntime.jsx(
19544
+ "a",
19545
+ {
19546
+ href: chip.href,
19547
+ onClick: chip.onClick,
19548
+ "data-featured": chip.featured ? "true" : void 0,
19549
+ className: className2,
19550
+ children: inner
19551
+ },
19552
+ i
19553
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
19554
+ "span",
19555
+ {
19556
+ "data-featured": chip.featured ? "true" : void 0,
19557
+ className: className2,
19558
+ children: inner
19559
+ },
19560
+ i
19561
+ );
19562
+ })
19563
+ }
19564
+ )
19565
+ ]
19566
+ }
19567
+ )
19568
+ ]
19569
+ }
19570
+ );
19571
+ }
19258
19572
  function RotatingSubtitle({
19259
19573
  phrases,
19260
19574
  interval,
@@ -19950,6 +20264,7 @@ exports.PhoneCountrySelect = PhoneCountrySelect;
19950
20264
  exports.PhotoGallery = PhotoGallery;
19951
20265
  exports.PhotoTourProvider = PhotoTourProvider;
19952
20266
  exports.Picture = Picture;
20267
+ exports.PopularSearches = PopularSearches;
19953
20268
  exports.PriceProgress = PriceProgress;
19954
20269
  exports.PricingMatrixCard = PricingMatrixCard;
19955
20270
  exports.PricingTrip = PricingTrip;
@@ -19975,6 +20290,7 @@ exports.TripHeader = TripHeader;
19975
20290
  exports.TripPage = TripPage;
19976
20291
  exports.TrustpilotEmbed = TrustpilotEmbed;
19977
20292
  exports.USP = USP;
20293
+ exports.USPBand = USPBand;
19978
20294
  exports.buttonVariants = buttonVariants;
19979
20295
  exports.chipVariants = chipVariants;
19980
20296
  exports.cn = cn;