@useinsider/guido 3.19.0-beta.87e26c0 → 3.19.0-beta.acb00a2

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 (70) hide show
  1. package/README.md +21 -3
  2. package/dist/@types/config/schemas.js +59 -51
  3. package/dist/components/Guido.vue.js +4 -4
  4. package/dist/components/Guido.vue2.js +89 -81
  5. package/dist/components/organisms/base/Toaster.vue2.js +13 -12
  6. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +13 -11
  7. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +78 -57
  8. package/dist/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.js +18 -0
  9. package/dist/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue2.js +25 -0
  10. package/dist/components/organisms/extensions/recommendation/RemoveStrategyModal.vue2.js +28 -42
  11. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +28 -24
  12. package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.js +21 -0
  13. package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue2.js +46 -0
  14. package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.js +21 -0
  15. package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue2.js +47 -0
  16. package/dist/composables/useActionsApi.js +24 -20
  17. package/dist/composables/useCortexBlueprintBridge.js +122 -54
  18. package/dist/composables/useCustomInterfaceAppearance.js +65 -51
  19. package/dist/composables/useEmailTemplateApplier.js +108 -52
  20. package/dist/composables/useHtmlValidator.js +87 -82
  21. package/dist/composables/useHttp.js +44 -55
  22. package/dist/composables/useLegacyStrategyConversion.js +61 -0
  23. package/dist/composables/useRecommendation.js +40 -35
  24. package/dist/composables/useStripo.js +30 -30
  25. package/dist/composables/useToaster.js +14 -20
  26. package/dist/enums/extensions/recommendationBlock.js +49 -33
  27. package/dist/extensions/Blocks/Recommendation/block.js +61 -42
  28. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +21 -20
  29. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +100 -94
  30. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +130 -55
  31. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +74 -74
  32. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +273 -92
  33. package/dist/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.js +42 -0
  34. package/dist/extensions/Blocks/Recommendation/utils/nodeConfigWriter.js +26 -16
  35. package/dist/extensions/Blocks/Recommendation/utils/strategyCommit.js +24 -0
  36. package/dist/extensions/Blocks/Recommendation/validation/requiredFields.js +21 -12
  37. package/dist/guido.css +1 -1
  38. package/dist/services/recommendationApi.js +46 -37
  39. package/dist/src/@types/config/schemas.d.ts +16 -0
  40. package/dist/src/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.d.ts +2 -0
  41. package/dist/src/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.d.ts +2 -0
  42. package/dist/src/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.d.ts +2 -0
  43. package/dist/src/composables/useConfig.d.ts +4 -0
  44. package/dist/src/composables/useCortexBlueprintBridge.d.ts +2 -3
  45. package/dist/src/composables/useEmailTemplateApplier.d.ts +18 -5
  46. package/dist/src/composables/useLegacyStrategyConversion.d.ts +3 -0
  47. package/dist/src/enums/extensions/recommendationBlock.d.ts +7 -1
  48. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +10 -0
  49. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +1 -0
  50. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  51. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +2 -0
  52. package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +10 -0
  53. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +7 -2
  54. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +162 -1
  55. package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.d.ts +32 -0
  56. package/dist/src/extensions/Blocks/Recommendation/utils/strategyCommit.d.ts +14 -0
  57. package/dist/src/extensions/Blocks/Recommendation/validation/requiredFields.d.ts +4 -0
  58. package/dist/src/services/recommendationApi.d.ts +2 -1
  59. package/dist/src/stores/config.d.ts +322 -0
  60. package/dist/src/stores/guido-email-editor.d.ts +20 -10
  61. package/dist/src/stores/onboarding.d.ts +808 -10
  62. package/dist/static/assets/icons/filled-arrow-rising.svg.js +5 -0
  63. package/dist/static/assets/icons/line-info.svg.js +5 -0
  64. package/dist/static/styles/components/recommendation-strategy.css.js +104 -9
  65. package/dist/static/styles/components/skeleton.css.js +23 -0
  66. package/dist/stores/config.js +74 -60
  67. package/dist/stores/guido-email-editor.js +3 -1
  68. package/dist/stores/onboarding.js +46 -36
  69. package/dist/utils/templatePreparation.js +55 -55
  70. package/package.json +1 -1
