@cdx-ui/primitives 0.0.1-beta.44 → 0.0.1-beta.45
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/link/context.js +11 -0
- package/lib/commonjs/link/context.js.map +1 -0
- package/lib/commonjs/link/createLink.js +28 -14
- package/lib/commonjs/link/createLink.js.map +1 -1
- package/lib/commonjs/link/index.js +13 -0
- package/lib/commonjs/link/index.js.map +1 -1
- package/lib/module/link/context.js +5 -0
- package/lib/module/link/context.js.map +1 -0
- package/lib/module/link/createLink.js +29 -15
- package/lib/module/link/createLink.js.map +1 -1
- package/lib/module/link/index.js +1 -0
- package/lib/module/link/index.js.map +1 -1
- package/lib/typescript/link/context.d.ts +10 -0
- package/lib/typescript/link/context.d.ts.map +1 -0
- package/lib/typescript/link/createLink.d.ts.map +1 -1
- package/lib/typescript/link/index.d.ts +2 -0
- package/lib/typescript/link/index.d.ts.map +1 -1
- package/lib/typescript/link/types.d.ts +1 -0
- package/lib/typescript/link/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/link/context.tsx +10 -0
- package/src/link/createLink.tsx +41 -23
- package/src/link/index.tsx +2 -0
- package/src/link/types.ts +1 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useLinkInteractionContext = exports.LinkInteractionProvider = void 0;
|
|
7
|
+
var _utils = require("@cdx-ui/utils");
|
|
8
|
+
const [LinkInteractionProvider, useLinkInteractionContext] = (0, _utils.createContext)('LinkInteractionContext');
|
|
9
|
+
exports.useLinkInteractionContext = useLinkInteractionContext;
|
|
10
|
+
exports.LinkInteractionProvider = LinkInteractionProvider;
|
|
11
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","LinkInteractionProvider","useLinkInteractionContext","createContext","exports"],"sourceRoot":"../../../src","sources":["link/context.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAQO,MAAM,CAACC,uBAAuB,EAAEC,yBAAyB,CAAC,GAC/D,IAAAC,oBAAa,EAAuB,wBAAwB,CAAC;AAACC,OAAA,CAAAF,yBAAA,GAAAA,yBAAA;AAAAE,OAAA,CAAAH,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ var _utils = require("@cdx-ui/utils");
|
|
|
9
9
|
var _focus = require("@react-native-aria/focus");
|
|
10
10
|
var _interactions = require("@react-native-aria/interactions");
|
|
11
11
|
var _dataAttributes = require("../utils/dataAttributes");
|
|
12
|
+
var _context = require("./context");
|
|
12
13
|
var _useLink = require("./useLink");
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
15
|
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); }
|
|
@@ -20,6 +21,7 @@ const createLink = ({
|
|
|
20
21
|
isPressed: isPressedProp,
|
|
21
22
|
isFocused: isFocusedProp,
|
|
22
23
|
isFocusVisible: isFocusVisibleProp,
|
|
24
|
+
isVisited: isVisitedProp,
|
|
23
25
|
href,
|
|
24
26
|
onPress,
|
|
25
27
|
action,
|
|
@@ -50,24 +52,36 @@ const createLink = ({
|
|
|
50
52
|
action,
|
|
51
53
|
webProps
|
|
52
54
|
});
|
|
55
|
+
const hover = isHoveredProp || isHovered;
|
|
56
|
+
const visited = isVisitedProp ?? false;
|
|
57
|
+
const focusVisible = isFocusVisibleProp || isFocusVisible;
|
|
58
|
+
const interactionState = (0, _react.useMemo)(() => ({
|
|
59
|
+
hover,
|
|
60
|
+
visited,
|
|
61
|
+
focusVisible
|
|
62
|
+
}), [hover, visited, focusVisible]);
|
|
53
63
|
const interactionAttrs = (0, _dataAttributes.dataAttributes)({
|
|
54
|
-
hover
|
|
64
|
+
hover,
|
|
55
65
|
focus: isFocusedProp || isFocused,
|
|
56
66
|
active: isPressedProp || isPressed,
|
|
57
|
-
focusVisible
|
|
67
|
+
focusVisible,
|
|
68
|
+
visited
|
|
58
69
|
});
|
|
59
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.LinkInteractionProvider, {
|
|
71
|
+
value: interactionState,
|
|
72
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, {
|
|
73
|
+
ref: ref,
|
|
74
|
+
...interactionAttrs,
|
|
75
|
+
...linkProps,
|
|
76
|
+
...props,
|
|
77
|
+
onPressIn: (0, _utils.composeEventHandlers)(props?.onPressIn, pressProps.onPressIn),
|
|
78
|
+
onPressOut: (0, _utils.composeEventHandlers)(props?.onPressOut, pressProps.onPressOut),
|
|
79
|
+
onHoverIn: (0, _utils.composeEventHandlers)(props?.onHoverIn, hoverProps.onHoverIn),
|
|
80
|
+
onHoverOut: (0, _utils.composeEventHandlers)(props?.onHoverOut, hoverProps.onHoverOut),
|
|
81
|
+
onFocus: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(props?.onFocus, focusProps.onFocus), focusRingProps.onFocus),
|
|
82
|
+
onBlur: (0, _utils.composeEventHandlers)((0, _utils.composeEventHandlers)(props?.onBlur, focusProps.onBlur), focusRingProps.onBlur),
|
|
83
|
+
children: children
|
|
84
|
+
})
|
|
71
85
|
});
|
|
72
86
|
});
|
|
73
87
|
exports.createLink = createLink;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_focus","_interactions","_dataAttributes","_useLink","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createLink","Root","forwardRef","children","isHovered","isHoveredProp","isPressed","isPressedProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","href","onPress","action","webProps","props","ref","focusProps","useFocus","focusRingProps","useFocusRing","pressProps","usePress","hoverProps","useHover","linkProps","useLink","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_focus","_interactions","_dataAttributes","_context","_useLink","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createLink","Root","forwardRef","children","isHovered","isHoveredProp","isPressed","isPressedProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isVisited","isVisitedProp","href","onPress","action","webProps","props","ref","focusProps","useFocus","focusRingProps","useFocusRing","pressProps","usePress","hoverProps","useHover","linkProps","useLink","hover","visited","focusVisible","interactionState","useMemo","interactionAttrs","dataAttributes","focus","active","jsx","LinkInteractionProvider","value","onPressIn","composeEventHandlers","onPressOut","onHoverIn","onHoverOut","onFocus","onBlur","exports"],"sourceRoot":"../../../src","sources":["link/createLink.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "LinkInteractionProvider", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _context.LinkInteractionProvider;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "LinkProvider", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function () {
|
|
@@ -21,7 +27,14 @@ Object.defineProperty(exports, "useLink", {
|
|
|
21
27
|
return _useLink.useLink;
|
|
22
28
|
}
|
|
23
29
|
});
|
|
30
|
+
Object.defineProperty(exports, "useLinkInteractionContext", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _context.useLinkInteractionContext;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
24
36
|
var _createLink = require("./createLink");
|
|
37
|
+
var _context = require("./context");
|
|
25
38
|
var _LinkProvider = require("./LinkProvider");
|
|
26
39
|
var _useLink = require("./useLink");
|
|
27
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_createLink","require","_LinkProvider","_useLink"],"sourceRoot":"../../../src","sources":["link/index.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_createLink","require","_context","_LinkProvider","_useLink"],"sourceRoot":"../../../src","sources":["link/index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","LinkInteractionProvider","useLinkInteractionContext"],"sourceRoot":"../../../src","sources":["link/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,eAAe;AAQ7C,OAAO,MAAM,CAACC,uBAAuB,EAAEC,yBAAyB,CAAC,GAC/DF,aAAa,CAAuB,wBAAwB,CAAC","ignoreList":[]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { forwardRef } from 'react';
|
|
3
|
+
import React, { forwardRef, useMemo } from 'react';
|
|
4
4
|
import { composeEventHandlers } from '@cdx-ui/utils';
|
|
5
5
|
import { useFocusRing, useFocus } from '@react-native-aria/focus';
|
|
6
6
|
import { useHover, usePress } from '@react-native-aria/interactions';
|
|
7
7
|
import { dataAttributes } from '../utils/dataAttributes';
|
|
8
|
+
import { LinkInteractionProvider } from './context';
|
|
8
9
|
import { useLink } from './useLink';
|
|
9
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
11
|
export const createLink = ({
|
|
@@ -15,6 +16,7 @@ export const createLink = ({
|
|
|
15
16
|
isPressed: isPressedProp,
|
|
16
17
|
isFocused: isFocusedProp,
|
|
17
18
|
isFocusVisible: isFocusVisibleProp,
|
|
19
|
+
isVisited: isVisitedProp,
|
|
18
20
|
href,
|
|
19
21
|
onPress,
|
|
20
22
|
action,
|
|
@@ -45,24 +47,36 @@ export const createLink = ({
|
|
|
45
47
|
action,
|
|
46
48
|
webProps
|
|
47
49
|
});
|
|
50
|
+
const hover = isHoveredProp || isHovered;
|
|
51
|
+
const visited = isVisitedProp ?? false;
|
|
52
|
+
const focusVisible = isFocusVisibleProp || isFocusVisible;
|
|
53
|
+
const interactionState = useMemo(() => ({
|
|
54
|
+
hover,
|
|
55
|
+
visited,
|
|
56
|
+
focusVisible
|
|
57
|
+
}), [hover, visited, focusVisible]);
|
|
48
58
|
const interactionAttrs = dataAttributes({
|
|
49
|
-
hover
|
|
59
|
+
hover,
|
|
50
60
|
focus: isFocusedProp || isFocused,
|
|
51
61
|
active: isPressedProp || isPressed,
|
|
52
|
-
focusVisible
|
|
62
|
+
focusVisible,
|
|
63
|
+
visited
|
|
53
64
|
});
|
|
54
|
-
return /*#__PURE__*/_jsx(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
return /*#__PURE__*/_jsx(LinkInteractionProvider, {
|
|
66
|
+
value: interactionState,
|
|
67
|
+
children: /*#__PURE__*/_jsx(Root, {
|
|
68
|
+
ref: ref,
|
|
69
|
+
...interactionAttrs,
|
|
70
|
+
...linkProps,
|
|
71
|
+
...props,
|
|
72
|
+
onPressIn: composeEventHandlers(props?.onPressIn, pressProps.onPressIn),
|
|
73
|
+
onPressOut: composeEventHandlers(props?.onPressOut, pressProps.onPressOut),
|
|
74
|
+
onHoverIn: composeEventHandlers(props?.onHoverIn, hoverProps.onHoverIn),
|
|
75
|
+
onHoverOut: composeEventHandlers(props?.onHoverOut, hoverProps.onHoverOut),
|
|
76
|
+
onFocus: composeEventHandlers(composeEventHandlers(props?.onFocus, focusProps.onFocus), focusRingProps.onFocus),
|
|
77
|
+
onBlur: composeEventHandlers(composeEventHandlers(props?.onBlur, focusProps.onBlur), focusRingProps.onBlur),
|
|
78
|
+
children: children
|
|
79
|
+
})
|
|
66
80
|
});
|
|
67
81
|
});
|
|
68
82
|
//# sourceMappingURL=createLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","composeEventHandlers","useFocusRing","useFocus","useHover","usePress","dataAttributes","useLink","jsx","_jsx","createLink","Root","children","isHovered","isHoveredProp","isPressed","isPressedProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","href","onPress","action","webProps","props","ref","focusProps","focusRingProps","pressProps","hoverProps","linkProps","
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useMemo","composeEventHandlers","useFocusRing","useFocus","useHover","usePress","dataAttributes","LinkInteractionProvider","useLink","jsx","_jsx","createLink","Root","children","isHovered","isHoveredProp","isPressed","isPressedProp","isFocused","isFocusedProp","isFocusVisible","isFocusVisibleProp","isVisited","isVisitedProp","href","onPress","action","webProps","props","ref","focusProps","focusRingProps","pressProps","hoverProps","linkProps","hover","visited","focusVisible","interactionState","interactionAttrs","focus","active","value","onPressIn","onPressOut","onHoverIn","onHoverOut","onFocus","onBlur"],"sourceRoot":"../../../src","sources":["link/createLink.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/link/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createLink","LinkProvider","useLink"],"sourceRoot":"../../../src","sources":["link/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,SAASC,OAAO,QAAQ,WAAW","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createLink","LinkInteractionProvider","useLinkInteractionContext","LinkProvider","useLink"],"sourceRoot":"../../../src","sources":["link/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,uBAAuB,EAAEC,yBAAyB,QAAQ,WAAW;AAE9E,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,SAASC,OAAO,QAAQ,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface LinkInteractionState {
|
|
2
|
+
hover: boolean;
|
|
3
|
+
visited: boolean;
|
|
4
|
+
focusVisible: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const LinkInteractionProvider: import("react").FunctionComponent<{
|
|
7
|
+
children: import("react").ReactNode;
|
|
8
|
+
value: LinkInteractionState;
|
|
9
|
+
}>, useLinkInteractionContext: () => LinkInteractionState;
|
|
10
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/link/context.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAO,uBAAuB;;;IAAE,yBAAyB,4BACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createLink.d.ts","sourceRoot":"","sources":["../../../src/link/createLink.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"createLink.d.ts","sourceRoot":"","sources":["../../../src/link/createLink.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,UAAU,GAAI,KAAK,EAAE,CAAC,GAAG,OAAO,EAAE,UAAU;IAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;CAAE,yEA+E1F,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { createLink } from './createLink';
|
|
2
|
+
export { LinkInteractionProvider, useLinkInteractionContext } from './context';
|
|
3
|
+
export type { LinkInteractionState } from './context';
|
|
2
4
|
export { LinkProvider } from './LinkProvider';
|
|
3
5
|
export type { LinkConfig } from './LinkProvider';
|
|
4
6
|
export { useLink } from './useLink';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/link/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/link/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAC/E,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -30,6 +30,7 @@ export interface ILinkProps extends PressableProps {
|
|
|
30
30
|
isHovered?: boolean;
|
|
31
31
|
isFocused?: boolean;
|
|
32
32
|
isFocusVisible?: boolean;
|
|
33
|
+
isVisited?: boolean;
|
|
33
34
|
/**
|
|
34
35
|
* HTML anchor attributes applied only on web. Ignored on native platforms.
|
|
35
36
|
* `target`, `rel`, and `download` are forwarded via react-native-web's `hrefAttrs`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/link/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE1E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACvE;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACtE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;CAC1D"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/link/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE1E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACvE;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACtE,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;CAC1D"}
|
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.45",
|
|
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.45"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@types/react": "*",
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createContext } from '@cdx-ui/utils';
|
|
2
|
+
|
|
3
|
+
export interface LinkInteractionState {
|
|
4
|
+
hover: boolean;
|
|
5
|
+
visited: boolean;
|
|
6
|
+
focusVisible: boolean;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const [LinkInteractionProvider, useLinkInteractionContext] =
|
|
10
|
+
createContext<LinkInteractionState>('LinkInteractionContext');
|
package/src/link/createLink.tsx
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import React, { forwardRef } from 'react';
|
|
1
|
+
import React, { forwardRef, useMemo } from 'react';
|
|
2
2
|
import { composeEventHandlers } from '@cdx-ui/utils';
|
|
3
3
|
import { useFocusRing, useFocus } from '@react-native-aria/focus';
|
|
4
4
|
import { useHover, usePress } from '@react-native-aria/interactions';
|
|
5
5
|
import { dataAttributes } from '../utils/dataAttributes';
|
|
6
|
+
import { LinkInteractionProvider } from './context';
|
|
6
7
|
import { useLink } from './useLink';
|
|
7
8
|
import type { ILinkProps } from './types';
|
|
8
9
|
|
|
@@ -15,6 +16,7 @@ export const createLink = <RootT, R = unknown>({ Root }: { Root: React.Component
|
|
|
15
16
|
isPressed: isPressedProp,
|
|
16
17
|
isFocused: isFocusedProp,
|
|
17
18
|
isFocusVisible: isFocusVisibleProp,
|
|
19
|
+
isVisited: isVisitedProp,
|
|
18
20
|
href,
|
|
19
21
|
onPress,
|
|
20
22
|
action,
|
|
@@ -38,34 +40,50 @@ export const createLink = <RootT, R = unknown>({ Root }: { Root: React.Component
|
|
|
38
40
|
webProps,
|
|
39
41
|
});
|
|
40
42
|
|
|
43
|
+
const hover = isHoveredProp || isHovered;
|
|
44
|
+
const visited = isVisitedProp ?? false;
|
|
45
|
+
const focusVisible = isFocusVisibleProp || isFocusVisible;
|
|
46
|
+
|
|
47
|
+
const interactionState = useMemo(
|
|
48
|
+
() => ({
|
|
49
|
+
hover,
|
|
50
|
+
visited,
|
|
51
|
+
focusVisible,
|
|
52
|
+
}),
|
|
53
|
+
[hover, visited, focusVisible],
|
|
54
|
+
);
|
|
55
|
+
|
|
41
56
|
const interactionAttrs = dataAttributes({
|
|
42
|
-
hover
|
|
57
|
+
hover,
|
|
43
58
|
focus: isFocusedProp || isFocused,
|
|
44
59
|
active: isPressedProp || isPressed,
|
|
45
|
-
focusVisible
|
|
60
|
+
focusVisible,
|
|
61
|
+
visited,
|
|
46
62
|
});
|
|
47
63
|
|
|
48
64
|
return (
|
|
49
|
-
<
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
composeEventHandlers(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
composeEventHandlers(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
<LinkInteractionProvider value={interactionState}>
|
|
66
|
+
<Root
|
|
67
|
+
ref={ref}
|
|
68
|
+
{...interactionAttrs}
|
|
69
|
+
{...linkProps}
|
|
70
|
+
{...(props as RootT)}
|
|
71
|
+
onPressIn={composeEventHandlers(props?.onPressIn, pressProps.onPressIn)}
|
|
72
|
+
onPressOut={composeEventHandlers(props?.onPressOut, pressProps.onPressOut)}
|
|
73
|
+
onHoverIn={composeEventHandlers(props?.onHoverIn, hoverProps.onHoverIn)}
|
|
74
|
+
onHoverOut={composeEventHandlers(props?.onHoverOut, hoverProps.onHoverOut)}
|
|
75
|
+
onFocus={composeEventHandlers(
|
|
76
|
+
composeEventHandlers(props?.onFocus, focusProps.onFocus),
|
|
77
|
+
focusRingProps.onFocus,
|
|
78
|
+
)}
|
|
79
|
+
onBlur={composeEventHandlers(
|
|
80
|
+
composeEventHandlers(props?.onBlur, focusProps.onBlur),
|
|
81
|
+
focusRingProps.onBlur,
|
|
82
|
+
)}
|
|
83
|
+
>
|
|
84
|
+
{children}
|
|
85
|
+
</Root>
|
|
86
|
+
</LinkInteractionProvider>
|
|
69
87
|
);
|
|
70
88
|
},
|
|
71
89
|
);
|
package/src/link/index.tsx
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { createLink } from './createLink';
|
|
2
|
+
export { LinkInteractionProvider, useLinkInteractionContext } from './context';
|
|
3
|
+
export type { LinkInteractionState } from './context';
|
|
2
4
|
export { LinkProvider } from './LinkProvider';
|
|
3
5
|
export type { LinkConfig } from './LinkProvider';
|
|
4
6
|
export { useLink } from './useLink';
|
package/src/link/types.ts
CHANGED
|
@@ -32,6 +32,7 @@ export interface ILinkProps extends PressableProps {
|
|
|
32
32
|
isHovered?: boolean;
|
|
33
33
|
isFocused?: boolean;
|
|
34
34
|
isFocusVisible?: boolean;
|
|
35
|
+
isVisited?: boolean;
|
|
35
36
|
/**
|
|
36
37
|
* HTML anchor attributes applied only on web. Ignored on native platforms.
|
|
37
38
|
* `target`, `rel`, and `download` are forwarded via react-native-web's `hrefAttrs`.
|