@nuxtify/pages 0.2.0 → 0.3.1

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 (53) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +222 -203
  3. package/dist/module.d.mts +0 -83
  4. package/dist/module.json +2 -2
  5. package/dist/module.mjs +9 -66
  6. package/dist/runtime/components/EmailSubscribeForm.vue +75 -75
  7. package/dist/runtime/components/FooterCallToAction.vue +29 -29
  8. package/dist/runtime/components/app/AppBar.vue +109 -109
  9. package/dist/runtime/components/app/AppFooter.vue +132 -132
  10. package/dist/runtime/components/app/AppNavigationDrawer.vue +86 -86
  11. package/dist/runtime/layouts/DefaultLayout.vue +25 -23
  12. package/dist/runtime/pages/DynamicSlug.vue +15 -15
  13. package/dist/runtime/pages/IndexPage.vue +16 -12
  14. package/dist/runtime/server/tsconfig.json +3 -3
  15. package/dist/runtime/utils/icons.d.ts +1 -1
  16. package/dist/runtime/utils/icons.js +1 -1
  17. package/package.json +64 -65
  18. package/dist/runtime/components/app/AppAnnouncementBar.vue +0 -36
  19. package/dist/runtime/components/app/AppAnnouncementBar.vue.d.ts +0 -2
  20. package/dist/runtime/components/app/AppDialog.vue +0 -38
  21. package/dist/runtime/components/app/AppDialog.vue.d.ts +0 -2
  22. package/dist/runtime/components/app/AppLoading.vue +0 -16
  23. package/dist/runtime/components/app/AppLoading.vue.d.ts +0 -2
  24. package/dist/runtime/components/app/AppLogo.vue +0 -41
  25. package/dist/runtime/components/app/AppLogo.vue.d.ts +0 -23
  26. package/dist/runtime/components/app/AppToast.vue +0 -16
  27. package/dist/runtime/components/app/AppToast.vue.d.ts +0 -2
  28. package/dist/runtime/composables/dialog.d.ts +0 -13
  29. package/dist/runtime/composables/dialog.js +0 -15
  30. package/dist/runtime/composables/nuxtify.d.ts +0 -2
  31. package/dist/runtime/composables/nuxtify.js +0 -2
  32. package/dist/runtime/composables/state.d.ts +0 -15
  33. package/dist/runtime/composables/state.js +0 -10
  34. package/dist/runtime/server/composables/client.d.ts +0 -1
  35. package/dist/runtime/server/composables/client.js +0 -1
  36. package/dist/runtime/server/utils/client.d.ts +0 -1
  37. package/dist/runtime/server/utils/client.js +0 -1
  38. package/dist/runtime/utils/formRules.d.ts +0 -19
  39. package/dist/runtime/utils/formRules.js +0 -23
  40. package/dist/runtime/utils/io.d.ts +0 -2
  41. package/dist/runtime/utils/io.js +0 -19
  42. package/dist/runtime/utils/math.d.ts +0 -2
  43. package/dist/runtime/utils/math.js +0 -13
  44. package/dist/runtime/utils/text.d.ts +0 -23
  45. package/dist/runtime/utils/text.js +0 -159
  46. package/dist/runtime/utils/time.d.ts +0 -2
  47. package/dist/runtime/utils/time.js +0 -7
  48. package/dist/runtime/utils/url.d.ts +0 -9
  49. package/dist/runtime/utils/url.js +0 -27
  50. package/dist/runtime/utils/util.d.ts +0 -7
  51. package/dist/runtime/utils/util.js +0 -5
  52. package/dist/runtime/utils/youtube.d.ts +0 -1
  53. package/dist/runtime/utils/youtube.js +0 -13
@@ -1,142 +1,142 @@
1
1
  <script setup>
2
- import { useNuxtifyConfig, mdiArrowTopRight } from "#imports";
2
+ import { mdiArrowTopRight, useNuxtifyConfig } from "#imports";
3
3
  const nuxtifyConfig = useNuxtifyConfig();
4
4
  const footerPrimaryLinks = nuxtifyConfig.navigation?.footerPrimary;
5
5
  const footerSecondaryLinks = nuxtifyConfig.navigation?.footerSecondary;
6
6
  </script>
7
7
 
