@astryxdesign/core 0.7.8-canary.f50bc74 → 0.7.8-canary.f9d496e
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/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +6 -3
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +36 -5
- package/dist/Tokenizer/Tokenizer.d.ts +0 -14
- package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
- package/dist/Tokenizer/Tokenizer.js +1 -5
- package/dist/Tokenizer/TokenizerBottomSheet.js +3 -5
- package/dist/hooks/scrollLockTouchGuard.d.ts.map +1 -1
- package/dist/hooks/scrollLockTouchGuard.js +9 -26
- package/dist/hooks/useScrollLock.d.ts +3 -2
- package/dist/hooks/useScrollLock.d.ts.map +1 -1
- package/dist/hooks/useScrollLock.js +3 -8
- package/dist/motion/animatedLayout.d.ts +8 -0
- package/dist/motion/animatedLayout.d.ts.map +1 -1
- package/dist/motion/animatedLayout.js +239 -46
- package/dist/motion/animator.d.ts.map +1 -1
- package/dist/motion/animator.js +1 -7
- package/dist/motion/frameBlock.d.ts +14 -0
- package/dist/motion/frameBlock.d.ts.map +1 -0
- package/dist/motion/frameBlock.js +16 -0
- package/package.json +4 -4
- package/src/AppShell/AppShell.tsx +9 -4
- package/src/Icon/Icon.doc.mjs +2 -2
- package/src/Lightbox/useLightbox.doc.mjs +167 -0
- package/src/SideNav/SideNav.tsx +41 -5
- package/src/Tokenizer/Tokenizer.doc.mjs +0 -16
- package/src/Tokenizer/Tokenizer.tsx +1 -24
- package/src/Tokenizer/TokenizerBottomSheet.tsx +8 -10
- package/src/hooks/scrollLockTouchGuard.ts +9 -42
- package/src/hooks/useScrollLock.ts +3 -7
- package/src/motion/animatedLayout.ts +313 -55
- package/src/motion/animator.ts +1 -7
- package/src/motion/frameBlock.ts +16 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../src/AppShell/AppShell.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../src/AppShell/AppShell.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAyCf,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAU5C,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AA+ChD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAE9D;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC9D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAE1B;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC;IAE7B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,SAAS,CAAC;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAuQD,wBAAgB,QAAQ,CAAC,EACvB,OAAoB,EACpB,MAAM,EACN,QAAQ,EACR,cAAc,EACd,aAAa,EAAE,UAAU,EACzB,MAAe,EACf,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,aAAa,qBAsyBf;yBArzBe,QAAQ"}
|
|
@@ -37,7 +37,7 @@ import { MAX_CLOSE_DELAY_MS as MOBILE_NAV_MAX_CLOSE_DELAY_MS } from "../MobileNa
|
|
|
37
37
|
import { SideNavRenderContext } from "../SideNav/SideNavRenderContext.js";
|
|
38
38
|
import { SideNavShellContext } from "../SideNav/railMotion.js";
|
|
39
39
|
import { useAnimatedLayout } from "../hooks/useAnimatedLayout.js";
|
|
40
|
-
import { holdLayoutSwap, landLayoutGlide, layoutMotionFor, playLayoutFrames, playLayoutSwap, reportLayoutChange } from "../motion/animatedLayout.js";
|
|
40
|
+
import { holdLayoutSwap, landLayoutGlide, layoutMotionFor, layoutStartFor, playLayoutFrames, playLayoutSwap, reportLayoutChange } from "../motion/animatedLayout.js";
|
|
41
41
|
import { TopNavRenderContext } from "../TopNav/TopNavRenderContext.js";
|
|
42
42
|
import { TopNavMobileContentContext } from "../TopNav/TopNavMobileContentContext.js";
|
|
43
43
|
import { AppShellMobileContext } from "./AppShellMobileContext.js";
|
|
@@ -609,7 +609,10 @@ export function AppShell({
|
|
|
609
609
|
let entering = 0;
|
|
610
610
|
const last = lastSwapRef.current;
|
|
611
611
|
if (last != null && motion.kind === 'spring') {
|
|
612
|
-
|
|
612
|
+
// Read at the change's own start, where the glide it retargets
|
|
613
|
+
// carries on. After a block, that is later than the frame the
|
|
614
|
+
// timeline still reads.
|
|
615
|
+
const elapsed = Math.max(0, layoutStartFor(main.ownerDocument) - last.startedAt);
|
|
613
616
|
if (elapsed < motion.progress.durationMs) {
|
|
614
617
|
const p = 1 - motion.progress.remaining(elapsed);
|
|
615
618
|
held = last.entering + (1 - last.entering) * p;
|
|
@@ -672,7 +675,7 @@ export function AppShell({
|
|
|
672
675
|
entering
|
|
673
676
|
} = pending;
|
|
674
677
|
lastSwapRef.current = {
|
|
675
|
-
startedAt:
|
|
678
|
+
startedAt: layoutStartFor(main.ownerDocument),
|
|
676
679
|
held,
|
|
677
680
|
entering
|
|
678
681
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideNav.d.ts","sourceRoot":"","sources":["../../src/SideNav/SideNav.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACrC,MAAM,0BAA0B,CAAC;AAKlC,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAmR/D,MAAM,WAAW,YAAa,SAAQ,SAAS,CAAC,WAAW,CAAC;IAC1D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE7B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAEvD;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IAEtC;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,wBAAwB,CAAC;CAClD;
|
|
1
|
+
{"version":3,"file":"SideNav.d.ts","sourceRoot":"","sources":["../../src/SideNav/SideNav.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACrC,MAAM,0BAA0B,CAAC;AAKlC,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAmR/D,MAAM,WAAW,YAAa,SAAQ,SAAS,CAAC,WAAW,CAAC;IAC1D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE7B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAEvD;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IAEtC;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,wBAAwB,CAAC;CAClD;AAyBD;;;;;;;;;;;;;;;;;GAiBG;AAEH,wBAAgB,OAAO,CAAC,EACtB,MAAM,EACN,UAAU,EACV,QAAQ,EACR,MAAM,EACN,WAAW,EACX,WAAmB,EACnB,SAAiB,EACjB,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,EACH,SAAS,EACT,GAAG,KAAK,EACT,EAAE,YAAY,+BA8fd;yBA7gBe,OAAO"}
|
package/dist/SideNav/SideNav.js
CHANGED
|
@@ -147,6 +147,12 @@ const FOOTER_ICON_SIZE = 'sm';
|
|
|
147
147
|
|
|
148
148
|
/** Where focus was before a collapse, as the move after it needs it. */
|
|
149
149
|
|
|
150
|
+
/** The timeline holds one time per frame, so two reads in one frame match. */
|
|
151
|
+
function frameTimeOf(doc) {
|
|
152
|
+
const time = doc?.timeline?.currentTime;
|
|
153
|
+
return time == null ? null : Number(time);
|
|
154
|
+
}
|
|
155
|
+
|
|
150
156
|
/**
|
|
151
157
|
* Sidebar navigation container for application pages.
|
|
152
158
|
*
|
|
@@ -165,6 +171,7 @@ const FOOTER_ICON_SIZE = 'sm';
|
|
|
165
171
|
* </SideNav>
|
|
166
172
|
* ```
|
|
167
173
|
*/
|
|
174
|
+
|
|
168
175
|
export function SideNav({
|
|
169
176
|
header,
|
|
170
177
|
topContent,
|
|
@@ -205,7 +212,22 @@ export function SideNav({
|
|
|
205
212
|
const {
|
|
206
213
|
ref: modalityRef
|
|
207
214
|
} = useInteractionModalityTracking();
|
|
208
|
-
|
|
215
|
+
// The initial state never animates. A change before the rail's first paint
|
|
216
|
+
// lands at once, unless the rail's own toggle made it. Until a frame runs
|
|
217
|
+
// after the nav attaches, the document timeline reads the frame it read
|
|
218
|
+
// then.
|
|
219
|
+
const mountFrameRef = useRef(null);
|
|
220
|
+
const mountedNavRef = useRef(null);
|
|
221
|
+
const isOwnToggleRef = useRef(false);
|
|
222
|
+
const recordMountFrame = useCallback(nav => {
|
|
223
|
+
// An inline ref re-attaches the same nav on each render. Only a new nav
|
|
224
|
+
// starts a new initial state.
|
|
225
|
+
if (nav != null && nav !== mountedNavRef.current) {
|
|
226
|
+
mountedNavRef.current = nav;
|
|
227
|
+
mountFrameRef.current = frameTimeOf(nav.ownerDocument);
|
|
228
|
+
}
|
|
229
|
+
}, []);
|
|
230
|
+
const mergedNavRef = useMergedRefs(ref, navRef, modalityRef, recordMountFrame);
|
|
209
231
|
const collapseStateRef = useRef({
|
|
210
232
|
isCollapsed: false,
|
|
211
233
|
toggle: () => {},
|
|
@@ -228,10 +250,10 @@ export function SideNav({
|
|
|
228
250
|
});
|
|
229
251
|
const collapsed = resizableHook.isCollapsed;
|
|
230
252
|
|
|
231
|
-
//
|
|
232
|
-
//
|
|
233
|
-
// played after it before paint. Inside AppShell the
|
|
234
|
-
// it through AppShell's own handle
|
|
253
|
+
// A collapse or expand plays the rail's motion, except an app's change
|
|
254
|
+
// before the rail's first paint. It is measured in the commit before the
|
|
255
|
+
// DOM changes and played after it, before paint. Inside AppShell the
|
|
256
|
+
// content area moves with it through AppShell's own handle; outside,
|
|
235
257
|
// SideNav holds its own over its parent.
|
|
236
258
|
const shell = use(SideNavShellContext);
|
|
237
259
|
// A resizable rail's wrapper holds the nav and the handle; outside AppShell
|
|
@@ -248,6 +270,14 @@ export function SideNav({
|
|
|
248
270
|
running?.rail.end();
|
|
249
271
|
running?.endContent();
|
|
250
272
|
motionRef.current = null;
|
|
273
|
+
const isOwnToggle = isOwnToggleRef.current;
|
|
274
|
+
isOwnToggleRef.current = false;
|
|
275
|
+
const frame = frameTimeOf(navRef.current?.ownerDocument);
|
|
276
|
+
if (!isOwnToggle && (frame == null || frame === mountFrameRef.current)) {
|
|
277
|
+
railSnapshotRef.current = null;
|
|
278
|
+
shell?.landContent();
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
251
281
|
railSnapshotRef.current = snapshotRail(shell?.rail() ?? ownRail(), shell?.animatedLayout ?? ownLayout, shown, wasCollapsed);
|
|
252
282
|
// A collapse covers the old rail with its copy; when the rail cannot
|
|
253
283
|
// be copied, the page lands at once with it, on one clock, a running
|
|
@@ -365,6 +395,7 @@ export function SideNav({
|
|
|
365
395
|
}, [noteRailFocus, measureRail]);
|
|
366
396
|
const toggle = useCallback(() => {
|
|
367
397
|
const next = !collapsed;
|
|
398
|
+
isOwnToggleRef.current = true;
|
|
368
399
|
|
|
369
400
|
// Deprecated `handleRef` path only: an out-of-tree button reads this
|
|
370
401
|
// snapshot while rendering, which can happen before SideNav re-renders.
|
|
@@ -238,20 +238,6 @@ export interface TokenizerProps<T extends SearchableItem> extends Omit<FieldInpu
|
|
|
238
238
|
ref?: React.Ref<HTMLInputElement>;
|
|
239
239
|
/** Imperative handle ref for focus/blur control. */
|
|
240
240
|
handleRef?: React.Ref<TokenizerHandle>;
|
|
241
|
-
/**
|
|
242
|
-
* Experimental options, outside the stable compatibility promise: anything
|
|
243
|
-
* in this object may change or be removed in a patch release.
|
|
244
|
-
* @experimental
|
|
245
|
-
*/
|
|
246
|
-
experimental?: {
|
|
247
|
-
/**
|
|
248
|
-
* The earlier spelling of `presentation`, with the same values. The
|
|
249
|
-
* top-level `presentation` wins when both are set.
|
|
250
|
-
* @experimental
|
|
251
|
-
* @deprecated Use the stable `presentation` prop.
|
|
252
|
-
*/
|
|
253
|
-
presentation?: TokenizerPresentation;
|
|
254
|
-
};
|
|
255
241
|
}
|
|
256
242
|
/** How Tokenizer presents its choices; see `TokenizerProps.presentation`. */
|
|
257
243
|
export type TokenizerPresentation = AdaptivePresentation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tokenizer.d.ts","sourceRoot":"","sources":["../../src/Tokenizer/Tokenizer.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,EAYZ,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAUf,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"Tokenizer.d.ts","sourceRoot":"","sources":["../../src/Tokenizer/Tokenizer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,6 @@ import { useBusyAnnouncement } from "../hooks/useBusyAnnouncement.js";
|
|
|
31
31
|
import { useAdaptivePresentation } from "../hooks/useAdaptivePresentation.js";
|
|
32
32
|
import { useIsHydrating } from "../hooks/useIsHydrating.js";
|
|
33
33
|
import { VisuallyHidden } from "../VisuallyHidden/index.js";
|
|
34
|
-
import { useDevWarning } from "../hooks/useDevWarning.js";
|
|
35
34
|
import { warnOnce } from "../utils/devWarning.js";
|
|
36
35
|
import { BaseTypeahead } from "../Typeahead/BaseTypeahead.js";
|
|
37
36
|
import { useSize } from "../SizeContext/SizeContext.js";
|
|
@@ -432,8 +431,7 @@ export function Tokenizer({
|
|
|
432
431
|
ref,
|
|
433
432
|
handleRef,
|
|
434
433
|
onKeyDown,
|
|
435
|
-
presentation
|
|
436
|
-
experimental,
|
|
434
|
+
presentation = 'adaptive',
|
|
437
435
|
id: idProp,
|
|
438
436
|
'aria-describedby': ariaDescribedByProp,
|
|
439
437
|
'aria-labelledby': ariaLabelledByProp,
|
|
@@ -473,8 +471,6 @@ export function Tokenizer({
|
|
|
473
471
|
// `adaptive` resolves through the policy the selection controls share. An
|
|
474
472
|
// open sheet keeps its presentation until it closes. A resolution change
|
|
475
473
|
// during a task does not replace the open surface.
|
|
476
|
-
const presentation = presentationProp ?? experimental?.presentation ?? 'adaptive';
|
|
477
|
-
useDevWarning('Tokenizer', '`presentation` and `experimental.presentation` are both set; `presentation` wins. Remove `experimental.presentation`.', presentationProp !== undefined && experimental?.presentation !== undefined);
|
|
478
474
|
const resolvedPresentation = useAdaptivePresentation(presentation);
|
|
479
475
|
const [isSheetOpen, setIsSheetOpen] = useState(false);
|
|
480
476
|
// Latched for the sheet's lifetime: a sheet stays presented after it closes
|
|
@@ -419,11 +419,9 @@ function TokenizerSheetContent({
|
|
|
419
419
|
// `action` is declared on `SearchableItem` for the grid-adopting hosts; the
|
|
420
420
|
// sheet rows have not adopted it, so a row renders the item without the
|
|
421
421
|
// control and says so (`spec:AST-058` FR9), as the inline panel does.
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
}
|
|
426
|
-
}, [results]);
|
|
422
|
+
if (results.some(item => item.action != null)) {
|
|
423
|
+
warnOnce('tokenizer-sheet:item-action', 'Tokenizer', 'A result carries `action`, which the bottom-sheet rows do not render ' + 'yet; the item is shown without it.');
|
|
424
|
+
}
|
|
427
425
|
|
|
428
426
|
// The pending Spinner below stays named, as the inline field's does
|
|
429
427
|
// (`family:input-fields` FR7), but is not a live region; the sheet announces
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollLockTouchGuard.d.ts","sourceRoot":"","sources":["../../src/hooks/scrollLockTouchGuard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scrollLockTouchGuard.d.ts","sourceRoot":"","sources":["../../src/hooks/scrollLockTouchGuard.ts"],"names":[],"mappings":"AAoFA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAErD;AAWD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAqCT"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* @file scrollLockTouchGuard.ts
|
|
7
7
|
* @input The node under a finger and the pan's direction, while a scroll lock
|
|
8
|
-
* holds the page
|
|
8
|
+
* holds the page; the native-scroll probe's edge test (gestures/nativeScroll)
|
|
9
9
|
* @output isPanAbsorbedBeforePage and isPageZoomedIn, for the page hold
|
|
10
10
|
* @position Internal hook utility; gestures/pageHold calls it for
|
|
11
11
|
* useScrollLock.
|
|
@@ -18,41 +18,24 @@
|
|
|
18
18
|
// The walk follows flat-tree parents. It ends at a top-layer or fixed-position
|
|
19
19
|
// element, whose containing block is the viewport, so its untaken pans go to
|
|
20
20
|
// the page.
|
|
21
|
+
import { canElementScroll } from "../gestures/nativeScroll.js";
|
|
21
22
|
import { parentAcrossShadow } from "../utils/flatTree.js";
|
|
22
|
-
import { isRtlElement } from "./isRtlElement.js";
|
|
23
|
-
const SCROLLABLE = new Set(['auto', 'scroll']);
|
|
24
|
-
|
|
25
|
-
/** Overflow at or below this many px is a box that fits, not a scroller. */
|
|
26
|
-
const EDGE_TOLERANCE = 1;
|
|
27
|
-
function canMoveY(element, dy, range) {
|
|
28
|
-
// A finger moving down drags the content down: scrollTop decreases.
|
|
29
|
-
return dy > 0 ? element.scrollTop > EDGE_TOLERANCE - 0.5 : element.scrollTop < range - EDGE_TOLERANCE + 0.5;
|
|
30
|
-
}
|
|
31
|
-
function canMoveX(element, dx, range, isRtl) {
|
|
32
|
-
const min = isRtl ? -range : 0;
|
|
33
|
-
const max = isRtl ? 0 : range;
|
|
34
|
-
// A finger moving right drags the content right: scrollLeft decreases.
|
|
35
|
-
return dx > 0 ? element.scrollLeft > min + EDGE_TOLERANCE - 0.5 : element.scrollLeft < max - EDGE_TOLERANCE + 0.5;
|
|
36
|
-
}
|
|
37
23
|
|
|
38
24
|
/**
|
|
39
25
|
* Whether `element` itself takes a pan. It does when it can still scroll that
|
|
40
26
|
* way, or when its `overscroll-behavior` contains the overscroll at its edge.
|
|
41
27
|
*/
|
|
42
28
|
function takesPan(element, style, isVertical, dx, dy) {
|
|
43
|
-
|
|
44
|
-
|
|
29
|
+
const x = isVertical ? 0 : dx;
|
|
30
|
+
const y = isVertical ? dy : 0;
|
|
31
|
+
if (canElementScroll(element, x, y)) {
|
|
32
|
+
return true;
|
|
45
33
|
}
|
|
46
|
-
|
|
47
|
-
//
|
|
48
|
-
|
|
49
|
-
if (range <= EDGE_TOLERANCE) {
|
|
34
|
+
// A scroller at its edge can still move the other way. A box that does not
|
|
35
|
+
// scroll, or whose content fits, cannot. Its pan goes on along the chain.
|
|
36
|
+
if (!canElementScroll(element, -x, -y)) {
|
|
50
37
|
return false;
|
|
51
38
|
}
|
|
52
|
-
const canMove = isVertical ? canMoveY(element, dy, range) : canMoveX(element, dx, range, isRtlElement(element));
|
|
53
|
-
if (canMove) {
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
39
|
const behavior = isVertical ? style.overscrollBehaviorY : style.overscrollBehaviorX;
|
|
57
40
|
return behavior === 'contain' || behavior === 'none';
|
|
58
41
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Locks page scroll while `isLocked` is true.
|
|
3
3
|
*
|
|
4
|
-
* The page keeps its scroll offset, so nothing jumps on lock or unlock.
|
|
5
|
-
*
|
|
4
|
+
* The page keeps its scroll offset, so nothing jumps on lock or unlock. iOS
|
|
5
|
+
* Safari scrolls an `overflow: hidden` page under a finger. So where the
|
|
6
|
+
* primary pointer is coarse (phones and tablets), the lock cancels a
|
|
6
7
|
* one-finger pan that would reach the page.
|
|
7
8
|
* Pans that a scroller in the overlay takes, and two-finger zoom, go through.
|
|
8
9
|
* The gutter of a classic scrollbar stays open, so the page does not shift
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollLock.d.ts","sourceRoot":"","sources":["../../src/hooks/useScrollLock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useScrollLock.d.ts","sourceRoot":"","sources":["../../src/hooks/useScrollLock.ts"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAkDrD"}
|
|
@@ -22,20 +22,15 @@ import { claimRootScrollStyle, reportScrollLock } from "./rootScrollStyles.js";
|
|
|
22
22
|
import { holdPageScroll } from "../gestures/pageHold.js";
|
|
23
23
|
import { isPageZoomedIn, isPanAbsorbedBeforePage } from "./scrollLockTouchGuard.js";
|
|
24
24
|
import { holdScrollbarGutter } from "./scrollbarGutter.js";
|
|
25
|
-
|
|
26
|
-
// iOS Safari scrolls an `overflow: hidden` page under a finger.
|
|
27
|
-
// So the lock also cancels each one-finger pan that would reach the page. The
|
|
28
|
-
// scroll offset never changes, so unlock restores nothing, and iOS Safari's
|
|
29
|
-
// toolbar keeps its state.
|
|
30
|
-
|
|
31
25
|
let lockCount = 0;
|
|
32
26
|
let activeLock = null;
|
|
33
27
|
|
|
34
28
|
/**
|
|
35
29
|
* Locks page scroll while `isLocked` is true.
|
|
36
30
|
*
|
|
37
|
-
* The page keeps its scroll offset, so nothing jumps on lock or unlock.
|
|
38
|
-
*
|
|
31
|
+
* The page keeps its scroll offset, so nothing jumps on lock or unlock. iOS
|
|
32
|
+
* Safari scrolls an `overflow: hidden` page under a finger. So where the
|
|
33
|
+
* primary pointer is coarse (phones and tablets), the lock cancels a
|
|
39
34
|
* one-finger pan that would reach the page.
|
|
40
35
|
* Pans that a scroller in the overlay takes, and two-finger zoom, go through.
|
|
41
36
|
* The gutter of a classic scrollbar stays open, so the page does not shift
|
|
@@ -15,6 +15,14 @@ interface SpringProgress {
|
|
|
15
15
|
/** Remaining fraction of the move at `t` ms. */
|
|
16
16
|
remaining(t: number): number;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* When the animations of the layout change being made start. Code that
|
|
20
|
+
* follows the change on its own clock reads it, such as a rail's width or a
|
|
21
|
+
* swap's fade. It is the document timeline's current time. After a block
|
|
22
|
+
* since that frame, it is the moment the change made its first animation.
|
|
23
|
+
* Until the timeline reaches it, the change has not started.
|
|
24
|
+
*/
|
|
25
|
+
export declare function layoutStartFor(document: Document): number;
|
|
18
26
|
/**
|
|
19
27
|
* The glide `element` is playing now, if any. For an adopter that draws
|
|
20
28
|
* something with each moving element (a table row's divider): it finds what
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animatedLayout.d.ts","sourceRoot":"","sources":["../../src/motion/animatedLayout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"animatedLayout.d.ts","sourceRoot":"","sources":["../../src/motion/animatedLayout.ts"],"names":[],"mappings":"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"}
|