@xenterprises/nuxt-x-marketing 0.0.1 → 0.0.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.
@@ -1,5 +1,38 @@
1
1
  export default defineAppConfig({
2
- myLayer: {
3
- name: 'My amazing Nuxt layer (overwritten)'
4
- }
5
- })
2
+ xMarketing: {
3
+ name: "My amazing Nuxt layer (overwritten)",
4
+ config: {
5
+ markerProjectId: "67191169861c84dffad87d71",
6
+ },
7
+ footer: {
8
+ logo: "https://cdn.x.enterprises/logo-x.png",
9
+ 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
+ socials: [
11
+ {
12
+ name: "Instagram",
13
+ url: "https://www.instagram.com/bandmate.io",
14
+ icon: "i-simple-icons-instagram",
15
+ },
16
+ ],
17
+ columns: [
18
+ {
19
+ name: "Product",
20
+ links: [
21
+ {
22
+ name: "Features",
23
+ url: "/features",
24
+ },
25
+ {
26
+ name: "Pricing",
27
+ url: "/pricing",
28
+ },
29
+ {
30
+ name: "Customers",
31
+ url: "/customers",
32
+ },
33
+ ],
34
+ },
35
+ ],
36
+ },
37
+ },
38
+ });
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <slot />
3
+ </template>
4
+ <script setup>
5
+ </script>
@@ -1,5 +1,5 @@
1
1
  export default defineNuxtConfig({
2
- extends: ['..'],
3
- modules: ['@nuxt/eslint'],
4
- compatibilityDate: '2024-10-23'
5
- })
2
+ extends: [["..", { install: true }], "@nuxt/ui-pro"],
3
+ modules: ["@nuxt/ui"],
4
+ compatibilityDate: "2024-10-23",
5
+ });
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <div>🌮 Hola</div>
3
+ </template>
4
+ <script setup>
5
+ </script>
package/app.config.ts CHANGED
@@ -1,14 +1,42 @@
1
1
  export default defineAppConfig({
2
- myLayer: {
3
- name: 'Hello from Nuxt layer'
4
- }
5
- })
2
+ xMarketing: {
3
+ name: "X Enterprises",
4
+ config: {
5
+ markerProjectId: "",
6
+ },
7
+ footer: {
8
+ logo: "",
9
+ body: "",
10
+ socials: [],
11
+ columns: [],
12
+ },
13
+ },
14
+ });
6
15
 