8
8
  <template>
9
- <v-row
10
- class="px-sm-1 pt-12 pb-4 mb-1"
11
- style="max-width: 1280px"
12
- >
13
- <v-col cols="12">
14
- <FooterCallToAction v-if="nuxtifyConfig.footer?.cta?.show" />
15
-
16
- <v-row class="mb-2">
17
- <!-- Brand -->
18
- <v-col
19
- cols="12"
20
- :lg="footerPrimaryLinks?.length === 4 ? 3 : 4"
21
- >
22
- <!-- Logo -->
23
- <AppLogo dark />
24
-
25
- <!-- Tagline -->
26
- <p class="mt-2 clip-text">
27
- {{ nuxtifyConfig.brand?.tagline }}
28
- </p>
29
- </v-col>
30
-
31
- <v-spacer />
32
-
33
- <!-- Primary Links -->
34
- <v-col
35
- v-for="group in footerPrimaryLinks"
36
- :key="group.title"
37
- cols="6"
38
- md="3"
39
- lg="2"
40
- >
41
- <p class="text-body-1 font-weight-bold mb-3">
42
- {{ group.title }}
43
- </p>
44
- <div
45
- v-for="link in group.links"
46
- :key="link.text"
47
- >
48
- <v-btn
49
- :to="link.to"
50
- :href="link.href"
51
- variant="text"
52
- :active="false"
53
- :ripple="false"
54
- :target="link.openInNew ? '_blank' : void 0"
55
- :rel="link.openInNew ? 'noopener nofollow' : void 0"
56
- class="px-0"
57
- >
58
- {{ link.text }}
59
- <v-icon
60
- v-if="link.openInNew"
61
- :icon="mdiArrowTopRight"
62
- size="small"
63
- color="grey"
64
- class="ml-1"
65
- />
66
- </v-btn>
67
- </div>
68
- </v-col>
69
- </v-row>
70
-
71
- <v-row>
72
- <v-col
73
- cols="12"
74
- sm="9"
75
- >
76
- <small>
77
- <!-- Copyright -->
78
- ©
79
- {{
80
- nuxtifyConfig.footer?.copyright || nuxtifyConfig.brand?.name || nuxtifyConfig.brand?.domain
81
- }}.
82
-
83
- <!-- Credits -->
84
- {{ nuxtifyConfig.footer?.credits?.prependText }}
85
- <span v-if="nuxtifyConfig.footer?.credits?.creator?.name">
86
- <a
87
- v-if="nuxtifyConfig.footer.credits.creator.domain"
88
- :href="`https://${nuxtifyConfig.footer.credits.creator.domain}/?utm_source=${nuxtifyConfig.brand?.domain}&utm_medium=referral&utm_campaign=createdby`"
89
- target="_blank"
90
- rel="noopener nofollow"
91
- class="font-weight-bold"
92
- >{{ nuxtifyConfig.footer?.credits?.creator?.name }}</a><span v-else>{{ nuxtifyConfig.footer?.credits?.creator?.name }}</span>.
93
- </span>
94
-
95
- <!-- Message -->
96
- {{ nuxtifyConfig.footer?.credits?.appendText }}
97
-
98
- <!-- Powered By -->
99
- <span v-if="nuxtifyConfig.footer?.credits?.showPoweredBy">
100
- <a
101
- :href="`https://nuxtify.dev/?utm_source=${nuxtifyConfig.brand?.domain}&utm_medium=referral&utm_campaign=poweredby`"
102
- target="_blank"
103
- rel="noopener nofollow"
104
- >Powered by Nuxtify</a>.
105
- </span>
106
- </small>
107
-
108
- <v-divider
109
- v-if="footerSecondaryLinks?.length"
110
- class="my-4"
111
- style="width: 50px"
112
- />
113
-
114
- <!-- Secondary Links -->
115
- <v-btn
116
- v-for="link in footerSecondaryLinks"
117
- :key="link.text"
118
- :to="link.to"
119
- :href="link.href"
120
- variant="plain"
121
- size="small"
122
- :ripple="false"
123
- :target="link.openInNew ? '_blank' : void 0"
124
- :rel="link.openInNew ? 'noopener nofollow' : void 0"
125
- class="text-capitalize pl-0 mb-2"
126
- >
127
- {{ link.text }}
128
- <v-icon
129
- v-if="link.openInNew"
130
- :icon="mdiArrowTopRight"
131
- size="small"
132
- color="grey"
133
- class="ml-1"
134
- />
135
- </v-btn>
136
- </v-col>
137
- </v-row>
138
- </v-col>
139
- </v-row>
9
+ <v-row
10
+ class="px-sm-1 pt-12 pb-4 mb-1"
11
+ style="max-width: 1280px"
12
+ >
13
+ <v-col cols="12">
14
+ <FooterCallToAction v-if="nuxtifyConfig.footer?.cta?.show" />
15
+
16
+ <v-row class="mb-2">
17
+ <!-- Brand -->
18
+ <v-col
19
+ cols="12"
20
+ :lg="footerPrimaryLinks?.length === 4 ? 3 : 4"
21
+ >
22
+ <!-- Logo -->
23
+ <AppLogo dark />
24
+
25
+ <!-- Tagline -->
26
+ <p class="mt-2 clip-text">
27
+ {{ nuxtifyConfig.brand?.tagline }}
28
+ </p>
29
+ </v-col>
30
+
31
+ <v-spacer />
32
+
33
+ <!-- Primary Links -->
34
+ <v-col
35
+ v-for="group in footerPrimaryLinks"
36
+ :key="group.title"
37
+ cols="6"
38
+ md="3"
39
+ lg="2"
40
+ >
41
+ <p class="text-body-1 font-weight-bold mb-3">
42
+ {{ group.title }}
43
+ </p>
44
+ <div
45
+ v-for="link in group.links"
46
+ :key="link.text"
47
+ >
48
+ <v-btn
49
+ :to="link.to"
50
+ :href="link.href"
51
+ variant="text"
52
+ :active="false"
53
+ :ripple="false"
54
+ :target="link.openInNew ? '_blank' : void 0"
55
+ :rel="link.openInNew ? 'noopener nofollow' : void 0"
56
+ class="px-0"
57
+ >
58
+ {{ link.text }}
59
+ <v-icon
60
+ v-if="link.openInNew"
61
+ :icon="mdiArrowTopRight"
62
+ size="small"
63
+ color="grey"
64
+ class="ml-1"
65
+ />
66
+ </v-btn>
67
+ </div>
68
+ </v-col>
69
+ </v-row>
70
+
71
+ <v-row>
72
+ <v-col
73
+ cols="12"
74
+ sm="9"
75
+ >
76
+ <small>
77
+ <!-- Copyright -->
78
+ ©
79
+ {{
80
+ nuxtifyConfig.footer?.copyright || nuxtifyConfig.brand?.name || nuxtifyConfig.brand?.domain
81
+ }}.
82
+
83
+ <!-- Credits -->
84
+ {{ nuxtifyConfig.footer?.credits?.prependText }}
85
+ <span v-if="nuxtifyConfig.footer?.credits?.creator?.name">
86
+ <a
87
+ v-if="nuxtifyConfig.footer.credits.creator.domain"
88
+ :href="`https://${nuxtifyConfig.footer.credits.creator.domain}/?utm_source=${nuxtifyConfig.brand?.domain}&utm_medium=referral&utm_campaign=createdby`"
89
+ target="_blank"
90
+ rel="noopener nofollow"
91
+ class="font-weight-bold"
92
+ >{{ nuxtifyConfig.footer?.credits?.creator?.name }}</a><span v-else>{{ nuxtifyConfig.footer?.credits?.creator?.name }}</span>.
93
+ </span>
94
+
95
+ <!-- Message -->
96
+ {{ nuxtifyConfig.footer?.credits?.appendText }}
97
+
98
+ <!-- Powered By -->
99
+ <span v-if="nuxtifyConfig.footer?.credits?.showPoweredBy">
100
+ <a
101
+ :href="`https://nuxtify.dev/?utm_source=${nuxtifyConfig.brand?.domain}&utm_medium=referral&utm_campaign=poweredby`"
102
+ target="_blank"
103
+ rel="noopener nofollow"
104
+ >Powered by Nuxtify</a>.
105
+ </span>
106
+ </small>
107
+
108
+ <v-divider
109
+ v-if="footerSecondaryLinks?.length"
110
+ class="my-4"
111
+ style="width: 50px"
112
+ />
113
+
114
+ <!-- Secondary Links -->
115
+ <v-btn
116
+ v-for="link in footerSecondaryLinks"
117
+ :key="link.text"
118
+ :to="link.to"
119
+ :href="link.href"
120
+ variant="plain"
121
+ size="small"
122
+ :ripple="false"
123
+ :target="link.openInNew ? '_blank' : void 0"
124
+ :rel="link.openInNew ? 'noopener nofollow' : void 0"
125
+ class="text-capitalize pl-0 mb-2"
126
+ >
127
+ {{ link.text }}
128
+ <v-icon
129
+ v-if="link.openInNew"
130
+ :icon="mdiArrowTopRight"
131
+ size="small"
132
+ color="grey"
133
+ class="ml-1"
134
+ />
135
+ </v-btn>
136
+ </v-col>
137
+ </v-row>
138
+ </v-col>
139
+ </v-row>
140
140
  </template>
