kmcom-nuxt-layers 1.7.3 → 1.7.4

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.
@@ -0,0 +1,19 @@
1
+ <script setup lang="ts">
2
+ const { contentLayer } = useAppConfig()
3
+ if (contentLayer?.sections?.gallery === false) {
4
+ throw createError({ statusCode: 404, statusMessage: 'Not Found' })
5
+ }
6
+
7
+ const { slug, index } = defineProps<{
8
+ slug: string
9
+ index: number
10
+ }>()
11
+ </script>
12
+
13
+ <template>
14
+ <LayoutSection>
15
+ <LayoutGridItem>
16
+ <GalleryImageDetail :slug :index />
17
+ </LayoutGridItem>
18
+ </LayoutSection>
19
+ </template>
@@ -1,13 +1,13 @@
1
1
  <script setup lang="ts">
2
- const { contentLayer } = useAppConfig()
3
- if (contentLayer?.sections?.gallery === false) {
4
- throw createError({ statusCode: 404, statusMessage: 'Not Found' })
5
- }
2
+ const { contentLayer } = useAppConfig()
3
+ if (contentLayer?.sections?.gallery === false) {
4
+ throw createError({ statusCode: 404, statusMessage: 'Not Found' })
5
+ }
6
6
 
7
- useSeoMeta({
8
- title: 'Gallery',
9
- description: 'Photo collections and visual work',
10
- })
7
+ useSeoMeta({
8
+ title: 'Gallery',
9
+ description: 'Photo collections and visual work',
10
+ })
11
11
  </script>
12
12
 
13
13
  <template>
