@jsenv/navi 0.29.77 → 0.29.78
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/jsenv_navi.js +44 -0
- package/dist/jsenv_navi.js.map +5 -2
- package/package.json +1 -1
package/dist/jsenv_navi.js
CHANGED
|
@@ -57395,6 +57395,28 @@ const css$w = /* css */`
|
|
|
57395
57395
|
the corners would visually overflow the rounded corners during scroll. */
|
|
57396
57396
|
overflow: hidden;
|
|
57397
57397
|
|
|
57398
|
+
/* overflow="visible" asks for the exact opposite of the clipping above: the
|
|
57399
|
+
content must be free to paint outside the list's box and to overflow into
|
|
57400
|
+
whatever scroll container is around it. Setting it on the inner scroll
|
|
57401
|
+
element alone changes nothing visible — this frame would clip it right
|
|
57402
|
+
back — so the frame has to let go of it too, and with it of the rounded
|
|
57403
|
+
corners it was clipping to. The two cannot both be true.
|
|
57404
|
+
An axis asked to be visible pairs with "clip" on the other one rather
|
|
57405
|
+
than "hidden": mixing visible with a scrollport value makes the browser
|
|
57406
|
+
compute the visible one to "auto" (a scrollport again), while
|
|
57407
|
+
visible/clip is the one pairing it keeps as written. */
|
|
57408
|
+
&[data-overflow-visible="both"] {
|
|
57409
|
+
overflow: visible;
|
|
57410
|
+
}
|
|
57411
|
+
&[data-overflow-visible="x"] {
|
|
57412
|
+
overflow-x: visible;
|
|
57413
|
+
overflow-y: clip;
|
|
57414
|
+
}
|
|
57415
|
+
&[data-overflow-visible="y"] {
|
|
57416
|
+
overflow-x: clip;
|
|
57417
|
+
overflow-y: visible;
|
|
57418
|
+
}
|
|
57419
|
+
|
|
57398
57420
|
.navi_list_scroll_container {
|
|
57399
57421
|
/* The ask stops here: this element is inside the list's frame, so a row
|
|
57400
57422
|
or a control it holds is not at the surface's corner. */
|
|
@@ -58135,6 +58157,7 @@ const ListUI = props => {
|
|
|
58135
58157
|
popover: popover,
|
|
58136
58158
|
"data-horizontal": horizontal ? "" : undefined,
|
|
58137
58159
|
"data-scroller": getScrollerAttribute(scroller),
|
|
58160
|
+
"data-overflow-visible": getOverflowVisibleAttribute(overflow, overflowX, overflowY),
|
|
58138
58161
|
"navi-hover-while-scrolling": hoverWhileScrolling ? "" : undefined,
|
|
58139
58162
|
"data-expand-x": expandX || expand ? "" : undefined,
|
|
58140
58163
|
"data-expand-y": expandY || expand ? "" : undefined,
|
|
@@ -59413,6 +59436,27 @@ const getScrollerAttribute = scroller => {
|
|
|
59413
59436
|
return "parent";
|
|
59414
59437
|
};
|
|
59415
59438
|
|
|
59439
|
+
// overflow lands as an inline style on the inner scroll element, which is
|
|
59440
|
+
// enough for every value but "visible": that one only means anything once the
|
|
59441
|
+
// frame around it stops clipping too. Reading the per-axis props over the
|
|
59442
|
+
// shorthand mirrors how CSS itself resolves them.
|
|
59443
|
+
const getOverflowVisibleAttribute = (overflow, overflowX, overflowY) => {
|
|
59444
|
+
const x = overflowX === undefined ? overflow : overflowX;
|
|
59445
|
+
const y = overflowY === undefined ? overflow : overflowY;
|
|
59446
|
+
const xVisible = x === "visible";
|
|
59447
|
+
const yVisible = y === "visible";
|
|
59448
|
+
if (xVisible && yVisible) {
|
|
59449
|
+
return "both";
|
|
59450
|
+
}
|
|
59451
|
+
if (xVisible) {
|
|
59452
|
+
return "x";
|
|
59453
|
+
}
|
|
59454
|
+
if (yVisible) {
|
|
59455
|
+
return "y";
|
|
59456
|
+
}
|
|
59457
|
+
return undefined;
|
|
59458
|
+
};
|
|
59459
|
+
|
|
59416
59460
|
// scroller="parent": the list virtualizes against the scroll box it lives in
|
|
59417
59461
|
// instead of one of its own. Which box that is can only be measured, and a
|
|
59418
59462
|
// measurement holds for the geometry it was taken on — see resolveScroller in
|