{"version":3,"sources":["../components/form/time-input.tsx"],"sourcesContent":["\"use client\";\nimport React, { useState, useEffect, ChangeEvent } from 'react';\nimport { FormTextInput } from './text-input';\nimport type { FormTextInputProps } from './text-input';\nimport { cn } from '../../utils/ui';\nimport { convertToHours, convertFromHours, convertToWholeFromHours } from '../../utils/time';\n\nexport interface FormTimeInputProps extends Omit<FormTextInputProps, 'onChange' | 'value'> {\n  value?: number;\n  onChange?: (value: number) => void;\n}\n\nexport function FormTimeInput({ value: parentValue = 0, onChange, className, ...rest }: FormTimeInputProps) {\n  const [value, setValue] = useState<string>(String(parentValue));\n\n  useEffect(() => {\n    setValue(String(parentValue ?? ''));\n  }, [parentValue]);\n\n  const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n    setValue(e.target.value);\n  };\n\n  const handleBlur = (e: ChangeEvent<HTMLInputElement>) => {\n    const newValue = convertToHours(e.target.value);\n    const numericValue = Number(newValue);\n\n    setValue(newValue);\n    onChange?.(numericValue);\n  };\n\n  const displayText = convertFromHours(value);\n  const displayWhole = convertToWholeFromHours(value);\n  const title = displayText !== displayWhole ? `${displayText} (${displayWhole})` : displayText;\n\n  return (\n    <FormTextInput\n      {...rest}\n      className={cn('$form-time-input', className)}\n      value={value}\n      onChange={handleChange}\n      onBlur={handleBlur}\n      title={title}\n    />\n  );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AACA,OAAO,SAAS,UAAU,iBAA8B;AAWjD,SAAS,cAAc,IAA8E;AAA9E,eAAE,SAAO,cAAc,GAAG,UAAU,UAZlE,IAY8B,IAAkD,iBAAlD,IAAkD,CAAhD,SAAwB,YAAU;AAChE,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAiB,OAAO,WAAW,CAAC;AAE9D,YAAU,MAAM;AACd,aAAS,OAAO,oCAAe,EAAE,CAAC;AAAA,EACpC,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,eAAe,CAAC,MAAqC;AACzD,aAAS,EAAE,OAAO,KAAK;AAAA,EACzB;AAEA,QAAM,aAAa,CAAC,MAAqC;AACvD,UAAM,WAAW,eAAe,EAAE,OAAO,KAAK;AAC9C,UAAM,eAAe,OAAO,QAAQ;AAEpC,aAAS,QAAQ;AACjB,yCAAW;AAAA,EACb;AAEA,QAAM,cAAc,iBAAiB,KAAK;AAC1C,QAAM,eAAe,wBAAwB,KAAK;AAClD,QAAM,QAAQ,gBAAgB,eAAe,GAAG,WAAW,KAAK,YAAY,MAAM;AAElF,SACE;AAAA,IAAC;AAAA,qCACK,OADL;AAAA,MAEC,WAAW,GAAG,oBAAoB,SAAS;AAAA,MAC3C;AAAA,MACA,UAAU;AAAA,MACV,QAAQ;AAAA,MACR;AAAA;AAAA,EACF;AAEJ;","names":[]}