@dododog/ui 0.9.0 → 0.9.1
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/components/Accordion/index.d.mts +24 -0
- package/dist/components/Accordion/index.d.ts +24 -0
- package/dist/components/Alert/index.d.mts +40 -0
- package/dist/components/Alert/index.d.ts +40 -0
- package/dist/components/AnchorTabs/index.d.mts +59 -0
- package/dist/components/AnchorTabs/index.d.ts +59 -0
- package/dist/components/Autocomplete/index.d.mts +27 -0
- package/dist/components/Autocomplete/index.d.ts +27 -0
- package/dist/components/Avatar/index.d.mts +13 -0
- package/dist/components/Avatar/index.d.ts +13 -0
- package/dist/components/Badge/index.d.mts +13 -0
- package/dist/components/Badge/index.d.ts +13 -0
- package/dist/components/Banner/index.d.mts +19 -0
- package/dist/components/Banner/index.d.ts +19 -0
- package/dist/components/BottomNavBar/index.d.mts +17 -0
- package/dist/components/BottomNavBar/index.d.ts +17 -0
- package/dist/components/Breadcrumb/index.d.mts +23 -0
- package/dist/components/Breadcrumb/index.d.ts +23 -0
- package/dist/components/Button/index.d.mts +17 -0
- package/dist/components/Button/index.d.ts +17 -0
- package/dist/components/Card/index.d.mts +30 -0
- package/dist/components/Card/index.d.ts +30 -0
- package/dist/components/CardList/index.d.mts +30 -0
- package/dist/components/CardList/index.d.ts +30 -0
- package/dist/components/Carousel/index.d.mts +15 -0
- package/dist/components/Carousel/index.d.ts +15 -0
- package/dist/components/Checkbox/index.d.mts +16 -0
- package/dist/components/Checkbox/index.d.ts +16 -0
- package/dist/components/Counter/index.d.mts +14 -0
- package/dist/components/Counter/index.d.ts +14 -0
- package/dist/components/DateRangePicker/index.d.mts +26 -0
- package/dist/components/DateRangePicker/index.d.ts +26 -0
- package/dist/components/DetailList/index.d.mts +23 -0
- package/dist/components/DetailList/index.d.ts +23 -0
- package/dist/components/Divider/index.d.mts +10 -0
- package/dist/components/Divider/index.d.ts +10 -0
- package/dist/components/Drawer/index.d.mts +13 -0
- package/dist/components/Drawer/index.d.ts +13 -0
- package/dist/components/DropdownMenu/index.d.mts +19 -0
- package/dist/components/DropdownMenu/index.d.ts +19 -0
- package/dist/components/DualRangeSlider/index.d.mts +26 -0
- package/dist/components/DualRangeSlider/index.d.ts +26 -0
- package/dist/components/EmptyState/index.d.mts +12 -0
- package/dist/components/EmptyState/index.d.ts +12 -0
- package/dist/components/ErrorBoundary/index.d.mts +21 -0
- package/dist/components/ErrorBoundary/index.d.ts +21 -0
- package/dist/components/FilterAccordion/index.d.mts +16 -0
- package/dist/components/FilterAccordion/index.d.ts +16 -0
- package/dist/components/FilterPill/index.d.mts +19 -0
- package/dist/components/FilterPill/index.d.ts +19 -0
- package/dist/components/FloatingDock/index.d.mts +65 -0
- package/dist/components/FloatingDock/index.d.ts +65 -0
- package/dist/components/Footer/index.d.mts +46 -0
- package/dist/components/Footer/index.d.ts +46 -0
- package/dist/components/GuestPicker/index.d.mts +31 -0
- package/dist/components/GuestPicker/index.d.ts +31 -0
- package/dist/components/Header/index.d.mts +37 -0
- package/dist/components/Header/index.d.ts +37 -0
- package/dist/components/HotelCard/index.d.mts +45 -0
- package/dist/components/HotelCard/index.d.ts +45 -0
- package/dist/components/IconBadge/index.d.mts +14 -0
- package/dist/components/IconBadge/index.d.ts +14 -0
- package/dist/components/ImageGallery/index.d.mts +16 -0
- package/dist/components/ImageGallery/index.d.ts +16 -0
- package/dist/components/ImageWithFallback/index.d.mts +17 -0
- package/dist/components/ImageWithFallback/index.d.ts +17 -0
- package/dist/components/Input/index.d.mts +18 -0
- package/dist/components/Input/index.d.ts +18 -0
- package/dist/components/Lightbox/index.d.mts +15 -0
- package/dist/components/Lightbox/index.d.ts +15 -0
- package/dist/components/LinkCard/index.d.mts +12 -0
- package/dist/components/LinkCard/index.d.ts +12 -0
- package/dist/components/LoadingOverlay/index.d.mts +12 -0
- package/dist/components/LoadingOverlay/index.d.ts +12 -0
- package/dist/components/MegaMenu/index.d.mts +52 -0
- package/dist/components/MegaMenu/index.d.ts +52 -0
- package/dist/components/MobileMenu/index.d.mts +35 -0
- package/dist/components/MobileMenu/index.d.ts +35 -0
- package/dist/components/Modal/index.d.mts +12 -0
- package/dist/components/Modal/index.d.ts +12 -0
- package/dist/components/Pagination/index.d.mts +13 -0
- package/dist/components/Pagination/index.d.ts +13 -0
- package/dist/components/PriceDisplay/index.d.mts +14 -0
- package/dist/components/PriceDisplay/index.d.ts +14 -0
- package/dist/components/ProgressBar/index.d.mts +19 -0
- package/dist/components/ProgressBar/index.d.ts +19 -0
- package/dist/components/PromoBanner/index.d.mts +39 -0
- package/dist/components/PromoBanner/index.d.ts +39 -0
- package/dist/components/RadioGroup/index.d.mts +21 -0
- package/dist/components/RadioGroup/index.d.ts +21 -0
- package/dist/components/Rating/index.d.mts +12 -0
- package/dist/components/Rating/index.d.ts +12 -0
- package/dist/components/RoomTypeCard/index.d.mts +102 -0
- package/dist/components/RoomTypeCard/index.d.ts +102 -0
- package/dist/components/SearchBar/index.d.mts +20 -0
- package/dist/components/SearchBar/index.d.ts +20 -0
- package/dist/components/SegmentedControl/index.d.mts +15 -0
- package/dist/components/SegmentedControl/index.d.ts +15 -0
- package/dist/components/Select/index.d.mts +26 -0
- package/dist/components/Select/index.d.ts +26 -0
- package/dist/components/Sidebar/index.d.mts +19 -0
- package/dist/components/Sidebar/index.d.ts +19 -0
- package/dist/components/SignInCallout/index.d.mts +26 -0
- package/dist/components/SignInCallout/index.d.ts +26 -0
- package/dist/components/Skeleton/index.d.mts +31 -0
- package/dist/components/Skeleton/index.d.ts +31 -0
- package/dist/components/Spinner/index.d.mts +13 -0
- package/dist/components/Spinner/index.d.ts +13 -0
- package/dist/components/StatCard/index.d.mts +15 -0
- package/dist/components/StatCard/index.d.ts +15 -0
- package/dist/components/StatusBadge/index.d.mts +16 -0
- package/dist/components/StatusBadge/index.d.ts +16 -0
- package/dist/components/Stepper/index.d.mts +16 -0
- package/dist/components/Stepper/index.d.ts +16 -0
- package/dist/components/Switch/index.d.mts +22 -0
- package/dist/components/Switch/index.d.ts +22 -0
- package/dist/components/Tabs/index.d.mts +18 -0
- package/dist/components/Tabs/index.d.ts +18 -0
- package/dist/components/Tag/index.d.mts +15 -0
- package/dist/components/Tag/index.d.ts +15 -0
- package/dist/components/Textarea/index.d.mts +16 -0
- package/dist/components/Textarea/index.d.ts +16 -0
- package/dist/components/Toast/index.d.mts +16 -0
- package/dist/components/Toast/index.d.ts +16 -0
- package/dist/components/Toggle/index.d.mts +13 -0
- package/dist/components/Toggle/index.d.ts +13 -0
- package/dist/components/Tooltip/index.d.mts +11 -0
- package/dist/components/Tooltip/index.d.ts +11 -0
- package/dist/components/VerticalMarquee/index.d.mts +16 -0
- package/dist/components/VerticalMarquee/index.d.ts +16 -0
- package/dist/index.d.mts +189 -0
- package/dist/index.d.ts +189 -0
- package/dist/index.js +54 -54
- package/dist/index.mjs +12 -12
- package/dist/tailwind-preset.d.mts +170 -0
- package/dist/tailwind-preset.d.ts +170 -0
- package/dist/tokens/index.d.mts +219 -0
- package/dist/tokens/index.d.ts +219 -0
- package/dist/typography-BUlhEnfy.d.mts +16 -0
- package/dist/typography-BUlhEnfy.d.ts +16 -0
- package/dist/utils/index.d.mts +5 -0
- package/dist/utils/index.d.ts +5 -0
- package/package.json +1 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface FooterLinkGroup {
|
|
4
|
+
title: string;
|
|
5
|
+
links: {
|
|
6
|
+
label: string;
|
|
7
|
+
href: string;
|
|
8
|
+
}[];
|
|
9
|
+
/** Optional CTA at the bottom of the group */
|
|
10
|
+
cta?: {
|
|
11
|
+
label: string;
|
|
12
|
+
href: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
interface FooterProps {
|
|
16
|
+
/** Brand section — logo, description, contact */
|
|
17
|
+
brand?: {
|
|
18
|
+
logo: React.ReactNode;
|
|
19
|
+
description?: string;
|
|
20
|
+
contactEmail?: string;
|
|
21
|
+
};
|
|
22
|
+
/** Link columns */
|
|
23
|
+
linkGroups?: FooterLinkGroup[];
|
|
24
|
+
/** Bottom bar links (legal) */
|
|
25
|
+
bottomLinks?: {
|
|
26
|
+
label: string;
|
|
27
|
+
href: string;
|
|
28
|
+
}[];
|
|
29
|
+
/** Extra bottom bar content (e.g. cookie button) */
|
|
30
|
+
bottomExtra?: React.ReactNode;
|
|
31
|
+
/** Copyright text — defaults to current year */
|
|
32
|
+
copyright?: string;
|
|
33
|
+
/** Tagline shown above copyright */
|
|
34
|
+
tagline?: React.ReactNode;
|
|
35
|
+
/** Render function for links — allows Next.js Link */
|
|
36
|
+
renderLink?: (props: {
|
|
37
|
+
href: string;
|
|
38
|
+
className?: string;
|
|
39
|
+
onClick?: () => void;
|
|
40
|
+
children: React.ReactNode;
|
|
41
|
+
}) => React.ReactNode;
|
|
42
|
+
className?: string;
|
|
43
|
+
}
|
|
44
|
+
declare const Footer: React.ForwardRefExoticComponent<FooterProps & React.RefAttributes<HTMLElement>>;
|
|
45
|
+
|
|
46
|
+
export { Footer, type FooterLinkGroup, type FooterProps };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface FooterLinkGroup {
|
|
4
|
+
title: string;
|
|
5
|
+
links: {
|
|
6
|
+
label: string;
|
|
7
|
+
href: string;
|
|
8
|
+
}[];
|
|
9
|
+
/** Optional CTA at the bottom of the group */
|
|
10
|
+
cta?: {
|
|
11
|
+
label: string;
|
|
12
|
+
href: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
interface FooterProps {
|
|
16
|
+
/** Brand section — logo, description, contact */
|
|
17
|
+
brand?: {
|
|
18
|
+
logo: React.ReactNode;
|
|
19
|
+
description?: string;
|
|
20
|
+
contactEmail?: string;
|
|
21
|
+
};
|
|
22
|
+
/** Link columns */
|
|
23
|
+
linkGroups?: FooterLinkGroup[];
|
|
24
|
+
/** Bottom bar links (legal) */
|
|
25
|
+
bottomLinks?: {
|
|
26
|
+
label: string;
|
|
27
|
+
href: string;
|
|
28
|
+
}[];
|
|
29
|
+
/** Extra bottom bar content (e.g. cookie button) */
|
|
30
|
+
bottomExtra?: React.ReactNode;
|
|
31
|
+
/** Copyright text — defaults to current year */
|
|
32
|
+
copyright?: string;
|
|
33
|
+
/** Tagline shown above copyright */
|
|
34
|
+
tagline?: React.ReactNode;
|
|
35
|
+
/** Render function for links — allows Next.js Link */
|
|
36
|
+
renderLink?: (props: {
|
|
37
|
+
href: string;
|
|
38
|
+
className?: string;
|
|
39
|
+
onClick?: () => void;
|
|
40
|
+
children: React.ReactNode;
|
|
41
|
+
}) => React.ReactNode;
|
|
42
|
+
className?: string;
|
|
43
|
+
}
|
|
44
|
+
declare const Footer: React.ForwardRefExoticComponent<FooterProps & React.RefAttributes<HTMLElement>>;
|
|
45
|
+
|
|
46
|
+
export { Footer, type FooterLinkGroup, type FooterProps };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface GuestPickerProps {
|
|
4
|
+
adults: number;
|
|
5
|
+
onAdultsChange: (n: number) => void;
|
|
6
|
+
childrenAges: number[];
|
|
7
|
+
onChildrenAgesChange: (ages: number[]) => void;
|
|
8
|
+
dogs: number;
|
|
9
|
+
onDogsChange: (n: number) => void;
|
|
10
|
+
isOpen: boolean;
|
|
11
|
+
onToggle: () => void;
|
|
12
|
+
onClose: () => void;
|
|
13
|
+
/** Max adults (default 10) */
|
|
14
|
+
maxAdults?: number;
|
|
15
|
+
/** Max children (default 6) */
|
|
16
|
+
maxChildren?: number;
|
|
17
|
+
/** Max dogs (default 5) */
|
|
18
|
+
maxDogs?: number;
|
|
19
|
+
/** Label for the validate button */
|
|
20
|
+
validateLabel?: string;
|
|
21
|
+
/** Custom trigger content — replaces the default trigger button */
|
|
22
|
+
renderTrigger?: (props: {
|
|
23
|
+
summary: string;
|
|
24
|
+
isOpen: boolean;
|
|
25
|
+
onToggle: () => void;
|
|
26
|
+
}) => React.ReactNode;
|
|
27
|
+
className?: string;
|
|
28
|
+
}
|
|
29
|
+
declare const GuestPicker: React.ForwardRefExoticComponent<GuestPickerProps & React.RefAttributes<HTMLDivElement>>;
|
|
30
|
+
|
|
31
|
+
export { GuestPicker, type GuestPickerProps };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface GuestPickerProps {
|
|
4
|
+
adults: number;
|
|
5
|
+
onAdultsChange: (n: number) => void;
|
|
6
|
+
childrenAges: number[];
|
|
7
|
+
onChildrenAgesChange: (ages: number[]) => void;
|
|
8
|
+
dogs: number;
|
|
9
|
+
onDogsChange: (n: number) => void;
|
|
10
|
+
isOpen: boolean;
|
|
11
|
+
onToggle: () => void;
|
|
12
|
+
onClose: () => void;
|
|
13
|
+
/** Max adults (default 10) */
|
|
14
|
+
maxAdults?: number;
|
|
15
|
+
/** Max children (default 6) */
|
|
16
|
+
maxChildren?: number;
|
|
17
|
+
/** Max dogs (default 5) */
|
|
18
|
+
maxDogs?: number;
|
|
19
|
+
/** Label for the validate button */
|
|
20
|
+
validateLabel?: string;
|
|
21
|
+
/** Custom trigger content — replaces the default trigger button */
|
|
22
|
+
renderTrigger?: (props: {
|
|
23
|
+
summary: string;
|
|
24
|
+
isOpen: boolean;
|
|
25
|
+
onToggle: () => void;
|
|
26
|
+
}) => React.ReactNode;
|
|
27
|
+
className?: string;
|
|
28
|
+
}
|
|
29
|
+
declare const GuestPicker: React.ForwardRefExoticComponent<GuestPickerProps & React.RefAttributes<HTMLDivElement>>;
|
|
30
|
+
|
|
31
|
+
export { GuestPicker, type GuestPickerProps };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface HeaderNavItem {
|
|
4
|
+
key: string;
|
|
5
|
+
label: string;
|
|
6
|
+
href?: string;
|
|
7
|
+
/** If true, renders as a dropdown trigger instead of a link */
|
|
8
|
+
hasDropdown?: boolean;
|
|
9
|
+
}
|
|
10
|
+
interface HeaderProps {
|
|
11
|
+
/** Logo element — left side */
|
|
12
|
+
logo: React.ReactNode;
|
|
13
|
+
/** Navigation items — center */
|
|
14
|
+
navItems?: HeaderNavItem[];
|
|
15
|
+
/** Active dropdown key (controlled) */
|
|
16
|
+
activeDropdown?: string | null;
|
|
17
|
+
/** Called on nav item hover/focus for dropdown items */
|
|
18
|
+
onNavHover?: (key: string | null) => void;
|
|
19
|
+
/** Called when a nav link is clicked */
|
|
20
|
+
onNavClick?: (key: string, href?: string) => void;
|
|
21
|
+
/** Right-side content — e.g. user menu, help icon, auth button */
|
|
22
|
+
rightContent?: React.ReactNode;
|
|
23
|
+
/** Called when mobile menu button is clicked */
|
|
24
|
+
onMobileMenuOpen?: () => void;
|
|
25
|
+
/** Additional class for scroll state, shadow, etc. */
|
|
26
|
+
variant?: "default" | "scrolled";
|
|
27
|
+
/** Render function for links */
|
|
28
|
+
renderLink?: (props: {
|
|
29
|
+
href: string;
|
|
30
|
+
className?: string;
|
|
31
|
+
children: React.ReactNode;
|
|
32
|
+
}) => React.ReactNode;
|
|
33
|
+
className?: string;
|
|
34
|
+
}
|
|
35
|
+
declare const Header: React.ForwardRefExoticComponent<HeaderProps & React.RefAttributes<HTMLElement>>;
|
|
36
|
+
|
|
37
|
+
export { Header, type HeaderNavItem, type HeaderProps };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface HeaderNavItem {
|
|
4
|
+
key: string;
|
|
5
|
+
label: string;
|
|
6
|
+
href?: string;
|
|
7
|
+
/** If true, renders as a dropdown trigger instead of a link */
|
|
8
|
+
hasDropdown?: boolean;
|
|
9
|
+
}
|
|
10
|
+
interface HeaderProps {
|
|
11
|
+
/** Logo element — left side */
|
|
12
|
+
logo: React.ReactNode;
|
|
13
|
+
/** Navigation items — center */
|
|
14
|
+
navItems?: HeaderNavItem[];
|
|
15
|
+
/** Active dropdown key (controlled) */
|
|
16
|
+
activeDropdown?: string | null;
|
|
17
|
+
/** Called on nav item hover/focus for dropdown items */
|
|
18
|
+
onNavHover?: (key: string | null) => void;
|
|
19
|
+
/** Called when a nav link is clicked */
|
|
20
|
+
onNavClick?: (key: string, href?: string) => void;
|
|
21
|
+
/** Right-side content — e.g. user menu, help icon, auth button */
|
|
22
|
+
rightContent?: React.ReactNode;
|
|
23
|
+
/** Called when mobile menu button is clicked */
|
|
24
|
+
onMobileMenuOpen?: () => void;
|
|
25
|
+
/** Additional class for scroll state, shadow, etc. */
|
|
26
|
+
variant?: "default" | "scrolled";
|
|
27
|
+
/** Render function for links */
|
|
28
|
+
renderLink?: (props: {
|
|
29
|
+
href: string;
|
|
30
|
+
className?: string;
|
|
31
|
+
children: React.ReactNode;
|
|
32
|
+
}) => React.ReactNode;
|
|
33
|
+
className?: string;
|
|
34
|
+
}
|
|
35
|
+
declare const Header: React.ForwardRefExoticComponent<HeaderProps & React.RefAttributes<HTMLElement>>;
|
|
36
|
+
|
|
37
|
+
export { Header, type HeaderNavItem, type HeaderProps };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface HotelCardData {
|
|
4
|
+
name: string;
|
|
5
|
+
city?: string;
|
|
6
|
+
region?: string;
|
|
7
|
+
mainImage: string;
|
|
8
|
+
rating?: number;
|
|
9
|
+
reviewRating?: number;
|
|
10
|
+
reviewCount?: number;
|
|
11
|
+
pricePerNight?: number;
|
|
12
|
+
originalPrice?: number;
|
|
13
|
+
dogFeePerNight?: number | null;
|
|
14
|
+
dogFeeUnknown?: boolean;
|
|
15
|
+
petPolicyLabel?: string;
|
|
16
|
+
maxDogs?: number;
|
|
17
|
+
amenities?: string[];
|
|
18
|
+
href: string;
|
|
19
|
+
}
|
|
20
|
+
interface HotelCardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
21
|
+
hotel: HotelCardData;
|
|
22
|
+
isFavorite?: boolean;
|
|
23
|
+
onToggleFavorite?: () => void;
|
|
24
|
+
isSponsored?: boolean;
|
|
25
|
+
priceLoading?: boolean;
|
|
26
|
+
isIndicativePrice?: boolean;
|
|
27
|
+
noAvailability?: boolean;
|
|
28
|
+
/** Layout: "auto" = responsive md breakpoint, "vertical" = always stacked, "horizontal" = always side-by-side */
|
|
29
|
+
layout?: "auto" | "vertical" | "horizontal";
|
|
30
|
+
/** Render custom link wrapper (e.g. Next.js Link) */
|
|
31
|
+
renderLink?: (props: {
|
|
32
|
+
href: string;
|
|
33
|
+
className: string;
|
|
34
|
+
children: React.ReactNode;
|
|
35
|
+
}) => React.ReactNode;
|
|
36
|
+
/** Render custom image (e.g. Next.js Image) */
|
|
37
|
+
renderImage?: (props: {
|
|
38
|
+
src: string;
|
|
39
|
+
alt: string;
|
|
40
|
+
className: string;
|
|
41
|
+
}) => React.ReactNode;
|
|
42
|
+
}
|
|
43
|
+
declare const HotelCard: React.ForwardRefExoticComponent<HotelCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
44
|
+
|
|
45
|
+
export { HotelCard, type HotelCardData, type HotelCardProps };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface HotelCardData {
|
|
4
|
+
name: string;
|
|
5
|
+
city?: string;
|
|
6
|
+
region?: string;
|
|
7
|
+
mainImage: string;
|
|
8
|
+
rating?: number;
|
|
9
|
+
reviewRating?: number;
|
|
10
|
+
reviewCount?: number;
|
|
11
|
+
pricePerNight?: number;
|
|
12
|
+
originalPrice?: number;
|
|
13
|
+
dogFeePerNight?: number | null;
|
|
14
|
+
dogFeeUnknown?: boolean;
|
|
15
|
+
petPolicyLabel?: string;
|
|
16
|
+
maxDogs?: number;
|
|
17
|
+
amenities?: string[];
|
|
18
|
+
href: string;
|
|
19
|
+
}
|
|
20
|
+
interface HotelCardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
21
|
+
hotel: HotelCardData;
|
|
22
|
+
isFavorite?: boolean;
|
|
23
|
+
onToggleFavorite?: () => void;
|
|
24
|
+
isSponsored?: boolean;
|
|
25
|
+
priceLoading?: boolean;
|
|
26
|
+
isIndicativePrice?: boolean;
|
|
27
|
+
noAvailability?: boolean;
|
|
28
|
+
/** Layout: "auto" = responsive md breakpoint, "vertical" = always stacked, "horizontal" = always side-by-side */
|
|
29
|
+
layout?: "auto" | "vertical" | "horizontal";
|
|
30
|
+
/** Render custom link wrapper (e.g. Next.js Link) */
|
|
31
|
+
renderLink?: (props: {
|
|
32
|
+
href: string;
|
|
33
|
+
className: string;
|
|
34
|
+
children: React.ReactNode;
|
|
35
|
+
}) => React.ReactNode;
|
|
36
|
+
/** Render custom image (e.g. Next.js Image) */
|
|
37
|
+
renderImage?: (props: {
|
|
38
|
+
src: string;
|
|
39
|
+
alt: string;
|
|
40
|
+
className: string;
|
|
41
|
+
}) => React.ReactNode;
|
|
42
|
+
}
|
|
43
|
+
declare const HotelCard: React.ForwardRefExoticComponent<HotelCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
44
|
+
|
|
45
|
+
export { HotelCard, type HotelCardData, type HotelCardProps };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
|
|
5
|
+
declare const iconBadgeVariants: (props?: ({
|
|
6
|
+
variant?: "primary" | "secondary" | "accent" | "error" | "success" | "warning" | "info" | "neutral" | null | undefined;
|
|
7
|
+
size?: "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
8
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
|
+
interface IconBadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof iconBadgeVariants> {
|
|
10
|
+
icon: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
declare const IconBadge: React.ForwardRefExoticComponent<IconBadgeProps & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
|
|
14
|
+
export { IconBadge, type IconBadgeProps, iconBadgeVariants };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
|
|
5
|
+
declare const iconBadgeVariants: (props?: ({
|
|
6
|
+
variant?: "primary" | "secondary" | "accent" | "error" | "success" | "warning" | "info" | "neutral" | null | undefined;
|
|
7
|
+
size?: "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
8
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
|
+
interface IconBadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof iconBadgeVariants> {
|
|
10
|
+
icon: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
declare const IconBadge: React.ForwardRefExoticComponent<IconBadgeProps & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
|
|
14
|
+
export { IconBadge, type IconBadgeProps, iconBadgeVariants };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface GalleryImage {
|
|
4
|
+
src: string;
|
|
5
|
+
alt: string;
|
|
6
|
+
}
|
|
7
|
+
interface ImageGalleryProps {
|
|
8
|
+
images: GalleryImage[];
|
|
9
|
+
className?: string;
|
|
10
|
+
/** Max images to show in grid before "+N" overlay. Default: 5 */
|
|
11
|
+
maxVisible?: number;
|
|
12
|
+
onImageClick?: (index: number) => void;
|
|
13
|
+
}
|
|
14
|
+
declare const ImageGallery: React.ForwardRefExoticComponent<ImageGalleryProps & React.RefAttributes<HTMLDivElement>>;
|
|
15
|
+
|
|
16
|
+
export { type GalleryImage, ImageGallery, type ImageGalleryProps };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface GalleryImage {
|
|
4
|
+
src: string;
|
|
5
|
+
alt: string;
|
|
6
|
+
}
|
|
7
|
+
interface ImageGalleryProps {
|
|
8
|
+
images: GalleryImage[];
|
|
9
|
+
className?: string;
|
|
10
|
+
/** Max images to show in grid before "+N" overlay. Default: 5 */
|
|
11
|
+
maxVisible?: number;
|
|
12
|
+
onImageClick?: (index: number) => void;
|
|
13
|
+
}
|
|
14
|
+
declare const ImageGallery: React.ForwardRefExoticComponent<ImageGalleryProps & React.RefAttributes<HTMLDivElement>>;
|
|
15
|
+
|
|
16
|
+
export { type GalleryImage, ImageGallery, type ImageGalleryProps };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface ImageWithFallbackProps extends React.ImgHTMLAttributes<HTMLImageElement> {
|
|
4
|
+
fallbackSrc?: string;
|
|
5
|
+
/** Show blur placeholder while loading */
|
|
6
|
+
useBlur?: boolean;
|
|
7
|
+
/** Custom blur data URL for LQIP */
|
|
8
|
+
blurDataURL?: string;
|
|
9
|
+
/** Render a custom image element (e.g. Next.js Image). Receives all img props. */
|
|
10
|
+
renderImage?: (props: React.ImgHTMLAttributes<HTMLImageElement> & {
|
|
11
|
+
onLoad: () => void;
|
|
12
|
+
onError: () => void;
|
|
13
|
+
}) => React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
declare const ImageWithFallback: React.ForwardRefExoticComponent<ImageWithFallbackProps & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
|
|
17
|
+
export { ImageWithFallback, type ImageWithFallbackProps };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface ImageWithFallbackProps extends React.ImgHTMLAttributes<HTMLImageElement> {
|
|
4
|
+
fallbackSrc?: string;
|
|
5
|
+
/** Show blur placeholder while loading */
|
|
6
|
+
useBlur?: boolean;
|
|
7
|
+
/** Custom blur data URL for LQIP */
|
|
8
|
+
blurDataURL?: string;
|
|
9
|
+
/** Render a custom image element (e.g. Next.js Image). Receives all img props. */
|
|
10
|
+
renderImage?: (props: React.ImgHTMLAttributes<HTMLImageElement> & {
|
|
11
|
+
onLoad: () => void;
|
|
12
|
+
onError: () => void;
|
|
13
|
+
}) => React.ReactNode;
|
|
14
|
+
}
|
|
15
|
+
declare const ImageWithFallback: React.ForwardRefExoticComponent<ImageWithFallbackProps & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
|
|
17
|
+
export { ImageWithFallback, type ImageWithFallbackProps };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
|
|
5
|
+
declare const inputVariants: (props?: ({
|
|
6
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
7
|
+
variant?: "default" | "error" | null | undefined;
|
|
8
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
|
+
interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof inputVariants> {
|
|
10
|
+
label?: string;
|
|
11
|
+
error?: string;
|
|
12
|
+
required?: boolean;
|
|
13
|
+
leftIcon?: React.ReactNode;
|
|
14
|
+
rightIcon?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
17
|
+
|
|
18
|
+
export { Input, type InputProps, inputVariants };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
|
|
5
|
+
declare const inputVariants: (props?: ({
|
|
6
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
7
|
+
variant?: "default" | "error" | null | undefined;
|
|
8
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
|
+
interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof inputVariants> {
|
|
10
|
+
label?: string;
|
|
11
|
+
error?: string;
|
|
12
|
+
required?: boolean;
|
|
13
|
+
leftIcon?: React.ReactNode;
|
|
14
|
+
rightIcon?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
17
|
+
|
|
18
|
+
export { Input, type InputProps, inputVariants };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface LightboxProps {
|
|
4
|
+
images: {
|
|
5
|
+
src: string;
|
|
6
|
+
alt: string;
|
|
7
|
+
}[];
|
|
8
|
+
initialIndex?: number;
|
|
9
|
+
open: boolean;
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
declare const Lightbox: React.ForwardRefExoticComponent<LightboxProps & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
|
|
15
|
+
export { Lightbox, type LightboxProps };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface LightboxProps {
|
|
4
|
+
images: {
|
|
5
|
+
src: string;
|
|
6
|
+
alt: string;
|
|
7
|
+
}[];
|
|
8
|
+
initialIndex?: number;
|
|
9
|
+
open: boolean;
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
declare const Lightbox: React.ForwardRefExoticComponent<LightboxProps & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
|
|
15
|
+
export { Lightbox, type LightboxProps };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface LinkCardProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
4
|
+
icon?: React.ReactNode;
|
|
5
|
+
title: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
/** Show chevron on the right. Default: true */
|
|
8
|
+
showChevron?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare const LinkCard: React.ForwardRefExoticComponent<LinkCardProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
11
|
+
|
|
12
|
+
export { LinkCard, type LinkCardProps };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface LinkCardProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
4
|
+
icon?: React.ReactNode;
|
|
5
|
+
title: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
/** Show chevron on the right. Default: true */
|
|
8
|
+
showChevron?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare const LinkCard: React.ForwardRefExoticComponent<LinkCardProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
11
|
+
|
|
12
|
+
export { LinkCard, type LinkCardProps };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface LoadingOverlayProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/** Whether overlay is visible. Default: true */
|
|
5
|
+
visible?: boolean;
|
|
6
|
+
label?: string;
|
|
7
|
+
/** Overlay opacity. Default: "medium" */
|
|
8
|
+
opacity?: "light" | "medium" | "heavy";
|
|
9
|
+
}
|
|
10
|
+
declare const LoadingOverlay: React.ForwardRefExoticComponent<LoadingOverlayProps & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
|
|
12
|
+
export { LoadingOverlay, type LoadingOverlayProps };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface LoadingOverlayProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/** Whether overlay is visible. Default: true */
|
|
5
|
+
visible?: boolean;
|
|
6
|
+
label?: string;
|
|
7
|
+
/** Overlay opacity. Default: "medium" */
|
|
8
|
+
opacity?: "light" | "medium" | "heavy";
|
|
9
|
+
}
|
|
10
|
+
declare const LoadingOverlay: React.ForwardRefExoticComponent<LoadingOverlayProps & React.RefAttributes<HTMLDivElement>>;
|
|
11
|
+
|
|
12
|
+
export { LoadingOverlay, type LoadingOverlayProps };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface MegaMenuCard {
|
|
4
|
+
label: string;
|
|
5
|
+
href: string;
|
|
6
|
+
imageUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
interface MegaMenuLink {
|
|
9
|
+
label: string;
|
|
10
|
+
href: string;
|
|
11
|
+
icon?: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
interface MegaMenuColumn {
|
|
14
|
+
title?: string;
|
|
15
|
+
links: MegaMenuLink[];
|
|
16
|
+
image?: {
|
|
17
|
+
src: string;
|
|
18
|
+
alt: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
interface MegaMenuSection {
|
|
22
|
+
label: string;
|
|
23
|
+
layout: "cards" | "columns";
|
|
24
|
+
cards?: MegaMenuCard[];
|
|
25
|
+
columns?: MegaMenuColumn[];
|
|
26
|
+
/** CTA link shown after cards grid */
|
|
27
|
+
ctaLabel?: string;
|
|
28
|
+
ctaHref?: string;
|
|
29
|
+
}
|
|
30
|
+
interface MegaMenuProps {
|
|
31
|
+
section: MegaMenuSection;
|
|
32
|
+
isOpen: boolean;
|
|
33
|
+
onClose: () => void;
|
|
34
|
+
/** Render function for links — allows using Next.js Link or router links */
|
|
35
|
+
renderLink?: (props: {
|
|
36
|
+
href: string;
|
|
37
|
+
className?: string;
|
|
38
|
+
onClick?: () => void;
|
|
39
|
+
children: React.ReactNode;
|
|
40
|
+
}) => React.ReactNode;
|
|
41
|
+
/** Render function for images — allows using Next.js Image or custom img */
|
|
42
|
+
renderImage?: (props: {
|
|
43
|
+
src: string;
|
|
44
|
+
alt: string;
|
|
45
|
+
className?: string;
|
|
46
|
+
fill?: boolean;
|
|
47
|
+
}) => React.ReactNode;
|
|
48
|
+
className?: string;
|
|
49
|
+
}
|
|
50
|
+
declare const MegaMenu: React.ForwardRefExoticComponent<MegaMenuProps & React.RefAttributes<HTMLDivElement>>;
|
|
51
|
+
|
|
52
|
+
export { MegaMenu, type MegaMenuCard, type MegaMenuColumn, type MegaMenuLink, type MegaMenuProps, type MegaMenuSection };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface MegaMenuCard {
|
|
4
|
+
label: string;
|
|
5
|
+
href: string;
|
|
6
|
+
imageUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
interface MegaMenuLink {
|
|
9
|
+
label: string;
|
|
10
|
+
href: string;
|
|
11
|
+
icon?: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
interface MegaMenuColumn {
|
|
14
|
+
title?: string;
|
|
15
|
+
links: MegaMenuLink[];
|
|
16
|
+
image?: {
|
|
17
|
+
src: string;
|
|
18
|
+
alt: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
interface MegaMenuSection {
|
|
22
|
+
label: string;
|
|
23
|
+
layout: "cards" | "columns";
|
|
24
|
+
cards?: MegaMenuCard[];
|
|
25
|
+
columns?: MegaMenuColumn[];
|
|
26
|
+
/** CTA link shown after cards grid */
|
|
27
|
+
ctaLabel?: string;
|
|
28
|
+
ctaHref?: string;
|
|
29
|
+
}
|
|
30
|
+
interface MegaMenuProps {
|
|
31
|
+
section: MegaMenuSection;
|
|
32
|
+
isOpen: boolean;
|
|
33
|
+
onClose: () => void;
|
|
34
|
+
/** Render function for links — allows using Next.js Link or router links */
|
|
35
|
+
renderLink?: (props: {
|
|
36
|
+
href: string;
|
|
37
|
+
className?: string;
|
|
38
|
+
onClick?: () => void;
|
|
39
|
+
children: React.ReactNode;
|
|
40
|
+
}) => React.ReactNode;
|
|
41
|
+
/** Render function for images — allows using Next.js Image or custom img */
|
|
42
|
+
renderImage?: (props: {
|
|
43
|
+
src: string;
|
|
44
|
+
alt: string;
|
|
45
|
+
className?: string;
|
|
46
|
+
fill?: boolean;
|
|
47
|
+
}) => React.ReactNode;
|
|
48
|
+
className?: string;
|
|
49
|
+
}
|
|
50
|
+
declare const MegaMenu: React.ForwardRefExoticComponent<MegaMenuProps & React.RefAttributes<HTMLDivElement>>;
|
|
51
|
+
|
|
52
|
+
export { MegaMenu, type MegaMenuCard, type MegaMenuColumn, type MegaMenuLink, type MegaMenuProps, type MegaMenuSection };
|