@react-spectrum/s2
Version:
Spectrum 2 UI components in React
692 lines (667 loc) • 31.3 kB
JavaScript
import "./TagGroup.css";
import {ActionButton as $da878a05ab4a403e$export$cfc7921d29ef7b80} from "./ActionButton.mjs";
import $e17a4836f4b6cc28$export$2e2bcd8739ae039 from "../icons/AlertTriangle.mjs";
import {AvatarContext as $3ffa2cd930156220$export$a20dad690e1279e2} from "./Avatar.mjs";
import {centerBaseline as $1f4b04be3f24aae3$export$9d7e2342a7e53afa, CenterBaseline as $1f4b04be3f24aae3$export$768dac55bb57081d} from "./CenterBaseline.mjs";
import {ClearButton as $f6a62e6e68437458$export$13ec83e50bf04290} from "./ClearButton.mjs";
import {FieldLabel as $9afd80978c252040$export$1acdcf5a973a8414, helpTextStyles as $9afd80978c252040$export$13b1fd5431595bf6} from "./Field.mjs";
import {FormContext as $9b916426527cebe7$export$c24727297075ec6a, useFormProps as $9b916426527cebe7$export$a6b5be5c6b451665} from "./Form.mjs";
import {IconContext as $ac8c32e6775ddd1f$export$a49f528ae1a4d0ed} from "../icons/Icon.mjs";
import {ImageContext as $dbd6f0b2503b938c$export$8151eb379fcf2442} from "./Image.mjs";
import $kY5I6$intlStringsmjs from "./intlStrings.mjs";
import {pressScale as $10ea7662e51a285b$export$56e8cba416805d8d} from "./pressScale.mjs";
import {Text as $8e847109a6ab556d$export$5f1af8db9871e1d6, TextContext as $8e847109a6ab556d$export$9afb8bc826b033ea} from "./Content.mjs";
import {useSpectrumContextProps as $5ce63c423902f47d$export$764f6146fadd77f7} from "../icons/useSpectrumContextProps.mjs";
import {jsx as $kY5I6$jsx, jsxs as $kY5I6$jsxs, Fragment as $kY5I6$Fragment} from "react/jsx-runtime";
import {useLocale as $kY5I6$useLocale, TagGroup as $kY5I6$TagGroup, Provider as $kY5I6$Provider, TextContext as $kY5I6$TextContext, TagList as $kY5I6$TagList, useSlottedContext as $kY5I6$useSlottedContext, Tag as $kY5I6$Tag, composeRenderProps as $kY5I6$composeRenderProps} from "react-aria-components";
import {CollectionBuilder as $kY5I6$CollectionBuilder, Collection as $kY5I6$Collection} from "@react-aria/collections";
import {createContext as $kY5I6$createContext, forwardRef as $kY5I6$forwardRef, useRef as $kY5I6$useRef, useState as $kY5I6$useState, useContext as $kY5I6$useContext, useMemo as $kY5I6$useMemo, useEffect as $kY5I6$useEffect} from "react";
import {flushSync as $kY5I6$flushSync} from "react-dom";
import {useEffectEvent as $kY5I6$useEffectEvent, useResizeObserver as $kY5I6$useResizeObserver, useLayoutEffect as $kY5I6$useLayoutEffect, inertValue as $kY5I6$inertValue, useId as $kY5I6$useId} from "@react-aria/utils";
import {useDOMRef as $kY5I6$useDOMRef} from "@react-spectrum/utils";
import {useLocalizedStringFormatter as $kY5I6$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 $1d63bfab43d9ffe1$export$5b07b5dd2cbd96e3 = /*#__PURE__*/ (0, $kY5I6$createContext)(null);
const $1d63bfab43d9ffe1$var$InternalTagGroupContext = /*#__PURE__*/ (0, $kY5I6$createContext)({});
const $1d63bfab43d9ffe1$export$67ea30858aaf75e3 = /*#__PURE__*/ (0, $kY5I6$forwardRef)(function TagGroup(props, ref) {
[props, ref] = (0, $5ce63c423902f47d$export$764f6146fadd77f7)(props, ref, $1d63bfab43d9ffe1$export$5b07b5dd2cbd96e3);
props = (0, $9b916426527cebe7$export$a6b5be5c6b451665)(props);
let { onRemove: onRemove } = props;
return /*#__PURE__*/ (0, $kY5I6$jsx)($1d63bfab43d9ffe1$var$InternalTagGroupContext.Provider, {
value: {
onRemove: onRemove
},
children: /*#__PURE__*/ (0, $kY5I6$jsx)((0, $kY5I6$CollectionBuilder), {
content: /*#__PURE__*/ (0, $kY5I6$jsx)((0, $kY5I6$Collection), {
...props
}),
children: (collection)=>/*#__PURE__*/ (0, $kY5I6$jsx)($1d63bfab43d9ffe1$var$TagGroupInner, {
props: props,
forwardedRef: ref,
collection: collection
})
})
});
});
function $1d63bfab43d9ffe1$var$TagGroupInner({ props: { label: label, description: description, labelPosition: labelPosition = 'top', labelAlign: labelAlign = 'start', isEmphasized: isEmphasized, isInvalid: isInvalid, errorMessage: errorMessage, UNSAFE_className: UNSAFE_className = '', UNSAFE_style: UNSAFE_style, size: size = 'M', ...props }, forwardedRef: ref, collection: collection }) {
let stringFormatter = (0, $kY5I6$useLocalizedStringFormatter)((0, ($parcel$interopDefault($kY5I6$intlStringsmjs))), '@react-spectrum/s2');
let { maxRows: maxRows, groupActionLabel: groupActionLabel, onGroupAction: onGroupAction, renderEmptyState: renderEmptyState = ()=>stringFormatter.format('tag.noTags'), ...otherProps } = props;
let { direction: direction } = (0, $kY5I6$useLocale)();
let containerRef = (0, $kY5I6$useRef)(null);
let tagsRef = (0, $kY5I6$useRef)(null);
let actionsRef = (0, $kY5I6$useRef)(null);
let hiddenTagsRef = (0, $kY5I6$useRef)(null);
let [tagState, setTagState] = (0, $kY5I6$useState)({
visibleTagCount: collection.size,
showCollapseButton: false
});
let [isCollapsed, setIsCollapsed] = (0, $kY5I6$useState)(maxRows != null);
let { onRemove: onRemove } = (0, $kY5I6$useContext)($1d63bfab43d9ffe1$var$InternalTagGroupContext);
let isEmpty = collection.size === 0;
let showCollapseToggleButton = tagState.showCollapseButton || tagState.visibleTagCount < collection.size;
let formContext = (0, $kY5I6$useContext)((0, $9b916426527cebe7$export$c24727297075ec6a));
let domRef = (0, $kY5I6$useDOMRef)(ref);
let allItems = (0, $kY5I6$useMemo)(()=>Array.from(collection), [
collection
]);
let items = (0, $kY5I6$useMemo)(()=>Array.from(collection).slice(0, !isCollapsed ? collection.size : tagState.visibleTagCount), [
collection,
tagState.visibleTagCount,
isCollapsed
]);
let updateVisibleTagCount = (0, $kY5I6$useEffectEvent)(()=>{
if (maxRows == null) setTagState({
visibleTagCount: collection.size,
showCollapseButton: false
});
if (maxRows != null && maxRows > 0) {
let computeVisibleTagCount = ()=>{
let currContainerRef = hiddenTagsRef.current;
let currTagsRef = hiddenTagsRef.current;
let currActionsRef = actionsRef.current;
if (!currContainerRef || !currTagsRef || collection.size === 0 || currContainerRef.parentElement == null) return {
visibleTagCount: 0,
showCollapseButton: false
};
// Count rows and show tags until we hit the maxRows.
// I think this is still a safe assumption, and we don't need to queryAll for role=tag
let tags = [
...currTagsRef.children
];
let currY = -Infinity;
let rowCount = 0;
let index = 0;
let tagWidths = [];
for (let tag of tags){
let { width: width, y: y } = tag.getBoundingClientRect();
if (y !== currY) {
currY = y;
rowCount++;
}
if (rowCount > maxRows) break;
tagWidths.push(width);
index++;
}
// Remove tags until there is space for the collapse button and action button (if present) on the last row.
let buttons = currActionsRef ? [
...currActionsRef.children
] : [];
if (buttons.length > 0 && rowCount >= maxRows) {
let buttonsWidth = buttons.reduce((acc, curr)=>acc += curr.getBoundingClientRect().width, 0);
let margins = parseFloat(getComputedStyle(buttons[0]).marginInlineStart);
buttonsWidth += margins * 2;
let end = direction === 'ltr' ? 'right' : 'left';
let containerEnd = currContainerRef.parentElement?.getBoundingClientRect()[end] - margins;
let lastTagEnd = tags[index - 1]?.getBoundingClientRect()[end];
lastTagEnd += margins;
let availableWidth = containerEnd - lastTagEnd;
while(availableWidth <= buttonsWidth && index > 0){
let tagWidth = tagWidths.pop();
if (tagWidth != null) availableWidth += tagWidth;
index--;
}
}
return {
visibleTagCount: Math.max(index, 1),
showCollapseButton: index < collection.size
};
};
let result = computeVisibleTagCount();
(0, $kY5I6$flushSync)(()=>{
setTagState(result);
});
}
});
(0, $kY5I6$useResizeObserver)({
ref: maxRows != null ? containerRef : undefined,
onResize: updateVisibleTagCount
});
(0, $kY5I6$useLayoutEffect)(()=>{
if (collection.size > 0 && maxRows != null && maxRows > 0) queueMicrotask(updateVisibleTagCount);
}, [
collection.size,
updateVisibleTagCount,
maxRows
]);
(0, $kY5I6$useEffect)(()=>{
// Recalculate visible tags when fonts are loaded.
document.fonts?.ready.then(()=>updateVisibleTagCount());
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
let handlePressCollapse = ()=>{
setIsCollapsed((prevCollapsed)=>!prevCollapsed);
};
let helpText = null;
if (!isInvalid && description) helpText = /*#__PURE__*/ (0, $kY5I6$jsx)((0, $8e847109a6ab556d$export$5f1af8db9871e1d6), {
slot: "description",
styles: (0, $9afd80978c252040$export$13b1fd5431595bf6)({
size: size
}),
children: description
});
else if (isInvalid) helpText = /*#__PURE__*/ (0, $kY5I6$jsxs)("div", {
className: (0, $9afd80978c252040$export$13b1fd5431595bf6)({
size: size,
isInvalid: isInvalid
}),
children: [
/*#__PURE__*/ (0, $kY5I6$jsx)((0, $1f4b04be3f24aae3$export$768dac55bb57081d), {
children: /*#__PURE__*/ (0, $kY5I6$jsx)((0, $e17a4836f4b6cc28$export$2e2bcd8739ae039), {})
}),
/*#__PURE__*/ (0, $kY5I6$jsx)((0, $8e847109a6ab556d$export$5f1af8db9871e1d6), {
slot: "errorMessage",
children: errorMessage
})
]
});
return /*#__PURE__*/ (0, $kY5I6$jsxs)((0, $kY5I6$TagGroup), {
...otherProps,
ref: domRef,
style: UNSAFE_style,
className: UNSAFE_className + function anonymous(props, overrides) {
let rules = " ";
let gridColumnStart = false;
let gridColumnEnd = false;
let matches = (overrides || '').matchAll(/(?:^|\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);
for (let p of matches){
if (p[1] === "z") gridColumnStart = true;
if (p[1] === "y") gridColumnEnd = true;
rules += p[0];
}
rules += ' se91';
if (props.isInForm) {
if (!gridColumnStart) rules += ' z2mU91';
}
if (props.isInForm) {
if (props.labelPosition === "side") {
if (!gridColumnEnd) rules += ' yvoofG91';
}
}
if (props.isInForm) rules += ' DLwlgod91';
else {
if (props.labelPosition === "side") rules += ' DPlN5qb91';
else if (props.labelPosition === "top") rules += ' DM8Mfn91';
}
if (props.labelPosition === "side") rules += ' EPlN5qb91';
else if (props.labelPosition === "top") rules += ' E4w1sLc91';
if (props.labelPosition === "side") rules += ' CbRM95c91';
else if (props.labelPosition === "top") rules += ' Cxaocre91';
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';
}
rules += ' ea91';
rules += ' _Fa91';
rules += ' _Ffb91';
if (props.size === "XL") rules += ' -BhX7R-Fz91';
else if (props.size === "L") rules += ' -BhX7R-Fv91';
else if (props.size === "S") rules += ' -BhX7R-Fp91';
else if (props.size === "XS") rules += ' -BhX7R-Fn91';
else rules += ' -BhX7R-Fx91';
rules += ' -AJjOLd-UVkF0Db91';
rules += ' qg91';
rules += ' __ca91';
return rules;
}({
size: size,
labelPosition: labelPosition,
isInForm: !!formContext
}, props.styles),
children: [
/*#__PURE__*/ (0, $kY5I6$jsx)((0, $9afd80978c252040$export$1acdcf5a973a8414), {
size: size,
labelPosition: labelPosition,
labelAlign: labelAlign,
contextualHelp: props.contextualHelp,
children: label
}),
/*#__PURE__*/ (0, $kY5I6$jsx)("div", {
ref: containerRef,
className: function anonymous(props) {
let rules = " ";
rules += ' zXcEWr91';
rules += ' yXcEWr91';
rules += ' BXcEWr91';
rules += ' AXcEWr91';
rules += ' Nb91';
if (props.isEmpty) rules += ' Iy91';
else rules += ' Ib91';
if (props.isEmpty) rules += ' Hy91';
else rules += ' Hs91';
rules += ' _Pc91';
return rules;
}({
isEmpty: isEmpty
}),
children: /*#__PURE__*/ (0, $kY5I6$jsx)((0, $9b916426527cebe7$export$c24727297075ec6a).Provider, {
value: {
...formContext,
size: size
},
children: /*#__PURE__*/ (0, $kY5I6$jsxs)((0, $kY5I6$Provider), {
values: [
[
(0, $kY5I6$TextContext),
undefined
],
[
$1d63bfab43d9ffe1$export$5b07b5dd2cbd96e3,
{
size: size,
isEmphasized: isEmphasized
}
]
],
children: [
maxRows != null && /*#__PURE__*/ (0, $kY5I6$jsx)("div", {
// @ts-ignore
inert: (0, $kY5I6$inertValue)(true),
ref: hiddenTagsRef,
className: " sf91 _wb91 ug91 uch91 udi91 uea91 ugb91 uhd91 uje91 uic91 _Pa91 Wr91 _lr91 _6b91 _Nc91 Pc91 _Ia91",
children: allItems.map((item)=>{
// pull off individual props as an allow list, don't want refs or other props getting through
return /*#__PURE__*/ (0, $kY5I6$jsx)("div", {
style: item.props.UNSAFE_style,
className: item.props.className({
size: size,
allowsRemoving: Boolean(onRemove)
}),
children: item.props.children({
size: size,
allowsRemoving: Boolean(onRemove),
isInCtx: true
})
}, item.key);
})
}),
/*#__PURE__*/ (0, $kY5I6$jsx)((0, $kY5I6$TagList), {
ref: tagsRef,
items: items,
renderEmptyState: renderEmptyState,
className: " sf91 Nb91 ug91 uch91 udi91 uea91 ugb91 uhd91 uje91 uic91 vd91 vsf91 wb91 xb91 _xa91 _Fa91 _Ffb91 pt91",
children: (item)=>/*#__PURE__*/ (0, $kY5I6$jsx)($1d63bfab43d9ffe1$export$3288d34c523a1192, {
...item.props,
id: item.key,
textValue: item.textValue
})
}),
!isEmpty && (showCollapseToggleButton || groupActionLabel) && /*#__PURE__*/ (0, $kY5I6$jsx)($1d63bfab43d9ffe1$var$ActionGroup, {
collection: collection,
"aria-label": props['aria-label'],
"aria-labelledby": props['aria-labelledby'],
actionsRef: actionsRef,
tagState: tagState,
size: size,
isCollapsed: isCollapsed,
handlePressCollapse: handlePressCollapse,
onGroupAction: onGroupAction,
groupActionLabel: groupActionLabel
})
]
})
})
}),
helpText
]
});
}
function $1d63bfab43d9ffe1$var$ActionGroup(props) {
let stringFormatter = (0, $kY5I6$useLocalizedStringFormatter)((0, ($parcel$interopDefault($kY5I6$intlStringsmjs))), '@react-spectrum/s2');
let { actionsRef: actionsRef, tagState: tagState, size: size, isCollapsed: isCollapsed, handlePressCollapse: handlePressCollapse, onGroupAction: onGroupAction, groupActionLabel: groupActionLabel, collection: collection, // directly use aria-labelling from the TagGroup because we can't use the id from the TagList
// and we can't supply an id to the TagList because it'll cause an issue where all the tag ids flip back
// and forth with their prefix in an infinite loop
'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy } = props;
let actionsId = (0, $kY5I6$useId)();
// might need to localize the aria-label which concatenates with this label
let actionGroupLabel = stringFormatter.format('tag.actions');
return /*#__PURE__*/ (0, $kY5I6$jsxs)("div", {
role: "group",
ref: actionsRef,
id: actionsId,
"aria-label": ariaLabel ? `${ariaLabel} ${actionGroupLabel}` : actionGroupLabel,
"aria-labelledby": ariaLabelledBy ? ariaLabelledBy : undefined,
className: " sf91",
children: [
tagState.showCollapseButton && /*#__PURE__*/ (0, $kY5I6$jsx)((0, $da878a05ab4a403e$export$cfc7921d29ef7b80), {
isQuiet: true,
size: size,
styles: " Js91 Gs91 Is91 Hs91",
UNSAFE_style: {
display: 'inline-flex'
},
onPress: handlePressCollapse,
children: isCollapsed ? stringFormatter.format('tag.showAllButtonLabel', {
tagCount: collection.size
}) : stringFormatter.format('tag.hideButtonLabel')
}),
groupActionLabel && onGroupAction && /*#__PURE__*/ (0, $kY5I6$jsx)((0, $da878a05ab4a403e$export$cfc7921d29ef7b80), {
isQuiet: true,
size: size,
styles: " Js91 Gs91 Is91 Hs91",
UNSAFE_style: {
display: 'inline-flex'
},
onPress: ()=>onGroupAction?.(),
children: groupActionLabel
})
]
});
}
const $1d63bfab43d9ffe1$var$tagStyles = 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.isSelected) {
if (props.isEmphasized) rules += ' px91';
else rules += ' pr91';
} else {
if (props.isPressed) rules += ' po91';
else if (props.isFocusVisible) rules += ' po91';
else if (props.isHovered) rules += ' po91';
else rules += ' pt91';
}
if (props.isDisabled) rules += ' plc91';
else if (props.isSelected) rules += ' ple91';
else rules += ' plb91';
rules += ' sh91';
rules += ' eb91';
rules += ' _oa91';
rules += ' Sv91';
rules += ' SgLWx3bd91';
if (props.allowsRemoving) rules += ' Rd91';
else rules += ' Rv91';
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 += ' qc91';
rules += ' qsd91';
rules += ' -Qg41Lb-IAxCW0c91';
rules += ' -Qg41Lb-gLWx3bIy91';
rules += ' FRuFGYc91';
rules += ' La91';
rules += ' _5c91';
rules += ' _Ca91';
rules += ' Yd91';
rules += ' Xb91';
rules += ' _2b91';
if (props.isDisabled) rules += ' gH91';
else if (props.isSelected) {
if (props.isEmphasized) {
if (props.isFocusVisible) rules += ' gUgARdd91';
else if (props.isPressed) rules += ' gUgARdd91';
else if (props.isHovered) rules += ' gUgARdd91';
else rules += ' g5qAiPc91';
} else {
if (props.isPressed) rules += ' gu91';
else if (props.isFocusVisible) rules += ' gu91';
else if (props.isHovered) rules += ' gu91';
else rules += ' g091';
}
} else if (props.isFocusVisible) rules += ' gF91';
else if (props.isHovered) rules += ' gF91';
else rules += ' gH91';
if (props.isSelected) rules += ' gle91';
else rules += ' glb91';
rules += ' _je91';
rules += ' Js91';
rules += ' Gs91';
rules += ' Is91';
rules += ' Hs91';
if (props.isLink) rules += ' ry91';
else rules += ' ri91';
rules += ' -_8sjo0b-t5ZbAob91';
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';
return rules;
};
const $1d63bfab43d9ffe1$var$avatarSize = {
S: 16,
M: 20,
L: 24
};
const $1d63bfab43d9ffe1$export$3288d34c523a1192 = /*#__PURE__*/ (0, $kY5I6$forwardRef)(function Tag({ children: children, textValue: textValue, ...props }, ref) {
textValue ||= typeof children === 'string' ? children : undefined;
let ctx = (0, $kY5I6$useSlottedContext)($1d63bfab43d9ffe1$export$5b07b5dd2cbd96e3);
let isInRealDOM = Boolean(ctx?.size);
let { size: size, isEmphasized: isEmphasized } = ctx ?? {};
let domRef = (0, $kY5I6$useDOMRef)(ref);
let backupRef = (0, $kY5I6$useRef)(null);
domRef = domRef || backupRef;
let isLink = props.href != null;
return /*#__PURE__*/ (0, $kY5I6$jsx)((0, $kY5I6$Tag), {
textValue: textValue,
...props,
ref: domRef,
style: (0, $10ea7662e51a285b$export$56e8cba416805d8d)(domRef),
className: (renderProps)=>$1d63bfab43d9ffe1$var$tagStyles({
size: size,
isEmphasized: isEmphasized,
isLink: isLink,
...renderProps
}),
children: (0, $kY5I6$composeRenderProps)(children, (children, renderProps)=>/*#__PURE__*/ (0, $kY5I6$jsx)($1d63bfab43d9ffe1$var$TagWrapper, {
isInRealDOM: isInRealDOM,
isEmphasized: isEmphasized,
...renderProps,
children: typeof children === 'string' ? /*#__PURE__*/ (0, $kY5I6$jsx)((0, $8e847109a6ab556d$export$5f1af8db9871e1d6), {
children: children
}) : children
}))
});
});
function $1d63bfab43d9ffe1$var$TagWrapper({ children: children, isDisabled: isDisabled, allowsRemoving: allowsRemoving, isInRealDOM: isInRealDOM, isEmphasized: isEmphasized, isSelected: isSelected }) {
let { size: size = 'M' } = (0, $kY5I6$useSlottedContext)($1d63bfab43d9ffe1$export$5b07b5dd2cbd96e3) ?? {};
return /*#__PURE__*/ (0, $kY5I6$jsxs)((0, $kY5I6$Fragment), {
children: [
isInRealDOM && /*#__PURE__*/ (0, $kY5I6$jsx)("div", {
className: " sd91 Na91 eb91 Uc91 Usd91 qc91 qsd91 _yb91 g991",
children: /*#__PURE__*/ (0, $kY5I6$jsx)((0, $kY5I6$Provider), {
values: [
[
(0, $8e847109a6ab556d$export$9afb8bc826b033ea),
{
styles: " _Jb91 _Nc91 Pc91 _Yb91 _7c91"
}
],
[
(0, $ac8c32e6775ddd1f$export$a49f528ae1a4d0ed),
{
render: (0, $1f4b04be3f24aae3$export$9d7e2342a7e53afa)({
slot: 'icon',
styles: " _Ja91"
}),
styles: " ZuUmpre91 FuUmpre91 I67logd91 _va91"
}
],
[
(0, $3ffa2cd930156220$export$a20dad690e1279e2),
{
size: $1d63bfab43d9ffe1$var$avatarSize[size],
styles: " _Ja91"
}
],
[
(0, $dbd6f0b2503b938c$export$8151eb379fcf2442),
{
styles: " ZuUmpre91 FuUmpre91 _va91 _Ja91 fa91 _Ha91 oa91 na91 ka91 ja91"
}
]
],
children: children
})
}),
!isInRealDOM && children,
allowsRemoving && isInRealDOM && /*#__PURE__*/ (0, $kY5I6$jsx)((0, $f6a62e6e68437458$export$13ec83e50bf04290), {
slot: "remove",
size: size,
isStaticColor: isEmphasized && isSelected,
isDisabled: isDisabled
})
]
});
}
export {$1d63bfab43d9ffe1$export$5b07b5dd2cbd96e3 as TagGroupContext, $1d63bfab43d9ffe1$export$67ea30858aaf75e3 as TagGroup, $1d63bfab43d9ffe1$export$3288d34c523a1192 as Tag};
//# sourceMappingURL=TagGroup.mjs.map