@cimplify/sdk 0.17.0 → 0.19.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,79 @@ 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
+ }
158
+ interface KnowledgeArticle {
159
+ id: string;
160
+ title: string;
161
+ slug: string;
162
+ content: string;
163
+ category?: string;
164
+ tags: string[];
165
+ created_at: string;
166
+ updated_at: string;
167
+ }
95
168
  interface Product {
96
169
  id: string;
97
170
  business_id: string;
@@ -186,6 +259,8 @@ interface Product {
186
259
  components?: BundleComponentView[];
187
260
  composite_id?: string;
188
261
  groups?: CompositeGroupView[];
262
+ custom_attributes?: CustomAttributeValue[];
263
+ properties?: ProductProperty[];
189
264
  }
190
265
  interface ProductWithDetails extends Product {
191
266
  category?: Category;
@@ -1240,4 +1315,4 @@ interface SubmitAuthorizationInput {
1240
1315
  value: string;
1241
1316
  }
1242
1317
 
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 };
1318
+ export { type CategorySummary 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 KnowledgeArticle as K, type VariantAxisValue as L, type Money as M, type ProductVariantValue as N, type VariantLocationAvailability as O, type PaginationParams as P, type VariantAxisSelection as Q, type AddOn as R, type SalesChannel as S, type TaxonomyAttributeTemplate as T, type AddOnWithOptions as U, type VariantStrategy as V, type AddOnOption as W, type AddOnOptionPrice as X, type ProductAddOn as Y, ZERO as Z, type Category as _, moneyFromNumber as a, type CompositeSelectionData as a$, type Collection as a0, type CollectionSummary as a1, type CollectionProduct as a2, type BundlePriceType as a3, type Bundle as a4, type BundleSummary as a5, type BundleProduct as a6, type BundleWithDetails as a7, type BundleComponentData as a8, type BundleComponentInfo as a9, type Deal as aA, type ProductDealInfo as aB, type DiscountValidation as aC, type Tag as aD, type TagsResponse as aE, type CartStatus as aF, type CartChannel as aG, type PriceSource as aH, type AdjustmentType as aI, type PriceAdjustment as aJ, type TaxPathComponent as aK, type PricePathTaxInfo as aL, type PriceDecisionPath as aM, type ChosenPrice as aN, type BenefitType as aO, type AppliedDiscount as aP, type DiscountBreakdown as aQ, type DiscountDetails as aR, type SelectedAddOnOption as aS, type AddOnDetails as aT, type CartAddOn as aU, type VariantDetails as aV, type BundleSelectionInput as aW, type BundleStoredSelection as aX, type BundleSelectionData as aY, type CompositeStoredSelection as aZ, type CompositePriceBreakdown as a_, type BundleComponentView as aa, type BundleComponentVariantView as ab, type VariantAxisView as ac, type VariantAxisValueView as ad, type CompositePricingMode as ae, type GroupPricingBehavior as af, type ComponentSourceType as ag, type Composite as ah, type CompositeWithDetails as ai, type ComponentGroup as aj, type ComponentGroupWithComponents as ak, type CompositeGroupView as al, type CompositeComponentView as am, type CompositeComponent as an, type ComponentSelectionInput as ao, type CompositePriceResult as ap, type ComponentPriceBreakdown as aq, type PriceEntryType as ar, type Price as as, type LocationProductPrice as at, type ProductAvailability as au, type ProductTimeProfile as av, type ProductTaxonomy as aw, type TaxonomyWithChildren as ax, type ProductAvailabilityNow as ay, type DealBenefitType as az, type Pagination as b, type LineConfiguration as b0, type Cart as b1, type CartItem as b2, type CartTotals as b3, type DisplayCart as b4, type DisplayCartItem as b5, type DisplayAddOn as b6, type DisplayAddOnOption as b7, type UICartBusiness as b8, type UICartLocation as b9, type UICartCustomer as ba, type UICartPricing as bb, type AddOnOptionDetails as bc, type AddOnGroupDetails as bd, type VariantDetailsDTO as be, type CartItemDetails as bf, type UICart as bg, type UICartResponse as bh, type AddToCartInput as bi, type UpdateCartItemInput as bj, type CartSummary as bk, type PaymentStatus as bl, type PaymentProvider as bm, type PaymentMethodType as bn, type AddressAuthorizationData as bo, type AuthorizationType as bp, type PaymentProcessingState as bq, type PaymentMethod as br, type Payment as bs, type InitializePaymentResult as bt, type PaymentResponse as bu, type PaymentStatusResponse as bv, type PaymentErrorDetails as bw, type SubmitAuthorizationInput as bx, 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-.js';
1
+ import { aN as ChosenPrice, C as CurrencyCode } from './payment-CO2tRThu.js';
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-.mjs';
1
+ import { aN as ChosenPrice, C as CurrencyCode } from './payment-CO2tRThu.mjs';
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-B3payjUV.mjs';
5
+ import { y as Product, b as Pagination, g as CimplifyError, z as ProductWithDetails, _ as Category, M as Money, aW as BundleSelectionInput, ao as ComponentSelectionInput, a0 as Collection, aw as ProductTaxonomy, ax as TaxonomyWithChildren, av as ProductTimeProfile, aA as Deal, aB as ProductDealInfo, aC as DiscountValidation, a5 as BundleSummary, ap as CompositePriceResult, C as CurrencyCode, B as ProductVariant, J as VariantAxisWithValues, U as AddOnWithOptions, aa as BundleComponentView, a3 as BundlePriceType, al as CompositeGroupView } from './payment-CO2tRThu.mjs';
6
+ import { P as ProductWithPrice } from './price-Dg7MJEsL.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-FNZzXO_v.js';
5
+ import { y as Product, b as Pagination, g as CimplifyError, z as ProductWithDetails, _ as Category, M as Money, aW as BundleSelectionInput, ao as ComponentSelectionInput, a0 as Collection, aw as ProductTaxonomy, ax as TaxonomyWithChildren, av as ProductTimeProfile, aA as Deal, aB as ProductDealInfo, aC as DiscountValidation, a5 as BundleSummary, ap as CompositePriceResult, C as CurrencyCode, B as ProductVariant, J as VariantAxisWithValues, U as AddOnWithOptions, aa as BundleComponentView, a3 as BundlePriceType, al as CompositeGroupView } from './payment-CO2tRThu.js';
6
+ import { P as ProductWithPrice } from './price-Bp6JlVzW.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;