@astryxdesign/core 0.7.9-canary.d7a7dd3 → 0.7.9-canary.db3451e

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 (35) hide show
  1. package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
  2. package/dist/BottomSheet/useSheetGestures.js +36 -9
  3. package/dist/Icon/index.d.ts +8 -0
  4. package/dist/Icon/index.d.ts.map +1 -1
  5. package/dist/Item/Item.d.ts.map +1 -1
  6. package/dist/Item/Item.js +9 -2
  7. package/dist/MultiSelector/hooks.d.ts.map +1 -1
  8. package/dist/MultiSelector/hooks.js +28 -28
  9. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts +2 -1
  10. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  11. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +27 -5
  12. package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  13. package/dist/Table/plugins/sortable/useTableSortable.js +16 -8
  14. package/dist/Toast/Toast.js +4 -4
  15. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  16. package/dist/Toast/ToastViewport.js +61 -3
  17. package/dist/astryx.css +4 -1
  18. package/dist/privateAttributes/press.stylex.d.ts +5 -1
  19. package/dist/privateAttributes/press.stylex.d.ts.map +1 -1
  20. package/dist/privateAttributes/press.stylex.js +6 -1
  21. package/package.json +4 -4
  22. package/src/BottomSheet/useSheetGestures.ts +41 -10
  23. package/src/Calendar/useCalendarDays.doc.mjs +158 -0
  24. package/src/Icon/index.ts +6 -0
  25. package/src/Item/Item.tsx +14 -1
  26. package/src/MultiSelector/hooks.ts +28 -35
  27. package/src/MultiSelector/useMultiCombobox.doc.mjs +2 -2
  28. package/src/Overlay/useOverlay.doc.mjs +176 -0
  29. package/src/Table/Table.doc.mjs +34 -0
  30. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +32 -7
  31. package/src/Table/plugins/sortable/useTableSortable.tsx +19 -12
  32. package/src/Toast/Toast.doc.mjs +14 -0
  33. package/src/Toast/Toast.tsx +2 -2
  34. package/src/Toast/ToastViewport.tsx +40 -0
  35. package/src/privateAttributes/press.stylex.ts +21 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useSheetGestures.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/useSheetGestures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSheetGestures.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/useSheetGestures.ts"],"names":[],"mappings":"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"}
