@astryxdesign/core 0.7.7-canary.36f8ea1 → 0.7.7-canary.550ff21
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/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteInput.js +8 -1
- package/dist/DateInput/MonthScroller.d.ts.map +1 -1
- package/dist/DateInput/MonthScroller.js +72 -2
- package/dist/Field/PanelSearchInput.d.ts.map +1 -1
- package/dist/Field/PanelSearchInput.js +8 -1
- package/dist/Field/textEntryTraits.d.ts +6 -6
- package/dist/Field/textEntryTraits.js +6 -6
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +20 -9
- package/dist/ProgressBar/ProgressBarTouch.d.ts +29 -0
- package/dist/ProgressBar/ProgressBarTouch.d.ts.map +1 -0
- package/dist/ProgressBar/ProgressBarTouch.js +91 -0
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +9 -1
- package/dist/astryx.css +7 -0
- package/dist/gestures/GestureArena.d.ts +21 -2
- package/dist/gestures/GestureArena.d.ts.map +1 -1
- package/dist/gestures/GestureArena.js +19 -2
- package/dist/gestures/GestureHost.d.ts +51 -1
- package/dist/gestures/GestureHost.d.ts.map +1 -1
- package/dist/gestures/GestureHost.js +148 -7
- package/dist/motion/animator.d.ts.map +1 -1
- package/dist/motion/animator.js +63 -5
- package/dist/motion/paging.d.ts +58 -0
- package/dist/motion/paging.d.ts.map +1 -0
- package/dist/motion/paging.js +128 -0
- package/dist/motion/uikit/index.d.ts +4 -3
- package/dist/motion/uikit/index.d.ts.map +1 -1
- package/dist/motion/uikit/index.js +4 -3
- package/dist/motion/uikit/paging.d.ts +160 -0
- package/dist/motion/uikit/paging.d.ts.map +1 -0
- package/dist/motion/uikit/paging.js +162 -0
- package/dist/motion/uikit/progressBar.d.ts +59 -0
- package/dist/motion/uikit/progressBar.d.ts.map +1 -0
- package/dist/motion/uikit/progressBar.js +82 -0
- package/dist/motion/uikit/scroll.d.ts +0 -19
- package/dist/motion/uikit/scroll.d.ts.map +1 -1
- package/dist/motion/uikit/scroll.js +2 -21
- package/dist/utils/selectionLock.d.ts +43 -0
- package/dist/utils/selectionLock.d.ts.map +1 -1
- package/dist/utils/selectionLock.js +394 -6
- package/package.json +4 -4
- package/src/CommandPalette/CommandPaletteInput.tsx +6 -0
- package/src/DateInput/MonthScroller.tsx +63 -5
- package/src/Field/PanelSearchInput.tsx +6 -0
- package/src/Field/textEntryTraits.ts +6 -6
- package/src/ProgressBar/ProgressBar.doc.mjs +3 -3
- package/src/ProgressBar/ProgressBar.tsx +82 -11
- package/src/ProgressBar/ProgressBarTouch.ts +109 -0
- package/src/Typeahead/BaseTypeahead.tsx +7 -0
- package/src/gestures/GestureArena.ts +44 -4
- package/src/gestures/GestureHost.ts +184 -7
- package/src/gestures/README.md +19 -3
- package/src/motion/MEASUREMENTS.md +8 -1
- package/src/motion/README.md +6 -3
- package/src/motion/animator.ts +78 -6
- package/src/motion/paging.ts +138 -0
- package/src/motion/uikit/index.ts +4 -3
- package/src/motion/uikit/paging.ts +162 -0
- package/src/motion/uikit/progressBar.ts +82 -0
- package/src/motion/uikit/scroll.ts +2 -18
- package/src/utils/selectionLock.ts +501 -6
- package/dist/motion/selectPage.d.ts +0 -26
- package/dist/motion/selectPage.d.ts.map +0 -1
- package/dist/motion/selectPage.js +0 -55
- package/src/motion/selectPage.ts +0 -55
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandPaletteInput.d.ts","sourceRoot":"","sources":["../../src/CommandPalette/CommandPaletteInput.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAcf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"CommandPaletteInput.d.ts","sourceRoot":"","sources":["../../src/CommandPalette/CommandPaletteInput.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAcf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA2E5C,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CACpD,SAAS,CAAC,gBAAgB,CAAC,EAC3B,UAAU,CACX;IACC,iEAAiE;IACjE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAElC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;CACvD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EAAE,eAAe,EACtB,aAAa,EACb,WAAW,EAAE,oBAAoB,EACjC,KAAK,EACL,YAAmB,EACnB,UAAU,EACV,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,wBAAwB,+BA2L1B;yBA3Me,mBAAmB"}
|
|
@@ -30,6 +30,7 @@ import { useMergedRefs } from "../hooks/useMergedRefs.js";
|
|
|
30
30
|
import { useBusyAnnouncement } from "../hooks/useBusyAnnouncement.js";
|
|
31
31
|
import { registerEnglishFallback, useComponentTranslator } from "../i18n/useComponentTranslator.js";
|
|
32
32
|
import english from "../i18n/generated-english/CommandPalette/CommandPaletteInput.generated.js";
|
|
33
|
+
import { textEntryTraitAttributes } from "../Field/textEntryTraits.js";
|
|
33
34
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
34
35
|
registerEnglishFallback(english);
|
|
35
36
|
const styles = {
|
|
@@ -189,7 +190,13 @@ export function CommandPaletteInput({
|
|
|
189
190
|
...props,
|
|
190
191
|
ref: useMergedRefs(ref, inputRef, modalityRef),
|
|
191
192
|
...(isKeyboardFocus ? focusOutlineProps.focusVisible(styles.input) : focusOutlineProps.suppressed(styles.input)),
|
|
192
|
-
type: "text"
|
|
193
|
+
type: "text"
|
|
194
|
+
// Autocorrect would rewrite names and identifiers.
|
|
195
|
+
,
|
|
196
|
+
...textEntryTraitAttributes({
|
|
197
|
+
enterKeyHint: 'search',
|
|
198
|
+
hasAutoCorrect: false
|
|
199
|
+
}),
|
|
193
200
|
role: ctx ? 'combobox' : standaloneRole,
|
|
194
201
|
"aria-expanded": ctx ? ctx.isOpen && hasListbox : callerSets('aria-expanded') ? props['aria-expanded'] : callerOwnsPopup || undefined,
|
|
195
202
|
"aria-autocomplete": ctx ? 'list' : callerSets('aria-autocomplete') ? props['aria-autocomplete'] : callerOwnsPopup ? 'list' : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthScroller.d.ts","sourceRoot":"","sources":["../../src/DateInput/MonthScroller.tsx"],"names":[],"mappings":"AAqDA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,SAAS,EAOf,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"MonthScroller.d.ts","sourceRoot":"","sources":["../../src/DateInput/MonthScroller.tsx"],"names":[],"mappings":"AAqDA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,SAAS,EAOf,MAAM,UAAU,CAAC;AAiNlB,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;CACxE;AAED,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACxD,+CAA+C;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,oBAAoB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,+BAA+B;IAC/B,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/B,4CAA4C;IAC5C,KAAK,EAAE,SAAS,CAAC;IACjB,2DAA2D;IAC3D,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC;IAC7C,gCAAgC;IAChC,YAAY,EAAE,SAAS,CAAC;IACxB,kCAAkC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,KAAK,EACL,cAAc,EACd,YAAY,EACZ,QAAQ,GACT,EAAE,kBAAkB,+BAmjBpB;yBA9jBe,aAAa"}
|
|
@@ -38,6 +38,7 @@ import { colorVars, radiusVars, fontWeightVars, typeScaleVars, durationVars, bor
|
|
|
38
38
|
import { focusOutlineStyles } from "../utils/index.js";
|
|
39
39
|
import { plainDateFormatStandaloneMonthYear } from "../utils/plainDate.js";
|
|
40
40
|
import { plainDateAddDays, plainDateDayOfWeek, plainDateFormat, plainDateIsEqual, plainDateToISO, DATE_FORMAT_WITH_WEEKDAY } from "../utils/index.js";
|
|
41
|
+
import { reducedMotionFade } from "../motion/reducedMotion.js";
|
|
41
42
|
import "./tokens.stylex.js";
|
|
42
43
|
import { dateInputTouchSizes, dateInputTouchGeometry } from "./tokens.stylex.js";
|
|
43
44
|
import { useOwnScrollGesture } from "./useOwnScrollGesture.js";
|
|
@@ -251,7 +252,25 @@ export function MonthScroller({
|
|
|
251
252
|
hasPositionedRef.current = true;
|
|
252
253
|
scroller.scrollLeft = scrollOffsetForRow(initialMonthIndex - minMonthIndex, paneSize, isRTL);
|
|
253
254
|
}, [paneSize, initialMonthIndex, minMonthIndex, isRTL]);
|
|
255
|
+
|
|
256
|
+
// The Reduced Motion dip of a step on a touch screen, owned here so a
|
|
257
|
+
// second step or the unmount clears it.
|
|
258
|
+
const dipRef = useRef(null);
|
|
259
|
+
const stopDip = useCallback(() => {
|
|
260
|
+
const dip = dipRef.current;
|
|
261
|
+
if (dip != null) {
|
|
262
|
+
window.clearTimeout(dip.timer);
|
|
263
|
+
dip.animation.cancel();
|
|
264
|
+
dipRef.current = null;
|
|
265
|
+
}
|
|
266
|
+
}, []);
|
|
267
|
+
// Synchronizes with the dip's timer and animation: neither outlives the
|
|
268
|
+
// scroller.
|
|
269
|
+
useEffect(() => stopDip, [stopDip]);
|
|
254
270
|
const scrollToMonth = useCallback((monthIndex, behavior = 'smooth') => {
|
|
271
|
+
// Every step replaces a running dip, whichever way it moves. Otherwise
|
|
272
|
+
// the dip's landing would undo a jump or an immediate step made after it.
|
|
273
|
+
stopDip();
|
|
255
274
|
const scroller = scrollerRef.current;
|
|
256
275
|
if (scroller == null || paneSize === 0) {
|
|
257
276
|
return;
|
|
@@ -274,12 +293,63 @@ export function MonthScroller({
|
|
|
274
293
|
recenter(scroller, row);
|
|
275
294
|
return;
|
|
276
295
|
}
|
|
296
|
+
const left = scrollOffsetForRow(row, paneSize, isRTL);
|
|
297
|
+
// Under reduced motion the month changes without travel: at once on a fine
|
|
298
|
+
// primary pointer, under an opacity dip on a coarse one (reducedMotionFade).
|
|
299
|
+
const fade = behavior === 'smooth' ? reducedMotionFade(scroller) : null;
|
|
300
|
+
if (fade != null) {
|
|
301
|
+
// The window mounts around the target first, and the scroll lands in
|
|
302
|
+
// the layout effect below, as a far jump does. So nothing moves the
|
|
303
|
+
// window after the jump. If the window followed the jump, WebKit would
|
|
304
|
+
// re-snap it one pane further on every frame. A scroll that lands on
|
|
305
|
+
// the centre row reports nothing.
|
|
306
|
+
const land = () => {
|
|
307
|
+
// The landing is the newest steer. An earlier steer whose scroll
|
|
308
|
+
// never arrived would otherwise hide every scroll after it, a
|
|
309
|
+
// trackpad's included. Closing the wheels makes such a steer: it
|
|
310
|
+
// re-asserts the month already in view.
|
|
311
|
+
steeredRowRef.current = null;
|
|
312
|
+
if (row === centerRowRef.current) {
|
|
313
|
+
scroller.scrollTo({
|
|
314
|
+
left,
|
|
315
|
+
behavior: 'auto'
|
|
316
|
+
});
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
pendingScrollRef.current = row;
|
|
320
|
+
centerRowRef.current = row;
|
|
321
|
+
setCenterRow(row);
|
|
322
|
+
};
|
|
323
|
+
if (fade.duration === 0) {
|
|
324
|
+
land();
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
// A second step within the dip has replaced the first (above): only
|
|
328
|
+
// its scroll lands, at its own dip's middle.
|
|
329
|
+
dipRef.current = {
|
|
330
|
+
animation: scroller.animate([{
|
|
331
|
+
opacity: 1
|
|
332
|
+
}, {
|
|
333
|
+
opacity: 0
|
|
334
|
+
}, {
|
|
335
|
+
opacity: 1
|
|
336
|
+
}], {
|
|
337
|
+
duration: fade.duration,
|
|
338
|
+
easing: fade.easing
|
|
339
|
+
}),
|
|
340
|
+
timer: window.setTimeout(() => {
|
|
341
|
+
dipRef.current = null;
|
|
342
|
+
land();
|
|
343
|
+
}, fade.duration / 2)
|
|
344
|
+
};
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
277
347
|
steeredRowRef.current = row;
|
|
278
348
|
scroller.scrollTo({
|
|
279
|
-
left
|
|
349
|
+
left,
|
|
280
350
|
behavior
|
|
281
351
|
});
|
|
282
|
-
}, [paneSize, minMonthIndex, rowCount, isRTL, recenter]);
|
|
352
|
+
}, [paneSize, minMonthIndex, rowCount, isRTL, recenter, stopDip]);
|
|
283
353
|
|
|
284
354
|
// Deliberately un-keyed: it runs after every render, costs a null check, and
|
|
285
355
|
// must fire on whichever render finally mounts the pending row's pane.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanelSearchInput.d.ts","sourceRoot":"","sources":["../../src/Field/PanelSearchInput.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAwB,KAAK,GAAG,EAAC,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAenD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"PanelSearchInput.d.ts","sourceRoot":"","sources":["../../src/Field/PanelSearchInput.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAwB,KAAK,GAAG,EAAC,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAenD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAiF5C,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,SAAS,CAAC,gBAAgB,CAAC,EAC3B,UAAU,CACX;IACC,iEAAiE;IACjE,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE5B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IAEnB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IAEd,kEAAkE;IAClE,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC,wCAAwC;IACxC,SAAS,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAEzD,0EAA0E;IAC1E,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEpD,yEAAyE;IACzE,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEnD;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAEhE;;;;;OAKG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,KAAK,EACL,UAAU,EACV,WAAW,EACX,KAAK,EACL,aAAa,EACb,SAAS,EACT,OAAO,EACP,MAAM,EACN,kBAAkB,EAClB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,qBAAqB,+BAmFvB;yBAnGe,gBAAgB"}
|
|
@@ -47,6 +47,7 @@ import { useInteractionModalityTracking } from "../utils/interactionModality.js"
|
|
|
47
47
|
import { useMergedRefs } from "../hooks/useMergedRefs.js";
|
|
48
48
|
import "../theme/tokens.stylex.js";
|
|
49
49
|
import { colorVars, durationVars, easeVars, radiusVars, spacingVars, typeScaleVars, typographyVars } from "../theme/tokens.stylex.js";
|
|
50
|
+
import { textEntryTraitAttributes } from "./textEntryTraits.js";
|
|
50
51
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
51
52
|
const styles = {
|
|
52
53
|
wrapper: {
|
|
@@ -153,7 +154,13 @@ export function PanelSearchInput({
|
|
|
153
154
|
xstyle: styles.icon
|
|
154
155
|
}), /*#__PURE__*/_jsx("input", {
|
|
155
156
|
ref: mergedInputRef,
|
|
156
|
-
type: "text"
|
|
157
|
+
type: "text"
|
|
158
|
+
// Autocorrect would rewrite names and identifiers.
|
|
159
|
+
,
|
|
160
|
+
...textEntryTraitAttributes({
|
|
161
|
+
enterKeyHint: 'search',
|
|
162
|
+
hasAutoCorrect: false
|
|
163
|
+
}),
|
|
157
164
|
"aria-label": label,
|
|
158
165
|
placeholder: placeholder,
|
|
159
166
|
value: value,
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file textEntryTraits.ts
|
|
3
3
|
* @input The keyboard-trait props a text field accepts
|
|
4
|
-
* @output
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* @position Shared by TextInput and TextArea: the one place that says how a
|
|
9
|
-
* field tells a touch keyboard what it holds
|
|
4
|
+
* @output EnterKeyHint, InputMode and AutoCapitalize (the package entry exports
|
|
5
|
+
* these), TextEntryTraitProps and textEntryTraitAttributes
|
|
6
|
+
* @position Shared by TextInput, TextArea and the search inputs: the one place
|
|
7
|
+
* that says how a field tells a touch keyboard what it holds
|
|
10
8
|
*
|
|
11
9
|
* SYNC: When modified, update:
|
|
12
10
|
* - /packages/core/src/TextInput/TextInput.tsx and TextInput.doc.mjs
|
|
13
11
|
* - /packages/core/src/TextArea/TextArea.tsx and TextArea.doc.mjs
|
|
12
|
+
* - /packages/core/src/Typeahead/BaseTypeahead.tsx, Field/PanelSearchInput.tsx
|
|
13
|
+
* and CommandPalette/CommandPaletteInput.tsx (the search inputs)
|
|
14
14
|
* - /packages/core/src/Field/index.ts (type exports)
|
|
15
15
|
*/
|
|
16
16
|
/**
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* @file textEntryTraits.ts
|
|
5
5
|
* @input The keyboard-trait props a text field accepts
|
|
6
|
-
* @output
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* @position Shared by TextInput and TextArea: the one place that says how a
|
|
11
|
-
* field tells a touch keyboard what it holds
|
|
6
|
+
* @output EnterKeyHint, InputMode and AutoCapitalize (the package entry exports
|
|
7
|
+
* these), TextEntryTraitProps and textEntryTraitAttributes
|
|
8
|
+
* @position Shared by TextInput, TextArea and the search inputs: the one place
|
|
9
|
+
* that says how a field tells a touch keyboard what it holds
|
|
12
10
|
*
|
|
13
11
|
* SYNC: When modified, update:
|
|
14
12
|
* - /packages/core/src/TextInput/TextInput.tsx and TextInput.doc.mjs
|
|
15
13
|
* - /packages/core/src/TextArea/TextArea.tsx and TextArea.doc.mjs
|
|
14
|
+
* - /packages/core/src/Typeahead/BaseTypeahead.tsx, Field/PanelSearchInput.tsx
|
|
15
|
+
* and CommandPalette/CommandPaletteInput.tsx (the search inputs)
|
|
16
16
|
* - /packages/core/src/Field/index.ts (type exports)
|
|
17
17
|
*/
|
|
18
18
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../src/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../src/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,SAAS,CAAC;AAWnD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjE,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1D;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACvC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA6VD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAS,EACT,GAAS,EACT,KAAK,EACL,aAAqB,EACrB,aAAqB,EACrB,gBAA0C,EAC1C,OAAkB,EAClB,eAAuB,EACvB,UAAkB,EAClB,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,UAAU,EACzB,GAAG,EACH,GAAG,IAAI,EACR,EAAE,gBAAgB,+BA4KlB;yBA7Le,WAAW"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @file ProgressBar.tsx
|
|
7
|
-
* @input Uses React, useId, stylex,
|
|
7
|
+
* @input Uses React, useId, stylex, tokens and ProgressBarTouch
|
|
8
8
|
* @output Exports ProgressBar component, ProgressBarProps, ProgressBarVariant types
|
|
9
9
|
* @position Core implementation; consumed by index.ts
|
|
10
10
|
*
|
|
@@ -24,11 +24,13 @@ import { mergeProps } from "../utils/index.js";
|
|
|
24
24
|
import { focusOutlineStyles } from "../utils/focusOutline.stylex.js";
|
|
25
25
|
import { themeProps } from "../utils/themeProps.js";
|
|
26
26
|
import { VisuallyHidden } from "../VisuallyHidden/index.js";
|
|
27
|
-
import {
|
|
27
|
+
import { useProgressBarTouch } from "./ProgressBarTouch.js";
|
|
28
|
+
|
|
28
29
|
// Every mark is wrapped in a Tooltip (marks always carry a label), so load it
|
|
29
30
|
// lazily: a ProgressBar with no marks never bundles the Tooltip chunk. While it
|
|
30
31
|
// loads, the Suspense fallback shows the bare mark, so nothing disappears; the
|
|
31
32
|
// tooltip simply attaches once the chunk is ready.
|
|
33
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
32
34
|
const LazyProgressBarMarkTooltip = /*#__PURE__*/lazy(async () => import("./ProgressBarMarkTooltip.js"));
|
|
33
35
|
|
|
34
36
|
/**
|
|
@@ -69,18 +71,22 @@ const styles = {
|
|
|
69
71
|
$$css: true
|
|
70
72
|
},
|
|
71
73
|
fill: {
|
|
72
|
-
kzqmXN: "xh8yej3 xtyencx",
|
|
74
|
+
kzqmXN: "xh8yej3 xtyencx x1j61smm",
|
|
73
75
|
kZKoxP: "x5yr21d",
|
|
74
76
|
kMeerF: "xcthrzx",
|
|
75
77
|
k3XXqK: "x815t2r",
|
|
76
78
|
kjBf7l: "x3teovq",
|
|
77
79
|
kInvED: "xvr1dqx",
|
|
78
80
|
kaIpWk: "xjspbzw",
|
|
79
|
-
k3aq6I: "x8mk83g x13s8k5t x1xwfpud x10rjfdt",
|
|
81
|
+
k3aq6I: "x8mk83g x13s8k5t x1xwfpud x1ayxeub x1rvio82 x10rjfdt",
|
|
80
82
|
k6sLGO: "x1so62im x1mfxj9n",
|
|
81
83
|
k1ekBW: "x11xpdln x18hto2h",
|
|
82
|
-
kIyJzY: "x80gvsz xo2sced x1r9o9eb",
|
|
83
|
-
kAMwcw: "xlr8y92",
|
|
84
|
+
kIyJzY: "x80gvsz x1k32oa2 x11y4s09 xo2sced x1r9o9eb",
|
|
85
|
+
kAMwcw: "xlr8y92 x1itqrb8",
|
|
86
|
+
$$css: true
|
|
87
|
+
},
|
|
88
|
+
fillEmpty: {
|
|
89
|
+
kSiTet: "x17di44q",
|
|
84
90
|
$$css: true
|
|
85
91
|
},
|
|
86
92
|
indeterminateFill: {
|
|
@@ -277,8 +283,12 @@ export function ProgressBar({
|
|
|
277
283
|
const valueText = formatValueLabel(clampedValue, safeMax);
|
|
278
284
|
const showValueLabel = hasValueLabel && !isIndeterminate;
|
|
279
285
|
const fillVariant = isDisabled ? 'disabled' : variant;
|
|
286
|
+
// Under a finger the fill moves as UIProgressView's does and draws at least
|
|
287
|
+
// 16px; what that needs from script is the touch layer's (ProgressBarTouch).
|
|
288
|
+
const touch = useProgressBarTouch(percentage, !isIndeterminate && (marks?.length ?? 0) > 0);
|
|
280
289
|
const fillStyle = {
|
|
281
|
-
'--_progress-bar-fill': `${percentage}
|
|
290
|
+
'--_progress-bar-fill': `${percentage}%`,
|
|
291
|
+
...touch.fillVars
|
|
282
292
|
};
|
|
283
293
|
|
|
284
294
|
// Marks make no sense without a determinate value, so they are only drawn
|
|
@@ -298,7 +308,7 @@ export function ProgressBar({
|
|
|
298
308
|
value: mark.value,
|
|
299
309
|
label: mark.label,
|
|
300
310
|
pct,
|
|
301
|
-
isOnFill: percentage > 0 && pct <=
|
|
311
|
+
isOnFill: percentage > 0 && pct <= touch.drawnPercentage
|
|
302
312
|
};
|
|
303
313
|
}) : [];
|
|
304
314
|
return /*#__PURE__*/_jsxs("div", {
|
|
@@ -354,6 +364,7 @@ export function ProgressBar({
|
|
|
354
364
|
"aria-valuemax": isIndeterminate ? undefined : safeMax,
|
|
355
365
|
"aria-labelledby": labelId,
|
|
356
366
|
"aria-valuetext": isIndeterminate ? undefined : valueText,
|
|
367
|
+
ref: touch.trackRef,
|
|
357
368
|
...mergeProps(themeProps('progress-bar-track'), {
|
|
358
369
|
className: "xh8yej3 xdk7pt xwmxj5m xjspbzw xb3r6kr"
|
|
359
370
|
}),
|
|
@@ -364,7 +375,7 @@ export function ProgressBar({
|
|
|
364
375
|
}) : /*#__PURE__*/_jsx("div", {
|
|
365
376
|
...mergeProps(themeProps('progress-bar-fill', {
|
|
366
377
|
variant: fillVariant
|
|
367
|
-
}), stylex.props(styles.fill, variantStyles[fillVariant])),
|
|
378
|
+
}), stylex.props(styles.fill, percentage === 0 && styles.fillEmpty, variantStyles[fillVariant])),
|
|
368
379
|
style: fillStyle
|
|
369
380
|
})
|
|
370
381
|
}), resolvedMarks.map(mark => {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file ProgressBarTouch.ts
|
|
3
|
+
* @input Uses React, the touch presentation resolver, the shared resize
|
|
4
|
+
* observer, and the progress table's roles (through resolveMotion)
|
|
5
|
+
* @output useProgressBarTouch: the fill's touch variables (move length,
|
|
6
|
+
* curve, return offset, minimum length) and, under a finger with marks,
|
|
7
|
+
* the share of the track the fill draws
|
|
8
|
+
* @position ProgressBar's touch layer, imported only by ProgressBar.tsx
|
|
9
|
+
*
|
|
10
|
+
* SYNC: When modified, update /packages/core/src/ProgressBar/ProgressBar.tsx
|
|
11
|
+
* (its touch styles read these variables and the 16px minimum) and
|
|
12
|
+
* /packages/core/src/motion/uikit/progressBar.ts.
|
|
13
|
+
*/
|
|
14
|
+
import { type RefObject } from 'react';
|
|
15
|
+
/**
|
|
16
|
+
* Under a finger the fill never draws shorter than this above zero:
|
|
17
|
+
* UIProgressView's minimum, two track heights, on ProgressBar's 8px track.
|
|
18
|
+
*/
|
|
19
|
+
export declare const TOUCH_MIN_FILL_PX: number;
|
|
20
|
+
export interface ProgressBarTouch {
|
|
21
|
+
/** The fill's touch timing variables, set inline on the fill. */
|
|
22
|
+
fillVars: Record<'--_progress-bar-move' | '--_progress-bar-curve' | '--_progress-bar-flip' | '--_progress-bar-min', string>;
|
|
23
|
+
/** The track, measured under a finger when the bar has marks. */
|
|
24
|
+
trackRef: RefObject<HTMLDivElement | null>;
|
|
25
|
+
/** The share of the track the fill draws (0–100), for placing marks. */
|
|
26
|
+
drawnPercentage: number;
|
|
27
|
+
}
|
|
28
|
+
export declare function useProgressBarTouch(percentage: number, hasMarks: boolean): ProgressBarTouch;
|
|
29
|
+
//# sourceMappingURL=ProgressBarTouch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBarTouch.d.ts","sourceRoot":"","sources":["../../src/ProgressBar/ProgressBarTouch.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAA8B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAUlE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QACiC,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CACZ,sBAAsB,GACtB,uBAAuB,GACvB,sBAAsB,GACtB,qBAAqB,EACvB,MAAM,CACP,CAAC;IACF,iEAAiE;IACjE,QAAQ,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC3C,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,GAChB,gBAAgB,CAuDlB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @file ProgressBarTouch.ts
|
|
7
|
+
* @input Uses React, the touch presentation resolver, the shared resize
|
|
8
|
+
* observer, and the progress table's roles (through resolveMotion)
|
|
9
|
+
* @output useProgressBarTouch: the fill's touch variables (move length,
|
|
10
|
+
* curve, return offset, minimum length) and, under a finger with marks,
|
|
11
|
+
* the share of the track the fill draws
|
|
12
|
+
* @position ProgressBar's touch layer, imported only by ProgressBar.tsx
|
|
13
|
+
*
|
|
14
|
+
* SYNC: When modified, update /packages/core/src/ProgressBar/ProgressBar.tsx
|
|
15
|
+
* (its touch styles read these variables and the 16px minimum) and
|
|
16
|
+
* /packages/core/src/motion/uikit/progressBar.ts.
|
|
17
|
+
*/
|
|
18
|
+
import { useEffect, useRef, useState } from 'react';
|
|
19
|
+
import { formatMotionRoleValue } from "../motion/roles.js";
|
|
20
|
+
import { resolveMotion } from "../motion/resolveMotion.js";
|
|
21
|
+
import { progressBar } from "../motion/uikit/progressBar.js";
|
|
22
|
+
import { observeResize } from "../utils/sharedResizeObserver.js";
|
|
23
|
+
import { useTouchPresentation } from "../utils/touchPresentation.js";
|
|
24
|
+
|
|
25
|
+
/** The track's height. */
|
|
26
|
+
const TRACK_HEIGHT_PX = 8;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Under a finger the fill never draws shorter than this above zero:
|
|
30
|
+
* UIProgressView's minimum, two track heights, on ProgressBar's 8px track.
|
|
31
|
+
*/
|
|
32
|
+
export const TOUCH_MIN_FILL_PX = progressBar.progressView.minimumFillHeights * TRACK_HEIGHT_PX;
|
|
33
|
+
export function useProgressBarTouch(percentage, hasMarks) {
|
|
34
|
+
// The touch fill's duration comes from how far the value moved since the
|
|
35
|
+
// last value, the model change that UIKit measures. It holds until the next
|
|
36
|
+
// change, so a re-render with the same value keeps it.
|
|
37
|
+
const [motion, setMotion] = useState({
|
|
38
|
+
percentage,
|
|
39
|
+
change: 0,
|
|
40
|
+
flip: 0
|
|
41
|
+
});
|
|
42
|
+
const isNewValue = motion.percentage !== percentage;
|
|
43
|
+
// The share of the track the value moved (0–1). `flip` steps through three
|
|
44
|
+
// values on every change (see the fill's touch transform).
|
|
45
|
+
const change = isNewValue ? Math.abs(percentage - motion.percentage) / 100 : motion.change;
|
|
46
|
+
const flip = isNewValue ? (motion.flip + 1) % 3 : motion.flip;
|
|
47
|
+
if (isNewValue) {
|
|
48
|
+
setMotion({
|
|
49
|
+
percentage,
|
|
50
|
+
change,
|
|
51
|
+
flip
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Under a finger the fill draws at least TOUCH_MIN_FILL_PX long, so a mark
|
|
56
|
+
// it covers there sits on the fill. That length is a share of the track's
|
|
57
|
+
// width, which only layout knows. So the track is measured, but only under
|
|
58
|
+
// a finger and only when the bar has marks.
|
|
59
|
+
const {
|
|
60
|
+
isTouch
|
|
61
|
+
} = useTouchPresentation();
|
|
62
|
+
const watchesTrack = isTouch && hasMarks;
|
|
63
|
+
const trackRef = useRef(null);
|
|
64
|
+
const [trackWidth, setTrackWidth] = useState(0);
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
const element = trackRef.current;
|
|
67
|
+
if (!watchesTrack || element == null) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// The shared observer; its first call (on registration) carries no
|
|
71
|
+
// contentRect, so that one reads the box.
|
|
72
|
+
return observeResize(element, entry => {
|
|
73
|
+
setTrackWidth(entry.contentRect?.width ?? element.getBoundingClientRect().width);
|
|
74
|
+
});
|
|
75
|
+
}, [watchesTrack]);
|
|
76
|
+
const drawnPercentage = watchesTrack && percentage > 0 && trackWidth > 0 ? Math.max(percentage, TOUCH_MIN_FILL_PX / trackWidth * 100) : percentage;
|
|
77
|
+
|
|
78
|
+
// CSS applies the theme's tempo to this duration.
|
|
79
|
+
const fillTrackMs = resolveMotion(null, progressBar, 'fillTrackMs');
|
|
80
|
+
const curve = resolveMotion(null, progressBar.curves.fill);
|
|
81
|
+
return {
|
|
82
|
+
fillVars: {
|
|
83
|
+
'--_progress-bar-move': `${Math.round(change * fillTrackMs * 1000) / 1000}ms`,
|
|
84
|
+
'--_progress-bar-curve': formatMotionRoleValue('curve', curve),
|
|
85
|
+
'--_progress-bar-flip': String(flip),
|
|
86
|
+
'--_progress-bar-min': `${TOUCH_MIN_FILL_PX}px`
|
|
87
|
+
},
|
|
88
|
+
trackRef,
|
|
89
|
+
drawnPercentage
|
|
90
|
+
};
|
|
91
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseTypeahead.d.ts","sourceRoot":"","sources":["../../src/Typeahead/BaseTypeahead.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAgCnD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAgB,cAAc,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseTypeahead.d.ts","sourceRoot":"","sources":["../../src/Typeahead/BaseTypeahead.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAgCnD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAgB,cAAc,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AAmBzE,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,cAAc,CAAE,SAAQ,IAAI,CACxE,SAAS,CAAC,WAAW,CAAC,EACtB,UAAU,CACX;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAE9B;;OAEG;IACH,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAEnC;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IAEpC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IAEtD;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;IAE3B;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAE1C;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAE/D;;;;OAIG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AA8MD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa,EAq1CrB,CAAC,CAAC,SAAS,cAAc,EAC5B,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,KACzB,KAAK,CAAC,YAAY,CAAC"}
|
|
@@ -46,6 +46,7 @@ import { layerViewportInset } from "../Layer/layerViewportInset.stylex.js";
|
|
|
46
46
|
import { clampInlineSize } from "../Layer/clampInlineSize.js";
|
|
47
47
|
import { registerEnglishFallback, useComponentTranslator } from "../i18n/useComponentTranslator.js";
|
|
48
48
|
import english from "../i18n/generated-english/Typeahead/BaseTypeahead.generated.js";
|
|
49
|
+
import { textEntryTraitAttributes } from "../Field/textEntryTraits.js";
|
|
49
50
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
50
51
|
registerEnglishFallback(english);
|
|
51
52
|
// =============================================================================
|
|
@@ -1218,7 +1219,14 @@ export const BaseTypeahead = function BaseTypeahead({
|
|
|
1218
1219
|
readOnly: isFocusableDisabled || undefined,
|
|
1219
1220
|
autoFocus: hasAutoFocus,
|
|
1220
1221
|
"data-autofocus": hasAutoFocus || undefined,
|
|
1221
|
-
autoComplete: "off"
|
|
1222
|
+
autoComplete: "off"
|
|
1223
|
+
// Autocorrect would rewrite names and identifiers. The key is only a
|
|
1224
|
+
// label: Enter still commits the highlighted option.
|
|
1225
|
+
,
|
|
1226
|
+
...textEntryTraitAttributes({
|
|
1227
|
+
enterKeyHint: 'search',
|
|
1228
|
+
hasAutoCorrect: false
|
|
1229
|
+
}),
|
|
1222
1230
|
...mergeProps(stylex.props(styles.input, isDisabled && styles.inputDisabled, inputXStyle, xstyle), className, style)
|
|
1223
1231
|
}), isLoading && busyLane == null && /*#__PURE__*/_jsx("span", {
|
|
1224
1232
|
...{
|
package/dist/astryx.css
CHANGED
|
@@ -1700,6 +1700,7 @@
|
|
|
1700
1700
|
@media (pointer: coarse){.xhj50sb.xhj50sb:not(#\#):not(#\#):not(#\#){display:none}}
|
|
1701
1701
|
@media (max-width: 480px){.x1rpgqan.x1rpgqan:not(#\#):not(#\#):not(#\#){flex-direction:column}}
|
|
1702
1702
|
@media (pointer: coarse){.x1jymrmb.x1jymrmb:not(#\#):not(#\#):not(#\#){margin-inline-start:auto}}
|
|
1703
|
+
@media (pointer: coarse){.x17di44q.x17di44q:not(#\#):not(#\#):not(#\#){opacity:0}}
|
|
1703
1704
|
@media (prefers-reduced-motion: reduce) and (pointer: coarse){.x1m67veq.x1m67veq:not(#\#):not(#\#):not(#\#){opacity:0}}
|
|
1704
1705
|
@media (forced-colors: active){.x1tbh5bv.x1tbh5bv:not(#\#):not(#\#):not(#\#){opacity:1}}
|
|
1705
1706
|
@media (pointer: coarse){.xozvky.xozvky:not(#\#):not(#\#):not(#\#){order:1}}
|
|
@@ -1717,6 +1718,7 @@
|
|
|
1717
1718
|
@media (pointer: coarse){.x1xekgvp.x1xekgvp:not(#\#):not(#\#):not(#\#){touch-action:manipulation}}
|
|
1718
1719
|
@media (forced-colors: active){.x10rjfdt.x10rjfdt:not(#\#):not(#\#):not(#\#){transform:none}}
|
|
1719
1720
|
@media (prefers-reduced-motion: reduce){.xuupxpy.xuupxpy:not(#\#):not(#\#):not(#\#){transform:none}}
|
|
1721
|
+
@media (pointer: coarse) and (not (forced-colors: active)){.x1ayxeub.x1ayxeub:not(#\#):not(#\#):not(#\#){transform:translateX(calc(max(var(--_progress-bar-fill,0%),var(--_progress-bar-min,0px)) - 100% + var(--_progress-bar-flip,0) * .01px))}}
|
|
1720
1722
|
@media (prefers-reduced-motion: reduce){.x1oe9tb1.x1oe9tb1:not(#\#):not(#\#):not(#\#){transform:translateY(0)}}
|
|
1721
1723
|
@media (prefers-reduced-motion: reduce){.x1k6wr6r.x1k6wr6r:not(#\#):not(#\#):not(#\#){transition-delay:0s,0s}}
|
|
1722
1724
|
@media (prefers-reduced-motion: reduce){.xwgk2z2.xwgk2z2:not(#\#):not(#\#):not(#\#){transition-delay:var(--_reveal-delay-reduced,0s,0s)}}
|
|
@@ -1728,12 +1730,14 @@
|
|
|
1728
1730
|
@media (prefers-reduced-motion: reduce) and (not (pointer: coarse)){.xuh6ohu.xuh6ohu:not(#\#):not(#\#):not(#\#){transition-duration:0s}}
|
|
1729
1731
|
@media (prefers-reduced-motion: reduce) and (pointer: coarse){.x1r9o9eb.x1r9o9eb:not(#\#):not(#\#):not(#\#){transition-duration:0s}}
|
|
1730
1732
|
@media (prefers-reduced-motion: reduce){.x12w9bfk.x12w9bfk:not(#\#):not(#\#):not(#\#){transition-duration:0s}}
|
|
1733
|
+
@media (((pointer: coarse) and (not (prefers-reduced-motion: reduce)) and (not (prefers-reduced-motion: reduce))) or ((pointer: coarse) and (not (prefers-reduced-motion: reduce)) and (not (pointer: coarse)))) or (((pointer: coarse) and (not ((not (pointer: coarse)))) and (not (prefers-reduced-motion: reduce))) or ((pointer: coarse) and (not ((not (pointer: coarse)))) and (not (pointer: coarse)))){.x1k32oa2.x1k32oa2:not(#\#):not(#\#):not(#\#){transition-duration:calc(var(--_progress-bar-move,0s) * var(--_astryx-motion-tempo,1))}}
|
|
1731
1734
|
@media ((prefers-reduced-motion: reduce) and (pointer: coarse) and (not (prefers-reduced-motion: reduce))) or ((prefers-reduced-motion: reduce) and (pointer: coarse) and (not ((not (pointer: coarse))))){.x7jh41u.x7jh41u:not(#\#):not(#\#):not(#\#){transition-duration:200ms}}
|
|
1732
1735
|
@media (prefers-reduced-motion: reduce){.x4wkmsb.x4wkmsb:not(#\#):not(#\#):not(#\#){transition-property:none}}
|
|
1733
1736
|
@media (prefers-reduced-motion: reduce){.x3ya4ca.x3ya4ca:not(#\#):not(#\#):not(#\#){transition-property:opacity,overlay,display}}
|
|
1734
1737
|
@media (forced-colors: active){.x18hto2h.x18hto2h:not(#\#):not(#\#):not(#\#){transition-property:width}}
|
|
1735
1738
|
@media (pointer: coarse){.x1s1rlkj.x1s1rlkj:not(#\#):not(#\#):not(#\#){transition-timing-function:cubic-bezier(.3,0,.6,.6)}}
|
|
1736
1739
|
@media (prefers-reduced-motion: reduce) and (pointer: coarse){.x19dgjhz.x19dgjhz:not(#\#):not(#\#):not(#\#){transition-timing-function:cubic-bezier(.42,0,.58,1)}}
|
|
1740
|
+
@media (pointer: coarse){.x1itqrb8.x1itqrb8:not(#\#):not(#\#):not(#\#){transition-timing-function:var(--_progress-bar-curve,linear)}}
|
|
1737
1741
|
@media (prefers-reduced-motion: reduce) and (pointer: coarse){.x15tucas.x15tucas:not(#\#):not(#\#):not(#\#){transition-timing-function:cubic-bezier(0.42, 0, 0.58, 1)}}
|
|
1738
1742
|
@media (forced-colors: active){.x1mfxj9n.x1mfxj9n:not(#\#):not(#\#):not(#\#){will-change:auto}}
|
|
1739
1743
|
.x1anq1lc.x1anq1lc:active:where(:not(:disabled,[aria-disabled="true"])):not(#\#):not(#\#):not(#\#){background-color:var(--color-overlay-pressed)}
|
|
@@ -1780,11 +1784,13 @@
|
|
|
1780
1784
|
@media (hover: hover){.xo5jvnm.xo5jvnm.xo5jvnm:hover:where(:not(:disabled,[aria-disabled="true"])):not(#\#):not(#\#):not(#\#){color:var(--color-text-primary)}}
|
|
1781
1785
|
@media (pointer: coarse){.xom6oz5.xom6oz5.xom6oz5:active:where(:not(:disabled,[aria-disabled="true"])):not(#\#):not(#\#):not(#\#){transform:scale(1)}}
|
|
1782
1786
|
@media (forced-colors: active){.x1xwfpud.x1xwfpud:dir(rtl):not(#\#):not(#\#):not(#\#){transform:none}}
|
|
1787
|
+
@media (pointer: coarse) and (not (forced-colors: active)){.x1rvio82.x1rvio82:dir(rtl):not(#\#):not(#\#):not(#\#){transform:translateX(calc(min(calc(100% - var(--_progress-bar-fill,0%)),calc(100% - var(--_progress-bar-min,0px))) - var(--_progress-bar-flip,0) * .01px))}}
|
|
1783
1788
|
@container (max-width: 399px){.x1alyx8p.x1alyx8p:not(#\#):not(#\#):not(#\#){flex-wrap:wrap}}
|
|
1784
1789
|
@media (forced-colors: active){.x1vo6n7o.x1vo6n7o:active:not(#\#):not(#\#):not(#\#){background-color:Highlight}}
|
|
1785
1790
|
@media (hover: hover){.x1otsd3y.x1otsd3y.x1otsd3y:hover:where(:not(:disabled,[aria-disabled="true"])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-hover),var(--color-overlay-hover)),linear-gradient(var(--color-neutral),var(--color-neutral))}}
|
|
1786
1791
|
@media (pointer: coarse){.x5lqen6.x5lqen6:active:not(#\#):not(#\#):not(#\#){transform:scale(1)}}
|
|
1787
1792
|
@media (prefers-reduced-motion: reduce){@media (pointer: coarse){.x1qzunnh.x1qzunnh.x1qzunnh:not(#\#):not(#\#):not(#\#){transition-duration:.01s,.2s}}}
|
|
1793
|
+
@media (forced-colors: active){@media (((pointer: coarse) and (not (prefers-reduced-motion: reduce)) and (not (prefers-reduced-motion: reduce))) or ((pointer: coarse) and (not (prefers-reduced-motion: reduce)) and (not (pointer: coarse)))) or (((pointer: coarse) and (not ((not (pointer: coarse)))) and (not (prefers-reduced-motion: reduce))) or ((pointer: coarse) and (not ((not (pointer: coarse)))) and (not (pointer: coarse)))){.x11y4s09.x11y4s09.x11y4s09:not(#\#):not(#\#):not(#\#){transition-duration:0s}}}
|
|
1788
1794
|
@media (pointer: coarse){.x1s5nr2v.x1s5nr2v.x1s5nr2v:active:where(:not(:disabled,[aria-disabled="true"])):not(#\#):not(#\#):not(#\#){background-color:transparent}}
|
|
1789
1795
|
@media (pointer: coarse){.xvbnuu.xvbnuu.xvbnuu:active:where(:not(:disabled,[aria-disabled="true"])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-neutral),var(--color-neutral))}}
|
|
1790
1796
|
@media (hover: hover){.xo3fi6e.xo3fi6e.xo3fi6e:active:where(:not(:disabled,[aria-disabled="true"])):not(#\#):not(#\#):not(#\#){background-image:linear-gradient(var(--color-overlay-pressed),var(--color-overlay-pressed)),linear-gradient(var(--color-neutral),var(--color-neutral))}}
|
|
@@ -2209,6 +2215,7 @@
|
|
|
2209
2215
|
@media (forced-colors: active){.xtyencx.xtyencx:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--_progress-bar-fill,0%)}}
|
|
2210
2216
|
@media (max-width: 640px){.xci7e5a.xci7e5a:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--x-fqzwsx)}}
|
|
2211
2217
|
@supports (-webkit-touch-callout: none){@media (pointer: coarse){.x9w4715.x9w4715.x9w4715:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(max(1rem,var(--text-body-size)) * var(--text-body-leading));height:1lh}}}
|
|
2218
|
+
@media (pointer: coarse){@media (forced-colors: active){.x1j61smm.x1j61smm.x1j61smm:not(#\#):not(#\#):not(#\#):not(#\#){width:calc(max(var(--_progress-bar-fill,0%),var(--_progress-bar-min,0px)) + var(--_progress-bar-flip,0) * .01px)}}}
|
|
2212
2219
|
.x1heh2iz[data-astryx-press="fading"]:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){animation-duration:calc(.2s * min(var(--_astryx-motion-tempo,1),1.5))}
|
|
2213
2220
|
.xziyay6[data-astryx-press="fading"]:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){animation-fill-mode:both}
|
|
2214
2221
|
.x14e4jsf[data-astryx-press="fading"]:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){animation-name:x10jkm1t-B}
|
|
@@ -62,8 +62,15 @@ export interface ArenaBeganInput extends TouchBeganInput {
|
|
|
62
62
|
export interface GestureArenaOptions {
|
|
63
63
|
clock?: GestureClock;
|
|
64
64
|
environment?: GestureEnvironment;
|
|
65
|
-
/**
|
|
66
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Touches a recognizer now owns, and the recognizer that claimed them. A
|
|
67
|
+
* claim comes in any state: a recognizer that waits on another's failure
|
|
68
|
+
* claims while `possible`, and a swipe claims as `ended`. Each claim is
|
|
69
|
+
* reported once.
|
|
70
|
+
*/
|
|
71
|
+
onClaim?: (touchIds: ReadonlyArray<number>, claimer: GestureRecognizer) => void;
|
|
72
|
+
/** Claimed touches given back to the browser (releaseClaim). */
|
|
73
|
+
onRelease?: (touchIds: ReadonlyArray<number>) => void;
|
|
67
74
|
/** A click deferred at touch end resolved: replay it, or drop it. */
|
|
68
75
|
onDeferredClick?: (touch: GestureTouch, allowed: boolean) => void;
|
|
69
76
|
/**
|
|
@@ -72,6 +79,13 @@ export interface GestureArenaOptions {
|
|
|
72
79
|
* listening now (`spec:AST-094` FR24).
|
|
73
80
|
*/
|
|
74
81
|
onIdle?: () => void;
|
|
82
|
+
/**
|
|
83
|
+
* Whether the browser keeps a contact for itself while it is down. Then no
|
|
84
|
+
* claiming recognizer recognizes with it before its lift. So a mouse or pen
|
|
85
|
+
* drag that starts on selectable text selects that text. A recognition at
|
|
86
|
+
* the lift, such as a tap's, is unaffected.
|
|
87
|
+
*/
|
|
88
|
+
refusesClaim?: (touch: GestureTouch) => boolean;
|
|
75
89
|
/** Every recognizer transition, for debugging and tests. */
|
|
76
90
|
onTransition?: (recognizer: GestureRecognizer, from: GestureState, to: GestureState) => void;
|
|
77
91
|
}
|
|
@@ -169,6 +183,11 @@ export declare class GestureArena {
|
|
|
169
183
|
private attemptRecognition;
|
|
170
184
|
/** Whether `winner` being recognized prevents `other`. */
|
|
171
185
|
private conflicts;
|
|
186
|
+
/**
|
|
187
|
+
* Whether a recognizer that claims touches would take a contact the
|
|
188
|
+
* browser keeps while it is down (`refusesClaim`).
|
|
189
|
+
*/
|
|
190
|
+
private isRefusedByBrowser;
|
|
172
191
|
/** UIControl's rule: a control may veto an overlapping ancestor recognizer. */
|
|
173
192
|
private isVetoedByConsumer;
|
|
174
193
|
private fail;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GestureArena.d.ts","sourceRoot":"","sources":["../../src/gestures/GestureArena.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,kBAAkB,EAElB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,EAEX,MAAM,SAAS,CAAC;AAIjB,MAAM,WAAW,YAAY;IAC3B,GAAG,IAAI,MAAM,CAAC;IACd,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACtD,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACrC;AAED,+EAA+E;AAC/E,eAAO,MAAM,YAAY,EAAE,YAK1B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACvD,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC
|
|
1
|
+
{"version":3,"file":"GestureArena.d.ts","sourceRoot":"","sources":["../../src/gestures/GestureArena.ts"],"names":[],"mappings":"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"}
|