kmcom-nuxt-layers 4.0.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/superpowers/plans/2026-09-03-layout-layer-fluid-rebuild.md +8 -8
- package/docs/superpowers/specs/2026-08-30-layer-taxonomy-tier-7-design.md +1 -1
- package/docs/superpowers/specs/2026-08-31-swiss-grid-layer-design.md +3 -3
- package/docs/superpowers/specs/2026-09-03-layout-layer-fluid-rebuild-design.md +3 -3
- package/layers/content/app/components/Blog/Article.vue +1 -1
- package/layers/content/app/components/Gallery/Detail.vue +8 -8
- package/layers/content/app/components/Gallery/Grid.vue +8 -8
- package/layers/content/app/components/Gallery/ImageDetail.vue +6 -6
- package/layers/content/app/components/Gallery/Lightbox.vue +3 -3
- package/layers/content/app/components/NuxtContent/Detail.vue +1 -1
- package/layers/content/app/components/NuxtContent/List.vue +1 -1
- package/layers/content/app/components/Portfolio/ColorPalette.vue +5 -5
- package/layers/content/app/components/Portfolio/Detail.vue +1 -1
- package/layers/content/app/components/Portfolio/List.vue +1 -1
- package/layers/content/app/components/Portfolio/Typography.vue +5 -5
- package/layers/content/app/components/content/Figure.vue +1 -1
- package/layers/core/app/assets/css/core.css +9 -9
- package/layers/core/app/assets/css/layout.css +1 -1
- package/layers/core/app/components/DiagnosticsPage.vue +15 -15
- package/layers/core/app/components/Element.test.ts +1 -1
- package/layers/core/app/components/ElementTw.test.ts +1 -1
- package/layers/core/app/components/ErrorBoundary.vue +5 -5
- package/layers/core/app/composables/useElementGrid.test.ts +1 -1
- package/layers/core/app/composables/useElementInteraction.test.ts +1 -1
- package/layers/core/app/composables/useElementLayout.test.ts +1 -1
- package/layers/core/app/composables/useElementSizing.test.ts +1 -1
- package/layers/core/app/composables/useElementSurface.test.ts +1 -1
- package/layers/core/app/composables/useLayoutAttrs.test.ts +1 -1
- package/layers/core/app/error.vue +1 -1
- package/layers/core/app/pages/[...slug].vue +2 -2
- package/layers/core/app/utils/browserInfo.test.ts +1 -1
- package/layers/core/app/utils/featureClasses.test.ts +1 -1
- package/layers/core/app/utils/scrollGuardClamp.test.ts +1 -1
- package/layers/core/app/utils/styleToTailwindClasses.test.ts +1 -1
- package/layers/data/forms/app/utils/contact-schema.test.ts +1 -1
- package/layers/data/forms/app/utils/fieldProps.test.ts +1 -1
- package/layers/data/mailer/shared/contact.ts +23 -0
- package/layers/data/metadata/providers/comicvine/server/utils/metadata-comicvine/normalise.test.ts +1 -1
- package/layers/data/metadata/providers/google-books/server/utils/metadata-google-books/client.test.ts +1 -1
- package/layers/data/metadata/providers/google-books/server/utils/metadata-google-books/normalise.test.ts +1 -1
- package/layers/data/metadata/providers/openlibrary/server/utils/metadata-openlibrary/client.test.ts +1 -1
- package/layers/data/metadata/providers/openlibrary/server/utils/metadata-openlibrary/normalise.test.ts +1 -1
- package/layers/data/metadata/providers/themoviedb/server/utils/metadata-tmdb/client.test.ts +1 -1
- package/layers/data/metadata/providers/themoviedb/server/utils/metadata-tmdb/normalise.test.ts +1 -1
- package/layers/data/metadata/server/utils/metadata/cache.test.ts +1 -1
- package/layers/data/metadata/server/utils/metadata/provider-registry.test.ts +1 -1
- package/layers/data/metadata/server/utils/metadata/search.test.ts +1 -1
- package/layers/data/metadata/shared/types/index.ts +2 -0
- package/layers/data/metadata/shared/types/metadata.ts +59 -0
- package/layers/data/metadata/shared/types/providers.ts +36 -0
- package/layers/delivery/feeds/app/assets/css/feeds.css +23 -11
- package/layers/delivery/feeds/app/components/Feeds/Index.vue +10 -10
- package/layers/delivery/feeds/app/components/Feeds/RouteCard.vue +1 -1
- package/layers/delivery/feeds/public/feed/style.css +16 -16
- package/layers/delivery/feeds/server/utils/content-adapter.test.ts +1 -1
- package/layers/delivery/feeds/server/utils/feed-author.test.ts +1 -1
- package/layers/delivery/feeds/server/utils/feed-config.test.ts +1 -1
- package/layers/delivery/feeds/server/utils/formats.test.ts +1 -1
- package/layers/delivery/scripts/app/components/BaselineStatus.vue +3 -1
- package/layers/delivery/seo/app/utils/seoConfig.test.ts +1 -1
- package/layers/design-system/theming/app/assets/css/theme.css +0 -1
- package/layers/design-system/theming/app/components/ThemePicker/AccentButton.vue +2 -2
- package/layers/design-system/theming/app/components/ThemePicker/Menu.vue +3 -3
- package/layers/design-system/theming/app/composables/useAccentColor.ts +4 -1
- package/layers/design-system/theming/app/plugins/theme.client.ts +15 -13
- package/layers/design-system/theming/app/utils/themeAdapter.ts +1 -1
- package/layers/design-system/theming/nuxt.config.ts +1 -1
- package/layers/design-system/theming/server/utils/accent-css.test.ts +1 -1
- package/layers/design-system/theming/server/utils/fouc-config.test.ts +1 -1
- package/layers/design-system/typography/app/components/Typography/TextStroke.vue +1 -1
- package/layers/design-system/visual/app/assets/css/visual.css +0 -1
- package/layers/design-system/visual/app/components/Accent/Scene.vue +2 -2
- package/layers/design-system/visual/app/components/Tint/Overlay.vue +1 -1
- package/layers/design-system/visual/app/utils/colorTokens.test.ts +1 -1
- package/layers/design-system/visual/app/utils/gradientStyle.test.ts +1 -1
- package/layers/design-system/visual/app/utils/responsiveSizes.test.ts +1 -1
- package/layers/motion/animations/app/components/Motion/Marquee.vue +1 -1
- package/layers/motion/animations/app/components/Motion/MarqueeText.vue +3 -3
- package/layers/motion/scroll/app/components/Motion/HorizontalScroll.vue +1 -1
- package/layers/motion/scroll/app/components/Motion/PinnedSection.vue +2 -2
- package/layers/motion/scroll/app/components/Motion/ScrollProgress.vue +2 -2
- package/layers/motion/scroll/app/components/Motion/ScrollStats.vue +6 -6
- package/layers/motion/transitions/app/assets/css/transitions.css +12 -12
- package/layers/render/canvas/app/composables/useRendererCapabilities.ts +2 -1
- package/layers/render/canvas/package.json +2 -1
- package/layers/render/shader/app/assets/css/shader.css +5 -5
- package/layers/render/shader/app/components/Mesh/Plane.vue +3 -1
- package/layers/render/shader/app/shaders/common/grain.ts +1 -1
- package/layers/render/shader/app/types/tsl.ts +1 -1
- package/layers/render/shader/app/utils/tsl/index.ts +2 -0
- package/layers/structure/grid/app/assets/css/grid.css +2 -0
- package/layers/structure/grid/app/composables/useGridTracks.test.ts +1 -1
- package/layers/structure/grid/app/types/tracks.test.ts +1 -1
- package/layers/structure/grid/app/utils/placement.test.ts +1 -1
- package/layers/structure/layout/app/components/Layout/Grid/Debug.vue +1 -1
- package/layers/structure/layout/app/components/Layout/Page/Header.vue +3 -3
- package/layers/structure/layout/app/components/Layout/Page/index.vue +16 -11
- package/layers/structure/layout/app/utils/gridPlacementStyle.test.ts +1 -1
- package/layers/structure/navigation/app/components/Mast/Nav.vue +1 -1
- package/layers/structure/navigation/app/components/Mast/NavModal.vue +2 -2
- package/layers/structure/navigation/app/utils/site.test.ts +1 -1
- package/layers/structure/routing/app/utils/resolveRoute.test.ts +1 -1
- package/package.json +22 -32
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kmcom-nuxt-layers",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "5.0.0",
|
|
5
5
|
"description": "Composable Nuxt 4 layers for building scalable Vue applications",
|
|
6
6
|
"exports": {
|
|
7
7
|
"./layers/core": "./layers/core/nuxt.config.ts",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"layers/*/app/**",
|
|
42
42
|
"layers/*/public/**",
|
|
43
43
|
"layers/*/server/**",
|
|
44
|
+
"layers/*/shared/**",
|
|
44
45
|
"layers/*/*/nuxt.config.ts",
|
|
45
46
|
"layers/*/*/app.config.ts",
|
|
46
47
|
"layers/*/*/package.json",
|
|
@@ -49,6 +50,7 @@
|
|
|
49
50
|
"layers/*/*/app/**",
|
|
50
51
|
"layers/*/*/public/**",
|
|
51
52
|
"layers/*/*/server/**",
|
|
53
|
+
"layers/*/*/shared/**",
|
|
52
54
|
"layers/*/*/providers/*/nuxt.config.ts",
|
|
53
55
|
"layers/*/*/providers/*/package.json",
|
|
54
56
|
"layers/*/*/providers/*/tsconfig.json",
|
|
@@ -151,7 +153,6 @@
|
|
|
151
153
|
"@culur/config-stylelint": "^1.7.2",
|
|
152
154
|
"@eslint/json": "^1.2.0",
|
|
153
155
|
"@eslint/markdown": "^8.0.3",
|
|
154
|
-
"@ianvs/prettier-plugin-sort-imports": "^4.7.1",
|
|
155
156
|
"@iconify-json/lucide": "^1.2.126",
|
|
156
157
|
"@netlify/nuxt": "0.3.7",
|
|
157
158
|
"@nuxt/eslint": "^1.15.2",
|
|
@@ -169,7 +170,7 @@
|
|
|
169
170
|
"@typescript-eslint/eslint-plugin": "^8.60.1",
|
|
170
171
|
"@typescript-eslint/parser": "^8.60.1",
|
|
171
172
|
"@vitejs/plugin-vue": "^6.0.8",
|
|
172
|
-
"@vitest/coverage-v8": "
|
|
173
|
+
"@vitest/coverage-v8": "5.0.4",
|
|
173
174
|
"@vue/eslint-config-typescript": "^14.7.0",
|
|
174
175
|
"@vue/test-utils": "^2.4.10",
|
|
175
176
|
"@vueuse/core": "^14.3.0",
|
|
@@ -186,7 +187,6 @@
|
|
|
186
187
|
"eslint-plugin-compat": "^7.0.2",
|
|
187
188
|
"eslint-plugin-glsl": "0.0.0-wip",
|
|
188
189
|
"eslint-plugin-pnpm": "^1.6.1",
|
|
189
|
-
"eslint-plugin-prettier": "^5.5.6",
|
|
190
190
|
"eslint-plugin-unicorn": "^64.0.0",
|
|
191
191
|
"eslint-plugin-unused-imports": "^4.4.1",
|
|
192
192
|
"eslint-plugin-vue": "^10.9.2",
|
|
@@ -194,32 +194,26 @@
|
|
|
194
194
|
"happy-dom": "^20.10.3",
|
|
195
195
|
"netlify-cli": "^26.1.0",
|
|
196
196
|
"npm-check-updates": "^22.2.2",
|
|
197
|
-
"nuxt": "
|
|
197
|
+
"nuxt": "4.6.1",
|
|
198
198
|
"pinia": "^4.0.3",
|
|
199
199
|
"postcss-html": "^1.8.1",
|
|
200
|
-
"prettier": "^3.8.3",
|
|
201
|
-
"prettier-plugin-css-order": "^2.2.0",
|
|
202
|
-
"prettier-plugin-glsl": "^0.3.1",
|
|
203
|
-
"prettier-plugin-organize-attributes": "^1.0.0",
|
|
204
|
-
"prettier-plugin-tailwind-styled-components": "^2.0.2",
|
|
205
|
-
"prettier-plugin-tailwindcss": "^0.8.1",
|
|
206
200
|
"stylelint": "^17.12.0",
|
|
207
201
|
"stylelint-config-recommended-vue": "^1.6.1",
|
|
208
202
|
"stylelint-config-standard": "^40.0.0",
|
|
209
203
|
"stylelint-config-standard-vue": "^1.0.0",
|
|
210
204
|
"stylelint-config-tailwindcss": "^1.0.1",
|
|
211
205
|
"stylelint-no-unsupported-browser-features": "^8.1.1",
|
|
212
|
-
"stylelint-prettier": "^5.0.3",
|
|
213
206
|
"tailwindcss": "latest",
|
|
214
|
-
"turbo": "^2.
|
|
207
|
+
"turbo": "^2.11.8",
|
|
215
208
|
"type-fest": "^5.7.0",
|
|
216
209
|
"typescript": "^6",
|
|
217
210
|
"vite-plugin-checker": "^0.14.5",
|
|
218
|
-
"vitest": "
|
|
211
|
+
"vitest": "5.0.4",
|
|
219
212
|
"vue": "3.5.35",
|
|
220
213
|
"vue-tsc": "3.3.11",
|
|
221
214
|
"zod": "^4.4.3",
|
|
222
|
-
"zod-to-json-schema": "^3.25.2"
|
|
215
|
+
"zod-to-json-schema": "^3.25.2",
|
|
216
|
+
"vite-plus": "1.2.0"
|
|
223
217
|
},
|
|
224
218
|
"browserslist": [
|
|
225
219
|
"last 2 Chrome major versions",
|
|
@@ -235,10 +229,6 @@
|
|
|
235
229
|
"engines": {
|
|
236
230
|
"node": ">=24 <25"
|
|
237
231
|
},
|
|
238
|
-
"volta": {
|
|
239
|
-
"node": "24.16.0",
|
|
240
|
-
"pnpm": "11.5.3"
|
|
241
|
-
},
|
|
242
232
|
"scripts": {
|
|
243
233
|
"dev": "pnpm -F playground dev",
|
|
244
234
|
"dev:debug": "pnpm -F debug dev",
|
|
@@ -249,25 +239,25 @@
|
|
|
249
239
|
"dev:database": "PLAYGROUND_LAYERS=core,database pnpm -F playground dev",
|
|
250
240
|
"dev:auth": "PLAYGROUND_LAYERS=core,auth pnpm -F playground dev",
|
|
251
241
|
"build": "turbo run build",
|
|
252
|
-
"lint": "turbo run lint",
|
|
253
|
-
"lint:fix": "turbo run lint -- --fix",
|
|
242
|
+
"lint": "vp lint && turbo run lint",
|
|
243
|
+
"lint:fix": "vp lint --fix && turbo run lint -- --fix",
|
|
254
244
|
"lint:style": "stylelint \"**/*.{vue,scss,css}\"",
|
|
255
245
|
"lint:style:fix": "stylelint \"**/*.{vue,scss,css}\" --fix",
|
|
256
|
-
"format": "
|
|
257
|
-
"format:check": "
|
|
246
|
+
"format": "vp fmt .",
|
|
247
|
+
"format:check": "vp fmt --check .",
|
|
258
248
|
"check": "pnpm run lint && pnpm run typecheck && pnpm run format:check",
|
|
259
249
|
"fix": "pnpm run format && pnpm run lint:fix && pnpm run lint:style:fix",
|
|
260
|
-
"fix:layer": "f(){ pnpm turbo run lint --filter \"./layers/$1\" -- --fix &&
|
|
261
|
-
"fix:app": "f(){ pnpm turbo run lint --filter \"./apps/$1\" -- --fix &&
|
|
250
|
+
"fix:layer": "f(){ pnpm turbo run lint --filter \"./layers/$1\" -- --fix && vp fmt \"layers/$1\"; }; f",
|
|
251
|
+
"fix:app": "f(){ pnpm turbo run lint --filter \"./apps/$1\" -- --fix && vp fmt \"apps/$1\"; }; f",
|
|
262
252
|
"validate": "pnpm run check && pnpm run build",
|
|
263
253
|
"typecheck": "vue-tsc --noEmit -p tsconfig.typecheck.json",
|
|
264
|
-
"test": "
|
|
265
|
-
"test:coverage": "
|
|
266
|
-
"test:watch": "
|
|
267
|
-
"test:unit": "
|
|
268
|
-
"test:vitest": "
|
|
269
|
-
"test:vue": "
|
|
270
|
-
"test:nuxt": "
|
|
254
|
+
"test": "vp test run",
|
|
255
|
+
"test:coverage": "vp test run --coverage",
|
|
256
|
+
"test:watch": "vp test",
|
|
257
|
+
"test:unit": "vp test run --project unit",
|
|
258
|
+
"test:vitest": "vp test run --project vitest",
|
|
259
|
+
"test:vue": "vp test run --project vue",
|
|
260
|
+
"test:nuxt": "vp test run --project nuxt",
|
|
271
261
|
"test:playwright": "playwright test",
|
|
272
262
|
"test:e2e": "playwright test",
|
|
273
263
|
"clean": "pnpm -r exec rm -rf .nuxt .output .data",
|