@planetaexo/design-system 0.23.0 → 0.23.2
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 +1114 -539
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +254 -18
- package/dist/index.d.ts +254 -18
- package/dist/index.js +1095 -524
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -345,6 +345,15 @@ interface BookingConfirmedCardProps {
|
|
|
345
345
|
viewBookingLabel?: string;
|
|
346
346
|
}
|
|
347
347
|
declare function BookingConfirmedCard({ title, email, message, onBack, backLabel, bookingNumber, bookingNumberLabel, viewBookingHref, viewBookingLabel, }: BookingConfirmedCardProps): react_jsx_runtime.JSX.Element;
|
|
348
|
+
interface TransferDetailsBlockProps {
|
|
349
|
+
/** Section label rendered as small caps subtitle. */
|
|
350
|
+
label: string;
|
|
351
|
+
/** Ordered list of `[term, value]` pairs to render. */
|
|
352
|
+
items: ReadonlyArray<readonly [string, React.ReactNode]>;
|
|
353
|
+
/** Optional className appended to the root container. */
|
|
354
|
+
className?: string;
|
|
355
|
+
}
|
|
356
|
+
declare function TransferDetailsBlock({ label, items, className, }: TransferDetailsBlockProps): react_jsx_runtime.JSX.Element | null;
|
|
348
357
|
/** Cartão de aventura isolado (mesmo layout que dentro de `Offer`). */
|
|
349
358
|
declare function OfferAdventureCard({ adventure }: {
|
|
350
359
|
adventure: OfferAdventureItem;
|
|
@@ -1390,6 +1399,54 @@ interface FilterPanelProps {
|
|
|
1390
1399
|
}
|
|
1391
1400
|
declare function FilterPanel({ groups, value, onChange, onClearAll, alwaysShowClear, title, className, }: FilterPanelProps): react_jsx_runtime.JSX.Element;
|
|
1392
1401
|
|
|
1402
|
+
/**
|
|
1403
|
+
* Configuration for any Trustpilot widget embedded in the design system.
|
|
1404
|
+
* Used by the reviews widget, the in-page product-mini widget, and the
|
|
1405
|
+
* hero / pricing-card slots.
|
|
1406
|
+
*/
|
|
1407
|
+
interface TrustpilotWidgetConfig {
|
|
1408
|
+
/** Trustpilot Business Unit ID. */
|
|
1409
|
+
businessUnitId: string;
|
|
1410
|
+
/** Trustpilot widget template ID. Different templates produce different layouts. */
|
|
1411
|
+
templateId?: string;
|
|
1412
|
+
/** Comma-separated SKU list (or array). Used by Trustpilot to scope reviews. */
|
|
1413
|
+
sku?: string | string[];
|
|
1414
|
+
/** Locale, e.g. "en-US". @default "en-US" */
|
|
1415
|
+
locale?: string;
|
|
1416
|
+
/** Widget container height (Trustpilot's data-style-height). @default "700px" */
|
|
1417
|
+
styleHeight?: string;
|
|
1418
|
+
/** Widget container width. @default "100%" */
|
|
1419
|
+
styleWidth?: string;
|
|
1420
|
+
/** When "hide", the widget is hidden if the business has no matching reviews. @default "hide" */
|
|
1421
|
+
noReviews?: "show" | "hide";
|
|
1422
|
+
/** "light" or "dark" — relevant for widgets that respect data-theme. */
|
|
1423
|
+
theme?: "light" | "dark";
|
|
1424
|
+
/** Product-widget token (data-token). Required by some Trustpilot templates. */
|
|
1425
|
+
token?: string;
|
|
1426
|
+
/** When true, clicking the widget scrolls the page to the reviews list. */
|
|
1427
|
+
scrollToList?: boolean;
|
|
1428
|
+
/** Horizontal alignment of the widget content (left | center | right). */
|
|
1429
|
+
styleAlignment?: "left" | "center" | "right";
|
|
1430
|
+
/**
|
|
1431
|
+
* Override the fill colour of the rating stars (Trustpilot's
|
|
1432
|
+
* data-star-color). Accepts any CSS colour — defaults to Trustpilot green.
|
|
1433
|
+
*/
|
|
1434
|
+
starColor?: string;
|
|
1435
|
+
/** Fallback link target (e.g. "https://www.trustpilot.com/review/yourdomain.com"). */
|
|
1436
|
+
fallbackHref?: string;
|
|
1437
|
+
}
|
|
1438
|
+
/**
|
|
1439
|
+
* Renders a Trustpilot widget div with the right data-* attributes and
|
|
1440
|
+
* lazily loads the bootstrap script if it isn't on the page already.
|
|
1441
|
+
*
|
|
1442
|
+
* Safe to render in any tree — the script is deduped across mounts and the
|
|
1443
|
+
* effect re-initializes the widget via `Trustpilot.loadFromElement` so the
|
|
1444
|
+
* widget renders correctly after SPA navigation or React re-mounts.
|
|
1445
|
+
*/
|
|
1446
|
+
declare function TrustpilotEmbed({ config }: {
|
|
1447
|
+
config: TrustpilotWidgetConfig;
|
|
1448
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1449
|
+
|
|
1393
1450
|
interface ItineraryRoute {
|
|
1394
1451
|
distance: string;
|
|
1395
1452
|
duration: string;
|
|
@@ -1411,6 +1468,55 @@ interface ItineraryProps {
|
|
|
1411
1468
|
}
|
|
1412
1469
|
declare function Itinerary({ title, subtitle, stops, className }: ItineraryProps): react_jsx_runtime.JSX.Element;
|
|
1413
1470
|
|
|
1471
|
+
interface ItineraryDayPhoto {
|
|
1472
|
+
src: string;
|
|
1473
|
+
alt?: string;
|
|
1474
|
+
/** Caption shown in the lightbox bottom-left. */
|
|
1475
|
+
caption?: string;
|
|
1476
|
+
/** Photo credit shown in the lightbox bottom-right. */
|
|
1477
|
+
credit?: string;
|
|
1478
|
+
}
|
|
1479
|
+
interface ItineraryDaySpec {
|
|
1480
|
+
/** Icon shown to the left — pass any ReactNode (lucide icon, emoji, img). */
|
|
1481
|
+
icon: React.ReactNode;
|
|
1482
|
+
/** Bold leading label (e.g. "Hiking", "Driving"). */
|
|
1483
|
+
label: string;
|
|
1484
|
+
/** Inline detail rendered next to the label (e.g. "2hrs · 5km"). */
|
|
1485
|
+
detail?: React.ReactNode;
|
|
1486
|
+
/** Optional secondary line below the label (e.g. "Breakfast included"). */
|
|
1487
|
+
subdetail?: React.ReactNode;
|
|
1488
|
+
}
|
|
1489
|
+
type ItineraryDayPhotoLayout = "rounded" | "fullBleed" | "fullBleedBottom";
|
|
1490
|
+
interface ItineraryDayProps {
|
|
1491
|
+
dayNumber: number;
|
|
1492
|
+
/** Override the auto-generated "Day {n}" eyebrow text. */
|
|
1493
|
+
dayLabel?: string;
|
|
1494
|
+
title: string;
|
|
1495
|
+
/** Single URL, photo object, or array of either. */
|
|
1496
|
+
photos: string | ItineraryDayPhoto | (string | ItineraryDayPhoto)[];
|
|
1497
|
+
specs?: ItineraryDaySpec[];
|
|
1498
|
+
description?: React.ReactNode;
|
|
1499
|
+
/**
|
|
1500
|
+
* Photo frame layout.
|
|
1501
|
+
* - `"rounded"` (default): rounded photo frame above the text, aligned with the content.
|
|
1502
|
+
* - `"fullBleed"`: square corners, photo above the text; on phone/tablet the photo
|
|
1503
|
+
* extends to the viewport edges while the text/specs keep their horizontal margins.
|
|
1504
|
+
* Resets to contained at the `lg` breakpoint (1024px).
|
|
1505
|
+
* - `"fullBleedBottom"`: same bleed styling as `"fullBleed"`, but the photo renders
|
|
1506
|
+
* below the description instead of above the eyebrow.
|
|
1507
|
+
*/
|
|
1508
|
+
photoLayout?: ItineraryDayPhotoLayout;
|
|
1509
|
+
className?: string;
|
|
1510
|
+
}
|
|
1511
|
+
declare const itineraryDaySpecIcons: {
|
|
1512
|
+
readonly hiking: react_jsx_runtime.JSX.Element;
|
|
1513
|
+
readonly swimming: react_jsx_runtime.JSX.Element;
|
|
1514
|
+
readonly driving: react_jsx_runtime.JSX.Element;
|
|
1515
|
+
readonly boat: react_jsx_runtime.JSX.Element;
|
|
1516
|
+
readonly lodging: react_jsx_runtime.JSX.Element;
|
|
1517
|
+
};
|
|
1518
|
+
declare function ItineraryDay({ dayNumber, dayLabel, title, photos, specs, description, photoLayout, className, }: ItineraryDayProps): react_jsx_runtime.JSX.Element;
|
|
1519
|
+
|
|
1414
1520
|
interface MenuTripSection {
|
|
1415
1521
|
id: string;
|
|
1416
1522
|
label: string;
|
|
@@ -1427,7 +1533,7 @@ interface MenuTripProps {
|
|
|
1427
1533
|
}
|
|
1428
1534
|
declare function MenuTrip({ sections, activeSection, onSelect, variant, bold, className, }: MenuTripProps): react_jsx_runtime.JSX.Element;
|
|
1429
1535
|
|
|
1430
|
-
type PhotoGalleryVariant = "grid" | "masonry" | "filmstrip" | "featured";
|
|
1536
|
+
type PhotoGalleryVariant = "grid" | "masonry" | "filmstrip" | "featured" | "carousel" | "fullBleed";
|
|
1431
1537
|
interface PhotoGalleryPhoto {
|
|
1432
1538
|
src: string;
|
|
1433
1539
|
alt?: string;
|
|
@@ -1453,26 +1559,65 @@ interface PhotoGalleryProps {
|
|
|
1453
1559
|
}
|
|
1454
1560
|
declare function PhotoGallery({ photos, variant, initialVisible, onPhotoClick, className, }: PhotoGalleryProps): react_jsx_runtime.JSX.Element | null;
|
|
1455
1561
|
|
|
1456
|
-
|
|
1457
|
-
|
|
1562
|
+
type PricingTripVariant = "card" | "bar" | "compact";
|
|
1563
|
+
/**
|
|
1564
|
+
* Estimated price in another currency, calculated from the current
|
|
1565
|
+
* exchange rate. Rendered as a collapsible list inside the `card` variant
|
|
1566
|
+
* with a footnote disclaiming the estimate.
|
|
1567
|
+
*/
|
|
1568
|
+
interface CurrencyEstimate {
|
|
1569
|
+
/** Currency label — e.g. "EUR", "USD", "British Pounds". */
|
|
1570
|
+
currency: string;
|
|
1571
|
+
/** Pre-formatted price string. The component does NOT format numbers. */
|
|
1458
1572
|
price: string;
|
|
1459
|
-
|
|
1460
|
-
|
|
1573
|
+
/** Optional currency symbol shown before the price (defaults to currency). */
|
|
1574
|
+
symbol?: string;
|
|
1461
1575
|
}
|
|
1462
|
-
type PricingTripVariant = "card" | "bar" | "compact";
|
|
1463
1576
|
interface PricingTripProps {
|
|
1464
1577
|
priceFrom: string;
|
|
1465
1578
|
currency?: string;
|
|
1466
1579
|
/** e.g. "May – August · until mid-August with sufficient water levels" */
|
|
1467
1580
|
season?: string;
|
|
1468
1581
|
departureTimes?: string[];
|
|
1469
|
-
pricingOptions?: PricingOption[];
|
|
1470
1582
|
onBook?: () => void;
|
|
1471
1583
|
bookLabel?: string;
|
|
1472
1584
|
variant?: PricingTripVariant;
|
|
1585
|
+
/**
|
|
1586
|
+
* When true, removes rounded corners on the OUTER container that PricingTrip
|
|
1587
|
+
* owns (the `bar` variant's wrapper). Inner elements — CTA button, disclosure
|
|
1588
|
+
* panels — keep their rounded shape so the component still reads as a UI
|
|
1589
|
+
* widget. For variants without a built-in container (`compact`, `card`), the
|
|
1590
|
+
* consumer's wrapper controls the outer shape; pass `sharp` as a hint so
|
|
1591
|
+
* styleguide / demo wrappers can match.
|
|
1592
|
+
*/
|
|
1593
|
+
sharp?: boolean;
|
|
1594
|
+
/**
|
|
1595
|
+
* Optional content rendered directly below the price in the `card` variant.
|
|
1596
|
+
* Use it to slot in a small badge / Trustpilot mini widget / sponsor strip
|
|
1597
|
+
* without forking the component.
|
|
1598
|
+
*/
|
|
1599
|
+
belowPrice?: React.ReactNode;
|
|
1600
|
+
/**
|
|
1601
|
+
* Trust / value-prop checklist shown inside the `card` variant just before
|
|
1602
|
+
* the CTA button (e.g. "Hassle-Free Booking", "Sustainable Travel").
|
|
1603
|
+
*/
|
|
1604
|
+
benefits?: string[];
|
|
1605
|
+
/**
|
|
1606
|
+
* Estimated prices in other currencies, rendered as a collapsible
|
|
1607
|
+
* "Show estimates in other currencies" toggle inside the `card` variant.
|
|
1608
|
+
* Includes a footnote stating the values are based on the current
|
|
1609
|
+
* exchange rate.
|
|
1610
|
+
*/
|
|
1611
|
+
currencyEstimates?: CurrencyEstimate[];
|
|
1612
|
+
/**
|
|
1613
|
+
* Rich-text explanation shown in a popover triggered by a small (?) button
|
|
1614
|
+
* next to the price (card variant only). Use it to clarify how the price
|
|
1615
|
+
* is calculated, that final pricing depends on group size, etc.
|
|
1616
|
+
*/
|
|
1617
|
+
priceInfo?: React.ReactNode;
|
|
1473
1618
|
className?: string;
|
|
1474
1619
|
}
|
|
1475
|
-
declare function PricingTrip({ priceFrom, currency, season, departureTimes,
|
|
1620
|
+
declare function PricingTrip({ priceFrom, currency, season, departureTimes, onBook, bookLabel, variant, sharp, belowPrice, benefits, currencyEstimates, priceInfo, className, }: PricingTripProps): react_jsx_runtime.JSX.Element;
|
|
1476
1621
|
|
|
1477
1622
|
interface SiteHeaderSubItem {
|
|
1478
1623
|
label: string;
|
|
@@ -1565,18 +1710,30 @@ interface TripHeaderProps {
|
|
|
1565
1710
|
duration?: TripDuration;
|
|
1566
1711
|
/** Legacy tagline — shown only when destination/duration are not provided */
|
|
1567
1712
|
tagline?: string;
|
|
1713
|
+
/**
|
|
1714
|
+
* Optional content rendered directly below the destination/duration meta
|
|
1715
|
+
* row. Use it to slot in a small Trustpilot widget, sponsor badge, etc.
|
|
1716
|
+
*/
|
|
1717
|
+
belowMeta?: React.ReactNode;
|
|
1568
1718
|
/** Pass true (or a links array) to render the transparent SiteHeader over the hero */
|
|
1569
1719
|
siteHeader?: boolean | SiteHeaderLink[];
|
|
1570
1720
|
/** Alinhado ao TripPage — reservado para densidade / hero v2 */
|
|
1571
1721
|
uiVariant?: "v1" | "v2";
|
|
1572
1722
|
className?: string;
|
|
1573
1723
|
}
|
|
1574
|
-
declare function TripHeader({ images, videoUrl, title, breadcrumb, destination, duration, tagline, siteHeader, uiVariant, className, }: TripHeaderProps): react_jsx_runtime.JSX.Element;
|
|
1724
|
+
declare function TripHeader({ images, videoUrl, title, breadcrumb, destination, duration, tagline, belowMeta, siteHeader, uiVariant, className, }: TripHeaderProps): react_jsx_runtime.JSX.Element;
|
|
1575
1725
|
|
|
1576
1726
|
interface TripHighlight {
|
|
1577
1727
|
label: string;
|
|
1578
1728
|
icon?: React.ReactNode;
|
|
1579
1729
|
}
|
|
1730
|
+
/** Long-form highlight rendered as a row inside the Overview section. */
|
|
1731
|
+
interface TripOverviewHighlight {
|
|
1732
|
+
/** Leading icon (lucide, custom SVG, anything). */
|
|
1733
|
+
icon?: React.ReactNode;
|
|
1734
|
+
/** One- or two-sentence description. Accepts rich text. */
|
|
1735
|
+
description: React.ReactNode;
|
|
1736
|
+
}
|
|
1580
1737
|
interface TripInfoGroup {
|
|
1581
1738
|
title: string;
|
|
1582
1739
|
icon?: React.ReactNode;
|
|
@@ -1588,17 +1745,22 @@ interface TripItineraryStep {
|
|
|
1588
1745
|
description: React.ReactNode;
|
|
1589
1746
|
isTransfer?: boolean;
|
|
1590
1747
|
}
|
|
1748
|
+
/**
|
|
1749
|
+
* Day-by-day itinerary entry, rendered as a stacked full-bleed `<ItineraryDay>`.
|
|
1750
|
+
* Accepts the same shape as `ItineraryDayProps` minus the layout overrides
|
|
1751
|
+
* (the trip page controls those).
|
|
1752
|
+
*/
|
|
1753
|
+
type TripItineraryDay = Omit<ItineraryDayProps, "photoLayout" | "className">;
|
|
1591
1754
|
interface TripReview {
|
|
1592
1755
|
author: string;
|
|
1593
1756
|
text: string;
|
|
1594
1757
|
rating?: number;
|
|
1595
1758
|
}
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
}
|
|
1759
|
+
/**
|
|
1760
|
+
* @deprecated Use `TrustpilotWidgetConfig` instead. Re-export kept for
|
|
1761
|
+
* backwards compatibility with consumers that imported the old name.
|
|
1762
|
+
*/
|
|
1763
|
+
type TripTrustpilotWidget = TrustpilotWidgetConfig;
|
|
1602
1764
|
interface TripMeetingPoint {
|
|
1603
1765
|
name: string;
|
|
1604
1766
|
address: string;
|
|
@@ -1608,6 +1770,27 @@ interface TripFaq {
|
|
|
1608
1770
|
question: string;
|
|
1609
1771
|
answer: React.ReactNode;
|
|
1610
1772
|
}
|
|
1773
|
+
/**
|
|
1774
|
+
* Per-section icon overrides for the trip details accordion. Each value
|
|
1775
|
+
* replaces the default lucide icon for that accordion item (rendered in the
|
|
1776
|
+
* primary brand colour). Provide any ReactNode — a lucide icon, an inline SVG,
|
|
1777
|
+
* or an `<img>` for custom artwork.
|
|
1778
|
+
*/
|
|
1779
|
+
interface TripSectionIcons {
|
|
1780
|
+
/** Top-of-page sections */
|
|
1781
|
+
overview?: React.ReactNode;
|
|
1782
|
+
itinerary?: React.ReactNode;
|
|
1783
|
+
whatIsIncluded?: React.ReactNode;
|
|
1784
|
+
/** Accordion sections */
|
|
1785
|
+
keyInfo?: React.ReactNode;
|
|
1786
|
+
meetingPoint?: React.ReactNode;
|
|
1787
|
+
optionalExtras?: React.ReactNode;
|
|
1788
|
+
whatToBring?: React.ReactNode;
|
|
1789
|
+
accommodation?: React.ReactNode;
|
|
1790
|
+
food?: React.ReactNode;
|
|
1791
|
+
weather?: React.ReactNode;
|
|
1792
|
+
terms?: React.ReactNode;
|
|
1793
|
+
}
|
|
1611
1794
|
|
|
1612
1795
|
interface TripPageProps {
|
|
1613
1796
|
title: string;
|
|
@@ -1627,21 +1810,74 @@ interface TripPageProps {
|
|
|
1627
1810
|
}>;
|
|
1628
1811
|
highlights?: TripHighlight[];
|
|
1629
1812
|
infoGroups?: TripInfoGroup[];
|
|
1813
|
+
/**
|
|
1814
|
+
* Rich-text "Key info" content (WYSIWYG). When provided, replaces the
|
|
1815
|
+
* structured `infoGroups` render inside the accordion item — useful when
|
|
1816
|
+
* the source of truth is a free-form WP WYSIWYG field instead of
|
|
1817
|
+
* structured groups.
|
|
1818
|
+
*/
|
|
1819
|
+
keyInfo?: React.ReactNode;
|
|
1630
1820
|
recommendedFor?: string;
|
|
1631
1821
|
overview?: React.ReactNode;
|
|
1822
|
+
/** Optional list of long-form highlights rendered inside the Overview section. */
|
|
1823
|
+
overviewHighlights?: TripOverviewHighlight[];
|
|
1632
1824
|
itinerary?: TripItineraryStep[];
|
|
1825
|
+
/**
|
|
1826
|
+
* Day-by-day itinerary, rendered as stacked full-bleed `<ItineraryDay>` cards
|
|
1827
|
+
* (photo extends to the viewport edges on mobile). Takes precedence over
|
|
1828
|
+
* `itinerary` when both are provided.
|
|
1829
|
+
*/
|
|
1830
|
+
itineraryDays?: TripItineraryDay[];
|
|
1633
1831
|
gallery?: (string | PhotoGalleryPhoto)[];
|
|
1634
1832
|
included?: string[];
|
|
1833
|
+
notIncluded?: string[];
|
|
1635
1834
|
whatToBring?: string[];
|
|
1636
1835
|
weather?: React.ReactNode;
|
|
1836
|
+
optionalExtras?: React.ReactNode;
|
|
1837
|
+
accommodation?: React.ReactNode;
|
|
1838
|
+
food?: React.ReactNode;
|
|
1839
|
+
termsAndConditions?: React.ReactNode;
|
|
1637
1840
|
meetingPoints?: TripMeetingPoint[];
|
|
1841
|
+
/**
|
|
1842
|
+
* Rich-text "Meeting point" content (WYSIWYG). When provided, replaces
|
|
1843
|
+
* the structured `meetingPoints` render inside the accordion item.
|
|
1844
|
+
*/
|
|
1845
|
+
meetingPoint?: React.ReactNode;
|
|
1638
1846
|
faqs?: TripFaq[];
|
|
1847
|
+
/**
|
|
1848
|
+
* Per-section icon overrides for the trip details accordion. When a value
|
|
1849
|
+
* is supplied for a section, it replaces the hardcoded lucide icon next
|
|
1850
|
+
* to that section's heading. Use this to make the accordion icons
|
|
1851
|
+
* editor-driven (e.g. an ACF Select on each section group).
|
|
1852
|
+
*/
|
|
1853
|
+
sectionIcons?: TripSectionIcons;
|
|
1639
1854
|
reviews?: TripReview[];
|
|
1855
|
+
/** When provided, replaces the manual `reviews` block with a Trustpilot widget. */
|
|
1856
|
+
trustpilot?: TripTrustpilotWidget;
|
|
1857
|
+
/**
|
|
1858
|
+
* Small Trustpilot "Product Mini" widget rendered inside the pricing
|
|
1859
|
+
* sidebar (between the season line and the departure times). Independent
|
|
1860
|
+
* from `trustpilot`, since the two widgets typically use different
|
|
1861
|
+
* template-ids and visual styling.
|
|
1862
|
+
*/
|
|
1863
|
+
trustpilotMini?: TripTrustpilotWidget;
|
|
1864
|
+
/**
|
|
1865
|
+
* Small Trustpilot widget rendered inside the hero, directly below the
|
|
1866
|
+
* destination/duration row. Independent from `trustpilotMini` because the
|
|
1867
|
+
* hero usually needs a dark theme (white text on dark image) while the
|
|
1868
|
+
* pricing card sidebar usually doesn't.
|
|
1869
|
+
*/
|
|
1870
|
+
trustpilotHero?: TripTrustpilotWidget;
|
|
1640
1871
|
priceFrom: string;
|
|
1641
1872
|
currency?: string;
|
|
1642
1873
|
season?: string;
|
|
1643
1874
|
departureTimes?: string[];
|
|
1644
|
-
|
|
1875
|
+
/** Trust / value-prop checklist shown inside the booking sidebar card. */
|
|
1876
|
+
benefits?: string[];
|
|
1877
|
+
/** Estimated prices in other currencies (collapsible list in the sidebar card). */
|
|
1878
|
+
currencyEstimates?: CurrencyEstimate[];
|
|
1879
|
+
/** Rich text shown in a popover triggered by the (?) button next to the price. */
|
|
1880
|
+
priceInfo?: React.ReactNode;
|
|
1645
1881
|
onBook?: () => void;
|
|
1646
1882
|
bookLabel?: string;
|
|
1647
1883
|
/** Pass true (or a links array) to render the transparent SiteHeader over the hero */
|
|
@@ -1652,7 +1888,7 @@ interface TripPageProps {
|
|
|
1652
1888
|
features?: Record<string, boolean>;
|
|
1653
1889
|
className?: string;
|
|
1654
1890
|
}
|
|
1655
|
-
declare function TripPage({ title, tagline, destination, duration, images, videoUrl, breadcrumb, highlights, infoGroups, recommendedFor, overview, itinerary, gallery, included, whatToBring, weather, meetingPoints, faqs, reviews, priceFrom, currency, season, departureTimes,
|
|
1891
|
+
declare function TripPage({ title, tagline, destination, duration, images, videoUrl, breadcrumb, highlights, infoGroups, keyInfo, recommendedFor, overview, overviewHighlights, itinerary, itineraryDays, gallery, included, notIncluded, whatToBring, weather, optionalExtras, accommodation, food, termsAndConditions, meetingPoints, meetingPoint, faqs, sectionIcons, reviews, trustpilot, trustpilotMini, trustpilotHero, priceFrom, currency, season, departureTimes, benefits, currencyEstimates, priceInfo, onBook, bookLabel, siteHeader, uiVariant, features, className, }: TripPageProps): react_jsx_runtime.JSX.Element;
|
|
1656
1892
|
|
|
1657
1893
|
type ActivityCardSize = "sm" | "md" | "lg";
|
|
1658
1894
|
interface ActivityCardProps {
|
|
@@ -2125,4 +2361,4 @@ declare function LeadCapturePopup({ config: _config, }: {
|
|
|
2125
2361
|
config: LeadCapturePopupConfig;
|
|
2126
2362
|
}): react_jsx_runtime.JSX.Element | null;
|
|
2127
2363
|
|
|
2128
|
-
export { ActivityCard, type ActivityCardProps, type ActivityCardSize, AgentContactCard, type AgentContactCardProps, Alert, type AlertProps, type AlertVariant, BirthDateField, type BirthDateFieldProps, type BookingAdventure, BookingConfirmation, BookingConfirmationEmail, type BookingConfirmationEmailLabels, type BookingConfirmationEmailProps, type BookingConfirmationLabels, type BookingConfirmationProps, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, type BookingDepositInfo, BookingDetails, type BookingDetailsLabels, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingOtpEmail, type BookingOtpEmailProps, BookingShell, type BookingShellProps, type BookingStatus, type BookingSummaryLineItem, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, type DatePickerFieldProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, type EmailTokens, type FilterGroup, type FilterItem, FilterPanel, type FilterPanelProps, FloatingInput, type FloatingInputProps, FloatingSelect, type FloatingSelectProps, Itinerary, type ItineraryProps, type ItineraryRoute, type ItineraryStop, LOGO_PLANETAEXO_DATA_URI, LeadCapturePopup, type LeadCapturePopupConfig, MenuTrip, type MenuTripProps, type MenuTripSection, type MenuTripVariant, OTPCodeInput, type OTPCodeInputProps, Offer, OfferAdventureCard, type OfferAdventureItem, type OfferAgentInfo, type OfferConfirmedState, type OfferDepositInfo, type OfferLabels, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, PaymentAmountSelector, type PaymentAmountSelectorProps, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, PaymentReceiptEmail, type PaymentReceiptEmailLabels, type PaymentReceiptEmailProps, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant,
|
|
2364
|
+
export { ActivityCard, type ActivityCardProps, type ActivityCardSize, AgentContactCard, type AgentContactCardProps, Alert, type AlertProps, type AlertVariant, BirthDateField, type BirthDateFieldProps, type BookingAdventure, BookingConfirmation, BookingConfirmationEmail, type BookingConfirmationEmailLabels, type BookingConfirmationEmailProps, type BookingConfirmationLabels, type BookingConfirmationProps, BookingConfirmedCard, type BookingConfirmedCardProps, type BookingContact, type BookingDepositInfo, BookingDetails, type BookingDetailsLabels, type BookingDetailsProps, BookingForm, type BookingFormProps, type BookingFormValues, BookingOtpEmail, type BookingOtpEmailProps, BookingShell, type BookingShellProps, type BookingStatus, type BookingSummaryLineItem, type BookingTraveller, Button, type ButtonProps, COUNTRIES, type ConfirmationAdventure, type ConfirmationDepositInfo, type ConfirmationLineItem, type ConfirmationTraveller, CounterField, type CounterFieldProps, type CountryOption, CountrySearchField, type CountrySearchFieldProps, type CurrencyEstimate, DEFAULT_HEADER_LINKS, DEFAULT_LANGUAGES, DatePickerField, type DatePickerFieldProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, type EmailTokens, type FilterGroup, type FilterItem, FilterPanel, type FilterPanelProps, FloatingInput, type FloatingInputProps, FloatingSelect, type FloatingSelectProps, Itinerary, ItineraryDay, type ItineraryDayPhoto, type ItineraryDayPhotoLayout, type ItineraryDayProps, type ItineraryDaySpec, type ItineraryProps, type ItineraryRoute, type ItineraryStop, LOGO_PLANETAEXO_DATA_URI, LeadCapturePopup, type LeadCapturePopupConfig, MenuTrip, type MenuTripProps, type MenuTripSection, type MenuTripVariant, OTPCodeInput, type OTPCodeInputProps, Offer, OfferAdventureCard, type OfferAdventureItem, type OfferAgentInfo, type OfferConfirmedState, type OfferDepositInfo, type OfferLabels, type OfferOptionalItem, type OfferProps, type OfferSummaryLineItem, PaymentAmountSelector, type PaymentAmountSelectorProps, type PaymentMethodOption, PaymentMethodSelector, type PaymentMethodSelectorProps, PaymentModalShell, type PaymentModalShellProps, PaymentReceiptEmail, type PaymentReceiptEmailLabels, type PaymentReceiptEmailProps, PhoneCountrySelect, PhotoGallery, type PhotoGalleryPhoto, type PhotoGalleryProps, type PhotoGalleryVariant, PricingTrip, type PricingTripProps, type PricingTripVariant, type RegistrationAdventure, type RegistrationBooking, type RegistrationEmergencyContactValue, type RegistrationField, type RegistrationFieldOption, type RegistrationFieldType, type RegistrationFieldValue, RegistrationForm, type RegistrationFormLabels, type RegistrationFormProps, type RegistrationFormValues, type RegistrationNameValue, type RegistrationPhoneValue, RegistrationSuccessCard, type RegistrationSuccessCardProps, type RegistrationTerms, type RegistrationTraveller, SiteHeader, type SiteHeaderLanguage, type SiteHeaderLink, type SiteHeaderProps, type SiteHeaderSubItem, type SiteHeaderVariant, type StripeAppearance, type SuggestedTraveller, TERMS_ACCEPT_KEY, TermsSection, type TermsSectionProps, ThemeToggle, Toast, type ToastProps, type ToastVariant, TransferDetailsBlock, type TransferDetailsBlockProps, type TravellerFormConfig, type TravellerFormData, TravellerFormInviteEmail, type TravellerFormInviteEmailLabels, type TravellerFormInviteEmailProps, type TravellerFormInviteLink, type TravellerFormLabels, TripCard, type TripCardCta, type TripCardProps, type TripCardSize, type TripCardStatus, type TripDuration, type TripFaq, TripHeader, type TripHeaderProps, type TripHighlight, type TripInfoGroup, type TripItineraryDay, type TripItineraryStep, type TripMeetingPoint, type TripOverviewHighlight, TripPage, type TripPageProps, type TripReview, type TripTrustpilotWidget, TrustpilotEmbed, type TrustpilotWidgetConfig, buttonVariants, cn, emailTokens, getStripeAppearance, itineraryDaySpecIcons, stripeAppearance, wrapEmailHtml };
|