@cimplify/sdk 0.25.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/react.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import React, { ReactNode } from 'react';
1
+ import React$1, { ReactNode } from 'react';
2
2
  import { A as AdSlot, a as AdPosition, e as AdContextValue } from './ads-BxbWrwqp.js';
3
3
  export { c as AdConfig, g as getVariantDisplayName } from './ads-BxbWrwqp.js';
4
4
  import { C as CimplifyClient, a8 as ProcessCheckoutResult, aa as CheckoutStatus, ab as CheckoutStatusContext, bK as Location, bH as Business, k as ReorderResult, aR as OrderStatus, b2 as Order, d as QuoteBundleSelectionInput, Q as QuoteCompositeSelectionInput, P as PriceQuote, g as QuoteUiMessage, bX as Service, c0 as AvailableSlot, c1 as DayAvailability, c6 as CustomerBooking, cc as CancelBookingResult, w as ActivityStateResponse, u as SessionMessage, x as ActivityRecommendation, E as DeliveryFeeResponse, cO as FxRateResponse, bR as StorefrontBootstrap, Y as ElementsOptions, d0 as AuthenticatedData, cY as AddressInfo, cZ as PaymentMethodInfo, K as CimplifyElements, d2 as ElementsCheckoutResult, a7 as ProcessCheckoutOptions, b1 as LineItem, bY as Staff, bP as Room } from './index-DEx3GwlW.js';
@@ -39,17 +39,17 @@ interface AdProviderProps {
39
39
  authenticatedAccountId?: string;
40
40
  children: ReactNode;
41
41
  }
42
- declare function AdProvider({ siteId, apiBase, authenticatedAccountId, children, }: AdProviderProps): React.ReactElement;
42
+ declare function AdProvider({ siteId, apiBase, authenticatedAccountId, children, }: AdProviderProps): React$1.ReactElement;
43
43
  interface AdProps {
44
44
  slot: AdSlot;
45
45
  position?: AdPosition;
46
46
  className?: string;
47
- style?: React.CSSProperties;
47
+ style?: React$1.CSSProperties;
48
48
  fallback?: ReactNode;
49
49
  onImpression?: (adId: string) => void;
50
50
  onClick?: (adId: string) => void;
51
51
  }
52
- declare function Ad({ slot, position, className, style, fallback, onImpression, onClick, }: AdProps): React.ReactElement | null;
52
+ declare function Ad({ slot, position, className, style, fallback, onImpression, onClick, }: AdProps): React$1.ReactElement | null;
53
53
 
54
54
  type CheckoutOrderType = "pickup" | "delivery" | "dine_in";
