@react-spectrum/s2
Version:
Spectrum 2 UI components in React
133 lines (123 loc) • 5.34 kB
JavaScript
import "./Link.css";
import {SkeletonContext as $5ad421ec19460c48$export$74e166679b1f49ee, useSkeletonText as $5ad421ec19460c48$export$a05a0b8a311cd65f} from "../icons/Skeleton.mjs";
import {useSpectrumContextProps as $5ce63c423902f47d$export$764f6146fadd77f7} from "../icons/useSpectrumContextProps.mjs";
import {jsx as $d6Kqa$jsx} from "react/jsx-runtime";
import {Link as $d6Kqa$Link} from "react-aria-components";
import {createContext as $d6Kqa$createContext, forwardRef as $d6Kqa$forwardRef, useContext as $d6Kqa$useContext} from "react";
import {useFocusableRef as $d6Kqa$useFocusableRef} from "@react-spectrum/utils";
import {useLayoutEffect as $d6Kqa$useLayoutEffect} from "@react-aria/utils";
/*
* Copyright 2024 Adobe. All rights reserved.
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. You may obtain a copy
* of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
* OF ANY KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
const $f50c78733c21bfe2$export$e2509388b49734e7 = /*#__PURE__*/ (0, $d6Kqa$createContext)(null);
const $f50c78733c21bfe2$var$link = function anonymous(props, overrides) {
let rules = " ";
rules += ((overrides || '').match(/(?:^|\s)(J|G|I|H|_u|_v|_s|__A|_d|_J|z|y|B|A|_P|_9|W|_l|_A|_z|Z|N|L)[^\s]+/g) || []).join('');
if (props.isFocusVisible) rules += ' _Lf91';
else rules += ' _Le91';
if (props.isStaticColor) rules += ' Oe91';
else rules += ' Oh91';
rules += ' Olc91';
rules += ' _Mc91';
rules += ' _Kd91';
if (props.staticColor === "white") rules += ' -Ovbhqd-gcwrnr91';
else if (props.staticColor === "black") rules += ' -Ovbhqd-g4hn3s91';
rules += ' oa91';
rules += ' na91';
rules += ' ka91';
rules += ' ja91';
if (props.isStandalone) {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
}
if (props.isStandalone) {
rules += ' vd91';
rules += ' vsf91';
}
if (props.isStandalone) {
rules += ' wc91';
rules += ' xc91';
rules += ' _xa91';
}
if (props.isStandalone) {
rules += ' _Fa91';
rules += ' _Ffb91';
}
if (props.isStaticColor) rules += ' pl91';
else if (props.variant === "secondary") {
if (props.isPressed) rules += ' po91';
else if (props.isFocusVisible) rules += ' po91';
else if (props.isHovered) rules += ' po91';
else rules += ' pt91';
} else if (props.variant === "primary") {
if (props.isPressed) rules += ' ps91';
else if (props.isFocusVisible) rules += ' ps91';
else if (props.isHovered) rules += ' ps91';
else rules += ' pu91';
}
rules += ' plf91';
rules += ' Yd91';
rules += ' Xb91';
rules += ' _2b91';
if (props.isStandalone) {
if (props.isQuiet) {
if (props.isFocusVisible) {
rules += ' _Xb91';
rules += ' __Va91';
} else if (props.isHovered) {
rules += ' _Xb91';
rules += ' __Va91';
} else rules += ' _Xa91';
}
} else {
rules += ' _Xb91';
rules += ' __Va91';
}
rules += ' __ca91';
return rules;
};
const $f50c78733c21bfe2$export$a6c7ac8248d6e38a = /*#__PURE__*/ (0, $d6Kqa$forwardRef)(function Link(props, ref) {
[props, ref] = (0, $5ce63c423902f47d$export$764f6146fadd77f7)(props, ref, $f50c78733c21bfe2$export$e2509388b49734e7);
let { variant: variant = 'primary', staticColor: staticColor, isQuiet: isQuiet, isStandalone: isStandalone, UNSAFE_style: UNSAFE_style, UNSAFE_className: UNSAFE_className = '', styles: styles, children: children } = props;
let domRef = (0, $d6Kqa$useFocusableRef)(ref);
let isSkeleton = (0, $d6Kqa$useContext)((0, $5ad421ec19460c48$export$74e166679b1f49ee)) || false;
[children, UNSAFE_style] = (0, $5ad421ec19460c48$export$a05a0b8a311cd65f)(children, UNSAFE_style);
(0, $d6Kqa$useLayoutEffect)(()=>{
if (domRef.current) // TODO: should RAC Link pass through inert?
domRef.current.inert = isSkeleton;
}, [
domRef,
isSkeleton
]);
return /*#__PURE__*/ (0, $d6Kqa$jsx)((0, $d6Kqa$Link), {
...props,
ref: domRef,
style: UNSAFE_style,
className: (renderProps)=>UNSAFE_className + $f50c78733c21bfe2$var$link({
...renderProps,
variant: variant,
staticColor: staticColor,
isStaticColor: !!staticColor,
isQuiet: isQuiet,
isStandalone: isStandalone,
isSkeleton: isSkeleton
}, styles),
children: children
});
});
export {$f50c78733c21bfe2$export$e2509388b49734e7 as LinkContext, $f50c78733c21bfe2$export$a6c7ac8248d6e38a as Link};
//# sourceMappingURL=Link.mjs.map