kmcom-nuxt-layers 2.2.0 → 2.2.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 (359) hide show
  1. package/layers/animations/app/components/Motion/CountUp.vue +30 -30
  2. package/layers/animations/app/components/Motion/Magnetic.vue +14 -14
  3. package/layers/animations/app/components/Motion/Marquee.vue +59 -62
  4. package/layers/animations/app/components/Motion/MarqueeText.vue +2 -2
  5. package/layers/animations/app/components/Motion/Staggered.vue +45 -49
  6. package/layers/animations/app/components/Motion/TextReveal.vue +21 -19
  7. package/layers/animations/app/components/Motion/Tilt.vue +13 -13
  8. package/layers/animations/app/components/Motion/VelocityEffect.vue +80 -80
  9. package/layers/animations/app/composables/useCountUp.ts +1 -1
  10. package/layers/animations/app/composables/useMarqueeVelocity.ts +2 -2
  11. package/layers/canvas/app/components/ShaderCanvas.vue +42 -49
  12. package/layers/canvas/app/composables/useRendererCapabilities.ts +29 -21
  13. package/layers/canvas/app/composables/useShaderTime.ts +4 -5
  14. package/layers/canvas/app/types/renderer.ts +5 -0
  15. package/layers/content/app/components/Blog/Article.vue +10 -7
  16. package/layers/content/app/components/Blog/Card.vue +0 -1
  17. package/layers/content/app/components/Blog/List.vue +2 -4
  18. package/layers/content/app/components/Gallery/AmbientImage.vue +0 -1
  19. package/layers/content/app/components/Gallery/Card.vue +0 -1
  20. package/layers/content/app/components/Gallery/Detail.vue +0 -2
  21. package/layers/content/app/components/Gallery/Grid.vue +0 -2
  22. package/layers/content/app/components/Gallery/ImageDetail.vue +0 -2
  23. package/layers/content/app/components/Gallery/Lightbox.vue +1 -6
  24. package/layers/content/app/components/NuxtContent/Detail.vue +3 -4
  25. package/layers/content/app/components/NuxtContent/List.vue +0 -1
  26. package/layers/content/app/components/NuxtContent/Surround.vue +0 -1
  27. package/layers/content/app/components/NuxtContent/Toc.vue +0 -1
  28. package/layers/content/app/components/Portfolio/Card.vue +0 -1
  29. package/layers/content/app/components/Portfolio/ColorPalette.vue +0 -1
  30. package/layers/content/app/components/Portfolio/Detail.vue +2 -4
  31. package/layers/content/app/components/Portfolio/ItemPage.vue +3 -1
  32. package/layers/content/app/components/Portfolio/List.vue +20 -5
  33. package/layers/content/app/components/Portfolio/Typography.vue +0 -1
  34. package/layers/content/app/components/content/Figure.vue +0 -1
  35. package/layers/content/app/composables/createPortfolioComposables.ts +21 -7
  36. package/layers/content/app/composables/useCollectionItem.ts +2 -3
  37. package/layers/content/app/composables/useCollectionSurround.ts +2 -3
  38. package/layers/content/app/composables/useContentPage.ts +0 -2
  39. package/layers/content/app/composables/useGalleryItems.ts +0 -2
  40. package/layers/content/app/composables/usePortfolioItems.ts +0 -2
  41. package/layers/content/app/types/app-config.d.ts +3 -1
  42. package/layers/content/app/types/collections.d.ts +46 -0
  43. package/layers/content/nuxt.config.ts +0 -1
  44. package/layers/core/app/components/ErrorBoundary.vue +0 -3
  45. package/layers/core/app/composables/useBrowser.ts +0 -1
  46. package/layers/core/app/composables/useCache.ts +0 -3
  47. package/layers/core/app/composables/useErrorLog.ts +0 -2
  48. package/layers/core/app/composables/useFeatures.ts +0 -3
  49. package/layers/core/app/composables/useLoading.ts +16 -15
  50. package/layers/core/app/composables/useNetworkInfo.ts +0 -2
  51. package/layers/core/app/composables/usePWAInfo.ts +0 -1
  52. package/layers/core/app/composables/useRendering.ts +0 -2
  53. package/layers/core/app/composables/useScreen.ts +0 -2
  54. package/layers/core/app/composables/useScrollGuard.ts +44 -44
  55. package/layers/core/app/layouts/default.vue +0 -1
  56. package/layers/core/app/plugins/error-handler.ts +4 -2
  57. package/layers/core/app/plugins/feature-detection.client.ts +4 -4
  58. package/layers/core/app/plugins/init.ts +4 -6
  59. package/layers/core/app/plugins/loading.client.ts +4 -3
  60. package/layers/core/app/plugins/scroll-guard.client.ts +4 -4
  61. package/layers/core/app/types/app-config.d.ts +1 -1
  62. package/layers/core/app/types/runtime-config.ts +13 -1
  63. package/layers/core/app/utils/helpers.ts +0 -4
  64. package/layers/feeds/app/app.config.ts +1 -1
  65. package/layers/feeds/app/plugins/feed-head.ts +4 -3
  66. package/layers/feeds/package.json +1 -1
  67. package/layers/forms/app/components/Form/Contact.vue +0 -2
  68. package/layers/forms/app/components/Form/Field.vue +0 -1
  69. package/layers/forms/app/composables/useFormSchema.ts +0 -1
  70. package/layers/forms/app/types/app-config.d.ts +1 -1
  71. package/layers/layout/app/components/Layout/Grid/Item.vue +0 -3
  72. package/layers/layout/app/components/Layout/Page/Container.vue +0 -4
  73. package/layers/layout/app/components/Layout/Page/Header.vue +0 -1
  74. package/layers/layout/app/components/Layout/Page/index.vue +0 -1
  75. package/layers/layout/app/components/Layout/Section/Gallery.vue +0 -1
  76. package/layers/layout/app/components/Layout/Section/Hero.vue +0 -3
  77. package/layers/layout/app/components/Layout/Section/Stack.vue +0 -3
  78. package/layers/layout/app/components/Layout/Section/Title.vue +0 -1
  79. package/layers/layout/app/composables/useGridConfig.ts +0 -1
  80. package/layers/layout/app/types/app-config.d.ts +6 -3
  81. package/layers/navigation/app/app.config.ts +1 -2
  82. package/layers/navigation/app/components/Links/Group.vue +0 -4
  83. package/layers/navigation/app/components/Links/Named.vue +0 -4
  84. package/layers/navigation/app/composables/mastNav.ts +0 -1
  85. package/layers/navigation/app/composables/toast.ts +0 -1
  86. package/layers/navigation/app/composables/useSite.ts +0 -1
  87. package/layers/navigation/app/utils/createModal.ts +0 -1
  88. package/layers/page-transitions/app/app.config.ts +1 -1
  89. package/layers/page-transitions/app/plugins/page-transitions.client.ts +4 -2
  90. package/layers/routing/app/composables/useRoutingConfig.ts +0 -1
  91. package/layers/routing/app/plugins/feature-flags.client.ts +4 -2
  92. package/layers/routing/app/plugins/scroll-routing.client.ts +4 -2
  93. package/layers/routing/app/types/app-config.d.ts +1 -2
  94. package/layers/routing/nuxt.config.ts +0 -1
  95. package/layers/scripts/app/app.config.ts +1 -2
  96. package/layers/scripts/app/composables/useAnalytics.ts +6 -6
  97. package/layers/scripts/app/composables/useGtm.ts +4 -4
  98. package/layers/scripts/app/composables/useScriptLoader.ts +12 -1
  99. package/layers/scroll/app/components/Motion/HorizontalScroll.vue +4 -1
  100. package/layers/scroll/app/components/Motion/Parallax.vue +38 -42
  101. package/layers/scroll/app/components/Motion/PinnedSection.vue +4 -1
  102. package/layers/scroll/app/components/Motion/ScrollLink.vue +26 -29
  103. package/layers/scroll/app/components/Motion/ScrollProgress.vue +38 -44
  104. package/layers/scroll/app/components/Motion/ScrollScene.vue +0 -1
  105. package/layers/scroll/app/components/Motion/ScrollStats.vue +19 -23
  106. package/layers/scroll/app/composables/useSmoothScroll.ts +21 -24
  107. package/layers/scroll/app/plugins/locomotive-scroll.client.ts +5 -2
  108. package/layers/seo/app/app.config.ts +0 -1
  109. package/layers/seo/app/composables/useSeoConfig.ts +0 -1
  110. package/layers/shader/app/components/Effect/PostProcessing.vue +3 -13
  111. package/layers/shader/app/components/Material/AmbientAurora.client.vue +41 -47
  112. package/layers/shader/app/components/Material/AmbientFlow.client.vue +47 -56
  113. package/layers/shader/app/components/Material/AmbientGradientMesh.client.vue +45 -51
  114. package/layers/shader/app/components/Material/AmbientNebula.client.vue +47 -53
  115. package/layers/shader/app/components/Material/AmbientOcean.client.vue +40 -46
  116. package/layers/shader/app/components/Material/Fresnel.client.vue +24 -29
  117. package/layers/shader/app/components/Material/Gradient.client.vue +61 -67
  118. package/layers/shader/app/components/Material/Image.client.vue +65 -71
  119. package/layers/shader/app/components/Material/Node.client.vue +46 -46
  120. package/layers/shader/app/components/Material/Noise.client.vue +48 -54
  121. package/layers/shader/app/components/Mesh/Plane.vue +15 -20
  122. package/layers/shader/app/components/Node/Color.client.vue +3 -4
  123. package/layers/shader/app/components/Node/Fresnel.client.vue +17 -26
  124. package/layers/shader/app/components/Node/Gradient.client.vue +36 -42
  125. package/layers/shader/app/components/Node/Mix.client.vue +13 -19
  126. package/layers/shader/app/components/Node/Noise.client.vue +0 -3
  127. package/layers/shader/app/components/Pipeline/ACESTonemap.client.vue +0 -2
  128. package/layers/shader/app/components/Pipeline/AddBlend.client.vue +15 -16
  129. package/layers/shader/app/components/Pipeline/AgedFilm.client.vue +27 -28
  130. package/layers/shader/app/components/Pipeline/Aurora.client.vue +37 -44
  131. package/layers/shader/app/components/Pipeline/BilinearGradient.client.vue +26 -33
  132. package/layers/shader/app/components/Pipeline/BillowNoise.client.vue +22 -23
  133. package/layers/shader/app/components/Pipeline/BrightnessContrast.client.vue +16 -20
  134. package/layers/shader/app/components/Pipeline/CellularNoise.client.vue +22 -23
  135. package/layers/shader/app/components/Pipeline/ChannelMixer.client.vue +28 -35
  136. package/layers/shader/app/components/Pipeline/ChebyshevNoiseField.client.vue +31 -31
  137. package/layers/shader/app/components/Pipeline/Checkerboard.client.vue +21 -23
  138. package/layers/shader/app/components/Pipeline/ChromaticAberration.client.vue +21 -23
  139. package/layers/shader/app/components/Pipeline/ChromaticScreenWaves.client.vue +31 -30
  140. package/layers/shader/app/components/Pipeline/Circle.client.vue +22 -23
  141. package/layers/shader/app/components/Pipeline/Clouds.client.vue +36 -43
  142. package/layers/shader/app/components/Pipeline/ColorBurnBlend.client.vue +15 -17
  143. package/layers/shader/app/components/Pipeline/ColorDodgeBlend.client.vue +15 -17
  144. package/layers/shader/app/components/Pipeline/ColourRamp.client.vue +28 -35
  145. package/layers/shader/app/components/Pipeline/ComplexPlaneField.client.vue +31 -38
  146. package/layers/shader/app/components/Pipeline/ConicGradient.client.vue +19 -21
  147. package/layers/shader/app/components/Pipeline/CosinePalette.client.vue +42 -49
  148. package/layers/shader/app/components/Pipeline/CoverageAlpha.client.vue +0 -4
  149. package/layers/shader/app/components/Pipeline/Cross.client.vue +28 -28
  150. package/layers/shader/app/components/Pipeline/CurlNoise.client.vue +26 -27
  151. package/layers/shader/app/components/Pipeline/DarkenBlend.client.vue +15 -17
  152. package/layers/shader/app/components/Pipeline/DayNightCycle.client.vue +26 -27
  153. package/layers/shader/app/components/Pipeline/Desaturate.client.vue +8 -15
  154. package/layers/shader/app/components/Pipeline/DiagonalGradient.client.vue +19 -21
  155. package/layers/shader/app/components/Pipeline/DiamondGradient.client.vue +19 -21
  156. package/layers/shader/app/components/Pipeline/DifferenceBlend.client.vue +15 -17
  157. package/layers/shader/app/components/Pipeline/DivideBlend.client.vue +14 -17
  158. package/layers/shader/app/components/Pipeline/DomainWarpedNoise.client.vue +30 -37
  159. package/layers/shader/app/components/Pipeline/Dots.client.vue +26 -33
  160. package/layers/shader/app/components/Pipeline/DuoTone.client.vue +16 -19
  161. package/layers/shader/app/components/Pipeline/ExclusionBlend.client.vue +14 -17
  162. package/layers/shader/app/components/Pipeline/ExponentialFog.client.vue +21 -23
  163. package/layers/shader/app/components/Pipeline/Exposure.client.vue +8 -15
  164. package/layers/shader/app/components/Pipeline/FBMNoise.client.vue +28 -36
  165. package/layers/shader/app/components/Pipeline/FilmBurn.client.vue +27 -28
  166. package/layers/shader/app/components/Pipeline/FilmGrain.client.vue +29 -29
  167. package/layers/shader/app/components/Pipeline/FisheyeRay.client.vue +11 -18
  168. package/layers/shader/app/components/Pipeline/Flame.client.vue +26 -27
  169. package/layers/shader/app/components/Pipeline/FocalGradient.client.vue +24 -25
  170. package/layers/shader/app/components/Pipeline/Gamma.client.vue +8 -14
  171. package/layers/shader/app/components/Pipeline/GodRays.client.vue +32 -39
  172. package/layers/shader/app/components/Pipeline/GradientNoise.client.vue +22 -22
  173. package/layers/shader/app/components/Pipeline/Grain.client.vue +34 -41
  174. package/layers/shader/app/components/Pipeline/Grid.client.vue +24 -24
  175. package/layers/shader/app/components/Pipeline/Halation.client.vue +22 -24
  176. package/layers/shader/app/components/Pipeline/Halftone.client.vue +16 -18
  177. package/layers/shader/app/components/Pipeline/HardLightBlend.client.vue +15 -16
  178. package/layers/shader/app/components/Pipeline/Haze.client.vue +22 -24
  179. package/layers/shader/app/components/Pipeline/Hexagon.client.vue +22 -22
  180. package/layers/shader/app/components/Pipeline/Hue.client.vue +8 -12
  181. package/layers/shader/app/components/Pipeline/Invert.client.vue +0 -1
  182. package/layers/shader/app/components/Pipeline/LensFlare.client.vue +27 -25
  183. package/layers/shader/app/components/Pipeline/LightenBlend.client.vue +15 -14
  184. package/layers/shader/app/components/Pipeline/LinearGradient.client.vue +17 -21
  185. package/layers/shader/app/components/Pipeline/LinearGradient4.client.vue +29 -33
  186. package/layers/shader/app/components/Pipeline/LinearToSRGB.client.vue +8 -12
  187. package/layers/shader/app/components/Pipeline/Marble.client.vue +41 -47
  188. package/layers/shader/app/components/Pipeline/MixBlend.client.vue +21 -27
  189. package/layers/shader/app/components/Pipeline/MonochromeTint.client.vue +16 -21
  190. package/layers/shader/app/components/Pipeline/MultiplyBlend.client.vue +15 -16
  191. package/layers/shader/app/components/Pipeline/NoisyGradient.client.vue +34 -40
  192. package/layers/shader/app/components/Pipeline/NoisyGradientBlend.client.vue +54 -60
  193. package/layers/shader/app/components/Pipeline/OverlayBlend.client.vue +15 -16
  194. package/layers/shader/app/components/Pipeline/PaperTexture.client.vue +22 -24
  195. package/layers/shader/app/components/Pipeline/Polygon.client.vue +32 -39
  196. package/layers/shader/app/components/Pipeline/Posterise.client.vue +8 -14
  197. package/layers/shader/app/components/Pipeline/RadialGradient.client.vue +18 -24
  198. package/layers/shader/app/components/Pipeline/RayAutoOrbit.client.vue +16 -18
  199. package/layers/shader/app/components/Pipeline/RayMouseOrbit.client.vue +16 -18
  200. package/layers/shader/app/components/Pipeline/RayRotateX.client.vue +8 -14
  201. package/layers/shader/app/components/Pipeline/RayRotateY.client.vue +8 -14
  202. package/layers/shader/app/components/Pipeline/RayRotateZ.client.vue +8 -14
  203. package/layers/shader/app/components/Pipeline/RayTiltBasis.client.vue +21 -22
  204. package/layers/shader/app/components/Pipeline/RaymarchTunnel.client.vue +34 -40
  205. package/layers/shader/app/components/Pipeline/Rectangle.client.vue +30 -36
  206. package/layers/shader/app/components/Pipeline/ReinhardTonemap.client.vue +0 -3
  207. package/layers/shader/app/components/Pipeline/RidgedNoise.client.vue +22 -22
  208. package/layers/shader/app/components/Pipeline/Ring.client.vue +26 -32
  209. package/layers/shader/app/components/Pipeline/RingField.client.vue +36 -33
  210. package/layers/shader/app/components/Pipeline/RisographGrain.client.vue +29 -35
  211. package/layers/shader/app/components/Pipeline/RotatedGradientBlend.client.vue +29 -35
  212. package/layers/shader/app/components/Pipeline/SDFColourMask.client.vue +15 -18
  213. package/layers/shader/app/components/Pipeline/SDFRadialMask.client.vue +16 -18
  214. package/layers/shader/app/components/Pipeline/SRGBToLinear.client.vue +8 -14
  215. package/layers/shader/app/components/Pipeline/Saturation.client.vue +8 -14
  216. package/layers/shader/app/components/Pipeline/Scanlines.client.vue +21 -22
  217. package/layers/shader/app/components/Pipeline/ScreenBlend.client.vue +15 -16
  218. package/layers/shader/app/components/Pipeline/ShaderDebugger.client.vue +28 -29
  219. package/layers/shader/app/components/Pipeline/SimplexNoise.client.vue +25 -32
  220. package/layers/shader/app/components/Pipeline/SkyAtmosphere.client.vue +37 -44
  221. package/layers/shader/app/components/Pipeline/SoftLightBlend.client.vue +15 -16
  222. package/layers/shader/app/components/Pipeline/SolidColour.client.vue +7 -16
  223. package/layers/shader/app/components/Pipeline/SplitTone.client.vue +27 -28
  224. package/layers/shader/app/components/Pipeline/Star.client.vue +31 -37
  225. package/layers/shader/app/components/Pipeline/Starfield.client.vue +29 -27
  226. package/layers/shader/app/components/Pipeline/Stripes.client.vue +28 -27
  227. package/layers/shader/app/components/Pipeline/SubtractBlend.client.vue +15 -16
  228. package/layers/shader/app/components/Pipeline/TanhTonemap.client.vue +8 -17
  229. package/layers/shader/app/components/Pipeline/Threshold.client.vue +8 -14
  230. package/layers/shader/app/components/Pipeline/Tint.client.vue +16 -18
  231. package/layers/shader/app/components/Pipeline/Triangle.client.vue +22 -22
  232. package/layers/shader/app/components/Pipeline/UVAspectCorrect.client.vue +0 -2
  233. package/layers/shader/app/components/Pipeline/UVBreath.client.vue +16 -18
  234. package/layers/shader/app/components/Pipeline/UVBulge.client.vue +16 -18
  235. package/layers/shader/app/components/Pipeline/UVClamp.client.vue +0 -3
  236. package/layers/shader/app/components/Pipeline/UVColumnOffset.client.vue +16 -18
  237. package/layers/shader/app/components/Pipeline/UVFlipX.client.vue +0 -3
  238. package/layers/shader/app/components/Pipeline/UVFlipXY.client.vue +0 -3
  239. package/layers/shader/app/components/Pipeline/UVFlipY.client.vue +0 -3
  240. package/layers/shader/app/components/Pipeline/UVFractBand.client.vue +16 -18
  241. package/layers/shader/app/components/Pipeline/UVMousePull.client.vue +8 -14
  242. package/layers/shader/app/components/Pipeline/UVNoiseRotate.client.vue +21 -27
  243. package/layers/shader/app/components/Pipeline/UVNoiseWarp.client.vue +21 -22
  244. package/layers/shader/app/components/Pipeline/UVOrbit.client.vue +8 -14
  245. package/layers/shader/app/components/Pipeline/UVParallax.client.vue +8 -18
  246. package/layers/shader/app/components/Pipeline/UVPixelate.client.vue +7 -14
  247. package/layers/shader/app/components/Pipeline/UVPulse.client.vue +16 -18
  248. package/layers/shader/app/components/Pipeline/UVRipple.client.vue +26 -26
  249. package/layers/shader/app/components/Pipeline/UVRotate.client.vue +16 -22
  250. package/layers/shader/app/components/Pipeline/UVScale.client.vue +16 -22
  251. package/layers/shader/app/components/Pipeline/UVScroll.client.vue +12 -18
  252. package/layers/shader/app/components/Pipeline/UVScrollX.client.vue +8 -14
  253. package/layers/shader/app/components/Pipeline/UVScrollY.client.vue +8 -14
  254. package/layers/shader/app/components/Pipeline/UVShear.client.vue +16 -18
  255. package/layers/shader/app/components/Pipeline/UVSineWarpXY.client.vue +18 -24
  256. package/layers/shader/app/components/Pipeline/UVSwapAxes.client.vue +0 -3
  257. package/layers/shader/app/components/Pipeline/UVTile.client.vue +12 -18
  258. package/layers/shader/app/components/Pipeline/UVTwirl.client.vue +16 -18
  259. package/layers/shader/app/components/Pipeline/UVWarp.client.vue +21 -22
  260. package/layers/shader/app/components/Pipeline/VHSBleed.client.vue +27 -28
  261. package/layers/shader/app/components/Pipeline/ValueNoise.client.vue +22 -22
  262. package/layers/shader/app/components/Pipeline/Vibrance.client.vue +11 -17
  263. package/layers/shader/app/components/Pipeline/Vignette.client.vue +14 -20
  264. package/layers/shader/app/components/Pipeline/VoronoiEdges.client.vue +29 -28
  265. package/layers/shader/app/components/Pipeline/Water.client.vue +31 -37
  266. package/layers/shader/app/components/Pipeline/WaveBendLayer.client.vue +26 -32
  267. package/layers/shader/app/components/Pipeline/WaveColourLayer.client.vue +37 -36
  268. package/layers/shader/app/components/Pipeline/WhiteBalance.client.vue +23 -26
  269. package/layers/shader/app/components/Pipeline/Wood.client.vue +34 -40
  270. package/layers/shader/app/components/Preset/Aurora.client.vue +0 -7
  271. package/layers/shader/app/components/Preset/Flow.client.vue +15 -23
  272. package/layers/shader/app/components/Preset/GradientMesh.client.vue +15 -23
  273. package/layers/shader/app/components/Preset/Nebula.client.vue +15 -25
  274. package/layers/shader/app/components/Preset/Ocean.client.vue +15 -24
  275. package/layers/shader/app/components/Preset/ThemeAurora.client.vue +38 -47
  276. package/layers/shader/app/components/Preset/ThemeBubble.client.vue +38 -47
  277. package/layers/shader/app/components/Preset/ThemeFlow.client.vue +38 -47
  278. package/layers/shader/app/components/Preset/ThemeGradient.client.vue +38 -47
  279. package/layers/shader/app/components/Preset/ThemeLavaLamp.client.vue +38 -47
  280. package/layers/shader/app/components/Preset/ThemePlasma.client.vue +38 -47
  281. package/layers/shader/app/components/Preset/ThemeWave.client.vue +38 -47
  282. package/layers/shader/app/components/Shader/Background.client.vue +109 -75
  283. package/layers/shader/app/components/Shader/Debug.vue +4 -14
  284. package/layers/shader/app/components/Shader/Host.client.vue +7 -9
  285. package/layers/shader/app/components/Shader/Material.client.vue +8 -20
  286. package/layers/shader/app/components/Shader/Pipeline.client.vue +0 -6
  287. package/layers/shader/app/components/Shader/Runtime.client.vue +0 -5
  288. package/layers/shader/app/composables/useAmbientMaterials.ts +4 -9
  289. package/layers/shader/app/composables/useCSSColourUniform.ts +0 -4
  290. package/layers/shader/app/composables/useCSSFloatUniform.ts +0 -3
  291. package/layers/shader/app/composables/useShader.ts +1 -4
  292. package/layers/shader/app/composables/useShaderColor.ts +4 -6
  293. package/layers/shader/app/composables/useShaderFloat.ts +1 -3
  294. package/layers/shader/app/composables/useShaderGraph.ts +4 -5
  295. package/layers/shader/app/composables/useShaderRuntime.ts +0 -5
  296. package/layers/shader/app/composables/useShaderVec2.ts +4 -8
  297. package/layers/shader/app/composables/useSunDirectionUniform.ts +0 -6
  298. package/layers/shader/app/composables/useThemeColors.ts +0 -1
  299. package/layers/shader/app/composables/useUniforms.ts +25 -9
  300. package/layers/shader/app/plugins/shader.client.ts +4 -3
  301. package/layers/shader/app/shaders/common/blend.ts +2 -4
  302. package/layers/shader/app/shaders/common/complex.ts +0 -2
  303. package/layers/shader/app/shaders/common/effects.ts +5 -13
  304. package/layers/shader/app/shaders/common/grain.ts +2 -7
  305. package/layers/shader/app/shaders/common/lighting.ts +0 -3
  306. package/layers/shader/app/shaders/common/math.ts +12 -8
  307. package/layers/shader/app/shaders/common/noise.ts +48 -48
  308. package/layers/shader/app/shaders/common/noiseHelpers.ts +6 -6
  309. package/layers/shader/app/shaders/common/palette.ts +10 -11
  310. package/layers/shader/app/shaders/common/patterns.ts +1 -4
  311. package/layers/shader/app/shaders/common/sdf.ts +11 -7
  312. package/layers/shader/app/shaders/common/shapes.ts +25 -15
  313. package/layers/shader/app/shaders/common/tonemapping.ts +0 -2
  314. package/layers/shader/app/shaders/common/uv.ts +20 -29
  315. package/layers/shader/app/shaders/createMaterial.ts +2 -5
  316. package/layers/shader/app/shaders/layers/aurora.ts +14 -17
  317. package/layers/shader/app/shaders/layers/meshGradient.ts +13 -16
  318. package/layers/shader/app/shaders/layers/paperShading.ts +15 -19
  319. package/layers/shader/app/shaders/layers/shaderGradient.ts +18 -23
  320. package/layers/shader/app/shaders/layers/stripe.ts +14 -17
  321. package/layers/shader/app/shaders/types.ts +9 -1
  322. package/layers/shader/app/types/app-config.d.ts +1 -1
  323. package/layers/shader/app/types/tsl.ts +0 -1
  324. package/layers/shader/app/types/uniforms.ts +0 -1
  325. package/layers/shader/app/utils/tsl/animation.ts +50 -52
  326. package/layers/shader/app/utils/tsl/color.ts +20 -19
  327. package/layers/shader/app/utils/tsl/noise.ts +10 -12
  328. package/layers/shader/app/utils/tsl/oklch.ts +6 -7
  329. package/layers/shader/app/utils/tsl/patterns.ts +4 -6
  330. package/layers/shader/app/utils/tsl/tween.ts +2 -4
  331. package/layers/shader/app/utils/tsl/uv.ts +6 -6
  332. package/layers/theme/app/components/ThemePicker/AccentButton.vue +1 -3
  333. package/layers/theme/app/components/ThemePicker/Colors.vue +0 -1
  334. package/layers/theme/app/composables/useAccentColor.ts +0 -1
  335. package/layers/theme/app/plugins/theme.client.ts +4 -3
  336. package/layers/theme/app/types/app-config.d.ts +1 -2
  337. package/layers/transitions/app/components/Motion/Transition.vue +15 -22
  338. package/layers/typography/app/components/Typography/CodeBlock.vue +16 -19
  339. package/layers/typography/app/components/Typography/Headline.vue +46 -49
  340. package/layers/typography/app/components/Typography/HeadlineScreen.vue +36 -40
  341. package/layers/typography/app/components/Typography/QuoteBlock.vue +3 -4
  342. package/layers/typography/app/components/Typography/TextStroke.vue +15 -20
  343. package/layers/typography/app/components/Typography/index.vue +0 -4
  344. package/layers/typography/app/composables/typography.ts +9 -11
  345. package/layers/visual/app/app.config.ts +1 -2
  346. package/layers/visual/app/components/Accent/Blob.vue +0 -3
  347. package/layers/visual/app/components/Accent/Scene.vue +12 -17
  348. package/layers/visual/app/components/Base/Modal.vue +0 -1
  349. package/layers/visual/app/components/Gradient/Background.vue +10 -13
  350. package/layers/visual/app/components/Gradient/Text.vue +10 -13
  351. package/layers/visual/app/components/Media/Picture.vue +0 -1
  352. package/layers/visual/app/components/Progress/Bar.vue +0 -1
  353. package/layers/visual/app/components/Progress/Circular.vue +0 -1
  354. package/layers/visual/app/components/Tint/Overlay.vue +0 -2
  355. package/layers/visual/app/composables/gradient.ts +6 -11
  356. package/layers/visual/app/composables/picture.ts +0 -1
  357. package/layers/visual/app/composables/tint.ts +0 -1
  358. package/layers/visual/app/types/media.ts +0 -1
  359. package/package.json +3 -2
