viewport-truth 1.0.2 → 1.0.4

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/README.md CHANGED
@@ -1,251 +1,193 @@
1
- # viewport-truth 🏆
1
+ # viewport-truth
2
+
3
+ > Fastest way to measure the real visible mobile viewport without 100vh glitches, resize/scroll jitter, or keyboard hacks.
2
4
 
3
5
  [![npm version](https://img.shields.io/npm/v/viewport-truth.svg?style=flat-square)](https://www.npmjs.com/package/viewport-truth)
4
- [![minzipped size](https://img.shields.io/bundlephobia/minzip/viewport-truth?style=flat-square)](https://bundlephobia.com/package/viewport-truth)
5
- [![license](https://img.shields.io/npm/l/viewport-truth?style=flat-square)](https://github.com/your-org/viewport-truth/blob/main/LICENSE)
6
+ [![npm downloads](https://img.shields.io/npm/dm/viewport-truth.svg?style=flat-square)](https://www.npmjs.com/package/viewport-truth)
7
+ [![license](https://img.shields.io/npm/l/viewport-truth.svg?style=flat-square)](https://github.com/AntonVoronezh/viewport-truth/blob/main/LICENSE)
8
+ [![tests](https://img.shields.io/github/actions/workflow/status/AntonVoronezh/viewport-truth/ci.yml?branch=main&style=flat-square&label=tests)](https://github.com/AntonVoronezh/viewport-truth/actions/workflows/ci.yml)
6
9
  [![Boosty](https://img.shields.io/badge/Support-Boosty-orange?style=flat-square&logo=boosty)](https://boosty.to/antonvoronezh/donate)
7
10
  [![Crypto](https://img.shields.io/badge/Donate-Crypto-2CA5E0?style=flat-square&logo=telegram&logoColor=white)](https://t.me/AntonVoronezhh/4)
8
11
 
9
- > **Zero-config, tiny “real viewport store.**
10
- > Always returns the *visible* viewport size in **CSS px** (VisualViewport-first) and tells you when the **virtual keyboard** actually ate your UI.
11
-
12
- ---
13
-
14
- ## Why? 🤔
15
-
16
- Mobile viewport is Geometry Hell. You write `100vh` and expect “screen height”. The browser replies: “adorable.”
17
-
18
- You don’t want to:
19
-
20
- - ❌ Build “fullscreen” layouts that jump on iOS Safari when the URL bar expands/collapses.
21
- - ❌ Ship modals / sticky footers that slide under the virtual keyboard.
22
- - ❌ Depend on `resize` events that jitter on scroll and lie across mobile browsers.
23
- - ❌ Maintain hacks with `focusin/focusout`, timeouts, and fragile heuristics.
24
-
25
- **viewport-truth** solves it by using the **Visual Viewport API** as the primary source of truth, stabilizing updates, and providing `isKeyboardOpen` based on geometry—without DOM polling.
26
-
27
- - **Universal:** React, Vue, Svelte, Solid, Angular, Vanilla.
28
- - **Tiny:** tree-shakeable, zero runtime deps.
29
- - **Performant:** rAF throttling, microtask coalescing, idle stability work.
30
-
31
- ---
32
-
33
- ## Installation 📦
12
+ Stop guessing mobile viewport sizes. viewport-truth delivers stable, keyboard-aware visible viewport metrics (VisualViewport-first) across iOS Safari, Android Chrome, PWAs, and webviews—framework adapters included, SSR-safe, zero runtime deps.
34
13
 
35
14
  ```bash
36
- npm install viewport-truth
37
- # or
38
- yarn add viewport-truth
39
- # or
40
- pnpm add viewport-truth
15
+ npm i viewport-truth
16
+ # or: yarn add viewport-truth
17
+ # or: pnpm add viewport-truth
41
18
  ```
42
19
 
43
- ## Usage 🚀
44
20
 
45
- ### React
21
+ ### Quick Start
22
+ Minimal flow: import → create → subscribe → get { width, height, isKeyboardOpen, isStable }.
46
23
 
47
- Use the `useViewportTruth` hook.
48
-
49
- ```tsx
50
- import { useViewportTruth } from "viewport-truth/react";
24
+ ```js
25
+ import { createViewportTruth } from "viewport-truth/vanilla";
51
26
 
52
- export function DebugViewport() {
53
- const v = useViewportTruth();
27
+ const vt = createViewportTruth();
54
28
 
55
- if (!v) return null; // SSR-safe
29
+ const unsub = vt.subscribe((v) => {
30
+ if (!v) return;
56
31
 
57
- return (
58
- <div style={{ padding: 12, border: "1px solid #ddd" }}>
59
- <div>Visible: {v.width} × {v.height} (CSS px)</div>
60
- <div>Keyboard: {String(v.isKeyboardOpen)} · Stable: {String(v.isStable)}</div>
61
- </div>
32
+ console.log(
33
+ `visible=${v.width}x${v.height} keyboard=${v.isKeyboardOpen} stable=${v.isStable}`
62
34
  );
63
- }
35
+ });
64
36
 
37
+ // later:
38
+ // unsub();
39
+ // vt.destroy();
65
40
  ```
66
41
 
67
- ### Vue 3
68
-
69
- Use the `useViewportTruth` composable.
70
-
71
- ```html
72
- <script setup lang="ts">
73
- import { computed } from "vue";
74
- import { useViewportTruth } from "viewport-truth/vue";
75
-
76
- const v = useViewportTruth();
77
- const label = computed(() =>
78
- v.value
79
- ? `Visible: ${v.value.width}×${v.value.height} · Keyboard: ${v.value.isKeyboardOpen}`
80
- : "SSR…"
81
- );
82
- </script>
83
-
84
- <template>
85
- <div style="padding: 12px; border: 1px solid #ddd;">
86
- {{ label }}
87
- </div>
88
- </template>
42
+ ## Quick Start test (clean environment)
89
43
 
44
+ This verifies the Quick Start code runs end-to-end in a fresh project.
90
45
 
46
+ ```bash
47
+ mkdir vt-smoke && cd vt-smoke
48
+ npm init -y
49
+ npm i viewport-truth vite
50
+ npm pkg set type=module
91
51
  ```
52
+ Create index.html:
92
53
 
93
- ### Svelte
94
-
95
- Use the `viewportTruth` store-like helper.
96
-
97
- ```svelte
98
- <script lang="ts">
99
- import { viewportTruth } from "viewport-truth/svelte";
100
- const v = viewportTruth();
101
- </script>
102
-
103
- <div style="padding:12px;border:1px solid #ddd">
104
- {#if $v}
105
- <div>Visible: {$v.width}×{$v.height}</div>
106
- <div>Keyboard: {$v.isKeyboardOpen} · Stable: {$v.isStable}</div>
107
- {/if}
108
- </div>
109
-
54
+ ```html
55
+ <!doctype html>
56
+ <html>
57
+ <body>
58
+ <pre id="out">loading…</pre>
59
+ <script type="module" src="/main.js"></script>
60
+ </body>
61
+ </html>
110
62
  ```
111
63
 
112
- ### SolidJS
64
+ Create main.js:
113
65
 
114
- Use the `createViewportTruth` primitive.
115
-
116
- ```tsx
117
- iimport { createViewportTruth } from "viewport-truth/solid";
66
+ ```js
67
+ import { createViewportTruth } from "viewport-truth/vanilla";
118
68
 
119
- export function DebugViewport() {
120
- const v = createViewportTruth();
69
+ const out = document.getElementById("out");
70
+ const vt = createViewportTruth();
121
71
 
122
- return (
123
- <div style={{ padding: "12px", border: "1px solid #ddd" }}>
124
- {v() ? (
125
- <>
126
- <div>Visible: {v()!.width}×{v()!.height}</div>
127
- <div>Keyboard: {String(v()!.isKeyboardOpen)} · Stable: {String(v()!.isStable)}</div>
128
- </>
129
- ) : null}
130
- </div>
131
- );
132
- }
72
+ vt.subscribe((v) => {
73
+ out.textContent = JSON.stringify(v, null, 2);
74
+ });
133
75
  ```
134
76
 
135
- ### Angular (17+)
136
-
137
- Use the standalone `ViewportTruthDirective`.
138
-
139
- ```typescript
140
- import { Component } from "@angular/core";
141
- import { CommonModule } from "@angular/common";
142
- import { ViewportTruthDirective } from "viewport-truth/angular";
143
-
144
- @Component({
145
- selector: "app-viewport-debug",
146
- standalone: true,
147
- imports: [CommonModule, ViewportTruthDirective],
148
- template: `
149
- <div viewportTruth #vt="viewportTruth" style="padding:12px;border:1px solid #ddd;">
150
- <ng-container *ngIf="vt.vt()() as v">
151
- <div>Visible: {{ v.width }}×{{ v.height }}</div>
152
- <div>Keyboard: {{ v.isKeyboardOpen }} · Stable: {{ v.isStable }}</div>
153
- </ng-container>
154
- </div>
155
- `,
156
- })
157
- export class ViewportDebugComponent {}
77
+ Run:
158
78
 
79
+ ```bash
80
+ npx vite
159
81
  ```
160
82
 
161
- ### Vanilla JS
83
+ Open the URL on mobile (or device emulator) and focus an input to see `isKeyboardOpen` change.
162
84
 
163
- ```js
164
- import { createViewportTruth } from "viewport-truth/vanilla";
85
+ ## Wow example (keyboard eats UI… and you can see it)
165
86
 
166
- const el = document.getElementById("debug");
87
+ A tiny bottom bar that stays visible and shows exactly how much viewport you lost.
167
88
 
168
- const vt = createViewportTruth();
169
- const unsub = vt.subscribe((v) => {
170
- el.textContent = `Visible: ${v.width}×${v.height} | Keyboard: ${v.isKeyboardOpen} | Stable: ${v.isStable}`;
171
- });
89
+ > Run it in a real page (Vite/Parcel/Next) — the snippet won’t execute inside README.
90
+ > On mobile: scroll a bit (URL bar), then focus the input (keyboard).
172
91
 
173
- // Later:
174
- // unsub();
175
- // vt.destroy();
92
+ ```html
93
+ <div id="app" style="padding:16px 16px 96px">
94
+ <input
95
+ placeholder="Focus me to open keyboard"
96
+ style="width:100%;padding:12px;font-size:16px;box-sizing:border-box"
97
+ />
98
+ <p style="margin:12px 0 0;color:#444">
99
+ Tip: scroll a bit (URL bar animates), then focus the input.
100
+ </p>
101
+
102
+ <div style="height:120vh"></div>
103
+ <div id="bar"></div>
104
+ </div>
176
105
 
106
+ <script type="module">
107
+ import { createViewportTruth } from "viewport-truth/vanilla";
108
+
109
+ const bar = document.getElementById("bar");
110
+ Object.assign(bar.style, {
111
+ position: "fixed",
112
+ left: "0",
113
+ right: "0",
114
+ bottom: "0",
115
+ padding: "10px 12px",
116
+ font: "12px/1.35 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",
117
+ background: "rgba(0,0,0,.86)",
118
+ color: "white",
119
+ zIndex: "9999",
120
+ whiteSpace: "pre",
121
+ });
122
+
123
+ const vt = createViewportTruth();
124
+
125
+ vt.subscribe((v) => {
126
+ if (!v) return;
127
+
128
+ // Fallback keeps the snippet working even if layoutWidth/layoutHeight aren't present.
129
+ const layoutW = v.layoutWidth ?? v.width;
130
+ const layoutH = v.layoutHeight ?? v.height;
131
+
132
+ const lost = Math.max(0, layoutH - v.height);
133
+
134
+ bar.textContent =
135
+ `visible: ${v.width}×${v.height}
136
+ layout: ${layoutW}×${layoutH}
137
+ lost: ${lost}px
138
+ keyboard: ${v.isKeyboardOpen}
139
+ stable: ${v.isStable}`;
140
+ });
141
+ </script>
177
142
  ```
178
143
 
179
- ---
144
+ ## Features
180
145
 
181
- ## Configuration ⚙️
146
+ A few concrete, technical reasons it behaves well on mobile:
182
147
 
183
- You can tune stability and keyboard detection without changing your app code.
148
+ - **Tiny:** ~< 2 KB min+gzip (check the Bundlephobia badge).
149
+ - **Fast updates:** emits at most **1 update per animation frame** (rAF throttling).
150
+ - **Zero runtime deps:** **0 dependencies** at runtime (tree-shakeable ESM).
151
+ - **Stable signal:** `isStable` flips after **150ms** (default) without geometry changes.
184
152
 
185
- ```ts
186
- // React
187
- useViewportTruth({
188
- stableDelayMs: 150,
189
- keyboardRatio: 0.75,
190
- keyboardMinDeltaPx: 120,
191
- });
192
-
193
- // Vanilla
194
- createViewportTruth({
195
- trustVisualViewportUnderZoom: true,
196
- minViewportPx: 1,
197
- });
153
+ ---
198
154
 
199
- ```
155
+ ## API (snapshot)
200
156
 
201
- | Option | Type | Default | Description |
202
- |---|---|---:|---|
203
- | `stableDelayMs` | `number` | `150` | `isStable` becomes `true` after this many ms without changes (end of URL bar/keyboard animation). |
204
- | `keyboardRatio` | `number` | `0.75` | If `visibleHeight < layoutHeight * keyboardRatio`, keyboard is likely open. |
205
- | `keyboardMinDeltaPx` | `number` | `120` | Minimum height loss (px) required to mark keyboard as open (prevents false positives). |
206
- | `minViewportPx` | `number` | `1` | Clamps transient `0` / broken values during rotations and browser quirks. |
207
- | `trustVisualViewportUnderZoom` | `boolean` | `true` | Keep using `visualViewport` even when pinch-zoom is active (`scale !== 1`). |
208
- | `safeAreaInsets` | `{ top?: number; right?: number; bottom?: number; left?: number }` | `{}` | Optional safe-area compensation (core does not read CSS `env()` automatically). |
157
+ Core snapshot fields you’ll typically use:
209
158
 
159
+ - `width`, `height` — visible viewport size (CSS px)
160
+ - `layoutWidth`, `layoutHeight` — layout viewport (basis for keyboard detection)
161
+ - `isKeyboardOpen` — geometry-based keyboard inference
162
+ - `isStable` — “animations settled” signal for UI decisions
210
163
 
211
- ## How it works 🛠️
164
+ Framework adapters:
212
165
 
213
- The API looks simple, but it’s doing a few careful things to stay *correct* on mobile.
166
+ - **React:** `useViewportTruth` from `viewport-truth/react`
167
+ - **Vue:** `useViewportTruth` from `viewport-truth/vue`
168
+ - **Svelte:** `viewportTruth` from `viewport-truth/svelte`
169
+ - **Solid:** `createViewportTruth` from `viewport-truth/solid`
170
+ - **Angular:** `ViewportTruthDirective` from `viewport-truth/angular`
214
171
 
215
- - **VisualViewport-first:** If `window.visualViewport` exists, we treat it as the source of truth for the **visible** viewport.
216
- - We listen to `visualViewport.resize` **and** `visualViewport.scroll` (mobile browsers change viewport without a classic `window.resize`).
217
- - **Fallback path:** If Visual Viewport API is unavailable, we fall back to `window.innerWidth/innerHeight`.
218
- - **Coalesced updates:** Multiple events in a burst are merged into a single update (no “event spam”).
219
- - **Frame throttling:** Updates are emitted **at most once per animation frame** (via `requestAnimationFrame`) to reduce layout thrash.
220
- - **Stability flag:** `isStable` turns `true` only after `stableDelayMs` with no changes (useful during URL bar / keyboard animations).
221
- - **Keyboard detection (geometry-based):** We infer `isKeyboardOpen` by comparing **visible** vs **layout** viewport:
222
- - `visibleHeight < layoutHeight * keyboardRatio` and
223
- - `(layoutHeight - visibleHeight) >= keyboardMinDeltaPx`
224
- - **SSR-safe:** On the server, it returns `null` and attaches listeners only in the browser.
225
- - **No DOM polling:** Core doesn’t query your layout or mutate styles; it only reads viewport metrics and emits snapshots.
172
+ Docs: [React](https://github.com/AntonVoronezh/viewport-truth/blob/main/docs/react.md)
173
+ [Vue](https://github.com/AntonVoronezh/viewport-truth/blob/main/docs/vue.md)
174
+ [Svelte](https://github.com/AntonVoronezh/viewport-truth/blob/main/docs/svelte.md)
175
+ [Solid](https://github.com/AntonVoronezh/viewport-truth/blob/main/docs/solid.md)
176
+ [Angular](https://github.com/AntonVoronezh/viewport-truth/blob/main/docs/angular.md)
177
+ > **Tip:** Open links in a new tab with **Ctrl+Click** (Windows/Linux) or **Cmd+Click** (macOS).
226
178
 
227
- ## Support the project ❤️
179
+ ## Support the project
228
180
 
229
181
  > “We ate the Geometry Hell for you: jumping `100vh`, jittery `resize`, modals under the keyboard.
230
182
  > You saved hours (and sanity). A donation is a fair trade for a rock-solid UI and weekends free from debugging.”
231
183
 
232
184
  If this library saved you time, please consider supporting the development:
233
185
 
234
- 1. **Fiat (Cards/PayPal):** via **[Boosty](https://boosty.to/antonvoronezh/donate)** (one-time or monthly).
235
- 2. **Crypto (USDT/TON/BTC/ETH):** view wallet addresses on **[Telegram](https://t.me/AntonVoronezhh/4)**.
186
+ 1. **Fiat (Cards/PayPal):** via **[Boosty](https://boosty.to/antonvoronezh/donate)** (one-time or monthly).
187
+ 2. **Crypto (USDT/TON/BTC/ETH):** view wallet addresses on **[Telegram](https://t.me/AntonVoronezhh/4)**.
236
188
 
237
- <div style="display: flex; gap: 10px;">
238
- <a href="https://boosty.to/antonvoronezh/donate">
239
- <img src="https://img.shields.io/badge/Support_on-Boosty-orange?style=for-the-badge&logo=boosty" alt="Support on Boosty">
240
- </a>
241
- <a href="https://t.me/AntonVoronezhh/4">
242
- <img src="https://img.shields.io/badge/Crypto_via-Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white" alt="Crypto via Telegram">
243
- </a>
244
- </div>
189
+ [![Support on Boosty](https://img.shields.io/badge/Support_on-Boosty-orange?style=for-the-badge&logo=boosty)](https://boosty.to/antonvoronezh/donate)
190
+ [![Crypto via Telegram](https://img.shields.io/badge/Crypto_via-Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/AntonVoronezhh/4)
245
191
 
246
192
  ## License
247
-
248
193
  MIT
249
-
250
- ## Keywords
251
- `viewport`, `visualViewport`, `mobile viewport`, `iOS Safari`, `Android Chrome`, `100vh`, `dvh`, `svh`, `lvh`, `safe-area-inset`, `on-screen keyboard`, `virtual keyboard`, `resize`, `scroll`, `URL bar`, `address bar`, `layout viewport`, `visual viewport`, `responsive UI`, `modals`, `bottom sheet`, `fullscreen`, `PWA`, `SSR`, `requestAnimationFrame`, `debounce`, `throttling`, `webview`, `Capacitor`, `Cordova`, `React`, `Vue`, `Svelte`, `SolidJS`, `Angular`, `vanilla JS`
package/dist/angular.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type Signal } from "@angular/core";
2
- import type { ViewportTruthSnapshot } from "./core/types";
2
+ import type { ViewportTruthSnapshot } from "./core/types.js";
3
3
  /**
4
4
  * Usage:
5
5
  * <div viewportTruth [vtOptions]="{...}" (vtChange)="onSnap($event)"></div>
@@ -1 +1 @@
1
- {"version":3,"file":"angular.d.ts","sourceRoot":"","sources":["../src/angular.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAClG,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGhF;;;;;GAKG;AACH,qBAKa,sBAAsB;IAC/B,OAAO,CAAC,UAAU,CAAsB;IAExC,SAAS;;;;;;;;;;;;oBAAsD;IAE/D,OAAO,CAAC,GAAG,CAA8C;IACzD,EAAE,IAAI,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC;;CAkB7C"}
1
+ {"version":3,"file":"angular.d.ts","sourceRoot":"","sources":["../src/angular.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAClG,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGnF;;;;;GAKG;AACH,qBAKa,sBAAsB;IAC/B,OAAO,CAAC,UAAU,CAAsB;IAExC,SAAS;;;;;;;;;;;;oBAAsD;IAE/D,OAAO,CAAC,GAAG,CAA8C;IACzD,EAAE,IAAI,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC;;CAkB7C"}
package/dist/angular.js CHANGED
@@ -33,7 +33,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
33
33
  return useValue ? value : void 0;
34
34
  };
35
35
  import { Directive, DestroyRef, effect, inject, input, signal } from "@angular/core";
36
- import { createViewportTruthStore } from "./core/engine";
36
+ import { createViewportTruthStore } from "./core/engine.js";
37
37
  /**
38
38
  * Usage:
39
39
  * <div viewportTruth [vtOptions]="{...}" (vtChange)="onSnap($event)"></div>
@@ -1 +1 @@
1
- {"version":3,"file":"angular.js","sourceRoot":"","sources":["../src/angular.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAe,MAAM,eAAe,CAAC;AAElG,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;GAKG;IAMU,sBAAsB;4BALlC,SAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;YAC3B,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,eAAe;SAC5B,CAAC;;;;;;;;YACF,6KAwBC;;;YAxBY,uDAAsB;;QACvB,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAExC,SAAS,GAAG,KAAK,CAAmC,SAAS,CAAC,CAAC;QAEvD,GAAG,GAAG,MAAM,CAA+B,IAAI,CAAC,CAAC;QACzD,EAAE;YACE,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,CAAC;QAED;YACI,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAEzD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAEvE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC3B,KAAK,EAAE,CAAC;gBACR,KAAK,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,EAAE;gBACR,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,CAAC,CAAC,CAAC;QACP,CAAC;;;;SAvBQ,sBAAsB"}
1
+ {"version":3,"file":"angular.js","sourceRoot":"","sources":["../src/angular.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAe,MAAM,eAAe,CAAC;AAElG,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;;;;GAKG;IAMU,sBAAsB;4BALlC,SAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;YAC3B,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,eAAe;SAC5B,CAAC;;;;;;;;YACF,6KAwBC;;;YAxBY,uDAAsB;;QACvB,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAExC,SAAS,GAAG,KAAK,CAAmC,SAAS,CAAC,CAAC;QAEvD,GAAG,GAAG,MAAM,CAA+B,IAAI,CAAC,CAAC;QACzD,EAAE;YACE,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,CAAC;QAED;YACI,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAEzD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAEvE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC3B,KAAK,EAAE,CAAC;gBACR,KAAK,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,EAAE;gBACR,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,CAAC,CAAC,CAAC;QACP,CAAC;;;;SAvBQ,sBAAsB"}
@@ -1,3 +1,3 @@
1
- import type { ViewportTruthOptions, ViewportTruthStore } from "./types";
1
+ import type { ViewportTruthOptions, ViewportTruthStore } from "./types.js";
2
2
  export declare const createViewportTruthStore: (options?: ViewportTruthOptions) => ViewportTruthStore;
3
3
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAyB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA2G/F,eAAO,MAAM,wBAAwB,GAAI,UAAU,oBAAoB,KAAG,kBAkIzE,CAAC"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAyB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA2GlG,eAAO,MAAM,wBAAwB,GAAI,UAAU,oBAAoB,KAAG,kBAkIzE,CAAC"}
@@ -1,5 +1,5 @@
1
- import { canUseDOM, now } from "./env";
2
- import { createScheduler } from "./scheduler";
1
+ import { canUseDOM, now } from "./env.js";
2
+ import { createScheduler } from "./scheduler.js";
3
3
  const clampMin = (n, min) => (Number.isFinite(n) ? Math.max(min, n) : min);
4
4
  const round2 = (n) => Math.round(n * 100) / 100;
5
5
  const getSafeArea = (opt) => {
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAE3F,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAExD,MAAM,WAAW,GAAG,CAAC,GAA0B,EAAE,EAAE;IAC/C,MAAM,CAAC,GAAG,GAAG,EAAE,cAAc,CAAC;IAC9B,OAAO;QACH,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QAChB,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;QACpB,MAAM,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC;QACtB,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC;KACZ,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,GAAmC,EAAyB,EAAE;IACnF,MAAM,CAAC,GAAG,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;IAEpC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAEhE,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,iBAAiB,IAAI,OAAO,EAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjG,IAAI,WAAW,GAAG,iBAAiB,IAAI,OAAO,EAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAG,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/F,IAAI,YAAY,GAAG,iBAAiB,IAAI,OAAO,EAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAG,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;IAEnG,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IACvD,YAAY,GAAG,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,iBAAiB,IAAI,OAAO,EAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,SAAS,GAAG,iBAAiB,IAAI,OAAO,EAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7F,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,MAAM,GAAG,YAAY,CAAC;IAC1B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,YAAY,GAAG,YAAY,CAAC;QAC1C,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACzD,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,GAAG,WAAW,CAAC;IACxB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,WAAW,GAAG,WAAW,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACnC,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;YACpD,KAAK,GAAG,WAAW,GAAG,GAAG,CAAC;QAC9B,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,4BAA4B,CAAC;IACjD,MAAM,cAAc,GAAG,iBAAiB,IAAI,CAAC,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;IAC3F,MAAM,eAAe,GAAG,iBAAiB,IAAI,CAAC,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;IAE9F,MAAM,MAAM,GAAG,YAAY,GAAG,eAAe,CAAC;IAC9C,MAAM,OAAO,GAAG,eAAe,GAAG,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC;IACnE,MAAM,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC;IAChD,MAAM,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAExE,OAAO;QACH,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC;QAE/B,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;QAChC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;QAElC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;QAC9B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;QAE5B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;QAEpB,cAAc;QACd,QAAQ,EAAE,IAAI;QACd,iBAAiB;QACjB,EAAE,EAAE,GAAG,EAAE;KACZ,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAwB,EAAE,CAAwB,EAAW,EAAE;IACjF,OAAO,CACH,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QACnB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QACrB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;QAC/B,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,YAAY;QACjC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU;QAC7B,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;QAC3B,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QACnB,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,cAAc;QACrC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;QACzB,CAAC,CAAC,iBAAiB,KAAK,CAAC,CAAC,iBAAiB,CAC9C,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAA8B,EAAkC,EAAE,CAAC,CAAC;IACtF,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,GAAG;IAC5C,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,IAAI;IAC7C,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,IAAI,GAAG;IACtD,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,CAAC;IAC1C,4BAA4B,EAAE,OAAO,EAAE,4BAA4B,IAAI,IAAI;IAC3E,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,EAAE;CAChD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,OAA8B,EAAsB,EAAE;IAC3F,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACf,OAAO;YACH,WAAW,EAAE,GAAG,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;YACpG,CAAC;YACD,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI;YAC7B,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;YAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;SACxB,CAAC;IACN,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,IAAI,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACpC,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAE3C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IAExC,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,YAAY,GAAG,QAAQ,CAAC,EAAE,CAAC;IAE/B,MAAM,SAAS,GAAG,CAAC,KAAc,EAAE,EAAE;QACjC,IAAI,SAAS;YAAE,OAAO;QACtB,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK;YAAE,OAAO;QACxC,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;QACvD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC3B,IAAI,WAAW,IAAI,IAAI;YAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC;QAEhC,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE;YACxB,IAAI,SAAS;gBAAE,OAAO;YAEtB,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACjC,IAAI,SAAS;oBAAE,OAAO;gBACtB,MAAM,GAAG,GAAG,GAAG,EAAE,GAAG,YAAY,CAAC;gBACjC,IAAI,GAAG,IAAI,KAAK;oBAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,EAAE,KAAK,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE;QACnB,IAAI,SAAS;YAAE,OAAO;QAEtB,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAE9C,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YAChC,QAAQ,GAAG,IAAI,CAAC;YAChB,YAAY,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,iBAAiB,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAEpE,MAAM,EAAE,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;IAEzC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,MAAM,GAAG,GAAG,EAAE;QAChB,IAAI,QAAQ,IAAI,SAAS;YAAE,OAAO;QAClC,QAAQ,GAAG,IAAI,CAAC;QAEhB,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEnC,IAAI,EAAE,EAAE,CAAC;YACL,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE;QAChB,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,QAAQ,GAAG,KAAK,CAAC;QAEjB,IAAI,EAAE,EAAE,CAAC;YACL,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YACrD,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;QACpE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACzD,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAC/D,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE;QACjB,IAAI,SAAS;YAAE,OAAO;QACtB,SAAS,GAAG,IAAI,CAAC;QAEjB,MAAM,EAAE,CAAC;QACT,SAAS,CAAC,SAAS,EAAE,CAAC;QAEtB,IAAI,WAAW,IAAI,IAAI;YAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QACnD,WAAW,GAAG,IAAI,CAAC;QAEnB,SAAS,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO;QACH,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ;QAC3B,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI;QAC7B,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,SAAS;gBAAE,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAEnC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;gBAAE,MAAM,EAAE,CAAC;YAEnC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE;gBACzB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,QAAQ,EAAE,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,OAAO,GAAG,EAAE;gBACR,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC3B,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;oBAAE,MAAM,EAAE,CAAC;YACvC,CAAC,CAAC;QACN,CAAC;QACD,OAAO;KACV,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/core/env.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAO,OAGO,CAAC;AAErC,eAAO,MAAM,GAAG,QAAO,MAKtB,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,IAAI,oBAAoB,KAAG,MAG9C,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,IAAI,MAAM,KAAG,IAGhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,IAAI,MAAM,IAAI,KAAG,IAGnD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,IAAI,mBAAmB,EAAE,kBAAe,KAAG,MAItE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,KAAG,IAIvC,CAAC"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/core/env.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAO,OAGO,CAAC;AAErC,eAAO,MAAM,GAAG,QAAO,MAKtB,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,IAAI,oBAAoB,KAAG,MAG9C,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,IAAI,MAAM,KAAG,IAGhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,IAAI,MAAM,IAAI,KAAG,IAGnD,CAAC;AAOF,eAAO,MAAM,WAAW,GAAI,IAAI,mBAAmB,EAAE,kBAAe,KAAG,MAUtE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,KAAG,IAMvC,CAAC"}
package/dist/core/env.js CHANGED
@@ -23,13 +23,15 @@ export const queueMicrotaskSafe = (cb) => {
23
23
  Promise.resolve().then(cb).catch(() => void 0);
24
24
  };
25
25
  export const requestIdle = (cb, timeoutMs = 200) => {
26
- const ric = globalThis.requestIdleCallback;
26
+ const g = globalThis;
27
+ const ric = g.requestIdleCallback;
27
28
  if (typeof ric === "function")
28
29
  return ric(cb, { timeout: timeoutMs });
29
30
  return setTimeout(() => cb({ didTimeout: true, timeRemaining: () => 0 }), 0);
30
31
  };
31
32
  export const cancelIdle = (id) => {
32
- const cic = globalThis.cancelIdleCallback;
33
+ const g = globalThis;
34
+ const cic = g.cancelIdleCallback;
33
35
  if (typeof cic === "function")
34
36
  cic(id);
35
37
  else
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/core/env.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,GAAY,EAAE,CACnC,OAAO,MAAM,KAAK,WAAW;IAC7B,OAAO,QAAQ,KAAK,WAAW;IAC/B,OAAO,SAAS,KAAK,WAAW,CAAC;AAErC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAW,EAAE;IAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAExD,CAAC;IAChB,OAAO,OAAO,CAAC,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAwB,EAAU,EAAE;IACpD,IAAI,OAAO,qBAAqB,KAAK,UAAU;QAAE,OAAO,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAClF,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAuB,CAAC,EAAE,EAAE,CAAsB,CAAC;AACrF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAU,EAAQ,EAAE;IACpC,IAAI,OAAO,oBAAoB,KAAK,UAAU;QAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC;;QACpE,YAAY,CAAC,EAAuB,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAc,EAAQ,EAAE;IACvD,IAAI,OAAO,cAAc,KAAK,UAAU;QAAE,cAAc,CAAC,EAAE,CAAC,CAAC;;QACxD,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAuB,EAAE,SAAS,GAAG,GAAG,EAAU,EAAE;IAC5E,MAAM,GAAG,GAAI,UAAkB,CAAC,mBAA+F,CAAC;IAChI,IAAI,OAAO,GAAG,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAkB,CAAC,EAAE,CAAC,CAAsB,CAAC;AACtH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAU,EAAQ,EAAE;IAC3C,MAAM,GAAG,GAAI,UAAkB,CAAC,kBAAuD,CAAC;IACxF,IAAI,OAAO,GAAG,KAAK,UAAU;QAAE,GAAG,CAAC,EAAE,CAAC,CAAC;;QAClC,YAAY,CAAC,EAAuB,CAAC,CAAC;AAC/C,CAAC,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/core/env.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,GAAY,EAAE,CACnC,OAAO,MAAM,KAAK,WAAW;IAC7B,OAAO,QAAQ,KAAK,WAAW;IAC/B,OAAO,SAAS,KAAK,WAAW,CAAC;AAErC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAW,EAAE;IAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAExD,CAAC;IAChB,OAAO,OAAO,CAAC,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAwB,EAAU,EAAE;IACpD,IAAI,OAAO,qBAAqB,KAAK,UAAU;QAAE,OAAO,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAClF,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAuB,CAAC,EAAE,EAAE,CAAsB,CAAC;AACrF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAU,EAAQ,EAAE;IACpC,IAAI,OAAO,oBAAoB,KAAK,UAAU;QAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC;;QACpE,YAAY,CAAC,EAAuB,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAc,EAAQ,EAAE;IACvD,IAAI,OAAO,cAAc,KAAK,UAAU;QAAE,cAAc,CAAC,EAAE,CAAC,CAAC;;QACxD,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAuB,EAAE,SAAS,GAAG,GAAG,EAAU,EAAE;IAC5E,MAAM,CAAC,GAAG,UAA+C,CAAC;IAC1D,MAAM,GAAG,GAAG,CAAC,CAAC,mBAAmB,CAAC;IAElC,IAAI,OAAO,GAAG,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAEtE,OAAO,UAAU,CACb,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAkB,CAAC,EACtE,CAAC,CACiB,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAU,EAAQ,EAAE;IAC3C,MAAM,CAAC,GAAG,UAA+C,CAAC;IAC1D,MAAM,GAAG,GAAG,CAAC,CAAC,kBAAkB,CAAC;IAEjC,IAAI,OAAO,GAAG,KAAK,UAAU;QAAE,GAAG,CAAC,EAAE,CAAC,CAAC;;QAClC,YAAY,CAAC,EAAuB,CAAC,CAAC;AAC/C,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- export type { ViewportTruthOptions, ViewportTruthSnapshot, ViewportTruthStore, ViewportTruthSubscribe, } from "./types";
2
- export { createViewportTruthStore } from "./engine";
1
+ export type { ViewportTruthOptions, ViewportTruthSnapshot, ViewportTruthStore, ViewportTruthSubscribe, } from "./types.js";
2
+ export { createViewportTruthStore } from "./engine.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,GACzB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,2 +1,2 @@
1
- export { createViewportTruthStore } from "./engine";
1
+ export { createViewportTruthStore } from "./engine.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
- import { caf, raf, queueMicrotaskSafe, requestIdle, cancelIdle } from "./env";
1
+ import { caf, raf, queueMicrotaskSafe, requestIdle, cancelIdle } from "./env.js";
2
2
  export const createScheduler = () => {
3
3
  let rafId = null;
4
4
  let idleId = null;
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/core/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAQ9E,MAAM,CAAC,MAAM,eAAe,GAAG,GAAc,EAAE;IAC3C,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO;QACH,aAAa,CAAC,EAAE;YACZ,IAAI,WAAW;gBAAE,OAAO;YACxB,WAAW,GAAG,IAAI,CAAC;YAEnB,kBAAkB,CAAC,GAAG,EAAE;gBACpB,IAAI,CAAC,WAAW;oBAAE,OAAO;gBAEzB,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE;oBACb,KAAK,GAAG,IAAI,CAAC;oBACb,WAAW,GAAG,KAAK,CAAC;oBACpB,EAAE,EAAE,CAAC;gBACT,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,YAAY,CAAC,EAAE;YACX,IAAI,UAAU;gBAAE,OAAO;YACvB,UAAU,GAAG,IAAI,CAAC;YAElB,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;gBACtB,MAAM,GAAG,IAAI,CAAC;gBACd,UAAU,GAAG,KAAK,CAAC;gBACnB,EAAE,EAAE,CAAC;YACT,CAAC,CAAC,CAAC;QACP,CAAC;QAED,SAAS;YACL,IAAI,KAAK,IAAI,IAAI;gBAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,MAAM,IAAI,IAAI;gBAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YACvC,KAAK,GAAG,IAAI,CAAC;YACb,MAAM,GAAG,IAAI,CAAC;YACd,WAAW,GAAG,KAAK,CAAC;YACpB,UAAU,GAAG,KAAK,CAAC;QACvB,CAAC;KACJ,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/core/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQjF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAc,EAAE;IAC3C,IAAI,KAAK,GAAkB,IAAI,CAAC;IAChC,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,OAAO;QACH,aAAa,CAAC,EAAE;YACZ,IAAI,WAAW;gBAAE,OAAO;YACxB,WAAW,GAAG,IAAI,CAAC;YAEnB,kBAAkB,CAAC,GAAG,EAAE;gBACpB,IAAI,CAAC,WAAW;oBAAE,OAAO;gBAEzB,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE;oBACb,KAAK,GAAG,IAAI,CAAC;oBACb,WAAW,GAAG,KAAK,CAAC;oBACpB,EAAE,EAAE,CAAC;gBACT,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,YAAY,CAAC,EAAE;YACX,IAAI,UAAU;gBAAE,OAAO;YACvB,UAAU,GAAG,IAAI,CAAC;YAElB,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;gBACtB,MAAM,GAAG,IAAI,CAAC;gBACd,UAAU,GAAG,KAAK,CAAC;gBACnB,EAAE,EAAE,CAAC;YACT,CAAC,CAAC,CAAC;QACP,CAAC;QAED,SAAS;YACL,IAAI,KAAK,IAAI,IAAI;gBAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,MAAM,IAAI,IAAI;gBAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YACvC,KAAK,GAAG,IAAI,CAAC;YACb,MAAM,GAAG,IAAI,CAAC;YACd,WAAW,GAAG,KAAK,CAAC;YACpB,UAAU,GAAG,KAAK,CAAC;QACvB,CAAC;KACJ,CAAC;AACN,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- export * from "./core/index";
2
- export * as react from "./react";
3
- export * as vue from "./vue";
4
- export * as svelte from "./svelte";
5
- export * as solid from "./solid";
6
- export * as angular from "./angular";
7
- export * as vanilla from "./vanilla";
1
+ export * from "./core/index.js";
2
+ export * as vanilla from "./vanilla.js";
3
+ export type * as react from "./react.js";
4
+ export type * as vue from "./vue.js";
5
+ export type * as svelte from "./svelte.js";
6
+ export type * as solid from "./solid.js";
7
+ export type * as angular from "./angular.js";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAE7B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,YAAY,KAAK,KAAK,MAAM,YAAY,CAAC;AACzC,YAAY,KAAK,GAAG,MAAM,UAAU,CAAC;AACrC,YAAY,KAAK,MAAM,MAAM,aAAa,CAAC;AAC3C,YAAY,KAAK,KAAK,MAAM,YAAY,CAAC;AACzC,YAAY,KAAK,OAAO,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,3 @@
1
- export * from "./core/index";
2
- export * as react from "./react";
3
- export * as vue from "./vue";
4
- export * as svelte from "./svelte";
5
- export * as solid from "./solid";
6
- export * as angular from "./angular";
7
- export * as vanilla from "./vanilla";
1
+ export * from "./core/index.js";
2
+ export * as vanilla from "./vanilla.js";
8
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAE7B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC"}
package/dist/react.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ViewportTruthOptions, ViewportTruthSnapshot } from "./core/types";
1
+ import type { ViewportTruthOptions, ViewportTruthSnapshot } from "./core/types.js";
2
2
  export type UseViewportTruthResult = ViewportTruthSnapshot | null;
3
3
  export declare const useViewportTruth: (options?: ViewportTruthOptions) => UseViewportTruthResult;
4
4
  //# sourceMappingURL=react.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGhF,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,GAAG,IAAI,CAAC;AAElE,eAAO,MAAM,gBAAgB,GAAI,UAAU,oBAAoB,KAAG,sBAIjE,CAAC"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGnF,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,GAAG,IAAI,CAAC;AAElE,eAAO,MAAM,gBAAgB,GAAI,UAAU,oBAAoB,KAAG,sBAIjE,CAAC"}
package/dist/react.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { useMemo, useSyncExternalStore } from "react";
2
- import { createViewportTruthStore } from "./core/engine";
2
+ import { createViewportTruthStore } from "./core/engine.js";
3
3
  export const useViewportTruth = (options) => {
4
4
  const store = useMemo(() => createViewportTruthStore(options), [options]);
5
5
  return useSyncExternalStore(store.subscribe, store.getSnapshot, store.getServerSnapshot);
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAIzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA8B,EAA0B,EAAE;IACvF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE1E,OAAO,oBAAoB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAC7F,CAAC,CAAC"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAI5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA8B,EAA0B,EAAE;IACvF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE1E,OAAO,oBAAoB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAC7F,CAAC,CAAC"}
package/dist/solid.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type Accessor } from "solid-js";
2
- import type { ViewportTruthOptions, ViewportTruthSnapshot } from "./core/types";
2
+ import type { ViewportTruthOptions, ViewportTruthSnapshot } from "./core/types.js";
3
3
  export declare const createViewportTruth: (options?: ViewportTruthOptions) => Accessor<ViewportTruthSnapshot | null>;
4
4
  /**
5
5
  * Directive-like helper (Solid "use:" works with functions)
@@ -1 +1 @@
1
- {"version":3,"file":"solid.d.ts","sourceRoot":"","sources":["../src/solid.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGhF,eAAO,MAAM,mBAAmB,GAC5B,UAAU,oBAAoB,KAC/B,QAAQ,CAAC,qBAAqB,GAAG,IAAI,CAYvC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAC/B,KAAK,WAAW,EAChB,UAAU,MAAM;IAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAAE,SAUnG,CAAC"}
1
+ {"version":3,"file":"solid.d.ts","sourceRoot":"","sources":["../src/solid.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGnF,eAAO,MAAM,mBAAmB,GAC5B,UAAU,oBAAoB,KAC/B,QAAQ,CAAC,qBAAqB,GAAG,IAAI,CAYvC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAC/B,KAAK,WAAW,EAChB,UAAU,MAAM;IAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAAE,SAUnG,CAAC"}
package/dist/solid.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createSignal, onCleanup } from "solid-js";
2
- import { createViewportTruthStore } from "./core/engine";
2
+ import { createViewportTruthStore } from "./core/engine.js";
3
3
  export const createViewportTruth = (options) => {
4
4
  const store = createViewportTruthStore(options);
5
5
  const [snap, setSnap] = createSignal(store.getServerSnapshot());
package/dist/solid.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"solid.js","sourceRoot":"","sources":["../src/solid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAiB,MAAM,UAAU,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,OAA8B,EACQ,EAAE;IACxC,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,YAAY,CAA+B,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE9F,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAElE,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,EAAE,CAAC;QACR,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAClC,GAAgB,EAChB,QAAgG,EAClG,EAAE;IACA,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEvE,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,EAAE,CAAC;QACR,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"solid.js","sourceRoot":"","sources":["../src/solid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAiB,MAAM,UAAU,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,OAA8B,EACQ,EAAE;IACxC,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,YAAY,CAA+B,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE9F,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAElE,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,EAAE,CAAC;QACR,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAClC,GAAgB,EAChB,QAAgG,EAClG,EAAE;IACA,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEvE,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,EAAE,CAAC;QACR,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
package/dist/svelte.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ViewportTruthOptions, ViewportTruthSnapshot } from "./core/types";
1
+ import type { ViewportTruthOptions, ViewportTruthSnapshot } from "./core/types.js";
2
2
  export declare const viewportTruth: (options?: ViewportTruthOptions) => {
3
3
  subscribe(run: (v: ViewportTruthSnapshot | null) => void): () => void;
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"svelte.d.ts","sourceRoot":"","sources":["../src/svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGhF,eAAO,MAAM,aAAa,GAAI,UAAU,oBAAoB;mBAIrC,CAAC,CAAC,EAAE,qBAAqB,GAAG,IAAI,KAAK,IAAI;CAS/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC5B,OAAO,WAAW,EAClB,QAAQ;IAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAAE;iBAMvE,OAAO,MAAM;;CAQjC,CAAC"}
1
+ {"version":3,"file":"svelte.d.ts","sourceRoot":"","sources":["../src/svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGnF,eAAO,MAAM,aAAa,GAAI,UAAU,oBAAoB;mBAIrC,CAAC,CAAC,EAAE,qBAAqB,GAAG,IAAI,KAAK,IAAI;CAS/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC5B,OAAO,WAAW,EAClB,QAAQ;IAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAAE;iBAMvE,OAAO,MAAM;;CAQjC,CAAC"}
package/dist/svelte.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createViewportTruthStore } from "./core/engine";
1
+ import { createViewportTruthStore } from "./core/engine.js";
2
2
  export const viewportTruth = (options) => {
3
3
  const store = createViewportTruthStore(options);
4
4
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"svelte.js","sourceRoot":"","sources":["../src/svelte.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAA8B,EAAE,EAAE;IAC5D,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAEhD,OAAO;QACH,SAAS,CAAC,GAA8C;YACpD,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC9D,OAAO,GAAG,EAAE;gBACR,KAAK,EAAE,CAAC;gBACR,KAAK,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,KAAkB,EAClB,MAAwF,EAC1F,EAAE;IACA,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO;QACH,MAAM,CAAC,IAAmB;YACtB,MAAM,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,OAAO;YACH,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;KACJ,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"svelte.js","sourceRoot":"","sources":["../src/svelte.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAA8B,EAAE,EAAE;IAC5D,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAEhD,OAAO;QACH,SAAS,CAAC,GAA8C;YACpD,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC9D,OAAO,GAAG,EAAE;gBACR,KAAK,EAAE,CAAC;gBACR,KAAK,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAC/B,KAAkB,EAClB,MAAwF,EAC1F,EAAE;IACA,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO;QACH,MAAM,CAAC,IAAmB;YACtB,MAAM,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,OAAO;YACH,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;KACJ,CAAC;AACN,CAAC,CAAC"}
package/dist/vanilla.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ViewportTruthOptions, ViewportTruthSnapshot } from "./core/types";
1
+ import type { ViewportTruthOptions, ViewportTruthSnapshot } from "./core/types.js";
2
2
  export type ViewportTruthController = Readonly<{
3
3
  get: () => ViewportTruthSnapshot;
4
4
  subscribe: (fn: (s: ViewportTruthSnapshot) => void) => () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"vanilla.d.ts","sourceRoot":"","sources":["../src/vanilla.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGhF,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC3C,GAAG,EAAE,MAAM,qBAAqB,CAAC;IACjC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAClE,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC,CAAC;AAEH,eAAO,MAAM,mBAAmB,GAAI,UAAU,oBAAoB,KAAG,uBAcpE,CAAC"}
1
+ {"version":3,"file":"vanilla.d.ts","sourceRoot":"","sources":["../src/vanilla.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGnF,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC3C,GAAG,EAAE,MAAM,qBAAqB,CAAC;IACjC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAClE,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC,CAAC;AAEH,eAAO,MAAM,mBAAmB,GAAI,UAAU,oBAAoB,KAAG,uBAcpE,CAAC"}
package/dist/vanilla.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createViewportTruthStore } from "./core/engine";
1
+ import { createViewportTruthStore } from "./core/engine.js";
2
2
  export const createViewportTruth = (options) => {
3
3
  const store = createViewportTruthStore(options);
4
4
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"vanilla.js","sourceRoot":"","sources":["../src/vanilla.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAQzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA8B,EAA2B,EAAE;IAC3F,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAEhD,OAAO;QACH,GAAG;YACC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC;QACD,SAAS,CAAC,EAAE;YACR,OAAO,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO;YACH,KAAK,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;KACJ,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"vanilla.js","sourceRoot":"","sources":["../src/vanilla.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAQ5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA8B,EAA2B,EAAE;IAC3F,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAEhD,OAAO;QACH,GAAG;YACC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC;QACD,SAAS,CAAC,EAAE;YACR,OAAO,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO;YACH,KAAK,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;KACJ,CAAC;AACN,CAAC,CAAC"}
package/dist/vue.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type ShallowRef, type Directive } from "vue";
2
- import type { ViewportTruthOptions, ViewportTruthSnapshot } from "./core/types";
2
+ import type { ViewportTruthOptions, ViewportTruthSnapshot } from "./core/types.js";
3
3
  export declare const useViewportTruth: (options?: ViewportTruthOptions) => ShallowRef<ViewportTruthSnapshot | null>;
4
4
  export declare const vViewportTruth: Directive<HTMLElement, {
5
5
  onChange: (s: ViewportTruthSnapshot) => void;
package/dist/vue.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../src/vue.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,KAAK,CAAC;AAC9F,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGhF,eAAO,MAAM,gBAAgB,GACzB,UAAU,oBAAoB,KAC/B,UAAU,CAAC,qBAAqB,GAAG,IAAI,CAkBzC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,CAAC,WAAW,EAAE;IAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAAE,CAgB/H,CAAC"}
1
+ {"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../src/vue.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,KAAK,CAAC;AAC9F,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGnF,eAAO,MAAM,gBAAgB,GACzB,UAAU,oBAAoB,KAC/B,UAAU,CAAC,qBAAqB,GAAG,IAAI,CAkBzC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,CAAC,WAAW,EAAE;IAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAAE,CAgB/H,CAAC"}
package/dist/vue.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { onBeforeUnmount, onMounted, shallowRef } from "vue";
2
- import { createViewportTruthStore } from "./core/engine";
2
+ import { createViewportTruthStore } from "./core/engine.js";
3
3
  export const useViewportTruth = (options) => {
4
4
  const store = createViewportTruthStore(options);
5
5
  const state = shallowRef(store.getServerSnapshot());
package/dist/vue.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vue.js","sourceRoot":"","sources":["../src/vue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAmC,MAAM,KAAK,CAAC;AAE9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,OAA8B,EACU,EAAE;IAC1C,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,UAAU,CAA+B,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAElF,IAAI,KAAK,GAAwB,IAAI,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;YACzB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,eAAe,CAAC,GAAG,EAAE;QACjB,KAAK,EAAE,EAAE,CAAC;QACV,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GACvB;IACI,OAAO,CAAC,GAAG,EAAE,OAAO;QAChB,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QAEzC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAEjE,GAAW,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;IACD,SAAS,CAAC,EAAE;QACR,MAAM,GAAG,GAAI,EAAU,CAAC,IAA6F,CAAC;QACtH,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;QACxB,OAAQ,EAAU,CAAC,IAAI,CAAC;IAC5B,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"vue.js","sourceRoot":"","sources":["../src/vue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAmC,MAAM,KAAK,CAAC;AAE9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,OAA8B,EACU,EAAE;IAC1C,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,UAAU,CAA+B,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAElF,IAAI,KAAK,GAAwB,IAAI,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACX,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;YACzB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,eAAe,CAAC,GAAG,EAAE;QACjB,KAAK,EAAE,EAAE,CAAC;QACV,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GACvB;IACI,OAAO,CAAC,GAAG,EAAE,OAAO;QAChB,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QAEzC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAEjE,GAAW,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;IACD,SAAS,CAAC,EAAE;QACR,MAAM,GAAG,GAAI,EAAU,CAAC,IAA6F,CAAC;QACtH,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;QACf,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;QACxB,OAAQ,EAAU,CAAC,IAAI,CAAC;IAC5B,CAAC;CACJ,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viewport-truth",
3
- "version": "1.0.2",
4
- "description": "Accurate mobile viewport metrics (VisualViewport-first) with SSR-safe APIs and keyboard detection for React, Vue, Svelte, Solid, Angular, and vanilla JS.",
3
+ "version": "1.0.4",
4
+ "description": "Tiny zero‑config VisualViewport-first store for accurate visible viewport size in CSS pixels. Detects virtual keyboard, stabilizes resize/scroll jitter, and is SSR-safe across frameworks.",
5
5
  "author": {
6
6
  "name": "AntonVoronezh",
7
7
  "email": "anton.voronezh.1990@gmail.com",
@@ -28,128 +28,139 @@
28
28
  "files": [
29
29
  "dist",
30
30
  "README.md",
31
- "LICENSE",
32
- "banner.js"
31
+ "LICENSE"
33
32
  ],
34
33
  "scripts": {
35
34
  "build": "tsc -p tsconfig.build.json",
36
35
  "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
37
36
  "typecheck": "tsc -p tsconfig.json --noEmit",
38
- "postinstall": "node ./banner.js || exit 0"
37
+ "test": "vitest run",
38
+ "test:watch": "vitest"
39
39
  },
40
40
  "keywords": [
41
41
  "viewport",
42
- "visualViewport",
42
+ "visualviewport",
43
+ "visual viewport",
44
+ "layout viewport",
45
+ "real viewport",
43
46
  "mobile viewport",
44
- "iOS Safari",
45
- "Android Chrome",
47
+ "viewport size",
48
+ "viewport height",
49
+ "keyboard",
50
+ "virtual keyboard",
51
+ "on-screen keyboard",
52
+ "ios safari",
53
+ "android chrome",
54
+ "address bar",
55
+ "url bar",
46
56
  "100vh",
57
+ "vh",
47
58
  "dvh",
48
59
  "svh",
49
60
  "lvh",
50
61
  "safe-area-inset",
51
- "on-screen keyboard",
52
- "virtual keyboard",
62
+ "pwa",
63
+ "webview",
53
64
  "resize",
54
65
  "scroll",
55
- "URL bar",
56
- "address bar",
57
- "layout viewport",
58
- "visual viewport",
59
- "responsive UI",
60
- "modals",
61
- "bottom sheet",
62
- "fullscreen",
63
- "PWA",
64
- "SSR",
65
- "requestAnimationFrame",
66
- "debounce",
67
- "throttling",
68
- "webview",
69
- "Capacitor",
70
- "Cordova",
71
- "React",
72
- "Vue",
73
- "Svelte",
74
- "SolidJS",
75
- "Angular",
76
- "vanilla JS"
66
+ "ssr",
67
+ "store",
68
+ "hook",
69
+ "react",
70
+ "vue",
71
+ "svelte"
77
72
  ],
73
+ "engines": {
74
+ "node": ">=18"
75
+ },
78
76
  "license": "MIT",
79
- "type": "module",
80
77
  "sideEffects": false,
78
+ "type": "module",
79
+ "peerDependencies": {
80
+ "@angular/core": ">=17.0.0",
81
+ "react": ">=18.0.0",
82
+ "solid-js": ">=1.7.0",
83
+ "svelte": ">=4.0.0",
84
+ "vue": ">=3.3.0"
85
+ },
86
+ "peerDependenciesMeta": {
87
+ "react": {
88
+ "optional": true
89
+ },
90
+ "vue": {
91
+ "optional": true
92
+ },
93
+ "svelte": {
94
+ "optional": true
95
+ },
96
+ "solid-js": {
97
+ "optional": true
98
+ },
99
+ "@angular/core": {
100
+ "optional": true
101
+ }
102
+ },
103
+ "devDependencies": {
104
+ "@angular/common": "^17.3.0",
105
+ "@angular/core": "^17.3.0",
106
+ "@types/node": "^22.0.0",
107
+ "@types/react": "^18.3.0",
108
+ "@types/react-dom": "^18.3.0",
109
+ "happy-dom": "^20.5.0",
110
+ "jsdom": "^28.0.0",
111
+ "react": "^18.3.0",
112
+ "react-dom": "^18.3.0",
113
+ "rxjs": "^7.8.0",
114
+ "solid-js": "^1.9.0",
115
+ "svelte": "^4.2.0",
116
+ "typescript": "^5.5.4",
117
+ "vitest": "^4.0.18",
118
+ "vue": "^3.5.0"
119
+ },
120
+ "main": "./dist/index.js",
121
+ "module": "./dist/index.js",
122
+ "types": "./dist/index.d.ts",
81
123
  "exports": {
82
124
  ".": {
83
125
  "types": "./dist/index.d.ts",
126
+ "import": "./dist/index.js",
84
127
  "default": "./dist/index.js"
85
128
  },
86
129
  "./core": {
87
130
  "types": "./dist/core/index.d.ts",
131
+ "import": "./dist/core/index.js",
88
132
  "default": "./dist/core/index.js"
89
133
  },
90
134
  "./react": {
91
135
  "types": "./dist/react.d.ts",
136
+ "import": "./dist/react.js",
92
137
  "default": "./dist/react.js"
93
138
  },
94
139
  "./vue": {
95
140
  "types": "./dist/vue.d.ts",
141
+ "import": "./dist/vue.js",
96
142
  "default": "./dist/vue.js"
97
143
  },
98
144
  "./svelte": {
99
145
  "types": "./dist/svelte.d.ts",
146
+ "import": "./dist/svelte.js",
100
147
  "default": "./dist/svelte.js"
101
148
  },
102
149
  "./solid": {
103
150
  "types": "./dist/solid.d.ts",
151
+ "import": "./dist/solid.js",
104
152
  "default": "./dist/solid.js"
105
153
  },
106
154
  "./angular": {
107
155
  "types": "./dist/angular.d.ts",
156
+ "import": "./dist/angular.js",
108
157
  "default": "./dist/angular.js"
109
158
  },
110
159
  "./vanilla": {
111
160
  "types": "./dist/vanilla.d.ts",
161
+ "import": "./dist/vanilla.js",
112
162
  "default": "./dist/vanilla.js"
113
- }
114
- },
115
- "main": "./dist/index.js",
116
- "types": "./dist/index.d.ts",
117
- "peerDependencies": {
118
- "react": ">=18.0.0",
119
- "vue": ">=3.3.0",
120
- "svelte": ">=4.0.0",
121
- "solid-js": ">=1.7.0",
122
- "@angular/core": ">=17.0.0"
123
- },
124
- "peerDependenciesMeta": {
125
- "react": {
126
- "optional": true
127
- },
128
- "vue": {
129
- "optional": true
130
163
  },
131
- "svelte": {
132
- "optional": true
133
- },
134
- "solid-js": {
135
- "optional": true
136
- },
137
- "@angular/core": {
138
- "optional": true
139
- }
140
- },
141
- "devDependencies": {
142
- "typescript": "^5.5.4",
143
- "@types/node": "^22.0.0",
144
- "react": "^18.3.0",
145
- "react-dom": "^18.3.0",
146
- "@types/react": "^18.3.0",
147
- "@types/react-dom": "^18.3.0",
148
- "vue": "^3.5.0",
149
- "svelte": "^4.2.0",
150
- "solid-js": "^1.9.0",
151
- "@angular/core": "^17.3.0",
152
- "@angular/common": "^17.3.0",
153
- "rxjs": "^7.8.0"
164
+ "./package.json": "./package.json"
154
165
  }
155
166
  }
package/banner.js DELETED
@@ -1,46 +0,0 @@
1
- try {
2
- if (
3
- process.env.CI ||
4
- process.env.ADBLOCK ||
5
- process.env.DISABLE_OPENCOLLECTIVE ||
6
- process.env.npm_config_ignore_scripts === "true" ||
7
- process.env.NODE_ENV === "test"
8
- ) {
9
- process.exit(0);
10
- }
11
-
12
- const loglevel = (process.env.npm_config_loglevel || "").toLowerCase();
13
- if (loglevel === "silent") process.exit(0);
14
-
15
- const reset = "\x1b[0m";
16
- const cyan = "\x1b[36m";
17
- const green = "\x1b[32m";
18
- const yellow = "\x1b[33m";
19
- const dim = "\x1b[2m";
20
- const bold = "\x1b[1m";
21
-
22
- const box = `${cyan}===============================================================${reset}`;
23
-
24
- const msg = `
25
- ${box}
26
- ${green}${bold} Thanks for installing nope-click!${reset} ${green}🚀${reset}
27
- ${box}
28
-
29
- ${yellow}This project is community-supported.${reset}
30
- If it saves you time, please consider supporting development:
31
-
32
- ${green}Boosty (Cards/PayPal):${reset} https://boosty.to/antonvoronezh/donate
33
- ${green}Crypto (Telegram):${reset} https://t.me/AntonVoronezhh/4
34
-
35
- ${dim}Tip: hide install messages with --silent (or npm config set loglevel silent).${reset}
36
- ${dim}Scripts can be disabled with --ignore-scripts (then this won’t run).${reset}
37
- `;
38
-
39
- process.stderr.write(msg);
40
-
41
- process.stderr.write(
42
- `${bold}Support:${reset} https://boosty.to/antonvoronezh/donate | https://t.me/AntonVoronezhh/4\n`
43
- );
44
- } catch (_) {
45
- process.exit(0);
46
- }