@numueg/theme-sdk 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkTBSNHHFH_cjs = require('./chunk-TBSNHHFH.cjs');
4
- var chunkX3J4GDI7_cjs = require('./chunk-X3J4GDI7.cjs');
5
- var chunk3C37JX2X_cjs = require('./chunk-3C37JX2X.cjs');
4
+ var chunkKWODVI7F_cjs = require('./chunk-KWODVI7F.cjs');
5
+ var chunkIBNAZRUT_cjs = require('./chunk-IBNAZRUT.cjs');
6
6
  var react = require('react');
7
7
  var client = require('react-dom/client');
8
8
  var jsxRuntime = require('react/jsx-runtime');
@@ -10,28 +10,28 @@ var jsxRuntime = require('react/jsx-runtime');
10
10
  // src/types/theme.ts
11
11
  var MAX_BLOCK_DEPTH = 5;
12
12
  function useProduct() {
13
- const ctx = react.useContext(chunk3C37JX2X_cjs.ProductContext);
13
+ const ctx = react.useContext(chunkIBNAZRUT_cjs.ProductContext);
14
14
  if (!ctx) throw new Error("useProduct must be used within ProductProvider");
15
15
  return ctx;
16
16
  }
17
17
  function useProductOptional() {
18
- return react.useContext(chunk3C37JX2X_cjs.ProductContext);
18
+ return react.useContext(chunkIBNAZRUT_cjs.ProductContext);
19
19
  }
20
20
  function useCollection() {
21
- const ctx = react.useContext(chunk3C37JX2X_cjs.CollectionContext);
21
+ const ctx = react.useContext(chunkIBNAZRUT_cjs.CollectionContext);
22
22
  if (!ctx) throw new Error("useCollection must be used within CollectionProvider");
23
23
  return ctx;
24
24
  }
25
25
  function useCollectionOptional() {
26
- return react.useContext(chunk3C37JX2X_cjs.CollectionContext);
26
+ return react.useContext(chunkIBNAZRUT_cjs.CollectionContext);
27
27
  }
28
28
  function useCart() {
29
- const ctx = react.useContext(chunk3C37JX2X_cjs.CartContext);
29
+ const ctx = react.useContext(chunkIBNAZRUT_cjs.CartContext);
30
30
  if (!ctx) throw new Error("useCart must be used within NuMuProvider");
31
31
  return ctx;
32
32
  }
33
33
  function useCurrentTemplate() {
34
- return react.useContext(chunk3C37JX2X_cjs.CurrentTemplateContext);
34
+ return react.useContext(chunkIBNAZRUT_cjs.CurrentTemplateContext);
35
35
  }
36
36
  var SectionContext = react.createContext(null);
