@mframework/layer-commerce 0.0.5 → 0.0.8

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 (209) hide show
  1. package/app/components/catalog/product/ProductAccordion/ProductAccordion.vue +41 -0
  2. package/app/components/catalog/product/ProductAccordion/__tests__/ProductAccordion.spec.ts +15 -0
  3. package/app/components/catalog/product/ProductAccordion/types.ts +5 -0
  4. package/app/components/catalog/product/ProductProperties/ProductProperties.vue +52 -0
  5. package/app/components/catalog/product/ProductProperties/__tests__/ProductProperties.spec.ts +15 -0
  6. package/app/components/catalog/product/ProductProperties/types.ts +5 -0
  7. package/app/components/catalog/product/ProductSlider/ProductSlider.vue +28 -0
  8. package/app/components/catalog/product/ProductSlider/__tests__/ProductSlider.spec.ts +14 -0
  9. package/app/components/catalog/product/ProductSlider/types.ts +7 -0
  10. package/app/components/catalog/product/RecommendedProducts/RecommendedProducts.vue +12 -0
  11. package/app/components/catalog/product/RecommendedProducts/types.ts +5 -0
  12. package/app/components/catalog/product/RenderContentProductSlider/RenderContentProductSlider.vue +11 -0
  13. package/app/components/catalog/product/add-attribute.vue +54 -0
  14. package/app/components/catalog/product/add-product-type.vue +54 -0
  15. package/app/components/catalog/product/add-product.vue +53 -0
  16. package/app/components/catalog/product/add-showcase.vue +52 -0
  17. package/app/components/catalog/product/add-station.vue +54 -0
  18. package/app/components/catalog/product/bestsellers.vue +69 -0
  19. package/app/components/catalog/product/bidding.vue +93 -0
  20. package/app/components/catalog/product/colorOptions.vue +58 -0
  21. package/app/components/catalog/product/deals.vue +61 -0
  22. package/app/components/catalog/product/exclusives.vue +58 -0
  23. package/app/components/catalog/product/featuredproducts.vue +69 -0
  24. package/app/components/catalog/product/giftCard.vue +63 -0
  25. package/app/components/catalog/product/latestproducts.vue +58 -0
  26. package/app/components/catalog/product/productCard.vue +71 -0
  27. package/app/components/catalog/product/productCompare.vue +60 -0
  28. package/app/components/catalog/product/productCompareTable.vue +441 -0
  29. package/app/components/catalog/product/productDetails.vue +120 -0
  30. package/app/components/catalog/product/productFaqs.vue +17 -0
  31. package/app/components/catalog/product/productGallery.vue +16 -0
  32. package/app/components/catalog/product/productQty.vue +54 -0
  33. package/app/components/catalog/product/productReviews.vue +56 -0
  34. package/app/components/catalog/product/productSpecs.vue +116 -0
  35. package/app/components/catalog/product/radiostation.vue +36 -0
  36. package/app/components/catalog/product/recentlyviewed.vue +43 -0
  37. package/app/components/catalog/product/relatedbrands.vue +54 -0
  38. package/app/components/catalog/product/relatedproducts.vue +58 -0
  39. package/app/components/catalog/product/relatedstations.vue +40 -0
  40. package/app/components/catalog/product/shippingOptions.vue +41 -0
  41. package/app/components/catalog/product/sizeOptions.vue +47 -0
  42. package/app/components/catalog/product/update-attribute-set.vue +209 -0
  43. package/app/components/catalog/product/update-attribute.vue +118 -0
  44. package/app/components/catalog/product/update-product.vue +372 -0
  45. package/app/components/catalog/product/update-showcase.vue +153 -0
  46. package/app/components/catalog/shops/relatedstores.vue +52 -0
  47. package/app/components/catalog/shops/restaurant.vue +66 -0
  48. package/app/components/catalog/shops/stores.vue +44 -0
  49. package/app/components/catalog/vendor/README.md +3 -0
  50. package/app/components/catalog/vendor/blocks/biggestcustomers.vue +33 -0
  51. package/app/components/catalog/vendor/blocks/lowestselling.vue +33 -0
  52. package/app/components/catalog/vendor/blocks/topcategories.vue +33 -0
  53. package/app/components/catalog/vendor/blocks/topproducts.vue +27 -0
  54. package/app/components/catalog/vendor/pages/attributes.vue +43 -0
  55. package/app/components/catalog/vendor/pages/commissions.vue +43 -0
  56. package/app/components/catalog/vendor/pages/crm.vue +67 -0
  57. package/app/components/catalog/vendor/pages/dashboard.vue +46 -0
  58. package/app/components/catalog/vendor/pages/emails.vue +43 -0
  59. package/app/components/catalog/vendor/pages/enquiries.vue +43 -0
  60. package/app/components/catalog/vendor/pages/invoices.vue +43 -0
  61. package/app/components/catalog/vendor/pages/orders.vue +68 -0
  62. package/app/components/catalog/vendor/pages/products.vue +55 -0
  63. package/app/components/catalog/vendor/pages/reviews.vue +48 -0
  64. package/app/components/catalog/vendor/pages/shipments.vue +43 -0
  65. package/app/components/catalog/vendor/pages/stores.vue +43 -0
  66. package/app/components/content/blocks/breadcrumbs.vue +0 -0
  67. package/app/components/content/blocks/currencySwitcher.vue +0 -0
  68. package/app/components/content/blocks/languageSwitcher.vue +0 -0
  69. package/app/components/content/blocks/videoproduct.vue +9 -0
  70. package/app/components/content/pages/checkout.vue +118 -0
  71. package/app/components/content/pages/meeoviGlobal.vue +68 -0
  72. package/app/components/content/pages/pickup-locations.vue +238 -0
  73. package/app/components/content/pages/showcases.vue +90 -0
  74. package/app/components/content/pages/success.vue +60 -0
  75. package/app/components/marketing/add-brand.vue +54 -0
  76. package/app/components/marketing/add-incentive.vue +54 -0
  77. package/app/components/marketing/promotions/giftcards.vue +127 -0
  78. package/app/components/marketing/promotions/subscriptions.vue +134 -0
  79. package/app/components/marketing/update-incentive.vue +326 -0
  80. package/app/components/menus/lowernav.vue +78 -0
  81. package/app/components/partials/LocaleSelector.vue +24 -0
  82. package/app/components/partials/ShoppingCart.vue +128 -0
  83. package/app/components/partials/StripePayment.vue +149 -0
  84. package/app/components/partials/addToCartBtn.vue +40 -0
  85. package/app/components/partials/cartItem.vue +124 -0
  86. package/app/components/partials/checkoutButton.vue +44 -0
  87. package/app/components/partials/compareBtn.vue +68 -0
  88. package/app/components/partials/ratings.vue +13 -0
  89. package/app/components/partials/store/CurrencySelector.vue +133 -0
  90. package/app/components/partials/store/StoreSwitcher.vue +13 -0
  91. package/app/components/related/brandCard.vue +41 -0
  92. package/app/components/related/incentiveCard.vue +44 -0
  93. package/app/components/related/invoiceCard.vue +43 -0
  94. package/app/components/related/orderCard.vue +43 -0
  95. package/app/components/related/relatedproducts.vue +17 -0
  96. package/app/components/sales/CartPageContent/CartPageContent.vue +43 -0
  97. package/app/components/sales/CheckoutAddress/CheckoutAddress.vue +50 -0
  98. package/app/components/sales/CheckoutAddress/__tests__/CheckoutAddress.spec.ts +16 -0
  99. package/app/components/sales/CheckoutAddress/types.ts +16 -0
  100. package/app/components/sales/CheckoutPayment/CheckoutPayment.vue +65 -0
  101. package/app/components/sales/CheckoutPayment/__tests__/CheckoutPayment.spec.ts +14 -0
  102. package/app/components/sales/CheckoutPayment/types.ts +12 -0
  103. package/app/components/sales/OrderSummary/OrderSummary.vue +57 -0
  104. package/app/components/sales/OrderSummary/__tests__/ContactInformation.spec.ts +52 -0
  105. package/app/components/sales/OrderSummary/types.ts +5 -0
  106. package/app/components/sales/incentives.vue +247 -0
  107. package/app/components/sales/invoices.vue +107 -0
  108. package/app/components/sales/orders.vue +378 -0
  109. package/app/components/sales/shipments.vue +65 -0
  110. package/app/components/sales/transactions.vue +109 -0
  111. package/app/components/shop/add-shop.vue +54 -0
  112. package/app/components/shop/cart/cartItem.vue +182 -0
  113. package/app/components/shop/cart/checkout.vue +415 -0
  114. package/app/components/shop/checkout/StripeCardElement.vue +206 -0
  115. package/app/components/shop/checkout/StripeCheckout.vue +49 -0
  116. package/app/components/shop/checkout/addressBilling.vue +263 -0
  117. package/app/components/shop/checkout/addressShipping.vue +175 -0
  118. package/app/components/shop/checkout/cart/ProductItem.vue +56 -0
  119. package/app/components/shop/checkout/cart/PromotionItem.vue +53 -0
  120. package/app/composables/useCustomer/__tests__/useCustomer.spec.ts +1 -1
  121. package/app/composables/useProductReviews/__tests__/useProductReviews.spec.ts +1 -1
  122. package/app/stores/cart.ts +1 -1
  123. package/app/types/Direction.type.ts +1 -1
  124. package/app/types/Global.type.ts +6 -6
  125. package/app/types/Layout.type.ts +1 -1
  126. package/app/types/index.ts +1 -1
  127. package/app/{normalizers → types/normalizers}/Cart.query.ts +1 -1
  128. package/app/{normalizers → types/normalizers}/Cart.type.ts +2 -2
  129. package/app/{normalizers → types/normalizers}/Checkout.query.ts +2 -2
  130. package/app/{normalizers → types/normalizers}/Config.query.ts +1 -1
  131. package/app/{normalizers → types/normalizers}/Config.type.ts +1 -1
  132. package/app/{normalizers → types/normalizers}/ContactForm.query.ts +2 -2
  133. package/app/{normalizers → types/normalizers}/CreditMemo.type.ts +1 -1
  134. package/app/{normalizers → types/normalizers}/GiftCard.type.ts +1 -1
  135. package/app/{normalizers → types/normalizers}/Invoice.type.ts +1 -1
  136. package/app/{normalizers → types/normalizers}/MyAccount.query.ts +1 -1
  137. package/app/{normalizers → types/normalizers}/MyAccount.type.ts +1 -1
  138. package/app/{normalizers → types/normalizers}/NewsletterSubscription.query.ts +1 -1
  139. package/app/{normalizers → types/normalizers}/Order.query.ts +1 -1
  140. package/app/{normalizers → types/normalizers}/Order.type.ts +2 -2
  141. package/app/{normalizers → types/normalizers}/Payment.type.ts +1 -1
  142. package/app/{normalizers → types/normalizers}/ProductCompare.query.ts +1 -1
  143. package/app/{normalizers → types/normalizers}/ProductCompare.type.ts +1 -1
  144. package/app/{normalizers → types/normalizers}/ProductList.query.ts +2 -2
  145. package/app/{normalizers → types/normalizers}/ProductList.type.ts +2 -2
  146. package/app/{normalizers → types/normalizers}/Return.type.ts +1 -1
  147. package/app/{normalizers → types/normalizers}/Review.query.ts +1 -1
  148. package/app/{normalizers → types/normalizers}/Review.type.ts +1 -1
  149. package/app/{normalizers → types/normalizers}/StoreInPickUp.query.ts +1 -1
  150. package/app/{normalizers → types/normalizers}/Subscription.type.ts +1 -1
  151. package/app/{normalizers → types/normalizers}/Transaction.type.ts +1 -1
  152. package/app/{normalizers → types/normalizers}/UrlRewrites.query.ts +1 -1
  153. package/app/{normalizers → types/normalizers}/UrlRewrites.type.ts +1 -1
  154. package/app/{normalizers → types/normalizers}/Wishlist.query.ts +4 -4
  155. package/app/{normalizers → types/normalizers}/Wishlist.type.ts +1 -1
  156. package/app/utils/Address/Address.type.ts +1 -1
  157. package/app/utils/Address/index.ts +5 -5
  158. package/app/utils/Cart/Cart.ts +1 -1
  159. package/app/utils/Currency/Currency.ts +1 -1
  160. package/app/utils/History/History.type.ts +1 -1
  161. package/app/utils/Menu/Menu.ts +1 -1
  162. package/app/utils/Menu/Menu.type.ts +2 -2
  163. package/app/utils/Orders/Orders.ts +1 -1
  164. package/app/utils/Preload/CategoryPreload.ts +2 -2
  165. package/app/utils/Preload/ProductPreload.ts +1 -1
  166. package/app/utils/Preload/index.ts +1 -1
  167. package/app/utils/Price/Price.ts +1 -1
  168. package/app/utils/Product/Extract.ts +1 -1
  169. package/app/utils/Product/Product.ts +1 -1
  170. package/app/utils/Product/Product.type.ts +1 -1
  171. package/app/utils/Product/Transform.ts +1 -1
  172. package/app/utils/Wishlist/Wishlist.ts +1 -1
  173. package/app/utils/client.ts +20 -20
  174. package/package.json +1 -3
  175. package/tsconfig.json +2 -2
  176. package/app/cart/useCart.ts +0 -1
  177. /package/app/{components → composables}/ChevronIcon/ChevronIcon.config.ts +0 -0
  178. /package/app/{components → composables}/DateSelect/DateSelect.config.ts +0 -0
  179. /package/app/{components → composables}/Field/Field.config.ts +0 -0
  180. /package/app/{components → composables}/FieldDate/FieldDate.config.ts +0 -0
  181. /package/app/{components → composables}/Form/Form.type.ts +0 -0
  182. /package/app/{components → composables}/Product/Product.config.ts +0 -0
  183. /package/app/{components → composables}/Product/Stock.config.ts +0 -0
  184. /package/app/{components → composables}/ProductCustomizableOption/ProductCustomizableOption.config.ts +0 -0
  185. /package/app/{components → composables}/ProductGallery/ProductGallery.config.ts +0 -0
  186. /package/app/{components → composables}/ProductReviews/ProductReviews.config.ts +0 -0
  187. /package/app/{normalizers → types/normalizers}/Category.query.ts +0 -0
  188. /package/app/{normalizers → types/normalizers}/Category.type.ts +0 -0
  189. /package/app/{normalizers → types/normalizers}/CheckEmail.query.ts +0 -0
  190. /package/app/{normalizers → types/normalizers}/Checkout.type.ts +0 -0
  191. /package/app/{normalizers → types/normalizers}/CmsBlock.query.ts +0 -0
  192. /package/app/{normalizers → types/normalizers}/CmsBlock.type.ts +0 -0
  193. /package/app/{normalizers → types/normalizers}/CmsPage.query.ts +0 -0
  194. /package/app/{normalizers → types/normalizers}/CmsPage.type.ts +0 -0
  195. /package/app/{normalizers → types/normalizers}/Menu.query.ts +0 -0
  196. /package/app/{normalizers → types/normalizers}/Menu.type.ts +0 -0
  197. /package/app/{normalizers → types/normalizers}/ProductAlerts.query.ts +0 -0
  198. /package/app/{normalizers → types/normalizers}/Region.query.ts +0 -0
  199. /package/app/{normalizers → types/normalizers}/Region.type.ts +0 -0
  200. /package/app/{normalizers → types/normalizers}/Slider.query.ts +0 -0
  201. /package/app/{normalizers → types/normalizers}/Slider.type.ts +0 -0
  202. /package/app/{normalizers → types/normalizers}/StoreInPickUp.type.ts +0 -0
  203. /package/app/{routes → types/routes}/CategoryPage/CategoryPage.config.ts +0 -0
  204. /package/app/{routes → types/routes}/CategoryPage/CategoryPage.type.ts +0 -0
  205. /package/app/{routes → types/routes}/Checkout/Checkout.config.ts +0 -0
  206. /package/app/{routes → types/routes}/Checkout/Checkout.type.ts +0 -0
  207. /package/app/{routes → types/routes}/MyAccount/MyAccount.config.ts +0 -0
  208. /package/app/{routes → types/routes}/SearchPage/SearchPage.config.ts +0 -0
  209. /package/app/{routes → types/routes}/UrlRewrites/UrlRewrites.config.ts +0 -0
