@useinsider/guido 3.18.0-beta.19e1253 → 3.18.0-beta.206bb3f

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 (59) hide show
  1. package/dist/@types/config/schemas.js +15 -13
  2. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +13 -15
  3. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +41 -43
  4. package/dist/components/organisms/header/AutoSaveStatus.vue.js +17 -0
  5. package/dist/components/organisms/header/AutoSaveStatus.vue2.js +27 -0
  6. package/dist/components/organisms/header/EditorActions.vue.js +13 -13
  7. package/dist/components/organisms/header/EditorActions.vue2.js +34 -50
  8. package/dist/components/organisms/header/EditorActionsMenu.vue.js +20 -0
  9. package/dist/components/organisms/header/EditorActionsMenu.vue2.js +43 -0
  10. package/dist/components/organisms/header/LeftSlot.vue.js +5 -5
  11. package/dist/components/organisms/header/LeftSlot.vue2.js +28 -23
  12. package/dist/components/organisms/header/MiddleSlot.vue.js +4 -4
  13. package/dist/components/organisms/header/MiddleSlot.vue2.js +8 -7
  14. package/dist/components/organisms/header/RightSlot.vue.js +7 -6
  15. package/dist/components/organisms/header/RightSlot.vue2.js +17 -15
  16. package/dist/components/organisms/header/accessibility/AccessibilityToolbar.vue.js +18 -0
  17. package/dist/components/organisms/header/accessibility/AccessibilityToolbar.vue2.js +37 -0
  18. package/dist/components/organisms/header/accessibility/ColorVisionSelect.vue.js +24 -0
  19. package/dist/components/organisms/header/accessibility/ColorVisionSelect.vue2.js +48 -0
  20. package/dist/components/organisms/onboarding/EditorTabBarOnboarding.vue.js +18 -0
  21. package/dist/components/organisms/onboarding/EditorTabBarOnboarding.vue2.js +81 -0
  22. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +43 -34
  23. package/dist/composables/useAccessibilityApi.js +31 -0
  24. package/dist/composables/useCustomInterfaceAppearance.js +31 -28
  25. package/dist/config/i18n/en/labels.json.js +28 -4
  26. package/dist/config/i18n/en/tooltips.json.js +2 -1
  27. package/dist/enums/extensions/recommendationBlock.js +11 -12
  28. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +20 -19
  29. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +70 -98
  30. package/dist/guido.css +1 -1
  31. package/dist/node_modules/@vueuse/core/index.js +102 -0
  32. package/dist/node_modules/@vueuse/shared/index.js +40 -28
  33. package/dist/package.json.js +1 -1
  34. package/dist/sprite.svg +6 -0
  35. package/dist/src/@types/config/schemas.d.ts +4 -0
  36. package/dist/src/components/organisms/header/EditorActionsMenu.vue.d.ts +2 -0
  37. package/dist/src/components/organisms/header/accessibility/AccessibilityToolbar.vue.d.ts +2 -0
  38. package/dist/src/components/organisms/header/accessibility/ColorVisionSelect.vue.d.ts +2 -0
  39. package/dist/src/components/organisms/onboarding/EditorTabBarOnboarding.vue.d.ts +2 -0
  40. package/dist/src/composables/useAccessibilityApi.d.ts +15 -0
  41. package/dist/src/composables/useActionsApi.d.ts +2 -2
  42. package/dist/src/composables/useConfig.d.ts +2 -0
  43. package/dist/src/enums/extensions/recommendationBlock.d.ts +0 -1
  44. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +0 -18
  45. package/dist/src/stores/config.d.ts +18 -0
  46. package/dist/src/stores/editor.d.ts +76 -0
  47. package/dist/src/stores/onboarding.d.ts +377 -0
  48. package/dist/src/stores/version-history.d.ts +1 -1
  49. package/dist/src/utils/timeUtil.d.ts +10 -0
  50. package/dist/static/styles/components/accessibility.css.js +140 -0
  51. package/dist/static/styles/components/recommendation-strategy.css.js +4 -1
  52. package/dist/static/styles/variables.css.js +1 -0
  53. package/dist/stores/editor.js +4 -1
  54. package/dist/stores/onboarding.js +16 -11
  55. package/dist/utils/timeUtil.js +7 -17
  56. package/package.json +2 -2
  57. package/dist/components/organisms/header/AutoSaveToggle.vue.js +0 -22
  58. package/dist/components/organisms/header/AutoSaveToggle.vue2.js +0 -19
  59. /package/dist/src/components/organisms/header/{AutoSaveToggle.vue.d.ts → AutoSaveStatus.vue.d.ts} +0 -0
@@ -1,31 +1,22 @@
1
- import { getRecommendationFeedSourceMaps as R, URLS as D, getOperatorOptions as P, PriceAttributes as F } from "../../../../enums/extensions/recommendationBlock.js";
2
- import { useRecommendationApi as _ } from "../../../../services/recommendationApi.js";
3
- import { useConfigStore as L } from "../../../../stores/config.js";
4
- import { asText as k } from "../../../../utils/genericUtil.js";
5
- import { defineStore as N } from "pinia";
1
+ import { getRecommendationFeedSourceMaps as b, getOperatorOptions as G, PriceAttributes as v } from "../../../../enums/extensions/recommendationBlock.js";
2
+ import { useRecommendationApi as D } from "../../../../services/recommendationApi.js";
3
+ import { useConfigStore as P } from "../../../../stores/config.js";
4
+ import { defineStore as F } from "pinia";
6
5
  import "../constants/selectors.js";
7
- import { DEFAULT_MOBILE_CARDS_IN_ROW as U, DEFAULT_CARDS_IN_ROW as A } from "../constants/layout.js";
8
- import { DEFAULT_NODE_CONFIG as E, EXCLUDED_ALGORITHM_IDS as x } from "../constants/defaultConfig.js";
9
- import { getDefaultProducts as C } from "../templates/utils.js";
10
- import { generateCompleteFilterQuery as w } from "../utils/filterUtil.js";
11
- import { getPartnerRecommendationParams as M } from "../utils/partnerCustomizations.js";
12
- import { sanitizeProductIds as T } from "../utils/productIds.js";
6
+ import { DEFAULT_MOBILE_CARDS_IN_ROW as _, DEFAULT_CARDS_IN_ROW as U } from "../constants/layout.js";
7
+ import { DEFAULT_NODE_CONFIG as N, EXCLUDED_ALGORITHM_IDS as L } from "../constants/defaultConfig.js";
8
+ import { getDefaultProducts as R } from "../templates/utils.js";
9
+ import { generateCompleteFilterQuery as k } from "../utils/filterUtil.js";
10
+ import { getPartnerRecommendationParams as x } from "../utils/partnerCustomizations.js";
11
+ import { sanitizeProductIds as A } from "../utils/productIds.js";
13
12
  import { isFilterValid as B } from "../validation/filterSchema.js";
