@designcrowd/library.brand-page 5.17.17 → 5.17.18-ast-layout

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 (62) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-C9P2zdPv.js → CreatedOnBrandCrowd-de-de-B3Kzl17t.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-DBtTxqeM.js → CreatedOnBrandCrowd-en-us-DELbE7_X.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-DC5aFDcN.js → CreatedOnBrandCrowd-es-es-rZtjzBFS.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-CNiUorYS.js → CreatedOnBrandCrowd-fr-ca-Db56MNkl.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-CNiUorYS.js → CreatedOnBrandCrowd-fr-fr-Db56MNkl.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-CuqWCZLB.js → CreatedOnBrandCrowd-pt-br-BgyU_-LR.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-CuqWCZLB.js → CreatedOnBrandCrowd-pt-pt-BgyU_-LR.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-DRyCl_4J.js → CreatedOnDcom-de-de-DC1SfcCh.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-CV2aCrWr.js → CreatedOnDcom-en-us-4nXZjUop.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-2db-EVNQ.js → CreatedOnDcom-es-es-zbJx7K9T.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-hK0aCeAJ.js → CreatedOnDcom-fr-ca-Bql0VfNS.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-cXZK46sf.js → CreatedOnDcom-fr-fr-B-b5k54k.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-DxjyLWyi.js → CreatedOnDcom-pt-br-B9KQtWm7.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-C4KIe_Nv.js → CreatedOnDcom-pt-pt-D4T1u4a1.js} +1 -1
  15. package/lib/src/brand-page/constants/font.constants.js +1 -1
  16. package/lib/src/brand-page/models/logo.model.d.ts +1 -0
  17. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +1 -1
  18. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +2 -1
  19. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +1 -0
  20. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +1 -1
  21. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +1 -1
  22. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +1 -1
  23. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +1 -1
  24. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +1 -1
  25. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +1 -1
  26. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +1 -1
  27. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.js +5 -0
  28. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +3 -2
  29. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +2 -1
  30. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +2 -1
  31. package/lib/src/clients/fabric-render-client.d.ts +7 -0
  32. package/lib/src/clients/fabric-render-client.js +4 -1
  33. package/lib/src/css/library.brand-page-brandCrowd.min.css +5 -5
  34. package/lib/src/css/library.brand-page-brandPage.min.css +5 -5
  35. package/lib/src/css/library.brand-page-designCom.min.css +5 -5
  36. package/lib/src/css/library.brand-page-preview.min.css +5 -5
  37. package/lib/src/index.mjs +1 -1
  38. package/lib/src/{lib-DD0QNGsz.js → lib-CXA7tc7k.js} +3493 -3468
  39. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +1 -1
  40. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +1 -1
  41. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +1 -1
  42. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.js +2 -1
  43. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +5 -3
  44. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +6 -4
  45. package/lib/src/shared/logo-settings/store/editable-logo-store.d.ts +5 -3
  46. package/lib/src/shared/logo-settings/store/editable-logo-store.js +52 -21
  47. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +5 -1
  48. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +10 -4
  49. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +1 -1
  50. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +1 -1
  51. package/package.json +1 -1
  52. package/src/brand-page/components/shop/ProductDetailModal.vue +3 -1
  53. package/src/brand-page/constants/font.constants.ts +1 -1
  54. package/src/brand-page/models/logo.model.ts +1 -0
  55. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +2 -0
  56. package/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.ts +5 -0
  57. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +4 -2
  58. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +3 -0
  59. package/src/clients/fabric-render-client.ts +12 -1
  60. package/src/shared/font-family-selector/FontFamilySelector.mixin.ts +5 -1
  61. package/src/shared/font-family-selector/FontPicker.vue +4 -3
  62. package/src/shared/logo-settings/store/editable-logo-store.ts +67 -18
