@jsenv/navi 0.29.50 → 0.29.52

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.
@@ -94,6 +94,8 @@ are read before the box moves:
94
94
  scrolls sideways inside a page still scrolls sideways.
95
95
  3. **Another travelling box in between.** The innermost one takes the axes it
96
96
  walks, and leaves the ones it does not to whoever is above it.
97
+ 4. **A surface in the top layer in between.** Nothing above it gets the gesture
98
+ at all — see [A surface in the top layer](#a-surface-in-the-top-layer).
97
99
 
98
100
  ### Boxes inside boxes
99
101
 
@@ -115,6 +117,21 @@ last slide does not hand the gesture over mid-drag: it leans on its wall, the wa
115
117
  it does when it is alone. Travelling the box around it means starting the gesture
116
118
  outside it.
117
119
 
120
+ ### A surface in the top layer
121
+
122
+ A popover, a modal `<dialog>`, an element gone fullscreen: it is written inside
123
+ whatever opened it — a slide, a page that travels — and the browser paints it
124
+ over the whole screen. The DOM says "inside", the eye says "on top of", and the
125
+ gesture belongs to what the eye sees: a drag across a full-screen dialog opened
126
+ from a slide is not a drag on the slides, and nothing about it should reach
127
+ them.
128
+
129
+ So every walk up from the pointer stops there. The boxes above the surface get
130
+ no axis, and a scroller above it gets nothing either — it is painted behind the
131
+ surface, and behind is not under the finger. `showModal()` does not do this on
132
+ its own: the rest of the document is made inert, but the press still bubbles out
133
+ of the (not inert) dialog to a listener that sits above it.
134
+
118
135
  ### The browser also wants to answer the gesture
119
136
 
120
137
  A gesture that is already answered — something is being dragged — must not be
package/docs/scroll.md CHANGED
@@ -158,6 +158,11 @@ picked up then. When it is still not the box you mean, say so explicitly with
158
158
  it asks for the row BY NAME, then puts it back by MEASURING it, so it lands
159
159
  where it was even if rows were inserted before it, and whatever the screen it
160
160
  was saved on. That is "reopen a thread where I left it", already provided.
161
+ `offset` is counted from where the row lands on its own — past the scroller's
162
+ `scroll-padding` (the room a fixed bar publishes) and the row's own
163
+ `scroll-margin` (the sticky header, the group label above it) — so `offset: 0`
164
+ is exactly where `scrollIntoView()` would put it and none of that room has to
165
+ be restated as a number.
161
166
  - **`scrolled`** is the controlled form of the same thing — same pair as
162
167
  `open`/`defaultOpen` elsewhere in navi. The list goes back there every time it
163
168
  changes, even after the user scrolled.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/navi",
3
- "version": "0.29.50",
3
+ "version": "0.29.52",
4
4
  "type": "module",
5
5
  "description": "Library of components including navigation to create frontend applications",
6
6
  "repository": {
@@ -29,7 +29,7 @@
29
29
  "prepublishOnly": "npm run build"
30
30
  },
31
31
  "dependencies": {
32
- "@jsenv/dom": "0.17.16",
32
+ "@jsenv/dom": "0.17.17",
33
33
  "@jsenv/humanize": "1.7.8",
34
34
  "@jsenv/validity": "0.4.2"
35
35
  },