@harshit-wander/component-lib 1.1.15 → 1.1.16
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/README.md +55 -50
- package/dist/index.cjs +790 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +203 -1
- package/dist/index.d.ts +203 -1
- package/dist/index.js +784 -26
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -154,6 +154,39 @@ interface GalleryPhotoProps extends HTMLAttributes<HTMLElement> {
|
|
|
154
154
|
|
|
155
155
|
declare const GalleryPhoto: react.ForwardRefExoticComponent<GalleryPhotoProps & react.RefAttributes<HTMLDivElement>>;
|
|
156
156
|
|
|
157
|
+
interface MarqueeImage {
|
|
158
|
+
src: string;
|
|
159
|
+
alt?: string | undefined;
|
|
160
|
+
}
|
|
161
|
+
interface ImageMarqueeProps {
|
|
162
|
+
/** Images to scroll. */
|
|
163
|
+
images: MarqueeImage[];
|
|
164
|
+
/** One full loop duration in seconds. */
|
|
165
|
+
durationSec?: number | undefined;
|
|
166
|
+
/** Gap between items, in pixels. */
|
|
167
|
+
gap?: number | undefined;
|
|
168
|
+
/** Fixed item width (px), paired with `alternatingHeights`. */
|
|
169
|
+
fixedWidth?: number | undefined;
|
|
170
|
+
/** Heights (px) cycled per image when `fixedWidth` is set, e.g. [400, 250]. */
|
|
171
|
+
alternatingHeights?: number[] | undefined;
|
|
172
|
+
/** First N slides render immediately; the rest mount when scrolled into view. */
|
|
173
|
+
eagerImageCount?: number | undefined;
|
|
174
|
+
className?: string | undefined;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Infinite horizontal marquee of images. The track duplicates the strip and
|
|
179
|
+
* translates -50% for a seamless loop; `prefers-reduced-motion` disables the
|
|
180
|
+
* animation (the strip becomes horizontally scrollable instead).
|
|
181
|
+
*
|
|
182
|
+
* Sizing: pass `fixedWidth` + `alternatingHeights` for a fixed-width cadence,
|
|
183
|
+
* otherwise a built-in repeating size pattern is used.
|
|
184
|
+
*/
|
|
185
|
+
declare const ImageMarquee: {
|
|
186
|
+
({ images, durationSec, gap, fixedWidth, alternatingHeights, eagerImageCount, className }: ImageMarqueeProps): react_jsx_runtime.JSX.Element | null;
|
|
187
|
+
displayName: string;
|
|
188
|
+
};
|
|
189
|
+
|
|
157
190
|
interface LocationItem {
|
|
158
191
|
location: string;
|
|
159
192
|
address: string;
|
|
@@ -164,6 +197,21 @@ interface LocationCardProps extends HTMLAttributes<HTMLElement>, LocationItem {
|
|
|
164
197
|
|
|
165
198
|
declare const LocationCard: react.ForwardRefExoticComponent<LocationCardProps & react.RefAttributes<HTMLElement>>;
|
|
166
199
|
|
|
200
|
+
interface LuxuryTripCardProps extends HTMLAttributes<HTMLElement> {
|
|
201
|
+
/** Background image URL. */
|
|
202
|
+
image: string;
|
|
203
|
+
/** Accessible description of the image. */
|
|
204
|
+
alt: string;
|
|
205
|
+
/** Trip title (rendered in the serif display font). */
|
|
206
|
+
title: string;
|
|
207
|
+
/** Optional duration label, e.g. "12N/13D". Shows a clock icon when set. */
|
|
208
|
+
duration?: string | undefined;
|
|
209
|
+
/** Render as an anchor to this URL. Without it, renders a non-link container. */
|
|
210
|
+
href?: string | undefined;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
declare const LuxuryTripCard: react.ForwardRefExoticComponent<LuxuryTripCardProps & react.RefAttributes<HTMLElement>>;
|
|
214
|
+
|
|
167
215
|
interface MonthTab {
|
|
168
216
|
id: string;
|
|
169
217
|
label: string;
|
|
@@ -539,6 +587,146 @@ interface HomeHeroProps extends HTMLAttributes<HTMLElement> {
|
|
|
539
587
|
|
|
540
588
|
declare const HomeHero: react.ForwardRefExoticComponent<HomeHeroProps & react.RefAttributes<HTMLElement>>;
|
|
541
589
|
|
|
590
|
+
interface LuxuryCategoryNavItem {
|
|
591
|
+
/** Unique identifier for the tab. */
|
|
592
|
+
id: string;
|
|
593
|
+
/** Visible label (rendered uppercase). */
|
|
594
|
+
label: string;
|
|
595
|
+
}
|
|
596
|
+
interface LuxuryCategoryNavProps extends HTMLAttributes<HTMLElement> {
|
|
597
|
+
/** Tabs to render in order. When empty, the component renders nothing. */
|
|
598
|
+
items: LuxuryCategoryNavItem[];
|
|
599
|
+
/** Id of the tab active on first render. */
|
|
600
|
+
defaultActiveId?: string | undefined;
|
|
601
|
+
/** Called with the tab id whenever the active tab changes. */
|
|
602
|
+
onActiveChange?: ((id: string) => void) | undefined;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
declare const LuxuryCategoryNav: {
|
|
606
|
+
({ items, defaultActiveId, onActiveChange, className, ...rest }: LuxuryCategoryNavProps): react_jsx_runtime.JSX.Element | null;
|
|
607
|
+
displayName: string;
|
|
608
|
+
};
|
|
609
|
+
|
|
610
|
+
interface LuxuryDestinationSectionProps extends HTMLAttributes<HTMLElement> {
|
|
611
|
+
/** Small uppercase eyebrow label above the title. */
|
|
612
|
+
badge: string;
|
|
613
|
+
/** Section title, rendered in the serif display font. */
|
|
614
|
+
title: string;
|
|
615
|
+
/** Body copy. Split on `\n` — each line renders as its own paragraph. */
|
|
616
|
+
description?: string | undefined;
|
|
617
|
+
/** Still image shown in the hero frame (and used as the video poster fallback). */
|
|
618
|
+
heroImage?: {
|
|
619
|
+
src: string;
|
|
620
|
+
alt?: string | undefined;
|
|
621
|
+
} | undefined;
|
|
622
|
+
/** Looping background video for the hero frame. */
|
|
623
|
+
heroVideo?: {
|
|
624
|
+
src: string;
|
|
625
|
+
poster?: string | undefined;
|
|
626
|
+
} | undefined;
|
|
627
|
+
/** Luxury trip cards rendered in the horizontally scrolling row. */
|
|
628
|
+
trips: LuxuryTripCardProps[];
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
declare const LuxuryDestinationSection: react.ForwardRefExoticComponent<LuxuryDestinationSectionProps & react.RefAttributes<HTMLElement>>;
|
|
632
|
+
|
|
633
|
+
interface LuxuryHeroProps extends HTMLAttributes<HTMLElement> {
|
|
634
|
+
/** Background video source URL. */
|
|
635
|
+
videoSrc: string;
|
|
636
|
+
/** Poster image shown before the video loads. */
|
|
637
|
+
videoPoster: string;
|
|
638
|
+
/** MIME type of the video source. Defaults to "video/mp4". */
|
|
639
|
+
videoType?: string | undefined;
|
|
640
|
+
/** Main heading, rendered in the serif display font. Defaults to "WanderOn Experiences". */
|
|
641
|
+
title?: string | undefined;
|
|
642
|
+
/** First subline beneath the gold rule. */
|
|
643
|
+
subline1?: string | undefined;
|
|
644
|
+
/** Second subline beneath the first. */
|
|
645
|
+
subline2?: string | undefined;
|
|
646
|
+
/** CTA button label. Defaults to "Connect with Concierge". */
|
|
647
|
+
ctaLabel?: string | undefined;
|
|
648
|
+
/** Fired when the CTA button is clicked. */
|
|
649
|
+
onCtaClick?: (() => void) | undefined;
|
|
650
|
+
/** Logo link target. Defaults to "/". */
|
|
651
|
+
homeHref?: string | undefined;
|
|
652
|
+
/** Logo image URL. */
|
|
653
|
+
logoSrc?: string | undefined;
|
|
654
|
+
/** Whether to render the top logo. Defaults to true. */
|
|
655
|
+
showLogo?: boolean | undefined;
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
declare const LuxuryHero: react.ForwardRefExoticComponent<LuxuryHeroProps & react.RefAttributes<HTMLElement>>;
|
|
659
|
+
|
|
660
|
+
/** A single dial-code option for the country select. */
|
|
661
|
+
interface DialCodeOption {
|
|
662
|
+
/** E.164 dial code, e.g. "+91". */
|
|
663
|
+
code: string;
|
|
664
|
+
/** Human-readable label, e.g. "India (+91)". */
|
|
665
|
+
label: string;
|
|
666
|
+
}
|
|
667
|
+
interface LuxuryInquiryFormProps extends Omit<HTMLAttributes<HTMLElement>, 'onSubmit'> {
|
|
668
|
+
/**
|
|
669
|
+
* Called with the collected lead. `mobile` is the dial code concatenated with
|
|
670
|
+
* the local digits (e.g. "+9198…"). May be async; rejection surfaces a form error.
|
|
671
|
+
*/
|
|
672
|
+
onSubmit: (data: {
|
|
673
|
+
name: string;
|
|
674
|
+
mobile: string;
|
|
675
|
+
}) => void | Promise<void>;
|
|
676
|
+
/** Heading text (rendered in the serif display font). */
|
|
677
|
+
title?: string | undefined;
|
|
678
|
+
/** Supporting line shown under the heading. */
|
|
679
|
+
subheading?: string | undefined;
|
|
680
|
+
/** Placeholder for the name field. */
|
|
681
|
+
namePlaceholder?: string | undefined;
|
|
682
|
+
/** Placeholder for the phone field. */
|
|
683
|
+
phonePlaceholder?: string | undefined;
|
|
684
|
+
/** Selectable dial codes. Defaults to a small India/USA/UK/UAE set. */
|
|
685
|
+
dialCodes?: DialCodeOption[] | undefined;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
declare const LuxuryInquiryForm: {
|
|
689
|
+
({ onSubmit, title, subheading, namePlaceholder, phonePlaceholder, dialCodes, className, ...rest }: LuxuryInquiryFormProps): react_jsx_runtime.JSX.Element;
|
|
690
|
+
displayName: string;
|
|
691
|
+
};
|
|
692
|
+
|
|
693
|
+
interface LuxuryIntroProps extends HTMLAttributes<HTMLElement> {
|
|
694
|
+
/** Pill label above the heading (uppercase, gold outline). */
|
|
695
|
+
badge?: string | undefined;
|
|
696
|
+
/** Section heading, rendered as an `<h2>` in the serif display font. */
|
|
697
|
+
heading: string;
|
|
698
|
+
/** Body paragraph beneath the heading. */
|
|
699
|
+
body: string;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
declare const LuxuryIntro: react.ForwardRefExoticComponent<LuxuryIntroProps & react.RefAttributes<HTMLElement>>;
|
|
703
|
+
|
|
704
|
+
/** A single review entry in the testimonials row. */
|
|
705
|
+
interface LuxuryReview {
|
|
706
|
+
/** First (portrait) photo URL. */
|
|
707
|
+
image1: string;
|
|
708
|
+
/** Second (landscape) photo URL. */
|
|
709
|
+
image2: string;
|
|
710
|
+
/** The quote text (rendered in quotation marks). */
|
|
711
|
+
content: string;
|
|
712
|
+
/** Customer name shown beneath the quote. */
|
|
713
|
+
name: string;
|
|
714
|
+
/** Optional "continue reading" link target. */
|
|
715
|
+
link?: string | undefined;
|
|
716
|
+
}
|
|
717
|
+
interface LuxuryTestimonialsProps extends HTMLAttributes<HTMLElement> {
|
|
718
|
+
/** Reviews rendered as horizontally-scrolling cards. */
|
|
719
|
+
reviews: LuxuryReview[];
|
|
720
|
+
/** Serif title beneath the badge. */
|
|
721
|
+
heading?: string | undefined;
|
|
722
|
+
/** Pill label above the heading (uppercase, gold). */
|
|
723
|
+
badge?: string | undefined;
|
|
724
|
+
/** Clamp the quote text to this many lines. */
|
|
725
|
+
lineClamp?: number | undefined;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
declare const LuxuryTestimonials: react.ForwardRefExoticComponent<LuxuryTestimonialsProps & react.RefAttributes<HTMLElement>>;
|
|
729
|
+
|
|
542
730
|
interface NavLink {
|
|
543
731
|
label: string;
|
|
544
732
|
href: string;
|
|
@@ -720,6 +908,20 @@ declare const theme: {
|
|
|
720
908
|
readonly contentWidth: "760px";
|
|
721
909
|
readonly mobileBreakpoint: "768px";
|
|
722
910
|
};
|
|
911
|
+
readonly luxury: {
|
|
912
|
+
readonly colors: {
|
|
913
|
+
readonly gold: "#C5A059";
|
|
914
|
+
readonly goldStrong: "#A68411";
|
|
915
|
+
readonly goldLight: "#F3E5AB";
|
|
916
|
+
readonly goldSoft: "#E8D5B7";
|
|
917
|
+
readonly heading: "#9A7B4F";
|
|
918
|
+
readonly ink: "#0C060E";
|
|
919
|
+
readonly inkCard: "#1A1A1A";
|
|
920
|
+
readonly onDark: "#FFFDF9";
|
|
921
|
+
readonly text: "#2C2C2C";
|
|
922
|
+
};
|
|
923
|
+
readonly font: "var(--font-luxury-family, \"Playfair Display\"), Georgia, serif";
|
|
924
|
+
};
|
|
723
925
|
readonly colors: {
|
|
724
926
|
readonly primary: "#01AFD1";
|
|
725
927
|
readonly primaryHover: "#0089A6";
|
|
@@ -768,4 +970,4 @@ declare const theme: {
|
|
|
768
970
|
};
|
|
769
971
|
type Theme = typeof theme;
|
|
770
972
|
|
|
771
|
-
export { BottomNav, type BottomNavItem, type BottomNavProps, type Brand, BrandLogo, type BrandLogoProps, BrandsSection, type BrandsSectionProps, CategoryNavbar, type CategoryNavbarProps, ContactForm, type ContactFormCountryCode, type ContactFormDestination, type ContactFormProps, type ContactFormValues, ContactSection, type ContactSectionProps, CtaBanner, type CtaBannerCta, type CtaBannerProps, DestinationCard, type DestinationCardProps, type DestinationItem, DestinationsSection, type DestinationsSectionProps, EventBanner, type EventBannerProps, EventCarousel, type EventCarouselImageItem, type EventCarouselProps, type EventCarouselVideoItem, EventVideoBanner, type EventVideoBannerProps, ExpandableValueCard, type ExpandableValueCardProps, ExploreCard, type ExploreCardProps, type ExploreItem, ExploreSection, type ExploreSectionProps, FaqExpandable, type FaqExpandableProps, type FaqItem, FaqSection, type FaqSectionProps, FeatureCard, type FeatureCardProps, Footer, type FooterColumn, type FooterContact, type FooterLink, type FooterProps, type FooterSocialLink, GalleryPhoto, type GalleryPhotoData, type GalleryPhotoProps, GallerySection, type GallerySectionProps, Hero, type HeroProps, type HeroReview, type HeroVariant, HomeHero, type HomeHeroProps, type HomeHeroReview, type HomeHeroTypewriterOptions, LocationCard, type LocationCardProps, type LocationItem, type MonthTab, MonthTabs, type MonthTabsProps, type NavCategory, type NavCategoryItem, type NavLink, Navbar, type NavbarProps, OfficesSection, type OfficesSectionProps, PackageCard, type PackageCardProps, type PackageItem, PackagesCarousel, type PackagesCarouselProps, SectionHeader, type SectionHeaderAlign, type SectionHeaderProps, SiteHeader, type SiteHeaderProps, TeamInfoCard, type TeamInfoCardProps, type TeamMember, TeamSection, type TeamSectionProps, type TeamSocialLink, TestimonialCard, type TestimonialCardProps, type TestimonialItem, TestimonialsCarousel, type TestimonialsCarouselProps, TextSection, type TextSectionAlign, type TextSectionProps, type Theme, TripCategoryCard, type TripCategoryCardProps, type TripsCategoryItem, TripsCategorySection, type TripsCategorySectionCta, type TripsCategorySectionProps, UctMobileBanner, type UctMobileBannerProps, type ValueItem, ValuesSection, type ValuesSectionProps, type Warrior, WarriorCard, type WarriorCardProps, WarriorsSection, type WarriorsSectionProps, type WhyChooseFeature, WhyChooseSection, type WhyChooseSectionProps, theme };
|
|
973
|
+
export { BottomNav, type BottomNavItem, type BottomNavProps, type Brand, BrandLogo, type BrandLogoProps, BrandsSection, type BrandsSectionProps, CategoryNavbar, type CategoryNavbarProps, ContactForm, type ContactFormCountryCode, type ContactFormDestination, type ContactFormProps, type ContactFormValues, ContactSection, type ContactSectionProps, CtaBanner, type CtaBannerCta, type CtaBannerProps, DestinationCard, type DestinationCardProps, type DestinationItem, DestinationsSection, type DestinationsSectionProps, type DialCodeOption, EventBanner, type EventBannerProps, EventCarousel, type EventCarouselImageItem, type EventCarouselProps, type EventCarouselVideoItem, EventVideoBanner, type EventVideoBannerProps, ExpandableValueCard, type ExpandableValueCardProps, ExploreCard, type ExploreCardProps, type ExploreItem, ExploreSection, type ExploreSectionProps, FaqExpandable, type FaqExpandableProps, type FaqItem, FaqSection, type FaqSectionProps, FeatureCard, type FeatureCardProps, Footer, type FooterColumn, type FooterContact, type FooterLink, type FooterProps, type FooterSocialLink, GalleryPhoto, type GalleryPhotoData, type GalleryPhotoProps, GallerySection, type GallerySectionProps, Hero, type HeroProps, type HeroReview, type HeroVariant, HomeHero, type HomeHeroProps, type HomeHeroReview, type HomeHeroTypewriterOptions, ImageMarquee, type ImageMarqueeProps, LocationCard, type LocationCardProps, type LocationItem, LuxuryCategoryNav, type LuxuryCategoryNavItem, type LuxuryCategoryNavProps, LuxuryDestinationSection, type LuxuryDestinationSectionProps, LuxuryHero, type LuxuryHeroProps, LuxuryInquiryForm, type LuxuryInquiryFormProps, LuxuryIntro, type LuxuryIntroProps, type LuxuryReview, LuxuryTestimonials, type LuxuryTestimonialsProps, LuxuryTripCard, type LuxuryTripCardProps, type MarqueeImage, type MonthTab, MonthTabs, type MonthTabsProps, type NavCategory, type NavCategoryItem, type NavLink, Navbar, type NavbarProps, OfficesSection, type OfficesSectionProps, PackageCard, type PackageCardProps, type PackageItem, PackagesCarousel, type PackagesCarouselProps, SectionHeader, type SectionHeaderAlign, type SectionHeaderProps, SiteHeader, type SiteHeaderProps, TeamInfoCard, type TeamInfoCardProps, type TeamMember, TeamSection, type TeamSectionProps, type TeamSocialLink, TestimonialCard, type TestimonialCardProps, type TestimonialItem, TestimonialsCarousel, type TestimonialsCarouselProps, TextSection, type TextSectionAlign, type TextSectionProps, type Theme, TripCategoryCard, type TripCategoryCardProps, type TripsCategoryItem, TripsCategorySection, type TripsCategorySectionCta, type TripsCategorySectionProps, UctMobileBanner, type UctMobileBannerProps, type ValueItem, ValuesSection, type ValuesSectionProps, type Warrior, WarriorCard, type WarriorCardProps, WarriorsSection, type WarriorsSectionProps, type WhyChooseFeature, WhyChooseSection, type WhyChooseSectionProps, theme };
|
package/dist/index.d.ts
CHANGED
|
@@ -154,6 +154,39 @@ interface GalleryPhotoProps extends HTMLAttributes<HTMLElement> {
|
|
|
154
154
|
|
|
155
155
|
declare const GalleryPhoto: react.ForwardRefExoticComponent<GalleryPhotoProps & react.RefAttributes<HTMLDivElement>>;
|
|
156
156
|
|
|
157
|
+
interface MarqueeImage {
|
|
158
|
+
src: string;
|
|
159
|
+
alt?: string | undefined;
|
|
160
|
+
}
|
|
161
|
+
interface ImageMarqueeProps {
|
|
162
|
+
/** Images to scroll. */
|
|
163
|
+
images: MarqueeImage[];
|
|
164
|
+
/** One full loop duration in seconds. */
|
|
165
|
+
durationSec?: number | undefined;
|
|
166
|
+
/** Gap between items, in pixels. */
|
|
167
|
+
gap?: number | undefined;
|
|
168
|
+
/** Fixed item width (px), paired with `alternatingHeights`. */
|
|
169
|
+
fixedWidth?: number | undefined;
|
|
170
|
+
/** Heights (px) cycled per image when `fixedWidth` is set, e.g. [400, 250]. */
|
|
171
|
+
alternatingHeights?: number[] | undefined;
|
|
172
|
+
/** First N slides render immediately; the rest mount when scrolled into view. */
|
|
173
|
+
eagerImageCount?: number | undefined;
|
|
174
|
+
className?: string | undefined;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Infinite horizontal marquee of images. The track duplicates the strip and
|
|
179
|
+
* translates -50% for a seamless loop; `prefers-reduced-motion` disables the
|
|
180
|
+
* animation (the strip becomes horizontally scrollable instead).
|
|
181
|
+
*
|
|
182
|
+
* Sizing: pass `fixedWidth` + `alternatingHeights` for a fixed-width cadence,
|
|
183
|
+
* otherwise a built-in repeating size pattern is used.
|
|
184
|
+
*/
|
|
185
|
+
declare const ImageMarquee: {
|
|
186
|
+
({ images, durationSec, gap, fixedWidth, alternatingHeights, eagerImageCount, className }: ImageMarqueeProps): react_jsx_runtime.JSX.Element | null;
|
|
187
|
+
displayName: string;
|
|
188
|
+
};
|
|
189
|
+
|
|
157
190
|
interface LocationItem {
|
|
158
191
|
location: string;
|
|
159
192
|
address: string;
|
|
@@ -164,6 +197,21 @@ interface LocationCardProps extends HTMLAttributes<HTMLElement>, LocationItem {
|
|
|
164
197
|
|
|
165
198
|
declare const LocationCard: react.ForwardRefExoticComponent<LocationCardProps & react.RefAttributes<HTMLElement>>;
|
|
166
199
|
|
|
200
|
+
interface LuxuryTripCardProps extends HTMLAttributes<HTMLElement> {
|
|
201
|
+
/** Background image URL. */
|
|
202
|
+
image: string;
|
|
203
|
+
/** Accessible description of the image. */
|
|
204
|
+
alt: string;
|
|
205
|
+
/** Trip title (rendered in the serif display font). */
|
|
206
|
+
title: string;
|
|
207
|
+
/** Optional duration label, e.g. "12N/13D". Shows a clock icon when set. */
|
|
208
|
+
duration?: string | undefined;
|
|
209
|
+
/** Render as an anchor to this URL. Without it, renders a non-link container. */
|
|
210
|
+
href?: string | undefined;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
declare const LuxuryTripCard: react.ForwardRefExoticComponent<LuxuryTripCardProps & react.RefAttributes<HTMLElement>>;
|
|
214
|
+
|
|
167
215
|
interface MonthTab {
|
|
168
216
|
id: string;
|
|
169
217
|
label: string;
|
|
@@ -539,6 +587,146 @@ interface HomeHeroProps extends HTMLAttributes<HTMLElement> {
|
|
|
539
587
|
|
|
540
588
|
declare const HomeHero: react.ForwardRefExoticComponent<HomeHeroProps & react.RefAttributes<HTMLElement>>;
|
|
541
589
|
|
|
590
|
+
interface LuxuryCategoryNavItem {
|
|
591
|
+
/** Unique identifier for the tab. */
|
|
592
|
+
id: string;
|
|
593
|
+
/** Visible label (rendered uppercase). */
|
|
594
|
+
label: string;
|
|
595
|
+
}
|
|
596
|
+
interface LuxuryCategoryNavProps extends HTMLAttributes<HTMLElement> {
|
|
597
|
+
/** Tabs to render in order. When empty, the component renders nothing. */
|
|
598
|
+
items: LuxuryCategoryNavItem[];
|
|
599
|
+
/** Id of the tab active on first render. */
|
|
600
|
+
defaultActiveId?: string | undefined;
|
|
601
|
+
/** Called with the tab id whenever the active tab changes. */
|
|
602
|
+
onActiveChange?: ((id: string) => void) | undefined;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
declare const LuxuryCategoryNav: {
|
|
606
|
+
({ items, defaultActiveId, onActiveChange, className, ...rest }: LuxuryCategoryNavProps): react_jsx_runtime.JSX.Element | null;
|
|
607
|
+
displayName: string;
|
|
608
|
+
};
|
|
609
|
+
|
|
610
|
+
interface LuxuryDestinationSectionProps extends HTMLAttributes<HTMLElement> {
|
|
611
|
+
/** Small uppercase eyebrow label above the title. */
|
|
612
|
+
badge: string;
|
|
613
|
+
/** Section title, rendered in the serif display font. */
|
|
614
|
+
title: string;
|
|
615
|
+
/** Body copy. Split on `\n` — each line renders as its own paragraph. */
|
|
616
|
+
description?: string | undefined;
|
|
617
|
+
/** Still image shown in the hero frame (and used as the video poster fallback). */
|
|
618
|
+
heroImage?: {
|
|
619
|
+
src: string;
|
|
620
|
+
alt?: string | undefined;
|
|
621
|
+
} | undefined;
|
|
622
|
+
/** Looping background video for the hero frame. */
|
|
623
|
+
heroVideo?: {
|
|
624
|
+
src: string;
|
|
625
|
+
poster?: string | undefined;
|
|
626
|
+
} | undefined;
|
|
627
|
+
/** Luxury trip cards rendered in the horizontally scrolling row. */
|
|
628
|
+
trips: LuxuryTripCardProps[];
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
declare const LuxuryDestinationSection: react.ForwardRefExoticComponent<LuxuryDestinationSectionProps & react.RefAttributes<HTMLElement>>;
|
|
632
|
+
|
|
633
|
+
interface LuxuryHeroProps extends HTMLAttributes<HTMLElement> {
|
|
634
|
+
/** Background video source URL. */
|
|
635
|
+
videoSrc: string;
|
|
636
|
+
/** Poster image shown before the video loads. */
|
|
637
|
+
videoPoster: string;
|
|
638
|
+
/** MIME type of the video source. Defaults to "video/mp4". */
|
|
639
|
+
videoType?: string | undefined;
|
|
640
|
+
/** Main heading, rendered in the serif display font. Defaults to "WanderOn Experiences". */
|
|
641
|
+
title?: string | undefined;
|
|
642
|
+
/** First subline beneath the gold rule. */
|
|
643
|
+
subline1?: string | undefined;
|
|
644
|
+
/** Second subline beneath the first. */
|
|
645
|
+
subline2?: string | undefined;
|
|
646
|
+
/** CTA button label. Defaults to "Connect with Concierge". */
|
|
647
|
+
ctaLabel?: string | undefined;
|
|
648
|
+
/** Fired when the CTA button is clicked. */
|
|
649
|
+
onCtaClick?: (() => void) | undefined;
|
|
650
|
+
/** Logo link target. Defaults to "/". */
|
|
651
|
+
homeHref?: string | undefined;
|
|
652
|
+
/** Logo image URL. */
|
|
653
|
+
logoSrc?: string | undefined;
|
|
654
|
+
/** Whether to render the top logo. Defaults to true. */
|
|
655
|
+
showLogo?: boolean | undefined;
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
declare const LuxuryHero: react.ForwardRefExoticComponent<LuxuryHeroProps & react.RefAttributes<HTMLElement>>;
|
|
659
|
+
|
|
660
|
+
/** A single dial-code option for the country select. */
|
|
661
|
+
interface DialCodeOption {
|
|
662
|
+
/** E.164 dial code, e.g. "+91". */
|
|
663
|
+
code: string;
|
|
664
|
+
/** Human-readable label, e.g. "India (+91)". */
|
|
665
|
+
label: string;
|
|
666
|
+
}
|
|
667
|
+
interface LuxuryInquiryFormProps extends Omit<HTMLAttributes<HTMLElement>, 'onSubmit'> {
|
|
668
|
+
/**
|
|
669
|
+
* Called with the collected lead. `mobile` is the dial code concatenated with
|
|
670
|
+
* the local digits (e.g. "+9198…"). May be async; rejection surfaces a form error.
|
|
671
|
+
*/
|
|
672
|
+
onSubmit: (data: {
|
|
673
|
+
name: string;
|
|
674
|
+
mobile: string;
|
|
675
|
+
}) => void | Promise<void>;
|
|
676
|
+
/** Heading text (rendered in the serif display font). */
|
|
677
|
+
title?: string | undefined;
|
|
678
|
+
/** Supporting line shown under the heading. */
|
|
679
|
+
subheading?: string | undefined;
|
|
680
|
+
/** Placeholder for the name field. */
|
|
681
|
+
namePlaceholder?: string | undefined;
|
|
682
|
+
/** Placeholder for the phone field. */
|
|
683
|
+
phonePlaceholder?: string | undefined;
|
|
684
|
+
/** Selectable dial codes. Defaults to a small India/USA/UK/UAE set. */
|
|
685
|
+
dialCodes?: DialCodeOption[] | undefined;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
declare const LuxuryInquiryForm: {
|
|
689
|
+
({ onSubmit, title, subheading, namePlaceholder, phonePlaceholder, dialCodes, className, ...rest }: LuxuryInquiryFormProps): react_jsx_runtime.JSX.Element;
|
|
690
|
+
displayName: string;
|
|
691
|
+
};
|
|
692
|
+
|
|
693
|
+
interface LuxuryIntroProps extends HTMLAttributes<HTMLElement> {
|
|
694
|
+
/** Pill label above the heading (uppercase, gold outline). */
|
|
695
|
+
badge?: string | undefined;
|
|
696
|
+
/** Section heading, rendered as an `<h2>` in the serif display font. */
|
|
697
|
+
heading: string;
|
|
698
|
+
/** Body paragraph beneath the heading. */
|
|
699
|
+
body: string;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
declare const LuxuryIntro: react.ForwardRefExoticComponent<LuxuryIntroProps & react.RefAttributes<HTMLElement>>;
|
|
703
|
+
|
|
704
|
+
/** A single review entry in the testimonials row. */
|
|
705
|
+
interface LuxuryReview {
|
|
706
|
+
/** First (portrait) photo URL. */
|
|
707
|
+
image1: string;
|
|
708
|
+
/** Second (landscape) photo URL. */
|
|
709
|
+
image2: string;
|
|
710
|
+
/** The quote text (rendered in quotation marks). */
|
|
711
|
+
content: string;
|
|
712
|
+
/** Customer name shown beneath the quote. */
|
|
713
|
+
name: string;
|
|
714
|
+
/** Optional "continue reading" link target. */
|
|
715
|
+
link?: string | undefined;
|
|
716
|
+
}
|
|
717
|
+
interface LuxuryTestimonialsProps extends HTMLAttributes<HTMLElement> {
|
|
718
|
+
/** Reviews rendered as horizontally-scrolling cards. */
|
|
719
|
+
reviews: LuxuryReview[];
|
|
720
|
+
/** Serif title beneath the badge. */
|
|
721
|
+
heading?: string | undefined;
|
|
722
|
+
/** Pill label above the heading (uppercase, gold). */
|
|
723
|
+
badge?: string | undefined;
|
|
724
|
+
/** Clamp the quote text to this many lines. */
|
|
725
|
+
lineClamp?: number | undefined;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
declare const LuxuryTestimonials: react.ForwardRefExoticComponent<LuxuryTestimonialsProps & react.RefAttributes<HTMLElement>>;
|
|
729
|
+
|
|
542
730
|
interface NavLink {
|
|
543
731
|
label: string;
|
|
544
732
|
href: string;
|
|
@@ -720,6 +908,20 @@ declare const theme: {
|
|
|
720
908
|
readonly contentWidth: "760px";
|
|
721
909
|
readonly mobileBreakpoint: "768px";
|
|
722
910
|
};
|
|
911
|
+
readonly luxury: {
|
|
912
|
+
readonly colors: {
|
|
913
|
+
readonly gold: "#C5A059";
|
|
914
|
+
readonly goldStrong: "#A68411";
|
|
915
|
+
readonly goldLight: "#F3E5AB";
|
|
916
|
+
readonly goldSoft: "#E8D5B7";
|
|
917
|
+
readonly heading: "#9A7B4F";
|
|
918
|
+
readonly ink: "#0C060E";
|
|
919
|
+
readonly inkCard: "#1A1A1A";
|
|
920
|
+
readonly onDark: "#FFFDF9";
|
|
921
|
+
readonly text: "#2C2C2C";
|
|
922
|
+
};
|
|
923
|
+
readonly font: "var(--font-luxury-family, \"Playfair Display\"), Georgia, serif";
|
|
924
|
+
};
|
|
723
925
|
readonly colors: {
|
|
724
926
|
readonly primary: "#01AFD1";
|
|
725
927
|
readonly primaryHover: "#0089A6";
|
|
@@ -768,4 +970,4 @@ declare const theme: {
|
|
|
768
970
|
};
|
|
769
971
|
type Theme = typeof theme;
|
|
770
972
|
|
|
771
|
-
export { BottomNav, type BottomNavItem, type BottomNavProps, type Brand, BrandLogo, type BrandLogoProps, BrandsSection, type BrandsSectionProps, CategoryNavbar, type CategoryNavbarProps, ContactForm, type ContactFormCountryCode, type ContactFormDestination, type ContactFormProps, type ContactFormValues, ContactSection, type ContactSectionProps, CtaBanner, type CtaBannerCta, type CtaBannerProps, DestinationCard, type DestinationCardProps, type DestinationItem, DestinationsSection, type DestinationsSectionProps, EventBanner, type EventBannerProps, EventCarousel, type EventCarouselImageItem, type EventCarouselProps, type EventCarouselVideoItem, EventVideoBanner, type EventVideoBannerProps, ExpandableValueCard, type ExpandableValueCardProps, ExploreCard, type ExploreCardProps, type ExploreItem, ExploreSection, type ExploreSectionProps, FaqExpandable, type FaqExpandableProps, type FaqItem, FaqSection, type FaqSectionProps, FeatureCard, type FeatureCardProps, Footer, type FooterColumn, type FooterContact, type FooterLink, type FooterProps, type FooterSocialLink, GalleryPhoto, type GalleryPhotoData, type GalleryPhotoProps, GallerySection, type GallerySectionProps, Hero, type HeroProps, type HeroReview, type HeroVariant, HomeHero, type HomeHeroProps, type HomeHeroReview, type HomeHeroTypewriterOptions, LocationCard, type LocationCardProps, type LocationItem, type MonthTab, MonthTabs, type MonthTabsProps, type NavCategory, type NavCategoryItem, type NavLink, Navbar, type NavbarProps, OfficesSection, type OfficesSectionProps, PackageCard, type PackageCardProps, type PackageItem, PackagesCarousel, type PackagesCarouselProps, SectionHeader, type SectionHeaderAlign, type SectionHeaderProps, SiteHeader, type SiteHeaderProps, TeamInfoCard, type TeamInfoCardProps, type TeamMember, TeamSection, type TeamSectionProps, type TeamSocialLink, TestimonialCard, type TestimonialCardProps, type TestimonialItem, TestimonialsCarousel, type TestimonialsCarouselProps, TextSection, type TextSectionAlign, type TextSectionProps, type Theme, TripCategoryCard, type TripCategoryCardProps, type TripsCategoryItem, TripsCategorySection, type TripsCategorySectionCta, type TripsCategorySectionProps, UctMobileBanner, type UctMobileBannerProps, type ValueItem, ValuesSection, type ValuesSectionProps, type Warrior, WarriorCard, type WarriorCardProps, WarriorsSection, type WarriorsSectionProps, type WhyChooseFeature, WhyChooseSection, type WhyChooseSectionProps, theme };
|
|
973
|
+
export { BottomNav, type BottomNavItem, type BottomNavProps, type Brand, BrandLogo, type BrandLogoProps, BrandsSection, type BrandsSectionProps, CategoryNavbar, type CategoryNavbarProps, ContactForm, type ContactFormCountryCode, type ContactFormDestination, type ContactFormProps, type ContactFormValues, ContactSection, type ContactSectionProps, CtaBanner, type CtaBannerCta, type CtaBannerProps, DestinationCard, type DestinationCardProps, type DestinationItem, DestinationsSection, type DestinationsSectionProps, type DialCodeOption, EventBanner, type EventBannerProps, EventCarousel, type EventCarouselImageItem, type EventCarouselProps, type EventCarouselVideoItem, EventVideoBanner, type EventVideoBannerProps, ExpandableValueCard, type ExpandableValueCardProps, ExploreCard, type ExploreCardProps, type ExploreItem, ExploreSection, type ExploreSectionProps, FaqExpandable, type FaqExpandableProps, type FaqItem, FaqSection, type FaqSectionProps, FeatureCard, type FeatureCardProps, Footer, type FooterColumn, type FooterContact, type FooterLink, type FooterProps, type FooterSocialLink, GalleryPhoto, type GalleryPhotoData, type GalleryPhotoProps, GallerySection, type GallerySectionProps, Hero, type HeroProps, type HeroReview, type HeroVariant, HomeHero, type HomeHeroProps, type HomeHeroReview, type HomeHeroTypewriterOptions, ImageMarquee, type ImageMarqueeProps, LocationCard, type LocationCardProps, type LocationItem, LuxuryCategoryNav, type LuxuryCategoryNavItem, type LuxuryCategoryNavProps, LuxuryDestinationSection, type LuxuryDestinationSectionProps, LuxuryHero, type LuxuryHeroProps, LuxuryInquiryForm, type LuxuryInquiryFormProps, LuxuryIntro, type LuxuryIntroProps, type LuxuryReview, LuxuryTestimonials, type LuxuryTestimonialsProps, LuxuryTripCard, type LuxuryTripCardProps, type MarqueeImage, type MonthTab, MonthTabs, type MonthTabsProps, type NavCategory, type NavCategoryItem, type NavLink, Navbar, type NavbarProps, OfficesSection, type OfficesSectionProps, PackageCard, type PackageCardProps, type PackageItem, PackagesCarousel, type PackagesCarouselProps, SectionHeader, type SectionHeaderAlign, type SectionHeaderProps, SiteHeader, type SiteHeaderProps, TeamInfoCard, type TeamInfoCardProps, type TeamMember, TeamSection, type TeamSectionProps, type TeamSocialLink, TestimonialCard, type TestimonialCardProps, type TestimonialItem, TestimonialsCarousel, type TestimonialsCarouselProps, TextSection, type TextSectionAlign, type TextSectionProps, type Theme, TripCategoryCard, type TripCategoryCardProps, type TripsCategoryItem, TripsCategorySection, type TripsCategorySectionCta, type TripsCategorySectionProps, UctMobileBanner, type UctMobileBannerProps, type ValueItem, ValuesSection, type ValuesSectionProps, type Warrior, WarriorCard, type WarriorCardProps, WarriorsSection, type WarriorsSectionProps, type WhyChooseFeature, WhyChooseSection, type WhyChooseSectionProps, theme };
|