@react-spectrum/s2
Version:
Spectrum 2 UI components in React
622 lines (605 loc) • 24.8 kB
JavaScript
import "./Field.css";
import $e17a4836f4b6cc28$export$2e2bcd8739ae039 from "../icons/AlertTriangle.mjs";
import $8373af657584cab2$export$2e2bcd8739ae039 from "./Asterisk.mjs";
import {centerBaseline as $1f4b04be3f24aae3$export$9d7e2342a7e53afa, CenterBaseline as $1f4b04be3f24aae3$export$768dac55bb57081d, centerBaselineBefore as $1f4b04be3f24aae3$export$179e9489a09b14ac} from "./CenterBaseline.mjs";
import {ContextualHelpContext as $8e176595bc49ca3f$export$41b9afaaba473494} from "./ContextualHelp.mjs";
import {IconContext as $ac8c32e6775ddd1f$export$a49f528ae1a4d0ed} from "../icons/Icon.mjs";
import $7A6HT$intlStringsmjs from "./intlStrings.mjs";
import {mergeStyles as $feb886035e0d4633$export$e618dc39ac9ad607} from "../icons/runtime.mjs";
import {jsxs as $7A6HT$jsxs, jsx as $7A6HT$jsx, Fragment as $7A6HT$Fragment} from "react/jsx-runtime";
import {Label as $7A6HT$Label, Group as $7A6HT$Group, Input as $7A6HT$Input, Text as $7A6HT$Text, FieldError as $7A6HT$FieldError, composeRenderProps as $7A6HT$composeRenderProps, Provider as $7A6HT$Provider} from "react-aria-components";
import {forwardRef as $7A6HT$forwardRef} from "react";
import {useDOMRef as $7A6HT$useDOMRef} from "@react-spectrum/utils";
import {useId as $7A6HT$useId} from "@react-aria/utils";
import {useLocalizedStringFormatter as $7A6HT$useLocalizedStringFormatter} from "@react-aria/i18n";
function $parcel$interopDefault(a) {
return a && a.__esModule ? a.default : a;
}
/*
* 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 $9afd80978c252040$export$1acdcf5a973a8414 = /*#__PURE__*/ (0, $7A6HT$forwardRef)(function FieldLabel(props, ref) {
let stringFormatter = (0, $7A6HT$useLocalizedStringFormatter)((0, ($parcel$interopDefault($7A6HT$intlStringsmjs))), '@react-spectrum/s2');
let { isDisabled: isDisabled, isRequired: isRequired, size: size = 'M', necessityIndicator: necessityIndicator = 'icon', includeNecessityIndicatorInAccessibilityName: includeNecessityIndicatorInAccessibilityName = false, labelAlign: labelAlign, labelPosition: labelPosition, staticColor: staticColor, contextualHelp: contextualHelp, isQuiet: isQuiet, UNSAFE_style: UNSAFE_style, UNSAFE_className: UNSAFE_className = '', ...labelProps } = props;
let domRef = (0, $7A6HT$useDOMRef)(ref);
let contextualHelpId = (0, $7A6HT$useId)();
let fallbackLabelPropsId = (0, $7A6HT$useId)();
if (contextualHelp && !labelProps.id) labelProps.id = fallbackLabelPropsId;
if (!props.children) return null;
return /*#__PURE__*/ (0, $7A6HT$jsxs)("div", {
className: function anonymous(props) {
let rules = " ";
rules += ' zv6x9r91';
rules += ' yv6x9r91';
rules += ' Bv6x9r91';
rules += ' Av6x9r91';
rules += ' sf91';
if (props.labelAlign === "end") rules += ' _Wb91';
else if (props.labelAlign === "start") rules += ' _Wd91';
if (props.labelPosition === "top") rules += ' QgOnRt91';
if (props.isQuiet) rules += ' _qd91';
else if (props.labelPosition === "top") rules += ' _qb91';
return rules;
}({
labelAlign: labelAlign,
labelPosition: labelPosition,
isQuiet: isQuiet
}),
children: [
/*#__PURE__*/ (0, $7A6HT$jsxs)((0, $7A6HT$Label), {
...labelProps,
ref: domRef,
style: UNSAFE_style,
className: UNSAFE_className + (0, $feb886035e0d4633$export$e618dc39ac9ad607)(function anonymous(props) {
let rules = " ";
if (props.size === "XL") {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
} else if (props.size === "L") {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
} else if (props.size === "S") {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
} else if (props.size === "XS") {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
} else {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
}
if (props.size === "XL") {
rules += ' vg91';
rules += ' vsj91';
} else if (props.size === "L") {
rules += ' vp91';
rules += ' vsh91';
} else if (props.size === "S") {
rules += ' vb91';
rules += ' vse91';
} else if (props.size === "XS") {
rules += ' va91';
rules += ' vsc91';
} else {
rules += ' vd91';
rules += ' vsf91';
}
if (props.size === "XL") {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
} else if (props.size === "L") {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
} else if (props.size === "S") {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
} else if (props.size === "XS") {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
} else {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
}
if (props.size === "XL") {
rules += ' _Fa91';
rules += ' _Ffb91';
} else if (props.size === "L") {
rules += ' _Fa91';
rules += ' _Ffb91';
} else if (props.size === "S") {
rules += ' _Fa91';
rules += ' _Ffb91';
} else if (props.size === "XS") {
rules += ' _Fa91';
rules += ' _Ffb91';
} else {
rules += ' _Fa91';
rules += ' _Ffb91';
}
if (props.isStaticColor) rules += ' pl91';
else if (props.isDisabled) rules += ' pp91';
else rules += ' pv91';
rules += ' plb91';
rules += ' ri91';
return rules;
}({
labelPosition: labelPosition,
isDisabled: isDisabled,
size: size,
isStaticColor: !!staticColor
}), props.styles),
children: [
props.children,
(isRequired || necessityIndicator === 'label') && /*#__PURE__*/ (0, $7A6HT$jsxs)("span", {
className: " _7c91",
children: [
"\xa0",
necessityIndicator === 'icon' && /*#__PURE__*/ (0, $7A6HT$jsx)((0, $8373af657584cab2$export$2e2bcd8739ae039), {
size: size === 'S' ? 'M' : size,
className: " -_8sjo0b-t5ZbAob91",
"aria-label": includeNecessityIndicatorInAccessibilityName ? stringFormatter.format('label.(required)') : undefined
}),
necessityIndicator === 'label' && /* The necessity label is hidden to screen readers if the field is required because
* aria-required is set on the field in that case. That will already be announced,
* so no need to duplicate it here. If optional, we do want it to be announced here.
*/ /*#__PURE__*/ (0, $7A6HT$jsx)("span", {
"aria-hidden": !includeNecessityIndicatorInAccessibilityName ? isRequired : undefined,
children: isRequired ? stringFormatter.format('label.(required)') : stringFormatter.format('label.(optional)')
})
]
})
]
}),
contextualHelp && /*#__PURE__*/ (0, $7A6HT$jsxs)("span", {
className: " _7c91",
children: [
"\xa0",
/*#__PURE__*/ (0, $7A6HT$jsx)((0, $1f4b04be3f24aae3$export$768dac55bb57081d), {
styles: " sh91 Fa91",
children: /*#__PURE__*/ (0, $7A6HT$jsx)((0, $8e176595bc49ca3f$export$41b9afaaba473494).Provider, {
value: {
id: contextualHelpId,
'aria-labelledby': labelProps?.id ? `${labelProps.id} ${contextualHelpId}` : undefined,
size: size === 'L' || size === 'XL' ? 'S' : 'XS'
},
children: contextualHelp
})
})
]
})
]
});
});
const $9afd80978c252040$var$fieldGroupStyles = function anonymous(props) {
let rules = " ";
if (props.isFocusVisible) rules += ' _Lf91';
else rules += ' _Le91';
rules += ' Oh91';
rules += ' _Mc91';
rules += ' _Kd91';
if (props.size === "XL") {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
} else if (props.size === "L") {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
} else if (props.size === "S") {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
} else if (props.size === "XS") {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
} else {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
}
if (props.size === "XL") {
rules += ' vg91';
rules += ' vsj91';
} else if (props.size === "L") {
rules += ' vp91';
rules += ' vsh91';
} else if (props.size === "S") {
rules += ' vb91';
rules += ' vse91';
} else if (props.size === "XS") {
rules += ' va91';
rules += ' vsc91';
} else {
rules += ' vd91';
rules += ' vsf91';
}
if (props.size === "XL") {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
} else if (props.size === "L") {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
} else if (props.size === "S") {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
} else if (props.size === "XS") {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
} else {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
}
if (props.size === "XL") {
rules += ' _Fa91';
rules += ' _Ffb91';
} else if (props.size === "L") {
rules += ' _Fa91';
rules += ' _Ffb91';
} else if (props.size === "S") {
rules += ' _Fa91';
rules += ' _Ffb91';
} else if (props.size === "XS") {
rules += ' _Fa91';
rules += ' _Ffb91';
} else {
rules += ' _Fa91';
rules += ' _Ffb91';
}
if (props.isDisabled) rules += ' pp91';
else {
if (props.isPressed) rules += ' po91';
else if (props.isFocusVisible) rules += ' po91';
else if (props.isHovered) rules += ' po91';
else rules += ' pt91';
}
rules += ' sd91';
rules += ' eb91';
rules += ' _oa91';
rules += ' SMBFGYc91';
rules += ' RfBFGYc91';
if (props.size === "XL") rules += ' Nl91';
else if (props.size === "L") rules += ' Nj91';
else if (props.size === "S") rules += ' Nf91';
else if (props.size === "XS") rules += ' Ne91';
else rules += ' Nk91';
if (props.size === "XL") rules += ' -SFnbic-_JaP8ec91';
else if (props.size === "L") rules += ' -SFnbic-_J0K2hn91';
else if (props.size === "S") rules += ' -SFnbic-_JJOW22b91';
else if (props.size === "XS") rules += ' -SFnbic-_JICefdd91';
else rules += ' -SFnbic-_Jb91';
rules += ' -Bu7z1c-ob91';
rules += ' oj91';
rules += ' nj91';
rules += ' kj91';
rules += ' jj91';
rules += ' FRuFGYc91';
rules += ' zXcEWr91';
rules += ' yXcEWr91';
rules += ' BXcEWr91';
rules += ' AXcEWr91';
if (props.isQuiet) rules += ' _qd91';
else rules += ' _qtb91';
if (props.size === "XL") rules += ' -Anxdcc-Zt91';
else if (props.size === "L") rules += ' -Anxdcc-ZStdtne91';
else if (props.size === "S") rules += ' -Anxdcc-Zr91';
else rules += ' -Anxdcc-Z3fn9H91';
rules += ' __v6TNLWb91';
rules += ' _kc91';
rules += ' hc91';
rules += ' mCPFGYc91';
rules += ' l5OFGYc91';
rules += ' _jf91';
rules += ' Yd91';
rules += ' Xb91';
rules += ' _2b91';
if (props.isDisabled) {
rules += ' iq91';
rules += ' ilc91';
} else if (props.isFocusWithin) {
if (props.isInvalid) rules += ' im91';
else rules += ' in91';
rules += ' ild91';
} else if (props.isInvalid) {
if (props.isPressed) rules += ' im91';
else if (props.isFocusVisible) rules += ' im91';
else if (props.isHovered) rules += ' im91';
else rules += ' ip91';
} else {
if (props.isPressed) rules += ' io91';
else if (props.isFocusVisible) rules += ' io91';
else if (props.isHovered) rules += ' io91';
else rules += ' iq91';
}
rules += ' gX91';
if (props.isDisabled) rules += ' ri91';
else rules += ' rD91';
if (props.size === "XL") rules += ' -F_-Fz91';
else if (props.size === "L") rules += ' -F_-Fv91';
else if (props.size === "S") rules += ' -F_-Fp91';
else if (props.size === "XS") rules += ' -F_-Fn91';
else rules += ' -F_-Fx91';
rules += ' -S_-Sv91';
rules += ' -R_-Rv91';
rules += ' -m_-mc91';
rules += ' -l_-lc91';
return rules;
};
const $9afd80978c252040$export$f0fe469072bc6950 = /*#__PURE__*/ (0, $7A6HT$forwardRef)(function FieldGroup(props, ref) {
return /*#__PURE__*/ (0, $7A6HT$jsx)((0, $7A6HT$Group), {
ref: ref,
...props,
onPointerDown: (e)=>{
// Forward focus to input element when clicking on a non-interactive child (e.g. icon or padding)
if (e.pointerType === 'mouse' && !e.target.closest('button,input,textarea')) {
e.preventDefault();
e.currentTarget.querySelector('input')?.focus();
}
},
onPointerUp: (e)=>{
if (e.pointerType !== 'mouse' && !e.target.closest('button,input,textarea')) {
e.preventDefault();
e.currentTarget.querySelector('input')?.focus();
}
},
style: props.UNSAFE_style,
className: (renderProps)=>(props.UNSAFE_className || '') + ' ' + (0, $1f4b04be3f24aae3$export$179e9489a09b14ac) + (0, $feb886035e0d4633$export$e618dc39ac9ad607)($9afd80978c252040$var$fieldGroupStyles({
...renderProps,
size: props.size || 'M'
}), props.styles)
});
});
const $9afd80978c252040$export$f5b8910cec6cf069 = /*#__PURE__*/ (0, $7A6HT$forwardRef)(function Input(props, ref) {
let { UNSAFE_className: UNSAFE_className = '', UNSAFE_style: UNSAFE_style, styles: styles, ...otherProps } = props;
return /*#__PURE__*/ (0, $7A6HT$jsx)((0, $7A6HT$Input), {
...otherProps,
ref: ref,
style: UNSAFE_style,
className: UNSAFE_className + (0, $feb886035e0d4633$export$e618dc39ac9ad607)(" Td91 Qd91 Sd91 Rd91 g991 p40ub4c91 u40ub4c91 v40ub4c91 w40ub4c91 x40ub4c91 _xa91 _ub91 _vb91 Na91 Za91 _Le91 _je91 _Nc91 Pc91 _Yb91 _7c91", styles)
});
});
const $9afd80978c252040$export$13b1fd5431595bf6 = function anonymous(props) {
let rules = " ";
rules += ' zzBWQ8d91';
rules += ' yzBWQ8d91';
rules += ' BzBWQ8d91';
rules += ' AzBWQ8d91';
rules += ' sd91';
rules += ' ea91';
rules += ' Uc91';
rules += ' Usd91';
rules += ' qc91';
rules += ' qsd91';
if (props.size === "XL") {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
} else if (props.size === "L") {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
} else if (props.size === "S") {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
} else if (props.size === "XS") {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
} else {
rules += ' ug91';
rules += ' uch91';
rules += ' udi91';
rules += ' uea91';
rules += ' ugb91';
rules += ' uhd91';
rules += ' uje91';
rules += ' uic91';
}
if (props.size === "XL") {
rules += ' vg91';
rules += ' vsj91';
} else if (props.size === "L") {
rules += ' vp91';
rules += ' vsh91';
} else if (props.size === "S") {
rules += ' vb91';
rules += ' vse91';
} else if (props.size === "XS") {
rules += ' va91';
rules += ' vsc91';
} else {
rules += ' vd91';
rules += ' vsf91';
}
if (props.size === "XL") {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
} else if (props.size === "L") {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
} else if (props.size === "S") {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
} else if (props.size === "XS") {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
} else {
rules += ' wb91';
rules += ' xb91';
rules += ' _xa91';
}
if (props.size === "XL") {
rules += ' _Fa91';
rules += ' _Ffb91';
} else if (props.size === "L") {
rules += ' _Fa91';
rules += ' _Ffb91';
} else if (props.size === "S") {
rules += ' _Fa91';
rules += ' _Ffb91';
} else if (props.size === "XS") {
rules += ' _Fa91';
rules += ' _Ffb91';
} else {
rules += ' _Fa91';
rules += ' _Ffb91';
}
if (props.isDisabled) rules += ' pp91';
else if (props.isInvalid) rules += ' pq91';
else rules += ' pv91';
rules += ' -_8sjo0b-t5ZbAob91';
rules += ' _qb91';
rules += ' TgOnRt91';
if (props.isDisabled) rules += ' ri91';
else rules += ' rD91';
return rules;
};
function $9afd80978c252040$export$a67c0bc59081311a(props) {
let domDescriptionRef = (0, $7A6HT$useDOMRef)(props.descriptionRef || null);
let domErrorRef = (0, $7A6HT$useDOMRef)(props.errorRef || null);
if (!props.isInvalid && props.description) return /*#__PURE__*/ (0, $7A6HT$jsx)((0, $7A6HT$Text), {
slot: "description",
ref: domDescriptionRef,
className: $9afd80978c252040$export$13b1fd5431595bf6({
size: props.size || 'M',
isDisabled: props.isDisabled
}),
children: props.description
});
return /*#__PURE__*/ (0, $7A6HT$jsx)((0, $7A6HT$FieldError), {
...props,
ref: domErrorRef,
className: (renderProps)=>$9afd80978c252040$export$13b1fd5431595bf6({
...renderProps,
size: props.size || 'M',
isDisabled: props.isDisabled
}),
children: (0, $7A6HT$composeRenderProps)(props.children, (children, { validationErrors: validationErrors })=>/*#__PURE__*/ (0, $7A6HT$jsxs)((0, $7A6HT$Fragment), {
children: [
props.showErrorIcon && /*#__PURE__*/ (0, $7A6HT$jsx)((0, $1f4b04be3f24aae3$export$768dac55bb57081d), {
children: /*#__PURE__*/ (0, $7A6HT$jsx)((0, $e17a4836f4b6cc28$export$2e2bcd8739ae039), {})
}),
/*#__PURE__*/ (0, $7A6HT$jsx)("span", {
children: children || validationErrors.join(' ')
})
]
}))
});
}
function $9afd80978c252040$export$bda0d075e0e342c9(props) {
return /*#__PURE__*/ (0, $7A6HT$jsx)((0, $7A6HT$Provider), {
values: [
[
(0, $ac8c32e6775ddd1f$export$a49f528ae1a4d0ed),
{
render: (0, $1f4b04be3f24aae3$export$9d7e2342a7e53afa)({
slot: 'icon',
styles: " _Ja91 _va91 -_8sjo0b-tq91 -_8sjo0b-ltUG8Hlc91"
}),
styles: " ZuUmpre91 FuUmpre91 It91 Isu91 HAxCW0c91 _va91"
}
]
],
children: !props.isDisabled && /*#__PURE__*/ (0, $7A6HT$jsx)((0, $e17a4836f4b6cc28$export$2e2bcd8739ae039), {})
});
}
export {$9afd80978c252040$export$1acdcf5a973a8414 as FieldLabel, $9afd80978c252040$export$f0fe469072bc6950 as FieldGroup, $9afd80978c252040$export$f5b8910cec6cf069 as Input, $9afd80978c252040$export$13b1fd5431595bf6 as helpTextStyles, $9afd80978c252040$export$a67c0bc59081311a as HelpText, $9afd80978c252040$export$bda0d075e0e342c9 as FieldErrorIcon};
//# sourceMappingURL=Field.mjs.map