@cimplify/sdk 0.44.8 → 0.44.11

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/mock/msw.js CHANGED
@@ -3515,6 +3515,26 @@ function defaultPriceInfo(price, currency) {
3515
3515
  }
3516
3516
 
3517
3517
  // src/mock/domain/catalogue/product-shape.ts
3518
+ function withDisplayAttributes(v, registry) {
3519
+ const axes = registry.variantAxes.list((a) => a.product_id === v.product_id);
3520
+ const display_attributes = v.axis_value_ids.flatMap((valueId) => {
3521
+ for (const axis of axes) {
3522
+ const value = axis.values.find((vv) => vv.id === valueId);
3523
+ if (value) {
3524
+ return [
3525
+ {
3526
+ axis_id: axis.id,
3527
+ axis_name: axis.name,
3528
+ value_id: value.id,
3529
+ value_name: value.name
3530
+ }
3531
+ ];
3532
+ }
3533
+ }
3534
+ return [];
3535
+ });
3536
+ return { ...v, display_attributes };
3537
+ }
3518
3538
  function toCanonicalProductSummary(p) {
3519
3539
  return {
3520
3540
  id: p.id,
@@ -3608,7 +3628,7 @@ function toApiProduct(p, ctx) {
3608
3628
  // ─── Embedded relations (ProductWithDetails) ───
3609
3629
  category: registry.categories.get(p.category_ids[0]),
3610
3630
  add_ons: p.add_on_ids.map((aid) => registry.addOns.get(aid)).filter(Boolean),
3611
- variants: registry.variants.list((v) => v.product_id === p.id),
3631
+ variants: registry.variants.list((v) => v.product_id === p.id).map((v) => withDisplayAttributes(v, registry)),
3612
3632
  variant_axes: registry.variantAxes.list((a) => a.product_id === p.id),
3613
3633
  // ─── Composite-specific (CompositeProductLayout reads product.groups) ───
3614
3634
  groups,
@@ -3725,7 +3745,20 @@ function buildBundleComponent(bundleId, productId, p) {
3725
3745
  function createCatalogueService(opts) {
3726
3746
  const { registry, clock, ids } = opts;
3727
3747
  const productsForBusiness = (businessId) => registry.products.list((p) => p.business_id === businessId);
3728
- const variantsForProduct = (productId) => registry.variants.list((v) => v.product_id === productId);
3748
+ const variantsForProduct = (productId) => registry.variants.list((v) => v.product_id === productId).map(enrichVariant);
3749
+ const enrichVariant = (v) => {
3750
+ const axes = registry.variantAxes.list((a) => a.product_id === v.product_id);
3751
+ const display_attributes = v.axis_value_ids.flatMap((valueId) => {
3752
+ for (const axis of axes) {
3753
+ const value = axis.values.find((vv) => vv.id === valueId);
3754
+ if (value) {
3755
+ return [{ axis_id: axis.id, axis_name: axis.name, value_id: value.id, value_name: value.name }];
3756
+ }
3757
+ }
3758
+ return [];
3759
+ });
3760
+ return { ...v, display_attributes };
3761
+ };
3729
3762
  const axesForProduct = (productId) => registry.variantAxes.list((a) => a.product_id === productId);
3730
3763
  const addOnLinksForProduct = (productId) => registry.productAddOns.list((l) => l.product_id === productId);
3731
3764
  const apiProduct = (p) => {
@@ -3801,7 +3834,7 @@ function createCatalogueService(opts) {
3801
3834
  if (!v || v.product_id !== productId) {
3802
3835
  throw notFound(`Variant ${variantId} not found on product ${productId}`);
3803
3836
  }
3804
- return v;
3837
+ return enrichVariant(v);
3805
3838
  },
3806
3839
  findProductVariant(productId, properties) {
3807
3840
  const variants = variantsForProduct(productId);
@@ -4212,18 +4245,49 @@ function toUICart(registry, cart) {
4212
4245
  const variant = i.variant_id ? registry.variants.get(i.variant_id) : void 0;
4213
4246
  const cfg = i.configuration;
4214
4247
  const variantName = variant ? variantDisplayName(registry, variant) : "";
4248
+ const variantDisplayAttributes = variant ? variant.axis_value_ids.flatMap((valueId) => {
4249
+ for (const axis of registry.variantAxes.list((a) => a.product_id === variant.product_id)) {
4250
+ const v = axis.values.find((vv) => vv.id === valueId);
4251
+ if (v) return [{ axis_id: axis.id, axis_name: axis.name, value_id: v.id, value_name: v.name }];
4252
+ }
4253
+ return [];
4254
+ }) : void 0;
4215
4255
  const baseName = product?.name ?? "Unknown product";
4256
+ const isBundle = cfg.type === "bundle";
4257
+ const isComposite = cfg.type === "composite";
4216
4258
  return {
4217
4259
  id: i.id,
4218
4260
  cart_id: i.cart_id,
4219
4261
  item_id: i.item_id,
4220
4262
  variant_id: i.variant_id,
4221
4263
  variant_name: variantName || void 0,
4222
- variant_info: variant ? { id: variant.id, name: variantName, sku: variant.sku, price_adjustment: variant.price_adjustment } : void 0,
4264
+ variant_info: variant ? {
4265
+ id: variant.id,
4266
+ name: variantName,
4267
+ sku: variant.sku,
4268
+ price_adjustment: variant.price_adjustment,
4269
+ display_attributes: variantDisplayAttributes,
4270
+ images: variant.images
4271
+ } : void 0,
4272
+ variant_details: variant ? {
4273
+ variant_id: variant.id,
4274
+ sku: variant.sku,
4275
+ properties: variant.axis_value_ids.reduce((acc, valueId) => {
4276
+ for (const axis of registry.variantAxes.list((a) => a.product_id === variant.product_id)) {
4277
+ const v = axis.values.find((vv) => vv.id === valueId);
4278
+ if (v) acc[axis.name] = v.name;
4279
+ }
4280
+ return acc;
4281
+ }, {})
4282
+ } : void 0,
4223
4283
  quantity: i.quantity,
4224
4284
  line_key: i.line_key,
4225
4285
  line_type: cfg.type,
4226
4286
  name: baseName,
4287
+ description: product?.description,
4288
+ image_url: product?.image,
4289
+ category_id: product?.category_ids?.[0],
4290
+ category_name: product?.category_ids?.[0] ? registry.categories.get(product.category_ids[0])?.name : void 0,
4227
4291
  is_available: product?.is_available ?? true,
4228
4292
  base_price: i.price,
4229
4293
  add_ons_price: i.add_ons_price,
@@ -4235,7 +4299,26 @@ function toUICart(registry, cart) {
4235
4299
  add_on_details: cfg.add_ons ?? { selected_options: [], total_add_on_price: ZERO, add_ons: [] },
4236
4300
  add_on_options: cfg.add_ons?.selected_options ?? [],
4237
4301
  add_ons: cfg.add_ons?.add_ons ?? [],
4302
+ // Service / scheduling
4303
+ scheduled_start: i.scheduled_start,
4304
+ scheduled_end: i.scheduled_end,
4305
+ staff_id: i.staff_id,
4306
+ resource_id: i.resource_id,
4307
+ service_status: i.service_status,
4308
+ confirmation_code: i.confirmation_code,
4309
+ // Customization
4310
+ special_instructions: i.special_instructions,
4311
+ customer_inputs: i.customer_inputs,
4312
+ // Bundle / composite resolved breakdowns
4313
+ bundle_selections: isBundle ? cfg.input : void 0,
4314
+ bundle_resolved: isBundle ? cfg.resolved : void 0,
4315
+ composite_selections: isComposite ? cfg.input : void 0,
4316
+ composite_resolved: isComposite ? cfg.resolved : void 0,
4317
+ // Billing / discounts / metadata
4318
+ billing_plan_id: i.billing_plan_id,
4238
4319
  applied_discount_ids: i.applied_discount_ids,
4320
+ discount_details: void 0,
4321
+ metadata: i.metadata,
4239
4322
  created_at: i.created_at,
4240
4323
  updated_at: i.updated_at
4241
4324
  };
@@ -4246,7 +4329,9 @@ function toUICart(registry, cart) {
4246
4329
  tax_amount: cart.tax_amount,
4247
4330
  service_charge: cart.service_charge,
4248
4331
  total_price: cart.total_price,
4249
- currency: cart.currency
4332
+ currency: cart.currency,
4333
+ tax_rate: cart.tax_rate,
4334
+ service_charge_rate: cart.service_charge_rate
4250
4335
  },
4251
4336
  customer_info: {
4252
4337
  name: cart.customer_name,
@@ -4432,6 +4517,7 @@ function createCartService(opts) {
4432
4517
  existing.quantity += body.quantity;
4433
4518
  existing.updated_at = clock.iso();
4434
4519
  } else {
4520
+ const isService = product.product_type === "service";
4435
4521
  const item = {
4436
4522
  id: ids.cartItem(),
4437
4523
  cart_id: cart.id,
@@ -4444,6 +4530,15 @@ function createCartService(opts) {
4444
4530
  configuration,
4445
4531
  applied_discount_ids: [],
4446
4532
  item_discount_amount: ZERO2,
4533
+ scheduled_start: body.scheduled_start,
4534
+ scheduled_end: body.scheduled_end,
4535
+ staff_id: body.staff_id,
4536
+ resource_id: body.resource_id,
4537
+ service_status: isService && body.scheduled_start ? "pending" : void 0,
4538
+ special_instructions: body.special_instructions,
4539
+ customer_inputs: body.customer_inputs,
4540
+ billing_plan_id: body.billing_plan_id,
4541
+ metadata: body.metadata,
4447
4542
  created_at: clock.iso(),
4448
4543
  updated_at: clock.iso()
4449
4544
  };
package/dist/mock/msw.mjs CHANGED
@@ -3513,6 +3513,26 @@ function defaultPriceInfo(price, currency) {
3513
3513
  }
3514
3514
 
3515
3515
  // src/mock/domain/catalogue/product-shape.ts
3516
+ function withDisplayAttributes(v, registry) {
3517
+ const axes = registry.variantAxes.list((a) => a.product_id === v.product_id);
3518
+ const display_attributes = v.axis_value_ids.flatMap((valueId) => {
3519
+ for (const axis of axes) {
3520
+ const value = axis.values.find((vv) => vv.id === valueId);
3521
+ if (value) {
3522
+ return [
3523
+ {
3524
+ axis_id: axis.id,
3525
+ axis_name: axis.name,
3526
+ value_id: value.id,
3527
+ value_name: value.name
3528
+ }
3529
+ ];
3530
+ }
3531
+ }
3532
+ return [];
3533
+ });
3534
+ return { ...v, display_attributes };
3535
+ }
3516
3536
  function toCanonicalProductSummary(p) {
3517
3537
  return {
3518
3538
  id: p.id,
@@ -3606,7 +3626,7 @@ function toApiProduct(p, ctx) {
3606
3626
  // ─── Embedded relations (ProductWithDetails) ───
3607
3627
  category: registry.categories.get(p.category_ids[0]),
3608
3628
  add_ons: p.add_on_ids.map((aid) => registry.addOns.get(aid)).filter(Boolean),
3609
- variants: registry.variants.list((v) => v.product_id === p.id),
3629
+ variants: registry.variants.list((v) => v.product_id === p.id).map((v) => withDisplayAttributes(v, registry)),
3610
3630
  variant_axes: registry.variantAxes.list((a) => a.product_id === p.id),
3611
3631
  // ─── Composite-specific (CompositeProductLayout reads product.groups) ───
3612
3632
  groups,
@@ -3723,7 +3743,20 @@ function buildBundleComponent(bundleId, productId, p) {
3723
3743
  function createCatalogueService(opts) {
3724
3744
  const { registry, clock, ids } = opts;
3725
3745
  const productsForBusiness = (businessId) => registry.products.list((p) => p.business_id === businessId);
3726
- const variantsForProduct = (productId) => registry.variants.list((v) => v.product_id === productId);
3746
+ const variantsForProduct = (productId) => registry.variants.list((v) => v.product_id === productId).map(enrichVariant);
3747
+ const enrichVariant = (v) => {
3748
+ const axes = registry.variantAxes.list((a) => a.product_id === v.product_id);
3749
+ const display_attributes = v.axis_value_ids.flatMap((valueId) => {
3750
+ for (const axis of axes) {
3751
+ const value = axis.values.find((vv) => vv.id === valueId);
3752
+ if (value) {
3753
+ return [{ axis_id: axis.id, axis_name: axis.name, value_id: value.id, value_name: value.name }];
3754
+ }
3755
+ }
3756
+ return [];
3757
+ });
3758
+ return { ...v, display_attributes };
3759
+ };
3727
3760
  const axesForProduct = (productId) => registry.variantAxes.list((a) => a.product_id === productId);
3728
3761
  const addOnLinksForProduct = (productId) => registry.productAddOns.list((l) => l.product_id === productId);
3729
3762
  const apiProduct = (p) => {
@@ -3799,7 +3832,7 @@ function createCatalogueService(opts) {
3799
3832
  if (!v || v.product_id !== productId) {
3800
3833
  throw notFound(`Variant ${variantId} not found on product ${productId}`);
3801
3834
  }
3802
- return v;
3835
+ return enrichVariant(v);
3803
3836
  },
3804
3837
  findProductVariant(productId, properties) {
3805
3838
  const variants = variantsForProduct(productId);
@@ -4210,18 +4243,49 @@ function toUICart(registry, cart) {
4210
4243
  const variant = i.variant_id ? registry.variants.get(i.variant_id) : void 0;
4211
4244
  const cfg = i.configuration;
4212
4245
  const variantName = variant ? variantDisplayName(registry, variant) : "";
4246
+ const variantDisplayAttributes = variant ? variant.axis_value_ids.flatMap((valueId) => {
4247
+ for (const axis of registry.variantAxes.list((a) => a.product_id === variant.product_id)) {
4248
+ const v = axis.values.find((vv) => vv.id === valueId);
4249
+ if (v) return [{ axis_id: axis.id, axis_name: axis.name, value_id: v.id, value_name: v.name }];
4250
+ }
4251
+ return [];
4252
+ }) : void 0;
4213
4253
  const baseName = product?.name ?? "Unknown product";
4254
+ const isBundle = cfg.type === "bundle";
4255
+ const isComposite = cfg.type === "composite";
4214
4256
  return {
4215
4257
  id: i.id,
4216
4258
  cart_id: i.cart_id,
4217
4259
  item_id: i.item_id,
4218
4260
  variant_id: i.variant_id,
4219
4261
  variant_name: variantName || void 0,
4220
- variant_info: variant ? { id: variant.id, name: variantName, sku: variant.sku, price_adjustment: variant.price_adjustment } : void 0,
4262
+ variant_info: variant ? {
4263
+ id: variant.id,
4264
+ name: variantName,
4265
+ sku: variant.sku,
4266
+ price_adjustment: variant.price_adjustment,
4267
+ display_attributes: variantDisplayAttributes,
4268
+ images: variant.images
4269
+ } : void 0,
4270
+ variant_details: variant ? {
4271
+ variant_id: variant.id,
4272
+ sku: variant.sku,
4273
+ properties: variant.axis_value_ids.reduce((acc, valueId) => {
4274
+ for (const axis of registry.variantAxes.list((a) => a.product_id === variant.product_id)) {
4275
+ const v = axis.values.find((vv) => vv.id === valueId);
4276
+ if (v) acc[axis.name] = v.name;
4277
+ }
4278
+ return acc;
4279
+ }, {})
4280
+ } : void 0,
4221
4281
  quantity: i.quantity,
4222
4282
  line_key: i.line_key,
4223
4283
  line_type: cfg.type,
4224
4284
  name: baseName,
4285
+ description: product?.description,
4286
+ image_url: product?.image,
4287
+ category_id: product?.category_ids?.[0],
4288
+ category_name: product?.category_ids?.[0] ? registry.categories.get(product.category_ids[0])?.name : void 0,
4225
4289
  is_available: product?.is_available ?? true,
4226
4290
  base_price: i.price,
4227
4291
  add_ons_price: i.add_ons_price,
@@ -4233,7 +4297,26 @@ function toUICart(registry, cart) {
4233
4297
  add_on_details: cfg.add_ons ?? { selected_options: [], total_add_on_price: ZERO, add_ons: [] },
4234
4298
  add_on_options: cfg.add_ons?.selected_options ?? [],
4235
4299
  add_ons: cfg.add_ons?.add_ons ?? [],
4300
+ // Service / scheduling
4301
+ scheduled_start: i.scheduled_start,
4302
+ scheduled_end: i.scheduled_end,
4303
+ staff_id: i.staff_id,
4304
+ resource_id: i.resource_id,
4305
+ service_status: i.service_status,
4306
+ confirmation_code: i.confirmation_code,
4307
+ // Customization
4308
+ special_instructions: i.special_instructions,
4309
+ customer_inputs: i.customer_inputs,
4310
+ // Bundle / composite resolved breakdowns
4311
+ bundle_selections: isBundle ? cfg.input : void 0,
4312
+ bundle_resolved: isBundle ? cfg.resolved : void 0,
4313
+ composite_selections: isComposite ? cfg.input : void 0,
4314
+ composite_resolved: isComposite ? cfg.resolved : void 0,
4315
+ // Billing / discounts / metadata
4316
+ billing_plan_id: i.billing_plan_id,
4236
4317
  applied_discount_ids: i.applied_discount_ids,
4318
+ discount_details: void 0,
4319
+ metadata: i.metadata,
4237
4320
  created_at: i.created_at,
4238
4321
  updated_at: i.updated_at
4239
4322
  };
@@ -4244,7 +4327,9 @@ function toUICart(registry, cart) {
4244
4327
  tax_amount: cart.tax_amount,
4245
4328
  service_charge: cart.service_charge,
4246
4329
  total_price: cart.total_price,
4247
- currency: cart.currency
4330
+ currency: cart.currency,
4331
+ tax_rate: cart.tax_rate,
4332
+ service_charge_rate: cart.service_charge_rate
4248
4333
  },
4249
4334
  customer_info: {
4250
4335
  name: cart.customer_name,
@@ -4430,6 +4515,7 @@ function createCartService(opts) {
4430
4515
  existing.quantity += body.quantity;
4431
4516
  existing.updated_at = clock.iso();
4432
4517
  } else {
4518
+ const isService = product.product_type === "service";
4433
4519
  const item = {
4434
4520
  id: ids.cartItem(),
4435
4521
  cart_id: cart.id,
@@ -4442,6 +4528,15 @@ function createCartService(opts) {
4442
4528
  configuration,
4443
4529
  applied_discount_ids: [],
4444
4530
  item_discount_amount: ZERO2,
4531
+ scheduled_start: body.scheduled_start,
4532
+ scheduled_end: body.scheduled_end,
4533
+ staff_id: body.staff_id,
4534
+ resource_id: body.resource_id,
4535
+ service_status: isService && body.scheduled_start ? "pending" : void 0,
4536
+ special_instructions: body.special_instructions,
4537
+ customer_inputs: body.customer_inputs,
4538
+ billing_plan_id: body.billing_plan_id,
4539
+ metadata: body.metadata,
4445
4540
  created_at: clock.iso(),
4446
4541
  updated_at: clock.iso()
4447
4542
  };
package/dist/react.d.mts CHANGED
@@ -1025,6 +1025,10 @@ interface CartSummaryProps {
1025
1025
  onItemRemove?: (itemId: string) => void;
1026
1026
  onQuantityChange?: (itemId: string, quantity: number) => void;
1027
1027
  emptyMessage?: string;
1028
+ /** Render the totals block (subtotal/tax/total) below the items. Default true. Hosts that show their own totals (drawer, page sidebar) should pass false. */
1029
+ showTotals?: boolean;
1030
+ /** Render the "Proceed to Checkout" button. Defaults to true if `onCheckout` is provided. */
1031
+ showCheckoutButton?: boolean;
1028
1032
  className?: string;
1029
1033
  classNames?: CartSummaryClassNames;
1030
1034
  }
@@ -1034,7 +1038,7 @@ interface CartSummaryProps {
1034
1038
  * NOT a drawer or modal — just the cart content. Templates wrap this in
1035
1039
  * their own drawer/modal shell with animations.
1036
1040
  */
1037
- declare function CartSummary({ cart: serverCart, onCheckout, onItemRemove, onQuantityChange, emptyMessage, className, classNames, }: CartSummaryProps): React$1.ReactElement;
1041
+ declare function CartSummary({ cart: serverCart, onCheckout, onItemRemove, onQuantityChange, emptyMessage, showTotals, showCheckoutButton, className, classNames, }: CartSummaryProps): React$1.ReactElement;
1038
1042
 
1039
1043
  interface AvailabilityBadgeClassNames {
1040
1044
  root?: string;
@@ -2036,14 +2040,18 @@ declare function CartDrawerProvider({ children, openOnAdd }: ProviderProps): Rea
2036
2040
  interface CartDrawerProps {
2037
2041
  /** Called when "Checkout" is clicked. Drawer auto-closes first. */
2038
2042
  onCheckout?: () => void;
2039
- /** Called when "Continue Shopping" is clicked. Defaults to closing the drawer. */
2043
+ /** Called when "Continue Shopping" is clicked. Defaults to closing. */
2040
2044
  onContinueShopping?: () => void;
2041
- /** Heading shown at the top of the drawer. */
2045
+ /** Called when the empty state's CTA is clicked. */
2046
+ onShop?: () => void;
2047
+ /** Heading. */
2042
2048
  title?: string;
2043
- /** Custom class on the root panel. */
2049
+ /** Free-shipping threshold (in business currency, numeric). 0 disables the progress bar. */
2050
+ freeShippingThreshold?: number;
2051
+ /** Custom class on the panel. */
2044
2052
  className?: string;
2045
2053
  }
2046
- declare function CartDrawer({ onCheckout, onContinueShopping, title, className, }: CartDrawerProps): React$1.ReactElement | null;
2054
+ declare function CartDrawer({ onCheckout, onContinueShopping, onShop, title, freeShippingThreshold, className, }: CartDrawerProps): React$1.ReactElement;
2047
2055
 
2048
2056
  interface CheckoutPageClassNames {
2049
2057
  root?: string;
package/dist/react.d.ts CHANGED
@@ -1025,6 +1025,10 @@ interface CartSummaryProps {
1025
1025
  onItemRemove?: (itemId: string) => void;
1026
1026
  onQuantityChange?: (itemId: string, quantity: number) => void;
1027
1027
  emptyMessage?: string;
1028
+ /** Render the totals block (subtotal/tax/total) below the items. Default true. Hosts that show their own totals (drawer, page sidebar) should pass false. */
1029
+ showTotals?: boolean;
1030
+ /** Render the "Proceed to Checkout" button. Defaults to true if `onCheckout` is provided. */
1031
+ showCheckoutButton?: boolean;
1028
1032
  className?: string;
1029
1033
  classNames?: CartSummaryClassNames;
1030
1034
  }
@@ -1034,7 +1038,7 @@ interface CartSummaryProps {
1034
1038
  * NOT a drawer or modal — just the cart content. Templates wrap this in
1035
1039
  * their own drawer/modal shell with animations.
1036
1040
  */
1037
- declare function CartSummary({ cart: serverCart, onCheckout, onItemRemove, onQuantityChange, emptyMessage, className, classNames, }: CartSummaryProps): React$1.ReactElement;
1041
+ declare function CartSummary({ cart: serverCart, onCheckout, onItemRemove, onQuantityChange, emptyMessage, showTotals, showCheckoutButton, className, classNames, }: CartSummaryProps): React$1.ReactElement;
1038
1042
 
1039
1043
  interface AvailabilityBadgeClassNames {
1040
1044
  root?: string;
@@ -2036,14 +2040,18 @@ declare function CartDrawerProvider({ children, openOnAdd }: ProviderProps): Rea
2036
2040
  interface CartDrawerProps {
2037
2041
  /** Called when "Checkout" is clicked. Drawer auto-closes first. */
2038
2042
  onCheckout?: () => void;
2039
- /** Called when "Continue Shopping" is clicked. Defaults to closing the drawer. */
2043
+ /** Called when "Continue Shopping" is clicked. Defaults to closing. */
2040
2044
  onContinueShopping?: () => void;
2041
- /** Heading shown at the top of the drawer. */
2045
+ /** Called when the empty state's CTA is clicked. */
2046
+ onShop?: () => void;
2047
+ /** Heading. */
2042
2048
  title?: string;
2043
- /** Custom class on the root panel. */
2049
+ /** Free-shipping threshold (in business currency, numeric). 0 disables the progress bar. */
2050
+ freeShippingThreshold?: number;
2051
+ /** Custom class on the panel. */
2044
2052
  className?: string;
2045
2053
  }
2046
- declare function CartDrawer({ onCheckout, onContinueShopping, title, className, }: CartDrawerProps): React$1.ReactElement | null;
2054
+ declare function CartDrawer({ onCheckout, onContinueShopping, onShop, title, freeShippingThreshold, className, }: CartDrawerProps): React$1.ReactElement;
2047
2055
 
2048
2056
  interface CheckoutPageClassNames {
2049
2057
  root?: string;