@wix/headless-stores 0.0.9 → 0.0.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.
Files changed (135) hide show
  1. package/cjs/dist/enums/index.d.ts +2 -0
  2. package/cjs/dist/enums/index.js +18 -0
  3. package/cjs/dist/enums/social-platform-enums.d.ts +25 -0
  4. package/cjs/dist/enums/social-platform-enums.js +30 -0
  5. package/cjs/dist/enums/sort-enums.d.ts +17 -0
  6. package/cjs/dist/enums/sort-enums.js +21 -0
  7. package/cjs/dist/react/BuyNow.d.ts +2 -4
  8. package/cjs/dist/react/Category.d.ts +15 -0
  9. package/cjs/dist/react/Category.js +22 -0
  10. package/cjs/dist/react/Collection.d.ts +151 -0
  11. package/cjs/dist/react/Collection.js +209 -0
  12. package/cjs/dist/react/FilteredCollection.d.ts +95 -0
  13. package/cjs/dist/react/FilteredCollection.js +150 -0
  14. package/cjs/dist/react/PayNow.d.ts +2 -4
  15. package/cjs/dist/react/Product.d.ts +43 -0
  16. package/cjs/dist/react/Product.js +35 -0
  17. package/cjs/dist/react/ProductActions.d.ts +42 -0
  18. package/cjs/dist/react/ProductActions.js +83 -0
  19. package/cjs/dist/react/ProductModifiers.d.ts +164 -0
  20. package/cjs/dist/react/ProductModifiers.js +168 -0
  21. package/cjs/dist/react/ProductVariantSelector.d.ts +153 -0
  22. package/cjs/dist/react/ProductVariantSelector.js +138 -0
  23. package/cjs/dist/react/RelatedProducts.d.ts +64 -0
  24. package/cjs/dist/react/RelatedProducts.js +73 -0
  25. package/cjs/dist/react/SelectedVariant.d.ts +66 -0
  26. package/cjs/dist/react/SelectedVariant.js +52 -0
  27. package/cjs/dist/react/SocialSharing.d.ts +112 -0
  28. package/cjs/dist/react/SocialSharing.js +86 -0
  29. package/cjs/dist/react/Sort.d.ts +14 -0
  30. package/cjs/dist/react/Sort.js +17 -0
  31. package/cjs/dist/react/index.d.ts +11 -0
  32. package/cjs/dist/react/index.js +34 -0
  33. package/cjs/dist/services/buy-now-service.js +2 -2
  34. package/cjs/dist/services/catalog-options-service.d.ts +30 -0
  35. package/cjs/dist/services/catalog-options-service.js +156 -0
  36. package/cjs/dist/services/catalog-price-range-service.d.ts +23 -0
  37. package/cjs/dist/services/catalog-price-range-service.js +97 -0
  38. package/cjs/dist/services/category-service.d.ts +26 -0
  39. package/cjs/dist/services/category-service.js +71 -0
  40. package/cjs/dist/services/collection-service.d.ts +37 -0
  41. package/cjs/dist/services/collection-service.js +569 -0
  42. package/cjs/dist/services/filter-service.d.ts +56 -0
  43. package/cjs/dist/services/filter-service.js +147 -0
  44. package/cjs/dist/services/product-media-gallery-service.d.ts +25 -0
  45. package/cjs/dist/services/product-media-gallery-service.js +105 -0
  46. package/cjs/dist/services/product-modifiers-service.d.ts +34 -0
  47. package/cjs/dist/services/product-modifiers-service.js +111 -0
  48. package/cjs/dist/services/product-service.d.ts +28 -0
  49. package/cjs/dist/services/product-service.js +68 -0
  50. package/cjs/dist/services/related-products-service.d.ts +25 -0
  51. package/cjs/dist/services/related-products-service.js +54 -0
  52. package/cjs/dist/services/selected-variant-service.d.ts +59 -0
  53. package/cjs/dist/services/selected-variant-service.js +541 -0
  54. package/cjs/dist/services/social-sharing-service.d.ts +41 -0
  55. package/cjs/dist/services/social-sharing-service.js +141 -0
  56. package/cjs/dist/services/sort-service.d.ts +20 -0
  57. package/cjs/dist/services/sort-service.js +32 -0
  58. package/cjs/dist/utils/url-params.d.ts +5 -0
  59. package/cjs/dist/utils/url-params.js +50 -0
  60. package/dist/enums/index.d.ts +2 -0
  61. package/dist/enums/index.js +2 -0
  62. package/dist/enums/social-platform-enums.d.ts +25 -0
  63. package/dist/enums/social-platform-enums.js +27 -0
  64. package/dist/enums/sort-enums.d.ts +17 -0
  65. package/dist/enums/sort-enums.js +18 -0
  66. package/dist/react/BuyNow.d.ts +2 -4
  67. package/dist/react/Category.d.ts +15 -0
  68. package/dist/react/Category.js +18 -0
  69. package/dist/react/Collection.d.ts +151 -0
  70. package/dist/react/Collection.js +201 -0
  71. package/dist/react/FilteredCollection.d.ts +95 -0
  72. package/dist/react/FilteredCollection.js +140 -0
  73. package/dist/react/PayNow.d.ts +2 -4
  74. package/dist/react/Product.d.ts +43 -0
  75. package/dist/react/Product.js +30 -0
  76. package/dist/react/ProductActions.d.ts +42 -0
  77. package/dist/react/ProductActions.js +79 -0
  78. package/dist/react/ProductModifiers.d.ts +164 -0
  79. package/dist/react/ProductModifiers.js +160 -0
  80. package/dist/react/ProductVariantSelector.d.ts +153 -0
  81. package/dist/react/ProductVariantSelector.js +130 -0
  82. package/dist/react/RelatedProducts.d.ts +64 -0
  83. package/dist/react/RelatedProducts.js +65 -0
  84. package/dist/react/SelectedVariant.d.ts +66 -0
  85. package/dist/react/SelectedVariant.js +46 -0
  86. package/dist/react/SocialSharing.d.ts +112 -0
  87. package/dist/react/SocialSharing.js +77 -0
  88. package/dist/react/Sort.d.ts +14 -0
  89. package/dist/react/Sort.js +14 -0
  90. package/dist/react/index.d.ts +11 -0
  91. package/dist/react/index.js +11 -0
  92. package/dist/services/buy-now-service.js +2 -2
  93. package/dist/services/catalog-options-service.d.ts +30 -0
  94. package/dist/services/catalog-options-service.js +152 -0
  95. package/dist/services/catalog-price-range-service.d.ts +23 -0
  96. package/dist/services/catalog-price-range-service.js +93 -0
  97. package/dist/services/category-service.d.ts +26 -0
  98. package/dist/services/category-service.js +67 -0
  99. package/dist/services/collection-service.d.ts +37 -0
  100. package/dist/services/collection-service.js +532 -0
  101. package/dist/services/filter-service.d.ts +56 -0
  102. package/dist/services/filter-service.js +144 -0
  103. package/dist/services/product-media-gallery-service.d.ts +25 -0
  104. package/dist/services/product-media-gallery-service.js +101 -0
  105. package/dist/services/product-modifiers-service.d.ts +34 -0
  106. package/dist/services/product-modifiers-service.js +107 -0
  107. package/dist/services/product-service.d.ts +28 -0
  108. package/dist/services/product-service.js +64 -0
  109. package/dist/services/related-products-service.d.ts +25 -0
  110. package/dist/services/related-products-service.js +50 -0
  111. package/dist/services/selected-variant-service.d.ts +59 -0
  112. package/dist/services/selected-variant-service.js +538 -0
  113. package/dist/services/social-sharing-service.d.ts +41 -0
  114. package/dist/services/social-sharing-service.js +137 -0
  115. package/dist/services/sort-service.d.ts +20 -0
  116. package/dist/services/sort-service.js +29 -0
  117. package/dist/utils/url-params.d.ts +5 -0
  118. package/dist/utils/url-params.js +46 -0
  119. package/package.json +8 -1
  120. package/dist/astro/BuyNowServiceContext.d.ts +0 -2
  121. package/dist/astro/BuyNowServiceContext.js +0 -6
  122. package/dist/astro/ManagerProviderContext.d.ts +0 -2
  123. package/dist/astro/ManagerProviderContext.js +0 -7
  124. package/dist/astro/withBuyButtonService.d.ts +0 -2
  125. package/dist/astro/withBuyButtonService.js +0 -16
  126. package/dist/react/CurrentCartServiceProvider.d.ts +0 -5
  127. package/dist/react/CurrentCartServiceProvider.js +0 -12
  128. package/dist/react/VariantSelectorServiceProvider.d.ts +0 -7
  129. package/dist/react/VariantSelectorServiceProvider.js +0 -22
  130. package/dist/react/hookim/index.d.ts +0 -5
  131. package/dist/react/hookim/index.js +0 -22
  132. package/dist/services/CurrentCartService.d.ts +0 -18
  133. package/dist/services/CurrentCartService.js +0 -9
  134. package/dist/services/VariantSelectorServices.d.ts +0 -8
  135. package/dist/services/VariantSelectorServices.js +0 -20
