@jsenv/navi 0.29.162 → 0.29.163

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.
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { installImportMetaCssBuild, windowHeightSignal, windowWidthSignal, visualViewportHeightSignal, visualViewportWidthSignal, getAppHeight, getAppWidth, coarsePointerSignal, smallTouchScreenSignal } from "./jsenv_navi_side_effects.js";
6
6
  export { disableVirtualKeyboardOverlay } from "./jsenv_navi_side_effects.js";
7
- import { elementIsFocusable, createIterableWeakSet, dispatchInternalCustomEvent, dispatchCustomEvent, getVisuallyVisibleInfo, getFirstVisuallyVisibleAncestor, getElementSignature, createPubSub, findEvent, createValueEffect, findFocusDelegateTarget, findFocusable, allowWheelThrough, dispatchPublicCustomEvent, resolveCSSColor, ELEMENT_SIZE_CHANGE, findSelfOrAncestorFixedPosition, visibleRectEffect, pickPositionRelativeTo, getBorderSizes, getPaddingSizes, applyNewPosition, measureLongestVisualLineWidth, chainEvent, waitForPressHeld, suppressClickAfterGesture, startDragToTravel, markDragSource, startDragTo, createEventGroupLogger, getKeyboardEventDefaultAction, activeElementSignal, normalizeStyle, mergeOneStyle, getPositionedParent, normalizeStyles, createGroupTransitionController, getBorderRadius, preventIntermediateScrollbar, createOpacityTransition, watchWheelTravel, scrollRoomTowards, getScrollContainer, closestOpenableAncestor, isAncestorOpen, isDisplayedDespiteClosedAncestor, observeAncestorOpenState, getAncestorOpenType, findBefore, findAfter, resolveCSSSize, hasCSSSizeUnit, releaseWheelGesture, getScrollIntoViewScopedOffsets, wheelGestureIsTakenFrom, claimWheelGesture, scrollIntoViewScoped, initFocusGroup, stringifyStyle as stringifyStyle$1, resolveOklchLightness, contrastColor, isTouchDrivenEvent, parsePositionArea, snapToPixel, trapFocusInside, trapScrollInside, onAncestorReopen, canScroll, measureWidestChildRow, performTabNavigation, dragAfterIntent, stickyAsRelativeCoords, createDragToMoveGestureController, getDropTargetInfo, setStyles, useActiveElement } from "@jsenv/dom";
7
+ import { elementIsFocusable, createIterableWeakSet, dispatchInternalCustomEvent, dispatchCustomEvent, getVisuallyVisibleInfo, getFirstVisuallyVisibleAncestor, getElementSignature, createPubSub, findEvent, createValueEffect, findFocusDelegateTarget, findFocusable, allowWheelThrough, dispatchPublicCustomEvent, resolveCSSColor, ELEMENT_SIZE_CHANGE, findSelfOrAncestorFixedPosition, visibleRectEffect, pickPositionRelativeTo, getBorderSizes, getPaddingSizes, applyNewPosition, measureLongestVisualLineWidth, chainEvent, waitForPressHeld, suppressClickAfterGesture, startDragToTravel, markDragSource, startDragTo, createEventGroupLogger, getKeyboardEventDefaultAction, activeElementSignal, normalizeStyle, mergeOneStyle, getPositionedParent, normalizeStyles, createGroupTransitionController, getBorderRadius, preventIntermediateScrollbar, createOpacityTransition, watchWheelTravel, scrollRoomTowards, getScrollContainer, closestOpenableAncestor, isAncestorOpen, isDisplayedDespiteClosedAncestor, observeAncestorOpenState, getAncestorOpenType, findBefore, findAfter, resolveCSSSize, hasCSSSizeUnit, releaseWheelGesture, getScrollIntoViewScopedOffsets, wheelGestureIsTakenFrom, claimWheelGesture, scrollIntoViewScoped, initFocusGroup, stringifyStyle as stringifyStyle$1, resolveOklchLightness, contrastColor, isTouchDrivenEvent, parsePositionArea, snapToPixel, trapFocusInside, trapScrollInside, onAncestorReopen, isPressDisputedByDrag, canScroll, measureWidestChildRow, performTabNavigation, dragAfterIntent, stickyAsRelativeCoords, createDragToMoveGestureController, getDropTargetInfo, setStyles, useActiveElement } from "@jsenv/dom";
8
8
  export { chainEvent, clickIsSuppressed, contrastColor, findEvent, startDragTo } from "@jsenv/dom";
