@cimplify/sdk 0.17.0 → 0.18.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.
@@ -92,6 +92,69 @@ type VariantStrategy = "fetch_all" | "use_axes";
92
92
  type DigitalProductType = "download" | "license" | "event_ticket" | "access_pass" | "gift_code";
93
93
  type DepositType = "none" | "fixed" | "percentage";
94
94
  type SalesChannel = "pos" | "online" | "marketplace" | "partners";
95
+ type AttributeType = "text" | "textarea" | "number" | "currency" | "boolean" | "single_select" | "multi_select" | "radio" | "date" | "url" | "color" | "image" | "file";
96
+ type AttributeAppliesTo = "product" | "variant" | "both";
97
+ interface CustomAttributeDefinition {
98
+ id: string;
99
+ business_id: string;
100
+ name: string;
101
+ slug: string;
102
+ description?: string;
103
+ attribute_type: AttributeType;
104
+ options?: string[];
105
+ unit?: string;
106
+ is_required: boolean;
107
+ is_filterable: boolean;
108
+ is_visible: boolean;
109
+ display_order: number;
110
+ group_name?: string;
111
+ applies_to: AttributeAppliesTo;
112
+ created_at: string;
113
+ updated_at: string;
114
+ }
115
+ interface CustomAttributeValue {
116
+ definition_id: string;
117
+ name: string;
118
+ slug: string;
119
+ attribute_type: AttributeType;
120
+ group_name?: string;
121
+ unit?: string;
122
+ value: string | number | boolean | string[] | null;
123
+ is_filterable: boolean;
124
+ }
125
+ type PropertySource = "attribute" | "variant";
126
+ interface ProductProperty {
127
+ name: string;
128
+ slug: string;
129
+ source: PropertySource;
130
+ value_type: string;
131
+ values: (string | number | boolean | null)[];
132
+ group_name?: string;
133
+ unit?: string;
134
+ is_filterable: boolean;
135
+ }
136
+ interface PropertyFacet {
137
+ name: string;
138
+ slug: string;
139
+ source: string;
140
+ values: FacetValue[];
141
+ }
142
+ interface FacetValue {
143
+ value: string;
144
+ count: number;
145
+ }
146
+ interface TaxonomyAttributeTemplate {
147
+ id: string;
148
+ taxonomy_id: string;
149
+ name: string;
150
+ slug: string;
151
+ attribute_type: "boolean" | "single_select";
152
+ options?: string[];
153
+ is_required: boolean;
154
+ display_order: number;
155
+ gpc_attribute_code?: number;
156
+ created_at: string;
157
+ }
95
158
  interface Product {
96
159
  id: string;
97
160
  business_id: string;
@@ -186,6 +249,8 @@ interface Product {
186
249
  components?: BundleComponentView[];
187
250
  composite_id?: string;
188
251
  groups?: CompositeGroupView[];
252
+ custom_attributes?: CustomAttributeValue[];
253
+ properties?: ProductProperty[];
189
254
  }
190
255
  interface ProductWithDetails extends Product {
191
256
  category?: Category;
@@ -1240,4 +1305,4 @@ interface SubmitAuthorizationInput {
1240
1305
  value: string;
1241
1306
  }
1242
1307
 
1243
- export { type BundleComponentInfo as $, type ApiError as A, type VariantAxisSelection as B, type CurrencyCode as C, type DisplayMode as D, ErrorCode as E, type AddOn as F, type AddOnWithOptions as G, type AddOnOption as H, type InventoryType as I, type AddOnOptionPrice as J, type ProductAddOn as K, type Category as L, type Money as M, type CategorySummary as N, type Collection as O, type PaginationParams as P, type CollectionSummary as Q, type CollectionProduct as R, type SalesChannel as S, type BundlePriceType as T, type Bundle as U, type VariantStrategy as V, type BundleSummary as W, type BundleProduct as X, type BundleWithDetails as Y, ZERO as Z, type BundleComponentData as _, moneyFromNumber as a, type UICartLocation as a$, type BundleComponentView as a0, type BundleComponentVariantView as a1, type VariantAxisView as a2, type VariantAxisValueView as a3, type CompositePricingMode as a4, type GroupPricingBehavior as a5, type ComponentSourceType as a6, type Composite as a7, type CompositeWithDetails as a8, type ComponentGroup as a9, type TaxPathComponent as aA, type PricePathTaxInfo as aB, type PriceDecisionPath as aC, type ChosenPrice as aD, type BenefitType as aE, type AppliedDiscount as aF, type DiscountBreakdown as aG, type DiscountDetails as aH, type SelectedAddOnOption as aI, type AddOnDetails as aJ, type CartAddOn as aK, type VariantDetails as aL, type BundleSelectionInput as aM, type BundleStoredSelection as aN, type BundleSelectionData as aO, type CompositeStoredSelection as aP, type CompositePriceBreakdown as aQ, type CompositeSelectionData as aR, type LineConfiguration as aS, type Cart as aT, type CartItem as aU, type CartTotals as aV, type DisplayCart as aW, type DisplayCartItem as aX, type DisplayAddOn as aY, type DisplayAddOnOption as aZ, type UICartBusiness as a_, type ComponentGroupWithComponents as aa, type CompositeGroupView as ab, type CompositeComponentView as ac, type CompositeComponent as ad, type ComponentSelectionInput as ae, type CompositePriceResult as af, type ComponentPriceBreakdown as ag, type PriceEntryType as ah, type Price as ai, type LocationProductPrice as aj, type ProductAvailability as ak, type ProductTimeProfile as al, type ProductTaxonomy as am, type TaxonomyWithChildren as an, type ProductAvailabilityNow as ao, type DealBenefitType as ap, type Deal as aq, type ProductDealInfo as ar, type DiscountValidation as as, type Tag as at, type TagsResponse as au, type CartStatus as av, type CartChannel as aw, type PriceSource as ax, type AdjustmentType as ay, type PriceAdjustment as az, type Pagination as b, type UICartCustomer as b0, type UICartPricing as b1, type AddOnOptionDetails as b2, type AddOnGroupDetails as b3, type VariantDetailsDTO as b4, type CartItemDetails as b5, type UICart as b6, type UICartResponse as b7, type AddToCartInput as b8, type UpdateCartItemInput as b9, type CartSummary as ba, type PaymentStatus as bb, type PaymentProvider as bc, type PaymentMethodType as bd, type AddressAuthorizationData as be, type AuthorizationType as bf, type PaymentProcessingState as bg, type PaymentMethod as bh, type Payment as bi, type InitializePaymentResult as bj, type PaymentResponse as bk, type PaymentStatusResponse as bl, type PaymentErrorDetails as bm, type SubmitAuthorizationInput as bn, currencyCode as c, type ErrorCodeType as d, type ErrorHint as e, ERROR_HINTS as f, CimplifyError as g, isCimplifyError as h, isSupportedCurrency as i, getErrorHint as j, enrichError as k, isRetryableError as l, money as m, type ProductType as n, type ProductRenderHint as o, type DigitalProductType as p, type DepositType as q, type Product as r, type ProductWithDetails as s, type ProductVariant as t, type VariantDisplayAttribute as u, type VariantAxis as v, type VariantAxisWithValues as w, type VariantAxisValue as x, type ProductVariantValue as y, type VariantLocationAvailability as z };
1308
+ export { type Collection as $, type ApiError as A, type ProductVariant as B, type CurrencyCode as C, type DisplayMode as D, ErrorCode as E, type FacetValue as F, type VariantDisplayAttribute as G, type VariantAxis as H, type InventoryType as I, type VariantAxisWithValues as J, type VariantAxisValue as K, type ProductVariantValue as L, type Money as M, type VariantLocationAvailability as N, type VariantAxisSelection as O, type PaginationParams as P, type AddOn as Q, type AddOnWithOptions as R, type SalesChannel as S, type TaxonomyAttributeTemplate as T, type AddOnOption as U, type VariantStrategy as V, type AddOnOptionPrice as W, type ProductAddOn as X, type Category as Y, ZERO as Z, type CategorySummary as _, moneyFromNumber as a, type LineConfiguration as a$, type CollectionSummary as a0, type CollectionProduct as a1, type BundlePriceType as a2, type Bundle as a3, type BundleSummary as a4, type BundleProduct as a5, type BundleWithDetails as a6, type BundleComponentData as a7, type BundleComponentInfo as a8, type BundleComponentView as a9, type ProductDealInfo as aA, type DiscountValidation as aB, type Tag as aC, type TagsResponse as aD, type CartStatus as aE, type CartChannel as aF, type PriceSource as aG, type AdjustmentType as aH, type PriceAdjustment as aI, type TaxPathComponent as aJ, type PricePathTaxInfo as aK, type PriceDecisionPath as aL, type ChosenPrice as aM, type BenefitType as aN, type AppliedDiscount as aO, type DiscountBreakdown as aP, type DiscountDetails as aQ, type SelectedAddOnOption as aR, type AddOnDetails as aS, type CartAddOn as aT, type VariantDetails as aU, type BundleSelectionInput as aV, type BundleStoredSelection as aW, type BundleSelectionData as aX, type CompositeStoredSelection as aY, type CompositePriceBreakdown as aZ, type CompositeSelectionData as a_, type BundleComponentVariantView as aa, type VariantAxisView as ab, type VariantAxisValueView as ac, type CompositePricingMode as ad, type GroupPricingBehavior as ae, type ComponentSourceType as af, type Composite as ag, type CompositeWithDetails as ah, type ComponentGroup as ai, type ComponentGroupWithComponents as aj, type CompositeGroupView as ak, type CompositeComponentView as al, type CompositeComponent as am, type ComponentSelectionInput as an, type CompositePriceResult as ao, type ComponentPriceBreakdown as ap, type PriceEntryType as aq, type Price as ar, type LocationProductPrice as as, type ProductAvailability as at, type ProductTimeProfile as au, type ProductTaxonomy as av, type TaxonomyWithChildren as aw, type ProductAvailabilityNow as ax, type DealBenefitType as ay, type Deal as az, type Pagination as b, type Cart as b0, type CartItem as b1, type CartTotals as b2, type DisplayCart as b3, type DisplayCartItem as b4, type DisplayAddOn as b5, type DisplayAddOnOption as b6, type UICartBusiness as b7, type UICartLocation as b8, type UICartCustomer as b9, type UICartPricing as ba, type AddOnOptionDetails as bb, type AddOnGroupDetails as bc, type VariantDetailsDTO as bd, type CartItemDetails as be, type UICart as bf, type UICartResponse as bg, type AddToCartInput as bh, type UpdateCartItemInput as bi, type CartSummary as bj, type PaymentStatus as bk, type PaymentProvider as bl, type PaymentMethodType as bm, type AddressAuthorizationData as bn, type AuthorizationType as bo, type PaymentProcessingState as bp, type PaymentMethod as bq, type Payment as br, type InitializePaymentResult as bs, type PaymentResponse as bt, type PaymentStatusResponse as bu, type PaymentErrorDetails as bv, type SubmitAuthorizationInput as bw, currencyCode as c, type ErrorCodeType as d, type ErrorHint as e, ERROR_HINTS as f, CimplifyError as g, isCimplifyError as h, isSupportedCurrency as i, getErrorHint as j, enrichError as k, isRetryableError as l, money as m, type ProductType as n, type ProductRenderHint as o, type DigitalProductType as p, type DepositType as q, type AttributeType as r, type AttributeAppliesTo as s, type CustomAttributeDefinition as t, type CustomAttributeValue as u, type PropertySource as v, type ProductProperty as w, type PropertyFacet as x, type Product as y, type ProductWithDetails as z };
@@ -1,4 +1,4 @@
1
- import { aD as ChosenPrice, C as CurrencyCode } from './payment-C6ULw3K-.mjs';
1
+ import { aM as ChosenPrice, C as CurrencyCode } from './payment-D9FTaOse.mjs';
2
2
 
3
3
  interface ProductWithPrice {
4
4
  price_info?: ChosenPrice;
@@ -1,4 +1,4 @@
1
- import { aD as ChosenPrice, C as CurrencyCode } from './payment-C6ULw3K-.js';
1
+ import { aM as ChosenPrice, C as CurrencyCode } from './payment-D9FTaOse.js';
2
2
 
3
3
  interface ProductWithPrice {
4
4
  price_info?: ChosenPrice;
package/dist/react.d.mts CHANGED
@@ -1,9 +1,9 @@
1
1
  import React, { ReactNode } from 'react';
2
2
  import { A as AdSlot, a as AdPosition, e as AdContextValue } from './ads-BxbWrwqp.mjs';
3
3
  export { c as AdConfig, g as getVariantDisplayName } from './ads-BxbWrwqp.mjs';
4
- import { C as CimplifyClient, a0 as ProcessCheckoutResult, a2 as CheckoutStatus, a3 as CheckoutStatusContext, bu as Location, br as Business, aW as Order, d as QuoteBundleSelectionInput, Q as QuoteCompositeSelectionInput, P as PriceQuote, g as QuoteUiMessage, aJ as OrderStatus, bH as Service, bK as AvailableSlot, bL as DayAvailability, bQ as CustomerBooking, bW as CancelBookingResult, D as ElementsOptions, cK as AuthenticatedData, cG as AddressInfo, cH as PaymentMethodInfo, w as CimplifyElements, cM as ElementsCheckoutResult, $ as ProcessCheckoutOptions, aV as LineItem, bI as Staff } from './client-BaolRdB4.mjs';
5
- import { r as Product, b as Pagination, g as CimplifyError, s as ProductWithDetails, L as Category, M as Money, aM as BundleSelectionInput, ae as ComponentSelectionInput, O as Collection, am as ProductTaxonomy, an as TaxonomyWithChildren, al as ProductTimeProfile, aq as Deal, ar as ProductDealInfo, as as DiscountValidation, W as BundleSummary, af as CompositePriceResult, C as CurrencyCode, t as ProductVariant, w as VariantAxisWithValues, G as AddOnWithOptions, a0 as BundleComponentView, T as BundlePriceType, ab as CompositeGroupView } from './payment-C6ULw3K-.mjs';
6
- import { P as ProductWithPrice } from './price-CbR6DCt0.mjs';
4
+ import { C as CimplifyClient, $ as ProcessCheckoutResult, a1 as CheckoutStatus, a2 as CheckoutStatusContext, bt as Location, bq as Business, aV as Order, d as QuoteBundleSelectionInput, Q as QuoteCompositeSelectionInput, P as PriceQuote, g as QuoteUiMessage, aI as OrderStatus, bG as Service, bJ as AvailableSlot, bK as DayAvailability, bP as CustomerBooking, bV as CancelBookingResult, z as ElementsOptions, cJ as AuthenticatedData, cF as AddressInfo, cG as PaymentMethodInfo, v as CimplifyElements, cL as ElementsCheckoutResult, _ as ProcessCheckoutOptions, aU as LineItem, bH as Staff } from './client-BFFfuzJr.mjs';
5
+ import { y as Product, b as Pagination, g as CimplifyError, z as ProductWithDetails, Y as Category, M as Money, aV as BundleSelectionInput, an as ComponentSelectionInput, $ as Collection, av as ProductTaxonomy, aw as TaxonomyWithChildren, au as ProductTimeProfile, az as Deal, aA as ProductDealInfo, aB as DiscountValidation, a4 as BundleSummary, ao as CompositePriceResult, C as CurrencyCode, B as ProductVariant, J as VariantAxisWithValues, R as AddOnWithOptions, a9 as BundleComponentView, a2 as BundlePriceType, ak as CompositeGroupView } from './payment-D9FTaOse.mjs';
6
+ import { P as ProductWithPrice } from './price-9JsPuknm.mjs';
7
7
  import { ClassValue } from 'clsx';
8
8
 
9
9
  interface UserIdentity {
@@ -134,18 +134,18 @@ declare function useCimplifyClient(): CimplifyClientContextValue;
134
134
 
135
135
  interface UseProductsOptions {
136
136
  category?: string;
137
- collection?: string;
138
137
  taxonomy?: string;
139
138
  search?: string;
140
139
  featured?: boolean;
141
140
  limit?: number;
142
- sort_by?: "name" | "price" | "created_at";
141
+ sort_by?: "name" | "price" | "created_at" | "updated_at";
143
142
  sort_order?: "asc" | "desc";
144
143
  tags?: string[];
145
144
  in_stock?: boolean;
146
145
  min_price?: number;
147
146
  max_price?: number;
148
147
  page?: number;
148
+ properties?: Record<string, string>;
149
149
  enabled?: boolean;
150
150
  client?: CimplifyClient;
151
151
  }
@@ -305,6 +305,14 @@ interface UseSearchOptions {
305
305
  debounceMs?: number;
306
306
  limit?: number;
307
307
  category?: string;
308
+ taxonomy?: string;
309
+ tags?: string[];
310
+ featured?: boolean;
311
+ in_stock?: boolean;
312
+ min_price?: number;
313
+ max_price?: number;
314
+ sort_by?: "name" | "price" | "created_at" | "updated_at";
315
+ sort_order?: "asc" | "desc";
308
316
  }
309
317
  interface UseSearchResult {
310
318
  results: Product[];
@@ -1423,9 +1431,11 @@ interface CataloguePageClassNames {
1423
1431
  title?: string;
1424
1432
  searchContainer?: string;
1425
1433
  filterContainer?: string;
1434
+ toolbar?: string;
1426
1435
  gridContainer?: string;
1427
1436
  empty?: string;
1428
1437
  loading?: string;
1438
+ pagination?: string;
1429
1439
  }
1430
1440
  interface CataloguePageProps {
1431
1441
  /** Page title. */
@@ -1438,6 +1448,23 @@ interface CataloguePageProps {
1438
1448
  showFilter?: boolean;
1439
1449
  /** Show search input. Default: true. */
1440
1450
  showSearch?: boolean;
1451
+ /** Show sort controls. Default: false. */
1452
+ showSort?: boolean;
1453
+ /** Show in-stock toggle. Default: false. */
1454
+ showInStockFilter?: boolean;
1455
+ /** Show price range filter. Default: false. */
1456
+ showPriceRange?: boolean;
1457
+ /** Show tags filter. Default: false. */
1458
+ showTagsFilter?: boolean;
1459
+ /** Available tags for filtering. When provided, renders tag chips. */
1460
+ availableTags?: string[];
1461
+ /** Default sort. */
1462
+ defaultSort?: {
1463
+ by: "name" | "price" | "created_at" | "updated_at";
1464
+ order: "asc" | "desc";
1465
+ };
1466
+ /** Products per page. */
1467
+ pageSize?: number;
1441
1468
  /** Called when a product is selected (e.g. navigate to product page). */
1442
1469
  onProductClick?: (product: Product) => void;
1443
1470
  /** Called when a category is selected. */
@@ -1461,12 +1488,12 @@ interface CataloguePageProps {
1461
1488
  classNames?: CataloguePageClassNames;
1462
1489
  }
1463
1490
  /**
1464
- * CataloguePage — browse all products with category filtering and search.
1491
+ * CataloguePage — browse all products with server-side filtering, sorting, and pagination.
1465
1492
  *
1466
1493
  * SSR-friendly: pass `products` and `categories` props for server rendering.
1467
1494
  * Omit them for fully client-side data fetching.
1468
1495
  */
1469
- declare function CataloguePage({ title, products: productsProp, categories: categoriesProp, showFilter, showSearch, onProductClick, onCategoryClick, renderCard, renderImage, columns, className, classNames, }: CataloguePageProps): React.ReactElement;
1496
+ 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;
1470
1497
 
1471
1498
  interface ProductPageClassNames {
1472
1499
  root?: string;
package/dist/react.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import React, { 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, a0 as ProcessCheckoutResult, a2 as CheckoutStatus, a3 as CheckoutStatusContext, bu as Location, br as Business, aW as Order, d as QuoteBundleSelectionInput, Q as QuoteCompositeSelectionInput, P as PriceQuote, g as QuoteUiMessage, aJ as OrderStatus, bH as Service, bK as AvailableSlot, bL as DayAvailability, bQ as CustomerBooking, bW as CancelBookingResult, D as ElementsOptions, cK as AuthenticatedData, cG as AddressInfo, cH as PaymentMethodInfo, w as CimplifyElements, cM as ElementsCheckoutResult, $ as ProcessCheckoutOptions, aV as LineItem, bI as Staff } from './client-C59R79gx.js';
5
- import { r as Product, b as Pagination, g as CimplifyError, s as ProductWithDetails, L as Category, M as Money, aM as BundleSelectionInput, ae as ComponentSelectionInput, O as Collection, am as ProductTaxonomy, an as TaxonomyWithChildren, al as ProductTimeProfile, aq as Deal, ar as ProductDealInfo, as as DiscountValidation, W as BundleSummary, af as CompositePriceResult, C as CurrencyCode, t as ProductVariant, w as VariantAxisWithValues, G as AddOnWithOptions, a0 as BundleComponentView, T as BundlePriceType, ab as CompositeGroupView } from './payment-C6ULw3K-.js';
6
- import { P as ProductWithPrice } from './price-Bd6JBV8W.js';
4
+ import { C as CimplifyClient, $ as ProcessCheckoutResult, a1 as CheckoutStatus, a2 as CheckoutStatusContext, bt as Location, bq as Business, aV as Order, d as QuoteBundleSelectionInput, Q as QuoteCompositeSelectionInput, P as PriceQuote, g as QuoteUiMessage, aI as OrderStatus, bG as Service, bJ as AvailableSlot, bK as DayAvailability, bP as CustomerBooking, bV as CancelBookingResult, z as ElementsOptions, cJ as AuthenticatedData, cF as AddressInfo, cG as PaymentMethodInfo, v as CimplifyElements, cL as ElementsCheckoutResult, _ as ProcessCheckoutOptions, aU as LineItem, bH as Staff } from './client-B1UtuyOg.js';
5
+ import { y as Product, b as Pagination, g as CimplifyError, z as ProductWithDetails, Y as Category, M as Money, aV as BundleSelectionInput, an as ComponentSelectionInput, $ as Collection, av as ProductTaxonomy, aw as TaxonomyWithChildren, au as ProductTimeProfile, az as Deal, aA as ProductDealInfo, aB as DiscountValidation, a4 as BundleSummary, ao as CompositePriceResult, C as CurrencyCode, B as ProductVariant, J as VariantAxisWithValues, R as AddOnWithOptions, a9 as BundleComponentView, a2 as BundlePriceType, ak as CompositeGroupView } from './payment-D9FTaOse.js';
6
+ import { P as ProductWithPrice } from './price-BD1iioLh.js';
7
7
  import { ClassValue } from 'clsx';
8
8
 
9
9
  interface UserIdentity {
@@ -134,18 +134,18 @@ declare function useCimplifyClient(): CimplifyClientContextValue;
134
134
 
135
135
  interface UseProductsOptions {
136
136
  category?: string;
137
- collection?: string;
138
137
  taxonomy?: string;
139
138
  search?: string;
140
139
  featured?: boolean;
141
140
  limit?: number;
142
- sort_by?: "name" | "price" | "created_at";
141
+ sort_by?: "name" | "price" | "created_at" | "updated_at";
143
142
  sort_order?: "asc" | "desc";
144
143
  tags?: string[];
145
144
  in_stock?: boolean;
146
145
  min_price?: number;
147
146
  max_price?: number;
148
147
  page?: number;
148
+ properties?: Record<string, string>;
149
149
  enabled?: boolean;
150
150
  client?: CimplifyClient;
151
151
  }
@@ -305,6 +305,14 @@ interface UseSearchOptions {
305
305
  debounceMs?: number;
306
306
  limit?: number;
307
307
  category?: string;
308
+ taxonomy?: string;
309
+ tags?: string[];
310
+ featured?: boolean;
311
+ in_stock?: boolean;
312
+ min_price?: number;
313
+ max_price?: number;
314
+ sort_by?: "name" | "price" | "created_at" | "updated_at";
315
+ sort_order?: "asc" | "desc";
308
316
  }
309
317
  interface UseSearchResult {
310
318
  results: Product[];
@@ -1423,9 +1431,11 @@ interface CataloguePageClassNames {
1423
1431
  title?: string;
1424
1432
  searchContainer?: string;
1425
1433
  filterContainer?: string;
1434
+ toolbar?: string;
1426
1435
  gridContainer?: string;
1427
1436
  empty?: string;
1428
1437
  loading?: string;
1438
+ pagination?: string;
1429
1439
  }
1430
1440
  interface CataloguePageProps {
1431
1441
  /** Page title. */
@@ -1438,6 +1448,23 @@ interface CataloguePageProps {
1438
1448
  showFilter?: boolean;
1439
1449
  /** Show search input. Default: true. */
1440
1450
  showSearch?: boolean;
1451
+ /** Show sort controls. Default: false. */
1452
+ showSort?: boolean;
1453
+ /** Show in-stock toggle. Default: false. */
1454
+ showInStockFilter?: boolean;
1455
+ /** Show price range filter. Default: false. */
1456
+ showPriceRange?: boolean;
1457
+ /** Show tags filter. Default: false. */
1458
+ showTagsFilter?: boolean;
1459
+ /** Available tags for filtering. When provided, renders tag chips. */
1460
+ availableTags?: string[];
1461
+ /** Default sort. */
1462
+ defaultSort?: {
1463
+ by: "name" | "price" | "created_at" | "updated_at";
1464
+ order: "asc" | "desc";
1465
+ };
1466
+ /** Products per page. */
1467
+ pageSize?: number;
1441
1468
  /** Called when a product is selected (e.g. navigate to product page). */
1442
1469
  onProductClick?: (product: Product) => void;
1443
1470
  /** Called when a category is selected. */
@@ -1461,12 +1488,12 @@ interface CataloguePageProps {
1461
1488
  classNames?: CataloguePageClassNames;
1462
1489
  }
1463
1490
  /**
1464
- * CataloguePage — browse all products with category filtering and search.
1491
+ * CataloguePage — browse all products with server-side filtering, sorting, and pagination.
1465
1492
  *
1466
1493
  * SSR-friendly: pass `products` and `categories` props for server rendering.
1467
1494
  * Omit them for fully client-side data fetching.
1468
1495
  */
1469
- declare function CataloguePage({ title, products: productsProp, categories: categoriesProp, showFilter, showSearch, onProductClick, onCategoryClick, renderCard, renderImage, columns, className, classNames, }: CataloguePageProps): React.ReactElement;
1496
+ 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;
1470
1497
 
1471
1498
  interface ProductPageClassNames {
1472
1499
  root?: string;