@stacksjs/composables 0.75.212 → 0.75.214

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.
@@ -27,6 +27,7 @@ export declare interface NetworkInformationLike {
27
27
  }
28
28
  declare global {
29
29
  interface Document {
30
+ webkitFullscreenEnabled?: boolean
30
31
  webkitFullscreenElement?: Element | null
31
32
  webkitExitFullscreen?: () => Promise<void> | void
32
33
  }
@@ -1,5 +1,5 @@
1
1
  import './types/dom-vendor';
2
- import type { MaybeRef } from './_shared';
2
+ import type { MaybeRefOrGetter } from './_shared';
3
3
  import type { Ref } from '@stacksjs/stx';
4
4
  /**
5
5
  * Reactive Fullscreen API.
@@ -7,7 +7,7 @@ import type { Ref } from '@stacksjs/stx';
7
7
  *
8
8
  * @param target - Target element (defaults to documentElement)
9
9
  */
10
- export declare function useFullscreen(target?: MaybeRef<HTMLElement | null>): UseFullscreenReturn;
10
+ export declare function useFullscreen(target?: MaybeRefOrGetter<HTMLElement | null>): UseFullscreenReturn;
11
11
  export declare interface UseFullscreenReturn {
12
12
  isFullscreen: Ref<boolean>
13
13
  isSupported: Ref<boolean>
@@ -1 +1 @@
1
- import"./types/dom-vendor";import{onUnmounted,ref}from"@stacksjs/stx";import{defaultDocument,unref}from"./_shared";export function useFullscreen(target){const doc=defaultDocument(),isFullscreen=ref(!1),isSupported=ref(!!doc&&(("fullscreenEnabled"in doc)||("webkitFullscreenEnabled"in doc)));function getTarget(){if(target)return unref(target);return doc?.documentElement??null}function getFullscreenElement(){if(!doc)return null;return doc.fullscreenElement??doc.webkitFullscreenElement??null}function updateState(){isFullscreen.value=getFullscreenElement()!==null}async function enter(){if(!isSupported.value)return;const el=getTarget();if(!el)return;try{if(el.requestFullscreen)await el.requestFullscreen();else if(el.webkitRequestFullscreen)await el.webkitRequestFullscreen();isFullscreen.value=!0}catch{}}async function exit(){if(!isSupported.value||!doc)return;try{if(doc.exitFullscreen)await doc.exitFullscreen();else if(doc.webkitExitFullscreen)await doc.webkitExitFullscreen();isFullscreen.value=!1}catch{}}async function toggle(){if(isFullscreen.value)await exit();else await enter()}if(doc){const handler=()=>updateState();doc.addEventListener("fullscreenchange",handler);doc.addEventListener("webkitfullscreenchange",handler);try{onUnmounted(()=>{doc.removeEventListener("fullscreenchange",handler);doc.removeEventListener("webkitfullscreenchange",handler)})}catch{}}return{isFullscreen,isSupported,enter,exit,toggle}}
1
+ import"./types/dom-vendor";import{onUnmounted,ref}from"@stacksjs/stx";import{defaultDocument,toValue}from"./_shared";export function useFullscreen(target){const doc=defaultDocument(),isFullscreen=ref(!1),isSupported=ref(!!doc&&(doc.fullscreenEnabled===!0||doc.webkitFullscreenEnabled===!0));function getTarget(){if(target)return toValue(target);return doc?.documentElement??null}function getFullscreenElement(){if(!doc)return null;return doc.fullscreenElement??doc.webkitFullscreenElement??null}function updateState(){isFullscreen.value=getFullscreenElement()===getTarget()&&getTarget()!==null}async function enter(){if(!isSupported.value)return;const el=getTarget();if(!el)return;try{if(el.requestFullscreen)await el.requestFullscreen();else if(el.webkitRequestFullscreen)await el.webkitRequestFullscreen();updateState()}catch{}}async function exit(){if(!isSupported.value||!doc)return;try{if(doc.exitFullscreen)await doc.exitFullscreen();else if(doc.webkitExitFullscreen)await doc.webkitExitFullscreen();updateState()}catch{}}async function toggle(){if(isFullscreen.value)await exit();else await enter()}updateState();if(doc){const handler=()=>updateState();doc.addEventListener("fullscreenchange",handler);doc.addEventListener("webkitfullscreenchange",handler);try{onUnmounted(()=>{doc.removeEventListener("fullscreenchange",handler);doc.removeEventListener("webkitfullscreenchange",handler)})}catch{}}return{isFullscreen,isSupported,enter,exit,toggle}}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@stacksjs/composables",
3
3
  "type": "module",
4
4
  "sideEffects": false,
5
- "version": "0.75.212",
5
+ "version": "0.75.214",
6
6
  "description": "Stacks composables powered by stx reactivity.",
7
7
  "author": "Chris Breuer",
8
8
  "contributors": [
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "@stacksjs/stx": "^0.2.534",
55
- "@stacksjs/datetime": "0.75.212"
55
+ "@stacksjs/datetime": "0.75.214"
56
56
  },
57
57
  "devDependencies": {
58
58
  "better-dx": "^0.2.24"