{"version":3,"file":"utils.BnLx1O2U.mjs","names":["useMemo","useState"],"sources":["https:/framerusercontent.com/modules/19BkzxjVBT3VP0Ykl3DY/Ca7pJ6oGfAIcZSScMdTx/types.js","https:/framerusercontent.com/modules/IdMJ4CymCWCh4cOBkZlb/RXSqswLIbuViBOVW1keE/utils.js"],"sourcesContent":["export const sandpackDefaultLanguages=[\"JavaScript\",\"JSX\",\"TypeScript\",\"TSX\",\"CSS\",\"SCSS\",\"Less\",\"HTML\",];export const supportedLanguages=[\"Angular\",\"C\",\"C#\",\"C++\",\"CSS\",\"Go\",\"Haskell\",\"HTML\",\"Java\",\"JavaScript\",\"JSX\",\"Julia\",\"Kotlin\",\"Less\",\"Lua\",\"Markdown\",\"MATLAB\",\"Nginx\",\"Objective-C\",\"Perl\",\"PHP\",\"Python\",\"Ruby\",\"Rust\",\"Scala\",\"SCSS\",\"Shell\",\"SQL\",\"Swift\",\"TSX\",\"TypeScript\",\"Vue\",\"YAML\",];\nexport const __FramerMetadata__ = {\"exports\":{\"PaddingProperties\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BorderRadiusProperties\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"sandpackDefaultLanguages\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SupportedLanguages\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FontProperties\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"supportedLanguages\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BorderProperties\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./types.map","import{RenderTarget}from\"framer\";import{useState,useMemo}from\"react\";export function getFileExtensions(language){switch(language){case\"JavaScript\":return[\"js\"];case\"JSX\":return[\"jsx\"];case\"TypeScript\":return[\"ts\"];case\"TSX\":return[\"tsx\"];case\"CSS\":return[\"css\"];case\"SCSS\":return[\"scss\"];case\"Less\":return[\"less\"];case\"HTML\":return[\"html\",\"htm\"];case\"Angular\":return[\"ts\"];case\"C\":return[\"c\"];case\"C#\":return[\"cs\"];case\"C++\":return[\"cpp\",\"cxx\",\"cc\",\"h\",\"hpp\"];case\"Go\":return[\"go\"];case\"Haskell\":return[\"hs\"];case\"Java\":return[\"java\"];case\"Julia\":return[\"jl\"];case\"Kotlin\":return[\"kt\",\"kts\"];case\"Lua\":return[\"lua\"];case\"Markdown\":return[\"md\"];case\"MATLAB\":return[\"m\"];case\"Nginx\":return[\"conf\"];case\"Objective-C\":return[\"m\",\"mm\"];case\"Perl\":return[\"pl\"];case\"PHP\":return[\"php\",\"php4\",\"php5\",\"phtml\"];case\"Python\":return[\"py\"];case\"Ruby\":return[\"rb\"];case\"Rust\":return[\"rs\"];case\"Scala\":return[\"scala\"];case\"Shell\":return[\"sh\"];case\"SQL\":return[\"sql\"];case\"Swift\":return[\"swift\"];case\"Vue\":return[\"vue\"];case\"YAML\":return[\"yaml\",\"yml\"];default:return[];}}export function useBorder(props,collapseEqualBorders=true){const style={};const{borderWidth=0,borderColor=\"unset\",borderStyle=\"none\",isMixedBorderWidth,borderWidthBottom=0,borderWidthLeft=0,borderWidthRight=0,borderWidthTop=0}=props;let borderTop;let borderBottom;let borderLeft;let borderRight;if(!isMixedBorderWidth){borderTop=borderBottom=borderLeft=borderRight=borderWidth;}else{borderTop=borderWidthTop;borderRight=borderWidthRight;borderBottom=borderWidthBottom;borderLeft=borderWidthLeft;}if(collapseEqualBorders&&borderTop===borderBottom&&borderTop===borderLeft&&borderTop===borderRight){style.border=`${borderTop}px ${borderStyle} ${borderColor}`;}else{style.borderStyle=borderStyle;style.borderColor=borderColor;style.borderTopWidth=`${borderTop}px`;style.borderBottomWidth=`${borderBottom}px`;style.borderLeftWidth=`${borderLeft}px`;style.borderRightWidth=`${borderRight}px`;}return style;}// Chunks a string into meaningful groups of characters (words, acronyms or numbers)\nconst groupsRegex=/[A-Z]{2,}|[A-Z][a-z]+|[a-z]+|[A-Z]|\\d+/gu;function capitalizeFirstLetter(value){return value.charAt(0).toUpperCase()+value.slice(1);}export function titleCase(value){const groups=value.match(groupsRegex)||[];return groups.map(capitalizeFirstLetter).join(\" \");}export function useRadius(props){const{borderRadius,isMixedBorderRadius,topLeftRadius,topRightRadius,bottomRightRadius,bottomLeftRadius}=props;const radiusValue=useMemo(()=>isMixedBorderRadius?`${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px`:`${borderRadius}px`,[borderRadius,isMixedBorderRadius,topLeftRadius,topRightRadius,bottomRightRadius,bottomLeftRadius,]);return radiusValue;}export function usePadding(props){const{padding,paddingBottom,paddingLeft,paddingPerSide,paddingRight,paddingTop}=props;const paddingValue=useMemo(()=>paddingPerSide?`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`:`${padding}px`,[padding,paddingBottom,paddingLeft,paddingPerSide,paddingRight,paddingTop,]);return paddingValue;}export function useIsOnCanvas(){const[onCanvas]=useState(()=>RenderTarget.current()===RenderTarget.canvas);return onCanvas;}export function isObject(value){return value!==null&&typeof value===\"object\";}// From https://github.com/codesandbox/sandpack/blob/36560cb4f0fc8f5f8b18f5a3d3952799690eba77/sandpack-react/src/utils/stringUtils.ts#L81\nexport function isDarkColor(color){let r=0;let g=0;let b=0;if(color.startsWith(\"#\")){if(color.length<7){return true;}r=parseInt(color.substr(1,2),16);g=parseInt(color.substr(3,2),16);b=parseInt(color.substr(5,2),16);}else{const rgbValues=color.replace(\"rgb(\",\"\").replace(\"rgba(\",\"\").replace(\")\",\"\").split(\",\");if(rgbValues.length<3){return true;}r=parseInt(rgbValues[0],10);g=parseInt(rgbValues[1],10);b=parseInt(rgbValues[2],10);}const yiq=(r*299+g*587+b*114)/1e3;return yiq<128;}\nexport const __FramerMetadata__ = {\"exports\":{\"useRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isObject\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"titleCase\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isDarkColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getFileExtensions\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useBorder\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./utils.map"],"mappings":"4KAAuH,EAAmB,0MAAkQ,ICAvU,SAAgB,EAAkB,EAAS,CAAC,OAAO,EAAP,CAAiB,IAAI,aAAa,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,aAAa,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,UAAU,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,CAAC,KAAK,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,cAAc,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,OAAO,OAAO,QAAQ,CAAC,IAAI,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,MAAM,CAAC,QAAQ,MAAM,EAAE,EAAG,SAAgB,EAAU,EAAM,EAAqB,GAAK,CAAC,IAAM,EAAM,EAAE,CAAM,CAAC,cAAY,EAAE,cAAY,QAAQ,cAAY,OAAO,qBAAmB,oBAAkB,EAAE,kBAAgB,EAAE,mBAAiB,EAAE,iBAAe,GAAG,EAAU,EAAc,EAAiB,EAAe,EAA4lB,OAA5kB,GAAoF,EAAU,EAAe,EAAY,EAAiB,EAAa,EAAkB,EAAW,GAAhK,EAAU,EAAa,EAAW,EAAY,EAAsI,GAAsB,IAAY,GAAc,IAAY,GAAY,IAAY,EAAa,EAAM,OAAO,GAAG,EAAU,KAAK,EAAY,GAAG,KAAoB,EAAM,YAAY,EAAY,EAAM,YAAY,EAAY,EAAM,eAAe,GAAG,EAAU,IAAI,EAAM,kBAAkB,GAAG,EAAa,IAAI,EAAM,gBAAgB,GAAG,EAAW,IAAI,EAAM,iBAAiB,GAAG,EAAY,KAAY,EACh2D,SAAS,EAAsB,EAAM,CAAC,OAAO,EAAM,OAAO,EAAE,CAAC,aAAa,CAAC,EAAM,MAAM,EAAE,CAAE,SAAgB,EAAU,EAAM,CAA2C,OAA7B,EAAM,MAAM,EAAY,EAAE,EAAE,EAAe,IAAI,EAAsB,CAAC,KAAK,IAAI,CAAE,SAAgB,EAAU,EAAM,CAAC,GAAK,CAAC,eAAa,sBAAoB,gBAAc,iBAAe,oBAAkB,oBAAkB,EAAuQ,OAA/OA,MAAY,EAAoB,GAAG,EAAc,KAAK,EAAe,KAAK,EAAkB,KAAK,EAAiB,IAAI,GAAG,EAAa,IAAI,CAAC,EAAa,EAAoB,EAAc,EAAe,EAAkB,EAAkB,CAAC,CAAqB,SAAgB,EAAW,EAAM,CAAC,GAAK,CAAC,UAAQ,gBAAc,cAAY,iBAAe,eAAa,cAAY,EAAwN,OAA/LA,MAAY,EAAe,GAAG,EAAW,KAAK,EAAa,KAAK,EAAc,KAAK,EAAY,IAAI,GAAG,EAAQ,IAAI,CAAC,EAAQ,EAAc,EAAY,EAAe,EAAa,EAAY,CAAC,CAAsB,SAAgB,GAAe,CAAC,GAAK,CAAC,GAAUC,MAAa,EAAa,SAAS,GAAG,EAAa,OAAO,CAAC,OAAO,EAAU,SAAgB,EAAS,EAAM,CAAC,OAAqB,OAAO,GAAQ,YAA7B,EAC7rC,SAAgB,EAAY,EAAM,CAAC,IAAI,EAAE,EAAM,EAAE,EAAM,EAAE,EAAE,GAAG,EAAM,WAAW,IAAI,CAAC,CAAC,GAAG,EAAM,OAAO,EAAG,MAAO,GAAM,EAAE,SAAS,EAAM,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAM,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAM,OAAO,EAAE,EAAE,CAAC,GAAG,KAAM,CAAC,IAAM,EAAU,EAAM,QAAQ,OAAO,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,EAAU,OAAO,EAAG,MAAO,GAAM,EAAE,SAAS,EAAU,GAAG,GAAG,CAAC,EAAE,SAAS,EAAU,GAAG,GAAG,CAAC,EAAE,SAAS,EAAU,GAAG,GAAG,CAAoC,OAAvB,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,IAAe,uBAF3b,IAAoC,CAC/D,EAAY"}