9
9
  import { signal, computed, effect, untracked, batch, useComputed, useSignal } from "@preact/signals";
10
10
  import { isValidElement, h, Fragment, createContext, render, toChildArray, options, cloneElement } from "preact";
@@ -59776,7 +59776,7 @@ const PickerCustom = props => {
59776
59776
  // could then never form. So the picker steps back and opens on the click,
59777
59777
  // which the browser only delivers if the press stayed a press (a gesture
59778
59778
  // swallows the click it leaves behind).
59779
- const pressIsDisputed = interactionsDisputeThePress(props.interactions);
59779
+ const interactionsDispute = interactionsDisputeThePress(props.interactions);
59780
59780
  Object.assign(pickerProps, {
59781
59781
  eventReactionDefinitions: {
59782
59782
  mouseDown: e => {
@@ -59795,7 +59795,14 @@ const PickerCustom = props => {
59795
59795
  })
59796
59796
  };
59797
59797
  }
59798
- if (pressIsDisputed) {
59798
+ // The same dispute, said by a box AROUND the picker rather than
59799
+ // by the picker itself: a page that travels between tabs under the
59800
+ // finger, a panel that swipes closed, a card carried out of a
59801
+ // list. Asked of the DOM here rather than of the props at render,
59802
+ // because that is where such a box says what it travels by — and
59803
+ // asked at every press, since what the picker sits in is not the
59804
+ // picker's to know at mount.
59805
+ if (interactionsDispute || isPressDisputedByDrag(e.target)) {
59799
59806
  return null;
59800
59807
  }
59801
59808
  return {
@@ -59814,7 +59821,7 @@ const PickerCustom = props => {
59814
59821
  }
59815
59822
  // When a label is clicked it transfers focus to the select
59816
59823
  // in that case we want to open it (otherwise we have already opened on mousedown interaction)
59817
- // And when a gesture disputes the press (see pressIsDisputed
59824
+ // And when a gesture disputes the press (see the two disputes
59818
59825
  // above), this is where the picker opens for real.
59819
59826
  return {
59820
59827
  name: e.detail === 0 ? "click (keyboard or progammatic) to open picker" : "click to open picker",
@@ -68517,7 +68524,18 @@ const PickerInput = props => {
68517
68524
  as: "input",
68518
68525
  ...props,
68519
68526
  readOnly: readOnlyForced ? true : readOnly,
68520
- "data-readonly-forced": readOnlyForced ? "" : undefined,
68527
+ "data-readonly-forced": readOnlyForced ? "" : undefined
68528
+ // An <input> by tag and a door by nature: this one opens a popup on the
68529
+ // press and reads nothing at all as the pointer moves — no caret dragged
68530
+ // through it (the press selects the whole value and preventDefaults, see
68531
+ // useAutoSelectReadOnly), no content of its own to scroll. So the gesture
68532
+ // readers must not treat it as the field it looks like: without this, a
68533
+ // box that travels by drag refuses to travel from a picker, which is a
68534
+ // hole under the finger in the middle of a page (see PRESS_ONLY_ATTRIBUTE
68535
+ // in @jsenv/dom's drag_to_travel.js).
68536
+ ,
68537
+
68538
+ "data-press-only": "",
68521
68539
  ui: undefined,
68522
68540
  className: "navi_picker_input",
68523
68541
  pseudoClasses: PickerInputPseudoClasses,