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,321 @@
1
+ const orientation = [
2
+ "horizontal",
3
+ "vertical"
4
+ ] as const
5
+
6
+ const color = [
7
+ "primary",
8
+ "secondary",
9
+ "success",
10
+ "info",
11
+ "warning",
12
+ "error",
13
+ "neutral"
14
+ ] as const
15
+
16
+ const size = [
17
+ "3xs",
18
+ "2xs",
19
+ "xs",
20
+ "sm",
21
+ "md",
22
+ "lg",
23
+ "xl",
24
+ "2xl",
25
+ "3xl"
26
+ ] as const
27
+
28
+ export default {
29
+ "slots": {
30
+ "root": "flex gap-1.5",
31
+ "item": "group relative flex flex-1 gap-3",
32
+ "container": "relative flex items-center gap-1.5",
33
+ "indicator": "group-data-[state=completed]:text-inverted group-data-[state=active]:text-inverted text-muted",
34
+ "separator": "flex-1 rounded-full bg-elevated",
35
+ "wrapper": "w-full",
36
+ "date": "text-dimmed text-xs/5",
37
+ "title": "font-medium text-highlighted text-sm",
38
+ "description": "text-muted text-wrap text-sm"
39
+ },
40
+ "variants": {
41
+ "orientation": {
42
+ "horizontal": {
43
+ "root": "flex-row w-full",
44
+ "item": "flex-col",
45
+ "separator": "h-0.5"
46
+ },
47
+ "vertical": {
48
+ "root": "flex-col",
49
+ "container": "flex-col",
50
+ "separator": "w-0.5"
51
+ }
52
+ },
53
+ "color": {
54
+ "primary": {
55
+ "indicator": "group-data-[state=completed]:bg-primary group-data-[state=active]:bg-primary"
56
+ },
57
+ "secondary": {
58
+ "indicator": "group-data-[state=completed]:bg-secondary group-data-[state=active]:bg-secondary"
59
+ },
60
+ "success": {
61
+ "indicator": "group-data-[state=completed]:bg-success group-data-[state=active]:bg-success"
62
+ },
63
+ "info": {
64
+ "indicator": "group-data-[state=completed]:bg-info group-data-[state=active]:bg-info"
65
+ },
66
+ "warning": {
67
+ "indicator": "group-data-[state=completed]:bg-warning group-data-[state=active]:bg-warning"
68
+ },
69
+ "error": {
70
+ "indicator": "group-data-[state=completed]:bg-error group-data-[state=active]:bg-error"
71
+ },
72
+ "neutral": {
73
+ "indicator": "group-data-[state=completed]:bg-inverted group-data-[state=active]:bg-inverted"
74
+ }
75
+ },
76
+ "size": {
77
+ "3xs": "",
78
+ "2xs": "",
79
+ "xs": "",
80
+ "sm": "",
81
+ "md": "",
82
+ "lg": "",
83
+ "xl": "",
84
+ "2xl": "",
85
+ "3xl": ""
86
+ },
87
+ "reverse": {
88
+ "true": ""
89
+ }
90
+ },
91
+ "compoundVariants": [
92
+ {
93
+ "color": "primary" as typeof color[number],
94
+ "reverse": false,
95
+ "class": {
96
+ "separator": "group-data-[state=completed]:bg-primary"
97
+ }
98
+ },
99
+ {
100
+ "color": "secondary" as typeof color[number],
101
+ "reverse": false,
102
+ "class": {
103
+ "separator": "group-data-[state=completed]:bg-secondary"
104
+ }
105
+ },
106
+ {
107
+ "color": "success" as typeof color[number],
108
+ "reverse": false,
109
+ "class": {
110
+ "separator": "group-data-[state=completed]:bg-success"
111
+ }
112
+ },
113
+ {
114
+ "color": "info" as typeof color[number],
115
+ "reverse": false,
116
+ "class": {
117
+ "separator": "group-data-[state=completed]:bg-info"
118
+ }
119
+ },
120
+ {
121
+ "color": "warning" as typeof color[number],
122
+ "reverse": false,
123
+ "class": {
124
+ "separator": "group-data-[state=completed]:bg-warning"
125
+ }
126
+ },
127
+ {
128
+ "color": "error" as typeof color[number],
129
+ "reverse": false,
130
+ "class": {
131
+ "separator": "group-data-[state=completed]:bg-error"
132
+ }
133
+ },
134
+ {
135
+ "color": "primary" as typeof color[number],
136
+ "reverse": true,
137
+ "class": {
138
+ "separator": "group-data-[state=active]:bg-primary group-data-[state=completed]:bg-primary"
139
+ }
140
+ },
141
+ {
142
+ "color": "secondary" as typeof color[number],
143
+ "reverse": true,
144
+ "class": {
145
+ "separator": "group-data-[state=active]:bg-secondary group-data-[state=completed]:bg-secondary"
146
+ }
147
+ },
148
+ {
149
+ "color": "success" as typeof color[number],
150
+ "reverse": true,
151
+ "class": {
152
+ "separator": "group-data-[state=active]:bg-success group-data-[state=completed]:bg-success"
153
+ }
154
+ },
155
+ {
156
+ "color": "info" as typeof color[number],
157
+ "reverse": true,
158
+ "class": {
159
+ "separator": "group-data-[state=active]:bg-info group-data-[state=completed]:bg-info"
160
+ }
161
+ },
162
+ {
163
+ "color": "warning" as typeof color[number],
164
+ "reverse": true,
165
+ "class": {
166
+ "separator": "group-data-[state=active]:bg-warning group-data-[state=completed]:bg-warning"
167
+ }
168
+ },
169
+ {
170
+ "color": "error" as typeof color[number],
171
+ "reverse": true,
172
+ "class": {
173
+ "separator": "group-data-[state=active]:bg-error group-data-[state=completed]:bg-error"
174
+ }
175
+ },
176
+ {
177
+ "color": "neutral" as typeof color[number],
178
+ "reverse": false,
179
+ "class": {
180
+ "separator": "group-data-[state=completed]:bg-inverted"
181
+ }
182
+ },
183
+ {
184
+ "color": "neutral" as typeof color[number],
185
+ "reverse": true,
186
+ "class": {
187
+ "separator": "group-data-[state=active]:bg-inverted group-data-[state=completed]:bg-inverted"
188
+ }
189
+ },
190
+ {
191
+ "orientation": "horizontal" as typeof orientation[number],
192
+ "size": "3xs" as typeof size[number],
193
+ "class": {
194
+ "wrapper": "pe-4.5"
195
+ }
196
+ },
197
+ {
198
+ "orientation": "horizontal" as typeof orientation[number],
199
+ "size": "2xs" as typeof size[number],
200
+ "class": {
201
+ "wrapper": "pe-5"
202
+ }
203
+ },
204
+ {
205
+ "orientation": "horizontal" as typeof orientation[number],
206
+ "size": "xs" as typeof size[number],
207
+ "class": {
208
+ "wrapper": "pe-5.5"
209
+ }
210
+ },
211
+ {
212
+ "orientation": "horizontal" as typeof orientation[number],
213
+ "size": "sm" as typeof size[number],
214
+ "class": {
215
+ "wrapper": "pe-6"
216
+ }
217
+ },
218
+ {
219
+ "orientation": "horizontal" as typeof orientation[number],
220
+ "size": "md" as typeof size[number],
221
+ "class": {
222
+ "wrapper": "pe-6.5"
223
+ }
224
+ },
225
+ {
226
+ "orientation": "horizontal" as typeof orientation[number],
227
+ "size": "lg" as typeof size[number],
228
+ "class": {
229
+ "wrapper": "pe-7"
230
+ }
231
+ },
232
+ {
233
+ "orientation": "horizontal" as typeof orientation[number],
234
+ "size": "xl" as typeof size[number],
235
+ "class": {
236
+ "wrapper": "pe-7.5"
237
+ }
238
+ },
239
+ {
240
+ "orientation": "horizontal" as typeof orientation[number],
241
+ "size": "2xl" as typeof size[number],
242
+ "class": {
243
+ "wrapper": "pe-8"
244
+ }
245
+ },
246
+ {
247
+ "orientation": "horizontal" as typeof orientation[number],
248
+ "size": "3xl" as typeof size[number],
249
+ "class": {
250
+ "wrapper": "pe-8.5"
251
+ }
252
+ },
253
+ {
254
+ "orientation": "vertical" as typeof orientation[number],
255
+ "size": "3xs" as typeof size[number],
256
+ "class": {
257
+ "wrapper": "-mt-0.5 pb-4.5"
258
+ }
259
+ },
260
+ {
261
+ "orientation": "vertical" as typeof orientation[number],
262
+ "size": "2xs" as typeof size[number],
263
+ "class": {
264
+ "wrapper": "pb-5"
265
+ }
266
+ },
267
+ {
268
+ "orientation": "vertical" as typeof orientation[number],
269
+ "size": "xs" as typeof size[number],
270
+ "class": {
271
+ "wrapper": "mt-0.5 pb-5.5"
272
+ }
273
+ },
274
+ {
275
+ "orientation": "vertical" as typeof orientation[number],
276
+ "size": "sm" as typeof size[number],
277
+ "class": {
278
+ "wrapper": "mt-1 pb-6"
279
+ }
280
+ },
281
+ {
282
+ "orientation": "vertical" as typeof orientation[number],
283
+ "size": "md" as typeof size[number],
284
+ "class": {
285
+ "wrapper": "mt-1.5 pb-6.5"
286
+ }
287
+ },
288
+ {
289
+ "orientation": "vertical" as typeof orientation[number],
290
+ "size": "lg" as typeof size[number],
291
+ "class": {
292
+ "wrapper": "mt-2 pb-7"
293
+ }
294
+ },
295
+ {
296
+ "orientation": "vertical" as typeof orientation[number],
297
+ "size": "xl" as typeof size[number],
298
+ "class": {
299
+ "wrapper": "mt-2.5 pb-7.5"
300
+ }
301
+ },
302
+ {
303
+ "orientation": "vertical" as typeof orientation[number],
304
+ "size": "2xl" as typeof size[number],
305
+ "class": {
306
+ "wrapper": "mt-3 pb-8"
307
+ }
308
+ },
309
+ {
310
+ "orientation": "vertical" as typeof orientation[number],
311
+ "size": "3xl" as typeof size[number],
312
+ "class": {
313
+ "wrapper": "mt-3.5 pb-8.5"
314
+ }
315
+ }
316
+ ],
317
+ "defaultVariants": {
318
+ "size": "md" as typeof size[number],
319
+ "color": "primary" as typeof color[number]
320
+ }
321
+ }
@@ -17,7 +17,7 @@ const swipeDirection = [
17
17
  export default {
18
18
  "slots": {
19
19
  "viewport": "fixed flex flex-col w-[calc(100%-2rem)] sm:w-96 z-[100] data-[expanded=true]:h-(--height) focus:outline-none",
20
- "base": "pointer-events-auto absolute inset-x-0 z-(--index) transform-(--transform) data-[expanded=false]:data-[front=false]:h-(--front-height) data-[expanded=false]:data-[front=false]:*:invisible data-[state=closed]:animate-[toast-closed_200ms_ease-in-out] data-[state=closed]:data-[expanded=false]:data-[front=false]:animate-[toast-collapsed-closed_200ms_ease-in-out] data-[swipe=move]:transition-none transition-[transform,translate,height] duration-200 ease-out"
20
+ "base": "pointer-events-auto absolute inset-x-0 z-(--index) transform-(--transform) data-[expanded=false]:data-[front=false]:h-(--front-height) data-[expanded=false]:data-[front=false]:*:opacity-0 data-[front=false]:*:transition-opacity data-[front=false]:*:duration-100 data-[state=closed]:animate-[toast-closed_200ms_ease-in-out] data-[state=closed]:data-[expanded=false]:data-[front=false]:animate-[toast-collapsed-closed_200ms_ease-in-out] data-[swipe=move]:transition-none transition-[transform,translate,height] duration-200 ease-out"
21
21
  },
22
22
  "variants": {
23
23
  "position": {
@@ -1 +1 @@
1
- export { default } from "C:/Git/nuxt-ignis/core/node_modules/.pnpm/@nuxt+image@1.10.0_@netlify_b4a362fadc10aa100425ec080018ae5f/node_modules/@nuxt/image/dist/runtime/components/NuxtImg.vue";
1
+ export { default } from "C:/Git/nuxt-ignis/core/node_modules/.pnpm/@nuxt+image@1.10.0_@netlify_50d57983e0799a62bc0b2b1b9b64ff97/node_modules/@nuxt/image/dist/runtime/components/NuxtImg.vue";
package/app.vue CHANGED
@@ -1,20 +1,16 @@
1
1
  <template>
2
2
  <UApp v-if="ui">
3
3
  <NuxtPage v-if="pages" />
4
- <IgnisInfo v-else />
4
+ <IgnisInfo v-else :content="'Welcome'" />
5
5
  </UApp>
6
6
  <div v-else>
7
7
  <NuxtPage v-if="pages" />
8
- <IgnisInfo v-else />
8
+ <IgnisInfo v-else :content="'Welcome'" />
9
9
  </div>
10
10
  </template>
11
11
 
12
12
  <script setup lang="ts">
13
13
  useHead({
14
- title: useAppConfig().textTitle,
15
- htmlAttrs: {
16
- lang: 'en',
17
- },
18
14
  bodyAttrs: {
19
15
  class: 'ignis-body',
20
16
  },
@@ -0,0 +1,24 @@
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
+ If enabled, this file will be included in `css` section of nuxt.config.ts.
8
+ If only Tailwind is enabled, `ignis-tailwind.css` will be used instead.
9
+ */
10
+
11
+ @import "tailwindcss";
12
+ @import "@nuxt/ui";
13
+
14
+ /*
15
+ // Tailwind v4 way of defining custom c.lasses
16
+ @utility <name> {
17
+ // css rules here
18
+ }
19
+ */
20
+
21
+ /*
22
+ // Tailwind v3 config file can be referenced like this for legacy reasons
23
+ @config "./path/to/tailwind.config.ts";
24
+ */
@@ -8,7 +8,7 @@
8
8
  @import "open-props/normalize";
9
9
  @import "open-props/buttons";
10
10
 
11
- /* demo class - used in AppFeature component instance */
11
+ /* demo class - used in IgnisFeature component instance */
12
12
  .openprops-feature {
13
13
 
14
14
  /* https://open-props.style/#gradients */
@@ -0,0 +1,23 @@
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
+ If enabled, this file will be included in `css` section of nuxt.config.ts.
8
+ If Nuxt UI is enabled, `ignis-nuxt-ui.css` will be used instead.
9
+ */
10
+
11
+ @import "tailwindcss";
12
+
13
+ /*
14
+ // Tailwind v4 way of defining custom classes
15
+ @utility <name> {
16
+ // css rules here
17
+ }
18
+ */
19
+
20
+ /*
21
+ // Tailwind v3 config file can be referenced like this for legacy reasons
22
+ @config "./path/to/tailwind.config.ts";
23
+ */
@@ -0,0 +1,31 @@
1
+ /* based on https://www.howtogeek.com/get-a-clean-attractive-site-with-lines-of-css/ */
2
+
3
+ html {
4
+ box-sizing: border-box;
5
+ max-width: 80ch;
6
+ margin: auto;
7
+ font-size: 1.2em;
8
+ color: #333;
9
+ line-height: 1.4;
10
+ }
11
+
12
+ * {
13
+ box-sizing: inherit;
14
+ }
15
+
16
+ h1, h2, h3, h4, h5, h6 {
17
+ font-family: sans-serif;
18
+ }
19
+
20
+ img {
21
+ max-width: 100%;
22
+ height: auto;
23
+ }
24
+
25
+ a:link {
26
+ text-decoration: none;
27
+ }
28
+
29
+ a:hover {
30
+ text-decoration: underline;
31
+ }
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env node
2
+
3
+ // CLI tool to create an ESLint configuration file with Nuxt Ignis defaults
4
+ // usage: `npx make-eslint` in target folder
5
+
6
+ import { existsSync } from 'fs'
7
+ import { copyFile } from 'fs/promises'
8
+ import path from 'path'
9
+ import readline from 'readline'
10
+ import { fileURLToPath } from 'url'
11
+
12
+ const __filename = fileURLToPath(import.meta.url)
13
+ const __dirname = path.dirname(__filename)
14
+
15
+ const templatePath = path.resolve(__dirname, '../eslint.config.mjs')
16
+ const targetPath = path.resolve(process.cwd(), 'eslint.config.mjs')
17
+
18
+ function prompt(question) {
19
+ const rl = readline.createInterface({
20
+ input: process.stdin,
21
+ output: process.stdout,
22
+ })
23
+
24
+ return new Promise((resolve) => {
25
+ rl.question(question + ' (y/N): ', (answer) => {
26
+ rl.close()
27
+ resolve(/^y(es)?$/i.test(answer.trim()))
28
+ })
29
+ })
30
+ }
31
+
32
+ async function main() {
33
+ if (!existsSync(templatePath)) {
34
+ console.error(`Template file not found at ${templatePath}`)
35
+ process.exit(1)
36
+ }
37
+
38
+ if (existsSync(targetPath)) {
39
+ const shouldOverwrite = await prompt(
40
+ `'eslint.config.mjs' already exists. Overwrite?`,
41
+ )
42
+ if (!shouldOverwrite) {
43
+ console.log('Aborted.')
44
+ process.exit(0)
45
+ }
46
+ }
47
+
48
+ await copyFile(templatePath, targetPath)
49
+ console.log('eslint.config.mjs created successfully.')
50
+ }
51
+
52
+ main().catch((err) => {
53
+ console.error('Error:', err)
54
+ process.exit(1)
55
+ })
@@ -7,10 +7,12 @@
7
7
  -->
8
8
 
9
9
  <template>
10
- <div style="text-align: center;">
11
- Current time with <NuxtLink to="https://nuxt.com/docs/api/components/nuxt-time">NuxtTime</NuxtLink>:
10
+ <div style="text-align: center; font-size: 0.8em;">
11
+ Current datetime with <NuxtLink to="https://nuxt.com/docs/api/components/nuxt-time">NuxtTime</NuxtLink>:
12
12
  <NuxtTime
13
13
  :datetime="currentDate"
14
+ hour-cycle="h24"
15
+ locale="en-CA"
14
16
  year="numeric"
15
17
  month="2-digit"
16
18
  day="2-digit"
@@ -0,0 +1,44 @@
1
+ <template>
2
+ <div style="margin: 0 auto; max-width: 800px;">
3
+ <h1 class="ignis-config-header">
4
+ Configuration Overview
5
+ </h1>
6
+ <div class="ignis-config-subheader">
7
+ {{ useIgnisT('config.header') }}
8
+ </div>
9
+ <pre class="ignis-config">{{ ignisConfig || error }};</pre>
10
+ </div>
11
+ </template>
12
+
13
+ <script setup lang="ts">
14
+ const requestURL = useRequestURL()
15
+ const baseURL = `${requestURL.protocol}//${requestURL.host}`
16
+ const { data: ignisConfig, error } = await useFetch('/_ignis-config.json', {
17
+ baseURL,
18
+ })
19
+ </script>
20
+
21
+ <style scoped lang="css">
22
+ .ignis-config-header {
23
+ text-align: center;
24
+ font-family: monospace;
25
+ font-size: 1.75rem;
26
+ margin-top: 2rem;
27
+ margin-bottom: 0.5rem;
28
+ color: #fbbf24;
29
+ }
30
+
31
+ .ignis-config-subheader {
32
+ text-align: center;
33
+ }
34
+
35
+ .ignis-config {
36
+ border: 1px white;
37
+ background-color: gray;
38
+ color: white;
39
+ padding: 1rem;
40
+ margin: 1rem 0;
41
+ text-align: left;
42
+ white-space: pre-wrap;
43
+ }
44
+ </style>
@@ -69,7 +69,7 @@ log.debug(props.optionalText)
69
69
  <style scoped>
70
70
  /* avoid Tailwind CSS styles here, because Tailwind may not be enabled */
71
71
 
72
- /* m-1! px-2 py-1 border! border-amber-300 font-bold text-lg text-feature bg-emerald-700 hover:bg-slate-700 */
72
+ /* m-1! px-2 py-1 border! border-amber-300 font-bold text-lg bg-emerald-700 hover:bg-slate-700 */
73
73
  .feature {
74
74
  margin: 4px;
75
75
  padding: 4px 12px;
@@ -83,6 +83,7 @@ log.debug(props.optionalText)
83
83
  .feature:hover {
84
84
  background-color: #334155;
85
85
  color: #3CB371;
86
+ text-decoration: none;
86
87
  }
87
88
 
88
89
  /* text-gray-700 bg-gray-300! hover:bg-slate-400! */