@@ -16,6 +16,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
16
16
  templateId: string;
17
17
  userId: string;
18
18
  variationId?: string | undefined;
19
+ campaignId?: string | undefined;
20
+ templateLibraryId?: string | undefined;
19
21
  };
20
22
  partner: {
21
23
  name: string;
@@ -157,6 +159,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
157
159
  templateId: string;
158
160
  userId: string;
159
161
  variationId?: string | undefined;
162
+ campaignId?: string | undefined;
163
+ templateLibraryId?: string | undefined;
160
164
  };
161
165
  partner: {
162
166
  name: string;
@@ -298,6 +302,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
298
302
  templateId: string;
299
303
  userId: string;
300
304
  variationId?: string | undefined;
305
+ campaignId?: string | undefined;
306
+ templateLibraryId?: string | undefined;
301
307
  };
302
308
  partner: {
303
309
  name: string;
@@ -439,6 +445,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
439
445
  templateId: string;
440
446
  userId: string;
441
447
  variationId?: string | undefined;
448
+ campaignId?: string | undefined;
449
+ templateLibraryId?: string | undefined;
442
450
  };
443
451
  partner: {
444
452
  name: string;
@@ -580,6 +588,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
580
588
  templateId: string;
581
589
  userId: string;
582
590
  variationId?: string | undefined;
591
+ campaignId?: string | undefined;
592
+ templateLibraryId?: string | undefined;
583
593
  };
584
594
  partner: {
585
595
  name: string;
@@ -721,6 +731,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
721
731
  templateId: string;
722
732
  userId: string;
723
733
  variationId?: string | undefined;
734
+ campaignId?: string | undefined;
735
+ templateLibraryId?: string | undefined;
724
736
  };
725
737
  partner: {
726
738
  name: string;
@@ -862,6 +874,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
862
874
  templateId: string;
863
875
  userId: string;
864
876
  variationId?: string | undefined;
877
+ campaignId?: string | undefined;
878
+ templateLibraryId?: string | undefined;
865
879
  };
866
880
  partner: {
867
881
  name: string;
@@ -1003,6 +1017,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1003
1017
  templateId: string;
1004
1018
  userId: string;
1005
1019
  variationId?: string | undefined;
1020
+ campaignId?: string | undefined;
1021
+ templateLibraryId?: string | undefined;
1006
1022
  };
1007
1023
  partner: {
1008
1024
  name: string;
@@ -1144,6 +1160,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1144
1160
  templateId: string;
1145
1161
  userId: string;
1146
1162
  variationId?: string | undefined;
1163
+ campaignId?: string | undefined;
1164
+ templateLibraryId?: string | undefined;
1147
1165
  };
1148
1166
  partner: {
1149
1167
  name: string;
@@ -1285,6 +1303,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1285
1303
  templateId: string;
1286
1304
  userId: string;
1287
1305
  variationId?: string | undefined;
1306
+ campaignId?: string | undefined;
1307
+ templateLibraryId?: string | undefined;
1288
1308
  };
1289
1309
  partner: {
1290
1310
  name: string;
@@ -1426,6 +1446,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1426
1446
  templateId: string;
1427
1447
  userId: string;
1428
1448
  variationId?: string | undefined;
1449
+ campaignId?: string | undefined;
1450
+ templateLibraryId?: string | undefined;
1429
1451
  };
