@useinsider/guido 2.1.0-beta.bc18abc → 2.1.0-beta.bcfc012

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 (213) hide show
  1. package/README.md +36 -0
  2. package/dist/@types/config/schemas.js +70 -65
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +69 -58
  5. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +15 -14
  6. package/dist/components/organisms/header/EditorActions.vue.js +12 -10
  7. package/dist/components/organisms/header/EditorActions.vue2.js +41 -31
  8. package/dist/components/organisms/header/HeaderWrapper.vue.js +9 -9
  9. package/dist/components/organisms/header/MigrationConfirmModal.vue.js +21 -0
  10. package/dist/components/organisms/header/MigrationConfirmModal.vue2.js +38 -0
  11. package/dist/composables/useActionsApi.js +15 -13
  12. package/dist/composables/useBlocksConfig.js +26 -16
  13. package/dist/composables/useHtmlValidator.js +114 -104
  14. package/dist/composables/useRecommendation.js +54 -21
  15. package/dist/composables/useStripo.js +25 -23
  16. package/dist/composables/useVersionHistoryApi.js +1 -1
  17. package/dist/config/compiler/recommendationCompilerRules.js +45 -39
  18. package/dist/config/compiler/utils/recommendationCompilerUtils.js +121 -0
  19. package/dist/config/i18n/en/index.js +11 -0
  20. package/dist/config/i18n/en/labels.json.js +12 -0
  21. package/dist/config/i18n/en/toasters.json.js +56 -0
  22. package/dist/config/i18n/en/tooltips.json.js +82 -0
  23. package/dist/config/i18n/index.js +7 -0
  24. package/dist/config/migrator/itemsBlockMigrator.js +142 -119
  25. package/dist/config/migrator/recommendationMigrator.js +42 -40
  26. package/dist/enums/defaults.js +8 -4
  27. package/dist/enums/extensions/recommendationBlock.js +1 -1
  28. package/dist/enums/recommendation.js +16 -15
  29. package/dist/extensions/Blocks/Items/block.js +46 -35
  30. package/dist/extensions/Blocks/Items/controls/button/link.js +19 -31
  31. package/dist/extensions/Blocks/Items/controls/cardComposition.js +124 -85
  32. package/dist/extensions/Blocks/Items/controls/image/link.js +19 -31
  33. package/dist/extensions/Blocks/Items/controls/name/trimming.js +28 -40
  34. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -47
  35. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +49 -54
  36. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +42 -51
  37. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -36
  38. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +45 -57
  39. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +42 -60
  40. package/dist/extensions/Blocks/Items/controls/settingsControl.js +189 -196
  41. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -2
  42. package/dist/extensions/Blocks/Items/extension.js +8 -9
  43. package/dist/extensions/Blocks/Items/iconsRegistry.js +40 -5
  44. package/dist/extensions/Blocks/Items/items.css.js +48 -0
  45. package/dist/extensions/Blocks/Items/settingsPanel.js +10 -15
  46. package/dist/extensions/Blocks/Items/template.js +181 -175
  47. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +65 -65
  48. package/dist/extensions/Blocks/Recommendation/block.js +153 -9
  49. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  50. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  51. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +66 -0
  52. package/dist/extensions/Blocks/Recommendation/constants/layout.js +22 -0
  53. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +21 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +92 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +102 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +209 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +52 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +250 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +70 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +160 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +67 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +307 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +21 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +108 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  71. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscountTextAfterControl.js → omnibusDiscount/textAfter.js} +16 -14
  73. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscountTextBeforeControl.js → omnibusDiscount/textBefore.js} +16 -14
  74. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  75. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPriceTextAfterControl.js → omnibusPrice/textAfter.js} +16 -14
  76. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPriceTextBeforeControl.js → omnibusPrice/textBefore.js} +14 -12
  77. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  78. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  79. package/dist/extensions/Blocks/Recommendation/extension.js +40 -17
  80. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +54 -3
  81. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +61 -4
  82. package/dist/extensions/Blocks/Recommendation/services/configService.js +240 -0
  83. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +21 -10
  84. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +254 -207
  85. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +228 -0
  86. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
  87. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +66 -0
  88. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  89. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +169 -0
  90. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
  91. package/dist/extensions/Blocks/Recommendation/templates/utils.js +134 -0
  92. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  93. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  94. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +26 -15
  95. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  96. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  97. package/dist/extensions/Blocks/common-control.js +101 -94
  98. package/dist/extensions/Blocks/controlFactories.js +125 -93
  99. package/dist/extensions/ModulesTabIcons/extension.js +17 -0
  100. package/dist/guido.css +1 -1
  101. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +317 -193
  102. package/dist/services/recommendationApi.js +11 -8
  103. package/dist/services/stripoApi.js +20 -17
  104. package/dist/services/templateLibraryApi.js +16 -13
  105. package/dist/src/@types/config/schemas.d.ts +8 -0
  106. package/dist/src/components/Guido.vue.d.ts +1 -1
  107. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  108. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
  109. package/dist/src/components/organisms/header/MigrationConfirmModal.vue.d.ts +5 -0
  110. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  111. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  112. package/dist/src/components/wrappers/WpModal.vue.d.ts +2 -2
  113. package/dist/src/composables/useConfig.d.ts +4 -0
  114. package/dist/src/composables/useRecommendation.d.ts +1 -0
  115. package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +17 -0
  116. package/dist/src/config/i18n/en/index.d.ts +1 -0
  117. package/dist/src/config/i18n/index.d.ts +16 -0
  118. package/dist/src/enums/defaults.d.ts +4 -0
  119. package/dist/src/extensions/Blocks/Items/block.d.ts +1 -1
  120. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -1
  121. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +5 -5
  122. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -1
  123. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  124. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  125. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  126. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  127. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  128. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -1
  129. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +0 -5
  130. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -12
  131. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +2 -1
  132. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +68 -0
  133. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  134. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +0 -24
  135. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  136. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  137. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +41 -0
  138. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +35 -0
  139. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  140. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  141. package/dist/src/extensions/Blocks/Recommendation/{cardCompositionControl.d.ts → controls/cardComposition/index.d.ts} +23 -3
  142. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  143. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +21 -589
  144. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
  145. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  146. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +52 -0
  147. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  148. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +79 -0
  149. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  150. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +60 -0
  151. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  152. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +221 -0
  153. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +29 -0
  154. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  155. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +34 -0
  156. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  157. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  158. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  159. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  160. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  161. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  162. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  163. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  164. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  165. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  166. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  167. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  168. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +138 -468
  169. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
  170. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → grid/migration.d.ts} +11 -4
  171. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
  172. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +41 -0
  173. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
  174. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
  175. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
  176. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +66 -0
  177. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  178. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +166 -0
  179. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  180. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  181. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  182. package/dist/src/extensions/Blocks/common-control.d.ts +9 -5
  183. package/dist/src/extensions/ModulesTabIcons/extension.d.ts +2 -0
  184. package/dist/src/stores/config.d.ts +36 -0
  185. package/dist/src/stores/template.d.ts +3 -0
  186. package/dist/static/styles/components/notification.css.js +19 -0
  187. package/dist/static/styles/components/tools.css.js +6 -2
  188. package/dist/static/styles/components/version-history.css.js +10 -2
  189. package/dist/static/styles/components/wide-panel.css.js +18 -2
  190. package/dist/static/styles/customEditorStyle.css.js +35 -11
  191. package/dist/static/styles/variables.css.js +2 -0
  192. package/dist/static/templates/empty/index.html.js +74 -0
  193. package/dist/static/templates/empty/style.css.js +779 -0
  194. package/dist/stores/template.js +9 -0
  195. package/dist/utils/pairProductVariables.js +57 -56
  196. package/dist/utils/templatePreparation.js +15 -14
  197. package/package.json +1 -1
  198. package/dist/extensions/Blocks/Items/store/items-block.js +0 -79
  199. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -187
  200. package/dist/extensions/Blocks/Recommendation/constants.js +0 -13
  201. package/dist/extensions/Blocks/Recommendation/control.js +0 -336
  202. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +0 -68
  203. package/dist/extensions/Blocks/Recommendation/controls/index.js +0 -245
  204. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +0 -74
  205. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +0 -188
  206. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -181
  207. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -189
  208. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -209
  209. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -45
  210. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -38
  211. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +0 -16
  212. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  213. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -52
