@designcrowd/library.brand-page 6.1.10 → 6.1.11

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 (103) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-nsMF2NQ9.js → CreatedOnBrandCrowd-de-de-DToCz9Tp.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-BQI_UCR7.js → CreatedOnBrandCrowd-en-us-CrjiEGmM.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-DgNOoSPn.js → CreatedOnBrandCrowd-es-es-DgVVM-Df.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-JFRaxjvx.js → CreatedOnBrandCrowd-fr-ca-C_oKH8iu.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-JFRaxjvx.js → CreatedOnBrandCrowd-fr-fr-C_oKH8iu.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-DP6_-90i.js → CreatedOnBrandCrowd-pt-br-DRvHblvI.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-DP6_-90i.js → CreatedOnBrandCrowd-pt-pt-DRvHblvI.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-07F2wjkk.js → CreatedOnDcom-de-de-uCIRFQYA.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-DaV9sa6e.js → CreatedOnDcom-en-us-DfbhIoId.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-73uOymvv.js → CreatedOnDcom-es-es-CipmOU1-.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-Ci9Ome30.js → CreatedOnDcom-fr-ca-B5Cq9iJK.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-DLHuMHfE.js → CreatedOnDcom-fr-fr-DIvycPcx.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-Fbt7tY-E.js → CreatedOnDcom-pt-br-BQ3EajZC.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-V2jTB6of.js → CreatedOnDcom-pt-pt-DchaL_tP.js} +1 -1
  15. package/lib/src/brand-page/constants/index.d.ts +1 -0
  16. package/lib/src/brand-page/constants/index.js +1 -0
  17. package/lib/src/brand-page/constants/sections/header-display.constants.d.ts +2 -1
  18. package/lib/src/brand-page/constants/sections/header-display.constants.js +24 -24
  19. package/lib/src/brand-page/constants/sections/navigation-type.constants.d.ts +9 -0
  20. package/lib/src/brand-page/constants/sections/navigation-type.constants.js +33 -0
  21. package/lib/src/brand-page/models/index.d.ts +1 -1
  22. package/lib/src/brand-page/models/index.js +6 -6
  23. package/lib/src/brand-page/utils/container-text-color.util.d.ts +7 -4
  24. package/lib/src/brand-page/utils/container-text-color.util.js +11 -6
  25. package/lib/src/brand-page/utils/migration/migration-21.js +62 -0
  26. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +1 -0
  27. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +1 -0
  28. package/lib/src/brand-page-maker/models/navigation-style-configs.d.ts +1 -0
  29. package/lib/src/brand-page-maker/models/navigation-style-configs.js +31 -7
  30. package/lib/src/{bundled-translations-C98dISr1.js → bundled-translations-BiFAlQdC.js} +21 -21
  31. package/lib/src/{bundled-translations.de-DE-D8ul_G4P.js → bundled-translations.de-DE-DuRWnOP-.js} +14 -14
  32. package/lib/src/{bundled-translations.es-ES-BVmPyfw9.js → bundled-translations.es-ES-CokHdZtW.js} +17 -17
  33. package/lib/src/{bundled-translations.fr-CA-DmzKPhfa.js → bundled-translations.fr-CA-CJcMmubA.js} +1 -1
  34. package/lib/src/{bundled-translations.fr-FR-CQRiASGY.js → bundled-translations.fr-FR-DYPup8fJ.js} +1 -1
  35. package/lib/src/{bundled-translations.pt-BR-guDO9Yfg.js → bundled-translations.pt-BR-GSsp1kuV.js} +1 -1
  36. package/lib/src/{bundled-translations.pt-PT-GFpLNo-u.js → bundled-translations.pt-PT-DbkY8UQ3.js} +9 -9
  37. package/lib/src/bundles/bundled-translations.de-DE.json +5 -0
  38. package/lib/src/bundles/bundled-translations.es-ES.json +5 -0
  39. package/lib/src/bundles/bundled-translations.fr-CA.json +5 -0
  40. package/lib/src/bundles/bundled-translations.fr-FR.json +5 -0
  41. package/lib/src/bundles/bundled-translations.json +5 -0
  42. package/lib/src/bundles/bundled-translations.pt-BR.json +5 -0
  43. package/lib/src/bundles/bundled-translations.pt-PT.json +5 -0
  44. package/lib/src/css/library.brand-page-brandCrowd.min.css +185 -63
  45. package/lib/src/css/library.brand-page-brandPage.min.css +190 -63
  46. package/lib/src/css/library.brand-page-designCom.min.css +185 -63
  47. package/lib/src/css/library.brand-page-preview.min.css +185 -63
  48. package/lib/src/index.mjs +1 -1
  49. package/lib/src/{lib-D2a1EmRb.js → lib-zpGnKGKw.js} +32747 -32191
  50. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +1 -0
  51. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +1 -0
  52. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +1 -0
  53. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +1 -0
  54. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +1 -0
  55. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.d.ts +1 -0
  56. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +1 -0
  57. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +4 -1
  58. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.js +15 -1
  59. package/lib/src/shared/page-settings/store/page-settings-store.d.ts +6 -0
  60. package/lib/src/shared/page-settings/store/page-settings-store.js +22 -1
  61. package/package.json +2 -2
  62. package/src/brand-page/constants/index.ts +1 -0
  63. package/src/brand-page/constants/sections/header-display.constants.ts +26 -25
  64. package/src/brand-page/constants/sections/navigation-type.constants.test.ts +53 -0
  65. package/src/brand-page/constants/sections/navigation-type.constants.ts +48 -0
  66. package/src/brand-page/models/footer-icon-color.test.ts +38 -102
  67. package/src/brand-page/models/index.ts +6 -9
  68. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +6 -6
  69. package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +2 -6
  70. package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +4 -12
  71. package/src/brand-page/utils/container-text-color.util.test.ts +16 -0
  72. package/src/brand-page/utils/container-text-color.util.ts +15 -6
  73. package/src/brand-page/utils/migration/migration-21.test.ts +169 -0
  74. package/src/brand-page/utils/migration/migration-21.ts +75 -0
  75. package/src/brand-page-maker/models/i18n/models.de-DE.json +3 -0
  76. package/src/brand-page-maker/models/i18n/models.es-ES.json +3 -0
  77. package/src/brand-page-maker/models/i18n/models.fr-CA.json +3 -0
  78. package/src/brand-page-maker/models/i18n/models.fr-FR.json +3 -0
  79. package/src/brand-page-maker/models/i18n/models.json +3 -0
  80. package/src/brand-page-maker/models/i18n/models.pt-BR.json +3 -0
  81. package/src/brand-page-maker/models/i18n/models.pt-PT.json +3 -0
  82. package/src/brand-page-maker/models/navigation-style-configs.ts +32 -6
  83. package/src/bundles/bundled-translations.de-DE.json +5 -0
  84. package/src/bundles/bundled-translations.es-ES.json +5 -0
  85. package/src/bundles/bundled-translations.fr-CA.json +5 -0
  86. package/src/bundles/bundled-translations.fr-FR.json +5 -0
  87. package/src/bundles/bundled-translations.json +5 -0
  88. package/src/bundles/bundled-translations.pt-BR.json +5 -0
  89. package/src/bundles/bundled-translations.pt-PT.json +5 -0
  90. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.vue +0 -6
  91. package/src/shared/page-settings/components/header-settings-panel/HeaderSettingsPanel.vue +8 -0
  92. package/src/shared/page-settings/components/page-settings-section-styles/HeaderNavigationStyle.vue +95 -0
  93. package/src/shared/page-settings/components/page-settings-section-styles/HeaderNavigationType.vue +26 -14
  94. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.ts +33 -1
  95. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.de-DE.json +10 -7
  96. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.es-ES.json +10 -7
  97. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.fr-CA.json +10 -7
  98. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.fr-FR.json +10 -7
  99. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.json +3 -0
  100. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.pt-BR.json +10 -7
  101. package/src/shared/page-settings/components/page-settings-section-styles/i18n/page-settings-section.pt-PT.json +10 -7
  102. package/src/shared/page-settings/store/page-settings-store.test.ts +97 -0
  103. package/src/shared/page-settings/store/page-settings-store.ts +36 -1