1430
1452
  partner: {
1431
1453
  name: string;
@@ -1567,6 +1589,294 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1567
1589
  templateId: string;
1568
1590
  userId: string;
1569
1591
  variationId?: string | undefined;
1592
+ campaignId?: string | undefined;
1593
+ templateLibraryId?: string | undefined;
1594
+ };
1595
+ partner: {
1596
+ name: string;
1597
+ productType: 60 | 49 | 97;
1598
+ messageType: 1 | 2;
1599
+ username: string;
1600
+ fallbackFont?: {
1601
+ name: string;
1602
+ family: string;
1603
+ } | undefined;
1604
+ };
1605
+ template: {
1606
+ html: string;
1607
+ css: string;
1608
+ preselectedDynamicContent: {
1609
+ text: string;
1610
+ value: string;
1611
+ fallback?: string | undefined;
1612
+ format?: {
1613
+ key: string;
1614
+ value: string;
1615
+ } | undefined;
1616
+ }[];
1617
+ dynamicContentList: {
1618
+ [x: string]: import("../library").DynamicContentNode[];
1619
+ };
1620
+ customFieldAttributes: string[];
1621
+ selectedUnsubscribePages: number[];
1622
+ forceRecreate: boolean;
1623
+ trackIdCounter: number;
1624
+ migration: {
1625
+ recommendationConfigs: {
1626
+ [x: string]: {
1627
+ id?: number | undefined;
1628
+ decimalCount?: string | number | undefined;
1629
+ productIds?: unknown[] | undefined;
1630
+ sendProductRequestFlag?: boolean | undefined;
1631
+ shuffleProducts?: boolean | undefined;
1632
+ filters?: unknown[] | undefined;
1633
+ currency?: string | undefined;
1634
+ currencySettings?: unknown;
1635
+ language?: string | undefined;
1636
+ strategy?: string | undefined;
1637
+ recommendedProducts?: unknown[] | undefined;
1638
+ cardsInRow?: number | undefined;
1639
+ mobileRightPadding?: number | undefined;
1640
+ mobileLeftPadding?: number | undefined;
1641
+ unresponsive?: boolean | undefined;
1642
+ orientation?: string | undefined;
1643
+ textTrimming?: boolean | undefined;
1644
+ blockType?: string | undefined;
1645
+ size?: string | number | undefined;
1646
+ verticalResponsiveness?: boolean | undefined;
1647
+ isPriceMovedToNextLine?: boolean | undefined;
1648
+ isPriceDeletedForZeroSale?: boolean | undefined;
1649
+ } & {
1650
+ [key: string]: unknown;
1651
+ };
1652
+ };
1653
+ };
1654
+ };
1655
+ editor: {
1656
+ locale: string;
1657
+ translationsPath: string;
1658
+ migrationDate: number;
1659
+ emailHeader: {
1660
+ senderName: string;
1661
+ subject: string;
1662
+ };
1663
+ savedModulesFolderName: string;
1664
+ defaultModulesFolderName: string;
1665
+ };
1666
+ ui: {
1667
+ showHeader: boolean;
1668
+ backButtonLabel?: string | undefined;
1669
+ };
1670
+ features: {
1671
+ dynamicContent: boolean;
1672
+ saveAsTemplate: boolean;
1673
+ versionHistory: boolean;
1674
+ testMessage: boolean;
1675
+ displayConditions: boolean;
1676
+ unsubscribe: boolean;
1677
+ modulesDisabled: boolean;
1678
+ liquidSyntax: boolean;
1679
+ autosave: boolean;
1680
+ allowlistEnabled: boolean;
1681
+ linkTrackingIds: boolean;
1682
+ reusableRecommendationStrategy: boolean;
1683
+ };
1684
+ blocks: {
1685
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
1686
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1687
+ };
1688
+ compiler: {
1689
+ customRules: ({
1690
+ type: "replace";
1691
+ search: string;
1692
+ replacement: string;
1693
+ replaceAll?: boolean | undefined;
1694
+ id: string;
1695
+ description?: string | undefined;
1696
+ priority: number;
1697
+ } | {
1698
+ type: "regex";
1699
+ pattern: string;
1700
+ replacement: string;
1701
+ flags?: string | undefined;
1702
+ id: string;
1703
+ description?: string | undefined;
1704
+ priority: number;
1705
+ } | {
1706
+ type: "remove";
1707
+ targets: string[];
1708
+ id: string;
1709
+ description?: string | undefined;
1710
+ priority: number;
1711
+ } | {
1712
+ type: "custom";
1713
+ processor: (html: string) => string;
1714
+ id: string;
1715
+ description?: string | undefined;
1716
+ priority: number;
1717
+ })[];
1718
+ ignoreDefaultRules: boolean;
1719
+ };
1720
+ callbacks: {
1721
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1722
+ };
1723
+ } | null;
1724
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
1725
+ /**
1726
+ * Get the campaign ID
1727
+ */
1728
+ campaignId: (state: {
1729
+ initialized: boolean;
1730
+ config: {
1731
+ identity: {
1732
+ templateId: string;
1733
+ userId: string;
1734
+ variationId?: string | undefined;
1735
+ campaignId?: string | undefined;
1736
+ templateLibraryId?: string | undefined;
1737
+ };
1738
+ partner: {
1739
+ name: string;
1740
+ productType: 60 | 49 | 97;
1741
+ messageType: 1 | 2;
1742
+ username: string;
1743
+ fallbackFont?: {
1744
+ name: string;
1745
+ family: string;
1746
+ } | undefined;
1747
+ };
1748
+ template: {
1749
+ html: string;
1750
+ css: string;
1751
+ preselectedDynamicContent: {
1752
+ text: string;
1753
+ value: string;
1754
+ fallback?: string | undefined;
1755
+ format?: {
1756
+ key: string;
1757
+ value: string;
1758
+ } | undefined;
1759
+ }[];
1760
+ dynamicContentList: {
1761
+ [x: string]: import("../library").DynamicContentNode[];
1762
+ };
1763
+ customFieldAttributes: string[];
1764
+ selectedUnsubscribePages: number[];
1765
+ forceRecreate: boolean;
1766
+ trackIdCounter: number;
1767
+ migration: {
1768
+ recommendationConfigs: {
1769
+ [x: string]: {
1770
+ id?: number | undefined;
1771
+ decimalCount?: string | number | undefined;
1772
+ productIds?: unknown[] | undefined;
1773
+ sendProductRequestFlag?: boolean | undefined;
1774
+ shuffleProducts?: boolean | undefined;
1775
+ filters?: unknown[] | undefined;
1776
+ currency?: string | undefined;
1777
+ currencySettings?: unknown;
1778
+ language?: string | undefined;
1779
+ strategy?: string | undefined;
1780
+ recommendedProducts?: unknown[] | undefined;
1781
+ cardsInRow?: number | undefined;
1782
+ mobileRightPadding?: number | undefined;
1783
+ mobileLeftPadding?: number | undefined;
1784
+ unresponsive?: boolean | undefined;
1785
+ orientation?: string | undefined;
1786
+ textTrimming?: boolean | undefined;
1787
+ blockType?: string | undefined;
1788
+ size?: string | number | undefined;
1789
+ verticalResponsiveness?: boolean | undefined;
1790
+ isPriceMovedToNextLine?: boolean | undefined;
1791
+ isPriceDeletedForZeroSale?: boolean | undefined;
1792
+ } & {
1793
+ [key: string]: unknown;
1794
+ };
1795
+ };
1796
+ };
1797
+ };
1798
+ editor: {
1799
+ locale: string;
1800
+ translationsPath: string;
1801
+ migrationDate: number;
1802
+ emailHeader: {
1803
+ senderName: string;
1804
+ subject: string;
1805
+ };
1806
+ savedModulesFolderName: string;
1807
+ defaultModulesFolderName: string;
1808
+ };
1809
+ ui: {
1810
+ showHeader: boolean;
1811
+ backButtonLabel?: string | undefined;
1812
+ };
1813
+ features: {
1814
+ dynamicContent: boolean;
1815
+ saveAsTemplate: boolean;
1816
+ versionHistory: boolean;
1817
+ testMessage: boolean;
1818
+ displayConditions: boolean;
1819
+ unsubscribe: boolean;
1820
+ modulesDisabled: boolean;
1821
+ liquidSyntax: boolean;
1822
+ autosave: boolean;
1823
+ allowlistEnabled: boolean;
1824
+ linkTrackingIds: boolean;
1825
+ reusableRecommendationStrategy: boolean;
1826
+ };
1827
+ blocks: {
1828
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
1829
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1830
+ };
1831
+ compiler: {
1832
+ customRules: ({
1833
+ type: "replace";
1834
+ search: string;
1835
+ replacement: string;
1836
+ replaceAll?: boolean | undefined;
1837
+ id: string;
1838
+ description?: string | undefined;
1839
+ priority: number;
1840
+ } | {
1841
+ type: "regex";
1842
+ pattern: string;
1843
+ replacement: string;
1844
+ flags?: string | undefined;
1845
+ id: string;
1846
+ description?: string | undefined;
1847
+ priority: number;
1848
+ } | {
1849
+ type: "remove";
1850
+ targets: string[];
1851
+ id: string;
1852
+ description?: string | undefined;
1853
+ priority: number;
1854
+ } | {
1855
+ type: "custom";
1856
+ processor: (html: string) => string;
1857
+ id: string;
1858
+ description?: string | undefined;
1859
+ priority: number;
1860
+ })[];
1861
+ ignoreDefaultRules: boolean;
1862
+ };
1863
+ callbacks: {
1864
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1865
+ };
1866
+ } | null;
1867
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
1868
+ /**
1869
+ * Get the template-library ID of the host template
1870
+ */
1871
+ templateLibraryId: (state: {
1872
+ initialized: boolean;
1873
+ config: {
1874
+ identity: {
1875
+ templateId: string;
1876
+ userId: string;
1877
+ variationId?: string | undefined;
1878
+ campaignId?: string | undefined;
1879
+ templateLibraryId?: string | undefined;
1570
1880
  };
1571
1881
  partner: {
1572
1882
  name: string;
@@ -1708,6 +2018,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1708
2018
  templateId: string;
1709
2019
  userId: string;
1710
2020
  variationId?: string | undefined;
2021
+ campaignId?: string | undefined;
2022
+ templateLibraryId?: string | undefined;
1711
2023
  };
1712
2024
  partner: {
1713
2025
  name: string;
@@ -1849,6 +2161,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1849
2161
  templateId: string;
1850
2162
  userId: string;
1851
2163
  variationId?: string | undefined;
2164
+ campaignId?: string | undefined;
2165
+ templateLibraryId?: string | undefined;
1852
2166
  };
1853
2167
  partner: {
1854
2168
  name: string;
@@ -1990,6 +2304,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
1990
2304
  templateId: string;
1991
2305
  userId: string;
1992
2306
  variationId?: string | undefined;
2307
+ campaignId?: string | undefined;
2308
+ templateLibraryId?: string | undefined;
1993
2309
  };
1994
2310
  partner: {
1995
2311
  name: string;
@@ -2131,6 +2447,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2131
2447
  templateId: string;
2132
2448
  userId: string;
2133
2449
  variationId?: string | undefined;
2450
+ campaignId?: string | undefined;
2451
+ templateLibraryId?: string | undefined;
2134
2452
  };
2135
2453
  partner: {
2136
2454
  name: string;
@@ -2272,6 +2590,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2272
2590
  templateId: string;
2273
2591
  userId: string;
2274
2592
  variationId?: string | undefined;
2593
+ campaignId?: string | undefined;
2594
+ templateLibraryId?: string | undefined;
2275
2595
  };
2276
2596
  partner: {
2277
2597
  name: string;
@@ -2415,6 +2735,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
2415
2735
  templateId: string;
2416
2736
  userId: string;
2417
2737
  variationId?: string | undefined;
2738
+ campaignId?: string | undefined;
2739
+ templateLibraryId?: string | undefined;
2418
2740
  };
2419
2741
  partner: {
2420
2742
  name: string;
@@ -1,3 +1,13 @@
1
+ /** Terminal outcome of an editor write, keyed by `${blueprintId}:${version}`. */
2
+ export interface ApplyAck {
3
+ status: 'applied' | 'failed';
4
+ /** The `applyRequestedAt` of the click this ack answers — lets cortex drop stale acks. */
5
+ requestedAt: number;
6
+ /** Strictly increasing per key, so two acks in the same millisecond still order. */
7
+ ackAt: number;
8
+ /** Stringified — cortex JSON-clones store-derived payloads, an Error would not survive. */
9
+ error?: string;
10
+ }
1
11
  /** The published editor snapshot — the shape a consumer reads off the shared store. */
2
12
  export interface GuidoEmailEditorState {
3
13
  /** Current Stripo HTML — stripe tables only, no DOCTYPE/wrapper. */
@@ -8,6 +18,10 @@ export interface GuidoEmailEditorState {
8
18
  lastUpdatedAt: number;
9
19
  /** Template id from the editor config, so a consumer can scope per-template. */
10
20
  templateId: string;
21
+ /** True while a mounted Guido bridge is consuming the chat store. Gates cortex's Apply button. */
22
+ bridgeActive: boolean;
23
+ /** `${blueprintId}:${version}` → terminal outcome of the editor write, written only after it settles. */
24
+ applyAcks: Record<string, ApplyAck>;
11
25
  }
12
26
  /**
13
27
  * Outbound contract Guido publishes to the host's shared Pinia singleton so a
@@ -18,17 +32,11 @@ export interface GuidoEmailEditorState {
18
32
  * Published as `@useinsider/guido/editor-state` and from the root barrel, so a
19
33
  * consumer imports this store instead of re-declaring one under the same id.
20
34
  *
21
- * State + getters only, no actions. `useGuidoStateBridge` is the only intended
22
- * writer, but that is Guido's own convention rather than something the store
23
- * enforces: publishing the definition hands a consumer `$patch` as well, exactly
24
- * as the runtime `pinia._s` probe always did.
35
+ * State-only by contract: cortex-fe reads `pinia.state.value['guidoEmailEditor']`, which misses
36
+ * actions and getters. Intended writers: `useGuidoStateBridge` and `useCortexBlueprintBridge`.
25
37
  *
26
- * Store id `guidoEmailEditor` is cross-MFE: cortex-fe reads it via
27
- * `pinia._s.get('guidoEmailEditor')` at runtime rather than importing it, so the
28
- * id stays part of the contract. The internal Guido editor store keeps id
29
- * `guidoEditor` — these are intentionally separate. The internal store carries
30
- * UI state a consumer should not see; this public store carries the contract
31
- * Guido is willing to share.
38
+ * The id `guidoEmailEditor` is part of the cross-MFE contract; the internal
39
+ * store `guidoEditor` is intentionally separate.
32
40
  */
33
41
  export declare const useGuidoEmailEditorStore: import("pinia").StoreDefinition<"guidoEmailEditor", GuidoEmailEditorState, {
34
42
  /** True once the bridge has published at least one snapshot. */
@@ -37,5 +45,7 @@ export declare const useGuidoEmailEditorStore: import("pinia").StoreDefinition<"
37
45
  css: string;
38
46
  lastUpdatedAt: number;
39
47
  templateId: string;
48
+ bridgeActive: boolean;
49
+ applyAcks: Record<string, ApplyAck>;
40
50
  } & import("pinia").PiniaCustomStateProperties<GuidoEmailEditorState>) => boolean;
41
51
  }, {}>;