@syntrologie/runtime-sdk 2.8.0-canary.177 → 2.8.0-canary.179
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/dist/components/SyntroBottomSheet.d.ts +9 -7
- package/dist/components/SyntroCanvasOverlay.d.ts +2 -0
- package/dist/index.js +27 -11
- package/dist/index.js.map +2 -2
- package/dist/smart-canvas.esm.js +4 -4
- package/dist/smart-canvas.esm.js.map +2 -2
- package/dist/smart-canvas.js +28 -12
- package/dist/smart-canvas.js.map +2 -2
- package/dist/smart-canvas.min.js +4 -4
- package/dist/smart-canvas.min.js.map +2 -2
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -9,18 +9,20 @@
|
|
|
9
9
|
* reached its top.
|
|
10
10
|
*
|
|
11
11
|
* **Geometry:** ``position: fixed; left:0; right:0; bottom:0;
|
|
12
|
-
* height:
|
|
13
|
-
* **top edge** of the sheet at the active snap point. ``height =
|
|
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.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
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** (
|
|
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
|
|
@@ -82,6 +82,8 @@ export declare class SyntroCanvasOverlay extends LitElement {
|
|
|
82
82
|
isMobileMode: boolean;
|
|
83
83
|
private _notifications;
|
|
84
84
|
private _surfaceUnsub;
|
|
85
|
+
private _toggleCooldown;
|
|
86
|
+
private _toggleCooldownTimer;
|
|
85
87
|
/** Prev-state map: entry.id → last evaluated boolean */
|
|
86
88
|
private _notifyPrevState;
|
|
87
89
|
/** Unsubscribe for the EventBus notify-watcher subscription */
|
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(
|
|
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
|
-
// ``
|
|
8009
|
-
//
|
|
8010
|
-
//
|
|
8011
|
-
//
|
|
8012
|
-
//
|
|
8013
|
-
//
|
|
8014
|
-
|
|
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}
|
|
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}
|
|
8054
|
+
maxHeight: `calc(${snapVh}svh - 56px)`
|
|
8053
8055
|
};
|
|
8054
8056
|
return html6`
|
|
8055
8057
|
<div data-syntro-bottom-sheet="root" style=${styleMap6(rootStyles)}>
|
|
@@ -9082,6 +9084,9 @@ var SyntroCanvasOverlay = class extends LitElement7 {
|
|
|
9082
9084
|
// ---- Controllers -------------------------------------------------------
|
|
9083
9085
|
__publicField(this, "_notifications");
|
|
9084
9086
|
__publicField(this, "_surfaceUnsub", null);
|
|
9087
|
+
// ---- Toggle guard -------------------------------------------------------
|
|
9088
|
+
__publicField(this, "_toggleCooldown", false);
|
|
9089
|
+
__publicField(this, "_toggleCooldownTimer", null);
|
|
9085
9090
|
// ---- NotifyWatcher state -----------------------------------------------
|
|
9086
9091
|
/** Prev-state map: entry.id → last evaluated boolean */
|
|
9087
9092
|
__publicField(this, "_notifyPrevState", /* @__PURE__ */ new Map());
|
|
@@ -9108,6 +9113,10 @@ var SyntroCanvasOverlay = class extends LitElement7 {
|
|
|
9108
9113
|
this._stopNotifyWatcher();
|
|
9109
9114
|
(_a3 = this._surfaceUnsub) == null ? void 0 : _a3.call(this);
|
|
9110
9115
|
this._surfaceUnsub = null;
|
|
9116
|
+
if (this._toggleCooldownTimer !== null) {
|
|
9117
|
+
clearTimeout(this._toggleCooldownTimer);
|
|
9118
|
+
this._toggleCooldownTimer = null;
|
|
9119
|
+
}
|
|
9111
9120
|
}
|
|
9112
9121
|
_subscribeSurface() {
|
|
9113
9122
|
var _a3;
|
|
@@ -9221,7 +9230,14 @@ var SyntroCanvasOverlay = class extends LitElement7 {
|
|
|
9221
9230
|
}
|
|
9222
9231
|
_toggle() {
|
|
9223
9232
|
var _a3, _b;
|
|
9233
|
+
if (this._toggleCooldown) return;
|
|
9224
9234
|
const next = !this.isOpen;
|
|
9235
|
+
this.isOpen = next;
|
|
9236
|
+
this._toggleCooldown = true;
|
|
9237
|
+
this._toggleCooldownTimer = setTimeout(() => {
|
|
9238
|
+
this._toggleCooldown = false;
|
|
9239
|
+
this._toggleCooldownTimer = null;
|
|
9240
|
+
}, 300);
|
|
9225
9241
|
if (next) {
|
|
9226
9242
|
(_a3 = this.telemetry) == null ? void 0 : _a3.trackCanvasOpened("overlay");
|
|
9227
9243
|
} else {
|
|
@@ -9531,7 +9547,7 @@ function error(prefix, message, data) {
|
|
|
9531
9547
|
}
|
|
9532
9548
|
|
|
9533
9549
|
// src/version.ts
|
|
9534
|
-
var SDK_VERSION = "2.8.0-canary.
|
|
9550
|
+
var SDK_VERSION = "2.8.0-canary.179";
|
|
9535
9551
|
|
|
9536
9552
|
// src/types.ts
|
|
9537
9553
|
var SDK_SCHEMA_VERSION = "2.0";
|