@xenterprises/nuxt-x-marketing 0.0.3 → 0.0.4
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.
- package/.playground/app.config.ts +38 -8
- package/.playground/nuxt.config.ts +2 -2
- package/.playground/pages/index.vue +1 -1
- package/app.config.ts +57 -5
- package/app.vue +1 -0
- package/components/X/Footer/XLegal/index.vue +10 -8
- package/components/X/Footer/index.vue +40 -45
- package/components/X/Header/Nav/index.vue +38 -0
- package/composables/useXBlog.ts +11 -0
- package/nuxt.config.ts +2 -0
- package/package.json +4 -4
- package/pages/blog/index.vue +10 -0
|
@@ -4,8 +4,38 @@ export default defineAppConfig({
|
|
|
4
4
|
config: {
|
|
5
5
|
markerProjectId: "67191169861c84dffad87d71",
|
|
6
6
|
},
|
|
7
|
+
header: {
|
|
8
|
+
logo: {
|
|
9
|
+
src: "https://cdn.x.enterprises/logo-x.png",
|
|
10
|
+
alt: "X Enterprises",
|
|
11
|
+
},
|
|
12
|
+
nav: {
|
|
13
|
+
buttons: [
|
|
14
|
+
{
|
|
15
|
+
label: "Get Started",
|
|
16
|
+
to: "/get-started",
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
links: [
|
|
20
|
+
{
|
|
21
|
+
label: "Home",
|
|
22
|
+
to: "/",
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
},
|
|
7
27
|
footer: {
|
|
8
|
-
logo:
|
|
28
|
+
logo: {
|
|
29
|
+
src: "https://cdn.x.enterprises/logo-x.png",
|
|
30
|
+
alt: "",
|
|
31
|
+
},
|
|
32
|
+
bg: {
|
|
33
|
+
color: "",
|
|
34
|
+
img: {
|
|
35
|
+
src: "https://cdn.x.enterprises/bg-gradient.svg",
|
|
36
|
+
alt: "Gradient background",
|
|
37
|
+
},
|
|
38
|
+
},
|
|
9
39
|
body: "Rock Your Band's World with Bandmate - the all-in-one platform designed to streamline your band's management, collaboration, and growth. Stay connected, stay inspired, and keep rocking with Bandmate! Follow us on social media and join our newsletter for the latest updates, tips, and industry news. Let's make music together!",
|
|
10
40
|
socials: [
|
|
11
41
|
{
|
|
@@ -16,19 +46,19 @@ export default defineAppConfig({
|
|
|
16
46
|
],
|
|
17
47
|
columns: [
|
|
18
48
|
{
|
|
19
|
-
|
|
49
|
+
headerLabel: "Products",
|
|
20
50
|
links: [
|
|
21
51
|
{
|
|
22
|
-
|
|
23
|
-
|
|
52
|
+
label: "Features",
|
|
53
|
+
to: "/features",
|
|
24
54
|
},
|
|
25
55
|
{
|
|
26
|
-
|
|
27
|
-
|
|
56
|
+
label: "Pricing",
|
|
57
|
+
to: "/pricing",
|
|
28
58
|
},
|
|
29
59
|
{
|
|
30
|
-
|
|
31
|
-
|
|
60
|
+
label: "Customers",
|
|
61
|
+
to: "/customers",
|
|
32
62
|
},
|
|
33
63
|
],
|
|
34
64
|
},
|
package/app.config.ts
CHANGED
|
@@ -1,11 +1,37 @@
|
|
|
1
1
|
export default defineAppConfig({
|
|
2
|
+
ui: {
|
|
3
|
+
primary: "sky",
|
|
4
|
+
header: {
|
|
5
|
+
container: "max-w-screen-2xl container mx-auto",
|
|
6
|
+
},
|
|
7
|
+
},
|
|
2
8
|
xMarketing: {
|
|
3
9
|
name: "X Enterprises",
|
|
4
10
|
config: {
|
|
5
11
|
markerProjectId: "",
|
|
6
12
|
},
|
|
13
|
+
header: {
|
|
14
|
+
logo: {
|
|
15
|
+
src: "",
|
|
16
|
+
alt: "",
|
|
17
|
+
},
|
|
18
|
+
nav: {
|
|
19
|
+
buttons: [],
|
|
20
|
+
links: [],
|
|
21
|
+
},
|
|
22
|
+
},
|
|
7
23
|
footer: {
|
|
8
|
-
logo:
|
|
24
|
+
logo: {
|
|
25
|
+
src: "",
|
|
26
|
+
alt: "",
|
|
27
|
+
},
|
|
28
|
+
bg: {
|
|
29
|
+
color: "",
|
|
30
|
+
img: {
|
|
31
|
+
src: "",
|
|
32
|
+
alt: "",
|
|
33
|
+
},
|
|
34
|
+
},
|
|
9
35
|
body: "",
|
|
10
36
|
socials: [],
|
|
11
37
|
columns: [],
|
|
@@ -21,19 +47,45 @@ declare module "@nuxt/schema" {
|
|
|
21
47
|
config?: {
|
|
22
48
|
markerProjectId?: string;
|
|
23
49
|
};
|
|
50
|
+
header?: {
|
|
51
|
+
logo?: {
|
|
52
|
+
src?: string;
|
|
53
|
+
alt?: string;
|
|
54
|
+
};
|
|
55
|
+
nav?: {
|
|
56
|
+
buttons?: {
|
|
57
|
+
label: string;
|
|
58
|
+
to: string;
|
|
59
|
+
}[];
|
|
60
|
+
links?: {
|
|
61
|
+
label: string;
|
|
62
|
+
to: string;
|
|
63
|
+
}[];
|
|
64
|
+
};
|
|
65
|
+
};
|
|
24
66
|
footer?: {
|
|
25
67
|
body?: string;
|
|
26
|
-
|
|
68
|
+
bg?: {
|
|
69
|
+
color?: string;
|
|
70
|
+
img?: {
|
|
71
|
+
src?: string;
|
|
72
|
+
alt?: string;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
logo?: {
|
|
76
|
+
src?: string;
|
|
77
|
+
alt?: string;
|
|
78
|
+
};
|
|
27
79
|
socials?: {
|
|
28
80
|
name: string;
|
|
29
81
|
url: string;
|
|
30
82
|
icon: string;
|
|
31
83
|
}[];
|
|
32
84
|
columns?: {
|
|
33
|
-
|
|
85
|
+
headerLabel: string;
|
|
34
86
|
links: {
|
|
35
|
-
|
|
36
|
-
|
|
87
|
+
label: string;
|
|
88
|
+
to: string;
|
|
37
89
|
}[];
|
|
38
90
|
}[];
|
|
39
91
|
};
|
package/app.vue
CHANGED
|
@@ -2,20 +2,22 @@
|
|
|
2
2
|
<footer
|
|
3
3
|
class="bg-gray-900 text-gray-400 text-xs relative overflow-visible pt-2"
|
|
4
4
|
>
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
<a href="https://x.enterprises" target="_blank">
|
|
6
|
+
<img
|
|
7
|
+
src="https://cdn.x.enterprises/logo-x.png"
|
|
8
|
+
alt="X Enterprises"
|
|
9
|
+
class="h-6 w-6 mx-auto -mt-5 relative z-10"
|
|
10
|
+
/>
|
|
11
|
+
</a>
|
|
10
12
|
<main
|
|
11
|
-
class="flex flex-col md:flex-row justify-between items-center px-6 pt-3 pb-5"
|
|
13
|
+
class="flex flex-col md:flex-row justify-between items-center px-6 pt-3 pb-5 max-w-screen-2xl mx-auto"
|
|
12
14
|
>
|
|
13
|
-
<div>
|
|
15
|
+
<div class="pb-4 md:pb-0 text-center md:text-left">
|
|
14
16
|
Copyright ©2016-{{ new Date().getFullYear() }} X Enterprises, LLC.
|
|
15
17
|
All Rights Reserved.
|
|
16
18
|
</div>
|
|
17
19
|
|
|
18
|
-
<div class="text-right">
|
|
20
|
+
<div class="text-center md:text-right pb-14 md:pb-0">
|
|
19
21
|
<a
|
|
20
22
|
href="https://x.enterprises/legal/terms"
|
|
21
23
|
class="hover:underline"
|
|
@@ -1,79 +1,74 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<section
|
|
3
|
+
<section
|
|
4
|
+
class="relative pt-24 overflow-hidden"
|
|
5
|
+
:class="footer?.bg?.color ? footer?.bg?.color : 'bg-gray-900'"
|
|
6
|
+
>
|
|
4
7
|
<img
|
|
5
8
|
class="absolute left-1/2 bottom-0 h-full transform -translate-x-1/2"
|
|
6
|
-
src="
|
|
7
|
-
alt=""
|
|
9
|
+
:src="footer?.bg?.img?.src"
|
|
10
|
+
:alt="footer?.bg?.img?.alt"
|
|
11
|
+
v-if="footer?.bg?.img?.src"
|
|
8
12
|
/>
|
|
9
|
-
<div class="relative z-10 container
|
|
13
|
+
<div class="relative z-10 container mx-auto max-w-screen-2xl">
|
|
10
14
|
<div class="pb-24 border-b border-gray-900">
|
|
11
|
-
<div class="flex flex-wrap -
|
|
12
|
-
<div class="w-full sm:w-1/2 lg:w-6/12 p-8">
|
|
15
|
+
<div class="flex flex-wrap justify-between">
|
|
16
|
+
<div class="w-full sm:w-1/2 lg:w-6/12 p-4 md:p-8">
|
|
13
17
|
<div class="lg:max-w-xl">
|
|
14
18
|
<a class="mb-8 inline-block" href="#">
|
|
15
|
-
<img
|
|
19
|
+
<img
|
|
20
|
+
:src="footer?.logo?.src"
|
|
21
|
+
:alt="footer?.logo?.alt"
|
|
22
|
+
class="h-6"
|
|
23
|
+
/>
|
|
16
24
|
</a>
|
|
17
25
|
<p
|
|
18
26
|
class="mb-20 text-gray-400 font-medium leading-relaxed md:max-w-7xl"
|
|
19
27
|
>
|
|
20
28
|
{{ footer?.body }}
|
|
21
29
|
</p>
|
|
22
|
-
<div class="flex flex-wrap -m-1.5">
|
|
23
|
-
<div
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
<div class="flex flex-row flex-wrap -m-1.5 gap-2">
|
|
31
|
+
<div
|
|
32
|
+
class="w-auto"
|
|
33
|
+
v-for="(social, index) in footer?.socials"
|
|
34
|
+
:key="index"
|
|
35
|
+
>
|
|
36
|
+
<UButton
|
|
37
|
+
:to="social.url"
|
|
38
|
+
:icon="social?.icon"
|
|
39
|
+
:alt="social?.name"
|
|
40
|
+
color="gray"
|
|
41
|
+
square
|
|
42
|
+
target="_blank"
|
|
43
|
+
variant="ghost"
|
|
27
44
|
>
|
|
28
|
-
|
|
29
|
-
<UIcon
|
|
30
|
-
:name="social?.icon"
|
|
31
|
-
class="w-5 h-5"
|
|
32
|
-
:alt="social?.name"
|
|
33
|
-
/>
|
|
34
|
-
</a>
|
|
35
|
-
</span>
|
|
45
|
+
</UButton>
|
|
36
46
|
</div>
|
|
47
|
+
<UColorModeButton />
|
|
37
48
|
</div>
|
|
38
49
|
</div>
|
|
39
50
|
</div>
|
|
40
51
|
<div class="w-full sm:w-1/2 lg:w-2/12 p-8"></div>
|
|
41
52
|
<div
|
|
42
|
-
class="w-full sm:w-1/2 lg:w-2/12 p-8"
|
|
53
|
+
class="w-full sm:w-1/2 lg:w-2/12 p-8 text-center md:text-right"
|
|
43
54
|
v-for="(column, index) in footer.columns"
|
|
44
55
|
:key="index"
|
|
45
56
|
>
|
|
46
57
|
<h3
|
|
47
58
|
class="mb-8 text-sm text-gray-600 uppercase font-semibold leading-normal tracking-px"
|
|
48
59
|
>
|
|
49
|
-
{{ column?.
|
|
60
|
+
{{ column?.headerLabel }}
|
|
50
61
|
</h3>
|
|
51
62
|
<ul>
|
|
52
|
-
<li
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
>
|
|
58
|
-
</li>
|
|
59
|
-
<li class="mb-5">
|
|
60
|
-
<nuxt-link
|
|
61
|
-
to="/who-its-for"
|
|
62
|
-
class="text-white hover:text-gray-200 font-medium leading-relaxed"
|
|
63
|
-
>Who It's For</nuxt-link
|
|
64
|
-
>
|
|
65
|
-
</li>
|
|
66
|
-
<li class="mb-5">
|
|
67
|
-
<nuxt-link
|
|
68
|
-
to="/faqs"
|
|
69
|
-
class="text-white hover:text-gray-200 font-medium leading-relaxed"
|
|
70
|
-
>FAQs</nuxt-link
|
|
71
|
-
>
|
|
72
|
-
</li>
|
|
73
|
-
<li>
|
|
63
|
+
<li
|
|
64
|
+
class="mb-5"
|
|
65
|
+
v-for="link in column?.links"
|
|
66
|
+
:key="link?.label"
|
|
67
|
+
>
|
|
74
68
|
<nuxt-link
|
|
69
|
+
:to="link?.to"
|
|
75
70
|
class="text-white hover:text-gray-200 font-medium leading-relaxed"
|
|
76
|
-
>
|
|
71
|
+
>{{ link?.label }}</nuxt-link
|
|
77
72
|
>
|
|
78
73
|
</li>
|
|
79
74
|
</ul>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<UHeader :links="links">
|
|
3
|
+
<template #logo>
|
|
4
|
+
<img
|
|
5
|
+
:src="header?.logo?.src"
|
|
6
|
+
:alt="header?.logo?.alt"
|
|
7
|
+
class="h-8"
|
|
8
|
+
v-if="header?.logo?.src"
|
|
9
|
+
/>
|
|
10
|
+
<span v-else>{{ header?.logo?.alt }}</span>
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
<template #right>
|
|
14
|
+
<span v-for="(button, index) in header?.nav?.buttons" :key="index"
|
|
15
|
+
><UButton class="hidden md:block py-2" :to="button?.to">{{
|
|
16
|
+
button?.label
|
|
17
|
+
}}</UButton></span
|
|
18
|
+
>
|
|
19
|
+
</template>
|
|
20
|
+
|
|
21
|
+
<template #panel>
|
|
22
|
+
<UNavigationTree :links="links" />
|
|
23
|
+
<span v-for="(button, index) in header?.nav?.buttons" :key="index"
|
|
24
|
+
><UButton
|
|
25
|
+
class="md:hidden mt-5 py-2 w-full flex flex-row justify-center"
|
|
26
|
+
:to="button?.to"
|
|
27
|
+
>{{ button?.label }}</UButton
|
|
28
|
+
></span
|
|
29
|
+
>
|
|
30
|
+
</template>
|
|
31
|
+
</UHeader>
|
|
32
|
+
</template>
|
|
33
|
+
|
|
34
|
+
<script setup>
|
|
35
|
+
const appConfig = useAppConfig();
|
|
36
|
+
const header = appConfig?.xMarketing?.header;
|
|
37
|
+
const links = header?.nav?.links || [];
|
|
38
|
+
</script>
|
package/nuxt.config.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xenterprises/nuxt-x-marketing",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.4",
|
|
5
5
|
"main": "./nuxt.config.ts",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "nuxi dev .playground",
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
"preview": "nuxt preview .playground"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@nuxt/ui": "^2.18.7",
|
|
15
|
-
"@nuxt/ui-pro": "^1.4.4",
|
|
16
14
|
"nuxt": "^3.13.2",
|
|
17
15
|
"typescript": "^5.6.3",
|
|
18
16
|
"vue": "latest"
|
|
19
17
|
},
|
|
20
18
|
"dependencies": {
|
|
21
19
|
"@marker.io/browser": "^0.19.0",
|
|
22
|
-
"simple-icons": "^13.15.0"
|
|
20
|
+
"simple-icons": "^13.15.0",
|
|
21
|
+
"@nuxt/ui": "^2.18.7",
|
|
22
|
+
"@nuxt/ui-pro": "^1.4.4"
|
|
23
23
|
}
|
|
24
24
|
}
|