nuxt-ignis 0.2.5 → 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 (140) hide show
  1. package/.data/content/contents.sqlite +0 -0
  2. package/.env +43 -0
  3. package/.nuxt/app.config.mjs +18 -0
  4. package/.nuxt/component-chunk.mjs +1 -0
  5. package/.nuxt/components.d.ts +322 -0
  6. package/.nuxt/content/components.ts +51 -0
  7. package/.nuxt/content/database.compressed.mjs +1 -0
  8. package/.nuxt/content/manifest.ts +33 -0
  9. package/.nuxt/content/sql_dump +6 -0
  10. package/.nuxt/content/types.d.ts +13 -0
  11. package/.nuxt/dist/server/client.manifest.json +18 -0
  12. package/.nuxt/dist/server/client.manifest.mjs +18 -0
  13. package/.nuxt/dist/server/server.mjs +1 -0
  14. package/.nuxt/eslint-typegen.d.ts +9401 -0
  15. package/.nuxt/eslint.config.d.mts +9 -0
  16. package/.nuxt/eslint.config.mjs +53 -0
  17. package/.nuxt/i18n.options.mjs +165 -0
  18. package/.nuxt/imports.d.ts +82 -0
  19. package/.nuxt/manifest/latest.json +1 -0
  20. package/.nuxt/manifest/meta/dev.json +1 -0
  21. package/.nuxt/mdc-configs.mjs +8 -0
  22. package/.nuxt/mdc-highlighter.mjs +213 -0
  23. package/.nuxt/mdc-image-component.mjs +1 -0
  24. package/.nuxt/mdc-imports.mjs +12 -0
  25. package/.nuxt/module/@nuxtjs-sitemap.d.ts +28 -0
  26. package/.nuxt/module/nuxt-robots.d.ts +35 -0
  27. package/.nuxt/module/nuxt-seo-utils.assets.d.ts +25 -0
  28. package/.nuxt/module/nuxt-seo-utils.d.ts +22 -0
  29. package/.nuxt/module/nuxt-site-config.d.ts +43 -0
  30. package/.nuxt/modules/@nuxt-scripts.d.ts +13 -0
  31. package/.nuxt/nitro.json +17 -0
  32. package/.nuxt/nuxt-fonts-global.css +0 -0
  33. package/.nuxt/nuxt-i18n-logger.mjs +1 -0
  34. package/.nuxt/nuxt-icon-client-bundle.mjs +1 -0
  35. package/.nuxt/nuxt-icon-server-bundle.mjs +15 -0
  36. package/.nuxt/nuxt.d.ts +49 -0
  37. package/.nuxt/nuxt.json +9 -0
  38. package/.nuxt/schema/nuxt.schema.d.ts +17 -0
  39. package/.nuxt/schema/nuxt.schema.json +3 -0
  40. package/.nuxt/tailwind/postcss.mjs +15 -0
  41. package/.nuxt/tsconfig.json +374 -0
  42. package/.nuxt/tsconfig.server.json +292 -0
  43. package/.nuxt/types/app-defaults.d.ts +7 -0
  44. package/.nuxt/types/app.config.d.ts +31 -0
  45. package/.nuxt/types/build.d.ts +27 -0
  46. package/.nuxt/types/builder-env.d.ts +1 -0
  47. package/.nuxt/types/i18n-plugin.d.ts +104 -0
  48. package/.nuxt/types/imports.d.ts +899 -0
  49. package/.nuxt/types/layouts.d.ts +7 -0
  50. package/.nuxt/types/middleware.d.ts +7 -0
  51. package/.nuxt/types/neon.d.ts +35 -0
  52. package/.nuxt/types/nitro-config.d.ts +14 -0
  53. package/.nuxt/types/nitro-imports.d.ts +405 -0
  54. package/.nuxt/types/nitro-middleware.d.ts +6 -0
  55. package/.nuxt/types/nitro-nuxt.d.ts +34 -0
  56. package/.nuxt/types/nitro-routes.d.ts +81 -0
  57. package/.nuxt/types/nitro.d.ts +3 -0
  58. package/.nuxt/types/plugins.d.ts +57 -0
  59. package/.nuxt/types/schema.d.ts +1372 -0
  60. package/.nuxt/types/ui.d.ts +35 -0
  61. package/.nuxt/types/vue-shim.d.ts +0 -0
  62. package/.nuxt/ui/accordion.ts +20 -0
  63. package/.nuxt/ui/alert.ts +264 -0
  64. package/.nuxt/ui/avatar-group.ts +52 -0
  65. package/.nuxt/ui/avatar.ts +54 -0
  66. package/.nuxt/ui/badge.ts +263 -0
  67. package/.nuxt/ui/breadcrumb.ts +45 -0
  68. package/.nuxt/ui/button-group.ts +16 -0
  69. package/.nuxt/ui/button.ts +378 -0
  70. package/.nuxt/ui/calendar.ts +103 -0
  71. package/.nuxt/ui/card.ts +34 -0
  72. package/.nuxt/ui/carousel.ts +38 -0
  73. package/.nuxt/ui/checkbox-group.ts +204 -0
  74. package/.nuxt/ui/checkbox.ts +236 -0
  75. package/.nuxt/ui/chip.ts +96 -0
  76. package/.nuxt/ui/collapsible.ts +6 -0
  77. package/.nuxt/ui/color-picker.ts +47 -0
  78. package/.nuxt/ui/command-palette.ts +50 -0
  79. package/.nuxt/ui/container.ts +3 -0
  80. package/.nuxt/ui/context-menu.ts +216 -0
  81. package/.nuxt/ui/drawer.ts +126 -0
  82. package/.nuxt/ui/dropdown-menu.ts +217 -0
  83. package/.nuxt/ui/form-field.ts +48 -0
  84. package/.nuxt/ui/form.ts +3 -0
  85. package/.nuxt/ui/index.ts +50 -0
  86. package/.nuxt/ui/input-menu.ts +436 -0
  87. package/.nuxt/ui/input-number.ts +245 -0
  88. package/.nuxt/ui/input.ts +289 -0
  89. package/.nuxt/ui/kbd.ts +31 -0
  90. package/.nuxt/ui/link.ts +22 -0
  91. package/.nuxt/ui/modal.ts +29 -0
  92. package/.nuxt/ui/navigation-menu.ts +501 -0
  93. package/.nuxt/ui/pagination.ts +13 -0
  94. package/.nuxt/ui/pin-input.ts +171 -0
  95. package/.nuxt/ui/popover.ts +6 -0
  96. package/.nuxt/ui/progress.ts +297 -0
  97. package/.nuxt/ui/radio-group.ts +350 -0
  98. package/.nuxt/ui/select-menu.ts +346 -0
  99. package/.nuxt/ui/select.ts +341 -0
  100. package/.nuxt/ui/separator.ts +172 -0
  101. package/.nuxt/ui/skeleton.ts +3 -0
  102. package/.nuxt/ui/slideover.ts +71 -0
  103. package/.nuxt/ui/slider.ts +171 -0
  104. package/.nuxt/ui/stepper.ts +202 -0
  105. package/.nuxt/ui/switch.ts +131 -0
  106. package/.nuxt/ui/table.ts +147 -0
  107. package/.nuxt/ui/tabs.ts +256 -0
  108. package/.nuxt/ui/textarea.ts +294 -0
  109. package/.nuxt/ui/toast.ts +81 -0
  110. package/.nuxt/ui/toaster.ts +91 -0
  111. package/.nuxt/ui/tooltip.ts +9 -0
  112. package/.nuxt/ui/tree.ts +154 -0
  113. package/.nuxt/ui-image-component.ts +1 -0
  114. package/.nuxt/ui.css +143 -0
  115. package/app.vue +16 -36
  116. package/assets/css/nuxt-ui.css +16 -0
  117. package/assets/css/tailwind.css +10 -44
  118. package/components/AppFeature.vue +47 -3
  119. package/components/AppFeatureList.vue +86 -26
  120. package/components/CurrentTime.vue +9 -9
  121. package/components/ignis/IgnisFooter.vue +16 -0
  122. package/components/ignis/IgnisHeader.vue +48 -0
  123. package/components/ignis/IgnisInfo.vue +26 -0
  124. package/composables/useTranslation.ts +11 -4
  125. package/content/second.md +4 -0
  126. package/features.ts +129 -23
  127. package/i18n/i18n.config.ts +2 -2
  128. package/{assets/lang → i18n/locales}/en.json +6 -1
  129. package/i18n/locales/es.json +4 -0
  130. package/nuxt.config.ts +26 -2
  131. package/package.json +71 -79
  132. package/pages/ignis.vue +3 -0
  133. package/pages/index.vue +1 -12
  134. package/tailwind.config.ts +2 -1
  135. package/utils/i18n-sources.ts +20 -2
  136. package/vueform.config.ts +20 -0
  137. package/.gitattributes +0 -2
  138. package/CHANGELOG.md +0 -72
  139. package/LICENSE +0 -21
  140. package/README.md +0 -147
