@syntrologie/runtime-sdk 2.8.0-canary.177 → 2.8.0-canary.178

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.
@@ -9,18 +9,20 @@
9
9
  * reached its top.
10
10
  *
11
11
  * **Geometry:** ``position: fixed; left:0; right:0; bottom:0;
12
- * height: 100vh`` with a vertical ``translateY()`` to position the
13
- * **top edge** of the sheet at the active snap point. ``height = 100vh``
12
+ * height: 100svh`` with a vertical ``translateY()`` to position the
13
+ * **top edge** of the sheet at the active snap point. ``height = 100svh``
14
14
  * keeps the sheet's bottom anchored even when the snap point moves —
15
- * the content area below the handle just expands. Inner padding uses
16
- * ``env(safe-area-inset-bottom)`` so the iPhone home indicator doesn't
17
- * eat the last row of tiles.
15
+ * the content area below the handle just expands. ``svh`` (small
16
+ * viewport height) is used instead of ``dvh`` so the sheet doesn't
17
+ * jump when the mobile browser chrome (URL bar) appears or hides.
18
+ * Inner padding uses ``env(safe-area-inset-bottom)`` so the iPhone
19
+ * home indicator doesn't eat the last row of tiles.
18
20
  *
19
- * **Snap points** (vh percentages, peek default 30, mid 70, full 95)
21
+ * **Snap points** (svh percentages, peek default 30, mid 70, full 95)
20
22
  * are configurable via ``theme.canvas.snapPoints``. ``peek`` is the
21
23
  * lowest position the sheet rests at — dragging below peek with a
22
24
  * downward velocity dispatches ``canvas-toggle`` (close) rather than
23
- * snapping back. The translateY is computed as ``(100 - snapVh)%``.
25
+ * snapping back. The translateY is computed as ``(100 - snapVh)svh``.
24
26
  *
25
27
  * **Drag handle** is a 44px-tall touch target across the top, matching
26
28
  * Apple's recommended minimum for finger taps. ``pointerdown`` here
package/dist/index.js CHANGED
@@ -7833,7 +7833,7 @@ var SyntroBottomSheet = class extends LitElement6 {
7833
7833
  const targetTransform = container.style.transform;
7834
7834
  const targetTransition = container.style.transition;
7835
7835
  container.style.transition = "none";
7836
- container.style.transform = "translateY(100vh)";
7836
+ container.style.transform = "translateY(100svh)";
7837
7837
  this._entryRafId = requestAnimationFrame(() => {
7838
7838
  container.style.transition = targetTransition;
7839
7839
  container.style.transform = targetTransform;
@@ -8005,15 +8005,17 @@ var SyntroBottomSheet = class extends LitElement6 {
8005
8005
  left: "0",
8006
8006
  right: "0",
8007
8007
  bottom: "0",
8008
- // ``100dvh`` (dynamic viewport height) shrinks when the iOS soft
8009
- // keyboard appears, so a tile with a text input doesn't end up
8010
- // covered by the keyboard. ``100vh`` would be measured against the
8011
- // pre-keyboard viewport and lose the bottom of the sheet behind
8012
- // the keyboard. Browser support: Safari 15.4+, Chrome 108+,
8013
- // Firefox 101+ universal in 2026.
8014
- height: "100dvh",
8008
+ // ``100svh`` (small viewport height) is the viewport with the
8009
+ // mobile browser chrome (URL bar) visible. Using ``svh`` instead
8010
+ // of ``dvh`` prevents the sheet from jumping when Chrome/Safari
8011
+ // shows or hides the URL bar the sheet is always sized for the
8012
+ // smallest viewport. When the URL bar hides, a small gap appears
8013
+ // at the bottom rather than a jarring position shift. Browser
8014
+ // support: Safari 15.4+, Chrome 108+, Firefox 101+ — universal
8015
+ // in 2026.
8016
+ height: "100svh",
8015
8017
  pointerEvents: "auto",
8016
- transform: `translateY(${topEdgeVh}vh)`,
8018
+ transform: `translateY(${topEdgeVh}svh)`,
8017
8019
  transition: this.isDragging ? "none" : `transform ${dur} ${ease}, opacity ${dur} ease-out`,
8018
8020
  display: "flex",
8019
8021
  flexDirection: "column",
@@ -8049,7 +8051,7 @@ var SyntroBottomSheet = class extends LitElement6 {
8049
8051
  overflowY: "auto",
8050
8052
  padding: "0 1rem 1rem",
8051
8053
  touchAction: "pan-y",
8052
- maxHeight: `calc(${snapVh}dvh - 56px)`
8054
+ maxHeight: `calc(${snapVh}svh - 56px)`
8053
8055
  };
8054
8056
  return html6`
8055
8057
  <div data-syntro-bottom-sheet="root" style=${styleMap6(rootStyles)}>
@@ -9531,7 +9533,7 @@ function error(prefix, message, data) {
9531
9533
  }
9532
9534
 
9533
9535
  // src/version.ts
9534
- var SDK_VERSION = "2.8.0-canary.177";
9536
+ var SDK_VERSION = "2.8.0-canary.178";
9535
9537
 
9536
9538
  // src/types.ts
9537
9539
  var SDK_SCHEMA_VERSION = "2.0";