@useinsider/guido 3.2.0-beta.ccaf9f5 → 3.2.0-beta.d3ae6f8

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 (104) hide show
  1. package/README.md +117 -1
  2. package/dist/@types/config/schemas.js +153 -95
  3. package/dist/components/Guido.vue.js +4 -4
  4. package/dist/components/Guido.vue2.js +85 -84
  5. package/dist/components/organisms/AutoSaveController.vue.js +17 -0
  6. package/dist/components/organisms/AutoSaveController.vue2.js +13 -0
  7. package/dist/components/organisms/header/AutoSaveToggle.vue.js +22 -0
  8. package/dist/components/organisms/header/AutoSaveToggle.vue2.js +19 -0
  9. package/dist/components/organisms/header/RightSlot.vue.js +8 -8
  10. package/dist/components/organisms/header/RightSlot.vue2.js +9 -8
  11. package/dist/composables/useAutoSave.js +71 -0
  12. package/dist/composables/useRecommendation.js +46 -26
  13. package/dist/composables/useResponsivePreview.js +1 -1
  14. package/dist/composables/useSave.js +19 -16
  15. package/dist/composables/useStripo.js +14 -16
  16. package/dist/composables/validators/useCouponBlockValidator.js +24 -0
  17. package/dist/config/compiler/recommendationCompilerRules.js +25 -25
  18. package/dist/config/compiler/utils/recommendationCompilerUtils.js +104 -71
  19. package/dist/config/migrator/index.js +9 -9
  20. package/dist/config/migrator/radioButtonMigrator.js +64 -44
  21. package/dist/config/migrator/recommendation/compositionMapper.js +98 -0
  22. package/dist/config/migrator/recommendation/extractors.js +27 -0
  23. package/dist/config/migrator/recommendation/htmlBuilder.js +496 -0
  24. package/dist/config/migrator/recommendation/parseLegacyConfig.js +33 -0
  25. package/dist/config/migrator/recommendation/settingsMapper.js +70 -0
  26. package/dist/config/migrator/recommendation/themeMapper.js +93 -0
  27. package/dist/config/migrator/recommendationMigrator.js +74 -290
  28. package/dist/enums/extensions/recommendationBlock.js +2 -1
  29. package/dist/extensions/Blocks/RadioButton/template.js +1 -1
  30. package/dist/extensions/Blocks/Recommendation/block.js +35 -32
  31. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +5 -5
  32. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +25 -24
  33. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +228 -181
  34. package/dist/extensions/Blocks/Recommendation/services/configService.js +65 -29
  35. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +130 -90
  36. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +22 -13
  37. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +8 -8
  38. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +23 -13
  39. package/dist/extensions/Blocks/Recommendation/templates/utils.js +1 -1
  40. package/dist/extensions/Blocks/Recommendation/utils/legacyStrategyMap.js +21 -0
  41. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +13 -22
  42. package/dist/guido.css +1 -1
  43. package/dist/node_modules/valibot/dist/index.js +404 -266
  44. package/dist/src/@types/config/defaults.d.ts +5 -1
  45. package/dist/src/@types/config/index.d.ts +3 -3
  46. package/dist/src/@types/config/schemas.d.ts +217 -0
  47. package/dist/src/@types/config/types.d.ts +9 -1
  48. package/dist/src/components/Guido.vue.d.ts +1 -1
  49. package/dist/src/components/organisms/AutoSaveController.vue.d.ts +2 -0
  50. package/dist/src/components/organisms/header/AutoSaveToggle.vue.d.ts +2 -0
  51. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  52. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
  53. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  54. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  55. package/dist/src/composables/useAutoSave.d.ts +3 -0
  56. package/dist/src/composables/useConfig.d.ts +58 -0
  57. package/dist/src/composables/useRecommendation.d.ts +10 -1
  58. package/dist/src/composables/useRecommendation.test.d.ts +1 -0
  59. package/dist/src/composables/useSave.d.ts +1 -1
  60. package/dist/src/composables/validators/useCouponBlockValidator.d.ts +3 -0
  61. package/dist/src/config/migrator/index.d.ts +2 -1
  62. package/dist/src/config/migrator/recommendation/compositionMapper.d.ts +2 -0
  63. package/dist/src/config/migrator/recommendation/compositionMapper.test.d.ts +1 -0
  64. package/dist/src/config/migrator/recommendation/extractors.d.ts +7 -0
  65. package/dist/src/config/migrator/recommendation/extractors.test.d.ts +1 -0
  66. package/dist/src/config/migrator/recommendation/htmlBuilder.d.ts +11 -0
  67. package/dist/src/config/migrator/recommendation/parseLegacyConfig.d.ts +15 -0
  68. package/dist/src/config/migrator/recommendation/parseLegacyConfig.test.d.ts +1 -0
  69. package/dist/src/config/migrator/recommendation/settingsMapper.d.ts +7 -0
  70. package/dist/src/config/migrator/recommendation/settingsMapper.test.d.ts +1 -0
  71. package/dist/src/config/migrator/recommendation/themeMapper.d.ts +5 -0
  72. package/dist/src/config/migrator/recommendation/themeMapper.test.d.ts +1 -0
  73. package/dist/src/config/migrator/recommendation/types.d.ts +205 -0
  74. package/dist/src/config/migrator/recommendationMigrator.d.ts +13 -1
  75. package/dist/src/config/migrator/recommendationMigrator.test.d.ts +1 -0
  76. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  77. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.test.d.ts +1 -0
  78. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +10 -0
  79. package/dist/src/extensions/Blocks/Recommendation/services/configService.test.d.ts +1 -0
  80. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +34 -0
  81. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +1 -1
  82. package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMap.d.ts +21 -0
  83. package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMap.test.d.ts +1 -0
  84. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +0 -3
  85. package/dist/src/library.d.ts +1 -1
  86. package/dist/src/stores/autosave.d.ts +12 -0
  87. package/dist/src/stores/config.d.ts +522 -0
  88. package/dist/src/stores/editor.d.ts +23 -0
  89. package/dist/src/utils/htmlEscape.d.ts +5 -0
  90. package/dist/src/utils/htmlEscape.test.d.ts +1 -0
  91. package/dist/src/utils/timeUtil.d.ts +8 -0
  92. package/dist/stores/autosave.js +17 -0
  93. package/dist/stores/editor.js +3 -1
  94. package/dist/utils/htmlEscape.js +13 -0
  95. package/dist/utils/templatePreparation.js +72 -32
  96. package/dist/utils/timeUtil.js +19 -0
  97. package/package.json +34 -3
  98. package/dist/composables/useCortexBlueprintBridge.js +0 -38
  99. package/dist/composables/useEmailTemplateApplier.js +0 -41
  100. package/dist/enums/displayConditions.js +0 -80
  101. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +0 -251
  102. package/dist/src/composables/useCortexBlueprintBridge.d.ts +0 -17
  103. package/dist/src/composables/useEmailTemplateApplier.d.ts +0 -21
  104. package/dist/src/enums/displayConditions.d.ts +0 -2