@@ -0,0 +1,18 @@
1
+ <script setup lang="ts">
2
+ const { contentLayer } = useAppConfig()
3
+ if (contentLayer?.sections?.gallery === false) {
4
+ throw createError({ statusCode: 404, statusMessage: 'Not Found' })
5
+ }
6
+
7
+ const { slug } = defineProps<{
8
+ slug: string
9
+ }>()
10
+ </script>
11
+
12
+ <template>
13
+ <LayoutSection>
14
+ <LayoutGridItem>
15
+ <GalleryDetail :slug />
16
+ </LayoutGridItem>
17
+ </LayoutSection>
18
+ </template>
@@ -28,13 +28,11 @@ useSeoMeta({
28
28
  <div class="min-h-screen p-8">
29
29
  <UContainer>
30
30
  <div class="space-y-8">
31
- <!-- Header -->
32
31
  <div class="text-center">
33
32
  <h1 class="text-4xl font-bold mb-2">Core Layer Diagnostics</h1>
34
33
  <p class="text-gray-500 dark:text-gray-400">Feature detection and system information</p>
35
34
  </div>
36
35
 
37
- <!-- CSS Features -->
38
36
  <UCard>
39
37
  <template #header>
40
38
  <h2 class="text-xl font-semibold">CSS Features</h2>
@@ -73,7 +71,6 @@ useSeoMeta({
73
71
  </div>
74
72
  </UCard>
75
73
 
76
- <!-- Image Formats -->
77
74
  <UCard>
78
75
  <template #header>
79
76
  <h2 class="text-xl font-semibold">Image Formats</h2>
@@ -92,7 +89,6 @@ useSeoMeta({
92
89
  </div>
93
90
  </UCard>
94
91
 
95
- <!-- JavaScript APIs -->
96
92
  <UCard>
97
93
  <template #header>
98
94
  <h2 class="text-xl font-semibold">JavaScript APIs</h2>
@@ -121,7 +117,6 @@ useSeoMeta({
121
117
  </div>
122
118
  </UCard>
123
119
 
124
- <!-- Device Info -->
125
120
  <UCard>
126
121
  <template #header>
127
122
  <h2 class="text-xl font-semibold">Device Information</h2>
@@ -136,7 +131,6 @@ useSeoMeta({
136
131
  </div>
137
132
  </UCard>
138
133
 
139
- <!-- Network Info -->
140
134
  <UCard>
141
135
  <template #header>
142
136
  <h2 class="text-xl font-semibold">Network Information</h2>
@@ -177,7 +171,6 @@ useSeoMeta({
177
171
  </div>
178
172
  </UCard>
179
173
 
180
- <!-- Rendering Info -->
181
174
  <UCard>
182
175
  <template #header>
183
176
  <h2 class="text-xl font-semibold">Rendering Information</h2>
@@ -200,7 +193,6 @@ useSeoMeta({
200
193
  </div>
201
194
  </UCard>
202
195
 
203
- <!-- PWA Info -->
204
196
  <UCard>
205
197
  <template #header>
206
198
  <h2 class="text-xl font-semibold">PWA Information</h2>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kmcom-nuxt-layers",
3
3
  "private": false,
4
- "version": "1.7.3",
4
+ "version": "1.7.4",
5
5
  "description": "Composable Nuxt 4 layers for building scalable Vue applications",
6
6
  "exports": {
7
7
  "./layers/core": "./layers/core/nuxt.config.ts",
@@ -140,7 +140,7 @@
140
140
  "eslint-plugin-prettier": "^5.5.6",
141
141
  "eslint-plugin-unicorn": "^64.0.0",
142
142
  "eslint-plugin-unused-imports": "^4.4.1",
143
- "eslint-plugin-vue": "^10.9.1",
143
+ "eslint-plugin-vue": "^10.9.2",
144
144
  "netlify-cli": "^26.1.0",
145
145
  "npm-check-updates": "^22.2.1",
146
146
  "nuxt": "^4.4.7",
@@ -1,18 +0,0 @@
1
- <script setup lang="ts">
2
- const { contentLayer } = useAppConfig()
3
- if (contentLayer?.sections?.gallery === false) {
4
- throw createError({ statusCode: 404, statusMessage: 'Not Found' })
5
- }
6
-
7
- const route = useRoute()
8
- const slug = route.params.slug as string
9
- const index = Number(route.params.imageId)
10
- </script>
11
-
12
- <template>
13
- <LayoutSection>
14
- <LayoutGridItem>
15
- <GalleryImageDetail :slug="slug" :index="index" />
16
- </LayoutGridItem>
17
- </LayoutSection>
18
- </template>
@@ -1,17 +0,0 @@
1
- <script setup lang="ts">
2
- const { contentLayer } = useAppConfig()
3
- if (contentLayer?.sections?.gallery === false) {
4
- throw createError({ statusCode: 404, statusMessage: 'Not Found' })
5
- }
6
-
7
- const route = useRoute()
8
- const slug = route.params.slug as string
9
- </script>
10
-
11
- <template>
12
- <LayoutSection>
13
- <LayoutGridItem>
14
- <GalleryDetail :slug="slug" />
15
- </LayoutGridItem>
16
- </LayoutSection>
17
- </template>
@@ -1,236 +0,0 @@
1
- <script setup lang="ts">
2
- const umainRef = ref()
3
- </script>
4
-
5
- <template>
6
- <MastMain :umain="umainRef">
7
- <UContainer class="py-12 space-y-12">
8
- <!-- Header Section -->
9
- <div class="space-y-4">
10
- <SiteTitle site-title="UI Layer" tag="h1" title-variant="default" />
11
- <Typography
12
- tag="p"
13
- weight="font-normal"
14
- leading="leading-relaxed"
15
- color="muted"
16
- class="text-lg"
17
- >
18
- A unified, typed design system for Nuxt applications. This layer provides typography,
19
- colors, media handling, and reusable UI primitives.
20
- </Typography>
21
- </div>
22
-
23
- <!-- Typography Section -->
24
- <section class="space-y-6">
25
- <TypographyHeadline :level="2" color="highlighted">
26
- Typography Components
27
- </TypographyHeadline>
28
-
29
- <div class="space-y-4">
30
- <div class="space-y-2">
31
- <TypographyHeadline :level="1"> Headline Level 1 </TypographyHeadline>
32
- <TypographyHeadline :level="2"> Headline Level 2 </TypographyHeadline>
33
- <TypographyHeadline :level="3"> Headline Level 3 </TypographyHeadline>
34
- <TypographyHeadline :level="4"> Headline Level 4 </TypographyHeadline>
35
- </div>
36
-
37
- <Typography tag="p" leading="leading-relaxed">
38
- The Typography component provides full control over font weight, width, slant, leading,
39
- tracking, alignment, and text transformation through typed props.
40
- </Typography>
41
-
42
- <TypographyCodeBlock language="typescript" color="muted">
43
- &lt;Typography weight="font-bold" leading="leading-tight" tracking="tracking-tight" &gt;
44
- Fully typed typography &lt;/Typography&gt;</TypographyCodeBlock
45
- >
46
- </div>
47
- </section>
48
-
49
- <!-- Color System Section -->
50
- <section class="space-y-6">
51
- <TypographyHeadline :level="2" color="highlighted"> Color System </TypographyHeadline>
52
-
53
- <div class="space-y-4">
54
- <div>
55
- <Typography tag="h3" weight="font-semibold" class="mb-2"> Semantic Colors </Typography>
56
- <div class="flex flex-wrap gap-2">
57
- <Typography
58
- color="dimmed"
59
- class="px-3 py-2 bg-neutral-100 dark:bg-neutral-800 rounded"
60
- >
61
- Dimmed
62
- </Typography>
63
- <Typography
64
- color="muted"
65
- class="px-3 py-2 bg-neutral-100 dark:bg-neutral-800 rounded"
66
- >
67
- Muted
68
- </Typography>
69
- <Typography
70
- color="toned"
71
- class="px-3 py-2 bg-neutral-100 dark:bg-neutral-800 rounded"
72
- >
73
- Toned
74
- </Typography>
75
- <Typography
76
- color="highlighted"
77
- class="px-3 py-2 bg-neutral-100 dark:bg-neutral-800 rounded"
78
- >
79
- Highlighted
80
- </Typography>
81
- </div>
82
- </div>
83
-
84
- <div>
85
- <Typography tag="h3" weight="font-semibold" class="mb-2"> Status Colors </Typography>
86
- <div class="flex flex-wrap gap-2">
87
- <Typography color="info" class="px-3 py-2 bg-neutral-100 dark:bg-neutral-800 rounded">
88
- Info
89
- </Typography>
90
- <Typography
91
- color="success"
92
- class="px-3 py-2 bg-neutral-100 dark:bg-neutral-800 rounded"
93
- >
94
- Success
95
- </Typography>
96
- <Typography
97
- color="warning"
98
- class="px-3 py-2 bg-neutral-100 dark:bg-neutral-800 rounded"
99
- >
100
- Warning
101
- </Typography>
102
- <Typography
103
- color="error"
104
- class="px-3 py-2 bg-neutral-100 dark:bg-neutral-800 rounded"
105
- >
106
- Error
107
- </Typography>
108
- </div>
109
- </div>
110
- </div>
111
- </section>
112
-
113
- <!-- Components Section -->
114
- <section class="space-y-6">
115
- <TypographyHeadline :level="2" color="highlighted">
116
- Available Components
117
- </TypographyHeadline>
118
-
119
- <div class="grid md:grid-cols-2 gap-6">
120
- <UCard>
121
- <template #header>
122
- <TypographyHeadline :level="3"> Typography </TypographyHeadline>
123
- </template>
124
- <div class="space-y-2">
125
- <Typography tag="p" color="muted" leading="leading-relaxed">
126
- Base component with full control over font properties
127
- </Typography>
128
- <ul class="list-disc list-inside space-y-1 text-sm text-muted">
129
- <li>Typography (base)</li>
130
- <li>Headline (h1-h6)</li>
131
- <li>CodeBlock</li>
132
- <li>QuoteBlock</li>
133
- </ul>
134
- </div>
135
- </UCard>
136
-
137
- <UCard>
138
- <template #header>
139
- <TypographyHeadline :level="3"> Links </TypographyHeadline>
140
- </template>
141
- <div class="space-y-2">
142
- <Typography tag="p" color="muted" leading="leading-relaxed">
143
- Type-safe navigation with named routes
144
- </Typography>
145
- <ul class="list-disc list-inside space-y-1 text-sm text-muted">
146
- <li>Named route enforcement</li>
147
- <li>Color support</li>
148
- <li>ULink wrapper</li>
149
- </ul>
150
- </div>
151
- </UCard>
152
-
153
- <UCard>
154
- <template #header>
155
- <TypographyHeadline :level="3"> Media </TypographyHeadline>
156
- </template>
157
- <div class="space-y-2">
158
- <Typography tag="p" color="muted" leading="leading-relaxed">
159
- Responsive image handling with optimization
160
- </Typography>
161
- <ul class="list-disc list-inside space-y-1 text-sm text-muted">
162
- <li>Picture component</li>
163
- <li>Multiple formats (avif, webp)</li>
164
- <li>Responsive sizing</li>
165
- <li>Lazy loading</li>
166
- </ul>
167
- </div>
168
- </UCard>
169
-
170
- <UCard>
171
- <template #header>
172
- <TypographyHeadline :level="3"> Branding </TypographyHeadline>
173
- </template>
174
- <div class="space-y-2">
175
- <Typography tag="p" color="muted" leading="leading-relaxed">
176
- Site branding and structure components
177
- </Typography>
178
- <ul class="list-disc list-inside space-y-1 text-sm text-muted">
179
- <li>Masthead/Main wrapper</li>
180
- <li>Site Title with variants</li>
181
- <li>Semantic HTML structure</li>
182
- </ul>
183
- </div>
184
- </UCard>
185
- </div>
186
- </section>
187
-
188
- <!-- Quote Example -->
189
- <section class="space-y-6">
190
- <TypographyHeadline :level="2" color="highlighted"> Quote Block </TypographyHeadline>
191
-
192
- <TypographyQuoteBlock color="muted" class="border-l-4 border-primary pl-4 italic">
193
- A unified, typed design system that provides consistency across projects while maintaining
194
- flexibility for customization.
195
- </TypographyQuoteBlock>
196
- </section>
197
-
198
- <!-- Features List -->
199
- <section class="space-y-6">
200
- <TypographyHeadline :level="2" color="highlighted"> Key Features </TypographyHeadline>
201
-
202
- <div class="grid md:grid-cols-3 gap-4">
203
- <div class="space-y-2">
204
- <Typography weight="font-semibold" color="primary"> Fully Typed </Typography>
205
- <Typography tag="p" color="muted" leading="leading-relaxed" class="text-sm">
206
- Complete TypeScript coverage with semantic types for typography, colors, and
207
- breakpoints
208
- </Typography>
209
- </div>
210
-
211
- <div class="space-y-2">
212
- <Typography weight="font-semibold" color="primary"> Composable First </Typography>
213
- <Typography tag="p" color="muted" leading="leading-relaxed" class="text-sm">
214
- Built on Vue composables (useTypography, useColor, usePicture) for maximum reusability
215
- </Typography>
216
- </div>
217
-
218
- <div class="space-y-2">
219
- <Typography weight="font-semibold" color="primary"> Responsive Ready </Typography>
220
- <Typography tag="p" color="muted" leading="leading-relaxed" class="text-sm">
221
- Comprehensive breakpoint system supporting Tailwind, device, phone, and tablet
222
- breakpoints
223
- </Typography>
224
- </div>
225
- </div>
226
- </section>
227
-
228
- <!-- Footer -->
229
- <footer class="pt-8 border-t border-neutral-200 dark:border-neutral-800">
230
- <Typography tag="p" color="dimmed" align="center" class="text-sm">
231
- UI Layer - A reusable design system for Nuxt
232
- </Typography>
233
- </footer>
234
- </UContainer>
235
- </MastMain>
236
- </template>