141
141
 
142
142
  <style scoped>
@@ -1,5 +1,5 @@
1
1
  <script setup>
2
- import { useDisplay, useDrawer, useNuxtifyConfig, mdiArrowTopRight } from "#imports";
2
+ import { mdiArrowTopRight, useDisplay, useDrawer, useNuxtifyConfig } from "#imports";
3
3
  const { smAndDown } = useDisplay();
4
4
  const nuxtifyConfig = useNuxtifyConfig();
5
5
  const drawer = useDrawer();
@@ -9,89 +9,89 @@ const featuredSecondaryLink = secondaryNavLinks?.slice(0, 1)[0];
9
9
  </script>
10
10
 
11
11
  <template>
12
- <v-navigation-drawer
13
- v-if="smAndDown"
14
- v-model="drawer"
15
- location="right"
16
- >
17
- <nav>
18
- <v-list nav>
19
- <!-- Primary links -->
20
- <v-list-item
21
- v-for="(link, i) in primaryNavLinks"
22
- :key="i"
23
- :to="link.to"
24
- :href="link.href"
25
- :prepend-icon="link.icon"
26
- color="primary"
27
- :target="link.openInNew ? '_blank' : void 0"
28
- :rel="link.openInNew ? 'noopener nofollow' : void 0"
29
- slim
30
- exact
31
- >
32
- <v-list-item-title class="text-subtitle-1 font-weight-bold py-1">
33
- {{ link.text }}
34
- <v-icon
35
- v-if="link.openInNew"
36
- :icon="mdiArrowTopRight"
37
- size="x-small"
38
- color="grey"
39
- class="ml-1"
40
- />
41
- </v-list-item-title>
42
- </v-list-item>
43
-
44
- <!-- Secondary links -->
45
- <v-list-item
46
- v-for="link in secondaryNavLinks?.slice(1).reverse()"
47
- :key="link.text"
48
- :to="link.to"
49
- :href="link.href"
50
- :prepend-icon="link.icon"
51
- :target="link.openInNew ? '_blank' : void 0"
52
- :rel="link.openInNew ? 'noopener nofollow' : void 0"
53
- slim
54
- exact
55
- >
56
- <v-list-item-title class="text-subtitle-1 font-weight-bold py-1">
57
- {{ link.text }}
58
- <v-icon
59
- v-if="link.openInNew"
60
- :icon="mdiArrowTopRight"
61
- size="x-small"
62
- color="grey"
63
- class="ml-1"
64
- />
65
- </v-list-item-title>
66
- </v-list-item>
67
- </v-list>
68
- </nav>
69
-
70
- <template #append>
71
- <!-- Featured secondary link -->
72
- <div
73
- v-if="featuredSecondaryLink?.text"
74
- class="ma-2"
75
- >
76
- <v-btn
77
- :to="featuredSecondaryLink.to"
78
- :href="featuredSecondaryLink.href"
79
- :prepend-icon="featuredSecondaryLink.icon"
80
- variant="flat"
81
- size="large"
82
- :target="featuredSecondaryLink.openInNew ? '_blank' : void 0"
83
- :rel="featuredSecondaryLink.openInNew ? 'noopener nofollow' : void 0"
84
- block
85
- >
86
- {{ featuredSecondaryLink.text }}
87
- <v-icon
88
- v-if="featuredSecondaryLink.openInNew"
89
- :icon="mdiArrowTopRight"
90
- size="small"
91
- class="ml-1"
92
- />
93
- </v-btn>
94
- </div>
95
- </template>
96
- </v-navigation-drawer>
12
+ <v-navigation-drawer
13
+ v-if="smAndDown"
14
+ v-model="drawer"
15
+ location="right"
16
+ >
17
+ <nav>
18
+ <v-list nav>
19
+ <!-- Primary links -->
20
+ <v-list-item
21
+ v-for="(link, i) in primaryNavLinks"
22
+ :key="i"
23
+ :to="link.to"
24
+ :href="link.href"
25
+ :prepend-icon="link.icon"
26
+ color="primary"
27
+ :target="link.openInNew ? '_blank' : void 0"
28
+ :rel="link.openInNew ? 'noopener nofollow' : void 0"
29
+ slim
30
+ exact
31
+ >
32
+ <v-list-item-title class="text-subtitle-1 font-weight-bold py-1">
33
+ {{ link.text }}
34
+ <v-icon
35
+ v-if="link.openInNew"
36
+ :icon="mdiArrowTopRight"
37
+ size="x-small"
38
+ color="grey"
39
+ class="ml-1"
40
+ />
41
+ </v-list-item-title>
42
+ </v-list-item>
43
+
44
+ <!-- Secondary links -->
45
+ <v-list-item
46
+ v-for="link in secondaryNavLinks?.slice(1).reverse()"
47
+ :key="link.text"
48
+ :to="link.to"
49
+ :href="link.href"
50
+ :prepend-icon="link.icon"
51
+ :target="link.openInNew ? '_blank' : void 0"
52
+ :rel="link.openInNew ? 'noopener nofollow' : void 0"
53
+ slim
54
+ exact
55
+ >
56
+ <v-list-item-title class="text-subtitle-1 font-weight-bold py-1">
57
+ {{ link.text }}
58
+ <v-icon
59
+ v-if="link.openInNew"
60
+ :icon="mdiArrowTopRight"
61
+ size="x-small"
62
+ color="grey"
63
+ class="ml-1"
64
+ />
65
+ </v-list-item-title>
66
+ </v-list-item>
67
+ </v-list>
68
+ </nav>
69
+
70
+ <template #append>
71
+ <!-- Featured secondary link -->
72
+ <div
73
+ v-if="featuredSecondaryLink?.text"
74
+ class="ma-2"
75
+ >
76
+ <v-btn
77
+ :to="featuredSecondaryLink.to"
78
+ :href="featuredSecondaryLink.href"
79
+ :prepend-icon="featuredSecondaryLink.icon"
80
+ variant="flat"
81
+ size="large"
82
+ :target="featuredSecondaryLink.openInNew ? '_blank' : void 0"
83
+ :rel="featuredSecondaryLink.openInNew ? 'noopener nofollow' : void 0"
84
+ block
85
+ >
86
+ {{ featuredSecondaryLink.text }}
87
+ <v-icon
88
+ v-if="featuredSecondaryLink.openInNew"
89
+ :icon="mdiArrowTopRight"
90
+ size="small"
91
+ class="ml-1"
92
+ />
93
+ </v-btn>
94
+ </div>
95
+ </template>
96
+ </v-navigation-drawer>
97
97
  </template>
