@useinsider/guido 2.0.0-beta.afc5689 → 2.0.0-beta.b0493eb

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 (217) hide show
  1. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +2 -2
  2. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
  3. package/dist/components/organisms/header/LeftSlot.vue.js +12 -12
  4. package/dist/components/organisms/header/LeftSlot.vue2.js +6 -6
  5. package/dist/config/migrator/index.js +8 -9
  6. package/dist/config/migrator/recommendationMigrator.js +2 -2
  7. package/dist/extensions/Blocks/Items/block.js +40 -39
  8. package/dist/extensions/Blocks/Items/controls/button/link.js +29 -22
  9. package/dist/extensions/Blocks/Items/controls/cardComposition.js +62 -50
  10. package/dist/extensions/Blocks/Items/controls/image/link.js +30 -23
  11. package/dist/extensions/Blocks/Items/controls/name/trimming.js +15 -13
  12. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +1 -1
  13. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +1 -1
  14. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +17 -15
  15. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +15 -15
  16. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +27 -29
  17. package/dist/extensions/Blocks/Items/controls/settingsControl.js +136 -145
  18. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +2 -2
  19. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +48 -58
  20. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +58 -48
  21. package/dist/extensions/Blocks/Items/settingsPanel.js +4 -4
  22. package/dist/extensions/Blocks/Items/store/items-block.js +2 -2
  23. package/dist/extensions/Blocks/Items/template.js +125 -312
  24. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +44 -17
  25. package/dist/extensions/Blocks/Recommendation/block.js +40 -6
  26. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  27. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  28. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +64 -0
  29. package/dist/extensions/Blocks/Recommendation/constants/layout.js +20 -0
  30. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +19 -0
  31. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  32. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  33. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  34. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  35. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +108 -0
  36. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +110 -0
  37. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +207 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +54 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +148 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +74 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +124 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +71 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +124 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +76 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  55. package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
  56. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  57. package/dist/extensions/Blocks/Recommendation/services/configService.js +239 -0
  58. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
  59. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +39 -34
  60. package/dist/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.js +181 -0
  61. package/dist/extensions/Blocks/Recommendation/templates/horizontal/template.js +71 -0
  62. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  63. package/dist/extensions/Blocks/Recommendation/templates/utils.js +116 -0
  64. package/dist/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.js +211 -0
  65. package/dist/extensions/Blocks/Recommendation/templates/vertical/migration.js +251 -0
  66. package/dist/extensions/Blocks/Recommendation/templates/vertical/template.js +62 -0
  67. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  68. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  69. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
  70. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  71. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  72. package/dist/extensions/Blocks/common-control.js +53 -64
  73. package/dist/extensions/Blocks/controlFactories.js +130 -106
  74. package/dist/guido.css +1 -1
  75. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +221 -173
  76. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  77. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +2 -0
  78. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +2 -0
  79. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
  80. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +4 -0
  81. package/dist/src/extensions/Blocks/Items/template.d.ts +1 -20
  82. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +34 -0
  83. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  84. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
  85. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  86. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  87. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +35 -0
  88. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +31 -0
  89. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  90. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  91. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
  92. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  93. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
  94. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +36 -0
  95. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  96. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +45 -0
  97. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  98. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +62 -0
  99. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  100. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +42 -0
  101. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  102. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +100 -0
  103. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  104. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +16 -0
  105. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  106. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  107. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  108. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  110. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  111. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  112. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  113. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  114. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  115. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  116. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  117. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +17 -16
  118. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.d.ts +8 -0
  119. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/migration.d.ts +25 -0
  120. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/template.d.ts +18 -0
  121. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +39 -0
  122. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +45 -0
  123. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.d.ts +7 -0
  124. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → vertical/migration.d.ts} +11 -4
  125. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/template.d.ts +33 -0
  126. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  127. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +154 -0
  128. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  129. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  130. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  131. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  132. package/dist/src/extensions/Blocks/common-control.d.ts +8 -13
  133. package/dist/static/styles/components/wide-panel.css.js +0 -4
  134. package/dist/static/styles/customEditorStyle.css.js +38 -2
  135. package/package.json +1 -1
  136. package/dist/config/migrator/itemsBlockMigrator.js +0 -283
  137. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +0 -172
  138. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  139. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  140. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  141. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  142. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  143. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  144. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  145. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  146. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  147. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  148. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  149. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  150. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  151. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  152. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  153. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  154. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  155. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  156. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  157. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  158. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  159. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  160. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  161. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  162. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  163. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  164. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  165. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  166. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  167. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  168. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  169. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  170. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  171. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  172. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  173. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  174. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  175. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  176. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  177. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  178. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +0 -6
  179. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +0 -71
  180. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  181. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  182. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  183. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  184. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  185. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  186. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  187. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  188. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  189. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  190. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  191. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  192. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  193. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  194. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  195. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  196. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  197. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  198. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  199. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  200. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  201. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  202. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  203. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  204. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  205. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  206. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  207. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  208. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  209. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  210. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  211. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  212. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  213. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  214. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  215. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  216. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  217. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Recommendation Block Controls
