nuxt-ignis 0.3.3 → 0.4.0-rc.2

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 (143) hide show
  1. package/.data/content/contents.sqlite +0 -0
  2. package/.env +8 -2
  3. package/.nuxt/app.config.mjs +2 -2
  4. package/.nuxt/cache/fonts/EP1810cmAtyahQPDHB6nvBzRkIG5RcNv4u5vTy1aYHU-Ih_Po7WkbhDymI0Y_ntmpz__bZJprHiu7_c5N_X6AAA.woff2 +0 -0
  5. package/.nuxt/cache/fonts/JNWOTRocaYj0gq52vW_s7sHAdSMUetrRmhhggCVxyZ0-TnR4PP30hI5UWldZ0knUBrHkvIoiDWYXwn2v1NtCh80.woff2 +0 -0
  6. package/.nuxt/cache/fonts/XbAtjIvy1UErjg9eu_v7X3zPLS_AwsmqVsR9fG-JB6o-H99o9_8BZXq7ey5UyS99Wn9zX0V0anvpXEqAqavcJlQ.woff2 +0 -0
  7. package/.nuxt/cache/fonts/ZLm6CLvwhQbamZ73M80jbqz7DuOkHlT_HRyXHG7YfVs-eYLoSJPWhqR5CE0c8XPABls8kE_7Fc7F2x7Gtfsg_8M.woff2 +0 -0
  8. package/.nuxt/cache/fonts/aPa9az0DeE4U5rqM-Ov0Vl_obQis_d6sScLNygGkvxw-s32Y9TxBLZRr_ebRHQ3l3q1g2j_0tPT879PPSBGrj8A.woff2 +0 -0
  9. package/.nuxt/cache/fonts/kgyHMsxRmhh06xcV0yKMKdTKQBsQpXGi7erqwaqgjXg-55rzD39AWoqYSkQOLHuoKZUDVcDSlXRKdaymIN2dXes.woff +0 -0
  10. package/.nuxt/components.d.ts +606 -394
  11. package/.nuxt/content/components.ts +107 -98
  12. package/.nuxt/content/database.compressed.mjs +1 -1
  13. package/.nuxt/content/manifest.ts +6 -6
  14. package/.nuxt/content/sql_dump.txt +5 -0
  15. package/.nuxt/content/types.d.ts +8 -0
  16. package/.nuxt/dev/index.mjs +1584 -559
  17. package/.nuxt/dev/index.mjs.map +1 -1
  18. package/.nuxt/dist/server/client.manifest.json +2 -2
  19. package/.nuxt/dist/server/client.manifest.mjs +2 -2
  20. package/.nuxt/eslint-typegen.d.ts +256 -225
  21. package/.nuxt/eslint.config.d.mts +3 -3
  22. package/.nuxt/eslint.config.mjs +11 -11
  23. package/.nuxt/imports.d.ts +70 -54
  24. package/.nuxt/manifest/latest.json +1 -1
  25. package/.nuxt/manifest/meta/dev.json +1 -1
  26. package/.nuxt/mdc-image-component.mjs +1 -1
  27. package/.nuxt/module/@nuxtjs-sitemap.d.ts +9 -8
  28. package/.nuxt/module/nuxt-robots.d.ts +37 -7
  29. package/.nuxt/{modules/@nuxt-scripts.d.ts → module/nuxt-scripts.d.ts} +1 -2
  30. package/.nuxt/module/nuxt-seo-utils.assets.d.ts +3 -3
  31. package/.nuxt/module/nuxt-seo-utils.d.ts +20 -6
  32. package/.nuxt/module/nuxt-site-config.d.ts +8 -8
  33. package/.nuxt/nitro.json +5 -5
  34. package/.nuxt/nuxt.d.ts +12 -9
  35. package/.nuxt/nuxt.json +2 -2
  36. package/.nuxt/tsconfig.json +235 -153
  37. package/.nuxt/tsconfig.server.json +126 -92
  38. package/.nuxt/types/app.config.d.ts +2 -2
  39. package/.nuxt/types/build.d.ts +2 -1
  40. package/.nuxt/types/i18n-plugin.d.ts +2 -2
  41. package/.nuxt/types/imports.d.ts +407 -314
  42. package/.nuxt/types/nitro-config.d.ts +2 -2
  43. package/.nuxt/types/nitro-imports.d.ts +143 -134
  44. package/.nuxt/types/nitro-nuxt.d.ts +2 -0
  45. package/.nuxt/types/nitro-routes.d.ts +17 -17
  46. package/.nuxt/types/plugins.d.ts +34 -34
  47. package/.nuxt/types/schema.d.ts +322 -12
  48. package/.nuxt/ui/avatar.ts +1 -1
  49. package/.nuxt/ui/card.ts +1 -1
  50. package/.nuxt/ui/carousel.ts +1 -1
  51. package/.nuxt/ui/command-palette.ts +1 -0
  52. package/.nuxt/ui/drawer.ts +1 -1
  53. package/.nuxt/ui/index.ts +2 -0
  54. package/.nuxt/ui/input-menu.ts +24 -10
  55. package/.nuxt/ui/input-tags.ts +310 -0
  56. package/.nuxt/ui/modal.ts +1 -1
  57. package/.nuxt/ui/navigation-menu.ts +1 -1
  58. package/.nuxt/ui/select-menu.ts +11 -6
  59. package/.nuxt/ui/select.ts +11 -6
  60. package/.nuxt/ui/table.ts +3 -2
  61. package/.nuxt/ui/timeline.ts +321 -0
  62. package/.nuxt/ui/toaster.ts +1 -1
  63. package/.nuxt/ui-image-component.ts +1 -1
  64. package/app.vue +2 -6
  65. package/assets/css/ignis-nuxt-ui.css +24 -0
  66. package/assets/css/{open-props.css → ignis-open-props.css} +1 -1
  67. package/assets/css/ignis-tailwind.css +23 -0
  68. package/assets/css/ignis.css +31 -0
  69. package/bin/make-eslint.js +55 -0
  70. package/components/CurrentTime.vue +4 -2
  71. package/components/ignis/IgnisConfig.vue +44 -0
  72. package/components/{AppFeature.vue → ignis/IgnisFeature.vue} +2 -1
  73. package/components/ignis/IgnisFeatureList.vue +111 -0
  74. package/components/ignis/IgnisFooter.vue +2 -2
  75. package/components/ignis/IgnisHeader.vue +4 -3
  76. package/components/ignis/IgnisInfo.vue +14 -13
  77. package/components/ignis/IgnisWelcome.vue +89 -0
  78. package/composables/useTranslation.ts +18 -9
  79. package/features.ts +68 -10
  80. package/formkit.config.ts +8 -8
  81. package/i18n/locales/en.json +10 -4
  82. package/nuxt.config.ts +30 -2
  83. package/package.json +29 -21
  84. package/pages/_ignis-config.vue +3 -0
  85. package/pages/_ignis-info.vue +3 -0
  86. package/pages/index.vue +4 -6
  87. package/public/_ignis-config.json +98 -0
  88. package/test/config/css-multiple.txt +30 -0
  89. package/test/config/css-nuxt-ui.txt +34 -0
  90. package/test/config/css-open-props.txt +2307 -0
  91. package/test/config/css-single.txt +28 -0
  92. package/test/config/css-tailwind.txt +58 -0
  93. package/test/config/custom-lang.txt +27 -0
  94. package/test/config/db-neon.txt +28 -0
  95. package/test/config/db-supabase.txt +31 -0
  96. package/test/config/default.txt +26 -15
  97. package/test/config/equipment-1-composable.txt +32 -21
  98. package/test/config/equipment-2-plugins.txt +33 -22
  99. package/test/config/equipment-all.txt +38 -27
  100. package/test/config/forms-formkit.txt +32 -0
  101. package/test/config/forms-vueform.txt +28 -0
  102. package/test/config/i18n.txt +38 -0
  103. package/test/config/no-default-css.txt +24 -0
  104. package/test/config/open-props.txt +2306 -0
  105. package/test/config/seo-ssr-false.txt +35 -0
  106. package/test/config/ui-nuxt-ui.txt +33 -0
  107. package/test/config/ui-tailwind.txt +57 -0
  108. package/test/config.test.ts +115 -0
  109. package/test/features/charts.txt +4 -0
  110. package/test/features/custom-css.txt +4 -0
  111. package/test/features/custom-title.txt +4 -0
  112. package/test/features/db-neon.txt +4 -3
  113. package/test/features/db-off.txt +4 -3
  114. package/test/features/db-supabase.txt +4 -3
  115. package/test/features/default.txt +4 -3
  116. package/test/features/disable-core.txt +2 -1
  117. package/test/features/enable-all.txt +5 -4
  118. package/test/features/equipment.txt +4 -3
  119. package/test/features/forms-formkit.txt +4 -3
  120. package/test/features/forms-off.txt +4 -3
  121. package/test/features/forms-vueform.txt +4 -3
  122. package/test/features/no-default-css.txt +4 -0
  123. package/test/features/regexp.txt +4 -0
  124. package/test/features/ui-nuxt-ui.txt +4 -3
  125. package/test/features/ui-off.txt +4 -3
  126. package/test/features/ui-tailwind.txt +5 -4
  127. package/test/features/validation-off.txt +4 -3
  128. package/test/features/validation-valibot.txt +5 -4
  129. package/test/features/validation-zod.txt +5 -4
  130. package/test/features.test.ts +37 -1
  131. package/utils/config/formkit.ts +23 -0
  132. package/utils/formkit.ts +16 -0
  133. package/utils/pslo-utils.ts +2 -1
  134. package/.nuxt/content/sql_dump +0 -6
  135. package/app.config.ts +0 -3
  136. package/assets/css/nuxt-ui.css +0 -16
  137. package/assets/css/tailwind.css +0 -15
  138. package/components/AppFeatureList.vue +0 -124
  139. package/content/second.md +0 -11
  140. package/pages/ignis.vue +0 -3
  141. package/pages/second.vue +0 -59
  142. package/server/plugins/pslo-content.ts +0 -17
  143. package/tailwind.config.ts +0 -29
