@useinsider/guido 3.0.0 → 3.1.0

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 (101) hide show
  1. package/dist/components/organisms/header/EditorActions.vue.js +10 -8
  2. package/dist/components/organisms/header/EditorActions.vue2.js +41 -31
  3. package/dist/components/organisms/header/MigrationConfirmModal.vue.js +17 -0
  4. package/dist/components/organisms/header/MigrationConfirmModal.vue2.js +39 -0
  5. package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +1 -1
  6. package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +1 -1
  7. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.js +1 -1
  8. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue2.js +2 -2
  9. package/dist/config/compiler/unsubscribeCompilerRules.js +14 -14
  10. package/dist/config/compiler/utils/recommendationCompilerUtils.js +29 -18
  11. package/dist/config/i18n/en/labels.json.js +8 -3
  12. package/dist/config/migrator/itemsBlockMigrator.js +135 -131
  13. package/dist/config/migrator/recommendationMigrator.js +58 -54
  14. package/dist/enums/block.js +4 -0
  15. package/dist/extensions/Blocks/Items/block.js +30 -21
  16. package/dist/extensions/Blocks/Items/iconsRegistry.js +7 -6
  17. package/dist/extensions/Blocks/Items/items.css.js +48 -0
  18. package/dist/extensions/Blocks/Recommendation/block.js +64 -34
  19. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +1 -1
  20. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +1 -1
  21. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +36 -34
  22. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +15 -12
  23. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +4 -4
  24. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +693 -144
  25. package/dist/extensions/Blocks/Recommendation/controls/customAttribute/index.js +78 -0
  26. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +15 -15
  27. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +24 -24
  28. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +2 -2
  29. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +107 -78
  30. package/dist/extensions/Blocks/Recommendation/controls/{layout/index.js → main/layoutOrientation.js} +34 -23
  31. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +2 -2
  32. package/dist/extensions/Blocks/Recommendation/controls/main/productCount.js +58 -0
  33. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +150 -64
  34. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +2 -2
  35. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +202 -200
  36. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +25 -8
  37. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +6 -5
  38. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +8 -8
  39. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +21 -21
  40. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +13 -13
  41. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +17 -17
  42. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +94 -100
  43. package/dist/extensions/Blocks/Recommendation/controls/syncInfoMessage.js +65 -0
  44. package/dist/extensions/Blocks/Recommendation/extension.js +20 -18
  45. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +5 -4
  46. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +209 -2
  47. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +135 -111
  48. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +9 -7
  49. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +63 -34
  50. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +25 -28
  51. package/dist/extensions/Blocks/Recommendation/templates/index.js +8 -8
  52. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +28 -13
  53. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +25 -44
  54. package/dist/extensions/Blocks/Recommendation/templates/utils.js +62 -38
  55. package/dist/extensions/Blocks/common-control.js +96 -39
  56. package/dist/guido.css +1 -1
  57. package/dist/src/@types/extensions/block.d.ts +2 -0
  58. package/dist/src/App.vue.d.ts +3 -1
  59. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  60. package/dist/src/components/organisms/header/MigrationConfirmModal.vue.d.ts +6 -0
  61. package/dist/src/components/wrappers/WpModal.vue.d.ts +2 -2
  62. package/dist/src/enums/block.d.ts +4 -0
  63. package/dist/src/extensions/Blocks/Items/block.d.ts +3 -1
  64. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +4 -1
  65. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +2 -1
  66. package/dist/src/extensions/Blocks/Recommendation/constants/controlIds.d.ts +9 -1
  67. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  68. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +10 -0
  69. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +134 -44
  70. package/dist/src/extensions/Blocks/Recommendation/controls/customAttribute/index.d.ts +105 -0
  71. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +3 -2
  72. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +5 -1
  73. package/dist/src/extensions/Blocks/Recommendation/controls/{layout/index.d.ts → main/layoutOrientation.d.ts} +3 -3
  74. package/dist/src/extensions/Blocks/Recommendation/controls/main/productCount.d.ts +28 -0
  75. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +38 -20
  76. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +6 -2
  77. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +23 -1
  78. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +8 -18
  79. package/dist/src/extensions/Blocks/Recommendation/controls/syncInfoMessage.d.ts +34 -0
  80. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +2 -0
  81. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +1 -1
  82. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +1 -1
  83. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +10 -4
  84. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +37 -2
  85. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +13 -0
  86. package/dist/src/extensions/Blocks/common-control.d.ts +29 -2
  87. package/dist/src/stores/template.d.ts +29 -0
  88. package/dist/src/utils/migrationBannerHtml.d.ts +2 -0
  89. package/dist/static/assets/info.svg.js +5 -0
  90. package/dist/static/styles/components/wide-panel.css.js +1 -0
  91. package/dist/static/styles/customEditorStyle.css.js +9 -0
  92. package/dist/static/styles/variables.css.js +3 -0
  93. package/dist/stores/template.js +15 -0
  94. package/dist/utils/migrationBannerHtml.js +21 -0
  95. package/package.json +3 -2
  96. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +0 -25
  97. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +0 -15
  98. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +0 -15
  99. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +0 -15
  100. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +0 -15
  101. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +0 -60
