@klodd/ds 3.14.0 → 3.14.2

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.
@@ -433,10 +433,8 @@
433
433
  ==== PWA / SAFE AREA
434
434
  env(safe-area-inset-*) anvands for iOS-notch/home-indicator.
435
435
  Touch-min 44px ar Apples HIG-rekommendation.
436
- --viewport-height defaultar till 100vh, overrideas av JS
437
- (pwa-register.js syncViewport) via visualViewport.height -
438
- fungerar som iOS-cold-start-fix (lasningen tvingar WebKit
439
- att stabilisera viewport-geometri).
436
+ --viewport-height defaultar till 100vh - reserverat for framtida
437
+ JS-driven viewport-hojd-konsument (ofarlig om oanvand).
440
438
  ================================================================ */
441
439
  :root {
442
440
  --safe-top: env(safe-area-inset-top, 0px);
@@ -62,23 +62,28 @@
62
62
  }
63
63
 
64
64
  /*------------------------------------------------------------
65
- Viewport-sync (iOS PWA cold-start fix)
65
+ Safe-area cold-start-fix (iOS PWA + Safari)
66
66
  iOS Safari beraknar env(safe-area-inset-bottom) felaktigt vid
67
- forsta render i PWA-standalone. Att tidigt lasa
68
- visualViewport.height + skriva till en CSS-custom-property
69
- tvingar WebKit att stabilisera sin viewport-geometri innan
70
- layout-pass kor klart.
67
+ forsta render - .bottom-nav landar pa fel position. Att appenda
68
+ ett fixed-positionerat probe-element och lasa dess
69
+ boundingClientRect tvingar WebKit att resolva env-varden i
70
+ layout-passet, vilket retroaktivt korrigerar pillen-positionen.
71
71
 
72
- --viewport-height-tokenet ar tillagg for framtida konsumenter
73
- som behover en JS-driven viewport-hojd. Defaulter till 100vh
74
- i 00-primitives.css.
72
+ Probe + remove ar mer palitlig an att lasa computed style pa
73
+ .bottom-nav direkt - en frasch fixed-element pa varje event
74
+ tvingar layout regardless av cache-state.
75
+
76
+ Trippel-event-binding tacker alla cold-start-cases:
77
+ - DOMContentLoaded: tidigt efter document parsing
78
+ - load: efter att alla resurser (font, splash, etc.) laddats
79
+ - pageshow: iOS bfcache-restore (back/forward, switch tabs)
75
80
  ------------------------------------------------------------*/
76
- function syncViewport() {
77
- if (!root.visualViewport) return;
78
- doc.documentElement.style.setProperty(
79
- '--viewport-height',
80
- root.visualViewport.height + 'px'
81
- );
81
+ function forceSafeAreaOnNav() {
82
+ const probe = doc.createElement('div');
83
+ probe.style.cssText = 'position:fixed;bottom:0;left:0;width:1px;height:1px;opacity:0;pointer-events:none;';
84
+ doc.body.appendChild(probe);
85
+ void probe.getBoundingClientRect();
86
+ probe.remove();
82
87
  }
83
88
 
84
89
  /*------------------------------------------------------------
@@ -92,8 +97,7 @@
92
97
 
93
98
  registerSW(cfg);
94
99
 
95
- if (root.visualViewport) {
96
- root.visualViewport.addEventListener('resize', syncViewport);
97
- }
98
- syncViewport();
100
+ doc.addEventListener('DOMContentLoaded', forceSafeAreaOnNav);
101
+ root.addEventListener('load', forceSafeAreaOnNav);
102
+ root.addEventListener('pageshow', forceSafeAreaOnNav);
99
103
  })(typeof window !== 'undefined' ? window : globalThis, document);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@klodd/ds",
3
- "version": "3.14.0",
3
+ "version": "3.14.2",
4
4
  "description": "Klodd shared design system - tokens, components, JS",
5
5
  "main": "css/index.css",
6
6
  "bin": {