@cimplify/sdk 0.24.2 → 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/advanced.d.mts +2 -2
- package/dist/advanced.d.ts +2 -2
- package/dist/{chunk-H34GSEGR.mjs → chunk-JMNMSVDQ.mjs} +24 -1
- package/dist/{chunk-IYQGGFVQ.js → chunk-WMQXSDRC.js} +26 -0
- package/dist/{index-DCoxHrmr.d.mts → index-2JxW7TuQ.d.mts} +2 -2
- package/dist/{index-DIHoZUz_.d.mts → index-7mX_cUpQ.d.mts} +1 -1
- package/dist/{index-DT0Mzy8v.d.ts → index-DBM89ktY.d.ts} +2 -2
- package/dist/{index-CJZMsbDi.d.ts → index-DEx3GwlW.d.ts} +1 -1
- package/dist/index.d.mts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +18 -6
- package/dist/index.mjs +1 -1
- package/dist/{payment-DqiwuLma.d.mts → payment-5a21yzi7.d.mts} +22 -1
- package/dist/{payment-DqiwuLma.d.ts → payment-5a21yzi7.d.ts} +22 -1
- package/dist/{price-BZlddg1A.d.ts → price-BS0Z5Oi9.d.ts} +1 -1
- package/dist/{price-DVQrpE7j.d.mts → price-CGPMlQUk.d.mts} +1 -1
- package/dist/react.d.mts +457 -405
- package/dist/react.d.ts +457 -405
- package/dist/react.js +2193 -1065
- package/dist/react.mjs +2161 -1059
- package/dist/styles.css +1 -1
- package/dist/utils.d.mts +3 -3
- package/dist/utils.d.ts +3 -3
- package/package.json +1 -1
- package/registry/accommodation-card.json +17 -0
- package/registry/cart-page.json +1 -1
- package/registry/catalogue-page.json +1 -1
- package/registry/collection-page.json +1 -1
- package/registry/compact-service-card.json +16 -0
- package/registry/digital-product-card.json +16 -0
- package/registry/food-product-card.json +16 -0
- package/registry/food-product-layout.json +1 -1
- package/registry/index.json +87 -17
- package/registry/lease-service-card.json +17 -0
- package/registry/product-card.json +1 -1
- package/registry/product-page.json +1 -1
- package/registry/rental-service-card.json +16 -0
- package/registry/retail-product-card.json +16 -0
- package/registry/schedule-service-card.json +16 -0
- package/registry/search-page.json +1 -1
- package/registry/standard-service-card.json +16 -0
- package/registry/subscription-card.json +16 -0
- package/registry/wholesale-product-card.json +17 -0
package/dist/react.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
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
|
-
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-
|
|
5
|
-
import { a as CurrencyCode,
|
|
6
|
-
import { P as ProductWithPrice } from './price-
|
|
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';
|
|
5
|
+
import { a as CurrencyCode, N as Product, d as Pagination, h as CimplifyError, U as ProductWithDetails, a9 as Category, M as Money, b4 as BundleSelectionInput, az as ComponentSelectionInput, b7 as BundleSelectionData, ba as CompositeSelectionData, ab as Collection, aH as ProductTaxonomy, aI as TaxonomyWithChildren, aG as ProductTimeProfile, aL as Deal, aM as ProductDealInfo, aN as DiscountValidation, ag as BundleSummary, aA as CompositePriceResult, B as CustomAttributeDefinition, J as PropertyFacet, bM as ProductBillingPlan, W as VariantView, $ as VariantAxisWithValues, a5 as AddOnWithOptions, al as BundleComponentView, ae as BundlePriceType, aw as CompositeGroupView, bf as DisplayCart, F as CustomAttributeValue, H as ProductProperty, Q as QuantityPricingTier } from './payment-5a21yzi7.js';
|
|
6
|
+
import { P as ProductWithPrice } from './price-BS0Z5Oi9.js';
|
|
7
7
|
import { ClassValue } from 'clsx';
|
|
8
8
|
|
|
9
9
|
interface UserIdentity {
|
|
@@ -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,88 @@ 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
|
+
|
|
1037
|
+
interface CardLayoutProps {
|
|
1038
|
+
product: Product;
|
|
1039
|
+
onQuickAdd?: (product: Product) => void;
|
|
1040
|
+
renderImage?: (props: {
|
|
1041
|
+
src: string;
|
|
1042
|
+
alt: string;
|
|
1043
|
+
className?: string;
|
|
1044
|
+
}) => React$1.ReactNode;
|
|
1045
|
+
renderLink?: (props: {
|
|
1046
|
+
href: string;
|
|
1047
|
+
className?: string;
|
|
1048
|
+
children: React$1.ReactNode;
|
|
1049
|
+
}) => React$1.ReactElement;
|
|
1050
|
+
className?: string;
|
|
1051
|
+
}
|
|
1052
|
+
declare function CardImage({ src, alt, aspectRatio, renderImage, className, children, }: {
|
|
1053
|
+
src: string;
|
|
1054
|
+
alt: string;
|
|
1055
|
+
aspectRatio?: "square" | "3/4" | "4/3" | "16/9";
|
|
1056
|
+
renderImage?: CardLayoutProps["renderImage"];
|
|
1057
|
+
className?: string;
|
|
1058
|
+
children?: React$1.ReactNode;
|
|
1059
|
+
}): React$1.ReactElement;
|
|
1060
|
+
declare function QuickAddButton({ onClick, className, }: {
|
|
1061
|
+
onClick?: () => void;
|
|
1062
|
+
className?: string;
|
|
1063
|
+
}): React$1.ReactElement;
|
|
1064
|
+
declare function WishlistButton({ filled, onClick, className, }: {
|
|
1065
|
+
filled?: boolean;
|
|
1066
|
+
onClick?: () => void;
|
|
1067
|
+
className?: string;
|
|
1068
|
+
}): React$1.ReactElement;
|
|
1069
|
+
declare function SoldOutOverlay(): React$1.ReactElement;
|
|
1070
|
+
declare function CardShell({ product, renderLink, disabled, className, children, }: {
|
|
1071
|
+
product: Product;
|
|
1072
|
+
renderLink?: CardLayoutProps["renderLink"];
|
|
1073
|
+
disabled?: boolean;
|
|
1074
|
+
className?: string;
|
|
1075
|
+
children: React$1.ReactNode;
|
|
1076
|
+
}): React$1.ReactElement;
|
|
1077
|
+
|
|
1078
|
+
interface ServiceCardLayoutProps extends CardLayoutProps {
|
|
1079
|
+
slots?: AvailableSlot[];
|
|
1080
|
+
onBook?: (product: Product) => void;
|
|
1081
|
+
}
|
|
1082
|
+
declare function StandardServiceCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
|
|
1083
|
+
|
|
1084
|
+
declare function FoodProductCard({ product, onQuickAdd, renderImage, renderLink, className, }: CardLayoutProps): React$1.ReactElement;
|
|
1085
|
+
|
|
1086
|
+
declare function RetailProductCard({ product, renderImage, renderLink, className, }: CardLayoutProps): React$1.ReactElement;
|
|
1087
|
+
|
|
1088
|
+
declare function WholesaleProductCard({ product, onQuickAdd, renderImage, renderLink, className, }: CardLayoutProps): React$1.ReactElement;
|
|
1089
|
+
|
|
1090
|
+
declare function DigitalProductCard({ product, renderImage, renderLink, className, }: CardLayoutProps): React$1.ReactElement;
|
|
1091
|
+
|
|
1092
|
+
declare function CompactServiceCard({ product, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
|
|
1093
|
+
|
|
1094
|
+
declare function ScheduleServiceCard({ product, slots, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
|
|
1095
|
+
|
|
1096
|
+
declare function RentalServiceCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
|
|
1097
|
+
|
|
1098
|
+
declare function AccommodationCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
|
|
1099
|
+
|
|
1100
|
+
declare function LeaseServiceCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
|
|
1101
|
+
|
|
1102
|
+
declare function SubscriptionCard({ product, onBook, renderImage, renderLink, className, }: ServiceCardLayoutProps): React$1.ReactElement;
|
|
1103
|
+
|
|
1104
|
+
declare enum CardVariant {
|
|
1105
|
+
Food = "food",
|
|
1106
|
+
Retail = "retail",
|
|
1107
|
+
Wholesale = "wholesale",
|
|
1108
|
+
Digital = "digital",
|
|
1109
|
+
Standard = "standard",
|
|
1110
|
+
Compact = "compact",
|
|
1111
|
+
Schedule = "schedule",
|
|
1112
|
+
Rental = "rental",
|
|
1113
|
+
Accommodation = "accommodation",
|
|
1114
|
+
Lease = "lease",
|
|
1115
|
+
Subscription = "subscription"
|
|
1116
|
+
}
|
|
1036
1117
|
|
|
1037
1118
|
interface ProductCardClassNames {
|
|
1038
1119
|
root?: string;
|
|
@@ -1052,24 +1133,30 @@ interface ProductCardProps {
|
|
|
1052
1133
|
product: Product;
|
|
1053
1134
|
/** Display mode: "card" opens a modal, "page" renders as a link. Auto-detected from product.display_mode. */
|
|
1054
1135
|
displayMode?: "card" | "page";
|
|
1136
|
+
/** Explicit card variant. Auto-detected from product data when omitted. */
|
|
1137
|
+
variant?: CardVariant;
|
|
1138
|
+
/** Per-slug card map. Highest priority — maps a product slug to a custom card component. */
|
|
1139
|
+
cards?: Record<string, React$1.ComponentType<CardLayoutProps>>;
|
|
1055
1140
|
/** Link href for page mode. Default: `/menu/${product.slug}` */
|
|
1056
1141
|
href?: string;
|
|
1057
1142
|
/** Custom modal content renderer. Receives the fully-loaded product and a close callback. */
|
|
1058
|
-
renderModal?: (product: ProductWithDetails, onClose: () => void) => React.ReactNode;
|
|
1143
|
+
renderModal?: (product: ProductWithDetails, onClose: () => void) => React$1.ReactNode;
|
|
1059
1144
|
/** Custom image renderer (e.g. Next.js Image). */
|
|
1060
1145
|
renderImage?: (props: {
|
|
1061
1146
|
src: string;
|
|
1062
1147
|
alt: string;
|
|
1063
1148
|
className?: string;
|
|
1064
|
-
}) => React.ReactNode;
|
|
1149
|
+
}) => React$1.ReactNode;
|
|
1065
1150
|
/** Custom link renderer for page mode (e.g. Next.js Link). */
|
|
1066
1151
|
renderLink?: (props: {
|
|
1067
1152
|
href: string;
|
|
1068
1153
|
className?: string;
|
|
1069
|
-
children: React.ReactNode;
|
|
1070
|
-
}) => React.ReactElement;
|
|
1154
|
+
children: React$1.ReactNode;
|
|
1155
|
+
}) => React$1.ReactElement;
|
|
1156
|
+
/** Called when quick-add button is clicked (if the resolved card supports it). */
|
|
1157
|
+
onQuickAdd?: (product: Product) => void;
|
|
1071
1158
|
/** Replace the entire default card body. */
|
|
1072
|
-
children?: React.ReactNode;
|
|
1159
|
+
children?: React$1.ReactNode;
|
|
1073
1160
|
/** Image aspect ratio. Default: "4/3". */
|
|
1074
1161
|
aspectRatio?: "square" | "4/3" | "16/10" | "3/4";
|
|
1075
1162
|
className?: string;
|
|
@@ -1081,7 +1168,7 @@ interface ProductCardProps {
|
|
|
1081
1168
|
* - **card** (default): clickable button that opens a Base UI Dialog modal
|
|
1082
1169
|
* - **page**: a plain `<a>` link for SEO-friendly product pages
|
|
1083
1170
|
*/
|
|
1084
|
-
declare function ProductCard({ product, displayMode, href, renderModal, renderImage, renderLink, 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;
|
|
1085
1172
|
|
|
1086
1173
|
interface ProductGridClassNames {
|
|
1087
1174
|
root?: string;
|
|
@@ -1099,13 +1186,13 @@ interface ProductGridProps {
|
|
|
1099
1186
|
xl?: number;
|
|
1100
1187
|
};
|
|
1101
1188
|
/** Custom card renderer per product. */
|
|
1102
|
-
renderCard?: (product: Product) => React.ReactNode;
|
|
1189
|
+
renderCard?: (product: Product) => React$1.ReactNode;
|
|
1103
1190
|
/** Custom image renderer passed to default ProductCards. */
|
|
1104
1191
|
renderImage?: (props: {
|
|
1105
1192
|
src: string;
|
|
1106
1193
|
alt: string;
|
|
1107
1194
|
className?: string;
|
|
1108
|
-
}) => React.ReactNode;
|
|
1195
|
+
}) => React$1.ReactNode;
|
|
1109
1196
|
/** Text shown when `products` is empty. */
|
|
1110
1197
|
emptyMessage?: string;
|
|
1111
1198
|
className?: string;
|
|
@@ -1117,7 +1204,7 @@ interface ProductGridProps {
|
|
|
1117
1204
|
* Injects an inline `<style>` tag with media queries for responsive columns.
|
|
1118
1205
|
* Uses `React.useId()` for a hydration-safe, collision-free CSS selector.
|
|
1119
1206
|
*/
|
|
1120
|
-
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;
|
|
1121
1208
|
|
|
1122
1209
|
declare function cn(...inputs: ClassValue[]): string;
|
|
1123
1210
|
|
|
@@ -1142,7 +1229,7 @@ interface SearchInputProps {
|
|
|
1142
1229
|
/** Called when a product result is clicked. */
|
|
1143
1230
|
onResultClick?: (product: Product) => void;
|
|
1144
1231
|
/** Custom result item renderer. */
|
|
1145
|
-
renderResult?: (product: Product) => React.ReactNode;
|
|
1232
|
+
renderResult?: (product: Product) => React$1.ReactNode;
|
|
1146
1233
|
/** Show inline results dropdown. Default: true. */
|
|
1147
1234
|
showResults?: boolean;
|
|
1148
1235
|
/** Optional category ID to scope search results. */
|
|
@@ -1158,7 +1245,7 @@ interface SearchInputProps {
|
|
|
1158
1245
|
* Wraps `useSearch` with a controlled input and optional inline results list.
|
|
1159
1246
|
* Uses Base UI Field.Root + Input for accessible form semantics.
|
|
1160
1247
|
*/
|
|
1161
|
-
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;
|
|
1162
1249
|
|
|
1163
1250
|
interface CategoryFilterClassNames {
|
|
1164
1251
|
root?: string;
|
|
@@ -1186,7 +1273,7 @@ interface CategoryFilterProps {
|
|
|
1186
1273
|
*
|
|
1187
1274
|
* Built on Base UI Tabs for accessible keyboard navigation and ARIA roles.
|
|
1188
1275
|
*/
|
|
1189
|
-
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;
|
|
1190
1277
|
|
|
1191
1278
|
interface DiscountInputClassNames {
|
|
1192
1279
|
root?: string;
|
|
@@ -1216,7 +1303,7 @@ interface DiscountInputProps {
|
|
|
1216
1303
|
* Wraps `useValidateDiscount` with a Base UI Field + Input and apply button.
|
|
1217
1304
|
* Shows validation result inline (success with amount, or error via Field.Error).
|
|
1218
1305
|
*/
|
|
1219
|
-
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;
|
|
1220
1307
|
|
|
1221
1308
|
interface CategoryGridClassNames {
|
|
1222
1309
|
root?: string;
|
|
@@ -1232,7 +1319,7 @@ interface CategoryGridProps {
|
|
|
1232
1319
|
/** Called when a category card is clicked. */
|
|
1233
1320
|
onSelect?: (category: Category) => void;
|
|
1234
1321
|
/** Custom card renderer. */
|
|
1235
|
-
renderCard?: (category: Category) => React.ReactNode;
|
|
1322
|
+
renderCard?: (category: Category) => React$1.ReactNode;
|
|
1236
1323
|
/** Responsive column counts. */
|
|
1237
1324
|
columns?: {
|
|
1238
1325
|
sm?: number;
|
|
@@ -1250,7 +1337,7 @@ interface CategoryGridProps {
|
|
|
1250
1337
|
* Fetches categories via `useCategories` unless overridden.
|
|
1251
1338
|
* Uses `React.useId()` for hydration-safe responsive CSS.
|
|
1252
1339
|
*/
|
|
1253
|
-
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;
|
|
1254
1341
|
|
|
1255
1342
|
interface DealBannerClassNames {
|
|
1256
1343
|
root?: string;
|
|
@@ -1268,7 +1355,7 @@ interface DealBannerProps {
|
|
|
1268
1355
|
/** Called when a deal is clicked. */
|
|
1269
1356
|
onDealClick?: (deal: Deal) => void;
|
|
1270
1357
|
/** Custom deal card renderer. */
|
|
1271
|
-
renderDeal?: (deal: Deal) => React.ReactNode;
|
|
1358
|
+
renderDeal?: (deal: Deal) => React$1.ReactNode;
|
|
1272
1359
|
/** Maximum deals to show. Default: all. */
|
|
1273
1360
|
limit?: number;
|
|
1274
1361
|
className?: string;
|
|
@@ -1279,7 +1366,7 @@ interface DealBannerProps {
|
|
|
1279
1366
|
*
|
|
1280
1367
|
* Renders as a horizontal scrollable strip or grid of deal cards.
|
|
1281
1368
|
*/
|
|
1282
|
-
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;
|
|
1283
1370
|
|
|
1284
1371
|
interface OrderSummaryClassNames {
|
|
1285
1372
|
root?: string;
|
|
@@ -1310,7 +1397,7 @@ interface OrderSummaryProps {
|
|
|
1310
1397
|
/** Poll for status updates. */
|
|
1311
1398
|
poll?: boolean;
|
|
1312
1399
|
/** Custom line item renderer. */
|
|
1313
|
-
renderLineItem?: (item: LineItem) => React.ReactNode;
|
|
1400
|
+
renderLineItem?: (item: LineItem) => React$1.ReactNode;
|
|
1314
1401
|
/** Called when the reorder button is clicked. */
|
|
1315
1402
|
onReorder?: (order: Order) => void;
|
|
1316
1403
|
/** Called when the order status changes during polling. */
|
|
@@ -1324,7 +1411,7 @@ interface OrderSummaryProps {
|
|
|
1324
1411
|
* Accepts either a pre-loaded `order` object or an `orderId` to fetch.
|
|
1325
1412
|
* Supports polling for live status updates.
|
|
1326
1413
|
*/
|
|
1327
|
-
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;
|
|
1328
1415
|
|
|
1329
1416
|
interface OrderHistoryClassNames {
|
|
1330
1417
|
root?: string;
|
|
@@ -1347,7 +1434,7 @@ interface OrderHistoryProps {
|
|
|
1347
1434
|
/** Called when an order row is clicked. */
|
|
1348
1435
|
onOrderClick?: (order: Order) => void;
|
|
1349
1436
|
/** Custom order row renderer. */
|
|
1350
|
-
renderOrder?: (order: Order) => React.ReactNode;
|
|
1437
|
+
renderOrder?: (order: Order) => React$1.ReactNode;
|
|
1351
1438
|
/** Called when the reorder button is clicked. If provided, a reorder button is rendered. */
|
|
1352
1439
|
onReorder?: (order: Order) => void;
|
|
1353
1440
|
/** Text shown when empty. */
|
|
@@ -1360,7 +1447,7 @@ interface OrderHistoryProps {
|
|
|
1360
1447
|
*
|
|
1361
1448
|
* Fetches via `useOrders` unless pre-loaded orders are passed.
|
|
1362
1449
|
*/
|
|
1363
|
-
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;
|
|
1364
1451
|
|
|
1365
1452
|
interface StoreNavClassNames {
|
|
1366
1453
|
root?: string;
|
|
@@ -1376,7 +1463,7 @@ interface StoreNavProps {
|
|
|
1376
1463
|
/** Store/brand name. */
|
|
1377
1464
|
storeName?: string;
|
|
1378
1465
|
/** Custom brand element (logo, etc.). Overrides storeName. */
|
|
1379
|
-
renderBrand?: () => React.ReactNode;
|
|
1466
|
+
renderBrand?: () => React$1.ReactNode;
|
|
1380
1467
|
/** Override categories (skips fetch). */
|
|
1381
1468
|
categories?: Category[];
|
|
1382
1469
|
/** Called when a category link is clicked. */
|
|
@@ -1400,7 +1487,7 @@ interface StoreNavProps {
|
|
|
1400
1487
|
* Fetches categories via `useCategories` and cart count via `useCart`.
|
|
1401
1488
|
* Renders as a semantic `<nav>` element.
|
|
1402
1489
|
*/
|
|
1403
|
-
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;
|
|
1404
1491
|
|
|
1405
1492
|
interface SlotPickerClassNames {
|
|
1406
1493
|
root?: string;
|
|
@@ -1434,7 +1521,7 @@ interface SlotPickerProps {
|
|
|
1434
1521
|
className?: string;
|
|
1435
1522
|
classNames?: SlotPickerClassNames;
|
|
1436
1523
|
}
|
|
1437
|
-
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;
|
|
1438
1525
|
|
|
1439
1526
|
interface DateSlotPickerClassNames {
|
|
1440
1527
|
root?: string;
|
|
@@ -1463,7 +1550,7 @@ interface DateSlotPickerProps {
|
|
|
1463
1550
|
className?: string;
|
|
1464
1551
|
classNames?: DateSlotPickerClassNames;
|
|
1465
1552
|
}
|
|
1466
|
-
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;
|
|
1467
1554
|
|
|
1468
1555
|
interface StaffPickerClassNames {
|
|
1469
1556
|
root?: string;
|
|
@@ -1486,7 +1573,7 @@ interface StaffPickerProps {
|
|
|
1486
1573
|
className?: string;
|
|
1487
1574
|
classNames?: StaffPickerClassNames;
|
|
1488
1575
|
}
|
|
1489
|
-
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;
|
|
1490
1577
|
|
|
1491
1578
|
interface BookingCardClassNames {
|
|
1492
1579
|
root?: string;
|
|
@@ -1507,11 +1594,11 @@ interface BookingCardProps {
|
|
|
1507
1594
|
/** Called when reschedule is clicked. */
|
|
1508
1595
|
onReschedule?: (booking: CustomerBooking) => void;
|
|
1509
1596
|
/** Custom renderer for the booking. */
|
|
1510
|
-
renderBooking?: (booking: CustomerBooking) => React.ReactNode;
|
|
1597
|
+
renderBooking?: (booking: CustomerBooking) => React$1.ReactNode;
|
|
1511
1598
|
className?: string;
|
|
1512
1599
|
classNames?: BookingCardClassNames;
|
|
1513
1600
|
}
|
|
1514
|
-
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;
|
|
1515
1602
|
|
|
1516
1603
|
interface BookingListClassNames {
|
|
1517
1604
|
root?: string;
|
|
@@ -1531,158 +1618,117 @@ interface BookingListProps {
|
|
|
1531
1618
|
/** Called when a booking is clicked. */
|
|
1532
1619
|
onBookingClick?: (booking: CustomerBooking) => void;
|
|
1533
1620
|
/** Custom booking renderer. */
|
|
1534
|
-
renderBooking?: (booking: CustomerBooking) => React.ReactNode;
|
|
1621
|
+
renderBooking?: (booking: CustomerBooking) => React$1.ReactNode;
|
|
1535
1622
|
/** Text shown when empty. */
|
|
1536
1623
|
emptyMessage?: string;
|
|
1537
1624
|
className?: string;
|
|
1538
1625
|
classNames?: BookingListClassNames;
|
|
1539
1626
|
}
|
|
1540
|
-
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;
|
|
1541
1628
|
|
|
1542
|
-
interface
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
/**
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
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;
|
|
1564
1661
|
renderImage?: (props: {
|
|
1565
1662
|
src: string;
|
|
1566
1663
|
alt: string;
|
|
1567
1664
|
className?: string;
|
|
1568
1665
|
}) => React.ReactNode;
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
/** Image aspect ratio. Default: "4/3". */
|
|
1572
|
-
aspectRatio?: "square" | "4/3" | "16/10" | "3/4";
|
|
1573
|
-
className?: string;
|
|
1574
|
-
classNames?: ServiceCardClassNames;
|
|
1575
|
-
}
|
|
1576
|
-
declare function ServiceCard({ service, onBook, href, actionLabel, renderImage, children, aspectRatio, className, classNames, }: ServiceCardProps): React.ReactElement;
|
|
1577
|
-
|
|
1578
|
-
interface ServiceGridClassNames {
|
|
1579
|
-
root?: string;
|
|
1580
|
-
item?: string;
|
|
1581
|
-
empty?: string;
|
|
1582
|
-
loading?: string;
|
|
1583
|
-
}
|
|
1584
|
-
interface ServiceGridProps {
|
|
1585
|
-
/** Pre-fetched services (skips fetch). */
|
|
1586
|
-
services?: Service[];
|
|
1587
|
-
/** Responsive column counts at each breakpoint. */
|
|
1588
|
-
columns?: {
|
|
1589
|
-
sm?: number;
|
|
1590
|
-
md?: number;
|
|
1591
|
-
lg?: number;
|
|
1592
|
-
xl?: number;
|
|
1593
|
-
};
|
|
1594
|
-
/** Called when a service card is clicked. */
|
|
1595
|
-
onServiceSelect?: (service: Service) => void;
|
|
1596
|
-
/** Generate href for each service (renders cards as links). */
|
|
1597
|
-
getServiceHref?: (service: Service) => string;
|
|
1598
|
-
/** Custom card renderer per service. */
|
|
1599
|
-
renderCard?: (service: Service) => React.ReactNode;
|
|
1600
|
-
/** Custom image renderer passed to default ServiceCards. */
|
|
1601
|
-
renderImage?: (props: {
|
|
1602
|
-
src: string;
|
|
1603
|
-
alt: string;
|
|
1666
|
+
renderLink?: (props: {
|
|
1667
|
+
href: string;
|
|
1604
1668
|
className?: string;
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
/** Text shown when empty. */
|
|
1611
|
-
emptyMessage?: string;
|
|
1669
|
+
children: React.ReactNode;
|
|
1670
|
+
}) => React.ReactElement;
|
|
1671
|
+
onQuickAdd?: (product: Product) => void;
|
|
1672
|
+
onProductClick?: (product: Product) => void;
|
|
1673
|
+
title?: string;
|
|
1612
1674
|
className?: string;
|
|
1613
|
-
classNames?: ServiceGridClassNames;
|
|
1614
1675
|
}
|
|
1615
|
-
declare function ServiceGrid({ services: servicesProp, columns, onServiceSelect, getServiceHref, renderCard, renderImage, availableOnly, actionLabel, emptyMessage, className, classNames, }: ServiceGridProps): React.ReactElement;
|
|
1616
1676
|
|
|
1677
|
+
declare enum CatalogueTemplate {
|
|
1678
|
+
Default = "default",
|
|
1679
|
+
Compact = "compact"
|
|
1680
|
+
}
|
|
1617
1681
|
interface CataloguePageClassNames {
|
|
1618
1682
|
root?: string;
|
|
1619
|
-
header?: string;
|
|
1620
|
-
title?: string;
|
|
1621
|
-
searchContainer?: string;
|
|
1622
|
-
filterContainer?: string;
|
|
1623
|
-
toolbar?: string;
|
|
1624
|
-
gridContainer?: string;
|
|
1625
|
-
empty?: string;
|
|
1626
|
-
loading?: string;
|
|
1627
|
-
pagination?: string;
|
|
1628
1683
|
}
|
|
1629
1684
|
interface CataloguePageProps {
|
|
1685
|
+
/** Explicit template. */
|
|
1686
|
+
template?: CatalogueTemplate;
|
|
1687
|
+
/** Layout map for overrides. */
|
|
1688
|
+
layouts?: Partial<Record<CatalogueTemplate | string, React$1.ComponentType<CatalogueLayoutProps>>>;
|
|
1630
1689
|
/** Page title. */
|
|
1631
1690
|
title?: string;
|
|
1632
|
-
/** Pre-fetched products for SSR.
|
|
1691
|
+
/** Pre-fetched products for SSR. */
|
|
1633
1692
|
products?: Product[];
|
|
1634
1693
|
/** Pre-fetched categories for SSR. */
|
|
1635
1694
|
categories?: Category[];
|
|
1636
|
-
/**
|
|
1637
|
-
|
|
1638
|
-
/**
|
|
1639
|
-
showSearch?: boolean;
|
|
1640
|
-
/** Show sort controls. Default: false. */
|
|
1641
|
-
showSort?: boolean;
|
|
1642
|
-
/** Show in-stock toggle. Default: false. */
|
|
1643
|
-
showInStockFilter?: boolean;
|
|
1644
|
-
/** Show price range filter. Default: false. */
|
|
1645
|
-
showPriceRange?: boolean;
|
|
1646
|
-
/** Show tags filter. Default: false. */
|
|
1647
|
-
showTagsFilter?: boolean;
|
|
1648
|
-
/** Available tags for filtering. When provided, renders tag chips. */
|
|
1695
|
+
/** Pre-fetched property facets for sidebar. */
|
|
1696
|
+
facets?: PropertyFacet[];
|
|
1697
|
+
/** Available tags for filtering. */
|
|
1649
1698
|
availableTags?: string[];
|
|
1699
|
+
/** Products per page. */
|
|
1700
|
+
pageSize?: number;
|
|
1650
1701
|
/** Default sort. */
|
|
1651
1702
|
defaultSort?: {
|
|
1652
|
-
by:
|
|
1653
|
-
order:
|
|
1703
|
+
by: string;
|
|
1704
|
+
order: string;
|
|
1654
1705
|
};
|
|
1655
|
-
/**
|
|
1656
|
-
|
|
1657
|
-
/**
|
|
1658
|
-
onProductClick?: (product: Product) => void;
|
|
1659
|
-
/** Called when a category is selected. */
|
|
1660
|
-
onCategoryClick?: (category: Category) => void;
|
|
1661
|
-
/** Custom card renderer passed to ProductGrid. */
|
|
1662
|
-
renderCard?: (product: Product) => React.ReactNode;
|
|
1663
|
-
/** Custom image renderer passed to ProductGrid. */
|
|
1706
|
+
/** Custom card renderer. */
|
|
1707
|
+
renderCard?: (product: Product) => React$1.ReactNode;
|
|
1708
|
+
/** Custom image renderer. */
|
|
1664
1709
|
renderImage?: (props: {
|
|
1665
1710
|
src: string;
|
|
1666
1711
|
alt: string;
|
|
1667
1712
|
className?: string;
|
|
1668
|
-
}) => React.ReactNode;
|
|
1669
|
-
/**
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
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;
|
|
1676
1724
|
className?: string;
|
|
1677
1725
|
classNames?: CataloguePageClassNames;
|
|
1678
1726
|
}
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
*/
|
|
1685
|
-
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;
|
|
1686
1732
|
|
|
1687
1733
|
interface ProductLayoutProps {
|
|
1688
1734
|
product: ProductWithDetails;
|
|
@@ -1691,45 +1737,45 @@ interface ProductLayoutProps {
|
|
|
1691
1737
|
src: string;
|
|
1692
1738
|
alt: string;
|
|
1693
1739
|
className?: string;
|
|
1694
|
-
}) => React.ReactNode;
|
|
1695
|
-
renderBreadcrumb?: (product: ProductWithDetails) => React.ReactNode;
|
|
1740
|
+
}) => React$1.ReactNode;
|
|
1741
|
+
renderBreadcrumb?: (product: ProductWithDetails) => React$1.ReactNode;
|
|
1696
1742
|
relatedProducts?: Product[];
|
|
1697
1743
|
showRelated?: boolean;
|
|
1698
1744
|
className?: string;
|
|
1699
1745
|
}
|
|
1700
1746
|
declare function TwoColumnGrid({ left, right, className, }: {
|
|
1701
|
-
left: React.ReactNode;
|
|
1702
|
-
right: React.ReactNode;
|
|
1747
|
+
left: React$1.ReactNode;
|
|
1748
|
+
right: React$1.ReactNode;
|
|
1703
1749
|
className?: string;
|
|
1704
|
-
}): React.ReactElement;
|
|
1750
|
+
}): React$1.ReactElement;
|
|
1705
1751
|
declare function MetadataStringList({ items, label, icon, className, }: {
|
|
1706
1752
|
items: string[];
|
|
1707
1753
|
label: string;
|
|
1708
|
-
icon?: React.ReactNode;
|
|
1754
|
+
icon?: React$1.ReactNode;
|
|
1709
1755
|
className?: string;
|
|
1710
|
-
}): React.ReactElement | null;
|
|
1756
|
+
}): React$1.ReactElement | null;
|
|
1711
1757
|
declare function CustomAttributesTable({ attributes, className, }: {
|
|
1712
1758
|
attributes: CustomAttributeValue[];
|
|
1713
1759
|
className?: string;
|
|
1714
|
-
}): React.ReactElement | null;
|
|
1760
|
+
}): React$1.ReactElement | null;
|
|
1715
1761
|
declare function PropertiesTable({ properties, className, }: {
|
|
1716
1762
|
properties: ProductProperty[];
|
|
1717
1763
|
className?: string;
|
|
1718
|
-
}): React.ReactElement | null;
|
|
1764
|
+
}): React$1.ReactElement | null;
|
|
1719
1765
|
declare function TagPills({ tags, className, }: {
|
|
1720
1766
|
tags: string[];
|
|
1721
1767
|
className?: string;
|
|
1722
|
-
}): React.ReactElement | null;
|
|
1768
|
+
}): React$1.ReactElement | null;
|
|
1723
1769
|
declare function InventoryBadge({ product, className, }: {
|
|
1724
1770
|
product: Product;
|
|
1725
1771
|
className?: string;
|
|
1726
|
-
}): React.ReactElement | null;
|
|
1772
|
+
}): React$1.ReactElement | null;
|
|
1727
1773
|
declare function RelatedProductsSection({ products, title, renderImage, className, }: {
|
|
1728
1774
|
products: Product[];
|
|
1729
1775
|
title?: string;
|
|
1730
1776
|
renderImage?: ProductLayoutProps["renderImage"];
|
|
1731
1777
|
className?: string;
|
|
1732
|
-
}): React.ReactElement | null;
|
|
1778
|
+
}): React$1.ReactElement | null;
|
|
1733
1779
|
|
|
1734
1780
|
declare enum ProductTemplate {
|
|
1735
1781
|
Default = "default",
|
|
@@ -1749,9 +1795,9 @@ interface ProductPageProps {
|
|
|
1749
1795
|
/** Pre-fetched product for SSR. Skips client-side fetch when provided. */
|
|
1750
1796
|
product?: ProductWithDetails;
|
|
1751
1797
|
/** Per-slug page map. Highest priority — maps a product slug to a custom component. */
|
|
1752
|
-
pages?: Record<string, React.ComponentType<ProductLayoutProps>>;
|
|
1798
|
+
pages?: Record<string, React$1.ComponentType<ProductLayoutProps>>;
|
|
1753
1799
|
/** Per-type template map. Overrides built-in layouts for specific template keys. */
|
|
1754
|
-
templates?: Partial<Record<ProductTemplate | string, React.ComponentType<ProductLayoutProps>>>;
|
|
1800
|
+
templates?: Partial<Record<ProductTemplate | string, React$1.ComponentType<ProductLayoutProps>>>;
|
|
1755
1801
|
/** Override add-to-cart behavior. */
|
|
1756
1802
|
onAddToCart?: (product: ProductWithDetails, quantity: number, options: AddToCartOptions) => void | Promise<void>;
|
|
1757
1803
|
/** Custom image renderer (e.g. Next.js Image). */
|
|
@@ -1759,9 +1805,9 @@ interface ProductPageProps {
|
|
|
1759
1805
|
src: string;
|
|
1760
1806
|
alt: string;
|
|
1761
1807
|
className?: string;
|
|
1762
|
-
}) => React.ReactNode;
|
|
1808
|
+
}) => React$1.ReactNode;
|
|
1763
1809
|
/** Breadcrumb renderer. Receives the product for context. */
|
|
1764
|
-
renderBreadcrumb?: (product: ProductWithDetails) => React.ReactNode;
|
|
1810
|
+
renderBreadcrumb?: (product: ProductWithDetails) => React$1.ReactNode;
|
|
1765
1811
|
/** Pre-fetched related products. */
|
|
1766
1812
|
relatedProducts?: Product[];
|
|
1767
1813
|
/** Show related products section. Default: true. */
|
|
@@ -1769,30 +1815,48 @@ interface ProductPageProps {
|
|
|
1769
1815
|
className?: string;
|
|
1770
1816
|
classNames?: ProductPageClassNames;
|
|
1771
1817
|
}
|
|
1772
|
-
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;
|
|
1773
1819
|
|
|
1774
|
-
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;
|
|
1775
1821
|
|
|
1776
|
-
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;
|
|
1777
1823
|
|
|
1778
|
-
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;
|
|
1779
1825
|
|
|
1780
|
-
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;
|
|
1781
1827
|
|
|
1782
|
-
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;
|
|
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
|
+
}
|
|
1783
1847
|
|
|
1848
|
+
declare enum CartTemplate {
|
|
1849
|
+
Default = "default",
|
|
1850
|
+
Compact = "compact"
|
|
1851
|
+
}
|
|
1784
1852
|
interface CartPageClassNames {
|
|
1785
1853
|
root?: string;
|
|
1786
|
-
header?: string;
|
|
1787
|
-
title?: string;
|
|
1788
|
-
content?: string;
|
|
1789
|
-
discount?: string;
|
|
1790
|
-
footer?: string;
|
|
1791
|
-
checkoutButton?: string;
|
|
1792
|
-
continueButton?: string;
|
|
1793
|
-
empty?: string;
|
|
1794
1854
|
}
|
|
1795
1855
|
interface CartPageProps {
|
|
1856
|
+
/** Explicit template. */
|
|
1857
|
+
template?: CartTemplate;
|
|
1858
|
+
/** Layout map for overrides. */
|
|
1859
|
+
layouts?: Partial<Record<CartTemplate | string, React$1.ComponentType<CartLayoutProps>>>;
|
|
1796
1860
|
/** Page title. */
|
|
1797
1861
|
title?: string;
|
|
1798
1862
|
/** Called when checkout is initiated. */
|
|
@@ -1803,21 +1867,18 @@ interface CartPageProps {
|
|
|
1803
1867
|
onDiscountApply?: (validation: DiscountValidation) => void;
|
|
1804
1868
|
/** Called when discount is removed. */
|
|
1805
1869
|
onDiscountClear?: () => void;
|
|
1806
|
-
/** Show discount code input.
|
|
1870
|
+
/** Show discount code input. */
|
|
1807
1871
|
showDiscount?: boolean;
|
|
1808
|
-
/** Show "continue shopping" link. Default: true. */
|
|
1809
|
-
showContinueShopping?: boolean;
|
|
1810
1872
|
/** Checkout button text. */
|
|
1811
1873
|
checkoutLabel?: string;
|
|
1812
1874
|
className?: string;
|
|
1813
1875
|
classNames?: CartPageClassNames;
|
|
1814
1876
|
}
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
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;
|
|
1821
1882
|
|
|
1822
1883
|
interface CheckoutPageClassNames {
|
|
1823
1884
|
root?: string;
|
|
@@ -1847,48 +1908,72 @@ interface CheckoutPageProps {
|
|
|
1847
1908
|
* renders a page header, and delegates all checkout logic
|
|
1848
1909
|
* to CimplifyCheckout.
|
|
1849
1910
|
*/
|
|
1850
|
-
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
|
+
}
|
|
1851
1930
|
|
|
1931
|
+
declare enum CollectionTemplate {
|
|
1932
|
+
Default = "default",
|
|
1933
|
+
Featured = "featured",
|
|
1934
|
+
Catalogue = "catalogue"
|
|
1935
|
+
}
|
|
1852
1936
|
interface CollectionPageClassNames {
|
|
1853
1937
|
root?: string;
|
|
1854
|
-
header?: string;
|
|
1855
|
-
title?: string;
|
|
1856
|
-
description?: string;
|
|
1857
|
-
image?: string;
|
|
1858
|
-
grid?: string;
|
|
1859
1938
|
loading?: string;
|
|
1860
1939
|
}
|
|
1861
1940
|
interface CollectionPageProps {
|
|
1862
1941
|
/** Collection slug or ID. */
|
|
1863
|
-
collectionId
|
|
1942
|
+
collectionId?: string;
|
|
1864
1943
|
/** Pre-fetched collection for SSR. */
|
|
1865
1944
|
collection?: Collection;
|
|
1866
1945
|
/** Pre-fetched products for SSR. */
|
|
1867
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>>>;
|
|
1868
1951
|
/** Custom card renderer. */
|
|
1869
|
-
renderCard?: (product: Product) => React.ReactNode;
|
|
1952
|
+
renderCard?: (product: Product) => React$1.ReactNode;
|
|
1870
1953
|
/** Custom image renderer. */
|
|
1871
1954
|
renderImage?: (props: {
|
|
1872
1955
|
src: string;
|
|
1873
1956
|
alt: string;
|
|
1874
1957
|
className?: string;
|
|
1875
|
-
}) => React.ReactNode;
|
|
1876
|
-
/**
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
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;
|
|
1883
1967
|
className?: string;
|
|
1884
1968
|
classNames?: CollectionPageClassNames;
|
|
1885
1969
|
}
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
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;
|
|
1892
1977
|
|
|
1893
1978
|
interface OrderDetailPageClassNames {
|
|
1894
1979
|
root?: string;
|
|
@@ -1907,7 +1992,7 @@ interface OrderDetailPageProps {
|
|
|
1907
1992
|
/** Called when back button is clicked. */
|
|
1908
1993
|
onBack?: () => void;
|
|
1909
1994
|
/** Custom line item renderer. */
|
|
1910
|
-
renderLineItem?: (item: LineItem) => React.ReactNode;
|
|
1995
|
+
renderLineItem?: (item: LineItem) => React$1.ReactNode;
|
|
1911
1996
|
/** Called when the reorder button is clicked. */
|
|
1912
1997
|
onReorder?: (order: Order) => void;
|
|
1913
1998
|
/** Called when the order status changes during polling. */
|
|
@@ -1922,7 +2007,7 @@ interface OrderDetailPageProps {
|
|
|
1922
2007
|
*
|
|
1923
2008
|
* SSR-friendly: pass `order` prop for server rendering.
|
|
1924
2009
|
*/
|
|
1925
|
-
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;
|
|
1926
2011
|
|
|
1927
2012
|
interface OrderHistoryPageClassNames {
|
|
1928
2013
|
root?: string;
|
|
@@ -1948,7 +2033,7 @@ interface OrderHistoryPageProps {
|
|
|
1948
2033
|
/** Show status filter tabs. Default: true. */
|
|
1949
2034
|
showFilters?: boolean;
|
|
1950
2035
|
/** Custom order row renderer. */
|
|
1951
|
-
renderOrder?: (order: Order) => React.ReactNode;
|
|
2036
|
+
renderOrder?: (order: Order) => React$1.ReactNode;
|
|
1952
2037
|
className?: string;
|
|
1953
2038
|
classNames?: OrderHistoryPageClassNames;
|
|
1954
2039
|
}
|
|
@@ -1958,54 +2043,96 @@ interface OrderHistoryPageProps {
|
|
|
1958
2043
|
* SSR-friendly: pass `orders` prop for server rendering.
|
|
1959
2044
|
* Supports both inline detail view and external navigation via `onOrderNavigate`.
|
|
1960
2045
|
*/
|
|
1961
|
-
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
|
+
}
|
|
1962
2091
|
|
|
2092
|
+
declare enum SearchTemplate {
|
|
2093
|
+
Default = "default",
|
|
2094
|
+
Compact = "compact"
|
|
2095
|
+
}
|
|
1963
2096
|
interface SearchPageClassNames {
|
|
1964
2097
|
root?: string;
|
|
1965
|
-
header?: string;
|
|
1966
|
-
title?: string;
|
|
1967
|
-
inputContainer?: string;
|
|
1968
|
-
input?: string;
|
|
1969
|
-
clearButton?: string;
|
|
1970
|
-
resultCount?: string;
|
|
1971
|
-
grid?: string;
|
|
1972
|
-
empty?: string;
|
|
1973
|
-
loading?: string;
|
|
1974
2098
|
}
|
|
1975
2099
|
interface SearchPageProps {
|
|
1976
|
-
/**
|
|
1977
|
-
|
|
1978
|
-
/**
|
|
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. */
|
|
1979
2111
|
placeholder?: string;
|
|
1980
|
-
/** Called when a product is clicked in results. */
|
|
1981
|
-
onProductClick?: (product: Product) => void;
|
|
1982
2112
|
/** Custom card renderer. */
|
|
1983
|
-
renderCard?: (product: Product) => React.ReactNode;
|
|
2113
|
+
renderCard?: (product: Product) => React$1.ReactNode;
|
|
1984
2114
|
/** Custom image renderer. */
|
|
1985
2115
|
renderImage?: (props: {
|
|
1986
2116
|
src: string;
|
|
1987
2117
|
alt: string;
|
|
1988
2118
|
className?: string;
|
|
1989
|
-
}) => React.ReactNode;
|
|
1990
|
-
/**
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
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;
|
|
1997
2128
|
className?: string;
|
|
1998
2129
|
classNames?: SearchPageClassNames;
|
|
1999
2130
|
}
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
* automatic `data-filled`, `data-focused`, `data-dirty`, and
|
|
2006
|
-
* `data-touched` attributes for styling hooks.
|
|
2007
|
-
*/
|
|
2008
|
-
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;
|
|
2009
2136
|
|
|
2010
2137
|
interface DealsPageClassNames {
|
|
2011
2138
|
root?: string;
|
|
@@ -2033,7 +2160,7 @@ interface DealsPageProps {
|
|
|
2033
2160
|
src: string;
|
|
2034
2161
|
alt: string;
|
|
2035
2162
|
className?: string;
|
|
2036
|
-
}) => React.ReactNode;
|
|
2163
|
+
}) => React$1.ReactNode;
|
|
2037
2164
|
/** Grid column config. */
|
|
2038
2165
|
columns?: {
|
|
2039
2166
|
sm?: number;
|
|
@@ -2049,125 +2176,7 @@ interface DealsPageProps {
|
|
|
2049
2176
|
*
|
|
2050
2177
|
* SSR-friendly: pass `deals` and `productsOnSale` props for server rendering.
|
|
2051
2178
|
*/
|
|
2052
|
-
declare function DealsPage({ title, deals: dealsProp, productsOnSale: productsOnSaleProp, products: productsProp, locationId, renderImage, columns, className, classNames, }: DealsPageProps): React.ReactElement;
|
|
2053
|
-
|
|
2054
|
-
interface Resource {
|
|
2055
|
-
id: string;
|
|
2056
|
-
name: string;
|
|
2057
|
-
description?: string;
|
|
2058
|
-
capacity?: number;
|
|
2059
|
-
floor?: string;
|
|
2060
|
-
image_url?: string;
|
|
2061
|
-
is_available?: boolean;
|
|
2062
|
-
}
|
|
2063
|
-
interface ResourcePickerClassNames {
|
|
2064
|
-
root?: string;
|
|
2065
|
-
option?: string;
|
|
2066
|
-
image?: string;
|
|
2067
|
-
name?: string;
|
|
2068
|
-
description?: string;
|
|
2069
|
-
meta?: string;
|
|
2070
|
-
capacity?: string;
|
|
2071
|
-
floor?: string;
|
|
2072
|
-
unavailable?: string;
|
|
2073
|
-
}
|
|
2074
|
-
interface ResourcePickerProps {
|
|
2075
|
-
/** List of available resources (rooms, equipment, etc.). */
|
|
2076
|
-
resources: Resource[];
|
|
2077
|
-
/** Currently selected resource ID, or null for "Any available". */
|
|
2078
|
-
selectedResourceId?: string | null;
|
|
2079
|
-
/** Called when a resource is selected. Passes null for "Any available". */
|
|
2080
|
-
onResourceSelect?: (resourceId: string | null) => void;
|
|
2081
|
-
/** Show "Any available" option. Default: true. */
|
|
2082
|
-
showAnyOption?: boolean;
|
|
2083
|
-
/** Label for the "Any available" option. */
|
|
2084
|
-
anyLabel?: string;
|
|
2085
|
-
/** Custom image renderer (e.g. Next.js Image). */
|
|
2086
|
-
renderImage?: (props: {
|
|
2087
|
-
src: string;
|
|
2088
|
-
alt: string;
|
|
2089
|
-
className?: string;
|
|
2090
|
-
}) => React.ReactNode;
|
|
2091
|
-
className?: string;
|
|
2092
|
-
classNames?: ResourcePickerClassNames;
|
|
2093
|
-
}
|
|
2094
|
-
declare function roomToResource(room: Room): Resource;
|
|
2095
|
-
declare function ResourcePicker({ resources, selectedResourceId, onResourceSelect, showAnyOption, anyLabel, renderImage, className, classNames, }: ResourcePickerProps): React.ReactElement;
|
|
2096
|
-
|
|
2097
|
-
interface BookingPageClassNames {
|
|
2098
|
-
root?: string;
|
|
2099
|
-
header?: string;
|
|
2100
|
-
title?: string;
|
|
2101
|
-
serviceInfo?: string;
|
|
2102
|
-
step?: string;
|
|
2103
|
-
stepTitle?: string;
|
|
2104
|
-
summary?: string;
|
|
2105
|
-
summaryRow?: string;
|
|
2106
|
-
confirmButton?: string;
|
|
2107
|
-
backButton?: string;
|
|
2108
|
-
error?: string;
|
|
2109
|
-
rescheduleInfo?: string;
|
|
2110
|
-
depositInfo?: string;
|
|
2111
|
-
cancellationPolicy?: string;
|
|
2112
|
-
resourceStep?: string;
|
|
2113
|
-
}
|
|
2114
|
-
interface BookingPageProps {
|
|
2115
|
-
/** The service being booked. */
|
|
2116
|
-
service: Service;
|
|
2117
|
-
/** The underlying product (for deposit/cancellation fields). Falls back to service fields. */
|
|
2118
|
-
product?: Product;
|
|
2119
|
-
/** Optional staff list for staff selection step. */
|
|
2120
|
-
staff?: Staff[];
|
|
2121
|
-
/** Optional resources for resource selection step (rooms, equipment, etc.). */
|
|
2122
|
-
resources?: Resource[];
|
|
2123
|
-
/** Number of participants. */
|
|
2124
|
-
participantCount?: number;
|
|
2125
|
-
/** Page title. */
|
|
2126
|
-
title?: string;
|
|
2127
|
-
/** Called after successfully adding to cart. */
|
|
2128
|
-
onBooked?: (slot: AvailableSlot, staffId: string | null) => void;
|
|
2129
|
-
/** Called when user wants to go back. */
|
|
2130
|
-
onBack?: () => void;
|
|
2131
|
-
/** Existing booking for reschedule mode. */
|
|
2132
|
-
existingBooking?: CustomerBooking;
|
|
2133
|
-
/** Called after a successful reschedule. */
|
|
2134
|
-
onRescheduled?: (booking: CustomerBooking, newSlot: AvailableSlot) => void;
|
|
2135
|
-
/** Show price on slots. Default: true. */
|
|
2136
|
-
showPrice?: boolean;
|
|
2137
|
-
className?: string;
|
|
2138
|
-
classNames?: BookingPageClassNames;
|
|
2139
|
-
}
|
|
2140
|
-
declare function BookingPage({ service, product, staff, resources, participantCount, title, onBooked, onBack, existingBooking, onRescheduled, showPrice, className, classNames, }: BookingPageProps): React.ReactElement;
|
|
2141
|
-
|
|
2142
|
-
interface BookingsPageClassNames {
|
|
2143
|
-
root?: string;
|
|
2144
|
-
header?: string;
|
|
2145
|
-
title?: string;
|
|
2146
|
-
filters?: string;
|
|
2147
|
-
filterButton?: string;
|
|
2148
|
-
list?: string;
|
|
2149
|
-
detail?: string;
|
|
2150
|
-
backButton?: string;
|
|
2151
|
-
}
|
|
2152
|
-
interface BookingsPageProps {
|
|
2153
|
-
/** Page title. */
|
|
2154
|
-
title?: string;
|
|
2155
|
-
/** Pre-fetched bookings for SSR. */
|
|
2156
|
-
bookings?: CustomerBooking[];
|
|
2157
|
-
/** Called when navigating to a booking detail (e.g. for routing). */
|
|
2158
|
-
onBookingNavigate?: (booking: CustomerBooking) => void;
|
|
2159
|
-
/** Called when cancel is clicked. */
|
|
2160
|
-
onCancel?: (booking: CustomerBooking) => void;
|
|
2161
|
-
/** Called when reschedule is clicked. */
|
|
2162
|
-
onReschedule?: (booking: CustomerBooking) => void;
|
|
2163
|
-
/** Show filter tabs. Default: true. */
|
|
2164
|
-
showFilters?: boolean;
|
|
2165
|
-
/** Custom booking renderer. */
|
|
2166
|
-
renderBooking?: (booking: CustomerBooking) => React.ReactNode;
|
|
2167
|
-
className?: string;
|
|
2168
|
-
classNames?: BookingsPageClassNames;
|
|
2169
|
-
}
|
|
2170
|
-
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;
|
|
2171
2180
|
|
|
2172
2181
|
interface LocationPickerClassNames {
|
|
2173
2182
|
root?: string;
|
|
@@ -2184,7 +2193,7 @@ interface LocationPickerProps {
|
|
|
2184
2193
|
/** Called when a location is selected. */
|
|
2185
2194
|
onLocationChange?: (location: Location) => void;
|
|
2186
2195
|
/** Custom location renderer. */
|
|
2187
|
-
renderLocation?: (location: Location, isActive: boolean) => React.ReactNode;
|
|
2196
|
+
renderLocation?: (location: Location, isActive: boolean) => React$1.ReactNode;
|
|
2188
2197
|
/** Text shown when no locations are available. */
|
|
2189
2198
|
emptyMessage?: string;
|
|
2190
2199
|
className?: string;
|
|
@@ -2196,7 +2205,7 @@ interface LocationPickerProps {
|
|
|
2196
2205
|
* Uses `useLocations` to fetch locations unless overridden via props.
|
|
2197
2206
|
* Returns `null` when there is only one location (no picker needed).
|
|
2198
2207
|
*/
|
|
2199
|
-
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;
|
|
2200
2209
|
|
|
2201
2210
|
interface RecommendationCarouselClassNames {
|
|
2202
2211
|
root?: string;
|
|
@@ -2215,7 +2224,7 @@ interface RecommendationCarouselProps {
|
|
|
2215
2224
|
/** Called when a product recommendation is clicked. */
|
|
2216
2225
|
onProductClick?: (recommendation: ActivityRecommendation) => void;
|
|
2217
2226
|
/** Custom product card renderer. */
|
|
2218
|
-
renderProduct?: (recommendation: ActivityRecommendation) => React.ReactNode;
|
|
2227
|
+
renderProduct?: (recommendation: ActivityRecommendation) => React$1.ReactNode;
|
|
2219
2228
|
/** Text shown when no recommendations are available. */
|
|
2220
2229
|
emptyMessage?: string;
|
|
2221
2230
|
className?: string;
|
|
@@ -2227,7 +2236,7 @@ interface RecommendationCarouselProps {
|
|
|
2227
2236
|
* Renders a horizontal scrollable list of product cards with reason labels.
|
|
2228
2237
|
* Returns `null` when there are no recommendations.
|
|
2229
2238
|
*/
|
|
2230
|
-
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;
|
|
2231
2240
|
|
|
2232
2241
|
interface SessionMessageBannerClassNames {
|
|
2233
2242
|
root?: string;
|
|
@@ -2242,7 +2251,7 @@ interface SessionMessageBannerProps {
|
|
|
2242
2251
|
/** Called when a message is dismissed. Receives the message code. */
|
|
2243
2252
|
onDismiss?: (code: string) => void;
|
|
2244
2253
|
/** Custom message renderer. */
|
|
2245
|
-
renderMessage?: (message: SessionMessage) => React.ReactNode;
|
|
2254
|
+
renderMessage?: (message: SessionMessage) => React$1.ReactNode;
|
|
2246
2255
|
className?: string;
|
|
2247
2256
|
classNames?: SessionMessageBannerClassNames;
|
|
2248
2257
|
}
|
|
@@ -2252,7 +2261,7 @@ interface SessionMessageBannerProps {
|
|
|
2252
2261
|
* Displays dismissible message cards with level-based styling (info, promotion, urgency, suggestion).
|
|
2253
2262
|
* Returns `null` when there are no messages.
|
|
2254
2263
|
*/
|
|
2255
|
-
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;
|
|
2256
2265
|
|
|
2257
2266
|
interface ViewedProduct {
|
|
2258
2267
|
product_id: string;
|
|
@@ -2271,7 +2280,7 @@ interface RecentlyViewedProps {
|
|
|
2271
2280
|
/** Called when a viewed product is clicked. */
|
|
2272
2281
|
onProductClick?: (product: ViewedProduct) => void;
|
|
2273
2282
|
/** Custom product renderer. */
|
|
2274
|
-
renderProduct?: (product: ViewedProduct) => React.ReactNode;
|
|
2283
|
+
renderProduct?: (product: ViewedProduct) => React$1.ReactNode;
|
|
2275
2284
|
/** Text shown when no viewed products exist. */
|
|
2276
2285
|
emptyMessage?: string;
|
|
2277
2286
|
className?: string;
|
|
@@ -2283,7 +2292,7 @@ interface RecentlyViewedProps {
|
|
|
2283
2292
|
* Extracts `state.activity.viewed_products` from the activity state.
|
|
2284
2293
|
* Returns `null` when there are no viewed products.
|
|
2285
2294
|
*/
|
|
2286
|
-
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;
|
|
2287
2296
|
|
|
2288
2297
|
interface BillingPlanSelectorClassNames {
|
|
2289
2298
|
root?: string;
|
|
@@ -2310,7 +2319,7 @@ interface BillingPlanSelectorProps {
|
|
|
2310
2319
|
/** Label for the one-time purchase option. Default: "One-time purchase". */
|
|
2311
2320
|
oneTimePurchaseLabel?: string;
|
|
2312
2321
|
/** Custom plan card renderer. */
|
|
2313
|
-
renderPlan?: (plan: ProductBillingPlan, isActive: boolean) => React.ReactNode;
|
|
2322
|
+
renderPlan?: (plan: ProductBillingPlan, isActive: boolean) => React$1.ReactNode;
|
|
2314
2323
|
className?: string;
|
|
2315
2324
|
classNames?: BillingPlanSelectorClassNames;
|
|
2316
2325
|
}
|
|
@@ -2320,7 +2329,7 @@ interface BillingPlanSelectorProps {
|
|
|
2320
2329
|
* Renders plan cards with frequency, markup, trial, and setup fee details.
|
|
2321
2330
|
* Returns `null` when no plans are available (and one-time purchase is hidden).
|
|
2322
2331
|
*/
|
|
2323
|
-
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;
|
|
2324
2333
|
|
|
2325
2334
|
interface VolumePricingClassNames {
|
|
2326
2335
|
root?: string;
|
|
@@ -2339,14 +2348,14 @@ interface VolumePricingProps {
|
|
|
2339
2348
|
className?: string;
|
|
2340
2349
|
classNames?: VolumePricingClassNames;
|
|
2341
2350
|
}
|
|
2342
|
-
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;
|
|
2343
2352
|
|
|
2344
2353
|
interface PriceRangeProps {
|
|
2345
2354
|
product: Product | ProductWithDetails;
|
|
2346
2355
|
currency?: CurrencyCode;
|
|
2347
2356
|
className?: string;
|
|
2348
2357
|
}
|
|
2349
|
-
declare function PriceRange({ product, currency, className }: PriceRangeProps): React.ReactElement | null;
|
|
2358
|
+
declare function PriceRange({ product, currency, className }: PriceRangeProps): React$1.ReactElement | null;
|
|
2350
2359
|
|
|
2351
2360
|
interface DeliveryEstimateClassNames {
|
|
2352
2361
|
root?: string;
|
|
@@ -2374,7 +2383,7 @@ interface DeliveryEstimateProps {
|
|
|
2374
2383
|
* Fetches the delivery fee from `client.delivery.getFee` when coordinates change.
|
|
2375
2384
|
* Shows fee amount with currency, a "not serviceable" message, or loading state.
|
|
2376
2385
|
*/
|
|
2377
|
-
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;
|
|
2378
2387
|
|
|
2379
2388
|
interface CurrencySelectorClassNames {
|
|
2380
2389
|
root?: string;
|
|
@@ -2396,7 +2405,7 @@ interface CurrencySelectorProps {
|
|
|
2396
2405
|
/** Base currency used for rate display. */
|
|
2397
2406
|
baseCurrency?: CurrencyCode;
|
|
2398
2407
|
/** Custom currency option renderer. */
|
|
2399
|
-
renderCurrency?: (currency: CurrencyCode, isActive: boolean, rate: FxRateResponse | null) => React.ReactNode;
|
|
2408
|
+
renderCurrency?: (currency: CurrencyCode, isActive: boolean, rate: FxRateResponse | null) => React$1.ReactNode;
|
|
2400
2409
|
className?: string;
|
|
2401
2410
|
classNames?: CurrencySelectorClassNames;
|
|
2402
2411
|
}
|
|
@@ -2406,6 +2415,49 @@ interface CurrencySelectorProps {
|
|
|
2406
2415
|
* Renders selectable currency options with optional exchange rate display.
|
|
2407
2416
|
* Returns `null` when there is only one currency (no selector needed).
|
|
2408
2417
|
*/
|
|
2409
|
-
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;
|
|
2410
2462
|
|
|
2411
|
-
export { 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,
|
|
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 };
|