@gluhar/app 6.0.0-next.0 → 6.0.0-next.3

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/CHANGELOG.md CHANGED
@@ -3,6 +3,33 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [6.0.0-next.3](https://github.com/gluharco/gluhar/compare/v6.0.0-next.2...v6.0.0-next.3) (2026-10-21)
7
+
8
+ **📝 Note:** Version bump only for package @gluhar/app
9
+
10
+
11
+
12
+
13
+
14
+ # [6.0.0-next.2](https://github.com/gluharco/gluhar/compare/v6.0.0-next.1...v6.0.0-next.2) (2026-10-21)
15
+
16
+ **📝 Note:** Version bump only for package @gluhar/app
17
+
18
+
19
+
20
+
21
+
22
+ # [6.0.0-next.1](https://github.com/gluharco/gluhar/compare/v6.0.0-next.0...v6.0.0-next.1) (2026-10-20)
23
+
24
+
25
+ ### 🚀 Enhancements
26
+
27
+ - **release:** Publish from GitHub Actions with npm trusted publishing ([8773cd9](https://github.com/gluharco/gluhar/commit/8773cd99c43cbe6a7dc415e50af8b13a7b8d4daf))
28
+
29
+
30
+
31
+
32
+
6
33
  # [5.2.0](https://github.com/gluharco/gluhar/compare/@gluhar/app@5.1.5...@gluhar/app@5.2.0) (2026-04-28)
7
34
 
8
35
 
package/dist/module.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@gluhar/app",
3
3
  "configKey": "gluhar",
4
- "version": "6.0.0-next.0",
4
+ "version": "6.0.0-next.3",
5
5
  "builder": {
6
- "@nuxt/module-builder": "0.8.3",
7
- "unbuild": "2.0.0"
6
+ "@nuxt/module-builder": "1.0.3",
7
+ "unbuild": "3.6.1"
8
8
  }
9
9
  }
package/dist/module.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { defineNuxtModule, createResolver, installModule, addImportsDir, addComponentsDir } from '@nuxt/kit';
2
2
  import defu from 'defu';
3
3
 
4
- const module = defineNuxtModule({
4
+ const module$1 = defineNuxtModule({
5
5
  meta: {
6
6
  name: "@gluhar/app",
7
7
  configKey: "gluhar"
@@ -51,4 +51,4 @@ const module = defineNuxtModule({
51
51
  }
52
52
  });
53
53
 
54
- export { module as default };
54
+ export { module$1 as default };
@@ -1,33 +1,24 @@
1
- <script setup lang="ts">
1
+ <script setup>
2
2
  import { useResponsive, computed, ref } from "#imports";
3
-
4
- const props = defineProps<{
5
- phone?: string;
6
- email?: string;
7
- onCopy?: () => void;
8
- }>();
9
-
3
+ const props = defineProps({
4
+ phone: { type: String, required: false },
5
+ email: { type: String, required: false },
6
+ onCopy: { type: Function, required: false }
7
+ });
10
8
  const defaultCursorText = "Copy to clipboard";
11
9
  const cursorText = ref(defaultCursorText);
12
-
13
10
  const { isMobile } = useResponsive();
14
-
15
11
  const href = computed(() => {
16
- if (!isMobile.value) return undefined;
12
+ if (!isMobile.value) return void 0;
17
13
  return props.phone ? `tel:${props.phone}` : `mailto:${props.email}`;
18
14
  });
19
-
20
- const handleClick = async (isPhone: boolean) => {
15
+ const handleClick = async (isPhone) => {
21
16
  const value = isPhone ? props.phone : props.email;
22
-
23
17
  if (isMobile.value) return;
24
18
  cursorText.value = "Copied!";
25
-
26
- await navigator.clipboard.writeText(value!);
27
-
19
+ await navigator.clipboard.writeText(value);
28
20
  props.onCopy?.();
29
21
  };
30
-
31
22
  const onMouseLeave = () => {
32
23
  cursorText.value = defaultCursorText;
33
24
  };
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -1,33 +1,25 @@
1
- <script setup lang="ts">
1
+ <script setup>
2
2
  import { useResizeObserver } from "@vueuse/core";
3
- import { ref, type CSSProperties } from "vue";
3
+ import { ref } from "vue";
4
4
  import { useLenis } from "#imports";
5
-
6
- defineProps<{
7
- contentClass?: string;
8
- contentStyle?: CSSProperties;
9
- }>();
10
-
11
- const scrollerRef = ref<HTMLDivElement>();
12
- const contentRef = ref<HTMLDivElement>();
13
-
5
+ defineProps({
6
+ contentClass: { type: String, required: false },
7
+ contentStyle: { type: Object, required: false }
8
+ });
9
+ const scrollerRef = ref();
10
+ const contentRef = ref();
14
11
  const { lenis } = useLenis(scrollerRef);
15
-
16
12
  const prevHeight = ref(0);
17
-
18
13
  useResizeObserver(contentRef, (entries) => {
19
14
  const entry = entries[0];
20
15
  const { height } = entry.contentRect;
21
-
22
16
  if (height === prevHeight.value) return;
23
-
24
17
  prevHeight.value = height;
25
18
  lenis.value?.resize();
26
19
  });
27
-
28
20
  defineExpose({
29
21
  lenis,
30
- scrollerRef,
22
+ scrollerRef
31
23
  });
32
24
  </script>
33
25
 
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -1,57 +1,40 @@
1
- <script setup lang="ts">
1
+ <script setup>
2
2
  import { computed, ref, useMessages } from "#imports";
3
- import type { LocaleString } from "@gluhar/i18n/types";
4
- import type { SanityImage } from "@gluhar/sanity/types";
5
- // @ts-ignore
6
- import imageUrlBuilder from "@sanity/image-url/lib/browser/image-url.esm"; // INFO this is a strange fix
7
- // import imageUrlBuilder from "@sanity/image-url";
8
- import type { CropMode, ImageFormat } from "@sanity/image-url/lib/types/types";
3
+ import imageUrlBuilder from "@sanity/image-url/lib/browser/image-url.esm";
9
4
  import sanityConfig from "~/config/sanity.config";
10
-
11
- const props = defineProps<{
12
- image?: SanityImage;
13
- alt?: LocaleString;
14
- by?: "width" | "height" | "both";
15
- width?: number;
16
- height?: number;
17
- format?: ImageFormat | null;
18
- crop?: CropMode;
19
- dpr?: number;
20
- }>();
21
-
5
+ const props = defineProps({
6
+ image: { type: Object, required: false },
7
+ alt: { type: null, required: false },
8
+ by: { type: String, required: false },
9
+ width: { type: Number, required: false },
10
+ height: { type: Number, required: false },
11
+ format: { type: [String, null], required: false },
12
+ crop: { type: String, required: false },
13
+ dpr: { type: Number, required: false }
14
+ });
22
15
  const { l } = useMessages();
23
-
24
16
  const builder = imageUrlBuilder(sanityConfig);
25
- const urlFor = (source: SanityImage) => builder.image(source);
26
-
27
- const imgRef = ref<HTMLImageElement | null>(null);
17
+ const urlFor = (source) => builder.image(source);
18
+ const imgRef = ref(null);
28
19
  const src = computed(() => {
29
20
  const { width, height } = imgRef.value?.getBoundingClientRect() || {
30
- width: undefined,
31
- height: undefined,
21
+ width: void 0,
22
+ height: void 0
32
23
  };
33
-
34
- if (!props.image?.asset || (!width && !height)) return undefined;
35
-
24
+ if (!props.image?.asset || !width && !height) return void 0;
36
25
  let url = urlFor(props.image);
37
-
38
26
  if (props.width) url = url.width(props.width);
39
27
  else if (width && (props.by === "width" || !props.by))
40
28
  url = url.width(Math.ceil(width));
41
-
42
29
  if (props.height) url = url.height(props.height);
43
30
  else if (height && (props.by === "height" || !props.by))
44
31
  url = url.height(Math.ceil(height));
45
-
46
32
  if (props.crop) url = url.fit("crop").crop(props.crop);
47
-
48
33
  url = url.format(props.format ?? "webp");
49
34
  url = url.quality(100);
50
-
51
35
  url = url.dpr(
52
- props.dpr || typeof window !== "undefined" ? window.devicePixelRatio : 1,
36
+ props.dpr || typeof window !== "undefined" ? window.devicePixelRatio : 1
53
37
  );
54
-
55
38
  return url.url();
56
39
  });
57
40
  </script>
@@ -0,0 +1,2 @@
1
+ declare const _default: {};
2
+ export default _default;
@@ -1,3 +1,4 @@
1
+ import type { AsyncDataRequestStatus } from "#app";
1
2
  import type { SanityPage } from "@gluhar/sanity/types";
2
3
  interface Page extends SanityPage {
3
4
  _type: "page";
@@ -13,9 +14,9 @@ export declare const useSanityPage: <PI extends PageInterfaces = {
13
14
  page: Page;
14
15
  }, PT extends PageTypes<PI> = PageTypes<PI>>(types?: PT, slug?: string | string[]) => Promise<{
15
16
  page: import("vue").Ref<PI[Extract<keyof PT, string>] | undefined, PI[Extract<keyof PT, string>] | undefined>;
16
- status: import("vue").Ref<import("nuxt/app").AsyncDataRequestStatus, import("nuxt/app").AsyncDataRequestStatus>;
17
+ status: import("vue").Ref<AsyncDataRequestStatus, AsyncDataRequestStatus>;
17
18
  } | {
18
19
  page: import("vue").Ref<Page | undefined, Page | undefined>;
19
- status: import("vue").Ref<import("nuxt/app").AsyncDataRequestStatus, import("nuxt/app").AsyncDataRequestStatus>;
20
+ status: import("vue").Ref<AsyncDataRequestStatus, AsyncDataRequestStatus>;
20
21
  }>;
21
22
  export {};
@@ -1 +1,80 @@
1
- export declare const useGStore: any;
1
+ import type { Seo } from "@gluhar/sanity/types";
2
+ export declare const useGStore: import("pinia").StoreDefinition<"gluhar", Pick<{
3
+ defaultSeo: import("vue").Ref<{
4
+ title?: import("@gluhar/i18n/types").LocaleString | undefined;
5
+ description?: import("@gluhar/i18n/types").LocaleString | undefined;
6
+ ogImage?: {
7
+ asset?: {
8
+ url: string;
9
+ } | undefined;
10
+ caption?: import("@gluhar/i18n/types").LocaleString | undefined;
11
+ alt?: import("@gluhar/i18n/types").LocaleString | undefined;
12
+ } | undefined;
13
+ }, Seo | {
14
+ title?: import("@gluhar/i18n/types").LocaleString | undefined;
15
+ description?: import("@gluhar/i18n/types").LocaleString | undefined;
16
+ ogImage?: {
17
+ asset?: {
18
+ url: string;
19
+ } | undefined;
20
+ caption?: import("@gluhar/i18n/types").LocaleString | undefined;
21
+ alt?: import("@gluhar/i18n/types").LocaleString | undefined;
22
+ } | undefined;
23
+ }>;
24
+ setDefaultSeo: (seo: Seo) => void;
25
+ mobileMenuActive: import("vue").Ref<boolean, boolean>;
26
+ toggleMobileMenu: () => void;
27
+ closeMobileMenu: () => void;
28
+ }, "defaultSeo" | "mobileMenuActive">, Pick<{
29
+ defaultSeo: import("vue").Ref<{
30
+ title?: import("@gluhar/i18n/types").LocaleString | undefined;
31
+ description?: import("@gluhar/i18n/types").LocaleString | undefined;
32
+ ogImage?: {
33
+ asset?: {
34
+ url: string;
35
+ } | undefined;
36
+ caption?: import("@gluhar/i18n/types").LocaleString | undefined;
37
+ alt?: import("@gluhar/i18n/types").LocaleString | undefined;
38
+ } | undefined;
39
+ }, Seo | {
40
+ title?: import("@gluhar/i18n/types").LocaleString | undefined;
41
+ description?: import("@gluhar/i18n/types").LocaleString | undefined;
42
+ ogImage?: {
43
+ asset?: {
44
+ url: string;
45
+ } | undefined;
46
+ caption?: import("@gluhar/i18n/types").LocaleString | undefined;
47
+ alt?: import("@gluhar/i18n/types").LocaleString | undefined;
48
+ } | undefined;
49
+ }>;
50
+ setDefaultSeo: (seo: Seo) => void;
51
+ mobileMenuActive: import("vue").Ref<boolean, boolean>;
52
+ toggleMobileMenu: () => void;
53
+ closeMobileMenu: () => void;
54
+ }, never>, Pick<{
55
+ defaultSeo: import("vue").Ref<{
56
+ title?: import("@gluhar/i18n/types").LocaleString | undefined;
57
+ description?: import("@gluhar/i18n/types").LocaleString | undefined;
58
+ ogImage?: {
59
+ asset?: {
60
+ url: string;
61
+ } | undefined;
62
+ caption?: import("@gluhar/i18n/types").LocaleString | undefined;
63
+ alt?: import("@gluhar/i18n/types").LocaleString | undefined;
64
+ } | undefined;
65
+ }, Seo | {
66
+ title?: import("@gluhar/i18n/types").LocaleString | undefined;
67
+ description?: import("@gluhar/i18n/types").LocaleString | undefined;
68
+ ogImage?: {
69
+ asset?: {
70
+ url: string;
71
+ } | undefined;
72
+ caption?: import("@gluhar/i18n/types").LocaleString | undefined;
73
+ alt?: import("@gluhar/i18n/types").LocaleString | undefined;
74
+ } | undefined;
75
+ }>;
76
+ setDefaultSeo: (seo: Seo) => void;
77
+ mobileMenuActive: import("vue").Ref<boolean, boolean>;
78
+ toggleMobileMenu: () => void;
79
+ closeMobileMenu: () => void;
80
+ }, "setDefaultSeo" | "toggleMobileMenu" | "closeMobileMenu">>;
package/dist/types.d.mts CHANGED
@@ -1,7 +1,9 @@
1
1
  import type { NuxtModule } from '@nuxt/schema'
2
2
 
3
- import type { default as Module } from './module.js'
3
+ import type { default as Module } from './module.mjs'
4
4
 
5
5
  export type ModuleOptions = typeof Module extends NuxtModule<infer O> ? Partial<O> : Record<string, any>
6
6
 
7
- export { default } from './module.js'
7
+ export { default } from './module.mjs'
8
+
9
+ export { type GluharAppOptions } from './module.mjs'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gluhar/app",
3
- "version": "6.0.0-next.0",
3
+ "version": "6.0.0-next.3",
4
4
  "description": "Gluhar main package. This combines and configures @gluhar/theme, @gluhar/i18n, @gluhar/sanity and @gluhar/core into one main package. Provides numerous components, composables, utils and types.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -41,10 +41,10 @@
41
41
  "test:watch": "vitest watch"
42
42
  },
43
43
  "dependencies": {
44
- "@gluhar/core": "^6.0.0-next.0",
45
- "@gluhar/i18n": "^6.0.0-next.0",
46
- "@gluhar/sanity": "^6.0.0-next.0",
47
- "@gluhar/theme": "^6.0.0-next.0",
44
+ "@gluhar/core": "^6.0.0-next.3",
45
+ "@gluhar/i18n": "^6.0.0-next.3",
46
+ "@gluhar/sanity": "^6.0.0-next.3",
47
+ "@gluhar/theme": "^6.0.0-next.3",
48
48
  "@gluhar/v-gsap-nuxt": "^1.5.1",
49
49
  "@nuxt/image": "^1.10.0",
50
50
  "@nuxt/kit": "^4.5.0",
@@ -57,7 +57,7 @@
57
57
  "v-gsap-nuxt": "^1.4.2"
58
58
  },
59
59
  "devDependencies": {
60
- "@gluhar/fluid": "^6.0.0-next.0",
60
+ "@gluhar/fluid": "^6.0.0-next.3",
61
61
  "@nuxt/devtools": "latest",
62
62
  "@nuxt/eslint-config": "^1.9.0",
63
63
  "@nuxt/module-builder": "^1.0.3",
@@ -71,6 +71,5 @@
71
71
  },
72
72
  "peerDependencies": {
73
73
  "nuxt": "^4.5.0"
74
- },
75
- "gitHead": "8773cd99c43cbe6a7dc415e50af8b13a7b8d4daf"
74
+ }
76
75
  }
package/dist/module.cjs DELETED
@@ -1,5 +0,0 @@
1
- module.exports = function(...args) {
2
- return import('./module.mjs').then(m => m.default.call(this, ...args))
3
- }
4
- const _meta = module.exports.meta = require('./module.json')
5
- module.exports.getMeta = () => Promise.resolve(_meta)
package/dist/module.d.ts DELETED
@@ -1,22 +0,0 @@
1
- import * as _nuxt_schema from '@nuxt/schema';
2
- import { GluharI18nOptions } from '@gluhar/i18n';
3
- import { GluharThemeOptions } from '@gluhar/theme';
4
- import { GluharSanityOptions } from '@gluhar/sanity';
5
- import { ModuleOptions } from 'v-gsap-nuxt';
6
- import { ModuleOptions as ModuleOptions$1 } from '@nuxt/image';
7
- import { ModuleOptions as ModuleOptions$2 } from 'dayjs-nuxt';
8
-
9
- interface GluharAppOptions {
10
- theme?: GluharThemeOptions | false;
11
- i18n?: GluharI18nOptions | false;
12
- sanity?: GluharSanityOptions | false;
13
- vgsap?: (ModuleOptions & {
14
- dev?: boolean;
15
- }) | false;
16
- image?: ModuleOptions$1 | false;
17
- dayjs?: ModuleOptions$2 | false;
18
- }
19
- declare const _default: _nuxt_schema.NuxtModule<GluharAppOptions, GluharAppOptions, false>;
20
-
21
- export { _default as default };
22
- export type { GluharAppOptions };
package/dist/types.d.ts DELETED
@@ -1,7 +0,0 @@
1
- import type { NuxtModule } from '@nuxt/schema'
2
-
3
- import type { default as Module } from './module'
4
-
5
- export type ModuleOptions = typeof Module extends NuxtModule<infer O> ? Partial<O> : Record<string, any>
6
-
7
- export { default } from './module'