kmcom-nuxt-layers 1.3.1 → 1.5.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.
Files changed (102) hide show
  1. package/layers/content/app/components/Blog/List.vue +5 -1
  2. package/layers/content/app/components/Gallery/AmbientImage.vue +5 -12
  3. package/layers/content/app/components/Gallery/Detail.vue +8 -6
  4. package/layers/content/app/components/Gallery/Grid.vue +11 -3
  5. package/layers/content/app/components/Portfolio/ColorPalette.vue +1 -4
  6. package/layers/content/app/components/Portfolio/Detail.vue +6 -1
  7. package/layers/content/app/components/Portfolio/List.vue +5 -1
  8. package/layers/content/app/components/content/Figure.vue +1 -7
  9. package/layers/content/nuxt.config.ts +16 -5
  10. package/layers/content/package.json +5 -5
  11. package/layers/core/app/assets/css/main.css +5 -0
  12. package/layers/core/app/composables/useCache.ts +8 -4
  13. package/layers/core/app/composables/useErrorLog.ts +9 -5
  14. package/layers/core/app/composables/useScrollGuard.ts +4 -2
  15. package/layers/core/app/plugins/feature-detection.client.ts +1 -1
  16. package/layers/core/app/plugins/init.ts +2 -1
  17. package/layers/core/app/plugins/scroll-guard.client.ts +4 -1
  18. package/layers/core/app.config.ts +0 -9
  19. package/layers/forms/app/components/Form/Contact.vue +16 -7
  20. package/layers/forms/nuxt.config.ts +18 -0
  21. package/layers/forms/package.json +2 -0
  22. package/layers/layout/app/components/Layout/Container.vue +1 -4
  23. package/layers/layout/app/components/Layout/Grid/Debug.vue +0 -1
  24. package/layers/layout/app/components/Layout/Grid/Item.vue +12 -6
  25. package/layers/layout/app/components/Layout/Main.vue +1 -4
  26. package/layers/layout/app/components/Layout/Page/Container.vue +3 -1
  27. package/layers/layout/app/components/Layout/Page/Header.vue +16 -7
  28. package/layers/layout/app/components/Layout/Section/Grid.vue +1 -4
  29. package/layers/layout/app/components/Layout/Section/Sidebar.vue +6 -1
  30. package/layers/layout/app/components/Layout/Section/Stack.vue +1 -1
  31. package/layers/layout/app/composables/useGridConfig.ts +6 -1
  32. package/layers/motion/app/components/Motion/HorizontalScroll.vue +61 -0
  33. package/layers/motion/app/components/Motion/PinnedSection.vue +77 -0
  34. package/layers/motion/app/components/Motion/ScrollProgress.vue +8 -56
  35. package/layers/motion/app/components/Motion/ScrollScene.vue +121 -0
  36. package/layers/motion/app/components/Motion/ScrollStep.vue +45 -0
  37. package/layers/motion/app/components/Motion/TextReveal.vue +28 -63
  38. package/layers/motion/app/composables/useScrollSteps.ts +41 -0
  39. package/layers/motion/app/composables/useSectionProgress.ts +58 -0
  40. package/layers/motion/app/composables/useSmoothScroll.ts +3 -2
  41. package/layers/motion/app/plugins/locomotive-scroll.client.ts +6 -6
  42. package/layers/motion/nuxt.config.ts +6 -0
  43. package/layers/motion/package.json +2 -1
  44. package/layers/routing/app/app.config.ts +20 -0
  45. package/layers/routing/app/composables/useFeatures.ts +12 -0
  46. package/layers/routing/app/composables/useMaintenance.ts +7 -0
  47. package/layers/routing/app/composables/useRoutingConfig.ts +20 -0
  48. package/layers/routing/app/middleware/01.maintenance.global.ts +6 -0
  49. package/layers/routing/app/middleware/02.governance.global.ts +25 -0
  50. package/layers/routing/app/plugins/feature-flags.client.ts +15 -0
  51. package/layers/routing/app/plugins/scroll-routing.client.ts +21 -0
  52. package/layers/routing/app/types/route-meta.d.ts +6 -0
  53. package/layers/routing/app/types/routing.ts +48 -0
  54. package/layers/routing/nuxt.config.ts +27 -0
  55. package/layers/routing/package.json +6 -0
  56. package/layers/shader/app/components/Preset/ThemeAurora.client.vue +86 -0
  57. package/layers/shader/app/components/Preset/ThemeBubble.client.vue +87 -0
  58. package/layers/shader/app/components/Preset/ThemeFlow.client.vue +86 -0
  59. package/layers/shader/app/components/Preset/ThemeGradient.client.vue +87 -0
  60. package/layers/shader/app/components/Preset/ThemeLavaLamp.client.vue +86 -0
  61. package/layers/shader/app/components/Preset/ThemePlasma.client.vue +86 -0
  62. package/layers/shader/app/components/Preset/ThemeWave.client.vue +86 -0
  63. package/layers/shader/app/components/Shader/Background.client.vue +15 -0
  64. package/layers/shader/app/composables/useAmbientMaterials.ts +306 -0
  65. package/layers/shader/app/composables/useThemeColors.ts +52 -0
  66. package/layers/shader/app/utils/tsl/oklch.ts +12 -6
  67. package/layers/theme/app/assets/css/theme.css +19 -14
  68. package/layers/theme/app/components/ThemePicker/AccentButton.vue +2 -2
  69. package/layers/theme/app/components/ThemePicker/Colors.vue +2 -4
  70. package/layers/theme/app/components/ThemePicker/Menu.vue +4 -13
  71. package/layers/theme/app/components/ThemePicker/MenuButton.vue +1 -7
  72. package/layers/theme/app/composables/useAccentColor.ts +38 -0
  73. package/layers/theme/app/composables/useTheme.ts +14 -0
  74. package/layers/theme/app/composables/useThemeContrast.ts +34 -0
  75. package/layers/theme/app/composables/useThemeMotion.ts +34 -0
  76. package/layers/theme/app/composables/useThemePreferences.ts +3 -156
  77. package/layers/theme/app/composables/useThemeTransparency.ts +41 -0
  78. package/layers/theme/app/plugins/theme.client.ts +3 -3
  79. package/layers/theme/app/types/theme.ts +4 -0
  80. package/layers/theme/nuxt.config.ts +7 -0
  81. package/layers/ui/app/app.config.ts +44 -0
  82. package/layers/ui/app/assets/css/main.css +14 -0
  83. package/layers/ui/app/components/Accent/Blob.vue +29 -0
  84. package/layers/ui/app/components/Accent/Scene.vue +38 -0
  85. package/layers/ui/app/components/Gradient/Background.vue +22 -0
  86. package/layers/ui/app/components/Gradient/Text.vue +22 -0
  87. package/layers/ui/app/components/Progress/Bar.vue +25 -0
  88. package/layers/ui/app/components/Progress/Circular.vue +69 -0
  89. package/layers/ui/app/components/Tint/Overlay.vue +25 -0
  90. package/layers/ui/app/components/Typography/CodeBlock.vue +2 -1
  91. package/layers/ui/app/components/Typography/Headline.vue +2 -1
  92. package/layers/ui/app/components/Typography/QuoteBlock.vue +2 -1
  93. package/layers/ui/app/components/Typography/TextStroke.vue +18 -16
  94. package/layers/ui/app/composables/accent.ts +51 -0
  95. package/layers/ui/app/composables/gradient.ts +79 -0
  96. package/layers/ui/app/composables/tint.ts +20 -0
  97. package/layers/ui/app/types/accent.ts +17 -0
  98. package/layers/ui/app/types/gradient.ts +27 -0
  99. package/layers/ui/app/types/tint.ts +25 -0
  100. package/package.json +37 -31
  101. package/layers/motion/app/utils/gsapAnimations.ts +0 -122
  102. package/layers/ui/app.config.ts +0 -12
