{"version":3,"file":"index38.mjs","sources":["../src/components/input-group/textfield/button/index.tsx"],"sourcesContent":["import { FunctionComponent, ReactNode, useState } from \"react\";\nimport TextFieldAtom from \"../../../../../src/atoms/textfield\";\nimport BasicButton, { BasicButtonType } from \"../../../buttons/basic\";\n\nexport type TextFieldButtonType = {\n  /** Variant props */\n  indicator?: \"neutral\" | \"fail\" | \"success\";\n  state?: \"default\" | \"disabled\";\n  type?: \"outline\" | \"fill\";\n  variant?: \"labelled\" | \"labelless\";\n\n  id?: string;\n  name?: string;\n  className?: string;\n  label?: string;\n  message?: string;\n  placeholder?: string;\n  iconLeft?: ReactNode;\n  iconRight?: ReactNode;\n  isRequired?: boolean;\n  optionalText?: string;\n  maxLength?: number;\n  showCharacterCounter?: boolean;\n  inputType?: \"text\" | \"password\" | \"number\" | \"email\" | \"tel\" | \"url\";\n  size?: \"lg\" | \"sm\";\n  value?: string | number;\n  button?: BasicButtonType;\n  buttonPosition?: \"right\" | \"bottom\";\n  hideButton?: boolean;\n  messages?: {\n    text: string;\n    type: \"neutral\" | \"fail\" | \"success\";\n    icon?: ReactNode;\n  }[];\n  onChange?: (value: string | number) => void;\n};\n\nexport const TextFieldGroupButton: FunctionComponent<TextFieldButtonType> = ({\n  id,\n  name,\n  label = \"Label\",\n  iconLeft,\n  iconRight,\n  button,\n  state,\n  hideButton = false,\n  indicator = \"neutral\",\n  buttonPosition = \"bottom\",\n  variant = \"labelled\",\n  size = \"lg\",\n  ...props\n}) => {\n  const buttonSize = variant === \"labelled\" || size === \"lg\" ? \"md\" : size;\n  const [isFocused, setIsFocused] = useState(false);\n\n  const Button = () => {\n    return (\n      <>\n        {!hideButton && indicator !== \"fail\" && indicator !== \"success\" && (\n          <BasicButton\n            state={!isFocused ? \"disabled\" : state} // This should first so that consumers can use loading state if needed\n            label={\"Label\"}\n            {...button}\n            className={`quill-ui-next-textfield-button ${\n              buttonPosition === \"right\" ? \"right\" : \"bottom\"\n            } ${variant} ${size} ${button?.className}`}\n            size={buttonSize}\n            style=\"primary\"\n            width={\n              buttonPosition === \"right\" ? \"hug content\" : \"fill container\"\n            }\n            color=\"blackWhite\"\n          />\n        )}\n      </>\n    );\n  };\n\n  return (\n    <TextFieldAtom\n      id={id}\n      name={name}\n      {...props}\n      size={size}\n      variant={variant}\n      indicator={indicator}\n      state={state}\n      label={label}\n      iconLeft={iconLeft}\n      iconRight={indicator !== \"fail\" && indicator !== \"success\" && iconRight}\n      contentRight={buttonPosition === \"right\" && <Button />}\n      customInnerContent={buttonPosition === \"bottom\" && <Button />}\n      onFocus={() => setIsFocused(true)}\n      onBlur={() => setIsFocused(false)}\n    />\n  );\n};\n\nTextFieldGroupButton.displayName = \"TextFieldGroupButton\";\n\nexport default TextFieldGroupButton;\n"],"names":[],"mappings":";;;;AAqCO,MAAM,uBAA+D,CAAC;AAAA,EAC3E;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,OAAO;AAAA,EACP,GAAG;AACL,MAAM;AACJ,QAAM,aAAa,YAAY,cAAc,SAAS,OAAO,OAAO;AACpE,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,SAAS,MAAM;AACnB,2CAEK,UAAC,CAAA,cAAc,cAAc,UAAU,cAAc,aACpD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,CAAC,YAAY,aAAa;AAAA,QACjC,OAAO;AAAA,QACN,GAAG;AAAA,QACJ,WAAW,kCACT,mBAAmB,UAAU,UAAU,QACzC,IAAI,OAAO,IAAI,IAAI,IAAI,iCAAQ,SAAS;AAAA,QACxC,MAAM;AAAA,QACN,OAAM;AAAA,QACN,OACE,mBAAmB,UAAU,gBAAgB;AAAA,QAE/C,OAAM;AAAA,MAAA;AAAA,IAAA,GAGZ;AAAA,EAEJ;AAGE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,cAAc,UAAU,cAAc,aAAa;AAAA,MAC9D,cAAc,mBAAmB,WAAW,oBAAC,QAAO,CAAA,CAAA;AAAA,MACpD,oBAAoB,mBAAmB,YAAY,oBAAC,QAAO,CAAA,CAAA;AAAA,MAC3D,SAAS,MAAM,aAAa,IAAI;AAAA,MAChC,QAAQ,MAAM,aAAa,KAAK;AAAA,IAAA;AAAA,EAClC;AAEJ;AAEA,qBAAqB,cAAc;"}