@@ -10,6 +10,9 @@
10
10
  "iconBackgroundColor": "Symbolhintergrundfarbe",
11
11
  "subNavBackgroundColor": "Hintergrundfarbe der Unternavigation",
12
12
 
13
+ "navigationTypeBar": "Navigationsleiste",
14
+ "navigationTypeHamburger": "Hamburger-Menü",
15
+
13
16
  "allDisplayName": "Alle",
14
17
  "generalDisplayName": "Allgemein",
15
18
  "socialLinksDisplayName": "Social Media",
@@ -10,6 +10,9 @@
10
10
  "iconBackgroundColor": "Color de fondo del icono",
11
11
  "subNavBackgroundColor": "Color de fondo del submenú",
12
12
 
13
+ "navigationTypeBar": "Barra de navegación",
14
+ "navigationTypeHamburger": "Menú de hamburguesas",
15
+
13
16
  "allDisplayName": "Todo",
14
17
  "generalDisplayName": "General",
15
18
  "socialLinksDisplayName": "Redes sociales",
@@ -10,6 +10,9 @@
10
10
  "iconBackgroundColor": "Couleur d’arrière-plan de l’icône",
11
11
  "subNavBackgroundColor": "Couleur de fond de sous-navigation",
12
12
 
13
+ "navigationTypeBar": "Barre de navigation",
14
+ "navigationTypeHamburger": "Menu hamburger",
15
+
13
16
  "allDisplayName": "Tous",
14
17
  "generalDisplayName": "Général",
15
18
  "socialLinksDisplayName": "Réseaux sociaux",
@@ -10,6 +10,9 @@
10
10
  "iconBackgroundColor": "Couleur d’arrière-plan de l’icône",
11
11
  "subNavBackgroundColor": "Couleur d’arrière-plan de la sous-navigation",
12
12
 
