{"version":3,"file":"TextField.cjs","names":["React","_interopRequireWildcard","require","_icons","_styles","_types","_styling","_common","_TooltipOverflow","_interopRequireDefault","_styledComponents","_jsxRuntime","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","TextField","forwardRef","_ref","ref","id","disabled","readOnly","onChange","value","validationMessage","type","autoComplete","placeholder","required","pattern","maxLength","state","size","margin","overflowTooltipPosition","note","className","dataTestId","rest","_objectWithoutProperties2","elementRef","useFocusVisibleRef","theme","useTheme","useImperativeHandle","current","cls","States","Invalid","jsx","Fragment","children","jsxs","InputWrapper","$readOnly","$disabled","$margin","onClick","preventDefault","InputFieldStyling","tabIndex","undefined","target","$activeErrorMessage","Valid","position","input","withArrow","maxWidth","align","ValidationMessage","SystemIcons","CheckMark","color","COLORS","generateToken","componentType","defaultVariant","TechnicalWarning","NoteMessage","icon","message","propTypes","_propTypes","string","bool","func","number","oneOf","_default","exports"],"sources":["../../src/InputFields/TextField.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport {SystemIcons} from '../icons';\r\nimport {COLORS} from '../styles';\r\nimport {Size, States, Testable} from '../types';\r\nimport {InputFieldStyling, InputWrapper, NoteMessage, ValidationMessage} from './styling';\r\nimport {useFocusVisibleRef} from '../common';\r\nimport {TextFieldNote} from './types';\r\nimport TooltipOverflow from '../Tooltips/TooltipOverflow';\r\nimport { useTheme } from 'styled-components';\r\n\r\nexport type TextFieldProps =\r\n  Testable & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'onChange' | 'value' | 'disabled' | 'id'  | 'type' | 'readOnly' | 'autoComplete' | 'pattern' | 'maxLength'>\r\n  & {\r\n  /**\r\n     * Optional. The ID of the text field.\r\n     */\r\n  id?: string;\r\n\r\n  /**\r\n    * Optional. A boolean indicating whether the text field is disabled.\r\n    */\r\n  disabled?: boolean;\r\n\r\n  /**\r\n    * Optional. A boolean indicating whether the text field is read-only.\r\n    */\r\n  readOnly?: boolean;\r\n\r\n  /**\r\n    * Optional. A function to be called when the text in the text field changes.\r\n    * It should take a string representing the new text.\r\n    */\r\n  onChange?: (text: string) => void;\r\n\r\n  /**\r\n    * Optional. The current value of the text field.\r\n    */\r\n  value?: string;\r\n\r\n  /**\r\n    * Optional. The validation message to be displayed when the text field is in an error state.\r\n    */\r\n  validationMessage?: string;\r\n\r\n  /**\r\n    * Optional. The type of the text field. Can be any valid HTML input type.\r\n    */\r\n  type?: string;\r\n\r\n  /**\r\n    * Optional. The state of the text field. Can be 'Invalid' or 'Valid'.\r\n    */\r\n  state?: States.Invalid | States.Valid;\r\n\r\n  /**\r\n    * Optional. The autocomplete attribute of the text field. Can be any valid HTML autocomplete value.\r\n    */\r\n  autoComplete?: string;\r\n\r\n  /**\r\n    * Optional. The placeholder text to be displayed in the text field when it is empty.\r\n    */\r\n  placeholder?: string;\r\n\r\n  /**\r\n    * Optional. A boolean indicating whether the text field is required.\r\n    */\r\n  required?: boolean;\r\n\r\n  /**\r\n    * Optional. The pattern attribute of the text field. Can be any valid HTML pattern value.\r\n    */\r\n  pattern?: string;\r\n\r\n  /**\r\n    * Optional. The maximum length of the text that can be entered in the text field.\r\n    */\r\n  maxLength?: number;\r\n\r\n  /**\r\n    * Optional. The position of the overflow tooltip. Can be 'top' or 'bottom'.\r\n    */\r\n  overflowTooltipPosition?: 'top' | 'bottom';\r\n\r\n  /**\r\n    * Optional. The size of the text field. Can be 'Small' or 'Medium'.\r\n    */\r\n  size?: Size.Small | Size.Medium;\r\n\r\n  /**\r\n    * Optional. The margin of the text field. Can be any valid CSS margin value.\r\n    */\r\n  margin?: string;\r\n\r\n  /**\r\n    * Optional. A note to be displayed below the text field.\r\n    */\r\n  note?: TextFieldNote;\r\n};\r\n\r\nconst TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(({\r\n                                      id,\r\n                                      disabled,\r\n                                      readOnly,\r\n                                      onChange,\r\n                                      value,\r\n                                      validationMessage,\r\n                                      type,\r\n                                      autoComplete,\r\n                                      placeholder,\r\n                                      required,\r\n                                      pattern,\r\n                                      maxLength,\r\n                                      state,\r\n                                      size,\r\n                                      margin,\r\n                                      overflowTooltipPosition,\r\n                                      note,\r\n                                      className,\r\n                                      dataTestId,\r\n                                      ...rest\r\n                                    }: TextFieldProps, ref) => {\r\n  const elementRef = useFocusVisibleRef();\r\n  const theme = useTheme();\r\n\r\n  React.useImperativeHandle(ref, () => elementRef.current, [elementRef]);\r\n\r\n  const cls = `${state || (validationMessage ? States.Invalid : '')} ${size || ''}`;\r\n\r\n  return (\r\n    <>\r\n      <InputWrapper\r\n        $readOnly={readOnly}\r\n        $disabled={disabled}\r\n        $margin={margin}\r\n        onClick={(e: any) => {\r\n          if (disabled || readOnly) {\r\n            e.preventDefault();\r\n          }\r\n        }}>\r\n        <InputFieldStyling\r\n          id={id}\r\n          data-testid={dataTestId}\r\n          ref={elementRef}\r\n          type={type || 'text'}\r\n          value={value ?? ''}\r\n          className={cls}\r\n          tabIndex={readOnly || disabled ? -1 : 0}\r\n          autoComplete={autoComplete}\r\n          placeholder={disabled ? undefined : placeholder}\r\n          disabled={disabled}\r\n          readOnly={readOnly}\r\n          onChange={(e: any) => onChange && onChange(e?.target?.value || '')}\r\n          $activeErrorMessage={!!validationMessage && state !== States.Valid}\r\n          required={required}\r\n          pattern={pattern}\r\n          maxLength={maxLength}\r\n          {...rest}\r\n        />\r\n        <TooltipOverflow value={value} position={overflowTooltipPosition} input={elementRef} withArrow={true} maxWidth=\"100%\" size={size} align='end'>\r\n          {value}\r\n        </TooltipOverflow>\r\n\r\n        {validationMessage && (\r\n          <ValidationMessage className={size || ''} type={state ?? States.Invalid}>\r\n            {state === States.Valid ? <SystemIcons.CheckMark color={COLORS.generateToken({componentType:'text', defaultVariant:'positive'}, theme)}/> :\r\n              <SystemIcons.TechnicalWarning color={COLORS.generateToken({componentType:'text', defaultVariant:'critical'}, theme)}/>}\r\n            <span>{validationMessage}</span>\r\n          </ValidationMessage>\r\n        )}\r\n        {note && !disabled && (\r\n          <NoteMessage className={size}>\r\n            {note.icon}\r\n            <span>{note.message}</span>\r\n          </NoteMessage>\r\n        )}\r\n      </InputWrapper>\r\n    </>\r\n  );\r\n});\r\n\r\nexport default TextField;\r\n"],"mappings":"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","ignoreList":[]}