@@ -0,0 +1,35 @@
1
+ {
2
+ "app": {
3
+ "head": {
4
+ "htmlAttrs": {
5
+ "lang": "en",
6
+ },
7
+ "title": "Nuxt Ignis App",
8
+ },
9
+ },
10
+ "css": [
11
+ "C:\Git\nuxt-ignis\core\assets\css\ignis.css",
12
+ ],
13
+ "modules": [
14
+ "@nuxt/eslint",
15
+ "@nuxt/fonts",
16
+ "@nuxt/image",
17
+ "@nuxt/scripts",
18
+ "nuxt-security",
19
+ "@vueuse/nuxt",
20
+ "@pinia/nuxt",
21
+ "@nuxtjs/seo",
22
+ ],
23
+ "ogImage": {
24
+ "enabled": false,
25
+ },
26
+ "schemaOrg": {
27
+ "enabled": false,
28
+ },
29
+ "ssr": false,
30
+ "vue": {
31
+ "compilerOptions": {
32
+ "isCustomElement": [Function],
33
+ },
34
+ },
35
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "app": {
3
+ "head": {
4
+ "htmlAttrs": {
5
+ "lang": "en",
6
+ },
7
+ "title": "Nuxt Ignis App",
8
+ },
9
+ },
10
+ "css": [
11
+ "C:\Git\nuxt-ignis\core\assets\css\ignis.css",
12
+ "C:\Git\nuxt-ignis\core\assets\css\ignis-nuxt-ui.css",
13
+ ],
14
+ "modules": [
15
+ "@nuxt/eslint",
16
+ "@nuxt/fonts",
17
+ "@nuxt/image",
18
+ "@nuxt/scripts",
19
+ "nuxt-security",
20
+ "@vueuse/nuxt",
21
+ "@pinia/nuxt",
22
+ "@nuxt/ui",
23
+ ],
24
+ "vite": {
25
+ "plugins": [
26
+ {
27
+ "apply": "build",
28
+ "configResolved": [Function],
29
+ "name": "vite-plugin-ignore-sourcemap-warnings",
30
+ },
31
+ ],
32
+ },
33
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "app": {
3
+ "head": {
4
+ "htmlAttrs": {
5
+ "lang": "en",
6
+ },
7
+ "title": "Nuxt Ignis App",
8
+ },
9
+ },
10
+ "css": [
11
+ "C:\Git\nuxt-ignis\core\assets\css\ignis.css",
12
+ "C:\Git\nuxt-ignis\core\assets\css\ignis-tailwind.css",
13
+ ],
14
+ "modules": [
15
+ "@nuxt/eslint",
16
+ "@nuxt/fonts",
17
+ "@nuxt/image",
18
+ "@nuxt/scripts",
19
+ "nuxt-security",
20
+ "@vueuse/nuxt",
21
+ "@pinia/nuxt",
22
+ ],
23
+ "vite": {
24
+ "plugins": [
25
+ {
26
+ "apply": "build",
27
+ "configResolved": [Function],
28
+ "name": "vite-plugin-ignore-sourcemap-warnings",
29
+ },
30
+ [
31
+ {
32
+ "configResolved": [Function],
33
+ "configureServer": [Function],
34
+ "enforce": "pre",
35
+ "name": "@tailwindcss/vite:scan",
36
+ },
37
+ {
38
+ "apply": "serve",
39
+ "enforce": "pre",
40
+ "name": "@tailwindcss/vite:generate:serve",
41
+ "transform": [Function],
42
+ },
43
+ {
44
+ "apply": "build",
45
+ "enforce": "pre",
46
+ "name": "@tailwindcss/vite:generate:build",
47
+ "transform": [Function],
48
+ },
49
+ ],
50
+ ],
51
+ },
52
+ "vue": {
53
+ "compilerOptions": {
54
+ "isCustomElement": [Function],
55
+ },
56
+ },
57
+ }
@@ -21,6 +21,73 @@ describe('nuxtConfig unit tests', () => {
21
21
  await expect(nuxtConfig).toMatchFileSnapshot('./config/default.txt')
22
22
  })
