@jsenv/dom 0.17.91 → 0.17.93
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_dom.js +213 -55
- package/package.json +1 -1
package/dist/jsenv_dom.js
CHANGED
|
@@ -5267,6 +5267,9 @@ const findFocusable = (element, { exclude } = {}) => {
|
|
|
5267
5267
|
// `visible` is the other non-scrolling value, and the only one on which the
|
|
5268
5268
|
// content still reaches the ancestors.
|
|
5269
5269
|
const isScrollable = (element, { includeHidden } = {}) => {
|
|
5270
|
+
if (overflowGoesToViewport(element)) {
|
|
5271
|
+
return false;
|
|
5272
|
+
}
|
|
5270
5273
|
if (canHaveVerticalScroll(element, { includeHidden })) {
|
|
5271
5274
|
return true;
|
|
5272
5275
|
}
|
|
@@ -5286,6 +5289,9 @@ const canScroll = (element, axis) => {
|
|
|
5286
5289
|
if (!element || element.nodeType !== 1) {
|
|
5287
5290
|
return false;
|
|
5288
5291
|
}
|
|
5292
|
+
if (overflowGoesToViewport(element)) {
|
|
5293
|
+
return false;
|
|
5294
|
+
}
|
|
5289
5295
|
const style = getComputedStyle(element);
|
|
5290
5296
|
const overflow = axis === "x" ? style.overflowX : style.overflowY;
|
|
5291
5297
|
if (overflow !== "auto" && overflow !== "scroll") {
|
|
@@ -5298,6 +5304,23 @@ const canScroll = (element, axis) => {
|
|
|
5298
5304
|
return scrollSize - clientSize > 1;
|
|
5299
5305
|
};
|
|
5300
5306
|
|
|
5307
|
+
/**
|
|
5308
|
+
* Whether `element` is a <body> whose overflow belongs to the viewport: when
|
|
5309
|
+
* the root leaves its own overflow visible, the body's values are the
|
|
5310
|
+
* viewport's (CSS overflow propagation), and body itself neither scrolls nor
|
|
5311
|
+
* clips, whatever its computed overflow reads — `body { overflow-x: hidden }`
|
|
5312
|
+
* computes overflow-y to auto there. The viewport scrolls, through the
|
|
5313
|
+
* scrolling element.
|
|
5314
|
+
*/
|
|
5315
|
+
const overflowGoesToViewport = (element) => {
|
|
5316
|
+
const { ownerDocument } = element;
|
|
5317
|
+
if (element !== ownerDocument.body) {
|
|
5318
|
+
return false;
|
|
5319
|
+
}
|
|
5320
|
+
const rootStyle = getComputedStyle(ownerDocument.documentElement);
|
|
5321
|
+
return rootStyle.overflowX === "visible" && rootStyle.overflowY === "visible";
|
|
5322
|
+
};
|
|
5323
|
+
|
|
5301
5324
|
const canHaveVerticalScroll = (element, { includeHidden }) => {
|
|
5302
5325
|
const verticalOverflow = getStyle(element, "overflow-y");
|
|
5303
5326
|
if (verticalOverflow === "visible") {
|
|
@@ -12468,17 +12491,9 @@ const roundForConstraints = (value) => {
|
|
|
12468
12491
|
*
|
|
12469
12492
|
* @param {Object} gestureInfo - Gesture information
|
|
12470
12493
|
* @param {Element[]} targetElements - Array of potential drop target elements
|
|
12471
|
-
* @param {object} [options]
|
|
12472
|
-
* @param {boolean} [options.fallbackToEdge=false] - When true and the drag element does
|
|
12473
|
-
* not intersect any target, falls back to the first item (if above all items) or the
|
|
12474
|
-
* last item (if below all items) so there is always a valid drop target at list edges.
|
|
12475
12494
|
* @returns {Object|null} Drop target info with elementSide or null if no valid target found
|
|
12476
12495
|
*/
|
|
12477
|
-
const getDropTargetInfo = (
|
|
12478
|
-
gestureInfo,
|
|
12479
|
-
targetElements,
|
|
12480
|
-
{ fallbackToEdge = false } = {},
|
|
12481
|
-
) => {
|
|
12496
|
+
const getDropTargetInfo = (gestureInfo, targetElements) => {
|
|
12482
12497
|
const dragElement = gestureInfo.elementImpacted || gestureInfo.element;
|
|
12483
12498
|
const dragElementRect = dragElement.getBoundingClientRect();
|
|
12484
12499
|
const intersectingTargets = [];
|
|
@@ -12499,38 +12514,6 @@ const getDropTargetInfo = (
|
|
|
12499
12514
|
}
|
|
12500
12515
|
|
|
12501
12516
|
if (intersectingTargets.length === 0) {
|
|
12502
|
-
if (fallbackToEdge) {
|
|
12503
|
-
const dragElement = gestureInfo.elementImpacted || gestureInfo.element;
|
|
12504
|
-
const dragElementRect = dragElement.getBoundingClientRect();
|
|
12505
|
-
const firstItem = targetElements[0];
|
|
12506
|
-
const lastItem = targetElements[targetElements.length - 1];
|
|
12507
|
-
if (
|
|
12508
|
-
firstItem &&
|
|
12509
|
-
dragElementRect.bottom < firstItem.getBoundingClientRect().top
|
|
12510
|
-
) {
|
|
12511
|
-
// Drag element is above all items → treat as hovering the first item from the top.
|
|
12512
|
-
return {
|
|
12513
|
-
element: firstItem,
|
|
12514
|
-
elementSide: { x: "start", y: "start" },
|
|
12515
|
-
index: 0,
|
|
12516
|
-
intersectingIndex: 0,
|
|
12517
|
-
intersecting: [firstItem],
|
|
12518
|
-
};
|
|
12519
|
-
}
|
|
12520
|
-
if (
|
|
12521
|
-
lastItem &&
|
|
12522
|
-
dragElementRect.top > lastItem.getBoundingClientRect().bottom
|
|
12523
|
-
) {
|
|
12524
|
-
// Drag element is below all items → treat as hovering the last item from the bottom.
|
|
12525
|
-
return {
|
|
12526
|
-
element: lastItem,
|
|
12527
|
-
elementSide: { x: "start", y: "end" },
|
|
12528
|
-
index: targetElements.length - 1,
|
|
12529
|
-
intersectingIndex: 0,
|
|
12530
|
-
intersecting: [lastItem],
|
|
12531
|
-
};
|
|
12532
|
-
}
|
|
12533
|
-
}
|
|
12534
12517
|
return null;
|
|
12535
12518
|
}
|
|
12536
12519
|
|
|
@@ -14645,6 +14628,22 @@ const css$1 = /* css */ `.navi_drop_hint {
|
|
|
14645
14628
|
--drop-hint-y: calc(var(--drop-target-bottom) + var(--drop-hint-margin-y, 0px));
|
|
14646
14629
|
}
|
|
14647
14630
|
|
|
14631
|
+
.navi_drop_hint[data-drop-edge="left"], .navi_drop_hint[data-drop-edge="right"] {
|
|
14632
|
+
top: calc(var(--drop-target-top) + var(--drop-hint-margin-y, 0px));
|
|
14633
|
+
left: var(--drop-hint-x);
|
|
14634
|
+
width: var(--drop-hint-size, 3px);
|
|
14635
|
+
height: calc(var(--drop-target-height) - 2 * var(--drop-hint-margin-y, 0px));
|
|
14636
|
+
transform: translateX(-50%);
|
|
14637
|
+
}
|
|
14638
|
+
|
|
14639
|
+
.navi_drop_hint[data-drop-edge="left"] {
|
|
14640
|
+
--drop-hint-x: calc(var(--drop-target-left) - var(--drop-hint-margin-x, 0px));
|
|
14641
|
+
}
|
|
14642
|
+
|
|
14643
|
+
.navi_drop_hint[data-drop-edge="right"] {
|
|
14644
|
+
--drop-hint-x: calc(var(--drop-target-right) + var(--drop-hint-margin-x, 0px));
|
|
14645
|
+
}
|
|
14646
|
+
|
|
14648
14647
|
.navi_drop_hint_cap {
|
|
14649
14648
|
color: var(--drop-hint-background-color, #4476ff);
|
|
14650
14649
|
display: flex;
|
|
@@ -14668,6 +14667,23 @@ const css$1 = /* css */ `.navi_drop_hint {
|
|
|
14668
14667
|
rotate: 90deg;
|
|
14669
14668
|
}
|
|
14670
14669
|
|
|
14670
|
+
.navi_drop_hint:is([data-drop-edge="left"], [data-drop-edge="right"]) .navi_drop_hint_cap {
|
|
14671
|
+
left: 50%;
|
|
14672
|
+
right: auto;
|
|
14673
|
+
translate: -50%;
|
|
14674
|
+
}
|
|
14675
|
+
|
|
14676
|
+
.navi_drop_hint:is([data-drop-edge="left"], [data-drop-edge="right"]) .navi_drop_hint_cap[data-side="start"] {
|
|
14677
|
+
top: calc(-1 * var(--drop-hint-arrow-size, 11px));
|
|
14678
|
+
rotate: none;
|
|
14679
|
+
}
|
|
14680
|
+
|
|
14681
|
+
.navi_drop_hint:is([data-drop-edge="left"], [data-drop-edge="right"]) .navi_drop_hint_cap[data-side="end"] {
|
|
14682
|
+
top: auto;
|
|
14683
|
+
bottom: calc(-1 * var(--drop-hint-arrow-size, 11px));
|
|
14684
|
+
rotate: 180deg;
|
|
14685
|
+
}
|
|
14686
|
+
|
|
14671
14687
|
.navi_drop_surface {
|
|
14672
14688
|
inset: auto;
|
|
14673
14689
|
top: var(--drop-target-top);
|
|
@@ -15271,6 +15287,12 @@ const createDragToMoveGestureController = ({
|
|
|
15271
15287
|
* @param {string} [options.itemSelector] What matches the items of the list.
|
|
15272
15288
|
* Left out, nothing is a place: no hint is drawn and no landing can be
|
|
15273
15289
|
* answered, which is what a drag that only ever throws the thing away asks for.
|
|
15290
|
+
* @param {"column"|"row"|"wrap"} [options.itemFlow] How the items of a
|
|
15291
|
+
* reordered list are laid out: one under the other, side by side on one line,
|
|
15292
|
+
* or side by side over as many lines as it takes (inline-blocks, a flex-wrap,
|
|
15293
|
+
* a grid). A row runs in the writing direction of `containerElement`. It
|
|
15294
|
+
* decides which side of an item the copy is read on and where the hint is
|
|
15295
|
+
* drawn. Left out, it is read from where the items stand (see readItemFlow).
|
|
15274
15296
|
* @param {function} [options.getItemId] `getItemId(element) → id`. An id rather
|
|
15275
15297
|
* than a DOM index, because the two do not match: a list draws fewer rows than
|
|
15276
15298
|
* it has, a search reorders them, and the structure may have holes.
|
|
@@ -15710,6 +15732,15 @@ const resolveDropMeaning = ({
|
|
|
15710
15732
|
return "cancel";
|
|
15711
15733
|
};
|
|
15712
15734
|
|
|
15735
|
+
// Which edge of its anchor the reorder hint is drawn at, for each way the items
|
|
15736
|
+
// can follow each other (see readItemFlow): before an item, the edge the flow
|
|
15737
|
+
// comes in by; after the last one, the edge it leaves by.
|
|
15738
|
+
const DROP_HINT_EDGES = {
|
|
15739
|
+
down: { before: "top", after: "bottom" },
|
|
15740
|
+
right: { before: "left", after: "right" },
|
|
15741
|
+
left: { before: "right", after: "left" },
|
|
15742
|
+
};
|
|
15743
|
+
|
|
15713
15744
|
/**
|
|
15714
15745
|
* A COPY of the element is carried, and the original keeps its place in the
|
|
15715
15746
|
* layout — which is what makes a reorder possible at all: nothing else moves
|
|
@@ -15739,6 +15770,7 @@ const startDragToCarryCopy = (
|
|
|
15739
15770
|
areaConstraint = canToss || canLeave ? "none" : undefined,
|
|
15740
15771
|
containerElement = draggedElement.parentElement,
|
|
15741
15772
|
itemSelector,
|
|
15773
|
+
itemFlow,
|
|
15742
15774
|
getItemId,
|
|
15743
15775
|
onReorder,
|
|
15744
15776
|
onLand,
|
|
@@ -15776,6 +15808,7 @@ const startDragToCarryCopy = (
|
|
|
15776
15808
|
if (!isPrimaryButtonEvent(event)) {
|
|
15777
15809
|
return undefined;
|
|
15778
15810
|
}
|
|
15811
|
+
const flowSaid = resolveItemFlow(itemFlow, containerElement);
|
|
15779
15812
|
// Where the hand is, for a press handed over: its `pointerdown` says where it
|
|
15780
15813
|
// WAS, before the hold and whatever the hold opened. Let go of meanwhile, it
|
|
15781
15814
|
// is not picked up after the fact.
|
|
@@ -15890,6 +15923,7 @@ const startDragToCarryCopy = (
|
|
|
15890
15923
|
dropHintEl.style.removeProperty("--drop-target-top");
|
|
15891
15924
|
dropHintEl.style.removeProperty("--drop-target-bottom");
|
|
15892
15925
|
dropHintEl.style.removeProperty("--drop-target-left");
|
|
15926
|
+
dropHintEl.style.removeProperty("--drop-target-right");
|
|
15893
15927
|
dropHintEl.style.removeProperty("--drop-target-width");
|
|
15894
15928
|
dropHintEl.style.removeProperty("--drop-target-height");
|
|
15895
15929
|
};
|
|
@@ -15931,12 +15965,10 @@ const startDragToCarryCopy = (
|
|
|
15931
15965
|
}
|
|
15932
15966
|
}
|
|
15933
15967
|
|
|
15934
|
-
const
|
|
15935
|
-
|
|
15936
|
-
|
|
15937
|
-
|
|
15938
|
-
fallbackToEdge: !canLand,
|
|
15939
|
-
});
|
|
15968
|
+
const flow = canLand ? undefined : flowSaid || readItemFlow(allItems);
|
|
15969
|
+
const dropTargetInfo = canLand
|
|
15970
|
+
? getDropTargetInfo(gestureInfo, items)
|
|
15971
|
+
: findPlaceInList(gestureInfo, items, flow);
|
|
15940
15972
|
gestureInfo.dropTargetInfo = dropTargetInfo || null;
|
|
15941
15973
|
if (!dropTargetInfo) {
|
|
15942
15974
|
clearDropHint();
|
|
@@ -15970,14 +16002,13 @@ const startDragToCarryCopy = (
|
|
|
15970
16002
|
);
|
|
15971
16003
|
return;
|
|
15972
16004
|
}
|
|
15973
|
-
// Convert {element,
|
|
16005
|
+
// Convert {element, side} to a beforeElement using the items array
|
|
15974
16006
|
// (not nextElementSibling, which breaks if non-item elements exist between items).
|
|
15975
|
-
//
|
|
15976
|
-
//
|
|
15977
|
-
const edge = dropTargetInfo.elementSide.y;
|
|
16007
|
+
// side "start" → insert before the hovered element
|
|
16008
|
+
// side "end" → insert before the next item (null = append at end)
|
|
15978
16009
|
const hoveredIndex = items.indexOf(dropTargetInfo.element);
|
|
15979
16010
|
const beforeElement =
|
|
15980
|
-
|
|
16011
|
+
dropTargetInfo.side === "start"
|
|
15981
16012
|
? dropTargetInfo.element
|
|
15982
16013
|
: (items[hoveredIndex + 1] ?? null);
|
|
15983
16014
|
// Detect no-op: result would leave the grabbed element in the same position.
|
|
@@ -16000,9 +16031,11 @@ const startDragToCarryCopy = (
|
|
|
16000
16031
|
currentReleaseElement = releaseElement;
|
|
16001
16032
|
// Update drop hint CSS vars.
|
|
16002
16033
|
// beforeElement = null → insert at end (hint after last item)
|
|
16003
|
-
// beforeElement = X → insert before X (hint at
|
|
16034
|
+
// beforeElement = X → insert before X (hint at the edge of X the
|
|
16035
|
+
// flow comes in by)
|
|
16004
16036
|
const anchorEl = beforeElement || items[items.length - 1];
|
|
16005
|
-
const anchorEdge =
|
|
16037
|
+
const anchorEdge =
|
|
16038
|
+
DROP_HINT_EDGES[flow][beforeElement !== null ? "before" : "after"];
|
|
16006
16039
|
// Viewport coordinates, straight from the anchor row: the hint is fixed
|
|
16007
16040
|
// in the page (see its CSS), so there is no container box to be relative
|
|
16008
16041
|
// to and no scroll offset to add back.
|
|
@@ -16020,10 +16053,18 @@ const startDragToCarryCopy = (
|
|
|
16020
16053
|
"--drop-target-left",
|
|
16021
16054
|
`${anchorRect.left}px`,
|
|
16022
16055
|
);
|
|
16056
|
+
dropHintEl.style.setProperty(
|
|
16057
|
+
"--drop-target-right",
|
|
16058
|
+
`${anchorRect.right}px`,
|
|
16059
|
+
);
|
|
16023
16060
|
dropHintEl.style.setProperty(
|
|
16024
16061
|
"--drop-target-width",
|
|
16025
16062
|
`${anchorRect.width}px`,
|
|
16026
16063
|
);
|
|
16064
|
+
dropHintEl.style.setProperty(
|
|
16065
|
+
"--drop-target-height",
|
|
16066
|
+
`${anchorRect.height}px`,
|
|
16067
|
+
);
|
|
16027
16068
|
});
|
|
16028
16069
|
|
|
16029
16070
|
dragGesture.addReleaseCallback(async (gestureInfo) => {
|
|
@@ -16284,6 +16325,123 @@ const createDropSurface = () => {
|
|
|
16284
16325
|
return div;
|
|
16285
16326
|
};
|
|
16286
16327
|
|
|
16328
|
+
/**
|
|
16329
|
+
* The way the items follow each other, from how the caller said they are laid
|
|
16330
|
+
* out (the `itemFlow` of startDragTo). A row runs the way the text of its list
|
|
16331
|
+
* does: from right to left under `direction: rtl`.
|
|
16332
|
+
*/
|
|
16333
|
+
const resolveItemFlow = (itemFlow, containerElement) => {
|
|
16334
|
+
if (itemFlow === undefined) {
|
|
16335
|
+
return undefined;
|
|
16336
|
+
}
|
|
16337
|
+
if (itemFlow === "column") {
|
|
16338
|
+
return "down";
|
|
16339
|
+
}
|
|
16340
|
+
if (itemFlow === "row" || itemFlow === "wrap") {
|
|
16341
|
+
return getComputedStyle(containerElement).direction === "rtl"
|
|
16342
|
+
? "left"
|
|
16343
|
+
: "right";
|
|
16344
|
+
}
|
|
16345
|
+
return undefined;
|
|
16346
|
+
};
|
|
16347
|
+
|
|
16348
|
+
/**
|
|
16349
|
+
* Which way the items of a list follow each other on screen: "down", or along a
|
|
16350
|
+
* line — a row, a wrapped row, a grid — "right", or "left" when it runs from
|
|
16351
|
+
* right to left. Read from where the items stand rather than declared: the
|
|
16352
|
+
* first item level with the one after it makes the list run sideways, and which
|
|
16353
|
+
* of the two is on the left says which way. Asked of the whole list, not of the
|
|
16354
|
+
* item under the copy: alone on the last line of a wrapped row, an item is level
|
|
16355
|
+
* with nothing and still part of a row.
|
|
16356
|
+
*/
|
|
16357
|
+
const readItemFlow = (items) => {
|
|
16358
|
+
let previousRect;
|
|
16359
|
+
for (const item of items) {
|
|
16360
|
+
const rect = item.getBoundingClientRect();
|
|
16361
|
+
// A box that takes no room stands on no line.
|
|
16362
|
+
if (rect.width === 0 && rect.height === 0) {
|
|
16363
|
+
continue;
|
|
16364
|
+
}
|
|
16365
|
+
if (previousRect && areLevel(previousRect, rect)) {
|
|
16366
|
+
return rect.left < previousRect.left ? "left" : "right";
|
|
16367
|
+
}
|
|
16368
|
+
previousRect = rect;
|
|
16369
|
+
}
|
|
16370
|
+
return "down";
|
|
16371
|
+
};
|
|
16372
|
+
|
|
16373
|
+
// The middle of one within the height of the other. Overlapping is not enough:
|
|
16374
|
+
// items stacked with a negative margin (a border shared between two) overlap by
|
|
16375
|
+
// a pixel and are still one under the other.
|
|
16376
|
+
const areLevel = (a, b) => {
|
|
16377
|
+
const aMiddle = a.top + a.height / 2;
|
|
16378
|
+
const bMiddle = b.top + b.height / 2;
|
|
16379
|
+
return (
|
|
16380
|
+
(bMiddle > a.top && bMiddle < a.bottom) ||
|
|
16381
|
+
(aMiddle > b.top && aMiddle < b.bottom)
|
|
16382
|
+
);
|
|
16383
|
+
};
|
|
16384
|
+
|
|
16385
|
+
/**
|
|
16386
|
+
* The item the copy is at, and its `side` in the order of the list: "start" for
|
|
16387
|
+
* before it, "end" for after it. Down a list, read by the copy's leading edge
|
|
16388
|
+
* (see getDropTargetInfo); along a row, by its middle against the item's — how
|
|
16389
|
+
* high the copy is says nothing there, and the leading edge assumes a copy as
|
|
16390
|
+
* large as what it passes over: items of a row are as wide as their content,
|
|
16391
|
+
* and one wider than its neighbour could never be put after it.
|
|
16392
|
+
*
|
|
16393
|
+
* Beyond an end of the list, over no item, is a place too: above the first line
|
|
16394
|
+
* or below the last, and along a row beside the first item or past the last.
|
|
16395
|
+
*/
|
|
16396
|
+
const findPlaceInList = (gestureInfo, items, flow) => {
|
|
16397
|
+
const dragElementRect = gestureInfo.elementImpacted.getBoundingClientRect();
|
|
16398
|
+
const dropTargetInfo = getDropTargetInfo(gestureInfo, items);
|
|
16399
|
+
if (dropTargetInfo) {
|
|
16400
|
+
const { element } = dropTargetInfo;
|
|
16401
|
+
if (flow === "down") {
|
|
16402
|
+
return { element, side: dropTargetInfo.elementSide.y };
|
|
16403
|
+
}
|
|
16404
|
+
const elementRect = element.getBoundingClientRect();
|
|
16405
|
+
const dragMiddle = dragElementRect.left + dragElementRect.width / 2;
|
|
16406
|
+
const elementMiddle = elementRect.left + elementRect.width / 2;
|
|
16407
|
+
const beforeItsMiddle =
|
|
16408
|
+
flow === "right"
|
|
16409
|
+
? dragMiddle < elementMiddle
|
|
16410
|
+
: dragMiddle > elementMiddle;
|
|
16411
|
+
return { element, side: beforeItsMiddle ? "start" : "end" };
|
|
16412
|
+
}
|
|
16413
|
+
const firstItem = items[0];
|
|
16414
|
+
if (!firstItem) {
|
|
16415
|
+
return null;
|
|
16416
|
+
}
|
|
16417
|
+
const lastItem = items[items.length - 1];
|
|
16418
|
+
const firstRect = firstItem.getBoundingClientRect();
|
|
16419
|
+
const lastRect = lastItem.getBoundingClientRect();
|
|
16420
|
+
if (
|
|
16421
|
+
dragElementRect.bottom < firstRect.top ||
|
|
16422
|
+
(flow !== "down" &&
|
|
16423
|
+
areLevel(dragElementRect, firstRect) &&
|
|
16424
|
+
isBeyond(dragElementRect, firstRect, flow === "right" ? "left" : "right"))
|
|
16425
|
+
) {
|
|
16426
|
+
return { element: firstItem, side: "start" };
|
|
16427
|
+
}
|
|
16428
|
+
if (
|
|
16429
|
+
dragElementRect.top > lastRect.bottom ||
|
|
16430
|
+
(flow !== "down" &&
|
|
16431
|
+
areLevel(dragElementRect, lastRect) &&
|
|
16432
|
+
isBeyond(dragElementRect, lastRect, flow))
|
|
16433
|
+
) {
|
|
16434
|
+
return { element: lastItem, side: "end" };
|
|
16435
|
+
}
|
|
16436
|
+
return null;
|
|
16437
|
+
};
|
|
16438
|
+
|
|
16439
|
+
const isBeyond = (dragElementRect, itemRect, towards) => {
|
|
16440
|
+
return towards === "left"
|
|
16441
|
+
? dragElementRect.right < itemRect.left
|
|
16442
|
+
: dragElementRect.left > itemRect.right;
|
|
16443
|
+
};
|
|
16444
|
+
|
|
16287
16445
|
/**
|
|
16288
16446
|
* The copy leaves the screen the way it was thrown, and the caller says what that
|
|
16289
16447
|
* meant. Resolves true when it is really gone.
|
|
@@ -22736,4 +22894,4 @@ const useResizeStatus = (elementRef, { as = "number" } = {}) => {
|
|
|
22736
22894
|
};
|
|
22737
22895
|
};
|
|
22738
22896
|
|
|
22739
|
-
export { EASING, ELEMENT_SIZE_CHANGE, activeElementSignal, addActiveElementEffect, addAttributeEffect, allowWheelThrough, appendStyles, applyNewPosition, canScroll, captureScrollState, chainEvent, claimWheelGesture, clickIsSuppressed, closestOpenableAncestor, contrastColor, createBackgroundColorTransition, createBackgroundTransition, createBorderRadiusTransition, createBorderTransition, createDragGestureController, createDragToMoveGestureController, createEventGroupLogger, createGroupTransitionController, createHeightTransition, createInternalCustomEvent, createIterableWeakSet, createOpacityTransition, createPubSub, createStyleController, createTimelineTransition, createTransition, createTranslateXTransition, createValueEffect, createWidthTransition, cubicBezier, dispatchCustomEvent, dispatchInternalCustomEvent, dispatchPublicCustomEvent, dragAfterIntent, dragSourceThatStoodDown, elementIsFocusable, elementIsVisibleForFocus, elementIsVisuallyVisible, findAfter, findAncestor, findBefore, findDescendant, findEvent, findFocusDelegateTarget, findFocusable, findSelfOrAncestorFixedPosition, formatEventSideEffect, getAncestorOpenType, getAvailableHeight, getAvailableWidth, getBackground, getBackgroundColor, getBorder, getBorderRadius, getBorderSizes, getContrastRatio, getDefaultStyles, getDragCoordinates, getDropTargetInfo, getElementSignature, getFirstVisuallyVisibleAncestor, getFocusVisibilityInfo, getHeight, getHeightWithoutTransition, getInnerHeight, getInnerWidth, getKeyboardEventDefaultAction, getLuminance, getMarginSizes, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpacity, getOpacityWithoutTransition, getPaddingSizes, getPositionedParent, getPositioningScrollOffset, getPreferedColorScheme, getScrollBox, getScrollContainer, getScrollContainerSet, getScrollIntoViewScopedOffsets, getScrollRelativeRect, getSelfAndAncestorScrolls, getStyle, getTranslateX, getTranslateXWithoutTransition, getTranslateY, getVirtualKeyboardOverlayHeight, getVisuallyVisibleInfo, getWidth, getWidthWithoutTransition, hasCSSSizeUnit, initFlexDetailsSet, initFocusGroup, initPositionSticky, installPanZoom, isAncestorOpen, isDisplayedDespiteClosedAncestor, isPressDisputedByDrag, isPressDrivenClick, isPrimaryButtonEvent, isSameColor, isScrollable, isTouchDrivenEvent, keepTouchRefusable, markDragSource, measureLongestVisualLineWidth, measureScrollbar, measureWidestChildRow, mergeOneStyle, mergeTwoStyles, normalizeKeyboardKey, normalizeStyle, normalizeStyles, observeAncestorOpenState, onAncestorReopen, parsePositionArea, parseStyle, performTabNavigation, pickPositionRelativeTo, prefersDarkColors, prefersLightColors, preventFocusNav, preventFocusNavViaKeyboard, preventIntermediateScrollbar, refuseDragTo, releaseWheelGesture, resolveCSSColor, resolveCSSSize, resolveColorLuminance, resolveOklchLightness, scrollIntoViewScoped, scrollIntoViewThroughScrollables, scrollIntoViewWithStickyAwareness, scrollRoomTowards, setAttribute, setAttributes, setPlacementViewportInsets, setStyles, setVirtualKeyboardOverlaysContent, snapToPixel, startDragTo, startDragToResizeGesture, startDragToTravel, stickyAsRelativeCoords, stringifyStyle, subscribeVirtualKeyboardGeometryChange, subscribeVisualViewportResizeSettled, subscribeWindowResizeSettled, suppressClickAfterGesture, trapFocusInside, trapScrollInside, useActiveElement, useAvailableHeight, useAvailableWidth, useMaxHeight, useMaxWidth, useResizeStatus, visibleRectEffect, waitForPressHeld, waitForTap, watchWheelTravel, wheelGestureIsTakenFrom };
|
|
22897
|
+
export { EASING, ELEMENT_SIZE_CHANGE, activeElementSignal, addActiveElementEffect, addAttributeEffect, allowWheelThrough, appendStyles, applyNewPosition, canScroll, captureScrollState, chainEvent, claimWheelGesture, clickIsSuppressed, closestOpenableAncestor, contrastColor, createBackgroundColorTransition, createBackgroundTransition, createBorderRadiusTransition, createBorderTransition, createDragGestureController, createDragToMoveGestureController, createEventGroupLogger, createGroupTransitionController, createHeightTransition, createInternalCustomEvent, createIterableWeakSet, createOpacityTransition, createPubSub, createStyleController, createTimelineTransition, createTransition, createTranslateXTransition, createValueEffect, createWidthTransition, cubicBezier, dispatchCustomEvent, dispatchInternalCustomEvent, dispatchPublicCustomEvent, dragAfterIntent, dragSourceThatStoodDown, elementIsFocusable, elementIsVisibleForFocus, elementIsVisuallyVisible, findAfter, findAncestor, findBefore, findDescendant, findEvent, findFocusDelegateTarget, findFocusable, findSelfOrAncestorFixedPosition, formatEventSideEffect, getAncestorOpenType, getAvailableHeight, getAvailableWidth, getBackground, getBackgroundColor, getBorder, getBorderRadius, getBorderSizes, getContrastRatio, getDefaultStyles, getDragCoordinates, getDropTargetInfo, getElementSignature, getFirstVisuallyVisibleAncestor, getFocusVisibilityInfo, getHeight, getHeightWithoutTransition, getInnerHeight, getInnerWidth, getKeyboardEventDefaultAction, getLuminance, getMarginSizes, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpacity, getOpacityWithoutTransition, getPaddingSizes, getPositionedParent, getPositioningScrollOffset, getPreferedColorScheme, getScrollBox, getScrollContainer, getScrollContainerSet, getScrollIntoViewScopedOffsets, getScrollRelativeRect, getSelfAndAncestorScrolls, getStyle, getTranslateX, getTranslateXWithoutTransition, getTranslateY, getVirtualKeyboardOverlayHeight, getVisuallyVisibleInfo, getWidth, getWidthWithoutTransition, hasCSSSizeUnit, initFlexDetailsSet, initFocusGroup, initPositionSticky, installPanZoom, isAncestorOpen, isDisplayedDespiteClosedAncestor, isPressDisputedByDrag, isPressDrivenClick, isPrimaryButtonEvent, isSameColor, isScrollable, isTouchDrivenEvent, keepTouchRefusable, markDragSource, measureLongestVisualLineWidth, measureScrollbar, measureWidestChildRow, mergeOneStyle, mergeTwoStyles, normalizeKeyboardKey, normalizeStyle, normalizeStyles, observeAncestorOpenState, onAncestorReopen, overflowGoesToViewport, parsePositionArea, parseStyle, performTabNavigation, pickPositionRelativeTo, prefersDarkColors, prefersLightColors, preventFocusNav, preventFocusNavViaKeyboard, preventIntermediateScrollbar, refuseDragTo, releaseWheelGesture, resolveCSSColor, resolveCSSSize, resolveColorLuminance, resolveOklchLightness, scrollIntoViewScoped, scrollIntoViewThroughScrollables, scrollIntoViewWithStickyAwareness, scrollRoomTowards, setAttribute, setAttributes, setPlacementViewportInsets, setStyles, setVirtualKeyboardOverlaysContent, snapToPixel, startDragTo, startDragToResizeGesture, startDragToTravel, stickyAsRelativeCoords, stringifyStyle, subscribeVirtualKeyboardGeometryChange, subscribeVisualViewportResizeSettled, subscribeWindowResizeSettled, suppressClickAfterGesture, trapFocusInside, trapScrollInside, useActiveElement, useAvailableHeight, useAvailableWidth, useMaxHeight, useMaxWidth, useResizeStatus, visibleRectEffect, waitForPressHeld, waitForTap, watchWheelTravel, wheelGestureIsTakenFrom };
|