37
37
  function useSection() {
@@ -44,7 +44,7 @@ function useSectionOptional() {
44
44
  }
45
45
  var EMPTY = Object.freeze([]);
46
46
  function useSectionGroup(group) {
47
- const settings = react.useContext(chunk3C37JX2X_cjs.ThemeSettingsContext);
47
+ const settings = react.useContext(chunkIBNAZRUT_cjs.ThemeSettingsContext);
48
48
  return react.useMemo(() => {
49
49
  const grp = settings?.section_groups?.[group];
50
50
  if (!grp || !Array.isArray(grp.order) || grp.order.length === 0) {
@@ -61,8 +61,8 @@ function useSectionGroup(group) {
61
61
  }, [settings, group]);
62
62
  }
63
63
  function useCurrency() {
64
- const ctx = react.useContext(chunk3C37JX2X_cjs.CurrencyContext);
65
- const shop = chunk3C37JX2X_cjs.useShop();
64
+ const ctx = react.useContext(chunkIBNAZRUT_cjs.CurrencyContext);
65
+ const shop = chunkIBNAZRUT_cjs.useShop();
66
66
  const fallback = react.useMemo(() => {
67
67
  const ccy = shop?.currency || "EGP";
68
68
  return {
@@ -82,8 +82,8 @@ function useCurrency() {
82
82
 
83
83
  // src/hooks/useMoney.ts
84
84
  function useMoney(currencyOverride) {
85
- const { formatMoney } = chunk3C37JX2X_cjs.useLocalization();
86
- const shop = chunk3C37JX2X_cjs.useShop();
85
+ const { formatMoney } = chunkIBNAZRUT_cjs.useLocalization();
86
+ const shop = chunkIBNAZRUT_cjs.useShop();
87
87
  const { selected, base, autoConvert, convert } = useCurrency();
88
88
  return (amount) => {
89
89
  const shouldConvert = autoConvert && !currencyOverride && !!selected && selected !== base;
@@ -131,7 +131,7 @@ function unwrap(json) {
131
131
  return json;
132
132
  }
133
133
  function useOrders() {
134
- const customer = chunk3C37JX2X_cjs.useCustomer();
134
+ const customer = chunkIBNAZRUT_cjs.useCustomer();
135
135
  const [orders, setOrders] = react.useState([]);
136
136
  const [loading, setLoading] = react.useState(false);
137
137
  const [error, setError] = react.useState(null);
@@ -178,7 +178,7 @@ function useOrders() {
178
178
  };
179
179
  }
180
180
  function useOrder(id) {
181
- const customer = chunk3C37JX2X_cjs.useCustomer();
181
+ const customer = chunkIBNAZRUT_cjs.useCustomer();
182
182
  const [order, setOrder] = react.useState(null);
183
183
  const [loading, setLoading] = react.useState(false);
184
184
  const [error, setError] = react.useState(null);
@@ -241,7 +241,7 @@ async function readBody(res) {
241
241
  }
242
242
  }
243
243
  function useCustomerAddresses() {
244
- const customer = chunk3C37JX2X_cjs.useCustomer();
244
+ const customer = chunkIBNAZRUT_cjs.useCustomer();
245
245
  const [addresses, setAddresses] = react.useState([]);
246
246
  const [loading, setLoading] = react.useState(false);
247
247
  const [error, setError] = react.useState(null);
@@ -404,8 +404,8 @@ function toNavigationItem(raw, locale) {
404
404
  };
405
405
  }
406
406
  function useNavigation(handle, options) {
407
- const navMap = react.useContext(chunk3C37JX2X_cjs.NavigationContext);
408
- const localization = react.useContext(chunk3C37JX2X_cjs.LocalizationContext);
407
+ const navMap = react.useContext(chunkIBNAZRUT_cjs.NavigationContext);
408
+ const localization = react.useContext(chunkIBNAZRUT_cjs.LocalizationContext);
409
409
  const locale = localization?.locale ?? "en";
410
410
  const hostProvidedAny = !!navMap && Object.keys(navMap).length > 0;
411
411
  const rawItems = handle ? navMap?.[handle] : void 0;
@@ -809,7 +809,7 @@ function useCachedResource(key, fetcher, options) {
809
809
 
810
810
  // src/hooks/useApp.ts
811
811
  function useApp(slug) {
812
- const shop = chunk3C37JX2X_cjs.useShop();
812
+ const shop = chunkIBNAZRUT_cjs.useShop();
813
813
  const key = slug ? `numu:app:${shop.id}:${slug}` : "";
814
814
  const fetcher = react.useCallback(
815
815
  async (signal) => {
@@ -957,7 +957,7 @@ function useRelatedProducts(productId, options = {}) {
957
957
  function useProductSizeChart(productOverride) {
958
958
  const ctxProduct = useProductOptional();
959
959
  const product = productOverride ?? ctxProduct;
960
- const shop = chunk3C37JX2X_cjs.useShop();
960
+ const shop = chunkIBNAZRUT_cjs.useShop();
961
961
  const storeSettings = shop?.settings;
962
962
  return react.useMemo(
963
963
  () => resolveSizeChart(product?.attributes, storeSettings),
@@ -1021,6 +1021,25 @@ function availableValues(product, selection) {
1021
1021
  }
1022
1022
  return out;
1023
1023
  }
1024
+
1025
+ // src/utils/selectionRegistry.ts
1026
+ var selections = /* @__PURE__ */ new Map();
1027
+ function publishVariantSelection(productId, selection) {
1028
+ if (!productId) return;
1029
+ selections.set(productId, selection);
1030
+ }
1031
+ function readVariantSelection(productId) {
1032
+ if (!productId) return null;
1033
+ const sel = selections.get(productId);
1034
+ if (!sel) return null;
1035
+ const filtered = {};
1036
+ for (const [k, v] of Object.entries(sel)) {
1037
+ if (v) filtered[k] = v;
1038
+ }
1039
+ return Object.keys(filtered).length > 0 ? filtered : null;
1040
+ }
1041
+
1042
+ // src/hooks/useVariantSelection.ts
1024
1043
  function useVariantSelection(product, opts = {}) {
1025
1044
  const autoSelect = opts.autoSelect ?? true;
1026
1045
  const initial = react.useMemo(() => {
@@ -1039,6 +1058,9 @@ function useVariantSelection(product, opts = {}) {
1039
1058
  () => findVariantByOptions(product, selection),
1040
1059
  [product, selection]
1041
1060
  );
1061
+ react.useEffect(() => {
1062
+ publishVariantSelection(product.id, selection);
1063
+ }, [product.id, selection]);
1042
1064
  const availability = react.useMemo(
1043
1065
  () => availableValues(product, selection),
1044
1066
  [product, selection]
@@ -1706,13 +1728,15 @@ function NuMuProvider({
1706
1728
  [reserveToken, buildApplyCart]
1707
1729
  );
1708
1730
  const addItem = react.useCallback(
1709
- async (productId, variantId, quantity) => {
1731
+ async (productId, variantId, quantity, selectedOptions) => {
1710
1732
  const eventId = typeof crypto !== "undefined" && crypto.randomUUID ? crypto.randomUUID() : `${Date.now()}`;
1711
1733
  const qty = quantity || 1;
1734
+ const axes = selectedOptions && Object.keys(selectedOptions).length > 0 ? selectedOptions : readVariantSelection(productId) ?? void 0;
1712
1735
  const result = await mutate("/api/cart/add", {
1713
1736
  product_id: productId,
1714
1737
  variant_id: variantId,
1715
1738
  quantity: qty,
1739
+ selected_options: axes,
1716
1740
  _event_id: eventId
1717
1741
  });
1718
1742
  if (!result.ok) return result;
@@ -1972,13 +1996,13 @@ function NuMuProvider({
1972
1996
  convertCurrency
1973
1997
  ]
1974
1998
  );
1975
- return /* @__PURE__ */ jsxRuntime.jsx(chunk3C37JX2X_cjs.ShopContext.Provider, { value: store, children: /* @__PURE__ */ jsxRuntime.jsx(chunk3C37JX2X_cjs.ThemeSettingsContext.Provider, { value: themeSettings, children: /* @__PURE__ */ jsxRuntime.jsx(chunk3C37JX2X_cjs.CurrentTemplateContext.Provider, { value: currentTemplate, children: /* @__PURE__ */ jsxRuntime.jsx(chunk3C37JX2X_cjs.PageContext.Provider, { value: pageValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunk3C37JX2X_cjs.LocalizationContext.Provider, { value: localization, children: /* @__PURE__ */ jsxRuntime.jsx(chunk3C37JX2X_cjs.CurrencyContext.Provider, { value: currencyValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunk3C37JX2X_cjs.CartContext.Provider, { value: cartValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunk3C37JX2X_cjs.CustomerContext.Provider, { value: customerState, children: /* @__PURE__ */ jsxRuntime.jsx(CustomerActionsContext.Provider, { value: customerActions, children: /* @__PURE__ */ jsxRuntime.jsx(chunk3C37JX2X_cjs.NavigationContext.Provider, { value: navigation ?? {}, children }) }) }) }) }) }) }) }) }) });
1999
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkIBNAZRUT_cjs.ShopContext.Provider, { value: store, children: /* @__PURE__ */ jsxRuntime.jsx(chunkIBNAZRUT_cjs.ThemeSettingsContext.Provider, { value: themeSettings, children: /* @__PURE__ */ jsxRuntime.jsx(chunkIBNAZRUT_cjs.CurrentTemplateContext.Provider, { value: currentTemplate, children: /* @__PURE__ */ jsxRuntime.jsx(chunkIBNAZRUT_cjs.PageContext.Provider, { value: pageValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunkIBNAZRUT_cjs.LocalizationContext.Provider, { value: localization, children: /* @__PURE__ */ jsxRuntime.jsx(chunkIBNAZRUT_cjs.CurrencyContext.Provider, { value: currencyValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunkIBNAZRUT_cjs.CartContext.Provider, { value: cartValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunkIBNAZRUT_cjs.CustomerContext.Provider, { value: customerState, children: /* @__PURE__ */ jsxRuntime.jsx(CustomerActionsContext.Provider, { value: customerActions, children: /* @__PURE__ */ jsxRuntime.jsx(chunkIBNAZRUT_cjs.NavigationContext.Provider, { value: navigation ?? {}, children }) }) }) }) }) }) }) }) }) });
1976
2000
  }
1977
2001
  function ProductProvider({ product, children }) {
1978
- return /* @__PURE__ */ jsxRuntime.jsx(chunk3C37JX2X_cjs.ProductContext.Provider, { value: product, children });
2002
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkIBNAZRUT_cjs.ProductContext.Provider, { value: product, children });
1979
2003
  }
1980
2004
  function CollectionProvider({ collection, children }) {
1981
- return /* @__PURE__ */ jsxRuntime.jsx(chunk3C37JX2X_cjs.CollectionContext.Provider, { value: collection, children });
2005
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkIBNAZRUT_cjs.CollectionContext.Provider, { value: collection, children });
1982
2006
  }
1983
2007
 
1984
2008
  // src/utils/logoStyle.ts
@@ -2317,8 +2341,8 @@ function Money({
2317
2341
  className,
2318
2342
  as = "span"
2319
2343
  }) {
2320
- const { formatMoney } = chunk3C37JX2X_cjs.useLocalization();
2321
- const shop = chunk3C37JX2X_cjs.useShop();
2344
+ const { formatMoney } = chunkIBNAZRUT_cjs.useLocalization();
2345
+ const shop = chunkIBNAZRUT_cjs.useShop();
2322
2346
  const { selected, base, autoConvert, convert } = useCurrency();
2323
2347
  const shouldConvert = autoConvert && !currency && !!selected && selected !== base;
2324
2348
  const ccy = shouldConvert ? selected : currency || shop?.currency;
@@ -2582,8 +2606,8 @@ function Logo({
2582
2606
  style,
2583
2607
  fallback
2584
2608
  }) {
2585
- const settings = chunk3C37JX2X_cjs.useThemeSettings();
2586
- const shop = chunk3C37JX2X_cjs.useShop();
2609
+ const settings = chunkIBNAZRUT_cjs.useThemeSettings();
2610
+ const shop = chunkIBNAZRUT_cjs.useShop();
2587
2611
  const g = settings?.global_settings ?? {};
2588
2612
  const url = str(src) || str(g.logo_url) || shop?.logo_url || "";
2589
2613
  const resolvedShape = shape || str(g.logo_shape) || "none";
@@ -2609,19 +2633,40 @@ function Logo({
2609
2633
  );
2610
2634
  }
2611
2635
  var ABSOLUTE_URL = /^[a-z]+:|^\/\//i;
2612
- function Link({ to, children, ...rest }) {
2613
- const shop = chunk3C37JX2X_cjs.useShop();
2636
+ var NAVIGATE_EVENT = "numu:navigate";
2637
+ function requestNavigate(href) {
2638
+ if (typeof window === "undefined") return false;
2639
+ const event = new CustomEvent(NAVIGATE_EVENT, {
2640
+ detail: { href },
2641
+ cancelable: true
2642
+ });
2643
+ return !window.dispatchEvent(event);
2644
+ }
2645
+ function Link({ to, children, onClick, ...rest }) {
2646
+ const shop = chunkIBNAZRUT_cjs.useShop();
2614
2647
  const isAbsolute = ABSOLUTE_URL.test(to);
2615
2648
  let href = to;
2616
2649
  if (!isAbsolute && shop && !to.startsWith("/")) {
2617
2650
  href = `/${to}`;
2618
2651
  }
2619
- return /* @__PURE__ */ jsxRuntime.jsx("a", { href, ...rest, children });
2652
+ const handleClick = (e) => {
2653
+ onClick?.(e);
2654
+ if (e.defaultPrevented) return;
2655
+ if (e.button !== 0) return;
2656
+ if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;
2657
+ if (rest.target && rest.target !== "_self") return;
2658
+ if (rest.download !== void 0) return;
2659
+ if (isAbsolute) return;
2660
+ if (to.startsWith("#") || href.startsWith("#")) return;
2661
+ if (requestNavigate(href)) e.preventDefault();
2662
+ };
2663
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href, onClick: handleClick, ...rest, children });
2620
2664
  }
2621
2665
  function AddToCartButton({
2622
2666
  product,
2623
2667
  variant,
2624
2668
  quantity = 1,
2669
+ selectedOptions,
2625
2670
  label = "Add to cart",
2626
2671
  loadingLabel = "Adding\u2026",
2627
2672
  soldOutLabel = "Sold out",
@@ -2648,7 +2693,7 @@ function AddToCartButton({
2648
2693
  if (state === "adding") return;
2649
2694
  setState("adding");
2650
2695
  try {
2651
- await addItem(product.id, variant?.id, quantity);
2696
+ await addItem(product.id, variant?.id, quantity, selectedOptions);
2652
2697
  setState("idle");
2653
2698
  onAdded?.(product, variant);
2654
2699
  } catch {
@@ -3163,8 +3208,8 @@ function LocaleSwitcher({
3163
3208
  onSelect,
3164
3209
  render
3165
3210
  }) {
3166
- const shop = chunk3C37JX2X_cjs.useShop();
3167
- const { locale } = chunk3C37JX2X_cjs.useLocalization();
3211
+ const shop = chunkIBNAZRUT_cjs.useShop();
3212
+ const { locale } = chunkIBNAZRUT_cjs.useLocalization();
3168
3213
  const available = shop.available_locales || [];
3169
3214
  const list = available.length > 0 ? available : shop.default_language === "en" ? ["en"] : Array.from(/* @__PURE__ */ new Set([shop.default_language, "en"]));
3170
3215
  const labelFor = react.useCallback((code) => {
@@ -3569,9 +3614,9 @@ function resolveSettingsMap(settings, ctx) {
3569
3614
  return out;
3570
3615
  }
3571
3616
  function useResolvedSettings(instance) {
3572
- const product = react.useContext(chunk3C37JX2X_cjs.ProductContext);
3573
- const collection = react.useContext(chunk3C37JX2X_cjs.CollectionContext);
3574
- const store = react.useContext(chunk3C37JX2X_cjs.ShopContext);
3617
+ const product = react.useContext(chunkIBNAZRUT_cjs.ProductContext);
3618
+ const collection = react.useContext(chunkIBNAZRUT_cjs.CollectionContext);
3619
+ const store = react.useContext(chunkIBNAZRUT_cjs.ShopContext);
3575
3620
  const ctx = react.useMemo(
3576
3621
  () => ({ product, collection, store }),
3577
3622
  [product, collection, store]
@@ -3751,131 +3796,131 @@ Object.defineProperty(exports, "resolveThemeSettings", {
3751
3796
  });
3752
3797
  Object.defineProperty(exports, "KNOWN_SETTING_TYPES", {
3753
3798
  enumerable: true,
3754
- get: function () { return chunkX3J4GDI7_cjs.KNOWN_SETTING_TYPES; }
3799
+ get: function () { return chunkKWODVI7F_cjs.KNOWN_SETTING_TYPES; }
3755
3800
  });
3756
3801
  Object.defineProperty(exports, "KNOWN_TEMPLATES", {
3757
3802
  enumerable: true,
3758
- get: function () { return chunkX3J4GDI7_cjs.KNOWN_TEMPLATES; }
3803
+ get: function () { return chunkKWODVI7F_cjs.KNOWN_TEMPLATES; }
3759
3804
  });
3760
3805
  Object.defineProperty(exports, "REQUIRED_TEMPLATES", {
3761
3806
  enumerable: true,
3762
- get: function () { return chunkX3J4GDI7_cjs.REQUIRED_TEMPLATES; }
3807
+ get: function () { return chunkKWODVI7F_cjs.REQUIRED_TEMPLATES; }
3763
3808
  });
3764
3809
  Object.defineProperty(exports, "SDK_VERSION", {
3765
3810
  enumerable: true,
3766
- get: function () { return chunkX3J4GDI7_cjs.SDK_VERSION; }
3811
+ get: function () { return chunkKWODVI7F_cjs.SDK_VERSION; }
3767
3812
  });
3768
3813
  Object.defineProperty(exports, "THEME_CONTRACT_VERSION", {
3769
3814
  enumerable: true,
3770
- get: function () { return chunkX3J4GDI7_cjs.THEME_CONTRACT_VERSION; }
3815
+ get: function () { return chunkKWODVI7F_cjs.THEME_CONTRACT_VERSION; }
3771
3816
  });
3772
3817
  Object.defineProperty(exports, "mergeResults", {
3773
3818
  enumerable: true,
3774
- get: function () { return chunkX3J4GDI7_cjs.mergeResults; }
3819
+ get: function () { return chunkKWODVI7F_cjs.mergeResults; }
3775
3820
  });
3776
3821
  Object.defineProperty(exports, "validateBuiltManifest", {
3777
3822
  enumerable: true,
3778
- get: function () { return chunkX3J4GDI7_cjs.validateBuiltManifest; }
3823
+ get: function () { return chunkKWODVI7F_cjs.validateBuiltManifest; }
3779
3824
  });
3780
3825
  Object.defineProperty(exports, "validateManifest", {
3781
3826
  enumerable: true,
3782
- get: function () { return chunkX3J4GDI7_cjs.validateManifest; }
3827
+ get: function () { return chunkKWODVI7F_cjs.validateManifest; }
3783
3828
  });
3784
3829
  Object.defineProperty(exports, "validateSectionSchema", {
3785
3830
  enumerable: true,
3786
- get: function () { return chunkX3J4GDI7_cjs.validateSectionSchema; }
3831
+ get: function () { return chunkKWODVI7F_cjs.validateSectionSchema; }
3787
3832
  });
3788
3833
  Object.defineProperty(exports, "validateSettingsAgainstSchema", {
3789
3834
  enumerable: true,
3790
- get: function () { return chunkX3J4GDI7_cjs.validateSettingsAgainstSchema; }
3835
+ get: function () { return chunkKWODVI7F_cjs.validateSettingsAgainstSchema; }
3791
3836
  });
3792
3837
  Object.defineProperty(exports, "CartContext", {
3793
3838
  enumerable: true,
3794
- get: function () { return chunk3C37JX2X_cjs.CartContext; }
3839
+ get: function () { return chunkIBNAZRUT_cjs.CartContext; }
3795
3840
  });
3796
3841
  Object.defineProperty(exports, "CollectionContext", {
3797
3842
  enumerable: true,
3798
- get: function () { return chunk3C37JX2X_cjs.CollectionContext; }
3843
+ get: function () { return chunkIBNAZRUT_cjs.CollectionContext; }
3799
3844
  });
3800
3845
  Object.defineProperty(exports, "CurrencyContext", {
3801
3846
  enumerable: true,
3802
- get: function () { return chunk3C37JX2X_cjs.CurrencyContext; }
3847
+ get: function () { return chunkIBNAZRUT_cjs.CurrencyContext; }
3803
3848
  });
3804
3849
  Object.defineProperty(exports, "CustomerContext", {
3805
3850
  enumerable: true,
3806
- get: function () { return chunk3C37JX2X_cjs.CustomerContext; }
3851
+ get: function () { return chunkIBNAZRUT_cjs.CustomerContext; }
3807
3852
  });
3808
3853
  Object.defineProperty(exports, "LocalizationContext", {
3809
3854
  enumerable: true,
3810
- get: function () { return chunk3C37JX2X_cjs.LocalizationContext; }
3855
+ get: function () { return chunkIBNAZRUT_cjs.LocalizationContext; }
3811
3856
  });
3812
3857
  Object.defineProperty(exports, "NavigationContext", {
3813
3858
  enumerable: true,
3814
- get: function () { return chunk3C37JX2X_cjs.NavigationContext; }
3859
+ get: function () { return chunkIBNAZRUT_cjs.NavigationContext; }
3815
3860
  });
3816
3861
  Object.defineProperty(exports, "PageContext", {
3817
3862
  enumerable: true,
3818
- get: function () { return chunk3C37JX2X_cjs.PageContext; }
3863
+ get: function () { return chunkIBNAZRUT_cjs.PageContext; }
3819
3864
  });
3820
3865
  Object.defineProperty(exports, "ProductContext", {
3821
3866
  enumerable: true,
3822
- get: function () { return chunk3C37JX2X_cjs.ProductContext; }
3867
+ get: function () { return chunkIBNAZRUT_cjs.ProductContext; }
3823
3868
  });
3824
3869
  Object.defineProperty(exports, "ShopContext", {
3825
3870
  enumerable: true,
3826
- get: function () { return chunk3C37JX2X_cjs.ShopContext; }
3871
+ get: function () { return chunkIBNAZRUT_cjs.ShopContext; }
3827
3872
  });
3828
3873
  Object.defineProperty(exports, "ThemeSettingsContext", {
3829
3874
  enumerable: true,
3830
- get: function () { return chunk3C37JX2X_cjs.ThemeSettingsContext; }
3875
+ get: function () { return chunkIBNAZRUT_cjs.ThemeSettingsContext; }
3831
3876
  });
3832
3877
  Object.defineProperty(exports, "useCollections", {
3833
3878
  enumerable: true,
3834
- get: function () { return chunk3C37JX2X_cjs.useCollections; }
3879
+ get: function () { return chunkIBNAZRUT_cjs.useCollections; }
3835
3880
  });
3836
3881
  Object.defineProperty(exports, "useCustomer", {
3837
3882
  enumerable: true,
3838
- get: function () { return chunk3C37JX2X_cjs.useCustomer; }
3883
+ get: function () { return chunkIBNAZRUT_cjs.useCustomer; }
3839
3884
  });
3840
3885
  Object.defineProperty(exports, "useDirection", {
3841
3886
  enumerable: true,
3842
- get: function () { return chunk3C37JX2X_cjs.useDirection; }
3887
+ get: function () { return chunkIBNAZRUT_cjs.useDirection; }
3843
3888
  });
3844
3889
  Object.defineProperty(exports, "useFieldTranslation", {
3845
3890
  enumerable: true,
3846
- get: function () { return chunk3C37JX2X_cjs.useFieldTranslation; }
3891
+ get: function () { return chunkIBNAZRUT_cjs.useFieldTranslation; }
3847
3892
  });
3848
3893
  Object.defineProperty(exports, "useLocale", {
3849
3894
  enumerable: true,
3850
- get: function () { return chunk3C37JX2X_cjs.useLocale; }
3895
+ get: function () { return chunkIBNAZRUT_cjs.useLocale; }
3851
3896
  });
3852
3897
  Object.defineProperty(exports, "useLocalization", {
3853
3898
  enumerable: true,
3854
- get: function () { return chunk3C37JX2X_cjs.useLocalization; }
3899
+ get: function () { return chunkIBNAZRUT_cjs.useLocalization; }
3855
3900
  });
3856
3901
  Object.defineProperty(exports, "useNumberFormat", {
3857
3902
  enumerable: true,
3858
- get: function () { return chunk3C37JX2X_cjs.useNumberFormat; }
3903
+ get: function () { return chunkIBNAZRUT_cjs.useNumberFormat; }
3859
3904
  });
3860
3905
  Object.defineProperty(exports, "usePage", {
3861
3906
  enumerable: true,
3862
- get: function () { return chunk3C37JX2X_cjs.usePage; }
3907
+ get: function () { return chunkIBNAZRUT_cjs.usePage; }
3863
3908
  });
3864
3909
  Object.defineProperty(exports, "useProducts", {
3865
3910
  enumerable: true,
3866
- get: function () { return chunk3C37JX2X_cjs.useProducts; }
3911
+ get: function () { return chunkIBNAZRUT_cjs.useProducts; }
3867
3912
  });
3868
3913
  Object.defineProperty(exports, "useShop", {
3869
3914
  enumerable: true,
3870
- get: function () { return chunk3C37JX2X_cjs.useShop; }
3915
+ get: function () { return chunkIBNAZRUT_cjs.useShop; }
3871
3916
  });
3872
3917
  Object.defineProperty(exports, "useThemeSettings", {
3873
3918
  enumerable: true,
3874
- get: function () { return chunk3C37JX2X_cjs.useThemeSettings; }
3919
+ get: function () { return chunkIBNAZRUT_cjs.useThemeSettings; }
3875
3920
  });
3876
3921
  Object.defineProperty(exports, "useTranslation", {
3877
3922
  enumerable: true,
3878
- get: function () { return chunk3C37JX2X_cjs.useTranslation; }
3923
+ get: function () { return chunkIBNAZRUT_cjs.useTranslation; }
3879
3924
  });
3880
3925
  exports.AddToCartButton = AddToCartButton;
3881
3926
  exports.Block = Block;
@@ -3897,6 +3942,7 @@ exports.LocaleSwitcher = LocaleSwitcher;
3897
3942
  exports.Logo = Logo;
3898
3943
  exports.MAX_BLOCK_DEPTH = MAX_BLOCK_DEPTH;
3899
3944
  exports.Money = Money;
3945
+ exports.NAVIGATE_EVENT = NAVIGATE_EVENT;
3900
3946
  exports.NuMuProvider = NuMuProvider;
3901
3947
  exports.ProductCard = ProductCard;
3902
3948
  exports.ProductProvider = ProductProvider;
@@ -3932,8 +3978,11 @@ exports.logoImgStyle = logoImgStyle;
3932
3978
  exports.logoStyleTokens = logoStyleTokens;
3933
3979
  exports.mountTheme = mountTheme;
3934
3980
  exports.pickTranslations = pickTranslations;
3981
+ exports.publishVariantSelection = publishVariantSelection;
3982
+ exports.readVariantSelection = readVariantSelection;
3935
3983
  exports.registerReactSingleton = registerReactSingleton;
3936
3984
  exports.registerSdkSingleton = registerSdkSingleton;
3985
+ exports.requestNavigate = requestNavigate;
3937
3986
  exports.resolveDynamicValue = resolveDynamicValue;
3938
3987
  exports.resolveFontStack = resolveFontStack;
3939
3988
  exports.resolveSettingsMap = resolveSettingsMap;