@@ -5,27 +5,29 @@ const { mdAndUp } = useDisplay();
5
5
  </script>
6
6
 
7
7
  <template>
8
- <v-app>
9
- <!-- Accessibility -->
10
- <NuxtRouteAnnouncer />
11
-
12
- <AppBar class="d-print-none" />
13
-
14
- <AppNavigationDrawer class="d-print-none" />
15
-
16
- <AppAnnouncementBar
17
- v-if="nuxtifyConfig.announcement?.show"
18
- class="d-print-none"
19
- />
20
-
21
- <v-main :min-height="mdAndUp ? 800 : 550">
22
- <slot />
23
- </v-main>
24
-
25
- <AppToast />
26
-
27
- <v-footer class="bg-primary justify-center mt-8">
28
- <AppFooter />
29
- </v-footer>
30
- </v-app>
8
+ <v-app>
9
+ <!-- Accessibility -->
10
+ <NuxtRouteAnnouncer />
11
+
12
+ <AppBar class="d-print-none" />
13
+
14
+ <AppNavigationDrawer class="d-print-none" />
15
+
16
+ <AppAnnouncementBar
17
+ v-if="nuxtifyConfig.announcement?.show"
18
+ class="d-print-none"
19
+ />
20
+
21
+ <v-main :min-height="mdAndUp ? 800 : 550">
22
+ <slot />
23
+ </v-main>
24
+
25
+ <AppToast class="d-print-none" />
26
+
27
+ <AppDialog class="d-print-none" />
28
+
29
+ <v-footer class="bg-primary justify-center mt-8">
30
+ <AppFooter />
31
+ </v-footer>
32
+ </v-app>
31
33
  </template>
