@cdx-ui/primitives 0.0.1-beta.57 → 0.0.1-beta.59
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/lib/commonjs/list-item/createListItemRoot.js +30 -18
- package/lib/commonjs/list-item/createListItemRoot.js.map +1 -1
- package/lib/commonjs/list-item/index.js.map +1 -1
- package/lib/module/list-item/createListItemRoot.js +30 -18
- package/lib/module/list-item/createListItemRoot.js.map +1 -1
- package/lib/module/list-item/index.js.map +1 -1
- package/lib/typescript/list-item/createListItemRoot.d.ts.map +1 -1
- package/lib/typescript/list-item/index.d.ts +1 -1
- package/lib/typescript/list-item/index.d.ts.map +1 -1
- package/lib/typescript/list-item/types.d.ts +1 -7
- package/lib/typescript/list-item/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/list-item/createListItemRoot.tsx +35 -18
- package/src/list-item/index.ts +0 -1
- package/src/list-item/types.ts +1 -8
|
@@ -6,16 +6,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.createListItemRoot = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _utils = require("@cdx-ui/utils");
|
|
9
|
+
var _focus = require("@react-native-aria/focus");
|
|
9
10
|
var _interactions = require("@react-native-aria/interactions");
|
|
10
11
|
var _dataAttributes = require("../utils/dataAttributes");
|
|
11
12
|
var _context = require("./context");
|
|
12
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
14
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
|
-
function listItemRootDataAttrs(size,
|
|
15
|
+
function listItemRootDataAttrs(size, showSeparator, crossAlign) {
|
|
15
16
|
return (0, _dataAttributes.dataAttributes)({
|
|
16
17
|
slot: 'list-item',
|
|
17
18
|
size: size ?? 'default',
|
|
18
|
-
surface: surface ?? 'default',
|
|
19
19
|
separator: showSeparator ?? true,
|
|
20
20
|
crossAlign: crossAlign ?? 'center'
|
|
21
21
|
});
|
|
@@ -32,10 +32,9 @@ const createListItemRoot = (BaseView, BasePressable) => /*#__PURE__*/(0, _react.
|
|
|
32
32
|
children,
|
|
33
33
|
onPress,
|
|
34
34
|
size = 'default',
|
|
35
|
-
surface = 'default',
|
|
36
35
|
showSeparator = true,
|
|
37
36
|
crossAlign = 'center',
|
|
38
|
-
|
|
37
|
+
isDisabled = false,
|
|
39
38
|
style,
|
|
40
39
|
...restProps
|
|
41
40
|
}, ref) => {
|
|
@@ -48,7 +47,7 @@ const createListItemRoot = (BaseView, BasePressable) => /*#__PURE__*/(0, _react.
|
|
|
48
47
|
const asChildInteractive = asChild && /*#__PURE__*/_react.default.isValidElement(children);
|
|
49
48
|
const isPressableRoot = !!onPress && !asChildInteractive;
|
|
50
49
|
const pressState = (0, _interactions.usePress)({
|
|
51
|
-
isDisabled: !isPressableRoot ||
|
|
50
|
+
isDisabled: !isPressableRoot || isDisabled
|
|
52
51
|
});
|
|
53
52
|
const isPressed = pressState.isPressed;
|
|
54
53
|
const pressProps = pressState.pressProps;
|
|
@@ -56,23 +55,30 @@ const createListItemRoot = (BaseView, BasePressable) => /*#__PURE__*/(0, _react.
|
|
|
56
55
|
hoverProps,
|
|
57
56
|
isHovered
|
|
58
57
|
} = (0, _interactions.useHover)();
|
|
59
|
-
const
|
|
58
|
+
const {
|
|
59
|
+
isFocused,
|
|
60
|
+
focusProps
|
|
61
|
+
} = (0, _focus.useFocus)();
|
|
62
|
+
const {
|
|
63
|
+
isFocusVisible,
|
|
64
|
+
focusProps: focusRingProps
|
|
65
|
+
} = (0, _focus.useFocusRing)();
|
|
66
|
+
const slotAttrs = listItemRootDataAttrs(size, showSeparator, crossAlign);
|
|
60
67
|
const contextValue = (0, _react.useMemo)(() => ({
|
|
61
68
|
isPressed: isPressableRoot ? isPressed : false,
|
|
62
69
|
isHovered,
|
|
63
|
-
isDisabled
|
|
70
|
+
isDisabled,
|
|
64
71
|
crossAlign: crossAlign ?? 'center'
|
|
65
|
-
}), [isPressableRoot, isPressed, isHovered,
|
|
72
|
+
}), [isPressableRoot, isPressed, isHovered, isDisabled, crossAlign]);
|
|
66
73
|
if (asChildInteractive) {
|
|
67
74
|
const child = children;
|
|
68
|
-
const
|
|
69
|
-
const
|
|
75
|
+
const childProps = child.props;
|
|
76
|
+
const childDisabled = !!(childProps.isDisabled ?? childProps.disabled);
|
|
77
|
+
const resolvedDisabled = isDisabled || childDisabled;
|
|
70
78
|
const cloneProps = {
|
|
71
79
|
...restProps,
|
|
72
80
|
...slotAttrs,
|
|
73
81
|
...(0, _dataAttributes.dataAttributes)({
|
|
74
|
-
active: false,
|
|
75
|
-
hover: false,
|
|
76
82
|
disabled: resolvedDisabled
|
|
77
83
|
}),
|
|
78
84
|
...(resolvedDisabled && {
|
|
@@ -108,13 +114,17 @@ const createListItemRoot = (BaseView, BasePressable) => /*#__PURE__*/(0, _react.
|
|
|
108
114
|
const interactionAttrs = (0, _dataAttributes.dataAttributes)({
|
|
109
115
|
active: isPressed,
|
|
110
116
|
hover: isHovered,
|
|
111
|
-
|
|
117
|
+
focus: isFocused,
|
|
118
|
+
focusVisible: isFocusVisible,
|
|
119
|
+
disabled: isDisabled
|
|
112
120
|
});
|
|
113
121
|
const {
|
|
114
122
|
onPressIn: onPressInProp,
|
|
115
123
|
onPressOut: onPressOutProp,
|
|
116
124
|
onHoverIn: onHoverInProp,
|
|
117
|
-
onHoverOut: onHoverOutProp
|
|
125
|
+
onHoverOut: onHoverOutProp,
|
|
126
|
+
onFocus: onFocusProp,
|
|
127
|
+
onBlur: onBlurProp
|
|
118
128
|
} = restProps;
|
|
119
129
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.ListItemProvider, {
|
|
120
130
|
value: contextValue,
|
|
@@ -122,19 +132,21 @@ const createListItemRoot = (BaseView, BasePressable) => /*#__PURE__*/(0, _react.
|
|
|
122
132
|
...restProps,
|
|
123
133
|
...slotAttrs,
|
|
124
134
|
...interactionAttrs,
|
|
125
|
-
...(
|
|
135
|
+
...(isDisabled && {
|
|
126
136
|
accessibilityState: {
|
|
127
137
|
disabled: true
|
|
128
138
|
}
|
|
129
139
|
}),
|
|
130
|
-
disabled:
|
|
140
|
+
disabled: isDisabled,
|
|
131
141
|
ref: ref,
|
|
132
142
|
style: [rowStyleForCrossAlign(crossAlign), style],
|
|
133
|
-
onPress:
|
|
143
|
+
onPress: isDisabled ? undefined : onPress,
|
|
134
144
|
onPressIn: (0, _utils.composeEventHandlers)(onPressInProp, pressProps.onPressIn),
|
|
135
145
|
onPressOut: (0, _utils.composeEventHandlers)(onPressOutProp, pressProps.onPressOut),
|
|
136
146
|
onHoverIn: (0, _utils.composeEventHandlers)(onHoverInProp, hoverProps.onHoverIn),
|
|
137
147
|
onHoverOut: (0, _utils.composeEventHandlers)(onHoverOutProp, hoverProps.onHoverOut),
|
|
148
|
+
onFocus: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(onFocusProp, focusProps.onFocus), focusRingProps.onFocus),
|
|
149
|
+
onBlur: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(onBlurProp, focusProps.onBlur), focusRingProps.onBlur),
|
|
138
150
|
children: children
|
|
139
151
|
})
|
|
140
152
|
});
|
|
@@ -144,7 +156,7 @@ const createListItemRoot = (BaseView, BasePressable) => /*#__PURE__*/(0, _react.
|
|
|
144
156
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BaseView, {
|
|
145
157
|
...restProps,
|
|
146
158
|
...slotAttrs,
|
|
147
|
-
...(
|
|
159
|
+
...(isDisabled ? (0, _dataAttributes.dataAttributes)({
|
|
148
160
|
disabled: true
|
|
149
161
|
}) : undefined),
|
|
150
162
|
ref: ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_interactions","_dataAttributes","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","listItemRootDataAttrs","size","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_focus","_interactions","_dataAttributes","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","listItemRootDataAttrs","size","showSeparator","crossAlign","dataAttributes","slot","separator","rowStyleForCrossAlign","flexDirection","alignSelf","alignItems","createListItemRoot","BaseView","BasePressable","forwardRef","asChild","children","onPress","isDisabled","style","restProps","ref","childOnPress","React","isValidElement","props","undefined","asChildInteractive","isPressableRoot","pressState","usePress","isPressed","pressProps","hoverProps","isHovered","useHover","isFocused","focusProps","useFocus","isFocusVisible","focusRingProps","useFocusRing","slotAttrs","contextValue","useMemo","child","childProps","childDisabled","disabled","resolvedDisabled","cloneProps","accessibilityState","mergeRefs","composeEventHandlers","jsx","ListItemProvider","value","cloneElement","interactionAttrs","active","hover","focus","focusVisible","onPressIn","onPressInProp","onPressOut","onPressOutProp","onHoverIn","onHoverInProp","onHoverOut","onHoverOutProp","onFocus","onFocusProp","onBlur","onBlurProp","exports"],"sourceRoot":"../../../src","sources":["list-item/createListItemRoot.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_createListItemContent","require","_createListItemDescription","_createListItemLeadingSlot","_createListItemMeta","_createListItemRoot","_createListItemSectionHeader","_createListItemTitle","_createListItemTrailingSlot","_context","createListItem","BaseComponents","ListItem","createListItemRoot","View","Pressable","LeadingSlot","createListItemLeadingSlot","Content","createListItemContent","Title","createListItemTitle","Description","createListItemDescription","Meta","createListItemMeta","TrailingSlot","createListItemTrailingSlot","SectionHeader","createListItemSectionHeader","displayName","Object","assign"],"sourceRoot":"../../../src","sources":["list-item/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;AACA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,4BAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AACA,IAAAO,2BAAA,GAAAP,OAAA;
|
|
1
|
+
{"version":3,"names":["_createListItemContent","require","_createListItemDescription","_createListItemLeadingSlot","_createListItemMeta","_createListItemRoot","_createListItemSectionHeader","_createListItemTitle","_createListItemTrailingSlot","_context","createListItem","BaseComponents","ListItem","createListItemRoot","View","Pressable","LeadingSlot","createListItemLeadingSlot","Content","createListItemContent","Title","createListItemTitle","Description","createListItemDescription","Meta","createListItemMeta","TrailingSlot","createListItemTrailingSlot","SectionHeader","createListItemSectionHeader","displayName","Object","assign"],"sourceRoot":"../../../src","sources":["list-item/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;AACA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,4BAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AACA,IAAAO,2BAAA,GAAAP,OAAA;AAmBA,IAAAQ,QAAA,GAAAR,OAAA;AAEO,SAASS,cAAcA,CAU5BC,cAUD,EAAE;EACD,MAAMC,QAAQ,GAAG,IAAAC,sCAAkB,EAACF,cAAc,CAACG,IAAI,EAAEH,cAAc,CAACI,SAAS,CAAC;EAClF,MAAMC,WAAW,GAAG,IAAAC,oDAAyB,EAACN,cAAc,CAACK,WAAW,CAAC;EACzE,MAAME,OAAO,GAAG,IAAAC,4CAAqB,EAACR,cAAc,CAACO,OAAO,CAAC;EAC7D,MAAME,KAAK,GAAG,IAAAC,wCAAmB,EAACV,cAAc,CAACS,KAAK,CAAC;EACvD,MAAME,WAAW,GAAG,IAAAC,oDAAyB,EAACZ,cAAc,CAACW,WAAW,CAAC;EACzE,MAAME,IAAI,GAAG,IAAAC,sCAAkB,EAACd,cAAc,CAACa,IAAI,CAAC;EACpD,MAAME,YAAY,GAAG,IAAAC,sDAA0B,EAAChB,cAAc,CAACe,YAAY,CAAC;EAC5E,MAAME,aAAa,GAAG,IAAAC,wDAA2B,EAAClB,cAAc,CAACiB,aAAa,CAAC;EAE/EhB,QAAQ,CAACkB,WAAW,GAAG,mBAAmB;EAC1Cd,WAAW,CAACc,WAAW,GAAG,+BAA+B;EACzDZ,OAAO,CAACY,WAAW,GAAG,2BAA2B;EACjDV,KAAK,CAACU,WAAW,GAAG,yBAAyB;EAC7CR,WAAW,CAACQ,WAAW,GAAG,+BAA+B;EACzDN,IAAI,CAACM,WAAW,GAAG,wBAAwB;EAC3CJ,YAAY,CAACI,WAAW,GAAG,gCAAgC;EAC3DF,aAAa,CAACE,WAAW,GAAG,iCAAiC;EAE7D,OAAOC,MAAM,CAACC,MAAM,CAACpB,QAAQ,EAAE;IAC7BI,WAAW;IACXE,OAAO;IACPE,KAAK;IACLE,WAAW;IACXE,IAAI;IACJE,YAAY;IACZE;EACF,CAAC,CAAC;AAUJ","ignoreList":[]}
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
import React, { forwardRef, useMemo } from 'react';
|
|
4
4
|
import { composeEventHandlers, mergeRefs } from '@cdx-ui/utils';
|
|
5
|
+
import { useFocus, useFocusRing } from '@react-native-aria/focus';
|
|
5
6
|
import { useHover, usePress } from '@react-native-aria/interactions';
|
|
6
7
|
import { dataAttributes } from '../utils/dataAttributes';
|
|
7
8
|
import { ListItemProvider } from './context';
|
|
8
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
-
function listItemRootDataAttrs(size,
|
|
10
|
+
function listItemRootDataAttrs(size, showSeparator, crossAlign) {
|
|
10
11
|
return dataAttributes({
|
|
11
12
|
slot: 'list-item',
|
|
12
13
|
size: size ?? 'default',
|
|
13
|
-
surface: surface ?? 'default',
|
|
14
14
|
separator: showSeparator ?? true,
|
|
15
15
|
crossAlign: crossAlign ?? 'center'
|
|
16
16
|
});
|
|
@@ -27,10 +27,9 @@ export const createListItemRoot = (BaseView, BasePressable) => /*#__PURE__*/forw
|
|
|
27
27
|
children,
|
|
28
28
|
onPress,
|
|
29
29
|
size = 'default',
|
|
30
|
-
surface = 'default',
|
|
31
30
|
showSeparator = true,
|
|
32
31
|
crossAlign = 'center',
|
|
33
|
-
|
|
32
|
+
isDisabled = false,
|
|
34
33
|
style,
|
|
35
34
|
...restProps
|
|
36
35
|
}, ref) => {
|
|
@@ -43,7 +42,7 @@ export const createListItemRoot = (BaseView, BasePressable) => /*#__PURE__*/forw
|
|
|
43
42
|
const asChildInteractive = asChild && /*#__PURE__*/React.isValidElement(children);
|
|
44
43
|
const isPressableRoot = !!onPress && !asChildInteractive;
|
|
45
44
|
const pressState = usePress({
|
|
46
|
-
isDisabled: !isPressableRoot ||
|
|
45
|
+
isDisabled: !isPressableRoot || isDisabled
|
|
47
46
|
});
|
|
48
47
|
const isPressed = pressState.isPressed;
|
|
49
48
|
const pressProps = pressState.pressProps;
|
|
@@ -51,23 +50,30 @@ export const createListItemRoot = (BaseView, BasePressable) => /*#__PURE__*/forw
|
|
|
51
50
|
hoverProps,
|
|
52
51
|
isHovered
|
|
53
52
|
} = useHover();
|
|
54
|
-
const
|
|
53
|
+
const {
|
|
54
|
+
isFocused,
|
|
55
|
+
focusProps
|
|
56
|
+
} = useFocus();
|
|
57
|
+
const {
|
|
58
|
+
isFocusVisible,
|
|
59
|
+
focusProps: focusRingProps
|
|
60
|
+
} = useFocusRing();
|
|
61
|
+
const slotAttrs = listItemRootDataAttrs(size, showSeparator, crossAlign);
|
|
55
62
|
const contextValue = useMemo(() => ({
|
|
56
63
|
isPressed: isPressableRoot ? isPressed : false,
|
|
57
64
|
isHovered,
|
|
58
|
-
isDisabled
|
|
65
|
+
isDisabled,
|
|
59
66
|
crossAlign: crossAlign ?? 'center'
|
|
60
|
-
}), [isPressableRoot, isPressed, isHovered,
|
|
67
|
+
}), [isPressableRoot, isPressed, isHovered, isDisabled, crossAlign]);
|
|
61
68
|
if (asChildInteractive) {
|
|
62
69
|
const child = children;
|
|
63
|
-
const
|
|
64
|
-
const
|
|
70
|
+
const childProps = child.props;
|
|
71
|
+
const childDisabled = !!(childProps.isDisabled ?? childProps.disabled);
|
|
72
|
+
const resolvedDisabled = isDisabled || childDisabled;
|
|
65
73
|
const cloneProps = {
|
|
66
74
|
...restProps,
|
|
67
75
|
...slotAttrs,
|
|
68
76
|
...dataAttributes({
|
|
69
|
-
active: false,
|
|
70
|
-
hover: false,
|
|
71
77
|
disabled: resolvedDisabled
|
|
72
78
|
}),
|
|
73
79
|
...(resolvedDisabled && {
|
|
@@ -103,13 +109,17 @@ export const createListItemRoot = (BaseView, BasePressable) => /*#__PURE__*/forw
|
|
|
103
109
|
const interactionAttrs = dataAttributes({
|
|
104
110
|
active: isPressed,
|
|
105
111
|
hover: isHovered,
|
|
106
|
-
|
|
112
|
+
focus: isFocused,
|
|
113
|
+
focusVisible: isFocusVisible,
|
|
114
|
+
disabled: isDisabled
|
|
107
115
|
});
|
|
108
116
|
const {
|
|
109
117
|
onPressIn: onPressInProp,
|
|
110
118
|
onPressOut: onPressOutProp,
|
|
111
119
|
onHoverIn: onHoverInProp,
|
|
112
|
-
onHoverOut: onHoverOutProp
|
|
120
|
+
onHoverOut: onHoverOutProp,
|
|
121
|
+
onFocus: onFocusProp,
|
|
122
|
+
onBlur: onBlurProp
|
|
113
123
|
} = restProps;
|
|
114
124
|
return /*#__PURE__*/_jsx(ListItemProvider, {
|
|
115
125
|
value: contextValue,
|
|
@@ -117,19 +127,21 @@ export const createListItemRoot = (BaseView, BasePressable) => /*#__PURE__*/forw
|
|
|
117
127
|
...restProps,
|
|
118
128
|
...slotAttrs,
|
|
119
129
|
...interactionAttrs,
|
|
120
|
-
...(
|
|
130
|
+
...(isDisabled && {
|
|
121
131
|
accessibilityState: {
|
|
122
132
|
disabled: true
|
|
123
133
|
}
|
|
124
134
|
}),
|
|
125
|
-
disabled:
|
|
135
|
+
disabled: isDisabled,
|
|
126
136
|
ref: ref,
|
|
127
137
|
style: [rowStyleForCrossAlign(crossAlign), style],
|
|
128
|
-
onPress:
|
|
138
|
+
onPress: isDisabled ? undefined : onPress,
|
|
129
139
|
onPressIn: composeEventHandlers(onPressInProp, pressProps.onPressIn),
|
|
130
140
|
onPressOut: composeEventHandlers(onPressOutProp, pressProps.onPressOut),
|
|
131
141
|
onHoverIn: composeEventHandlers(onHoverInProp, hoverProps.onHoverIn),
|
|
132
142
|
onHoverOut: composeEventHandlers(onHoverOutProp, hoverProps.onHoverOut),
|
|
143
|
+
onFocus: composeEventHandlers(composeEventHandlers(onFocusProp, focusProps.onFocus), focusRingProps.onFocus),
|
|
144
|
+
onBlur: composeEventHandlers(composeEventHandlers(onBlurProp, focusProps.onBlur), focusRingProps.onBlur),
|
|
133
145
|
children: children
|
|
134
146
|
})
|
|
135
147
|
});
|
|
@@ -139,7 +151,7 @@ export const createListItemRoot = (BaseView, BasePressable) => /*#__PURE__*/forw
|
|
|
139
151
|
children: /*#__PURE__*/_jsx(BaseView, {
|
|
140
152
|
...restProps,
|
|
141
153
|
...slotAttrs,
|
|
142
|
-
...(
|
|
154
|
+
...(isDisabled ? dataAttributes({
|
|
143
155
|
disabled: true
|
|
144
156
|
}) : undefined),
|
|
145
157
|
ref: ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useMemo","composeEventHandlers","mergeRefs","useHover","usePress","dataAttributes","ListItemProvider","jsx","_jsx","listItemRootDataAttrs","size","
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useMemo","composeEventHandlers","mergeRefs","useFocus","useFocusRing","useHover","usePress","dataAttributes","ListItemProvider","jsx","_jsx","listItemRootDataAttrs","size","showSeparator","crossAlign","slot","separator","rowStyleForCrossAlign","flexDirection","alignSelf","alignItems","createListItemRoot","BaseView","BasePressable","asChild","children","onPress","isDisabled","style","restProps","ref","childOnPress","isValidElement","props","undefined","asChildInteractive","isPressableRoot","pressState","isPressed","pressProps","hoverProps","isHovered","isFocused","focusProps","isFocusVisible","focusRingProps","slotAttrs","contextValue","child","childProps","childDisabled","disabled","resolvedDisabled","cloneProps","accessibilityState","value","cloneElement","interactionAttrs","active","hover","focus","focusVisible","onPressIn","onPressInProp","onPressOut","onPressOutProp","onHoverIn","onHoverInProp","onHoverOut","onHoverOutProp","onFocus","onFocusProp","onBlur","onBlurProp"],"sourceRoot":"../../../src","sources":["list-item/createListItemRoot.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAElD,SAASC,oBAAoB,EAAEC,SAAS,QAAQ,eAAe;AAC/D,SAASC,QAAQ,EAAEC,YAAY,QAAQ,0BAA0B;AACjE,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,iCAAiC;AACpE,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,gBAAgB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG7C,SAASC,qBAAqBA,CAC5BC,IAA4B,EAC5BC,aAAkC,EAClCC,UAAwC,EACxC;EACA,OAAOP,cAAc,CAAC;IACpBQ,IAAI,EAAE,WAAW;IACjBH,IAAI,EAAEA,IAAI,IAAI,SAAS;IACvBI,SAAS,EAAEH,aAAa,IAAI,IAAI;IAChCC,UAAU,EAAEA,UAAU,IAAI;EAC5B,CAAC,CAAC;AACJ;AAEA,SAASG,qBAAqBA,CAACH,UAAwC,EAAE;EACvE,OAAO;IACLI,aAAa,EAAE,KAAc;IAC7BC,SAAS,EAAE,SAAkB;IAC7BC,UAAU,EAAEN,UAAU,KAAK,OAAO,GAAI,YAAY,GAAc;EAClE,CAAC;AACH;AAEA,OAAO,MAAMO,kBAAkB,GAAGA,CAChCC,QAAgC,EAChCC,aAAqC,kBAErCxB,UAAU,CACR,CACE;EACEyB,OAAO,GAAG,KAAK;EACfC,QAAQ;EACRC,OAAO;EACPd,IAAI,GAAG,SAAS;EAChBC,aAAa,GAAG,IAAI;EACpBC,UAAU,GAAG,QAAQ;EACrBa,UAAU,GAAG,KAAK;EAClBC,KAAK;EACL,GAAGC;AACW,CAAC,EACjBC,GAAuB,KACpB;EACH,MAAMC,YAAY,GAAG,aAAAjC,KAAK,CAACkC,cAAc,CAACP,QAAQ,CAAC,GAC7CA,QAAQ,CAACQ,KAAK,CAA2BP,OAAO,GAGlDQ,SAAS;;EAEb;EACA;EACA;EACA;EACA,MAAMC,kBAAkB,GAAGX,OAAO,iBAAI1B,KAAK,CAACkC,cAAc,CAACP,QAAQ,CAAC;EACpE,MAAMW,eAAe,GAAG,CAAC,CAACV,OAAO,IAAI,CAACS,kBAAkB;EAExD,MAAME,UAAU,GAAG/B,QAAQ,CAAC;IAC1BqB,UAAU,EAAE,CAACS,eAAe,IAAIT;EAClC,CAAC,CAAC;EACF,MAAMW,SAAS,GAAGD,UAAU,CAACC,SAAS;EACtC,MAAMC,UAAU,GAAGF,UAAU,CAACE,UAA8D;EAC5F,MAAM;IAAEC,UAAU;IAAEC;EAAU,CAAC,GAAGpC,QAAQ,CAAC,CAAC;EAC5C,MAAM;IAAEqC,SAAS;IAAEC;EAAW,CAAC,GAAGxC,QAAQ,CAAC,CAAC;EAC5C,MAAM;IAAEyC,cAAc;IAAED,UAAU,EAAEE;EAAe,CAAC,GAAGzC,YAAY,CAAC,CAGnE;EAED,MAAM0C,SAAS,GAAGnC,qBAAqB,CAACC,IAAI,EAAEC,aAAa,EAAEC,UAAU,CAAC;EAExE,MAAMiC,YAAY,GAAG/C,OAAO,CAC1B,OAAO;IACLsC,SAAS,EAAEF,eAAe,GAAGE,SAAS,GAAG,KAAK;IAC9CG,SAAS;IACTd,UAAU;IACVb,UAAU,EAAEA,UAAU,IAAI;EAC5B,CAAC,CAAC,EACF,CAACsB,eAAe,EAAEE,SAAS,EAAEG,SAAS,EAAEd,UAAU,EAAEb,UAAU,CAChE,CAAC;EAED,IAAIqB,kBAAkB,EAAE;IACtB,MAAMa,KAAK,GAAGvB,QAAuD;IAErE,MAAMwB,UAAU,GAAGD,KAAK,CAACf,KAAqD;IAC9E,MAAMiB,aAAa,GAAG,CAAC,EAAED,UAAU,CAACtB,UAAU,IAAIsB,UAAU,CAACE,QAAQ,CAAC;IACtE,MAAMC,gBAAgB,GAAGzB,UAAU,IAAIuB,aAAa;IAEpD,MAAMG,UAAmC,GAAG;MAC1C,GAAGxB,SAAS;MACZ,GAAGiB,SAAS;MACZ,GAAGvC,cAAc,CAAC;QAChB4C,QAAQ,EAAEC;MACZ,CAAC,CAAC;MACF,IAAIA,gBAAgB,IAAI;QAAEE,kBAAkB,EAAE;UAAEH,QAAQ,EAAE;QAAK;MAAE,CAAC,CAAC;MACnEA,QAAQ,EAAEC,gBAAgB;MAC1BtB,GAAG,EAAE5B,SAAS,CAAC4B,GAAG,EAAEkB,KAAK,CAACf,KAAK,CAACH,GAAyB,CAAC;MAC1DF,KAAK,EAAE,CAACX,qBAAqB,CAACH,UAAU,CAAC,EAAEc,KAAK,EAAEoB,KAAK,CAACf,KAAK,CAACL,KAAK;IACrE,CAAC;;IAED;IACA;IACA;IACA;IACA,IAAIwB,gBAAgB,EAAE;MACpBC,UAAU,CAAC3B,OAAO,GAAGQ,SAAS;IAChC,CAAC,MAAM,IAAIR,OAAO,EAAE;MAClB2B,UAAU,CAAC3B,OAAO,GAAGzB,oBAAoB,CAAC8B,YAAY,EAAEL,OAAO,CAAC;IAClE;IAEA,oBACEhB,IAAA,CAACF,gBAAgB;MACf+C,KAAK,EAAE;QACLjB,SAAS,EAAE,KAAK;QAChBG,SAAS,EAAE,KAAK;QAChBd,UAAU,EAAEyB,gBAAgB;QAC5BtC,UAAU,EAAEA,UAAU,IAAI;MAC5B,CAAE;MAAAW,QAAA,eAED3B,KAAK,CAAC0D,YAAY,CAACR,KAAK,EAAEK,UAAU;IAAC,CACtB,CAAC;EAEvB;EAEA,IAAIjB,eAAe,EAAE;IACnB,MAAMqB,gBAAgB,GAAGlD,cAAc,CAAC;MACtCmD,MAAM,EAAEpB,SAAS;MACjBqB,KAAK,EAAElB,SAAS;MAChBmB,KAAK,EAAElB,SAAS;MAChBmB,YAAY,EAAEjB,cAAc;MAC5BO,QAAQ,EAAExB;IACZ,CAAC,CAAC;IAEF,MAAM;MACJmC,SAAS,EAAEC,aAAa;MACxBC,UAAU,EAAEC,cAAc;MAC1BC,SAAS,EAAEC,aAAa;MACxBC,UAAU,EAAEC,cAAc;MAC1BC,OAAO,EAAEC,WAAW;MACpBC,MAAM,EAAEC;IACV,CAAC,GAAG5C,SAGH;IAED,oBACEnB,IAAA,CAACF,gBAAgB;MAAC+C,KAAK,EAAER,YAAa;MAAAtB,QAAA,eACpCf,IAAA,CAACa,aAAa;QAAA,GACPM,SAAS;QAAA,GACViB,SAAS;QAAA,GACTW,gBAAgB;QAAA,IACf9B,UAAU,IAAI;UAAE2B,kBAAkB,EAAE;YAAEH,QAAQ,EAAE;UAAK;QAAE,CAAC;QAC7DA,QAAQ,EAAExB,UAAW;QACrBG,GAAG,EAAEA,GAAoB;QACzBF,KAAK,EAAE,CAACX,qBAAqB,CAACH,UAAU,CAAC,EAAEc,KAAK,CAAE;QAClDF,OAAO,EAAEC,UAAU,GAAGO,SAAS,GAAGR,OAAQ;QAC1CoC,SAAS,EAAE7D,oBAAoB,CAAC8D,aAAa,EAAExB,UAAU,CAACuB,SAAS,CAAE;QACrEE,UAAU,EAAE/D,oBAAoB,CAACgE,cAAc,EAAE1B,UAAU,CAACyB,UAAU,CAAE;QACxEE,SAAS,EAAEjE,oBAAoB,CAACkE,aAAa,EAAE3B,UAAU,CAAC0B,SAAS,CAAE;QACrEE,UAAU,EAAEnE,oBAAoB,CAACoE,cAAc,EAAE7B,UAAU,CAAC4B,UAAU,CAAE;QACxEE,OAAO,EAAErE,oBAAoB,CAC3BA,oBAAoB,CAACsE,WAAW,EAAE5B,UAAU,CAAC2B,OAAO,CAAC,EACrDzB,cAAc,CAACyB,OACjB,CAAE;QACFE,MAAM,EAAEvE,oBAAoB,CAC1BA,oBAAoB,CAACwE,UAAU,EAAE9B,UAAU,CAAC6B,MAAM,CAAC,EACnD3B,cAAc,CAAC2B,MACjB,CAAE;QAAA/C,QAAA,EAEDA;MAAQ,CACI;IAAC,CACA,CAAC;EAEvB;EAEA,oBACEf,IAAA,CAACF,gBAAgB;IAAC+C,KAAK,EAAER,YAAa;IAAAtB,QAAA,eACpCf,IAAA,CAACY,QAAQ;MAAA,GACFO,SAAS;MAAA,GACViB,SAAS;MAAA,IACRnB,UAAU,GAAGpB,cAAc,CAAC;QAAE4C,QAAQ,EAAE;MAAK,CAAC,CAAC,GAAGjB,SAAS;MAChEJ,GAAG,EAAEA,GAAoB;MACzBF,KAAK,EAAE,CAACX,qBAAqB,CAACH,UAAU,CAAC,EAAEc,KAAK,CAAE;MAAAH,QAAA,EAEjDA;IAAQ,CACD;EAAC,CACK,CAAC;AAEvB,CACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createListItemContent","createListItemDescription","createListItemLeadingSlot","createListItemMeta","createListItemRoot","createListItemSectionHeader","createListItemTitle","createListItemTrailingSlot","ListItemProvider","useListItemContext","createListItem","BaseComponents","ListItem","View","Pressable","LeadingSlot","Content","Title","Description","Meta","TrailingSlot","SectionHeader","displayName","Object","assign"],"sourceRoot":"../../../src","sources":["list-item/index.ts"],"mappings":";;AACA,SAASA,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,yBAAyB,QAAQ,6BAA6B;AACvE,SAASC,yBAAyB,QAAQ,6BAA6B;AACvE,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,2BAA2B,QAAQ,+BAA+B;AAC3E,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,0BAA0B,QAAQ,8BAA8B;
|
|
1
|
+
{"version":3,"names":["createListItemContent","createListItemDescription","createListItemLeadingSlot","createListItemMeta","createListItemRoot","createListItemSectionHeader","createListItemTitle","createListItemTrailingSlot","ListItemProvider","useListItemContext","createListItem","BaseComponents","ListItem","View","Pressable","LeadingSlot","Content","Title","Description","Meta","TrailingSlot","SectionHeader","displayName","Object","assign"],"sourceRoot":"../../../src","sources":["list-item/index.ts"],"mappings":";;AACA,SAASA,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,yBAAyB,QAAQ,6BAA6B;AACvE,SAASC,yBAAyB,QAAQ,6BAA6B;AACvE,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,2BAA2B,QAAQ,+BAA+B;AAC3E,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,0BAA0B,QAAQ,8BAA8B;AAmBzE,SAASC,gBAAgB,EAAEC,kBAAkB,QAAQ,WAAW;AAEhE,OAAO,SAASC,cAAcA,CAU5BC,cAUD,EAAE;EACD,MAAMC,QAAQ,GAAGR,kBAAkB,CAACO,cAAc,CAACE,IAAI,EAAEF,cAAc,CAACG,SAAS,CAAC;EAClF,MAAMC,WAAW,GAAGb,yBAAyB,CAACS,cAAc,CAACI,WAAW,CAAC;EACzE,MAAMC,OAAO,GAAGhB,qBAAqB,CAACW,cAAc,CAACK,OAAO,CAAC;EAC7D,MAAMC,KAAK,GAAGX,mBAAmB,CAACK,cAAc,CAACM,KAAK,CAAC;EACvD,MAAMC,WAAW,GAAGjB,yBAAyB,CAACU,cAAc,CAACO,WAAW,CAAC;EACzE,MAAMC,IAAI,GAAGhB,kBAAkB,CAACQ,cAAc,CAACQ,IAAI,CAAC;EACpD,MAAMC,YAAY,GAAGb,0BAA0B,CAACI,cAAc,CAACS,YAAY,CAAC;EAC5E,MAAMC,aAAa,GAAGhB,2BAA2B,CAACM,cAAc,CAACU,aAAa,CAAC;EAE/ET,QAAQ,CAACU,WAAW,GAAG,mBAAmB;EAC1CP,WAAW,CAACO,WAAW,GAAG,+BAA+B;EACzDN,OAAO,CAACM,WAAW,GAAG,2BAA2B;EACjDL,KAAK,CAACK,WAAW,GAAG,yBAAyB;EAC7CJ,WAAW,CAACI,WAAW,GAAG,+BAA+B;EACzDH,IAAI,CAACG,WAAW,GAAG,wBAAwB;EAC3CF,YAAY,CAACE,WAAW,GAAG,gCAAgC;EAC3DD,aAAa,CAACC,WAAW,GAAG,iCAAiC;EAE7D,OAAOC,MAAM,CAACC,MAAM,CAACZ,QAAQ,EAAE;IAC7BG,WAAW;IACXC,OAAO;IACPC,KAAK;IACLC,WAAW;IACXC,IAAI;IACJC,YAAY;IACZC;EACF,CAAC,CAAC;AAUJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createListItemRoot.d.ts","sourceRoot":"","sources":["../../../src/list-item/createListItemRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"createListItemRoot.d.ts","sourceRoot":"","sources":["../../../src/list-item/createListItemRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,OAAO,KAAK,EAAE,cAAc,EAAiC,MAAM,SAAS,CAAC;AAuB7E,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,EACrC,UAAU,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAChC,eAAe,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,mFAkKpC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
import type { IListItemComponentType } from './types';
|
|
3
|
-
export type { IListItemComponentType, IListItemContentProps, IListItemContextValue, IListItemDescriptionProps, IListItemLeadingSlotProps, IListItemMetaProps, IListItemPressablePassthrough, IListItemProps, IListItemSectionHeaderProps, IListItemTitleProps, IListItemTrailingSlotProps, ListItemCrossAlign, ListItemSize,
|
|
3
|
+
export type { IListItemComponentType, IListItemContentProps, IListItemContextValue, IListItemDescriptionProps, IListItemLeadingSlotProps, IListItemMetaProps, IListItemPressablePassthrough, IListItemProps, IListItemSectionHeaderProps, IListItemTitleProps, IListItemTrailingSlotProps, ListItemCrossAlign, ListItemSize, } from './types';
|
|
4
4
|
export { ListItemProvider, useListItemContext } from './context';
|
|
5
5
|
export declare function createListItem<ViewComponent, PressableComponent, LeadingSlot, Content, Title, Description, Meta, TrailingSlot, SectionHeader>(BaseComponents: {
|
|
6
6
|
View: React.ComponentType<ViewComponent>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/list-item/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,6BAA6B,EAC7B,cAAc,EACd,2BAA2B,EAC3B,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/list-item/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,6BAA6B,EAC7B,cAAc,EACd,2BAA2B,EAC3B,mBAAmB,EACnB,0BAA0B,EAC1B,kBAAkB,EAClB,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEjE,wBAAgB,cAAc,CAC5B,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,OAAO,EACP,KAAK,EACL,WAAW,EACX,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,cAAc,EAAE;IAChB,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACzC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACnD,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAClC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAChD,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;CACnD,GA2BO,sBAAsB,CAC1B,aAAa,GAAG,kBAAkB,EAClC,WAAW,EACX,OAAO,EACP,KAAK,EACL,WAAW,EACX,IAAI,EACJ,YAAY,EACZ,aAAa,CACd,CACF"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { ForwardRefExoticComponent, PropsWithoutRef, ReactNode, RefAttributes } from 'react';
|
|
2
2
|
import type { PressableProps, TextProps, ViewProps } from 'react-native';
|
|
3
3
|
export type ListItemSize = 'default' | 'compact';
|
|
4
|
-
export type ListItemSurface = 'default' | 'negative';
|
|
5
4
|
/**
|
|
6
5
|
* Cross-axis alignment for the row (`flex-direction: row`).
|
|
7
6
|
* - **center**: Leading, content, and trailing are vertically centered (typical transactions).
|
|
@@ -13,7 +12,7 @@ export interface IListItemProps extends ViewProps, IListItemPressablePassthrough
|
|
|
13
12
|
/**
|
|
14
13
|
* Disables press handling when the root is pressable (maps to Pressable `disabled`).
|
|
15
14
|
*/
|
|
16
|
-
|
|
15
|
+
isDisabled?: boolean;
|
|
17
16
|
/**
|
|
18
17
|
* When set (and `asChild` is not used), root renders as pressable with interaction props.
|
|
19
18
|
*/
|
|
@@ -23,11 +22,6 @@ export interface IListItemProps extends ViewProps, IListItemPressablePassthrough
|
|
|
23
22
|
* @default 'default'
|
|
24
23
|
*/
|
|
25
24
|
size?: ListItemSize;
|
|
26
|
-
/**
|
|
27
|
-
* Semantic row surface (e.g. canceled transaction); mapped via `data-surface`.
|
|
28
|
-
* @default 'default'
|
|
29
|
-
*/
|
|
30
|
-
surface?: ListItemSurface;
|
|
31
25
|
/**
|
|
32
26
|
* Whether the row shows a bottom separator; mapped via `data-separator`.
|
|
33
27
|
* @default true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/list-item/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAClG,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/list-item/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cdx-ui/primitives",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.59",
|
|
4
4
|
"main": "lib/commonjs/index.js",
|
|
5
5
|
"module": "lib/module/index.js",
|
|
6
6
|
"react-native": "src/index.ts",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"@react-stately/checkbox": "3.7.4",
|
|
61
61
|
"@react-stately/radio": "3.12.0",
|
|
62
62
|
"@react-stately/toggle": "3.9.4",
|
|
63
|
-
"@cdx-ui/utils": "0.0.1-beta.
|
|
63
|
+
"@cdx-ui/utils": "0.0.1-beta.59"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@types/react": "*",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { forwardRef, useMemo } from 'react';
|
|
2
2
|
import type { PressableProps } from 'react-native';
|
|
3
3
|
import { composeEventHandlers, mergeRefs } from '@cdx-ui/utils';
|
|
4
|
+
import { useFocus, useFocusRing } from '@react-native-aria/focus';
|
|
4
5
|
import { useHover, usePress } from '@react-native-aria/interactions';
|
|
5
6
|
import { dataAttributes } from '../utils/dataAttributes';
|
|
6
7
|
import { ListItemProvider } from './context';
|
|
@@ -8,14 +9,12 @@ import type { IListItemProps, IListItemPressablePassthrough } from './types';
|
|
|
8
9
|
|
|
9
10
|
function listItemRootDataAttrs(
|
|
10
11
|
size: IListItemProps['size'],
|
|
11
|
-
surface: IListItemProps['surface'],
|
|
12
12
|
showSeparator: boolean | undefined,
|
|
13
13
|
crossAlign: IListItemProps['crossAlign'],
|
|
14
14
|
) {
|
|
15
15
|
return dataAttributes({
|
|
16
16
|
slot: 'list-item',
|
|
17
17
|
size: size ?? 'default',
|
|
18
|
-
surface: surface ?? 'default',
|
|
19
18
|
separator: showSeparator ?? true,
|
|
20
19
|
crossAlign: crossAlign ?? 'center',
|
|
21
20
|
});
|
|
@@ -40,10 +39,9 @@ export const createListItemRoot = <V, P>(
|
|
|
40
39
|
children,
|
|
41
40
|
onPress,
|
|
42
41
|
size = 'default',
|
|
43
|
-
surface = 'default',
|
|
44
42
|
showSeparator = true,
|
|
45
43
|
crossAlign = 'center',
|
|
46
|
-
|
|
44
|
+
isDisabled = false,
|
|
47
45
|
style,
|
|
48
46
|
...restProps
|
|
49
47
|
}: IListItemProps,
|
|
@@ -63,36 +61,40 @@ export const createListItemRoot = <V, P>(
|
|
|
63
61
|
const isPressableRoot = !!onPress && !asChildInteractive;
|
|
64
62
|
|
|
65
63
|
const pressState = usePress({
|
|
66
|
-
isDisabled: !isPressableRoot ||
|
|
64
|
+
isDisabled: !isPressableRoot || isDisabled,
|
|
67
65
|
});
|
|
68
66
|
const isPressed = pressState.isPressed;
|
|
69
67
|
const pressProps = pressState.pressProps as Pick<PressableProps, 'onPressIn' | 'onPressOut'>;
|
|
70
68
|
const { hoverProps, isHovered } = useHover();
|
|
69
|
+
const { isFocused, focusProps } = useFocus();
|
|
70
|
+
const { isFocusVisible, focusProps: focusRingProps } = useFocusRing() as {
|
|
71
|
+
isFocusVisible: boolean;
|
|
72
|
+
focusProps: typeof focusProps;
|
|
73
|
+
};
|
|
71
74
|
|
|
72
|
-
const slotAttrs = listItemRootDataAttrs(size,
|
|
75
|
+
const slotAttrs = listItemRootDataAttrs(size, showSeparator, crossAlign);
|
|
73
76
|
|
|
74
77
|
const contextValue = useMemo(
|
|
75
78
|
() => ({
|
|
76
79
|
isPressed: isPressableRoot ? isPressed : false,
|
|
77
80
|
isHovered,
|
|
78
|
-
isDisabled
|
|
81
|
+
isDisabled,
|
|
79
82
|
crossAlign: crossAlign ?? 'center',
|
|
80
83
|
}),
|
|
81
|
-
[isPressableRoot, isPressed, isHovered,
|
|
84
|
+
[isPressableRoot, isPressed, isHovered, isDisabled, crossAlign],
|
|
82
85
|
);
|
|
83
86
|
|
|
84
87
|
if (asChildInteractive) {
|
|
85
88
|
const child = children as React.ReactElement<Record<string, unknown>>;
|
|
86
89
|
|
|
87
|
-
const
|
|
88
|
-
const
|
|
90
|
+
const childProps = child.props as { disabled?: boolean; isDisabled?: boolean };
|
|
91
|
+
const childDisabled = !!(childProps.isDisabled ?? childProps.disabled);
|
|
92
|
+
const resolvedDisabled = isDisabled || childDisabled;
|
|
89
93
|
|
|
90
94
|
const cloneProps: Record<string, unknown> = {
|
|
91
95
|
...restProps,
|
|
92
96
|
...slotAttrs,
|
|
93
97
|
...dataAttributes({
|
|
94
|
-
active: false,
|
|
95
|
-
hover: false,
|
|
96
98
|
disabled: resolvedDisabled,
|
|
97
99
|
}),
|
|
98
100
|
...(resolvedDisabled && { accessibilityState: { disabled: true } }),
|
|
@@ -129,7 +131,9 @@ export const createListItemRoot = <V, P>(
|
|
|
129
131
|
const interactionAttrs = dataAttributes({
|
|
130
132
|
active: isPressed,
|
|
131
133
|
hover: isHovered,
|
|
132
|
-
|
|
134
|
+
focus: isFocused,
|
|
135
|
+
focusVisible: isFocusVisible,
|
|
136
|
+
disabled: isDisabled,
|
|
133
137
|
});
|
|
134
138
|
|
|
135
139
|
const {
|
|
@@ -137,7 +141,12 @@ export const createListItemRoot = <V, P>(
|
|
|
137
141
|
onPressOut: onPressOutProp,
|
|
138
142
|
onHoverIn: onHoverInProp,
|
|
139
143
|
onHoverOut: onHoverOutProp,
|
|
140
|
-
|
|
144
|
+
onFocus: onFocusProp,
|
|
145
|
+
onBlur: onBlurProp,
|
|
146
|
+
} = restProps as IListItemPressablePassthrough & {
|
|
147
|
+
onFocus?: (...args: unknown[]) => unknown;
|
|
148
|
+
onBlur?: (...args: unknown[]) => unknown;
|
|
149
|
+
};
|
|
141
150
|
|
|
142
151
|
return (
|
|
143
152
|
<ListItemProvider value={contextValue}>
|
|
@@ -145,15 +154,23 @@ export const createListItemRoot = <V, P>(
|
|
|
145
154
|
{...(restProps as P)}
|
|
146
155
|
{...slotAttrs}
|
|
147
156
|
{...interactionAttrs}
|
|
148
|
-
{...(
|
|
149
|
-
disabled={
|
|
157
|
+
{...(isDisabled && { accessibilityState: { disabled: true } })}
|
|
158
|
+
disabled={isDisabled}
|
|
150
159
|
ref={ref as React.Ref<P>}
|
|
151
160
|
style={[rowStyleForCrossAlign(crossAlign), style]}
|
|
152
|
-
onPress={
|
|
161
|
+
onPress={isDisabled ? undefined : onPress}
|
|
153
162
|
onPressIn={composeEventHandlers(onPressInProp, pressProps.onPressIn)}
|
|
154
163
|
onPressOut={composeEventHandlers(onPressOutProp, pressProps.onPressOut)}
|
|
155
164
|
onHoverIn={composeEventHandlers(onHoverInProp, hoverProps.onHoverIn)}
|
|
156
165
|
onHoverOut={composeEventHandlers(onHoverOutProp, hoverProps.onHoverOut)}
|
|
166
|
+
onFocus={composeEventHandlers(
|
|
167
|
+
composeEventHandlers(onFocusProp, focusProps.onFocus),
|
|
168
|
+
focusRingProps.onFocus,
|
|
169
|
+
)}
|
|
170
|
+
onBlur={composeEventHandlers(
|
|
171
|
+
composeEventHandlers(onBlurProp, focusProps.onBlur),
|
|
172
|
+
focusRingProps.onBlur,
|
|
173
|
+
)}
|
|
157
174
|
>
|
|
158
175
|
{children}
|
|
159
176
|
</BasePressable>
|
|
@@ -166,7 +183,7 @@ export const createListItemRoot = <V, P>(
|
|
|
166
183
|
<BaseView
|
|
167
184
|
{...(restProps as V)}
|
|
168
185
|
{...slotAttrs}
|
|
169
|
-
{...(
|
|
186
|
+
{...(isDisabled ? dataAttributes({ disabled: true }) : undefined)}
|
|
170
187
|
ref={ref as React.Ref<V>}
|
|
171
188
|
style={[rowStyleForCrossAlign(crossAlign), style]}
|
|
172
189
|
>
|
package/src/list-item/index.ts
CHANGED
package/src/list-item/types.ts
CHANGED
|
@@ -3,8 +3,6 @@ import type { PressableProps, TextProps, ViewProps } from 'react-native';
|
|
|
3
3
|
|
|
4
4
|
export type ListItemSize = 'default' | 'compact';
|
|
5
5
|
|
|
6
|
-
export type ListItemSurface = 'default' | 'negative';
|
|
7
|
-
|
|
8
6
|
/**
|
|
9
7
|
* Cross-axis alignment for the row (`flex-direction: row`).
|
|
10
8
|
* - **center**: Leading, content, and trailing are vertically centered (typical transactions).
|
|
@@ -20,7 +18,7 @@ export interface IListItemProps extends ViewProps, IListItemPressablePassthrough
|
|
|
20
18
|
/**
|
|
21
19
|
* Disables press handling when the root is pressable (maps to Pressable `disabled`).
|
|
22
20
|
*/
|
|
23
|
-
|
|
21
|
+
isDisabled?: boolean;
|
|
24
22
|
/**
|
|
25
23
|
* When set (and `asChild` is not used), root renders as pressable with interaction props.
|
|
26
24
|
*/
|
|
@@ -30,11 +28,6 @@ export interface IListItemProps extends ViewProps, IListItemPressablePassthrough
|
|
|
30
28
|
* @default 'default'
|
|
31
29
|
*/
|
|
32
30
|
size?: ListItemSize;
|
|
33
|
-
/**
|
|
34
|
-
* Semantic row surface (e.g. canceled transaction); mapped via `data-surface`.
|
|
35
|
-
* @default 'default'
|
|
36
|
-
*/
|
|
37
|
-
surface?: ListItemSurface;
|
|
38
31
|
/**
|
|
39
32
|
* Whether the row shows a bottom separator; mapped via `data-separator`.
|
|
40
33
|
* @default true
|