@ecomiq/storefront 1.1.4 → 1.1.5

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.
Files changed (36) hide show
  1. package/dist/{chunk-6TMU4OXP.js → chunk-3QGB55R6.js} +3 -3
  2. package/dist/{chunk-6TMU4OXP.js.map → chunk-3QGB55R6.js.map} +1 -1
  3. package/dist/{chunk-EADDSNJS.js → chunk-64GLOWMJ.js} +14 -4
  4. package/dist/chunk-64GLOWMJ.js.map +1 -0
  5. package/dist/chunk-Q4U5OEUT.js +21 -0
  6. package/dist/chunk-Q4U5OEUT.js.map +1 -0
  7. package/dist/{chunk-3URTJY6X.js → chunk-QRR7EPCH.js} +14 -12
  8. package/dist/chunk-QRR7EPCH.js.map +1 -0
  9. package/dist/{chunk-YSD62KQM.js → chunk-ZG2XUYGZ.js} +23 -21
  10. package/dist/chunk-ZG2XUYGZ.js.map +1 -0
  11. package/dist/chunks/client.css +1 -1
  12. package/dist/chunks/client.css.map +1 -1
  13. package/dist/chunks/client.d.ts +535 -25
  14. package/dist/chunks/client.js +517 -193
  15. package/dist/chunks/client.js.map +1 -1
  16. package/dist/chunks/config.js +3 -2
  17. package/dist/chunks/core-public.d.ts +2 -2
  18. package/dist/chunks/core-public.js +4 -10
  19. package/dist/chunks/core-public.js.map +1 -1
  20. package/dist/chunks/server-nextjs.d.ts +3 -3
  21. package/dist/chunks/server-nextjs.js +27 -13
  22. package/dist/chunks/server-nextjs.js.map +1 -1
  23. package/dist/chunks/server-tanstack.d.ts +3 -3
  24. package/dist/chunks/server-tanstack.js +6 -5
  25. package/dist/chunks/server-tanstack.js.map +1 -1
  26. package/dist/{collection-BHD4hhQa.d.ts → collection-C6bWDLiw.d.ts} +318 -1
  27. package/dist/{ecomiq-oauth-password-plugin-gw2dPyYb.d.ts → ecomiq-oauth-password-plugin-J5wDFqzL.d.ts} +2 -2
  28. package/dist/nextjs/api.js +2 -1
  29. package/dist/nextjs/api.js.map +1 -1
  30. package/dist/react/client.css +1 -1
  31. package/dist/tanstack/api.js +3 -2
  32. package/dist/tanstack/api.js.map +1 -1
  33. package/package.json +2 -2
  34. package/dist/chunk-3URTJY6X.js.map +0 -1
  35. package/dist/chunk-EADDSNJS.js.map +0 -1
  36. package/dist/chunk-YSD62KQM.js.map +0 -1
@@ -334,6 +334,22 @@ declare const StorefrontVariantSchema: z.ZodObject<{
334
334
  }[] | undefined;
335
335
  compareAtPrice?: number | null | undefined;
336
336
  }>;