13
+ "navigationTypeBar": "Barre de navigation",
14
+ "navigationTypeHamburger": "Menu hamburger",
15
+
13
16
  "allDisplayName": "Tous",
14
17
  "generalDisplayName": "Général",
15
18
  "socialLinksDisplayName": "Réseaux sociaux",
@@ -10,6 +10,9 @@
10
10
  "iconBackgroundColor": "Icon background color",
11
11
  "subNavBackgroundColor": "Sub nav background color",
12
12
 
13
+ "navigationTypeBar": "Navigation bar",
14
+ "navigationTypeHamburger": "Hamburger menu",
15
+
13
16
  "allDisplayName": "all",
14
17
  "generalDisplayName": "General",
15
18
  "socialLinksDisplayName": "Socials",
@@ -10,6 +10,9 @@
10
10
  "iconBackgroundColor": "Cor de fundo do ícone",
11
11
  "subNavBackgroundColor": "Cor de fundo da subnavegação",
12
12
 
13
+ "navigationTypeBar": "Barra de navegação",
14
+ "navigationTypeHamburger": "Menu de hambúrguer",
15
+
13
16
  "allDisplayName": "tudo",
14
17
  "generalDisplayName": "Geral",
15
18
  "socialLinksDisplayName": "Redes sociais",
@@ -10,6 +10,9 @@
10
10
  "iconBackgroundColor": "Cor de fundo do ícone",
11
11
  "subNavBackgroundColor": "Cor de fundo da navegação inferior",
12
12
 
13
+ "navigationTypeBar": "Barra de navegação",
14
+ "navigationTypeHamburger": "Menu hambúrguer",
15
+
13
16
  "allDisplayName": "Tudo",
14
17
  "generalDisplayName": "Geral",
15
18
  "socialLinksDisplayName": "Redes sociais",
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  defaultHamburgerNavigation,
3
3
  NAVIGATION_DISPLAY,
4
+ NAVIGATION_TYPE,
4
5
  FONT_FAMILY_CONFIGS,
5
6
  DEFAULT_FONT_FAMILY_KEY,
6
7
  FONT_SIZE_BODY,
