@useinsider/guido 3.16.0-beta.c615198 → 3.16.0-beta.f1a5d40

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/README.md CHANGED
@@ -633,16 +633,16 @@ toaster fires (useful before the host has wired the catalog).
633
633
 
634
634
  ```bash
635
635
  # Install
636
- bun install
636
+ npm install
637
637
 
638
638
  # Start dev server
639
- bun start
639
+ npm start
640
640
 
641
641
  # Build
642
- bun run build
642
+ npm run build
643
643
 
644
644
  # Lint & type-check
645
- bun run lint
645
+ npm run lint
646
646
  ```
647
647
 
648
648
  ### Environment Variables
@@ -660,7 +660,7 @@ VITE_STRIPO_USER=your_user
660
660
 
661
661
  ```bash
662
662
  # Build the package
663
- bun run build
663
+ npm run build
664
664
 
665
665
  # Create tarball
666
666
  npm pack
@@ -3,21 +3,20 @@ import { MinDeviceViewport as C, DefaultPadding as b } from "../enums/recommenda
3
3
  import { useRecommendationExtensionStore as l } from "../extensions/Blocks/Recommendation/store/recommendation.js";
4
4
  import { generateCompleteFilterQuery as h } from "../extensions/Blocks/Recommendation/utils/filterUtil.js";
5
5
  import { getPartnerRecommendationParams as y } from "../extensions/Blocks/Recommendation/utils/partnerCustomizations.js";
6
- import { sanitizeProductIds as x } from "../extensions/Blocks/Recommendation/utils/productIds.js";
7
- import { useConfigStore as P } from "../stores/config.js";
8
- const B = () => ({
6
+ import { useConfigStore as x } from "../stores/config.js";
7
+ const k = () => ({
9
8
  calculateCardWidth: ({
10
9
  mobileLeftPadding: a,
11
10
  mobileRightPadding: s,
12
11
  cardsInRow: c,
13
- unresponsive: n
12
+ unresponsive: o
14
13
  }) => {
15
- const r = n ? c : 1, e = a + s + (r - 1) * b;
14
+ const r = o ? c : 1, e = a + s + (r - 1) * b;
16
15
  return (C - e) / r;
17
16
  },
18
17
  getRecommendationCampaignData: (a) => {
19
- const s = l(), c = Number(a), n = s.blockStates[c];
20
- if (!n)
18
+ const s = l(), c = Number(a), o = s.blockStates[c];
19
+ if (!o)
21
20
  return {
22
21
  textTrimming: !1,
23
22
  orientation: "vertical",
@@ -30,7 +29,7 @@ const B = () => ({
30
29
  discountBeforeTextValue: "",
31
30
  discountAfterTextValue: ""
32
31
  };
33
- const { recommendationConfigs: r } = n, e = r.orientation === "grid" ? "vertical" : "horizontal";
32
+ const { recommendationConfigs: r } = o, e = r.orientation === "grid" ? "vertical" : "horizontal";
34
33
  return {
35
34
  textTrimming: r.textTrimming,
36
35
  orientation: e,
@@ -46,7 +45,7 @@ const B = () => ({
46
45
  },
47
46
  buildCampaignUrl: (a, s) => {
48
47
  var m;
49
- const c = l(), n = P(), r = Number(a);
48
+ const c = l(), o = x(), r = Number(a);
50
49
  let e;
51
50
  if (s)
52
51
  e = s;
@@ -54,25 +53,25 @@ const B = () => ({
54
53
  const i = c.blockStates[r];
55
54
  if (!i)
56
55
  return "";
57
- const { recommendationConfigs: o } = i;
56
+ const { recommendationConfigs: n } = i;
58
57
  e = {
59
- strategy: o.strategy,
60
- language: o.language,
61
- currencyCode: o.currencySettings.value,
62
- size: o.size,
63
- productIds: o.productIds,
64
- filters: o.filters,
65
- shuffleProducts: o.shuffleProducts
58
+ strategy: n.strategy,
59
+ language: n.language,
60
+ currencyCode: n.currencySettings.value,
61
+ size: n.size,
62
+ productIds: n.productIds,
63
+ filters: n.filters,
64
+ shuffleProducts: n.shuffleProducts
66
65
  };
67
66
  }
68
67
  const f = ((m = I().find((i) => i.key === e.strategy)) == null ? void 0 : m.path) || "", t = new URLSearchParams();
69
- t.set("locale", e.language), t.set("currency", e.currencyCode), t.set("partnerName", n.partnerName), t.set("size", e.size), t.set("details", "true"), t.set("campaignId", n.variationId), e.strategy === "manualMerchandising" ? t.set("productId", x(e.productIds)) : e.strategy === "similarViewed" && t.set("productId", "{itemId}"), e.strategy === "userBased" && t.set("userId", "{user_id}");
68
+ t.set("locale", e.language), t.set("currency", e.currencyCode), t.set("partnerName", o.partnerName), t.set("size", e.size), t.set("details", "true"), t.set("campaignId", o.variationId), e.strategy === "manualMerchandising" ? t.set("productId", e.productIds.join(",")) : e.strategy === "similarViewed" && t.set("productId", "{itemId}"), e.strategy === "userBased" && t.set("userId", "{user_id}");
70
69
  const g = e.filters.filter((i) => i.isValid), d = h(g);
71
- d && t.set("filter", d), e.shuffleProducts && t.set("shuffle", "true"), Object.entries(y(n.partnerName, e.strategy)).forEach(([i, o]) => t.set(i, o));
70
+ d && t.set("filter", d), e.shuffleProducts && t.set("shuffle", "true"), Object.entries(y(o.partnerName, e.strategy)).forEach(([i, n]) => t.set(i, n));
72
71
  const p = decodeURIComponent(t.toString()), u = `${R.RECOMMENDATION_API_URL}/v2/${f}?${p}`;
73
72
  return c.recommendationCampaignUrls[a] = u, u;
74
73
  }
75
74
  });
76
75
  export {
77
- B as useRecommendation
76
+ k as useRecommendation
78
77
  };
@@ -1,23 +1,23 @@
1
- var d = Object.defineProperty;
2
- var h = (r, s, t) => s in r ? d(r, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[s] = t;
3
- var c = (r, s, t) => h(r, typeof s != "symbol" ? s + "" : s, t);
4
- import { UEAttr as l } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as g } from "../../../common-control.js";
1
+ var c = Object.defineProperty;
2
+ var l = (s, o, t) => o in s ? c(s, o, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[o] = t;
3
+ var a = (s, o, t) => l(s, typeof o != "symbol" ? o + "" : o, t);
4
+ import { UEAttr as h } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ import { CommonControl as d } from "../../../common-control.js";
6
6
  import { RecommendationConfigService as n } from "../../services/configService.js";
7
7
  import { useRecommendationExtensionStore as m } from "../../store/recommendation.js";
8
- import { mapLegacyStrategy as u } from "../../utils/legacyStrategyMap.js";
9
- const p = "recommendation-algorithm-control", i = {
8
+ import { mapLegacyStrategy as g } from "../../utils/legacyStrategyMap.js";
9
+ const u = "recommendation-algorithm-control", i = {
10
10
  ALGORITHM: "strategy",
11
11
  PRODUCT_IDS: "productIds"
12
12
  };
13
- class R extends g {
13
+ class R extends d {
14
14
  constructor() {
15
15
  super(...arguments);
16
16
  // Store is used ONLY for API-fetched data (algorithms list), not for config
17
- c(this, "store", m());
17
+ a(this, "store", m());
18
18
  }
19
19
  getId() {
20
- return p;
20
+ return u;
21
21
  }
22
22
  getTemplate() {
23
23
  return `
