{"version":3,"file":"shared-lib.Sza-iO2-.mjs","names":["useRef","useState","isFixedWidth","useMemo","lowercaseIconKeyPairs","iconKeys","useState","HomeFactory","React"],"sources":["https:/framerusercontent.com/modules/1TzyURRjS15FpRiaioQn/0mKRjeiSAtkzK8X6ggIU/TextReveal.js","https:/framerusercontent.com/modules/DyldKav0OOAWR3bCAlhK/8c3l9FzyOlGpbPncYhfc/nullstate.js","https:/framer.com/m/framer/icon-nullstate.js@0.7.0","https:/framerusercontent.com/modules/8tFVJ9SCM5akQRM0UzVD/YkxZV5bKC4LrRDEdvAgQ/home.js","https:/framer.com/m/feather-icons/home.js@0.0.29","https:/framerusercontent.com/modules/Ma20hU0GGRxLxZphbywl/OSpwWF91FHPVFyQJjMHt/utils.js","https:/framerusercontent.com/modules/f0DboytQenYh21kfme7W/zb1zVBMZJKgPMiedOi0y/Feather.js"],"sourcesContent":["// Text Reveal component with line-by-line animation, Framer property controls, and robust defaults\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion}from\"framer-motion\";import{useState,useEffect,useRef,startTransition}from\"react\";/**\n * Text Reveal\n * Reveals text line by line with animation. Supports appear/inView triggers and replay.\n *\n * @framerIntrinsicWidth 400\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function TextReveal(props){const{text,font,textColor,style,animation,tag}=props;const{trigger,replay,yOffset,delay=0,transition}=animation;const{userSelect=\"none\",textIndent=0,verticalGap=0}=props;const containerRef=useRef(null);const[lines,setLines]=useState([]);// For per-line inView detection\nconst lineRefs=useRef([]);const[linesInView,setLinesInView]=useState([]);// Per-line inView detection\nuseEffect(()=>{if(trigger!==\"inView\")return;if(!lines.length)return;if(RenderTarget.current()===RenderTarget.canvas)return;let observers=[];const newLinesInView=Array(lines.length).fill(false);lines.forEach((_,i)=>{const ref=lineRefs.current[i];if(!ref)return;const observer=new window.IntersectionObserver(([entry])=>{if(entry.isIntersecting){newLinesInView[i]=true;startTransition(()=>setLinesInView([...newLinesInView]));if(replay===\"no\")observer.disconnect();}else if(replay===\"yes\"){newLinesInView[i]=false;startTransition(()=>setLinesInView([...newLinesInView]));}},{threshold:.1});observer.observe(ref);observers.push(observer);});return()=>{observers.forEach(o=>o.disconnect());};},[lines,trigger,replay]);useEffect(()=>{const isFixedWidth=style&&style.width===\"100%\";const userLines=text.split(\"\\n\");if(!isFixedWidth){startTransition(()=>setLines(userLines));return;}if(typeof window===\"undefined\"||!containerRef.current)return;// Polyfill ResizeObserver for SSR safety\nconst ResizeObs=window.ResizeObserver||class{observe(){}disconnect(){}};const detectLines=()=>{const container=containerRef.current;if(!container)return;const allDetectedLines=[];userLines.forEach(userLine=>{const wordsArr=userLine.split(\" \");const tempSpan=document.createElement(\"span\");tempSpan.style.visibility=\"hidden\";tempSpan.style.position=\"absolute\";tempSpan.style.whiteSpace=\"nowrap\";tempSpan.style.width=\"auto\";Object.assign(tempSpan.style,font);container.appendChild(tempSpan);const containerWidth=container.offsetWidth;const detectedLines=[];let currentLine=[];let currentWidth=0;let isFirstLine=true;let availableWidth=containerWidth;if(textIndent&&textIndent>0)availableWidth=containerWidth-textIndent;wordsArr.forEach(word=>{tempSpan.textContent=word;const wordWidth=tempSpan.offsetWidth;if(currentWidth+wordWidth<=availableWidth){currentLine.push(word);currentWidth+=wordWidth+tempSpan.offsetWidth*.25// Space width approximation\n;}else{if(currentLine.length>0){detectedLines.push(currentLine.join(\" \"));}currentLine=[word];currentWidth=wordWidth;isFirstLine=false;availableWidth=containerWidth// reset to full width for subsequent lines\n;}});if(currentLine.length>0){detectedLines.push(currentLine.join(\" \"));}container.removeChild(tempSpan);allDetectedLines.push(...detectedLines);});startTransition(()=>{setLines(allDetectedLines);});};const resizeObserver=new ResizeObs(detectLines);resizeObserver.observe(containerRef.current);detectLines();return()=>resizeObserver.disconnect();},[text,font,style]);const getLineTransition=index=>{// Use transition.delay as the step between lines\nconst step=transition&&typeof transition.delay===\"number\"?transition.delay:.05;const globalDelay=typeof delay===\"number\"?delay:0;let lineDelay=0;if(trigger===\"appear\"||trigger===\"inView\"){lineDelay=globalDelay+(index===0?0:index*step);}// Remove any delay from transition to avoid conflicts\nconst{delay:_removed,...restTransition}=transition||{};return{...restTransition,delay:lineDelay};};const isFixedWidth=style&&style.width===\"100%\";const Tag=tag;// Fallback: always show text as a single line in canvas/thumbnail if lines is empty\n// Reset lineRefs length to match lines\nuseEffect(()=>{if(lineRefs.current.length!==lines.length){lineRefs.current=Array(lines.length).fill(null);}},[lines.length]);const displayLines=RenderTarget.current()===RenderTarget.canvas||RenderTarget.current()===RenderTarget.thumbnail?lines.length>0?lines:[text]:lines;const isStatic=RenderTarget.current()===RenderTarget.canvas||RenderTarget.current()===RenderTarget.thumbnail;return /*#__PURE__*/_jsx(motion.div,{ref:containerRef,style:{position:\"relative\",...isFixedWidth?{...style}:{minWidth:\"max-content\"},...font,color:textColor,userSelect},children:/*#__PURE__*/_jsx(Tag,{style:{margin:0,padding:0,fontSize:\"inherit\",fontWeight:\"inherit\"},children:displayLines.map((line,i)=>{const shouldAnimate=isStatic?true:trigger===\"inView\"?linesInView[i]:true;return /*#__PURE__*/_jsx(\"span\",{ref:el=>lineRefs.current[i]=el,style:{display:\"block\",overflow:\"hidden\",margin:0,padding:0,textIndent:i===0&&textIndent?`${textIndent}px`:undefined,marginTop:i===0?undefined:`${verticalGap}px`},children:/*#__PURE__*/_jsx(motion.span,{style:{display:\"block\"},initial:isStatic?{y:0}:{y:yOffset+\"%\"},animate:shouldAnimate?{y:0}:{y:yOffset+\"%\"},transition:getLineTransition(i),children:line})},i);})})});}TextReveal.displayName=\"DBP Text Reveal\";addPropertyControls(TextReveal,{tag:{type:ControlType.Enum,title:\"Tag\",options:[\"h1\",\"h2\",\"h3\",\"p\"],optionTitles:[\"H1\",\"H2\",\"H3\",\"P\"],defaultValue:\"p\",displaySegmentedControl:true},text:{type:ControlType.String,title:\"Text\",defaultValue:\"The quick brown fox jumps over the lazy dog.\",displayTextArea:true},font:{type:ControlType.Font,controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:40,lineHeight:1.25,letterSpacing:0,textAlign:\"left\"}},textColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"},textIndent:{type:ControlType.Number,title:\"Indent\",defaultValue:0,min:0,max:500,step:10,displayStepper:true},verticalGap:{type:ControlType.Number,title:\"Gap\",defaultValue:0,min:-40,max:40,step:4,displayStepper:true},userSelect:{type:ControlType.Enum,title:\"Select\",options:[\"none\",\"auto\"],optionTitles:[\"None\",\"Auto\"],defaultValue:\"auto\",displaySegmentedControl:false},animation:{type:ControlType.Object,title:\"Animation\",description:\"Component Built and [Designed by Paul](https://shop.designedbypaul.com)\",controls:{trigger:{type:ControlType.Enum,title:\"Trigger\",options:[\"appear\",\"inView\"],optionTitles:[\"On Appear\",\"Layer in View\"],defaultValue:\"inView\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},replay:{type:ControlType.Enum,title:\"Replay\",options:[\"yes\",\"no\"],optionTitles:[\"Yes\",\"No\"],defaultValue:\"yes\",displaySegmentedControl:true,hidden:({trigger})=>trigger!==\"inView\"},yOffset:{type:ControlType.Number,title:\"Y Offset\",defaultValue:100,min:-200,max:200,unit:\"%\",step:10},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{type:\"spring\",duration:1,bounce:0,delay:.1}},delay:{type:ControlType.Number,title:\"Delay\",defaultValue:0,min:0,max:5,step:.1,unit:\"s\",displayStepper:true}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextReveal\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"400\",\"framerDisableUnlink\":\"*\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextReveal.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nexport const containerStyles = {\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nconst nullIconStyle = {\n    minWidth: \"10px\",\n    minHeight: \"10px\",\n    maxWidth: \"20px\",\n    maxHeight: \"20px\",\n    width: \"60%\",\n    height: \"60%\"\n};\nconst emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(149, 149, 149, 0.1)\",\n    border: \"1px dashed rgba(149, 149, 149, 0.15)\",\n    color: \"#a5a5a5\",\n    flexDirection: \"column\"\n};\nexport const NullState = /*#__PURE__*/ React.forwardRef((_, ref)=>{\n    return(/*#__PURE__*/ _jsx(\"div\", {\n        style: emptyStateStyle,\n        ref: ref\n    }));\n}) /*\n\n<svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                viewBox=\"0 0 30 30\"\n                style={nullIconStyle}\n            >\n                <path\n                    d=\"M 12.857 0 C 19.958 0 25.714 5.756 25.714 12.857 C 25.714 19.958 19.958 25.714 12.857 25.714 C 5.756 25.714 0 19.958 0 12.857 C 0 5.756 5.756 0 12.857 0 Z\"\n                    fill=\"#FFFFFF\"\n                ></path>\n                <path\n                    d=\"M 20.357 20.357 L 27.857 27.857\"\n                    fill=\"transparent\"\n                    strokeWidth=\"4.28\"\n                    stroke=\"#FFFFFF\"\n                    strokeLinecap=\"round\"\n                ></path>\n                <g transform=\"translate(9.643 6.429)\">\n                    <path\n                        d=\"M 3.214 12.857 L 3.214 12.857\"\n                        fill=\"transparent\"\n                        strokeWidth=\"3.75\"\n                        stroke=\"currentColor\"\n                        strokeLinecap=\"round\"\n                    ></path>\n                    <path\n                        d=\"M 0 3.214 C 0 1.004 1.843 0 3.214 0 C 4.586 0 6.429 0.603 6.429 3.214 C 6.429 5.826 3.214 5.913 3.214 7.232 C 3.214 8.552 3.214 8.571 3.214 8.571\"\n                        fill=\"transparent\"\n                        strokeWidth=\"3.22\"\n                        stroke=\"currentColor\"\n                        strokeLinecap=\"round\"\n                        strokeLinejoin=\"round\"\n                    ></path>\n                </g>\n            </svg>\n            */ ;\n\nexport const __FramerMetadata__ = {\"exports\":{\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NullState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./nullstate.map","/*\n * nullstate (framer/icon-nullstate@0.7.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/DyldKav0OOAWR3bCAlhK/8c3l9FzyOlGpbPncYhfc/nullstate.js\"\n","let r;\nvar s = (o) => {\n    if (!r) {\n        const n = o.forwardRef(({color: t = \"currentColor\", size: e = 24, ...i}, l) => {\n            return o.createElement(\"svg\", {ref: l, xmlns: \"http://www.w3.org/2000/svg\", width: e, height: e, viewBox: \"0 0 24 24\", fill: \"none\", stroke: t, strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\", ...i}, o.createElement(\"path\", {d: \"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"}), o.createElement(\"polyline\", {points: \"9 22 9 12 15 12 15 22\"}));\n        });\n        n.displayName = \"Home\",r = n;\n    }\n    return r;\n};\nconst __FramerMetadata__ = {exports: {default: {type: \"reactComponent\", slots: [], annotations: {framerContractVersion: \"1\"}}, __FramerMetadata__: {type: \"variable\"}}};\nexport { __FramerMetadata__, s as default };","/*\n * home (feather-icons/home@0.0.29)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/8tFVJ9SCM5akQRM0UzVD/YkxZV5bKC4LrRDEdvAgQ/home.js\"\nexport { default } from \"https://framerusercontent.com/modules/8tFVJ9SCM5akQRM0UzVD/YkxZV5bKC4LrRDEdvAgQ/home.js\"\n","import{useMemo}from\"react\";import{ControlType}from\"framer\";/*\n ** ICON UTILS\n ** Pull as much re-usable logic into here as possible\n ** This will make it easier to replace in all icon components\n */ export const containerStyles={width:\"100%\",height:\"100%\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\"};export const defaultEvents={onClick:{type:ControlType.EventHandler},onMouseDown:{type:ControlType.EventHandler},onMouseUp:{type:ControlType.EventHandler},onMouseEnter:{type:ControlType.EventHandler},onMouseLeave:{type:ControlType.EventHandler}};const findByArray=(arr,search)=>arr.find(a=>a.toLowerCase().includes(search));export function getIconSelection(iconKeys,selectByList,iconSearch=\"\",iconSelection,lowercaseIconKeyPairs){// gotta get the exact match first THEN find\n// have a set and try to access ?\nif(selectByList)return iconSelection;if(iconSearch==null||(iconSearch===null||iconSearch===void 0?void 0:iconSearch.length)===0)return null;const iconSearchTerm=iconSearch.toLowerCase().replace(/-|\\s/g,\"\");var _iconSearchTerm;// check for exact match, otherwise use .find\nconst searchResult=(_iconSearchTerm=lowercaseIconKeyPairs[iconSearchTerm])!==null&&_iconSearchTerm!==void 0?_iconSearchTerm:findByArray(iconKeys,iconSearchTerm);return searchResult;}export function useIconSelection(iconKeys,selectByList,iconSearch=\"\",iconSelection,lowercaseIconKeyPairs){// Clean search term\nconst iconSearchResult=useMemo(()=>{if(iconSearch==null||(iconSearch===null||iconSearch===void 0?void 0:iconSearch.length)===0)return null;const iconSearchTerm=iconSearch.toLowerCase().replace(/-|\\s/g,\"\");var _iconSearchTerm;// check for exact match, otherwise use .find\nconst searchResult=(_iconSearchTerm=lowercaseIconKeyPairs[iconSearchTerm])!==null&&_iconSearchTerm!==void 0?_iconSearchTerm:findByArray(iconKeys,iconSearchTerm);return searchResult;},[iconSelection,iconSearch]);const name=selectByList?iconSelection:iconSearchResult;return name;}\nexport const __FramerMetadata__ = {\"exports\":{\"getIconSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIconSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./utils.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{NullState}from\"https://framer.com/m/framer/icon-nullstate.js@0.7.0\";import HomeFactory from\"https://framer.com/m/feather-icons/home.js@0.0.29\";import{defaultEvents,useIconSelection}from\"https://framerusercontent.com/modules/Ma20hU0GGRxLxZphbywl/OSpwWF91FHPVFyQJjMHt/utils.js\";export const iconKeys=[\"activity\",\"airplay\",\"alert-circle\",\"alert-octagon\",\"alert-triangle\",\"align-center\",\"align-justify\",\"align-left\",\"align-right\",\"anchor\",\"aperture\",\"archive\",\"arrow-down\",\"arrow-down-circle\",\"arrow-down-left\",\"arrow-down-right\",\"arrow-left\",\"arrow-left-circle\",\"arrow-right\",\"arrow-right-circle\",\"arrow-up\",\"arrow-up-circle\",\"arrow-up-left\",\"arrow-up-right\",\"at-sign\",\"award\",\"bar-chart\",\"bar-chart-2\",\"battery\",\"battery-charging\",\"bell\",\"bell-off\",\"bluetooth\",\"bold\",\"book\",\"book-open\",\"bookmark\",\"box\",\"briefcase\",\"calendar\",\"camera\",\"camera-off\",\"cast\",\"check\",\"check-circle\",\"check-square\",\"chevron-down\",\"chevron-left\",\"chevron-right\",\"chevron-up\",\"chevrons-down\",\"chevrons-left\",\"chevrons-right\",\"chevrons-up\",\"chrome\",\"circle\",\"clipboard\",\"clock\",\"cloud\",\"cloud-drizzle\",\"cloud-lightning\",\"cloud-off\",\"cloud-rain\",\"cloud-snow\",\"code\",\"codepen\",\"codesandbox\",\"coffee\",\"columns\",\"command\",\"compass\",\"copy\",\"corner-down-left\",\"corner-down-right\",\"corner-left-down\",\"corner-left-up\",\"corner-right-down\",\"corner-right-up\",\"corner-up-left\",\"corner-up-right\",\"cpu\",\"credit-card\",\"crop\",\"crosshair\",\"database\",\"delete\",\"disc\",\"divide\",\"divide-circle\",\"divide-square\",\"dollar-sign\",\"download\",\"download-cloud\",\"dribbble\",\"droplet\",\"edit\",\"edit-2\",\"edit-3\",\"external-link\",\"eye\",\"eye-off\",\"facebook\",\"fast-forward\",\"feather\",\"figma\",\"file\",\"file-minus\",\"file-plus\",\"file-text\",\"film\",\"filter\",\"flag\",\"folder\",\"folder-minus\",\"folder-plus\",\"framer\",\"frown\",\"gift\",\"git-branch\",\"git-commit\",\"git-merge\",\"git-pull-request\",\"github\",\"gitlab\",\"globe\",\"grid\",\"hard-drive\",\"hash\",\"headphones\",\"heart\",\"help-circle\",\"hexagon\",\"home\",\"image\",\"inbox\",\"info\",\"instagram\",\"italic\",\"key\",\"layers\",\"layout\",\"life-buoy\",\"link\",\"link-2\",\"linkedin\",\"list\",\"loader\",\"lock\",\"log-in\",\"log-out\",\"mail\",\"map\",\"map-pin\",\"maximize\",\"maximize-2\",\"meh\",\"menu\",\"message-circle\",\"message-square\",\"mic\",\"mic-off\",\"minimize\",\"minimize-2\",\"minus\",\"minus-circle\",\"minus-square\",\"monitor\",\"moon\",\"more-horizontal\",\"more-vertical\",\"mouse-pointer\",\"move\",\"music\",\"navigation\",\"navigation-2\",\"octagon\",\"package\",\"paperclip\",\"pause\",\"pause-circle\",\"pen-tool\",\"percent\",\"phone\",\"phone-call\",\"phone-forwarded\",\"phone-incoming\",\"phone-missed\",\"phone-off\",\"phone-outgoing\",\"pie-chart\",\"play\",\"play-circle\",\"plus\",\"plus-circle\",\"plus-square\",\"pocket\",\"power\",\"printer\",\"radio\",\"refresh-ccw\",\"refresh-cw\",\"repeat\",\"rewind\",\"rotate-ccw\",\"rotate-cw\",\"rss\",\"save\",\"scissors\",\"search\",\"send\",\"server\",\"settings\",\"share\",\"share-2\",\"shield\",\"shield-off\",\"shopping-bag\",\"shopping-cart\",\"shuffle\",\"sidebar\",\"skip-back\",\"skip-forward\",\"slack\",\"slash\",\"sliders\",\"smartphone\",\"smile\",\"speaker\",\"square\",\"star\",\"stop-circle\",\"sun\",\"sunrise\",\"sunset\",\"tablet\",\"tag\",\"target\",\"terminal\",\"thermometer\",\"thumbs-down\",\"thumbs-up\",\"toggle-left\",\"toggle-right\",\"tool\",\"trash\",\"trash-2\",\"trello\",\"trending-down\",\"trending-up\",\"triangle\",\"truck\",\"tv\",\"twitch\",\"twitter\",\"type\",\"umbrella\",\"underline\",\"unlock\",\"upload\",\"upload-cloud\",\"user\",\"user-check\",\"user-minus\",\"user-plus\",\"user-x\",\"users\",\"video\",\"video-off\",\"voicemail\",\"volume\",\"volume-1\",\"volume-2\",\"volume-x\",\"watch\",\"wifi\",\"wifi-off\",\"wind\",\"x\",\"x-circle\",\"x-octagon\",\"x-square\",\"youtube\",\"zap\",\"zap-off\",\"zoom-in\",\"zoom-out\",];const moduleBaseUrl=\"https://framer.com/m/feather-icons/\";const uppercaseIconKeys=iconKeys.map(name=>name.charAt(0).toUpperCase()+name.slice(1));const lowercaseIconKeyPairs=iconKeys.reduce((res,key)=>{res[key.toLowerCase()]=key;return res;},{});/**\n * FEATHER\n *\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */ export function Icon(props){const{color,selectByList,iconSearch,iconSelection,onClick,onMouseDown,onMouseUp,onMouseEnter,onMouseLeave,mirrored}=props;const isMounted=useRef(false);const iconKey=useIconSelection(iconKeys,selectByList,iconSearch,iconSelection,lowercaseIconKeyPairs);// Selected Icon Module\nconst[SelectedIcon,setSelectedIcon]=useState(iconKey===\"Home\"?HomeFactory(React):null);// Import the selected module or reset so null state\nasync function importModule(){let active=true;// Get the selected module\ntry{const iconModuleUrl=`${moduleBaseUrl}${iconKey}.js@0.0.29`;const module=await import(/* webpackIgnore: true */ iconModuleUrl);// console.log(module.default)\nif(active)setSelectedIcon(module.default(React));}catch(e){console.log(e);if(active)setSelectedIcon(null);}return()=>{active=false;};}// Import module when new style or icon is selected\nuseEffect(()=>{importModule();},[iconKey]);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const emptyState=isOnCanvas?/*#__PURE__*/ _jsx(NullState,{}):null;return /*#__PURE__*/ _jsx(\"div\",{style:{display:\"contents\"},onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,children:SelectedIcon?/*#__PURE__*/ _jsx(SelectedIcon,{style:{width:\"100%\",height:\"100%\",transform:mirrored?\"scale(-1, 1)\":undefined},color:color}):emptyState});}Icon.displayName=\"Feather\";Icon.defaultProps={width:24,height:24,iconSelection:\"home\",iconSearch:\"Home\",color:\"#66F\",selectByList:true,mirrored:false};addPropertyControls(Icon,{selectByList:{type:ControlType.Boolean,title:\"Select\",enabledTitle:\"List\",disabledTitle:\"Search\",defaultValue:Icon.defaultProps.selectByList},iconSelection:{type:ControlType.Enum,options:iconKeys,optionTitles:uppercaseIconKeys,defaultValue:Icon.defaultProps.iconSelection,title:\"Name\",hidden:({selectByList})=>!selectByList,description:\"Find every icon name on the [Feather site](https://feathericons.com/)\"},iconSearch:{type:ControlType.String,title:\"Name\",placeholder:\"Menu, Wifi, Box…\",hidden:({selectByList})=>selectByList},mirrored:{type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:Icon.defaultProps.mirrored},color:{type:ControlType.Color,title:\"Color\",defaultValue:Icon.defaultProps.color},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"iconKeys\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Icon\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"24\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"IconProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Feather.map"],"mappings":"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"}