@@ -1,21 +1,21 @@
1
1
  <script setup>
2
- import { useRoute, capitalizeFirstLetter } from "#imports";
2
+ import { capitalizeFirstLetter, useRoute } from "#imports";
3
3
  const route = useRoute();
4
4
  </script>
5
5
 
6
6
  <template>
7
- <v-container>
8
- <v-row justify="center">
9
- <v-col
10
- cols="12"
11
- sm="10"
12
- lg="8"
13
- xl="6"
14
- >
15
- <h1 class="text-h5 mt-4">
16
- {{ capitalizeFirstLetter(route.params.slug) }}
17
- </h1>
18
- </v-col>
19
- </v-row>
20
- </v-container>
7
+ <v-container>
8
+ <v-row justify="center">
9
+ <v-col
10
+ cols="12"
11
+ sm="10"
12
+ lg="8"
13
+ xl="6"
14
+ >
15
+ <h1 class="text-h5 mt-4">
16
+ {{ capitalizeFirstLetter(route.params.slug) }}
17
+ </h1>
18
+ </v-col>
19
+ </v-row>
20
+ </v-container>
21
21
  </template>
@@ -1,19 +1,23 @@
1
1
  <script setup>
2
- import { useServerSeoMeta, useNuxtifyConfig } from "#imports";
2
+ import { useNuxtifyConfig, useServerSeoMeta } from "#imports";
3
+ const nuxtifyConfig = useNuxtifyConfig();
3
4
  useServerSeoMeta({
4
- title: "@nuxtify/pages",
5
- description: "This is the @nuxtify/pages homepage."
5
+ title: `${nuxtifyConfig.brand?.name}`,
6
+ description: `This is the ${nuxtifyConfig.brand?.name} home page.`
6
7
  });