@@ -108,7 +109,8 @@ export const availableNavigationStyleConfigs: NavigationStyleConfig[] = [
108
109
  buttonGroupOption: {
109
110
  value: NAVIGATION_DISPLAY.TAB_1,
110
111
  iconName: 'nav-style-tab-display-style-1',
111
- iconViewBox: '0 0 94 50',
112
+ iconViewBox: '0 0 160 56',
113
+ dataAttribute: 'data-nav-style-tab-1',
112
114
  isSelected: false,
113
115
  },
114
116
  renderAfterLogo: false,
@@ -145,7 +147,8 @@ export const availableNavigationStyleConfigs: NavigationStyleConfig[] = [
145
147
  buttonGroupOption: {
146
148
  value: NAVIGATION_DISPLAY.TAB_2,
147
149
  iconName: 'nav-style-tab-display-style-2',
148
- iconViewBox: '0 0 94 50',
150
+ iconViewBox: '0 0 160 56',
151
+ dataAttribute: 'data-nav-style-tab-2',
149
152
  isSelected: false,
150
153
  },
151
154
  renderAfterLogo: false,
@@ -157,7 +160,8 @@ export const availableNavigationStyleConfigs: NavigationStyleConfig[] = [
157
160
  buttonGroupOption: {
158
161
  value: NAVIGATION_DISPLAY.HAMBURGER_1,
159
162
  iconName: 'nav-style-hamburger-display-style-1',
160
- iconViewBox: '0 0 94 50',
163
+ iconViewBox: '0 0 33 33',
164
+ dataAttribute: 'data-nav-style-hamburger-1',
161
165
  isSelected: false,
162
166
  },
163
167
  renderAfterLogo: false,
@@ -168,7 +172,8 @@ export const availableNavigationStyleConfigs: NavigationStyleConfig[] = [
168
172
  buttonGroupOption: {
169
173
  value: NAVIGATION_DISPLAY.HAMBURGER_2,
170
174
  iconName: 'nav-style-hamburger-display-style-2',
171
- iconViewBox: '0 0 94 50',
175
+ iconViewBox: '0 0 33 33',
176
+ dataAttribute: 'data-nav-style-hamburger-2',
172
177
  isSelected: false,
173
178
  },
174
179
  renderAfterLogo: false,
@@ -179,7 +184,8 @@ export const availableNavigationStyleConfigs: NavigationStyleConfig[] = [
179
184
  buttonGroupOption: {
180
185
  value: NAVIGATION_DISPLAY.HAMBURGER_3,
181
186
  iconName: 'nav-style-hamburger-display-style-3',
182
- iconViewBox: '0 0 94 50',
187
+ iconViewBox: '0 0 33 33',
188
+ dataAttribute: 'data-nav-style-hamburger-3',
183
189
  isSelected: false,
184
190
  },
185
191
  renderAfterLogo: false,
@@ -190,13 +196,33 @@ export const availableNavigationStyleConfigs: NavigationStyleConfig[] = [
190
196
  buttonGroupOption: {
191
197
  value: NAVIGATION_DISPLAY.HAMBURGER_4,
192
198
  iconName: 'nav-style-hamburger-display-style-4',
193
- iconViewBox: '0 0 94 50',
199
+ iconViewBox: '0 0 33 33',
200
+ dataAttribute: 'data-nav-style-hamburger-4',
194
201
  isSelected: false,
195
202
  },
196
203
  renderAfterLogo: false,
197
204
  },
198
205
  ];
199
206
 
207
+ export const navigationTypeOptions = (): ButtonGroupOption[] => [
208
+ {
209
+ value: NAVIGATION_TYPE.bar,
210
+ iconName: 'nav-style-type-bar',
211
+ iconViewBox: '0 0 160 28',
212
+ title: modelsTr('navigationTypeBar'),
213
+ dataAttribute: 'data-nav-type-bar',
214
+ isSelected: false,
215
+ },
216
+ {
217
+ value: NAVIGATION_TYPE.hamburger,
218
+ iconName: 'nav-style-type-hamburger',
219
+ iconViewBox: '0 0 160 28',
220
+ title: modelsTr('navigationTypeHamburger'),
221
+ dataAttribute: 'data-nav-type-hamburger',
222
+ isSelected: false,
223
+ },
224
+ ];
225
+
200
226
  export interface NavigationStylesTypeConfig {
201
227
  type: PageSection;
202
228
  isLogoFieldsOptional: boolean;
@@ -1274,6 +1274,8 @@
1274
1274
  "iconColor": "Symbolfarbe",
1275
1275
  "iconBackgroundColor": "Symbolhintergrundfarbe",
1276
1276
  "subNavBackgroundColor": "Hintergrundfarbe der Unternavigation",
1277
+ "navigationTypeBar": "Navigationsleiste",
1278
+ "navigationTypeHamburger": "Hamburger-Menü",
1277
1279
  "allDisplayName": "Alle",
1278
1280
  "generalDisplayName": "Allgemein",
1279
1281
  "socialLinksDisplayName": "Social Media",
@@ -1859,6 +1861,9 @@
1859
1861
  "showNavigationBelow": "Navigation unter dem Logo anzeigen",
1860
1862
  "previewDescription": "Eine Vorschau ist für diese Bildschirmgröße nicht verfügbar.",
1861
1863
  "navigationStyle": "Navigationsstil",
1864
+ "navigationType": "Navigationstyp",
1865
+ "menuStyle": "Menüstil",
1866
+ "iconStyle": "Symbol-Stil",
1862
1867
  "logoSize": "Logogröße",
1863
1868
  "socialLinks": "Social-Media-Links",
1864
1869
  "copyright": "Copyright"
@@ -1274,6 +1274,8 @@
1274
1274
  "iconColor": "Color del icono",
1275
1275
  "iconBackgroundColor": "Color de fondo del icono",
1276
1276
  "subNavBackgroundColor": "Color de fondo del submenú",
1277
+ "navigationTypeBar": "Barra de navegación",
1278
+ "navigationTypeHamburger": "Menú de hamburguesas",
1277
1279
  "allDisplayName": "Todo",
1278
1280
  "generalDisplayName": "General",
1279
1281
  "socialLinksDisplayName": "Redes sociales",
@@ -1859,6 +1861,9 @@
1859
1861
  "showNavigationBelow": "Muestra la navegación debajo del logo",
1860
1862
  "previewDescription": "La vista previa no está disponible en este tamaño de pantalla.",
1861
1863
  "navigationStyle": "Estilo de navegación",
1864
+ "navigationType": "Tipo de navegación",
1865
+ "menuStyle": "Estilo de menú",
1866
+ "iconStyle": "Estilo de icono",
1862
1867
  "logoSize": "Tamaño del logo",
1863
1868
  "socialLinks": "Enlaces a redes sociales",
1864
1869
  "copyright": "Derechos de autor"
@@ -1274,6 +1274,8 @@
1274
1274
  "iconColor": "Couleur de l'icône",
1275
1275
  "iconBackgroundColor": "Couleur d’arrière-plan de l’icône",
1276
1276
  "subNavBackgroundColor": "Couleur de fond de sous-navigation",
1277
+ "navigationTypeBar": "Barre de navigation",
1278
+ "navigationTypeHamburger": "Menu hamburger",
1277
1279
  "allDisplayName": "Tous",
1278
1280
  "generalDisplayName": "Général",
1279
1281
  "socialLinksDisplayName": "Réseaux sociaux",
@@ -1859,6 +1861,9 @@
1859
1861
  "showNavigationBelow": "Afficher la navigation sous le logo",
1860
1862
  "previewDescription": "L'aperçu n'est pas disponible pour cette taille d'écran.",
1861
1863
  "navigationStyle": "Style de navigation",
1864
+ "navigationType": "Type de navigation",
1865
+ "menuStyle": "Style de menu",
1866
+ "iconStyle": "Style d'icône",
1862
1867
  "logoSize": "Taille du logo",
1863
1868
  "socialLinks": "Liens vers les réseaux sociaux",
1864
1869
  "copyright": "Droits d’auteur"
@@ -1274,6 +1274,8 @@
1274
1274
  "iconColor": "Couleur de l'icône",
1275
1275
  "iconBackgroundColor": "Couleur d’arrière-plan de l’icône",
1276
1276
  "subNavBackgroundColor": "Couleur d’arrière-plan de la sous-navigation",
1277
+ "navigationTypeBar": "Barre de navigation",
1278
+ "navigationTypeHamburger": "Menu hamburger",
1277
1279
  "allDisplayName": "Tous",
1278
1280
  "generalDisplayName": "Général",
1279
1281
  "socialLinksDisplayName": "Réseaux sociaux",
@@ -1859,6 +1861,9 @@
1859
1861
  "showNavigationBelow": "Afficher la navigation sous le logo",
1860
1862
  "previewDescription": "L'aperçu n'est pas disponible pour cette taille d'écran.",
1861
1863
  "navigationStyle": "Style de navigation",
1864
+ "navigationType": "Type de navigation",
1865
+ "menuStyle": "Style de menu",
1866
+ "iconStyle": "Style d'icône",
1862
1867
  "logoSize": "Taille du logo",
1863
1868
  "socialLinks": "Liens vers les réseaux sociaux",
1864
1869
  "copyright": "Droits d’auteur"
@@ -1274,6 +1274,8 @@
1274
1274
  "iconColor": "Icon color",
1275
1275
  "iconBackgroundColor": "Icon background color",
1276
1276
  "subNavBackgroundColor": "Sub nav background color",
1277
+ "navigationTypeBar": "Navigation bar",
1278
+ "navigationTypeHamburger": "Hamburger menu",
1277
1279
  "allDisplayName": "all",
1278
1280
  "generalDisplayName": "General",
1279
1281
  "socialLinksDisplayName": "Socials",
@@ -1859,6 +1861,9 @@
1859
1861
  "showNavigationBelow": "Show navigation below logo",
1860
1862
  "previewDescription": "Preview is not available on this screen size.",
1861
1863
  "navigationStyle": "Navigation style",
1864
+ "navigationType": "Navigation type",
1865
+ "menuStyle": "Menu style",
1866
+ "iconStyle": "Icon style",
1862
1867
  "logoSize": "Logo Size",
1863
1868
  "socialLinks": "Social Links",
1864
1869
  "copyright": "Copyright"
@@ -1274,6 +1274,8 @@
1274
1274
  "iconColor": "Cor do ícone",
1275
1275
  "iconBackgroundColor": "Cor de fundo do ícone",
1276
1276
  "subNavBackgroundColor": "Cor de fundo da subnavegação",
1277
+ "navigationTypeBar": "Barra de navegação",
1278
+ "navigationTypeHamburger": "Menu de hambúrguer",
1277
1279
  "allDisplayName": "tudo",
1278
1280
  "generalDisplayName": "Geral",
1279
1281
  "socialLinksDisplayName": "Redes sociais",
@@ -1859,6 +1861,9 @@
1859
1861
  "showNavigationBelow": "Mostrar navegação abaixo do logotipo",
1860
1862
  "previewDescription": "A visualização não está disponível neste tamanho de tela.",
1861
1863
  "navigationStyle": "Estilo de navegação",
1864
+ "navigationType": "Tipo de navegação",
1865
+ "menuStyle": "Estilo de menu",
1866
+ "iconStyle": "Estilo de ícone",
1862
1867
  "logoSize": "Tamanho do logotipo",
1863
1868
  "socialLinks": "Links de redes sociais",
1864
1869
  "copyright": "Direitos autorais"
@@ -1274,6 +1274,8 @@
1274
1274
  "iconColor": "Cor do ícone",
1275
1275
  "iconBackgroundColor": "Cor de fundo do ícone",
1276
1276
  "subNavBackgroundColor": "Cor de fundo da navegação inferior",
1277
+ "navigationTypeBar": "Barra de navegação",
1278
+ "navigationTypeHamburger": "Menu hambúrguer",
1277
1279
  "allDisplayName": "Tudo",
1278
1280
  "generalDisplayName": "Geral",
1279
1281
  "socialLinksDisplayName": "Redes sociais",
@@ -1859,6 +1861,9 @@
1859
1861
  "showNavigationBelow": "Mostrar a navegação por baixo do logótipo",
1860
1862
  "previewDescription": "A pré-visualização não está disponível neste tamanho de ecrã.",
1861
1863
  "navigationStyle": "Estilo de navegação",
1864
+ "navigationType": "Tipo de navegação",
1865
+ "menuStyle": "Estilo de menu",
1866
+ "iconStyle": "Estilo de Ícone",
1862
1867
  "logoSize": "Tamanho do logótipo",
1863
1868
  "socialLinks": "Links de redes sociais",
1864
1869
  "copyright": "Direitos de autor"
@@ -2,12 +2,6 @@
2
2
  <div data-component="navigation-style-settings">
3
3
  <!-- Start text style fields -->
4
4
  <div class="tw-mb-4">
5
- <span
6
- class="tw-font-sans tw-font-bold tw-text-secondary-800 tw-text-sm tw-mb-2"
7
- >
8
- {{ commonTr('fontSettings') }}
9
- </span>
10
-
11
5
  <TextStyleField
12
6
  v-show="value.displayType.includes('hamburger')"
13
7
  id="navigation-hamburger-default-button-style"
@@ -27,7 +27,13 @@
27
27
  @changed="toggleSectionCollapsed('navigation')"
28
28
  >
29
29
  <HeaderNavigationType
30
+ :navigation-type="navigationType"
31
+ :on-select="handleHeaderNavigationTypeChange"
32
+ />
33
+
34
+ <HeaderNavigationStyle
30
35
  :navigation-display-type="navigation.displayType"
36
+ :navigation-type="navigationType"
31
37
  :available-navigation-style-configs="availableNavigationStyleConfigs"
32
38
  :on-select="handleHeaderNavigationDisplayTypeChange"
33
39
  />
@@ -144,6 +150,7 @@ import {
144
150
  import PageSettingsSectionStyleMixin from '../page-settings-section-styles/PageSettingsSectionStyles.mixin.ts';
145
151
  import HeaderDisplayStyle from '../page-settings-section-styles/HeaderDisplayStyle.vue';
146
152
  import HeaderNavigationType from '../page-settings-section-styles/HeaderNavigationType.vue';
153
+ import HeaderNavigationStyle from '../page-settings-section-styles/HeaderNavigationStyle.vue';
147
154
  import NavigationStyleSettings from '../../../navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.vue';
148
155
  import ColorField from '../../../content-settings/components/color-field/ColorField.vue';
149
156
  import LogoSelection from '@shared/content-settings/components/logo-selection-field/LogoSelection.vue';
@@ -160,6 +167,7 @@ export default {
160
167
  Toggle,
161
168
  HeaderDisplayStyle,
162
169
  HeaderNavigationType,
170
+ HeaderNavigationStyle,
163
171
  NavigationStyleSettings,
164
172
  LogoSelection,
165
173
  LogoSizeSlider,
@@ -0,0 +1,95 @@
1
+ <template>
2
+ <div
3
+ v-if="options.length > 1"
4
+ data-component="header-navigation-style"
5
+ class="tw-w-full tw-mb-4"
6
+ >
7
+ <p
8
+ class="tw-font-sans tw-font-bold tw-text-secondary-800 tw-text-sm tw-mb-2"
9
+ >
10
+ {{ tr(`pageSettingsSection.${sectionLabelKey}`) }}
11
+ </p>
12
+ <ButtonGroup
13
+ variant="icon"
14
+ :columns="numOfColumns"
15
+ btn-style-variant="compressed"
16
+ :options="options"
17
+ class="tw-w-full"
18
+ :class="{ 'icon-style-options': isHamburgerType }"
19
+ @on-select="handleSelect"
20
+ />
21
+ </div>
22
+ </template>
23
+ <script setup lang="ts">
24
+ import { computed } from 'vue';
25
+ import { ButtonGroup } from '@designcrowd/fe-shared-lib';
26
+ import { getNavigationType, NAVIGATION_TYPE } from '@brand-page';
27
+ import type { NavigationType } from '@brand-page';
28
+ import type { NavigationStyleConfig } from '@brand-page-maker/models/navigation-style-configs';
29
+ import type { ButtonGroupOption } from '@brand-page-maker/models/button-group.model';
30
+ import { tr } from '@src/composables/useTranslate';
31
+
32
+ interface Props {
33
+ availableNavigationStyleConfigs: NavigationStyleConfig[];
34
+ navigationDisplayType: string;
35
+ navigationType: NavigationType;
36
+ onSelect: (navigationDisplayType: string) => void;
37
+ }
38
+
39
+ const props = defineProps<Props>();
40
+
41
+ const options = computed(() =>
42
+ props.availableNavigationStyleConfigs
43
+ .filter(
44
+ (config) =>
45
+ getNavigationType(config.displayType) === props.navigationType,
46
+ )
47
+ .map((config) => ({
48
+ ...config.buttonGroupOption,
49
+ isSelected:
50
+ props.navigationDisplayType === config.buttonGroupOption.value,
51
+ })),
52
+ );
53
+
54
+ const isHamburgerType = computed(
55
+ () => props.navigationType === NAVIGATION_TYPE.hamburger,
56
+ );
57
+
58
+ const sectionLabelKey = computed(() =>
59
+ isHamburgerType.value ? 'iconStyle' : 'menuStyle',
60
+ );
61
+
62
+ const numOfColumns = computed(() => options.value.length);
63
+
64
+ const handleSelect = (option: ButtonGroupOption) => {
65
+ props.onSelect(option.value);
66
+ };
67
+ </script>
68
+ <style scoped>
69
+ /* Icon-style boxes follow Figma's 84x56 proportion and scale with the sidebar:
70
+ the grid's 1fr columns set the width, aspect-ratio keeps the 3:2 box, and the
71
+ icon is sized as a width percentage (Figma: 32px icon / 60px content = 53.33%).
72
+ Width percentages (not a height:100% chain) because iOS Safari doesn't resolve
73
+ percentage heights inside aspect-ratio boxes — the icon blew up to full tile
74
+ width on mobile. Only the 12px padding is a fixed value. */
75
+ .icon-style-options :deep(button) {
76
+ display: flex;
77
+ align-items: center;
78
+ justify-content: center;
79
+ aspect-ratio: 3 / 2;
80
+ padding: 12px !important;
81
+ }
82
+
83
+ .icon-style-options :deep(button div) {
84
+ width: 100%;
85
+ }
86
+
87
+ /* `div > svg` targets only the outer Icon svg (the nested inner svg's parent
88
+ is an svg), so the percentage isn't applied twice. */
89
+ .icon-style-options :deep(button div > svg) {
90
+ display: block;
91
+ width: 50%;
92
+ height: auto;
93
+ margin: 0 auto;
94
+ }
95
+ </style>
@@ -1,16 +1,20 @@
1
1
  <template>
2
- <div data-component="header-navigation-type" class="tw-w-full tw-mb-2">
2
+ <div
3
+ data-component="header-navigation-type"
4
+ class="tw-w-full tw-mt-2 tw-mb-4"
5
+ >
3
6
  <p
4
7
  class="tw-font-sans tw-font-bold tw-text-secondary-800 tw-text-sm tw-mb-2"
5
8
  >
6
- {{ tr('pageSettingsSection.navigationStyle') }}
9
+ {{ tr('pageSettingsSection.navigationType') }}
7
10
  </p>
8
11
  <ButtonGroup
9
12
  variant="icon"
10
- :columns="3"
13
+ :columns="2"
11
14
  btn-style-variant="compressed"
15
+ :title-inside-button="true"
12
16
  :options="options"
13
- class="tw-w-full"
17
+ class="tw-w-full navigation-type-options"
14
18
  @on-select="handleSelect"
15
19
  />
16
20
  </div>
@@ -18,27 +22,35 @@
18
22
  <script setup lang="ts">
19
23
  import { computed } from 'vue';
20
24
  import { ButtonGroup } from '@designcrowd/fe-shared-lib';
21
- import type { NavigationStyleConfig } from '@brand-page-maker/models/navigation-style-configs';
25
+ import { navigationTypeOptions } from '@brand-page-maker/models/navigation-style-configs';
26
+ import type { NavigationType } from '@brand-page';
22
27
  import type { ButtonGroupOption } from '@brand-page-maker/models/button-group.model';
23
28
  import { tr } from '@src/composables/useTranslate';
24
29
 
25
30
  interface Props {
26
- availableNavigationStyleConfigs: NavigationStyleConfig[];
27
- navigationDisplayType: string;
28
- onSelect: (navigationDisplayType: string) => void;
31
+ navigationType: NavigationType;
32
+ onSelect: (navigationType: NavigationType) => void;
29
33
  }
30
34
 
31
35
  const props = defineProps<Props>();
32
36
 
33
37
  const options = computed(() =>
34
- props.availableNavigationStyleConfigs.map((config) => {
35
- config.buttonGroupOption.isSelected =
36
- props.navigationDisplayType === config.buttonGroupOption.value;
37
- return config.buttonGroupOption;
38
- }),
38
+ navigationTypeOptions().map((option) => ({
39
+ ...option,
40
+ isSelected: option.value === props.navigationType,
41
+ })),
39
42
  );
40
43
 
41
44
  const handleSelect = (option: ButtonGroupOption) => {
42
- props.onSelect(option.value);
45
+ props.onSelect(option.value as NavigationType);
43
46
  };
44
47
  </script>
48
+ <style scoped>
49
+ .navigation-type-options :deep(button) {
50
+ padding-top: 8px !important;
51
+ }
52
+
53
+ .navigation-type-options :deep(button > p) {
54
+ text-transform: none;
55
+ }
56
+ </style>
@@ -11,6 +11,7 @@ import type {
11
11
  import type {
12
12
  LogoTheme,
13
13
  NavigationDisplayType,
14
+ NavigationType,
14
15
  LinksItem,
15
16
  HeaderDisplayStyle,
16
17
  FooterDisplayStyle,
@@ -30,6 +31,8 @@ import {
30
31
  LOGO_SLIDER_MOBILE_MAX,
31
32
  LOGO_SLIDER_MOBILE_MIN,
32
33
  VIEWPORTS,
34
+ getNavigationType,
35
+ NAVIGATION_TYPE_DEFAULT_DISPLAY_TYPE,
33
36
  } from '@brand-page';
34
37
  import type {
35
38
  ContentItemFieldSettings,
@@ -157,6 +160,9 @@ export default defineComponent({
157
160
  header(): PageHeaderDesktop | PageHeaderMobile {
158
161
  return this.sections[PAGE_SECTIONS.header][this.viewport];
159
162
  },
163
+ navigationType(): NavigationType {
164
+ return getNavigationType(this.navigation.displayType);
165
+ },
160
166
  footer(): PageFooterDesktop | PageFooterMobile {
161
167
  return this.sections[PAGE_SECTIONS.footer][this.viewport];
162
168
  },
@@ -357,13 +363,39 @@ export default defineComponent({
357
363
  },
358
364
  handleHeaderNavigationDisplayTypeChange(
359
365
  displayType: NavigationDisplayType,
360
- ) {
366
+ ): void {
367
+ this.pageSettingsStore.setPreviousSelectedNavigationDisplayType(
368
+ this.viewport,
369
+ displayType,
370
+ );
371
+
361
372
  this.navigationStyleSettingsStore.setDisplayType({
362
373
  section: PAGE_SECTIONS.header,
363
374
  displayType: displayType,
364
375
  viewport: this.viewport,
365
376
  });
366
377
  },
378
+ handleHeaderNavigationTypeChange(navigationType: NavigationType): void {
379
+ if (this.navigationType === navigationType) {
380
+ return;
381
+ }
382
+
383
+ // remember the outgoing style (which may be the draft's persisted value,
384
+ // never selected this session) so switching back restores it
385
+ this.pageSettingsStore.setPreviousSelectedNavigationDisplayType(
386
+ this.viewport,
387
+ this.navigation.displayType,
388
+ );
389
+
390
+ const remembered =
391
+ this.pageSettingsStore.previousSelectedNavigationDisplayTypes?.[
392
+ this.viewport
393
+ ]?.[navigationType];
394
+
395
+ this.handleHeaderNavigationDisplayTypeChange(
396
+ remembered || NAVIGATION_TYPE_DEFAULT_DISPLAY_TYPE[navigationType],
397
+ );
398
+ },
367
399
  handleHeaderNavigationStyleOptionValueChange({
368
400
  option,
369
401
  value,
@@ -1,10 +1,13 @@
1
1
  {
2
- "pageSettingsSection" : {
3
- "showNavigationBelow" : "Navigation unter dem Logo anzeigen",
4
- "previewDescription" : "Eine Vorschau ist für diese Bildschirmgröße nicht verfügbar.",
5
- "navigationStyle" : "Navigationsstil",
6
- "logoSize" : "Logogröße",
7
- "socialLinks" : "Social-Media-Links",
8
- "copyright" : "Copyright"
2
+ "pageSettingsSection": {
3
+ "showNavigationBelow": "Navigation unter dem Logo anzeigen",
4
+ "previewDescription": "Eine Vorschau ist für diese Bildschirmgröße nicht verfügbar.",
5
+ "navigationStyle": "Navigationsstil",
6
+ "navigationType": "Navigationstyp",
7
+ "menuStyle": "Menüstil",
8
+ "iconStyle": "Symbol-Stil",
9
+ "logoSize": "Logogröße",
10
+ "socialLinks": "Social-Media-Links",
11
+ "copyright": "Copyright"
9
12
  }
10
13
  }
@@ -1,10 +1,13 @@
1
1
  {
2
- "pageSettingsSection" : {
3
- "showNavigationBelow" : "Muestra la navegación debajo del logo",
4
- "previewDescription" : "La vista previa no está disponible en este tamaño de pantalla.",
5
- "navigationStyle" : "Estilo de navegación",
6
- "logoSize" : "Tamaño del logo",
7
- "socialLinks" : "Enlaces a redes sociales",
8
- "copyright" : "Derechos de autor"
2
+ "pageSettingsSection": {
3
+ "showNavigationBelow": "Muestra la navegación debajo del logo",
4
+ "previewDescription": "La vista previa no está disponible en este tamaño de pantalla.",
5
+ "navigationStyle": "Estilo de navegación",
6
+ "navigationType": "Tipo de navegación",
7
+ "menuStyle": "Estilo de menú",
8
+ "iconStyle": "Estilo de icono",
9
+ "logoSize": "Tamaño del logo",
10
+ "socialLinks": "Enlaces a redes sociales",
11
+ "copyright": "Derechos de autor"
9
12
  }
10
13
  }
@@ -1,10 +1,13 @@
1
1
  {
2
- "pageSettingsSection" : {
3
- "showNavigationBelow" : "Afficher la navigation sous le logo",
4
- "previewDescription" : "L'aperçu n'est pas disponible pour cette taille d'écran.",
5
- "navigationStyle" : "Style de navigation",
6
- "logoSize" : "Taille du logo",
7
- "socialLinks" : "Liens vers les réseaux sociaux",
8
- "copyright" : "Droits d’auteur"
2
+ "pageSettingsSection": {
3
+ "showNavigationBelow": "Afficher la navigation sous le logo",
4
+ "previewDescription": "L'aperçu n'est pas disponible pour cette taille d'écran.",
5
+ "navigationStyle": "Style de navigation",
6
+ "navigationType": "Type de navigation",
7
+ "menuStyle": "Style de menu",
8
+ "iconStyle": "Style d'icône",
9
+ "logoSize": "Taille du logo",
10
+ "socialLinks": "Liens vers les réseaux sociaux",
11
+ "copyright": "Droits d’auteur"
9
12
  }
10
13
  }