14
- import { isConfigValid as O } from "../validation/requiredFields.js";
15
- const d = _();
16
- let h = null, g = null, S = null, p = null;
17
- const y = /* @__PURE__ */ new Map();
18
- let u = null;
19
- const z = (t, e) => {
20
- const r = t.filter((s) => !e.has(String(s.strategy_id)));
21
- if (!r.length)
22
- return null;
23
- const n = r.reduce((s, i) => k(i.created_at) > k(s.created_at) ? i : s);
24
- return String(n.strategy_id);
25
- };
26
- function G() {
13
+ import { isConfigValid as M } from "../validation/requiredFields.js";
14
+ const u = D();
15
+ let f = null, h = null, g = null, S = null;
16
+ const p = /* @__PURE__ */ new Map();
17
+ function w() {
27
18
  return {
28
- cardsInRow: A,
19
+ cardsInRow: U,
29
20
  currencySettings: {
30
21
  name: "USD",
31
22
  value: "USD",
@@ -39,7 +30,7 @@ function G() {
39
30
  productIds: [],
40
31
  id: 1,
41
32
  language: "en_US",
42
- mobileCardsInRow: U,
33
+ mobileCardsInRow: _,
43
34
  mobileLayoutEnabled: !1,
44
35
  orientation: "grid",
45
36
  recommendedProducts: [],
@@ -55,9 +46,9 @@ function G() {
55
46
  priceHideIfSameAsDiscounted: !1
56
47
  };
57
48
  }
58
- function v() {
49
+ function C() {
59
50
  return {
60
- recommendationConfigs: G(),
51
+ recommendationConfigs: w(),
61
52
  recommendationProducts: [],
62
53
  filterStatus: !1,
63
54
  filterSelectionDrawerStatus: !1,
@@ -68,7 +59,7 @@ function v() {
68
59
  filterSnapshot: null
69
60
  };
70
61
  }
71
- const V = () => ({
62
+ const z = () => ({
72
63
  recommendationCampaignUrls: {},
73
64
  activePredictiveAlgorithms: [],
74
65
  languages: {},
@@ -77,12 +68,11 @@ const V = () => ({
77
68
  strategies: [],
78
69
  strategiesLoading: !1,
79
70
  strategyUrlTemplates: {},
80
- lastCreatedStrategyId: null,
81
71
  blockStates: {},
82
72
  currentRecommendationId: null,
83
73
  configVersion: 0
84
- }), nt = N("guidoRecommendationExtension", {
85
- state: () => V(),
74
+ }), Y = F("guidoRecommendationExtension", {
75
+ state: () => z(),
86
76
  getters: {
87
77
  // ====================================================================
88
78
  // Proxy Getters — Backward Compatible Access to Current Block State
@@ -92,7 +82,7 @@ const V = () => ({
92
82
  * This allows all existing code that reads `store.recommendationConfigs` to work unchanged.
93
83
  */
94
84
  recommendationConfigs(t) {
95
- return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].recommendationConfigs : G();
85
+ return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].recommendationConfigs : w();
96
86
  },
97
87
  /**
98
88
  * Proxy getter: delegates to blockStates[currentRecommendationId].recommendationProducts
@@ -147,8 +137,8 @@ const V = () => ({
147
137
  return [...new Set(t.map((e) => e.filterGroup))].sort((e, r) => e - r);
148
138
  },
149
139
  getActivePredictiveAlgorithms: (t) => {
150
- const e = R(), r = [];
151
- return t.activePredictiveAlgorithms.filter((n) => !x.includes(n)).forEach((n) => {
140
+ const e = b(), r = [];
141
+ return t.activePredictiveAlgorithms.filter((n) => !L.includes(n)).forEach((n) => {
152
142
  r.push(...e.filter((s) => s.id === n));
153
143
  }), r.map((n) => ({
154
144
  text: n.name,
@@ -166,7 +156,7 @@ const V = () => ({
166
156
  getFilterList() {
167
157
  return Object.values(this.filterList).filter((t) => t.isFilterable !== 0 && t.isFilterable !== !1).map((t) => {
168
158
  let e;
169
- return t.type === "productAttribute" ? e = `product_attributes.${t.attributeName}` : F.includes(t.attributeName) ? e = `${t.attributeName}.${this.recommendationConfigs.currencySettings.value}` : e = t.attributeName, {
159
+ return t.type === "productAttribute" ? e = `product_attributes.${t.attributeName}` : v.includes(t.attributeName) ? e = `${t.attributeName}.${this.recommendationConfigs.currencySettings.value}` : e = t.attributeName, {
170
160
  text: t.displayName,
171
161
  value: e,
172
162
  type: t.attributeType
@@ -188,7 +178,7 @@ const V = () => ({
188
178
  setCurrentBlock(t) {
189
179
  this.blockStates[t] || (this.blockStates = {
190
180
  ...this.blockStates,
191
- [t]: v()
181
+ [t]: C()
192
182
  }), this.currentRecommendationId = t;
193
183
  },
194
184
  /**
@@ -256,7 +246,7 @@ const V = () => ({
256
246
  decimalCount: String(e.currencyDecimalCount),
257
247
  decimalSeparator: r(e.currencyDecimalSeparator, ","),
258
248
  thousandSeparator: r(e.currencyThousandSeparator, ".")
259
- }, s = !this.blockStates[t], i = s ? v() : this.blockStates[t];
249
+ }, s = !this.blockStates[t], i = s ? C() : this.blockStates[t];
260
250
  i.recommendationConfigs = {
261
251
  ...i.recommendationConfigs,
262
252
  strategy: e.strategy,
@@ -295,7 +285,7 @@ const V = () => ({
295
285
  * Creates a filter with the first available attribute and operator pre-selected.
296
286
  */
297
287
  createDefaultFilter(t, e) {
298
- const [r] = this.getFilterList, [n] = P(r == null ? void 0 : r.type);
288
+ const [r] = this.getFilterList, [n] = G(r == null ? void 0 : r.type);
299
289
  return {
300
290
  type: "standardFilter",
301
291
  attribute: (r == null ? void 0 : r.value) ?? "",
@@ -355,47 +345,29 @@ const V = () => ({
355
345
  this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId] || (this.blockStates[this.currentRecommendationId].removeStrategyModalStatus = !1);
356
346
  },
357
347
  async fetchStrategies() {
358
- if (p) {
359
- await p;
348
+ if (S) {
349
+ await S;
360
350
  return;
361
351
  }
362
- p = (async () => {
352
+ S = (async () => {
363
353
  this.strategiesLoading = !0;
364
354
  try {
365
- this.strategies = await d.fetchRecommendationStrategies();
355
+ this.strategies = await u.fetchRecommendationStrategies();
366
356
  } finally {
367
357
  this.strategiesLoading = !1;
368
358
  }
369
359
  })();
370
360
  try {
371
- await p;
361
+ await S;
372
362
  } finally {
373
- p = null;
363
+ S = null;
374
364
  }
375
365
  },
376
- /**
377
- * Opens Smart Recommender's strategy creation page in a new tab. The first time the user
378
- * comes back, the list is fetched once more and any strategy that appeared meanwhile
379
- * is remembered so the drawer can preselect it.
380
- */
381
- openStrategyCreation() {
382
- const t = new Set(this.strategies.map((r) => String(r.strategy_id)));
383
- window.open(D.RECOMMENDATION_STRATEGY_CREATE_PATH, "_blank", "noopener"), u == null || u();
384
- const e = () => {
385
- document.hidden || (u == null || u(), this.fetchStrategies().then(() => {
386
- this.lastCreatedStrategyId = z(this.strategies, t);
387
- }).catch(() => {
388
- }));
389
- };
390
- document.addEventListener("visibilitychange", e), window.addEventListener("focus", e), u = () => {
391
- document.removeEventListener("visibilitychange", e), window.removeEventListener("focus", e), u = null;
392
- };
393
- },
394
366
  async resolveStrategyUrlTemplate(t, e) {
395
367
  const r = typeof t.updated_at == "string" ? t.updated_at : "", n = r ? `${t.strategy_id}:${r}:${e}` : "", s = n ? this.strategyUrlTemplates[n] : void 0;
396
368
  if (s)
397
369
  return s;
398
- const { full_path: i = "" } = await d.generateStrategyEndpoint(t, e) ?? {};
370
+ const { full_path: i = "" } = await u.generateStrategyEndpoint(t, e) ?? {};
399
371
  return n && i && (this.strategyUrlTemplates = {
400
372
  ...this.strategyUrlTemplates,
401
373
  [n]: i
@@ -408,23 +380,23 @@ const V = () => ({
408
380
  });
409
381
  },
410
382
  removeStrategy() {
411
- this.patchCurrentBlockConfig({ strategyId: "", size: E.size });
383
+ this.patchCurrentBlockConfig({ strategyId: "", size: N.size });
412
384
  },
413
385
  // ====================================================================
414
386
  // Shared Data Fetching (fetched once, used by all blocks)
415
387
  // ====================================================================
416
388
  async fetchRecommendationCreateData() {
417
389
  if (!this.activePredictiveAlgorithms.length) {
418
- if (h) {
419
- await h;
390
+ if (f) {
391
+ await f;
420
392
  return;
421
393
  }
422
- h = (async () => {
394
+ f = (async () => {
423
395
  const {
424
396
  activePredictiveAlgorithms: t,
425
397
  languages: e,
426
398
  currencies: r
427
- } = await d.fetchRecommendationCreateData();
399
+ } = await u.fetchRecommendationCreateData();
428
400
  if (this.activePredictiveAlgorithms = t, this.languages = e, this.currentRecommendationId !== null && this.blockStates[this.currentRecommendationId]) {
429
401
  const n = this.blockStates[this.currentRecommendationId];
430
402
  n.filterStatus = !!n.recommendationConfigs.filters.length;
@@ -432,26 +404,26 @@ const V = () => ({
432
404
  this.currencyList = r;
433
405
  })();
434
406
  try {
435
- await h;
407
+ await f;
436
408
  } finally {
437
- h = null;
409
+ f = null;
438
410
  }
439
411
  }
440
412
  },
441
413
  async fetchRecommendationFilters() {
442
414
  if (!Object.keys(this.filterList).length) {
443
- if (g) {
444
- await g;
415
+ if (h) {
416
+ await h;
445
417
  return;
446
418
  }
447
- g = (async () => {
448
- const t = await d.fetchRecommendationFilters();
419
+ h = (async () => {
420
+ const t = await u.fetchRecommendationFilters();
449
421
  this.filterList = t;
450
422
  })();
451
423
  try {
452
- await g;
424
+ await h;
453
425
  } finally {
454
- g = null;
426
+ h = null;
455
427
  }
456
428
  }
457
429
  },
@@ -518,7 +490,7 @@ const V = () => ({
518
490
  }), e.recommendationConfigs.filters = r;
519
491
  },
520
492
  generateFilterQuery() {
521
- return w(this.recommendationConfigs.filters);
493
+ return k(this.recommendationConfigs.filters);
522
494
  },
523
495
  /**
524
496
  * Validation-only check invoked at save-CTA time. Defined as an action
@@ -526,33 +498,33 @@ const V = () => ({
526
498
  * every block's recommendationConfigs across user edits.
527
499
  */
528
500
  hasInvalidBlock() {
529
- return Object.values(this.blockStates).some((t) => !O(t.recommendationConfigs, this));
501
+ return Object.values(this.blockStates).some((t) => !M(t.recommendationConfigs, this));
530
502
  },
531
503
  // ====================================================================
532
504
  // Per-Block Product Fetching
533
505
  // ====================================================================
534
506
  async fetchRecommendationProducts() {
535
507
  if (!(this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId])) {
536
- if (S) {
537
- await S;
508
+ if (g) {
509
+ await g;
538
510
  return;
539
511
  }
540
- S = this._doFetchProducts();
512
+ g = this._doFetchProducts();
541
513
  try {
542
- await S;
514
+ await g;
543
515
  } finally {
544
- S = null;
516
+ g = null;
545
517
  }
546
518
  }
547
519
  },
548
520
  async _doFetchProducts() {
549
- var f;
550
- const t = this.currentRecommendationId, e = this.blockStates[t], { recommendationConfigs: r } = e, n = L();
521
+ var d;
522
+ const t = this.currentRecommendationId, e = this.blockStates[t], { recommendationConfigs: r } = e, n = P();
551
523
  if (r.strategyId && n.isFeatureEnabled("reusableRecommendationStrategy")) {
552
524
  await this._doFetchStrategyProducts(t);
553
525
  return;
554
526
  }
555
- const s = r.filters.filter((m) => m.isValid), i = w(s), o = ((f = R().find((m) => m.key === r.strategy)) == null ? void 0 : f.path) || "", c = parseInt(r.size) || 6, a = {
527
+ const s = r.filters.filter((m) => m.isValid), i = k(s), o = ((d = b().find((m) => m.key === r.strategy)) == null ? void 0 : d.path) || "", c = parseInt(r.size) || 6, a = {
556
528
  locale: r.language,
557
529
  currency: r.currencySettings.value,
558
530
  partnerName: n.partnerName,
@@ -560,21 +532,21 @@ const V = () => ({
560
532
  details: !0,
561
533
  campaignId: n.variationId
562
534
  };
563
- r.strategy === "manualMerchandising" ? a.productId = T(r.productIds) : r.strategy === "similarViewed" && (a.productId = "{itemId}"), r.strategy === "userBased" && (a.userId = "{user_id}"), i && (a.filter = i), r.shuffleProducts && (a.shuffle = !0), Object.assign(
535
+ r.strategy === "manualMerchandising" ? a.productId = A(r.productIds) : r.strategy === "similarViewed" && (a.productId = "{itemId}"), r.strategy === "userBased" && (a.userId = "{user_id}"), i && (a.filter = i), r.shuffleProducts && (a.shuffle = !0), Object.assign(
564
536
  a,
565
- M(n.partnerName, r.strategy)
537
+ x(n.partnerName, r.strategy)
566
538
  );
567
539
  let l;
568
540
  try {
569
- l = await d.fetchRecommendationProducts(o, a);
541
+ l = await u.fetchRecommendationProducts(o, a);
570
542
  } catch {
571
543
  l = [];
572
544
  }
573
545
  this._setBlockProducts(t, l, c);
574
546
  },
575
547
  async _doFetchStrategyProducts(t) {
576
- const e = (y.get(t) ?? 0) + 1;
577
- y.set(t, e);
548
+ const e = (p.get(t) ?? 0) + 1;
549
+ p.set(t, e);
578
550
  const { recommendationConfigs: r } = this.blockStates[t];
579
551
  let n = [], s = parseInt(r.size) || 6;
580
552
  try {
@@ -584,25 +556,25 @@ const V = () => ({
584
556
  );
585
557
  if (i) {
586
558
  s = parseInt(String(i.size ?? "")) || s;
587
- const o = r.currencySettings.value, a = (await this.resolveStrategyUrlTemplate(i, o)).replaceAll("{locale}", r.language).replaceAll("{currency}", o), l = a.indexOf("?"), f = l === -1 ? a : a.slice(0, l), m = (l === -1 ? "" : a.slice(l + 1)).split("&").filter((b) => b && !b.startsWith("user_id=")), I = m.length ? `${f}?${m.join("&")}` : f;
588
- I && (n = await d.fetchRecommendationProductsByUrl(I));
559
+ const o = r.currencySettings.value, a = (await this.resolveStrategyUrlTemplate(i, o)).replaceAll("{locale}", r.language).replaceAll("{currency}", o), l = a.indexOf("?"), d = l === -1 ? a : a.slice(0, l), m = (l === -1 ? "" : a.slice(l + 1)).split("&").filter((I) => I && !I.startsWith("user_id=")), y = m.length ? `${d}?${m.join("&")}` : d;
560
+ y && (n = await u.fetchRecommendationProductsByUrl(y));
589
561
  }
590
562
  } catch {
591
563
  n = [];
592
564
  }
593
- y.get(t) === e && this._setBlockProducts(t, n, s);
565
+ p.get(t) === e && this._setBlockProducts(t, n, s);
594
566
  },
595
567
  _setBlockProducts(t, e, r) {
596
568
  if (!this.blockStates[t])
597
569
  return;
598
- const n = e.length > 0 ? e : C(r);
570
+ const n = e.length > 0 ? e : R(r);
599
571
  this.blockStates[t].recommendationProducts = [
600
572
  ...n.slice(0, r),
601
- ...C(Math.max(0, r - n.length))
573
+ ...R(Math.max(0, r - n.length))
602
574
  ];
603
575
  }
604
576
  }
605
577
  });
606
578
  export {
607
- nt as useRecommendationExtensionStore
579
+ Y as useRecommendationExtensionStore
608
580
  };
package/dist/guido.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-73199fa4] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-2cb418af] .in-progress-wrapper__progress p span:last-child{display:none!important}[data-v-2cb418af] .in-progress-description-status{display:none!important}.view-options-wrapper[data-v-87033101]{position:relative;display:inline-block}.new-tag[data-v-87033101]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-87033101] .guido__view-option-selection-desktop svg,[data-v-87033101] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-87033101] .in-segments-wrapper__button_selected,[data-v-87033101] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-87033101] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-fad98586]{gap:8px}.version-history__toolbar[data-v-fad98586]{gap:4px}.view-options-wrapper[data-v-6ebabfe4]{position:relative;display:inline-block}.new-tag[data-v-6ebabfe4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-6ebabfe4] .guido__verion-history-view-option-selection-desktop svg,[data-v-6ebabfe4] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6ebabfe4] .in-segments-wrapper__button_selected,[data-v-6ebabfe4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-6ebabfe4] .in-tooltip-wrapper-v2__icon{cursor:pointer}.auto-save-toggle[data-v-2c964af4]{position:relative}.auto-save-toggle__info-box[data-v-2c964af4]{position:absolute;top:100%;left:0;z-index:10;width:280px}.editor-actions[data-v-6e711fd7]{gap:4px}.header-wrapper[data-v-d11dd577]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-5c588dc5]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-5c588dc5]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-5c588dc5]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-91a26acd]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-91a26acd]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-91a26acd]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-91a26acd]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-91a26acd]{object-fit:cover;transform:scale(1)}[data-v-b9a93c6e] .guido__verion-history-view-option-selection-desktop svg,[data-v-b9a93c6e] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-b9a93c6e] .in-segments-wrapper__button_selected,[data-v-b9a93c6e] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-c3fd5d4b]{gap:16px}.desktop-browser-header[data-v-d86c5af5]{height:79px;min-height:79px}.desktop-browser-header__left[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:378px}.desktop-browser-header__center[data-v-d86c5af5]{height:79px;background-repeat:repeat-x;background-size:auto 100%;background-position:left top}.desktop-browser-header__right[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:112px}.desktop-preview[data-v-cf946232]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-cf946232]{min-height:504px}.iframe-wrapper[data-v-f255b2bb]{width:258px}.iframe-scaled[data-v-f255b2bb]{width:320px;height:124.0310077519%;transform:scale(.80625);transform-origin:top left}.cropped-text[data-v-eb3d05d7]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-preview-wrapper__phone[data-v-3f472f96]{width:282px}.mobile-preview-wrapper__phone img[data-v-3f472f96]{object-fit:cover;border-radius:44px}.mobile-preview-wrapper__content[data-v-3f472f96]{width:258px;height:450px;left:12px}[data-v-6bcaca8a] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-f16f20f8] .vueperslides__bullets{pointer-events:none!important}[data-v-f16f20f8] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-bb3cca55] .vueperslides__bullets{pointer-events:none!important}[data-v-bb3cca55] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-b09e80c4] .vueperslides__bullets{pointer-events:none!important}[data-v-b09e80c4] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-9bdef600] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-598fd738]{width:100%;max-width:none}.assign-strategy-drawer-content .assign-strategy-select[data-v-598fd738] .in-dropdown-box__container{width:413px}.assign-strategy-drawer .spaced-dot-sep{background-image:linear-gradient(90deg,#91949f 20%,#fff0 0);background-position:center bottom;background-repeat:repeat-x;background-size:5px 1px}.assign-strategy-drawer .spaced-dot-sep--top{background-position:center top}.assign-strategy-drawer .spaced-dot-sep--fc-n:first-child{background:none}
1
+ @charset "UTF-8";.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-2f127fb6] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-2cb418af] .in-progress-wrapper__progress p span:last-child{display:none!important}[data-v-2cb418af] .in-progress-description-status{display:none!important}.color-vision-select__menu[data-v-869e2871]{top:calc(100% + 4px);left:0;z-index:20;width:387px;padding:8px 0;border-radius:8px;background-color:#fff;box-shadow:0 4px 12px #39393926}.color-vision-select__option[data-v-869e2871]{width:100%;padding:4px 12px;border:none;background-color:transparent;text-align:left;cursor:pointer}.color-vision-select__option[data-v-869e2871]:hover,.color-vision-select__option_selected[data-v-869e2871]{background-color:#f1f3fe}.color-vision-select__option_selected .color-vision-select__option-label[data-v-869e2871],.color-vision-select__option_selected .color-vision-select__option-description[data-v-869e2871]{color:#0a2ecc}.color-vision-select__option-label[data-v-869e2871]{line-height:24px}.color-vision-select__option-description[data-v-869e2871]{line-height:16px}.accessibility-toolbar[data-v-4e1e854b]{gap:16px}.view-options-wrapper[data-v-87033101]{position:relative;display:inline-block}.new-tag[data-v-87033101]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-87033101] .guido__view-option-selection-desktop svg,[data-v-87033101] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-87033101] .in-segments-wrapper__button_selected,[data-v-87033101] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-87033101] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-fad98586]{gap:8px}.version-history__toolbar[data-v-fad98586]{gap:4px}.view-options-wrapper[data-v-6ebabfe4]{position:relative;display:inline-block}.new-tag[data-v-6ebabfe4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-6ebabfe4] .guido__verion-history-view-option-selection-desktop svg,[data-v-6ebabfe4] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6ebabfe4] .in-segments-wrapper__button_selected,[data-v-6ebabfe4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-6ebabfe4] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-actions-menu__panel[data-v-398fffb4]{top:calc(100% + 4px);right:0;z-index:20;width:222px;padding:8px 0;border-radius:8px;background-color:#fff;box-shadow:0 4px 12px #39393926}.editor-actions-menu__section[data-v-398fffb4]{padding:8px 12px 4px;text-transform:uppercase;letter-spacing:.4px}.editor-actions-menu__icon[data-v-398fffb4]{color:#666;fill:currentColor}.editor-actions-menu__row[data-v-398fffb4]{width:100%;padding:4px 12px;border:none;background-color:transparent;color:#292929;line-height:24px;text-align:left;cursor:pointer}.editor-actions-menu__row[data-v-398fffb4]:not(.editor-actions-menu__row_static):hover{background-color:#f1f3fe}.editor-actions-menu__row_static[data-v-398fffb4]{cursor:default}.editor-actions-menu__row[data-v-398fffb4]:disabled{cursor:not-allowed;opacity:.6}.editor-actions-menu__divider[data-v-398fffb4]{height:1px;margin:4px 0;background-color:#e1e1e1}.editor-actions[data-v-55bd627b]{gap:16px}.editor-actions__divider[data-v-55bd627b]{width:1px;height:40px;background-color:#e1e1e1}.right-slot[data-v-1ad38e93]{gap:16px}.header-wrapper[data-v-d11dd577]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-5c588dc5]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-5c588dc5]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-5c588dc5]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-91a26acd]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-91a26acd]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-91a26acd]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-91a26acd]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-91a26acd]{object-fit:cover;transform:scale(1)}[data-v-b9a93c6e] .guido__verion-history-view-option-selection-desktop svg,[data-v-b9a93c6e] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-b9a93c6e] .in-segments-wrapper__button_selected,[data-v-b9a93c6e] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-c3fd5d4b]{gap:16px}.desktop-browser-header[data-v-d86c5af5]{height:79px;min-height:79px}.desktop-browser-header__left[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:378px}.desktop-browser-header__center[data-v-d86c5af5]{height:79px;background-repeat:repeat-x;background-size:auto 100%;background-position:left top}.desktop-browser-header__right[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:112px}.desktop-preview[data-v-cf946232]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-cf946232]{min-height:504px}.iframe-wrapper[data-v-f255b2bb]{width:258px}.iframe-scaled[data-v-f255b2bb]{width:320px;height:124.0310077519%;transform:scale(.80625);transform-origin:top left}.cropped-text[data-v-eb3d05d7]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-preview-wrapper__phone[data-v-3f472f96]{width:282px}.mobile-preview-wrapper__phone img[data-v-3f472f96]{object-fit:cover;border-radius:44px}.mobile-preview-wrapper__content[data-v-3f472f96]{width:258px;height:450px;left:12px}[data-v-6bcaca8a] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-f16f20f8] .vueperslides__bullets{pointer-events:none!important}[data-v-f16f20f8] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-bb3cca55] .vueperslides__bullets{pointer-events:none!important}[data-v-bb3cca55] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-b09e80c4] .vueperslides__bullets{pointer-events:none!important}[data-v-b09e80c4] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-9bdef600] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-2580a7d9]{width:100%;max-width:none}.assign-strategy-drawer-content .assign-strategy-select[data-v-2580a7d9] .in-dropdown-box__container{width:413px}.assign-strategy-drawer .spaced-dot-sep{background-image:linear-gradient(90deg,#91949f 20%,#fff0 0);background-position:center bottom;background-repeat:repeat-x;background-size:5px 1px}.assign-strategy-drawer .spaced-dot-sep--top{background-position:center top}.assign-strategy-drawer .spaced-dot-sep--fc-n:first-child{background:none}
@@ -0,0 +1,102 @@
1
+ import { noop as b, isIOS as F, isClient as O, toValue as h, isObject as T, tryOnScopeDispose as C } from "../shared/index.js";
2
+ import { createFilterWrapper as x, debounceFilter as D, useDebounceFn as j } from "../shared/index.js";
3
+ import "../../vue-demi/lib/index.js";
4
+ import { watch as I } from "vue";
5
+ const P = O ? window : void 0;
6
+ function p(n) {
7
+ var i;
8
+ const o = h(n);
9
+ return (i = o == null ? void 0 : o.$el) != null ? i : o;
10
+ }
11
+ function k(...n) {
12
+ let i, o, r, d;
13
+ if (typeof n[0] == "string" || Array.isArray(n[0]) ? ([o, r, d] = n, i = P) : [i, o, r, d] = n, !i)
14
+ return b;
15
+ Array.isArray(o) || (o = [o]), Array.isArray(r) || (r = [r]);
16
+ const m = [], y = () => {
17
+ m.forEach((c) => c()), m.length = 0;
18
+ }, a = (c, l, u, f) => (c.addEventListener(l, u, f), () => c.removeEventListener(l, u, f)), E = I(
19
+ () => [p(i), h(d)],
20
+ ([c, l]) => {
21
+ if (y(), !c)
22
+ return;
23
+ const u = T(l) ? { ...l } : l;
24
+ m.push(
25
+ ...o.flatMap((f) => r.map((w) => a(c, f, w, u)))
26
+ );
27
+ },
28
+ { immediate: !0, flush: "post" }
29
+ ), A = () => {
30
+ E(), y();
31
+ };
32
+ return C(A), A;
33
+ }
34
+ let L = !1;
35
+ function $(n, i, o = {}) {
36
+ const { window: r = P, ignore: d = [], capture: m = !0, detectIframe: y = !1 } = o;
37
+ if (!r)
38
+ return b;
39
+ F && !L && (L = !0, Array.from(r.document.body.children).forEach((e) => e.addEventListener("click", b)), r.document.documentElement.addEventListener("click", b));
40
+ let a = !0;
41
+ const E = (e) => h(d).some((t) => {
42
+ if (typeof t == "string")
43
+ return Array.from(r.document.querySelectorAll(t)).some((s) => s === e.target || e.composedPath().includes(s));
44
+ {
45
+ const s = p(t);
46
+ return s && (e.target === s || e.composedPath().includes(s));
47
+ }
48
+ });
49
+ function A(e) {
50
+ const t = h(e);
51
+ return t && t.$.subTree.shapeFlag === 16;
52
+ }
53
+ function c(e, t) {
54
+ const s = h(e), v = s.$.subTree && s.$.subTree.children;
55
+ return v == null || !Array.isArray(v) ? !1 : v.some((g) => g.el === t.target || t.composedPath().includes(g.el));
56
+ }
57
+ const l = (e) => {
58
+ const t = p(n);
59
+ if (e.target != null && !(!(t instanceof Element) && A(n) && c(n, e)) && !(!t || t === e.target || e.composedPath().includes(t))) {
60
+ if (e.detail === 0 && (a = !E(e)), !a) {
61
+ a = !0;
62
+ return;
63
+ }
64
+ i(e);
65
+ }
66
+ };
67
+ let u = !1;
68
+ const f = [
69
+ k(r, "click", (e) => {
70
+ u || (u = !0, setTimeout(() => {
71
+ u = !1;
72
+ }, 0), l(e));
73
+ }, { passive: !0, capture: m }),
74
+ k(r, "pointerdown", (e) => {
75
+ const t = p(n);
76
+ a = !E(e) && !!(t && !e.composedPath().includes(t));
77
+ }, { passive: !0 }),
78
+ y && k(r, "blur", (e) => {
79
+ setTimeout(() => {
80
+ var t;
81
+ const s = p(n);
82
+ ((t = r.document.activeElement) == null ? void 0 : t.tagName) === "IFRAME" && !(s != null && s.contains(r.document.activeElement)) && i(e);
83
+ }, 0);
84
+ })
85
+ ].filter(Boolean);
86
+ return () => f.forEach((e) => e());
87
+ }
88
+ export {
89
+ x as createFilterWrapper,
90
+ D as debounceFilter,
91
+ P as defaultWindow,
92
+ O as isClient,
93
+ F as isIOS,
94
+ T as isObject,
95
+ b as noop,
96
+ $ as onClickOutside,
97
+ h as toValue,
98
+ C as tryOnScopeDispose,
99
+ p as unrefElement,
100
+ j as useDebounceFn,
101
+ k as useEventListener
102
+ };
@@ -1,45 +1,57 @@
1
1
  import "../../vue-demi/lib/index.js";
2
- import { unref as p } from "vue";
3
- function f(t) {
2
+ import { unref as p, getCurrentScope as w, onScopeDispose as m } from "vue";
3
+ function T(t) {
4
+ return w() ? (m(t), !0) : !1;
5
+ }
6
+ function a(t) {
4
7
  return typeof t == "function" ? t() : p(t);
5
8
  }
9
+ const g = typeof window < "u" && typeof document < "u";
6
10
  typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
7
- const m = () => {
8
- };
9
- function h(t, n) {
10
- function r(...e) {
11
- return new Promise((i, o) => {
12
- Promise.resolve(t(() => n.apply(this, e), { fn: n, thisArg: this, args: e })).then(i).catch(o);
11
+ const b = Object.prototype.toString, j = (t) => b.call(t) === "[object Object]", f = () => {
12
+ }, x = /* @__PURE__ */ h();
13
+ function h() {
14
+ var t, n;
15
+ return g && ((t = window == null ? void 0 : window.navigator) == null ? void 0 : t.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((n = window == null ? void 0 : window.navigator) == null ? void 0 : n.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));
16
+ }
17
+ function v(t, n) {
18
+ function o(...e) {
19
+ return new Promise((r, i) => {
20
+ Promise.resolve(t(() => n.apply(this, e), { fn: n, thisArg: this, args: e })).then(r).catch(i);
13
21
  });
14
22
  }
15
- return r;
23
+ return o;
16
24
  }
17
- function T(t, n = {}) {
18
- let r, e, i = m;
19
- const o = (u) => {
20
- clearTimeout(u), i(), i = m;
25
+ function S(t, n = {}) {
26
+ let o, e, r = f;
27
+ const i = (u) => {
28
+ clearTimeout(u), r(), r = f;
21
29
  };
22
30
  return (u) => {
23
- const a = f(t), l = f(n.maxWait);
24
- return r && o(r), a <= 0 || l !== void 0 && l <= 0 ? (e && (o(e), e = null), Promise.resolve(u())) : new Promise((c, s) => {
25
- i = n.rejectOnCancel ? s : c, l && !e && (e = setTimeout(() => {
26
- r && o(r), e = null, c(u());
27
- }, l)), r = setTimeout(() => {
28
- e && o(e), e = null, c(u());
29
- }, a);
31
+ const s = a(t), c = a(n.maxWait);
32
+ return o && i(o), s <= 0 || c !== void 0 && c <= 0 ? (e && (i(e), e = null), Promise.resolve(u())) : new Promise((l, d) => {
33
+ r = n.rejectOnCancel ? d : l, c && !e && (e = setTimeout(() => {
34
+ o && i(o), e = null, l(u());
35
+ }, c)), o = setTimeout(() => {
36
+ e && i(e), e = null, l(u());
37
+ }, s);
30
38
  });
31
39
  };
32
40
  }
33
- function P(t, n = 200, r = {}) {
34
- return h(
35
- T(n, r),
41
+ function A(t, n = 200, o = {}) {
42
+ return v(
43
+ S(n, o),
36
44
  t
37
45
  );
38
46
  }
39
47
  export {
40
- h as createFilterWrapper,
41
- T as debounceFilter,
42
- m as noop,
43
- f as toValue,
44
- P as useDebounceFn
48
+ v as createFilterWrapper,
49
+ S as debounceFilter,
50
+ g as isClient,
51
+ x as isIOS,
52
+ j as isObject,
53
+ f as noop,
54
+ a as toValue,
55
+ T as tryOnScopeDispose,
56
+ A as useDebounceFn
45
57
  };
@@ -1,4 +1,4 @@
1
- const o = { stripo: { version: "2.72.1" } }, s = {
1
+ const o = { stripo: { version: "2.73.0" } }, s = {
2
2
  guido: o
3
3
  };
4
4
  export {
package/dist/sprite.svg CHANGED
@@ -3107,6 +3107,12 @@
3107
3107
  <symbol viewBox="0 0 24 24" data-token-name="line-replace-dynamic-content" id="line-replace-dynamic-content">
3108
3108
  <path fill-rule="evenodd" clip-rule="evenodd" d="M10.8327 5.42341C11.2222 5.81502 11.221 6.44877 10.8301 6.83894C10.8013 6.86765 10.7712 6.89425 10.74 6.91873L8.70549 8.95706C8.31533 9.34795 7.68275 9.34795 7.29259 8.95706C6.90243 8.56617 6.90243 7.93242 7.29259 7.54153L7.73664 7.09666L7.00053 7.09662C6.44823 7.0966 6.00049 7.54432 6.00049 8.09662V10.0001C6.00049 10.5524 5.55277 11.0001 5.00049 11.0001C4.4482 11.0001 4.00049 10.5524 4.00049 10.0001V8.09662C4.00049 6.43972 5.34372 5.09655 7.00062 5.09662L7.6872 5.09665L7.30179 4.70909C6.91235 4.31748 6.91353 3.68372 7.30442 3.29356C7.69531 2.9034 8.32788 2.90458 8.71732 3.29619L10.8327 5.42341ZM12 6.00024C12 4.89567 12.8954 4.00024 14 4.00024H18C19.1046 4.00024 20 4.89567 20 6.00024V10.0002C20 11.1048 19.1046 12.0002 18 12.0002H14C12.8954 12.0002 12 11.1048 12 10.0002V6.00024ZM14 6.00024H18V10.0002H14V6.00024ZM4 14.0002C4 12.8957 4.89543 12.0002 6 12.0002H10C11.1046 12.0002 12 12.8957 12 14.0002V18.0002C12 19.1048 11.1046 20.0002 10 20.0002H6C4.89543 20.0002 4 19.1048 4 18.0002V14.0002ZM6 14.0002H10V18.0002H6V14.0002ZM13.2939 17.1612C12.9031 17.5513 12.9019 18.1851 13.2913 18.5767L15.4067 20.7039C15.7961 21.0955 16.4287 21.0967 16.8196 20.7065C17.2105 20.3164 17.2117 19.6826 16.8222 19.291L16.4368 18.9034L17.1234 18.9035C18.7803 18.9035 20.1235 17.5604 20.1235 15.9035V14C20.1235 13.4477 19.6758 13 19.1235 13C18.5713 13 18.1235 13.4477 18.1235 14L18.1235 15.9035C18.1235 16.4558 17.6758 16.9035 17.1235 16.9035L16.3874 16.9034L16.8314 16.4586C17.2216 16.0677 17.2216 15.4339 16.8314 15.043C16.4413 14.6522 15.8087 14.6522 15.4185 15.043L13.384 17.0814C13.3528 17.1058 13.3227 17.1324 13.2939 17.1612Z"/>
3109
3109
  </symbol>
3110
+ <symbol viewBox="0 0 24 24" id="line-accessibility">
3111
+ <g transform="translate(2 2)">
3112
+ <rect x="1" y="1" width="18" height="18" rx="9" fill="none" stroke="currentColor" stroke-width="2"/>
3113
+ <path fill="currentColor" d="M14.8125 6.08473C15.332 5.94828 15.6875 6.47668 15.6875 6.95875C15.6873 7.44052 15.2498 7.66778 14.8125 7.8318C14.798 7.83727 14.7826 7.84147 14.7676 7.84547L12.3262 8.69898C12.013 8.81663 11.8784 8.93913 11.8486 8.99391C11.848 8.99533 11.8475 8.9975 11.8467 8.99879C11.8153 9.05489 11.7235 9.29227 11.8379 10.0076L11.9961 11.238L12.8887 16.0154C12.8969 16.0521 12.9036 16.0895 12.9092 16.1267C12.9741 16.5696 12.6498 16.9997 12.0342 16.9998C11.4983 16.9998 11.2617 16.63 11.1592 16.1267C11.1592 16.1267 10.3701 11.8181 9.9873 11.8181C9.60444 11.8205 8.94137 15.6235 8.83887 16.1267C8.7363 16.63 8.49971 16.9998 7.96387 16.9998C7.34999 16.9996 7.02548 16.5711 7.08887 16.1296L7.0957 16.0955C7.09789 16.0818 7.09981 16.0676 7.10254 16.0545L7.9834 11.2371L8.1416 10.0066C8.17359 9.80644 8.26392 9.23379 8.15137 8.9441C8.11665 8.85389 8.0452 8.7492 7.7793 8.64723L5.17962 7.83495C5.17734 7.83424 5.17578 7.83212 5.17578 7.82972C5.17578 7.82745 5.17437 7.82541 5.17224 7.8246C4.74007 7.66146 4.31254 7.43412 4.3125 6.95777C4.31258 6.47553 4.66813 5.9482 5.1875 6.08473C5.26161 6.10405 5.33481 6.12744 5.40625 6.15504C6.12486 6.3593 8.37146 6.9607 9.98828 6.9607C11.7281 6.96068 14.1981 6.26431 14.707 6.115C14.7342 6.10658 14.7619 6.09917 14.7891 6.09156L14.7998 6.08766L14.8125 6.08473ZM9.70117 3.02906C9.99821 2.96998 10.3061 3.00106 10.5859 3.11695C10.8657 3.23286 11.1052 3.42866 11.2734 3.68043C11.4416 3.93217 11.5312 4.22828 11.5312 4.53101C11.5308 4.93693 11.369 5.326 11.082 5.61305C10.795 5.9001 10.406 6.06183 10 6.06226C9.69721 6.06226 9.40119 5.97264 9.14941 5.80445C8.89762 5.63621 8.70086 5.39673 8.58496 5.11695C8.46918 4.83725 8.439 4.52909 8.49805 4.23219C8.55716 3.93526 8.70292 3.6621 8.91699 3.44801C9.13112 3.23391 9.4042 3.08814 9.70117 3.02906Z"/>
3114
+ </g>
3115
+ </symbol>
3110
3116
  <svg viewBox="0 0 24 24" data-token-name="line-advanced-settings" id="line-advanced-settings">
3111
3117
  <path fill-rule="evenodd" clip-rule="evenodd" d="M16 3C15.4477 3 15 3.44772 15 4V6V8C15 8.55228 15.4477 9 16 9C16.5523 9 17 8.55228 17 8V7H20C20.5523 7 21 6.55228 21 6C21 5.44772 20.5523 5 20 5H17V4C17 3.44772 16.5523 3 16 3ZM3 6C3 5.44772 3.44772 5 4 5H12C12.5523 5 13 5.44772 13 6C13 6.55228 12.5523 7 12 7H4C3.44772 7 3 6.55228 3 6ZM16 15C15.4477 15 15 15.4477 15 16V18V20C15 20.5523 15.4477 21 16 21C16.5523 21 17 20.5523 17 20V19H20C20.5523 19 21 18.5523 21 18C21 17.4477 20.5523 17 20 17H17V16C17 15.4477 16.5523 15 16 15ZM3 18C3 17.4477 3.44772 17 4 17H12C12.5523 17 13 17.4477 13 18C13 18.5523 12.5523 19 12 19H4C3.44772 19 3 18.5523 3 18ZM7 10C7 9.44772 7.44772 9 8 9C8.55228 9 9 9.44772 9 10V12V14C9 14.5523 8.55228 15 8 15C7.44772 15 7 14.5523 7 14V13H4C3.44772 13 3 12.5523 3 12C3 11.4477 3.44772 11 4 11H7V10ZM12 11C11.4477 11 11 11.4477 11 12C11 12.5523 11.4477 13 12 13H20C20.5523 13 21 12.5523 21 12C21 11.4477 20.5523 11 20 11H12Z"/>
3112
3118
  </svg>
@@ -391,6 +391,8 @@ export declare const FeaturesSchema: v.ObjectSchema<{
391
391
  readonly liquidSyntax: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
392
392
  /** Enable autosave (3-min interval + tab-hide). User toggles on/off from the header. */
393
393
  readonly autosave: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
394
+ /** Enable the Stripo Accessibility Checker control in the editor toolbar. */
395
+ readonly accessibilityTesting: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
394
396
  /** Enable pre-save domain-allowlist validation (opt-in; Guido self-serves the block toaster) */
395
397
  readonly allowlistEnabled: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
396
398
  /** Enable persistent link tracking-id assignment for the click heatmap (opt-in) */
@@ -791,6 +793,8 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
791
793
  readonly liquidSyntax: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
792
794
  /** Enable autosave (3-min interval + tab-hide). User toggles on/off from the header. */
793
795
  readonly autosave: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
796
+ /** Enable the Stripo Accessibility Checker control in the editor toolbar. */
797
+ readonly accessibilityTesting: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
794
798
  /** Enable pre-save domain-allowlist validation (opt-in; Guido self-serves the block toaster) */
795
799
  readonly allowlistEnabled: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
796
800
  /** Enable persistent link tracking-id assignment for the click heatmap (opt-in) */
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;