@@ -3,7 +3,7 @@ const n = `/* Utils */
3
3
 
4
4
  /* Recommendation Controls - Main settings panel separators */
5
5
  .recommendation-controls-container > div {
6
- border-bottom: 1px solid #e0e0e0;
6
+ border-bottom: 1px solid #eee;
7
7
  }
8
8
 
9
9
  .recommendation-controls-container > div:first-child {
@@ -18,10 +18,217 @@ const n = `/* Utils */
18
18
  padding: 0
19
19
  }
20
20
 
21
- /* Hide drag icon for list layout (ordering disabled) */
21
+ /* Right-align the mobile layout toggle within the two-column grid */
22
+ .product-layout-control-container ue-switcher {
23
+ justify-self: end;
24
+ }
25
+
26
+ /* Hide drag icon for list layout (ordering disabled) — legacy UE-ORDERABLE */
22
27
  ue-orderable.orderable-disabled .droppable-icon {
23
28
  display: none;
24
29
  }
30
+
31
+ /* =============================================
32
+ Custom Orderable List (replaces UE-ORDERABLE)
33
+ ============================================= */
34
+
35
+ /* Card Composition Description */
36
+ .card-composition-description {
37
+ font-size: 13px;
38
+ color: var(--guido-color-gray-800);
39
+ margin: 0;
40
+ line-height: 1.4;
41
+ }
42
+
43
+ /* Add Attribute button */
44
+ #guido__btn-add-attribute {
45
+ margin: 16px;
46
+ }
47
+
48
+ #guido__btn-add-attribute .button {
49
+ background: var(--guido-color-primary-100);
50
+ color: var(--guido-color-primary-500);
51
+ border: none;
52
+ }
53
+
54
+ #guido__btn-add-attribute .button:not(.disabled):hover {
55
+ background: var(--guido-color-primary-0);
56
+ }
57
+
58
+ #guido__btn-add-attribute .button.disabled {
59
+ background: var(--guido-color-gray-100);
60
+ color: var(--guido-color-gray-500);
61
+ }
62
+
63
+ /* Custom attribute select wrapper (inside orderable item) */
64
+ .custom-attr-select-wrap {
65
+ flex: 1;
66
+ min-width: 0;
67
+ }
68
+
69
+ .custom-attr-select-wrap ue-select {
70
+ width: 270px;
71
+ }
72
+
73
+ /* Orderable List */
74
+ .orderable-list {
75
+ display: flex;
76
+ flex-direction: column;
77
+ }
78
+
79
+ .orderable-item {
80
+ display: flex;
81
+ align-items: center;
82
+ gap: 4px;
83
+ padding: 16px;
84
+ min-height: 72px;
85
+ background: var(--guido-color-white);
86
+ border-top: 1px solid #eee;
87
+ cursor: default;
88
+ transition: background 0.15s;
89
+ box-sizing: border-box;
90
+ }
91
+
92
+ .orderable-item:first-child {
93
+ border-top: none;
94
+ }
95
+
96
+ .orderable-item:hover {
97
+ background: #fafafa;
98
+ }
99
+
100
+ .orderable-item.dragging {
101
+ opacity: 0.5;
102
+ background: var(--guido-color-gray-1);
103
+ }
104
+
105
+ .orderable-item.drag-over {
106
+ border-top: 2px solid var(--guido-color-primary-500, #0A2ECC);
107
+ }
108
+
109
+ .drag-handle {
110
+ user-select: none;
111
+ display: flex;
112
+ align-items: center;
113
+ justify-content: center;
114
+ width: 24px;
115
+ height: 24px;
116
+ flex-shrink: 0;
117
+ }
118
+
119
+ .drag-handle .drag-handle-btn .button {
120
+ padding: 0;
121
+ min-width: auto;
122
+ cursor: move;
123
+ }
124
+
125
+ .drag-handle .drag-handle-btn .button .icon-button {
126
+ color: var(--guido-color-gray-600);
127
+ }
128
+
129
+ .item-label {
130
+ flex: 1;
131
+ font-size: 13px;
132
+ line-height: 16px;
133
+ color: #333;
134
+ }
135
+
136
+ .item-action {
137
+ display: flex;
138
+ align-items: center;
139
+ }
140
+
141
+ /* Custom attribute delete button */
142
+ .custom-attr-delete .button .icon-button {
143
+ color: var(--guido-color-danger-500);
144
+ }
145
+
146
+ /* Disable drag for list layout */
147
+ .orderable-list.orderable-disabled .drag-handle {
148
+ display: none;
149
+ }
150
+
151
+ .orderable-list.orderable-disabled .orderable-item {
152
+ cursor: default;
153
+ }
154
+
155
+ /* ─── Migration Info Box ─────────────────────────────────────────────── */
156
+ /* Shown in the settings panel title when a block was migrated from legacy */
157
+
158
+ /* Layout variables for positioning the absolutely-placed info box */
159
+ :host {
160
+ --rec-migration-padding: 16px;
161
+ --rec-migration-title-height: 61px;
162
+ --rec-migration-box-height: 98px;
163
+ }
164
+
165
+ /* Push tabs down when info box is present inside the control panel header */
166
+ .control-panel-header:has(.recommendation-block-migration-info) {
167
+ position: relative;
168
+ margin-bottom: calc(2 * var(--rec-migration-padding) + var(--rec-migration-box-height));
169
+ }
170
+
171
+ /* Info box container */
172
+ .recommendation-block-migration-info {
173
+ display: flex;
174
+ align-items: flex-start;
175
+ gap: 8px;
176
+ padding: 12px;
177
+ background: var(--guido-color-background-onpage-message-info);
178
+ border: 1px solid var(--guido-color-border-onpage-message-info);
179
+ border-radius: 4px;
180
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.07);
181
+ position: absolute;
182
+ left: var(--rec-migration-padding);
183
+ right: var(--rec-migration-padding);
184
+ top: calc(var(--rec-migration-padding) + var(--rec-migration-title-height));
185
+ }
186
+
187
+ /* Icon — 18x19 icon inside a 24x24 bounding box (matches Figma) */
188
+ .recommendation-block-migration-info__icon {
189
+ flex-shrink: 0;
190
+ width: 24px;
191
+ height: 24px;
192
+ }
193
+
194
+ /* Text content */
195
+ .recommendation-block-migration-info__text {
196
+ margin: 4px 0;
197
+ white-space: normal;
198
+ font-size: 13px;
199
+ font-weight: 400;
200
+ line-height: 16px;
201
+ }
202
+
203
+ /* ─── Sync Info Message ─────────────────────────────────────────────── */
204
+ /* Shown above tabs in sub-block panels (Name, Button, Image) to indicate
205
+ that editing applies to all product cards. Same structure as migration info. */
206
+
207
+ .sync-info-message {
208
+ display: flex;
209
+ align-items: flex-start;
210
+ gap: 8px;
211
+ padding: 12px;
212
+ margin: 16px 16px 0;
213
+ background: var(--guido-color-background-onpage-message-info);
214
+ border: 1px solid var(--guido-color-border-onpage-message-info);
215
+ border-radius: 4px;
216
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.07);
217
+ }
218
+
219
+ .sync-info-message__icon {
220
+ flex-shrink: 0;
221
+ width: 24px;
222
+ height: 24px;
223
+ }
224
+
225
+ .sync-info-message__text {
226
+ margin: 4px 0;
227
+ white-space: normal;
228
+ font-size: 13px;
229
+ font-weight: 400;
230
+ line-height: 16px;
231
+ }
25
232
  `;
26
233
  export {
27
234
  n as default
@@ -1,8 +1,8 @@
1
- import { SettingsPanelRegistry as S, SettingsPanelTab as I, SettingsTab as T, ContainerControls as E, TextControls as C } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { BLOCK_ID as R } from "./block.js";
1
+ import { SettingsPanelRegistry as E, SettingsPanelTab as _, SettingsTab as O, ContainerControls as C, TextControls as R } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { BLOCK_ID as U } from "./block.js";
3
3
  import { RecommendationBlockId as N } from "./constants/blockIds.js";
4
- import { RecommendationControlId as _ } from "./constants/controlIds.js";
5
- import { CONTROL_BLOCK_ID as L } from "./controls/main/index.js";
4
+ import { RecommendationControlId as T } from "./constants/controlIds.js";
5
+ import { CONTROL_BLOCK_ID as A } from "./controls/main/index.js";
6
6
  import "./store/recommendation.js";
7
7
  import "./controls/name/index.js";
8
8
  import "./controls/price/index.js";
@@ -11,163 +11,187 @@ import "./controls/omnibusPrice/index.js";
11
11
  import "./controls/omnibusDiscount/index.js";
12
12
  import "./controls/button/index.js";
13
13
  import "./controls/image/index.js";
14
- import { SPACING_CONTROL_ID as U } from "./controls/spacing/index.js";
15
- import { CARD_BACKGROUND_COLOR_CONTROL_ID as B } from "./controls/cardBackground/index.js";
16
- import { LAYOUT_CONTROL_ID as D } from "./controls/layout/index.js";
17
- import { COMPOSITION_CONTROL_BLOCK_ID as A } from "./controls/cardComposition/index.js";
18
- class s extends S {
19
- registerBlockControls(O) {
20
- O[R] = [
21
- new I(
22
- T.SETTINGS,
23
- [
24
- L,
25
- E.EXTERNAL_INDENTS
14
+ import { SPACING_CONTROL_ID as L } from "./controls/spacing/index.js";
15
+ import { CARD_BACKGROUND_COLOR_CONTROL_ID as D } from "./controls/cardBackground/index.js";
16
+ import { COMPOSITION_CONTROL_BLOCK_ID as B } from "./controls/cardComposition/index.js";
17
+ import { SYNC_INFO_MESSAGE_CONTROL_ID as S } from "./controls/syncInfoMessage.js";
18
+ class Z extends E {
19
+ registerBlockControls(I) {
20
+ I[U] = [
21
+ new _(
22
+ O.SETTINGS,
23
+ [
24
+ A,
25
+ C.EXTERNAL_INDENTS
26
26
  ]
27
27
  ),
28
- new I(
29
- T.STYLES,
28
+ new _(
29
+ O.STYLES,
30
30
  [
31
- C.TEXT_BLOCK_BACKGROUND_COLOR,
32
- B,
31
+ R.TEXT_BLOCK_BACKGROUND_COLOR,
33
32
  D,
34
- U
33
+ L
35
34
  ]
36
35
  ),
37
- new I(
36
+ new _(
38
37
  "Card Composition",
39
38
  [
40
- A
39
+ B
41
40
  ]
42
- ).withLabel("Card Composition")
43
- ], O[N.NAME] = [
44
- new I(
45
- T.SETTINGS,
41
+ ).withLabel(this.api.translate("Card Composition"))
42
+ ], I[N.NAME] = [
43
+ new _(
44
+ O.SETTINGS,
46
45
  [
47
- _.NAME_STYLE,
48
- _.NAME_ALIGN,
49
- _.NAME_TEXT_TRIM,
50
- _.NAME_PADDINGS
46
+ S,
47
+ T.NAME_STYLE,
48
+ T.NAME_ALIGN,
49
+ T.NAME_TEXT_TRIM,
50
+ T.NAME_PADDINGS
51
51
  ]
52
52
  ),
53
- new I(
54
- T.STYLES,
53
+ new _(
54
+ O.STYLES,
55
55
  [
56
- _.NAME_BACKGROUND,
57
- _.NAME_FONT_FAMILY,
58
- _.NAME_SIZE,
59
- _.NAME_COLOR
56
+ T.NAME_BACKGROUND,
57
+ T.NAME_FONT_FAMILY,
58
+ T.NAME_SIZE,
59
+ T.NAME_COLOR
60
60
  ]
61
61
  )
62
- ], O[N.PRICE] = [
63
- new I(
64
- T.SETTINGS,
62
+ ], I[N.PRICE] = [
63
+ new _(
64
+ O.SETTINGS,
65
65
  [
66
- _.PRICE_STYLE,
67
- _.PRICE_ALIGN,
68
- _.PRICE_PADDINGS
66
+ S,
67
+ T.PRICE_STYLE,
68
+ T.PRICE_ALIGN,
69
+ T.PRICE_PADDINGS
69
70
  ]
70
71
  ),
71
- new I(
72
- T.STYLES,
72
+ new _(
73
+ O.STYLES,
73
74
  [
74
- _.PRICE_BACKGROUND,
75
- _.PRICE_FONT_FAMILY,
76
- _.PRICE_SIZE,
77
- _.PRICE_COLOR
75
+ T.PRICE_BACKGROUND,
76
+ T.PRICE_FONT_FAMILY,
77
+ T.PRICE_SIZE,
78
+ T.PRICE_COLOR
78
79
  ]
79
80
  )
80
- ], O[N.OLD_PRICE] = [
81
- new I(
82
- T.SETTINGS,
81
+ ], I[N.OLD_PRICE] = [
82
+ new _(
83
+ O.SETTINGS,
83
84
  [
84
- _.OLD_PRICE_STYLE,
85
- _.OLD_PRICE_ALIGN,
86
- _.OLD_PRICE_PADDINGS
85
+ S,
86
+ T.OLD_PRICE_STYLE,
87
+ T.OLD_PRICE_ALIGN,
88
+ T.OLD_PRICE_PADDINGS
87
89
  ]
88
90
  ),
89
- new I(
90
- T.STYLES,
91
+ new _(
92
+ O.STYLES,
91
93
  [
92
- _.OLD_PRICE_BACKGROUND,
93
- _.OLD_PRICE_FONT_FAMILY,
94
- _.OLD_PRICE_SIZE,
95
- _.OLD_PRICE_COLOR
94
+ T.OLD_PRICE_BACKGROUND,
95
+ T.OLD_PRICE_FONT_FAMILY,
96
+ T.OLD_PRICE_SIZE,
97
+ T.OLD_PRICE_COLOR
96
98
  ]
97
99
  )
98
- ], O[N.OMNIBUS_PRICE] = [
99
- new I(
100
- T.SETTINGS,
100
+ ], I[N.OMNIBUS_PRICE] = [
101
+ new _(
102
+ O.SETTINGS,
101
103
  [
102
- _.OMNIBUS_PRICE_TEXT_BEFORE,
103
- _.OMNIBUS_PRICE_TEXT_AFTER,
104
- _.OMNIBUS_PRICE_STYLE,
105
- _.OMNIBUS_PRICE_ALIGN,
106
- _.OMNIBUS_PRICE_PADDINGS
104
+ S,
105
+ T.OMNIBUS_PRICE_TEXT_BEFORE,
106
+ T.OMNIBUS_PRICE_TEXT_AFTER,
107
+ T.OMNIBUS_PRICE_STYLE,
108
+ T.OMNIBUS_PRICE_ALIGN,
109
+ T.OMNIBUS_PRICE_PADDINGS
107
110
  ]
108
111
  ),
109
- new I(
110
- T.STYLES,
112
+ new _(
113
+ O.STYLES,
111
114
  [
112
- _.OMNIBUS_PRICE_BACKGROUND,
113
- _.OMNIBUS_PRICE_FONT_FAMILY,
114
- _.OMNIBUS_PRICE_SIZE,
115
- _.OMNIBUS_PRICE_COLOR
115
+ T.OMNIBUS_PRICE_BACKGROUND,
116
+ T.OMNIBUS_PRICE_FONT_FAMILY,
117
+ T.OMNIBUS_PRICE_SIZE,
118
+ T.OMNIBUS_PRICE_COLOR
116
119
  ]
117
120
  )
118
- ], O[N.OMNIBUS_DISCOUNT] = [
119
- new I(
120
- T.SETTINGS,
121
+ ], I[N.OMNIBUS_DISCOUNT] = [
122
+ new _(
123
+ O.SETTINGS,
121
124
  [
122
- _.OMNIBUS_DISCOUNT_TEXT_BEFORE,
123
- _.OMNIBUS_DISCOUNT_TEXT_AFTER,
124
- _.OMNIBUS_DISCOUNT_STYLE,
125
- _.OMNIBUS_DISCOUNT_ALIGN,
126
- _.OMNIBUS_DISCOUNT_PADDINGS
125
+ S,
126
+ T.OMNIBUS_DISCOUNT_TEXT_BEFORE,
127
+ T.OMNIBUS_DISCOUNT_TEXT_AFTER,
128
+ T.OMNIBUS_DISCOUNT_STYLE,
129
+ T.OMNIBUS_DISCOUNT_ALIGN,
130
+ T.OMNIBUS_DISCOUNT_PADDINGS
127
131
  ]
128
132
  ),
129
- new I(
130
- T.STYLES,
133
+ new _(
134
+ O.STYLES,
131
135
  [
132
- _.OMNIBUS_DISCOUNT_BACKGROUND,
133
- _.OMNIBUS_DISCOUNT_FONT_FAMILY,
134
- _.OMNIBUS_DISCOUNT_SIZE,
135
- _.OMNIBUS_DISCOUNT_COLOR
136
+ T.OMNIBUS_DISCOUNT_BACKGROUND,
137
+ T.OMNIBUS_DISCOUNT_FONT_FAMILY,
138
+ T.OMNIBUS_DISCOUNT_SIZE,
139
+ T.OMNIBUS_DISCOUNT_COLOR
136
140
  ]
137
141
  )
138
- ], O[N.BUTTON] = [
139
- new I(
140
- T.SETTINGS,
142
+ ], I[N.BUTTON] = [
143
+ new _(
144
+ O.SETTINGS,
141
145
  [
142
- _.BUTTON_TEXT,
143
- _.BUTTON_ALIGN,
144
- _.BUTTON_PADDINGS,
145
- _.BUTTON_MARGINS
146
+ S,
147
+ T.BUTTON_TEXT,
148
+ T.BUTTON_ALIGN,
149
+ T.BUTTON_PADDINGS,
150
+ T.BUTTON_MARGINS
146
151
  ]
147
152
  ),
148
- new I(
149
- T.STYLES,
153
+ new _(
154
+ O.STYLES,
150
155
  [
151
- _.BUTTON_COLOR,
152
- _.BUTTON_FONT_FAMILY,
153
- _.BUTTON_TEXT_SIZE,
154
- _.BUTTON_TEXT_STYLE_AND_FONT_COLOR,
155
- _.BUTTON_FIT_TO_CONTENT,
156
- _.BUTTON_BORDER_RADIUS,
157
- _.BUTTON_BORDER
156
+ T.BUTTON_COLOR,
157
+ T.BUTTON_FONT_FAMILY,
158
+ T.BUTTON_TEXT_SIZE,
159
+ T.BUTTON_TEXT_STYLE_AND_FONT_COLOR,
160
+ T.BUTTON_FIT_TO_CONTENT,
161
+ T.BUTTON_BORDER_RADIUS,
162
+ T.BUTTON_BORDER
158
163
  ]
159
164
  )
160
- ], O[N.IMAGE] = [
161
- new I(
162
- T.SETTINGS,
165
+ ], I[N.CUSTOM_ATTRIBUTE] = [
166
+ new _(
167
+ O.SETTINGS,
163
168
  [
164
- _.IMAGE_SIZE,
165
- _.IMAGE_MARGINS
169
+ T.CUSTOM_ATTR_STYLE,
170
+ T.CUSTOM_ATTR_ALIGN,
171
+ T.CUSTOM_ATTR_PADDINGS
172
+ ]
173
+ ),
174
+ new _(
175
+ O.STYLES,
176
+ [
177
+ T.CUSTOM_ATTR_BACKGROUND,
178
+ T.CUSTOM_ATTR_FONT_FAMILY,
179
+ T.CUSTOM_ATTR_SIZE,
180
+ T.CUSTOM_ATTR_COLOR
181
+ ]
182
+ )
183
+ ], I[N.IMAGE] = [
184
+ new _(
185
+ O.SETTINGS,
186
+ [
187
+ S,
188
+ T.IMAGE_SIZE,
189
+ T.IMAGE_MARGINS
166
190
  ]
167
191
  )
168
192
  ];
169
193
  }
170
194
  }
171
195
  export {
172
- s as SettingsPanel
196
+ Z as SettingsPanel
173
197
  };
@@ -5,11 +5,11 @@ import { defineStore as G } from "pinia";
5
5
  import { DEFAULT_CARDS_IN_ROW as F } from "../constants/layout.js";
6
6
  import { EXCLUDED_ALGORITHM_IDS as w } from "../constants/defaultConfig.js";
7
7
  import { getDefaultProducts as S } from "../templates/utils.js";
8
- import { generateCompleteFilterQuery as I } from "../utils/filterUtil.js";
8
+ import { generateCompleteFilterQuery as b } from "../utils/filterUtil.js";
9
9
  import { isFilterValid as D } from "../validation/filterSchema.js";
10
10
  const h = y();
11
11
  let u = null, m = null, d = null;
12
- function b() {
12
+ function I() {
13
13
  return {
14
14
  cardsInRow: F,
15
15
  currencySettings: {
@@ -25,6 +25,7 @@ function b() {
25
25
  productIds: [],
26
26
  id: 1,
27
27
  language: "en_US",
28
+ mobileLayoutEnabled: !1,
28
29
  orientation: "grid",
29
30
  recommendedProducts: [],
30
31
  sendProductRequestFlag: !1,
@@ -32,12 +33,13 @@ function b() {
32
33
  strategy: "mostPopular",
33
34
  textTrimming: !0,
34
35
  unresponsive: !1,
35
- size: "6"
36
+ size: "6",
37
+ customAttributes: []
36
38
  };
37
39
  }
38
40
  function P() {
39
41
  return {
40
- recommendationConfigs: b(),
42
+ recommendationConfigs: I(),
41
43
  recommendationProducts: [],
42
44
  filterStatus: !1,
43
45
  filterSelectionDrawerStatus: !1,
@@ -66,7 +68,7 @@ const v = () => ({
66
68
  * This allows all existing code that reads `store.recommendationConfigs` to work unchanged.
67
69
  */
68
70
  recommendationConfigs(t) {
69
- return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].recommendationConfigs : b();
71
+ return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].recommendationConfigs : I();
70
72
  },
71
73
  /**
72
74
  * Proxy getter: delegates to blockStates[currentRecommendationId].recommendationProducts
@@ -352,7 +354,7 @@ const v = () => ({
352
354
  }), r.recommendationConfigs.filters = e;
353
355
  },
354
356
  generateFilterQuery() {
355
- return I(this.recommendationConfigs.filters);
357
+ return b(this.recommendationConfigs.filters);
356
358
  },
357
359
  // ====================================================================
358
360
  // Per-Block Product Fetching
@@ -373,7 +375,7 @@ const v = () => ({
373
375
  },
374
376
  async _doFetchProducts() {
375
377
  var p;
376
- const t = this.currentRecommendationId, r = this.blockStates[t], { recommendationConfigs: e } = r, n = e.filters.filter((a) => a.isValid), c = I(n), i = ((p = g.find((a) => a.key === e.strategy)) == null ? void 0 : p.path) || "", o = C(), s = {
378
+ const t = this.currentRecommendationId, r = this.blockStates[t], { recommendationConfigs: e } = r, n = e.filters.filter((a) => a.isValid), c = b(n), i = ((p = g.find((a) => a.key === e.strategy)) == null ? void 0 : p.path) || "", o = C(), s = {
377
379
  locale: e.language,
378
380
  currency: e.currencySettings.value,
379
381
  partnerName: o.partnerName,