3
+ *
4
+ * This module exports all controls for the Recommendation extension.
5
+ * Controls are organized by element type for better discoverability.
6
+ * @example
7
+ * // Grouped imports (recommended)
8
+ * import { NameControls, ButtonControls } from './controls';
9
+ * // Or individual imports
10
+ * import { NameAlignControl, ButtonColorControl } from './controls';
11
+ */
12
+ export { RecommendationBlockControl, CONTROL_BLOCK_ID, AlgorithmControl, ALGORITHM_CONTROL_ID, LocaleControl, LOCALE_CONTROL_ID, CurrencyControl, CURRENCY_CONTROL_ID, ProductLayoutControl, PRODUCT_LAYOUT_CONTROL_ID, FiltersControl, FILTERS_CONTROL_ID, ShuffleControl, SHUFFLE_CONTROL_ID, } from './main';
13
+ export * from './main/utils';
14
+ export { NameControls } from './name';
15
+ export { PriceControls } from './price';
16
+ export { OldPriceControls } from './oldPrice';
17
+ export { OmnibusPriceControls } from './omnibusPrice';
18
+ export { OmnibusDiscountControls } from './omnibusDiscount';
19
+ export { ButtonControls } from './button';
20
+ export { ImageControls } from './image';
21
+ export { SpacingControl, SPACING_CONTROL_ID } from './spacing';
22
+ export { CardBackgroundColorControl, CARD_BACKGROUND_COLOR_CONTROL_ID } from './cardBackground';
23
+ export { LayoutControl, LAYOUT_CONTROL_ID } from './layout';
24
+ export { RecommendationCardCompositionControl, COMPOSITION_CONTROL_BLOCK_ID } from './cardComposition';
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Layout Control
3
+ *
4
+ * Manages recommendation block layout orientation
5
+ * Allows switching between vertical (grid) and horizontal (list) layouts
6
+ *
7
+ * Configuration is stored via node config (persists with template).
8
+ */
9
+ import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
10
+ import { CommonControl } from '../../../common-control';
11
+ import { type Orientation } from '../../templates';
12
+ export declare const LAYOUT_CONTROL_ID = "recommendation-layout-control";
13
+ /**
14
+ * Control for managing recommendation block layout orientation
15
+ * Allows switching between vertical (grid) and horizontal (list) layouts
16
+ */
17
+ export declare class LayoutControl extends CommonControl {
18
+ private store;
19
+ private isChangingLayout;
20
+ getId(): string;
21
+ getTemplate(): string;
22
+ onRender(): void;
23
+ onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
24
+ _setFormValues(): void;
25
+ /**
26
+ * Handles layout change
27
+ * Updates node config, data attribute and regenerates product rows
28
+ */
29
+ _onLayoutChange(layout: Orientation): void;
30
+ /**
31
+ * Regenerates product rows based on the selected layout
32
+ * Special handling: captures and reapplies background color across layout changes
33
+ */
34
+ _regenerateProductRows(layout: Orientation): void;
35
+ _listenToFormUpdates(): void;
36
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Algorithm Selection Control
3
+ *
4
+ * Handles recommendation algorithm selection and product IDs for manual merchandising:
5
+ * - Algorithm/strategy selection
6
+ * - Product IDs input (visible only for manual merchandising)
7
+ *
8
+ * Configuration is stored via node config (persists with template).
9
+ * Algorithm options are fetched from API and cached in Pinia store.
10
+ */
11
+ import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
12
+ import { CommonControl } from '../../../common-control';
13
+ export declare const ALGORITHM_CONTROL_ID = "recommendation-algorithm-control";
14
+ /**
15
+ * Control for selecting recommendation algorithm and manual product IDs
16
+ */
17
+ export declare class AlgorithmControl extends CommonControl {
18
+ private store;
19
+ getId(): string;
20
+ getTemplate(): string;
21
+ onRender(): void;
22
+ onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
23
+ _setFormValues(): void;
24
+ _initializeSelectItems(): void;
25
+ _setProductIdsVisibility(strategy?: string): void;
26
+ _onAlgorithmChange(value: string): void;
27
+ _onProductIdsChange(value: string): void;
28
+ _listenToFormUpdates(): void;
29
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Currency Settings Control
3
+ *
4
+ * Handles all currency-related configuration for recommendation products:
5
+ * - Currency type
6
+ * - Currency location (before/after)
7
+ * - Currency symbol
8
+ * - Thousand separator
9
+ * - Decimal separator
10
+ * - Decimal count
11
+ *
12
+ * Configuration is stored via node config (persists with template).
13
+ * Currency options are fetched from API and cached in Pinia store.
14
+ */
15
+ import type { CurrencyConfig } from '../../types/nodeConfig';
16
+ import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
17
+ import { CommonControl } from '../../../common-control';
18
+ export declare const CURRENCY_CONTROL_ID = "recommendation-currency-control";
19
+ /**
20
+ * Control for managing currency display settings in recommendation blocks
21
+ */
22
+ export declare class CurrencyControl extends CommonControl {
23
+ private store;
24
+ private storeUnsubscription;
25
+ getId(): string;
26
+ getTemplate(): string;
27
+ onRender(): void;
28
+ onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
29
+ onDestroy(): void;
30
+ _setFormValues(): void;
31
+ _initializeSelectItems(): void;
32
+ _updateCurrency(updates: Partial<CurrencyConfig>): void;
33
+ _onCurrencyChange(value: string): void;
34
+ _onCurrencyLocationChange(value: string): void;
35
+ _onCurrencySymbolChange(value: string): void;
36
+ _onThousandSeparatorChange(value: string): void;
37
+ _onDecimalSeparatorChange(value: string): void;
38
+ _onDecimalCountChange(value: string): void;
39
+ _listenToFormUpdates(): void;
40
+ /**
41
+ * Subscribe to store changes to update currency selects when API data arrives
42
+ * This handles the case where the control renders before currency list is loaded
43
+ */
44
+ _subscribeToStoreChanges(): void;
45
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Filters Control
3
+ *
4
+ * Handles the filter selection UI for recommendation products
5
+ * Opens filter selection drawer when button is clicked
6
+ */
7
+ import { CommonControl } from '../../../common-control';
8
+ export declare const FILTERS_CONTROL_ID = "recommendation-filters-control";
9
+ /**
10
+ * Control for managing recommendation product filters
11
+ */
12
+ export declare class FiltersControl extends CommonControl {
13
+ private store;
14
+ private addFilterListener;
15
+ private addFilterButton;
16
+ getId(): string;
17
+ getTemplate(): string;
18
+ onRender(): void;
19
+ onDestroy(): void;
20
+ _onFilterSelectClick(): void;
21
+ _setupButtonListener(): void;
22
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Main Recommendation Block Control
3
+ *
4
+ * This is a coordinator control that composes all recommendation configuration
5
+ * sub-controls into a single settings panel. It handles:
6
+ * - Initial API data fetching
7
+ * - Store subscriptions for product refresh
8
+ * - Coordinating lifecycle of sub-controls
9
+ *
10
+ * Sub-controls are also exported individually for flexibility:
11
+ * - AlgorithmControl: Strategy and product IDs
12
+ * - LocaleControl: Language selection
13
+ * - CurrencyControl: Currency formatting settings
14
+ * - ProductLayoutControl: Product count and grid layout
15
+ * - FiltersControl: Filter selection
16
+ * - ShuffleControl: Product shuffle toggle
17
+ */
18
+ import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
19
+ import { CommonControl } from '../../../common-control';
20
+ import { AlgorithmControl, ALGORITHM_CONTROL_ID } from './algorithm';
21
+ import { CurrencyControl, CURRENCY_CONTROL_ID } from './currency';
22
+ import { FiltersControl, FILTERS_CONTROL_ID } from './filters';
23
+ import { LocaleControl, LOCALE_CONTROL_ID } from './locale';
24
+ import { ProductLayoutControl, PRODUCT_LAYOUT_CONTROL_ID } from './productLayout';
25
+ import { ShuffleControl, SHUFFLE_CONTROL_ID } from './shuffle';
26
+ export declare const CONTROL_BLOCK_ID = "ui-elements-recommendation-block";
27
+ export { AlgorithmControl, ALGORITHM_CONTROL_ID, LocaleControl, LOCALE_CONTROL_ID, CurrencyControl, CURRENCY_CONTROL_ID, ProductLayoutControl, PRODUCT_LAYOUT_CONTROL_ID, FiltersControl, FILTERS_CONTROL_ID, ShuffleControl, SHUFFLE_CONTROL_ID, };
28
+ export * from './utils';
29
+ /**
30
+ * Main recommendation block control that composes all sub-controls
31
+ * Registered in the Settings tab of the block's settings panel
32
+ */
33
+ export declare class RecommendationBlockControl extends CommonControl {
34
+ private store;
35
+ private storeUnsubscription;
36
+ private algorithmControl;
37
+ private localeControl;
38
+ private currencyControl;
39
+ private productLayoutControl;
40
+ private filtersControl;
41
+ private shuffleControl;
42
+ getId(): string;
43
+ getTemplate(): string;
44
+ onRender(): Promise<void>;
45
+ onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
46
+ onDestroy(): void;
47
+ /**
48
+ * Initialize all sub-controls with the shared API context
49
+ * Each sub-control manages its own form values and event listeners
50
+ */
51
+ _initializeSubControls(): void;
52
+ /**
53
+ * Debounced product fetch to prevent rapid API calls during config changes
54
+ */
55
+ private _debouncedFetchProducts;
56
+ /**
57
+ * Listen to store changes that require product refresh
58
+ * Only triggers for meaningful config changes (size, strategy, filters, etc.)
59
+ * Uses debounce to prevent rapid API calls
60
+ */
61
+ _listenStateUpdates(): void;
62
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Locale Selection Control
3
+ *
4
+ * Handles locale/language selection for recommendation products.
5
+ * Configuration is stored via node config (persists with template).
6
+ * Language options are fetched from API and cached in Pinia store.
7
+ */
8
+ import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
9
+ import { CommonControl } from '../../../common-control';
10
+ export declare const LOCALE_CONTROL_ID = "recommendation-locale-control";
11
+ /**
12
+ * Control for selecting recommendation content locale/language
13
+ */
14
+ export declare class LocaleControl extends CommonControl {
15
+ private store;
16
+ getId(): string;
17
+ getTemplate(): string;
18
+ onRender(): void;
19
+ onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
20
+ _setFormValues(): void;
21
+ _initializeSelectItems(): void;
22
+ _onLocaleChange(value: string): void;
23
+ _listenToFormUpdates(): void;
24
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Product Layout Control
3
+ *
4
+ * Handles product display configuration:
5
+ * - Number of products to show
6
+ * - Products per row (hidden for horizontal layout)
7
+ * - Triggers product row regeneration on changes
8
+ *
9
+ * Configuration is stored via node config (persists with template).
10
+ */
11
+ import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
12
+ import { CommonControl } from '../../../common-control';
13
+ export declare const PRODUCT_LAYOUT_CONTROL_ID = "recommendation-product-layout-control";
14
+ /**
15
+ * Control for configuring product count and layout density
16
+ */
17
+ export declare class ProductLayoutControl extends CommonControl {
18
+ private store;
19
+ private storeUnsubscription;
20
+ getId(): string;
21
+ getTemplate(): string;
22
+ onRender(): void;
23
+ onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
24
+ onDestroy(): void;
25
+ _setFormValues(): void;
26
+ /**
27
+ * Updates "Products in One Row" visibility based on layout orientation
28
+ * This control is hidden for horizontal layout (products always take full width)
29
+ * Reads from node config first, falls back to DOM
30
+ */
31
+ _updateProductsInRowVisibility(): void;
32
+ _onProductCountChange(value: string): void;
33
+ _onProductsInRowChange(value: number): void;
34
+ _regenerateProductRows(): void;
35
+ _debouncedRegenerateProductRows: import("@vueuse/shared").PromisifyFn<() => void>;
36
+ _listenToFormUpdates(): void;
37
+ /**
38
+ * Subscribe to store changes to update visibility when layout changes
39
+ * This is still needed because layout changes come from LayoutControl
40
+ */
41
+ _listenStateUpdates(): void;
42
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Shuffle Products Control
3
+ *
4
+ * Handles the toggle for shuffling/randomizing recommended products.
5
+ * Configuration is stored via node config (persists with template).
6
+ */
7
+ import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
8
+ import { CommonControl } from '../../../common-control';
9
+ export declare const SHUFFLE_CONTROL_ID = "recommendation-shuffle-control";
10
+ /**
11
+ * Control for toggling product shuffle/randomization
12
+ */
13
+ export declare class ShuffleControl extends CommonControl {
14
+ private store;
15
+ getId(): string;
16
+ getTemplate(): string;
17
+ onRender(): void;
18
+ onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
19
+ _setFormValues(): void;
20
+ _initializeToggle(): void;
21
+ _onShuffleChange(value: boolean): void;
22
+ _listenToFormUpdates(): void;
23
+ }
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Shared utilities for Recommendation block controls
3
+ *
4
+ * Provides common functionality used across multiple controls:
5
+ * - Layout detection from DOM
6
+ * - Card composition retrieval
7
+ * - Product row regeneration
8
+ * - Spacing reapplication
9
+ */
10
+ import type { CurrencyConfig } from '../../types/nodeConfig';
11
+ import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
12
+ import { ModificationDescription } from '@stripoinc/ui-editor-extensions';
13
+ import { type Orientation } from '../../templates';
14
+ type DocumentModifier = ReturnType<{
15
+ getDocumentModifier: () => {
16
+ modifyHtml: (node: ImmutableHtmlNode) => {
17
+ setStyle: (prop: string, value: string) => DocumentModifier;
18
+ setInnerHtml: (html: string) => DocumentModifier;
19
+ setAttribute: (name: string, value: string) => DocumentModifier;
20
+ };
21
+ apply: (description: ModificationDescription) => void;
22
+ };
23
+ }['getDocumentModifier']>;
24
+ /**
25
+ * Gets the block element from the current node
26
+ * The currentNode could BE the block element or contain it
27
+ * @param currentNode - The current template node
28
+ * @returns The block element or null if not found
29
+ */
30
+ export declare function getBlockElement(currentNode: ImmutableHtmlNode | null | undefined): ImmutableHtmlNode | null;
31
+ /**
32
+ * Gets the current layout orientation from the block's data attribute
33
+ * @param currentNode - The current template node
34
+ * @returns The layout value ('vertical' or 'horizontal'), defaults to 'vertical'
35
+ */
36
+ export declare function getCurrentLayout(currentNode: ImmutableHtmlNode | null | undefined): Orientation;
37
+ /**
38
+ * Gets the current card composition from block data attribute or use default
39
+ * @param currentNode - The current template node
40
+ * @returns Array of card element types in order
41
+ */
42
+ export declare function getCardComposition(currentNode: ImmutableHtmlNode | null | undefined): string[];
43
+ export interface RegenerateProductRowsOptions {
44
+ currentNode: ImmutableHtmlNode | null | undefined;
45
+ documentModifier: DocumentModifier;
46
+ afterRegenerate?: () => void;
47
+ }
48
+ /**
49
+ * Regenerates product rows based on current store configuration
50
+ * Reads products, layout, and composition from store/DOM and rebuilds the HTML
51
+ * @param options - Configuration options for regeneration
52
+ */
53
+ export declare function regenerateProductRows(options: RegenerateProductRowsOptions): void;
54
+ export interface ReapplySpacingOptions {
55
+ currentNode: ImmutableHtmlNode | null | undefined;
56
+ documentModifier: DocumentModifier;
57
+ }
58
+ /**
59
+ * Reapplies spacing values from data attributes after product regeneration
60
+ * This ensures spacing persists when products are regenerated
61
+ * @param options - Configuration options
62
+ */
63
+ export declare function reapplySpacing(options: ReapplySpacingOptions): void;
64
+ /**
65
+ * Gets current card background color from existing elements
66
+ * Checks both vertical (.product-card-segment) and horizontal (.product-card-wrapper) selectors
67
+ * @param currentNode - The current template node
68
+ * @returns Background color string or null if not found
69
+ */
70
+ export declare function getCurrentCardBackgroundColor(currentNode: ImmutableHtmlNode | null | undefined): string | null;
71
+ export interface ApplyCardBackgroundColorOptions {
72
+ currentNode: ImmutableHtmlNode | null | undefined;
73
+ documentModifier: DocumentModifier;
74
+ bgColor: string | null;
75
+ layout: Orientation;
76
+ }
77
+ /**
78
+ * Applies card background color to appropriate elements based on layout
79
+ * @param options - Configuration options
80
+ */
81
+ export declare function applyCardBackgroundColor(options: ApplyCardBackgroundColorOptions): void;
82
+ export interface SetCurrencyAttributesOptions {
83
+ currentNode: ImmutableHtmlNode | null | undefined;
84
+ documentModifier: DocumentModifier;
85
+ currency: CurrencyConfig;
86
+ }
87
+ /**
88
+ * Sets currency configuration as HTML attributes on the block element
89
+ * These attributes are read by the HTML compiler at runtime to format prices
90
+ * @param options - Configuration options
91
+ */
92
+ export declare function setCurrencyAttributes(options: SetCurrencyAttributesOptions): void;
93
+ /**
94
+ * Reads currency configuration from block HTML attributes
95
+ * Used to restore settings when loading a template
96
+ * @param currentNode - The current template node
97
+ * @returns CurrencyConfig or null if attributes not found
98
+ */
99
+ export declare function getCurrencyAttributesFromBlock(currentNode: ImmutableHtmlNode | null | undefined): Partial<CurrencyConfig> | null;
100
+ export {};
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Name Element Controls
3
+ *
4
+ * Controls for styling the product name element in recommendation cards.
5
+ */
6
+ import { NameTextTrimControl } from './textTrim';
7
+ /**
8
+ * Grouped Name Controls
9
+ * Use this object for cleaner imports in extension.ts
10
+ */
11
+ export declare const NameControls: {
12
+ readonly align: {
13
+ new (): {
14
+ getId(): string;
15
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
16
+ getParentControlId(): string;
17
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
18
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
19
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
20
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
21
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
22
+ };
23
+ };
24
+ readonly color: {
25
+ new (): {
26
+ getId(): string;
27
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
28
+ getParentControlId(): string;
29
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
30
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
31
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
32
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
33
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
34
+ };
35
+ };
36
+ readonly size: {
37
+ new (): {
38
+ getId(): string;
39
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
40
+ getParentControlId(): string;
41
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
42
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
43
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
44
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
45
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
46
+ };
47
+ };
48
+ readonly style: {
49
+ new (): {
50
+ getId(): string;
51
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
52
+ getParentControlId(): string;
53
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
54
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
55
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
56
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
57
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
58
+ };
59
+ };
60
+ readonly fontFamily: {
61
+ new (): {
62
+ getId(): string;
63
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
64
+ getParentControlId(): string;
65
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
66
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
67
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
68
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
69
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
70
+ };
71
+ };
72
+ readonly background: {
73
+ new (): {
74
+ getId(): string;
75
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
76
+ getParentControlId(): string;
77
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
78
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
79
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
80
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
81
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
82
+ };
83
+ };
84
+ readonly paddings: {
85
+ new (): {
86
+ getId(): string;
87
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
88
+ getParentControlId(): string;
89
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
90
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
91
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
92
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
93
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
94
+ };
95
+ };
96
+ readonly textTrim: typeof NameTextTrimControl;
97
+ };
@@ -0,0 +1,16 @@
1
+ import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
2
+ import { CommonControl } from '../../../common-control';
3
+ /**
4
+ * Control for enabling/disabling text trimming on product names
5
+ * When enabled, adds a CSS class that applies text-overflow: ellipsis
6
+ */
7
+ export declare class NameTextTrimControl extends CommonControl {
8
+ getId(): string;
9
+ getTemplate(): string;
10
+ onRender(): void;
11
+ onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
12
+ _setFormValues(): void;
13
+ _getCurrentTrimState(): boolean;
14
+ _onTextTrimChange(enabled: boolean): void;
15
+ _listenToFormUpdates(): void;
16
+ }
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Old Price Element Controls
3
+ *
4
+ * Controls for styling the original/old price element in recommendation cards.
5
+ */
6
+ /**
7
+ * Grouped Old Price Controls
8
+ * Use this object for cleaner imports in extension.ts
9
+ */
10
+ export declare const OldPriceControls: {
11
+ readonly align: {
12
+ new (): {
13
+ getId(): string;
14
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
15
+ getParentControlId(): string;
16
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
17
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
18
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
19
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
20
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
21
+ };
22
+ };
23
+ readonly color: {
24
+ new (): {
25
+ getId(): string;
26
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
27
+ getParentControlId(): string;
28
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
29
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
30
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
31
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
32
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
33
+ };
34
+ };
35
+ readonly size: {
36
+ new (): {
37
+ getId(): string;
38
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
39
+ getParentControlId(): string;
40
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
41
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
42
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
43
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
44
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
45
+ };
46
+ };
47
+ readonly style: {
48
+ new (): {
49
+ getId(): string;
50
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
51
+ getParentControlId(): string;
52
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
53
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
54
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
55
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
56
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
57
+ };
58
+ };
59
+ readonly fontFamily: {
60
+ new (): {
61
+ getId(): string;
62
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
63
+ getParentControlId(): string;
64
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
65
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
66
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
67
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
68
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
69
+ };
70
+ };
71
+ readonly background: {
72
+ new (): {
73
+ getId(): string;
74
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
75
+ getParentControlId(): string;
76
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
77
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
78
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
79
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
80
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
81
+ };
82
+ };
83
+ readonly paddings: {
84
+ new (): {
85
+ getId(): string;
86
+ getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
87
+ getParentControlId(): string;
88
+ api: import("@stripoinc/ui-editor-extensions").ControlApi;
89
+ getLabels(): import("@stripoinc/ui-editor-extensions").ControlLabels | undefined;
90
+ getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
91
+ getAdditionalModifications(_root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
92
+ isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
93
+ };
94
+ };
95
+ };