7
- const nuxtifyConfig = useNuxtifyConfig();
8
8
  </script>
9
9
 
10
10
  <template>
11
- <v-container class="text-center">
12
- <ClientOnly>
13
- <h1>{{ nuxtifyConfig.brand?.name }} Home</h1>
14
- <template #fallback>
15
- <AppLoading />
16
- </template>
17
- </ClientOnly>
18
- </v-container>
11
+ <v-container class="text-center">
12
+ <v-row>
13
+ <v-col cols="12">
14
+ <ClientOnly>
15
+ <h1>{{ nuxtifyConfig.brand?.name }} Home</h1>
16
+ <template #fallback>
17
+ <AppLoading />
18
+ </template>
19
+ </ClientOnly>
20
+ </v-col>
21
+ </v-row>
22
+ </v-container>
19
23
  </template>
@@ -1,3 +1,3 @@
1
- {
2
- "extends": "../../../.nuxt/tsconfig.server.json",
3
- }
1
+ {
2
+ "extends": "../../../.nuxt/tsconfig.server.json",
3
+ }
@@ -1 +1 @@
1
- export { mdiArrowRight, mdiClose, mdiMenu, mdiArrowTopRight } from '@mdi/js';
1
+ export { mdiArrowRight, mdiArrowTopRight, mdiClose, mdiMenu } from '@mdi/js';
@@ -1 +1 @@
1
- export { mdiArrowRight, mdiClose, mdiMenu, mdiArrowTopRight } from "@mdi/js";
1
+ export { mdiArrowRight, mdiArrowTopRight, mdiClose, mdiMenu } from "@mdi/js";