@@ -0,0 +1,48 @@
1
+ import { createPaddingsControl as n, createTextBackgroundColorControl as e, createTextFontFamilyControl as C, createTextStyleControl as I, createTextSizeControl as l, createTextColorControl as i, createTextAlignControl as c } from "../../../controlFactories.js";
2
+ import { RecommendationBlockId as o } from "../../constants/blockIds.js";
3
+ import { RecommendationControlId as t } from "../../constants/controlIds.js";
4
+ import { CONTAINER_SELECTOR as r } from "../../constants/selectors.js";
5
+ import { OmnibusPriceTextAfterControl as O } from "./textAfter.js";
6
+ import { OmnibusPriceTextBeforeControl as _ } from "./textBefore.js";
7
+ const m = c(
8
+ t.OMNIBUS_PRICE_ALIGN,
9
+ o.OMNIBUS_PRICE,
10
+ r
11
+ ), S = i(
12
+ t.OMNIBUS_PRICE_COLOR,
13
+ o.OMNIBUS_PRICE,
14
+ r
15
+ ), B = l(
16
+ t.OMNIBUS_PRICE_SIZE,
17
+ o.OMNIBUS_PRICE,
18
+ r
19
+ ), N = I(
20
+ t.OMNIBUS_PRICE_STYLE,
21
+ o.OMNIBUS_PRICE,
22
+ r
23
+ ), P = C(
24
+ t.OMNIBUS_PRICE_FONT_FAMILY,
25
+ o.OMNIBUS_PRICE,
26
+ r
27
+ ), R = e(
28
+ t.OMNIBUS_PRICE_BACKGROUND,
29
+ o.OMNIBUS_PRICE,
30
+ r
31
+ ), a = n(
32
+ t.OMNIBUS_PRICE_PADDINGS,
33
+ o.OMNIBUS_PRICE,
34
+ r
35
+ ), f = {
36
+ align: m,
37
+ color: S,
38
+ size: B,
39
+ style: N,
40
+ fontFamily: P,
41
+ background: R,
42
+ paddings: a,
43
+ textBefore: _,
44
+ textAfter: O
45
+ };
46
+ export {
47
+ f as OmnibusPriceControls
48
+ };
@@ -1,11 +1,13 @@
1
- import { ModificationDescription as a } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { CommonControl as m } from "../../common-control.js";
3
- import { RecommendationControlId as l, RecommendationBlockId as d } from "../constants.js";
4
- import { preserveTextStyles as T } from "../utils/preserveTextStyles.js";
5
- const f = ".ins-recommendation-product-container", s = "data-text-after", c = "", p = ".omnibus-text-after";
6
- class C extends m {
1
+ import { ModificationDescription as c } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { CommonControl as a } from "../../../common-control.js";
3
+ import { RecommendationBlockId as l } from "../../constants/blockIds.js";
4
+ import { RecommendationControlId as d } from "../../constants/controlIds.js";
5
+ import { CONTAINER_SELECTOR as T } from "../../constants/selectors.js";
6
+ import { preserveTextStyles as f } from "../../utils/preserveTextStyles.js";
7
+ const s = "data-text-after", m = "", p = ".omnibus-text-after";
8
+ class N extends a {
7
9
  getId() {
8
- return l.OMNIBUS_PRICE_TEXT_AFTER;
10
+ return d.OMNIBUS_PRICE_TEXT_AFTER;
9
11
  }
10
12
  getTemplate() {
11
13
  return `
@@ -35,18 +37,18 @@ class C extends m {
35
37
  }
36
38
  _getCurrentText() {
37
39
  if (!this.currentNode || !("getAttribute" in this.currentNode))
38
- return c;
40
+ return m;
39
41
  const t = this.currentNode.getAttribute(s);
40
- return t === null ? c : t;
42
+ return t === null ? m : t;
41
43
  }
42
44
  _onTextChange(t) {
43
45
  if (!this.currentNode || !("closest" in this.currentNode))
44
46
  return;
45
- const e = this.currentNode.closest(f);
47
+ const e = this.currentNode.closest(T);
46
48
  if (!e || !("querySelectorAll" in e))
47
49
  return;
48
50
  const n = Array.from(
49
- e.querySelectorAll(`[esd-extension-block-id="${d.OMNIBUS_PRICE}"]`)
51
+ e.querySelectorAll(`[esd-extension-block-id="${l.OMNIBUS_PRICE}"]`)
50
52
  );
51
53
  if (!n.length)
52
54
  return;
@@ -55,10 +57,10 @@ class C extends m {
55
57
  r.modifyHtml(i).setAttribute(s, t);
56
58
  const o = i.querySelector(p);
57
59
  if (o) {
58
- const u = T(o, t);
60
+ const u = f(o, t);
59
61
  r.modifyHtml(o).setInnerHtml(u);
60
62
  }
61
- }), r.apply(new a("Update omnibus price text after"));
63
+ }), r.apply(new c("Update omnibus price text after"));
62
64
  }
63
65
  _listenToFormUpdates() {
64
66
  this.api.onValueChanged("omnibusPriceTextAfter", (t) => {
@@ -67,5 +69,5 @@ class C extends m {
67
69
  }
68
70
  }
69
71
  export {
70
- C as OmnibusPriceTextAfterControl
72
+ N as OmnibusPriceTextAfterControl
71
73
  };
@@ -1,11 +1,13 @@
1
- import { ModificationDescription as m } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { CommonControl as a } from "../../common-control.js";
3
- import { RecommendationControlId as l, RecommendationBlockId as d } from "../constants.js";
4
- import { preserveTextStyles as T } from "../utils/preserveTextStyles.js";
5
- const p = ".ins-recommendation-product-container", s = "data-text-before", c = "Lowest 30-day price: ", f = ".omnibus-text-before";
6
- class C extends a {
1
+ import { ModificationDescription as u } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { CommonControl as l } from "../../../common-control.js";
3
+ import { RecommendationBlockId as a } from "../../constants/blockIds.js";
4
+ import { RecommendationControlId as d } from "../../constants/controlIds.js";
5
+ import { CONTAINER_SELECTOR as p } from "../../constants/selectors.js";
6
+ import { preserveTextStyles as T } from "../../utils/preserveTextStyles.js";
7
+ const s = "data-text-before", c = "Lowest 30-day price: ", f = ".omnibus-text-before";
8
+ class N extends l {
7
9
  getId() {
8
- return l.OMNIBUS_PRICE_TEXT_BEFORE;
10
+ return d.OMNIBUS_PRICE_TEXT_BEFORE;
9
11
  }
10
12
  getTemplate() {
11
13
  return `
@@ -46,7 +48,7 @@ class C extends a {
46
48
  if (!t || !("querySelectorAll" in t))
47
49
  return;
48
50
  const n = Array.from(
49
- t.querySelectorAll(`[esd-extension-block-id="${d.OMNIBUS_PRICE}"]`)
51
+ t.querySelectorAll(`[esd-extension-block-id="${a.OMNIBUS_PRICE}"]`)
50
52
  );
51
53
  if (!n.length)
52
54
  return;
@@ -55,10 +57,10 @@ class C extends a {
55
57
  o.modifyHtml(i).setAttribute(s, e);
56
58
  const r = i.querySelector(f);
57
59
  if (r) {
58
- const u = T(r, e);
59
- o.modifyHtml(r).setInnerHtml(u);
60
+ const m = T(r, e);
61
+ o.modifyHtml(r).setInnerHtml(m);
60
62
  }
61
- }), o.apply(new m("Update omnibus price text before"));
63
+ }), o.apply(new u("Update omnibus price text before"));
62
64
  }
