codex-webstrapper 0.9.5 → 0.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/bridge-shim.js +48 -12
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-webstrapper",
3
- "version": "0.9.5",
3
+ "version": "0.9.9",
4
4
  "type": "module",
5
5
  "description": "Web wrapper for Codex desktop assets with bridge + token auth",
6
6
  "license": "MIT",
@@ -333,16 +333,17 @@
333
333
  /* ==== Tablet & small screen fixes (max-width: 768px) ==== */
334
334
  @media (max-width: 768px) {
335
335
 
336
- /* Viewport stabilization */
337
- html, body {
336
+ /* Viewport stabilization — only on body, NOT html.
337
+ Setting overflow-x:hidden on <html> breaks iOS momentum scrolling
338
+ for nested scroll containers. */
339
+ body {
338
340
  overflow-x: hidden !important;
339
341
  -webkit-text-size-adjust: 100% !important;
340
342
  }
341
343
 
342
- /* Header overflow fix */
344
+ /* Header constrain to viewport */
343
345
  .h-toolbar {
344
346
  max-width: 100vw !important;
345
- overflow: hidden !important;
346
347
  }
347
348
 
348
349
  .h-toolbar button {
@@ -353,19 +354,31 @@
353
354
  white-space: nowrap !important;
354
355
  }
355
356
 
357
+ /* Ensure scroll containers work on iOS.
358
+ -webkit-overflow-scrolling:touch enables momentum scrolling.
359
+ touch-action:pan-y ensures vertical swipes are treated as scrolls. */
360
+ .vertical-scroll-fade-mask-top,
361
+ .vertical-scroll-fade-mask,
362
+ [class*="overflow-y-auto"],
363
+ [class*="overflow-auto"] {
364
+ -webkit-overflow-scrolling: touch !important;
365
+ touch-action: pan-y !important;
366
+ }
367
+
356
368
  /* Prevent iOS auto-zoom on focus (triggers when font-size < 16px) */
357
- input, textarea, select, [contenteditable="true"] {
369
+ input, textarea, select {
358
370
  font-size: 16px !important;
359
371
  max-width: 100% !important;
360
372
  box-sizing: border-box !important;
361
373
  }
362
374
 
363
- /* Disable double-tap zoom */
364
- * {
365
- touch-action: manipulation;
375
+ [contenteditable="true"] {
376
+ max-width: 100% !important;
377
+ box-sizing: border-box !important;
366
378
  }
367
379
 
368
380
  [contenteditable="true"]:focus {
381
+ font-size: 16px !important;
369
382
  scroll-margin-bottom: 20px;
370
383
  }
371
384
 
@@ -424,7 +437,10 @@
424
437
  --spacing-token-sidebar: 0px !important;
425
438
  }
426
439
 
427
- /* Sidebar becomes full-screen overlay when open */
440
+ /* Sidebar becomes full-screen overlay when open.
441
+ When collapsed the app sets opacity-0 but the element still covers
442
+ the screen (translate is 0 because we zeroed the token). We must
443
+ disable pointer events so it doesn't block taps on main content. */
428
444
  .window-fx-sidebar-surface,
429
445
  .w-token-sidebar {
430
446
  width: 85vw !important;
@@ -432,6 +448,15 @@
432
448
  z-index: 50 !important;
433
449
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.5) !important;
434
450
  background-color: rgb(24, 24, 24) !important;
451
+ pointer-events: none !important;
452
+ transition: opacity 0.3s ease, pointer-events 0s linear 0.3s !important;
453
+ }
454
+
455
+ /* Re-enable pointer events only when sidebar is visible (open) */
456
+ .window-fx-sidebar-surface.opacity-100,
457
+ .w-token-sidebar.opacity-100 {
458
+ pointer-events: auto !important;
459
+ transition: opacity 0.3s ease, pointer-events 0s linear 0s !important;
435
460
  }
436
461
 
437
462
  /* Main content takes full width */
@@ -441,12 +466,23 @@
441
466
  width: 100vw !important;
442
467
  }
443
468
 
444
- /* Header left section collapse to fit phone */
469
+ /* Prevent header-left from consuming more than half the bar.
470
+ The app sets an inline min-width via CSS vars that over-allocates
471
+ space for the portal area — override it so buttons fit. */
445
472
  .app-header-left {
446
473
  width: auto !important;
474
+ min-width: 0 !important;
447
475
  max-width: 50vw !important;
448
- flex-shrink: 1 !important;
449
- padding-left: 8px !important;
476
+ flex-shrink: 0 !important;
477
+ padding-left: 4px !important;
478
+ padding-right: 0 !important;
479
+ overflow: hidden !important;
480
+ }
481
+
482
+ /* Collapse the empty portal gap when sidebar is hidden */
483
+ .app-header-left-portal {
484
+ gap: 0 !important;
485
+ padding-right: 2px !important;
450
486
  }
451
487
 
452
488
  /* Use stable viewport height */