@cdx-ui/primitives 0.0.1-beta.37 → 0.0.1-beta.39
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/README.md +1 -0
- package/lib/commonjs/chip/createChipRoot.js +132 -0
- package/lib/commonjs/chip/createChipRoot.js.map +1 -0
- package/lib/commonjs/chip/index.js +16 -0
- package/lib/commonjs/chip/index.js.map +1 -0
- package/lib/commonjs/chip/types.js +6 -0
- package/lib/commonjs/chip/types.js.map +1 -0
- package/lib/commonjs/index.js +12 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/chip/createChipRoot.js +126 -0
- package/lib/module/chip/createChipRoot.js.map +1 -0
- package/lib/module/chip/index.js +12 -0
- package/lib/module/chip/index.js.map +1 -0
- package/lib/module/chip/types.js +4 -0
- package/lib/module/chip/types.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/chip/createChipRoot.d.ts +4 -0
- package/lib/typescript/chip/createChipRoot.d.ts.map +1 -0
- package/lib/typescript/chip/index.d.ts +9 -0
- package/lib/typescript/chip/index.d.ts.map +1 -0
- package/lib/typescript/chip/types.d.ts +17 -0
- package/lib/typescript/chip/types.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/chip/createChipRoot.tsx +144 -0
- package/src/chip/index.ts +18 -0
- package/src/chip/types.ts +23 -0
- package/src/index.ts +1 -0
package/README.md
CHANGED
|
@@ -24,6 +24,7 @@ Each `create*` factory accepts a map of base React Native components and returns
|
|
|
24
24
|
| Factory | Returns |
|
|
25
25
|
| ---------------- | ------------------------------------------------------------------------------------------------------- |
|
|
26
26
|
| `createButton` | `Button` + `.Text` `.Group` `.Spinner` `.Icon` |
|
|
27
|
+
| `createChip` | `Chip` (root only — pressable / `asChild` behavior; sub-components live in `@cdx-ui/components`) |
|
|
27
28
|
| `createInput` | `Input` + `.Slot` `.Field` |
|
|
28
29
|
| `createSelect` | `Select` + `.Trigger` `.Value` `.Icon` `.Content` `.Item` `.ItemLabel` |
|
|
29
30
|
| `createCheckbox` | `Checkbox` + `.Indicator` `.Icon` `.Label` `.Group` |
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createChipRoot = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _utils = require("@cdx-ui/utils");
|
|
9
|
+
var _focus = require("@react-native-aria/focus");
|
|
10
|
+
var _interactions = require("@react-native-aria/interactions");
|
|
11
|
+
var _dataAttributes = require("../utils/dataAttributes");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
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
|
+
const rowStyle = {
|
|
15
|
+
flexDirection: 'row',
|
|
16
|
+
alignItems: 'center',
|
|
17
|
+
alignSelf: 'flex-start'
|
|
18
|
+
};
|
|
19
|
+
const chipSlotAttrs = (0, _dataAttributes.dataAttributes)({
|
|
20
|
+
slot: 'chip'
|
|
21
|
+
});
|
|
22
|
+
const createChipRoot = (BaseView, BasePressable) => /*#__PURE__*/(0, _react.forwardRef)(({
|
|
23
|
+
asChild = false,
|
|
24
|
+
children,
|
|
25
|
+
onPress,
|
|
26
|
+
disabled = false,
|
|
27
|
+
accessibilityRole,
|
|
28
|
+
style,
|
|
29
|
+
...restProps
|
|
30
|
+
}, ref) => {
|
|
31
|
+
const childOnPress = /*#__PURE__*/_react.default.isValidElement(children) ? children.props.onPress : undefined;
|
|
32
|
+
const asChildInteractive = asChild && /*#__PURE__*/_react.default.isValidElement(children);
|
|
33
|
+
const isPressableRoot = !!onPress && !asChildInteractive;
|
|
34
|
+
const pressState = (0, _interactions.usePress)({
|
|
35
|
+
isDisabled: !isPressableRoot || disabled
|
|
36
|
+
});
|
|
37
|
+
const isPressed = pressState.isPressed;
|
|
38
|
+
const pressProps = pressState.pressProps;
|
|
39
|
+
const {
|
|
40
|
+
hoverProps,
|
|
41
|
+
isHovered
|
|
42
|
+
} = (0, _interactions.useHover)();
|
|
43
|
+
const {
|
|
44
|
+
isFocused,
|
|
45
|
+
focusProps
|
|
46
|
+
} = (0, _focus.useFocus)();
|
|
47
|
+
const {
|
|
48
|
+
isFocusVisible,
|
|
49
|
+
focusProps: focusRingProps
|
|
50
|
+
} = (0, _focus.useFocusRing)();
|
|
51
|
+
if (asChildInteractive) {
|
|
52
|
+
const child = children;
|
|
53
|
+
const childDisabled = !!child.props.disabled;
|
|
54
|
+
const resolvedDisabled = disabled || childDisabled;
|
|
55
|
+
const cloneProps = {
|
|
56
|
+
...restProps,
|
|
57
|
+
...chipSlotAttrs,
|
|
58
|
+
...(0, _dataAttributes.dataAttributes)({
|
|
59
|
+
active: false,
|
|
60
|
+
hover: false,
|
|
61
|
+
disabled: resolvedDisabled,
|
|
62
|
+
focused: false,
|
|
63
|
+
focusVisible: false
|
|
64
|
+
}),
|
|
65
|
+
...(resolvedDisabled && {
|
|
66
|
+
accessibilityState: {
|
|
67
|
+
disabled: true
|
|
68
|
+
}
|
|
69
|
+
}),
|
|
70
|
+
disabled: resolvedDisabled,
|
|
71
|
+
ref: (0, _utils.mergeRefs)(ref, child.props.ref),
|
|
72
|
+
style: [rowStyle, style, child.props.style]
|
|
73
|
+
};
|
|
74
|
+
if (resolvedDisabled) {
|
|
75
|
+
cloneProps.onPress = undefined;
|
|
76
|
+
} else if (onPress) {
|
|
77
|
+
cloneProps.onPress = (0, _utils.composeEventHandlers)(childOnPress, onPress);
|
|
78
|
+
}
|
|
79
|
+
return /*#__PURE__*/_react.default.cloneElement(child, cloneProps);
|
|
80
|
+
}
|
|
81
|
+
if (isPressableRoot) {
|
|
82
|
+
const interactionAttrs = (0, _dataAttributes.dataAttributes)({
|
|
83
|
+
active: isPressed,
|
|
84
|
+
hover: isHovered,
|
|
85
|
+
disabled,
|
|
86
|
+
focused: isFocused,
|
|
87
|
+
focusVisible: isFocusVisible
|
|
88
|
+
});
|
|
89
|
+
const {
|
|
90
|
+
onPressIn: onPressInProp,
|
|
91
|
+
onPressOut: onPressOutProp,
|
|
92
|
+
onHoverIn: onHoverInProp,
|
|
93
|
+
onHoverOut: onHoverOutProp,
|
|
94
|
+
onFocus: onFocusProp,
|
|
95
|
+
onBlur: onBlurProp
|
|
96
|
+
} = restProps;
|
|
97
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(BasePressable, {
|
|
98
|
+
...restProps,
|
|
99
|
+
...chipSlotAttrs,
|
|
100
|
+
...interactionAttrs,
|
|
101
|
+
accessibilityRole: accessibilityRole ?? 'button',
|
|
102
|
+
...(disabled && {
|
|
103
|
+
accessibilityState: {
|
|
104
|
+
disabled: true
|
|
105
|
+
}
|
|
106
|
+
}),
|
|
107
|
+
disabled: disabled,
|
|
108
|
+
ref: ref,
|
|
109
|
+
style: [rowStyle, style],
|
|
110
|
+
onPress: disabled ? undefined : onPress,
|
|
111
|
+
onPressIn: (0, _utils.composeEventHandlers)(onPressInProp, pressProps.onPressIn),
|
|
112
|
+
onPressOut: (0, _utils.composeEventHandlers)(onPressOutProp, pressProps.onPressOut),
|
|
113
|
+
onHoverIn: (0, _utils.composeEventHandlers)(onHoverInProp, hoverProps.onHoverIn),
|
|
114
|
+
onHoverOut: (0, _utils.composeEventHandlers)(onHoverOutProp, hoverProps.onHoverOut),
|
|
115
|
+
onFocus: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(onFocusProp, focusProps.onFocus), focusRingProps.onFocus),
|
|
116
|
+
onBlur: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(onBlurProp, focusProps.onBlur), focusRingProps.onBlur),
|
|
117
|
+
children: children
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(BaseView, {
|
|
121
|
+
...restProps,
|
|
122
|
+
...chipSlotAttrs,
|
|
123
|
+
...(disabled ? (0, _dataAttributes.dataAttributes)({
|
|
124
|
+
disabled: true
|
|
125
|
+
}) : undefined),
|
|
126
|
+
ref: ref,
|
|
127
|
+
style: [rowStyle, style],
|
|
128
|
+
children: children
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
exports.createChipRoot = createChipRoot;
|
|
132
|
+
//# sourceMappingURL=createChipRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_focus","_interactions","_dataAttributes","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","rowStyle","flexDirection","alignItems","alignSelf","chipSlotAttrs","dataAttributes","slot","createChipRoot","BaseView","BasePressable","forwardRef","asChild","children","onPress","disabled","accessibilityRole","style","restProps","ref","childOnPress","React","isValidElement","props","undefined","asChildInteractive","isPressableRoot","pressState","usePress","isDisabled","isPressed","pressProps","hoverProps","isHovered","useHover","isFocused","focusProps","useFocus","isFocusVisible","focusRingProps","useFocusRing","child","childDisabled","resolvedDisabled","cloneProps","active","hover","focused","focusVisible","accessibilityState","mergeRefs","composeEventHandlers","cloneElement","interactionAttrs","onPressIn","onPressInProp","onPressOut","onPressOutProp","onHoverIn","onHoverInProp","onHoverOut","onHoverOutProp","onFocus","onFocusProp","onBlur","onBlurProp","jsx","exports"],"sourceRoot":"../../../src","sources":["chip/createChipRoot.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createChip = createChip;
|
|
7
|
+
var _createChipRoot = require("./createChipRoot");
|
|
8
|
+
function createChip({
|
|
9
|
+
View,
|
|
10
|
+
Pressable
|
|
11
|
+
}) {
|
|
12
|
+
const Chip = (0, _createChipRoot.createChipRoot)(View, Pressable);
|
|
13
|
+
Chip.displayName = 'ChipPrimitive';
|
|
14
|
+
return Chip;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_createChipRoot","require","createChip","View","Pressable","Chip","createChipRoot","displayName"],"sourceRoot":"../../../src","sources":["chip/index.ts"],"mappings":";;;;;;AAEA,IAAAA,eAAA,GAAAC,OAAA;AAKO,SAASC,UAAUA,CAAC;EACzBC,IAAI;EACJC;AAIF,CAAC,EAAE;EACD,MAAMC,IAAI,GAAG,IAAAC,8BAAc,EAACH,IAAI,EAAEC,SAAS,CAAC;EAC5CC,IAAI,CAACE,WAAW,GAAG,eAAe;EAClC,OAAOF,IAAI;AACb","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["chip/types.ts"],"mappings":"","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -43,6 +43,18 @@ Object.keys(_button).forEach(function (key) {
|
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
45
|
});
|
|
46
|
+
var _chip = require("./chip");
|
|
47
|
+
Object.keys(_chip).forEach(function (key) {
|
|
48
|
+
if (key === "default" || key === "__esModule") return;
|
|
49
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
50
|
+
if (key in exports && exports[key] === _chip[key]) return;
|
|
51
|
+
Object.defineProperty(exports, key, {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
get: function () {
|
|
54
|
+
return _chip[key];
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
46
58
|
var _checkbox = require("./checkbox");
|
|
47
59
|
Object.keys(_checkbox).forEach(function (key) {
|
|
48
60
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_avatar","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_button","_checkbox","_dialog","_field","_form","_input","_otpInput","_link","_listItem","_overlay","_select","_switch","_tile","_progress","_radio","_dataAttributes"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,OAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,OAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,OAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,OAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,
|
|
1
|
+
{"version":3,"names":["_avatar","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_button","_chip","_checkbox","_dialog","_field","_form","_input","_otpInput","_link","_listItem","_overlay","_select","_switch","_tile","_progress","_radio","_dataAttributes"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { forwardRef } from 'react';
|
|
4
|
+
import { composeEventHandlers, mergeRefs } from '@cdx-ui/utils';
|
|
5
|
+
import { useFocus, useFocusRing } from '@react-native-aria/focus';
|
|
6
|
+
import { useHover, usePress } from '@react-native-aria/interactions';
|
|
7
|
+
import { dataAttributes } from '../utils/dataAttributes';
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
const rowStyle = {
|
|
10
|
+
flexDirection: 'row',
|
|
11
|
+
alignItems: 'center',
|
|
12
|
+
alignSelf: 'flex-start'
|
|
13
|
+
};
|
|
14
|
+
const chipSlotAttrs = dataAttributes({
|
|
15
|
+
slot: 'chip'
|
|
16
|
+
});
|
|
17
|
+
export const createChipRoot = (BaseView, BasePressable) => /*#__PURE__*/forwardRef(({
|
|
18
|
+
asChild = false,
|
|
19
|
+
children,
|
|
20
|
+
onPress,
|
|
21
|
+
disabled = false,
|
|
22
|
+
accessibilityRole,
|
|
23
|
+
style,
|
|
24
|
+
...restProps
|
|
25
|
+
}, ref) => {
|
|
26
|
+
const childOnPress = /*#__PURE__*/React.isValidElement(children) ? children.props.onPress : undefined;
|
|
27
|
+
const asChildInteractive = asChild && /*#__PURE__*/React.isValidElement(children);
|
|
28
|
+
const isPressableRoot = !!onPress && !asChildInteractive;
|
|
29
|
+
const pressState = usePress({
|
|
30
|
+
isDisabled: !isPressableRoot || disabled
|
|
31
|
+
});
|
|
32
|
+
const isPressed = pressState.isPressed;
|
|
33
|
+
const pressProps = pressState.pressProps;
|
|
34
|
+
const {
|
|
35
|
+
hoverProps,
|
|
36
|
+
isHovered
|
|
37
|
+
} = useHover();
|
|
38
|
+
const {
|
|
39
|
+
isFocused,
|
|
40
|
+
focusProps
|
|
41
|
+
} = useFocus();
|
|
42
|
+
const {
|
|
43
|
+
isFocusVisible,
|
|
44
|
+
focusProps: focusRingProps
|
|
45
|
+
} = useFocusRing();
|
|
46
|
+
if (asChildInteractive) {
|
|
47
|
+
const child = children;
|
|
48
|
+
const childDisabled = !!child.props.disabled;
|
|
49
|
+
const resolvedDisabled = disabled || childDisabled;
|
|
50
|
+
const cloneProps = {
|
|
51
|
+
...restProps,
|
|
52
|
+
...chipSlotAttrs,
|
|
53
|
+
...dataAttributes({
|
|
54
|
+
active: false,
|
|
55
|
+
hover: false,
|
|
56
|
+
disabled: resolvedDisabled,
|
|
57
|
+
focused: false,
|
|
58
|
+
focusVisible: false
|
|
59
|
+
}),
|
|
60
|
+
...(resolvedDisabled && {
|
|
61
|
+
accessibilityState: {
|
|
62
|
+
disabled: true
|
|
63
|
+
}
|
|
64
|
+
}),
|
|
65
|
+
disabled: resolvedDisabled,
|
|
66
|
+
ref: mergeRefs(ref, child.props.ref),
|
|
67
|
+
style: [rowStyle, style, child.props.style]
|
|
68
|
+
};
|
|
69
|
+
if (resolvedDisabled) {
|
|
70
|
+
cloneProps.onPress = undefined;
|
|
71
|
+
} else if (onPress) {
|
|
72
|
+
cloneProps.onPress = composeEventHandlers(childOnPress, onPress);
|
|
73
|
+
}
|
|
74
|
+
return /*#__PURE__*/React.cloneElement(child, cloneProps);
|
|
75
|
+
}
|
|
76
|
+
if (isPressableRoot) {
|
|
77
|
+
const interactionAttrs = dataAttributes({
|
|
78
|
+
active: isPressed,
|
|
79
|
+
hover: isHovered,
|
|
80
|
+
disabled,
|
|
81
|
+
focused: isFocused,
|
|
82
|
+
focusVisible: isFocusVisible
|
|
83
|
+
});
|
|
84
|
+
const {
|
|
85
|
+
onPressIn: onPressInProp,
|
|
86
|
+
onPressOut: onPressOutProp,
|
|
87
|
+
onHoverIn: onHoverInProp,
|
|
88
|
+
onHoverOut: onHoverOutProp,
|
|
89
|
+
onFocus: onFocusProp,
|
|
90
|
+
onBlur: onBlurProp
|
|
91
|
+
} = restProps;
|
|
92
|
+
return /*#__PURE__*/_jsx(BasePressable, {
|
|
93
|
+
...restProps,
|
|
94
|
+
...chipSlotAttrs,
|
|
95
|
+
...interactionAttrs,
|
|
96
|
+
accessibilityRole: accessibilityRole ?? 'button',
|
|
97
|
+
...(disabled && {
|
|
98
|
+
accessibilityState: {
|
|
99
|
+
disabled: true
|
|
100
|
+
}
|
|
101
|
+
}),
|
|
102
|
+
disabled: disabled,
|
|
103
|
+
ref: ref,
|
|
104
|
+
style: [rowStyle, style],
|
|
105
|
+
onPress: disabled ? undefined : onPress,
|
|
106
|
+
onPressIn: composeEventHandlers(onPressInProp, pressProps.onPressIn),
|
|
107
|
+
onPressOut: composeEventHandlers(onPressOutProp, pressProps.onPressOut),
|
|
108
|
+
onHoverIn: composeEventHandlers(onHoverInProp, hoverProps.onHoverIn),
|
|
109
|
+
onHoverOut: composeEventHandlers(onHoverOutProp, hoverProps.onHoverOut),
|
|
110
|
+
onFocus: composeEventHandlers(composeEventHandlers(onFocusProp, focusProps.onFocus), focusRingProps.onFocus),
|
|
111
|
+
onBlur: composeEventHandlers(composeEventHandlers(onBlurProp, focusProps.onBlur), focusRingProps.onBlur),
|
|
112
|
+
children: children
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return /*#__PURE__*/_jsx(BaseView, {
|
|
116
|
+
...restProps,
|
|
117
|
+
...chipSlotAttrs,
|
|
118
|
+
...(disabled ? dataAttributes({
|
|
119
|
+
disabled: true
|
|
120
|
+
}) : undefined),
|
|
121
|
+
ref: ref,
|
|
122
|
+
style: [rowStyle, style],
|
|
123
|
+
children: children
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
//# sourceMappingURL=createChipRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","forwardRef","composeEventHandlers","mergeRefs","useFocus","useFocusRing","useHover","usePress","dataAttributes","jsx","_jsx","rowStyle","flexDirection","alignItems","alignSelf","chipSlotAttrs","slot","createChipRoot","BaseView","BasePressable","asChild","children","onPress","disabled","accessibilityRole","style","restProps","ref","childOnPress","isValidElement","props","undefined","asChildInteractive","isPressableRoot","pressState","isDisabled","isPressed","pressProps","hoverProps","isHovered","isFocused","focusProps","isFocusVisible","focusRingProps","child","childDisabled","resolvedDisabled","cloneProps","active","hover","focused","focusVisible","accessibilityState","cloneElement","interactionAttrs","onPressIn","onPressInProp","onPressOut","onPressOutProp","onHoverIn","onHoverInProp","onHoverOut","onHoverOutProp","onFocus","onFocusProp","onBlur","onBlurProp"],"sourceRoot":"../../../src","sources":["chip/createChipRoot.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createChipRoot } from './createChipRoot';
|
|
4
|
+
export function createChip({
|
|
5
|
+
View,
|
|
6
|
+
Pressable
|
|
7
|
+
}) {
|
|
8
|
+
const Chip = createChipRoot(View, Pressable);
|
|
9
|
+
Chip.displayName = 'ChipPrimitive';
|
|
10
|
+
return Chip;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createChipRoot","createChip","View","Pressable","Chip","displayName"],"sourceRoot":"../../../src","sources":["chip/index.ts"],"mappings":";;AAEA,SAASA,cAAc,QAAQ,kBAAkB;AAKjD,OAAO,SAASC,UAAUA,CAAC;EACzBC,IAAI;EACJC;AAIF,CAAC,EAAE;EACD,MAAMC,IAAI,GAAGJ,cAAc,CAACE,IAAI,EAAEC,SAAS,CAAC;EAC5CC,IAAI,CAACC,WAAW,GAAG,eAAe;EAClC,OAAOD,IAAI;AACb","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["chip/types.ts"],"mappings":"","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OverlayInsetsProvider","dataAttributes"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,YAAY;AAC1B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,SAA0BA,qBAAqB,QAAQ,WAAW;AAClE,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,SAAS;AAEvB,SAASC,cAAc,QAAQ,wBAAwB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["OverlayInsetsProvider","dataAttributes"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,SAA0BA,qBAAqB,QAAQ,WAAW;AAClE,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,SAAS;AAEvB,SAASC,cAAc,QAAQ,wBAAwB","ignoreList":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { IChipProps } from './types';
|
|
3
|
+
export declare const createChipRoot: <V, P>(BaseView: React.ComponentType<V>, BasePressable: React.ComponentType<P>) => React.ForwardRefExoticComponent<IChipProps & React.RefAttributes<unknown>>;
|
|
4
|
+
//# sourceMappingURL=createChipRoot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createChipRoot.d.ts","sourceRoot":"","sources":["../../../src/chip/createChipRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EAA6B,UAAU,EAAE,MAAM,SAAS,CAAC;AAUrE,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EACjC,UAAU,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAChC,eAAe,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,+EA6HpC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { PressableProps, ViewProps } from 'react-native';
|
|
3
|
+
import type { IChipComponentType } from './types';
|
|
4
|
+
export type { IChipComponentType, IChipPressablePassthrough, IChipProps } from './types';
|
|
5
|
+
export declare function createChip({ View, Pressable, }: {
|
|
6
|
+
View: React.ComponentType<ViewProps>;
|
|
7
|
+
Pressable: React.ComponentType<PressableProps>;
|
|
8
|
+
}): IChipComponentType<ViewProps | PressableProps>;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chip/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEzF,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,SAAS,GACV,EAAE;IACD,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACrC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;CAChD,GAGgB,kBAAkB,CAAC,SAAS,GAAG,cAAc,CAAC,CAC9D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
2
|
+
import type { PressableProps, ViewProps } from 'react-native';
|
|
3
|
+
export type IChipPressablePassthrough = Partial<Pick<PressableProps, 'onPressIn' | 'onPressOut' | 'onHoverIn' | 'onHoverOut'>>;
|
|
4
|
+
export interface IChipProps extends ViewProps, IChipPressablePassthrough {
|
|
5
|
+
/**
|
|
6
|
+
* When set (and `asChild` is not used with a valid element), root renders as pressable.
|
|
7
|
+
*/
|
|
8
|
+
onPress?: PressableProps['onPress'];
|
|
9
|
+
/** Disables press handling when the root is pressable. */
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Merge slot + interaction props onto a single child instead of rendering the default pressable root.
|
|
13
|
+
*/
|
|
14
|
+
asChild?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export type IChipComponentType<RootRef> = ForwardRefExoticComponent<RefAttributes<RootRef> & IChipProps>;
|
|
17
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/chip/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9D,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC,CAC9E,CAAC;AAEF,MAAM,WAAW,UAAW,SAAQ,SAAS,EAAE,yBAAyB;IACtE;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,kBAAkB,CAAC,OAAO,IAAI,yBAAyB,CACjE,aAAa,CAAC,OAAO,CAAC,GAAG,UAAU,CACpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,KAAK,UAAU,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACnE,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,KAAK,UAAU,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACnE,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
|
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.39",
|
|
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.39"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@types/react": "*",
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import type { PressableProps } from 'react-native';
|
|
3
|
+
import { composeEventHandlers, mergeRefs } from '@cdx-ui/utils';
|
|
4
|
+
import { useFocus, useFocusRing } from '@react-native-aria/focus';
|
|
5
|
+
import { useHover, usePress } from '@react-native-aria/interactions';
|
|
6
|
+
import { dataAttributes } from '../utils/dataAttributes';
|
|
7
|
+
import type { IChipPressablePassthrough, IChipProps } from './types';
|
|
8
|
+
|
|
9
|
+
const rowStyle = {
|
|
10
|
+
flexDirection: 'row' as const,
|
|
11
|
+
alignItems: 'center' as const,
|
|
12
|
+
alignSelf: 'flex-start' as const,
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const chipSlotAttrs = dataAttributes({ slot: 'chip' });
|
|
16
|
+
|
|
17
|
+
export const createChipRoot = <V, P>(
|
|
18
|
+
BaseView: React.ComponentType<V>,
|
|
19
|
+
BasePressable: React.ComponentType<P>,
|
|
20
|
+
) =>
|
|
21
|
+
forwardRef(
|
|
22
|
+
(
|
|
23
|
+
{
|
|
24
|
+
asChild = false,
|
|
25
|
+
children,
|
|
26
|
+
onPress,
|
|
27
|
+
disabled = false,
|
|
28
|
+
accessibilityRole,
|
|
29
|
+
style,
|
|
30
|
+
...restProps
|
|
31
|
+
}: IChipProps,
|
|
32
|
+
ref: React.Ref<unknown>,
|
|
33
|
+
) => {
|
|
34
|
+
const childOnPress = React.isValidElement(children)
|
|
35
|
+
? ((children.props as { onPress?: unknown }).onPress as IChipProps['onPress'] | undefined)
|
|
36
|
+
: undefined;
|
|
37
|
+
|
|
38
|
+
const asChildInteractive = asChild && React.isValidElement(children);
|
|
39
|
+
const isPressableRoot = !!onPress && !asChildInteractive;
|
|
40
|
+
|
|
41
|
+
const pressState = usePress({
|
|
42
|
+
isDisabled: !isPressableRoot || disabled,
|
|
43
|
+
});
|
|
44
|
+
const isPressed = pressState.isPressed;
|
|
45
|
+
const pressProps = pressState.pressProps as Pick<PressableProps, 'onPressIn' | 'onPressOut'>;
|
|
46
|
+
|
|
47
|
+
const { hoverProps, isHovered } = useHover();
|
|
48
|
+
const { isFocused, focusProps } = useFocus();
|
|
49
|
+
const { isFocusVisible, focusProps: focusRingProps } = useFocusRing() as {
|
|
50
|
+
isFocusVisible: boolean;
|
|
51
|
+
focusProps: typeof focusProps;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
if (asChildInteractive) {
|
|
55
|
+
const child = children as React.ReactElement<Record<string, unknown>>;
|
|
56
|
+
|
|
57
|
+
const childDisabled = !!(child.props as { disabled?: boolean }).disabled;
|
|
58
|
+
const resolvedDisabled = disabled || childDisabled;
|
|
59
|
+
|
|
60
|
+
const cloneProps: Record<string, unknown> = {
|
|
61
|
+
...restProps,
|
|
62
|
+
...chipSlotAttrs,
|
|
63
|
+
...dataAttributes({
|
|
64
|
+
active: false,
|
|
65
|
+
hover: false,
|
|
66
|
+
disabled: resolvedDisabled,
|
|
67
|
+
focused: false,
|
|
68
|
+
focusVisible: false,
|
|
69
|
+
}),
|
|
70
|
+
...(resolvedDisabled && { accessibilityState: { disabled: true } }),
|
|
71
|
+
disabled: resolvedDisabled,
|
|
72
|
+
ref: mergeRefs(ref, child.props.ref as React.Ref<unknown>),
|
|
73
|
+
style: [rowStyle, style, child.props.style],
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
if (resolvedDisabled) {
|
|
77
|
+
cloneProps.onPress = undefined;
|
|
78
|
+
} else if (onPress) {
|
|
79
|
+
cloneProps.onPress = composeEventHandlers(childOnPress, onPress);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return React.cloneElement(child, cloneProps);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (isPressableRoot) {
|
|
86
|
+
const interactionAttrs = dataAttributes({
|
|
87
|
+
active: isPressed,
|
|
88
|
+
hover: isHovered,
|
|
89
|
+
disabled,
|
|
90
|
+
focused: isFocused,
|
|
91
|
+
focusVisible: isFocusVisible,
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
const {
|
|
95
|
+
onPressIn: onPressInProp,
|
|
96
|
+
onPressOut: onPressOutProp,
|
|
97
|
+
onHoverIn: onHoverInProp,
|
|
98
|
+
onHoverOut: onHoverOutProp,
|
|
99
|
+
onFocus: onFocusProp,
|
|
100
|
+
onBlur: onBlurProp,
|
|
101
|
+
} = restProps as IChipPressablePassthrough & Pick<PressableProps, 'onFocus' | 'onBlur'>;
|
|
102
|
+
|
|
103
|
+
return (
|
|
104
|
+
<BasePressable
|
|
105
|
+
{...(restProps as P)}
|
|
106
|
+
{...chipSlotAttrs}
|
|
107
|
+
{...interactionAttrs}
|
|
108
|
+
accessibilityRole={accessibilityRole ?? 'button'}
|
|
109
|
+
{...(disabled && { accessibilityState: { disabled: true } })}
|
|
110
|
+
disabled={disabled}
|
|
111
|
+
ref={ref as React.Ref<P>}
|
|
112
|
+
style={[rowStyle, style]}
|
|
113
|
+
onPress={disabled ? undefined : onPress}
|
|
114
|
+
onPressIn={composeEventHandlers(onPressInProp, pressProps.onPressIn)}
|
|
115
|
+
onPressOut={composeEventHandlers(onPressOutProp, pressProps.onPressOut)}
|
|
116
|
+
onHoverIn={composeEventHandlers(onHoverInProp, hoverProps.onHoverIn)}
|
|
117
|
+
onHoverOut={composeEventHandlers(onHoverOutProp, hoverProps.onHoverOut)}
|
|
118
|
+
onFocus={composeEventHandlers(
|
|
119
|
+
composeEventHandlers(onFocusProp, focusProps.onFocus),
|
|
120
|
+
focusRingProps.onFocus,
|
|
121
|
+
)}
|
|
122
|
+
onBlur={composeEventHandlers(
|
|
123
|
+
composeEventHandlers(onBlurProp, focusProps.onBlur),
|
|
124
|
+
focusRingProps.onBlur,
|
|
125
|
+
)}
|
|
126
|
+
>
|
|
127
|
+
{children}
|
|
128
|
+
</BasePressable>
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
return (
|
|
133
|
+
<BaseView
|
|
134
|
+
{...(restProps as V)}
|
|
135
|
+
{...chipSlotAttrs}
|
|
136
|
+
{...(disabled ? dataAttributes({ disabled: true }) : undefined)}
|
|
137
|
+
ref={ref as React.Ref<V>}
|
|
138
|
+
style={[rowStyle, style]}
|
|
139
|
+
>
|
|
140
|
+
{children}
|
|
141
|
+
</BaseView>
|
|
142
|
+
);
|
|
143
|
+
},
|
|
144
|
+
);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { PressableProps, ViewProps } from 'react-native';
|
|
3
|
+
import { createChipRoot } from './createChipRoot';
|
|
4
|
+
import type { IChipComponentType } from './types';
|
|
5
|
+
|
|
6
|
+
export type { IChipComponentType, IChipPressablePassthrough, IChipProps } from './types';
|
|
7
|
+
|
|
8
|
+
export function createChip({
|
|
9
|
+
View,
|
|
10
|
+
Pressable,
|
|
11
|
+
}: {
|
|
12
|
+
View: React.ComponentType<ViewProps>;
|
|
13
|
+
Pressable: React.ComponentType<PressableProps>;
|
|
14
|
+
}) {
|
|
15
|
+
const Chip = createChipRoot(View, Pressable);
|
|
16
|
+
Chip.displayName = 'ChipPrimitive';
|
|
17
|
+
return Chip as IChipComponentType<ViewProps | PressableProps>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ForwardRefExoticComponent, RefAttributes } from 'react';
|
|
2
|
+
import type { PressableProps, ViewProps } from 'react-native';
|
|
3
|
+
|
|
4
|
+
export type IChipPressablePassthrough = Partial<
|
|
5
|
+
Pick<PressableProps, 'onPressIn' | 'onPressOut' | 'onHoverIn' | 'onHoverOut'>
|
|
6
|
+
>;
|
|
7
|
+
|
|
8
|
+
export interface IChipProps extends ViewProps, IChipPressablePassthrough {
|
|
9
|
+
/**
|
|
10
|
+
* When set (and `asChild` is not used with a valid element), root renders as pressable.
|
|
11
|
+
*/
|
|
12
|
+
onPress?: PressableProps['onPress'];
|
|
13
|
+
/** Disables press handling when the root is pressable. */
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Merge slot + interaction props onto a single child instead of rendering the default pressable root.
|
|
17
|
+
*/
|
|
18
|
+
asChild?: boolean;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type IChipComponentType<RootRef> = ForwardRefExoticComponent<
|
|
22
|
+
RefAttributes<RootRef> & IChipProps
|
|
23
|
+
>;
|