@@ -46,10 +46,11 @@ class R extends g {
46
46
  super.onTemplateNodeUpdated(t), this._initializeSelectItems(), this._setFormValues();
47
47
  }
48
48
  _setFormValues() {
49
- const t = n.getConfig(this.currentNode), e = u(t.strategy) ?? t.strategy;
50
- this._setProductIdsVisibility(e);
51
- const o = { [i.ALGORITHM]: e }, a = t.productIds.join(",");
52
- this.api.getValues()[i.PRODUCT_IDS] !== a && (o[i.PRODUCT_IDS] = a), this.api.updateValues(o);
49
+ const t = n.getConfig(this.currentNode), e = g(t.strategy) ?? t.strategy;
50
+ this._setProductIdsVisibility(e), this.api.updateValues({
51
+ [i.ALGORITHM]: e,
52
+ [i.PRODUCT_IDS]: t.productIds.join(",")
53
+ });
53
54
  }
54
55
  _initializeSelectItems() {
55
56
  var e;
@@ -58,47 +59,35 @@ class R extends g {
58
59
  try {
59
60
  this.api.setUIEAttribute(
60
61
  i.ALGORITHM,
61
- l.SELECTPICKER.items,
62
+ h.SELECTPICKER.items,
62
63
  t
63
64
  );
64
- } catch (o) {
65
- console.warn("[AlgorithmControl] Failed to set algorithm options:", o);
65
+ } catch (r) {
66
+ console.warn("[AlgorithmControl] Failed to set algorithm options:", r);
66
67
  }
67
68
  }
68
69
  _setProductIdsVisibility(t) {
69
- const o = (t ?? n.getConfig(this.currentNode).strategy) === "manualMerchandising";
70
- this.api.setVisibility(i.PRODUCT_IDS, o), this.api.setVisibility(`${i.PRODUCT_IDS}_label`, o);
70
+ const r = (t ?? n.getConfig(this.currentNode).strategy) === "manualMerchandising";
71
+ this.api.setVisibility(i.PRODUCT_IDS, r), this.api.setVisibility(`${i.PRODUCT_IDS}_label`, r);
71
72
  }
72
73
  _onAlgorithmChange(t) {
73
- if (!this.currentNode)
74
- return;
75
- const e = n.getConfig(this.currentNode);
76
- if (e.strategy === t) {
77
- this.store.recommendationConfigs.strategy !== t && this.store.patchCurrentBlockConfig({ strategy: e.strategy, filters: e.filters });
78
- return;
79
- }
80
- n.updateConfig(
74
+ !this.currentNode || n.getConfig(this.currentNode).strategy === t || (n.updateConfig(
81
75
  this.api,
82
76
  this.currentNode,
83
77
  { strategy: t },
84
78
  `Changed algorithm to ${t}`
85
- ), this.store.patchCurrentBlockConfig({ strategy: t }), this._setProductIdsVisibility(t);
79
+ ), this.store.patchCurrentBlockConfig({ strategy: t }), this._setProductIdsVisibility(t));
86
80
  }
87
81
  _onProductIdsChange(t) {
88
82
  if (!this.currentNode)
89
83
  return;
90
- const e = n.getConfig(this.currentNode);
91
- if (e.productIds.join(",") === t) {
92
- this.store.recommendationConfigs.productIds.join(",") !== t && this.store.patchCurrentBlockConfig({ productIds: e.productIds, filters: e.filters });
93
- return;
94
- }
95
- const o = t === "" ? [] : t.split(",");
84
+ const e = t.split(",").map((r) => r.trim()).filter(Boolean);
96
85
  n.updateConfig(
97
86
  this.api,
98
87
  this.currentNode,
99
- { productIds: o },
88
+ { productIds: e },
100
89
  "Updated product IDs"
101
- ), this.store.patchCurrentBlockConfig({ productIds: o });
90
+ ), this.store.patchCurrentBlockConfig({ productIds: e });
102
91
  }