23
23
 
24
+ // UI
25
+
26
+ test('nuxtConfig - UI - Nuxt UI', async () => {
27
+ process.env.NUXT_PUBLIC_IGNIS_UI = 'true'
28
+ const nuxtConfig = setFeatures()
29
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/ui-nuxt-ui.txt')
30
+ })
31
+
32
+ test('nuxtConfig - UI - Tailwind', async () => {
33
+ process.env.NUXT_PUBLIC_IGNIS_TAILWIND = 'true'
34
+ const nuxtConfig = setFeatures()
35
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/ui-tailwind.txt')
36
+ })
37
+
38
+ // DB
39
+
40
+ test('nuxtConfig - DB - Neon', async () => {
41
+ process.env.NUXT_PUBLIC_IGNIS_NEON = 'true'
42
+ const nuxtConfig = setFeatures()
43
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/db-neon.txt')
44
+ })
45
+
46
+ test('nuxtConfig - DB - Supabase', async () => {
47
+ process.env.NUXT_PUBLIC_IGNIS_SUPABASE = 'true'
48
+ const nuxtConfig = setFeatures()
49
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/db-supabase.txt')
50
+ })
51
+
52
+ // forms
53
+
54
+ test('nuxtConfig - Forms - Vueform', async () => {
55
+ process.env.NUXT_PUBLIC_IGNIS_VUEFORM = 'true'
56
+ const nuxtConfig = setFeatures()
57
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/forms-vueform.txt')
58
+ })
59
+
60
+ test('nuxtConfig - Forms - Formkit', async () => {
61
+ process.env.NUXT_PUBLIC_IGNIS_FORMKIT_ENABLED = 'true'
62
+ const nuxtConfig = setFeatures()
63
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/forms-formkit.txt')
64
+ })
65
+
66
+ // i18n
67
+
68
+ test('nuxtConfig - i18n', async () => {
69
+ process.env.NUXT_PUBLIC_IGNIS_I18N_ENABLED = 'true'
70
+ const nuxtConfig = setFeatures()
71
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/i18n.txt')
72
+ })
73
+
74
+ // SEO
75
+
76
+ test('nuxtConfig - SEO + ssr=false', async () => {
77
+ process.env.NUXT_PUBLIC_IGNIS_SEO = 'true'
78
+ process.env.NUXT_PUBLIC_IGNIS_SSR = 'false'
79
+ const nuxtConfig = setFeatures()
80
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/seo-ssr-false.txt')
81
+ })
82
+
83
+ // Open Props
84
+
85
+ test('nuxtConfig - Open Props', async () => {
86
+ process.env.NUXT_PUBLIC_IGNIS_OPENPROPS = 'true'
87
+ const nuxtConfig = setFeatures()
88
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/open-props.txt')
89
+ })
90
+
24
91
  // Vue Equipment