@@ -0,0 +1,26 @@
1
+ import type { Signal } from '../../Signal';
2
+ import { type Category } from '@wix/auto_sdk_categories_categories';
3
+ export interface CategoryServiceAPI {
4
+ selectedCategory: Signal<string | null>;
5
+ categories: Signal<Category[]>;
6
+ setSelectedCategory: (categoryId: string | null) => void;
7
+ loadCategories: () => Promise<void>;
8
+ }
9
+ export declare const CategoryServiceDefinition: string & {
10
+ __api: CategoryServiceAPI;
11
+ __config: {};
12
+ isServiceDefinition?: boolean;
13
+ } & CategoryServiceAPI;
14
+ export interface CategoryServiceConfig {
15
+ categories: Category[];
16
+ initialCategoryId?: string | null;
17
+ onCategoryChange?: (categoryId: string | null, category: Category | null) => void;
18
+ }
19
+ export declare const CategoryService: import("@wix/services-definitions").ServiceFactory<string & {
20
+ __api: CategoryServiceAPI;
21
+ __config: {};
22
+ isServiceDefinition?: boolean;
23
+ } & CategoryServiceAPI, CategoryServiceConfig, import("@wix/services-definitions").ThreadMode.MAIN>;
24
+ export declare function loadCategoriesConfig(): Promise<{
25
+ categories: Category[];
26
+ }>;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CategoryService = exports.CategoryServiceDefinition = void 0;
4
+ exports.loadCategoriesConfig = loadCategoriesConfig;
5
+ const services_definitions_1 = require("@wix/services-definitions");
6
+ const signals_1 = require("@wix/services-definitions/core-services/signals");
7
+ const auto_sdk_categories_categories_1 = require("@wix/auto_sdk_categories_categories");
8
+ exports.CategoryServiceDefinition = (0, services_definitions_1.defineService)('category-service');
9
+ exports.CategoryService = services_definitions_1.implementService.withConfig()(exports.CategoryServiceDefinition, ({ getService, config }) => {
10
+ const signalsService = getService(signals_1.SignalsServiceDefinition);
11
+ const selectedCategory = signalsService.signal((config.initialCategoryId || null));
12
+ const categories = signalsService.signal(config.categories);
13
+ const loadCategories = async () => {
14
+ const { categories: loadedCategories } = await loadCategoriesConfig();
15
+ categories.set(loadedCategories);
16
+ };
17
+ // Track if this is the initial load to prevent navigation on service creation
18
+ let isInitialLoad = true;
19
+ const setSelectedCategory = (categoryId) => {
20
+ selectedCategory.set(categoryId);
21
+ };
22
+ // Subscribe to category changes and handle navigation as a side effect
23
+ selectedCategory.subscribe(categoryId => {
24
+ // Skip navigation on initial load (when service is first created)
25
+ if (isInitialLoad) {
26
+ isInitialLoad = false;
27
+ return;
28
+ }
29
+ // If a navigation handler is provided, use it
30
+ if (config.onCategoryChange) {
31
+ const category = categoryId
32
+ ? config.categories.find(cat => cat._id === categoryId) || null
33
+ : null;
34
+ config.onCategoryChange(categoryId, category);
35
+ }
36
+ });
37
+ return {
38
+ selectedCategory,
39
+ categories,
40
+ setSelectedCategory,
41
+ loadCategories,
42
+ };
43
+ });
44
+ async function loadCategoriesConfig() {
45
+ try {
46
+ const categoriesResponse = await (0, auto_sdk_categories_categories_1.queryCategories)({
47
+ treeReference: {
48
+ appNamespace: '@wix/stores',
49
+ treeKey: null,
50
+ },
51
+ })
52
+ .eq('visible', true)
53
+ .find();
54
+ const fetchedCategories = categoriesResponse.items || [];
55
+ // Sort categories to put "all-products" first, keep the rest in original order
56
+ const allProductsCategory = fetchedCategories.find(cat => cat.slug === 'all-products');
57
+ const otherCategories = fetchedCategories.filter(cat => cat.slug !== 'all-products');
58
+ const allCategories = allProductsCategory
59
+ ? [allProductsCategory, ...otherCategories]
60
+ : fetchedCategories;
61
+ return {
62
+ categories: allCategories,
63
+ };
64
+ }
65
+ catch (error) {
66
+ console.warn('Failed to load categories:', error);
67
+ return {
68
+ categories: [],
69
+ };
70
+ }
71
+ }
@@ -0,0 +1,37 @@
1
+ import { type ServiceFactoryConfig } from '@wix/services-definitions';
2
+ import type { Signal } from '../../Signal';
3
+ import { type V3Product } from '@wix/auto_sdk_stores_products-v-3';
4
+ import { type Filter } from './filter-service';
5
+ import { type SortBy } from './sort-service';
6
+ export interface CollectionServiceAPI {
7
+ products: Signal<V3Product[]>;
8
+ isLoading: Signal<boolean>;
9
+ error: Signal<string | null>;
10
+ totalProducts: Signal<number>;
11
+ hasProducts: Signal<boolean>;
12
+ hasMoreProducts: Signal<boolean>;
13
+ loadMore: () => Promise<void>;
14
+ refresh: () => Promise<void>;
15
+ }
16
+ export declare const CollectionServiceDefinition: string & {
17
+ __api: CollectionServiceAPI;
18
+ __config: {};
19
+ isServiceDefinition?: boolean;
20
+ } & CollectionServiceAPI;
21
+ export declare const CollectionService: import("@wix/services-definitions").ServiceFactory<string & {
22
+ __api: CollectionServiceAPI;
23
+ __config: {};
24
+ isServiceDefinition?: boolean;
25
+ } & CollectionServiceAPI, {
26
+ initialProducts?: V3Product[];
27
+ pageSize?: number;
28
+ initialCursor?: string;
29
+ initialHasMore?: boolean;
30
+ categories?: any[];
31
+ }, import("@wix/services-definitions").ThreadMode.MAIN>;
32
+ export declare function loadCollectionServiceConfig(categoryId?: string, searchParams?: URLSearchParams, preloadedCategories?: any[]): Promise<ServiceFactoryConfig<typeof CollectionService> & {
33
+ initialCursor?: string;
34
+ initialHasMore?: boolean;
35
+ initialSort?: SortBy;
36
+ initialFilters?: Filter;
37
+ }>;