@useinsider/guido 2.1.0 → 2.2.0-beta.071f000

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 (294) hide show
  1. package/README.md +36 -0
  2. package/dist/@types/config/schemas.js +71 -66
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +69 -58
  5. package/dist/components/organisms/base/Toaster.vue.js +4 -4
  6. package/dist/components/organisms/base/Toaster.vue2.js +12 -9
  7. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +5 -5
  8. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +2 -2
  9. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +11 -13
  10. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +54 -23
  11. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +7 -5
  12. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +37 -23
  13. package/dist/components/organisms/extensions/recommendation/Filters.vue.js +11 -11
  14. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +48 -36
  15. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +11 -9
  16. package/dist/components/organisms/header/HeaderWrapper.vue.js +9 -9
  17. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +1 -1
  18. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +19 -19
  19. package/dist/composables/useActionsApi.js +15 -13
  20. package/dist/composables/useBlocksConfig.js +26 -16
  21. package/dist/composables/useHtmlValidator.js +114 -104
  22. package/dist/composables/useRecommendation.js +54 -21
  23. package/dist/composables/useStripo.js +25 -23
  24. package/dist/composables/useVersionHistoryApi.js +1 -1
  25. package/dist/config/compiler/recommendationCompilerRules.js +45 -39
  26. package/dist/config/compiler/utils/recommendationCompilerUtils.js +121 -0
  27. package/dist/config/i18n/en/index.js +11 -0
  28. package/dist/config/i18n/en/labels.json.js +7 -0
  29. package/dist/config/i18n/en/toasters.json.js +56 -0
  30. package/dist/config/i18n/en/tooltips.json.js +82 -0
  31. package/dist/config/i18n/index.js +7 -0
  32. package/dist/config/migrator/itemsBlockMigrator.js +142 -120
  33. package/dist/config/migrator/recommendationMigrator.js +3 -3
  34. package/dist/enums/defaults.js +8 -4
  35. package/dist/enums/extensions/recommendationBlock.js +1 -1
  36. package/dist/enums/recommendation.js +16 -15
  37. package/dist/extensions/Blocks/Items/block.js +19 -28
  38. package/dist/extensions/Blocks/Items/controls/button/link.js +19 -31
  39. package/dist/extensions/Blocks/Items/controls/cardComposition.js +137 -89
  40. package/dist/extensions/Blocks/Items/controls/image/link.js +19 -31
  41. package/dist/extensions/Blocks/Items/controls/name/trimming.js +28 -40
  42. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -47
  43. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +49 -54
  44. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +42 -51
  45. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -36
  46. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +45 -57
  47. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +42 -60
  48. package/dist/extensions/Blocks/Items/controls/settingsControl.js +189 -196
  49. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -2
  50. package/dist/extensions/Blocks/Items/extension.js +8 -9
  51. package/dist/extensions/Blocks/Items/settingsPanel.js +10 -15
  52. package/dist/extensions/Blocks/Items/template.js +181 -175
  53. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +65 -65
  54. package/dist/extensions/Blocks/Recommendation/block.js +133 -9
  55. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  56. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  57. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +69 -0
  58. package/dist/extensions/Blocks/Recommendation/constants/layout.js +24 -0
  59. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +23 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +104 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +102 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +207 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +52 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +340 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +70 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +168 -0
  71. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +67 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +381 -0
  73. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +21 -0
  74. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  75. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +108 -0
  76. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  77. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  78. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
  79. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
  80. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  81. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
  82. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
  83. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  84. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +346 -0
  85. package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
  86. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +19 -3
  87. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  88. package/dist/extensions/Blocks/Recommendation/services/configService.js +240 -0
  89. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
  90. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +353 -219
  91. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +228 -0
  92. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
  93. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +66 -0
  94. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  95. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +169 -0
  96. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
  97. package/dist/extensions/Blocks/Recommendation/templates/utils.js +134 -0
  98. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  99. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +12 -12
  100. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
  101. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  102. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  103. package/dist/extensions/Blocks/Recommendation/validation/filterSchema.js +29 -0
  104. package/dist/extensions/Blocks/Unsubscribe/block.js +29 -29
  105. package/dist/extensions/Blocks/Unsubscribe/control.js +12 -9
  106. package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +13 -11
  107. package/dist/extensions/Blocks/Unsubscribe/styles.css.js +31 -1
  108. package/dist/extensions/Blocks/common-control.js +91 -92
  109. package/dist/extensions/Blocks/controlFactories.js +125 -93
  110. package/dist/extensions/ModulesTabIcons/extension.js +17 -0
  111. package/dist/guido.css +1 -1
  112. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +317 -198
  113. package/dist/package.json.js +1 -1
  114. package/dist/services/recommendationApi.js +11 -8
  115. package/dist/services/stripoApi.js +20 -17
  116. package/dist/services/templateLibraryApi.js +16 -13
  117. package/dist/src/@types/config/schemas.d.ts +10 -2
  118. package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +1 -0
  119. package/dist/src/components/organisms/extensions/recommendation/Filters.vue.d.ts +17 -1
  120. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  121. package/dist/src/composables/useConfig.d.ts +4 -0
  122. package/dist/src/composables/useRecommendation.d.ts +1 -0
  123. package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +17 -0
  124. package/dist/src/config/i18n/en/index.d.ts +1 -0
  125. package/dist/src/config/i18n/index.d.ts +16 -0
  126. package/dist/src/enums/defaults.d.ts +4 -0
  127. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
  128. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -1
  129. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +5 -5
  130. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -1
  131. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  132. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  133. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  134. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  135. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  136. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -1
  137. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +0 -5
  138. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -12
  139. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +2 -1
  140. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +67 -0
  141. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  142. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
  143. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +55 -0
  144. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  145. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +45 -0
  146. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +42 -0
  147. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  148. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  149. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  150. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
  151. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  152. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
  153. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
  154. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  155. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +52 -0
  156. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  157. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +107 -0
  158. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  159. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +60 -0
  160. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  161. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +234 -0
  162. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +29 -0
  163. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  164. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +34 -0
  165. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  166. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  167. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  168. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  169. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  170. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  171. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  172. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  173. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  174. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  175. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  176. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  177. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +116 -0
  178. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  179. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  180. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  181. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  182. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +155 -468
  183. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
  184. package/dist/src/extensions/Blocks/Recommendation/templates/grid/migration.d.ts +23 -0
  185. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
  186. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +43 -0
  187. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
  188. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
  189. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
  190. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +66 -0
  191. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  192. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +174 -0
  193. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  194. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  195. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  196. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  197. package/dist/src/extensions/Blocks/Recommendation/validation/filterSchema.d.ts +15 -0
  198. package/dist/src/extensions/Blocks/Unsubscribe/control.d.ts +1 -0
  199. package/dist/src/extensions/Blocks/common-control.d.ts +4 -5
  200. package/dist/src/extensions/ModulesTabIcons/extension.d.ts +2 -0
  201. package/dist/src/stores/config.d.ts +36 -0
  202. package/dist/static/styles/components/notification.css.js +19 -0
  203. package/dist/static/styles/components/tools.css.js +6 -2
  204. package/dist/static/styles/components/version-history.css.js +10 -2
  205. package/dist/static/styles/components/wide-panel.css.js +18 -6
  206. package/dist/static/styles/customEditorStyle.css.js +66 -2
  207. package/dist/static/styles/variables.css.js +2 -0
  208. package/dist/static/templates/empty/index.html.js +74 -0
  209. package/dist/static/templates/empty/style.css.js +779 -0
  210. package/dist/stores/unsubscribe.js +37 -34
  211. package/dist/utils/pairProductVariables.js +57 -56
  212. package/dist/utils/templatePreparation.js +15 -14
  213. package/package.json +3 -3
  214. package/dist/extensions/Blocks/Items/store/items-block.js +0 -79
  215. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  216. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  217. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  218. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  219. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  220. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  221. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  222. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  223. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  224. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  225. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  226. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  227. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  228. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  229. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  230. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  231. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  232. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  233. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  234. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  235. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  236. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  237. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  238. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  239. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  240. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  241. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  242. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  243. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  244. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  245. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  246. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  247. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  248. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  249. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  250. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  251. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  252. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  253. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  254. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  255. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -45
  256. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  257. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  258. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  259. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  260. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  261. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  262. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  263. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  264. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  265. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  266. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  267. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  268. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  269. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  270. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  271. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  272. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  273. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  274. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  275. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  276. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  277. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  278. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  279. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  280. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  281. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  282. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  283. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  284. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  285. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  286. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  287. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  288. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  289. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  290. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  291. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  292. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  293. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +0 -16
  294. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