7
- declare module '@nuxt/schema' {
16
+ declare module "@nuxt/schema" {
8
17
  interface AppConfigInput {
9
- myLayer?: {
18
+ xMarketing?: {
10
19
  /** Project name */
11
- name?: string
12
- }
20
+ name?: string;
21
+ config?: {
22
+ markerProjectId?: string;
23
+ };
24
+ footer?: {
25
+ body?: string;
26
+ logo?: string;
27
+ socials?: {
28
+ name: string;
29
+ url: string;
30
+ icon: string;
31
+ }[];
32
+ columns?: {
33
+ name: string;
34
+ links: {
35
+ name: string;
36
+ url: string;
37
+ }[];
38
+ }[];
39
+ };
40
+ };
13
41
  }
14
42
  }
package/app.vue ADDED
@@ -0,0 +1,32 @@
1
+ <template>
2
+ <main class="min-h-screen flex flex-col justify-between">
3
+ <section class="flex-grow">
4
+ <NuxtLoadingIndicator />
5
+ <NuxtLayout>
6
+ <NuxtPage />
7
+ </NuxtLayout>
8
+ <UNotifications />
9
+ <UModals />
10
+ </section>
11
+ <section>
12
+ <XFooter />
13
+ <XFooterXLegal />
14
+ </section>
15
+ </main>
16
+ </template>
17
+ <script setup>
18
+ import { ref, onMounted } from "vue";
19
+ import markerSDK from "@marker.io/browser";
20
+
21
+ const appConfig = useAppConfig();
22
+ useSeoMeta({
23
+ titleTemplate: `%s`,
24
+ });
25
+ if (appConfig && appConfig?.xMarketing?.config?.markerProjectId) {
26
+ onMounted(() => {
27
+ const widget = markerSDK.loadWidget({
28
+ project: appConfig?.xMarketing?.config?.markerProjectId,
29
+ });
30
+ });
31
+ }
32
+ </script>
@@ -0,0 +1,45 @@
1
+ <template>
2
+ <footer
3
+ class="bg-gray-900 text-gray-400 text-xs relative overflow-visible pt-2"
4
+ >
5
+ <img
6
+ src="https://cdn.x.enterprises/logo-x.png"
7
+ alt="X Enterprises"
8
+ class="h-6 w-6 mx-auto -mt-5 relative z-10"
9
+ />
10
+ <main
11
+ class="flex flex-col md:flex-row justify-between items-center px-6 pt-3 pb-5"
12
+ >
13
+ <div>
14
+ Copyright &copy;2016-{{ new Date().getFullYear() }} X Enterprises, LLC.
15
+ All Rights Reserved.
16
+ </div>
17
+
18
+ <div class="text-right">
19
+ <a
20
+ href="https://x.enterprises/legal/terms"
21
+ class="hover:underline"
22
+ target="_blank"
23
+ >
24
+ Terms of Service
25
+ </a>
26
+ <a
27
+ href="https://x.enterprises/legal/privacy-policy"
28
+ class="ml-4 hover:underline"
29
+ target="_blank"
30
+ >
31
+ Privacy Policy
32
+ </a>
33
+ <a
34
+ href="https://x.enterprises/legal/cookie-policy"
35
+ class="ml-4 hover:underline"
36
+ target="_blank"
37
+ >
38
+ Cookie Policy
39
+ </a>
40
+ </div>
41
+ </main>
42
+ </footer>
43
+ </template>
44
+ <script setup>
45
+ </script>
@@ -0,0 +1,90 @@
1
+ <template>
2
+ <div>
3
+ <section class="relative pt-24 bg-black overflow-hidden">
4
+ <img
5
+ class="absolute left-1/2 bottom-0 h-full transform -translate-x-1/2"
6
+ src="/flaro-assets/images/footers/gradient.svg"
7
+ alt=""
8
+ />
9
+ <div class="relative z-10 container px-4 mx-auto">
10
+ <div class="pb-24 border-b border-gray-900">
11
+ <div class="flex flex-wrap -m-8">
12
+ <div class="w-full sm:w-1/2 lg:w-6/12 p-8">
13
+ <div class="lg:max-w-xl">
14
+ <a class="mb-8 inline-block" href="#">
15
+ <img :src="footer?.logo" alt="" class="h-6" />
16
+ </a>
17
+ <p
18
+ class="mb-20 text-gray-400 font-medium leading-relaxed md:max-w-7xl"
19
+ >
20
+ {{ footer?.body }}
21
+ </p>
22
+ <div class="flex flex-wrap -m-1.5">
23
+ <div class="w-auto p-1.5">
24
+ <span
25
+ v-for="(social, index) in footer?.socials"
26
+ :key="index"
27
+ >
28
+ <a :href="social.url" target="_blank">
29
+ <UIcon
30
+ :name="social?.icon"
31
+ class="w-5 h-5"
32
+ :alt="social?.name"
33
+ />
34
+ </a>
35
+ </span>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ <div class="w-full sm:w-1/2 lg:w-2/12 p-8"></div>
41
+ <div
42
+ class="w-full sm:w-1/2 lg:w-2/12 p-8"
43
+ v-for="(column, index) in footer.columns"
44
+ :key="index"
45
+ >
46
+ <h3
47
+ class="mb-8 text-sm text-gray-600 uppercase font-semibold leading-normal tracking-px"
48
+ >
49
+ {{ column?.name }}
50
+ </h3>
51
+ <ul>
52
+ <li class="mb-5">
53
+ <nuxt-link
54
+ to="/features"
55
+ class="text-white hover:text-gray-200 font-medium leading-relaxed"
56
+ >Features</nuxt-link
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>
74
+ <nuxt-link
75
+ class="text-white hover:text-gray-200 font-medium leading-relaxed"
76
+ >Articles</nuxt-link
77
+ >
78
+ </li>
79
+ </ul>
80
+ </div>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </section>
85
+ </div>
86
+ </template>
87
+ <script setup>
88
+ const appConfig = useAppConfig();
89
+ const footer = appConfig?.xMarketing?.footer;
90
+ </script>
package/nuxt.config.ts CHANGED
@@ -1,4 +1,7 @@
1
1
  // https://nuxt.com/docs/api/configuration/nuxt-config
2
2
  export default defineNuxtConfig({
3
- devtools: { enabled: true }
4
- })
3
+ devtools: { enabled: true },
4
+ ui: {
5
+ icons: ["heroicons", "simple-icons"],
6
+ },
7
+ });
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.1",
4
+ "version": "0.0.3",
5
5
  "main": "./nuxt.config.ts",
6
6
  "scripts": {
7
7
  "dev": "nuxi dev .playground",
@@ -11,8 +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",
14
16
  "nuxt": "^3.13.2",
15
17
  "typescript": "^5.6.3",
16
18
  "vue": "latest"
19
+ },
20
+ "dependencies": {
21
+ "@marker.io/browser": "^0.19.0",
22
+ "simple-icons": "^13.15.0"
17
23
  }
18
24
  }
package/eslint.config.js DELETED
@@ -1,3 +0,0 @@
1
- import withNuxt from './.playground/.nuxt/eslint.config.mjs'
2
-
3
- export default withNuxt()