@@ -1,5 +1,3 @@
1
- /* eslint-disable @typescript-eslint/ban-ts-comment */
2
- // @ts-nocheck
3
1
  import { abs, float, floor, Fn, fract, length, min, mod, sin, vec2 } from 'three/tsl'
4
2
 
5
3
  import type { TSLNode } from '../../types'
@@ -18,7 +16,7 @@ export const checker = Fn(([uv, scale]: [TSLNode, TSLNode]) => {
18
16
  * Grid lines pattern
19
17
  */
20
18
  export const grid = Fn(([uv, scale, lineWidth]: [TSLNode, TSLNode, TSLNode]) => {
21
- const scaledUV = fract(uv.mul(scale))
19
+ const scaledUV: TSLNode = fract(uv.mul(scale))
22
20
  const halfWidth = lineWidth.mul(0.5)
23
21
  const xLine = scaledUV.x.lessThan(halfWidth).or(scaledUV.x.greaterThan(float(1.0).sub(halfWidth)))
24
22
  const yLine = scaledUV.y.lessThan(halfWidth).or(scaledUV.y.greaterThan(float(1.0).sub(halfWidth)))
@@ -117,7 +115,7 @@ export const bricks = Fn(([uv, scale, ratio, gap]: [TSLNode, TSLNode, TSLNode, T
117
115
  export const concentricCircles = Fn(
118
116
  ([uv, center, scale, width]: [TSLNode, TSLNode, TSLNode, TSLNode]) => {
119
117
  const dist = length(uv.sub(center))
120
- const rings = fract(dist.mul(scale))
118
+ const rings: TSLNode = fract(dist.mul(scale))
121
119
  return rings.lessThan(width).select(float(1.0), float(0.0))
122
120
  }
123
121
  )
@@ -142,7 +140,7 @@ export const radialLines = Fn(
142
140
  */
143
141
  export const diamonds = Fn(([uv, scale]: [TSLNode, TSLNode]) => {
144
142
  const scaledUV = fract(uv.mul(scale))
145
- const centered = abs(scaledUV.sub(0.5))
143
+ const centered: TSLNode = abs(scaledUV.sub(0.5))
146
144
  return centered.x.add(centered.y).lessThan(0.5).select(float(1.0), float(0.0))
147
145
  })
148
146
 
@@ -151,7 +149,7 @@ export const diamonds = Fn(([uv, scale]: [TSLNode, TSLNode]) => {
151
149
  */
152
150
  export const triangles = Fn(([uv, scale]: [TSLNode, TSLNode]) => {
153
151
  const scaledUV = uv.mul(scale)
154
- const p = fract(scaledUV)
152
+ const p: TSLNode = fract(scaledUV)
155
153
  const row = floor(scaledUV.y)
156
154
  const flip = mod(row, 2.0)
157
155
 
@@ -1,5 +1,3 @@
1
- /* eslint-disable no-restricted-syntax */
2
- /* eslint-disable max-params */
3
1
  /**
4
2
  * GPU-friendly uniform tweening via requestAnimationFrame.
5
3
  * Updates uniform .value each frame -- no shader recompilation.
@@ -43,9 +41,9 @@ export function tweenUniform(
43
41
 
44
42
  if (rawT < 1) {
45
43
  requestAnimationFrame(tick)
46
- } else {
47
- resolvePromise()
44
+ return
48
45
  }
46
+ resolvePromise()
49
47
  }
50
48
 
51
49
  requestAnimationFrame(tick)
@@ -1,5 +1,3 @@
1
- /* eslint-disable @typescript-eslint/ban-ts-comment */
2
- // @ts-nocheck
3
1
  import { atan, cos, float, Fn, fract, length, sin, vec2 } from 'three/tsl'
4
2
 
5
3
  import type { TSLNode } from '../../types'
@@ -48,17 +46,19 @@ export const polarUV = Fn(([uv, center]: [TSLNode, TSLNode]) => {
48
46
  * Convert polar coordinates back to cartesian
49
47
  */
50
48
  export const cartesianUV = Fn(([polar, center]: [TSLNode, TSLNode]) => {
51
- const angle = polar.x.sub(0.5).mul(Math.PI * 2)
49
+ const angle: TSLNode = polar.x.sub(0.5).mul(Math.PI * 2)
52
50
  const radius = polar.y
53
- return vec2(cos(angle).mul(radius), sin(angle).mul(radius)).add(center)
51
+ const x: TSLNode = cos(angle).mul(radius)
52
+ const y: TSLNode = sin(angle).mul(radius)
53
+ return vec2(x, y).add(center)
54
54
  })
55
55
 
56
56
  /**
57
57
  * Wave distortion on UV
58
58
  */
59
59
  export const waveUV = Fn(([uv, freq, amp, time]: [TSLNode, TSLNode, TSLNode, TSLNode]) => {
60
- const waveX = sin(uv.y.mul(freq).add(time)).mul(amp)
61
- const waveY = sin(uv.x.mul(freq).add(time)).mul(amp)
60
+ const waveX: TSLNode = sin(uv.y.mul(freq).add(time)).mul(amp)
61
+ const waveY: TSLNode = sin(uv.x.mul(freq).add(time)).mul(amp)
62
62
  return uv.add(vec2(waveX, waveY))
63
63
  })
64
64
 
@@ -36,8 +36,6 @@
36
36
  </script>
37
37
 
38
38
  <template>
39
- <!-- eslint-disable vue/v-on-handler-style -->
40
-
41
39
  <button
42
40
  class="size-8 rounded-full ring-1 ring-offset-2 transition-shadow duration-200"
43
41
  :class="[
@@ -48,6 +46,6 @@
48
46
  :style="bgStyle"
49
47
  :aria-label="`Set accent color to ${color}`"
50
48
  :aria-pressed="active"
51
- @click="emit('select', color)"
49
+ @click="() => emit('select', color)"
52
50
  />
53
51
  </template>
@@ -1,4 +1,3 @@
1
- <!-- eslint-disable @typescript-eslint/no-explicit-any -->
2
1
  <script setup lang="ts">
3
2
  import type { AccentColor } from '#layers/theme/app/types/theme'
4
3
 
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/consistent-type-assertions */
2
1
  import type { AccentColor } from '#layers/theme/app/types/theme'
3
2
  import { createSharedComposable } from '@vueuse/core'
4
3
 
@@ -1,8 +1,8 @@
1
- /* eslint-disable no-restricted-syntax */
2
- /* eslint-disable @typescript-eslint/consistent-type-assertions */
3
1
  import type { AccentColor, PreferenceOverride } from '#layers/theme/app/types/theme'
4
2
 
5
- export default defineNuxtPlugin(() => {
3
+ export default defineNuxtPlugin({
4
+ name: 'theme:theme',
5
+ setup() {
6
6
  const { setAccent, activeAccent } = useAccentColor()
7
7
  const { setContrastOverride, effectiveHighContrast } = useThemeContrast()
8
8
  const { setMotionOverride, effectiveReducedMotion } = useThemeMotion()
@@ -54,4 +54,5 @@ export default defineNuxtPlugin(() => {
54
54
  },
55
55
  { immediate: true }
56
56
  )
57
+ },
57
58
  })
@@ -1,6 +1,5 @@
1
- /* eslint-disable @typescript-eslint/consistent-type-imports */
2
1
  declare module '@nuxt/schema' {
3
- type AppConfigInput = {
2
+ interface AppConfigInput {
4
3
  themeLayer?: {
5
4
  accents?: Array<import('./theme').AccentColor>
6
5
  defaultAccent?: import('./theme').AccentColor
@@ -1,23 +1,16 @@
1
- <!-- eslint-disable vue/no-unused-properties -->
2
- <!-- eslint-disable vue/define-props-destructuring -->
3
1
  <script setup lang="ts">
4
2
  // Props
5
- const props = withDefaults(
6
- defineProps<{
7
- name?: string
8
- mode?: 'in-out' | 'out-in' | 'default'
9
- duration?: number
10
- delay?: number
11
- easing?: string
12
- }>(),
13
- {
14
- name: 'fade',
15
- mode: 'default',
16
- duration: 300,
17
- delay: 0,
18
- easing: 'ease-out',
19
- }
20
- )
3
+ const {
4
+ name = 'fade',
5
+ duration = 300,
6
+ delay = 0,
7
+ easing = 'ease-out',
8
+ } = defineProps<{
9
+ name?: string
10
+ duration?: number
11
+ delay?: number
12
+ easing?: string
13
+ }>()
21
14
 
22
15
  // State
23
16
  const isVisible = ref(false)
@@ -25,14 +18,14 @@
25
18
 
26
19
  // Computed classes
27
20
  const transitionClass = computed(() => {
28
- return `transition-${props.name}`
21
+ return `transition-${name}`
29
22
  })
30
23
 
31
24
  const style = computed(() => {
32
25
  return {
33
- transitionDuration: `${props.duration}ms`,
34
- transitionDelay: `${props.delay}ms`,
35
- transitionTimingFunction: props.easing,
26
+ transitionDuration: `${duration}ms`,
27
+ transitionDelay: `${delay}ms`,
28
+ transitionTimingFunction: easing,
36
29
  }
37
30
  })
38
31
 
@@ -1,5 +1,3 @@
1
- <!-- eslint-disable vue/require-default-prop -->
2
- <!-- eslint-disable vue/define-props-destructuring -->
3
1
  <script lang="ts" setup>
4
2
  import { useColor } from '../../composables/color'
5
3
  import type { UiColors } from '../../types/colors'
@@ -7,19 +5,18 @@
7
5
 
8
6
  defineOptions({ inheritAttrs: false })
9
7
 
10
- const props = withDefaults(
11
- defineProps<{
12
- language?: string
13
- color?: UiColors
14
- size?: FontSize
15
- class?: string
16
- }>(),
17
- {
18
- class: '',
19
- color: 'default',
20
- }
21
- )
22
- const colorClass = useColor(props.color, 'text')
8
+ const {
9
+ language,
10
+ color = 'default',
11
+ size,
12
+ class: classProp = '',
13
+ } = defineProps<{
14
+ language?: string
15
+ color?: UiColors
16
+ size?: FontSize
17
+ class?: string
18
+ }>()
19
+ const colorClass = useColor(color, 'text')
23
20
  </script>
24
21
 
25
22
  <template>
@@ -27,16 +24,16 @@
27
24
  tag="pre"
28
25
  v-bind="{
29
26
  ...$attrs,
30
- ...(props.size !== undefined && { size: props.size }),
31
- ...(props.language !== undefined && { 'data-language': props.language }),
27
+ ...(size !== undefined && { size: size }),
28
+ ...(language !== undefined && { 'data-language': language }),
32
29
  }"
33
30
  class="overflow-x-auto"
34
- :class="[props.class]"
31
+ :class="[classProp]"
35
32
  >
36
33
  <Typography
37
34
  tag="code"
38
35
  class="font-mono"
39
- :class="[colorClass, props.language ? `language-${props.language}` : '']"
36
+ :class="[colorClass, language ? `language-${language}` : '']"
40
37
  >
41
38
  <slot />
42
39
  </Typography>
@@ -1,5 +1,3 @@
1
- <!-- eslint-disable vue/require-default-prop -->
2
- <!-- eslint-disable vue/define-props-destructuring -->
3
1
  <script lang="ts" setup>
4
2
  import { useColor } from '../../composables/color'
5
3
  import { useTypography } from '../../composables/typography'
@@ -17,36 +15,35 @@
17
15
 
18
16
  defineOptions({ inheritAttrs: false })
19
17
 
20
- const props = withDefaults(
21
- defineProps<{
22
- level?: 1 | 2 | 3 | 4 | 5 | 6
23
- weight?: FontWeight
24
- width?: FontWidth
25
- slant?: FontSlant
26
- leading?: FontLeading
27
- tracking?: FontTracking
28
- align?: TextAlign
29
- transform?: TextTransform
30
- color?: UiColors
31
- size?: FontSize
32
- class?: string
33
- }>(),
34
- {
35
- level: 1,
36
- weight: 'font-bold',
37
- width: 'font-stretch-normal',
38
- slant: 'normal',
39
- leading: 'leading-tight',
40
- tracking: 'tracking-tight',
41
- align: 'left',
42
- transform: 'none',
43
- class: '',
44
- }
45
- )
46
- const tag = computed(() => `h${props.level}` as const)
18
+ const {
19
+ level = 1,
20
+ weight = 'font-bold',
21
+ width = 'font-stretch-normal',
22
+ slant = 'normal',
23
+ leading = 'leading-tight',
24
+ tracking = 'tracking-tight',
25
+ align = 'left',
26
+ transform = 'none',
27
+ color,
28
+ size,
29
+ class: classProp = '',
30
+ } = defineProps<{
31
+ level?: 1 | 2 | 3 | 4 | 5 | 6
32
+ weight?: FontWeight
33
+ width?: FontWidth
34
+ slant?: FontSlant
35
+ leading?: FontLeading
36
+ tracking?: FontTracking
37
+ align?: TextAlign
38
+ transform?: TextTransform
39
+ color?: UiColors
40
+ size?: FontSize
41
+ class?: string
42
+ }>()
43
+ const tag = computed(() => `h${level}` as const)
47
44
 
48
45
  const sizeClass = computed(() => {
49
- if (props.size) return null
46
+ if (size) return null
50
47
 
51
48
  const sizes: Record<number, string> = {
52
49
  1: 'text-4xl sm:text-5xl',
@@ -56,34 +53,34 @@
56
53
  5: 'text-lg sm:text-xl',
57
54
  6: 'text-base sm:text-lg',
58
55
  }
59
- return sizes[props.level]
56
+ return sizes[level]
60
57
  })
61
58
 
62
59
  const { classes } = useTypography({
63
- weight: props.weight,
64
- width: props.width,
65
- slant: props.slant,
66
- leading: props.leading,
67
- tracking: props.tracking,
68
- align: props.align,
69
- transform: props.transform,
70
- ...(props.size !== undefined && { size: props.size }),
60
+ weight: weight,
61
+ width: width,
62
+ slant: slant,
63
+ leading: leading,
64
+ tracking: tracking,
65
+ align: align,
66
+ transform: transform,
67
+ ...(size !== undefined && { size: size }),
71
68
  })
72
- const colorClass = useColor(props.color, 'text')
69
+ const colorClass = useColor(color, 'text')
73
70
  </script>
74
71
 
75
72
  <template>
76
73
  <Typography
77
74
  :tag
78
- :weight="props.weight"
79
- :width="props.width"
80
- :slant="props.slant"
81
- :leading="props.leading"
82
- :tracking="props.tracking"
83
- :align="props.align"
84
- :transform="props.transform"
85
- :class="[sizeClass, classes, colorClass, props.class]"
86
- v-bind="{ ...(props.size !== undefined && { size: props.size }), ...$attrs }"
75
+ :weight
76
+ :width
77
+ :slant
78
+ :leading
79
+ :tracking
80
+ :align
81
+ :transform
82
+ :class="[sizeClass, classes, colorClass, classProp]"
83
+ v-bind="{ ...(size !== undefined && { size: size }), ...$attrs }"
87
84
  >
88
85
  <slot />
89
86
  </Typography>
@@ -1,5 +1,3 @@
1
- <!-- eslint-disable vue/require-default-prop -->
2
- <!-- eslint-disable vue/define-props-destructuring -->
3
1
  <script lang="ts" setup>
4
2
  import { useColor } from '../../composables/color'
5
3
  import { useTypography } from '../../composables/typography'
@@ -17,35 +15,33 @@
17
15
 
18
16
  defineOptions({ inheritAttrs: false })
19
17
 
20
- const props = withDefaults(
21
- defineProps<{
22
- level?: 1 | 2 | 3 | 4 | 5 | 6
23
- size?: FontScreenSize
24
- weight?: FontWeight
25
- width?: FontWidth
26
- slant?: FontSlant
27
- leading?: FontLeading
28
- tracking?: FontTracking
29
- align?: TextAlign
30
- transform?: TextTransform
31
- color?: UiColors
32
- class?: string
33
- }>(),
34
- {
35
- level: 1,
36
- size: 'screen-xxl',
37
- weight: 'font-bold',
38
- width: 'font-stretch-normal',
39
- slant: 'normal',
40
- leading: 'leading-tight',
41
- tracking: 'tracking-tight',
42
- align: 'left',
43
- transform: 'none',
44
- class: '',
45
- }
46
- )
18
+ const {
19
+ level = 1,
20
+ size = 'screen-xxl',
21
+ weight = 'font-bold',
22
+ width = 'font-stretch-normal',
23
+ slant = 'normal',
24
+ leading = 'leading-tight',
25
+ tracking = 'tracking-tight',
26
+ align = 'left',
27
+ transform = 'none',
28
+ color,
29
+ class: classProp = '',
30
+ } = defineProps<{
31
+ level?: 1 | 2 | 3 | 4 | 5 | 6
32
+ size?: FontScreenSize
33
+ weight?: FontWeight
34
+ width?: FontWidth
35
+ slant?: FontSlant
36
+ leading?: FontLeading
37
+ tracking?: FontTracking
38
+ align?: TextAlign
39
+ transform?: TextTransform
40
+ color?: UiColors
41
+ class?: string
42
+ }>()
47
43
 
48
- const tag = computed(() => `h${props.level}` as const)
44
+ const tag = computed(() => `h${level}` as const)
49
45
 
50
46
  const sizeMap: Record<string, string> = {
51
47
  screen: 'text-screen',
@@ -53,23 +49,23 @@
53
49
  'screen-xxl': 'text-screen-xxl',
54
50
  'screen-xxxl': 'text-screen-xxxl',
55
51
  }
56
- const sizeClass = computed(() => sizeMap[props.size] ?? 'text-screen-xxl')
52
+ const sizeClass = computed(() => sizeMap[size] ?? 'text-screen-xxl')
57
53
 
58
54
  const { classes } = useTypography({
59
- weight: props.weight,
60
- width: props.width,
61
- slant: props.slant,
62
- leading: props.leading,
63
- tracking: props.tracking,
64
- align: props.align,
65
- transform: props.transform,
55
+ weight: weight,
56
+ width: width,
57
+ slant: slant,
58
+ leading: leading,
59
+ tracking: tracking,
60
+ align: align,
61
+ transform: transform,
66
62
  })
67
63
 
68
- const colorClass = useColor(props.color, 'text')
64
+ const colorClass = useColor(color, 'text')
69
65
  </script>
70
66
 
71
67
  <template>
72
- <component :is="tag" :class="[sizeClass, classes, colorClass, props.class]" v-bind="$attrs">
68
+ <component :is="tag" :class="[sizeClass, classes, colorClass, classProp]" v-bind="$attrs">
73
69
  <slot />
74
70
  </component>
75
71
  </template>
@@ -1,4 +1,3 @@
1
- <!-- eslint-disable vue/define-props-destructuring -->
2
1
  <script setup lang="ts">
3
2
  import { useColor } from '../../composables/color'
4
3
  import type { UiColors } from '../../types/colors'
@@ -6,15 +5,15 @@
6
5
 
7
6
  defineOptions({ inheritAttrs: false })
8
7
 
9
- const props = defineProps<{ color?: UiColors; size?: FontSize }>()
10
- const colorClass = useColor(props.color, 'text')
8
+ const { color, size } = defineProps<{ color?: UiColors; size?: FontSize }>()
9
+ const colorClass = useColor(color, 'text')
11
10
  </script>
12
11
 
13
12
  <template>
14
13
  <Typography
15
14
  tag="blockquote"
16
15
  :class="colorClass"
17
- v-bind="{ ...(props.size !== undefined && { size: props.size }), ...$attrs }"
16
+ v-bind="{ ...(size !== undefined && { size: size }), ...$attrs }"
18
17
  >
19
18
  <slot />
20
19
  </Typography>
@@ -1,32 +1,27 @@
1
- <!-- eslint-disable vue/define-props-destructuring -->
2
1
  <script lang="ts" setup>
3
- const props = withDefaults(
4
- defineProps<{
5
- text: string
6
- strokeWidth?: number
7
- strokeColor?: string
8
- fill?: string
9
- linejoin?: 'round' | 'miter' | 'bevel'
10
- tag?: string
11
- }>(),
12
- {
13
- strokeWidth: 1.5,
14
- strokeColor: 'currentColor',
15
- fill: 'none',
16
- linejoin: 'round',
17
- tag: 'div',
18
- }
19
- )
2
+ const {
3
+ strokeWidth = 1.5,
4
+ strokeColor = 'currentColor',
5
+ fill = 'none',
6
+ linejoin = 'round',
7
+ tag = 'div',
8
+ } = defineProps<{
9
+ text: string
10
+ strokeWidth?: number
11
+ strokeColor?: string
12
+ fill?: string
13
+ linejoin?: 'round' | 'miter' | 'bevel'
14
+ tag?: string
15
+ }>()
20
16
  const id = useId()
21
17
  const contrast = usePreferredContrast()
22
18
 
23
19
  const effectiveStrokeWidth = computed(() =>
24
- contrast.value === 'more' ? props.strokeWidth * 1.5 : props.strokeWidth
20
+ contrast.value === 'more' ? strokeWidth * 1.5 : strokeWidth
25
21
  )
26
22
  </script>
27
23
 
28
24
  <template>
29
- <!-- eslint-disable vue/no-duplicate-attr-inheritance -->
30
25
  <component
31
26
  :is="tag"
32
27
  class="text-stroke inline-grid leading-none *:[grid-area:1/1]"
@@ -1,6 +1,3 @@
1
- <!-- eslint-disable vue/define-props-destructuring -->
2
- <!-- eslint-disable vue/require-default-prop -->
3
- <!-- eslint-disable vue/no-unused-properties -->
4
1
  <script lang="ts" setup>
5
2
  import { useColor } from '../../composables/color'
6
3
  import { useTypography } from '../../composables/typography'
@@ -47,7 +44,6 @@
47
44
  </script>
48
45
 
49
46
  <template>
50
- <!-- eslint-disable-next-line vue/no-duplicate-attr-inheritance -->
51
47
  <component :is="tag" :class="[classes, colorClass]" v-bind="$attrs">
52
48
  <slot />
53
49
  </component>
@@ -1,4 +1,3 @@
1
- /* eslint-disable no-nested-ternary */
2
1
  import type {
3
2
  FontLeading,
4
3
  FontSize,
@@ -23,16 +22,19 @@ function normalizeAxis(
23
22
  const { prefix = '', fallback = '', numericFormatter } = options
24
23
 
25
24
  if (typeof value === 'number') {
26
- return numericFormatter
27
- ? numericFormatter(value)
28
- : prefix
29
- ? `${prefix}-[${value}]`
30
- : `[${value}]`
25
+ if (numericFormatter) return numericFormatter(value)
26
+ if (prefix) return `${prefix}-[${value}]`
27
+ return `[${value}]`
31
28
  }
32
29
 
33
30
  return value ?? fallback
34
31
  }
35
32
 
33
+ function getSizeClass(size: FontSize | undefined): string {
34
+ if (!size) return ''
35
+ return typeof size === 'number' ? `text-[${size}]` : `text-${size}`
36
+ }
37
+
36
38
  export function useTypography(props: {
37
39
  weight?: FontWeight
38
40
  slant?: FontSlant
@@ -68,11 +70,7 @@ export function useTypography(props: {
68
70
  fallback: 'tracking-normal',
69
71
  }),
70
72
 
71
- props.size
72
- ? typeof props.size === 'number'
73
- ? `text-[${props.size}]`
74
- : `text-${props.size}`
75
- : '',
73
+ getSizeClass(props.size),
76
74
 
77
75
  props.align ? `text-${props.align}` : '',
78
76
 
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/consistent-type-imports */
2
1
  export default defineAppConfig({
3
2
  uiLayer: {
4
3
  gradients: {
@@ -105,7 +104,7 @@ export default defineAppConfig({
105
104
  })
106
105
 
107
106
  declare module '@nuxt/schema' {
108
- type AppConfigInput = {
107
+ interface AppConfigInput {
109
108
  uiLayer?: {
110
109
  name?: string
111
110
  gradients?: Record<string, import('./types/gradient').GradientConfig>
@@ -1,6 +1,3 @@
1
- <!-- eslint-disable vue/require-default-prop -->
2
- <!-- eslint-disable vue/no-unused-properties -->
3
- <!-- eslint-disable vue/define-props-destructuring -->
4
1
  <script setup lang="ts">
5
2
  import type { AccentBlobColor, BlobBlur } from '../../types/accent'
6
3