@@ -0,0 +1,346 @@
1
+ var G = Object.defineProperty;
2
+ var R = (p, c, t) => c in p ? G(p, c, { enumerable: !0, configurable: !0, writable: !0, value: t }) : p[c] = t;
3
+ var h = (p, c, t) => R(p, typeof c != "symbol" ? c + "" : c, t);
4
+ import { EditorStatePropertyType as y, PreviewDeviceMode as w, ModificationDescription as g } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ import { CommonControl as V } from "../../../common-control.js";
6
+ import { DESKTOP_CONTAINER_SELECTOR as m, MOBILE_CONTAINER_SELECTOR as E } from "../../constants/selectors.js";
7
+ import { SPACING_STEP as S, MAX_SPACING as _, MIN_SPACING as N, DEFAULT_COLUMN_SPACING as C, DEFAULT_ROW_SPACING as P } from "../../constants/layout.js";
8
+ import { RecommendationConfigService as d } from "../../services/configService.js";
9
+ import { useRecommendationExtensionStore as B } from "../../store/recommendation.js";
10
+ import { safeGetStyle as A, safeGetParent as U } from "../../utils/tagName.js";
11
+ import { getCurrentLayout as b, getBlockElement as x } from "../main/utils.js";
12
+ import { useDebounceFn as f } from "../../../../../node_modules/@vueuse/shared/index.js";
13
+ const W = "recommendation-spacing-control", i = {
14
+ COLUMN_SPACING: "columnSpacing",
15
+ COLUMN_SPACING_LABEL: "columnSpacingLabel",
16
+ ROW_SPACING: "rowSpacing",
17
+ ROW_SPACING_LABEL: "rowSpacingLabel",
18
+ MOBILE_COLUMN_SPACING: "mobileColumnSpacing",
19
+ MOBILE_COLUMN_SPACING_LABEL: "mobileColumnSpacingLabel",
20
+ MOBILE_ROW_SPACING: "mobileRowSpacing",
21
+ MOBILE_ROW_SPACING_LABEL: "mobileRowSpacingLabel"
22
+ }, O = {
23
+ COLUMN_SPACING: "data-column-spacing",
24
+ ROW_SPACING: "data-row-spacing",
25
+ MOBILE_COLUMN_SPACING: "data-mobile-column-spacing",
26
+ MOBILE_ROW_SPACING: "data-mobile-row-spacing"
27
+ };
28
+ function L(p, c) {
29
+ if (!p)
30
+ return c;
31
+ const t = parseFloat(p);
32
+ return Number.isNaN(t) ? c : t;
33
+ }
34
+ class X extends V {
35
+ constructor() {
36
+ super(...arguments);
37
+ h(this, "store", B());
38
+ h(this, "unsubscribeOrientation", null);
39
+ /**
40
+ * Debounced version of _onColumnSpacingChange
41
+ * Prevents excessive DOM updates when user rapidly adjusts the counter
42
+ */
43
+ h(this, "_debouncedOnColumnSpacingChange", f((t) => {
44
+ this._onColumnSpacingChange(t);
45
+ }, 300));
46
+ /**
47
+ * Debounced version of _onRowSpacingChange
48
+ */
49
+ h(this, "_debouncedOnRowSpacingChange", f((t) => {
50
+ this._onRowSpacingChange(t);
51
+ }, 300));
52
+ /**
53
+ * Debounced version of _onMobileColumnSpacingChange
54
+ */
55
+ h(this, "_debouncedOnMobileColumnSpacingChange", f((t) => {
56
+ this._onMobileColumnSpacingChange(t);
57
+ }, 300));
58
+ /**
59
+ * Debounced version of _onMobileRowSpacingChange
60
+ */
61
+ h(this, "_debouncedOnMobileRowSpacingChange", f((t) => {
62
+ this._onMobileRowSpacingChange(t);
63
+ }, 300));
64
+ }
65
+ getId() {
66
+ return W;
67
+ }
68
+ getTemplate() {
69
+ return `
70
+ <div class="spacing-control-container">
71
+ ${this._GuTwoColumns([
72
+ this._GuLabel({ text: "Column Spacing on Desktop (px)", name: i.COLUMN_SPACING_LABEL }),
73
+ this._GuCounter({
74
+ name: i.COLUMN_SPACING,
75
+ minValue: N,
76
+ maxValue: _,
77
+ step: S
78
+ }),
79
+ this._GuLabel({ text: "Row Spacing on Desktop (px)", name: i.ROW_SPACING_LABEL }),
80
+ this._GuCounter({
81
+ name: i.ROW_SPACING,
82
+ minValue: N,
83
+ maxValue: _,
84
+ step: S
85
+ }),
86
+ this._GuLabel({
87
+ text: "Column Spacing on Mobile (px)",
88
+ name: i.MOBILE_COLUMN_SPACING_LABEL
89
+ }),
90
+ this._GuCounter({
91
+ name: i.MOBILE_COLUMN_SPACING,
92
+ minValue: N,
93
+ maxValue: _,
94
+ step: S
95
+ }),
96
+ this._GuLabel({ text: "Row Spacing on Mobile (px)", name: i.MOBILE_ROW_SPACING_LABEL }),
97
+ this._GuCounter({
98
+ name: i.MOBILE_ROW_SPACING,
99
+ minValue: N,
100
+ maxValue: _,
101
+ step: S
102
+ })
103
+ ])}
104
+ </div>
105
+ `;
106
+ }
107
+ onRender() {
108
+ this._setFormValues(), this._updateSpacingVisibility(), this._listenToFormUpdates(), this._subscribeToOrientationChanges(), this._subscribeToEditorModeChanges();
109
+ }
110
+ onTemplateNodeUpdated(t) {
111
+ super.onTemplateNodeUpdated(t), this._setFormValues(), this._updateSpacingVisibility();
112
+ }
113
+ onDestroy() {
114
+ this.unsubscribeOrientation && (this.unsubscribeOrientation(), this.unsubscribeOrientation = null);
115
+ }
116
+ /**
117
+ * Checks if the editor is currently in mobile preview mode
118
+ * using Stripo's EditorStatePropertyType API.
119
+ */
120
+ _isMobileMode() {
121
+ return this.api.getEditorState()[y.previewDeviceMode] === w.MOBILE;
122
+ }
123
+ /**
124
+ * Updates spacing control visibility based on layout orientation, editor mode,
125
+ * and products-per-row count.
126
+ * - List layout: hide column spacing (products are full-width), hide ALL mobile
127
+ * spacing controls (list is responsive — single row spacing applies to both views)
128
+ * - Desktop mode: show desktop spacing, hide mobile spacing
129
+ * - Mobile mode: show mobile spacing, hide desktop spacing
130
+ * - 1 product per row: hide column spacing (no gap between single column)
131
+ */
132
+ _updateSpacingVisibility() {
133
+ if (!this.api)
134
+ return;
135
+ const t = d.getConfig(this.currentNode), e = this.store.recommendationConfigs.orientation, n = t.layout || e || b(this.currentNode), o = n === "grid", a = n === "list", r = this._isMobileMode(), l = t.cardsInRow > 1, u = t.mobileCardsInRow > 1;
136
+ this.api.setVisibility(i.COLUMN_SPACING, o && !r && l), this.api.setVisibility(i.COLUMN_SPACING_LABEL, o && !r && l), this.api.setVisibility(i.ROW_SPACING, a || !r), this.api.setVisibility(i.ROW_SPACING_LABEL, a || !r), this.api.setVisibility(i.MOBILE_COLUMN_SPACING, o && r && u), this.api.setVisibility(i.MOBILE_COLUMN_SPACING_LABEL, o && r && u), this.api.setVisibility(i.MOBILE_ROW_SPACING, !a && r), this.api.setVisibility(i.MOBILE_ROW_SPACING_LABEL, !a && r);
137
+ }
138
+ /**
139
+ * Reads spacing values from node config first, falls back to DOM styles.
140
+ * DOM fallback is only used for legacy templates that lack node config.
141
+ */
142
+ _setFormValues() {
143
+ if (!this.api)
144
+ return;
145
+ const t = d.hasConfig(this.currentNode), e = d.getConfig(this.currentNode), n = t ? e.columnSpacing : this._getStoredColumnSpacing(), o = t ? e.rowSpacing : this._getStoredRowSpacing();
146
+ this.api.updateValues({
147
+ [i.COLUMN_SPACING]: n,
148
+ [i.ROW_SPACING]: o,
149
+ [i.MOBILE_COLUMN_SPACING]: e.mobileColumnSpacing,
150
+ [i.MOBILE_ROW_SPACING]: e.mobileRowSpacing
151
+ });
152
+ }
153
+ /**
154
+ * Gets stored column spacing from the first attribute row cell's padding.
155
+ * Scoped to the desktop container for accurate readings.
156
+ * For grid layout: cells inside .recommendation-attribute-row have padding applied.
157
+ * For list layout: the parent of .product-card-wrapper has the padding.
158
+ * The padding is applied as "0 {halfSpacing}px", so we extract and multiply by 2.
159
+ */
160
+ _getStoredColumnSpacing() {
161
+ if (!this.currentNode)
162
+ return C;
163
+ const t = this.currentNode.querySelector(m) ?? this.currentNode;
164
+ if (b(this.currentNode) === "grid") {
165
+ const u = t.querySelector(".recommendation-attribute-row"), s = u == null ? void 0 : u.querySelector("td"), I = A(s, "padding");
166
+ if (!I)
167
+ return C;
168
+ const M = I.trim().split(/\s+/);
169
+ return M.length < 2 ? C : L(M[1], C / 2) * 2;
170
+ }
171
+ const n = t.querySelector(".product-card-wrapper"), o = U(n), a = A(o, "padding");
172
+ if (!a)
173
+ return C;
174
+ const r = a.trim().split(/\s+/);
175
+ return r.length < 2 ? C : L(r[1], C / 2) * 2;
176
+ }
177
+ /**
178
+ * Gets stored row spacing from the first spacer element's height style
179
+ * Scoped to the desktop container for accurate readings.
180
+ */
181
+ _getStoredRowSpacing() {
182
+ if (!this.currentNode)
183
+ return P;
184
+ const e = (this.currentNode.querySelector(m) ?? this.currentNode).querySelector(".spacer"), n = A(e, "height");
185
+ return L(n, P);
186
+ }
187
+ // ========================================================================
188
+ // Desktop Spacing Handlers
189
+ // ========================================================================
190
+ /**
191
+ * Handles column spacing changes for desktop.
192
+ * Applies horizontal padding only to the desktop container elements.
193
+ */
194
+ _onColumnSpacingChange(t) {
195
+ if (!this.currentNode)
196
+ return;
197
+ d.updateConfig(
198
+ this.api,
199
+ this.currentNode,
200
+ { columnSpacing: t },
201
+ `Changed column spacing to ${t}px`
202
+ ), this._storeDataAttribute(O.COLUMN_SPACING, t);
203
+ const n = d.getConfig(this.currentNode).layout || b(this.currentNode), o = this.api.getDocumentModifier(), r = `0 ${t / 2}px`, l = this.currentNode.querySelector(m);
204
+ l && (n === "grid" ? Array.from(
205
+ l.querySelectorAll(".attribute-cell")
206
+ ).forEach((s) => {
207
+ o.modifyHtml(s).setStyle("padding", r);
208
+ }) : Array.from(
209
+ l.querySelectorAll(".product-card-wrapper")
210
+ ).forEach((s) => {
211
+ "parent" in s && s.parent() && o.modifyHtml(s.parent()).setStyle("padding", r);
212
+ }), o.apply(new g(`Update column spacing to ${t}px`)));
213
+ }
214
+ /**
215
+ * Handles row spacing changes for desktop.
216
+ * Applies height only to spacer elements in the desktop container.
217
+ */
218
+ _onRowSpacingChange(t) {
219
+ if (!this.currentNode)
220
+ return;
221
+ d.updateConfig(
222
+ this.api,
223
+ this.currentNode,
224
+ { rowSpacing: t },
225
+ `Changed row spacing to ${t}px`
226
+ ), this._storeDataAttribute(O.ROW_SPACING, t);
227
+ const e = this.currentNode.querySelector(m);
228
+ if (!e)
229
+ return;
230
+ const n = Array.from(
231
+ e.querySelectorAll(".spacer")
232
+ );
233
+ if (!n.length)
234
+ return;
235
+ const o = this.api.getDocumentModifier(), a = `${t}px`;
236
+ n.forEach((r) => {
237
+ o.modifyHtml(r).setStyle("height", a);
238
+ }), o.apply(new g(`Update row spacing to ${t}px`));
239
+ }
240
+ // ========================================================================
241
+ // Mobile Spacing Handlers
242
+ // ========================================================================
243
+ /**
244
+ * Handles column spacing changes for mobile.
245
+ * Applies horizontal padding only to the mobile container elements.
246
+ */
247
+ _onMobileColumnSpacingChange(t) {
248
+ if (!this.currentNode)
249
+ return;
250
+ d.updateConfig(
251
+ this.api,
252
+ this.currentNode,
253
+ { mobileColumnSpacing: t },
254
+ `Changed mobile column spacing to ${t}px`
255
+ ), this._storeDataAttribute(O.MOBILE_COLUMN_SPACING, t);
256
+ const n = d.getConfig(this.currentNode).layout || b(this.currentNode), o = this.api.getDocumentModifier(), r = `0 ${t / 2}px`, l = this.currentNode.querySelector(E);
257
+ l && (n === "grid" ? Array.from(
258
+ l.querySelectorAll(".attribute-cell")
259
+ ).forEach((s) => {
260
+ o.modifyHtml(s).setStyle("padding", r);
261
+ }) : Array.from(
262
+ l.querySelectorAll(".product-card-wrapper")
263
+ ).forEach((s) => {
264
+ "parent" in s && s.parent() && o.modifyHtml(s.parent()).setStyle("padding", r);
265
+ }), o.apply(new g(`Update mobile column spacing to ${t}px`)));
266
+ }
267
+ /**
268
+ * Handles row spacing changes for mobile.
269
+ * Applies height only to spacer elements in the mobile container.
270
+ */
271
+ _onMobileRowSpacingChange(t) {
272
+ if (!this.currentNode)
273
+ return;
274
+ d.updateConfig(
275
+ this.api,
276
+ this.currentNode,
277
+ { mobileRowSpacing: t },
278
+ `Changed mobile row spacing to ${t}px`
279
+ ), this._storeDataAttribute(O.MOBILE_ROW_SPACING, t);
280
+ const e = this.currentNode.querySelector(E);
281
+ if (!e)
282
+ return;
283
+ const n = Array.from(
284
+ e.querySelectorAll(".spacer")
285
+ );
286
+ if (!n.length)
287
+ return;
288
+ const o = this.api.getDocumentModifier(), a = `${t}px`;
289
+ n.forEach((r) => {
290
+ o.modifyHtml(r).setStyle("height", a);
291
+ }), o.apply(new g(`Update mobile row spacing to ${t}px`));
292
+ }
293
+ // ========================================================================
294
+ // Data Attribute Storage
295
+ // ========================================================================
296
+ /**
297
+ * Stores a spacing value as a data attribute on the block root element
298
+ */
299
+ _storeDataAttribute(t, e) {
300
+ const n = x(this.currentNode);
301
+ n && this.api.getDocumentModifier().modifyHtml(n).setAttribute(t, e.toString()).apply(new g(`Store ${t}`));
302
+ }
303
+ // ========================================================================
304
+ // Event Listeners
305
+ // ========================================================================
306
+ _listenToFormUpdates() {
307
+ this.api.onValueChanged(i.COLUMN_SPACING, (t) => {
308
+ const e = parseInt(t);
309
+ Number.isNaN(e) || this._debouncedOnColumnSpacingChange(e);
310
+ }), this.api.onValueChanged(i.ROW_SPACING, (t) => {
311
+ const e = parseInt(t);
312
+ Number.isNaN(e) || this._debouncedOnRowSpacingChange(e);
313
+ }), this.api.onValueChanged(i.MOBILE_COLUMN_SPACING, (t) => {
314
+ const e = parseInt(t);
315
+ Number.isNaN(e) || this._debouncedOnMobileColumnSpacingChange(e);
316
+ }), this.api.onValueChanged(i.MOBILE_ROW_SPACING, (t) => {
317
+ const e = parseInt(t);
318
+ Number.isNaN(e) || this._debouncedOnMobileRowSpacingChange(e);
319
+ });
320
+ }
321
+ /**
322
+ * Subscribe to store orientation changes
323
+ * Updates spacing visibility when layout changes via the layout control
324
+ */
325
+ _subscribeToOrientationChanges() {
326
+ this.unsubscribeOrientation && this.unsubscribeOrientation(), this.unsubscribeOrientation = this.store.$subscribe((t) => {
327
+ t.type === "patch object" && (this._updateSpacingVisibility(), this._setFormValues());
328
+ });
329
+ }
330
+ /**
331
+ * Subscribes to editor preview mode changes via Stripo API.
332
+ * Toggles which spacing controls (desktop/mobile) are visible.
333
+ */
334
+ _subscribeToEditorModeChanges() {
335
+ this.api.onEditorStatePropUpdated(
336
+ y.previewDeviceMode,
337
+ () => {
338
+ this._updateSpacingVisibility();
339
+ }
340
+ );
341
+ }
342
+ }
343
+ export {
344
+ W as SPACING_CONTROL_ID,
345
+ X as SpacingControl
346
+ };
@@ -1,45 +1,42 @@
1
- import { ExtensionBuilder as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { RecommendationBlock as r } from "./block.js";
3
- import { RecommendationCardCompositionControl as t } from "./cardCompositionControl.js";
4
- import { RecommendationBlockControl as n } from "./control.js";
5
- import { ButtonAlignControl as d } from "./controls/button/align.js";
6
- import { ButtonBorderControl as l } from "./controls/button/border.js";
7
- import { ButtonBorderRadiusControl as m } from "./controls/button/borderRadius.js";
8
- import { ButtonColorControl as i } from "./controls/button/color.js";
9
- import { ButtonFitToContentControl as C } from "./controls/button/fitToContent.js";
10
- import { ButtonFontFamilyControl as a } from "./controls/button/fontFamily.js";
11
- import { ButtonMarginsControl as e } from "./controls/button/margins.js";
12
- import { ButtonPaddingsControl as p } from "./controls/button/paddings.js";
13
- import { ButtonTextControl as f } from "./controls/button/text.js";
14
- import { ButtonTextSizeControl as c } from "./controls/button/textSize.js";
15
- import { ButtonTextStyleAndFontColorControl as s } from "./controls/button/textStyleAndFontColor.js";
16
- import { ImageMarginsControl as g } from "./controls/image/margins.js";
17
- import { ImageSizeControl as B } from "./controls/image/size.js";
18
- import { NameAlignControl as P } from "./controls/name/align.js";
19
- import { NameBackgroundControl as u } from "./controls/name/background.js";
20
- import { NameColorControl as y } from "./controls/name/color.js";
21
- import { NameFontFamilyControl as S } from "./controls/name/fontFamily.js";
22
- import { NamePaddingsControl as F } from "./controls/name/paddings.js";
23
- import { NameSizeControl as R } from "./controls/name/size.js";
24
- import { NameStyleControl as N } from "./controls/name/style.js";
25
- import { OldPriceAlignControl as O } from "./controls/oldPrice/align.js";
26
- import { OldPriceBackgroundControl as k } from "./controls/oldPrice/background.js";
27
- import { OldPriceColorControl as x } from "./controls/oldPrice/color.js";
28
- import { OldPriceFontFamilyControl as z } from "./controls/oldPrice/fontFamily.js";
29
- import { OldPricePaddingsControl as A } from "./controls/oldPrice/paddings.js";
30
- import { OldPriceSizeControl as I } from "./controls/oldPrice/size.js";
31
- import { OldPriceStyleControl as T } from "./controls/oldPrice/style.js";
32
- import { PriceAlignControl as w } from "./controls/price/align.js";
33
- import { PriceBackgroundControl as h } from "./controls/price/background.js";
34
- import { PriceColorControl as M } from "./controls/price/color.js";
35
- import { PriceFontFamilyControl as b } from "./controls/price/fontFamily.js";
36
- import { PricePaddingsControl as E } from "./controls/price/paddings.js";
37
- import { PriceSizeControl as j } from "./controls/price/size.js";
38
- import { PriceStyleControl as q } from "./controls/price/style.js";
39
- import { RecommendationIconsRegistry as v } from "./iconsRegistry.js";
40
- import D from "./recommendation.css.js";
41
- import { SettingsPanel as G } from "./settingsPanel.js";
42
- const Io = new o().addBlock(r).withSettingsPanelRegistry(G).addControl(n).addControl(d).addControl(l).addControl(m).addControl(i).addControl(C).addControl(a).addControl(e).addControl(p).addControl(f).addControl(c).addControl(s).addControl(g).addControl(B).addControl(P).addControl(u).addControl(y).addControl(S).addControl(F).addControl(R).addControl(N).addControl(O).addControl(k).addControl(x).addControl(z).addControl(A).addControl(I).addControl(T).addControl(w).addControl(h).addControl(M).addControl(b).addControl(E).addControl(j).addControl(q).addControl(t).addStyles(D).withIconsRegistry(v).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();
43
40
  export {
44
- Io as default
41
+ F as default
45
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 r } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ class o extends r {
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,25 @@ 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>
46
62
  `;
47
63
  }
48
64
  }
49
65
  export {
50
- n as RecommendationIconsRegistry
66
+ o as RecommendationIconsRegistry
51
67
  };
@@ -1,18 +1,27 @@
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
+ }
16
25
  `;
17
26
  export {
18
27
  n as default