@astryxdesign/core 0.7.9-canary.bb7702c → 0.7.9-canary.ca2b80b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BottomSheet/BottomSheet.js +2 -2
- package/dist/BottomSheet/bottomSheetStack.d.ts.map +1 -1
- package/dist/BottomSheet/bottomSheetStack.js +4 -3
- package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/CheckboxInput/CheckboxInput.js +4 -9
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +2 -2
- package/dist/DropdownMenu/DropdownMenu.js +2 -4
- package/dist/InfoTip/InfoTip.d.ts.map +1 -1
- package/dist/InfoTip/InfoTip.js +5 -18
- package/dist/Item/Item.d.ts +18 -0
- package/dist/Item/Item.d.ts.map +1 -1
- package/dist/Item/Item.js +70 -25
- package/dist/Item/ItemListRowContext.d.ts +2 -0
- package/dist/Item/ItemListRowContext.d.ts.map +1 -0
- package/dist/Item/ItemListRowContext.js +16 -0
- package/dist/Layout/LayoutPanel.d.ts +10 -10
- package/dist/Layout/LayoutPanel.d.ts.map +1 -1
- package/dist/Layout/LayoutPanel.js +59 -7
- package/dist/List/List.d.ts.map +1 -1
- package/dist/List/List.js +1 -0
- package/dist/List/ListItem.d.ts +5 -4
- package/dist/List/ListItem.d.ts.map +1 -1
- package/dist/List/ListItem.js +45 -9
- package/dist/Markdown/parser.d.ts.map +1 -1
- package/dist/Markdown/parser.js +56 -39
- package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
- package/dist/MultiSelector/MultiSelector.js +6 -9
- package/dist/RadioList/RadioListItem.d.ts.map +1 -1
- package/dist/RadioList/RadioListItem.js +5 -10
- package/dist/Resizable/ResizeHandle.d.ts +5 -5
- package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
- package/dist/Resizable/ResizeHandle.js +44 -5
- package/dist/Resizable/resizablePane.d.ts +60 -0
- package/dist/Resizable/resizablePane.d.ts.map +1 -0
- package/dist/Resizable/resizablePane.js +142 -0
- package/dist/Resizable/useResizable.d.ts +7 -0
- package/dist/Resizable/useResizable.d.ts.map +1 -1
- package/dist/Resizable/useResizable.js +13 -0
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +32 -8
- package/dist/SideNav/SideNav.d.ts +9 -3
- package/dist/SideNav/SideNav.d.ts.map +1 -1
- package/dist/SideNav/SideNav.js +47 -10
- package/dist/astryx.css +337 -334
- package/dist/hooks/useClickableContainer.d.ts +10 -3
- package/dist/hooks/useClickableContainer.d.ts.map +1 -1
- package/dist/hooks/useClickableContainer.js +23 -10
- package/dist/hooks/useKeyboardHighlight.d.ts +17 -0
- package/dist/hooks/useKeyboardHighlight.d.ts.map +1 -0
- package/dist/hooks/useKeyboardHighlight.js +38 -0
- package/dist/i18n/InternationalizationProvider.d.ts +9 -8
- package/dist/i18n/InternationalizationProvider.d.ts.map +1 -1
- package/dist/internal/calendar-system.d.ts +18 -0
- package/dist/internal/calendar-system.d.ts.map +1 -0
- package/dist/internal/calendar-system.js +19 -0
- package/dist/privateAttributes/press.stylex.d.ts.map +1 -1
- package/dist/utils/calendarDateParser.d.ts +110 -0
- package/dist/utils/calendarDateParser.d.ts.map +1 -0
- package/dist/utils/calendarDateParser.js +1225 -0
- package/dist/utils/calendarSystem.d.ts +22 -6
- package/dist/utils/calendarSystem.d.ts.map +1 -1
- package/dist/utils/calendarSystem.js +68 -9
- package/dist/utils/focusReturn.d.ts +10 -2
- package/dist/utils/focusReturn.d.ts.map +1 -1
- package/dist/utils/focusReturn.js +16 -3
- package/dist/utils/hitArea.d.ts +8 -1
- package/dist/utils/hitArea.d.ts.map +1 -1
- package/dist/utils/hitArea.js +17 -4
- package/dist/utils/plainDate.d.ts +15 -0
- package/dist/utils/plainDate.d.ts.map +1 -1
- package/dist/utils/plainDate.js +35 -0
- package/dist/utils/touchHitArea.d.ts +30 -0
- package/dist/utils/touchHitArea.d.ts.map +1 -0
- package/dist/utils/touchHitArea.js +167 -0
- package/dist/utils/touchHitArea.stylex.d.ts +6 -3
- package/dist/utils/touchHitArea.stylex.d.ts.map +1 -1
- package/dist/utils/touchHitArea.stylex.js +19 -3
- package/package.json +9 -4
- package/src/BottomSheet/BottomSheet.tsx +2 -2
- package/src/BottomSheet/bottomSheetStack.ts +4 -3
- package/src/Calendar/Calendar.doc.mjs +2 -2
- package/src/CheckboxInput/CheckboxInput.tsx +4 -12
- package/src/Dialog/Dialog.tsx +2 -1
- package/src/DropdownMenu/DropdownMenu.tsx +2 -2
- package/src/InfoTip/InfoTip.tsx +5 -27
- package/src/Item/Item.tsx +92 -30
- package/src/Item/ItemListRowContext.tsx +18 -0
- package/src/Layout/LayoutPanel.doc.mjs +8 -8
- package/src/Layout/LayoutPanel.tsx +89 -13
- package/src/List/List.doc.mjs +10 -1
- package/src/List/List.tsx +5 -0
- package/src/List/ListItem.tsx +63 -8
- package/src/Markdown/parser.ts +65 -42
- package/src/MultiSelector/MultiSelector.tsx +7 -17
- package/src/RadioList/RadioListItem.tsx +5 -13
- package/src/Resizable/Resizable.doc.mjs +40 -12
- package/src/Resizable/ResizeHandle.tsx +68 -6
- package/src/Resizable/resizablePane.ts +188 -0
- package/src/Resizable/useResizable.ts +15 -0
- package/src/Selector/Selector.tsx +49 -5
- package/src/SideNav/SideNav.doc.mjs +2 -2
- package/src/SideNav/SideNav.tsx +88 -12
- package/src/hooks/useClickableContainer.ts +22 -10
- package/src/hooks/useKeyboardHighlight.ts +71 -0
- package/src/i18n/InternationalizationProvider.doc.mjs +3 -3
- package/src/i18n/InternationalizationProvider.tsx +9 -8
- package/src/internal/calendar-system.ts +26 -0
- package/src/privateAttributes/press.stylex.ts +2 -0
- package/src/utils/calendarDateParser.ts +1385 -0
- package/src/utils/calendarSystem.ts +82 -7
- package/src/utils/focusReturn.ts +17 -3
- package/src/utils/hitArea.ts +31 -4
- package/src/utils/plainDate.ts +46 -0
- package/src/utils/touchHitArea.stylex.ts +18 -3
- package/src/utils/touchHitArea.ts +177 -0
|
@@ -65,7 +65,7 @@ import { ModalAnnounceProvider } from "../hooks/ModalAnnounceProvider.js";
|
|
|
65
65
|
import { useModalOutlet } from "../Layer/modalOutlet.js";
|
|
66
66
|
import { useLayerDismissal } from "../Layer/useLayerDismissal.js";
|
|
67
67
|
import { useFocusRegionContainment } from "../hooks/useFocusTrap.js";
|
|
68
|
-
import {
|
|
68
|
+
import { returnFocusForLastInput } from "../utils/focusReturn.js";
|
|
69
69
|
import { useInteractionModalityTracking } from "../utils/interactionModality.js";
|
|
70
70
|
import { BottomSheetPanel } from "./BottomSheetPanel.js";
|
|
71
71
|
import { BottomSheetEdgeTint } from "./BottomSheetEdgeTint.js";
|
|
@@ -533,7 +533,7 @@ function StandaloneBottomSheet({
|
|
|
533
533
|
if (revealed != null && (returnTarget == null || !revealed.element.contains(returnTarget))) {
|
|
534
534
|
revealed.focus();
|
|
535
535
|
} else if (returnTarget != null) {
|
|
536
|
-
|
|
536
|
+
returnFocusForLastInput(returnTarget);
|
|
537
537
|
}
|
|
538
538
|
triggerRef.current = null;
|
|
539
539
|
}, [finalFocusRef, hasScrim, isOpen]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottomSheetStack.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/bottomSheetStack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bottomSheetStack.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/bottomSheetStack.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @file bottomSheetStack.ts
|
|
7
|
-
* @input The DOM (dialog elements, document order) and
|
|
7
|
+
* @input The DOM (dialog elements, document order) and the focus-return
|
|
8
|
+
* utilities
|
|
8
9
|
* @output The private bottom-sheet stack registry: host registration,
|
|
9
10
|
* open-order ranking, top-layer reconciliation, one view per host, the
|
|
10
11
|
* replace handoff, and the shared native show/hide and focus helpers
|
|
@@ -49,7 +50,7 @@
|
|
|
49
50
|
// two copies of this module on one page share one stack. A copy on another
|
|
50
51
|
// version keeps its own stack. Each document is its own stack.
|
|
51
52
|
import { notifyTopLayerEntry } from "../Layer/modalOutlet.js";
|
|
52
|
-
import { focusForLastInput } from "../utils/focusReturn.js";
|
|
53
|
+
import { focusForLastInput, returnFocusForLastInput } from "../utils/focusReturn.js";
|
|
53
54
|
|
|
54
55
|
/** The motions a host's panel reports to the registry during a replace. */
|
|
55
56
|
|
|
@@ -240,7 +241,7 @@ function completeClosingGroup(group) {
|
|
|
240
241
|
group.reported = true;
|
|
241
242
|
const target = group.returnTarget;
|
|
242
243
|
if (target != null && target.isConnected) {
|
|
243
|
-
|
|
244
|
+
returnFocusForLastInput(target);
|
|
244
245
|
}
|
|
245
246
|
}
|
|
246
247
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,UAAU,EAGf,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAS3C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AA2JhD,QAAA,MAAM,iBAAiB;;;;;;;;;EASrB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE/D,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACrE,wDAAwD;IACxD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,YAAY,CAAC,EAAE,CACb,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAC7B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACpD;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACnD;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EAAE,MAAM,EACV,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,SAAiB,EACjB,KAAK,EACL,UAAkB,EAClB,QAAQ,EACR,eAAe,EACf,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,IAAW,EACX,OAAO,EACP,MAAM,EACN,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,kBAAkB,EAAE,mBAAmB,EACvC,GAAG,IAAI,EACR,EAAE,kBAAkB,+
|
|
1
|
+
{"version":3,"file":"CheckboxInput.d.ts","sourceRoot":"","sources":["../../src/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,UAAU,EAGf,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAS3C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AA2JhD,QAAA,MAAM,iBAAiB;;;;;;;;;EASrB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE/D,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACrE,wDAAwD;IACxD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,YAAY,CAAC,EAAE,CACb,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAC7B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACpD;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACnD;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAOD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EAAE,MAAM,EACV,KAAK,EACL,aAAqB,EACrB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,SAAiB,EACjB,KAAK,EACL,UAAkB,EAClB,QAAQ,EACR,eAAe,EACf,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,IAAW,EACX,OAAO,EACP,MAAM,EACN,SAAS,EACT,MAAM,EACN,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,kBAAkB,EAAE,mBAAmB,EACvC,GAAG,IAAI,EACR,EAAE,kBAAkB,+BA0QpB;yBArSe,aAAa"}
|
|
@@ -36,7 +36,7 @@ import { usePressFeedback } from "../hooks/usePressFeedback.js";
|
|
|
36
36
|
import { useIndicator } from "../Indicator/useIndicator.js";
|
|
37
37
|
import { themeProps } from "../utils/themeProps.js";
|
|
38
38
|
import { useMergedRefs } from "../hooks/useMergedRefs.js";
|
|
39
|
-
import {
|
|
39
|
+
import { useTouchHitArea } from "../utils/touchHitArea.js";
|
|
40
40
|
import { touchHitAreaStyles } from "../utils/touchHitArea.stylex.js";
|
|
41
41
|
import { registerEnglishFallback, useComponentTranslator } from "../i18n/useComponentTranslator.js";
|
|
42
42
|
import english from "../i18n/generated-english/CheckboxInput/CheckboxInput.generated.js";
|
|
@@ -222,14 +222,9 @@ export function CheckboxInput({
|
|
|
222
222
|
// checkbox is a marker in another component's row, which keeps its target.
|
|
223
223
|
const hasHitArea = !isLabelHidden && !isDisabled && !isReadOnly;
|
|
224
224
|
const inputRef = useRef(null);
|
|
225
|
-
// The
|
|
226
|
-
//
|
|
227
|
-
const watchRowHitArea =
|
|
228
|
-
if (row == null || !hasHitArea) {
|
|
229
|
-
return;
|
|
230
|
-
}
|
|
231
|
-
return watchHitArea(row, insets => writeHitInsets(row, insets));
|
|
232
|
-
}, [hasHitArea]);
|
|
225
|
+
// The band's insets stay live while the row takes taps, and clear when it
|
|
226
|
+
// stops.
|
|
227
|
+
const watchRowHitArea = useTouchHitArea(hasHitArea);
|
|
233
228
|
// The disabled-message tooltip listens for hover and focus on the whole
|
|
234
229
|
// row, a larger trigger. It anchors on the checkbox itself (below), so it
|
|
235
230
|
// shows next to the control. Its handlers check isEnabled, so the row
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../src/Dialog/Dialog.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA+B5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAMhD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../src/Dialog/Dialog.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA+B5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAMhD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAmC9C;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzD,4EAA4E;AAC5E,UAAU,mBAAmB;IAC3B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IACzD,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAuBD,2FAA2F;AAC3F,eAAO,MAAM,uCAAuC;;;;;;;;;;;CAW1C,CAAC;AAwLX;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,cAAc;;;;;EAUpE;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC/D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IAE3C;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEpC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EAAE,UAAU,EAClB,QAAgB,EAChB,YAAY,EACZ,KAAW,EACX,SAAmB,EACnB,QAAQ,EACR,OAAoB,EACpB,OAAgB,EAChB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,sCAiab;yBAjbe,MAAM"}
|
package/dist/Dialog/Dialog.js
CHANGED
|
@@ -58,7 +58,7 @@ import { DialogContext } from "./DialogContext.js";
|
|
|
58
58
|
import { themeProps } from "../utils/themeProps.js";
|
|
59
59
|
import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
|
|
60
60
|
import { useInteractionModalityTracking } from "../utils/interactionModality.js";
|
|
61
|
-
import { focusForLastInput, prepareFocusReturnOnRemoval } from "../utils/focusReturn.js";
|
|
61
|
+
import { focusForLastInput, prepareFocusReturnOnRemoval, returnFocusForLastInput } from "../utils/focusReturn.js";
|
|
62
62
|
import { ModalAnnounceProvider } from "../hooks/ModalAnnounceProvider.js";
|
|
63
63
|
import { useMergedRefs } from "../hooks/useMergedRefs.js";
|
|
64
64
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -466,7 +466,7 @@ export function Dialog({
|
|
|
466
466
|
// the last input in that element's own document calls for.
|
|
467
467
|
const trigger = triggerElementRef.current;
|
|
468
468
|
if (trigger) {
|
|
469
|
-
|
|
469
|
+
returnFocusForLastInput(trigger);
|
|
470
470
|
}
|
|
471
471
|
triggerElementRef.current = null;
|
|
472
472
|
}
|
|
@@ -50,7 +50,7 @@ import { useListFocus } from "../hooks/useListFocus.js";
|
|
|
50
50
|
import { useDropdownMenuPress } from "../hooks/useMenuPress.js";
|
|
51
51
|
import { useTypeahead } from "../hooks/useTypeahead.js";
|
|
52
52
|
import { useFocusReturnVisibility } from "../hooks/useFocusReturnVisibility.js";
|
|
53
|
-
import {
|
|
53
|
+
import { returnFocusForLastInput } from "../utils/focusReturn.js";
|
|
54
54
|
import { useMenuOverflow } from "./useMenuOverflow.js";
|
|
55
55
|
import { MenuRegionsContext } from "./menuRegionsContext.js";
|
|
56
56
|
import { moveRegionsTab } from "./menuRegionStops.js";
|
|
@@ -704,9 +704,7 @@ function DropdownMenuPopover({
|
|
|
704
704
|
// reaches only the design system's own Button; the browser's focus option
|
|
705
705
|
// also reaches a control the caller renders, which the browser would
|
|
706
706
|
// otherwise ring (Chromium after a mouse pick, WebKit after a touch).
|
|
707
|
-
|
|
708
|
-
preventScroll: true
|
|
709
|
-
});
|
|
707
|
+
returnFocusForLastInput(trigger);
|
|
710
708
|
}, [hideOpenFlyouts, isControlled, onOpenChange, prepareFocusReturn]);
|
|
711
709
|
|
|
712
710
|
// Defer item focus until the layer has committed open, so focus restore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoTip.d.ts","sourceRoot":"","sources":["../../src/InfoTip/InfoTip.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAO,KAAK,QAAQ,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"InfoTip.d.ts","sourceRoot":"","sources":["../../src/InfoTip/InfoTip.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAO,KAAK,QAAQ,EAAC,MAAM,cAAc,CAAC;AAsBjD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;AAEnC,MAAM,WAAW,YAAa,SAAQ,IAAI,CACxC,SAAS,EACT,QAAQ,GAAG,WAAW,GAAG,OAAO,CACjC;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC7B;;;OAGG;IACH,OAAO,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AA+BD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,OAAO,CAAC,EACtB,OAAO,EACP,KAAK,EACL,IAAW,EACX,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,YAAY,GAAG,SAAS,CAiF1B;yBAzFe,OAAO"}
|
package/dist/InfoTip/InfoTip.js
CHANGED
|
@@ -29,7 +29,8 @@ import "../theme/tokens.stylex.js";
|
|
|
29
29
|
import { colorVars, durationVars, easeVars, radiusVars, spacingVars } from "../theme/tokens.stylex.js";
|
|
30
30
|
import { focusOutlineStyles } from "../utils/focusOutline.stylex.js";
|
|
31
31
|
import { mergeProps } from "../utils/mergeProps.js";
|
|
32
|
-
import {
|
|
32
|
+
import { useTouchHitArea } from "../utils/touchHitArea.js";
|
|
33
|
+
import { touchHitAreaStyles } from "../utils/touchHitArea.stylex.js";
|
|
33
34
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
34
35
|
registerEnglishFallback(english);
|
|
35
36
|
|
|
@@ -56,12 +57,6 @@ const styles = {
|
|
|
56
57
|
kIyJzY: "xuedmi6",
|
|
57
58
|
kAMwcw: "xlr8y92",
|
|
58
59
|
$$css: true
|
|
59
|
-
},
|
|
60
|
-
hitArea: {
|
|
61
|
-
k5JduY: "x1s928wv",
|
|
62
|
-
kwXMNM: "x1j6awrg",
|
|
63
|
-
kv0HGH: "xzdy5ak",
|
|
64
|
-
$$css: true
|
|
65
60
|
}
|
|
66
61
|
};
|
|
67
62
|
|
|
@@ -92,15 +87,7 @@ export function InfoTip({
|
|
|
92
87
|
style
|
|
93
88
|
}) {
|
|
94
89
|
const t = useComponentTranslator();
|
|
95
|
-
|
|
96
|
-
// lives as long as the button is attached: the ref's cleanup stops it, and a
|
|
97
|
-
// replaced button starts its own.
|
|
98
|
-
const watchButtonHitArea = useCallback(button => {
|
|
99
|
-
if (button == null) {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
return watchHitArea(button, insets => writeHitInsets(button, insets));
|
|
103
|
-
}, []);
|
|
90
|
+
const hitAreaRef = useTouchHitArea(true);
|
|
104
91
|
// Whether a press pinned the help. A hover or focus preview is not pinned.
|
|
105
92
|
const [isPinned, setIsPinned] = useState(false);
|
|
106
93
|
// Whether the help shows, pinned or previewed: the button names it in
|
|
@@ -117,7 +104,7 @@ export function InfoTip({
|
|
|
117
104
|
onShow: handleShow,
|
|
118
105
|
onHide: handleHide
|
|
119
106
|
});
|
|
120
|
-
const mergedRef = useMergedRefs(ref,
|
|
107
|
+
const mergedRef = useMergedRefs(ref, hitAreaRef, tooltip.ref);
|
|
121
108
|
|
|
122
109
|
// A primary mouse or pen press on a preview calls show() first. The hook's
|
|
123
110
|
// press-to-close then leaves it open. The click pins it.
|
|
@@ -155,7 +142,7 @@ export function InfoTip({
|
|
|
155
142
|
"aria-controls": isShown ? tooltip.describedBy : undefined,
|
|
156
143
|
onPointerDownCapture: handlePointerDownCapture,
|
|
157
144
|
onClick: handleClick,
|
|
158
|
-
...mergeProps(stylex.props(focusOutlineStyles.focusVisible, styles.trigger,
|
|
145
|
+
...mergeProps(stylex.props(focusOutlineStyles.focusVisible, styles.trigger, touchHitAreaStyles.layer, xstyle), className, style),
|
|
159
146
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
160
147
|
icon: "info",
|
|
161
148
|
size: size
|
package/dist/Item/Item.d.ts
CHANGED
|
@@ -233,6 +233,24 @@ export interface ItemProps extends BaseProps<HTMLElement> {
|
|
|
233
233
|
*/
|
|
234
234
|
'data-testid'?: string;
|
|
235
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* Whether a row serves swipe actions, and so is a stacking context at rest:
|
|
238
|
+
* its root translates (`styles.swipeRoot`). Swipe actions need a
|
|
239
|
+
* role that permits interactive descendants, since a swipe panel holds
|
|
240
|
+
* buttons. That is a `listitem`, or no role at all. A root that is itself a
|
|
241
|
+
* link is not served, nor is a role that forbids interactive descendants. A
|
|
242
|
+
* disabled row, a row with no entry on either side, and the enlarged target of
|
|
243
|
+
* a nested control are not served either. Internal: under a finger,
|
|
244
|
+
* List/ListItem.tsx raises such a row, so its touch band stays above the rows
|
|
245
|
+
* after it.
|
|
246
|
+
*/
|
|
247
|
+
export declare function servesSwipeActions({ swipeActions, isDisabled, isDelegate, isLinkRoot, role, }: {
|
|
248
|
+
readonly swipeActions: ItemSwipeActions | undefined;
|
|
249
|
+
readonly isDisabled: boolean;
|
|
250
|
+
readonly isDelegate: boolean;
|
|
251
|
+
readonly isLinkRoot: boolean;
|
|
252
|
+
readonly role: string | null | undefined;
|
|
253
|
+
}): boolean;
|
|
236
254
|
/**
|
|
237
255
|
* A universal item primitive that unifies the "start content + label +
|
|
238
256
|
* description + end content" layout pattern. Use as a building block for list items,
|
package/dist/Item/Item.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../src/Item/Item.tsx"],"names":[],"mappings":"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"}
|
package/dist/Item/Item.js
CHANGED
|
@@ -38,16 +38,18 @@ import { mergeProps } from "../utils/mergeProps.js";
|
|
|
38
38
|
import { chainEventHandlers } from "../utils/chainEventHandlers.js";
|
|
39
39
|
import { useFocusAcrossSwap } from "../utils/useFocusAcrossSwap.js";
|
|
40
40
|
import { ItemDescriptionContext } from "./ItemDescriptionContext.js";
|
|
41
|
+
import { ItemListRowContext } from "./ItemListRowContext.js";
|
|
41
42
|
import { ItemMarkerColumnsContext } from "./ItemMarkerColumnsContext.js";
|
|
42
43
|
import { useMergedRefs } from "../hooks/useMergedRefs.js";
|
|
43
44
|
import { computeTargetAndRel } from "../Link/computeTargetAndRel.js";
|
|
44
45
|
import { useLinkComponent } from "../Link/useLinkComponent.js";
|
|
45
|
-
import { cancelNestedTouchPress,
|
|
46
|
+
import { cancelNestedTouchPress, PRESSABLE_CONTAINER_ATTRIBUTE, useClickableContainerProxy } from "../hooks/useClickableContainer.js";
|
|
46
47
|
import { useDevWarning } from "../hooks/useDevWarning.js";
|
|
47
48
|
import { themeProps } from "../utils/themeProps.js";
|
|
48
49
|
import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
|
|
49
50
|
import { interactionOverlayStyles } from "../utils/interactionOverlay.stylex.js";
|
|
50
51
|
import { rowPressLayerStyles } from "../privateAttributes/press.stylex.js";
|
|
52
|
+
import { isCoarsePointer } from "../utils/coarsePointer.js";
|
|
51
53
|
import { usePressFeedback } from "../hooks/usePressFeedback.js";
|
|
52
54
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
53
55
|
// The gesture and the panels, loaded only by a row that has swipe actions: a
|
|
@@ -92,6 +94,27 @@ const ARIA_SELECTED_ROLES = new Set(['option', 'tab', 'row', 'gridcell', 'column
|
|
|
92
94
|
*/
|
|
93
95
|
const SWIPE_ROLES = new Set(['listitem']);
|
|
94
96
|
|
|
97
|
+
/**
|
|
98
|
+
* Whether a row serves swipe actions, and so is a stacking context at rest:
|
|
99
|
+
* its root translates (`styles.swipeRoot`). Swipe actions need a
|
|
100
|
+
* role that permits interactive descendants, since a swipe panel holds
|
|
101
|
+
* buttons. That is a `listitem`, or no role at all. A root that is itself a
|
|
102
|
+
* link is not served, nor is a role that forbids interactive descendants. A
|
|
103
|
+
* disabled row, a row with no entry on either side, and the enlarged target of
|
|
104
|
+
* a nested control are not served either. Internal: under a finger,
|
|
105
|
+
* List/ListItem.tsx raises such a row, so its touch band stays above the rows
|
|
106
|
+
* after it.
|
|
107
|
+
*/
|
|
108
|
+
export function servesSwipeActions({
|
|
109
|
+
swipeActions,
|
|
110
|
+
isDisabled,
|
|
111
|
+
isDelegate,
|
|
112
|
+
isLinkRoot,
|
|
113
|
+
role
|
|
114
|
+
}) {
|
|
115
|
+
return swipeActions != null && ((swipeActions.leading?.length ?? 0) > 0 || (swipeActions.trailing?.length ?? 0) > 0) && !isDisabled && !isDelegate && !isLinkRoot && (role == null || SWIPE_ROLES.has(role));
|
|
116
|
+
}
|
|
117
|
+
|
|
95
118
|
/** The travel a drag writes on the row root, in physical px (see useSwipeAction). */
|
|
96
119
|
const SWIPE_TRAVEL = 'var(--_item-swipe-travel, 0px)';
|
|
97
120
|
/** The settle clock, `0s` while the finger drives the row. */
|
|
@@ -276,6 +299,7 @@ export function Item({
|
|
|
276
299
|
}) {
|
|
277
300
|
const pressable = usePressFeedback();
|
|
278
301
|
const columnMarker = use(ItemMarkerColumnsContext);
|
|
302
|
+
const isListRow = use(ItemListRowContext);
|
|
279
303
|
const LinkComponent = useLinkComponent();
|
|
280
304
|
// A disabled row's anchor has no destination, so no activation path (a
|
|
281
305
|
// screen reader's click, Enter, a link context menu) can navigate
|
|
@@ -295,13 +319,14 @@ export function Item({
|
|
|
295
319
|
const isDelegate = interactiveRef != null;
|
|
296
320
|
const containerRef = useRef(null);
|
|
297
321
|
// Only onClick is needed: onMouseUp handles middle-click href navigation,
|
|
298
|
-
// which delegation mode never has (href is ignored here).
|
|
322
|
+
// which delegation mode never has (href is ignored here). A List link row's
|
|
323
|
+
// surface click goes to its anchor through the same hook and its guards.
|
|
299
324
|
const {
|
|
300
|
-
onClick:
|
|
325
|
+
onClick: containerOnClick,
|
|
301
326
|
onPointerDown: delegatedOnPointerDown
|
|
302
|
-
} =
|
|
327
|
+
} = useClickableContainerProxy({
|
|
303
328
|
containerRef,
|
|
304
|
-
interactiveRef: interactiveRef ??
|
|
329
|
+
interactiveRef: interactiveRef ?? actionLinkRef,
|
|
305
330
|
disabled: isDisabled
|
|
306
331
|
});
|
|
307
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));
|
|
@@ -324,14 +349,15 @@ export function Item({
|
|
|
324
349
|
// card still treats it as part of its own surface.
|
|
325
350
|
const hasOwnAction = (onClick != null || href != null) && !hasParentRole && !isLinkRoot;
|
|
326
351
|
const pressOnRow = event => cancelNestedTouchPress(event, event.currentTarget, href != null ? actionLinkRef.current : actionButtonRef.current);
|
|
327
|
-
|
|
328
|
-
// Swipe actions exist where the row's role permits interactive descendants
|
|
329
|
-
// (a swipe panel's buttons are such descendants): a `listitem`, or no role
|
|
330
|
-
// at all. A root that is itself a link, a row whose role forbids them, and
|
|
331
|
-
// a row that is the enlarged target of a nested control are not served.
|
|
332
352
|
const leadingSwipe = swipeActions?.leading ?? [];
|
|
333
353
|
const trailingSwipe = swipeActions?.trailing ?? [];
|
|
334
|
-
const hasSwipe =
|
|
354
|
+
const hasSwipe = servesSwipeActions({
|
|
355
|
+
swipeActions,
|
|
356
|
+
isDisabled,
|
|
357
|
+
isDelegate,
|
|
358
|
+
isLinkRoot,
|
|
359
|
+
role
|
|
360
|
+
});
|
|
335
361
|
useDevWarning('Item', '`swipeBehavior="commit"` fires only the outermost entry of a side; the ' + 'other entries have no touch path. Give a committing side one entry, ' + 'or use `swipeBehavior="reveal"`.', hasSwipe && swipeBehavior === 'commit' && (leadingSwipe.length > 1 || trailingSwipe.length > 1));
|
|
336
362
|
const swipeRootRef = useRef(null);
|
|
337
363
|
// Filled by the swipe layer once it has mounted; empty until then and on a
|
|
@@ -378,6 +404,7 @@ export function Item({
|
|
|
378
404
|
children: description
|
|
379
405
|
})]
|
|
380
406
|
});
|
|
407
|
+
const isLinkRow = isListRow && onClick == null && href != null && !isLinkRoot;
|
|
381
408
|
const handleContainerClick = e => {
|
|
382
409
|
if (isDisabled) {
|
|
383
410
|
return;
|
|
@@ -386,6 +413,18 @@ export function Item({
|
|
|
386
413
|
if (target.closest('button, a, input, select, textarea')) {
|
|
387
414
|
return;
|
|
388
415
|
}
|
|
416
|
+
if (isLinkRow) {
|
|
417
|
+
// Under a coarse primary pointer, a tap in the row's padding or band
|
|
418
|
+
// follows its link, with the click's modifier keys. The primary pointer
|
|
419
|
+
// decides, as it decides the band, not the pointer that made the click.
|
|
420
|
+
const row = e.currentTarget;
|
|
421
|
+
const box = row.getBoundingClientRect();
|
|
422
|
+
const isInBand = e.clientX < box.left || e.clientX > box.right || e.clientY < box.top || e.clientY > box.bottom;
|
|
423
|
+
if (e.detail > 0 && (isInBand || isCoarsePointer(row.ownerDocument.defaultView))) {
|
|
424
|
+
containerOnClick(e);
|
|
425
|
+
}
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
389
428
|
onClick?.(e);
|
|
390
429
|
};
|
|
391
430
|
const content = /*#__PURE__*/_jsxs(_Fragment, {
|
|
@@ -501,11 +540,11 @@ export function Item({
|
|
|
501
540
|
})]
|
|
502
541
|
});
|
|
503
542
|
const mergedRef = useMergedRefs(ref, containerRef);
|
|
504
|
-
const rootRef = useMergedRefs(isDelegate ? mergedRef : ref, hasSwipe ? swipeRootRef : undefined);
|
|
543
|
+
const rootRef = useMergedRefs(isDelegate || isLinkRow ? mergedRef : ref, hasSwipe ? swipeRootRef : undefined);
|
|
505
544
|
|
|
506
545
|
// The row's own primary, which the click the browser synthesizes after a
|
|
507
546
|
// drag must not fire.
|
|
508
|
-
const primaryOnClick = isDelegate ?
|
|
547
|
+
const primaryOnClick = isDelegate ? containerOnClick : hasParentRole ? onClick : isInteractive ? handleContainerClick : undefined;
|
|
509
548
|
const rootOnClick = hasSwipe && primaryOnClick != null ? event => {
|
|
510
549
|
if (swipeBridgeRef.current?.shouldSuppressClick() === true) {
|
|
511
550
|
return;
|
|
@@ -536,6 +575,9 @@ export function Item({
|
|
|
536
575
|
} : hasOwnAction && !isDisabled ? {
|
|
537
576
|
onPointerDown: chainEventHandlers(swipeHandlers?.onPointerDown ?? restProps.onPointerDown, pressOnRow)
|
|
538
577
|
} : null),
|
|
578
|
+
...(isDelegate ? {
|
|
579
|
+
[PRESSABLE_CONTAINER_ATTRIBUTE]: 'true'
|
|
580
|
+
} : undefined),
|
|
539
581
|
"aria-selected": allowsAriaSelected && isSelected || undefined
|
|
540
582
|
// aria-selected is invalid on roles that don't permit it (listitem, a
|
|
541
583
|
// bare div, etc.). For those, convey selection via aria-current — valid
|
|
@@ -555,19 +597,22 @@ export function Item({
|
|
|
555
597
|
isInteractive && rowPressLayerStyles.cell, isLinkRoot && styles.linkRoot, isHighlighted && styles.highlighted, isSelected && styles.selected, isDisabled && !hasParentRole && styles.disabled, hasSwipe && styles.swipeRoot, xstyle), className, style),
|
|
556
598
|
role: role,
|
|
557
599
|
onClick: rootOnClick,
|
|
558
|
-
children: [/*#__PURE__*/
|
|
600
|
+
children: [/*#__PURE__*/_jsx(ItemDescriptionContext, {
|
|
559
601
|
value: hasRenderableDescription ? descriptionID : null,
|
|
560
|
-
children:
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
602
|
+
children: /*#__PURE__*/_jsxs(ItemListRowContext, {
|
|
603
|
+
value: false,
|
|
604
|
+
children: [isRenderable(marker) && marker, isRenderable(marker) && columnMarker === marker ? /*#__PURE__*/_jsx("span", {
|
|
605
|
+
...{
|
|
606
|
+
0: {
|
|
607
|
+
className: "x78zum5 x98rzlu xeuugli x1h91t0o xkh2ocl x14kbac9"
|
|
608
|
+
},
|
|
609
|
+
1: {
|
|
610
|
+
className: "x78zum5 x98rzlu xeuugli x1h91t0o x14kbac9 xoi2r2e"
|
|
611
|
+
}
|
|
612
|
+
}[!!(align === 'first-line') << 0],
|
|
613
|
+
children: content
|
|
614
|
+
}) : content]
|
|
615
|
+
})
|
|
571
616
|
}), hasSwipe &&
|
|
572
617
|
/*#__PURE__*/
|
|
573
618
|
// The panels: out-of-flow children of this root, so the DOM is the one
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemListRowContext.d.ts","sourceRoot":"","sources":["../../src/Item/ItemListRowContext.tsx"],"names":[],"mappings":"AAgBA,eAAO,MAAM,kBAAkB,kCAAuB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
'use client';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @file ItemListRowContext.tsx
|
|
7
|
+
* @input Uses React createContext
|
|
8
|
+
* @output Exports ItemListRowContext
|
|
9
|
+
* @position Internal seam between ListItem and the Item it renders. Under a
|
|
10
|
+
* coarse primary pointer a List row's whole touch target follows its link,
|
|
11
|
+
* so ListItem marks its Item as a List row. Item clears the mark for its own
|
|
12
|
+
* content, and a standalone Item has none.
|
|
13
|
+
*/
|
|
14
|
+
import { createContext } from 'react';
|
|
15
|
+
export const ItemListRowContext = /*#__PURE__*/createContext(false);
|
|
16
|
+
ItemListRowContext.displayName = 'ItemListRowContext';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file LayoutPanel.tsx
|
|
3
3
|
* @input Uses React StyleX, LayoutAreaContext, LayoutSlotsContext,
|
|
4
|
-
* useScrollRegionProps
|
|
4
|
+
* useScrollRegionProps, resizablePane.ts
|
|
5
5
|
* @output Exports LayoutPanel component and LayoutPanelProps
|
|
6
6
|
* @position Sidebar panel for Layout start/end slots. Use for navigation panels,
|
|
7
7
|
* settings sidebars, detail panels, or any fixed-width side content.
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import type { AriaRole, ReactNode } from 'react';
|
|
15
15
|
import type { BaseProps } from '../BaseProps.js';
|
|
16
16
|
import type { SizeValue, SpacingStep } from '../utils/types.js';
|
|
17
|
-
import type
|
|
17
|
+
import { type ResizableProps, type ResizableRegion } from '../Resizable/useResizable.js';
|
|
18
18
|
export interface LayoutPanelProps extends BaseProps<HTMLDivElement> {
|
|
19
19
|
ref?: React.Ref<HTMLDivElement>;
|
|
20
20
|
/**
|
|
@@ -64,20 +64,20 @@ export interface LayoutPanelProps extends BaseProps<HTMLDivElement> {
|
|
|
64
64
|
*/
|
|
65
65
|
width?: SizeValue;
|
|
66
66
|
/**
|
|
67
|
-
*
|
|
68
|
-
* is driven by the hook and a resize handle should be placed
|
|
69
|
-
* to this panel.
|
|
67
|
+
* The output of `useResizable()`, or its `props`. When provided, the panel
|
|
68
|
+
* width is driven by the hook and a resize handle should be placed
|
|
69
|
+
* adjacent to this panel.
|
|
70
70
|
*
|
|
71
71
|
* @example
|
|
72
72
|
* ```
|
|
73
|
-
* const
|
|
74
|
-
* <LayoutPanel resizable={
|
|
73
|
+
* const resizable = useResizable({ defaultSize: 250, minSize: 200 });
|
|
74
|
+
* <LayoutPanel resizable={resizable}>
|
|
75
75
|
* <Navigation />
|
|
76
76
|
* </LayoutPanel>
|
|
77
|
-
* <ResizeHandle resizable={
|
|
77
|
+
* <ResizeHandle resizable={resizable} />
|
|
78
78
|
* ```
|
|
79
79
|
*/
|
|
80
|
-
resizable?: ResizableProps;
|
|
80
|
+
resizable?: ResizableRegion | ResizableProps;
|
|
81
81
|
}
|
|
82
82
|
/**
|
|
83
83
|
* Sidebar or side panel for Layout. Use in the `start` slot for left navigation
|
|
@@ -107,7 +107,7 @@ export interface LayoutPanelProps extends BaseProps<HTMLDivElement> {
|
|
|
107
107
|
* </LayoutContainer>
|
|
108
108
|
* ```
|
|
109
109
|
*/
|
|
110
|
-
export declare function LayoutPanel({ children, hasDivider, isScrollable, label, padding, role, width, resizable, xstyle, className, style, ref, ...props }: LayoutPanelProps): import("react").JSX.Element;
|
|
110
|
+
export declare function LayoutPanel({ children, hasDivider, isScrollable, label, padding, role, width, resizable: resizableValue, xstyle, className, style, ref, ...props }: LayoutPanelProps): import("react").JSX.Element;
|
|
111
111
|
export declare namespace LayoutPanel {
|
|
112
112
|
var displayName: string;
|
|
113
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutPanel.d.ts","sourceRoot":"","sources":["../../src/Layout/LayoutPanel.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAS5C,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"LayoutPanel.d.ts","sourceRoot":"","sources":["../../src/Layout/LayoutPanel.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAS5C,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AA6FnC,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,eAAe,GAAG,cAAc,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,UAAkB,EAClB,YAAmB,EACnB,KAAK,EACL,OAAO,EACP,IAAI,EACJ,KAAK,EACL,SAAS,EAAE,cAAc,EACzB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,gBAAgB,+BAkIlB;yBAhJe,WAAW"}
|