@@ -0,0 +1,56 @@
1
+ <script setup lang="ts">
2
+ import { ref, computed, watch } from 'vue';
3
+ import { useVendureMutation } from '../../../composables/useVendureMutation';
4
+ import adjustOrderLineMutation from '#graphql/app/commerce/mutations/adjustOrderLine.gql';
5
+ import removeOrderLineMutation from '#graphql/app/commerce/mutations/removeOrderLine.gql';
6
+
7
+ const props = defineProps({
8
+ cartItem: { type: Object, required: true },
9
+ maxQty: { type: Number, default: 100 },
10
+ });
11
+
12
+ const { mutate: adjustOrderLine } = useVendureMutation(adjustOrderLineMutation);
13
+ const { mutate: removeOrderLine } = useVendureMutation(removeOrderLineMutation);
14
+
15
+ const quantity = ref(props.cartItem.quantity);
16
+ const isRemovable = computed(() => true);
17
+ const itemTotalPrice = computed(() => props.cartItem.linePriceWithTax);
18
+
19
+ const updateQuantity = async (qty: number) => {
20
+ if (qty !== props.cartItem.quantity) {
21
+ await adjustOrderLine({ orderLineId: props.cartItem.id, quantity: qty });
22
+ }
23
+ };
24
+
25
+ const removeCartItem = async () => {
26
+ await removeOrderLine({ orderLineId: props.cartItem.id });
27
+ };
28
+
29
+ watch(quantity, (val) => {
30
+ updateQuantity(val);
31
+ });
32
+ </script>
33
+
34
+ <template>
35
+ <div v-if="cartItem.productVariant" class="mr-4 h-24 w-24 shrink-0 overflow-hidden rounded-md border border-secondary-200">
36
+ <img :src="cartItem.productVariant.featuredAsset?.preview" :alt="cartItem.productVariant.name" class="h-full w-full object-cover object-center" />
37
+ </div>
38
+ <div class="flex flex-1 flex-col text-left">
39
+ <div>
40
+ <div class="flex flex-col lg:flex-row justify-between text-base font-medium text-secondary-900">
41
+ <h3 class="text-base cursor-pointer pr-2">
42
+ {{ cartItem.productVariant.name }}
43
+ </h3>
44
+ <span v-if="itemTotalPrice">{{ itemTotalPrice }}</span>
45
+ </div>
46
+ </div>
47
+ <div v-if="cartItem.productVariant.stockOnHand" class="flex flex-1 items-end justify-between text-sm">
48
+ <input v-model="quantity" type="number" :min="1" :max="maxQty" name="quantity" aria-label="Cart item quantity" class="w-18 mt-1 inline-block py-2 px-3 border border-secondary-300 bg-white rounded-md shadow-sm" />
49
+ <div class="flex">
50
+ <button v-if="isRemovable" type="button" class="font-medium text-dark bg-transparent" @click="removeCartItem">
51
+ Remove
52
+ </button>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </template>
@@ -0,0 +1,53 @@
1
+ <script setup lang="ts">
2
+ import { ref, computed } from 'vue';
3
+ import { useVendureMutation } from '../../../composables/useVendureMutation';
4
+ import adjustOrderLineMutation from '#graphql/app/commerce/mutations/adjustOrderLine.gql';
5
+ import removeOrderLineMutation from '#graphql/app/commerce/mutations/removeOrderLine.gql';
6
+
7
+ const props = defineProps({
8
+ cartItem: { type: Object, required: true },
9
+ maxQty: { type: Number, default: 100 },
10
+ });
11
+
12
+ const { mutate: adjustOrderLine } = useVendureMutation(adjustOrderLineMutation);
13
+ const { mutate: removeOrderLine } = useVendureMutation(removeOrderLineMutation);
14
+
15
+ const quantity = ref(props.cartItem.quantity);
16
+ const isRemovable = computed(() => true); // Vendure: all lines can be removed
17
+ const itemTotalPrice = computed(() => props.cartItem.linePriceWithTax);
18
+
19
+ const updateQuantity = async (qty: number) => {
20
+ if (qty !== props.cartItem.quantity) {
21
+ await adjustOrderLine({ orderLineId: props.cartItem.id, quantity: qty });
22
+ }
23
+ };
24
+
25
+ const removeItem = async () => {
26
+ await removeOrderLine({ orderLineId: props.cartItem.id });
27
+ };
28
+ </script>
29
+ <template>
30
+ <div class="mr-4 w-24 shrink-0 overflow-hidden">
31
+ <div class="w-26 i-carbon-tag text-3xl"></div>
32
+ </div>
33
+ <div class="flex flex-1 flex-col">
34
+ <div>
35
+ <div class="flex flex-col lg:flex-row justify-between text-base font-medium text-secondary-900">
36
+ <h3 class="text-base" data-testid="cart-promotion-name">
37
+ {{ cartItem.productVariant.name }}
38
+ <span class="bg-green-100 text-green-800 text-xs font-medium mr-2 px-2.5 py-0.5 rounded-full dark:bg-green-900 dark:text-green-300">
39
+ Promotion
40
+ </span>
41
+ </h3>
42
+ <span v-if="itemTotalPrice">{{ itemTotalPrice }}</span>
43
+ </div>
44
+ </div>
45
+ <div class="flex flex-1 items-end justify-end text-sm">
46
+ <div class="flex">
47
+ <button v-if="isRemovable" type="button" class="font-medium text-dark bg-transparent" @click="removeItem">
48
+ Remove
49
+ </button>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </template>
@@ -1,6 +1,6 @@
1
1
  import { useCustomer } from '~/composables/useCustomer/useCustomer';