@@ -1,251 +0,0 @@
1
- import { ATTR_PRODUCT_BUTTON as s, ATTR_PRODUCT_OMNIBUS_DISCOUNT as d, ATTR_PRODUCT_OMNIBUS_PRICE as c, ATTR_PRODUCT_OLD_PRICE as o, ATTR_PRODUCT_PRICE as i, ATTR_PRODUCT_NAME as r, ATTR_PRODUCT_IMAGE as p } from "../../constants/selectors.js";
2
- import { prepareGridProductRows as b } from "./template.js";
3
- const u = `
4
- <td
5
- align="left"
6
- esd-extension-block-id="recommendation-block"
7
- esd-handler-name="esd-extension-RecommendationBlock"
8
- class="recommendation-block-v2 esd-block-recommendation-v3-block esd-extension-block es-p20"
9
- >
10
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
11
- <tr>
12
- <td align="center">
13
- <table
14
- class="container"
15
- width="100%"
16
- cellpadding="0"
17
- cellspacing="0"
18
- border="0">
19
- <tbody>
20
- <tr>
21
- <td>
22
- <table
23
- width="100%"
24
- cellpadding="0"
25
- cellspacing="0"
26
- border="0">
27
- <tbody>
28
- <tr>
29
- {-{-TITLE-}-}
30
- </tr>
31
- </tbody>
32
- </table>
33
- </td>
34
- </tr>
35
- <tr>
36
- <td class="spacer" style="height: 20px;"></td>
37
- </tr>
38
- <tr>
39
- <td>
40
- <table
41
- class="ins-recommendation-product-container"
42
- width="100%"
43
- cellpadding="0"
44
- cellspacing="0"
45
- border="0"
46
- >
47
- {-{-PRODUCT_ROWS-}-}
48
- </table>
49
- </td>
50
- </tr>
51
- </tbody>
52
- </table>
53
- </td>
54
- </tr>
55
- </table>
56
- </td>
57
- `, e = "0 5px", a = "attribute-cell", g = {
58
- [p]: (t) => `
59
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
60
- <table
61
- class="product-card-segment"
62
- width="100%"
63
- height="100%"
64
- cellpadding="0"
65
- cellspacing="0"
66
- border="0">
67
- <tr>
68
- <td
69
- class="esd-block-image product-image"
70
- esd-extension-block-id="recommendation-block-image"
71
- align="center"
72
- style="font-size: 0px;">
73
- <a target="_blank" href="${t.url}">
74
- <img
75
- src="${t.image_url}"
76
- alt="${t.name}"
77
- width="120"
78
- style="display: block; max-width: 100%; height: auto;"
79
- class="adapt-img">
80
- </a>
81
- </td>
82
- </tr>
83
- </table>
84
- </td>
85
- `,
86
- [r]: (t) => `
87
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
88
- <table
89
- class="product-card-segment"
90
- width="100%"
91
- height="100%"
92
- cellpadding="0"
93
- cellspacing="0"
94
- border="0">
95
- <tr>
96
- <td
97
- class="esd-block-text product-name"
98
- esd-extension-block-id="recommendation-block-name"
99
- align="center">
100
- <p
101
- path="1"
102
- contenteditable="false"
103
- style="font-size: 16px; color: #333333; font-weight: 600; text-align: center;">
104
- <strong path="1,0">${t.name}</strong>
105
- </p>
106
- </td>
107
- </tr>
108
- </table>
109
- </td>
110
- `,
111
- [i]: () => `
112
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
113
- <table
114
- class="product-card-segment"
115
- width="100%"
116
- height="100%"
117
- cellpadding="0"
118
- cellspacing="0"
119
- border="0">
120
- <tr>
121
- <td
122
- class="esd-block-text product-price"
123
- esd-extension-block-id="recommendation-block-price"
124
- align="center">
125
- <p
126
- path="1"
127
- contenteditable="false"
128
- style="font-size: 16px; color: #333333; font-weight: bold; text-align: center;">
129
- <strong path="1,0">18,00 TRY</strong>
130
- </p>
131
- </td>
132
- </tr>
133
- </table>
134
- </td>
135
- `,
136
- [o]: () => `
137
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
138
- <table
139
- class="product-card-segment"
140
- width="100%"
141
- height="100%"
142
- cellpadding="0"
143
- cellspacing="0"
144
- border="0">
145
- <tr>
146
- <td
147
- class="esd-block-text product-old-price"
148
- esd-extension-block-id="recommendation-block-old-price"
149
- align="center">
150
- <p
151
- path="1"
152
- contenteditable="false"
153
- style="font-size: 14px; color: #999999; text-decoration: line-through; text-align: center;">
154
- <s path="1,0">20,00 TRY</s>
155
- </p>
156
- </td>
157
- </tr>
158
- </table>
159
- </td>
160
- `,
161
- [c]: () => `
162
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
163
- <table
164
- class="product-card-segment"
165
- width="100%"
166
- height="100%"
167
- cellpadding="0"
168
- cellspacing="0"
169
- border="0">
170
- <tr>
171
- <td
172
- class="esd-block-text product-omnibus-price"
173
- esd-extension-block-id="recommendation-block-omnibus-price"
174
- data-text-before="Lowest 30-day price: "
175
- data-text-after=""
176
- align="center">
177
- <p
178
- path="1"
179
- contenteditable="false"
180
- style="font-size: 14px; color: #666666; text-align: center;"><span
181
- class="omnibus-text-before">Lowest 30-day price: </span><span
182
- class="omnibus-price-value">17,00 TRY</span><span
183
- class="omnibus-text-after"></span></p>
184
- </td>
185
- </tr>
186
- </table>
187
- </td>
188
- `,
189
- [d]: () => `
190
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
191
- <table
192
- class="product-card-segment"
193
- width="100%"
194
- height="100%"
195
- cellpadding="0"
196
- cellspacing="0"
197
- border="0">
198
- <tr>
199
- <td
200
- class="esd-block-text product-omnibus-discount"
201
- esd-extension-block-id="recommendation-block-omnibus-discount"
202
- data-text-before=""
203
- data-text-after=""
204
- align="center">
205
- <p
206
- path="1"
207
- contenteditable="false"
208
- style="font-size: 14px; color: #666666; text-align: center;"><span
209
- class="omnibus-text-before"></span><span
210
- class="omnibus-discount-value">-6%</span><span
211
- class="omnibus-text-after"></span></p>
212
- </td>
213
- </tr>
214
- </table>
215
- </td>
216
- `,
217
- [s]: (t) => `
218
- <td class="${a}" style="padding: ${e}; height: 100%;" valign="top">
219
- <table
220
- class="product-card-segment"
221
- width="100%"
222
- height="100%"
223
- cellpadding="0"
224
- cellspacing="0"
225
- border="0">
226
- <tr>
227
- <td
228
- class="esd-block-button product-button"
229
- esd-extension-block-id="recommendation-block-button"
230
- align="center">
231
- <span class="es-button-border" style="display: block;">
232
- <a
233
- href="${t.url}"
234
- target="_blank"
235
- class="es-button">
236
- {-{-PRODUCT_BUTTON_TEXT-}-}
237
- </a>
238
- </span>
239
- </td>
240
- </tr>
241
- </table>
242
- </td>
243
- `
244
- };
245
- function T(t, l, n) {
246
- return b(t, l, g, n);
247
- }
248
- export {
249
- u as default,
250
- T as prepareProductRows
251
- };
@@ -1,17 +0,0 @@
1
- /**
2
- * Bridges cortex-fe's chat store to Guido's Stripo editor.
3
- *
4
- * cortex-fe is a Module Federation MFE that registers `defineStore('chat', …)`
5
- * on the host's shared (singleton) Pinia. Guido — bundled inside MFE consumers
6
- * that also share that pinia — reads the same store at runtime via
7
- * `getActivePinia()._s.get('chat')`. No build-time dep on cortex-fe.
8
- *
9
- * On every `email_template` blueprint emitted by the agent stream:
10
- * - first sighting of a blueprintId → applyTemplate immediately,
11
- * - subsequent updates with new html → applyTemplateDebounced (250 ms trailing),
12
- * - identical html is ignored so a streamed text chunk doesn't re-trigger Stripo.
13
- *
14
- * If cortex-fe isn't loaded (no `?cortex=true` in the URL), the chat store is
15
- * undefined and the bridge is a no-op. That's the desired behavior.
16
- */
17
- export declare const useCortexBlueprintBridge: () => void;
@@ -1,21 +0,0 @@
1
- type ApplyStatus = 'pending' | 'applying' | 'applied' | 'failed';
2
- /**
3
- * Applies email_template blueprints from the chat agent to the Stripo editor.
4
- *
5
- * - blueprint_create + manual Apply click: immediate.
6
- * - blueprint_update: debounced 250 ms trailing so rapid mid-stream updates
7
- * don't thrash updateHtmlAndCss.
8
- */
9
- export declare const useEmailTemplateApplier: () => {
10
- applyStatus: import("vue").Ref<Record<string, ApplyStatus>>;
11
- applyTemplate: (blueprintId: string, data: {
12
- html?: string;
13
- css?: string;
14
- }) => void;
15
- applyTemplateDebounced: (blueprintId: string, data: {
16
- html?: string;
17
- css?: string;
18
- }) => void;
19
- };
20
- export declare const resetEmailTemplateApplier: () => void;
21
- export {};
@@ -1,2 +0,0 @@
1
- import type { ConditionCategories } from '@@/Types/condition-categories';
2
- export declare const displayConditions: ConditionCategories;