@@ -1,122 +0,0 @@
1
- import type { gsap as GsapType } from 'gsap'
2
- import type { ScrollTrigger as ScrollTriggerType } from 'gsap/ScrollTrigger'
3
-
4
- type GsapInstance = typeof GsapType
5
- type ScrollTriggerInstance = typeof ScrollTriggerType
6
-
7
- /**
8
- * Create a fade-in animation with scroll trigger
9
- */
10
- export function createFadeIn(
11
- gsap: GsapInstance,
12
- target: string | Element,
13
- options?: {
14
- duration?: number
15
- delay?: number
16
- y?: number
17
- start?: string
18
- toggleActions?: string
19
- }
20
- ) {
21
- const {
22
- duration = 1,
23
- delay = 0,
24
- y = 30,
25
- start = 'top 85%',
26
- toggleActions = 'play none none none',
27
- } = options ?? {}
28
-
29
- gsap.set(target, { opacity: 0, y })
30
-
31
- return gsap.to(target, {
32
- opacity: 1,
33
- y: 0,
34
- duration,
35
- delay,
36
- ease: 'power2.out',
37
- scrollTrigger: {
38
- trigger: target,
39
- start,
40
- toggleActions,
41
- },
42
- })
43
- }
44
-
45
- /**
46
- * Create a parallax effect
47
- */
48
- export function createParallax(
49
- gsap: GsapInstance,
50
- target: string | Element,
51
- options?: {
52
- speed?: number
53
- trigger?: string | Element
54
- }
55
- ) {
56
- const { speed = 0.5, trigger } = options ?? {}
57
-
58
- return gsap.to(target, {
59
- y: () => window.innerHeight * speed,
60
- ease: 'none',
61
- scrollTrigger: {
62
- trigger: trigger ?? target,
63
- start: 'top bottom',
64
- end: 'bottom top',
65
- scrub: true,
66
- },
67
- })
68
- }
69
-
70
- /**
71
- * Create a pinned section
72
- */
73
- export function createPin(
74
- ScrollTrigger: ScrollTriggerInstance,
75
- target: string | Element,
76
- options?: {
77
- start?: string
78
- end?: string
79
- pinSpacing?: boolean
80
- }
81
- ) {
82
- const { start = 'top top', end = '+=100%', pinSpacing = true } = options ?? {}
83
-
84
- return ScrollTrigger.create({
85
- trigger: target,
86
- start,
87
- end,
88
- pin: true,
89
- pinSpacing,
90
- })
91
- }
92
-
93
- /**
94
- * Create staggered fade-in for multiple elements
95
- */
96
- export function createStaggeredFadeIn(
97
- gsap: GsapInstance,
98
- targets: string | Element[],
99
- options?: {
100
- duration?: number
101
- stagger?: number
102
- y?: number
103
- start?: string
104
- }
105
- ) {
106
- const { duration = 0.8, stagger = 0.1, y = 30, start = 'top 85%' } = options ?? {}
107
-
108
- gsap.set(targets, { opacity: 0, y })
109
-
110
- return gsap.to(targets, {
111
- opacity: 1,
112
- y: 0,
113
- duration,
114
- stagger,
115
- ease: 'power2.out',
116
- scrollTrigger: {
117
- trigger: typeof targets === 'string' ? targets : targets[0],
118
- start,
119
- toggleActions: 'play none none none',
120
- },
121
- })
122
- }
@@ -1,12 +0,0 @@
1
- export default defineAppConfig({
2
- uiLayer: {},
3
- })
4
-
5
- declare module '@nuxt/schema' {
6
- interface AppConfigInput {
7
- uiLayer?: {
8
- /** Project name */
9
- name?: string
10
- }
11
- }
12
- }