63
65
  _listenToFormUpdates() {
64
66
  this.api.onValueChanged("omnibusPriceTextBefore", (e) => {
@@ -67,5 +69,5 @@ class C extends a {
67
69
  }
68
70
  }
69
71
  export {
70
- C as OmnibusPriceTextBeforeControl
72
+ N as OmnibusPriceTextBeforeControl
71
73
  };
@@ -0,0 +1,44 @@
1
+ import { createPaddingsControl as r, createTextBackgroundColorControl as C, createTextFontFamilyControl as e, createTextStyleControl as l, createTextSizeControl as c, createTextColorControl as I, createTextAlignControl as R } from "../../../controlFactories.js";
2
+ import { RecommendationBlockId as o } from "../../constants/blockIds.js";
3
+ import { RecommendationControlId as t } from "../../constants/controlIds.js";
4
+ import { CONTAINER_SELECTOR as n } from "../../constants/selectors.js";
5
+ const a = R(
6
+ t.PRICE_ALIGN,
7
+ o.PRICE,
8
+ n
9
+ ), i = I(
10
+ t.PRICE_COLOR,
11
+ o.PRICE,
12
+ n
13
+ ), E = c(
14
+ t.PRICE_SIZE,
15
+ o.PRICE,
16
+ n
17
+ ), P = l(
18
+ t.PRICE_STYLE,
19
+ o.PRICE,
20
+ n
21
+ ), m = e(
22
+ t.PRICE_FONT_FAMILY,
23
+ o.PRICE,
24
+ n
25
+ ), s = C(
26
+ t.PRICE_BACKGROUND,
27
+ o.PRICE,
28
+ n
29
+ ), d = r(
30
+ t.PRICE_PADDINGS,
31
+ o.PRICE,
32
+ n
33
+ ), x = {
34
+ align: a,
35
+ color: i,
36
+ size: E,
37
+ style: P,
38
+ fontFamily: m,
39
+ background: s,
40
+ paddings: d
41
+ };
42
+ export {
43
+ x as PriceControls
44
+ };
@@ -0,0 +1,222 @@
1
+ var G = Object.defineProperty;
2
+ var I = (o, n, t) => n in o ? G(o, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[n] = t;
3
+ var l = (o, n, t) => I(o, typeof n != "symbol" ? n + "" : n, t);
4
+ import { ModificationDescription as g } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ import { CommonControl as L } from "../../../common-control.js";
6
+ import { SPACING_STEP as b, MAX_SPACING as y, MIN_SPACING as A, DEFAULT_COLUMN_SPACING as a, DEFAULT_ROW_SPACING as m } from "../../constants/layout.js";
7
+ import { RecommendationConfigService as d } from "../../services/configService.js";
8
+ import { useRecommendationExtensionStore as w } from "../../store/recommendation.js";
9
+ import { safeGetStyle as S, safeGetParent as V } from "../../utils/tagName.js";
10
+ import { getCurrentLayout as C } from "../main/utils.js";
11
+ import { useDebounceFn as O } from "../../../../../node_modules/@vueuse/shared/index.js";
12
+ const R = "recommendation-spacing-control", s = {
13
+ COLUMN_SPACING: "columnSpacing",
14
+ COLUMN_SPACING_LABEL: "columnSpacingLabel",
15
+ ROW_SPACING: "rowSpacing"
16
+ }, P = {
17
+ COLUMN_SPACING: "data-column-spacing",
18
+ ROW_SPACING: "data-row-spacing"
19
+ };
20
+ function N(o, n) {
21
+ if (!o)
22
+ return n;
23
+ const t = parseFloat(o);
24
+ return Number.isNaN(t) ? n : t;
25
+ }
26
+ class $ extends L {
27
+ constructor() {
28
+ super(...arguments);
29
+ l(this, "store", w());
30
+ l(this, "unsubscribeOrientation", null);
31
+ /**
32
+ * Debounced version of _onColumnSpacingChange
33
+ * Prevents excessive DOM updates when user rapidly adjusts the counter
34
+ */
35
+ l(this, "_debouncedOnColumnSpacingChange", O((t) => {
36
+ this._onColumnSpacingChange(t);
37
+ }, 300));
38
+ /**
39
+ * Debounced version of _onRowSpacingChange
40
+ * Prevents excessive DOM updates when user rapidly adjusts the counter
41
+ */
42
+ l(this, "_debouncedOnRowSpacingChange", O((t) => {
43
+ this._onRowSpacingChange(t);
44
+ }, 300));
45
+ }
46
+ getId() {
47
+ return R;
48
+ }
49
+ getTemplate() {
50
+ return `
51
+ <div class="spacing-control-container">
52
+ ${this._GuTwoColumns([
53
+ this._GuLabel({ text: "Column Spacing (px)", name: s.COLUMN_SPACING_LABEL }),
54
+ this._GuCounter({
55
+ name: s.COLUMN_SPACING,
56
+ minValue: A,
57
+ maxValue: y,
58
+ step: b
59
+ }),
60
+ this._GuLabel({ text: "Row Spacing (px)" }),
61
+ this._GuCounter({
62
+ name: s.ROW_SPACING,
63
+ minValue: A,
64
+ maxValue: y,
65
+ step: b
66
+ })
67
+ ])}
68
+ </div>
69
+ `;
70
+ }
71
+ onRender() {
72
+ this._setFormValues(), this._updateColumnSpacingVisibility(), this._listenToFormUpdates(), this._subscribeToOrientationChanges();
73
+ }
74
+ onTemplateNodeUpdated(t) {
75
+ super.onTemplateNodeUpdated(t), this._setFormValues(), this._updateColumnSpacingVisibility();
76
+ }
77
+ onDestroy() {
78
+ this.unsubscribeOrientation && (this.unsubscribeOrientation(), this.unsubscribeOrientation = null);
79
+ }
80
+ /**
81
+ * Updates column spacing visibility based on layout orientation
82
+ * Column spacing is hidden for list layout (products are stacked vertically)
83
+ * Reads from node config first, falls back to store then DOM
84
+ */
85
+ _updateColumnSpacingVisibility() {
86
+ if (!this.api)
87
+ return;
88
+ const t = d.getConfig(this.currentNode), e = this.store.recommendationConfigs.orientation, i = (t.layout || e || C(this.currentNode)) === "grid";
89
+ this.api.setVisibility(s.COLUMN_SPACING, i), this.api.setVisibility(s.COLUMN_SPACING_LABEL, i);
90
+ }
91
+ /**
92
+ * Reads spacing values from node config first, falls back to DOM styles
93
+ */
94
+ _setFormValues() {
95
+ if (!this.api)
96
+ return;
97
+ const t = d.getConfig(this.currentNode), e = t.columnSpacing !== a ? t.columnSpacing : this._getStoredColumnSpacing(), r = t.rowSpacing !== m ? t.rowSpacing : this._getStoredRowSpacing();
98
+ this.api.updateValues({
99
+ [s.COLUMN_SPACING]: e,
100
+ [s.ROW_SPACING]: r
101
+ });
102
+ }
103
+ /**
104
+ * Gets stored column spacing from the first attribute row cell's padding.
105
+ * For grid layout: cells inside .recommendation-attribute-row have padding applied.
106
+ * For list layout: the parent of .product-card-wrapper has the padding.
107
+ * The padding is applied as "0 {halfSpacing}px", so we extract and multiply by 2.
108
+ */
109
+ _getStoredColumnSpacing() {
110
+ if (!this.currentNode)
111
+ return a;
112
+ if (C(this.currentNode) === "grid") {
113
+ const p = this.currentNode.querySelector(".recommendation-attribute-row"), c = p == null ? void 0 : p.querySelector("td"), f = S(c, "padding");
114
+ if (!f)
115
+ return a;
116
+ const _ = f.trim().split(/\s+/);
117
+ return _.length < 2 ? a : N(_[1], a / 2) * 2;
118
+ }
119
+ const e = this.currentNode.querySelector(".product-card-wrapper"), r = V(e), i = S(r, "padding");
120
+ if (!i)
121
+ return a;
122
+ const u = i.trim().split(/\s+/);
123
+ return u.length < 2 ? a : N(u[1], a / 2) * 2;
124
+ }
125
+ /**
126
+ * Gets stored row spacing from the first spacer element's height style
127
+ */
128
+ _getStoredRowSpacing() {
129
+ if (!this.currentNode)
130
+ return m;
131
+ const t = this.currentNode.querySelector(".spacer"), e = S(t, "height");
132
+ return N(e, m);
133
+ }
134
+ /**
135
+ * Handles column spacing changes.
136
+ * For grid layout: applies horizontal padding to all cells inside attribute rows.
137
+ * For list layout: applies padding to parent of product card wrappers.
138
+ */
139
+ _onColumnSpacingChange(t) {
140
+ if (!this.currentNode)
141
+ return;
142
+ d.updateConfig(
143
+ this.api,
144
+ this.currentNode,
145
+ { columnSpacing: t },
146
+ `Changed column spacing to ${t}px`
147
+ ), this._storeColumnSpacing(t);
148
+ const r = d.getConfig(this.currentNode).layout || C(this.currentNode), i = this.api.getDocumentModifier(), h = `0 ${t / 2}px`;
149
+ r === "grid" ? Array.from(
150
+ this.currentNode.querySelectorAll(".attribute-cell")
151
+ ).forEach((c) => {
152
+ i.modifyHtml(c).setStyle("padding", h);
153
+ }) : Array.from(
154
+ this.currentNode.querySelectorAll(".product-card-wrapper")
155
+ ).forEach((c) => {
156
+ "parent" in c && c.parent() && i.modifyHtml(c.parent()).setStyle("padding", h);
157
+ }), i.apply(new g(`Update column spacing to ${t}px`));
158
+ }
159
+ /**
160
+ * Handles row spacing changes
161
+ * Applies height to all spacer elements between product rows
162
+ */
163
+ _onRowSpacingChange(t) {
164
+ if (!this.currentNode)
165
+ return;
166
+ d.updateConfig(
167
+ this.api,
168
+ this.currentNode,
169
+ { rowSpacing: t },
170
+ `Changed row spacing to ${t}px`
171
+ ), this._storeRowSpacing(t);
172
+ const e = Array.from(
173
+ this.currentNode.querySelectorAll(".spacer")
174
+ );
175
+ if (!e.length)
176
+ return;
177
+ const r = this.api.getDocumentModifier(), i = `${t}px`;
178
+ e.forEach((u) => {
179
+ r.modifyHtml(u).setStyle("height", i);
180
+ }), r.apply(new g(`Update row spacing to ${t}px`));
181
+ }
182
+ /**
183
+ * Stores column spacing value in block data attribute
184
+ */
185
+ _storeColumnSpacing(t) {
186
+ if (!this.currentNode)
187
+ return;
188
+ const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
189
+ e && this.api.getDocumentModifier().modifyHtml(e).setAttribute(P.COLUMN_SPACING, t.toString()).apply(new g("Store column spacing"));
190
+ }
191
+ /**
192
+ * Stores row spacing value in block data attribute
193
+ */
194
+ _storeRowSpacing(t) {
195
+ if (!this.currentNode)
196
+ return;
197
+ const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
198
+ e && this.api.getDocumentModifier().modifyHtml(e).setAttribute(P.ROW_SPACING, t.toString()).apply(new g("Store row spacing"));
199
+ }
200
+ _listenToFormUpdates() {
201
+ this.api.onValueChanged(s.COLUMN_SPACING, (t) => {
202
+ const e = parseInt(t);
203
+ Number.isNaN(e) || this._debouncedOnColumnSpacingChange(e);
204
+ }), this.api.onValueChanged(s.ROW_SPACING, (t) => {
205
+ const e = parseInt(t);
206
+ Number.isNaN(e) || this._debouncedOnRowSpacingChange(e);
207
+ });
208
+ }
209
+ /**
210
+ * Subscribe to store orientation changes
211
+ * Updates column spacing visibility when layout changes via the layout control
212
+ */
213
+ _subscribeToOrientationChanges() {
214
+ this.unsubscribeOrientation && this.unsubscribeOrientation(), this.unsubscribeOrientation = this.store.$subscribe((t) => {
215
+ t.type === "patch object" && this._updateColumnSpacingVisibility();
216
+ });
217
+ }
218
+ }
219
+ export {
220
+ R as SPACING_CONTROL_ID,
221
+ $ as SpacingControl
222
+ };
@@ -1,19 +1,42 @@
1
- import { ExtensionBuilder as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { RecommendationBlock as t } from "./block.js";
3
- import { RecommendationCardCompositionControl as n } from "./cardCompositionControl.js";
4
- import { RecommendationBlockControl as r } from "./control.js";
5
- import { ButtonAlignControl as l, ButtonBorderControl as d, ButtonBorderRadiusControl as C, ButtonColorControl as i, ButtonFitToContentControl as a, ButtonFontFamilyControl as e, ButtonMarginsControl as m, ButtonPaddingsControl as s, ButtonTextControl as c, ButtonTextSizeControl as u, ButtonTextStyleAndFontColorControl as P, ImageMarginsControl as g, ImageSizeControl as B, NameAlignControl as O, NameBackgroundControl as f, NameColorControl as b, NameFontFamilyControl as p, NamePaddingsControl as y, NameSizeControl as S, NameStyleControl as F, OldPriceAlignControl as x, OldPriceBackgroundControl as T, OldPriceColorControl as k, OldPriceFontFamilyControl as A, OldPricePaddingsControl as D, OldPriceSizeControl as N, OldPriceStyleControl as R, OmnibusPriceAlignControl as z, OmnibusPriceBackgroundControl as I, OmnibusPriceColorControl as w, OmnibusPriceFontFamilyControl as h, OmnibusPricePaddingsControl as M, OmnibusPriceSizeControl as E, OmnibusPriceStyleControl as j, OmnibusDiscountAlignControl as q, OmnibusDiscountBackgroundControl as v, OmnibusDiscountColorControl as G, OmnibusDiscountFontFamilyControl as H, OmnibusDiscountPaddingsControl as J, OmnibusDiscountSizeControl as K, OmnibusDiscountStyleControl as L, PriceAlignControl as Q, PriceBackgroundControl as U, PriceColorControl as V, PriceFontFamilyControl as W, PricePaddingsControl as X, PriceSizeControl as Y, PriceStyleControl as Z } from "./controls/index.js";
6
- import { RecommendationIconsRegistry as _ } from "./iconsRegistry.js";
7
- import $ from "./recommendation.css.js";
8
- import { SettingsPanel as oo } from "./settingsPanel.js";
9
- import { CardBackgroundColorControl as to } from "./controls/cardBackgroundColorControl.js";
10
- import { SpacingControl as no } from "./controls/spacingControl.js";
11
- import { NameTextTrimControl as ro } from "./controls/nameTextTrimControl.js";
12
- import { OmnibusPriceTextBeforeControl as lo } from "./controls/omnibusPriceTextBeforeControl.js";
13
- import { OmnibusPriceTextAfterControl as Co } from "./controls/omnibusPriceTextAfterControl.js";
14
- import { OmnibusDiscountTextBeforeControl as io } from "./controls/omnibusDiscountTextBeforeControl.js";
15
- import { OmnibusDiscountTextAfterControl as ao } from "./controls/omnibusDiscountTextAfterControl.js";
16
- const xo = new o().addBlock(t).withSettingsPanelRegistry(oo).addControl(r).addControl(to).addControl(no).addControl(l).addControl(d).addControl(C).addControl(i).addControl(a).addControl(e).addControl(m).addControl(s).addControl(c).addControl(u).addControl(P).addControl(g).addControl(B).addControl(O).addControl(f).addControl(b).addControl(p).addControl(y).addControl(S).addControl(F).addControl(ro).addControl(x).addControl(T).addControl(k).addControl(A).addControl(D).addControl(N).addControl(R).addControl(z).addControl(I).addControl(w).addControl(h).addControl(M).addControl(E).addControl(j).addControl(lo).addControl(Co).addControl(q).addControl(v).addControl(G).addControl(H).addControl(J).addControl(K).addControl(L).addControl(io).addControl(ao).addControl(Q).addControl(U).addControl(V).addControl(W).addControl(X).addControl(Y).addControl(Z).addControl(n).addStyles($).withIconsRegistry(_).build();
1
+ import { ExtensionBuilder as r } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { RecommendationBlock as m } from "./block.js";
3
+ import { RecommendationBlockControl as n } from "./controls/main/index.js";
4
+ import "./store/recommendation.js";
5
+ import { NameControls as i } from "./controls/name/index.js";
6
+ import { PriceControls as e } from "./controls/price/index.js";
7
+ import { OldPriceControls as l } from "./controls/oldPrice/index.js";
8
+ import { OmnibusPriceControls as s } from "./controls/omnibusPrice/index.js";
9
+ import { OmnibusDiscountControls as a } from "./controls/omnibusDiscount/index.js";
10
+ import { ButtonControls as p } from "./controls/button/index.js";
11
+ import { ImageControls as c } from "./controls/image/index.js";
12
+ import { SpacingControl as C } from "./controls/spacing/index.js";
13
+ import { CardBackgroundColorControl as d } from "./controls/cardBackground/index.js";
14
+ import { LayoutControl as f } from "./controls/layout/index.js";
15
+ import { RecommendationCardCompositionControl as u } from "./controls/cardComposition/index.js";
16
+ import { RecommendationIconsRegistry as g } from "./iconsRegistry.js";
17
+ import R from "./recommendation.css.js";
18
+ import { SettingsPanel as y } from "./settingsPanel.js";
19
+ const B = [
20
+ i,
21
+ e,
22
+ l,
23
+ s,
24
+ a,
25
+ p,
26
+ c
27
+ ], P = [
28
+ n,
29
+ d,
30
+ f,
31
+ C,
32
+ u
33
+ ], b = [
34
+ ...P,
35
+ ...B.flatMap((o) => Object.values(o))
36
+ ], F = b.reduce(
37
+ (o, t) => o.addControl(t),
38
+ new r().addBlock(m).withSettingsPanelRegistry(y)
39
+ ).addStyles(R).withIconsRegistry(g).build();
17
40
  export {
18
- xo as default
41
+ F as default
19
42
  };
@@ -1,5 +1,5 @@
1
- import { IconsRegistry as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- class n extends o {
1
+ import { IconsRegistry as t } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ class o extends t {
3
3
  registerIconsSvg(C) {
4
4
  C["recommendation-icon"] = `
5
5
  <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
@@ -43,9 +43,60 @@ class n extends o {
43
43
  3.40029 12.0082 3.25285 11.7656 3.15234C11.365 2.98638 11.0001 2.64849 11 2.21484V2Z"
44
44
  fill="currentColor"/>
45
45
  </svg>
46
+ `, C["grid-orientation"] = `
47
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor">
48
+ <rect x="1" y="1" width="7" height="7" rx="1" stroke="currentColor" stroke-width="2" fill="none"/>
49
+ <rect x="12" y="1" width="7" height="7" rx="1" stroke="currentColor" stroke-width="2" fill="none"/>
50
+ <rect x="1" y="12" width="7" height="7" rx="1" stroke="currentColor" stroke-width="2" fill="none"/>
51
+ <rect x="12" y="12" width="7" height="7" rx="1" stroke="currentColor" stroke-width="2" fill="none"/>
52
+ </svg>
53
+ `, C["list-orientation"] = `
54
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="currentColor">
55
+ <circle cx="3" cy="4" r="1" stroke="currentColor" stroke-width="1"/>
56
+ <rect x="7" y="3" width="11" height="2" rx="1"/>
57
+ <circle cx="3" cy="10" r="1" stroke="currentColor" stroke-width="1"/>
58
+ <rect x="7" y="9" width="11" height="2" rx="1"/>
59
+ <circle cx="3" cy="16" r="1" stroke="currentColor" stroke-width="1"/>
60
+ <rect x="7" y="15" width="11" height="2" rx="1"/>
61
+ </svg>
62
+ `, C["migration-info-icon"] = `
63
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
64
+ <g transform="translate(3, 2.5)">
65
+ <path d="M6.87812 0.141942C10.7873 -0.580665 14.6797 1.51065 16.201 5.16436C17.7344
66
+ 8.84685 16.432 13.0909 13.0906 15.3015C9.77511 17.4946 5.36819 17.08 2.52785
67
+ 14.3193L2.46105 14.2536C0.882709 12.6854 -0.00259777 10.5591 5.72603e-06
68
+ 8.34301L0.000643642 8.24974C0.0491816 4.30543 2.87651 0.926565 6.78576
69
+ 0.159555L6.87812 0.141942ZM14.5911 5.82406C13.3749 2.90345 10.2486 1.24158 7.12372
70
+ 1.85468C3.99888 2.46779 1.74568 5.18516 1.74194 8.34505C1.73988 10.1027 2.44203
71
+ 11.789 3.69379 13.0328C5.94435 15.269 9.4739 15.617 12.1241 13.8638C14.7742 12.1106
72
+ 15.8071 8.74458 14.5911 5.82406Z" fill="#258DDE"/>
73
+ <path d="M12.5195 13.5806C12.8537 13.2479 13.3933 13.2417 13.7351 13.5628L13.7512
74
+ 13.5783L17.7437 17.5239C18.0845 17.8607 18.0856 18.4077 17.7461 18.7458C17.4066
75
+ 19.0838 16.8551 19.0849 16.5143 18.7481L12.5218 14.8025L12.5061 14.7866C12.1811
76
+ 14.4487 12.1853 13.9134 12.5195 13.5806Z" fill="#258DDE"/>
77
+ <path d="M6.71262 5.42913C6.37248 5.09172 5.82105 5.09172 5.48092 5.42913C5.14079
78
+ 5.76655 5.14079 6.3136 5.48092 6.65104L6.71262 5.42913ZM7.80353 8.95504C8.14367
79
+ 9.29246 8.69506 9.29246 9.0352 8.95504C9.37534 8.61762 9.37534 8.07053 9.0352
80
+ 7.73311L7.80353 8.95504ZM9.0352 7.73311C8.69506 7.39569 8.14367 7.39569 7.80353
81
+ 7.73311C7.46339 8.07053 7.46339 8.61762 7.80353 8.95504L9.0352 7.73311ZM10.1261
82
+ 11.259C10.4663 11.5965 11.0176 11.5965 11.3578 11.259C11.6979 10.9216 11.6979
83
+ 10.3745 11.3578 10.0371L10.1261 11.259ZM9.0352 8.95504C9.37534 8.61762 9.37534
84
+ 8.07053 9.0352 7.73311C8.69506 7.39569 8.14367 7.39569 7.80353 7.73311L9.0352
85
+ 8.95504ZM5.48092 10.0371C5.14079 10.3745 5.14079 10.9216 5.48092 11.259C5.82105
86
+ 11.5965 6.37248 11.5965 6.71262 11.259L5.48092 10.0371ZM7.80353 7.73311C7.46339
87
+ 8.07053 7.46339 8.61762 7.80353 8.95504C8.14367 9.29246 8.69506 9.29246 9.0352
88
+ 8.95504L7.80353 7.73311ZM11.3578 6.65104C11.6979 6.3136 11.6979 5.76655 11.3578
89
+ 5.42913C11.0176 5.09172 10.4663 5.09172 10.1261 5.42913L11.3578 6.65104ZM5.48092
90
+ 6.65104L7.80353 8.95504L9.0352 7.73311L6.71262 5.42913L5.48092 6.65104ZM7.80353
91
+ 8.95504L10.1261 11.259L11.3578 10.0371L9.0352 7.73311L7.80353 8.95504ZM7.80353
92
+ 7.73311L5.48092 10.0371L6.71262 11.259L9.0352 8.95504L7.80353 7.73311ZM9.0352
93
+ 8.95504L11.3578 6.65104L10.1261 5.42913L7.80353 7.73311L9.0352 8.95504Z"
94
+ fill="#258DDE"/>
95
+ </g>
96
+ </svg>
46
97
  `;
47
98
  }
48
99
  }
49
100
  export {
50
- n as RecommendationIconsRegistry
101
+ o as RecommendationIconsRegistry
51
102
  };
@@ -1,18 +1,75 @@
1
1
  const n = `/* Utils */
2
2
  .es-180w { width: 180px; }
3
3
 
4
- /* Recommendation Controls */
5
- .recommendation-controls-container > .container {
6
- padding: 16px;
4
+ /* Recommendation Controls - Main settings panel separators */
5
+ .recommendation-controls-container > div {
6
+ border-bottom: 1px solid #e0e0e0;
7
7
  }
8
8
 
9
- .recommendation-controls-container > .container:first-child {
9
+ .recommendation-controls-container > div:first-child {
10
10
  padding-top: 0;
11
11
  }
12
12
 
13
+ .recommendation-controls-container > div:last-child {
14
+ border-bottom: none;
15
+ }
16
+
13
17
  .container:has(.recommendation-controls-container) {
14
18
  padding: 0
15
19
  }
20
+
21
+ /* Hide drag icon for list layout (ordering disabled) */
22
+ ue-orderable.orderable-disabled .droppable-icon {
23
+ display: none;
24
+ }
25
+
26
+ /* ─── Migration Info Box ─────────────────────────────────────────────── */
27
+ /* Shown in the settings panel title when a block was migrated from legacy */
28
+
29
+ /* Layout variables for positioning the absolutely-placed info box */
30
+ :host {
31
+ --rec-migration-padding: 16px;
32
+ --rec-migration-title-height: 61px;
33
+ --rec-migration-box-height: 98px;
34
+ }
35
+
36
+ /* Push tabs down when info box is present inside the control panel header */
37
+ .control-panel-header:has(.recommendation-migration-info) {
38
+ position: relative;
39
+ margin-bottom: calc(2 * var(--rec-migration-padding) + var(--rec-migration-box-height));
40
+ }
41
+
42
+ /* Info box container */
43
+ .recommendation-migration-info {
44
+ display: flex;
45
+ align-items: flex-start;
46
+ gap: 8px;
47
+ padding: 12px;
48
+ background: var(--guido-color-background-onpage-message-info);
49
+ border: 1px solid var(--guido-color-border-onpage-message-info);
50
+ border-radius: 4px;
51
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.07);
52
+ position: absolute;
53
+ left: var(--rec-migration-padding);
54
+ right: var(--rec-migration-padding);
55
+ top: calc(var(--rec-migration-padding) + var(--rec-migration-title-height));
56
+ }
57
+
58
+ /* Icon — 18x19 icon inside a 24x24 bounding box (matches Figma) */
59
+ .recommendation-migration-info__icon {
60
+ flex-shrink: 0;
61
+ width: 24px;
62
+ height: 24px;
63
+ }
64
+
65
+ /* Text content */
66
+ .recommendation-migration-info__text {
67
+ margin: 4px 0;
68
+ white-space: normal;
69
+ font-size: 13px;
70
+ font-weight: 400;
71
+ line-height: 16px;
72
+ }
16
73
  `;
17
74
  export {
18
75
  n as default