55
55
  interface CimplifyCheckoutProps {
@@ -79,7 +79,7 @@ interface CimplifyCheckoutProps {
79
79
  demoMode?: boolean;
80
80
  className?: string;
81
81
  }
82
- declare function CimplifyCheckout({ client, businessId, cartId, locationId, linkUrl, orderTypes, defaultOrderType, submitLabel, enrollInLink, onComplete, onError, onStatusChange, appearance, demoMode, className, }: CimplifyCheckoutProps): React.ReactElement;
82
+ declare function CimplifyCheckout({ client, businessId, cartId, locationId, linkUrl, orderTypes, defaultOrderType, submitLabel, enrollInLink, onComplete, onError, onStatusChange, appearance, demoMode, className, }: CimplifyCheckoutProps): React$1.ReactElement;
83
83
 
84
84
  interface PriceProps {
85
85
  /** The amount in base (business) currency. */
@@ -100,7 +100,7 @@ interface PriceProps {
100
100
  * When used outside a provider (or with explicit `currency` prop): formats
101
101
  * directly — no provider required. Works in any React environment.
102
102
  */
103
- declare function Price({ amount, currency, className, prefix }: PriceProps): React.ReactElement;
103
+ declare function Price({ amount, currency, className, prefix }: PriceProps): React$1.ReactElement;
104
104
 
105
105
  interface CimplifyClientContextValue {
106
106
  client: CimplifyClient;
@@ -132,7 +132,7 @@ interface CimplifyProviderProps {
132
132
  children: ReactNode;
133
133
  onLocationChange?: (location: Location) => void;
134
134
  }
135
- declare function CimplifyProvider({ client, children, onLocationChange, }: CimplifyProviderProps): React.ReactElement;
135
+ declare function CimplifyProvider({ client, children, onLocationChange, }: CimplifyProviderProps): React$1.ReactElement;
136
136
  declare function useCimplify(): CimplifyContextValue;
137
137
  declare function useOptionalCimplify(): CimplifyContextValue | null;
138
138
  declare function useCimplifyClient(): CimplifyClientContextValue;
@@ -686,10 +686,10 @@ interface ElementsProviderProps {
686
686
  options?: ElementsOptions;
687
687
  children: ReactNode;
688
688
  }
689
- declare function ElementsProvider({ client, businessId, options, children, }: ElementsProviderProps): React.ReactElement;
689
+ declare function ElementsProvider({ client, businessId, options, children, }: ElementsProviderProps): React$1.ReactElement;
690
690
  interface BaseElementProps {
691
691
  className?: string;
692
- style?: React.CSSProperties;
692
+ style?: React$1.CSSProperties;
693
693
  onReady?: () => void;
694
694
  onError?: (error: {
695
695
  code: string;
@@ -703,7 +703,7 @@ interface AuthElementProps extends BaseElementProps {
703
703
  contactMasked: string;
704
704
  }) => void;
705
705
  }
706
- declare function AuthElement({ className, style, prefillEmail, onReady, onAuthenticated, onRequiresOtp, onError, }: AuthElementProps): React.ReactElement | null;
706
+ declare function AuthElement({ className, style, prefillEmail, onReady, onAuthenticated, onRequiresOtp, onError, }: AuthElementProps): React$1.ReactElement | null;
707
707
  interface AddressElementProps extends BaseElementProps {
708
708
  mode?: "shipping" | "billing";
709
709
  onChange?: (data: {
@@ -711,7 +711,7 @@ interface AddressElementProps extends BaseElementProps {
711
711
  saveToLink: boolean;
712
712
  }) => void;
713
713
  }
714
- declare function AddressElement({ className, style, mode, onReady, onChange, onError, }: AddressElementProps): React.ReactElement | null;
714
+ declare function AddressElement({ className, style, mode, onReady, onChange, onError, }: AddressElementProps): React$1.ReactElement | null;
715
715
  interface PaymentElementProps extends BaseElementProps {
716
716
  amount?: number;
717
717
  currency?: CurrencyCode;
@@ -720,7 +720,7 @@ interface PaymentElementProps extends BaseElementProps {
720
720
  saveToLink: boolean;
721
721
  }) => void;
722
722
  }
723
- declare function PaymentElement({ className, style, amount, currency, onReady, onChange, onError, }: PaymentElementProps): React.ReactElement | null;
723
+ declare function PaymentElement({ className, style, amount, currency, onReady, onChange, onError, }: PaymentElementProps): React$1.ReactElement | null;
724
724
  declare function useCheckout(): {
725
725
  submit: (data: {
726
726
  cart_id: string;
@@ -747,7 +747,7 @@ interface QuantitySelectorProps {
747
747
  className?: string;
748
748
  classNames?: QuantitySelectorClassNames;
749
749
  }
750
- declare function QuantitySelector({ value, onChange, min, max, className, classNames, }: QuantitySelectorProps): React.ReactElement;
750
+ declare function QuantitySelector({ value, onChange, min, max, className, classNames, }: QuantitySelectorProps): React$1.ReactElement;
751
751
 
752
752
  interface VariantSelectorClassNames {
753
753
  root?: string;
@@ -771,7 +771,7 @@ interface VariantSelectorProps {
771
771
  className?: string;
772
772
  classNames?: VariantSelectorClassNames;
773
773
  }
774
- declare function VariantSelector({ variants, variantAxes, basePrice, selectedVariantId, onVariantChange, productName, className, classNames, }: VariantSelectorProps): React.ReactElement | null;
774
+ declare function VariantSelector({ variants, variantAxes, basePrice, selectedVariantId, onVariantChange, productName, className, classNames, }: VariantSelectorProps): React$1.ReactElement | null;
775
775
 
776
776
  interface AddOnSelectorClassNames {
777
777
  root?: string;
@@ -794,7 +794,7 @@ interface AddOnSelectorProps {
794
794
  className?: string;
795
795
  classNames?: AddOnSelectorClassNames;
796
796
  }
797
- declare function AddOnSelector({ addOns, selectedOptions, onOptionsChange, className, classNames, }: AddOnSelectorProps): React.ReactElement | null;
797
+ declare function AddOnSelector({ addOns, selectedOptions, onOptionsChange, className, classNames, }: AddOnSelectorProps): React$1.ReactElement | null;
798
798
 
799
799
  interface BundleSelectorClassNames {
800
800
  root?: string;
@@ -825,7 +825,7 @@ interface BundleSelectorProps {
825
825
  className?: string;
826
826
  classNames?: BundleSelectorClassNames;
827
827
  }
828
- declare function BundleSelector({ components, bundlePrice, discountValue, pricingType, onSelectionsChange, onPriceChange, onReady, className, classNames, }: BundleSelectorProps): React.ReactElement | null;
828
+ declare function BundleSelector({ components, bundlePrice, discountValue, pricingType, onSelectionsChange, onPriceChange, onReady, className, classNames, }: BundleSelectorProps): React$1.ReactElement | null;
829
829
 
830
830
  interface CompositeSelectorClassNames {
831
831
  root?: string;
@@ -867,7 +867,7 @@ interface CompositeSelectorProps {
867
867
  className?: string;
868
868
  classNames?: CompositeSelectorClassNames;
869
869
  }
870
- declare function CompositeSelector({ compositeId, groups, onSelectionsChange, onPriceChange, onReady, skipPriceFetch, className, classNames, }: CompositeSelectorProps): React.ReactElement | null;
870
+ declare function CompositeSelector({ compositeId, groups, onSelectionsChange, onPriceChange, onReady, skipPriceFetch, className, classNames, }: CompositeSelectorProps): React$1.ReactElement | null;
871
871
 
872
872
  interface ProductCustomizerClassNames {
873
873
  root?: string;
@@ -887,7 +887,7 @@ interface ProductCustomizerProps {
887
887
  className?: string;
888
888
  classNames?: ProductCustomizerClassNames;
889
889
  }
890
- declare function ProductCustomizer({ product, onAddToCart, showSpecialInstructions, className, classNames, }: ProductCustomizerProps): React.ReactElement;
890
+ declare function ProductCustomizer({ product, onAddToCart, showSpecialInstructions, className, classNames, }: ProductCustomizerProps): React$1.ReactElement;
891
891
 
892
892
  interface ProductImageGalleryProps {
893
893
  images: string[];
@@ -900,7 +900,7 @@ interface ProductImageGalleryProps {
900
900
  *
901
901
  * Uses plain `<img>` for framework-agnostic rendering (not Next.js Image).
902
902
  */
903
- declare function ProductImageGallery({ images, productName, aspectRatio, className, }: ProductImageGalleryProps): React.ReactElement | null;
903
+ declare function ProductImageGallery({ images, productName, aspectRatio, className, }: ProductImageGalleryProps): React$1.ReactElement | null;
904
904
 
905
905
  interface CartSummaryClassNames {
906
906
  root?: string;
@@ -939,7 +939,7 @@ interface CartSummaryProps {
939
939
  * NOT a drawer or modal — just the cart content. Templates wrap this in
940
940
  * their own drawer/modal shell with animations.
941
941
  */
942
- declare function CartSummary({ cart: serverCart, onCheckout, onItemRemove, onQuantityChange, emptyMessage, className, classNames, }: CartSummaryProps): React.ReactElement;
942
+ declare function CartSummary({ cart: serverCart, onCheckout, onItemRemove, onQuantityChange, emptyMessage, className, classNames, }: CartSummaryProps): React$1.ReactElement;
943
943
 
944
944
  interface AvailabilityBadgeClassNames {
945
945
  root?: string;
@@ -970,7 +970,7 @@ interface AvailabilityBadgeProps {
970
970
  * Returns `null` for products that don't have inventory tracking enabled,
971
971
  * since there's no meaningful stock state to show.
972
972
  */
973
- declare function AvailabilityBadge({ product, isAvailable, isInStock, stockQuantity, lowStockThreshold, locationId, className, classNames, }: AvailabilityBadgeProps): React.ReactElement | null;
973
+ declare function AvailabilityBadge({ product, isAvailable, isInStock, stockQuantity, lowStockThreshold, locationId, className, classNames, }: AvailabilityBadgeProps): React$1.ReactElement | null;
974
974
 
975
975
  interface SaleBadgeClassNames {
976
976
  root?: string;
@@ -998,7 +998,7 @@ interface SaleBadgeProps {
998
998
  * Returns `null` when there's no deal, no sale price difference, and no label override,
999
999
  * so it's safe to render unconditionally — it simply won't show for non-sale products.
1000
1000
  */
1001
- declare function SaleBadge({ product, dealInfo, label, showOriginalPrice, showPercentage, className, classNames, }: SaleBadgeProps): React.ReactElement | null;
1001
+ declare function SaleBadge({ product, dealInfo, label, showOriginalPrice, showPercentage, className, classNames, }: SaleBadgeProps): React$1.ReactElement | null;
1002
1002
 
1003
1003
  interface ProductSheetClassNames {
1004
1004
  root?: string;
@@ -1022,7 +1022,7 @@ interface ProductSheetProps {
1022
1022
  src: string;
1023
1023
  alt: string;
1024
1024
  className?: string;
1025
- }) => React.ReactNode;
1025
+ }) => React$1.ReactNode;
1026
1026
  className?: string;
1027
1027
  classNames?: ProductSheetClassNames;
1028
1028
  }
@@ -1032,7 +1032,7 @@ interface ProductSheetProps {
1032
1032
  * When given a slim `Product`, it lazy-fetches the full details via `useProduct`.
1033
1033
  * When given a `ProductWithDetails`, it skips the fetch entirely.
1034
1034
  */
1035
- declare function ProductSheet({ product, onClose, onAddToCart, renderImage, className, classNames, }: ProductSheetProps): React.ReactElement;
1035
+ declare function ProductSheet({ product, onClose, onAddToCart, renderImage, className, classNames, }: ProductSheetProps): React$1.ReactElement;
1036
1036
 
1037
1037
  interface CardLayoutProps {
1038
1038
  product: Product;
@@ -1041,12 +1041,12 @@ interface CardLayoutProps {
1041
1041
  src: string;
1042
1042
  alt: string;
1043
1043
  className?: string;
1044
- }) => React.ReactNode;
1044
+ }) => React$1.ReactNode;
1045
1045
  renderLink?: (props: {
1046
1046
  href: string;
1047
1047
  className?: string;
1048
- children: React.ReactNode;
1049
- }) => React.ReactElement;
1048
+ children: React$1.ReactNode;
1049
+ }) => React$1.ReactElement;
1050
1050
  className?: string;
1051
1051
  }
1052
1052
  declare function CardImage({ src, alt, aspectRatio, renderImage, className, children, }: {
@@ -1055,51 +1055,51 @@ declare function CardImage({ src, alt, aspectRatio, renderImage, className, chil
1055
1055
  aspectRatio?: "square" | "3/4" | "4/3" | "16/9";
1056
1056
  renderImage?: CardLayoutProps["renderImage"];
1057
1057
  className?: string;
1058
- children?: React.ReactNode;
1059
- }): React.ReactElement;
1058
+ children?: React$1.ReactNode;
1059
+ }): React$1.ReactElement;
1060
1060
  declare function QuickAddButton({ onClick, className, }: {
1061
1061
  onClick?: () => void;
1062
1062
  className?: string;
1063
- }): React.ReactElement;
1063
+ }): React$1.ReactElement;
1064
1064
  declare function WishlistButton({ filled, onClick, className, }: {
1065
1065
  filled?: boolean;
1066
1066
  onClick?: () => void;
1067
1067
  className?: string;
1068
- }): React.ReactElement;
1069
- declare function SoldOutOverlay(): React.ReactElement;
1068
+ }): React$1.ReactElement;
1069
+ declare function SoldOutOverlay(): React$1.ReactElement;
1070
1070
  declare function CardShell({ product, renderLink, disabled, className, children, }: {
1071
1071
  product: Product;
1072
1072
  renderLink?: CardLayoutProps["renderLink"];
1073
1073
  disabled?: boolean;
1074
1074
  className?: string;
1075
- children: React.ReactNode;
1076
- }): React.ReactElement;
1075
+ children: React$1.ReactNode;
1076
+ }): React$1.ReactElement;
1077
1077
 
1078
1078
  interface ServiceCardLayoutProps extends CardLayoutProps {
1079
1079
  slots?: AvailableSlot[];
1080
1080
  onBook?: (product: Product) => void;
1081
1081
  }
1082
- declare function StandardServiceCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React.ReactElement;
1082
+ declare function StandardServiceCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
1083
1083
 
1084
- declare function FoodProductCard({ product, onQuickAdd, renderImage, renderLink, className, }: CardLayoutProps): React.ReactElement;
1084
+ declare function FoodProductCard({ product, onQuickAdd, renderImage, renderLink, className, }: CardLayoutProps): React$1.ReactElement;
1085
1085
 
1086
- declare function RetailProductCard({ product, renderImage, renderLink, className, }: CardLayoutProps): React.ReactElement;
1086
+ declare function RetailProductCard({ product, renderImage, renderLink, className, }: CardLayoutProps): React$1.ReactElement;
1087
1087
 
1088
- declare function WholesaleProductCard({ product, onQuickAdd, renderImage, renderLink, className, }: CardLayoutProps): React.ReactElement;
1088
+ declare function WholesaleProductCard({ product, onQuickAdd, renderImage, renderLink, className, }: CardLayoutProps): React$1.ReactElement;
1089
1089
 
1090
- declare function DigitalProductCard({ product, renderImage, renderLink, className, }: CardLayoutProps): React.ReactElement;
1090
+ declare function DigitalProductCard({ product, renderImage, renderLink, className, }: CardLayoutProps): React$1.ReactElement;
1091
1091
 
1092
- declare function CompactServiceCard({ product, renderImage, renderLink, className, }: ServiceCardLayoutProps): React.ReactElement;
1092
+ declare function CompactServiceCard({ product, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
1093
1093
 
1094
- declare function ScheduleServiceCard({ product, slots, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React.ReactElement;
1094
+ declare function ScheduleServiceCard({ product, slots, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
1095
1095
 
1096
- declare function RentalServiceCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React.ReactElement;
1096
+ declare function RentalServiceCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
1097
1097
 
1098
- declare function AccommodationCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React.ReactElement;
1098
+ declare function AccommodationCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
1099
1099
 
1100
- declare function LeaseServiceCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React.ReactElement;
1100
+ declare function LeaseServiceCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
1101
1101
 
1102
- declare function SubscriptionCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React.ReactElement;
1102
+ declare function SubscriptionCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
1103
1103
 
1104
1104
  declare enum CardVariant {
1105
1105
  Food = "food",
@@ -1136,27 +1136,27 @@ interface ProductCardProps {
1136
1136
  /** Explicit card variant. Auto-detected from product data when omitted. */
1137
1137
  variant?: CardVariant;
1138
1138
  /** Per-slug card map. Highest priority — maps a product slug to a custom card component. */
1139
- cards?: Record<string, React.ComponentType<CardLayoutProps>>;
1139
+ cards?: Record<string, React$1.ComponentType<CardLayoutProps>>;
1140
1140
  /** Link href for page mode. Default: `/menu/${product.slug}` */
1141
1141
  href?: string;
1142
1142
  /** Custom modal content renderer. Receives the fully-loaded product and a close callback. */
1143
- renderModal?: (product: ProductWithDetails, onClose: () => void) => React.ReactNode;
1143
+ renderModal?: (product: ProductWithDetails, onClose: () => void) => React$1.ReactNode;
1144
1144
  /** Custom image renderer (e.g. Next.js Image). */
1145
1145
  renderImage?: (props: {
1146
1146
  src: string;
1147
1147
  alt: string;
1148
1148
  className?: string;
1149
- }) => React.ReactNode;
1149
+ }) => React$1.ReactNode;
1150
1150
  /** Custom link renderer for page mode (e.g. Next.js Link). */
1151
1151
  renderLink?: (props: {
1152
1152
  href: string;
1153
1153
  className?: string;
1154
- children: React.ReactNode;
1155
- }) => React.ReactElement;
1154
+ children: React$1.ReactNode;
1155
+ }) => React$1.ReactElement;
1156
1156
  /** Called when quick-add button is clicked (if the resolved card supports it). */
1157
1157
  onQuickAdd?: (product: Product) => void;
1158
1158
  /** Replace the entire default card body. */
1159
- children?: React.ReactNode;
1159
+ children?: React$1.ReactNode;
1160
1160
  /** Image aspect ratio. Default: "4/3". */
1161
1161
  aspectRatio?: "square" | "4/3" | "16/10" | "3/4";
1162
1162
  className?: string;
@@ -1168,7 +1168,7 @@ interface ProductCardProps {
1168
1168
  * - **card** (default): clickable button that opens a Base UI Dialog modal
1169
1169
  * - **page**: a plain `<a>` link for SEO-friendly product pages
1170
1170
  */
1171
- declare function ProductCard({ product, displayMode, variant, cards, href, renderModal, renderImage, renderLink, onQuickAdd, children, aspectRatio, className, classNames, }: ProductCardProps): React.ReactElement;
1171
+ declare function ProductCard({ product, displayMode, variant, cards, href, renderModal, renderImage, renderLink, onQuickAdd, children, aspectRatio, className, classNames, }: ProductCardProps): React$1.ReactElement;
1172
1172
 
1173
1173
  interface ProductGridClassNames {
1174
1174
  root?: string;
@@ -1186,13 +1186,13 @@ interface ProductGridProps {
1186
1186
  xl?: number;
1187
1187
  };
1188
1188
  /** Custom card renderer per product. */
1189
- renderCard?: (product: Product) => React.ReactNode;
1189
+ renderCard?: (product: Product) => React$1.ReactNode;
1190
1190
  /** Custom image renderer passed to default ProductCards. */
1191
1191
  renderImage?: (props: {
1192
1192
  src: string;
1193
1193
  alt: string;
1194
1194
  className?: string;
1195
- }) => React.ReactNode;
1195
+ }) => React$1.ReactNode;
1196
1196
  /** Text shown when `products` is empty. */
1197
1197
  emptyMessage?: string;
1198
1198
  className?: string;
@@ -1204,7 +1204,7 @@ interface ProductGridProps {
1204
1204
  * Injects an inline `<style>` tag with media queries for responsive columns.
1205
1205
  * Uses `React.useId()` for a hydration-safe, collision-free CSS selector.
1206
1206
  */
1207
- declare function ProductGrid({ products, columns, renderCard, renderImage, emptyMessage, className, classNames, }: ProductGridProps): React.ReactElement;
1207
+ declare function ProductGrid({ products, columns, renderCard, renderImage, emptyMessage, className, classNames, }: ProductGridProps): React$1.ReactElement;
1208
1208
 
1209
1209
  declare function cn(...inputs: ClassValue[]): string;
1210
1210
 
@@ -1229,7 +1229,7 @@ interface SearchInputProps {
1229
1229
  /** Called when a product result is clicked. */
1230
1230
  onResultClick?: (product: Product) => void;
1231
1231
  /** Custom result item renderer. */
1232
- renderResult?: (product: Product) => React.ReactNode;
1232
+ renderResult?: (product: Product) => React$1.ReactNode;
1233
1233
  /** Show inline results dropdown. Default: true. */
1234
1234
  showResults?: boolean;
1235
1235
  /** Optional category ID to scope search results. */
@@ -1245,7 +1245,7 @@ interface SearchInputProps {
1245
1245
  * Wraps `useSearch` with a controlled input and optional inline results list.
1246
1246
  * Uses Base UI Field.Root + Input for accessible form semantics.
1247
1247
  */
1248
- declare function SearchInput({ placeholder, searchOptions, onResultClick, renderResult, showResults, categoryId, categoryName, className, classNames, }: SearchInputProps): React.ReactElement;
1248
+ declare function SearchInput({ placeholder, searchOptions, onResultClick, renderResult, showResults, categoryId, categoryName, className, classNames, }: SearchInputProps): React$1.ReactElement;
1249
1249
 
1250
1250
  interface CategoryFilterClassNames {
1251
1251
  root?: string;
@@ -1273,7 +1273,7 @@ interface CategoryFilterProps {
1273
1273
  *
1274
1274
  * Built on Base UI Tabs for accessible keyboard navigation and ARIA roles.
1275
1275
  */
1276
- declare function CategoryFilter({ selectedId, onSelect, allLabel, showCounts, className, classNames, }: CategoryFilterProps): React.ReactElement;
1276
+ declare function CategoryFilter({ selectedId, onSelect, allLabel, showCounts, className, classNames, }: CategoryFilterProps): React$1.ReactElement;
1277
1277
 
1278
1278
  interface DiscountInputClassNames {
1279
1279
  root?: string;
@@ -1303,7 +1303,7 @@ interface DiscountInputProps {
1303
1303
  * Wraps `useValidateDiscount` with a Base UI Field + Input and apply button.
1304
1304
  * Shows validation result inline (success with amount, or error via Field.Error).
1305
1305
  */
1306
- declare function DiscountInput({ orderSubtotal, locationId, onApply, onClear, placeholder, className, classNames, }: DiscountInputProps): React.ReactElement;
1306
+ declare function DiscountInput({ orderSubtotal, locationId, onApply, onClear, placeholder, className, classNames, }: DiscountInputProps): React$1.ReactElement;
1307
1307
 
1308
1308
  interface CategoryGridClassNames {
1309
1309
  root?: string;
@@ -1319,7 +1319,7 @@ interface CategoryGridProps {
1319
1319
  /** Called when a category card is clicked. */
1320
1320
  onSelect?: (category: Category) => void;
1321
1321
  /** Custom card renderer. */
1322
- renderCard?: (category: Category) => React.ReactNode;
1322
+ renderCard?: (category: Category) => React$1.ReactNode;
1323
1323
  /** Responsive column counts. */
1324
1324
  columns?: {
1325
1325
  sm?: number;
@@ -1337,7 +1337,7 @@ interface CategoryGridProps {
1337
1337
  * Fetches categories via `useCategories` unless overridden.
1338
1338
  * Uses `React.useId()` for hydration-safe responsive CSS.
1339
1339
  */
1340
- declare function CategoryGrid({ categories: categoriesProp, onSelect, renderCard, columns, emptyMessage, className, classNames, }: CategoryGridProps): React.ReactElement;
1340
+ declare function CategoryGrid({ categories: categoriesProp, onSelect, renderCard, columns, emptyMessage, className, classNames, }: CategoryGridProps): React$1.ReactElement;
1341
1341
 
1342
1342
  interface DealBannerClassNames {
1343
1343
  root?: string;
@@ -1355,7 +1355,7 @@ interface DealBannerProps {
1355
1355
  /** Called when a deal is clicked. */
1356
1356
  onDealClick?: (deal: Deal) => void;
1357
1357
  /** Custom deal card renderer. */
1358
- renderDeal?: (deal: Deal) => React.ReactNode;
1358
+ renderDeal?: (deal: Deal) => React$1.ReactNode;
1359
1359
  /** Maximum deals to show. Default: all. */
1360
1360
  limit?: number;
1361
1361
  className?: string;
@@ -1366,7 +1366,7 @@ interface DealBannerProps {
1366
1366
  *
1367
1367
  * Renders as a horizontal scrollable strip or grid of deal cards.
1368
1368
  */
1369
- declare function DealBanner({ deals: dealsProp, locationId, onDealClick, renderDeal, limit, className, classNames, }: DealBannerProps): React.ReactElement | null;
1369
+ declare function DealBanner({ deals: dealsProp, locationId, onDealClick, renderDeal, limit, className, classNames, }: DealBannerProps): React$1.ReactElement | null;
1370
1370
 
1371
1371
  interface OrderSummaryClassNames {
1372
1372
  root?: string;
@@ -1397,7 +1397,7 @@ interface OrderSummaryProps {
1397
1397
  /** Poll for status updates. */
1398
1398
  poll?: boolean;
1399
1399
  /** Custom line item renderer. */
1400
- renderLineItem?: (item: LineItem) => React.ReactNode;
1400
+ renderLineItem?: (item: LineItem) => React$1.ReactNode;
1401
1401
  /** Called when the reorder button is clicked. */
1402
1402
  onReorder?: (order: Order) => void;
1403
1403
  /** Called when the order status changes during polling. */
@@ -1411,7 +1411,7 @@ interface OrderSummaryProps {
1411
1411
  * Accepts either a pre-loaded `order` object or an `orderId` to fetch.
1412
1412
  * Supports polling for live status updates.
1413
1413
  */
1414
- declare function OrderSummary({ order: orderProp, orderId, poll, renderLineItem, onReorder, onStatusChange, className, classNames, }: OrderSummaryProps): React.ReactElement;
1414
+ declare function OrderSummary({ order: orderProp, orderId, poll, renderLineItem, onReorder, onStatusChange, className, classNames, }: OrderSummaryProps): React$1.ReactElement;
1415
1415
 
1416
1416
  interface OrderHistoryClassNames {
1417
1417
  root?: string;
@@ -1434,7 +1434,7 @@ interface OrderHistoryProps {
1434
1434
  /** Called when an order row is clicked. */
1435
1435
  onOrderClick?: (order: Order) => void;
1436
1436
  /** Custom order row renderer. */
1437
- renderOrder?: (order: Order) => React.ReactNode;
1437
+ renderOrder?: (order: Order) => React$1.ReactNode;
1438
1438
  /** Called when the reorder button is clicked. If provided, a reorder button is rendered. */
1439
1439
  onReorder?: (order: Order) => void;
1440
1440
  /** Text shown when empty. */
@@ -1447,7 +1447,7 @@ interface OrderHistoryProps {
1447
1447
  *
1448
1448
  * Fetches via `useOrders` unless pre-loaded orders are passed.
1449
1449
  */
1450
- declare function OrderHistory({ orders: ordersProp, status, limit, onOrderClick, renderOrder, onReorder, emptyMessage, className, classNames, }: OrderHistoryProps): React.ReactElement;
1450
+ declare function OrderHistory({ orders: ordersProp, status, limit, onOrderClick, renderOrder, onReorder, emptyMessage, className, classNames, }: OrderHistoryProps): React$1.ReactElement;
1451
1451
 
1452
1452
  interface StoreNavClassNames {
1453
1453
  root?: string;
@@ -1463,7 +1463,7 @@ interface StoreNavProps {
1463
1463
  /** Store/brand name. */
1464
1464
  storeName?: string;
1465
1465
  /** Custom brand element (logo, etc.). Overrides storeName. */
1466
- renderBrand?: () => React.ReactNode;
1466
+ renderBrand?: () => React$1.ReactNode;
1467
1467
  /** Override categories (skips fetch). */
1468
1468
  categories?: Category[];
1469
1469
  /** Called when a category link is clicked. */
@@ -1487,7 +1487,7 @@ interface StoreNavProps {
1487
1487
  * Fetches categories via `useCategories` and cart count via `useCart`.
1488
1488
  * Renders as a semantic `<nav>` element.
1489
1489
  */
1490
- declare function StoreNav({ storeName, renderBrand, categories: categoriesProp, onCategoryClick, onCartClick, onSearchClick, hideCategories, hideCart, hideSearch, className, classNames, }: StoreNavProps): React.ReactElement;
1490
+ declare function StoreNav({ storeName, renderBrand, categories: categoriesProp, onCategoryClick, onCartClick, onSearchClick, hideCategories, hideCart, hideSearch, className, classNames, }: StoreNavProps): React$1.ReactElement;
1491
1491
 
1492
1492
  interface SlotPickerClassNames {
1493
1493
  root?: string;
@@ -1521,7 +1521,7 @@ interface SlotPickerProps {
1521
1521
  className?: string;
1522
1522
  classNames?: SlotPickerClassNames;
1523
1523
  }
1524
- declare function SlotPicker({ slots: slotsProp, serviceId, date, participantCount, selectedSlot, onSlotSelect, groupByTimeOfDay, showPrice, emptyMessage, className, classNames, }: SlotPickerProps): React.ReactElement;
1524
+ declare function SlotPicker({ slots: slotsProp, serviceId, date, participantCount, selectedSlot, onSlotSelect, groupByTimeOfDay, showPrice, emptyMessage, className, classNames, }: SlotPickerProps): React$1.ReactElement;
1525
1525
 
1526
1526
  interface DateSlotPickerClassNames {
1527
1527
  root?: string;
@@ -1550,7 +1550,7 @@ interface DateSlotPickerProps {
1550
1550
  className?: string;
1551
1551
  classNames?: DateSlotPickerClassNames;
1552
1552
  }
1553
- declare function DateSlotPicker({ serviceId, daysToShow, participantCount, selectedSlot, onSlotSelect, availability: availabilityProp, showPrice, className, classNames, }: DateSlotPickerProps): React.ReactElement;
1553
+ declare function DateSlotPicker({ serviceId, daysToShow, participantCount, selectedSlot, onSlotSelect, availability: availabilityProp, showPrice, className, classNames, }: DateSlotPickerProps): React$1.ReactElement;
1554
1554
 
1555
1555
  interface StaffPickerClassNames {
1556
1556
  root?: string;
@@ -1573,7 +1573,7 @@ interface StaffPickerProps {
1573
1573
  className?: string;
1574
1574
  classNames?: StaffPickerClassNames;
1575
1575
  }
1576
- declare function StaffPicker({ staff, selectedStaffId, onStaffSelect, showAnyOption, anyLabel, className, classNames, }: StaffPickerProps): React.ReactElement;
1576
+ declare function StaffPicker({ staff, selectedStaffId, onStaffSelect, showAnyOption, anyLabel, className, classNames, }: StaffPickerProps): React$1.ReactElement;
1577
1577
 
1578
1578
  interface BookingCardClassNames {
1579
1579
  root?: string;
@@ -1594,11 +1594,11 @@ interface BookingCardProps {
1594
1594
  /** Called when reschedule is clicked. */
1595
1595
  onReschedule?: (booking: CustomerBooking) => void;
1596
1596
  /** Custom renderer for the booking. */
1597
- renderBooking?: (booking: CustomerBooking) => React.ReactNode;
1597
+ renderBooking?: (booking: CustomerBooking) => React$1.ReactNode;
1598
1598
  className?: string;
1599
1599
  classNames?: BookingCardClassNames;
1600
1600
  }
1601
- declare function BookingCard({ booking, onCancel, onReschedule, renderBooking, className, classNames, }: BookingCardProps): React.ReactElement;
1601
+ declare function BookingCard({ booking, onCancel, onReschedule, renderBooking, className, classNames, }: BookingCardProps): React$1.ReactElement;
1602
1602
 
1603
1603
  interface BookingListClassNames {
1604
1604
  root?: string;
@@ -1618,158 +1618,117 @@ interface BookingListProps {
1618
1618
  /** Called when a booking is clicked. */
1619
1619
  onBookingClick?: (booking: CustomerBooking) => void;
1620
1620
  /** Custom booking renderer. */
1621
- renderBooking?: (booking: CustomerBooking) => React.ReactNode;
1621
+ renderBooking?: (booking: CustomerBooking) => React$1.ReactNode;
1622
1622
  /** Text shown when empty. */
1623
1623
  emptyMessage?: string;
1624
1624
  className?: string;
1625
1625
  classNames?: BookingListClassNames;
1626
1626
  }
1627
- declare function BookingList({ bookings: bookingsProp, filter, onCancel, onReschedule, onBookingClick, renderBooking, emptyMessage, className, classNames, }: BookingListProps): React.ReactElement;
1627
+ declare function BookingList({ bookings: bookingsProp, filter, onCancel, onReschedule, onBookingClick, renderBooking, emptyMessage, className, classNames, }: BookingListProps): React$1.ReactElement;
1628
1628
 
1629
- interface ServiceCardClassNames {
1630
- root?: string;
1631
- imageContainer?: string;
1632
- image?: string;
1633
- body?: string;
1634
- name?: string;
1635
- description?: string;
1636
- meta?: string;
1637
- duration?: string;
1638
- price?: string;
1639
- action?: string;
1640
- }
1641
- interface ServiceCardProps {
1642
- /** The service to display. */
1643
- service: Service;
1644
- /** Called when the card or book button is clicked. */
1645
- onBook?: (service: Service) => void;
1646
- /** Link href for page mode. Renders as `<a>` instead of `<button>`. */
1647
- href?: string;
1648
- /** Label for the action button. Default: "Book". */
1649
- actionLabel?: string;
1650
- /** Custom image renderer (e.g. Next.js Image). */
1629
+ interface CatalogueLayoutProps {
1630
+ products: Product[];
1631
+ categories: Category[];
1632
+ facets?: PropertyFacet[];
1633
+ isLoading: boolean;
1634
+ /** Selected category ID. */
1635
+ selectedCategory: string | null;
1636
+ onCategoryChange: (id: string | null) => void;
1637
+ /** Search query state. */
1638
+ searchQuery: string;
1639
+ onSearchChange: (query: string) => void;
1640
+ /** Sort state. */
1641
+ sortBy: string;
1642
+ sortOrder: string;
1643
+ onSortChange: (by: string, order: string) => void;
1644
+ /** In-stock filter. */
1645
+ inStockOnly: boolean;
1646
+ onInStockChange: (value: boolean) => void;
1647
+ /** Tag filters. */
1648
+ selectedTags: string[];
1649
+ availableTags?: string[];
1650
+ onTagToggle: (tag: string) => void;
1651
+ /** Price range. */
1652
+ minPrice: string;
1653
+ maxPrice: string;
1654
+ onPriceRangeChange: (min: string, max: string) => void;
1655
+ /** Pagination. */
1656
+ page: number;
1657
+ totalPages: number;
1658
+ onPageChange: (page: number) => void;
1659
+ /** Custom renderers. */
1660
+ renderCard?: (product: Product) => React.ReactNode;
1651
1661
  renderImage?: (props: {
1652
1662
  src: string;
1653
1663
  alt: string;
1654
1664
  className?: string;
1655
1665
  }) => React.ReactNode;
1656
- /** Replace the entire default card body. */
1657
- children?: React.ReactNode;
1658
- /** Image aspect ratio. Default: "4/3". */
1659
- aspectRatio?: "square" | "4/3" | "16/10" | "3/4";
1660
- className?: string;
1661
- classNames?: ServiceCardClassNames;
1662
- }
1663
- declare function ServiceCard({ service, onBook, href, actionLabel, renderImage, children, aspectRatio, className, classNames, }: ServiceCardProps): React.ReactElement;
1664
-
1665
- interface ServiceGridClassNames {
1666
- root?: string;
1667
- item?: string;
1668
- empty?: string;
1669
- loading?: string;
1670
- }
1671
- interface ServiceGridProps {
1672
- /** Pre-fetched services (skips fetch). */
1673
- services?: Service[];
1674
- /** Responsive column counts at each breakpoint. */
1675
- columns?: {
1676
- sm?: number;
1677
- md?: number;
1678
- lg?: number;
1679
- xl?: number;
1680
- };
1681
- /** Called when a service card is clicked. */
1682
- onServiceSelect?: (service: Service) => void;
1683
- /** Generate href for each service (renders cards as links). */
1684
- getServiceHref?: (service: Service) => string;
1685
- /** Custom card renderer per service. */
1686
- renderCard?: (service: Service) => React.ReactNode;
1687
- /** Custom image renderer passed to default ServiceCards. */
1688
- renderImage?: (props: {
1689
- src: string;
1690
- alt: string;
1666
+ renderLink?: (props: {
1667
+ href: string;
1691
1668
  className?: string;
1692
- }) => React.ReactNode;
1693
- /** Only show available services. Default: true. */
1694
- availableOnly?: boolean;
1695
- /** Label for the book action on each card. */
1696
- actionLabel?: string;
1697
- /** Text shown when empty. */
1698
- emptyMessage?: string;
1669
+ children: React.ReactNode;
1670
+ }) => React.ReactElement;
1671
+ onQuickAdd?: (product: Product) => void;
1672
+ onProductClick?: (product: Product) => void;
1673
+ title?: string;
1699
1674
  className?: string;
1700
- classNames?: ServiceGridClassNames;
1701
1675
  }
1702
- declare function ServiceGrid({ services: servicesProp, columns, onServiceSelect, getServiceHref, renderCard, renderImage, availableOnly, actionLabel, emptyMessage, className, classNames, }: ServiceGridProps): React.ReactElement;
1703
1676
 
1677
+ declare enum CatalogueTemplate {
1678
+ Default = "default",
1679
+ Compact = "compact"
1680
+ }
1704
1681
  interface CataloguePageClassNames {
1705
1682
  root?: string;
1706
- header?: string;
1707
- title?: string;
1708
- searchContainer?: string;
1709
- filterContainer?: string;
1710
- toolbar?: string;
1711
- gridContainer?: string;
1712
- empty?: string;
1713
- loading?: string;
1714
- pagination?: string;
1715
1683
  }
1716
1684
  interface CataloguePageProps {
1685
+ /** Explicit template. */
1686
+ template?: CatalogueTemplate;
1687
+ /** Layout map for overrides. */
1688
+ layouts?: Partial<Record<CatalogueTemplate | string, React$1.ComponentType<CatalogueLayoutProps>>>;
1717
1689
  /** Page title. */
1718
1690
  title?: string;
1719
- /** Pre-fetched products for SSR. When provided, skips client-side fetch. */
1691
+ /** Pre-fetched products for SSR. */
1720
1692
  products?: Product[];
1721
1693
  /** Pre-fetched categories for SSR. */
1722
1694
  categories?: Category[];
1723
- /** Show category filter. Default: true. */
1724
- showFilter?: boolean;
1725
- /** Show search input. Default: true. */
1726
- showSearch?: boolean;
1727
- /** Show sort controls. Default: false. */
1728
- showSort?: boolean;
1729
- /** Show in-stock toggle. Default: false. */
1730
- showInStockFilter?: boolean;
1731
- /** Show price range filter. Default: false. */
1732
- showPriceRange?: boolean;
1733
- /** Show tags filter. Default: false. */
1734
- showTagsFilter?: boolean;
1735
- /** Available tags for filtering. When provided, renders tag chips. */
1695
+ /** Pre-fetched property facets for sidebar. */
1696
+ facets?: PropertyFacet[];
1697
+ /** Available tags for filtering. */
1736
1698
  availableTags?: string[];
1699
+ /** Products per page. */
1700
+ pageSize?: number;
1737
1701
  /** Default sort. */
1738
1702
  defaultSort?: {
1739
- by: "name" | "price" | "created_at" | "updated_at";
1740
- order: "asc" | "desc";
1703
+ by: string;
1704
+ order: string;
1741
1705
  };
1742
- /** Products per page. */
1743
- pageSize?: number;
1744
- /** Called when a product is selected (e.g. navigate to product page). */
1745
- onProductClick?: (product: Product) => void;
1746
- /** Called when a category is selected. */
1747
- onCategoryClick?: (category: Category) => void;
1748
- /** Custom card renderer passed to ProductGrid. */
1749
- renderCard?: (product: Product) => React.ReactNode;
1750
- /** Custom image renderer passed to ProductGrid. */
1706
+ /** Custom card renderer. */
1707
+ renderCard?: (product: Product) => React$1.ReactNode;
1708
+ /** Custom image renderer. */
1751
1709
  renderImage?: (props: {
1752
1710
  src: string;
1753
1711
  alt: string;
1754
1712
  className?: string;
1755
- }) => React.ReactNode;
1756
- /** Grid column config. */
1757
- columns?: {
1758
- sm?: number;
1759
- md?: number;
1760
- lg?: number;
1761
- xl?: number;
1762
- };
1713
+ }) => React$1.ReactNode;
1714
+ /** Custom link renderer. */
1715
+ renderLink?: (props: {
1716
+ href: string;
1717
+ className?: string;
1718
+ children: React$1.ReactNode;
1719
+ }) => React$1.ReactElement;
1720
+ /** Quick-add handler. */
1721
+ onQuickAdd?: (product: Product) => void;
1722
+ /** Product click handler. */
1723
+ onProductClick?: (product: Product) => void;
1763
1724
  className?: string;
1764
1725
  classNames?: CataloguePageClassNames;
1765
1726
  }
1766
- /**
1767
- * CataloguePage — browse all products with server-side filtering, sorting, and pagination.
1768
- *
1769
- * SSR-friendly: pass `products` and `categories` props for server rendering.
1770
- * Omit them for fully client-side data fetching.
1771
- */
1772
- declare function CataloguePage({ title, products: productsProp, categories: categoriesProp, showFilter, showSearch, showSort, showInStockFilter, showPriceRange, showTagsFilter, availableTags, defaultSort, pageSize, onProductClick, onCategoryClick, renderCard, renderImage, columns, className, classNames, }: CataloguePageProps): React.ReactElement;
1727
+ declare function CataloguePage({ template, layouts, title, products: productsProp, categories: categoriesProp, facets, availableTags, pageSize, defaultSort, renderCard, renderImage, renderLink, onQuickAdd, onProductClick, className, classNames, }: CataloguePageProps): React$1.ReactElement;
1728
+
1729
+ declare function DefaultCatalogueLayout({ products, categories, facets, isLoading, selectedCategory, onCategoryChange, searchQuery, onSearchChange, sortBy, sortOrder, onSortChange, inStockOnly, onInStockChange, selectedTags, availableTags, onTagToggle, minPrice, maxPrice, onPriceRangeChange, page, totalPages, onPageChange, renderCard, renderImage, renderLink, onQuickAdd, title, className, }: CatalogueLayoutProps): React$1.ReactElement;
1730
+
1731
+ declare function CompactCatalogueLayout({ products, categories, isLoading, selectedCategory, onCategoryChange, searchQuery, onSearchChange, renderCard, renderImage, renderLink, onQuickAdd, title, className, }: CatalogueLayoutProps): React$1.ReactElement;
1773
1732
 
1774
1733
  interface ProductLayoutProps {
1775
1734
  product: ProductWithDetails;
@@ -1778,45 +1737,45 @@ interface ProductLayoutProps {
1778
1737
  src: string;
1779
1738
  alt: string;
1780
1739
  className?: string;
1781
- }) => React.ReactNode;
1782
- renderBreadcrumb?: (product: ProductWithDetails) => React.ReactNode;
1740
+ }) => React$1.ReactNode;
1741
+ renderBreadcrumb?: (product: ProductWithDetails) => React$1.ReactNode;
1783
1742
  relatedProducts?: Product[];
1784
1743
  showRelated?: boolean;
1785
1744
  className?: string;
1786
1745
  }
1787
1746
  declare function TwoColumnGrid({ left, right, className, }: {
1788
- left: React.ReactNode;
1789
- right: React.ReactNode;
1747
+ left: React$1.ReactNode;
1748
+ right: React$1.ReactNode;
1790
1749
  className?: string;
1791
- }): React.ReactElement;
1750
+ }): React$1.ReactElement;
1792
1751
  declare function MetadataStringList({ items, label, icon, className, }: {
1793
1752
  items: string[];
1794
1753
  label: string;
1795
- icon?: React.ReactNode;
1754
+ icon?: React$1.ReactNode;
1796
1755
  className?: string;
1797
- }): React.ReactElement | null;
1756
+ }): React$1.ReactElement | null;
1798
1757
  declare function CustomAttributesTable({ attributes, className, }: {
1799
1758
  attributes: CustomAttributeValue[];
1800
1759
  className?: string;
1801
- }): React.ReactElement | null;
1760
+ }): React$1.ReactElement | null;
1802
1761
  declare function PropertiesTable({ properties, className, }: {
1803
1762
  properties: ProductProperty[];
1804
1763
  className?: string;
1805
- }): React.ReactElement | null;
1764
+ }): React$1.ReactElement | null;
1806
1765
  declare function TagPills({ tags, className, }: {
1807
1766
  tags: string[];
1808
1767
  className?: string;
1809
- }): React.ReactElement | null;
1768
+ }): React$1.ReactElement | null;
1810
1769
  declare function InventoryBadge({ product, className, }: {
1811
1770
  product: Product;
1812
1771
  className?: string;
1813
- }): React.ReactElement | null;
1772
+ }): React$1.ReactElement | null;
1814
1773
  declare function RelatedProductsSection({ products, title, renderImage, className, }: {
1815
1774
  products: Product[];
1816
1775
  title?: string;
1817
1776
  renderImage?: ProductLayoutProps["renderImage"];
1818
1777
  className?: string;
1819
- }): React.ReactElement | null;
1778
+ }): React$1.ReactElement | null;
1820
1779
 
1821
1780
  declare enum ProductTemplate {
1822
1781
  Default = "default",
@@ -1836,9 +1795,9 @@ interface ProductPageProps {
1836
1795
  /** Pre-fetched product for SSR. Skips client-side fetch when provided. */
1837
1796
  product?: ProductWithDetails;
1838
1797
  /** Per-slug page map. Highest priority — maps a product slug to a custom component. */
1839
- pages?: Record<string, React.ComponentType<ProductLayoutProps>>;
1798
+ pages?: Record<string, React$1.ComponentType<ProductLayoutProps>>;
1840
1799
  /** Per-type template map. Overrides built-in layouts for specific template keys. */
1841
- templates?: Partial<Record<ProductTemplate | string, React.ComponentType<ProductLayoutProps>>>;
1800
+ templates?: Partial<Record<ProductTemplate | string, React$1.ComponentType<ProductLayoutProps>>>;
1842
1801
  /** Override add-to-cart behavior. */
1843
1802
  onAddToCart?: (product: ProductWithDetails, quantity: number, options: AddToCartOptions) => void | Promise<void>;
1844
1803
  /** Custom image renderer (e.g. Next.js Image). */
@@ -1846,9 +1805,9 @@ interface ProductPageProps {
1846
1805
  src: string;
1847
1806
  alt: string;
1848
1807
  className?: string;
1849
- }) => React.ReactNode;
1808
+ }) => React$1.ReactNode;
1850
1809
  /** Breadcrumb renderer. Receives the product for context. */
1851
- renderBreadcrumb?: (product: ProductWithDetails) => React.ReactNode;
1810
+ renderBreadcrumb?: (product: ProductWithDetails) => React$1.ReactNode;
1852
1811
  /** Pre-fetched related products. */
1853
1812
  relatedProducts?: Product[];
1854
1813
  /** Show related products section. Default: true. */
@@ -1856,30 +1815,48 @@ interface ProductPageProps {
1856
1815
  className?: string;
1857
1816
  classNames?: ProductPageClassNames;
1858
1817
  }
1859
- declare function ProductPage({ productId, product: productProp, pages, templates, onAddToCart, renderImage, renderBreadcrumb, relatedProducts, showRelated, className, classNames, }: ProductPageProps): React.ReactElement;
1818
+ declare function ProductPage({ productId, product: productProp, pages, templates, onAddToCart, renderImage, renderBreadcrumb, relatedProducts, showRelated, className, classNames, }: ProductPageProps): React$1.ReactElement;
1860
1819
 
1861
- declare function DefaultProductLayout({ product, onAddToCart, renderBreadcrumb, relatedProducts, showRelated, className, }: ProductLayoutProps): React.ReactElement;
1820
+ declare function DefaultProductLayout({ product, onAddToCart, renderBreadcrumb, relatedProducts, showRelated, className, }: ProductLayoutProps): React$1.ReactElement;
1862
1821
 
1863
- declare function FoodProductLayout({ product, onAddToCart, renderBreadcrumb, relatedProducts, showRelated, className, }: ProductLayoutProps): React.ReactElement;
1822
+ declare function FoodProductLayout({ product, onAddToCart, renderBreadcrumb, relatedProducts, showRelated, className, }: ProductLayoutProps): React$1.ReactElement;
1864
1823
 
1865
- declare function WholesaleProductLayout({ product, onAddToCart, renderBreadcrumb, relatedProducts, showRelated, className, }: ProductLayoutProps): React.ReactElement;
1824
+ declare function WholesaleProductLayout({ product, onAddToCart, renderBreadcrumb, relatedProducts, showRelated, className, }: ProductLayoutProps): React$1.ReactElement;
1866
1825
 
1867
- declare function ServiceProductLayout({ product, onAddToCart, renderBreadcrumb, relatedProducts, showRelated, className, }: ProductLayoutProps): React.ReactElement;
1826
+ declare function ServiceProductLayout({ product, onAddToCart, renderBreadcrumb, relatedProducts, showRelated, className, }: ProductLayoutProps): React$1.ReactElement;
1868
1827
 
1869
- declare function DigitalProductLayout({ product, onAddToCart, renderBreadcrumb, relatedProducts, showRelated, className, }: ProductLayoutProps): React.ReactElement;
1828
+ declare function DigitalProductLayout({ product, onAddToCart, renderBreadcrumb, relatedProducts, showRelated, className, }: ProductLayoutProps): React$1.ReactElement;
1870
1829
 
1830
+ interface CartLayoutProps {
1831
+ /** Cart state from useCart hook. */
1832
+ cart: UseCartResult;
1833
+ /** Called when checkout is initiated. */
1834
+ onCheckout?: () => void;
1835
+ /** Called when "continue shopping" is clicked. */
1836
+ onContinueShopping?: () => void;
1837
+ /** Called when a valid discount is applied. */
1838
+ onDiscountApply?: (validation: DiscountValidation) => void;
1839
+ /** Called when discount is removed. */
1840
+ onDiscountClear?: () => void;
1841
+ /** Show discount code input. */
1842
+ showDiscount?: boolean;
1843
+ /** Checkout button text. */
1844
+ checkoutLabel?: string;
1845
+ className?: string;
1846
+ }
1847
+
1848
+ declare enum CartTemplate {
1849
+ Default = "default",
1850
+ Compact = "compact"
1851
+ }
1871
1852
  interface CartPageClassNames {
1872
1853
  root?: string;
1873
- header?: string;
1874
- title?: string;
1875
- content?: string;
1876
- discount?: string;
1877
- footer?: string;
1878
- checkoutButton?: string;
1879
- continueButton?: string;
1880
- empty?: string;
1881
1854
  }
1882
1855
  interface CartPageProps {
1856
+ /** Explicit template. */
1857
+ template?: CartTemplate;
1858
+ /** Layout map for overrides. */
1859
+ layouts?: Partial<Record<CartTemplate | string, React$1.ComponentType<CartLayoutProps>>>;
1883
1860
  /** Page title. */
1884
1861
  title?: string;
1885
1862
  /** Called when checkout is initiated. */
@@ -1890,21 +1867,18 @@ interface CartPageProps {
1890
1867
  onDiscountApply?: (validation: DiscountValidation) => void;
1891
1868
  /** Called when discount is removed. */
1892
1869
  onDiscountClear?: () => void;
1893
- /** Show discount code input. Default: true. */
1870
+ /** Show discount code input. */
1894
1871
  showDiscount?: boolean;
1895
- /** Show "continue shopping" link. Default: true. */
1896
- showContinueShopping?: boolean;
1897
1872
  /** Checkout button text. */
1898
1873
  checkoutLabel?: string;
1899
1874
  className?: string;
1900
1875
  classNames?: CartPageClassNames;
1901
1876
  }
1902
- /**
1903
- * CartPage — full-page cart view with summary, discount input, and checkout.
1904
- *
1905
- * Composes CartSummary and DiscountInput into a complete cart experience.
1906
- */
1907
- declare function CartPage({ title, onCheckout, onContinueShopping, onDiscountApply, onDiscountClear, showDiscount, showContinueShopping, checkoutLabel, className, classNames, }: CartPageProps): React.ReactElement;
1877
+ declare function CartPage({ template, layouts, onCheckout, onContinueShopping, onDiscountApply, onDiscountClear, showDiscount, checkoutLabel, className, classNames, }: CartPageProps): React$1.ReactElement;
1878
+
1879
+ declare function DefaultCartLayout({ cart, onCheckout, onContinueShopping, onDiscountApply, onDiscountClear, showDiscount, checkoutLabel, className, }: CartLayoutProps): React$1.ReactElement;
1880
+
1881
+ declare function CompactCartLayout({ cart, onCheckout, onContinueShopping, checkoutLabel, className, }: CartLayoutProps): React$1.ReactElement;
1908
1882
 
1909
1883
  interface CheckoutPageClassNames {
1910
1884
  root?: string;
@@ -1934,48 +1908,72 @@ interface CheckoutPageProps {
1934
1908
  * renders a page header, and delegates all checkout logic
1935
1909
  * to CimplifyCheckout.
1936
1910
  */
1937
- declare function CheckoutPage({ title, onComplete, onError, checkoutProps, className, classNames, }: CheckoutPageProps): React.ReactElement;
1911
+ declare function CheckoutPage({ title, onComplete, onError, checkoutProps, className, classNames, }: CheckoutPageProps): React$1.ReactElement;
1912
+
1913
+ interface CollectionLayoutProps {
1914
+ collection: Collection;
1915
+ products: Product[];
1916
+ renderCard?: (product: Product) => React$1.ReactNode;
1917
+ renderImage?: (props: {
1918
+ src: string;
1919
+ alt: string;
1920
+ className?: string;
1921
+ }) => React$1.ReactNode;
1922
+ renderLink?: (props: {
1923
+ href: string;
1924
+ className?: string;
1925
+ children: React$1.ReactNode;
1926
+ }) => React$1.ReactElement;
1927
+ onQuickAdd?: (product: Product) => void;
1928
+ className?: string;
1929
+ }
1938
1930
 
1931
+ declare enum CollectionTemplate {
1932
+ Default = "default",
1933
+ Featured = "featured",
1934
+ Catalogue = "catalogue"
1935
+ }
1939
1936
  interface CollectionPageClassNames {
1940
1937
  root?: string;
1941
- header?: string;
1942
- title?: string;
1943
- description?: string;
1944
- image?: string;
1945
- grid?: string;
1946
1938
  loading?: string;
1947
1939
  }
1948
1940
  interface CollectionPageProps {
1949
1941
  /** Collection slug or ID. */
1950
- collectionId: string;
1942
+ collectionId?: string;
1951
1943
  /** Pre-fetched collection for SSR. */
1952
1944
  collection?: Collection;
1953
1945
  /** Pre-fetched products for SSR. */
1954
1946
  products?: Product[];
1947
+ /** Per-slug page map. Highest priority — maps a collection slug to a custom layout. */
1948
+ pages?: Record<string, React$1.ComponentType<CollectionLayoutProps>>;
1949
+ /** Per-type template map. Overrides built-in layouts. */
1950
+ templates?: Partial<Record<CollectionTemplate | string, React$1.ComponentType<CollectionLayoutProps>>>;
1955
1951
  /** Custom card renderer. */
1956
- renderCard?: (product: Product) => React.ReactNode;
1952
+ renderCard?: (product: Product) => React$1.ReactNode;
1957
1953
  /** Custom image renderer. */
1958
1954
  renderImage?: (props: {
1959
1955
  src: string;
1960
1956
  alt: string;
1961
1957
  className?: string;
1962
- }) => React.ReactNode;
1963
- /** Grid column config. */
1964
- columns?: {
1965
- sm?: number;
1966
- md?: number;
1967
- lg?: number;
1968
- xl?: number;
1969
- };
1958
+ }) => React$1.ReactNode;
1959
+ /** Custom link renderer. */
1960
+ renderLink?: (props: {
1961
+ href: string;
1962
+ className?: string;
1963
+ children: React$1.ReactNode;
1964
+ }) => React$1.ReactElement;
1965
+ /** Quick add handler for cards. */
1966
+ onQuickAdd?: (product: Product) => void;
1970
1967
  className?: string;
1971
1968
  classNames?: CollectionPageClassNames;
1972
1969
  }
1973
- /**
1974
- * CollectionPage — curated product collection with header and grid.
1975
- *
1976
- * SSR-friendly: pass `collection` and `products` props for server rendering.
1977
- */
1978
- declare function CollectionPage({ collectionId, collection: collectionProp, products: productsProp, renderCard, renderImage, columns, className, classNames, }: CollectionPageProps): React.ReactElement;
1970
+ declare function CollectionPage({ collectionId, collection: collectionProp, products: productsProp, pages, templates, renderCard, renderImage, renderLink, onQuickAdd, className, classNames, }: CollectionPageProps): React$1.ReactElement;
1971
+
1972
+ declare function DefaultCollectionLayout({ collection, products, renderCard, renderImage, renderLink, onQuickAdd, className, }: CollectionLayoutProps): React$1.ReactElement;
1973
+
1974
+ declare function FeaturedCollectionLayout({ collection, products, renderCard, renderImage, renderLink, onQuickAdd, className, }: CollectionLayoutProps): React$1.ReactElement;
1975
+
1976
+ declare function CatalogueCollectionLayout({ collection, products, renderCard, renderImage, renderLink, onQuickAdd, className, }: CollectionLayoutProps): React$1.ReactElement;
1979
1977
 
1980
1978
  interface OrderDetailPageClassNames {
1981
1979
  root?: string;
@@ -1994,7 +1992,7 @@ interface OrderDetailPageProps {
1994
1992
  /** Called when back button is clicked. */
1995
1993
  onBack?: () => void;
1996
1994
  /** Custom line item renderer. */
1997
- renderLineItem?: (item: LineItem) => React.ReactNode;
1995
+ renderLineItem?: (item: LineItem) => React$1.ReactNode;
1998
1996
  /** Called when the reorder button is clicked. */
1999
1997
  onReorder?: (order: Order) => void;
2000
1998
  /** Called when the order status changes during polling. */
@@ -2009,7 +2007,7 @@ interface OrderDetailPageProps {
2009
2007
  *
2010
2008
  * SSR-friendly: pass `order` prop for server rendering.
2011
2009
  */
2012
- declare function OrderDetailPage({ orderId, order, poll, onBack, renderLineItem, onReorder, onStatusChange, backLabel, className, classNames, }: OrderDetailPageProps): React.ReactElement;
2010
+ declare function OrderDetailPage({ orderId, order, poll, onBack, renderLineItem, onReorder, onStatusChange, backLabel, className, classNames, }: OrderDetailPageProps): React$1.ReactElement;
2013
2011
 
2014
2012
  interface OrderHistoryPageClassNames {
2015
2013
  root?: string;
@@ -2035,7 +2033,7 @@ interface OrderHistoryPageProps {
2035
2033
  /** Show status filter tabs. Default: true. */
2036
2034
  showFilters?: boolean;
2037
2035
  /** Custom order row renderer. */
2038
- renderOrder?: (order: Order) => React.ReactNode;
2036
+ renderOrder?: (order: Order) => React$1.ReactNode;
2039
2037
  className?: string;
2040
2038
  classNames?: OrderHistoryPageClassNames;
2041
2039
  }
@@ -2045,54 +2043,96 @@ interface OrderHistoryPageProps {
2045
2043
  * SSR-friendly: pass `orders` prop for server rendering.
2046
2044
  * Supports both inline detail view and external navigation via `onOrderNavigate`.
2047
2045
  */
2048
- declare function OrderHistoryPage({ title, orders: ordersProp, limit, onOrderNavigate, onReorder, showFilters, renderOrder, className, classNames, }: OrderHistoryPageProps): React.ReactElement;
2046
+ declare function OrderHistoryPage({ title, orders: ordersProp, limit, onOrderNavigate, onReorder, showFilters, renderOrder, className, classNames, }: OrderHistoryPageProps): React$1.ReactElement;
2047
+
2048
+ interface SearchLayoutProps {
2049
+ /** Search state from useSearch hook. */
2050
+ search: UseSearchResult;
2051
+ /** Property facets from getPropertyFacets. */
2052
+ facets?: PropertyFacet[];
2053
+ /** Categories for category filter. */
2054
+ categories?: Category[];
2055
+ /** Active category filter. */
2056
+ activeCategory?: string;
2057
+ /** Called when category changes. */
2058
+ onCategoryChange?: (categoryId: string | null) => void;
2059
+ /** Active tag filters. */
2060
+ activeTags?: string[];
2061
+ /** Called when tags change. */
2062
+ onTagsChange?: (tags: string[]) => void;
2063
+ /** In-stock-only toggle state. */
2064
+ inStockOnly?: boolean;
2065
+ /** Called when in-stock toggle changes. */
2066
+ onInStockChange?: (inStock: boolean) => void;
2067
+ /** Sort value. */
2068
+ sortBy?: string;
2069
+ /** Called when sort changes. */
2070
+ onSortChange?: (sort: string) => void;
2071
+ /** Custom card renderer. */
2072
+ renderCard?: (product: Product) => React.ReactNode;
2073
+ /** Custom image renderer. */
2074
+ renderImage?: (props: {
2075
+ src: string;
2076
+ alt: string;
2077
+ className?: string;
2078
+ }) => React.ReactNode;
2079
+ /** Custom link renderer. */
2080
+ renderLink?: (props: {
2081
+ href: string;
2082
+ className?: string;
2083
+ children: React.ReactNode;
2084
+ }) => React.ReactElement;
2085
+ /** Quick-add handler. */
2086
+ onQuickAdd?: (product: Product) => void;
2087
+ /** Placeholder text for search input. */
2088
+ placeholder?: string;
2089
+ className?: string;
2090
+ }
2049
2091
 
2092
+ declare enum SearchTemplate {
2093
+ Default = "default",
2094
+ Compact = "compact"
2095
+ }
2050
2096
  interface SearchPageClassNames {
2051
2097
  root?: string;
2052
- header?: string;
2053
- title?: string;
2054
- inputContainer?: string;
2055
- input?: string;
2056
- clearButton?: string;
2057
- resultCount?: string;
2058
- grid?: string;
2059
- empty?: string;
2060
- loading?: string;
2061
2098
  }
2062
2099
  interface SearchPageProps {
2063
- /** Page title. */
2064
- title?: string;
2065
- /** Placeholder text. */
2100
+ /** Explicit search template. */
2101
+ template?: SearchTemplate;
2102
+ /** Layout map for overrides. AI or developer can provide custom layouts keyed by template name. */
2103
+ layouts?: Partial<Record<SearchTemplate | string, React$1.ComponentType<SearchLayoutProps>>>;
2104
+ /** Pre-fetched categories for filters. */
2105
+ categories?: Category[];
2106
+ /** Pre-fetched property facets for sidebar. */
2107
+ facets?: PropertyFacet[];
2108
+ /** Search options passed to useSearch. */
2109
+ searchOptions?: UseSearchOptions;
2110
+ /** Placeholder text for search input. */
2066
2111
  placeholder?: string;
2067
- /** Called when a product is clicked in results. */
2068
- onProductClick?: (product: Product) => void;
2069
2112
  /** Custom card renderer. */
2070
- renderCard?: (product: Product) => React.ReactNode;
2113
+ renderCard?: (product: Product) => React$1.ReactNode;
2071
2114
  /** Custom image renderer. */
2072
2115
  renderImage?: (props: {
2073
2116
  src: string;
2074
2117
  alt: string;
2075
2118
  className?: string;
2076
- }) => React.ReactNode;
2077
- /** Grid column config. */
2078
- columns?: {
2079
- sm?: number;
2080
- md?: number;
2081
- lg?: number;
2082
- xl?: number;
2083
- };
2119
+ }) => React$1.ReactNode;
2120
+ /** Custom link renderer. */
2121
+ renderLink?: (props: {
2122
+ href: string;
2123
+ className?: string;
2124
+ children: React$1.ReactNode;
2125
+ }) => React$1.ReactElement;
2126
+ /** Quick-add handler. */
2127
+ onQuickAdd?: (product: Product) => void;
2084
2128
  className?: string;
2085
2129
  classNames?: SearchPageClassNames;
2086
2130
  }
2087
- /**
2088
- * SearchPage — dedicated search page with input and results grid.
2089
- *
2090
- * Uses `useSearch` for debounced full-text search.
2091
- * The search input uses Base UI's `Input` primitive, which provides
2092
- * automatic `data-filled`, `data-focused`, `data-dirty`, and
2093
- * `data-touched` attributes for styling hooks.
2094
- */
2095
- declare function SearchPage({ title, placeholder, onProductClick, renderCard, renderImage, columns, className, classNames, }: SearchPageProps): React.ReactElement;
2131
+ declare function SearchPage({ template, layouts, categories, facets, searchOptions, placeholder, renderCard, renderImage, renderLink, onQuickAdd, className, classNames, }: SearchPageProps): React$1.ReactElement;
2132
+
2133
+ declare function DefaultSearchLayout({ search, facets, categories, activeCategory, onCategoryChange, inStockOnly, onInStockChange, sortBy, onSortChange, renderCard, renderImage, renderLink, onQuickAdd, placeholder, className, }: SearchLayoutProps): React$1.ReactElement;
2134
+
2135
+ declare function CompactSearchLayout({ search, categories, activeCategory, onCategoryChange, renderCard, renderImage, renderLink, onQuickAdd, placeholder, className, }: SearchLayoutProps): React$1.ReactElement;
2096
2136
 
2097
2137
  interface DealsPageClassNames {
2098
2138
  root?: string;
@@ -2120,7 +2160,7 @@ interface DealsPageProps {
2120
2160
  src: string;
2121
2161
  alt: string;
2122
2162
  className?: string;
2123
- }) => React.ReactNode;
2163
+ }) => React$1.ReactNode;
2124
2164
  /** Grid column config. */
2125
2165
  columns?: {
2126
2166
  sm?: number;
@@ -2136,125 +2176,7 @@ interface DealsPageProps {
2136
2176
  *
2137
2177
  * SSR-friendly: pass `deals` and `productsOnSale` props for server rendering.
2138
2178
  */
2139
- declare function DealsPage({ title, deals: dealsProp, productsOnSale: productsOnSaleProp, products: productsProp, locationId, renderImage, columns, className, classNames, }: DealsPageProps): React.ReactElement;
2140
-
2141
- interface Resource {
2142
- id: string;
2143
- name: string;
2144
- description?: string;
2145
- capacity?: number;
2146
- floor?: string;
2147
- image_url?: string;
2148
- is_available?: boolean;
2149
- }
2150
- interface ResourcePickerClassNames {
2151
- root?: string;
2152
- option?: string;
2153
- image?: string;
2154
- name?: string;
2155
- description?: string;
2156
- meta?: string;
2157
- capacity?: string;
2158
- floor?: string;
2159
- unavailable?: string;
2160
- }
2161
- interface ResourcePickerProps {
2162
- /** List of available resources (rooms, equipment, etc.). */
2163
- resources: Resource[];
2164
- /** Currently selected resource ID, or null for "Any available". */
2165
- selectedResourceId?: string | null;
2166
- /** Called when a resource is selected. Passes null for "Any available". */
2167
- onResourceSelect?: (resourceId: string | null) => void;
2168
- /** Show "Any available" option. Default: true. */
2169
- showAnyOption?: boolean;
2170
- /** Label for the "Any available" option. */
2171
- anyLabel?: string;
2172
- /** Custom image renderer (e.g. Next.js Image). */
2173
- renderImage?: (props: {
2174
- src: string;
2175
- alt: string;
2176
- className?: string;
2177
- }) => React.ReactNode;
2178
- className?: string;
2179
- classNames?: ResourcePickerClassNames;
2180
- }
2181
- declare function roomToResource(room: Room): Resource;
2182
- declare function ResourcePicker({ resources, selectedResourceId, onResourceSelect, showAnyOption, anyLabel, renderImage, className, classNames, }: ResourcePickerProps): React.ReactElement;
2183
-
2184
- interface BookingPageClassNames {
2185
- root?: string;
2186
- header?: string;
2187
- title?: string;
2188
- serviceInfo?: string;
2189
- step?: string;
2190
- stepTitle?: string;
2191
- summary?: string;
2192
- summaryRow?: string;
2193
- confirmButton?: string;
2194
- backButton?: string;
2195
- error?: string;
2196
- rescheduleInfo?: string;
2197
- depositInfo?: string;
2198
- cancellationPolicy?: string;
2199
- resourceStep?: string;
2200
- }
2201
- interface BookingPageProps {
2202
- /** The service being booked. */
2203
- service: Service;
2204
- /** The underlying product (for deposit/cancellation fields). Falls back to service fields. */
2205
- product?: Product;
2206
- /** Optional staff list for staff selection step. */
2207
- staff?: Staff[];
2208
- /** Optional resources for resource selection step (rooms, equipment, etc.). */
2209
- resources?: Resource[];
2210
- /** Number of participants. */
2211
- participantCount?: number;
2212
- /** Page title. */
2213
- title?: string;
2214
- /** Called after successfully adding to cart. */
2215
- onBooked?: (slot: AvailableSlot, staffId: string | null) => void;
2216
- /** Called when user wants to go back. */
2217
- onBack?: () => void;
2218
- /** Existing booking for reschedule mode. */
2219
- existingBooking?: CustomerBooking;
2220
- /** Called after a successful reschedule. */
2221
- onRescheduled?: (booking: CustomerBooking, newSlot: AvailableSlot) => void;
2222
- /** Show price on slots. Default: true. */
2223
- showPrice?: boolean;
2224
- className?: string;
2225
- classNames?: BookingPageClassNames;
2226
- }
2227
- declare function BookingPage({ service, product, staff, resources, participantCount, title, onBooked, onBack, existingBooking, onRescheduled, showPrice, className, classNames, }: BookingPageProps): React.ReactElement;
2228
-
2229
- interface BookingsPageClassNames {
2230
- root?: string;
2231
- header?: string;
2232
- title?: string;
2233
- filters?: string;
2234
- filterButton?: string;
2235
- list?: string;
2236
- detail?: string;
2237
- backButton?: string;
2238
- }
2239
- interface BookingsPageProps {
2240
- /** Page title. */
2241
- title?: string;
2242
- /** Pre-fetched bookings for SSR. */
2243
- bookings?: CustomerBooking[];
2244
- /** Called when navigating to a booking detail (e.g. for routing). */
2245
- onBookingNavigate?: (booking: CustomerBooking) => void;
2246
- /** Called when cancel is clicked. */
2247
- onCancel?: (booking: CustomerBooking) => void;
2248
- /** Called when reschedule is clicked. */
2249
- onReschedule?: (booking: CustomerBooking) => void;
2250
- /** Show filter tabs. Default: true. */
2251
- showFilters?: boolean;
2252
- /** Custom booking renderer. */
2253
- renderBooking?: (booking: CustomerBooking) => React.ReactNode;
2254
- className?: string;
2255
- classNames?: BookingsPageClassNames;
2256
- }
2257
- declare function BookingsPage({ title, bookings: bookingsProp, onBookingNavigate, onCancel, onReschedule, showFilters, renderBooking, className, classNames, }: BookingsPageProps): React.ReactElement;
2179
+ declare function DealsPage({ title, deals: dealsProp, productsOnSale: productsOnSaleProp, products: productsProp, locationId, renderImage, columns, className, classNames, }: DealsPageProps): React$1.ReactElement;
2258
2180
 
2259
2181
  interface LocationPickerClassNames {
2260
2182
  root?: string;
@@ -2271,7 +2193,7 @@ interface LocationPickerProps {
2271
2193
  /** Called when a location is selected. */
2272
2194
  onLocationChange?: (location: Location) => void;
2273
2195
  /** Custom location renderer. */
2274
- renderLocation?: (location: Location, isActive: boolean) => React.ReactNode;
2196
+ renderLocation?: (location: Location, isActive: boolean) => React$1.ReactNode;
2275
2197
  /** Text shown when no locations are available. */
2276
2198
  emptyMessage?: string;
2277
2199
  className?: string;
@@ -2283,7 +2205,7 @@ interface LocationPickerProps {
2283
2205
  * Uses `useLocations` to fetch locations unless overridden via props.
2284
2206
  * Returns `null` when there is only one location (no picker needed).
2285
2207
  */
2286
- declare function LocationPicker({ locations: locationsProp, currentLocation: currentLocationProp, onLocationChange, renderLocation, emptyMessage, className, classNames, }: LocationPickerProps): React.ReactElement | null;
2208
+ declare function LocationPicker({ locations: locationsProp, currentLocation: currentLocationProp, onLocationChange, renderLocation, emptyMessage, className, classNames, }: LocationPickerProps): React$1.ReactElement | null;
2287
2209
 
2288
2210
  interface RecommendationCarouselClassNames {
2289
2211
  root?: string;
@@ -2302,7 +2224,7 @@ interface RecommendationCarouselProps {
2302
2224
  /** Called when a product recommendation is clicked. */
2303
2225
  onProductClick?: (recommendation: ActivityRecommendation) => void;
2304
2226
  /** Custom product card renderer. */
2305
- renderProduct?: (recommendation: ActivityRecommendation) => React.ReactNode;
2227
+ renderProduct?: (recommendation: ActivityRecommendation) => React$1.ReactNode;
2306
2228
  /** Text shown when no recommendations are available. */
2307
2229
  emptyMessage?: string;
2308
2230
  className?: string;
@@ -2314,7 +2236,7 @@ interface RecommendationCarouselProps {
2314
2236
  * Renders a horizontal scrollable list of product cards with reason labels.
2315
2237
  * Returns `null` when there are no recommendations.
2316
2238
  */
2317
- declare function RecommendationCarousel({ recommendations: recommendationsProp, locationId, limit, onProductClick, renderProduct, emptyMessage, className, classNames, }: RecommendationCarouselProps): React.ReactElement | null;
2239
+ declare function RecommendationCarousel({ recommendations: recommendationsProp, locationId, limit, onProductClick, renderProduct, emptyMessage, className, classNames, }: RecommendationCarouselProps): React$1.ReactElement | null;
2318
2240
 
2319
2241
  interface SessionMessageBannerClassNames {
2320
2242
  root?: string;
@@ -2329,7 +2251,7 @@ interface SessionMessageBannerProps {
2329
2251
  /** Called when a message is dismissed. Receives the message code. */
2330
2252
  onDismiss?: (code: string) => void;
2331
2253
  /** Custom message renderer. */
2332
- renderMessage?: (message: SessionMessage) => React.ReactNode;
2254
+ renderMessage?: (message: SessionMessage) => React$1.ReactNode;
2333
2255
  className?: string;
2334
2256
  classNames?: SessionMessageBannerClassNames;
2335
2257
  }
@@ -2339,7 +2261,7 @@ interface SessionMessageBannerProps {
2339
2261
  * Displays dismissible message cards with level-based styling (info, promotion, urgency, suggestion).
2340
2262
  * Returns `null` when there are no messages.
2341
2263
  */
2342
- declare function SessionMessageBanner({ messages: messagesProp, onDismiss, renderMessage, className, classNames, }: SessionMessageBannerProps): React.ReactElement | null;
2264
+ declare function SessionMessageBanner({ messages: messagesProp, onDismiss, renderMessage, className, classNames, }: SessionMessageBannerProps): React$1.ReactElement | null;
2343
2265
 
2344
2266
  interface ViewedProduct {
2345
2267
  product_id: string;
@@ -2358,7 +2280,7 @@ interface RecentlyViewedProps {
2358
2280
  /** Called when a viewed product is clicked. */
2359
2281
  onProductClick?: (product: ViewedProduct) => void;
2360
2282
  /** Custom product renderer. */
2361
- renderProduct?: (product: ViewedProduct) => React.ReactNode;
2283
+ renderProduct?: (product: ViewedProduct) => React$1.ReactNode;
2362
2284
  /** Text shown when no viewed products exist. */
2363
2285
  emptyMessage?: string;
2364
2286
  className?: string;
@@ -2370,7 +2292,7 @@ interface RecentlyViewedProps {
2370
2292
  * Extracts `state.activity.viewed_products` from the activity state.
2371
2293
  * Returns `null` when there are no viewed products.
2372
2294
  */
2373
- declare function RecentlyViewed({ limit, onProductClick, renderProduct, emptyMessage, className, classNames, }: RecentlyViewedProps): React.ReactElement | null;
2295
+ declare function RecentlyViewed({ limit, onProductClick, renderProduct, emptyMessage, className, classNames, }: RecentlyViewedProps): React$1.ReactElement | null;
2374
2296
 
2375
2297
  interface BillingPlanSelectorClassNames {
2376
2298
  root?: string;
@@ -2397,7 +2319,7 @@ interface BillingPlanSelectorProps {
2397
2319
  /** Label for the one-time purchase option. Default: "One-time purchase". */
2398
2320
  oneTimePurchaseLabel?: string;
2399
2321
  /** Custom plan card renderer. */
2400
- renderPlan?: (plan: ProductBillingPlan, isActive: boolean) => React.ReactNode;
2322
+ renderPlan?: (plan: ProductBillingPlan, isActive: boolean) => React$1.ReactNode;
2401
2323
  className?: string;
2402
2324
  classNames?: BillingPlanSelectorClassNames;
2403
2325
  }
@@ -2407,7 +2329,7 @@ interface BillingPlanSelectorProps {
2407
2329
  * Renders plan cards with frequency, markup, trial, and setup fee details.
2408
2330
  * Returns `null` when no plans are available (and one-time purchase is hidden).
2409
2331
  */
2410
- declare function BillingPlanSelector({ productId, plans: plansProp, onPlanSelect, selectedPlanId, showOneTimePurchase, oneTimePurchaseLabel, renderPlan, className, classNames, }: BillingPlanSelectorProps): React.ReactElement | null;
2332
+ declare function BillingPlanSelector({ productId, plans: plansProp, onPlanSelect, selectedPlanId, showOneTimePurchase, oneTimePurchaseLabel, renderPlan, className, classNames, }: BillingPlanSelectorProps): React$1.ReactElement | null;
2411
2333
 
2412
2334
  interface VolumePricingClassNames {
2413
2335
  root?: string;
@@ -2426,14 +2348,14 @@ interface VolumePricingProps {
2426
2348
  className?: string;
2427
2349
  classNames?: VolumePricingClassNames;
2428
2350
  }
2429
- declare function VolumePricing({ tiers, currentQuantity, defaultOpen, className, classNames, }: VolumePricingProps): React.ReactElement | null;
2351
+ declare function VolumePricing({ tiers, currentQuantity, defaultOpen, className, classNames, }: VolumePricingProps): React$1.ReactElement | null;
2430
2352
 
2431
2353
  interface PriceRangeProps {
2432
2354
  product: Product | ProductWithDetails;
2433
2355
  currency?: CurrencyCode;
2434
2356
  className?: string;
2435
2357
  }
2436
- declare function PriceRange({ product, currency, className }: PriceRangeProps): React.ReactElement | null;
2358
+ declare function PriceRange({ product, currency, className }: PriceRangeProps): React$1.ReactElement | null;
2437
2359
 
2438
2360
  interface DeliveryEstimateClassNames {
2439
2361
  root?: string;
@@ -2461,7 +2383,7 @@ interface DeliveryEstimateProps {
2461
2383
  * Fetches the delivery fee from `client.delivery.getFee` when coordinates change.
2462
2384
  * Shows fee amount with currency, a "not serviceable" message, or loading state.
2463
2385
  */
2464
- declare function DeliveryEstimate({ latitude, longitude, country, onFeeCalculated, className, classNames, }: DeliveryEstimateProps): React.ReactElement | null;
2386
+ declare function DeliveryEstimate({ latitude, longitude, country, onFeeCalculated, className, classNames, }: DeliveryEstimateProps): React$1.ReactElement | null;
2465
2387
 
2466
2388
  interface CurrencySelectorClassNames {
2467
2389
  root?: string;
@@ -2483,7 +2405,7 @@ interface CurrencySelectorProps {
2483
2405
  /** Base currency used for rate display. */
2484
2406
  baseCurrency?: CurrencyCode;
2485
2407
  /** Custom currency option renderer. */
2486
- renderCurrency?: (currency: CurrencyCode, isActive: boolean, rate: FxRateResponse | null) => React.ReactNode;
2408
+ renderCurrency?: (currency: CurrencyCode, isActive: boolean, rate: FxRateResponse | null) => React$1.ReactNode;
2487
2409
  className?: string;
2488
2410
  classNames?: CurrencySelectorClassNames;
2489
2411
  }
@@ -2493,6 +2415,49 @@ interface CurrencySelectorProps {
2493
2415
  * Renders selectable currency options with optional exchange rate display.
2494
2416
  * Returns `null` when there is only one currency (no selector needed).
2495
2417
  */
2496
- declare function CurrencySelector({ currencies, currentCurrency, onCurrencyChange, showRate, baseCurrency, renderCurrency, className, classNames, }: CurrencySelectorProps): React.ReactElement | null;
2418
+ declare function CurrencySelector({ currencies, currentCurrency, onCurrencyChange, showRate, baseCurrency, renderCurrency, className, classNames, }: CurrencySelectorProps): React$1.ReactElement | null;
2419
+
2420
+ interface Resource {
2421
+ id: string;
2422
+ name: string;
2423
+ description?: string;
2424
+ capacity?: number;
2425
+ floor?: string;
2426
+ image_url?: string;
2427
+ is_available?: boolean;
2428
+ }
2429
+ interface ResourcePickerClassNames {
2430
+ root?: string;
2431
+ option?: string;
2432
+ image?: string;
2433
+ name?: string;
2434
+ description?: string;
2435
+ meta?: string;
2436
+ capacity?: string;
2437
+ floor?: string;
2438
+ unavailable?: string;
2439
+ }
2440
+ interface ResourcePickerProps {
2441
+ /** List of available resources (rooms, equipment, etc.). */
2442
+ resources: Resource[];
2443
+ /** Currently selected resource ID, or null for "Any available". */
2444
+ selectedResourceId?: string | null;
2445
+ /** Called when a resource is selected. Passes null for "Any available". */
2446
+ onResourceSelect?: (resourceId: string | null) => void;
2447
+ /** Show "Any available" option. Default: true. */
2448
+ showAnyOption?: boolean;
2449
+ /** Label for the "Any available" option. */
2450
+ anyLabel?: string;
2451
+ /** Custom image renderer (e.g. Next.js Image). */
2452
+ renderImage?: (props: {
2453
+ src: string;
2454
+ alt: string;
2455
+ className?: string;
2456
+ }) => React$1.ReactNode;
2457
+ className?: string;
2458
+ classNames?: ResourcePickerClassNames;
2459
+ }
2460
+ declare function roomToResource(room: Room): Resource;
2461
+ declare function ResourcePicker({ resources, selectedResourceId, onResourceSelect, showAnyOption, anyLabel, renderImage, className, classNames, }: ResourcePickerProps): React$1.ReactElement;
2497
2462
 
2498
- export { AccommodationCard, Ad, AdPosition, type AdProps, AdProvider, AdSlot, AddOnSelector, type AddOnSelectorClassNames, type AddOnSelectorProps, type AddToCartOptions, AddressElement, AuthElement, AvailabilityBadge, type AvailabilityBadgeClassNames, type AvailabilityBadgeProps, BillingPlanSelector, type BillingPlanSelectorClassNames, type BillingPlanSelectorProps, BookingCard, type BookingCardClassNames, type BookingCardProps, BookingList, type BookingListClassNames, type BookingListProps, BookingPage, type BookingPageClassNames, type BookingPageProps, BookingsPage, type BookingsPageClassNames, type BookingsPageProps, BundleSelector, type BundleSelectorClassNames, type BundleSelectorProps, CardImage, type CardLayoutProps, CardShell, CardVariant, type CartAddOnOptionSelection, CartPage, type CartPageClassNames, type CartPageProps, CartSummary, type CartSummaryClassNames, type CartSummaryProps, type CartVariantSelection, CataloguePage, type CataloguePageClassNames, type CataloguePageProps, CategoryFilter, type CategoryFilterClassNames, type CategoryFilterProps, CategoryGrid, type CategoryGridClassNames, type CategoryGridProps, CheckoutPage, type CheckoutPageClassNames, type CheckoutPageProps, CimplifyCheckout, type CimplifyCheckoutProps, type CimplifyClientContextValue, type CimplifyContextValue, CimplifyProvider, type CimplifyProviderProps, CollectionPage, type CollectionPageClassNames, type CollectionPageProps, CompactServiceCard, CompositeSelector, type CompositeSelectorClassNames, type CompositeSelectorProps, CurrencySelector, type CurrencySelectorClassNames, type CurrencySelectorProps, CustomAttributesTable, DateSlotPicker, type DateSlotPickerClassNames, type DateSlotPickerProps, DealBanner, type DealBannerClassNames, type DealBannerProps, DealsPage, type DealsPageClassNames, type DealsPageProps, DefaultProductLayout, DeliveryEstimate, type DeliveryEstimateClassNames, type DeliveryEstimateProps, DigitalProductCard, DigitalProductLayout, DiscountInput, type DiscountInputClassNames, type DiscountInputProps, ElementsProvider, FoodProductCard, FoodProductLayout, InventoryBadge, LeaseServiceCard, LocationPicker, type LocationPickerClassNames, type LocationPickerProps, MetadataStringList, OrderDetailPage, type OrderDetailPageClassNames, type OrderDetailPageProps, OrderHistory, type OrderHistoryClassNames, OrderHistoryPage, type OrderHistoryPageClassNames, type OrderHistoryPageProps, type OrderHistoryProps, OrderSummary, type OrderSummaryClassNames, type OrderSummaryProps, PaymentElement, Price, type PriceProps, PriceRange, type PriceRangeProps, ProductCard, type ProductCardClassNames, type ProductCardProps, ProductCustomizer, type ProductCustomizerClassNames, type ProductCustomizerProps, ProductGrid, type ProductGridClassNames, type ProductGridProps, ProductImageGallery, type ProductImageGalleryProps, type ProductLayoutProps, ProductPage, type ProductPageClassNames, type ProductPageProps, ProductSheet, type ProductSheetClassNames, type ProductSheetProps, ProductTemplate, PropertiesTable, QuantitySelector, type QuantitySelectorClassNames, type QuantitySelectorProps, QuickAddButton, RecentlyViewed, type RecentlyViewedClassNames, type RecentlyViewedProps, RecommendationCarousel, type RecommendationCarouselClassNames, type RecommendationCarouselProps, RelatedProductsSection, RentalServiceCard, type Resource, ResourcePicker, type ResourcePickerClassNames, type ResourcePickerProps, RetailProductCard, SaleBadge, type SaleBadgeClassNames, type SaleBadgeProps, ScheduleServiceCard, SearchInput, type SearchInputClassNames, type SearchInputProps, SearchPage, type SearchPageClassNames, type SearchPageProps, ServiceCard, type ServiceCardClassNames, type ServiceCardLayoutProps, type ServiceCardProps, ServiceGrid, type ServiceGridClassNames, type ServiceGridProps, ServiceProductLayout, SessionMessageBanner, type SessionMessageBannerClassNames, type SessionMessageBannerProps, SlotPicker, type SlotPickerClassNames, type SlotPickerProps, SoldOutOverlay, StaffPicker, type StaffPickerClassNames, type StaffPickerProps, StandardServiceCard, StoreNav, type StoreNavClassNames, type StoreNavProps, SubscriptionCard, TagPills, TwoColumnGrid, type UseActivityStateOptions, type UseActivityStateResult, type UseAttributeDefinitionsOptions, type UseAttributeDefinitionsResult, type UseAvailableSlotsOptions, type UseAvailableSlotsResult, type UseBillingPlansOptions, type UseBillingPlansResult, type UseBookingsOptions, type UseBookingsResult, type UseBootstrapOptions, type UseBootstrapResult, type UseBundlesOptions, type UseBundlesResult, type UseCartItem, type UseCartOptions, type UseCartResult, type UseCategoriesOptions, type UseCategoriesResult, type UseCollectionOptions, type UseCollectionResult, type UseCollectionsOptions, type UseCollectionsResult, type UseDealsOptions, type UseDealsResult, type UseDeliveryFeeOptions, type UseDeliveryFeeResult, type UseFxRateOptions, type UseFxRateResult, type UseLocationsOptions, type UseLocationsResult, type UseOrderOptions, type UseOrderResult, type UseOrdersOptions, type UseOrdersResult, type UseProductAvailabilityOptions, type UseProductAvailabilityResult, type UseProductDealsOptions, type UseProductDealsResult, type UseProductOptions, type UseProductPriceInput, type UseProductPriceResult, type UseProductResult, type UseProductSchedulesOptions, type UseProductSchedulesResult, type UseProductsOnSaleOptions, type UseProductsOnSaleResult, type UseProductsOptions, type UseProductsResult, type UsePropertyFacetsOptions, type UsePropertyFacetsResult, type UseQuoteInput, type UseQuoteOptions, type UseQuoteResult, type UseRecommendationsOptions, type UseRecommendationsResult, type UseSearchOptions, type UseSearchResult, type UseServiceAvailabilityOptions, type UseServiceAvailabilityResult, type UseServicesOptions, type UseServicesResult, type UseTaxonomiesOptions, type UseTaxonomiesResult, type UseTaxonomyOptions, type UseTaxonomyPathOptions, type UseTaxonomyPathResult, type UseTaxonomyResult, type UseValidateDiscountOptions, type UseValidateDiscountResult, type UseVariantSelectorOptions, type UseVariantSelectorResult, VariantSelector, type VariantSelectorClassNames, type VariantSelectorProps, VolumePricing, type VolumePricingClassNames, type VolumePricingProps, WholesaleProductCard, WholesaleProductLayout, WishlistButton, cn, roomToResource, useActivityState, useAds, useAttributeDefinitions, useAvailableSlots, useBillingPlans, useBookings, useBootstrap, useBundles, useCart, useCategories, useCheckout, useCimplify, useCimplifyClient, useCollection, useCollections, useDeals, useDeliveryFee, useElements, useElementsReady, useFxRate, useLocations, useOptionalCimplify, useOrder, useOrders, useProduct, useProductAvailability, useProductDeals, useProductPrice, useProductSchedules, useProducts, useProductsOnSale, usePropertyFacets, useQuote, useRecommendations, useSearch, useServiceAvailability, useServices, useTaxonomies, useTaxonomy, useTaxonomyPath, useValidateDiscount, useVariantSelector };
2463
+ export { AccommodationCard, Ad, AdPosition, type AdProps, AdProvider, AdSlot, AddOnSelector, type AddOnSelectorClassNames, type AddOnSelectorProps, type AddToCartOptions, AddressElement, AuthElement, AvailabilityBadge, type AvailabilityBadgeClassNames, type AvailabilityBadgeProps, BillingPlanSelector, type BillingPlanSelectorClassNames, type BillingPlanSelectorProps, BookingCard, type BookingCardClassNames, type BookingCardProps, BookingList, type BookingListClassNames, type BookingListProps, BundleSelector, type BundleSelectorClassNames, type BundleSelectorProps, CardImage, type CardLayoutProps, CardShell, CardVariant, type CartAddOnOptionSelection, type CartLayoutProps, CartPage, type CartPageClassNames, type CartPageProps, CartSummary, type CartSummaryClassNames, type CartSummaryProps, CartTemplate, type CartVariantSelection, CatalogueCollectionLayout, type CatalogueLayoutProps, CataloguePage, type CataloguePageClassNames, type CataloguePageProps, CatalogueTemplate, CategoryFilter, type CategoryFilterClassNames, type CategoryFilterProps, CategoryGrid, type CategoryGridClassNames, type CategoryGridProps, CheckoutPage, type CheckoutPageClassNames, type CheckoutPageProps, CimplifyCheckout, type CimplifyCheckoutProps, type CimplifyClientContextValue, type CimplifyContextValue, CimplifyProvider, type CimplifyProviderProps, type CollectionLayoutProps, CollectionPage, type CollectionPageClassNames, type CollectionPageProps, CollectionTemplate, CompactCartLayout, CompactCatalogueLayout, CompactSearchLayout, CompactServiceCard, CompositeSelector, type CompositeSelectorClassNames, type CompositeSelectorProps, CurrencySelector, type CurrencySelectorClassNames, type CurrencySelectorProps, CustomAttributesTable, DateSlotPicker, type DateSlotPickerClassNames, type DateSlotPickerProps, DealBanner, type DealBannerClassNames, type DealBannerProps, DealsPage, type DealsPageClassNames, type DealsPageProps, DefaultCartLayout, DefaultCatalogueLayout, DefaultCollectionLayout, DefaultProductLayout, DefaultSearchLayout, DeliveryEstimate, type DeliveryEstimateClassNames, type DeliveryEstimateProps, DigitalProductCard, DigitalProductLayout, DiscountInput, type DiscountInputClassNames, type DiscountInputProps, ElementsProvider, FeaturedCollectionLayout, FoodProductCard, FoodProductLayout, InventoryBadge, LeaseServiceCard, LocationPicker, type LocationPickerClassNames, type LocationPickerProps, MetadataStringList, OrderDetailPage, type OrderDetailPageClassNames, type OrderDetailPageProps, OrderHistory, type OrderHistoryClassNames, OrderHistoryPage, type OrderHistoryPageClassNames, type OrderHistoryPageProps, type OrderHistoryProps, OrderSummary, type OrderSummaryClassNames, type OrderSummaryProps, PaymentElement, Price, type PriceProps, PriceRange, type PriceRangeProps, ProductCard, type ProductCardClassNames, type ProductCardProps, ProductCustomizer, type ProductCustomizerClassNames, type ProductCustomizerProps, ProductGrid, type ProductGridClassNames, type ProductGridProps, ProductImageGallery, type ProductImageGalleryProps, type ProductLayoutProps, ProductPage, type ProductPageClassNames, type ProductPageProps, ProductSheet, type ProductSheetClassNames, type ProductSheetProps, ProductTemplate, PropertiesTable, QuantitySelector, type QuantitySelectorClassNames, type QuantitySelectorProps, QuickAddButton, RecentlyViewed, type RecentlyViewedClassNames, type RecentlyViewedProps, RecommendationCarousel, type RecommendationCarouselClassNames, type RecommendationCarouselProps, RelatedProductsSection, RentalServiceCard, type Resource, ResourcePicker, type ResourcePickerClassNames, type ResourcePickerProps, RetailProductCard, SaleBadge, type SaleBadgeClassNames, type SaleBadgeProps, ScheduleServiceCard, SearchInput, type SearchInputClassNames, type SearchInputProps, type SearchLayoutProps, SearchPage, type SearchPageClassNames, type SearchPageProps, SearchTemplate, type ServiceCardLayoutProps, ServiceProductLayout, SessionMessageBanner, type SessionMessageBannerClassNames, type SessionMessageBannerProps, SlotPicker, type SlotPickerClassNames, type SlotPickerProps, SoldOutOverlay, StaffPicker, type StaffPickerClassNames, type StaffPickerProps, StandardServiceCard, StoreNav, type StoreNavClassNames, type StoreNavProps, SubscriptionCard, TagPills, TwoColumnGrid, type UseActivityStateOptions, type UseActivityStateResult, type UseAttributeDefinitionsOptions, type UseAttributeDefinitionsResult, type UseAvailableSlotsOptions, type UseAvailableSlotsResult, type UseBillingPlansOptions, type UseBillingPlansResult, type UseBookingsOptions, type UseBookingsResult, type UseBootstrapOptions, type UseBootstrapResult, type UseBundlesOptions, type UseBundlesResult, type UseCartItem, type UseCartOptions, type UseCartResult, type UseCategoriesOptions, type UseCategoriesResult, type UseCollectionOptions, type UseCollectionResult, type UseCollectionsOptions, type UseCollectionsResult, type UseDealsOptions, type UseDealsResult, type UseDeliveryFeeOptions, type UseDeliveryFeeResult, type UseFxRateOptions, type UseFxRateResult, type UseLocationsOptions, type UseLocationsResult, type UseOrderOptions, type UseOrderResult, type UseOrdersOptions, type UseOrdersResult, type UseProductAvailabilityOptions, type UseProductAvailabilityResult, type UseProductDealsOptions, type UseProductDealsResult, type UseProductOptions, type UseProductPriceInput, type UseProductPriceResult, type UseProductResult, type UseProductSchedulesOptions, type UseProductSchedulesResult, type UseProductsOnSaleOptions, type UseProductsOnSaleResult, type UseProductsOptions, type UseProductsResult, type UsePropertyFacetsOptions, type UsePropertyFacetsResult, type UseQuoteInput, type UseQuoteOptions, type UseQuoteResult, type UseRecommendationsOptions, type UseRecommendationsResult, type UseSearchOptions, type UseSearchResult, type UseServiceAvailabilityOptions, type UseServiceAvailabilityResult, type UseServicesOptions, type UseServicesResult, type UseTaxonomiesOptions, type UseTaxonomiesResult, type UseTaxonomyOptions, type UseTaxonomyPathOptions, type UseTaxonomyPathResult, type UseTaxonomyResult, type UseValidateDiscountOptions, type UseValidateDiscountResult, type UseVariantSelectorOptions, type UseVariantSelectorResult, VariantSelector, type VariantSelectorClassNames, type VariantSelectorProps, VolumePricing, type VolumePricingClassNames, type VolumePricingProps, WholesaleProductCard, WholesaleProductLayout, WishlistButton, cn, roomToResource, useActivityState, useAds, useAttributeDefinitions, useAvailableSlots, useBillingPlans, useBookings, useBootstrap, useBundles, useCart, useCategories, useCheckout, useCimplify, useCimplifyClient, useCollection, useCollections, useDeals, useDeliveryFee, useElements, useElementsReady, useFxRate, useLocations, useOptionalCimplify, useOrder, useOrders, useProduct, useProductAvailability, useProductDeals, useProductPrice, useProductSchedules, useProducts, useProductsOnSale, usePropertyFacets, useQuote, useRecommendations, useSearch, useServiceAvailability, useServices, useTaxonomies, useTaxonomy, useTaxonomyPath, useValidateDiscount, useVariantSelector };