@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.
Files changed (67) hide show
  1. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  2. package/dist/CommandPalette/CommandPaletteInput.js +8 -1
  3. package/dist/DateInput/MonthScroller.d.ts.map +1 -1
  4. package/dist/DateInput/MonthScroller.js +72 -2
  5. package/dist/Field/PanelSearchInput.d.ts.map +1 -1
  6. package/dist/Field/PanelSearchInput.js +8 -1
  7. package/dist/Field/textEntryTraits.d.ts +6 -6
  8. package/dist/Field/textEntryTraits.js +6 -6
  9. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  10. package/dist/ProgressBar/ProgressBar.js +20 -9
  11. package/dist/ProgressBar/ProgressBarTouch.d.ts +29 -0
  12. package/dist/ProgressBar/ProgressBarTouch.d.ts.map +1 -0
  13. package/dist/ProgressBar/ProgressBarTouch.js +91 -0
  14. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  15. package/dist/Typeahead/BaseTypeahead.js +9 -1
  16. package/dist/astryx.css +7 -0
  17. package/dist/gestures/GestureArena.d.ts +21 -2
  18. package/dist/gestures/GestureArena.d.ts.map +1 -1
  19. package/dist/gestures/GestureArena.js +19 -2
  20. package/dist/gestures/GestureHost.d.ts +51 -1
  21. package/dist/gestures/GestureHost.d.ts.map +1 -1
  22. package/dist/gestures/GestureHost.js +148 -7
  23. package/dist/motion/animator.d.ts.map +1 -1
  24. package/dist/motion/animator.js +63 -5
  25. package/dist/motion/paging.d.ts +58 -0
  26. package/dist/motion/paging.d.ts.map +1 -0
  27. package/dist/motion/paging.js +128 -0
  28. package/dist/motion/uikit/index.d.ts +4 -3
  29. package/dist/motion/uikit/index.d.ts.map +1 -1
  30. package/dist/motion/uikit/index.js +4 -3
  31. package/dist/motion/uikit/paging.d.ts +160 -0
  32. package/dist/motion/uikit/paging.d.ts.map +1 -0
  33. package/dist/motion/uikit/paging.js +162 -0
  34. package/dist/motion/uikit/progressBar.d.ts +59 -0
  35. package/dist/motion/uikit/progressBar.d.ts.map +1 -0
  36. package/dist/motion/uikit/progressBar.js +82 -0
  37. package/dist/motion/uikit/scroll.d.ts +0 -19
  38. package/dist/motion/uikit/scroll.d.ts.map +1 -1
  39. package/dist/motion/uikit/scroll.js +2 -21
  40. package/dist/utils/selectionLock.d.ts +43 -0
  41. package/dist/utils/selectionLock.d.ts.map +1 -1
  42. package/dist/utils/selectionLock.js +394 -6
  43. package/package.json +4 -4
  44. package/src/CommandPalette/CommandPaletteInput.tsx +6 -0
  45. package/src/DateInput/MonthScroller.tsx +63 -5
  46. package/src/Field/PanelSearchInput.tsx +6 -0
  47. package/src/Field/textEntryTraits.ts +6 -6
  48. package/src/ProgressBar/ProgressBar.doc.mjs +3 -3
  49. package/src/ProgressBar/ProgressBar.tsx +82 -11
  50. package/src/ProgressBar/ProgressBarTouch.ts +109 -0
  51. package/src/Typeahead/BaseTypeahead.tsx +7 -0
  52. package/src/gestures/GestureArena.ts +44 -4
  53. package/src/gestures/GestureHost.ts +184 -7
  54. package/src/gestures/README.md +19 -3
  55. package/src/motion/MEASUREMENTS.md +8 -1
  56. package/src/motion/README.md +6 -3
  57. package/src/motion/animator.ts +78 -6
  58. package/src/motion/paging.ts +138 -0
  59. package/src/motion/uikit/index.ts +4 -3
  60. package/src/motion/uikit/paging.ts +162 -0
  61. package/src/motion/uikit/progressBar.ts +82 -0
  62. package/src/motion/uikit/scroll.ts +2 -18
  63. package/src/utils/selectionLock.ts +501 -6
  64. package/dist/motion/selectPage.d.ts +0 -26
  65. package/dist/motion/selectPage.d.ts.map +0 -1
  66. package/dist/motion/selectPage.js +0 -55
  67. 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;AA0E5C,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,+BAsL1B;yBAtMe,mBAAmB"}
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;AAgNlB,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,+BA0fpB;yBArgBe,aAAa"}
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: scrollOffsetForRow(row, paneSize, isRTL),
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;AAgF5C,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,+BA8EvB;yBA9Fe,gBAAgB"}
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 Exports the closed value unions EnterKeyHint, InputMode and
5
- * AutoCapitalize (the package entry exports these three), the fields' prop
6
- * mixin TextEntryTraitProps, and textEntryTraitAttributes, which maps the
7
- * props onto the native attributes of the editable element
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 Exports the closed value unions EnterKeyHint, InputMode and
7
- * AutoCapitalize (the package entry exports these three), the fields' prop
8
- * mixin TextEntryTraitProps, and textEntryTraitAttributes, which maps the
9
- * props onto the native attributes of the editable element
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;AAUnD;;;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;AAqSD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,+BA8JlB;yBA/Ke,WAAW"}
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, color/spacing/radius/transition tokens
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 { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
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 <= percentage
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;AAkBzE,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,EA+0CrB,CAAC,CAAC,SAAS,cAAc,EAC5B,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,KACzB,KAAK,CAAC,YAAY,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
- /** Touches a recognizer now owns: cancel the browser's default for them. */
66
- onClaim?: (touchIds: ReadonlyArray<number>) => void;
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":"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"}
1
+ {"version":3,"file":"GestureArena.d.ts","sourceRoot":"","sources":["../../src/gestures/GestureArena.ts"],"names":[],"mappings":"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"}