103
92
  _listenToFormUpdates() {
104
93
  this.api.onValueChanged(i.ALGORITHM, (t) => {
@@ -109,6 +98,6 @@ class R extends g {
109
98
  }
110
99
  }
111
100
  export {
112
- p as ALGORITHM_CONTROL_ID,
101
+ u as ALGORITHM_CONTROL_ID,
113
102
  R as AlgorithmControl
114
103
  };
@@ -3,7 +3,7 @@ var p = (d, l, t) => l in d ? f(d, l, { enumerable: !0, configurable: !0, writab
3
3
  var s = (d, l, t) => p(d, typeof l != "symbol" ? l + "" : l, t);
4
4
  import { CommonControl as g } from "../../../common-control.js";
5
5
  import { DEFAULT_NODE_CONFIG as c } from "../../constants/defaultConfig.js";
6
- import { RecommendationConfigService as h } from "../../services/configService.js";
6
+ import { RecommendationConfigService as m } from "../../services/configService.js";
7
7
  import { useRecommendationExtensionStore as y } from "../../store/recommendation.js";
8
8
  import { AlgorithmControl as N } from "./algorithm.js";
9
9
  import { ALGORITHM_CONTROL_ID as tt } from "./algorithm.js";
@@ -17,15 +17,15 @@ import { LocaleControl as b } from "./locale.js";
17
17
  import { LOCALE_CONTROL_ID as lt } from "./locale.js";
18
18
  import { PricePlacementControl as T } from "./pricePlacement.js";
19
19
  import { PRICE_PLACEMENT_CONTROL_ID as ut } from "./pricePlacement.js";
20
- import { ProductCountControl as O } from "./productCount.js";
21
- import { PRODUCT_COUNT_CONTROL_ID as ht } from "./productCount.js";
22
- import { ProductLayoutControl as P } from "./productLayout.js";
20
+ import { ProductCountControl as P } from "./productCount.js";
21
+ import { PRODUCT_COUNT_CONTROL_ID as mt } from "./productCount.js";
22
+ import { ProductLayoutControl as O } from "./productLayout.js";
23
23
  import { PRODUCT_LAYOUT_CONTROL_ID as Ct } from "./productLayout.js";
24
- import { ShuffleControl as S } from "./shuffle.js";
24
+ import { ShuffleControl as L } from "./shuffle.js";
25
25
  import { SHUFFLE_CONTROL_ID as pt } from "./shuffle.js";
26
- import { setCurrencyAttributes as L, getBlockElement as k, isPartnerManagedBlock as D, updateProductContentInPlace as E, regenerateProductRowsWithStyles as A } from "./utils.js";
26
+ import { setCurrencyAttributes as S, getBlockElement as k, isPartnerManagedBlock as D, updateProductContentInPlace as E, regenerateProductRowsWithStyles as A } from "./utils.js";
27
27
  import { adjustProductsToSize as yt, formatProductPrice as Nt, getCardComposition as Rt, getCurrentLayout as It, regenerateMobileProductRows as _t, updatePricesInPlace as bt, updateSingleProductContent as Tt } from "./utils.js";
28
- import { useDebounceFn as m } from "../../../../../node_modules/@vueuse/shared/index.js";
28
+ import { useDebounceFn as h } from "../../../../../node_modules/@vueuse/shared/index.js";
29
29
  const v = "recommendation-id", w = "ui-elements-recommendation-block";
30
30
  class Q extends g {
31
31
  constructor() {
@@ -47,7 +47,7 @@ class Q extends g {
47
47
  /**
48
48
  * Debounced product fetch to prevent rapid API calls during config changes
49
49
  */
50
- s(this, "_debouncedFetchProducts", m(() => {
50
+ s(this, "_debouncedFetchProducts", h(() => {
51
51
  this.store.fetchRecommendationProducts();
52
52
  }, 500));
53
53
  /**
@@ -61,7 +61,7 @@ class Q extends g {
61
61
  * count. The store pads products to the configured size, so in-place only
62
62
  * fails when the size actually changed.
63
63
  */
64
- s(this, "_debouncedRegenerateWithProducts", m(() => {
64
+ s(this, "_debouncedRegenerateWithProducts", h(() => {
65
65
  const t = this.store.recommendationProducts;
66
66
  if (!this.currentNode || !this.api || D(this.currentNode))
67
67
  return;
@@ -81,7 +81,7 @@ class Q extends g {
81
81
  return w;
82
82
  }
83
83
  getTemplate() {
84
- return this.algorithmControl = new N(), this.localeControl = new b(), this.currencyControl = new R(), this.productCountControl = new O(), this.productLayoutControl = new P(), this.filtersControl = new I(), this.shuffleControl = new S(), this.pricePlacementControl = new T(), this.layoutOrientationControl = new _(), [
84
+ return this.algorithmControl = new N(), this.localeControl = new b(), this.currencyControl = new R(), this.productCountControl = new P(), this.productLayoutControl = new O(), this.filtersControl = new I(), this.shuffleControl = new L(), this.pricePlacementControl = new T(), this.layoutOrientationControl = new _(), [
85
85
  this.algorithmControl,
86
86
  this.localeControl,
87
87
  this.currencyControl,
@@ -186,7 +186,7 @@ class Q extends g {
186
186
  */
187
187
  _syncNodeConfigToStore() {
188
188
  var r;
189
- const t = h.getConfig(this.currentNode), e = this.store.currentRecommendationId, o = e !== null && ((r = this.store.blockStates[e]) == null ? void 0 : r.isInitialized);
189
+ const t = m.getConfig(this.currentNode), e = this.store.currentRecommendationId, o = e !== null && ((r = this.store.blockStates[e]) == null ? void 0 : r.isInitialized);
190
190
  this.store.patchCurrentBlockConfig({
191
191
  strategy: t.strategy,
192
192
  language: t.language,
@@ -249,7 +249,7 @@ class Q extends g {
249
249
  _applySmartDefaults() {
250
250
  if (!this.currentNode || !this.api)
251
251
  return;
252
- const t = h.getConfig(this.currentNode), e = {};
252
+ const t = m.getConfig(this.currentNode), e = {};
253
253
  let o = null, r = null, n = null;
254
254
  if (t.currency.code === c.currency.code) {
255
255
  const { currencyList: i } = this.store;
@@ -273,12 +273,12 @@ class Q extends g {
273
273
  (u) => u.value === c.language
274
274
  ) || (n = i[0].value, e.language = n));
275
275
  }
276
- !o && !r && !n || (h.updateConfig(
276
+ !o && !r && !n || (m.updateConfig(
277
277
  this.api,
278
278
  this.currentNode,
279
279
  e,
280
280
  "Applied smart defaults"
281
- ), o && e.currency && L({
281
+ ), o && e.currency && S({
282
282
  currentNode: this.currentNode,
283
283
  documentModifier: this.api.getDocumentModifier(),
284
284
  currency: e.currency
@@ -346,8 +346,8 @@ class Q extends g {
346
346
  _persistFiltersToNodeConfig() {
347
347
  if (!this.currentNode || !this.api)
348
348
  return;
349
- const { filters: t } = this.store.recommendationConfigs, e = h.getConfig(this.currentNode).filters;
350
- JSON.stringify(e) !== JSON.stringify(t) && h.updateConfig(
349
+ const { filters: t } = this.store.recommendationConfigs;
350
+ m.updateConfig(
351
351
  this.api,
352
352
  this.currentNode,
353
353
  { filters: t },
@@ -368,14 +368,14 @@ export {
368
368
  _ as LayoutOrientationControl,
369
369
  b as LocaleControl,
370
370
  ut as PRICE_PLACEMENT_CONTROL_ID,
371
- ht as PRODUCT_COUNT_CONTROL_ID,
371
+ mt as PRODUCT_COUNT_CONTROL_ID,
372
372
  Ct as PRODUCT_LAYOUT_CONTROL_ID,
373
373
  T as PricePlacementControl,
374
- O as ProductCountControl,
375
- P as ProductLayoutControl,
374
+ P as ProductCountControl,
375
+ O as ProductLayoutControl,
376
376
  Q as RecommendationBlockControl,
377
377
  pt as SHUFFLE_CONTROL_ID,
378
- S as ShuffleControl,
378
+ L as ShuffleControl,
379
379
  yt as adjustProductsToSize,
380
380
  Nt as formatProductPrice,
381
381
  k as getBlockElement,
@@ -384,7 +384,7 @@ export {
384
384
  D as isPartnerManagedBlock,
385
385
  _t as regenerateMobileProductRows,
386
386
  A as regenerateProductRowsWithStyles,
387
- L as setCurrencyAttributes,
387
+ S as setCurrencyAttributes,
388
388
  bt as updatePricesInPlace,
389
389
  E as updateProductContentInPlace,
390
390
  Tt as updateSingleProductContent
@@ -1,16 +1,15 @@
1
1
  import { getRecommendationFeedSourceMaps as g, getOperatorOptions as R, PriceAttributes as C } from "../../../../enums/extensions/recommendationBlock.js";
2
2
  import { useRecommendationApi as y } from "../../../../services/recommendationApi.js";
3
3
  import { useConfigStore as G } from "../../../../stores/config.js";
4
- import { defineStore as P } from "pinia";
4
+ import { defineStore as F } from "pinia";
5
5
  import "../constants/selectors.js";
6
- import { DEFAULT_MOBILE_CARDS_IN_ROW as F, DEFAULT_CARDS_IN_ROW as D } from "../constants/layout.js";
6
+ import { DEFAULT_MOBILE_CARDS_IN_ROW as P, DEFAULT_CARDS_IN_ROW as D } from "../constants/layout.js";
7
7
  import { EXCLUDED_ALGORITHM_IDS as w } from "../constants/defaultConfig.js";
8
8
  import { getDefaultProducts as S } from "../templates/utils.js";
9
9
  import { generateCompleteFilterQuery as b } from "../utils/filterUtil.js";
10
10
  import { getPartnerRecommendationParams as v } from "../utils/partnerCustomizations.js";
11
- import { sanitizeProductIds as N } from "../utils/productIds.js";
12
- import { isFilterValid as x } from "../validation/filterSchema.js";
13
- import { isConfigValid as L } from "../validation/requiredFields.js";
11
+ import { isFilterValid as N } from "../validation/filterSchema.js";
12
+ import { isConfigValid as x } from "../validation/requiredFields.js";
14
13
  const h = y();
15
14
  let m = null, u = null, d = null;
16
15
  function k() {
@@ -29,7 +28,7 @@ function k() {
29
28
  productIds: [],
30
29
  id: 1,
31
30
  language: "en_US",
32
- mobileCardsInRow: F,
31
+ mobileCardsInRow: P,
33
32
  mobileLayoutEnabled: !1,
34
33
  orientation: "grid",
35
34
  recommendedProducts: [],
@@ -55,7 +54,7 @@ function I() {
55
54
  filterSnapshot: null
56
55
  };
57
56
  }
58
- const U = () => ({
57
+ const L = () => ({
59
58
  recommendationCampaignUrls: {},
60
59
  activePredictiveAlgorithms: [],
61
60
  languages: {},
@@ -64,8 +63,8 @@ const U = () => ({
64
63
  blockStates: {},
65
64
  currentRecommendationId: null,
66
65
  configVersion: 0
67
- }), H = P("guidoRecommendationExtension", {
68
- state: () => U(),
66
+ }), $ = F("guidoRecommendationExtension", {
67
+ state: () => L(),
69
68
  getters: {
70
69
  // ====================================================================
71
70
  // Proxy Getters — Backward Compatible Access to Current Block State
@@ -384,7 +383,7 @@ const U = () => ({
384
383
  const n = [...e.recommendationConfigs.filters];
385
384
  n[r] = {
386
385
  ...t,
387
- isValid: x(t)
386
+ isValid: N(t)
388
387
  }, e.recommendationConfigs.filters = n;
389
388
  }
390
389
  },
@@ -430,7 +429,7 @@ const U = () => ({
430
429
  * every block's recommendationConfigs across user edits.
431
430
  */
432
431
  hasInvalidBlock() {
433
- return Object.values(this.blockStates).some((t) => !L(t.recommendationConfigs, this));
432
+ return Object.values(this.blockStates).some((t) => !x(t.recommendationConfigs, this));
434
433
  },
435
434
  // ====================================================================
436
435
  // Per-Block Product Fetching
@@ -459,7 +458,7 @@ const U = () => ({
459
458
  details: !0,
460
459
  campaignId: o.variationId
461
460
  };
462
- r.strategy === "manualMerchandising" ? a.productId = N(r.productIds) : r.strategy === "similarViewed" && (a.productId = "{itemId}"), r.strategy === "userBased" && (a.userId = "{user_id}"), c && (a.filter = c), r.shuffleProducts && (a.shuffle = !0), Object.assign(
461
+ r.strategy === "manualMerchandising" ? a.productId = r.productIds.join(",") : r.strategy === "similarViewed" && (a.productId = "{itemId}"), r.strategy === "userBased" && (a.userId = "{user_id}"), c && (a.filter = c), r.shuffleProducts && (a.shuffle = !0), Object.assign(
463
462
  a,
464
463
  v(o.partnerName, r.strategy)
465
464
  );
@@ -480,5 +479,5 @@ const U = () => ({
480
479
  }
481
480
  });
482
481
  export {
483
- H as useRecommendationExtensionStore
482
+ $ as useRecommendationExtensionStore
484
483
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "3.16.0-beta.c615198",
3
+ "version": "3.16.0-beta.f1a5d40",
4
4
  "description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
5
5
  "main": "./dist/guido.umd.cjs",
6
6
  "module": "./dist/library.js",
@@ -25,7 +25,7 @@
25
25
  "start": "vite",
26
26
  "build": "vite build && vue-tsc --declaration --emitDeclarationOnly --project tsconfig.app.json",
27
27
  "preview": "vite preview",
28
- "lint": "NODE_OPTIONS=--max-old-space-size=2048 eslint ./ && bun run type-check",
28
+ "lint": "NODE_OPTIONS=--max-old-space-size=2048 eslint ./ && npm run type-check",
29
29
  "lint:fix": "NODE_OPTIONS=--max-old-space-size=2048 eslint --fix ./",
30
30
  "lint:e2e-quality": "node scripts/lint-e2e-quality.mjs",
31
31
  "lint:e2e-quality:ci": "node scripts/lint-e2e-quality.mjs --ci",
@@ -1,6 +0,0 @@
1
- function n(t) {
2
- return t.map((i) => String(i ?? "").trim()).filter(Boolean).join(",");
3
- }
4
- export {
5
- n as sanitizeProductIds
6
- };
@@ -1,6 +0,0 @@
1
- /**
2
- * Builds the request/URL `productId` value from raw product ID segments.
3
- * Trimming happens here — NOT on input change — so the user's in-progress
4
- * text (trailing commas, spaces) is never rewritten under the caret (SD-147111).
5
- */
6
- export declare function sanitizeProductIds(ids: readonly (string | number | null | undefined)[]): string;