25
92
 
26
93
  test('nuxtConfig - Vue Equipment - 1 composable', async () => {
@@ -44,4 +111,52 @@ describe('nuxtConfig unit tests', () => {
44
111
  const nuxtConfig = setFeatures()
45
112
  await expect(nuxtConfig).toMatchFileSnapshot('./config/equipment-all.txt')
46
113
  })
114
+
115
+ // custom CSS files
116
+ test('nuxtConfig - custom CSS files - single', async () => {
117
+ process.env.NUXT_PUBLIC_IGNIS_CSS = 'first.css '
118
+ const nuxtConfig = setFeatures()
119
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/css-single.txt')
120
+ })
121
+
122
+ test('nuxtConfig - custom CSS files - multiple', async () => {
123
+ process.env.NUXT_PUBLIC_IGNIS_CSS = ' first.css , second.css,third.css'
124
+ const nuxtConfig = setFeatures()
125
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/css-multiple.txt')
126
+ })
127
+
128
+ test('nuxtConfig - custom CSS files - with Nuxt UI', async () => {
129
+ process.env.NUXT_PUBLIC_IGNIS_CSS = 'custom.css'
130
+ process.env.NUXT_PUBLIC_IGNIS_UI = 'true'
131
+ const nuxtConfig = setFeatures()
132
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/css-nuxt-ui.txt')
133
+ })
134
+
135
+ test('nuxtConfig - custom CSS files - with Tailwind CSS', async () => {
136
+ process.env.NUXT_PUBLIC_IGNIS_CSS = 'custom.css'
137
+ process.env.NUXT_PUBLIC_IGNIS_TAILWIND = 'true'
138
+ const nuxtConfig = setFeatures()
139
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/css-tailwind.txt')
140
+ })
141
+
142
+ test('nuxtConfig - custom CSS files - with Open Props', async () => {
143
+ process.env.NUXT_PUBLIC_IGNIS_CSS = 'custom.css'
144
+ process.env.NUXT_PUBLIC_IGNIS_OPENPROPS = 'true'
145
+ const nuxtConfig = setFeatures()
146
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/css-open-props.txt')
147
+ })
148
+
149
+ // HTML
150
+
151
+ test('setFeatures() - custom html lang', async () => {
152
+ process.env.NUXT_PUBLIC_IGNIS_HTML_LANG = 'en-US'
153
+ const nuxtConfig = setFeatures()
154
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/custom-lang.txt')
155
+ })
156
+
157
+ test('setFeatures() - no default CSS', async () => {
158
+ process.env.NUXT_PUBLIC_IGNIS_CORE_CSS = 'false'
159
+ const nuxtConfig = setFeatures()
160
+ await expect(nuxtConfig).toMatchFileSnapshot('./config/no-default-css.txt')
161
+ })
47
162
  })