2
2
 
3
- vi.mock('@mframework/sdk', () => ({
3
+ vi.mock('@mframework/core', () => ({
4
4
  sdk: {
5
5
  commerce: {
6
6
  getCustomer: vi.fn(() => ({
@@ -2,7 +2,7 @@ import { vi } from 'vitest';
2
2
  import { useProductReviews } from '~/composables/useProductReviews';
3
3
  import { mockProductReviews } from './productReviews.mock';
4
4
 
5
- vi.mock('@mframework/sdk', () => ({
5
+ vi.mock('@mframework/core', () => ({
6
6
  sdk: {
7
7
  commerce: {
8
8
  getProductReviews: vi.fn(() => mockProductReviews),
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, readonly } from 'vue'
2
2
  import type { Cart as DomainCart } from '../types/domain'
3
- import { useCart } from '../cart/useCart'
4
3
  import { defineStore } from 'pinia'
4
+ import { useCart } from '~/composables/useCart'
5
5
 
6
6
  export const useCartStore = defineStore('cart', () => {
7
7
  const cart = ref<DomainCart | null>(null)
@@ -14,7 +14,7 @@ import PropTypes from 'prop-types';
14
14
  import {
15
15
  Directions,
16
16
  } from 'Component/ChevronIcon/ChevronIcon.config';
17
- import { SortDirections } from '../routes/CategoryPage/CategoryPage.config';
17
+ import { SortDirections } from './routes/CategoryPage/CategoryPage.config';
18
18
 
19
19
  // Support for comtabilitiy
20
20
 
@@ -9,11 +9,11 @@
9
9
  * @link https://github.com/meeovi/mframework
10
10
  */
11
11
 
12
- import { StoreEnhancer } from 'redux';
12
+ // removed redux dependency: do not import `StoreEnhancer` here
13
13
 
14
- import { CmsPageFields } from '../normalizers/CmsPage.type';
15
- import { Slider } from '../normalizers/Slider.type';
16
- import { CategoryDisplayMode } from '../routes/CategoryPage/CategoryPage.config';
14
+ import { CmsPageFields } from './normalizers/CmsPage.type';
15
+ import { Slider } from './normalizers/Slider.type';
16
+ import { CategoryDisplayMode } from './routes/CategoryPage/CategoryPage.config';
17
17
 
18
18
  import { Mix } from './Common.type';
19
19
 
@@ -22,7 +22,7 @@ declare global {
22
22
  // eslint-disable-next-line @typescript-eslint/naming-convention
23
23
  '__REACT_DEVTOOLS_GLOBAL_HOOK__'?: Record<string, unknown>;
24
24
  // eslint-disable-next-line @typescript-eslint/naming-convention
25
- '__REDUX_DEVTOOLS_EXTENSION__'?: (options: any) => StoreEnhancer<any, any>;
25
+ '__REDUX_DEVTOOLS_EXTENSION__'?: (options: any) => any;
26
26
  storeRegexText: string;
27
27
  actionName: {
28
28
  type?: string;
@@ -86,7 +86,7 @@ declare global {
86
86
  }
87
87
 
88
88
  interface Navigator {
89
- userAgentData: NavigatorUAData;
89
+ userAgentData?: NavigatorUAData;
90
90
  }
91
91
 
92
92
  interface NavigatorUABrandVersion {
@@ -11,7 +11,7 @@
11
11
 
12
12
  import PropTypes from 'prop-types';
13
13
 
14
- import { CategoryPageLayout } from '../routes/CategoryPage/CategoryPage.config';
14
+ import { CategoryPageLayout } from './routes/CategoryPage/CategoryPage.config';
15
15
 
16
16
  // Support for comtabilitiy
17
17
 
@@ -8,7 +8,7 @@ declare global {
8
8
  }
9
9
  }
10
10
 
11
- import { sdk } from '@mframework/sdk'
11
+ import { sdk } from '@mframework/core'
12
12
 
13
13
  export function createClient(provider?: string, config?: any) {
14
14
  // Prefer provider-specific client creation if available on the SDK.
@@ -17,7 +17,7 @@ import ProductListQuery from './ProductList.query';
17
17
  import { CheckoutStepUrl } from '../routes/Checkout/Checkout.config';
18
18
  import {
19
19
  GQLCartItemInput, GQLCurrencyEnum, GQLUpdateCartItemsInput,
20
- } from '../types/Graphql.type';
20
+ } from '../Graphql.type';
21
21
 
22
22
  import {
23
23
  AppliedTax,
@@ -9,7 +9,7 @@
9
9
  * @link https://github.com/scandipwa/scandipwa
10
10
  */
11
11
 
12
- import { GQLCurrencyEnum, GQLProductStockItem } from '../types/Graphql.type';
12
+ import { GQLCurrencyEnum, GQLProductStockItem } from '../Graphql.type';
13
13
 
14
14
  import {
15
15
  AttributeWithValue,
@@ -21,7 +21,7 @@ import {
21
21
  ProductStockItem,
22
22
  } from './ProductList.type';
23
23
 
24
- import { Cart as DomainCart, CartItem as DomainCartItem, Product as DomainProduct } from '../types/domain';
24
+ import { Cart as DomainCart, CartItem as DomainCartItem, Product as DomainProduct } from '../domain';
25
25
 
26
26
  export interface UserErrors {
27
27
  message: string;
@@ -16,8 +16,8 @@ import {
16
16
  GQLSaveAddressInformation,
17
17
  GQLSSetBillingAddressOnCartInput,
18
18
  GQLSSetPaymentMethodOnCartInput,
19
- } from '../types/Graphql.type';
20
- import { isSignedIn } from '../utils/Auth/IsSignedIn';
19
+ } from '../Graphql.type';
20
+ import { isSignedIn } from '../../utils/Auth/IsSignedIn';
21
21
 
22
22
  import {
23
23
  PaymentDetails,
@@ -11,7 +11,7 @@
11
11
 
12
12
  import { Field, Query } from '@tilework/opus';
13
13
 
14
- import { GQLCheckoutAgreementMode } from '../types/Graphql.type';
14
+ import { GQLCheckoutAgreementMode } from '../Graphql.type';
15
15
 
16
16
  import {
17
17
  AvailableCurrency,
@@ -11,7 +11,7 @@
11
11
 
12
12
  import { Field } from '@tilework/opus';
13
13
 
14
- import { GQLCheckoutAgreementMode, GQLCurrencyEnum } from '../types/Graphql.type';
14
+ import { GQLCheckoutAgreementMode, GQLCurrencyEnum } from '../Graphql.type';
15
15
 
16
16
  export interface PriceTaxDisplay {
17
17
  product_price_display_type: string;
@@ -11,8 +11,8 @@
11
11
 
12
12
  import { Field, Mutation, Query } from '@tilework/opus';
13
13
 
14
- import { NetworkError } from '../types/Common.type';
15
- import { GQLContactForm } from '../types/Graphql.type';
14
+ import { NetworkError } from '../Common.type';
15
+ import { GQLContactForm } from '../Graphql.type';
16
16
 
17
17
  /** @namespace ../../normalizers/ContactForm/Query */
18
18
  export class ContactFormQuery {
@@ -1,5 +1,5 @@
1
1
  import { normalizeOrder } from './Order.type';
2
- import type { Order as DomainOrder } from '../types/domain';
2
+ import type { Order as DomainOrder } from '../domain';
3
3
 
4
4
  // Map credit memo (refund) shapes into a predictable structure. Keep a
5
5
  // permissive fallback to `normalizeOrder` for unfamiliar shapes.
@@ -1,4 +1,4 @@
1
- import { GiftCard as DomainGiftCard } from '../types/domain';
1
+ import { GiftCard as DomainGiftCard } from '../domain';
2
2
 
3
3
  export interface GiftCardFragment {
4
4
  code: string;
@@ -1,5 +1,5 @@
1
1
  import { normalizeOrder } from './Order.type';
2
- import type { Order as DomainOrder } from '../types/domain';
2
+ import type { Order as DomainOrder } from '../domain';
3
3
 
4
4
  // Provide a richer invoice normalizer that maps common invoice fields into
5
5
  // a predictable shape consumers expect. We still fall back to `normalizeOrder`
@@ -11,7 +11,7 @@
11
11
 
12
12
  import { Field, Mutation, Query } from '@tilework/opus';
13
13
 
14
- import { GQLCustomerAddressInput, GQLCustomerUpdateInput } from '../types/Graphql.type';
14
+ import { GQLCustomerAddressInput, GQLCustomerUpdateInput } from '../Graphql.type';
15
15
 
16
16
  import {
17
17
  ChangeCustomerPasswordOptions,
@@ -11,7 +11,7 @@
11
11
 
12
12
  import { Field } from '@tilework/opus';
13
13
 
14
- import { GQLCountryCodeEnum, GQLCustomerInput } from '../types/Graphql.type';
14
+ import { GQLCountryCodeEnum, GQLCustomerInput } from '../Graphql.type';
15
15
 
16
16
  export interface CustomerAddressRegion {
17
17
  region_code: string;
@@ -11,7 +11,7 @@
11
11
 
12
12
  import { Field, Mutation } from '@tilework/opus';
13
13
 
14
- import { GQLSubscriptionStatusesEnum } from '../types/Graphql.type';
14
+ import { GQLSubscriptionStatusesEnum } from '../Graphql.type';
15
15
 
16
16
  /**
17
17
  * NewsletterSubscription Mutations
@@ -11,7 +11,7 @@
11
11
 
12
12
  import { Field, Mutation, Query } from '@tilework/opus';
13
13
 
14
- import { GQLCurrencyEnum } from '../types/Graphql.type';
14
+ import { GQLCurrencyEnum } from '../Graphql.type';
15
15
 
16
16
  import {
17
17
  BundleOption,
@@ -9,8 +9,8 @@
9
9
  * @link https://github.com/scandipwa/scandipwa
10
10
  */
11
11
 
12
- import { GQLCurrencyEnum } from '../types/Graphql.type';
13
- import { Order as DomainOrder, CartItem as DomainCartItem, Product as DomainProduct } from '../types/domain';
12
+ import { GQLCurrencyEnum } from '../Graphql.type';
13
+ import { Order as DomainOrder, CartItem as DomainCartItem, Product as DomainProduct } from '../domain';
14
14
 
15
15
  export interface CustomerDownloadableProduct {
16
16
  order_id: string;
@@ -1,4 +1,4 @@
1
- import { PaymentIntent as DomainPaymentIntent } from '../types/domain';
1
+ import { PaymentIntent as DomainPaymentIntent } from '../domain';
2
2
 
3
3
  export interface PaymentFragment {
4
4
  id: string;
@@ -29,7 +29,7 @@ import {
29
29
  normalizeCompareList,
30
30
  } from './ProductCompare.type';
31
31
  import { CustomizableProductFragmentOptions } from './ProductList.type';
32
- import { Product as DomainProduct } from '../types/domain';
32
+ import { Product as DomainProduct } from '../domain';
33
33
 
34
34
  /** @namespace ../../normalizers/ProductCompare/Query */
35
35
  export class ProductCompareQuery extends ProductListQuery {
@@ -13,7 +13,7 @@ import {
13
13
  ComplexTextValue,
14
14
  GroupedProductItem,
15
15
  } from './ProductList.type';
16
- import { Product as DomainProduct } from '../types/domain';
16
+ import { Product as DomainProduct } from '../domain';
17
17
 
18
18
  // Normalize a comparable product into a domain-friendly product + compare metadata
19
19
  export function normalizeComparableProduct(raw: any): ComparableProduct {
@@ -19,8 +19,8 @@ import {
19
19
  GQLPriceTypeEnum,
20
20
  GQLProductStockStatus,
21
21
  GQLShipBundleItemsEnum,
22
- } from '../types/Graphql.type';
23
- import BrowserDatabase from '../utils/BrowserDatabase';
22
+ } from '../Graphql.type';
23
+ import BrowserDatabase from '../../utils/BrowserDatabase';
24
24
 
25
25
  import {
26
26
  Aggregation,
@@ -19,9 +19,9 @@ import {
19
19
  GQLPriceTypeEnum,
20
20
  GQLProductStockStatus,
21
21
  GQLShipBundleItemsEnum,
22
- } from '../types/Graphql.type';
22
+ } from '../Graphql.type';
23
23
 
24
- import { Product as DomainProduct } from '../types/domain';
24
+ import { Product as DomainProduct } from '../domain';
25
25
 
26
26
  export interface ProductStockItem {
27
27
  in_stock: boolean;
@@ -1,5 +1,5 @@
1
1
  import { normalizeOrder } from './Order.type';
2
- import type { Order as DomainOrder } from '../types/domain';
2
+ import type { Order as DomainOrder } from '../domain';
3
3
 
4
4
  // Normalize return objects (customer returns / RMA) into a stable shape.
5
5
  // Returns frequently contain returned items and refund-related totals.
@@ -11,7 +11,7 @@
11
11
 
12
12
  import { Field, Mutation, Query } from '@tilework/opus';
13
13
 
14
- import { GQLCreateProductReviewInput } from '../types/Graphql.type';
14
+ import { GQLCreateProductReviewInput } from '../Graphql.type';
15
15
 
16
16
  import {
17
17
  CreateProductReviewOutput,
@@ -26,7 +26,7 @@ export interface CreateProductReviewOutput {
26
26
  };
27
27
  }
28
28
 
29
- import type { Review as DomainReview } from '../types/domain';
29
+ import type { Review as DomainReview } from '../domain';
30
30
 
31
31
  export function normalizeReview(raw: any): DomainReview {
32
32
  if (!raw) return raw;
@@ -11,7 +11,7 @@
11
11
 
12
12
  import { Field, Query } from '@tilework/opus';
13
13
 
14
- import { GQLProductInfoInput } from '../types/Graphql.type';
14
+ import { GQLProductInfoInput } from '../Graphql.type';
15
15
 
16
16
  import { Store, normalizeStore } from './StoreInPickUp.type';
17
17
 
@@ -1,4 +1,4 @@
1
- import { Subscription as DomainSubscription } from '../types/domain';
1
+ import { Subscription as DomainSubscription } from '../domain';
2
2
 
3
3
  export interface SubscriptionFragment {
4
4
  id: string;
@@ -1,4 +1,4 @@
1
- import { PaymentIntent as DomainPaymentIntent } from '../types/domain';
1
+ import { PaymentIntent as DomainPaymentIntent } from '../domain';
2
2
 
3
3
  export function normalizeTransaction(raw: any): DomainPaymentIntent {
4
4
  if (!raw) return raw;
@@ -11,7 +11,7 @@
11
11
  import { Field, Query } from '@tilework/opus';
12
12
 
13
13
  import { CategoryDisplayMode } from '../routes/CategoryPage/CategoryPage.config';
14
- import { GQLUrlRewriteEntityTypeEnum } from '../types/Graphql.type';
14
+ import { GQLUrlRewriteEntityTypeEnum } from '../Graphql.type';
15
15
 
16
16
  import {
17
17
  UrlRewritesOutput,
@@ -10,7 +10,7 @@
10
10
  */
11
11
 
12
12
  import { CategoryDisplayMode } from '../routes/CategoryPage/CategoryPage.config';
13
- import { GQLUrlRewriteEntityTypeEnum } from '../types/Graphql.type';
13
+ import { GQLUrlRewriteEntityTypeEnum } from '../Graphql.type';
14
14
 
15
15
  export interface UrlRewritesOutput {
16
16
  sku: string;
@@ -17,11 +17,11 @@ import {
17
17
  GQLShareWishlistInput,
18
18
  GQLWishlistItemInput,
19
19
  GQLWishlistItemUpdateInput,
20
- } from '../types/Graphql.type';
21
- import { isSignedIn } from '../utils/Auth/IsSignedIn';
22
- import { getCartId } from '../utils/Cart';
20
+ } from '../Graphql.type';
21
+ import { isSignedIn } from '../../utils/Auth/IsSignedIn';
22
+ import { getCartId } from '../../utils/Cart';
23
23
 
24
- import { Product as DomainProduct } from '../types/domain';
24
+ import { Product as DomainProduct } from '../domain';
25
25
  import {
26
26
  ItemOption,
27
27
  Wishlist,
@@ -9,7 +9,7 @@
9
9
  * @link https://github.com/scandipwa/scandipwa
10
10
  */
11
11
 
12
- import { Product as DomainProduct } from '../types/domain';
12
+ import { Product as DomainProduct } from '../domain';
13
13
 
14
14
  export interface ItemOption {
15
15
  label: string;
@@ -9,7 +9,7 @@
9
9
  * @link https://github.com/meeovi/mframework
10
10
  */
11
11
 
12
- import { Country } from '../../normalizers/Region.type';
12
+ import { Country } from '../../types/normalizers/Region.type';
13
13
 
14
14
  export interface ZippopotamResponseResult {
15
15
  city: string;
@@ -9,11 +9,11 @@
9
9
  * @link https://github.com/meeovi/mframework
10
10
  */
11
11
 
12
- import { CustomerAddress } from '../../normalizers/MyAccount.type';
13
- import { OrderAddress } from '../../normalizers/Order.type';
14
- import { Country, Region } from '../../normalizers/Region.type';
15
- import { Store } from '../../normalizers/StoreInPickUp.type';
16
- import { CheckoutAddress } from '../../routes/Checkout/Checkout.type';
12
+ import { CustomerAddress } from '../../types/normalizers/MyAccount.type';
13
+ import { OrderAddress } from '../../types/normalizers/Order.type';
14
+ import { Country, Region } from '../../types/normalizers/Region.type';
15
+ import { Store } from '../../types/normalizers/StoreInPickUp.type';
16
+ import { CheckoutAddress } from '../../types/routes/Checkout/Checkout.type';
17
17
  import { GQLCountryCodeEnum, GQLCustomerAddressInput } from '../../types/Graphql.type';
18
18
  import { getStoreState } from '../../utils/Store';
19
19
 
@@ -9,7 +9,7 @@
9
9
  * @link https://github.com/meeovi/mframework
10
10
  */
11
11
 
12
- import { ShippingMethod } from '../../normalizers/Checkout.type';
12
+ import { ShippingMethod } from '../../types/normalizers/Checkout.type';
13
13
  import { IndexedCartItem } from '../../stores/Cart/Cart.type';
14
14
  import { RootState } from '../../utils/Store/Store.type';
15
15
 
@@ -9,7 +9,7 @@
9
9
  * @link https://github.com/meeovi/mframework
10
10
  */
11
11
 
12
- import { Currencies, CurrencyData } from '../../normalizers/Config.type';
12
+ import { Currencies, CurrencyData } from '../../types/normalizers/Config.type';
13
13
  import BrowserDatabase from '../../utils/BrowserDatabase';
14
14
  import { getStoreState } from '../../utils/Store';
15
15
 
@@ -9,7 +9,7 @@
9
9
  * @link https://github.com/meeovi/mframework
10
10
  */
11
11
 
12
- import { CategoryDisplayMode } from '../../routes/CategoryPage/CategoryPage.config';
12
+ import { CategoryDisplayMode } from '../../types/routes/CategoryPage/CategoryPage.config';
13
13
  import { IndexedProduct } from '../../utils/Product/Product.type';
14
14
 
15
15
  export interface HistoryState {
@@ -9,7 +9,7 @@
9
9
  * @link https://github.com/meeovi/mframework
10
10
  */
11
11
 
12
- import { MenuItem } from '../../normalizers/Menu.type';
12
+ import { MenuItem } from '../../types/normalizers/Menu.type';
13
13
  import { getUrlPathname } from '../../utils/Url';
14
14
 
15
15
  import { FormattedMenuItem, MenuLocation } from './Menu.type';
@@ -9,8 +9,8 @@
9
9
  * @link https://github.com/meeovi/mframework
10
10
  */
11
11
 
12
- import { MenuItem } from '../../normalizers/Menu.type';
13
- import { CategoryDisplayMode } from '../../routes/CategoryPage/CategoryPage.config';
12
+ import { MenuItem } from '../../types/normalizers/Menu.type';
13
+ import { CategoryDisplayMode } from '../../types/routes/CategoryPage/CategoryPage.config';
14
14
  import { Merge } from '../../types/Common.type';
15
15
 
16
16
  export interface MenuLocation {
@@ -12,7 +12,7 @@
12
12
 
13
13
  import {
14
14
  InvoiceItem, OrderItem, OrderItemProduct, RefundItem, ShipmentItemInterface,
15
- } from '../../normalizers/Order.type';
15
+ } from '../../types/normalizers/Order.type';
16
16
  import { decodeBase64 } from '../../utils/Base64';
17
17
 
18
18
  import { OrderItemQtyArray } from './Orders.type';
@@ -9,8 +9,8 @@
9
9
  * @link https://github.com/meeovi/mframework
10
10
  */
11
11
 
12
- import { ProductListOptions } from '../../normalizers/ProductList.type';
13
- import { SortDirections } from '../../routes/CategoryPage/CategoryPage.config';
12
+ import { ProductListOptions } from '../../types/normalizers/ProductList.type';
13
+ import { SortDirections } from '../../types/routes/CategoryPage/CategoryPage.config';
14
14
  import ProductListDispatcher from '../../stores/ProductList/ProductList.dispatcher';
15
15
  import history from '../../utils/History';
16
16
  import getStore from '../../utils/Store';
@@ -9,7 +9,7 @@
9
9
  * @link https://github.com/meeovi/mframework
10
10
  */
11
11
 
12
- import { ProductListOptions } from '../../normalizers/ProductList.type';
12
+ import { ProductListOptions } from '../../types/normalizers/ProductList.type';
13
13
  import ProductDispatcher from '../../stores/Product/Product.dispatcher';
14
14
  import getStore from '../../utils/Store';
15
15
 
@@ -9,7 +9,7 @@
9
9
  * @link https://github.com/meeovi/mframework
10
10
  */
11
11
 
12
- import { UrlRewritePageType } from '../../routes/UrlRewrites/UrlRewrites.config';
12
+ import { UrlRewritePageType } from '../../types/routes/UrlRewrites/UrlRewrites.config';
13
13
  // Reducers removed — migration to Pinia stores; keep Preload minimal
14
14
  import BrowserDatabase from '../../utils/BrowserDatabase';
15
15
  import { isMobile } from '../../utils/Mobile';