{"version":3,"sources":["../src/components/elements/XText.tsx"],"names":["React","Typography","useSetRecoilState","isEqual","compareProps","prevProps","nextProps","XText","config","breakpoint","useBreakpoint","env","useXoraiaValue","xElement","useXElement","setSelectedElement","USE_SELECTED_INDEX","value","valueAtBreakPoint","getValueOnBreakpoint","devProps","e","clickHandler","text","padding","margin","color","bgColor","border","borderRadius","tag","sx","generateSide","generateBorder","generateRadius","XText_default"],"mappings":"6SAAA,UAAYA,MAAW,QACvB,OAAS,cAAAC,MAAkB,gBAM3B,OAAS,qBAAAC,MAAyB,SAQlC,OAAS,WAAAC,MAAe,SAOxB,IAAMC,EAAe,CAACC,EAAgBC,IAC7BH,EAAQE,EAAWC,CAAS,EAG/BC,EAAoC,OACxC,CAAC,CAAE,OAAAC,EAAS,CAAC,CAAoB,IAAM,CAErC,IAAMC,EAAaC,EAAc,EAE3B,CAAE,IAAAC,CAAI,EAAIC,EAAe,EAGzB,CAAE,SAAAC,CAAS,EAAIC,EAAuCN,EAAO,KAAK,EAGlEO,EAAqBb,EAAkBc,CAAkB,EAG/D,GAAI,CAACH,GAAY,OAAO,KAAKA,CAAQ,EAAE,SAAW,EAAG,OAAO,KAG5D,GAAM,CAAE,MAAAI,CAAM,EAAIJ,EAGZK,EAAoBC,EACxBF,EACAR,CACF,EAEMW,EAAW,CACf,GAAIZ,EAAO,MACX,QAAUa,GAAWC,EAAaD,EAAGN,EAAoBP,EAAO,KAAK,CACvE,EAEM,CACJ,KAAAe,EAAO,QACP,QAAAC,EACA,OAAAC,EACA,MAAAC,EACA,QAAAC,EACA,OAAAC,EACA,aAAAC,EACA,IAAAC,EAAM,WACHC,CACL,EAAIb,EAEJ,OACE,gBAACjB,EAAA,CACE,GAAIU,IAAQ,OAASS,EACtB,QAASU,EACT,GAAI,CACF,GAAGC,EACH,UAAW,aACX,QAASC,EAAa,UAAWR,CAAO,EACxC,OAAQQ,EAAa,SAAUP,CAAM,EACrC,OAAQQ,EAAeL,CAAM,EAC7B,aAAcM,EAAeL,CAAY,EACzC,MAAOH,EACP,QAASC,CACX,GAECJ,CACH,CAEJ,EACAnB,CACF,EAEO+B,EAAQ5B","sourcesContent":["import * as React from \"react\";\nimport { Typography } from \"@mui/material\";\n\nimport { useBreakpoint } from \"../../hooks/useBreakpoint\";\nimport { useXoraiaValue } from \"../../hooks/useXoraia\";\nimport { TUseXElement, useXElement } from \"../../hooks/useXElement\";\nimport { USE_SELECTED_INDEX } from \"../../hooks/useSelectedElement\";\nimport { useSetRecoilState } from \"recoil\";\nimport { getValueOnBreakpoint } from \"../../lib/getValueOnBreakpoint\";\nimport { clickHandler } from \"../../lib/clickHandler\";\nimport {\n  XTextProps,\n  IXTextProps,\n} from \"../../utils/interfaces/Elements/XText.interfaces\";\n\nimport { isEqual } from \"lodash\";\n\nimport { generateSide } from \"../../lib/generateSide\";\nimport { XElementConfig } from \"../../utils/interfaces/Elements/XElement.interfaces\";\nimport { generateBorder } from \"../../lib/generateBorder\";\nimport { generateRadius } from \"../../lib/generateRadius\";\n\nconst compareProps = (prevProps: any, nextProps: any) => {\n  return isEqual(prevProps, nextProps);\n};\n\nconst XText: React.FC<XTextProps> = React.memo(\n  ({ config = {} as XElementConfig }) => {\n    // WE TRACK THE BREAK POINTS CHANGES\n    const breakpoint = useBreakpoint();\n\n    const { env } = useXoraiaValue();\n\n    // WE ARE GETTING THE CURRENT ELEMENT FROM THE ATOM FAMILY\n    const { xElement } = useXElement<TUseXElement<IXTextProps>>(config.index);\n\n    // GARBING THE INDEX UPDATER FOR GENERAL USAGE\n    const setSelectedElement = useSetRecoilState(USE_SELECTED_INDEX);\n\n    // IF WE DONT HAVE THIS ELEMENT CONFIGS ADDED WE DON'T SHOW IT\n    if (!xElement || Object.keys(xElement).length === 0) return null;\n\n    // WE GET ALL DEVICES PROPS AS VALUE\n    const { value } = xElement;\n\n    // WE NOW USE THE CURRENT BREAKPOINT VALUE ON THIS ELEMENT\n    const valueAtBreakPoint = getValueOnBreakpoint<IXTextProps>(\n      value as any,\n      breakpoint\n    );\n\n    const devProps = {\n      id: config.index,\n      onClick: (e: any) => clickHandler(e, setSelectedElement, config.index),\n    };\n\n    const {\n      text = \"TEXTE\",\n      padding,\n      margin,\n      color,\n      bgColor,\n      border,\n      borderRadius,\n      tag = \"body1\",\n      ...sx\n    } = valueAtBreakPoint;\n\n    return (\n      <Typography\n        {...(env === \"dev\" && devProps)}\n        variant={tag}\n        sx={{\n          ...sx,\n          boxSizing: \"border-box\",\n          padding: generateSide(\"padding\", padding),\n          margin: generateSide(\"margin\", margin),\n          border: generateBorder(border),\n          borderRadius: generateRadius(borderRadius),\n          color: color,\n          bgcolor: bgColor,\n        }}\n      >\n        {text}\n      </Typography>\n    );\n  },\n  compareProps\n);\n\nexport default XText;\n"]}