kmcom-nuxt-layers 6.2.0 → 6.3.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/MIGRATION-v6.3.0.md +234 -0
- package/docs/MIGRATION.md +2 -0
- package/docs/component-levels.md +116 -0
- package/layers/content/app/components/Blog/ItemPage.vue +2 -7
- package/layers/content/app/components/Blog/List.vue +9 -2
- package/layers/content/app/components/Blog/Page.vue +9 -19
- package/layers/content/app/components/Gallery/Detail.vue +1 -0
- package/layers/content/app/components/Gallery/Grid.vue +9 -2
- package/layers/content/app/components/Gallery/ImageDetail.vue +0 -6
- package/layers/content/app/components/Gallery/ImagePage.vue +10 -6
- package/layers/content/app/components/Gallery/Page.vue +9 -19
- package/layers/content/app/components/Gallery/SlugPage.vue +2 -7
- package/layers/content/app/components/NuxtContent/Detail.vue +20 -11
- package/layers/content/app/components/NuxtContent/IndexTemplate.vue +21 -0
- package/layers/content/app/components/NuxtContent/List.vue +6 -1
- package/layers/content/app/components/Portfolio/ColorPalette.vue +2 -2
- package/layers/content/app/components/Portfolio/ItemPage.vue +2 -6
- package/layers/content/app/components/Portfolio/List.vue +19 -8
- package/layers/content/app/components/Portfolio/Page.vue +9 -19
- package/layers/content/app/composables/useContentItemSeo.ts +19 -0
- package/layers/content/app/composables/useContentSection.ts +9 -0
- package/layers/content/app/utils/galleryImageMeta.test.ts +30 -0
- package/layers/content/app/utils/galleryImageMeta.ts +11 -0
- package/layers/content/nuxt.config.ts +1 -1
- package/layers/core/app/assets/css/core.css +5 -11
- package/layers/core/app/assets/css/tokens/z-index.css +16 -0
- package/layers/core/app/components/DiagnosticsPage.vue +41 -41
- package/layers/core/app/components/LoadingScreen.vue +2 -0
- package/layers/delivery/feeds/app/components/Feeds/Index.vue +36 -75
- package/layers/delivery/feeds/app/components/Feeds/RouteCard.vue +6 -8
- package/layers/design-system/theming/nuxt.config.ts +1 -3
- package/layers/design-system/visual/app/components/Base/Modal.vue +34 -86
- package/layers/design-system/visual/app/components/HoverDimGroup.vue +46 -0
- package/layers/design-system/visual/app/components/Progress/Bar.vue +9 -29
- package/layers/motion/animations/app/components/Motion/Cursor.vue +1 -1
- package/layers/motion/animations/app/components/Motion/Marquee.vue +5 -0
- package/layers/motion/animations/app/components/Motion/MarqueeText.vue +2 -1
- package/layers/motion/animations/app/components/Motion/Staggered.test.ts +40 -0
- package/layers/motion/animations/app/components/Motion/Staggered.vue +37 -42
- package/layers/motion/animations/app/components/Motion/TextReveal.vue +8 -1
- package/layers/motion/animations/app/components/Motion/VelocityEffect.vue +6 -0
- package/layers/motion/animations/app/composables/useCountUp.ts +6 -0
- package/layers/motion/animations/app/composables/useCursorFollower.ts +4 -1
- package/layers/motion/animations/app/utils/pointerMotion.ts +7 -2
- package/layers/motion/scroll/app/components/Motion/HorizontalScroll.vue +9 -0
- package/layers/motion/scroll/app/components/Motion/Parallax.vue +13 -12
- package/layers/motion/scroll/app/components/Motion/PinnedSection.vue +16 -9
- package/layers/motion/scroll/app/composables/useReducedMotion.test.ts +23 -0
- package/layers/motion/scroll/app/composables/useReducedMotion.ts +14 -0
- package/layers/motion/scroll/app/plugins/locomotive-scroll.client.ts +9 -1
- package/layers/motion/scroll/app/utils/parallax.test.ts +24 -0
- package/layers/motion/scroll/app/utils/parallax.ts +16 -0
- package/layers/motion/scroll/nuxt.config.ts +1 -1
- package/layers/structure/layout/app/components/Layout/Grid/Debug.vue +1 -1
- package/layers/structure/layout/app/components/Layout/Page/index.vue +9 -10
- package/layers/structure/navigation/app/components/Links/Group.vue +12 -38
- package/layers/structure/navigation/app/components/Links/Named.vue +9 -0
- package/layers/structure/navigation/app/components/Mast/Footer.vue +1 -1
- package/layers/structure/navigation/app/components/Mast/Nav.vue +3 -1
- package/layers/structure/navigation/app/components/Mast/NavModal.vue +34 -39
- package/layers/structure/navigation/app/components/Site/Subtitle.vue +10 -0
- package/layers/structure/navigation/app/components/Site/Title.vue +8 -0
- package/layers/structure/navigation/nuxt.config.ts +7 -1
- package/package.json +1 -1
- /package/layers/{design-system/theming/app/assets/css/tokens.css → core/app/assets/css/tokens/elevation-motion.css} +0 -0
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
const activeSection = useState<string>('activeSection', () => '')
|
|
15
15
|
const route = useRoute()
|
|
16
16
|
const { close: closeNav } = useMastNav()
|
|
17
|
-
const { useZIndex } = useGridConfig()
|
|
18
17
|
|
|
19
18
|
function dismiss() {
|
|
20
19
|
emit('update:open', false)
|
|
@@ -35,43 +34,39 @@
|
|
|
35
34
|
</script>
|
|
36
35
|
|
|
37
36
|
<template>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
>
|
|
49
|
-
<
|
|
50
|
-
|
|
37
|
+
<!-- UModal supplies the dialog role, focus trap, Escape and portal; the title stays
|
|
38
|
+
visually hidden because the content slot replaces the header. -->
|
|
39
|
+
<UModal
|
|
40
|
+
:open
|
|
41
|
+
fullscreen
|
|
42
|
+
title="Site navigation"
|
|
43
|
+
:ui="{ overlay: 'z-(--z-modal)', content: 'bg-default text-default z-(--z-modal)' }"
|
|
44
|
+
@update:open="(value) => !value && dismiss()"
|
|
45
|
+
>
|
|
46
|
+
<template #content>
|
|
47
|
+
<div class="relative flex h-full flex-col items-center justify-center">
|
|
48
|
+
<UButton
|
|
49
|
+
icon="lucide:x"
|
|
50
|
+
color="neutral"
|
|
51
|
+
variant="ghost"
|
|
52
|
+
size="xl"
|
|
53
|
+
aria-label="Close navigation"
|
|
54
|
+
class="absolute top-4 right-4"
|
|
55
|
+
@click="dismiss"
|
|
56
|
+
/>
|
|
51
57
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
58
|
+
<HoverDimGroup tag="nav" class="flex flex-col items-center gap-2">
|
|
59
|
+
<button
|
|
60
|
+
v-for="link in links"
|
|
61
|
+
:key="link.id"
|
|
62
|
+
class="cursor-pointer border-0 bg-transparent px-4 py-3 text-3xl tracking-widest uppercase transition-all"
|
|
63
|
+
:class="activeSection === link.id ? 'font-normal' : 'font-light'"
|
|
64
|
+
@click="() => handleNav(link)"
|
|
65
|
+
>
|
|
66
|
+
{{ link.label }}
|
|
67
|
+
</button>
|
|
68
|
+
</HoverDimGroup>
|
|
69
|
+
</div>
|
|
70
|
+
</template>
|
|
71
|
+
</UModal>
|
|
65
72
|
</template>
|
|
66
|
-
|
|
67
|
-
<style scoped>
|
|
68
|
-
.nav-modal-enter-active,
|
|
69
|
-
.nav-modal-leave-active {
|
|
70
|
-
transition: opacity 300ms ease;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.nav-modal-enter-from,
|
|
74
|
-
.nav-modal-leave-to {
|
|
75
|
-
opacity: 0;
|
|
76
|
-
}
|
|
77
|
-
</style>
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Render `useSite().subtitleWords` directly. Unused in this repo and KMCOMv5;
|
|
4
|
+
* remove in the next major.
|
|
5
|
+
*/
|
|
6
|
+
if (import.meta.dev)
|
|
7
|
+
// eslint-disable-next-line no-console -- one-time deprecation notice, dev only
|
|
8
|
+
console.warn(
|
|
9
|
+
'[navigation] <SiteSubtitle> is deprecated — render useSite().subtitleWords directly.'
|
|
10
|
+
)
|
|
11
|
+
|
|
2
12
|
const site = useSite()
|
|
3
13
|
</script>
|
|
4
14
|
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Render `useSite().titleWords` directly. Unused in this repo and KMCOMv5;
|
|
4
|
+
* remove in the next major.
|
|
5
|
+
*/
|
|
6
|
+
if (import.meta.dev)
|
|
7
|
+
// eslint-disable-next-line no-console -- one-time deprecation notice, dev only
|
|
8
|
+
console.warn('[navigation] <SiteTitle> is deprecated — render useSite().titleWords directly.')
|
|
9
|
+
|
|
2
10
|
const site = useSite()
|
|
3
11
|
</script>
|
|
4
12
|
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
export default defineNuxtConfig({
|
|
2
2
|
$meta: { name: 'navigation' },
|
|
3
3
|
|
|
4
|
-
extends: [
|
|
4
|
+
extends: [
|
|
5
|
+
'../../core',
|
|
6
|
+
'../../motion/scroll',
|
|
7
|
+
'../layout',
|
|
8
|
+
'../../design-system/typography',
|
|
9
|
+
'../../design-system/visual',
|
|
10
|
+
],
|
|
5
11
|
|
|
6
12
|
alias: {
|
|
7
13
|
'#layers/navigation': import.meta.dirname,
|
package/package.json
CHANGED
|
File without changes
|