@designcrowd/library.brand-page 6.1.17-ast-optional-button-1 → 6.1.17-ast-optional-button-3

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 (66) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-BY2Z3NZY.js → CreatedOnBrandCrowd-de-de-Cu_ukOxI.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-a9o3Bztc.js → CreatedOnBrandCrowd-en-us-BK04pmL9.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-Bg8SCqkB.js → CreatedOnBrandCrowd-es-es-DfREN5ib.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-N9bzJuGP.js → CreatedOnBrandCrowd-fr-ca-C0_zl1cL.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-N9bzJuGP.js → CreatedOnBrandCrowd-fr-fr-C0_zl1cL.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-ComX3scB.js → CreatedOnBrandCrowd-pt-br-CKQK6zH9.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-ComX3scB.js → CreatedOnBrandCrowd-pt-pt-CKQK6zH9.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-m-KtGGWQ.js → CreatedOnDcom-de-de-yrdfxkUi.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-8O5yFoBn.js → CreatedOnDcom-en-us-DanUrMxL.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-BtEMligL.js → CreatedOnDcom-es-es-D8d_PqxB.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-CN8NWPFk.js → CreatedOnDcom-fr-ca-C1-28hQH.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-VuC39Anm.js → CreatedOnDcom-fr-fr-DKm8kfeQ.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-CyIeNya-.js → CreatedOnDcom-pt-br-DQN8j45I.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-DUIrNGr-.js → CreatedOnDcom-pt-pt-Bq9n3MeJ.js} +1 -1
  15. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.js +4 -6
  16. package/lib/src/brand-page/components/page-header/PageHeader.mixin.js +2 -4
  17. package/lib/src/brand-page/constants/sections/header-display.constants.js +4 -0
  18. package/lib/src/brand-page/utils/context.util.d.ts +1 -0
  19. package/lib/src/brand-page/utils/context.util.js +9 -0
  20. package/lib/src/brand-page/utils/view-model.util.js +9 -2
  21. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +618 -0
  22. package/lib/src/{bundled-translations.de-DE-FhH2H_rd.js → bundled-translations.de-DE-BIFi4bYj.js} +9 -9
  23. package/lib/src/{bundled-translations.es-ES-_ZExxMi7.js → bundled-translations.es-ES-CHlKuPLO.js} +5 -5
  24. package/lib/src/{bundled-translations.fr-CA-Tg-ODIiC.js → bundled-translations.fr-CA-DR1fvm8e.js} +1 -1
  25. package/lib/src/{bundled-translations.fr-FR-C0sU51Mz.js → bundled-translations.fr-FR-DnpWVIQg.js} +9 -9
  26. package/lib/src/{bundled-translations.pt-BR-MYFIhA4u.js → bundled-translations.pt-BR-p8szTOiT.js} +17 -17
  27. package/lib/src/{bundled-translations.pt-PT-DeUBSzCB.js → bundled-translations.pt-PT-DEk39NhW.js} +22 -22
  28. package/lib/src/bundles/bundled-translations.de-DE.json +6 -1
  29. package/lib/src/bundles/bundled-translations.es-ES.json +6 -1
  30. package/lib/src/bundles/bundled-translations.fr-CA.json +6 -1
  31. package/lib/src/bundles/bundled-translations.fr-FR.json +6 -1
  32. package/lib/src/bundles/bundled-translations.pt-BR.json +6 -1
  33. package/lib/src/bundles/bundled-translations.pt-PT.json +6 -1
  34. package/lib/src/css/library.brand-page-brandCrowd.min.css +227 -168
  35. package/lib/src/css/library.brand-page-brandPage.min.css +228 -168
  36. package/lib/src/css/library.brand-page-designCom.min.css +227 -168
  37. package/lib/src/css/library.brand-page-preview.min.css +227 -168
  38. package/lib/src/index.mjs +1 -1
  39. package/lib/src/{lib-DOu6fL9i.js → lib-6Z0OQVEM.js} +16208 -16013
  40. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +76 -0
  41. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +67 -0
  42. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +3 -0
  43. package/package.json +2 -2
  44. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.ts +4 -8
  45. package/src/brand-page/components/page-header/HeaderLayout.vue +78 -92
  46. package/src/brand-page/components/page-header/PageHeader.mixin.ts +2 -4
  47. package/src/brand-page/constants/sections/header-display.constants.ts +8 -0
  48. package/src/brand-page/utils/context.util.ts +15 -0
  49. package/src/brand-page/utils/view-model.util.test.ts +11 -3
  50. package/src/brand-page/utils/view-model.util.ts +9 -2
  51. package/src/bundles/bundled-translations.de-DE.json +6 -1
  52. package/src/bundles/bundled-translations.es-ES.json +6 -1
  53. package/src/bundles/bundled-translations.fr-CA.json +6 -1
  54. package/src/bundles/bundled-translations.fr-FR.json +6 -1
  55. package/src/bundles/bundled-translations.pt-BR.json +6 -1
  56. package/src/bundles/bundled-translations.pt-PT.json +6 -1
  57. package/src/shared/page-settings/components/header-settings-panel/HeaderSettingsPanel.vue +5 -0
  58. package/src/shared/page-settings/components/page-settings-section-styles/HeaderButtonSettings.test.ts +31 -1
  59. package/src/shared/page-settings/components/page-settings-section-styles/HeaderButtonSettings.vue +17 -3
  60. package/src/shared/page-settings/components/page-settings-section-styles/HeaderDisplayStyle.test.ts +22 -6
  61. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.de-DE.json +6 -1
  62. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.es-ES.json +6 -1
  63. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.fr-CA.json +6 -1
  64. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.fr-FR.json +6 -1
  65. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.pt-BR.json +6 -1
  66. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.pt-PT.json +6 -1
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-DOu6fL9i.js";
2
+ import { _ as t } from "./lib-6Z0OQVEM.js";
3
3
  const i = {}, h = {
4
4
  width: "275",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-DOu6fL9i.js";
2
+ import { _ as t } from "./lib-6Z0OQVEM.js";
3
3
  const i = {}, h = {
4
4
  width: "251",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-DOu6fL9i.js";
2
+ import { _ as t } from "./lib-6Z0OQVEM.js";
3
3
  const i = {}, h = {
4
4
  width: "250",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-DOu6fL9i.js";
2
+ import { _ as t } from "./lib-6Z0OQVEM.js";
3
3
  const i = {}, h = {
4
4
  width: "237",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-DOu6fL9i.js";
2
+ import { _ as t } from "./lib-6Z0OQVEM.js";
3
3
  const i = {}, h = {
4
4
  width: "237",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-DOu6fL9i.js";
2
+ import { _ as t } from "./lib-6Z0OQVEM.js";
3
3
  const i = {}, h = {
4
4
  width: "263",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-DOu6fL9i.js";
2
+ import { _ as t } from "./lib-6Z0OQVEM.js";
3
3
  const i = {}, h = {
4
4
  width: "263",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-DOu6fL9i.js";
2
+ import { _ as e } from "./lib-6Z0OQVEM.js";
3
3
  const M = {}, Z = {
4
4
  width: "242",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-DOu6fL9i.js";
2
+ import { _ as e } from "./lib-6Z0OQVEM.js";
3
3
  const i = {}, M = {
4
4
  width: "231",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-DOu6fL9i.js";
2
+ import { _ as e } from "./lib-6Z0OQVEM.js";
3
3
  const M = {}, Z = {
4
4
  width: "230",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-DOu6fL9i.js";
2
+ import { _ as e } from "./lib-6Z0OQVEM.js";
3
3
  const i = {}, l = {
4
4
  width: "216",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-DOu6fL9i.js";
2
+ import { _ as e } from "./lib-6Z0OQVEM.js";
3
3
  const i = {}, l = {
4
4
  width: "216",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as M } from "./lib-DOu6fL9i.js";
2
+ import { _ as M } from "./lib-6Z0OQVEM.js";
3
3
  const Z = {}, e = {
4
4
  width: "232",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as M } from "./lib-DOu6fL9i.js";
2
+ import { _ as M } from "./lib-6Z0OQVEM.js";
3
3
  const Z = {}, e = {
4
4
  width: "232",
5
5
  height: "36",
@@ -1,5 +1,6 @@
1
1
  import { defineComponent } from 'vue';
2
2
  import { resolveSubNavItemBackgroundColor } from '../../../models';
3
+ import { guardPreviewClick } from '../../../utils/context.util';
3
4
  export default defineComponent({
4
5
  props: {
5
6
  context: {
@@ -95,14 +96,11 @@ export default defineComponent({
95
96
  closeSideMenu() {
96
97
  this.$emit('close-side-menu');
97
98
  },
98
- // Preview: inert (same guard as onHeaderCtaClick); published: follow link, close the side menu.
99
+ // Preview: inert; published: follow the link and close the side menu behind it.
99
100
  onSideMenuCtaClick(event) {
100
- if (this.context.isPreview) {
101
- event.preventDefault();
102
- event.stopPropagation();
103
- return;
101
+ if (!guardPreviewClick(event, this.context)) {
102
+ this.closeSideMenu();
104
103
  }
105
- this.closeSideMenu();
106
104
  },
107
105
  toggleExpanded(pageId) {
108
106
  const isCurrentlyExpanded = this.expandedItems[pageId];
@@ -1,6 +1,7 @@
1
1
  import { defineComponent } from 'vue';
2
2
  import { LOGO_SLIDER_DESKTOP_MAX } from '../../constants';
3
3
  import { hasVisibleNavigation } from '../../utils/route.util';
4
+ import { guardPreviewClick } from '../../utils/context.util';
4
5
  export default defineComponent({
5
6
  props: {
6
7
  navId: {
@@ -48,10 +49,7 @@ export default defineComponent({
48
49
  },
49
50
  // Preview only: deliberately inert — no link-follow, no Header Settings open.
50
51
  onHeaderCtaClick(event) {
51
- if (this.context.isPreview) {
52
- event.preventDefault();
53
- event.stopPropagation();
54
- }
52
+ guardPreviewClick(event, this.context);
55
53
  },
56
54
  },
57
55
  });
@@ -178,6 +178,7 @@ export const HEADER_DISPLAY_STYLE_CONFIGS = [
178
178
  dataAttribute: HEADER_DISPLAY.DESKTOP_HAMBURGER_1,
179
179
  isSelected: false,
180
180
  },
181
+ withButtonIconName: 'header-desktop-nav-style-hamburger-display-style-with-button-1',
181
182
  },
182
183
  {
183
184
  viewMode: 'desktop',
@@ -196,6 +197,7 @@ export const HEADER_DISPLAY_STYLE_CONFIGS = [
196
197
  dataAttribute: HEADER_DISPLAY.DESKTOP_HAMBURGER_2,
197
198
  isSelected: false,
198
199
  },
200
+ withButtonIconName: 'header-desktop-nav-style-hamburger-display-style-with-button-2',
199
201
  },
200
202
  // desktop - hamburger no logo
201
203
  {
@@ -265,6 +267,7 @@ export const HEADER_DISPLAY_STYLE_CONFIGS = [
265
267
  dataAttribute: HEADER_DISPLAY.MOBILE_TAB_1,
266
268
  isSelected: false,
267
269
  },
270
+ withButtonIconName: 'header-mobile-nav-style-tab-display-style-with-button-1',
268
271
  },
269
272
  {
270
273
  viewMode: 'mobile',
@@ -278,6 +281,7 @@ export const HEADER_DISPLAY_STYLE_CONFIGS = [
278
281
  dataAttribute: HEADER_DISPLAY.MOBILE_TAB_2,
279
282
  isSelected: false,
280
283
  },
284
+ withButtonIconName: 'header-mobile-nav-style-tab-display-style-with-button-2',
281
285
  },
282
286
  // mobile - tab with no logo
283
287
  {
@@ -8,3 +8,4 @@ export declare const getSlugFromContext: (context: BrandPageContext) => string;
8
8
  * placeholders) must keep reading `context.isPreview` directly.
9
9
  */
10
10
  export declare const isPreviewMode: (context: BrandPageContext) => boolean;
11
+ export declare const guardPreviewClick: (event: MouseEvent, context: BrandPageContext) => boolean;
@@ -12,3 +12,12 @@ export const getSlugFromContext = (context) => {
12
12
  * placeholders) must keep reading `context.isPreview` directly.
13
13
  */
14
14
  export const isPreviewMode = (context) => !!(context.isPreview || context.isLivePreview);
15
+ // Blocks a click in the maker preview (no link-follow, no bubbling); true when it fired.
16
+ export const guardPreviewClick = (event, context) => {
17
+ if (!context.isPreview) {
18
+ return false;
19
+ }
20
+ event.preventDefault();
21
+ event.stopPropagation();
22
+ return true;
23
+ };
@@ -699,7 +699,8 @@ const HEADER_BUTTON_LINK_ROLES = {
699
699
  [BUTTON_LINK_TYPE.tel]: 'phone',
700
700
  };
701
701
  const mapToHeaderButtonViewModel = (headerButton, styles) => {
702
- if (!headerButton?.isVisible) {
702
+ // No label means no button — hidden in preview and on the published site.
703
+ if (!headerButton?.isVisible || !headerButton.text?.trim()) {
703
704
  return undefined;
704
705
  }
705
706
  const titleStyle = headerButton.buttonTextStyle ?? {
@@ -713,7 +714,7 @@ const mapToHeaderButtonViewModel = (headerButton, styles) => {
713
714
  iconUrl: '',
714
715
  modalImageUrl: '',
715
716
  colorReplacements: [],
716
- title: headerButton.text?.trim() ?? '',
717
+ title: headerButton.text.trim(),
717
718
  titleStyle,
718
719
  url: headerButton.url ?? '',
719
720
  page: headerButton.buttonPageId ?? '',
@@ -721,6 +722,12 @@ const mapToHeaderButtonViewModel = (headerButton, styles) => {
721
722
  }, styles, { titleStyle });
722
723
  return {
723
724
  ...viewModel,
725
+ // A wrapped label justifies; the last (or only) line stays centered like a short label.
726
+ titleStyle: {
727
+ ...viewModel.titleStyle,
728
+ textAlign: 'justify',
729
+ textAlignLast: 'center',
730
+ },
724
731
  styles: {
725
732
  ...viewModel.styles,
726
733
  style: {