@nuxtify/pages 0.2.0 β†’ 0.2.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.
package/README.md CHANGED
@@ -1,203 +1,200 @@
1
- <div align=center>
2
- <img src="https://nuxtify.dev/img/nuxtify-wordmark-dark.png"/>
3
- </div>
4
- <p align=center>
5
- Build progressively enhanced web apps and sites with Nuxt and Vuetify.
6
- </p>
7
-
8
- # Nuxtify Pages
9
-
10
- <!-- [![npm version][npm-version-src]][npm-version-href]
11
- [![npm downloads][npm-downloads-src]][npm-downloads-href]
12
- [![License][license-src]][license-href]
13
- [![Nuxtify Docs][nuxtify-src]][nuxtify-href] -->
14
- <!-- [πŸ€ Online playground](https://stackblitz.com/github/nuxtify-dev/pages?file=playground%2Fapp.vue) -->
15
-
16
- > [!NOTE]
17
- > **Early Access Preview:**
18
- > This module is under active development. While it is already used to power a [handful of sites](https://nuxtify.dev/showcase) in production, expect things to change frequently. I will do my best to call out breaking changes in the [changelog](https://github.com/nuxtify-dev/pages/blob/main/CHANGELOG.md).
19
-
20
- ### Table of Contents
21
-
22
- - ♾️ [Why Nuxtify?](#why-nuxtify)
23
- - ✨ [Features](#features)
24
- - πŸš€ [Quick Start](#quick-start)
25
- - πŸ”§ [Configuration](#configuration)
26
- - βœ… [Updates](#updates)
27
- - ❀️ [Contributing](#contributing)
28
- - 🏠 [Local Development](#local-development)
29
- - βš–οΈ [License](#license)
30
-
31
- ## <a name="why-nuxtify">♾️ Why Nuxtify?</a>
32
-
33
- Nuxtify is a collection of [Nuxt modules](https://nuxt.com/docs/guide/concepts/modules) that help you stay organized, maintain focus, and _ship weirdly fast_.
34
-
35
- It's built on a loosely opinionated stack that eliminates decision fatigue and ensures consistency across projects. This extensible approach gives you incredible control over your site's structure and style.
36
-
37
- Once you add a Nuxtify module (like this one) to a new or existing Nuxt project, you can use any of the components, composables, and other features instantly – no imports necessary. And more importantly, you can override these defaults with your own version at any time.
38
-
39
- **This unlocks a powerful way of working.**
40
-
41
- Use the defaults when they're helpful, and progressively upgrade when they're not.
42
-
43
- This means you can:
44
-
45
- - Setup a new project using the default configuration in a matter of minutes.
46
- - Use the default footer component, but completely change the navigation component.
47
- - Change the colors of all the buttons with one line of code.
48
- - Override the default button component with a style of your choosing.
49
- - And much more...
50
-
51
- In short, Nuxtify helps you build faster, iterate smarter, and maintain consistency – without sacrificing control or creativity.
52
-
53
- ## <a name="features">✨ Features</a>
54
-
55
- Nuxtify builds on the amazing features of [Vue](https://vuejs.org/guide/introduction), [Nuxt](https://nuxt.com/docs/getting-started/introduction), and [Vuetify](https://vuetifyjs.com/en/introduction/why-vuetify/).
56
-
57
- ### πŸ’‘ Intuitive UI & UX
58
-
59
- - Ready to use components, page templates, and layouts so you can _ship weirdly fast_
60
- - Easily override any component with [Vuetify global defaults](https://vuetifyjs.com/en/features/global-configuration/)
61
- - Icons powered by [Material Design Icons](https://pictogrammers.com/library/mdi/) via [Vuetify icon fonts](https://vuetifyjs.com/en/features/icon-fonts/)
62
- - Fully responsive and adapts to all modern browsers and devices
63
- - (coming soon) Light and dark mode toggle
64
-
65
- ### πŸ’Ž Premium DX
66
-
67
- - Zero-config with sensible defaults for common use cases
68
- - All components use the modern [Vue Composition API](https://vuejs.org/guide/extras/composition-api-faq) and [Single File Component (SFC) syntax](https://vuejs.org/guide/scaling-up/sfc.html)
69
- - [TypeScript](https://www.typescriptlang.org/) auto-complete and type safety for all components
70
- - [ESLint](https://eslint.org/) support out of the box using flat config (v9)
71
- - Identify performance gaps and seamlessly manage your app with [Nuxt Devtools](https://devtools.nuxt.com/)
72
- - Clean, elegant code that's easy to understand and customize
73
- - Loosely opinionated, leveraging ecosystem standards so you're not locked into outdated dependencies and practices
74
-
75
- ### πŸ€– Smart SEO, Security, & Performance
76
-
77
- - Fully tree shakeable for small bundle sizes
78
- - Optimized caching and rendering strategies for each page with [hybrid rendering](https://nuxt.com/docs/guide/concepts/rendering#hybrid-rendering)
79
- - (coming soon) Robots, sitemaps, schema.org, social share images, broken links, and more powered by [Nuxt SEO](https://nuxtseo.com/)
80
- - (coming soon) Fast, responsive, optimized images for [20+ image providers](https://image.nuxt.com/get-started/providers) powered by [Nuxt Image](https://image.nuxt.com/)
81
- - (coming soon) Load third-party scripts with better performance, privacy, security powered by [Nuxt Scripts](https://scripts.nuxt.com/)
82
- - (coming soon) Optimal security patterns and principles powered by [Nuxt Security](https://nuxt.com/modules/security)
83
-
84
- ### 🌐 Host Anywhere
85
-
86
- - Deploy to any Node.js server, static host, or serverless edge CDN environment with [20+ hosting providers](https://nuxt.com/deploy) supported
87
-
88
- ## <a name="quick-start">πŸš€ Quick Start</a>
89
-
90
- To use this module in your [new](https://nuxt.com/docs/getting-started/installation) or existing Nuxt project:
91
-
92
- ### 1. Install the module
93
-
94
- Install the module in your Nuxt application with one command:
95
-
96
- ```bash
97
- npx nuxi@latest module add @nuxtify/pages
98
- ```
99
-
100
- ### 2. Update Nuxt config
101
-
102
- Add the `@nuxtify/pages` module to `nuxt.config.ts` and configure it:
103
-
104
- ```ts
105
- // nuxt.config.ts
106
-
107
- export default defineNuxtConfig({
108
- modules: [
109
- '@nuxtify/pages'
110
- ],
111
- nuxtify: {
112
- /* module specific options */
113
- }
114
- });
115
- ```
116
-
117
- Read the [πŸ“– documentation](https://nuxtify.dev/docs) for a complete guide on how to configure and use this module.
118
-
119
- ### 3. Start building!
120
-
121
- Develop and [deploy](https://nuxt.com/docs/getting-started/deployment) your Nuxt app like any other.
122
-
123
- ## <a name="configuration">πŸ”§ Configuration</a>
124
-
125
- ### Module configuration
126
-
127
- To see the full config, check out the [types](https://github.com/nuxtify-dev/pages/blob/main/src/types.ts).
128
-
129
- ### Overriding the defaults
130
-
131
- Nuxtify comes pre-configured with sensible defaults. Both for how the module functions and for the corresponding Nuxt [directory](https://nuxt.com/docs/guide/directory-structure).
132
-
133
- If you need to override a [component](https://nuxt.com/docs/guide/directory-structure/components), [page](https://nuxt.com/docs/guide/directory-structure/pages), or [layout](https://nuxt.com/docs/guide/directory-structure/layouts), create the a file with the same name in your project (in the appropriate directory).
134
-
135
- If you need to override a [composable](https://nuxt.com/docs/guide/directory-structure/composables) or [utils](https://nuxt.com/docs/guide/directory-structure/utils) utility function, create a function with the same name in your project (in the appropriate directory).
136
-
137
- ## <a name="updates">βœ… Updates</a>
138
-
139
- [✨ Release Notes](/CHANGELOG.md)
140
-
141
- It's easy to stay up to date with the latest version of Nuxtify. Just update to the latest package using your favorite package manager.
142
-
143
- **Minor and patch versions**
144
- ```bash
145
- npm update @nuxtify/pages --save
146
- ```
147
-
148
- **Major versions**
149
- ```bash
150
- npm install @nuxtify/pages@latest --save
151
- ```
152
-
153
- ## <a name="contributing">❀️ Contributing</a>
154
-
155
- I invite you to contribute and help improve Nuxtify!
156
-
157
- Here are a few ways you can get involved:
158
-
159
- - **Reporting Bugs:** If you come across any bugs or issues, please [open a new issue](https://github.com/nuxtify-dev/pages/issues/new).
160
- - **Suggestions:** Have ideas to enhance Nuxtify? I'd love to hear them! You can [open a new issue](https://github.com/nuxtify-dev/pages/issues/new) describing your feature request or suggestion.
161
- - **Local Development:** contribute directly to the framework with a pull request. Just follow the instructions below.
162
-
163
- ## <a name="local-development">🏠 Local Development</a>
164
-
165
- ### CLI commands
166
-
167
- ```bash
168
- # Install dependencies
169
- npm install
170
-
171
- # Generate type stubs
172
- npm run dev:prepare
173
-
174
- # Develop with the playground
175
- npm run dev
176
-
177
- # Build the playground
178
- npm run dev:build
179
-
180
- # Run ESLint
181
- npm run lint
182
-
183
- # Run Vitest
184
- npm run test
185
- npm run test:watch
186
- ```
187
-
188
- Learn about [authoring Nuxt modules](https://nuxt.com/docs/guide/going-further/modules).
189
-
190
- ## <a name="license">βš–οΈ License</a>
191
-
192
- [MIT](https://github.com/nuxtify-dev/pages/blob/main/LICENSE)
193
-
194
- <!-- Badges -->
195
-
196
- [npm-version-src]: https://img.shields.io/npm/v/@nuxtify/pages/latest.svg?style=flat&colorA=020420&colorB=00DC82
197
- [npm-version-href]: https://npmjs.com/package/@nuxtify/pages
198
- [npm-downloads-src]: https://img.shields.io/npm/dm/@nuxtify/pages.svg?style=flat&colorA=020420&colorB=00DC82
199
- [npm-downloads-href]: https://npm.chart.dev/@nuxtify/pages
200
- [license-src]: https://img.shields.io/npm/l/@nuxtify/pages.svg?style=flat&colorA=020420&colorB=00DC82
201
- [license-href]: https://npmjs.com/package/@nuxtify/pages
202
- [nuxtify-src]: https://img.shields.io/badge/Nuxtify_Docs-00DC82
203
- [nuxtify-href]: https://nuxtify.dev/docs
1
+ <div align=center>
2
+ <img src="./nuxtify-banner.png"/>
3
+ </div>
4
+
5
+ # Nuxtify Pages
6
+
7
+ <!-- [![npm version][npm-version-src]][npm-version-href]
8
+ [![npm downloads][npm-downloads-src]][npm-downloads-href]
9
+ [![License][license-src]][license-href]
10
+ [![Nuxtify Docs][nuxtify-src]][nuxtify-href] -->
11
+ <!-- [πŸ€ Online playground](https://stackblitz.com/github/nuxtify-dev/pages?file=playground%2Fapp.vue) -->
12
+
13
+ > [!NOTE]
14
+ > **Early Access Preview:**
15
+ > This module is under active development. While it is already used to power a [handful of sites](https://nuxtify.dev/showcase) in production, expect things to change frequently. I will do my best to call out breaking changes in the [changelog](https://github.com/nuxtify-dev/pages/blob/main/CHANGELOG.md).
16
+
17
+ ### Table of Contents
18
+
19
+ - ♾️ [Why Nuxtify?](#why-nuxtify)
20
+ - ✨ [Features](#features)
21
+ - πŸš€ [Quick Start](#quick-start)
22
+ - πŸ”§ [Configuration](#configuration)
23
+ - βœ… [Updates](#updates)
24
+ - ❀️ [Contributing](#contributing)
25
+ - 🏠 [Local Development](#local-development)
26
+ - βš–οΈ [License](#license)
27
+
28
+ ## <a name="why-nuxtify">♾️ Why Nuxtify?</a>
29
+
30
+ Nuxtify is a collection of [Nuxt modules](https://nuxt.com/docs/guide/concepts/modules) that help you stay organized, maintain focus, and _ship weirdly fast_.
31
+
32
+ It's built on a loosely opinionated stack that eliminates decision fatigue and ensures consistency across projects. This extensible approach gives you incredible control over your site's structure and style.
33
+
34
+ Once you add a Nuxtify module (like this one) to a new or existing Nuxt project, you can use any of the components, composables, and other features instantly – no imports necessary. And more importantly, you can override these defaults with your own version at any time.
35
+
36
+ **This unlocks a powerful way of working.**
37
+
38
+ Use the defaults when they're helpful, and progressively upgrade when they're not.
39
+
40
+ This means you can:
41
+
42
+ - Setup a new project using the default configuration in a matter of minutes.
43
+ - Use the default footer component, but completely change the navigation component.
44
+ - Change the colors of all the buttons with one line of code.
45
+ - Override the default button component with a style of your choosing.
46
+ - And much more...
47
+
48
+ In short, Nuxtify helps you build faster, iterate smarter, and maintain consistency – without sacrificing control or creativity.
49
+
50
+ ## <a name="features">✨ Features</a>
51
+
52
+ Nuxtify builds on the amazing features of [Vue](https://vuejs.org/guide/introduction), [Nuxt](https://nuxt.com/docs/getting-started/introduction), and [Vuetify](https://vuetifyjs.com/en/introduction/why-vuetify/).
53
+
54
+ ### πŸ’‘ Intuitive UI & UX
55
+
56
+ - Ready to use components, page templates, and layouts so you can _ship weirdly fast_
57
+ - Easily override any component with [Vuetify global defaults](https://vuetifyjs.com/en/features/global-configuration/)
58
+ - Icons powered by [Material Design Icons](https://pictogrammers.com/library/mdi/) via [Vuetify icon fonts](https://vuetifyjs.com/en/features/icon-fonts/)
59
+ - Fully responsive and adapts to all modern browsers and devices
60
+ - (coming soon) Light and dark mode toggle
61
+
62
+ ### πŸ’Ž Premium DX
63
+
64
+ - Zero-config with sensible defaults for common use cases
65
+ - All components use the modern [Vue Composition API](https://vuejs.org/guide/extras/composition-api-faq) and [Single File Component (SFC) syntax](https://vuejs.org/guide/scaling-up/sfc.html)
66
+ - [TypeScript](https://www.typescriptlang.org/) auto-complete and type safety for all components
67
+ - [ESLint](https://eslint.org/) support out of the box using flat config (v9)
68
+ - Identify performance gaps and seamlessly manage your app with [Nuxt Devtools](https://devtools.nuxt.com/)
69
+ - Clean, elegant code that's easy to understand and customize
70
+ - Loosely opinionated, leveraging ecosystem standards so you're not locked into outdated dependencies and practices
71
+
72
+ ### πŸ€– Smart SEO, Security, & Performance
73
+
74
+ - Fully tree shakeable for small bundle sizes
75
+ - Optimized caching and rendering strategies for each page with [hybrid rendering](https://nuxt.com/docs/guide/concepts/rendering#hybrid-rendering)
76
+ - (coming soon) Robots, sitemaps, schema.org, social share images, broken links, and more powered by [Nuxt SEO](https://nuxtseo.com/)
77
+ - (coming soon) Fast, responsive, optimized images for [20+ image providers](https://image.nuxt.com/get-started/providers) powered by [Nuxt Image](https://image.nuxt.com/)
78
+ - (coming soon) Load third-party scripts with better performance, privacy, security powered by [Nuxt Scripts](https://scripts.nuxt.com/)
79
+ - (coming soon) Optimal security patterns and principles powered by [Nuxt Security](https://nuxt.com/modules/security)
80
+
81
+ ### 🌐 Host Anywhere
82
+
83
+ - Deploy to any Node.js server, static host, or serverless edge CDN environment with [20+ hosting providers](https://nuxt.com/deploy) supported
84
+
85
+ ## <a name="quick-start">πŸš€ Quick Start</a>
86
+
87
+ To use this module in your [new](https://nuxt.com/docs/getting-started/installation) or existing Nuxt project:
88
+
89
+ ### 1. Install the module
90
+
91
+ Install the module in your Nuxt application with one command:
92
+
93
+ ```bash
94
+ npx nuxi@latest module add @nuxtify/pages
95
+ ```
96
+
97
+ ### 2. Update Nuxt config
98
+
99
+ Add the `@nuxtify/pages` module to `nuxt.config.ts` and configure it:
100
+
101
+ ```ts
102
+ // nuxt.config.ts
103
+
104
+ export default defineNuxtConfig({
105
+ modules: [
106
+ '@nuxtify/pages'
107
+ ],
108
+ nuxtifyPages: {
109
+ /* module specific options */
110
+ }
111
+ });
112
+ ```
113
+
114
+ Read the [πŸ“– documentation](https://nuxtify.dev/docs) for a complete guide on how to configure and use this module.
115
+
116
+ ### 3. Start building!
117
+
118
+ Develop and [deploy](https://nuxt.com/docs/getting-started/deployment) your Nuxt app like any other.
119
+
120
+ ## <a name="configuration">πŸ”§ Configuration</a>
121
+
122
+ ### Module configuration
123
+
124
+ To see the full config, check out the [types](https://github.com/nuxtify-dev/pages/blob/main/src/types.ts).
125
+
126
+ ### Overriding the defaults
127
+
128
+ Nuxtify comes pre-configured with sensible defaults. Both for how the module functions and for the corresponding Nuxt [directory](https://nuxt.com/docs/guide/directory-structure).
129
+
130
+ If you need to override a [component](https://nuxt.com/docs/guide/directory-structure/components), [page](https://nuxt.com/docs/guide/directory-structure/pages), or [layout](https://nuxt.com/docs/guide/directory-structure/layouts), create the a file with the same name in your project (in the appropriate directory).
131
+
132
+ If you need to override a [composable](https://nuxt.com/docs/guide/directory-structure/composables) or [utils](https://nuxt.com/docs/guide/directory-structure/utils) utility function, create a function with the same name in your project (in the appropriate directory).
133
+
134
+ ## <a name="updates">βœ… Updates</a>
135
+
136
+ [✨ Release Notes](/CHANGELOG.md)
137
+
138
+ It's easy to stay up to date with the latest version of Nuxtify. Just update to the latest package using your favorite package manager.
139
+
140
+ **Minor and patch versions**
141
+ ```bash
142
+ npm update @nuxtify/pages --save
143
+ ```
144
+
145
+ **Major versions**
146
+ ```bash
147
+ npm install @nuxtify/pages@latest --save
148
+ ```
149
+
150
+ ## <a name="contributing">❀️ Contributing</a>
151
+
152
+ I invite you to contribute and help improve Nuxtify!
153
+
154
+ Here are a few ways you can get involved:
155
+
156
+ - **Reporting Bugs:** If you come across any bugs or issues, please [open a new issue](https://github.com/nuxtify-dev/pages/issues/new).
157
+ - **Suggestions:** Have ideas to enhance Nuxtify? I'd love to hear them! You can [open a new issue](https://github.com/nuxtify-dev/pages/issues/new) describing your feature request or suggestion.
158
+ - **Local Development:** contribute directly to the framework with a pull request. Just follow the instructions below.
159
+
160
+ ## <a name="local-development">🏠 Local Development</a>
161
+
162
+ ### CLI commands
163
+
164
+ ```bash
165
+ # Install dependencies
166
+ npm install
167
+
168
+ # Generate type stubs
169
+ npm run dev:prepare
170
+
171
+ # Develop with the playground
172
+ npm run dev
173
+
174
+ # Build the playground
175
+ npm run dev:build
176
+
177
+ # Run ESLint
178
+ npm run lint
179
+
180
+ # Run Vitest
181
+ npm run test
182
+ npm run test:watch
183
+ ```
184
+
185
+ Learn about [authoring Nuxt modules](https://nuxt.com/docs/guide/going-further/modules).
186
+
187
+ ## <a name="license">βš–οΈ License</a>
188
+
189
+ [MIT](https://github.com/nuxtify-dev/pages/blob/main/LICENSE)
190
+
191
+ <!-- Badges -->
192
+
193
+ [npm-version-src]: https://img.shields.io/npm/v/@nuxtify/pages/latest.svg?style=flat&colorA=020420&colorB=00DC82
194
+ [npm-version-href]: https://npmjs.com/package/@nuxtify/pages
195
+ [npm-downloads-src]: https://img.shields.io/npm/dm/@nuxtify/pages.svg?style=flat&colorA=020420&colorB=00DC82
196
+ [npm-downloads-href]: https://npm.chart.dev/@nuxtify/pages
197
+ [license-src]: https://img.shields.io/npm/l/@nuxtify/pages.svg?style=flat&colorA=020420&colorB=00DC82
198
+ [license-href]: https://npmjs.com/package/@nuxtify/pages
199
+ [nuxtify-src]: https://img.shields.io/badge/Nuxtify_Docs-00DC82
200
+ [nuxtify-href]: https://nuxtify.dev/docs
package/dist/module.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "nuxt": ">=3.16.0",
6
6
  "bridge": false
7
7
  },
8
- "version": "0.2.0",
8
+ "version": "0.2.1",
9
9
  "builder": {
10
10
  "@nuxt/module-builder": "1.0.1",
11
11
  "unbuild": "3.5.0"
@@ -117,74 +117,74 @@ async function handleSubmit() {
117
117
  </script>
118
118
 
119
119
  <template>
120
- <!-- Form -->
121
- <v-form
122
- v-if="!isSubmitted"
123
- ref="form"
124
- validate-on="submit"
125
- @submit.prevent="handleSubmit"
126
- >
127
- <div class="d-sm-flex justify-center">
128
- <!-- Using useId prevents hydration mismatch warnings issue with Vuetify -->
129
- <!-- See: https://github.com/vuetifyjs/vuetify/issues/19696 -->
130
- <!-- Once the issue is resolved (and it's used internally in Vuetify), remove use of useId -->
131
- <v-text-field
132
- :id
133
- v-model="formInput.email"
134
- type="email"
135
- color="secondary"
136
- :placeholder="emailPlaceholder"
137
- :rules="[formRules.required, formRules.validEmail]"
138
- :rounded="xs ? 't-lg' : '0 ts-lg'"
139
- hide-details="auto"
140
- class="text-start"
141
- >
142
- <template #message="{ message }">
143
- <span :class="dark ? 'text-red-lighten-3' : ''">{{ message }}</span>
144
- </template>
145
- </v-text-field>
146
- <v-btn
147
- type="submit"
148
- variant="flat"
149
- color="secondary"
150
- size="x-large"
151
- class="d-flex align-center py-7 mt-2 mt-sm-0"
152
- :loading
153
- :rounded="rounded()"
154
- :append-icon="appendButtonIcon"
155
- :prepend-icon="prependButtonIcon"
156
- :block="xs"
157
- >
158
- {{ buttonText }}
159
- </v-btn>
160
- </div>
161
-
162
- <!-- Supporting Text -->
163
- <div
164
- v-if="showPrivacy || marketingConsentText"
165
- :class="`text-body-2 ${dark ? 'text-grey-lighten-2' : 'text-medium-emphasis'} mt-2`"
166
- >
167
- <span v-if="marketingConsentText">
168
- {{ marketingConsentText }}
169
- </span>
170
- <span v-if="showPrivacy">
171
- By signing up you agree to the
172
- <NuxtLink
173
- :to="nuxtifyConfig.pages?.policies?.privacyUrl"
174
- :class="`text-decoration-none ${dark ? 'text-grey-lighten-2' : 'text-medium-emphasis'}`"
175
- >
176
- Privacy Policy</NuxtLink>.
177
- </span>
178
- </div>
179
- </v-form>
180
-
181
- <!-- Thank You -->
182
- <div
183
- v-else
184
- class="text-body-1"
185
- >
186
- {{ thankYouMessage }}
187
- </div>
120
+ <!-- Form -->
121
+ <v-form
122
+ v-if="!isSubmitted"
123
+ ref="form"
124
+ validate-on="submit"
125
+ @submit.prevent="handleSubmit"
126
+ >
127
+ <div class="d-sm-flex justify-center">
128
+ <!-- Using useId prevents hydration mismatch warnings issue with Vuetify -->
129
+ <!-- See: https://github.com/vuetifyjs/vuetify/issues/19696 -->
130
+ <!-- Once the issue is resolved (and it's used internally in Vuetify), remove use of useId -->
131
+ <v-text-field
132
+ :id
133
+ v-model="formInput.email"
134
+ type="email"
135
+ color="secondary"
136
+ :placeholder="emailPlaceholder"
137
+ :rules="[formRules.required, formRules.validEmail]"
138
+ :rounded="xs ? 't-lg' : '0 ts-lg'"
139
+ hide-details="auto"
140
+ class="text-start"
141
+ >
142
+ <template #message="{ message }">
143
+ <span :class="dark ? 'text-red-lighten-3' : ''">{{ message }}</span>
144
+ </template>
145
+ </v-text-field>
146
+ <v-btn
147
+ type="submit"
148
+ variant="flat"
149
+ color="secondary"
150
+ size="x-large"
151
+ class="d-flex align-center py-7 mt-2 mt-sm-0"
152
+ :loading
153
+ :rounded="rounded()"
154
+ :append-icon="appendButtonIcon"
155
+ :prepend-icon="prependButtonIcon"
156
+ :block="xs"
157
+ >
158
+ {{ buttonText }}
159
+ </v-btn>
160
+ </div>
161
+
162
+ <!-- Supporting Text -->
163
+ <div
164
+ v-if="showPrivacy || marketingConsentText"
165
+ :class="`text-body-2 ${dark ? 'text-grey-lighten-2' : 'text-medium-emphasis'} mt-2`"
166
+ >
167
+ <span v-if="marketingConsentText">
168
+ {{ marketingConsentText }}
169
+ </span>
170
+ <span v-if="showPrivacy">
171
+ By signing up you agree to the
172
+ <NuxtLink
173
+ :to="nuxtifyConfig.pages?.policies?.privacyUrl"
174
+ :class="`text-decoration-none ${dark ? 'text-grey-lighten-2' : 'text-medium-emphasis'}`"
175
+ >
176
+ Privacy Policy</NuxtLink>.
177
+ </span>
178
+ </div>
179
+ </v-form>
180
+
181
+ <!-- Thank You -->
182
+ <div
183
+ v-else
184
+ class="text-body-1"
185
+ >
186
+ {{ thankYouMessage }}
187
+ </div>
188
188
  </template>
189
189
 
190
190
  <style scoped>
@@ -4,33 +4,33 @@ const nuxtifyConfig = useNuxtifyConfig();
4
4
  </script>
5
5
 
6
6
  <template>
7
- <v-row
8
- justify="center"
9
- class="text-center my-4"
10
- >
11
- <v-col
12
- cols="12"
13
- md="7"
14
- lg="6"
15
- xl="4"
16
- >
17
- <div
18
- v-if="nuxtifyConfig.footer?.cta?.title"
19
- :class="`text-h5 text-${nuxtifyConfig.footer.cta.color}-lighten-4`"
20
- >
21
- {{ nuxtifyConfig.footer.cta.title }}
22
- </div>
23
- <div
24
- v-if="nuxtifyConfig.footer?.cta?.subtitle"
25
- :class="`text-subtitle-1 text-${nuxtifyConfig.footer.cta.color}-lighten-3 mb-4`"
26
- >
27
- {{ nuxtifyConfig.footer.cta.subtitle }}
28
- </div>
29
- <EmailSubscribeForm
30
- v-if="nuxtifyConfig.email?.provider?.defaultSubmitUrl"
31
- :submit-url="nuxtifyConfig.email.provider.defaultSubmitUrl"
32
- dark
33
- />
34
- </v-col>
35
- </v-row>
7
+ <v-row
8
+ justify="center"
9
+ class="text-center my-4"
10
+ >
11
+ <v-col
12
+ cols="12"
13
+ md="7"
14
+ lg="6"
15
+ xl="4"
16
+ >
17
+ <div
18
+ v-if="nuxtifyConfig.footer?.cta?.title"
19
+ :class="`text-h5 text-${nuxtifyConfig.footer.cta.color}-lighten-4`"
20
+ >
21
+ {{ nuxtifyConfig.footer.cta.title }}
22
+ </div>
23
+ <div
24
+ v-if="nuxtifyConfig.footer?.cta?.subtitle"
25
+ :class="`text-subtitle-1 text-${nuxtifyConfig.footer.cta.color}-lighten-3 mb-4`"
26
+ >
27
+ {{ nuxtifyConfig.footer.cta.subtitle }}
28
+ </div>
29
+ <EmailSubscribeForm
30
+ v-if="nuxtifyConfig.email?.provider?.defaultSubmitUrl"
31
+ :submit-url="nuxtifyConfig.email.provider.defaultSubmitUrl"
32
+ dark
33
+ />
34
+ </v-col>
35
+ </v-row>
36
36
  </template>