{
  "version": 3,
  "sources": ["../../../../src/date/datepicker/LmDatepicker.tsx"],
  "sourcesContent": ["import { LmDatepickerProvider } from './DatepickerProvider'\nimport {\n  FocusedInput,\n  OnDatesChangeProps,\n  START_DATE,\n  useDatepicker,\n} from '@datepicker-react/hooks'\nimport { useId, useState } from 'react'\nimport { LmMonth } from './LmMonth'\nimport { Button, Input, XGroup, XStack } from 'tamagui'\nimport { Calendar } from 'tamagui-phosphor-icons'\nimport { LmPopover } from '../../core/panels'\nimport { usePopoverState } from '../../core/hooks'\nimport { getLocaleDate } from '../dateHelper'\nimport { LmFormFieldContainer } from '../../form/LmFormFieldContainer'\nimport { Platform } from 'react-native'\nimport { LmDatepickerProps } from './datepickerTypes' // change language see: https://github.com/tomgreenwood1/react-datepicker/blob/master/packages/styled/src/components/DateRangeInput/DateRangeInput.stories.tsx#L228\n\n// change language see: https://github.com/tomgreenwood1/react-datepicker/blob/master/packages/styled/src/components/DateRangeInput/DateRangeInput.stories.tsx#L228\n\nexport function LmDatepicker({\n  numberOfMonths,\n  isRangePicker,\n  onChange,\n  labelFunctions,\n  startDate = null,\n  endDate = null,\n  required,\n  error,\n  helperText,\n  label,\n  labelProps,\n  labelInline,\n}: LmDatepickerProps) {\n  const id = useId()\n  const { open, onOpenChange } = usePopoverState(false)\n  const [state, setState] = useState<OnDatesChangeProps>({\n    startDate: startDate,\n    endDate: endDate,\n    focusedInput: START_DATE,\n  })\n  const monthsCount: number = isRangePicker ? numberOfMonths ?? 2 : 1\n\n  const { activeMonths, firstDayOfWeek, ...context } = useDatepicker({\n    startDate: state.startDate,\n    endDate: state.endDate,\n    focusedInput: state.focusedInput as FocusedInput,\n    onDatesChange: (data) => {\n      if (!data.focusedInput) {\n        setState({ ...data, focusedInput: START_DATE })\n      } else {\n        setState(data)\n      }\n      if (typeof onChange === 'function') {\n        onChange(data)\n      }\n      if (!isRangePicker) {\n        onOpenChange(false)\n      }\n    },\n    numberOfMonths: monthsCount,\n    ...(!isRangePicker && {\n      minBookingDays: 1,\n      exactMinBookingDays: true,\n    }),\n  })\n\n  return (\n    <LmDatepickerProvider {...context}>\n      <LmFormFieldContainer\n        id={id}\n        error={error}\n        required={required}\n        labelProps={labelProps}\n        label={label}\n        labelInline={labelInline}\n        helperText={helperText}\n      >\n        <LmPopover\n          isBouncy={true}\n          hideArrow\n          trigger={\n            <XStack space width={Platform.OS === 'web' ? 'fit-content' : undefined}>\n              <XGroup>\n                <XGroup.Item>\n                  <Input\n                    width={'$12'}\n                    value={state.startDate ? getLocaleDate({ date: state.startDate }) : ''}\n                  ></Input>\n                </XGroup.Item>\n                <XGroup.Item>\n                  <Button icon={<Calendar />} />\n                </XGroup.Item>\n              </XGroup>\n              {isRangePicker && (\n                <XGroup>\n                  <XGroup.Item>\n                    <Input\n                      width={'$12'}\n                      value={state.endDate ? getLocaleDate({ date: state.endDate }) : ''}\n                    />\n                  </XGroup.Item>\n                  <XGroup.Item>\n                    <Button onPress={() => onOpenChange(true)} icon={<Calendar />} />\n                  </XGroup.Item>\n                </XGroup>\n              )}\n            </XStack>\n          }\n          open={open}\n          onOpenChange={onOpenChange}\n          contentProps={{\n            padding: '$4',\n            elevation: '$5',\n          }}\n        >\n          <XStack space alignItems={'flex-start'}>\n            {open &&\n              activeMonths.map((month, index) => (\n                <LmMonth\n                  key={`${month.year}-${month.month}`}\n                  year={month.year}\n                  month={month.month}\n                  monthsCount={monthsCount}\n                  firstDayOfWeek={firstDayOfWeek}\n                  isFirst={monthsCount === 0 || index === 0}\n                  isLast={monthsCount === 0 || index === monthsCount - 1}\n                  {...labelFunctions}\n                />\n              ))}\n          </XStack>\n        </LmPopover>\n      </LmFormFieldContainer>\n    </LmDatepickerProvider>\n  )\n}\n"],
  "mappings": "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",
  "names": []
}
