@useinsider/guido 3.8.0-beta.bf9ea20 → 3.8.0-beta.eb4074b

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 (56) hide show
  1. package/dist/composables/useHtmlValidator.js +180 -133
  2. package/dist/config/compiler/utils/recommendationCompilerUtils.js +64 -69
  3. package/dist/config/compiler/utils/recommendationIgnoreUtils.js +15 -0
  4. package/dist/config/migrator/recommendation/extractors.js +44 -22
  5. package/dist/config/migrator/recommendation/htmlBuilder.js +175 -169
  6. package/dist/config/migrator/recommendationMigrator.js +30 -31
  7. package/dist/extensions/Blocks/Items/block.js +29 -48
  8. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +45 -62
  9. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +22 -15
  10. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +55 -41
  11. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +42 -43
  12. package/dist/extensions/Blocks/Recommendation/controls/main/layoutOrientation.js +48 -45
  13. package/dist/extensions/Blocks/Recommendation/controls/main/productCount.js +3 -2
  14. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +64 -60
  15. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +294 -335
  16. package/dist/extensions/Blocks/Recommendation/controls/syncInfoMessage.js +7 -6
  17. package/dist/extensions/Blocks/Recommendation/extension.js +7 -5
  18. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +4 -2
  19. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +3 -2
  20. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +142 -173
  21. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +56 -29
  22. package/dist/extensions/Blocks/Recommendation/templates/index.js +30 -8
  23. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +132 -105
  24. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +44 -23
  25. package/dist/extensions/Blocks/Recommendation/templates/utils.js +112 -64
  26. package/dist/extensions/Blocks/Recommendation/utils/captureStyleTemplates.js +219 -0
  27. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +24 -19
  28. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +30 -22
  29. package/dist/extensions/Blocks/Unsubscribe/block.js +1 -1
  30. package/dist/extensions/Blocks/controlFactories.js +159 -133
  31. package/dist/src/composables/useHtmlValidator.d.ts +27 -0
  32. package/dist/src/composables/useHtmlValidator.test.d.ts +1 -0
  33. package/dist/src/config/compiler/utils/recommendationIgnoreUtils.d.ts +17 -0
  34. package/dist/src/config/compiler/utils/recommendationIgnoreUtils.test.d.ts +1 -0
  35. package/dist/src/config/migrator/recommendation/extractors.d.ts +15 -0
  36. package/dist/src/config/migrator/recommendation/htmlBuilder.d.ts +8 -0
  37. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -8
  38. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +1 -1
  39. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +1 -1
  40. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  41. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +23 -0
  42. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +1 -1
  43. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +7 -0
  44. package/dist/src/extensions/Blocks/Recommendation/controls/main/layoutOrientation.d.ts +7 -1
  45. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +6 -0
  46. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +29 -47
  47. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +4 -4
  48. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +1 -1
  49. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +3 -2
  50. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +165 -11
  51. package/dist/src/extensions/Blocks/Recommendation/utils/captureStyleTemplates.d.ts +78 -0
  52. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +15 -0
  53. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +29 -9
  54. package/dist/src/extensions/Blocks/controlFactories.d.ts +11 -1
  55. package/package.json +1 -1
  56. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +0 -113
@@ -1,113 +0,0 @@
1
- /**
2
- * Style Preserver Utility
3
- *
4
- * Captures and restores element styles during block regeneration.
5
- * This ensures user styling is preserved when:
6
- * - Layout changes (grid <-> list)
7
- * - Cards per row changes
8
- * - Composition order changes
9
- *
10
- * Works with the node config system to provide complete style persistence.
11
- */
12
- import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
13
- import { ModificationDescription } from '@stripoinc/ui-editor-extensions';
14
- /**
15
- * Style properties that can be captured for text elements
16
- */
17
- export interface TextElementStyles {
18
- fontSize?: string;
19
- fontFamily?: string;
20
- fontWeight?: string;
21
- fontStyle?: string;
22
- color?: string;
23
- textAlign?: string;
24
- lineHeight?: string;
25
- textDecoration?: string;
26
- }
27
- /**
28
- * Style properties for button elements
29
- */
30
- export interface ButtonElementStyles extends TextElementStyles {
31
- backgroundColor?: string;
32
- borderRadius?: string;
33
- border?: string;
34
- padding?: string;
35
- }
36
- /**
37
- * Style properties for image elements
38
- */
39
- export interface ImageElementStyles {
40
- width?: string;
41
- height?: string;
42
- maxWidth?: string;
43
- }
44
- /**
45
- * Complete captured styles for a recommendation block
46
- */
47
- export interface CapturedStyles {
48
- /** Product name text styles */
49
- name: TextElementStyles;
50
- /** Current price text styles */
51
- price: TextElementStyles;
52
- /** Original/old price text styles */
53
- oldPrice: TextElementStyles;
54
- /** Omnibus price text styles */
55
- omnibusPrice: TextElementStyles;
56
- /** Omnibus discount text styles */
57
- omnibusDiscount: TextElementStyles;
58
- /** CTA button styles */
59
- button: ButtonElementStyles;
60
- /** Product image styles */
61
- image: ImageElementStyles;
62
- /** Card background color */
63
- cardBackgroundColor: string | null;
64
- /** Column spacing in pixels */
65
- columnSpacing: number;
66
- /** Row spacing in pixels */
67
- rowSpacing: number;
68
- /** Element composition order */
69
- composition: string[];
70
- /** Element visibility flags */
71
- visibility: Record<string, boolean>;
72
- }
73
- type DocumentModifier = {
74
- modifyHtml: (node: ImmutableHtmlNode) => {
75
- setStyle: (prop: string, value: string) => DocumentModifier;
76
- };
77
- apply: (description: ModificationDescription) => void;
78
- };
79
- /**
80
- * Capture all styles from a recommendation block
81
- *
82
- * Call this BEFORE any operation that regenerates the block HTML.
83
- * The captured styles can then be restored after regeneration.
84
- * @example
85
- * // Before layout change
86
- * const styles = captureStyles(this.currentNode);
87
- *
88
- * // ... regenerate block HTML ...
89
- *
90
- * // After regeneration
91
- * restoreStyles(this.currentNode, this.api.getDocumentModifier(), styles);
92
- * @param node - The block node to capture styles from
93
- * @returns Complete captured styles object
94
- */
95
- export declare function captureStyles(node: ImmutableHtmlNode | null | undefined): CapturedStyles;
96
- /**
97
- * Restore captured styles to a regenerated block
98
- *
99
- * Call this AFTER regenerating block HTML to reapply user styling.
100
- * @example
101
- * restoreStyles(this.currentNode, this.api.getDocumentModifier(), capturedStyles);
102
- * @param node - The block node to restore styles to
103
- * @param modifier - Document modifier for applying changes
104
- * @param styles - Previously captured styles
105
- */
106
- export declare function restoreStyles(node: ImmutableHtmlNode | null | undefined, modifier: DocumentModifier, styles: CapturedStyles): void;
107
- /**
108
- * Check if styles have meaningful content worth restoring
109
- * @param styles - Captured styles to check
110
- * @returns True if styles contain restorable content
111
- */
112
- export declare function hasRestorableStyles(styles: CapturedStyles): boolean;
113
- export {};