package/features.ts CHANGED
@@ -1,7 +1,12 @@
1
+ import { fileURLToPath } from 'url'
2
+ import { dirname, join } from 'path'
1
3
  import { defu } from 'defu'
2
4
  import OpenProps from 'open-props'
5
+ import tailwindcss from '@tailwindcss/vite'
3
6
  import { log } from './utils/consola'
4
7
 
8
+ const currentDir = dirname(fileURLToPath(import.meta.url))
9
+
5
10
  export function setFeatures() {
6
11
  // list of optional extra features
7
12
  const extras = [] as string[]
@@ -14,46 +19,96 @@ export function setFeatures() {
14
19
  modules: [] as string[],
15
20
  }
16
21
 
17
- // 1. default modules (mandatory)
18
- nuxtConfig.modules.push(
19
- 'nuxt-time',
20
- 'nuxt-security',
21
- '@nuxt/eslint',
22
- '@nuxt/image',
23
- '@nuxt/fonts',
24
- '@nuxt/scripts',
25
- '@pinia/nuxt',
26
- '@vueuse/nuxt',
27
- )
22
+ // 1. core modules
23
+ // (included unless disabled)
24
+
25
+ // https://nuxt.com/modules/eslint
26
+ if (process.env.NUXT_PUBLIC_IGNIS_CORE_ESLINT !== 'false') {
27
+ nuxtConfig.modules.push('@nuxt/eslint')
28
+ }
29
+
30
+ // https://nuxt.com/modules/fonts
31
+ if (process.env.NUXT_PUBLIC_IGNIS_CORE_FONTS !== 'false') {
32
+ nuxtConfig.modules.push('@nuxt/fonts')
33
+ }
34
+
35
+ // https://image.nuxt.com/
36
+ if (process.env.NUXT_PUBLIC_IGNIS_CORE_IMAGE !== 'false') {
37
+ nuxtConfig.modules.push('@nuxt/image')
38
+ }
39
+
40
+ // https://pinia.vuejs.org/ssr/nuxt.html
41
+ if (process.env.NUXT_PUBLIC_IGNIS_CORE_PINIA !== 'false') {
42
+ nuxtConfig.modules.push('@pinia/nuxt')
43
+ }
44
+
45
+ // https://scripts.nuxt.com/
46
+ if (process.env.NUXT_PUBLIC_IGNIS_CORE_SCRIPTS !== 'false') {
47
+ nuxtConfig.modules.push('@nuxt/scripts')
48
+ }
49
+
50
+ // https://nuxt.com/modules/security
51
+ if (process.env.NUXT_PUBLIC_IGNIS_CORE_SECURITY !== 'false') {
52
+ nuxtConfig.modules.push('nuxt-security')
53
+ }
54
+
55
+ // https://nuxt.com/modules/vueuse
56
+ if (process.env.NUXT_PUBLIC_IGNIS_CORE_VUEUSE !== 'false') {
57
+ nuxtConfig.modules.push('@vueuse/nuxt')
58
+ }
28
59
 
29
60
  // 2. optional modules & features
61
+ // (excluded unless enabled)
30
62
 
31
63
  // ui
32
- const uiPreset = process.env.NUXT_PUBLIC_IGNIS_PRESET_UI
33
- if (uiPreset === 'nuxt-ui' || (!uiPreset && process.env.NUXT_PUBLIC_IGNIS_UI === 'true')) {
64
+ let uiPreset = process.env.NUXT_PUBLIC_IGNIS_PRESET_UI
65
+ if (uiPreset && !['nuxt-ui', 'tailwind'].includes(uiPreset)) {
66
+ // surpress other values
67
+ process.env.NUXT_PUBLIC_IGNIS_PRESET_UI = uiPreset = 'off'
68
+ }
69
+
70
+ if (uiPreset === 'nuxt-ui' || process.env.NUXT_PUBLIC_IGNIS_UI === 'true') {
34
71
  nuxtConfig.modules.push('@nuxt/ui')
72
+ // import tailwind css file
73
+ nuxtConfig = defu({
74
+ css: [join(currentDir, './assets/css/nuxt-ui.css')],
75
+ }, nuxtConfig)
35
76
  } else {
36
77
  // remove @nuxt/ui-specific components from resolution if module is not used
37
78
  nuxtConfig = defu({
38
79
  vue: {
39
80
  compilerOptions: {
40
- isCustomElement: (tag: string) => tag === 'Icon',
81
+ isCustomElement: (tag: string) => tag === 'Icon' || tag === 'UApp',
41
82
  },
42
83
  },
43
84
  }, nuxtConfig)
44
85
 
45
86
  // evaluate separate Tailwind CSS module
46
- if (uiPreset === 'tailwind' || (!uiPreset && process.env.NUXT_PUBLIC_IGNIS_TAILWIND === 'true')) {
47
- nuxtConfig.modules.push('@nuxtjs/tailwindcss')
87
+ if (uiPreset === 'tailwind' || (process.env.NUXT_PUBLIC_IGNIS_TAILWIND === 'true' && uiPreset !== 'nuxt-ui')) {
88
+ // nuxtConfig.modules.push('@nuxtjs/tailwindcss') // temporary disabled until v7 is released
89
+ extras.push('Tailwind CSS')
90
+ // import tailwind css file
91
+ nuxtConfig = defu({
92
+ css: [join(currentDir, './assets/css/tailwind.css')],
93
+ vite: {
94
+ plugins: [tailwindcss()], // temporary integration using Vite plugin directly
95
+ },
96
+ }, nuxtConfig)
48
97
  }
49
98
  }
50
99
 
51
100
  // database
52
- const dbPreset = process.env.NUXT_PUBLIC_IGNIS_PRESET_DB
53
- if (dbPreset === 'neon' || (!dbPreset && process.env.NUXT_PUBLIC_IGNIS_NEON === 'true')) {
101
+ let dbPreset = process.env.NUXT_PUBLIC_IGNIS_PRESET_DB
102
+ if (dbPreset && !['neon', 'supabase'].includes(dbPreset)) {
103
+ // surpress other values
104
+ process.env.NUXT_PUBLIC_IGNIS_PRESET_DB = dbPreset = 'off'
105
+ }
106
+
107
+ if (dbPreset === 'neon' || process.env.NUXT_PUBLIC_IGNIS_NEON === 'true') {
54
108
  // module definition
55
109
  nuxtConfig.modules.push('nuxt-neon')
56
- } else if (dbPreset === 'supabase' || (!dbPreset && process.env.NUXT_PUBLIC_IGNIS_SUPABASE === 'true')) {
110
+ }
111
+ if (dbPreset === 'supabase' || process.env.NUXT_PUBLIC_IGNIS_SUPABASE === 'true') {
57
112
  // module definition
58
113
  nuxtConfig.modules.push('@nuxtjs/supabase')
59
114
  // module-specific config key
@@ -72,12 +127,31 @@ export function setFeatures() {
72
127
  nuxtConfig = defu({
73
128
  i18n: {
74
129
  vueI18n: process.env.NUXT_PUBLIC_IGNIS_I18N_CONFIG || './i18n.config.ts',
130
+ // default to defined here because of the way of possibe initializing of @nuxtjs/seo module
131
+ // TODO scanI18Names from './utils/i18n-sources' would be better, but import.meta.glob fails here...
132
+ locales: [process.env.NUXT_PUBLIC_IGNIS_I18N_DEFAULT || 'en'],
133
+ // avoid automatic route-prefixing with multiple locales
134
+ // TODO this needs to be written in docs
135
+ strategy: 'no_prefix',
136
+ // will deprecate in v10
137
+ bundle: {
138
+ optimizeTranslationDirective: false,
139
+ },
75
140
  },
76
141
  }, nuxtConfig)
77
142
  }
78
143
 
79
- // formkit
80
- if (process.env.NUXT_PUBLIC_IGNIS_FORMKIT_ENABLED === 'true') {
144
+ // forms
145
+ let formsPreset = process.env.NUXT_PUBLIC_IGNIS_PRESET_FORMS
146
+ if (formsPreset && !['vueform', 'formkit'].includes(formsPreset)) {
147
+ // surpress other values
148
+ process.env.NUXT_PUBLIC_IGNIS_PRESET_FORMS = formsPreset = 'off'
149
+ }
150
+
151
+ if (formsPreset === 'vueform' || process.env.NUXT_PUBLIC_IGNIS_VUEFORM === 'true') {
152
+ nuxtConfig.modules.push('@vueform/nuxt')
153
+ }
154
+ if (formsPreset === 'formkit' || process.env.NUXT_PUBLIC_IGNIS_FORMKIT_ENABLED === 'true') {
81
155
  // module definition
82
156
  nuxtConfig.modules.push('@formkit/nuxt')
83
157
  // module-specific config key
@@ -89,17 +163,37 @@ export function setFeatures() {
89
163
  }, nuxtConfig)
90
164
  }
91
165
 
166
+ // seo
167
+ // 2025/04 - must be before @nuxt/content (https://nuxtseo.com/docs/nuxt-seo/guides/nuxt-content)
168
+ if (process.env.NUXT_PUBLIC_IGNIS_SEO === 'true') {
169
+ nuxtConfig.modules.push('@nuxtjs/seo')
170
+
171
+ // ogImage and Schema.org modules should be disabled with `ssr: false`
172
+ // note: this won't work if `ssr: false` is set in target's project nuxt.config.ts
173
+ if (process.env.NUXT_PUBLIC_IGNIS_SSR === 'false') {
174
+ nuxtConfig = defu({
175
+ ogImage: { enabled: false },
176
+ schemaOrg: { enabled: false },
177
+ }, nuxtConfig)
178
+ }
179
+ }
180
+
92
181
  // content
93
182
  if (process.env.NUXT_PUBLIC_IGNIS_CONTENT === 'true') {
94
183
  nuxtConfig.modules.push('@nuxt/content')
95
184
  }
96
185
 
186
+ // nuxt-auth-utils
187
+ if (process.env.NUXT_PUBLIC_IGNIS_AUTH === 'true') {
188
+ nuxtConfig.modules.push('nuxt-auth-utils')
189
+ }
190
+
97
191
  // Open Props CSS
98
192
  if (process.env.NUXT_PUBLIC_IGNIS_OPENPROPS === 'true') {
99
193
  extras.push('Open Props CSS')
100
194
  nuxtConfig = defu({
101
195
  // import Open Prpops stylesheet
102
- css: ['~/assets/css/open-props.css'],
196
+ css: [join(currentDir, './assets/css/open-props.css')],
103
197
  // CSS processor for Open Props
104
198
  postcss: {
105
199
  plugins: {
@@ -132,7 +226,19 @@ export function setFeatures() {
132
226
  nuxt.push('pages=false')
133
227
  }
134
228
 
135
- // 4. verify results
229
+ // 4. warn if duplicate modules find
230
+ // this means e.g. 2 database modules or 2 form solutions
231
+ if (process.env.NUXT_PUBLIC_IGNIS_WARN_DUPLICATES !== 'false') {
232
+ const used = nuxtConfig.modules
233
+ if (used.includes('nuxt-neon') && used.includes('nuxt-neon')) {
234
+ log.warn('You have both DB connector modules (Neon and Supabase) active, which is not recommended. If this is intentional, you can use `process.env.NUXT_PUBLIC_IGNIS_WARN_DUPLICATES=false` to surpress this warning.')
235
+ }
236
+ if (used.includes('@vueform/nuxt') && used.includes('@formkit/nuxt')) {
237
+ log.warn('You have both Form solution provider modules (Vueform and Formkit) active, which is not recommended. If this is intentional, you can use `process.env.NUXT_PUBLIC_IGNIS_WARN_DUPLICATES=false` to surpress this warning.')
238
+ }
239
+ }
240
+
241
+ // 5. verify results
136
242
  // TODO why this run twice?
137
243
 
138
244
  let overview = 'Nuxt Ignis will start using following settings:\n'
@@ -3,10 +3,10 @@ const ignisLocale = process.env.NUXT_PUBLIC_IGNIS_I18N_DEFAULT || 'en'
3
3
  // https://i18n.nuxtjs.org/docs/composables/define-i18n-config
4
4
  export default defineI18nConfig(() => ({
5
5
  legacy: false,
6
- strategy: 'no_prefix',
7
6
  locale: ignisLocale,
7
+ locales: scanI18Names(), // will dynamically load all available locale definitions from @/i18n/locales/*
8
8
  defaultLocale: ignisLocale,
9
9
  fallbackLocale: ignisLocale,
10
- messages: scanI18NSources(), // will dynamically load all .jsons from @/assets/lang/*
10
+ messages: scanI18NSources(), // will dynamically load all .jsons from @/i18n/locales/*
11
11
  warnHtmlMessage: false,
12
12
  }))
@@ -7,21 +7,26 @@
7
7
  "goto2" : "Go to 2nd page",
8
8
  "features" : {
9
9
  "nuxt" : "Nuxt application framework atop Vue.js",
10
+ "consola" : "Logging with unjs/consola",
11
+ "eslint" : "Linting for better DevEx",
10
12
  "security" : "Nuxt Security module helping with OWASP patterns",
11
13
  "image" : "Nuxt Image to optimize use of images",
12
14
  "scripts" : "Nuxt Scripts to allow simple execution of external scripts",
13
15
  "fonts" : "Nuxt Fonts to allow simple integration of various fonts",
14
16
  "pinia" : "Pinia for state management",
15
17
  "vueuse" : "VueUse utils available",
18
+ "time" : "SSR-friendly real time rendering",
16
19
  "i18n" : "I18n for translations",
17
- "consola" : "Logging with unjs/consola",
18
20
  "ui" : "Nuxt UI as UI components library",
19
21
  "tailwind" : "Tailwind CSS for styling",
20
22
  "icon" : "Icon module for displaying icons",
21
23
  "supabase" : "Supabase for auth and DB services",
22
24
  "neon" : "Neon for DB services",
23
25
  "formkit" : "FormKit for input forms",
26
+ "vueform" : "Vueform for input forms",
24
27
  "content" : "Nuxt Content for creating and editing content",
28
+ "seo" : "Nuxt SEO collection of SEO-related modules",
29
+ "auth" : "Nuxt Auth Utils for easy and secure authentication",
25
30
  "openprops" : "Additional CSS by Open Props"
26
31
  }
27
32
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "title" : "Nuxt Ignis",
3
+ "subtitle" : "Una configuración lista para usar para su próxima aplicación en Nuxt"
4
+ }
package/nuxt.config.ts CHANGED
@@ -12,7 +12,7 @@ const nuxtConfig = defu(ignisFeatures, {
12
12
  ],
13
13
 
14
14
  // https://nuxt.com/docs/api/nuxt-config#compatibilitydate
15
- compatibilityDate: '2025-03-20',
15
+ compatibilityDate: '2025-05-21',
16
16
 
17
17
  // simple eslint config - see eslint.config.mjs
18
18
  eslint: {
@@ -50,12 +50,28 @@ const nuxtConfig = defu(ignisFeatures, {
50
50
  // nuxt-related config
51
51
  ssr: true, // true/false
52
52
  pages: true, // true/false
53
+
53
54
  // presets
54
55
  preset: {
55
56
  ui: 'off', // nuxt-ui/tailwind/off
56
57
  db: 'off', // neon/supabase/off
58
+ forms: 'off', // formkit/vueform/off
59
+ },
60
+
61
+ // core modules
62
+ // (may be disabled by explicitly setting "false")
63
+ core: {
64
+ eslint: true,
65
+ fonts: true,
66
+ image: true,
67
+ pinia: true,
68
+ time: true,
69
+ scripts: true,
70
+ security: true,
71
+ vueuse: true,
57
72
  },
58
- // individual modules
73
+
74
+ // optional modules
59
75
  ui: false, // true/false
60
76
  tailwind: false, // true/false (ignored, if ui=true)
61
77
  neon: false, // true/false
@@ -70,12 +86,20 @@ const nuxtConfig = defu(ignisFeatures, {
70
86
  default: 'en', // default locale (should be same as i18n)
71
87
  config: './formkit.config.ts', // path to config file
72
88
  },
89
+ vueform: false, // true/false
73
90
  content: false, // true/false
74
91
  openprops: false, // true/false
75
92
  pslo: {
76
93
  enabled: false, // true/false (elrh-pslo will (not) be used)
77
94
  content: false, // true/false (elrh-pslo will (not) be aplied on nuxt-content)
78
95
  },
96
+ seo: false, // true/false
97
+ auth: false, // true/false
98
+
99
+ // extra behavior
100
+ warn: {
101
+ duplicates: true, // true/false
102
+ },
79
103
  },
80
104
  },
81
105
  },
package/package.json CHANGED
@@ -1,79 +1,71 @@
1
- {
2
- "name": "nuxt-ignis",
3
- "version": "0.2.5",
4
- "description": "Enhanced and customizable Nuxt application starter pack",
5
- "keywords": [
6
- "nuxt",
7
- "nuxtjs",
8
- "nuxt3",
9
- "starter"
10
- ],
11
- "author": "Alois Seckar <alois.seckar@gmail.com>",
12
- "homepage": "https://github.com/AloisSeckar/nuxt-ignis",
13
- "repository": {
14
- "type": "git",
15
- "url": "git+https://github.com/AloisSeckar/nuxt-ignis.git"
16
- },
17
- "bugs": {
18
- "url": "https://github.com/AloisSeckar/nuxt-ignis/issues",
19
- "email": "alois.seckar@gmail.com"
20
- },
21
- "license": "MIT",
22
- "type": "module",
23
- "main": "./nuxt.config.ts",
24
- "engines": {
25
- "node": ">=18.0.0"
26
- },
27
- "scripts": {
28
- "analyze": "nuxt analyze",
29
- "eslint": "eslint .",
30
- "build": "nuxt build",
31
- "dev": "nuxt dev",
32
- "generate": "nuxt generate",
33
- "preview": "nuxt preview",
34
- "start": "nuxt start",
35
- "test": "vitest run"
36
- },
37
- "dependencies": {
38
- "@formkit/nuxt": "1.6.9",
39
- "@nuxt/content": "3.4.0",
40
- "@nuxt/eslint": "1.2.0",
41
- "@nuxt/fonts": "0.11.0",
42
- "@nuxt/image": "1.10.0",
43
- "@nuxt/scripts": "0.11.2",
44
- "@nuxt/ui": "2.21.1",
45
- "@nuxtjs/i18n": "9.3.3",
46
- "@nuxtjs/supabase": "1.5.0",
47
- "@nuxtjs/tailwindcss": "6.13.2",
48
- "@pinia/nuxt": "0.10.1",
49
- "@vueuse/core": "13.0.0",
50
- "@vueuse/nuxt": "13.0.0",
51
- "consola": "3.4.2",
52
- "defu": "6.1.4",
53
- "elrh-pslo": "1.1.6",
54
- "nuxt-neon": "0.4.0",
55
- "nuxt-security": "2.2.0",
56
- "nuxt-spec": "0.0.4",
57
- "nuxt-time": "1.0.3",
58
- "open-props": "1.7.14",
59
- "pinia": "3.0.1",
60
- "postcss-jit-props": "1.0.16",
61
- "typescript": "5.7.3"
62
- },
63
- "pnpm": {
64
- "overrides": {
65
- "@nuxt/kit": "3.16.1",
66
- "eslint": "9.16.0",
67
- "esbuild": "^0.25.0",
68
- "vite": "^6.2.3",
69
- "vue-i18n": "^10.0.6",
70
- "@babel/helpers": "^7.26.10"
71
- }
72
- },
73
- "devDependencies": {
74
- "nuxt": "3.16.1",
75
- "vue": "3.5.13",
76
- "vue-router": "4.5.0"
77
- },
78
- "packageManager": "pnpm@9.15.9"
79
- }
1
+ {
2
+ "name": "nuxt-ignis",
3
+ "version": "0.3.1",
4
+ "description": "Enhanced and customizable Nuxt application starter pack",
5
+ "keywords": [
6
+ "nuxt",
7
+ "nuxtjs",
8
+ "nuxt3",
9
+ "starter"
10
+ ],
11
+ "author": "Alois Seckar <alois.seckar@gmail.com>",
12
+ "homepage": "https://github.com/AloisSeckar/nuxt-ignis",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/AloisSeckar/nuxt-ignis.git"
16
+ },
17
+ "bugs": {
18
+ "url": "https://github.com/AloisSeckar/nuxt-ignis/issues",
19
+ "email": "alois.seckar@gmail.com"
20
+ },
21
+ "license": "MIT",
22
+ "type": "module",
23
+ "main": "./nuxt.config.ts",
24
+ "engines": {
25
+ "node": ">=18.0.0"
26
+ },
27
+ "dependencies": {
28
+ "@formkit/nuxt": "1.6.9",
29
+ "@nuxt/content": "3.5.1",
30
+ "@nuxt/eslint": "1.4.1",
31
+ "@nuxt/fonts": "0.11.4",
32
+ "@nuxt/image": "1.10.0",
33
+ "@nuxt/scripts": "0.11.7",
34
+ "@nuxt/ui": "3.1.2",
35
+ "@nuxtjs/i18n": "9.5.4",
36
+ "@nuxtjs/seo": "3.0.3",
37
+ "@nuxtjs/supabase": "1.5.1",
38
+ "@nuxtjs/tailwindcss": "6.14.0",
39
+ "@pinia/nuxt": "0.11.0",
40
+ "@vueform/nuxt": "1.13.0",
41
+ "@vueuse/core": "13.2.0",
42
+ "@vueuse/nuxt": "13.2.0",
43
+ "@tailwindcss/vite": "4.1.7",
44
+ "consola": "3.4.2",
45
+ "defu": "6.1.4",
46
+ "elrh-pslo": "1.1.6",
47
+ "nuxt-auth-utils": "0.5.20",
48
+ "nuxt-neon": "0.6.0",
49
+ "nuxt-security": "2.2.0",
50
+ "nuxt-spec": "0.0.4",
51
+ "open-props": "1.7.15",
52
+ "pinia": "3.0.2",
53
+ "postcss-jit-props": "1.0.16",
54
+ "typescript": "5.8.3"
55
+ },
56
+ "devDependencies": {
57
+ "nuxt": "3.17.4",
58
+ "vue": "3.5.14",
59
+ "vue-router": "4.5.1"
60
+ },
61
+ "scripts": {
62
+ "analyze": "nuxt analyze",
63
+ "eslint": "eslint .",
64
+ "build": "nuxt build",
65
+ "dev": "nuxt dev",
66
+ "generate": "nuxt generate",
67
+ "preview": "nuxt preview",
68
+ "start": "nuxt start",
69
+ "test": "vitest run"
70
+ }
71
+ }
@@ -0,0 +1,3 @@
1
+ <template>
2
+ <IgnisInfo />
3
+ </template>
package/pages/index.vue CHANGED
@@ -13,16 +13,5 @@
13
13
  -->
14
14
 
15
15
  <template>
16
- <div>
17
- <AppFeatureList />
18
- <div class="link">
19
- <NuxtLink to="/second">
20
- {{ useT("goto2") }}
21
- </NuxtLink>
22
- </div>
23
- </div>
16
+ <IgnisInfo />
24
17
  </template>
25
-
26
- <script setup lang="ts">
27
- import { useT } from '#imports' // requires explicit import for some reason
28
- </script>
@@ -5,7 +5,8 @@ import plugin from 'tailwindcss/plugin'
5
5
 
6
6
  module.exports = {
7
7
  content: [
8
- './src/**/*.{html,js,vue}',
8
+ // include Nuxt Content files into array scanned by Tailwind CSS
9
+ 'srcDir/content/**/*.{md,yml,json}',
9
10
  ],
10
11
  theme: {
11
12
  // example of extending Tailwind CSS with custom color
@@ -1,10 +1,14 @@
1
- // scans @/assets/lang/* for all .json files with i18n messages
1
+ // scans @/i18n/locales/* for all .json files with i18n messages
2
2
  // and makes them available for i18n.config.ts
3
3
 
4
4
  import type { LocaleMessage } from '@intlify/core-base'
5
5
 
6
+ function getAvailableLocales() {
7
+ return import.meta.glob('@/i18n/locales/*.json', { eager: true })
8
+ }
9
+
6
10
  export function scanI18NSources() {
7
- const modules = import.meta.glob('@/assets/lang/*.json', { eager: true })
11
+ const modules = getAvailableLocales()
8
12
 
9
13
  const messages = {} as { [x: string]: LocaleMessage<unknown> }
10
14
  for (const path in modules) {
@@ -16,3 +20,17 @@ export function scanI18NSources() {
16
20
 
17
21
  return messages
18
22
  }
23
+
24
+ export function scanI18Names() {
25
+ const modules = getAvailableLocales()
26
+
27
+ const locales = [] as string[]
28
+ for (const path in modules) {
29
+ const locale = path.match(/\/([^/]+)\.json$/)
30
+ if (locale && locale[1]) {
31
+ locales.push(locale[1])
32
+ }
33
+ }
34
+
35
+ return locales
36
+ }
@@ -0,0 +1,20 @@
1
+ // this is basic "getting started" configuration example
2
+ // for more options check:
3
+ // https://vueform.com/docs/configuration
4
+
5
+ import en from '@vueform/vueform/locales/en'
6
+ import vueform from '@vueform/vueform/dist/vueform'
7
+ import { defineConfig } from '@vueform/vueform'
8
+
9
+ // add Vueform type definitions
10
+ import '@vueform/vueform/types/index.d.ts'
11
+
12
+ // add default CSS styles
13
+ // can be placed anywhere else in your project
14
+ import '@vueform/vueform/dist/vueform.css'
15
+
16
+ export default defineConfig({
17
+ theme: vueform,
18
+ locales: { en },
19
+ locale: 'en',
20
+ })
package/.gitattributes DELETED
@@ -1,2 +0,0 @@
1
- # Auto detect text files and perform LF normalization
2
- * text=auto
package/CHANGELOG.md DELETED
@@ -1,72 +0,0 @@
1
- # Changelog
2
-
3
- ## 0.2.5 (2025-03-26)
4
- - build: move `vue` and `vue-router` to devDepencencies (should allow smooth Netlify deployment)
5
- - build: fix Vite security issue
6
-
7
- ## 0.2.4 (2025-03-20)
8
- - build: bump `Nuxt` to `3.16.1`, `Nuxt Content` to `3.4.0` + update other deps
9
- - build: fix some security issues
10
- - fix: update necessary default config for `@nuxtjs/i18n`
11
-
12
- ## 0.2.3 (2025-03-08)
13
- - build: bump `Nuxt` to `3.16.0` + update other deps
14
-
15
- ## 0.2.2 (2025-02-25)
16
- - build: bump `nuxt-spec` and `nuxt-neon`
17
- - build: return `postcss-jit-props` dependency after a [bug gets fixed](https://github.com/GoogleChromeLabs/postcss-jit-props/commit/0c98b5367935b9c048a547400ee8346cb6c07b00)
18
-
19
- ## 0.2.1 (2025-02-17)
20
- - feat: `@nuxt/fonts` included into built-in dependencies
21
- - fix: added default content.config.ts to avoid warning on startup
22
- - build: fixed couple of version issues in lock file
23
-
24
- ## 0.2.0 (2025-02-09)
25
- - feat: breaking change update to `@nuxt/content v3` - in case of problems, see [migration guide](https://content.nuxt.com/docs/getting-started/migration)
26
- - feat: `@nuxt/scripts` included into built-in dependencies
27
- - build: Vite and Nuxt Kit version fix
28
-
29
- ## 0.1.10 (2025-02-06)
30
- - feat: update `nuxt-neon` to allow server-side exports
31
- - feat: remove `useIgnisI18n` again as it is NOT needed
32
- - fix: pin down `i18n` due to current regression
33
- - build: security updates
34
-
35
- ## 0.1.9 (2025-02-03)
36
- - feat: expose `useI18n` composable via custom `useIgnisI18n`
37
-
38
- ## 0.1.8 (2025-02-02)
39
- - build: fix `nuxt-neon` security issue
40
- - build: fix `vite` security issue
41
-
42
- ## 0.1.7 (2025-01-31)
43
- - feat: unified test-pack included via separate `nuxt-spec` layer
44
- - feat: support `ssr` and `pages` settings
45
- - feat: display log level setting on startup
46
- - refactor: log level setting moved inside `ignis` config
47
- - build: updated deps
48
-
49
- ## 0.1.6 (2024-12-25)
50
- - build: bump Nuxt to `3.15.0` + update other deps
51
-
52
- ## 0.1.5 (2024-12-21)
53
- - feat: more flexible config for `i18n` and `formkit`
54
- - docs: improved instructions for using as a layer
55
-
56
- ## 0.1.4 (2024-12-07)
57
- - feat: include `elrh-pslo` text utility
58
- - docs: add instructions for using as a layer
59
-
60
- ## 0.1.3 (2024-12-05)
61
- - build: bump nuxt-neon to `0.2.4`
62
-
63
- ## 0.1.2 (2024-12-05)
64
- - fix: update package.json according to Nuxt docs
65
-
66
- ## 0.1.1 (2024-12-05)
67
- - build: bump nuxt-neon to `0.2.0`
68
- - fix: features page listing
69
- - docs: add CHANGELOG.md
70
-
71
- ## 0.1.0 (2024-12-02)
72
- - initial release [v0.1.0](https://github.com/AloisSeckar/nuxt-ignis/releases/tag/v0.1.0)