ugly-app 0.1.581 → 0.1.582

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.
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.581";
1
+ export declare const CLI_VERSION = "0.1.582";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.581";
2
+ export const CLI_VERSION = "0.1.582";
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardProvider.d.ts","sourceRoot":"","sources":["../../../src/client/components/KeyboardProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AAGf,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,yEAAyE;IACzE,QAAQ,EAAE,YAAY,CAAC;CACxB;AAUD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,QAAO,cAEpC,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,OAEpC,CAAC;AA4CF,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,+BA4btE;AAID,wBAAgB,cAAc,CAAC,EAAE,cAAc,EAAE,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,+BAM9E"}
1
+ {"version":3,"file":"KeyboardProvider.d.ts","sourceRoot":"","sources":["../../../src/client/components/KeyboardProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AAGf,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,yEAAyE;IACzE,QAAQ,EAAE,YAAY,CAAC;CACxB;AAUD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,QAAO,cAEpC,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,OAEpC,CAAC;AA4CF,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,+BAyZtE;AAID,wBAAgB,cAAc,CAAC,EAAE,cAAc,EAAE,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,+BAM9E"}
@@ -157,57 +157,28 @@ export function KeyboardProvider({ children }) {
157
157
  const body = new MutationObserver(() => {
158
158
  update();
159
159
  });
160
- const onVisualViewportResize = () => {
161
- update();
162
- // Detect keyboard from visualViewport when no native keyboard height events.
163
- // This is needed on Android (browser, PWA, and native WebView) where
164
- // update() may return early and no native keyboard-height event is sent.
165
- // Skip when the VirtualKeyboard API owns the height (else the two fight).
166
- if (!hasNativeOverrideRef.current &&
167
- !hasVirtualKeyboardAPI() &&
168
- window.visualViewport) {
169
- const diff = window.innerHeight - window.visualViewport.height;
170
- // Subtract the CSS safe area bottom to avoid double-counting
171
- // (the page layout already adds safe area padding)
172
- const cssBottom = parseInt(window
173
- .getComputedStyle(document.documentElement)
174
- .getPropertyValue('--safe-area-inset-bottom') || '0');
175
- const newHeight = diff > 100 ? Math.max(0, Math.round(diff) - cssBottom) : 0;
176
- console.debug('[KeyboardProvider] visualViewport resize', {
177
- innerHeight: window.innerHeight,
178
- viewportHeight: window.visualViewport.height,
179
- diff,
180
- cssBottom,
181
- newHeight,
182
- currentKeyboardHeight: keyboardHeightRef.current,
183
- hasNativeOverride: hasNativeOverrideRef.current,
184
- });
185
- if (newHeight !== keyboardHeightRef.current) {
186
- setKeyboardHeight(newHeight);
187
- }
188
- }
189
- // Corrective for the VirtualKeyboard path: the native→web geometrychange
190
- // can be dropped/reordered on rapid open/close (the JS bridge is async),
191
- // leaving keyboardHeight out of sync with reality. The visual viewport is
192
- // authoritative for the ACTUAL keyboard occlusion, so use it to correct a
193
- // stuck value in EITHER direction. It only acts when the two clearly
194
- // DISAGREE (VK at 0 vs occluded, or VK > 0 vs restored), so it never
195
- // fights the VK API while they agree on the precise height.
196
- if (hasVirtualKeyboardAPI() && window.visualViewport) {
197
- const diff = window.innerHeight - window.visualViewport.height;
198
- if (keyboardHeightRef.current > 0 && diff < 100) {
199
- // VK missed the hide — keyboard is gone but we still think it's up.
200
- setKeyboardHeight(0);
201
- update();
202
- }
203
- else if (keyboardHeightRef.current === 0 && diff > 100) {
204
- // VK missed the show — keyboard is covering content but we think it's
205
- // down. Adopt the raw occlusion as the height (it equals the keyboard).
206
- setKeyboardHeight(Math.round(diff));
207
- update();
208
- }
160
+ // Derive the keyboard height from the ACTUAL visual-viewport occlusion — the
161
+ // single source of truth. Native VirtualKeyboard `geometrychange` events
162
+ // (which the async JS bridge can drop or REORDER) only trigger a re-sync;
163
+ // their reported value is ignored. So a stale "shown" event arriving after
164
+ // the keyboard already hid computes occlusion=0 from the now-full viewport
165
+ // and is correctly ignored no more stuck-open safe area. (Android native,
166
+ // which sends explicit insets, keeps its own path via hasNativeOverride.)
167
+ const syncKeyboardFromViewport = () => {
168
+ const vv = window.visualViewport;
169
+ if (!vv || hasNativeOverrideRef.current)
170
+ return;
171
+ const occlusion = Math.max(0, Math.round(window.innerHeight - vv.height));
172
+ const kbHeight = occlusion > 100 ? occlusion : 0;
173
+ if (kbHeight !== keyboardHeightRef.current) {
174
+ setKeyboardHeight(kbHeight);
175
+ update();
209
176
  }
210
177
  };
178
+ const onVisualViewportResize = () => {
179
+ update(); // env / orientation changes
180
+ syncKeyboardFromViewport(); // keyboard occlusion
181
+ };
211
182
  if (window.visualViewport)
212
183
  window.visualViewport.addEventListener('resize', onVisualViewportResize);
213
184
  window.addEventListener('orientationchange', update);
@@ -286,29 +257,28 @@ export function KeyboardProvider({ children }) {
286
257
  const nav = navigator;
287
258
  if (nav.virtualKeyboard) {
288
259
  const onVKGeometryChange = (e) => {
289
- const kbHeight = e.target.boundingRect.height;
260
+ const reported = e.target.boundingRect.height;
290
261
  console.debug('[KeyboardProvider] VirtualKeyboard geometrychange', {
291
- height: kbHeight,
262
+ height: reported,
292
263
  });
293
- if (kbHeight !== keyboardHeightRef.current) {
294
- setKeyboardHeight(kbHeight);
295
- if (hasNativeOverrideRef.current) {
296
- // Native override active → update() returns early, so recompute the
297
- // bottom directly against the native inset (Android path).
264
+ if (hasNativeOverrideRef.current) {
265
+ // Android native (when it polyfills VK): trust the reported value and
266
+ // fold it against the native inset.
267
+ if (reported !== keyboardHeightRef.current) {
268
+ setKeyboardHeight(reported);
298
269
  setSafeArea((prev) => {
299
- const newBottom = Math.max(nativeSafeAreaRef.current.bottom, kbHeight);
270
+ const newBottom = Math.max(nativeSafeAreaRef.current.bottom, reported);
300
271
  if (prev.bottom !== newBottom)
301
272
  return { ...prev, bottom: newBottom };
302
273
  return prev;
303
274
  });
304
275
  }
305
- else {
306
- // iOS / WKWebView: getOffsets() takes the env-based device inset as
307
- // the floor and folds in keyboardHeightRef. Going through update()
308
- // (instead of max(nativeSafeArea.bottom, …), which is 0 on iOS)
309
- // preserves the home-indicator inset when the keyboard closes.
310
- update();
311
- }
276
+ }
277
+ else {
278
+ // iOS / WKWebView: the reported height can arrive stale or reordered
279
+ // (a late "shown" after a hide leaves the bar stuck up). Ignore the
280
+ // value re-sync from the authoritative visual-viewport occlusion.
281
+ syncKeyboardFromViewport();
312
282
  }
313
283
  };
314
284
  nav.virtualKeyboard.addEventListener('geometrychange', onVKGeometryChange);
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardProvider.js","sourceRoot":"","sources":["../../../src/client/components/KeyboardProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyboardProvider.js","sourceRoot":"","sources":["../../../src/client/components/KeyboardProvider.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.581",
3
+ "version": "0.1.582",
4
4
  "type": "module",
5
5
  "main": "./dist/server/index.js",
6
6
  "exports": {
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.581";
2
+ export const CLI_VERSION = "0.1.582";
@@ -244,61 +244,27 @@ export function KeyboardProvider({ children }: { children?: ReactNode }) {
244
244
  update();
245
245
  });
246
246
 
247
- const onVisualViewportResize = () => {
248
- update();
249
- // Detect keyboard from visualViewport when no native keyboard height events.
250
- // This is needed on Android (browser, PWA, and native WebView) where
251
- // update() may return early and no native keyboard-height event is sent.
252
- // Skip when the VirtualKeyboard API owns the height (else the two fight).
253
- if (
254
- !hasNativeOverrideRef.current &&
255
- !hasVirtualKeyboardAPI() &&
256
- window.visualViewport
257
- ) {
258
- const diff = window.innerHeight - window.visualViewport.height;
259
- // Subtract the CSS safe area bottom to avoid double-counting
260
- // (the page layout already adds safe area padding)
261
- const cssBottom = parseInt(
262
- window
263
- .getComputedStyle(document.documentElement)
264
- .getPropertyValue('--safe-area-inset-bottom') || '0',
265
- );
266
- const newHeight =
267
- diff > 100 ? Math.max(0, Math.round(diff) - cssBottom) : 0;
268
- console.debug('[KeyboardProvider] visualViewport resize', {
269
- innerHeight: window.innerHeight,
270
- viewportHeight: window.visualViewport.height,
271
- diff,
272
- cssBottom,
273
- newHeight,
274
- currentKeyboardHeight: keyboardHeightRef.current,
275
- hasNativeOverride: hasNativeOverrideRef.current,
276
- });
277
- if (newHeight !== keyboardHeightRef.current) {
278
- setKeyboardHeight(newHeight);
279
- }
247
+ // Derive the keyboard height from the ACTUAL visual-viewport occlusion — the
248
+ // single source of truth. Native VirtualKeyboard `geometrychange` events
249
+ // (which the async JS bridge can drop or REORDER) only trigger a re-sync;
250
+ // their reported value is ignored. So a stale "shown" event arriving after
251
+ // the keyboard already hid computes occlusion=0 from the now-full viewport
252
+ // and is correctly ignored no more stuck-open safe area. (Android native,
253
+ // which sends explicit insets, keeps its own path via hasNativeOverride.)
254
+ const syncKeyboardFromViewport = () => {
255
+ const vv = window.visualViewport;
256
+ if (!vv || hasNativeOverrideRef.current) return;
257
+ const occlusion = Math.max(0, Math.round(window.innerHeight - vv.height));
258
+ const kbHeight = occlusion > 100 ? occlusion : 0;
259
+ if (kbHeight !== keyboardHeightRef.current) {
260
+ setKeyboardHeight(kbHeight);
261
+ update();
280
262
  }
263
+ };
281
264
 
282
- // Corrective for the VirtualKeyboard path: the native→web geometrychange
283
- // can be dropped/reordered on rapid open/close (the JS bridge is async),
284
- // leaving keyboardHeight out of sync with reality. The visual viewport is
285
- // authoritative for the ACTUAL keyboard occlusion, so use it to correct a
286
- // stuck value in EITHER direction. It only acts when the two clearly
287
- // DISAGREE (VK at 0 vs occluded, or VK > 0 vs restored), so it never
288
- // fights the VK API while they agree on the precise height.
289
- if (hasVirtualKeyboardAPI() && window.visualViewport) {
290
- const diff = window.innerHeight - window.visualViewport.height;
291
- if (keyboardHeightRef.current > 0 && diff < 100) {
292
- // VK missed the hide — keyboard is gone but we still think it's up.
293
- setKeyboardHeight(0);
294
- update();
295
- } else if (keyboardHeightRef.current === 0 && diff > 100) {
296
- // VK missed the show — keyboard is covering content but we think it's
297
- // down. Adopt the raw occlusion as the height (it equals the keyboard).
298
- setKeyboardHeight(Math.round(diff));
299
- update();
300
- }
301
- }
265
+ const onVisualViewportResize = () => {
266
+ update(); // env / orientation changes
267
+ syncKeyboardFromViewport(); // keyboard occlusion
302
268
  };
303
269
 
304
270
  if (window.visualViewport)
@@ -402,31 +368,30 @@ export function KeyboardProvider({ children }: { children?: ReactNode }) {
402
368
  const onVKGeometryChange = (e: {
403
369
  target: { boundingRect: { height: number } };
404
370
  }) => {
405
- const kbHeight = e.target.boundingRect.height;
371
+ const reported = e.target.boundingRect.height;
406
372
  console.debug('[KeyboardProvider] VirtualKeyboard geometrychange', {
407
- height: kbHeight,
373
+ height: reported,
408
374
  });
409
- if (kbHeight !== keyboardHeightRef.current) {
410
- setKeyboardHeight(kbHeight);
411
- if (hasNativeOverrideRef.current) {
412
- // Native override active → update() returns early, so recompute the
413
- // bottom directly against the native inset (Android path).
375
+ if (hasNativeOverrideRef.current) {
376
+ // Android native (when it polyfills VK): trust the reported value and
377
+ // fold it against the native inset.
378
+ if (reported !== keyboardHeightRef.current) {
379
+ setKeyboardHeight(reported);
414
380
  setSafeArea((prev) => {
415
381
  const newBottom = Math.max(
416
382
  nativeSafeAreaRef.current.bottom,
417
- kbHeight,
383
+ reported,
418
384
  );
419
385
  if (prev.bottom !== newBottom)
420
386
  return { ...prev, bottom: newBottom };
421
387
  return prev;
422
388
  });
423
- } else {
424
- // iOS / WKWebView: getOffsets() takes the env-based device inset as
425
- // the floor and folds in keyboardHeightRef. Going through update()
426
- // (instead of max(nativeSafeArea.bottom, …), which is 0 on iOS)
427
- // preserves the home-indicator inset when the keyboard closes.
428
- update();
429
389
  }
390
+ } else {
391
+ // iOS / WKWebView: the reported height can arrive stale or reordered
392
+ // (a late "shown" after a hide leaves the bar stuck up). Ignore the
393
+ // value — re-sync from the authoritative visual-viewport occlusion.
394
+ syncKeyboardFromViewport();
430
395
  }
431
396
  };
432
397
  nav.virtualKeyboard.addEventListener(