{
  "version": 3,
  "sources": ["../../../src/form/LmInput.tsx"],
  "sourcesContent": ["import { Input, InputProps, Stack, TextArea, ThemeableStackProps } from 'tamagui'\nimport { useId, useState } from 'react'\nimport { LmFormFieldContainer } from './LmFormFieldContainer'\nimport { LmFormContainerBaseTypes } from './formContainerTypes'\nimport { Eye, EyeSlash, IconProps } from 'tamagui-phosphor-icons'\nimport { Pressable } from 'react-native'\n\nexport type LmInputProps = InputProps &\n  LmFormContainerBaseTypes & {\n    containerProps?: ThemeableStackProps\n    multiline?: boolean\n    isPassword?: boolean\n    fullWidth?: boolean\n    passwordIconProps?: IconProps\n  }\n\nexport function LmInput({\n  required,\n  error,\n  helperText,\n  helperTextProps,\n  label,\n  labelProps,\n  labelInline,\n  multiline,\n  containerProps,\n  isPassword,\n  passwordIconProps,\n  fullWidth,\n  ...rest\n}: LmInputProps) {\n  const genId = useId()\n  const [show, setShow] = useState<boolean>(false)\n  const id = rest.id || genId\n  const styleProps: InputProps = {\n    ...rest,\n  }\n  if (error) {\n    styleProps.theme = 'red'\n    styleProps.borderColor = error ? '$red8' : undefined\n  }\n  if (fullWidth) {\n    styleProps.minWidth = '100%'\n  }\n\n  let secureTextEntry = !!(rest.secureTextEntry || isPassword)\n\n  return (\n    <LmFormFieldContainer\n      id={id}\n      error={error}\n      required={required}\n      labelProps={labelProps}\n      label={label}\n      fullWidth={fullWidth}\n      size={rest.size}\n      labelInline={labelInline}\n      helperText={helperText}\n      helperTextProps={helperTextProps}\n      {...containerProps}\n    >\n      {multiline ? (\n        <TextArea {...styleProps} />\n      ) : secureTextEntry ? (\n        <Stack position={'relative'} width={fullWidth ? '100%' : 'fit-content'}>\n          <Input {...styleProps} secureTextEntry={!show} autoCapitalize=\"none\" />\n          <Pressable\n            style={{\n              position: 'absolute',\n              bottom: 0,\n              top: 0,\n              marginTop: 'auto',\n              marginBottom: 'auto',\n              height: '20px',\n              right: '10px',\n            }}\n            onPress={() => {\n              setShow((state) => !state)\n            }}\n          >\n            {show ? <EyeSlash {...passwordIconProps} /> : <Eye {...passwordIconProps} />}\n          </Pressable>\n        </Stack>\n      ) : (\n        <Input {...styleProps} autoCapitalize=\"none\" />\n      )}\n    </LmFormFieldContainer>\n  )\n}\n"],
  "mappings": "AAAA,SAAS,OAAmB,OAAO,gBAAqC;AACxE,SAAS,OAAO,gBAAgB;AAChC,SAAS,4BAA4B;AAErC,SAAS,KAAK,gBAA2B;AACzC,SAAS,iBAAiB;AAWnB,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,KACG;AACL,GAAiB;AACf,QAAM,QAAQ,MAAM;AACpB,QAAM,CAAC,MAAM,OAAO,IAAI,SAAkB,KAAK;AAC/C,QAAM,KAAK,KAAK,MAAM;AACtB,QAAM,aAAyB;AAAA,IAC7B,GAAG;AAAA,EACL;AACA,MAAI,OAAO;AACT,eAAW,QAAQ;AACnB,eAAW,cAAc,QAAQ,UAAU;AAAA,EAC7C;AACA,MAAI,WAAW;AACb,eAAW,WAAW;AAAA,EACxB;AAEA,MAAI,kBAAkB,CAAC,EAAE,KAAK,mBAAmB;AAEjD,SACE,CAAC,qBACC,IAAI,IACJ,OAAO,OACP,UAAU,UACV,YAAY,YACZ,OAAO,OACP,WAAW,WACX,MAAM,KAAK,MACX,aAAa,aACb,YAAY,YACZ,iBAAiB,qBACb,iBAEH,YACC,CAAC,aAAa,YAAY,KACxB,kBACF,CAAC,MAAM,SAAU,WAAY,OAAO,YAAY,SAAS;AAAA,IACvD,CAAC,UAAU,YAAY,iBAAiB,CAAC,MAAM,eAAe,OAAO;AAAA,IACrE,CAAC,UACC,OAAO;AAAA,MACL,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,WAAW;AAAA,MACX,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,OAAO;AAAA,IACT,GACA,SAAS,MAAM;AACb,cAAQ,CAAC,UAAU,CAAC,KAAK;AAAA,IAC3B,IAEC,OAAO,CAAC,aAAa,mBAAmB,KAAK,CAAC,QAAQ,mBAAmB,GAC5E,EAfC;AAAA,EAgBH,EAlBC,SAoBD,CAAC,UAAU,YAAY,eAAe,OAAO,GAEjD,EAtCC;AAwCL;",
  "names": []
}
