{"version":3,"file":"Tag.DXALYaz4.mjs","names":["useRef","useCallback","useMemo","_Fragment"],"sources":["https:/framerusercontent.com/modules/1uDJ4WQkzG0aJT0SZ7hr/InsExQSHncB5Aj1OCGxn/Tag.js"],"sourcesContent":["/**\n * Tag - Badge-style tag with a link, accent colors only (no semantic variants).\n *\n * Same accent-chip language as Badge, but a softer glaze (between flat solid and full\n * FeaturedIcon / Badge liquid glass). Always a link. No semantic options (success, warning,\n * danger, info); accent color only. On phone, large chips drop to the medium footprint\n * and the label keeps its token size so it stays proportionate to the shorter pill.\n *\n * @framerIntrinsicWidth 80\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */// 1. React and React types\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{forwardRef,useCallback,useMemo,useRef}from\"react\";// 2. Framer Motion (not applicable for Tag)\n// 3. Framer API\nimport{addPropertyControls,ControlType}from\"framer\";import{FRAMER_BREAKPOINT_DESCRIPTION,FRAMER_THEME_DESCRIPTION_SURFACE}from\"https://framerusercontent.com/modules/kgixvU6ZSjEgZfx2dLER/MHZcXqVCaHFvVWYQ7CWQ/propertyControlCopy.js\";// 4. Design system utilities\nimport Tokens,{useScopedBreakpoint}from\"https://framerusercontent.com/modules/JnflwrfTBO2W3YxUCt5T/gagzSBMuqB4yu4qdS3rG/index.js\";import{BADGE_ACCENT_COLORS_WCAG_AA,DEFAULT_TAG_ACCENT_COLOR}from\"https://framerusercontent.com/modules/1XTicB6ZB0oMHOK199vO/c1jHHNIOsHYdvzmm1LSi/accentContrast.js\";// 5. Hooks\nimport{useInteractiveStates}from\"https://framerusercontent.com/modules/Oyd67FvSjdl6uCVEyAij/7gz3jo5jIHjHVYqS4znk/useInteractiveStates.js\";// 6. Local utilities\nimport{getNewTabAriaLabel,useSmartLinkProps}from\"https://framerusercontent.com/modules/NbJRONH2Z4yDLXjbVsSq/LhCC2omOdbhwi8lDSZaq/linkHelpers.js\";import{getIconRaw,ICON_OPTIONS_WITH_NONE_AND_CUSTOM,ICON_OPTION_TITLES_WITH_NONE_AND_CUSTOM}from\"https://framerusercontent.com/modules/OuAHgtW29YOxApe6lCN1/9ld191CvHrtXqbHVLJg6/icons.js\";import{processSVG}from\"https://framerusercontent.com/modules/Ajjw0fi7RIb9ZhcKml39/kZaSzrhXO8NWznE70PjD/svg.js\";import{HINT_BADGE}from\"https://framerusercontent.com/modules/48iFuUf79i0lV1xbzOpm/1llYVYoXHKBoUUXzGhpH/placeholders.js\";import{pickSafeDivProps}from\"https://framerusercontent.com/modules/HHfrxxHLEFZsStlLgAXu/smsxRt6Hnk7Miai8DpVn/domProps.js\";import{resolveBrand,resolveThemeVariant,resolveTricountThemeVariant}from\"https://framerusercontent.com/modules/30edN7qiEI1dwQI5mdZ5/RdSxoUKJXTqYerHxOEo0/themeHelpers.js\";import{brandPropertyControl}from\"https://framerusercontent.com/modules/T2sckviMCmJ4Jmbp9jxp/jhbEeUK4WU395GuS0o1Z/brandControl.js\";import{themePropertyControls,resolveThemeProp}from\"https://framerusercontent.com/modules/lFWBe5qCxlzWknbvQ1Np/IBWfdVP45taFoVt1WbKb/themeControl.js\";import{getSoftAccentChipFinish}from\"https://framerusercontent.com/modules/LcVxbLU0r8yRbNNFNhrj/Vtb1ne2zzwnGsBmtb2Rx/colorEffects.js\";const DEFAULT_CIRCLE_ICON_SVG=getIconRaw(\"circle\");/** Accent color token names (suffix for /Backgrounds/bg-{name}). Matches design token paths. */export const TAG_ACCENT_COLORS=[\"blue\",\"deep-blue\",\"light-blue\",\"green\",\"deep-green\",\"orange\",\"yellow\",\"deep-yellow\",\"red\",\"purple\",\"deep-purple\",\"fuchsia\",\"hot-pink\",\"indigo\",\"cyan\",\"turquoise\"];/** Human-readable titles for accent color options. */export const TAG_ACCENT_COLOR_TITLES={\"blue\":\"Blue\",\"deep-blue\":\"Deep Blue\",\"light-blue\":\"Light Blue\",\"green\":\"Green\",\"deep-green\":\"Deep Green\",\"orange\":\"Orange\",\"yellow\":\"Yellow\",\"deep-yellow\":\"Deep Yellow\",\"red\":\"Red\",\"purple\":\"Purple\",\"deep-purple\":\"Deep Purple\",\"fuchsia\":\"Fuchsia\",\"hot-pink\":\"Hot Pink\",\"indigo\":\"Indigo\",\"cyan\":\"Cyan\",\"turquoise\":\"Turquoise\"};/** WCAG 2.1 large text at regular weight is 18pt (24px). Keep token weight 400. */const TAG_LARGE_TEXT_MIN_PX=24;/** Fixed-height pills clip type if line-height stays at the token's 1.45em. */function fitChipTypographyToPill(typography){return{...typography,lineHeight:\"1\"};}/**\n * Raise chip size to the WCAG large-text bar so accent-on-accent at 3:1 is AA\n * without bolding the label.\n */function qualifyChipTypographyAsLargeText(typography){const px=parseFloat(String(typography.fontSize??\"0\"));const fontSize=px>=TAG_LARGE_TEXT_MIN_PX?typography.fontSize:`${TAG_LARGE_TEXT_MIN_PX}px`;return fitChipTypographyToPill({...typography,fontSize});}/**\n * TagInternal - Internal forwardRef component.\n *\n * Renders as an anchor; styling matches Badge in accent-only mode.\n */const TagInternal=/*#__PURE__*/forwardRef(function TagInternal(props,ref){const theme=resolveThemeProp(props);const{// 1. System\nbrand,breakpoint:breakpointProp=\"desktop\",// 2. Primary Configuration\naccentColor:accentColorProp=DEFAULT_TAG_ACCENT_COLOR,size:sizeProp=\"medium\",// 3. Content\nlabel=\"Label\",ariaLabel=\"Label\",link,openInNewTab=false,// 4. Visual/Icon\nicon=\"none\",iconSvg=DEFAULT_CIRCLE_ICON_SVG,// 5. State\ndisabled=false,// 9. Advanced\nstyle,...rest}=props;// Tags are usually CMS chips inside a Collection List, whose item template is\n// shared by every breakpoint frame, so the Breakpoint control cannot be set per\n// frame. The enclosing section publishes its resolved breakpoint instead.\nconst rootRef=useRef(null);const setRootRef=useCallback(node=>{rootRef.current=node;if(typeof ref===\"function\")ref(node);else if(ref&&typeof ref===\"object\")ref.current=node;},[ref]);const breakpoint=useScopedBreakpoint(breakpointProp,rootRef);// A 48px pill with 24px padding eats a phone row, so large chips render at the\n// medium footprint there. Medium keeps the 24px label that accent-on-accent\n// needs to stay AA, so the label size is unchanged.\nconst size=breakpoint===\"phone\"&&sizeProp===\"large\"?\"medium\":sizeProp;const accentColor=(()=>{if(!accentColorProp||typeof accentColorProp!==\"string\")return DEFAULT_TAG_ACCENT_COLOR;const n=accentColorProp.trim().toLowerCase().replace(/\\s+/g,\"-\");const allowed=[\"blue\",\"deep-blue\",\"light-blue\",\"green\",\"deep-green\",\"orange\",\"yellow\",\"deep-yellow\",\"red\",\"purple\",\"deep-purple\",\"fuchsia\",\"hot-pink\",\"indigo\",\"cyan\",\"turquoise\"];// Keep stored failing accents (e.g. blue) so existing instances do not jump\n// color. Unknown values fall back to an AA-safe accent, not blue.\nreturn allowed.includes(n)?n:DEFAULT_TAG_ACCENT_COLOR;})();const safeDomProps=useMemo(()=>pickSafeDivProps(rest),[rest]);const resolvedBrand=resolveBrand(brand);// SmartLink wires this anchor into Framer's SPA router so internal links\n// navigate without reloading the preview iframe. The onClick option below\n// calls `e.preventDefault()` when the tag is disabled so the hook then\n// skips navigation (it bails on `e.defaultPrevented`).\nconst smartLink=useSmartLinkProps(link,openInNewTab,{onClick:e=>{if(disabled)e.preventDefault();}});const resolvedHref=!disabled&&smartLink.href&&smartLink.href!==\"#\"?smartLink.href:undefined;const isInteractionDisabled=disabled||resolvedHref===undefined;// Opt into reduced-motion-aware transitions for filter/outline (brightness\n// on hover/press). Press/tap scale is reserved for Button atoms only —\n// links use brightness feedback per animation guidelines.\nconst{styles:interactiveStyles,handlers}=useInteractiveStates(isInteractionDisabled,{brand:resolvedBrand,transitions:true});const isTricount=resolvedBrand===\"tricount\";const isInverted=resolveThemeVariant(theme)===\"inverted\";const tricountTheme=resolveTricountThemeVariant(theme);const tricountChipFill=tricountTheme===\"inverted\"||tricountTheme===\"inverted-neutral\"?Tokens.getColorValue(\"/Brand colors/tricount-soft-blue\"):Tokens.getColorValue(\"/Brand colors/tricount-paper\");const tricountChipText=Tokens.getColorValue(\"/Brand colors/tricount-deep-blue\");const dotColor=isTricount?tricountChipText:isInverted?Tokens.getColorValue(`/Text/text-${accentColor}`):Tokens.getColorValue(`/Foregrounds/fg-${accentColor}`);/** Match Badge: icon optical size scales with pill height (24 / 32 / 40). */const iconSize=size===\"small\"?16:size===\"medium\"?20:24;const showIconResolved=icon!==\"none\";const effectiveIconSvg=icon===\"custom\"?iconSvg:icon===\"none\"?\"\":getIconRaw(icon);const processedIconSvg=(()=>{if(!effectiveIconSvg||!effectiveIconSvg.trim()||!effectiveIconSvg.includes(\"<svg\")){return\"\";}return processSVG(effectiveIconSvg.trim(),iconSize,dotColor,{replaceStroke:true});})();const solidBackground=isTricount?tricountChipFill:isInverted?Tokens.getColorValue(`/Utility colors/utility-${accentColor}-200`):Tokens.getColorValue(`/Backgrounds/bg-${accentColor}`);const textColor=isTricount?tricountChipText:Tokens.getColorValue(`/Text/text-${accentColor}`);// Responsive padding and gap (same as Badge).\nconst getPaddingX=()=>{if(size===\"small\"){return breakpoint===\"phone\"?Tokens.getSpacing(8):breakpoint===\"tablet\"?Tokens.getSpacing(10):Tokens.getSpacing(12);}if(size===\"medium\"){return breakpoint===\"phone\"?Tokens.getSpacing(12):breakpoint===\"tablet\"?Tokens.getSpacing(16):Tokens.getSpacing(16);}return breakpoint===\"phone\"?Tokens.getSpacing(20):breakpoint===\"tablet\"?Tokens.getSpacing(24):Tokens.getSpacing(24);};const getGap=()=>{if(size===\"small\"){return breakpoint===\"phone\"?Tokens.getSpacing(4):breakpoint===\"tablet\"?Tokens.getSpacing(6):Tokens.getSpacing(6);}if(size===\"medium\"){return breakpoint===\"phone\"?Tokens.getSpacing(6):breakpoint===\"tablet\"?Tokens.getSpacing(8):Tokens.getSpacing(8);}return breakpoint===\"phone\"?Tokens.getSpacing(8):breakpoint===\"tablet\"?Tokens.getSpacing(10):Tokens.getSpacing(10);};const baseTypography=size===\"small\"?Tokens.getTypographyStyles(\"/Detail SM/Heavy\",breakpoint):size===\"medium\"?Tokens.getTypographyStyles(\"/Body SM/Heavy\",breakpoint):Tokens.getTypographyStyles(\"/Body LG/Heavy\",breakpoint);// Body * Heavy is 20px / 400, which is normal text (4.5:1). Medium and large\n// use 24px at the same weight so 3:1 accent pairs stay AA without bolding. Phone\n// pills are short, so the label keeps its token size there and scales with the\n// chip instead of filling it.\nconst typography=size===\"small\"||baseTypography==null?baseTypography:breakpoint===\"phone\"?fitChipTypographyToPill(baseTypography):qualifyChipTypographyAsLargeText(baseTypography);const paddingX=getPaddingX();const gap=getGap();// Large is taller than Badge (40) so topic chips read clearly on help homepage density.\nconst tagHeight=size===\"small\"?Tokens.getSpacing(24):size===\"medium\"?Tokens.getSpacing(32):Tokens.getSpacing(48);// Chip-family: always pill radius per design system exception.\nconst tagRadius=Tokens.getRadius(\"radius-full\");// Soft depth between flat solid chips and full Badge / FeaturedIcon glass:\n// higher fill opacity, milder frost, light chrome (no dark tint overlay).\nconst softChipFinish=useMemo(()=>getSoftAccentChipFinish({solidFill:solidBackground,brand:resolvedBrand}),[solidBackground,resolvedBrand]);const tagVisualStyle=useMemo(()=>({display:\"inline-flex\",alignItems:\"center\",minWidth:Tokens.getSpacing(32),whiteSpace:\"nowrap\",height:tagHeight,paddingLeft:paddingX,paddingRight:paddingX,gap,borderRadius:tagRadius,color:textColor,textDecoration:\"none\",transformOrigin:\"center\",...typography,// Soft glaze before `style` so editor overrides win.\n    ...softChipFinish,...style}),[tagHeight,tagRadius,style,textColor,paddingX,gap,typography,softChipFinish]);const iconContainerStyle={display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0,width:Tokens.getSpacing(iconSize),height:Tokens.getSpacing(iconSize)};const iconSvgStyle={display:\"inline-flex\",width:\"100%\",height:\"100%\"};const iconDotStyle={display:\"inline-block\",width:\"100%\",height:\"100%\",borderRadius:Tokens.getRadius(\"radius-full\"),boxSizing:\"border-box\",borderWidth:Tokens.getSpacing(2),borderStyle:\"solid\",borderColor:dotColor};const accessibleName=ariaLabel.trim()||label||undefined;const ariaLabelResolved=isInteractionDisabled||!openInNewTab?accessibleName:getNewTabAriaLabel((ariaLabel.trim()||label||\"Label\").trim());const tagContent=/*#__PURE__*/_jsxs(_Fragment,{children:[showIconResolved&&/*#__PURE__*/_jsx(\"span\",{style:iconContainerStyle,\"aria-hidden\":\"true\",children:processedIconSvg?/*#__PURE__*/_jsx(\"span\",{style:iconSvgStyle,dangerouslySetInnerHTML:{__html:processedIconSvg}}):/*#__PURE__*/_jsx(\"span\",{style:iconDotStyle})}),/*#__PURE__*/_jsx(\"span\",{style:{whiteSpace:\"nowrap\"},children:label})]});if(isInteractionDisabled){return /*#__PURE__*/_jsx(\"span\",{ref:setRootRef,style:{...tagVisualStyle,...interactiveStyles,pointerEvents:\"none\"},\"aria-label\":ariaLabelResolved,\"aria-disabled\":true,...safeDomProps,children:tagContent});}// Phone chips are 32px. A 44px tap wrapper around them adds 12px of empty\n// space between pills, which reads as extra gap versus desktop (where the\n// 48px chip already fills the tap target). The chip itself still clears\n// WCAG 2.5.8 (24px).\nconst expandTapTarget=breakpoint!==\"phone\";const linkTouchTargetStyle={display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",...expandTapTarget?{minWidth:Tokens.getControlSizeValue(\"touchTarget\"),minHeight:Tokens.getControlSizeValue(\"touchTarget\")}:{},borderRadius:tagRadius,textDecoration:\"none\",...interactiveStyles};return /*#__PURE__*/_jsx(\"a\",{ref:setRootRef,href:resolvedHref,target:smartLink.target,rel:smartLink.rel,style:{...smartLink.style,...linkTouchTargetStyle},\"aria-label\":ariaLabelResolved,onMouseEnter:handlers.onMouseEnter,onMouseLeave:handlers.onMouseLeave,onMouseDown:handlers.onMouseDown,onMouseUp:handlers.onMouseUp,onFocus:handlers.onFocus,onBlur:handlers.onBlur,onClick:smartLink.onClick,...safeDomProps,children:/*#__PURE__*/_jsx(\"span\",{style:tagVisualStyle,children:tagContent})});});/**\n * Tag - Wrapper component for Framer compatibility.\n */export default function Tag(props){return /*#__PURE__*/_jsx(TagInternal,{...props});}Tag.displayName=\"Tag - Atom\";addPropertyControls(Tag,{// ─── 1. Content ────────────────────────────────────────────────────────────\nlabel:{type:ControlType.String,title:\"Label\",defaultValue:\"Label\",placeholder:HINT_BADGE,description:\"Tag text label.\"},ariaLabel:{type:ControlType.String,title:\"ARIA Label\",defaultValue:\"Label\",placeholder:\"e.g. Label\",description:\"Accessible name for the link (defaults to the visible label).\"},// ─── 2. Links ──────────────────────────────────────────────────────────────\nlink:{type:ControlType.Link,title:\"Link\",defaultValue:\"\",description:\"Link destination (URL or Framer link).\"},openInNewTab:{type:ControlType.Boolean,title:\"Open in New Tab\",defaultValue:false,enabledTitle:\"New Tab\",disabledTitle:\"Same Tab\",description:\"Open link in new tab with noopener noreferrer.\"},// ─── 4. Icons ──────────────────────────────────────────────────────────────\nicon:{type:ControlType.Enum,title:\"Icon\",options:[...ICON_OPTIONS_WITH_NONE_AND_CUSTOM],optionTitles:ICON_OPTIONS_WITH_NONE_AND_CUSTOM.map(key=>ICON_OPTION_TITLES_WITH_NONE_AND_CUSTOM[key]),displaySegmentedControl:false,// Tags are text-only by default. The removed legacy `showIcon` gate gave every\n// Tag no icon regardless of this control, so defaulting to \"check\" here would\n// make icons appear on every existing instance. R15 exception is recorded in\n// the property-controls audit allowlist.\ndefaultValue:\"none\",description:\"Select an icon, None for text-only tags, or Custom to paste SVG below.\"},iconSvg:{type:ControlType.String,title:\"Icon SVG\",defaultValue:DEFAULT_CIRCLE_ICON_SVG,placeholder:\"<svg>...</svg>\",description:\"Custom SVG icon code. Used when Icon is set to Custom.\",preventLocalization:true,hidden:props=>props.icon!==\"custom\"},// ─── 6. Configuration ──────────────────────────────────────────────────────\nsize:{type:ControlType.Enum,title:\"Size\",options:[\"small\",\"medium\",\"large\"],optionTitles:[\"Small\",\"Medium\",\"Large\"],displaySegmentedControl:true,defaultValue:\"medium\",description:\"Tag size variant (small, medium, large). Large chips render at the medium footprint on phone.\"},accentColor:{type:ControlType.Enum,title:\"Accent Color\",options:[...BADGE_ACCENT_COLORS_WCAG_AA],optionTitles:BADGE_ACCENT_COLORS_WCAG_AA.map(c=>TAG_ACCENT_COLOR_TITLES[c]),defaultValue:DEFAULT_TAG_ACCENT_COLOR,description:\"Accent color. Label uses /Text/text-{color} on /Backgrounds/bg-{color}. Medium and large tags are large text, so pairs that meet WCAG AA 3:1 are offered. Stored values outside this list still render.\"},disabled:{type:ControlType.Boolean,title:\"Disabled\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Disable the tag (visually muted, non-interactive, non-focusable).\"},// ─── 9. Advanced ───────────────────────────────────────────────────────────\nid:{type:ControlType.String,title:\"ID\",defaultValue:\"tag\",placeholder:\"e.g. my-element\",description:\"HTML id for the root element (e.g. for analytics or anchor links).\",preventLocalization:true},// ─── 10. System ────────────────────────────────────────────────────────────\nbreakpoint:{type:ControlType.Enum,title:\"Breakpoint\",options:[\"desktop\",\"tablet\",\"phone\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],displaySegmentedControl:false,defaultValue:\"desktop\",description:FRAMER_BREAKPOINT_DESCRIPTION},...themePropertyControls(FRAMER_THEME_DESCRIPTION_SURFACE),...brandPropertyControl()});\nexport const __FramerMetadata__ = {\"exports\":{\"TagProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Tag\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"TAG_ACCENT_COLORS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TAG_ACCENT_COLOR_TITLES\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TagAccentColor\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}