@@ -0,0 +1,4 @@
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, nuxt-charts
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -0,0 +1,4 @@
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
4
+ Nuxt: log-level=info[default], ignis CSS, custom CSS
@@ -0,0 +1,4 @@
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Custom Title
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,3 +1,4 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, nuxt-neon
3
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, nuxt-neon
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,3 +1,4 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
3
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,3 +1,4 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, @nuxtjs/supabase
3
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, @nuxtjs/supabase
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,3 +1,4 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
3
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,3 +1,4 @@
1
1
  Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
2
3
  Modules:
3
- Nuxt: log-level=info[default]
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,4 +1,5 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, @nuxt/ui, nuxt-neon, @nuxtjs/supabase, @nuxtjs/i18n, @vueform/nuxt, @formkit/nuxt, @nuxtjs/seo, @nuxt/content, nuxt-auth-utils
3
- Extras: Open Props CSS, elrh-pslo
4
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, @nuxt/ui, nuxt-neon, @nuxtjs/supabase, @nuxtjs/i18n, @vueform/nuxt, @formkit/nuxt, @nuxtjs/seo, @nuxt/content, nuxt-auth-utils
4
+ Extras: Open Props CSS, elrh-pslo
5
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,3 +1,4 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, @maas/vue-equipment/nuxt
3
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, @maas/vue-equipment/nuxt
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,3 +1,4 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, @formkit/nuxt
3
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, @formkit/nuxt
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,3 +1,4 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
3
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,3 +1,4 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, @vueform/nuxt
3
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, @vueform/nuxt
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -0,0 +1,4 @@
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
4
+ Nuxt: log-level=info[default]
@@ -0,0 +1,4 @@
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, magic-regexp/nuxt
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,3 +1,4 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, @nuxt/ui
3
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt, @nuxt/ui
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,3 +1,4 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
3
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,4 +1,5 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
3
- Extras: Tailwind CSS
4
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
4
+ Extras: Tailwind CSS
5
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,3 +1,4 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
3
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
4
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,4 +1,5 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
3
- Extras: valibot
4
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
4
+ Extras: valibot
5
+ Nuxt: log-level=info[default], ignis CSS
@@ -1,4 +1,5 @@
1
- Nuxt Ignis will start using following settings:
2
- Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
3
- Extras: zod
4
- Nuxt: log-level=info[default]
1
+ Nuxt Ignis will start using following settings:
2
+ App title: Nuxt Ignis App
3
+ Modules: @nuxt/eslint, @nuxt/fonts, @nuxt/image, @nuxt/scripts, nuxt-security, @vueuse/nuxt, @pinia/nuxt
4
+ Extras: zod
5
+ Nuxt: log-level=info[default], ignis CSS
@@ -231,9 +231,45 @@ describe('setFeatures() unit tests', () => {
231
231
 
232
232
  // Vue Equipment
233
233
 
234
- test('setFeatures() - Vue Equipment - none', async () => {
234
+ test('setFeatures() - Vue Equipment', async () => {
235
235
  process.env.NUXT_PUBLIC_IGNIS_EQUIPMENT_ENABLED = 'true'
236
236
  setFeatures()
237
237
  await expect(getConsoleOutput()).toMatchFileSnapshot('./features/equipment.txt')
238
238
  })
239
+
240
+ // Magic Regexp
241
+
242
+ test('setFeatures() - Magic Regexp', async () => {
243
+ process.env.NUXT_PUBLIC_IGNIS_REGEXP = 'true'
244
+ setFeatures()
245
+ await expect(getConsoleOutput()).toMatchFileSnapshot('./features/regexp.txt')
246
+ })
247
+
248
+ // Nuxt Charts
249
+
250
+ test('setFeatures() - Nuxt Charts', async () => {
251
+ process.env.NUXT_PUBLIC_IGNIS_CHARTS = 'true'
252
+ setFeatures()
253
+ await expect(getConsoleOutput()).toMatchFileSnapshot('./features/charts.txt')
254
+ })
255
+
256
+ // HTML
257
+
258
+ test('setFeatures() - custom html title', async () => {
259
+ process.env.NUXT_PUBLIC_IGNIS_HTML_TITLE = 'Custom Title'
260
+ setFeatures()
261
+ await expect(getConsoleOutput()).toMatchFileSnapshot('./features/custom-title.txt')
262
+ })
263
+
264
+ test('setFeatures() - custom CSS', async () => {
265
+ process.env.NUXT_PUBLIC_IGNIS_CSS = ' first.css '
266
+ setFeatures()
267
+ await expect(getConsoleOutput()).toMatchFileSnapshot('./features/custom-css.txt')
268
+ })
269
+
270
+ test('setFeatures() - no default CSS', async () => {
271
+ process.env.NUXT_PUBLIC_IGNIS_CORE_CSS = 'false'
272
+ setFeatures()
273
+ await expect(getConsoleOutput()).toMatchFileSnapshot('./features/no-default-css.txt')
274
+ })
239
275
  })
@@ -0,0 +1,23 @@
1
+ // Formkit configuration normally happens in formkit.config.ts file in project root
2
+ // however, it is not possible to transfer this config file when extending a layer
3
+ // this way user only have to setup small custom config file in his own project
4
+ // and he can provide his own config to be defu-merged with the defaults
5
+ // more info in the docs
6
+ // TODO can this be changed? can layer's "auto-imports" be configured?
7
+
8
+ import { defu } from 'defu'
9
+
10
+ import { en, de, cs } from '@formkit/i18n'
11
+ import type { DefaultConfigOptions } from '@formkit/vue'
12
+
13
+ const ignisLocale = process.env.NUXT_PUBLIC_IGNIS_FORMKIT_DEFAULT || 'en'
14
+
15
+ export function getFormkitConfig(userFormkitConfig: FormkitConfigOptions): DefaultConfigOptions {
16
+ return defu(userFormkitConfig, {
17
+ locales: { en, de, cs }, // TODO allow more locales
18
+ locale: ignisLocale,
19
+ })
20
+ }
21
+
22
+ // for proper type inference
23
+ export type FormkitConfigOptions = DefaultConfigOptions
@@ -0,0 +1,16 @@
1
+ // this functions shield configuration processing
2
+ // when Nuxt Ignis' formkit.config.ts is presented
3
+ // but the related module is not allowed by .env settings
4
+
5
+ import { getFormkitConfig, type FormkitConfigOptions } from './config/formkit'
6
+
7
+ export function loadFormkitConfig(userFormkitConfig: FormkitConfigOptions) {
8
+ // only if Formkit is allowed
9
+ if (process.env.NUXT_PUBLIC_IGNIS_PRESET_FORMS === 'formkit' || process.env.NUXT_PUBLIC_IGNIS_FORMKIT_ENABLED === 'true') {
10
+ // defu-merge nuxt-ignis default with possible user values
11
+ return getFormkitConfig(userFormkitConfig)
12
+ }
13
+ // otherwise throw warning and return just a dummy object
14
+ log.warn('loadFormkitConfig: Formkit is not enabled, settings will take no effect')
15
+ return {}
16
+ }
@@ -3,7 +3,8 @@ import { preventSingleLetterOrphans } from 'elrh-pslo'
3
3
  // this util function proxies "preventSingleLetterOrphans" function
4
4
  // it only applies the text transformation if relevant options is set up
5
5
  export function pslo(text: string) {
6
- if (useRuntimeConfig().public.ignis.pslo.enabled) {
6
+ if (process.env.NUXT_PUBLIC_IGNIS_PSLO_ENABLED === 'true') {
7
+ log.warn(`elrh-pslo activated`)
7
8
  return preventSingleLetterOrphans(text)
8
9
  } else {
9
10
  return text
@@ -1,6 +0,0 @@
1
- CREATE TABLE IF NOT EXISTS _content_info (id TEXT PRIMARY KEY, "ready" BOOLEAN, "structureVersion" VARCHAR, "version" VARCHAR, "__hash__" TEXT UNIQUE); -- structure
2
- INSERT INTO _content_info VALUES ('checksum_content', false, 'bgIYhpjRuV8zbHJE_CfelwKpJ_Td6YuGJwixiek8lmI', 'v3.5.0--Soo3jzq7nJIWrwBhdqFllfPnBveJORe1nIuezk-x6tM', 'oTvWMuoFLDhNMTb15Fs88rYtnUcc_eDaxa4F3kqCiFk'); -- meta
3
- DROP TABLE IF EXISTS _content_content; -- structure
4
- CREATE TABLE IF NOT EXISTS _content_content (id TEXT PRIMARY KEY, "title" VARCHAR, "body" TEXT, "description" VARCHAR, "extension" VARCHAR, "meta" TEXT, "navigation" TEXT DEFAULT true, "path" VARCHAR, "seo" TEXT DEFAULT '{}', "stem" VARCHAR, "__hash__" TEXT UNIQUE); -- structure
5
- INSERT INTO _content_content VALUES ('content/second.md', 'Second', '{"type":"minimal","value":[["h2",{"id":"h2-nuxt-content-demo"},"H2 Nuxt Content Demo"],["p",{},"This is rendered from ",["code",{},".md"]," source file"],["h3",{"id":"h3-sub-header"},"H3 Sub-header"],["p",{},"You can have ",["strong",{},"bold text"],", ",["em",{},"italic text"]," or ",["a",{"href":"http://localhost:3000","rel":["nofollow"]},"link"]],["h4",{"id":"h4-sub-header"},"H4 Sub-header"],["ul",{},["li",{},"list item 1"],["li",{},"list item 2"]],["h5",{"id":"h5-custom-tailwind-css"},"H5 Custom Tailwind CSS"],["div",{"className":["text-green-500","text-2xl"]},"\nText colored by Tailwind CSS\n"]],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"h2-nuxt-content-demo","depth":2,"text":"H2 Nuxt Content Demo","children":[{"id":"h3-sub-header","depth":3,"text":"H3 Sub-header"}]}]}}', '', 'md', '{}', 'true', '/second', '{"title":"Second","description":""}', 'second', 'pJahEHVPjLag6O4faglwwGcd1rUSX52WsUOmGbx2P6A'); -- pJahEHVPjLag6O4faglwwGcd1rUSX52WsUOmGbx2P6A
6
- UPDATE _content_info SET ready = true WHERE id = 'checksum_content'; -- meta
package/app.config.ts DELETED
@@ -1,3 +0,0 @@
1
- export default defineAppConfig({
2
- textTitle: 'Nuxt Ignis',
3
- })
@@ -1,16 +0,0 @@
1
- /*
2
- This will import Tailwind CSS for Nuxt UI
3
- https://ui.nuxt.com/getting-started/installation/nuxt#import-tailwind-css-and-nuxt-ui-in-your-css
4
-
5
- NUXT_PUBLIC_IGNIS_PRESET_UI=nuxt-ui or NUXT_PUBLIC_IGNIS_UI=true is required for se this feature
6
- */
7
-
8
- @import "tailwindcss";
9
- @import "@nuxt/ui";
10
-
11
- /*
12
- // Tailwind v4 way of defining custom classes
13
- @utility <name> {
14
- // css rules here
15
- }
16
- */
@@ -1,15 +0,0 @@
1
- /*
2
- This will import Tailwind CSS
3
- https://tailwindcss.com/docs/installation/
4
-
5
- NUXT_PUBLIC_IGNIS_PRESET_UI=tailwind or NUXT_PUBLIC_IGNIS_TAILWIND=true is required for se this feature
6
- */
7
-
8
- @import "tailwindcss";
9
-
10
- /*
11
- // Tailwind v4 way of defining custom classes
12
- @utility <name> {
13
- // css rules here
14
- }
15
- */