@@ -197,6 +197,7 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
197
197
  async setStateAsync(payload: {
198
198
  newState: SetStateAsyncPayload;
199
199
  defaultPrimaryText?: string;
200
+ defaultLayout?: string;
200
201
  }) {
201
202
  this.resetLogoEdits();
202
203
  this.setLogoDraftToken(payload.newState.logoDraftToken);
@@ -205,6 +206,7 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
205
206
  const templateMetaResult = await this.postEditableLogoRequestAsync({
206
207
  returnJson: true,
207
208
  defaultPrimaryText: payload?.defaultPrimaryText,
209
+ layout: payload?.defaultLayout,
208
210
  });
209
211
 
210
212
  this.logoTemplateMetadata = templateMetaResult.metadata;
@@ -233,8 +235,14 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
233
235
 
234
236
  this.updateLogoEdit(this.logoTemplateMetadata, logoDraft?.metadata);
235
237
 
236
- await this.updateEditableLogoImageUrlAsync(defaultPrimaryText);
237
- await this.updateMetadataAsync(defaultPrimaryText);
238
+ const defaultLayout = !logoDraft ? payload?.defaultLayout : undefined;
239
+
240
+ await this.updateEditableLogoImageUrlAsync(
241
+ defaultPrimaryText,
242
+ undefined,
243
+ defaultLayout,
244
+ );
245
+ await this.updateMetadataAsync(defaultPrimaryText, false, defaultLayout);
238
246
 
239
247
  // updated logoDraft can be found at this point
240
248
  logoDraft = logoStore.getLogoDraftAssetByToken(this.logoDraftToken);
@@ -386,9 +394,14 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
386
394
  async updateEditableLogoImageUrlAsync(
387
395
  defaultPrimaryText?: string,
388
396
  overrideLogoVariation?: number | undefined,
397
+ layout?: string,
389
398
  ): Promise<void> {
390
399
  const tasks = this.editableLogoVariations.map((x) =>
391
- this.updateEditableLogoImageByVariationAsync(x, defaultPrimaryText),
400
+ this.updateEditableLogoImageByVariationAsync(
401
+ x,
402
+ defaultPrimaryText,
403
+ layout,
404
+ ),
392
405
  );
393
406
 
394
407
  await Promise.all(tasks);
@@ -434,10 +447,12 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
434
447
  async updateMetadataAsync(
435
448
  defaultPrimaryText?: string,
436
449
  resetLogoTemplateMetadata = false,
450
+ layout?: string,
437
451
  ): Promise<void> {
438
452
  const result = await this.postEditableLogoRequestAsync({
439
453
  returnJson: true,
440
454
  defaultPrimaryText,
455
+ layout,
441
456
  });
442
457
 
443
458
  if (resetLogoTemplateMetadata) {
@@ -451,12 +466,14 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
451
466
  async updateEditableLogoImageByVariationAsync(
452
467
  editableLogoVariation: EditableLogoVariation,
453
468
  defaultPrimaryText?: string,
469
+ layout?: string,
454
470
  ): Promise<ModifyLogoDataResponse | null> {
455
471
  const result = await this.postEditableLogoRequestAsync({
456
472
  returnJson: false,
457
473
  dimensionType: editableLogoVariation.dimensionType,
458
474
  variationType: editableLogoVariation.variationType,
459
475
  defaultPrimaryText,
476
+ layout,
460
477
  });
461
478
 
462
479
  if (result.base64 === 'data:,') {
@@ -540,6 +557,14 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
540
557
  return false;
541
558
  }
542
559
 
560
+ // Don't refresh while setStateAsync is still initializing —
561
+ // it resets textObjects to [] before repopulating them, so a
562
+ // refresh at that point sends empty changeRequest objects to
563
+ // the server, which returns placeholder text ("LOGO TEXT HERE").
564
+ if (this.logoEdits.textObjects.length === 0) {
565
+ return false;
566
+ }
567
+
543
568
  await this.updateEditableLogoImageUrlAsync();
544
569
 
545
570
  return true;
@@ -553,15 +578,17 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
553
578
  dimensionType: string;
554
579
  variationType: string;
555
580
  defaultPrimaryText?: string;
581
+ layout?: string;
556
582
  }): Promise<ModifyLogoDataResponse | null> {
557
583
  const logoStore = useLogoStore();
558
584
 
585
+ const hasLayout = !!payload?.layout;
586
+
559
587
  const body: ModifyLogoDataRequest = {
560
588
  returnJson: payload?.returnJson || false,
561
589
  generateS3Url: true,
562
590
  dimensionsType: payload?.dimensionType,
563
591
  variation: payload?.variationType,
564
- primaryText: payload?.defaultPrimaryText,
565
592
  logo: {
566
593
  template: {
567
594
  token: logoStore.logoTemplateAsset!.token,
@@ -590,26 +617,48 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
590
617
  },
591
618
  };
592
619
 
620
+ if (hasLayout) {
621
+ // template.placeholder + template.layout tell fabric-render's
622
+ // loadCanvasAsync to replace placeholder text and apply the 2-line
623
+ // split. These must be sent on EVERY call — without them the template
624
+ // loads with its original single-line structure.
625
+ //
626
+ // IMPORTANT: Do NOT set body.primaryText here. It goes through a
627
+ // separate code path (applyPrimaryText in applyChangeRequestAsync)
628
+ // that overrides the split result with the full business name.
629
+ body.logo.template.placeholder = {
630
+ primaryText: payload.defaultPrimaryText,
631
+ };
632
+ body.logo.template.layout = payload.layout;
633
+ body.changeRequest.layout = payload.layout;
634
+ } else {
635
+ // No layout (standard logos): send primaryText normally.
636
+ body.primaryText = payload?.defaultPrimaryText;
637
+ }
638
+
593
639
  // mapping ui object to fabric compatible objects
594
640
  this.logoEdits.textObjects.forEach((o) => {
641
+ const updates: any = {
642
+ fontFamily: o.fontFamily,
643
+ fill: o.fill,
644
+ stroke: o.outlineColor,
645
+ strokeWidth: o.outlineEnabled ? o.outlineWidth : 0,
646
+ isUppercase: o.isUppercase,
647
+ shadow: {
648
+ ...o.shadow,
649
+ blur: o.shadowEnabled ? o.shadow.blur : 0,
650
+ offsetX: o.shadowEnabled ? o.shadow.offsetX : 0,
651
+ offsetY: o.shadowEnabled ? o.shadow.offsetY : 0,
652
+ },
653
+ };
654
+
655
+ updates.textOriginal = o.text;
656
+
595
657
  body.changeRequest.objects[o.id] = {
596
658
  type: o.type,
597
659
  role: o.role,
598
660
  removed: !o.textEnabled || !o.text,
599
- updates: {
600
- fontFamily: o.fontFamily,
601
- fill: o.fill,
602
- textOriginal: o.text,
603
- stroke: o.outlineColor,
604
- strokeWidth: o.outlineEnabled ? o.outlineWidth : 0,
605
- isUppercase: o.isUppercase,
606
- shadow: {
607
- ...o.shadow,
608
- blur: o.shadowEnabled ? o.shadow.blur : 0,
609
- offsetX: o.shadowEnabled ? o.shadow.offsetX : 0,
610
- offsetY: o.shadowEnabled ? o.shadow.offsetY : 0,
611
- },
612
- },
661
+ updates,
613
662
  };
614
663
  });
615
664