{"version":3,"sources":["../src/input/index.native.tsx"],"names":["spacing","forwardRef","Input","useTheme","useState","radius","jsxs","View","jsx","TextInput"],"mappings":";;;;;;;;;AAUA,IAAM,OAAA,GAA4E;AAAA,EAChF,EAAA,EAAI,EAAE,CAAA,EAAG,EAAA,EAAI,UAAU,EAAA,EAAI,IAAA,EAAMA,YAAA,CAAQ,CAAC,CAAA,EAAE;AAAA,EAC5C,EAAA,EAAI,EAAE,CAAA,EAAG,EAAA,EAAI,UAAU,EAAA,EAAI,IAAA,EAAMA,YAAA,CAAQ,CAAC,CAAA,EAAE;AAAA,EAC5C,EAAA,EAAI,EAAE,CAAA,EAAG,EAAA,EAAI,UAAU,EAAA,EAAI,IAAA,EAAMA,YAAA,CAAQ,CAAC,CAAA;AAC5C,CAAA;AAYO,IAAM,QAAQC,gBAAA,CAAkC,SAASC,MAAAA,CAC9D,EAAE,OAAO,QAAA,EAAU,IAAA,GAAO,IAAA,EAAM,OAAA,EAAS,SAAS,QAAA,EAAU,KAAA,EAAO,cAAc,GAAG,IAAA,IACpF,GAAA,EACA;AACA,EAAA,MAAM,EAAE,MAAA,EAAO,GAAIC,eAAA,EAAS;AAC5B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,cAAA,CAAiB,gBAAgB,EAAE,CAAA;AACnE,EAAA,MAAM,UAAU,KAAA,IAAS,QAAA;AACzB,EAAA,MAAM,IAAA,GAAO,QAAQ,IAAI,CAAA;AAEzB,EAAA,MAAM,IAAA,GAAkB;AAAA,IACtB,aAAA,EAAe,KAAA;AAAA,IACf,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAKJ,aAAQ,CAAC,CAAA;AAAA,IACd,QAAQ,IAAA,CAAK,CAAA;AAAA,IACb,WAAA,EAAa,OAAA,GAAUA,YAAA,CAAQ,CAAC,IAAI,IAAA,CAAK,IAAA;AAAA,IACzC,YAAA,EAAc,QAAA,GAAWA,YAAA,CAAQ,CAAC,IAAI,IAAA,CAAK,IAAA;AAAA,IAC3C,iBAAiB,MAAA,CAAO,WAAA;AAAA,IACxB,WAAA,EAAa,CAAA;AAAA,IACb,WAAA,EAAa,OAAA,GAAU,MAAA,CAAO,WAAA,GAAc,MAAA,CAAO,MAAA;AAAA,IACnD,cAAcK,WAAA,CAAO,EAAA;AAAA,IACrB,GAAG;AAAA,GACL;AAEA,EAAA,uBACEC,eAAA,CAACC,gBAAA,EAAA,EAAK,KAAA,EAAO,IAAA,EACV,QAAA,EAAA;AAAA,IAAA,OAAA;AAAA,oBACDC,cAAA;AAAA,MAACC,qBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,KAAA,EAAO,OAAA;AAAA,QACP,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,UAAA,IAAI,KAAA,KAAU,MAAA,EAAW,WAAA,CAAY,CAAC,CAAA;AACtC,UAAA,QAAA,GAAW,CAAC,CAAA;AAAA,QACd,CAAA;AAAA,QACA,KAAA,EAAO;AAAA,UACL,IAAA,EAAM,CAAA;AAAA,UACN,QAAA,EAAU,CAAA;AAAA,UACV,MAAA,EAAQ,MAAA;AAAA,UACR,OAAO,MAAA,CAAO,IAAA;AAAA,UACd,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,OAAA,EAAS;AAAA,SACX;AAAA,QACA,sBAAsB,MAAA,CAAO,SAAA;AAAA,QAC5B,GAAG;AAAA;AAAA,KACN;AAAA,IACC;AAAA,GAAA,EACH,CAAA;AAEJ,CAAC","file":"input.native.cjs","sourcesContent":["/**\n * Input (native). Matches the web shape; uses TextInput.\n */\nimport { forwardRef, useState } from \"react\";\nimport { TextInput, View, type TextInputProps, type ViewStyle } from \"react-native\";\nimport { useTheme } from \"@plyxui/styles\";\nimport { radius, spacing } from \"@plyxui/core\";\n\nexport type InputSize = \"sm\" | \"md\" | \"lg\";\n\nconst sizeMap: Record<InputSize, { h: number; fontSize: number; padX: number }> = {\n  sm: { h: 32, fontSize: 13, padX: spacing[2] },\n  md: { h: 40, fontSize: 14, padX: spacing[3] },\n  lg: { h: 48, fontSize: 16, padX: spacing[4] },\n};\n\nexport interface InputProps extends Omit<TextInputProps, \"style\" | \"onChange\"> {\n  value?: string;\n  onChange?: (value: string) => void;\n  size?: InputSize;\n  invalid?: boolean;\n  leading?: React.ReactNode;\n  trailing?: React.ReactNode;\n  style?: ViewStyle;\n}\n\nexport const Input = forwardRef<TextInput, InputProps>(function Input(\n  { value, onChange, size = \"md\", invalid, leading, trailing, style, defaultValue, ...rest },\n  ref,\n) {\n  const { colors } = useTheme();\n  const [internal, setInternal] = useState<string>(defaultValue ?? \"\");\n  const current = value ?? internal;\n  const dims = sizeMap[size];\n\n  const wrap: ViewStyle = {\n    flexDirection: \"row\",\n    alignItems: \"center\",\n    gap: spacing[2],\n    height: dims.h,\n    paddingLeft: leading ? spacing[2] : dims.padX,\n    paddingRight: trailing ? spacing[2] : dims.padX,\n    backgroundColor: colors.surfaceFill,\n    borderWidth: 1,\n    borderColor: invalid ? colors.statusError : colors.stroke,\n    borderRadius: radius.md,\n    ...style,\n  };\n\n  return (\n    <View style={wrap}>\n      {leading}\n      <TextInput\n        ref={ref}\n        value={current}\n        onChangeText={(t) => {\n          if (value === undefined) setInternal(t);\n          onChange?.(t);\n        }}\n        style={{\n          flex: 1,\n          minWidth: 0,\n          height: \"100%\",\n          color: colors.text,\n          fontSize: dims.fontSize,\n          padding: 0,\n        }}\n        placeholderTextColor={colors.textMuted}\n        {...rest}\n      />\n      {trailing}\n    </View>\n  );\n});\n"]}