@@ -333,18 +333,26 @@ export function useSheetGestures({
333
333
  // onDismiss() and sets `pending`; the host answers in the same update, so
334
334
  // the first render afterwards says whether it took the close (its
335
335
  // controlled state now says closed: the exit under way is the drag's) or
336
- // refused it (a guarded onOpenChange left it open: the sheet snaps back and
337
- // the request is spent). Either way the flag is settled during render, the
338
- // prev-prop pattern, and derived back to false once the sheet is open
339
- // again — so a later close from a control, Escape or code is never
340
- // mistaken for a drag.
336
+ // refused it (a guarded onOpenChange left it open: the sheet snaps back,
337
+ // its scrim with it, and the request is spent). Either way the flag is
338
+ // settled during render, the prev-prop pattern, and derived back to false
339
+ // once the sheet is open again — so a later close from a control, Escape
340
+ // or code is never mistaken for a drag.
341
341
  const [touchDragDismissal, setTouchDragDismissal] = useState(null);
342
+ // The render that spends a refused request counts it. The layout effect
343
+ // below answers each count.
344
+ const [refusedDismissalCount, setRefusedDismissalCount] = useState(0);
342
345
  if (touchDragDismissal != null) {
343
346
  if (touchDragDismissal.pending) {
344
- setTouchDragDismissal(isOpenRequested ? null : {
345
- isTouch: touchDragDismissal.isTouch,
346
- pending: false
347
- });
347
+ if (isOpenRequested) {
348
+ setTouchDragDismissal(null);
349
+ setRefusedDismissalCount(count => count + 1);
350
+ } else {
351
+ setTouchDragDismissal({
352
+ isTouch: touchDragDismissal.isTouch,
353
+ pending: false
354
+ });
355
+ }
348
356
  } else if (isOpenRequested) {
349
357
  setTouchDragDismissal(null);
350
358
  }
@@ -452,6 +460,24 @@ export function useSheetGestures({
452
460
  hasFixedHeightRef.current = hasFixedHeight;
453
461
  });
454
462
 
463
+ // The release cannot know whether the host takes the close. The host
464
+ // answers through `isOpenRequested` in the next render. Keep the left
465
+ // detent's scrim until then.
466
+ const restingScrimOpacityRef = useRef(null);
467
+ // Syncs the host's scrim (its backdrop, written through `onScrimOpacity`)
468
+ // with the panel's return to rest after a refusal: the panel rests on that
469
+ // detent again, so the scrim the drag thinned toward the dismiss line rests
470
+ // with it. The refusal changes none of the host's own scrim inputs, so the
471
+ // drag's last value would otherwise stand.
472
+ useLayoutEffect(() => {
473
+ const restingScrimOpacity = restingScrimOpacityRef.current;
474
+ if (refusedDismissalCount === 0 || restingScrimOpacity == null) {
475
+ return;
476
+ }
477
+ restingScrimOpacityRef.current = null;
478
+ onScrimOpacityRef.current?.(restingScrimOpacity);
479
+ }, [refusedDismissalCount]);
480
+
455
481
  // Live drag bookkeeping (refs so pointermove doesn't churn renders).
456
482
  const dragStateRef = useRef(null);
457
483
 
@@ -770,6 +796,7 @@ export function useSheetGestures({
770
796
  if (dir > 0 && projected > dismissOffset) {
771
797
  if (canDismissRef.current) {
772
798
  prepareScrollAreaSettle(baseLayoutOffset, baseOffset, baseLayoutOffset, baseLayoutOffset, baseLayoutOffset, naturalEndGap, false);
799
+ restingScrimOpacityRef.current = scrimOpacityForOffset(baseOffset, offsets, dismissOffset, peekOffset);
773
800
  setTouchDragDismissal({
774
801
  isTouch,
775
802
  pending: true
@@ -62,6 +62,14 @@ export interface ComponentIconSlotMap {
62
62
  'timestamp-copy': {
63
63
  readonly copied: boolean;
64
64
  };
65
+ /** A sortable Table column's sort indicator, by the column's sort direction. */
66
+ 'table-sort-indicator': {
67
+ readonly direction: 'ascending' | 'descending' | 'none';
68
+ };
69
+ /** A Table row's expansion toggle (`useTableRowExpansion`), by whether the row is expanded. */
70
+ 'table-row-expand': {
71
+ readonly expanded: boolean;
72
+ };
65
73
  }
66
74
  /** A slot name from the augmentable {@link ComponentIconSlotMap}. */
67
75
  export type ComponentIconSlotName = keyof ComponentIconSlotMap & string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Icon/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,cAAc;CAAG;AAElC,kEAAkE;AAClE,MAAM,MAAM,WAAW,GAAG,MAAM,cAAc,GAAG,MAAM,CAAC;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,iBAAiB,EAAE;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAC,CAAC;IAC9C,kGAAkG;IAClG,gBAAgB,EAAE;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAC,CAAC;CAC9C;AAED,qEAAqE;AACrE,MAAM,MAAM,qBAAqB,GAAG,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAExE;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,MAAM,GAAG,WAAW,IACnE,QAAQ,CAAC;IACP,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB,CAAC,CAAC;AAEL;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,CAAC,KAAK,EAAE,OAAO,SAAS,MAAM,GAAG,WAAW,IACtE,QAAQ,GACR,IAAI,GACJ,oBAAoB,CAAC,OAAO,CAAC,GAC7B,CAAC,CACC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KACnB,oBAAoB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAE3D,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,WAAW,IAAI;KAClE,IAAI,IAAI,qBAAqB,CAAC,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,SAAS,IAAI,GACrE,QAAQ,GAAG,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAC/C,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CAC5D,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,MAAM,CAAC,qBAAqB,EAAE,QAAQ,GAAG,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAC9E,CAAC;AAEF,OAAO,EAAC,IAAI,EAAE,cAAc,EAAC,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,YAAY,EAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAGrE,OAAO,EACL,aAAa,EACb,eAAe,EACf,OAAO,EACP,eAAe,EACf,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,WAAW,GACZ,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Icon/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,cAAc;CAAG;AAElC,kEAAkE;AAClE,MAAM,MAAM,WAAW,GAAG,MAAM,cAAc,GAAG,MAAM,CAAC;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,iBAAiB,EAAE;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAC,CAAC;IAC9C,kGAAkG;IAClG,gBAAgB,EAAE;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAC,CAAC;IAC7C,gFAAgF;IAChF,sBAAsB,EAAE;QACtB,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;KACzD,CAAC;IACF,+FAA+F;IAC/F,kBAAkB,EAAE;QAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;KAAC,CAAC;CAClD;AAED,qEAAqE;AACrE,MAAM,MAAM,qBAAqB,GAAG,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAExE;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,MAAM,GAAG,WAAW,IACnE,QAAQ,CAAC;IACP,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB,CAAC,CAAC;AAEL;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,CAAC,KAAK,EAAE,OAAO,SAAS,MAAM,GAAG,WAAW,IACtE,QAAQ,GACR,IAAI,GACJ,oBAAoB,CAAC,OAAO,CAAC,GAC7B,CAAC,CACC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KACnB,oBAAoB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAE3D,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,WAAW,IAAI;KAClE,IAAI,IAAI,qBAAqB,CAAC,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,SAAS,IAAI,GACrE,QAAQ,GAAG,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAC/C,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CAC5D,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,MAAM,CAAC,qBAAqB,EAAE,QAAQ,GAAG,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAC9E,CAAC;AAEF,OAAO,EAAC,IAAI,EAAE,cAAc,EAAC,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,YAAY,EAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAGrE,OAAO,EACL,aAAa,EACb,eAAe,EACf,OAAO,EACP,eAAe,EACf,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,WAAW,GACZ,MAAM,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../src/Item/Item.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../src/Item/Item.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAUf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAoC5C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE1E,yFAAyF;AACzF,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;OAIG;IACH,UAAU,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wBAAwB;IACxB,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,oFAAoF;IACpF,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,SAAU,SAAQ,SAAS,CAAC,WAAW,CAAC;IACvD,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE7B;;;;;;;;;;;OAWG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;IAE/C;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB;;;OAGG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAE9B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAE5C;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAErD;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAE5B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAEhC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAElC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA2BD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,IAAI,GACL,EAAE;IACD,QAAQ,CAAC,YAAY,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1C,GAAG,OAAO,CAUV;AAuOD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,EACnB,EAAE,EAAE,SAAiB,EACrB,MAAM,EACN,YAAY,EACZ,KAAK,EACL,WAAW,EACX,UAAU,EACV,KAAgB,EAChB,OAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,MAAkB,EAClB,OAAO,EACP,cAAc,EACd,IAAI,EACJ,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,YAAY,EACjB,aAAqB,EACrB,UAAkB,EAClB,UAAkB,EAClB,YAAY,EACZ,aAAwB,EACxB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,IAAI,EACJ,GAAG,SAAS,EACb,EAAE,SAAS,+BA+aX;yBA3ce,IAAI"}
package/dist/Item/Item.js CHANGED
@@ -331,6 +331,7 @@ export function Item({
331
331
  });
332
332
  useDevWarning('Item', '`interactiveRef` is mutually exclusive with `onClick`/`href`. In ' + 'delegation mode the row only forwards clicks to the referenced control, ' + 'so `onClick`/`href` are ignored. Drop one of them.', isDelegate && (onClick != null || href != null));
333
333
  const isInteractive = onClick != null || href != null || isDelegate;
334
+ const hasStateFill = isHighlighted || isSelected;
334
335
  const {
335
336
  target,
336
337
  rel
@@ -593,11 +594,17 @@ export function Item({
593
594
  highlighted: isHighlighted ? 'highlighted' : null,
594
595
  selected: isSelected ? 'selected' : null,
595
596
  disabled: isDisabled ? 'disabled' : null
596
- }), focusOutlineProps.focusWithin(styles.root, densityStyles[density], align === 'start' && styles.alignStart, align === 'first-line' && styles.alignFirstLine, isInteractive && styles.interactive, isInteractive && interactionOverlayStyles.backgroundColor,
597
+ }), focusOutlineProps.focusWithin(styles.root, densityStyles[density], align === 'start' && styles.alignStart, align === 'first-line' && styles.alignFirstLine, isInteractive && styles.interactive,
598
+ // A row with a state fill keeps the fill as its background colour.
599
+ // Its overlay paints as an image layer over the fill.
600
+ isInteractive && (hasStateFill ? interactionOverlayStyles.backgroundImage : interactionOverlayStyles.backgroundColor),
597
601
  // The touch press on a compositor layer (after the overlay, whose
598
602
  // own touch paint it turns off): the release keeps fading while
599
603
  // script runs.
600
- isInteractive && rowPressLayerStyles.cell, isLinkRoot && styles.linkRoot, isHighlighted && styles.highlighted, isSelected && styles.selected, isDisabled && !hasParentRole && styles.disabled, hasSwipe && styles.swipeRoot, xstyle), className, style),
604
+ isInteractive && rowPressLayerStyles.cell,
605
+ // A highlighted row's fill is already the hover tone, so it shows
606
+ // only its press. A selected row also shows its hover.
607
+ isInteractive && hasStateFill && (isSelected ? rowPressLayerStyles.cellOnImage : rowPressLayerStyles.cellOnImagePressOnly), isLinkRoot && styles.linkRoot, isHighlighted && styles.highlighted, isSelected && styles.selected, isDisabled && !hasParentRole && styles.disabled, hasSwipe && styles.swipeRoot, xstyle), className, style),
601
608
  role: role,
602
609
  onClick: rootOnClick,
603
610
  children: [/*#__PURE__*/_jsx(ItemDescriptionContext, {
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/hooks.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,SAAS,CAAC;AAGrD,UAAU,uBAAuB;IAC/B,eAAe,EAAE,uBAAuB,EAAE,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpD,UAAU,sBAAsB;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,4EAA4E;IAC5E,eAAe,EAAE,iBAAiB,CAAC;IACnC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,iFAAiF;IACjF,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAC5C,gBAAgB,EAAE,CAChB,IAAI,EAAE,uBAAuB,EAC7B,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,iBAAiB,KACrB,IAAI,CAAC;CACX;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,eAAe,EACf,UAAkB,EAClB,MAAM,EACN,SAAiB,EACjB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,SAAS,EACT,MAAc,EACd,YAAY,EACZ,gBAAgB,GACjB,EAAE,uBAAuB,GAAG,sBAAsB,CAuSlD"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/hooks.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,SAAS,CAAC;AAGrD,UAAU,uBAAuB;IAC/B,eAAe,EAAE,uBAAuB,EAAE,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEpD,UAAU,sBAAsB;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,4EAA4E;IAC5E,eAAe,EAAE,iBAAiB,CAAC;IACnC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,iFAAiF;IACjF,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAC5C,gBAAgB,EAAE,CAChB,IAAI,EAAE,uBAAuB,EAC7B,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,iBAAiB,KACrB,IAAI,CAAC;CACX;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,eAAe,EACf,UAAkB,EAClB,MAAM,EACN,SAAiB,EACjB,MAAM,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,SAAS,EACT,MAAc,EACd,YAAY,EACZ,gBAAgB,GACjB,EAAE,uBAAuB,GAAG,sBAAsB,CAgSlD"}
@@ -4,7 +4,7 @@
4
4
 
5
5
  /**
6
6
  * @file hooks.ts
7
- * @input Uses React hooks, MultiSelectorOptionData type
7
+ * @input Uses React hooks, the shared useTypeahead hook, MultiSelectorOptionData type
8
8
  * @output Exports useMultiCombobox hook
9
9
  * @position Public hook, exported from the MultiSelector entry point; used by
10
10
  * MultiSelector.tsx
@@ -13,10 +13,10 @@
13
13
  * - /packages/core/src/MultiSelector/index.ts
14
14
  * - /packages/core/src/MultiSelector/useMultiCombobox.doc.mjs
15
15
  */
16
- import { useCallback, useRef, useState } from 'react';
16
+ import { useCallback, useState } from 'react';
17
17
  import { isRtlElement } from "../hooks/isRtlElement.js";
18
18
  import { useHighlightedOptionScroll } from "../hooks/useHighlightedOptionScroll.js";
19
- import { findTypeaheadMatch } from "../utils/typeaheadMatch.js";
19
+ import { useTypeahead } from "../hooks/useTypeahead.js";
20
20
 
21
21
  /** Which cell of the highlighted row the highlight is on. */
22
22
 
@@ -48,8 +48,19 @@ export function useMultiCombobox({
48
48
  setHighlightedIndexState(index);
49
49
  setHighlightedCell('option');
50
50
  }, []);
51
- const [typeahead, setTypeahead] = useState('');
52
- const typeaheadTimeoutRef = useRef(undefined);
51
+
52
+ // A match on the closed control opens the list on that option.
53
+ const typeahead = useTypeahead({
54
+ getItemLabels: () => selectableItems.map(item => item.label),
55
+ isDisabled: index => selectableItems[index]?.disabled === true,
56
+ getCurrentIndex: () => isOpen ? highlightedIndex : -1,
57
+ onMatch: index => {
58
+ if (isOpen || onOpen() !== false) {
59
+ setHighlightedIndex(index);
60
+ }
61
+ }
62
+ });
63
+ const resetTypeahead = typeahead.reset;
53
64
  const getItemId = useCallback(index => `${listboxId}-item-${index}`, [listboxId]);
54
65
  const getActionCellId = useCallback(index => `${listboxId}-item-${index}-action`, [listboxId]);
55
66
  const activeDescendantId = isOpen && highlightedIndex >= 0 ? isGrid && highlightedCell === 'action' ? getActionCellId(highlightedIndex) : getItemId(highlightedIndex) : undefined;
@@ -57,9 +68,11 @@ export function useMultiCombobox({
57
68
  return selectableItems.map((item, i) => !item.disabled ? i : -1).filter(i => i >= 0);
58
69
  }, [selectableItems]);
59
70
  const closeAndReset = useCallback(() => {
71
+ // Clear the typed prefix on close. Otherwise the next key extends it.
72
+ resetTypeahead();
60
73
  setHighlightedIndex(-1);
61
74
  onClose();
62
- }, [onClose, setHighlightedIndex]);
75
+ }, [onClose, resetTypeahead, setHighlightedIndex]);
63
76
  const onTriggerClick = useCallback(() => {
64
77
  if (isDisabled) {
65
78
  return;
@@ -97,6 +110,14 @@ export function useMultiCombobox({
97
110
  if (isDisabled) {
98
111
  return;
99
112
  }
113
+
114
+ // With hasSearch the query input owns typing, so type-to-select is off.
115
+ // Space stays the toggle: after a letter jumps to an option, Space picks
116
+ // it, so Space never extends the typed prefix here.
117
+ if (!hasSearch && e.key !== ' ' && typeahead.onKeyDown(e)) {
118
+ e.preventDefault();
119
+ return;
120
+ }
100
121
  const enabledIndices = getEnabledIndices();
101
122
 
102
123
  // In a grid the horizontal arrows move between the row's two cells,
@@ -222,29 +243,8 @@ export function useMultiCombobox({
222
243
  onClear();
223
244
  }
224
245
  break;
225
- default:
226
- // Typeahead only when search is not present
227
- if (!hasSearch && e.key.length === 1 && !e.ctrlKey && !e.metaKey) {
228
- const newTypeahead = typeahead + e.key;
229
- // INV17: the shared type-to-select fold, as Selector uses.
230
- const matchIndex = findTypeaheadMatch(selectableItems.flatMap((item, i) => item.disabled ? [] : [i]), i => selectableItems[i].label, newTypeahead);
231
- const didOpen = isOpen || matchIndex < 0 || onOpen() !== false;
232
- if (didOpen) {
233
- setTypeahead(newTypeahead);
234
- if (typeaheadTimeoutRef.current) {
235
- clearTimeout(typeaheadTimeoutRef.current);
236
- }
237
- typeaheadTimeoutRef.current = setTimeout(() => {
238
- setTypeahead('');
239
- }, 500);
240
- if (matchIndex >= 0) {
241
- setHighlightedIndex(matchIndex);
242
- }
243
- }
244
- }
245
- break;
246
246
  }
247
- }, [isDisabled, isOpen, onOpen, closeAndReset, selectableItems, highlightedIndex, highlightedCell, isGrid, rowHasAction, onActivateAction, setHighlightedIndex, onToggle, getEnabledIndices, typeahead, hasSearch, onClear, hasValue]);
247
+ }, [isDisabled, isOpen, onOpen, closeAndReset, selectableItems, highlightedIndex, highlightedCell, isGrid, rowHasAction, onActivateAction, setHighlightedIndex, onToggle, getEnabledIndices, hasSearch, typeahead, onClear, hasValue]);
248
248
  return {
249
249
  highlightedIndex,
250
250
  setHighlightedIndex,
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @file useTableRowExpansion.tsx
3
- * @input React, StyleX, Icon, Table types, table context (density), i18n
3
+ * @input React, StyleX, Icon, the theme's `table-row-expand` icon slot, Table
4
+ * types, table context (density), i18n
4
5
  * (useComponentTranslator)
5
6
  * @output Exports useTableRowExpansion hook + config type
6
7
  * @position Row-expansion plugin (detail panel); consumed by Table via plugins prop
@@ -1 +1 @@
1
- {"version":3,"file":"useTableRowExpansion.d.ts","sourceRoot":"","sources":["../../../../src/Table/plugins/rowExpansion/useTableRowExpansion.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAKL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAsBf,OAAO,KAAK,EACV,WAAW,EAMZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAKL,KAAK,cAAc,EAEpB,MAAM,gCAAgC,CAAC;AAoBxC;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3E,0CAA0C;IAC1C,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,kDAAkD;IAClD,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC/B;;;OAGG;IACH,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IACvC;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAClC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;IAC3C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IACvC;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAqaD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACpC,WAAW,CAAC,CAAC,CAAC,CAyfhB"}
1
+ {"version":3,"file":"useTableRowExpansion.d.ts","sourceRoot":"","sources":["../../../../src/Table/plugins/rowExpansion/useTableRowExpansion.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAKL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAwBf,OAAO,KAAK,EACV,WAAW,EAMZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAKL,KAAK,cAAc,EAEpB,MAAM,gCAAgC,CAAC;AAoBxC;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3E,0CAA0C;IAC1C,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,kDAAkD;IAClD,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC/B;;;OAGG;IACH,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IACvC;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAClC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;IAC3C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IACvC;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AA2bD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACpC,WAAW,CAAC,CAAC,CAAC,CAyfhB"}
@@ -4,7 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file useTableRowExpansion.tsx
7
- * @input React, StyleX, Icon, Table types, table context (density), i18n
7
+ * @input React, StyleX, Icon, the theme's `table-row-expand` icon slot, Table
8
+ * types, table context (density), i18n
8
9
  * (useComponentTranslator)
9
10
  * @output Exports useTableRowExpansion hook + config type
10
11
  * @position Row-expansion plugin (detail panel); consumed by Table via plugins prop
@@ -26,6 +27,8 @@ import { tableRowMarker } from "../../table.stylex.js";
26
27
  import { panelDividerFor } from "../../rowDivider.js";
27
28
  import { useTheme, useThemeName } from "../../../theme/useTheme.js";
28
29
  import { Icon } from "../../../Icon/index.js";
30
+ import { ComponentIcon } from "../../../Icon/ComponentIcon.js";
31
+ import { iconBoxSizeStyles } from "../../../Icon/IconSize.stylex.js";
29
32
  import { VisuallyHidden } from "../../../VisuallyHidden/index.js";
30
33
  import { resolveContextActions } from "../../tableContextMenu.js";
31
34
  import { useTableContext } from "../../useTableCellStyles.js";
@@ -94,6 +97,12 @@ const expansionStyles = {
94
97
  kTIkBA: "xy5bzlh",
95
98
  $$css: true
96
99
  },
100
+ glyphBox: {
101
+ k1xSpc: "x1rg5ohu",
102
+ kVAEAm: "x1n2onr6",
103
+ kmuXW: "x2lah0s",
104
+ $$css: true
105
+ },
97
106
  chevron: {
98
107
  k1ekBW: "x11xpdln",
99
108
  kIyJzY: "xuedmi6",
@@ -243,10 +252,23 @@ function ExpansionChevron({
243
252
  },
244
253
  "aria-label": ariaLabel,
245
254
  "aria-expanded": isExpanded,
246
- children: /*#__PURE__*/_jsx(Icon, {
247
- icon: "chevronRight",
248
- size: "xsm",
249
- xstyle: [expansionStyles.chevron, isExpanded ? expansionStyles.chevronExpanded : expansionStyles.chevronCollapsed]
255
+ children: /*#__PURE__*/_jsx("span", {
256
+ ...stylex.props(expansionStyles.glyphBox, iconBoxSizeStyles.xsm, expansionStyles.chevron, isExpanded ? expansionStyles.chevronExpanded : expansionStyles.chevronCollapsed),
257
+ children: /*#__PURE__*/_jsx("span", {
258
+ ...{
259
+ className: "x10l6tqk x10a8y8t x78zum5 x6s0dn4 xl56j7k"
260
+ },
261
+ children: /*#__PURE__*/_jsx(ComponentIcon, {
262
+ slot: "table-row-expand",
263
+ state: {
264
+ expanded: isExpanded
265
+ },
266
+ fallback: {
267
+ icon: 'chevronRight',
268
+ size: 'xsm'
269
+ }
270
+ })
271
+ })
250
272
  })
251
273
  });
252
274
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useTableSortable.d.ts","sourceRoot":"","sources":["../../../../src/Table/plugins/sortable/useTableSortable.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,WAAW,EAIZ,MAAM,aAAa,CAAC;AAarB;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,YAAY,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM;IAC9D,2EAA2E;IAC3E,OAAO,EAAE,QAAQ,CAAC;IAClB,0BAA0B;IAC1B,SAAS,EAAE,kBAAkB,CAAC;CAC/B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,IACzD,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;AAM7B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,sBAAsB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM;IACtE,iEAAiE;IACjE,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE/B;;;OAGG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAEvD;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAwND;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAChC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CA2F1D"}
1
+ {"version":3,"file":"useTableSortable.d.ts","sourceRoot":"","sources":["../../../../src/Table/plugins/sortable/useTableSortable.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,WAAW,EAIZ,MAAM,aAAa,CAAC;AAarB;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,YAAY,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM;IAC9D,2EAA2E;IAC3E,OAAO,EAAE,QAAQ,CAAC;IAClB,0BAA0B;IAC1B,SAAS,EAAE,kBAAkB,CAAC;CAC/B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,IACzD,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;AAM7B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,sBAAsB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM;IACtE,iEAAiE;IACjE,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE/B;;;OAGG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAEvD;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AA6ND;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAChC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CA2F1D"}
@@ -4,7 +4,8 @@
4
4
 
5
5
  /**
6
6
  * @file useTableSortable.tsx
7
- * @input React, types, Icon, theme tokens, i18n (useComponentTranslator)
7
+ * @input React, types, Icon, the theme's `table-sort-indicator` icon slot,
8
+ * theme tokens, i18n (useComponentTranslator)
8
9
  * @output Exports useTableSortable hook and sort-related types
9
10
  * @position Sortable plugin; consumed by Table via plugins prop
10
11
  *
@@ -18,6 +19,7 @@ import "../../../theme/tokens.stylex.js";
18
19
  import { colorVars, spacingVars, radiusVars } from "../../../theme/tokens.stylex.js";
19
20
  import { focusOutlineProps } from "../../../utils/focusOutline.stylex.js";
20
21
  import { Icon } from "../../../Icon/index.js";
22
+ import { ComponentIcon } from "../../../Icon/ComponentIcon.js";
21
23
  import { resolveContextActions } from "../../tableContextMenu.js";
22
24
  import { registerEnglishFallback, useComponentTranslator } from "../../../i18n/useComponentTranslator.js";
23
25
  import english from "../../../i18n/generated-english/Table/plugins/sortable/useTableSortable.generated.js";
@@ -149,7 +151,7 @@ function SortHeaderButton({
149
151
  const direction = entry?.direction ?? null;
150
152
  const isMultiSort = config.isMultiSortEnabled === true && config.sort.length > 1;
151
153
  const rank = isMultiSort && entryIndex >= 0 ? entryIndex + 1 : null;
152
- const iconName = direction === 'ascending' ? 'arrowUp' : direction === 'descending' ? 'arrowDown' : 'arrowsUpDown';
154
+ const indicator = direction === 'ascending' ? 'arrowUp' : direction === 'descending' ? 'arrowDown' : 'arrowsUpDown';
153
155
 
154
156
  // The button is named by its column's text, so the column header keeps
155
157
  // that name; direction lives in the header's aria-sort. Only the multi-sort
@@ -210,15 +212,21 @@ function SortHeaderButton({
210
212
  }), /*#__PURE__*/_jsx("span", {
211
213
  ...{
212
214
  0: {
213
- className: "x3nfvp2 x3onkmb xof6bs x25t5g8"
215
+ className: "x3nfvp2 xjl7jj x6s0dn4 xqtp20y"
214
216
  },
215
217
  1: {
216
- className: "x3nfvp2"
218
+ className: "x3nfvp2 xjl7jj x6s0dn4 xqtp20y x3onkmb xof6bs x25t5g8"
217
219
  }
218
- }[!!(direction != null) << 0],
219
- children: /*#__PURE__*/_jsx(Icon, {
220
- icon: iconName,
221
- size: "xsm",
220
+ }[!!(direction == null) << 0],
221
+ children: /*#__PURE__*/_jsx(ComponentIcon, {
222
+ slot: "table-sort-indicator",
223
+ state: {
224
+ direction: direction ?? 'none'
225
+ },
226
+ fallback: {
227
+ icon: indicator,
228
+ size: 'xsm'
229
+ },
222
230
  color: direction != null ? 'accent' : 'secondary'
223
231
  })
224
232
  }), rank != null && /*#__PURE__*/_jsx("span", {
@@ -251,16 +251,16 @@ export function ToastSurface({
251
251
  type
252
252
  }), {
253
253
  0: {
254
- className: "x1na6nto x1pzlopt x1hviunn x9f619 x1l2rt3b x193iq5w x14hfi27 x1i7u4iq x9ynric xjm74w1 xw6l6zx x1qk3xlt x6o7n8i xuedmi6 xsagj69 xlr8y92 x4itv7f x6s140c xenstv7"
254
+ className: "x1na6nto x1pzlopt x1hviunn x9f619 x1l2rt3b x193iq5w x14hfi27 x1i7u4iq x9ynric xjm74w1 xw6l6zx x1qk3xlt x6o7n8i xuedmi6 xsagj69 xlr8y92 xtx6xzi xy87v36 xenstv7"
255
255
  },
256
256
  2: {
257
- className: "x1na6nto x1pzlopt x1hviunn x9f619 x1l2rt3b x193iq5w x14hfi27 x1i7u4iq x9ynric xjm74w1 xw6l6zx x1qk3xlt x6o7n8i xuedmi6 xsagj69 xlr8y92 x4itv7f x6s140c x1l5t2a3"
257
+ className: "x1na6nto x1pzlopt x1hviunn x9f619 x1l2rt3b x193iq5w x14hfi27 x1i7u4iq x9ynric xjm74w1 xw6l6zx x1qk3xlt x6o7n8i xuedmi6 xsagj69 xlr8y92 xtx6xzi xy87v36 x1l5t2a3"
258
258
  },
259
259
  1: {
260
- className: "x1na6nto x1pzlopt x1hviunn x9f619 x1l2rt3b x193iq5w x14hfi27 x9ynric xjm74w1 xw6l6zx x6o7n8i xuedmi6 xsagj69 xlr8y92 x4itv7f x6s140c xenstv7 xg01cxk x149p1fo"
260
+ className: "x1na6nto x1pzlopt x1hviunn x9f619 x1l2rt3b x193iq5w x14hfi27 x9ynric xjm74w1 xw6l6zx x6o7n8i xuedmi6 xsagj69 xlr8y92 xtx6xzi xy87v36 xenstv7 xg01cxk x149p1fo"
261
261
  },
262
262
  3: {
263
- className: "x1na6nto x1pzlopt x1hviunn x9f619 x1l2rt3b x193iq5w x14hfi27 x9ynric xjm74w1 xw6l6zx x6o7n8i xuedmi6 xsagj69 xlr8y92 x4itv7f x6s140c x1l5t2a3 xg01cxk x149p1fo"
263
+ className: "x1na6nto x1pzlopt x1hviunn x9f619 x1l2rt3b x193iq5w x14hfi27 x9ynric xjm74w1 xw6l6zx x6o7n8i xuedmi6 xsagj69 xlr8y92 xtx6xzi xy87v36 x1l5t2a3 xg01cxk x149p1fo"
264
264
  }
265
265
  }[!!isError << 1 | !!isExiting << 0]),
266
266
  children: /*#__PURE__*/_jsx(MediaTheme, {
@@ -1 +1 @@
1
- {"version":3,"file":"ToastViewport.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastViewport.tsx"],"names":[],"mappings":"AAkDA,OAAO,KAAK,EAAa,aAAa,EAAqB,MAAM,SAAS,CAAC;AAG3E,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAwItD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IACtE;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAiHD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAsB,EACtB,UAAc,EACd,KAAK,EACL,UAAU,EACV,UAAiB,EACjB,QAAQ,GACT,EAAE,kBAAkB,+BA6lBpB;yBApmBe,aAAa"}
1
+ {"version":3,"file":"ToastViewport.d.ts","sourceRoot":"","sources":["../../src/Toast/ToastViewport.tsx"],"names":[],"mappings":"AAkDA,OAAO,KAAK,EAAa,aAAa,EAAqB,MAAM,SAAS,CAAC;AAG3E,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAkJtD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IACtE;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA+ID;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAsB,EACtB,UAAc,EACd,KAAK,EACL,UAAU,EACV,UAAiB,EACjB,QAAQ,GACT,EAAE,kBAAkB,+BA6lBpB;yBApmBe,aAAa"}
@@ -133,34 +133,85 @@ function ToastRow({
133
133
  const isAutoHide = o.isAutoHide ?? (type === 'error' ? false : true);
134
134
  const dur = o.autoHideDuration ?? 5000;
135
135
  const [isSettled, setIsSettled] = useState(false);
136
+ // Each move between modal outlets renders the row again. Its starting style
137
+ // must not apply then.
138
+ const [hasEntryStarted, setHasEntryStarted] = useState(false);
139
+ // React's transition run and cancel events have no propertyName field.
140
+ const watchEntry = useCallback(row => {
141
+ if (row == null) {
142
+ return;
143
+ }
144
+ const onTransition = event => {
145
+ if (event.target !== row || event.propertyName !== 'grid-template-rows') {
146
+ return;
147
+ }
148
+ setHasEntryStarted(true);
149
+ // A move cancels the entry, and the row then renders fully open. No
150
+ // transition ends, so the row settles here.
151
+ if (event.type === 'transitioncancel') {
152
+ setIsSettled(true);
153
+ }
154
+ };
155
+ row.addEventListener('transitionrun', onTransition);
156
+ row.addEventListener('transitioncancel', onTransition);
157
+ return () => {
158
+ row.removeEventListener('transitionrun', onTransition);
159
+ row.removeEventListener('transitioncancel', onTransition);
160
+ };
161
+ }, []);
136
162
  return /*#__PURE__*/_jsx("div", {
163
+ ref: watchEntry,
137
164
  "data-toast-id": entry.id,
138
165
  ...{
139
166
  0: {
167
+ className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli x1tu4anv xjshnde xuedmi6 xsagj69 xlr8y92 x1heqljd x1wesfrj xup0pd7"
168
+ },
169
+ 8: {
140
170
  className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli x1tu4anv xjshnde xuedmi6 xsagj69 xlr8y92 x1sopeo2 x5rzir7 x1heqljd x1wesfrj xup0pd7"
141
171
  },
142
172
  4: {
173
+ className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli x1tu4anv xjshnde xuedmi6 xsagj69 xlr8y92 x87gnkx x1wesfrj xup0pd7"
174
+ },
175
+ 12: {
143
176
  className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli x1tu4anv xjshnde xuedmi6 xsagj69 xlr8y92 x1sopeo2 x5rzir7 x87gnkx x1wesfrj xup0pd7"
144
177
  },
145
178
  2: {
179
+ className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli x1tu4anv xjshnde xuedmi6 xsagj69 xlr8y92 x1heqljd x1wesfrj x1vjq31q"
180
+ },
181
+ 10: {
146
182
  className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli x1tu4anv xjshnde xuedmi6 xsagj69 xlr8y92 x1sopeo2 x5rzir7 x1heqljd x1wesfrj x1vjq31q"
147
183
  },
148
184
  6: {
185
+ className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli x1tu4anv xjshnde xuedmi6 xsagj69 xlr8y92 x87gnkx x1wesfrj x1vjq31q"
186
+ },
187
+ 14: {
149
188
  className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli x1tu4anv xjshnde xuedmi6 xsagj69 xlr8y92 x1sopeo2 x5rzir7 x87gnkx x1wesfrj x1vjq31q"
150
189
  },
151
190
  1: {
191
+ className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli xjshnde xuedmi6 xsagj69 xlr8y92 x1heqljd xihq33y x18d9i69"
192
+ },
193
+ 9: {
152
194
  className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli xjshnde xuedmi6 xsagj69 xlr8y92 x1sopeo2 x5rzir7 x1heqljd xihq33y x18d9i69"
153
195
  },
154
196
  5: {
197
+ className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli xjshnde xuedmi6 xsagj69 xlr8y92 x87gnkx xihq33y x18d9i69"
198
+ },
199
+ 13: {
155
200
  className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli xjshnde xuedmi6 xsagj69 xlr8y92 x1sopeo2 x5rzir7 x87gnkx xihq33y x18d9i69"
156
201
  },
157
202
  3: {
203
+ className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli xjshnde xuedmi6 xsagj69 xlr8y92 x1heqljd xihq33y x18d9i69"
204
+ },
205
+ 11: {
158
206
  className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli xjshnde xuedmi6 xsagj69 xlr8y92 x1sopeo2 x5rzir7 x1heqljd xihq33y x18d9i69"
159
207
  },
160
208
  7: {
209
+ className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli xjshnde xuedmi6 xsagj69 xlr8y92 x87gnkx xihq33y x18d9i69"
210
+ },
211
+ 15: {
161
212
  className: "x67bb7w xrvj5dj xh8yej3 x1j9u4d2 xeuugli xjshnde xuedmi6 xsagj69 xlr8y92 x1sopeo2 x5rzir7 x87gnkx xihq33y x18d9i69"
162
213
  }
163
- }[!!isReversed << 2 | !!isReversed << 1 | !!isExiting << 0],
214
+ }[!!!hasEntryStarted << 3 | !!isReversed << 2 | !!isReversed << 1 | !!isExiting << 0],
164
215
  onTransitionEnd: e => {
165
216
  // `grid-template-rows` is not private to this wrapper — any descendant
166
217
  // may animate its own grid, and transitionend bubbles. Only the row's
@@ -179,16 +230,23 @@ function ToastRow({
179
230
  // still owns pointer events and restores the clip synchronously when
180
231
  // dismissal starts.
181
232
  setIsSettled(true);
233
+ setHasEntryStarted(true);
182
234
  },
183
235
  children: /*#__PURE__*/_jsx("div", {
184
236
  ...{
185
237
  0: {
186
238
  className: "xh8yej3 x193iq5w xeuugli x2lwn1j xb3r6kr"
187
239
  },
188
- 1: {
240
+ 2: {
189
241
  className: "xh8yej3 x193iq5w xeuugli x2lwn1j x1rea2x4"
242
+ },
243
+ 1: {
244
+ className: "xh8yej3 x193iq5w xeuugli x2lwn1j xb3r6kr xueduox x1u51i7i"
245
+ },
246
+ 3: {
247
+ className: "xh8yej3 x193iq5w xeuugli x2lwn1j x1rea2x4 xueduox x1u51i7i"
190
248
  }
191
- }[!!(isSettled && !isExiting) << 0],
249
+ }[!!(isSettled && !isExiting) << 1 | !!hasEntryStarted << 0],
192
250
  children: /*#__PURE__*/_jsx(ToastSurface, {
193
251
  type: type,
194
252
  body: o.body,
package/dist/astryx.css CHANGED
@@ -197,6 +197,8 @@
197
197
  .x1ur4yav{--_thumbnail-hit-inset:0px}
198
198
  .x87gnkx{--_toast-slide-y:calc(-1 * var(--spacing-2))}
199
199
  .x1heqljd{--_toast-slide-y:var(--spacing-2)}
200
+ .xueduox{--_toast-start-opacity:1}
201
+ .x1u51i7i{--_toast-start-slide:0px}
200
202
  .x70muob{--_tree-focus-z:auto}
201
203
  .x16bblx1{--button-focus-offset:var(--focus-outline-offset)}
202
204
  .x1v15ycx{--button-icon-only-aspect:1 / 1}
@@ -2311,6 +2313,7 @@
2311
2313
  .xeu5z55:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)::after{inset:var(--_thumbnail-hit-inset)}
2312
2314
  @starting-style{.x4itv7f.x4itv7f:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){opacity:0}}
2313
2315
  @starting-style{.x1igigxu.x1igigxu:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){opacity:1}}
2316
+ @starting-style{.xtx6xzi.xtx6xzi:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){opacity:var(--_toast-start-opacity,0)}}
2314
2317
  .xjsxhw0[data-astryx-row-gliding]:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){position:relative}
2315
2318
  .x1ylxtyb[data-astryx-press="on"]:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:none}
2316
2319
  .x3y5scg[data-astryx-press="on"]:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:scale(.98)}
@@ -2319,7 +2322,7 @@
2319
2322
  @starting-style{.xub2912.xub2912:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(-100%)}}
2320
2323
  @starting-style{.x12p7p72.x12p7p72:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(-4px)}}
2321
2324
  @starting-style{.xhbqy3z.xhbqy3z:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(100%)}}
2322
- @starting-style{.x6s140c.x6s140c:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(var(--_toast-slide-y,var(--spacing-2)))}}
2325
+ @starting-style{.xy87v36.xy87v36:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){transform:translateY(var(--_toast-start-slide,var(--_toast-slide-y,var(--spacing-2))))}}
2323
2326
  .x13ugjdw.x13ugjdw:where(:not(:disabled,[aria-disabled="true"]))[data-astryx-press="on"]:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){background-color:transparent}
2324
2327
  .xl8sb5e.xl8sb5e:where(:not(:disabled,[aria-disabled="true"]))[data-astryx-press="fading"]:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){background-color:transparent}
2325
2328
  .x1qxwyo6.x1qxwyo6:where(:not(:disabled,[aria-disabled="true"]))[data-astryx-press="fading"]:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#){background-image:var(--_press-paint-image),linear-gradient(var(--color-neutral),var(--color-neutral))}
@@ -3,7 +3,8 @@
3
3
  * @input StyleX, the overlay color tokens, the touch press strength
4
4
  * (`pressVars`) and the row layer's clocks (utils/rowPressLayer.stylex.ts)
5
5
  * @output `rowPressLayerStyles`, the compositor press layer for list rows
6
- * (`cell`, `cellOnImage` for a `backgroundImage` row), and
6
+ * (`cell`, `cellOnImage` for a `backgroundImage` row,
7
+ * `cellOnImagePressOnly` for a row whose fill is the hover tone), and
7
8
  * `rowPressPaintStyles`, a CheckboxList row's press paint for its box
8
9
  * @position Owner module of the private press attribute: the press controller
9
10
  * (utils/pressFeedback.ts) writes it, and this file reads it. No package
@@ -133,6 +134,9 @@ export declare const rowPressLayerStyles: Readonly<{
133
134
  readonly cellOnImage: Readonly<{
134
135
  readonly backgroundImage: stylex.StyleXClassNameFor<"backgroundImage", string | null>;
135
136
  }>;
137
+ readonly cellOnImagePressOnly: Readonly<{
138
+ readonly backgroundImage: stylex.StyleXClassNameFor<"backgroundImage", string | null>;
139
+ }>;
136
140
  }>;
137
141
  export declare const rowPressPaintStyles: Readonly<{
138
142
  readonly checkboxRow: Readonly<{
@@ -1 +1 @@
1
- {"version":3,"file":"press.stylex.d.ts","sourceRoot":"","sources":["../../src/privateAttributes/press.stylex.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAqD3C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2K9B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;EAgB9B,CAAC"}
1
+ {"version":3,"file":"press.stylex.d.ts","sourceRoot":"","sources":["../../src/privateAttributes/press.stylex.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAqD3C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8L9B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;EAgB9B,CAAC"}
@@ -8,7 +8,8 @@
8
8
  * @input StyleX, the overlay color tokens, the touch press strength
9
9
  * (`pressVars`) and the row layer's clocks (utils/rowPressLayer.stylex.ts)
10
10
  * @output `rowPressLayerStyles`, the compositor press layer for list rows
11
- * (`cell`, `cellOnImage` for a `backgroundImage` row), and
11
+ * (`cell`, `cellOnImage` for a `backgroundImage` row,
12
+ * `cellOnImagePressOnly` for a row whose fill is the hover tone), and
12
13
  * `rowPressPaintStyles`, a CheckboxList row's press paint for its box
13
14
  * @position Owner module of the private press attribute: the press controller
14
15
  * (utils/pressFeedback.ts) writes it, and this file reads it. No package
@@ -91,6 +92,10 @@ export const rowPressLayerStyles = {
91
92
  cellOnImage: {
92
93
  kKwaWg: "x7uyq82 x3f84ok x7ngsy6 x10ogxw0 xubczrd x18xnkjv xmvprkv xetgvay",
93
94
  $$css: true
95
+ },
96
+ cellOnImagePressOnly: {
97
+ kKwaWg: "x7uyq82 x3f84ok x7ngsy6 x10ogxw0 xubczrd x18xnkjv",
98
+ $$css: true
94
99
  }
95
100
  };
96
101
  export const rowPressPaintStyles = {