{"version":3,"file":"DatePickerInput.cjs","names":["pickCalendarProps","useDatesInput","PickerInputBase","DatePicker","getDefaultClampedDate"],"sources":["../../../src/components/DatePickerInput/DatePickerInput.tsx"],"sourcesContent":["import {\n  __InputStylesNames,\n  BoxProps,\n  factory,\n  Factory,\n  InputVariant,\n  MantineComponentStaticProperties,\n  StylesApiProps,\n  useProps,\n  useResolvedStylesApi,\n} from '@mantine/core';\nimport { useDatesInput } from '../../hooks';\nimport { DatePickerType } from '../../types';\nimport { getDefaultClampedDate } from '../../utils';\nimport { pickCalendarProps } from '../Calendar';\nimport { DatePicker, DatePickerBaseProps, DatePickerStylesNames } from '../DatePicker';\nimport { DateInputSharedProps, PickerInputBase } from '../PickerInputBase';\n\nexport type DatePickerInputStylesNames = __InputStylesNames | 'placeholder' | DatePickerStylesNames;\n\nexport interface DatePickerInputProps<Type extends DatePickerType = 'default'>\n  extends\n    BoxProps,\n    DateInputSharedProps,\n    DatePickerBaseProps<Type>,\n    StylesApiProps<DatePickerInputFactory> {\n  /** `dayjs` format for input value @default \"MMMM D, YYYY\" */\n  valueFormat?: string;\n}\n\nexport type DatePickerInputFactory = Factory<{\n  props: DatePickerInputProps;\n  ref: HTMLButtonElement;\n  stylesNames: DatePickerInputStylesNames;\n  variant: InputVariant;\n}>;\n\nconst defaultProps = {\n  type: 'default',\n  size: 'sm',\n  valueFormat: 'MMMM D, YYYY',\n  closeOnChange: true,\n  sortDates: true,\n  dropdownType: 'popover',\n} satisfies Partial<DatePickerInputProps>;\n\ntype DatePickerInputComponent = (<Type extends DatePickerType = 'default'>(\n  props: DatePickerInputProps<Type> & { ref?: React.Ref<HTMLButtonElement> }\n) => React.JSX.Element) & {\n  displayName?: string;\n} & MantineComponentStaticProperties<DatePickerInputFactory>;\n\nexport const DatePickerInput: DatePickerInputComponent = factory<DatePickerInputFactory>(\n  (_props) => {\n    const props = useProps(['Input', 'InputWrapper', 'DatePickerInput'], defaultProps, _props);\n    const {\n      type,\n      value,\n      defaultValue,\n      onChange,\n      valueFormat,\n      labelSeparator,\n      locale,\n      classNames,\n      styles,\n      unstyled,\n      closeOnChange,\n      size,\n      variant,\n      dropdownType,\n      sortDates,\n      minDate,\n      maxDate,\n      vars,\n      defaultDate,\n      valueFormatter,\n      presets,\n      attributes,\n      ...rest\n    } = props;\n\n    const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<DatePickerInputFactory>({\n      classNames,\n      styles,\n      props,\n    });\n\n    const { calendarProps, others } = pickCalendarProps(rest);\n\n    const {\n      _value,\n      setValue,\n      formattedValue,\n      dropdownHandlers,\n      dropdownOpened,\n      onClear,\n      shouldClear,\n    } = useDatesInput({\n      type: type as any,\n      value,\n      defaultValue,\n      onChange: onChange as any,\n      locale,\n      format: valueFormat,\n      labelSeparator,\n      closeOnChange,\n      sortDates,\n      valueFormatter,\n    });\n\n    const _defaultDate = Array.isArray(_value) ? _value[0] || defaultDate : _value || defaultDate;\n\n    return (\n      <PickerInputBase\n        formattedValue={formattedValue}\n        dropdownOpened={dropdownOpened}\n        dropdownHandlers={dropdownHandlers}\n        classNames={resolvedClassNames}\n        styles={resolvedStyles}\n        unstyled={unstyled}\n        onClear={onClear}\n        shouldClear={shouldClear}\n        value={_value}\n        size={size}\n        variant={variant}\n        dropdownType={dropdownType}\n        {...others}\n        type={type as any}\n        __staticSelector=\"DatePickerInput\"\n        attributes={attributes}\n      >\n        <DatePicker\n          {...calendarProps}\n          size={size}\n          variant={variant}\n          type={type}\n          value={_value}\n          defaultDate={_defaultDate || getDefaultClampedDate({ maxDate, minDate })}\n          onChange={setValue}\n          locale={locale}\n          classNames={resolvedClassNames}\n          styles={resolvedStyles}\n          unstyled={unstyled}\n          __staticSelector=\"DatePickerInput\"\n          __stopPropagation={dropdownType === 'popover'}\n          minDate={minDate}\n          maxDate={maxDate}\n          presets={presets}\n          attributes={attributes}\n        />\n      </PickerInputBase>\n    );\n  }\n) as any;\n\nDatePickerInput.classes = { ...PickerInputBase.classes, ...DatePicker.classes };\nDatePickerInput.displayName = '@mantine/dates/DatePickerInput';\n\nexport namespace DatePickerInput {\n  export type Props = DatePickerInputProps;\n  export type StylesNames = DatePickerInputStylesNames;\n  export type Factory = DatePickerInputFactory;\n}\n"],"mappings":";;;;;;;;;AAqCA,MAAM,eAAe;CACnB,MAAM;CACN,MAAM;CACN,aAAa;CACb,eAAe;CACf,WAAW;CACX,cAAc;AAChB;AAQA,MAAa,mBAAA,GAAA,cAAA,QAAA,EACV,WAAW;CACV,MAAM,SAAA,GAAA,cAAA,SAAA,CAAiB;EAAC;EAAS;EAAgB;CAAiB,GAAG,cAAc,MAAM;CACzF,MAAM,EACJ,MACA,OACA,cACA,UACA,aACA,gBACA,QACA,YACA,QACA,UACA,eACA,MACA,SACA,cACA,WACA,SACA,SACA,MACA,aACA,gBACA,SACA,YACA,GAAG,SACD;CAEJ,MAAM,EAAE,oBAAoB,oBAAA,GAAA,cAAA,qBAAA,CAAgE;EAC1F;EACA;EACA;CACF,CAAC;CAED,MAAM,EAAE,eAAe,WAAWA,mCAAAA,kBAAkB,IAAI;CAExD,MAAM,EACJ,QACA,UACA,gBACA,kBACA,gBACA,SACA,gBACEC,wBAAAA,cAAc;EACV;EACN;EACA;EACU;EACV;EACA,QAAQ;EACR;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,eAAe,MAAM,QAAQ,MAAM,IAAI,OAAO,MAAM,cAAc,UAAU;CAElF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,wBAAAA,iBAAD;EACkB;EACA;EACE;EAClB,YAAY;EACZ,QAAQ;EACE;EACD;EACI;EACb,OAAO;EACD;EACG;EACK;EACd,GAAI;EACE;EACN,kBAAiB;EACL;YAEZ,iBAAA,GAAA,kBAAA,IAAA,CAACC,mBAAAA,YAAD;GACE,GAAI;GACE;GACG;GACH;GACN,OAAO;GACP,aAAa,gBAAgBC,iCAAAA,sBAAsB;IAAE;IAAS;GAAQ,CAAC;GACvE,UAAU;GACF;GACR,YAAY;GACZ,QAAQ;GACE;GACV,kBAAiB;GACjB,mBAAmB,iBAAiB;GAC3B;GACA;GACA;GACG;EACb,CAAA;CACc,CAAA;AAErB,CACF;AAEA,gBAAgB,UAAU;CAAE,GAAGF,wBAAAA,gBAAgB;CAAS,GAAGC,mBAAAA,WAAW;AAAQ;AAC9E,gBAAgB,cAAc"}