{"ast":null,"code":"import omitBy from 'lodash.omitby';\nimport isNil from 'lodash.isnil';\nimport pick from 'lodash.pick';\nimport omit from 'lodash.omit';\nexport var stylingProps = {\n  margin: ['margin', 'm', 'marginTop', 'mt', 'marginRight', 'mr', 'marginBottom', 'mb', 'marginLeft', 'ml', 'marginX', 'mx', 'marginY', 'my'],\n  padding: ['padding', 'p', 'paddingTop', 'pt', 'paddingRight', 'pr', 'paddingBottom', 'pb', 'paddingLeft', 'pl', 'paddingX', 'px', 'paddingY', 'py'],\n  border: ['border', 'borderWidth', 'borderStyle', 'borderColor', 'borderRadius', 'borderTop', 'borderTopWidth', 'borderTopStyle', 'borderTopColor', 'borderTopLeftRadius', 'borderTopRightRadius', 'borderRight', 'borderRightWidth', 'borderRightStyle', 'borderRightColor', 'borderBottom', 'borderBottomWidth', 'borderBottomStyle', 'borderBottomColor', 'borderBottomLeftRadius', 'borderBottomRightRadius', 'borderLeft', 'borderLeftWidth', 'borderLeftStyle', 'borderLeftColor', 'borderX', 'borderY', 'rounded'],\n  layout: ['width', 'w', 'height', 'h', 'display', 'minWidth', 'minW', 'minH', 'minHeight', 'maxWidth', 'maxW', 'maxHeight', 'maxH', 'size', 'verticalAlign', 'overflow', 'overflowX', 'overflowY'],\n  flexbox: ['alignItems', 'alignContent', 'justifyItems', 'justifyContent', 'flexWrap', 'flexDirection', 'flex', 'flexGrow', 'flexShrink', 'flexBasis', 'justifySelf', 'alignSelf', 'order'],\n  position: ['position', 'zIndex', 'top', 'right', 'bottom', 'left'],\n  outline: ['outlineWidth', 'outlineColor', 'outlineStyle'],\n  background: ['bg', 'backgroundColor', 'bgColor']\n};\nexport function omitUndefined(obj) {\n  return omitBy(obj, isNil);\n}\nexport function getRandomString(length) {\n  var result = '';\n  var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n  var charactersLength = characters.length;\n  for (var i = 0; i < length; i++) {\n    result += characters.charAt(Math.floor(Math.random() * charactersLength));\n  }\n  return result;\n}\nfunction orderedPick(obj, values) {\n  var ret = {};\n  Object.keys(obj).forEach(function (key) {\n    if (values.includes(key)) {\n      ret[key] = obj[key];\n    }\n  });\n  return ret;\n}\nexport function orderedExtractInObject(parent, values) {\n  return [omitUndefined(orderedPick(parent, values)), omitUndefined(omit(parent, values))];\n}\nexport function extractInObject(parent, values) {\n  return [omitUndefined(pick(parent, values)), omitUndefined(omit(parent, values))];\n}\nexport function getColorFormColorScheme(props) {\n  var theme = props.theme,\n    colorScheme = props.colorScheme,\n    isDisabled = props.isDisabled;\n  var simpleColorScheme = colorScheme.split('.')[0];\n  if (isDisabled) return 'gray.300';else if (simpleColorScheme in theme.colors) {\n    return theme.colors[simpleColorScheme][0] === '#' ? simpleColorScheme : theme.colors[simpleColorScheme][400] || theme.colors[simpleColorScheme][200];\n  } else return 'primary.200';\n}\nexport function getColorScheme(props, customColorScheme) {\n  var theme = props.theme,\n    colorScheme = props.colorScheme;\n  colorScheme = customColorScheme || colorScheme;\n  if (!(colorScheme in theme.colors)) return 'primary';else {\n    if (typeof theme.colors[colorScheme] === 'object') return colorScheme;\n  }\n}\nexport var inValidBreakpointProps = ['style', 'children', 'shadowOffset'];\nexport function hasValidBreakpointFormat(breaks, themeBreakpoints, property) {\n  if (property && inValidBreakpointProps.indexOf(property) !== -1) {\n    return false;\n  } else if (Array.isArray(breaks)) {\n    return breaks.length ? true : false;\n  } else if (typeof breaks === 'object' && breaks !== null) {\n    var keys = Object.keys(breaks);\n    var themeBreakPointKeys = Object.keys(themeBreakpoints);\n    for (var i = 0; i < keys.length; i++) {\n      if (themeBreakPointKeys.indexOf(keys[i]) === -1) {\n        return false;\n      }\n    }\n    return true;\n  } else {\n    return false;\n  }\n}\nexport function findLastValidBreakpoint(values, themeBreakpoints, currentBreakpoint) {\n  var _valArray$currentBrea;\n  var valArray = Array.isArray(values) ? values : Object.keys(themeBreakpoints).map(function (bPoint) {\n    return values[bPoint];\n  });\n  return (_valArray$currentBrea = valArray[currentBreakpoint]) !== null && _valArray$currentBrea !== void 0 ? _valArray$currentBrea : valArray.slice(0, currentBreakpoint + 1).filter(function (v) {\n    return !isNil(v);\n  }).pop();\n}\nexport function getClosestBreakpoint(values, point) {\n  var dimValues = Object.values(values);\n  var index = -1;\n  var breakpointsObj = {};\n  for (var i = 0; i < dimValues.length; i++) {\n    breakpointsObj[dimValues[i]] = i;\n  }\n  var breakpoints = Object.keys(breakpointsObj);\n  for (var _i = 0; _i < breakpoints.length; _i++) {\n    if (parseInt(breakpoints[_i]) === point) {\n      index = breakpointsObj[breakpoints[_i]];\n      break;\n    } else if (parseInt(breakpoints[_i]) > point && _i !== 0) {\n      index = breakpointsObj[breakpoints[_i - 1]];\n      break;\n    } else if (parseInt(breakpoints[_i]) < point && _i === dimValues.length - 1) {\n      index = breakpointsObj[breakpoints[_i]];\n      break;\n    }\n  }\n  return index;\n}\nexport var baseFontSize = 16;\nexport var convertAbsoluteToRem = function convertAbsoluteToRem(px) {\n  return \"\".concat(px / baseFontSize, \"rem\");\n};\nexport var convertRemToAbsolute = function convertRemToAbsolute(rem) {\n  return rem * baseFontSize;\n};\nexport var convertToDp = function convertToDp(value) {\n  var numberRegex = /^\\d+$/;\n  if (typeof value === 'number') {\n    return value;\n  } else {\n    var isAbsolute = numberRegex.test(value);\n    var isPx = !isAbsolute && value.endsWith('px');\n    var isRem = !isAbsolute && value.endsWith('rem');\n    var isEm = !isAbsolute && value.endsWith('em');\n    var finalDpValue = 0;\n    if (isAbsolute || isPx) {\n      finalDpValue = parseFloat(value);\n    } else if (isEm) {\n      finalDpValue = convertRemToAbsolute(parseFloat(value));\n    } else if (isRem) {\n      finalDpValue = convertRemToAbsolute(parseFloat(value));\n    }\n    return finalDpValue;\n  }\n};\nexport function isResponsiveAnyProp(props, theme) {\n  if (props) {\n    var keys = Object.keys(props);\n    for (var i = 0; i < keys.length; i++) {\n      if (hasValidBreakpointFormat(props[keys[i]], theme.breakpoints, keys[i])) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\nexport function isLiteral(value) {\n  if (typeof value === 'string' || typeof value === 'number') {\n    return true;\n  }\n  return false;\n}","map":{"version":3,"sources":["utils.ts"],"names":["omitBy","isNil","pick","omit","stylingProps","margin","padding","border","layout","flexbox","position","outline","background","omitUndefined","obj","getRandomString","length","result","characters","charactersLength","i","charAt","Math","floor","random","orderedPick","values","ret","Object","keys","forEach","key","includes","orderedExtractInObject","parent","extractInObject","getColorFormColorScheme","props","theme","colorScheme","isDisabled","simpleColorScheme","split","colors","getColorScheme","customColorScheme","inValidBreakpointProps","hasValidBreakpointFormat","breaks","themeBreakpoints","property","indexOf","Array","isArray","themeBreakPointKeys","findLastValidBreakpoint","currentBreakpoint","valArray","map","bPoint","slice","filter","v","pop","getClosestBreakpoint","point","dimValues","index","breakpointsObj","breakpoints","parseInt","baseFontSize","convertAbsoluteToRem","px","convertRemToAbsolute","rem","convertToDp","value","numberRegex","isAbsolute","test","isPx","endsWith","isRem","isEm","finalDpValue","parseFloat","isResponsiveAnyProp","isLiteral"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,eAAnB;AACA,OAAOC,KAAP,MAAkB,cAAlB;AACA,OAAOC,IAAP,MAAiB,aAAjB;AACA,OAAOC,IAAP,MAAiB,aAAjB;AACA,OAAO,IAAMC,YAAY,GAAG;EAC1BC,MAAM,EAAE,CACN,QADM,EAEN,GAFM,EAGN,WAHM,EAIN,IAJM,EAKN,aALM,EAMN,IANM,EAON,cAPM,EAQN,IARM,EASN,YATM,EAUN,IAVM,EAWN,SAXM,EAYN,IAZM,EAaN,SAbM,EAcN,IAdM,CADkB;EAiB1BC,OAAO,EAAE,CACP,SADO,EAEP,GAFO,EAGP,YAHO,EAIP,IAJO,EAKP,cALO,EAMP,IANO,EAOP,eAPO,EAQP,IARO,EASP,aATO,EAUP,IAVO,EAWP,UAXO,EAYP,IAZO,EAaP,UAbO,EAcP,IAdO,CAjBiB;EAiC1BC,MAAM,EAAE,CACN,QADM,EAEN,aAFM,EAGN,aAHM,EAIN,aAJM,EAKN,cALM,EAMN,WANM,EAON,gBAPM,EAQN,gBARM,EASN,gBATM,EAUN,qBAVM,EAWN,sBAXM,EAYN,aAZM,EAaN,kBAbM,EAcN,kBAdM,EAeN,kBAfM,EAgBN,cAhBM,EAiBN,mBAjBM,EAkBN,mBAlBM,EAmBN,mBAnBM,EAoBN,wBApBM,EAqBN,yBArBM,EAsBN,YAtBM,EAuBN,iBAvBM,EAwBN,iBAxBM,EAyBN,iBAzBM,EA0BN,SA1BM,EA2BN,SA3BM,EA4BN,SA5BM,CAjCkB;EA+D1BC,MAAM,EAAE,CACN,OADM,EAEN,GAFM,EAGN,QAHM,EAIN,GAJM,EAKN,SALM,EAMN,UANM,EAON,MAPM,EAQN,MARM,EASN,WATM,EAUN,UAVM,EAWN,MAXM,EAYN,WAZM,EAaN,MAbM,EAcN,MAdM,EAeN,eAfM,EAgBN,UAhBM,EAiBN,WAjBM,EAkBN,WAlBM,CA/DkB;EAmF1BC,OAAO,EAAE,CACP,YADO,EAEP,cAFO,EAGP,cAHO,EAIP,gBAJO,EAKP,UALO,EAMP,eANO,EAOP,MAPO,EAQP,UARO,EASP,YATO,EAUP,WAVO,EAWP,aAXO,EAYP,WAZO,EAaP,OAbO,CAnFiB;EAkG1BC,QAAQ,EAAE,CAAC,UAAD,EAAa,QAAb,EAAuB,KAAvB,EAA8B,OAA9B,EAAuC,QAAvC,EAAiD,MAAjD,CAlGgB;EAmG1BC,OAAO,EAAE,CAAC,cAAD,EAAiB,cAAjB,EAAiC,cAAjC,CAnGiB;EAoG1BC,UAAU,EAAE,CAAC,IAAD,EAAO,iBAAP,EAA0B,SAA1B;AApGc,CAArB;AAuGP,OAAO,SAASC,aAAT,CAAuBC,GAAvB,EAAiC;EACtC,OAAOd,MAAM,CAACc,GAAD,EAAMb,KAAN,CAAb;AACD;AACD,OAAO,SAASc,eAAT,CAAyBC,MAAzB,EAAyC;EAC9C,IAAIC,MAAM,GAAG,EAAb;EACA,IAAIC,UAAU,GACZ,gEADF;EAEA,IAAIC,gBAAgB,GAAGD,UAAU,CAACF,MAAlC;EACA,KAAK,IAAII,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,MAApB,EAA4BI,CAAC,EAA7B,EAAiC;IAC/BH,MAAM,IAAIC,UAAU,CAACG,MAAXH,CAAkBI,IAAI,CAACC,KAALD,CAAWA,IAAI,CAACE,MAALF,CAAAA,CAAAA,GAAgBH,gBAA3BG,CAAlBJ,CAAVD;EACD;EACD,OAAOA,MAAP;AACD;AAED,SAASQ,WAAT,CAAqBX,GAArB,EAA+BY,MAA/B,EAA4C;EAC1C,IAAMC,GAAQ,GAAG,CAAA,CAAjB;EACAC,MAAM,CAACC,IAAPD,CAAYd,GAAZc,CAAAA,CAAiBE,OAAjBF,CAA0BG,UAAAA,GAAD,EAAiB;IACxC,IAAIL,MAAM,CAACM,QAAPN,CAAgBK,GAAhBL,CAAJ,EAA0B;MACxBC,GAAG,CAACI,GAAD,CAAHJ,GAAWb,GAAG,CAACiB,GAAD,CAAdJ;IACD;EACF,CAJDC,CAAAA;EAKA,OAAOD,GAAP;AACD;AACD,OAAO,SAASM,sBAAT,CAAgCC,MAAhC,EAA6CR,MAA7C,EAAoE;EACzE,OAAO,CACLb,aAAa,CAACY,WAAW,CAACS,MAAD,EAASR,MAAT,CAAZ,CADR,EAELb,aAAa,CAACV,IAAI,CAAC+B,MAAD,EAASR,MAAT,CAAL,CAFR,CAAP;AAID;AAeD,OAAO,SAASS,eAAT,CAAyBD,MAAzB,EAAsCR,MAAtC,EAA6D;EAClE,OAAO,CACLb,aAAa,CAACX,IAAI,CAACgC,MAAD,EAASR,MAAT,CAAL,CADR,EAELb,aAAa,CAACV,IAAI,CAAC+B,MAAD,EAASR,MAAT,CAAL,CAFR,CAAP;AAID;AACD,OAAO,SAASU,uBAAT,CAAiCC,KAAjC,EAA6D;EAClE,IAAQC,KAAF,GAAqCD,KAA3C,CAAQC,KAAF;IAASC,WAAT,GAAqCF,KAA3C,CAAeE,WAAT;IAAsBC,UAAAA,GAAeH,KAA3C,CAA4BG,UAAAA;EAC5B,IAAMC,iBAAiB,GAAGF,WAAW,CAACG,KAAZH,CAAkB,GAAlBA,CAAAA,CAAuB,CAAvBA,CAA1B;EACA,IAAIC,UAAJ,EAAgB,OAAO,UAAP,CAAhB,KACK,IAAIC,iBAAiB,IAAIH,KAAK,CAACK,MAA/B,EAAuC;IAC1C,OAAOL,KAAK,CAACK,MAANL,CAAaG,iBAAbH,CAAAA,CAAgC,CAAhCA,CAAAA,KAAuC,GAAvCA,GACHG,iBADGH,GAEHA,KAAK,CAACK,MAANL,CAAaG,iBAAbH,CAAAA,CAAgC,GAAhCA,CAAAA,IACEA,KAAK,CAACK,MAANL,CAAaG,iBAAbH,CAAAA,CAAgC,GAAhCA,CAHN;EAID,CALI,MAKE,OAAO,aAAP;AACR;AAGD,OAAO,SAASM,cAAT,CACLP,KADK,EAELQ,iBAFK,EAGL;EACA,IAAMP,KAAF,GAAyBD,KAA7B,CAAMC,KAAF;IAASC,WAAAA,GAAgBF,KAA7B,CAAaE,WAAAA;EACbA,WAAW,GAAGM,iBAAiB,IAAIN,WAAnCA;EACA,IAAI,EAAEA,WAAW,IAAID,KAAK,CAACK,MAAvB,CAAJ,EAAoC,OAAO,SAAP,CAApC,KACK;IACH,IAAI,OAAOL,KAAK,CAACK,MAANL,CAAaC,WAAbD,CAAP,KAAqC,QAAzC,EAAmD,OAAOC,WAAP;EACpD;AACF;AACD,OAAO,IAAMO,sBAAsB,GAAG,CAAC,OAAD,EAAU,UAAV,EAAsB,cAAtB,CAA/B;AACP,OAAO,SAASC,wBAAT,CACLC,MADK,EAELC,gBAFK,EAGLC,QAHK,EAIL;EACA,IAAIA,QAAQ,IAAIJ,sBAAsB,CAACK,OAAvBL,CAA+BI,QAA/BJ,CAAAA,KAA6C,CAAC,CAA9D,EAAiE;IAC/D,OAAO,KAAP;EACD,CAFD,MAEO,IAAIM,KAAK,CAACC,OAAND,CAAcJ,MAAdI,CAAJ,EAA2B;IAChC,OAAOJ,MAAM,CAAChC,MAAPgC,GAAgB,IAAhBA,GAAuB,KAA9B;EACD,CAFM,MAEA,IAAI,OAAOA,MAAP,KAAkB,QAAlB,IAA8BA,MAAM,KAAK,IAA7C,EAAmD;IACxD,IAAMnB,IAAI,GAAGD,MAAM,CAACC,IAAPD,CAAYoB,MAAZpB,CAAb;IACA,IAAM0B,mBAAmB,GAAG1B,MAAM,CAACC,IAAPD,CAAYqB,gBAAZrB,CAA5B;IACA,KAAK,IAAIR,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGS,IAAI,CAACb,MAAzB,EAAiCI,CAAC,EAAlC,EAAsC;MACpC,IAAIkC,mBAAmB,CAACH,OAApBG,CAA4BzB,IAAI,CAACT,CAAD,CAAhCkC,CAAAA,KAAyC,CAAC,CAA9C,EAAiD;QAC/C,OAAO,KAAP;MACD;IACF;IACD,OAAO,IAAP;EACD,CATM,MASA;IACL,OAAO,KAAP;EACD;AACF;AACD,OAAO,SAASC,uBAAT,CACL7B,MADK,EAELuB,gBAFK,EAGLO,iBAHK,EAIL;EAAA,IAAA,qBAAA;EACA,IAAMC,QAAQ,GAAGL,KAAK,CAACC,OAAND,CAAc1B,MAAd0B,CAAAA,GACb1B,MADa0B,GAEbxB,MAAM,CAACC,IAAPD,CAAYqB,gBAAZrB,CAAAA,CAA8B8B,GAA9B9B,CAAmC+B,UAAAA,MAAD;IAAA,OAAoBjC,MAAM,CAACiC,MAAD,CAA5D/B;EAAAA,EAFJ;EAGA,OAAA,CAAA,qBAAA,GACE6B,QAAQ,CAACD,iBAAD,CADV,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,qBAAA,GAEEC,QAAQ,CACLG,KADHH,CACS,CADTA,EACYD,iBAAiB,GAAG,CADhCC,CAAAA,CAEGI,MAFHJ,CAEWK,UAAAA,CAAD;IAAA,OAAY,CAAC7D,KAAK,CAAC6D,CAAD,CAF5BL;EAAAA,EAAAA,CAGGM,GAHHN,CAAAA,CAFF;AAOD;AACD,OAAO,SAASO,oBAAT,CACLtC,MADK,EAELuC,KAFK,EAGL;EACA,IAAMC,SAAS,GAAGtC,MAAM,CAACF,MAAPE,CAAcF,MAAdE,CAAlB;EACA,IAAIuC,KAAK,GAAG,CAAC,CAAb;EACA,IAAIC,cAAmB,GAAG,CAAA,CAA1B;EACA,KAAK,IAAIhD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8C,SAAS,CAAClD,MAA9B,EAAsCI,CAAC,EAAvC,EAA2C;IACzCgD,cAAc,CAACF,SAAS,CAAC9C,CAAD,CAAV,CAAdgD,GAA+BhD,CAA/BgD;EACD;EACD,IAAMC,WAAW,GAAGzC,MAAM,CAACC,IAAPD,CAAYwC,cAAZxC,CAApB;EACA,KAAK,IAAIR,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGiD,WAAW,CAACrD,MAAhC,EAAwCI,EAAC,EAAzC,EAA6C;IAC3C,IAAIkD,QAAQ,CAACD,WAAW,CAACjD,EAAD,CAAZ,CAARkD,KAA6BL,KAAjC,EAAwC;MACtCE,KAAK,GAAGC,cAAc,CAACC,WAAW,CAACjD,EAAD,CAAZ,CAAtB+C;MACA;IACD,CAHD,MAGO,IAAIG,QAAQ,CAACD,WAAW,CAACjD,EAAD,CAAZ,CAARkD,GAA2BL,KAA3BK,IAAoClD,EAAC,KAAK,CAA9C,EAAiD;MACtD+C,KAAK,GAAGC,cAAc,CAACC,WAAW,CAACjD,EAAC,GAAG,CAAL,CAAZ,CAAtB+C;MACA;IACD,CAHM,MAKF,IAAIG,QAAQ,CAACD,WAAW,CAACjD,EAAD,CAAZ,CAARkD,GAA2BL,KAA3BK,IAAoClD,EAAC,KAAK8C,SAAS,CAAClD,MAAVkD,GAAmB,CAAjE,EAAoE;MACvEC,KAAK,GAAGC,cAAc,CAACC,WAAW,CAACjD,EAAD,CAAZ,CAAtB+C;MACA;IACD;EACF;EACD,OAAOA,KAAP;AACD;AAED,OAAO,IAAMI,YAAY,GAAG,EAArB;AAEP,OAAO,IAAMC,oBAAoB,GAAIC,SAAxBD,oBAAoB,CAAIC,EAAD,EAAgB;EAClD,OAAA,EAAA,CAAA,MAAA,CAAUA,EAAE,GAAGF,YAAf,EAAA,KAAA,CAAA;AACD,CAFM;AAIP,OAAO,IAAMG,oBAAoB,GAAIC,SAAxBD,oBAAoB,CAAIC,GAAD,EAAiB;EACnD,OAAOA,GAAG,GAAGJ,YAAb;AACD,CAFM;AAIP,OAAO,IAAMK,WAAW,GAAIC,SAAfD,WAAW,CAAIC,KAAD,EAAoC;EAC7D,IAAMC,WAAW,GAAG,OAApB;EAEA,IAAI,OAAOD,KAAP,KAAiB,QAArB,EAA+B;IAC7B,OAAOA,KAAP;EACD,CAFD,MAEO;IACL,IAAME,UAAU,GAAGD,WAAW,CAACE,IAAZF,CAAiBD,KAAjBC,CAAnB;IACA,IAAMG,IAAI,GAAG,CAACF,UAAD,IAAeF,KAAK,CAACK,QAANL,CAAe,IAAfA,CAA5B;IACA,IAAMM,KAAK,GAAG,CAACJ,UAAD,IAAeF,KAAK,CAACK,QAANL,CAAe,KAAfA,CAA7B;IACA,IAAMO,IAAI,GAAG,CAACL,UAAD,IAAeF,KAAK,CAACK,QAANL,CAAe,IAAfA,CAA5B;IAEA,IAAIQ,YAAY,GAAG,CAAnB;IAEA,IAAIN,UAAU,IAAIE,IAAlB,EAAwB;MACtBI,YAAY,GAAGC,UAAU,CAACT,KAAD,CAAzBQ;IACD,CAFD,MAEO,IAAID,IAAJ,EAAU;MACfC,YAAY,GAAGX,oBAAoB,CAACY,UAAU,CAACT,KAAD,CAAX,CAAnCQ;IACD,CAFM,MAEA,IAAIF,KAAJ,EAAW;MAChBE,YAAY,GAAGX,oBAAoB,CAACY,UAAU,CAACT,KAAD,CAAX,CAAnCQ;IACD;IAED,OAAOA,YAAP;EACD;AACF,CAvBM;AAiCP,OAAO,SAASE,mBAAT,CAA6BlD,KAA7B,EAAyDC,KAAzD,EAAqE;EAC1E,IAAID,KAAJ,EAAW;IACT,IAAMR,IAAI,GAAGD,MAAM,CAACC,IAAPD,CAAYS,KAAZT,CAAb;IACA,KAAK,IAAIR,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGS,IAAI,CAACb,MAAzB,EAAiCI,CAAC,EAAlC,EAAsC;MACpC,IACE2B,wBAAwB,CAACV,KAAK,CAACR,IAAI,CAACT,CAAD,CAAL,CAAN,EAAiBkB,KAAK,CAAC+B,WAAvB,EAAoCxC,IAAI,CAACT,CAAD,CAAxC,CAD1B,EAEE;QACA,OAAO,IAAP;MACD;IACF;EACF;EAED,OAAO,KAAP;AACD;AAED,OAAO,SAASoE,SAAT,CAAmBX,KAAnB,EAA+B;EACpC,IAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;IAC1D,OAAO,IAAP;EACD;EACD,OAAO,KAAP;AACD","sourcesContent":["import omitBy from 'lodash.omitby';\nimport isNil from 'lodash.isnil';\nimport pick from 'lodash.pick';\nimport omit from 'lodash.omit';\nexport const stylingProps = {\n  margin: [\n    'margin',\n    'm',\n    'marginTop',\n    'mt',\n    'marginRight',\n    'mr',\n    'marginBottom',\n    'mb',\n    'marginLeft',\n    'ml',\n    'marginX',\n    'mx',\n    'marginY',\n    'my',\n  ],\n  padding: [\n    'padding',\n    'p',\n    'paddingTop',\n    'pt',\n    'paddingRight',\n    'pr',\n    'paddingBottom',\n    'pb',\n    'paddingLeft',\n    'pl',\n    'paddingX',\n    'px',\n    'paddingY',\n    'py',\n  ],\n  border: [\n    'border',\n    'borderWidth',\n    'borderStyle',\n    'borderColor',\n    'borderRadius',\n    'borderTop',\n    'borderTopWidth',\n    'borderTopStyle',\n    'borderTopColor',\n    'borderTopLeftRadius',\n    'borderTopRightRadius',\n    'borderRight',\n    'borderRightWidth',\n    'borderRightStyle',\n    'borderRightColor',\n    'borderBottom',\n    'borderBottomWidth',\n    'borderBottomStyle',\n    'borderBottomColor',\n    'borderBottomLeftRadius',\n    'borderBottomRightRadius',\n    'borderLeft',\n    'borderLeftWidth',\n    'borderLeftStyle',\n    'borderLeftColor',\n    'borderX',\n    'borderY',\n    'rounded',\n  ],\n  layout: [\n    'width',\n    'w',\n    'height',\n    'h',\n    'display',\n    'minWidth',\n    'minW',\n    'minH',\n    'minHeight',\n    'maxWidth',\n    'maxW',\n    'maxHeight',\n    'maxH',\n    'size',\n    'verticalAlign',\n    'overflow',\n    'overflowX',\n    'overflowY',\n  ],\n  flexbox: [\n    'alignItems',\n    'alignContent',\n    'justifyItems',\n    'justifyContent',\n    'flexWrap',\n    'flexDirection',\n    'flex',\n    'flexGrow',\n    'flexShrink',\n    'flexBasis',\n    'justifySelf',\n    'alignSelf',\n    'order',\n  ],\n  position: ['position', 'zIndex', 'top', 'right', 'bottom', 'left'],\n  outline: ['outlineWidth', 'outlineColor', 'outlineStyle'],\n  background: ['bg', 'backgroundColor', 'bgColor'],\n};\nexport type Dict = Record<string, any>;\nexport function omitUndefined(obj: any) {\n  return omitBy(obj, isNil);\n}\nexport function getRandomString(length: number) {\n  var result = '';\n  var characters =\n    'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n  var charactersLength = characters.length;\n  for (var i = 0; i < length; i++) {\n    result += characters.charAt(Math.floor(Math.random() * charactersLength));\n  }\n  return result;\n}\n// Inefficient way for pick, but retains order of props.\nfunction orderedPick(obj: any, values: any) {\n  const ret: any = {};\n  Object.keys(obj).forEach((key: string) => {\n    if (values.includes(key)) {\n      ret[key] = obj[key];\n    }\n  });\n  return ret;\n}\nexport function orderedExtractInObject(parent: any, values: Array<string>) {\n  return [\n    omitUndefined(orderedPick(parent, values)),\n    omitUndefined(omit(parent, values)),\n  ];\n}\n\n/**\n *\n * @param parent The object from which data needs to extracted\n * @param values Keys which needs to be extracted\n * @returns [Stylesheet with extractedStyles, Stylesheet with remainingStyles]\n */\n\n/**\n *\n * @param parent The object from which data needs to extracted\n * @param values Keys which needs to be extracted\n * @returns [extractedProps, remainingProps]\n */\nexport function extractInObject(parent: any, values: Array<string>) {\n  return [\n    omitUndefined(pick(parent, values)),\n    omitUndefined(omit(parent, values)),\n  ];\n}\nexport function getColorFormColorScheme(props: Record<string, any>) {\n  const { theme, colorScheme, isDisabled } = props;\n  const simpleColorScheme = colorScheme.split('.')[0];\n  if (isDisabled) return 'gray.300';\n  else if (simpleColorScheme in theme.colors) {\n    return theme.colors[simpleColorScheme][0] === '#'\n      ? simpleColorScheme\n      : theme.colors[simpleColorScheme][400] ||\n          theme.colors[simpleColorScheme][200];\n  } else return 'primary.200';\n}\n\n// TODO: This function can be removed.\nexport function getColorScheme(\n  props: Record<string, any>,\n  customColorScheme?: string\n) {\n  let { theme, colorScheme } = props;\n  colorScheme = customColorScheme || colorScheme;\n  if (!(colorScheme in theme.colors)) return 'primary';\n  else {\n    if (typeof theme.colors[colorScheme] === 'object') return colorScheme;\n  }\n}\nexport const inValidBreakpointProps = ['style', 'children', 'shadowOffset'];\nexport function hasValidBreakpointFormat(\n  breaks: any,\n  themeBreakpoints?: any,\n  property?: string\n) {\n  if (property && inValidBreakpointProps.indexOf(property) !== -1) {\n    return false;\n  } else if (Array.isArray(breaks)) {\n    return breaks.length ? true : false;\n  } else if (typeof breaks === 'object' && breaks !== null) {\n    const keys = Object.keys(breaks);\n    const themeBreakPointKeys = Object.keys(themeBreakpoints);\n    for (let i = 0; i < keys.length; i++) {\n      if (themeBreakPointKeys.indexOf(keys[i]) === -1) {\n        return false;\n      }\n    }\n    return true;\n  } else {\n    return false;\n  }\n}\nexport function findLastValidBreakpoint(\n  values: any,\n  themeBreakpoints: any,\n  currentBreakpoint: number\n) {\n  const valArray = Array.isArray(values)\n    ? values\n    : Object.keys(themeBreakpoints).map((bPoint: string) => values[bPoint]);\n  return (\n    valArray[currentBreakpoint] ??\n    valArray\n      .slice(0, currentBreakpoint + 1)\n      .filter((v: any) => !isNil(v))\n      .pop()\n  );\n}\nexport function getClosestBreakpoint(\n  values: Record<string, any>,\n  point: number\n) {\n  const dimValues = Object.values(values);\n  let index = -1;\n  let breakpointsObj: any = {};\n  for (let i = 0; i < dimValues.length; i++) {\n    breakpointsObj[dimValues[i]] = i;\n  }\n  const breakpoints = Object.keys(breakpointsObj);\n  for (let i = 0; i < breakpoints.length; i++) {\n    if (parseInt(breakpoints[i]) === point) {\n      index = breakpointsObj[breakpoints[i]];\n      break;\n    } else if (parseInt(breakpoints[i]) > point && i !== 0) {\n      index = breakpointsObj[breakpoints[i - 1]];\n      break;\n    }\n    // If windowWidth is greater than last available breakpoint clamp it to last index\n    else if (parseInt(breakpoints[i]) < point && i === dimValues.length - 1) {\n      index = breakpointsObj[breakpoints[i]];\n      break;\n    }\n  }\n  return index;\n}\n\nexport const baseFontSize = 16;\n\nexport const convertAbsoluteToRem = (px: number) => {\n  return `${px / baseFontSize}rem`;\n};\n\nexport const convertRemToAbsolute = (rem: number) => {\n  return rem * baseFontSize;\n};\n\nexport const convertToDp = (value: number | string): number => {\n  const numberRegex = /^\\d+$/;\n\n  if (typeof value === 'number') {\n    return value;\n  } else {\n    const isAbsolute = numberRegex.test(value);\n    const isPx = !isAbsolute && value.endsWith('px');\n    const isRem = !isAbsolute && value.endsWith('rem');\n    const isEm = !isAbsolute && value.endsWith('em');\n\n    let finalDpValue = 0;\n\n    if (isAbsolute || isPx) {\n      finalDpValue = parseFloat(value);\n    } else if (isEm) {\n      finalDpValue = convertRemToAbsolute(parseFloat(value));\n    } else if (isRem) {\n      finalDpValue = convertRemToAbsolute(parseFloat(value));\n    }\n\n    return finalDpValue;\n  }\n};\n\n/**\n *\n * @param theme\n * @description\n  - Converts space/sizes/lineHeights/letterSpacings/fontSizes to `rem` on web if the token value specified is an absolute number.\n  - Converts space/sizes/lineHeights/letterSpacings/fontSizes to absolute number on native if the token value specified is in `px` or `rem`\n*/\n\nexport function isResponsiveAnyProp(props: Record<string, any>, theme: any) {\n  if (props) {\n    const keys = Object.keys(props);\n    for (let i = 0; i < keys.length; i++) {\n      if (\n        hasValidBreakpointFormat(props[keys[i]], theme.breakpoints, keys[i])\n      ) {\n        return true;\n      }\n    }\n  }\n\n  return false;\n}\n\nexport function isLiteral(value: any) {\n  if (typeof value === 'string' || typeof value === 'number') {\n    return true;\n  }\n  return false;\n}\n"]},"metadata":{},"sourceType":"module"}