{"version":3,"file":"WithRichTextEmphasisColor.DNpwuSF8.mjs","names":["React.useId","React.useRef","React.useMemo","React.useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/oRPZSOpvwc21pDokSRMT/oOKieCa20W94GcCpesOF/WithRichTextEmphasisColor.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";// @ts-ignore - Framer module is available at runtime in Framer environment\nimport{addPropertyControls,ControlType}from\"framer\";function hasInlineBoldFontWeight(fontWeightValue){const normalized=fontWeightValue.trim().toLowerCase();if(normalized===\"bold\"||normalized===\"bolder\")return true;const parsed=Number.parseInt(normalized,10);return Number.isFinite(parsed)&&parsed>=600;}function toMutedColor(baseColor,opacity){const normalizedOpacity=Math.max(0,Math.min(1,opacity));const color=baseColor.trim();const hexMatch=color.match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);if(hexMatch){const hex=hexMatch[1];const expanded=hex.length===3?hex.split(\"\").map(char=>char+char).join(\"\"):hex;const r=parseInt(expanded.slice(0,2),16);const g=parseInt(expanded.slice(2,4),16);const b=parseInt(expanded.slice(4,6),16);return`rgba(${r}, ${g}, ${b}, ${normalizedOpacity})`;}const rgbMatch=color.match(/^rgba?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)(?:\\s*,\\s*[\\d.]+\\s*)?\\)$/i);if(rgbMatch){const[,r,g,b]=rgbMatch;return`rgba(${Number(r)}, ${Number(g)}, ${Number(b)}, ${normalizedOpacity})`;}return color;}export function withRichTextEmphasisColor(Component){return /*#__PURE__*/React.forwardRef(function Wrapped(props,ref){const{baseColor=\"rgb(35, 35, 35)\",mutedOpacity=.65,...rest}=props;const scopedClassName=React.useId().replace(/[:]/g,\"\");const emphasisClassName=`${scopedClassName}__emphasis`;const clampedMutedOpacity=Math.max(0,Math.min(1,mutedOpacity));const elementRef=React.useRef(null);const mutedColor=React.useMemo(()=>toMutedColor(baseColor,clampedMutedOpacity),[baseColor,clampedMutedOpacity]);const setForwardedRef=React.useCallback(node=>{if(typeof ref===\"function\"){ref(node);return;}if(ref&&\"current\"in ref){ref.current=node;}},[ref]);const attachScopedClassRef=React.useCallback(node=>{const previousNode=elementRef.current;if(previousNode&&previousNode!==node){previousNode.classList.remove(scopedClassName);}if(node){node.classList.add(scopedClassName);}elementRef.current=node;setForwardedRef(node);},[scopedClassName,setForwardedRef]);React.useEffect(()=>{const root=elementRef.current;if(!root||typeof window===\"undefined\")return;const markEmphasis=()=>{const descendants=Array.from(root.querySelectorAll(\"*\"));for(const element of descendants){element.classList.remove(emphasisClassName);}for(const element of descendants){const tagName=element.tagName.toLowerCase();const inlineWeight=element.style.fontWeight;const computedWeight=window.getComputedStyle(element).fontWeight;const parsedComputedWeight=Number.parseInt(computedWeight.trim(),10);const hasTagEmphasis=tagName===\"strong\"||tagName===\"b\";const hasInlineWeight=inlineWeight?hasInlineBoldFontWeight(inlineWeight):false;const hasComputedWeight=computedWeight===\"bold\"||computedWeight===\"bolder\"||Number.isFinite(parsedComputedWeight)&&parsedComputedWeight>=600;if(hasTagEmphasis||hasInlineWeight||hasComputedWeight){element.classList.add(emphasisClassName);}}};markEmphasis();const observer=new MutationObserver(()=>{markEmphasis();});observer.observe(root,{childList:true,subtree:true,characterData:true,attributes:true,attributeFilter:[\"style\",\"class\"]});return()=>{observer.disconnect();if(elementRef.current){elementRef.current.classList.remove(scopedClassName);}};},[emphasisClassName,scopedClassName,baseColor,mutedColor]);const css=React.useMemo(()=>{return`\n                .${scopedClassName} {\n                    --rich-text-base-color: ${baseColor};\n                    --rich-text-muted-color: ${mutedColor};\n                    color: var(--rich-text-muted-color) !important;\n                }\n\n                .${scopedClassName} * {\n                    color: var(--rich-text-muted-color) !important;\n                }\n\n                .${scopedClassName} .${emphasisClassName},\n                .${scopedClassName} .${emphasisClassName} * {\n                    color: var(--rich-text-base-color) !important;\n                }\n\n                .${scopedClassName} .${emphasisClassName} {\n                    font-weight: inherit !important;\n                }\n\n                .${scopedClassName} .${emphasisClassName} strong,\n                .${scopedClassName} .${emphasisClassName} b {\n                    font-weight: inherit !important;\n                }\n\n                .${scopedClassName} a {\n                    color: inherit !important;\n                }\n            `;},[baseColor,mutedColor,scopedClassName,emphasisClassName]);return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:css}),/*#__PURE__*/_jsx(Component,{ref:attachScopedClassRef,...rest})]});});}addPropertyControls(withRichTextEmphasisColor,{baseColor:{type:ControlType.Color,title:\"Base Color\",defaultValue:\"rgb(35, 35, 35)\"},mutedOpacity:{type:ControlType.Number,title:\"Muted Opacity\",defaultValue:.65,min:0,max:1,step:.05}});\nexport const __FramerMetadata__ = {\"exports\":{\"withRichTextEmphasisColor\":{\"type\":\"reactHoc\",\"name\":\"withRichTextEmphasisColor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WithRichTextEmphasisColor.map"],"mappings":"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"}