{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/19BkzxjVBT3VP0Ykl3DY/Ca7pJ6oGfAIcZSScMdTx/types.js", "ssg: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": "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",
  "names": ["supportedLanguages", "getFileExtensions", "language", "useBorder", "props", "collapseEqualBorders", "style", "borderWidth", "borderColor", "borderStyle", "isMixedBorderWidth", "borderWidthBottom", "borderWidthLeft", "borderWidthRight", "borderWidthTop", "borderTop", "borderBottom", "borderLeft", "borderRight", "groupsRegex", "capitalizeFirstLetter", "value", "titleCase", "useRadius", "borderRadius", "isMixedBorderRadius", "topLeftRadius", "topRightRadius", "bottomRightRadius", "bottomLeftRadius", "se", "usePadding", "padding", "paddingBottom", "paddingLeft", "paddingPerSide", "paddingRight", "paddingTop", "useIsOnCanvas", "onCanvas", "ye", "RenderTarget", "isObject", "isDarkColor", "color", "r", "g", "b", "rgbValues"]
}