337
+ declare const StorefrontPriceTierSchema: z.ZodObject<{
338
+ variantId: z.ZodString;
339
+ minQuantity: z.ZodNumber;
340
+ maxQuantity: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
341
+ unitPrice: z.ZodNumber;
342
+ }, "strip", z.ZodTypeAny, {
343
+ variantId: string;
344
+ minQuantity: number;
345
+ unitPrice: number;
346
+ maxQuantity?: number | null | undefined;
347
+ }, {
348
+ variantId: string;
349
+ minQuantity: number;
350
+ unitPrice: number;
351
+ maxQuantity?: number | null | undefined;
352
+ }>;
337
353
  declare const StorefrontProductDetailSchema: z.ZodObject<{
338
354
  id: z.ZodString;
339
355
  name: z.ZodString;
@@ -614,6 +630,7 @@ type StorefrontProductsResponse = z.infer<typeof StorefrontProductsResponseSchem
614
630
  /** Params de entrada (sort/page/pageSize opcionales con defaults en el schema) */
615
631
  type StorefrontProductsParamsInput = z.input<typeof StorefrontProductsParamsSchema>;
616
632
  type StorefrontVariant = z.infer<typeof StorefrontVariantSchema>;
633
+ type StorefrontPriceTier = z.infer<typeof StorefrontPriceTierSchema>;
617
634
  type StorefrontProductDetail = z.infer<typeof StorefrontProductDetailSchema>;
618
635
 
619
636
  /**
@@ -4626,7 +4643,7 @@ declare function useStorefrontSession(): {
4626
4643
  * No requiere storeId: el proxy lo resuelve por cookie.
4627
4644
  */
4628
4645
  declare function useStoreProducts(): {
4629
- useStorefrontProductsList: (params?: StorefrontProductsParamsInput) => _tanstack_react_query.UseQueryResult<{
4646
+ useStorefrontProductsList: (params?: StorefrontProductsParamsInput) => _tanstack_react_query.UseQueryResult<NoInfer<{
4630
4647
  categories: {
4631
4648
  value: string;
4632
4649
  count: number;
@@ -4658,7 +4675,7 @@ declare function useStoreProducts(): {
4658
4675
  }[];
4659
4676
  minPrice?: number | null | undefined;
4660
4677
  maxPrice?: number | null | undefined;
4661
- }, Error>;
4678
+ }>, Error>;
4662
4679
  useStorefrontInfiniteProducts: (params?: Omit<StorefrontProductsParamsInput, "page">) => _tanstack_react_query.UseInfiniteQueryResult<_tanstack_react_query.InfiniteData<{
4663
4680
  categories: {
4664
4681
  value: string;
@@ -4692,7 +4709,7 @@ declare function useStoreProducts(): {
4692
4709
  minPrice?: number | null | undefined;
4693
4710
  maxPrice?: number | null | undefined;
4694
4711
  }, unknown>, Error>;
4695
- useProductBySlug: (slug: string) => _tanstack_react_query.UseQueryResult<{
4712
+ useProductBySlug: (slug: string) => _tanstack_react_query.UseQueryResult<NoInfer<{
4696
4713
  id: string;
4697
4714
  name: string;
4698
4715
  images: {
@@ -4753,7 +4770,7 @@ declare function useStoreProducts(): {
4753
4770
  brand?: string | null | undefined;
4754
4771
  categoryId?: string | null | undefined;
4755
4772
  updatedAt?: string | null | undefined;
4756
- }, Error>;
4773
+ }>, Error>;
4757
4774
  useRefreshStorefrontProducts: () => _tanstack_react_query.UseMutationResult<{
4758
4775
  categories: {
4759
4776
  value: string;
@@ -4806,7 +4823,7 @@ declare function useStoreProducts(): {
4806
4823
  * Hooks de colecciones que usan el proxy /api/store.
4807
4824
  */
4808
4825
  declare function useStoreCollections(): {
4809
- useStorefrontCollectionsList: () => _tanstack_react_query.UseQueryResult<{
4826
+ useStorefrontCollectionsList: () => _tanstack_react_query.UseQueryResult<NoInfer<{
4810
4827
  id: string;
4811
4828
  name: string;
4812
4829
  type: string;
@@ -4814,8 +4831,8 @@ declare function useStoreCollections(): {
4814
4831
  productCount: number;
4815
4832
  description?: string | null | undefined;
4816
4833
  imageUrl?: string | null | undefined;
4817
- }[], Error>;
4818
- useCollectionBySlug: (slug: string) => _tanstack_react_query.UseQueryResult<{
4834
+ }[]>, Error>;
4835
+ useCollectionBySlug: (slug: string) => _tanstack_react_query.UseQueryResult<NoInfer<{
4819
4836
  id: string;
4820
4837
  name: string;
4821
4838
  type: string;
@@ -4823,7 +4840,7 @@ declare function useStoreCollections(): {
4823
4840
  productCount: number;
4824
4841
  description?: string | null | undefined;
4825
4842
  imageUrl?: string | null | undefined;
4826
- }, Error>;
4843
+ }>, Error>;
4827
4844
  useRefreshStorefrontCollections: () => _tanstack_react_query.UseMutationResult<{
4828
4845
  id: string;
4829
4846
  name: string;
@@ -4839,13 +4856,13 @@ declare function useStoreCollections(): {
4839
4856
  * Hooks de páginas que usan el proxy /api/store.
4840
4857
  */
4841
4858
  declare function useStorePages(): {
4842
- useStorefrontPagesList: () => _tanstack_react_query.UseQueryResult<{
4859
+ useStorefrontPagesList: () => _tanstack_react_query.UseQueryResult<NoInfer<{
4843
4860
  id: string;
4844
4861
  name: string;
4845
4862
  slug: string;
4846
4863
  layout: string;
4847
- }[], Error>;
4848
- usePageBySlug: (slug: string) => _tanstack_react_query.UseQueryResult<{
4864
+ }[]>, Error>;
4865
+ usePageBySlug: (slug: string) => _tanstack_react_query.UseQueryResult<NoInfer<{
4849
4866
  id: string;
4850
4867
  name: string;
4851
4868
  slug: string;
@@ -4876,7 +4893,7 @@ declare function useStorePages(): {
4876
4893
  }[];
4877
4894
  settings?: Record<string, unknown> | undefined;
4878
4895
  }[] | undefined;
4879
- }, Error>;
4896
+ }>, Error>;
4880
4897
  useRefreshStorefrontPages: () => _tanstack_react_query.UseMutationResult<{
4881
4898
  id: string;
4882
4899
  name: string;
@@ -4938,7 +4955,7 @@ declare function useStoreCart(): {
4938
4955
  currencyCode: string;
4939
4956
  salesChannelId: string;
4940
4957
  }, unknown>;
4941
- useGetCart: (cartId?: string | null) => _tanstack_react_query.UseQueryResult<{
4958
+ useGetCart: (cartId?: string | null) => _tanstack_react_query.UseQueryResult<NoInfer<{
4942
4959
  id: string;
4943
4960
  items: {
4944
4961
  title: string;
@@ -4982,8 +4999,8 @@ declare function useStoreCart(): {
4982
4999
  billingAddress?: unknown;
4983
5000
  regionId?: string | null | undefined;
4984
5001
  completedAt?: string | null | undefined;
4985
- }, Error>;
4986
- useGetCartCheckout: (cartId?: string | null) => _tanstack_react_query.UseQueryResult<{
5002
+ }>, Error>;
5003
+ useGetCartCheckout: (cartId?: string | null) => _tanstack_react_query.UseQueryResult<NoInfer<{
4987
5004
  cart: {
4988
5005
  id: string;
4989
5006
  items: {
@@ -5044,7 +5061,7 @@ declare function useStoreCart(): {
5044
5061
  qrImageUrl?: string | null | undefined;
5045
5062
  }[];
5046
5063
  };
5047
- }, Error>;
5064
+ }>, Error>;
5048
5065
  useUpdateCartBuyer: () => _tanstack_react_query.UseMutationResult<{
5049
5066
  id: string;
5050
5067
  items: {
@@ -5562,7 +5579,7 @@ declare function useStoreCart(): {
5562
5579
  cartId: string;
5563
5580
  file: File;
5564
5581
  }, unknown>;
5565
- useGetCartPaymentMethods: (cartId?: string | null) => _tanstack_react_query.UseQueryResult<{
5582
+ useGetCartPaymentMethods: (cartId?: string | null) => _tanstack_react_query.UseQueryResult<NoInfer<{
5566
5583
  methods: {
5567
5584
  name: string;
5568
5585
  isDefault: boolean;
@@ -5576,8 +5593,8 @@ declare function useStoreCart(): {
5576
5593
  accountHolder?: string | null | undefined;
5577
5594
  qrImageUrl?: string | null | undefined;
5578
5595
  }[];
5579
- }, Error>;
5580
- useGetShippingOptions: (cartId: string | null | undefined, postalCode: string | undefined, enabled: boolean) => _tanstack_react_query.UseQueryResult<{
5596
+ }>, Error>;
5597
+ useGetShippingOptions: (cartId: string | null | undefined, postalCode: string | undefined, enabled: boolean) => _tanstack_react_query.UseQueryResult<NoInfer<{
5581
5598
  groups: zod.objectOutputType<{
5582
5599
  sellerId: zod.ZodString;
5583
5600
  shippingProfileId: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
@@ -5631,7 +5648,7 @@ declare function useStoreCart(): {
5631
5648
  metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
5632
5649
  }, zod.ZodTypeAny, "passthrough">>, "many">;
5633
5650
  }, zod.ZodTypeAny, "passthrough">[];
5634
- }, Error>;
5651
+ }>, Error>;
5635
5652
  usePutCartShippingMethod: () => _tanstack_react_query.UseMutationResult<{
5636
5653
  id: string;
5637
5654
  items: {
@@ -5996,6 +6013,36 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
5996
6013
  cms: z.ZodObject<{
5997
6014
  settings: z.ZodObject<{
5998
6015
  themeKey: z.ZodOptional<z.ZodString>;
6016
+ channels: z.ZodOptional<z.ZodObject<{
6017
+ storefront: z.ZodOptional<z.ZodObject<{
6018
+ enabled: z.ZodOptional<z.ZodBoolean>;
6019
+ }, "strip", z.ZodTypeAny, {
6020
+ enabled?: boolean | undefined;
6021
+ }, {
6022
+ enabled?: boolean | undefined;
6023
+ }>>;
6024
+ pos: z.ZodOptional<z.ZodObject<{
6025
+ enabled: z.ZodOptional<z.ZodBoolean>;
6026
+ }, "strip", z.ZodTypeAny, {
6027
+ enabled?: boolean | undefined;
6028
+ }, {
6029
+ enabled?: boolean | undefined;
6030
+ }>>;
6031
+ }, "strip", z.ZodTypeAny, {
6032
+ storefront?: {
6033
+ enabled?: boolean | undefined;
6034
+ } | undefined;
6035
+ pos?: {
6036
+ enabled?: boolean | undefined;
6037
+ } | undefined;
6038
+ }, {
6039
+ storefront?: {
6040
+ enabled?: boolean | undefined;
6041
+ } | undefined;
6042
+ pos?: {
6043
+ enabled?: boolean | undefined;
6044
+ } | undefined;
6045
+ }>>;
5999
6046
  branding: z.ZodOptional<z.ZodObject<{
6000
6047
  logoUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6001
6048
  logoDarkUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -6117,6 +6164,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6117
6164
  robotsIndex?: boolean | undefined;
6118
6165
  } | undefined;
6119
6166
  themeKey?: string | undefined;
6167
+ channels?: {
6168
+ storefront?: {
6169
+ enabled?: boolean | undefined;
6170
+ } | undefined;
6171
+ pos?: {
6172
+ enabled?: boolean | undefined;
6173
+ } | undefined;
6174
+ } | undefined;
6120
6175
  branding?: {
6121
6176
  logoUrl?: string | null | undefined;
6122
6177
  logoDarkUrl?: string | null | undefined;
@@ -6156,6 +6211,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6156
6211
  robotsIndex?: boolean | undefined;
6157
6212
  } | undefined;
6158
6213
  themeKey?: string | undefined;
6214
+ channels?: {
6215
+ storefront?: {
6216
+ enabled?: boolean | undefined;
6217
+ } | undefined;
6218
+ pos?: {
6219
+ enabled?: boolean | undefined;
6220
+ } | undefined;
6221
+ } | undefined;
6159
6222
  branding?: {
6160
6223
  logoUrl?: string | null | undefined;
6161
6224
  logoDarkUrl?: string | null | undefined;
@@ -6190,6 +6253,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6190
6253
  id: z.ZodString;
6191
6254
  name: z.ZodString;
6192
6255
  slug: z.ZodString;
6256
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
6193
6257
  layout: z.ZodOptional<z.ZodString>;
6194
6258
  version: z.ZodOptional<z.ZodNumber>;
6195
6259
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -6207,6 +6271,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6207
6271
  id: z.ZodString;
6208
6272
  name: z.ZodString;
6209
6273
  slug: z.ZodString;
6274
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
6210
6275
  layout: z.ZodOptional<z.ZodString>;
6211
6276
  version: z.ZodOptional<z.ZodNumber>;
6212
6277
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -6224,6 +6289,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6224
6289
  id: z.ZodString;
6225
6290
  name: z.ZodString;
6226
6291
  slug: z.ZodString;
6292
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
6227
6293
  layout: z.ZodOptional<z.ZodString>;
6228
6294
  version: z.ZodOptional<z.ZodNumber>;
6229
6295
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -6249,6 +6315,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6249
6315
  robotsIndex?: boolean | undefined;
6250
6316
  } | undefined;
6251
6317
  themeKey?: string | undefined;
6318
+ channels?: {
6319
+ storefront?: {
6320
+ enabled?: boolean | undefined;
6321
+ } | undefined;
6322
+ pos?: {
6323
+ enabled?: boolean | undefined;
6324
+ } | undefined;
6325
+ } | undefined;
6252
6326
  branding?: {
6253
6327
  logoUrl?: string | null | undefined;
6254
6328
  logoDarkUrl?: string | null | undefined;
@@ -6283,6 +6357,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6283
6357
  id: z.ZodString;
6284
6358
  name: z.ZodString;
6285
6359
  slug: z.ZodString;
6360
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
6286
6361
  layout: z.ZodOptional<z.ZodString>;
6287
6362
  version: z.ZodOptional<z.ZodNumber>;
6288
6363
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -6308,6 +6383,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6308
6383
  robotsIndex?: boolean | undefined;
6309
6384
  } | undefined;
6310
6385
  themeKey?: string | undefined;
6386
+ channels?: {
6387
+ storefront?: {
6388
+ enabled?: boolean | undefined;
6389
+ } | undefined;
6390
+ pos?: {
6391
+ enabled?: boolean | undefined;
6392
+ } | undefined;
6393
+ } | undefined;
6311
6394
  branding?: {
6312
6395
  logoUrl?: string | null | undefined;
6313
6396
  logoDarkUrl?: string | null | undefined;
@@ -6342,6 +6425,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6342
6425
  id: z.ZodString;
6343
6426
  name: z.ZodString;
6344
6427
  slug: z.ZodString;
6428
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
6345
6429
  layout: z.ZodOptional<z.ZodString>;
6346
6430
  version: z.ZodOptional<z.ZodNumber>;
6347
6431
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -6574,6 +6658,36 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6574
6658
  cms: z.ZodObject<{
6575
6659
  settings: z.ZodObject<{
6576
6660
  themeKey: z.ZodOptional<z.ZodString>;
6661
+ channels: z.ZodOptional<z.ZodObject<{
6662
+ storefront: z.ZodOptional<z.ZodObject<{
6663
+ enabled: z.ZodOptional<z.ZodBoolean>;
6664
+ }, "strip", z.ZodTypeAny, {
6665
+ enabled?: boolean | undefined;
6666
+ }, {
6667
+ enabled?: boolean | undefined;
6668
+ }>>;
6669
+ pos: z.ZodOptional<z.ZodObject<{
6670
+ enabled: z.ZodOptional<z.ZodBoolean>;
6671
+ }, "strip", z.ZodTypeAny, {
6672
+ enabled?: boolean | undefined;
6673
+ }, {
6674
+ enabled?: boolean | undefined;
6675
+ }>>;
6676
+ }, "strip", z.ZodTypeAny, {
6677
+ storefront?: {
6678
+ enabled?: boolean | undefined;
6679
+ } | undefined;
6680
+ pos?: {
6681
+ enabled?: boolean | undefined;
6682
+ } | undefined;
6683
+ }, {
6684
+ storefront?: {
6685
+ enabled?: boolean | undefined;
6686
+ } | undefined;
6687
+ pos?: {
6688
+ enabled?: boolean | undefined;
6689
+ } | undefined;
6690
+ }>>;
6577
6691
  branding: z.ZodOptional<z.ZodObject<{
6578
6692
  logoUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
6579
6693
  logoDarkUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -6695,6 +6809,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6695
6809
  robotsIndex?: boolean | undefined;
6696
6810
  } | undefined;
6697
6811
  themeKey?: string | undefined;
6812
+ channels?: {
6813
+ storefront?: {
6814
+ enabled?: boolean | undefined;
6815
+ } | undefined;
6816
+ pos?: {
6817
+ enabled?: boolean | undefined;
6818
+ } | undefined;
6819
+ } | undefined;
6698
6820
  branding?: {
6699
6821
  logoUrl?: string | null | undefined;
6700
6822
  logoDarkUrl?: string | null | undefined;
@@ -6734,6 +6856,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6734
6856
  robotsIndex?: boolean | undefined;
6735
6857
  } | undefined;
6736
6858
  themeKey?: string | undefined;
6859
+ channels?: {
6860
+ storefront?: {
6861
+ enabled?: boolean | undefined;
6862
+ } | undefined;
6863
+ pos?: {
6864
+ enabled?: boolean | undefined;
6865
+ } | undefined;
6866
+ } | undefined;
6737
6867
  branding?: {
6738
6868
  logoUrl?: string | null | undefined;
6739
6869
  logoDarkUrl?: string | null | undefined;
@@ -6768,6 +6898,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6768
6898
  id: z.ZodString;
6769
6899
  name: z.ZodString;
6770
6900
  slug: z.ZodString;
6901
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
6771
6902
  layout: z.ZodOptional<z.ZodString>;
6772
6903
  version: z.ZodOptional<z.ZodNumber>;
6773
6904
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -6785,6 +6916,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6785
6916
  id: z.ZodString;
6786
6917
  name: z.ZodString;
6787
6918
  slug: z.ZodString;
6919
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
6788
6920
  layout: z.ZodOptional<z.ZodString>;
6789
6921
  version: z.ZodOptional<z.ZodNumber>;
6790
6922
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -6802,6 +6934,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6802
6934
  id: z.ZodString;
6803
6935
  name: z.ZodString;
6804
6936
  slug: z.ZodString;
6937
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
6805
6938
  layout: z.ZodOptional<z.ZodString>;
6806
6939
  version: z.ZodOptional<z.ZodNumber>;
6807
6940
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -6827,6 +6960,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6827
6960
  robotsIndex?: boolean | undefined;
6828
6961
  } | undefined;
6829
6962
  themeKey?: string | undefined;
6963
+ channels?: {
6964
+ storefront?: {
6965
+ enabled?: boolean | undefined;
6966
+ } | undefined;
6967
+ pos?: {
6968
+ enabled?: boolean | undefined;
6969
+ } | undefined;
6970
+ } | undefined;
6830
6971
  branding?: {
6831
6972
  logoUrl?: string | null | undefined;
6832
6973
  logoDarkUrl?: string | null | undefined;
@@ -6861,6 +7002,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6861
7002
  id: z.ZodString;
6862
7003
  name: z.ZodString;
6863
7004
  slug: z.ZodString;
7005
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
6864
7006
  layout: z.ZodOptional<z.ZodString>;
6865
7007
  version: z.ZodOptional<z.ZodNumber>;
6866
7008
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -6886,6 +7028,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6886
7028
  robotsIndex?: boolean | undefined;
6887
7029
  } | undefined;
6888
7030
  themeKey?: string | undefined;
7031
+ channels?: {
7032
+ storefront?: {
7033
+ enabled?: boolean | undefined;
7034
+ } | undefined;
7035
+ pos?: {
7036
+ enabled?: boolean | undefined;
7037
+ } | undefined;
7038
+ } | undefined;
6889
7039
  branding?: {
6890
7040
  logoUrl?: string | null | undefined;
6891
7041
  logoDarkUrl?: string | null | undefined;
@@ -6920,6 +7070,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
6920
7070
  id: z.ZodString;
6921
7071
  name: z.ZodString;
6922
7072
  slug: z.ZodString;
7073
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
6923
7074
  layout: z.ZodOptional<z.ZodString>;
6924
7075
  version: z.ZodOptional<z.ZodNumber>;
6925
7076
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -7152,6 +7303,36 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7152
7303
  cms: z.ZodObject<{
7153
7304
  settings: z.ZodObject<{
7154
7305
  themeKey: z.ZodOptional<z.ZodString>;
7306
+ channels: z.ZodOptional<z.ZodObject<{
7307
+ storefront: z.ZodOptional<z.ZodObject<{
7308
+ enabled: z.ZodOptional<z.ZodBoolean>;
7309
+ }, "strip", z.ZodTypeAny, {
7310
+ enabled?: boolean | undefined;
7311
+ }, {
7312
+ enabled?: boolean | undefined;
7313
+ }>>;
7314
+ pos: z.ZodOptional<z.ZodObject<{
7315
+ enabled: z.ZodOptional<z.ZodBoolean>;
7316
+ }, "strip", z.ZodTypeAny, {
7317
+ enabled?: boolean | undefined;
7318
+ }, {
7319
+ enabled?: boolean | undefined;
7320
+ }>>;
7321
+ }, "strip", z.ZodTypeAny, {
7322
+ storefront?: {
7323
+ enabled?: boolean | undefined;
7324
+ } | undefined;
7325
+ pos?: {
7326
+ enabled?: boolean | undefined;
7327
+ } | undefined;
7328
+ }, {
7329
+ storefront?: {
7330
+ enabled?: boolean | undefined;
7331
+ } | undefined;
7332
+ pos?: {
7333
+ enabled?: boolean | undefined;
7334
+ } | undefined;
7335
+ }>>;
7155
7336
  branding: z.ZodOptional<z.ZodObject<{
7156
7337
  logoUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7157
7338
  logoDarkUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -7273,6 +7454,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7273
7454
  robotsIndex?: boolean | undefined;
7274
7455
  } | undefined;
7275
7456
  themeKey?: string | undefined;
7457
+ channels?: {
7458
+ storefront?: {
7459
+ enabled?: boolean | undefined;
7460
+ } | undefined;
7461
+ pos?: {
7462
+ enabled?: boolean | undefined;
7463
+ } | undefined;
7464
+ } | undefined;
7276
7465
  branding?: {
7277
7466
  logoUrl?: string | null | undefined;
7278
7467
  logoDarkUrl?: string | null | undefined;
@@ -7312,6 +7501,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7312
7501
  robotsIndex?: boolean | undefined;
7313
7502
  } | undefined;
7314
7503
  themeKey?: string | undefined;
7504
+ channels?: {
7505
+ storefront?: {
7506
+ enabled?: boolean | undefined;
7507
+ } | undefined;
7508
+ pos?: {
7509
+ enabled?: boolean | undefined;
7510
+ } | undefined;
7511
+ } | undefined;
7315
7512
  branding?: {
7316
7513
  logoUrl?: string | null | undefined;
7317
7514
  logoDarkUrl?: string | null | undefined;
@@ -7346,6 +7543,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7346
7543
  id: z.ZodString;
7347
7544
  name: z.ZodString;
7348
7545
  slug: z.ZodString;
7546
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
7349
7547
  layout: z.ZodOptional<z.ZodString>;
7350
7548
  version: z.ZodOptional<z.ZodNumber>;
7351
7549
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -7363,6 +7561,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7363
7561
  id: z.ZodString;
7364
7562
  name: z.ZodString;
7365
7563
  slug: z.ZodString;
7564
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
7366
7565
  layout: z.ZodOptional<z.ZodString>;
7367
7566
  version: z.ZodOptional<z.ZodNumber>;
7368
7567
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -7380,6 +7579,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7380
7579
  id: z.ZodString;
7381
7580
  name: z.ZodString;
7382
7581
  slug: z.ZodString;
7582
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
7383
7583
  layout: z.ZodOptional<z.ZodString>;
7384
7584
  version: z.ZodOptional<z.ZodNumber>;
7385
7585
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -7405,6 +7605,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7405
7605
  robotsIndex?: boolean | undefined;
7406
7606
  } | undefined;
7407
7607
  themeKey?: string | undefined;
7608
+ channels?: {
7609
+ storefront?: {
7610
+ enabled?: boolean | undefined;
7611
+ } | undefined;
7612
+ pos?: {
7613
+ enabled?: boolean | undefined;
7614
+ } | undefined;
7615
+ } | undefined;
7408
7616
  branding?: {
7409
7617
  logoUrl?: string | null | undefined;
7410
7618
  logoDarkUrl?: string | null | undefined;
@@ -7439,6 +7647,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7439
7647
  id: z.ZodString;
7440
7648
  name: z.ZodString;
7441
7649
  slug: z.ZodString;
7650
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
7442
7651
  layout: z.ZodOptional<z.ZodString>;
7443
7652
  version: z.ZodOptional<z.ZodNumber>;
7444
7653
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -7464,6 +7673,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7464
7673
  robotsIndex?: boolean | undefined;
7465
7674
  } | undefined;
7466
7675
  themeKey?: string | undefined;
7676
+ channels?: {
7677
+ storefront?: {
7678
+ enabled?: boolean | undefined;
7679
+ } | undefined;
7680
+ pos?: {
7681
+ enabled?: boolean | undefined;
7682
+ } | undefined;
7683
+ } | undefined;
7467
7684
  branding?: {
7468
7685
  logoUrl?: string | null | undefined;
7469
7686
  logoDarkUrl?: string | null | undefined;
@@ -7498,6 +7715,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7498
7715
  id: z.ZodString;
7499
7716
  name: z.ZodString;
7500
7717
  slug: z.ZodString;
7718
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
7501
7719
  layout: z.ZodOptional<z.ZodString>;
7502
7720
  version: z.ZodOptional<z.ZodNumber>;
7503
7721
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -7730,6 +7948,36 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7730
7948
  cms: z.ZodObject<{
7731
7949
  settings: z.ZodObject<{
7732
7950
  themeKey: z.ZodOptional<z.ZodString>;
7951
+ channels: z.ZodOptional<z.ZodObject<{
7952
+ storefront: z.ZodOptional<z.ZodObject<{
7953
+ enabled: z.ZodOptional<z.ZodBoolean>;
7954
+ }, "strip", z.ZodTypeAny, {
7955
+ enabled?: boolean | undefined;
7956
+ }, {
7957
+ enabled?: boolean | undefined;
7958
+ }>>;
7959
+ pos: z.ZodOptional<z.ZodObject<{
7960
+ enabled: z.ZodOptional<z.ZodBoolean>;
7961
+ }, "strip", z.ZodTypeAny, {
7962
+ enabled?: boolean | undefined;
7963
+ }, {
7964
+ enabled?: boolean | undefined;
7965
+ }>>;
7966
+ }, "strip", z.ZodTypeAny, {
7967
+ storefront?: {
7968
+ enabled?: boolean | undefined;
7969
+ } | undefined;
7970
+ pos?: {
7971
+ enabled?: boolean | undefined;
7972
+ } | undefined;
7973
+ }, {
7974
+ storefront?: {
7975
+ enabled?: boolean | undefined;
7976
+ } | undefined;
7977
+ pos?: {
7978
+ enabled?: boolean | undefined;
7979
+ } | undefined;
7980
+ }>>;
7733
7981
  branding: z.ZodOptional<z.ZodObject<{
7734
7982
  logoUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7735
7983
  logoDarkUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -7851,6 +8099,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7851
8099
  robotsIndex?: boolean | undefined;
7852
8100
  } | undefined;
7853
8101
  themeKey?: string | undefined;
8102
+ channels?: {
8103
+ storefront?: {
8104
+ enabled?: boolean | undefined;
8105
+ } | undefined;
8106
+ pos?: {
8107
+ enabled?: boolean | undefined;
8108
+ } | undefined;
8109
+ } | undefined;
7854
8110
  branding?: {
7855
8111
  logoUrl?: string | null | undefined;
7856
8112
  logoDarkUrl?: string | null | undefined;
@@ -7890,6 +8146,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7890
8146
  robotsIndex?: boolean | undefined;
7891
8147
  } | undefined;
7892
8148
  themeKey?: string | undefined;
8149
+ channels?: {
8150
+ storefront?: {
8151
+ enabled?: boolean | undefined;
8152
+ } | undefined;
8153
+ pos?: {
8154
+ enabled?: boolean | undefined;
8155
+ } | undefined;
8156
+ } | undefined;
7893
8157
  branding?: {
7894
8158
  logoUrl?: string | null | undefined;
7895
8159
  logoDarkUrl?: string | null | undefined;
@@ -7924,6 +8188,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7924
8188
  id: z.ZodString;
7925
8189
  name: z.ZodString;
7926
8190
  slug: z.ZodString;
8191
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
7927
8192
  layout: z.ZodOptional<z.ZodString>;
7928
8193
  version: z.ZodOptional<z.ZodNumber>;
7929
8194
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -7941,6 +8206,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7941
8206
  id: z.ZodString;
7942
8207
  name: z.ZodString;
7943
8208
  slug: z.ZodString;
8209
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
7944
8210
  layout: z.ZodOptional<z.ZodString>;
7945
8211
  version: z.ZodOptional<z.ZodNumber>;
7946
8212
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -7958,6 +8224,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7958
8224
  id: z.ZodString;
7959
8225
  name: z.ZodString;
7960
8226
  slug: z.ZodString;
8227
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
7961
8228
  layout: z.ZodOptional<z.ZodString>;
7962
8229
  version: z.ZodOptional<z.ZodNumber>;
7963
8230
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -7983,6 +8250,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
7983
8250
  robotsIndex?: boolean | undefined;
7984
8251
  } | undefined;
7985
8252
  themeKey?: string | undefined;
8253
+ channels?: {
8254
+ storefront?: {
8255
+ enabled?: boolean | undefined;
8256
+ } | undefined;
8257
+ pos?: {
8258
+ enabled?: boolean | undefined;
8259
+ } | undefined;
8260
+ } | undefined;
7986
8261
  branding?: {
7987
8262
  logoUrl?: string | null | undefined;
7988
8263
  logoDarkUrl?: string | null | undefined;
@@ -8017,6 +8292,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
8017
8292
  id: z.ZodString;
8018
8293
  name: z.ZodString;
8019
8294
  slug: z.ZodString;
8295
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
8020
8296
  layout: z.ZodOptional<z.ZodString>;
8021
8297
  version: z.ZodOptional<z.ZodNumber>;
8022
8298
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -8042,6 +8318,14 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
8042
8318
  robotsIndex?: boolean | undefined;
8043
8319
  } | undefined;
8044
8320
  themeKey?: string | undefined;
8321
+ channels?: {
8322
+ storefront?: {
8323
+ enabled?: boolean | undefined;
8324
+ } | undefined;
8325
+ pos?: {
8326
+ enabled?: boolean | undefined;
8327
+ } | undefined;
8328
+ } | undefined;
8045
8329
  branding?: {
8046
8330
  logoUrl?: string | null | undefined;
8047
8331
  logoDarkUrl?: string | null | undefined;
@@ -8076,6 +8360,7 @@ declare const StorefrontSettingsSchema: z.ZodEffects<z.ZodObject<{
8076
8360
  id: z.ZodString;
8077
8361
  name: z.ZodString;
8078
8362
  slug: z.ZodString;
8363
+ channel: z.ZodDefault<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEnum<["storefront", "pos"]>>>;
8079
8364
  layout: z.ZodOptional<z.ZodString>;
8080
8365
  version: z.ZodOptional<z.ZodNumber>;
8081
8366
  settings: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
@@ -8231,6 +8516,11 @@ type UseProceedToCheckoutOptions = {
8231
8516
  * Por defecto: cliente guardado en checkout o `guest@checkout.local`.
8232
8517
  */
8233
8518
  guestEmail?: string;
8519
+ /**
8520
+ * Sincroniza líneas del store local al carrito del API antes de navegar (default `true`).
8521
+ * La página de checkout también reconcilia al cargar; esto evita llegar con carrito vacío en el API.
8522
+ */
8523
+ syncLocalCart?: boolean;
8234
8524
  /**
8235
8525
  * Navegación tras resolver el `cartId` (crear o reutilizar).
8236
8526
  * Por defecto en browser: `window.location.assign`.
@@ -8291,6 +8581,17 @@ type OptionGroup = {
8291
8581
  };
8292
8582
  /** Selected options per group (e.g. { Color: "Black", Size: "8 x 11 inch" }) */
8293
8583
  type SelectedOptions = Record<string, string>;
8584
+ /** Selección resuelta — agnóstica de carrito/checkout. */
8585
+ type VariantSelectionPayload = {
8586
+ productId: string;
8587
+ productName: string;
8588
+ variant: StorefrontVariant;
8589
+ displayPrice: number;
8590
+ compareAtPrice: number | null | undefined;
8591
+ variantLabel?: string;
8592
+ variantSku?: string;
8593
+ imageUrl: string;
8594
+ };
8294
8595
  type ProductVariantSelectorRenderProps = {
8295
8596
  product: StorefrontProductDetail;
8296
8597
  selectedVariant: StorefrontVariant | null;
@@ -8299,6 +8600,58 @@ type ProductVariantSelectorRenderProps = {
8299
8600
  isAvailable: boolean;
8300
8601
  selectedOptions: SelectedOptions;
8301
8602
  };
8603
+ /** Slot de UI para grupos de variantes (Color, Size…). Solo render. */
8604
+ type ProductVariantSelectorCompleteVariantsSlot = {
8605
+ optionGroups: OptionGroup[];
8606
+ selectedOptions: SelectedOptions;
8607
+ selectOption: (key: string, value: string) => void;
8608
+ hasVariants: boolean;
8609
+ selectedVariant: StorefrontVariant | null;
8610
+ isAvailable: boolean;
8611
+ };
8612
+ type ProductVariantSelectorCompletePriceSlot = {
8613
+ displayPrice: number;
8614
+ compareAtPrice: number | null | undefined;
8615
+ currency: string;
8616
+ selectedVariant: StorefrontVariant | null;
8617
+ };
8618
+ type ProductVariantSelectorCompletePriceTiersSlot = {
8619
+ priceTiers: StorefrontPriceTier[];
8620
+ currency: string;
8621
+ selectedVariant: StorefrontVariant | null;
8622
+ };
8623
+ /**
8624
+ * Slot opcional para CTA (comprar, agregar, etc.).
8625
+ * Sin lógica de carrito: el consumidor conecta su propio handler.
8626
+ */
8627
+ type ProductVariantSelectorCompleteActionSlot = {
8628
+ product: StorefrontProductDetail;
8629
+ selectedVariant: StorefrontVariant | null;
8630
+ displayPrice: number;
8631
+ compareAtPrice: number | null | undefined;
8632
+ currency: string;
8633
+ isAvailable: boolean;
8634
+ isReady: boolean;
8635
+ selection: VariantSelectionPayload | null;
8636
+ };
8637
+ type ProductVariantSelectorCompleteProps = {
8638
+ product: StorefrontProductDetail;
8639
+ currency?: string;
8640
+ features?: string[];
8641
+ className?: string;
8642
+ onVariantChange?: (variant: StorefrontVariant | null, price: number) => void;
8643
+ onSelectionChange?: (selection: VariantSelectionPayload | null) => void;
8644
+ /** Solo UI del precio. Si se omite, usa el default del SDK. */
8645
+ renderPrice?: (slot: ProductVariantSelectorCompletePriceSlot) => ReactNode;
8646
+ /** Solo UI de grupos/opciones. Si se omite, usa el default del SDK. */
8647
+ renderVariants?: (slot: ProductVariantSelectorCompleteVariantsSlot) => ReactNode;
8648
+ /** Solo UI de price tiers. Si se omite y hay tiers, usa el default del SDK. */
8649
+ renderPriceTiers?: (slot: ProductVariantSelectorCompletePriceTiersSlot) => ReactNode;
8650
+ /** CTA custom (comprar, agregar al carrito propio, etc.). Sin default — agnóstico. */
8651
+ renderAction?: (slot: ProductVariantSelectorCompleteActionSlot) => ReactNode;
8652
+ /** Solo UI de features/bullets del producto. */
8653
+ renderFeatures?: (features: string[]) => ReactNode;
8654
+ };
8302
8655
 
8303
8656
  type ProductVariantSelectorProps = {
8304
8657
  product: StorefrontProductDetail;
@@ -8316,6 +8669,163 @@ type ProductVariantSelectorProps = {
8316
8669
  };
8317
8670
  declare function ProductVariantSelector({ product, currency, features, onVariantChange, children, }: ProductVariantSelectorProps): react.JSX.Element;
8318
8671
 
8672
+ /**
8673
+ * Selector de variantes con toda la lógica de selección interna.
8674
+ * Agnóstico de carrito/drawer: el consumidor conecta `renderAction` con su flujo.
8675
+ *
8676
+ * @example
8677
+ * ```tsx
8678
+ * <ProductVariantSelectorComplete
8679
+ * product={product}
8680
+ * currency="PEN"
8681
+ * renderAction={({ isReady, selection }) => (
8682
+ * <button
8683
+ * type="button"
8684
+ * disabled={!isReady || !selection}
8685
+ * onClick={() => selection && myAddToCart(selection)}
8686
+ * >
8687
+ * Agregar
8688
+ * </button>
8689
+ * )}
8690
+ * />
8691
+ * ```
8692
+ */
8693
+ declare function ProductVariantSelectorComplete({ product, currency, features, className, onVariantChange, onSelectionChange, renderPrice, renderVariants, renderPriceTiers, renderAction, renderFeatures, }: ProductVariantSelectorCompleteProps): react.JSX.Element;
8694
+
8695
+ type UseProductVariantSelectionOptions = {
8696
+ product: StorefrontProductDetail;
8697
+ onVariantChange?: (variant: StorefrontVariant | null, price: number) => void;
8698
+ onSelectionChange?: (selection: VariantSelectionPayload | null) => void;
8699
+ };
8700
+ declare function useProductVariantSelection({ product, onVariantChange, onSelectionChange, }: UseProductVariantSelectionOptions): {
8701
+ product: {
8702
+ id: string;
8703
+ name: string;
8704
+ images: {
8705
+ url: string;
8706
+ name?: string | null | undefined;
8707
+ order?: number | undefined;
8708
+ }[];
8709
+ slug: string;
8710
+ variants: {
8711
+ id: string;
8712
+ sku: string;
8713
+ options: {
8714
+ name: string;
8715
+ value: string;
8716
+ key: string;
8717
+ }[];
8718
+ images: {
8719
+ url: string;
8720
+ name?: string | null | undefined;
8721
+ order?: number | undefined;
8722
+ }[];
8723
+ price: number;
8724
+ quantity: number;
8725
+ status?: string | null | undefined;
8726
+ compareAtPrice?: number | null | undefined;
8727
+ }[];
8728
+ price: number;
8729
+ isAvailable: boolean;
8730
+ totalInventory: number;
8731
+ specifications: Record<string, unknown>[];
8732
+ bundleItems: {
8733
+ productId: string;
8734
+ quantity: number;
8735
+ variantId: string;
8736
+ productName: string;
8737
+ availableStock: number;
8738
+ allowBackorders: boolean;
8739
+ requiresShipping: boolean;
8740
+ sku?: string | null | undefined;
8741
+ imageUrl?: string | null | undefined;
8742
+ brand?: string | null | undefined;
8743
+ variantName?: string | null | undefined;
8744
+ }[];
8745
+ priceTiers: {
8746
+ variantId: string;
8747
+ minQuantity: number;
8748
+ unitPrice: number;
8749
+ maxQuantity?: number | null | undefined;
8750
+ }[];
8751
+ status?: string | null | undefined;
8752
+ description?: string | null | undefined;
8753
+ tags?: string[] | null | undefined;
8754
+ category?: string | null | undefined;
8755
+ createdAt?: string | null | undefined;
8756
+ productType?: string | null | undefined;
8757
+ imageUrl?: string | null | undefined;
8758
+ compareAtPrice?: number | null | undefined;
8759
+ brand?: string | null | undefined;
8760
+ categoryId?: string | null | undefined;
8761
+ updatedAt?: string | null | undefined;
8762
+ };
8763
+ variants: {
8764
+ id: string;
8765
+ sku: string;
8766
+ options: {
8767
+ name: string;
8768
+ value: string;
8769
+ key: string;
8770
+ }[];
8771
+ images: {
8772
+ url: string;
8773
+ name?: string | null | undefined;
8774
+ order?: number | undefined;
8775
+ }[];
8776
+ price: number;
8777
+ quantity: number;
8778
+ status?: string | null | undefined;
8779
+ compareAtPrice?: number | null | undefined;
8780
+ }[];
8781
+ optionGroups: OptionGroup[];
8782
+ selectedOptions: SelectedOptions;
8783
+ selectOption: (key: string, value: string) => void;
8784
+ hasVariants: boolean;
8785
+ selectedVariant: {
8786
+ id: string;
8787
+ sku: string;
8788
+ options: {
8789
+ name: string;
8790
+ value: string;
8791
+ key: string;
8792
+ }[];
8793
+ images: {
8794
+ url: string;
8795
+ name?: string | null | undefined;
8796
+ order?: number | undefined;
8797
+ }[];
8798
+ price: number;
8799
+ quantity: number;
8800
+ status?: string | null | undefined;
8801
+ compareAtPrice?: number | null | undefined;
8802
+ } | null;
8803
+ displayPrice: number;
8804
+ compareAtPrice: number | null | undefined;
8805
+ isAvailable: boolean;
8806
+ isReady: boolean;
8807
+ selection: VariantSelectionPayload | null;
8808
+ priceTiers: {
8809
+ variantId: string;
8810
+ minQuantity: number;
8811
+ unitPrice: number;
8812
+ maxQuantity?: number | null | undefined;
8813
+ }[];
8814
+ };
8815
+ type ProductVariantSelectionState = ReturnType<typeof useProductVariantSelection>;
8816
+
8817
+ declare function buildOptionGroups(variants: StorefrontVariant[]): OptionGroup[];
8818
+ declare function findVariant(variants: StorefrontVariant[], selected: SelectedOptions, hasConfigurableOptions: boolean): StorefrontVariant | null;
8819
+ declare function getInitialOptions(variants: StorefrontVariant[], optionGroups: OptionGroup[]): SelectedOptions;
8820
+ declare function buildVariantLabel(variant: StorefrontVariant | null): string | undefined;
8821
+ declare function getPriceTiersForVariant(product: StorefrontProductDetail, variantId: string | undefined): StorefrontPriceTier[];
8822
+ declare function buildVariantSelectionPayload(product: StorefrontProductDetail, selectedVariant: StorefrontVariant | null, displayPrice: number): VariantSelectionPayload | null;
8823
+ /** Helper opcional para proyectos que usan `useCart` del SDK. */
8824
+ declare function buildCartItemFromVariant(product: StorefrontProductDetail, selectedVariant: StorefrontVariant | null, displayPrice: number): CartItem | null;
8825
+ declare function isVariantSelectionReady(selectedVariant: StorefrontVariant | null, isAvailable: boolean): boolean;
8826
+ /** @deprecated Usar `isVariantSelectionReady`. */
8827
+ declare function canAddVariantToCart(selectedVariant: StorefrontVariant | null, isAvailable: boolean): boolean;
8828
+
8319
8829
  type ThankYouLinkProps = {
8320
8830
  href: string;
8321
8831
  className?: string;
@@ -8403,7 +8913,7 @@ declare function useCheckoutSession(cartId: string): {
8403
8913
  storeId: string;
8404
8914
  currency: string;
8405
8915
  cartId: string;
8406
- checkoutQuery: _tanstack_react_query.UseQueryResult<{
8916
+ checkoutQuery: _tanstack_react_query.UseQueryResult<NoInfer<{
8407
8917
  cart: {
8408
8918
  id: string;
8409
8919
  items: {
@@ -8464,7 +8974,7 @@ declare function useCheckoutSession(cartId: string): {
8464
8974
  qrImageUrl?: string | null | undefined;
8465
8975
  }[];
8466
8976
  };
8467
- }, Error>;
8977
+ }>, Error>;
8468
8978
  cartData: {
8469
8979
  id: string;
8470
8980
  items: {
@@ -8802,7 +9312,7 @@ declare function useCheckoutSession(cartId: string): {
8802
9312
  formError: string | null;
8803
9313
  handleApplyCoupon: () => Promise<void>;
8804
9314
  handleRemoveCoupon: (code: string) => Promise<void>;
8805
- shippingOptionsQuery: _tanstack_react_query.UseQueryResult<{
9315
+ shippingOptionsQuery: _tanstack_react_query.UseQueryResult<NoInfer<{
8806
9316
  groups: zod.objectOutputType<{
8807
9317
  sellerId: zod.ZodString;
8808
9318
  shippingProfileId: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
@@ -8856,7 +9366,7 @@ declare function useCheckoutSession(cartId: string): {
8856
9366
  metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
8857
9367
  }, zod.ZodTypeAny, "passthrough">>, "many">;
8858
9368
  }, zod.ZodTypeAny, "passthrough">[];
8859
- }, Error>;
9369
+ }>, Error>;
8860
9370
  shippingFlat: {
8861
9371
  key: string;
8862
9372
  group: ShippingOptionGroup;
@@ -9528,4 +10038,4 @@ declare function useCheckoutSession(cartId: string): {
9528
10038
  isSaving: boolean;
9529
10039
  };
9530
10040
 
9531
- export { type BillingChoice, type CartItem, type CheckoutContactForm, type CheckoutCustomerLocal, type CheckoutLinkProps, CheckoutPage, type CheckoutPageProps, type CustomerAddress, CustomerAddressSchema, type CustomerAddressUpsert, CustomerAddressUpsertSchema, type CustomerMe, CustomerMeSchema, type CustomerOrderDetailDto as CustomerOrderDetail, type CustomerOrderDetailDto, CustomerOrderDetailSchema, type CustomerOrderListItemDto as CustomerOrderListItem, type CustomerOrderListItemDto, CustomerOrderListItemSchema, type CustomerProfilePatch, CustomerProfilePatchSchema, type CustomerRegisterRequest, CustomerRegisterRequestSchema, EcomiqProvider, type EcomiqProviderProps, type EcomiqSignInCredentials, type OptionGroup, ProductVariantSelector, type ProductVariantSelectorProps, type ProductVariantSelectorRenderProps, QueryProvider, type SelectedOptions, StoreApiClient, type StoreApiGetOptions, type StorefrontAuthClientInstance, StorefrontAuthProvider, type StorefrontSessionUser, type ThankYouLinkProps, ThankYouPage, type ThankYouPageProps, type UseProceedToCheckoutOptions, addCartCoupon, buildCheckoutPath, buildCheckoutThankYouUrl, checkoutCart, createCart, createCustomerAddress, createStoreApiClient, customerMeToProfilePatch, deleteCustomerAddress, ecomiqOAuthPasswordClient, emailFromCheckoutResult, getCart, getCartCheckout, getCartPaymentMethods, getCustomerAddresses, getCustomerMe, getCustomerOrder, getCustomerOrders, getSharedOrderDraft, getShippingOptions, getStoreApiBaseUrl, getStoreApiClient, getStorefrontCollectionBySlug, getStorefrontCollections, getStorefrontPageBySlug, getStorefrontPagePreview, getStorefrontPages, getStorefrontProductBySlug, getStorefrontProducts, isCartNotActiveApiError, orderIdFromCheckoutResult, patchCartAddresses, patchCartBuyer, patchCustomer, putCartShippingMethod, registerCustomer, removeCartCoupon, setClientStoreId, setServerRequestOrigin, setServerStoreId, signInWithEcomiqCredentials, storeApiClient, storefrontAccessTokenNeedsRefresh, storefrontSessionEndsSoon, thankYouParamsFromCheckoutResult, updateCustomerAddress, uploadPaymentReceipt, useCart, useCheckoutSession, useProceedToCheckout, useStore, useStoreCart, useStoreCollections, useStorePages, useStoreProducts, useStorefrontAuthClient, useStorefrontSession };
10041
+ export { type BillingChoice, type CartItem, type CheckoutContactForm, type CheckoutCustomerLocal, type CheckoutLinkProps, CheckoutPage, type CheckoutPageProps, type CustomerAddress, CustomerAddressSchema, type CustomerAddressUpsert, CustomerAddressUpsertSchema, type CustomerMe, CustomerMeSchema, type CustomerOrderDetailDto as CustomerOrderDetail, type CustomerOrderDetailDto, CustomerOrderDetailSchema, type CustomerOrderListItemDto as CustomerOrderListItem, type CustomerOrderListItemDto, CustomerOrderListItemSchema, type CustomerProfilePatch, CustomerProfilePatchSchema, type CustomerRegisterRequest, CustomerRegisterRequestSchema, EcomiqProvider, type EcomiqProviderProps, type EcomiqSignInCredentials, type OptionGroup, type ProductVariantSelectionState, ProductVariantSelector, ProductVariantSelectorComplete, type ProductVariantSelectorCompleteActionSlot, type ProductVariantSelectorCompletePriceSlot, type ProductVariantSelectorCompletePriceTiersSlot, type ProductVariantSelectorCompleteProps, type ProductVariantSelectorCompleteVariantsSlot, type ProductVariantSelectorProps, type ProductVariantSelectorRenderProps, QueryProvider, type SelectedOptions, StoreApiClient, type StoreApiGetOptions, type StorefrontAuthClientInstance, StorefrontAuthProvider, type StorefrontSessionUser, type ThankYouLinkProps, ThankYouPage, type ThankYouPageProps, type UseProceedToCheckoutOptions, type UseProductVariantSelectionOptions, type VariantSelectionPayload, addCartCoupon, buildCartItemFromVariant, buildCheckoutPath, buildCheckoutThankYouUrl, buildOptionGroups, buildVariantLabel, buildVariantSelectionPayload, canAddVariantToCart, checkoutCart, createCart, createCustomerAddress, createStoreApiClient, customerMeToProfilePatch, deleteCustomerAddress, ecomiqOAuthPasswordClient, emailFromCheckoutResult, findVariant, getCart, getCartCheckout, getCartPaymentMethods, getCustomerAddresses, getCustomerMe, getCustomerOrder, getCustomerOrders, getInitialOptions, getPriceTiersForVariant, getSharedOrderDraft, getShippingOptions, getStoreApiBaseUrl, getStoreApiClient, getStorefrontCollectionBySlug, getStorefrontCollections, getStorefrontPageBySlug, getStorefrontPagePreview, getStorefrontPages, getStorefrontProductBySlug, getStorefrontProducts, isCartNotActiveApiError, isVariantSelectionReady, orderIdFromCheckoutResult, patchCartAddresses, patchCartBuyer, patchCustomer, putCartShippingMethod, registerCustomer, removeCartCoupon, setClientStoreId, setServerRequestOrigin, setServerStoreId, signInWithEcomiqCredentials, storeApiClient, storefrontAccessTokenNeedsRefresh, storefrontSessionEndsSoon, thankYouParamsFromCheckoutResult, updateCustomerAddress, uploadPaymentReceipt, useCart, useCheckoutSession, useProceedToCheckout, useProductVariantSelection, useStore, useStoreCart, useStoreCollections, useStorePages, useStoreProducts, useStorefrontAuthClient, useStorefrontSession };