@jenesei-software/jenesei-kit-react 1.3.13 → 1.3.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/build/{area-sDVSuS3G.js → area-BDMDiVi1.js} +4 -3
  2. package/build/area-BDMDiVi1.js.map +1 -0
  3. package/build/area-DphBWq86.cjs +40 -0
  4. package/build/area-DphBWq86.cjs.map +1 -0
  5. package/build/area-skeleton.cjs.js +1 -1
  6. package/build/area-skeleton.es.js +1 -1
  7. package/build/build-info.txt +3 -3
  8. package/build/{component-DdJt3LEF.cjs → component-B9dFCQcm.cjs} +2 -2
  9. package/build/{component-DdJt3LEF.cjs.map → component-B9dFCQcm.cjs.map} +1 -1
  10. package/build/{component-GtWqnaqk.js → component-BFOHa1GY.js} +35 -17
  11. package/build/component-BFOHa1GY.js.map +1 -0
  12. package/build/{component-DnJo66DS.cjs → component-BLWcOf3A.cjs} +2 -2
  13. package/build/{component-DnJo66DS.cjs.map → component-BLWcOf3A.cjs.map} +1 -1
  14. package/build/component-BkYIZFlr.cjs +245 -0
  15. package/build/component-BkYIZFlr.cjs.map +1 -0
  16. package/build/{component-feWPgACX.js → component-CFKFLOAw.js} +2 -2
  17. package/build/{component-feWPgACX.js.map → component-CFKFLOAw.js.map} +1 -1
  18. package/build/{component-P-3bwi3_.js → component-CPzlyKwR.js} +3 -3
  19. package/build/{component-P-3bwi3_.js.map → component-CPzlyKwR.js.map} +1 -1
  20. package/build/{component-CN6att4f.js → component-CeuA5Ry0.js} +2 -2
  21. package/build/{component-CN6att4f.js.map → component-CeuA5Ry0.js.map} +1 -1
  22. package/build/{component-cRmWWDr_.cjs → component-DkEqMT7w.cjs} +2 -2
  23. package/build/{component-cRmWWDr_.cjs.map → component-DkEqMT7w.cjs.map} +1 -1
  24. package/build/component-button-group.cjs.js +1 -1
  25. package/build/component-button-group.es.js +1 -1
  26. package/build/component-button.cjs.js +1 -1
  27. package/build/component-button.es.js +1 -1
  28. package/build/component-checkbox-group.cjs.js +1 -1
  29. package/build/component-checkbox-group.es.js +1 -1
  30. package/build/component-checkbox.cjs.js +1 -1
  31. package/build/component-checkbox.es.js +1 -1
  32. package/build/component-date-picker.cjs.js +1 -1
  33. package/build/component-date-picker.es.js +1 -1
  34. package/build/component-image-button.cjs.js +1 -1
  35. package/build/component-image-button.es.js +1 -1
  36. package/build/component-image-select.cjs.js +1 -1
  37. package/build/component-image-select.es.js +1 -1
  38. package/build/component-image-slider.cjs.js +1 -1
  39. package/build/component-image-slider.es.js +1 -1
  40. package/build/component-image.cjs.js +1 -1
  41. package/build/component-image.es.js +1 -1
  42. package/build/component-map.cjs.js +1 -1
  43. package/build/component-map.es.js +1 -1
  44. package/build/component-pagination.cjs.js +1 -1
  45. package/build/component-pagination.es.js +1 -1
  46. package/build/component-select.cjs.js +1 -1
  47. package/build/component-select.es.js +1 -1
  48. package/build/component-tooltip.cjs.js +1 -1
  49. package/build/component-tooltip.es.js +1 -1
  50. package/build/component-typography.cjs.js +1 -1
  51. package/build/component-typography.es.js +1 -1
  52. package/build/{component.components-C-EEYFsd.js → component.components-B2-Gqe0K.js} +2 -2
  53. package/build/{component.components-C-EEYFsd.js.map → component.components-B2-Gqe0K.js.map} +1 -1
  54. package/build/{component.components-CC3IeZon.cjs → component.components-JtwTIPAB.cjs} +2 -2
  55. package/build/{component.components-CC3IeZon.cjs.map → component.components-JtwTIPAB.cjs.map} +1 -1
  56. package/build/{component.constants-34RZJIiQ.js → component.constants-CpnBclql.js} +2 -2
  57. package/build/{component.constants-34RZJIiQ.js.map → component.constants-CpnBclql.js.map} +1 -1
  58. package/build/{component.constants-COLayaiY.js → component.constants-Cwl6tQFq.js} +4 -4
  59. package/build/{component.constants-COLayaiY.js.map → component.constants-Cwl6tQFq.js.map} +1 -1
  60. package/build/{component.constants-eYn_2hvO.cjs → component.constants-D15Kt1bW.cjs} +2 -2
  61. package/build/{component.constants-eYn_2hvO.cjs.map → component.constants-D15Kt1bW.cjs.map} +1 -1
  62. package/build/{component.constants-D6AJ1xmO.cjs → component.constants-DxcsPL8D.cjs} +2 -2
  63. package/build/{component.constants-D6AJ1xmO.cjs.map → component.constants-DxcsPL8D.cjs.map} +1 -1
  64. package/build/{component.styles-DhBoJzIN.cjs → component.styles-B4ZjkzIF.cjs} +2 -2
  65. package/build/{component.styles-DhBoJzIN.cjs.map → component.styles-B4ZjkzIF.cjs.map} +1 -1
  66. package/build/{component.styles-Ba1VTyjn.js → component.styles-B9jJFDUk.js} +5 -5
  67. package/build/{component.styles-Ba1VTyjn.js.map → component.styles-B9jJFDUk.js.map} +1 -1
  68. package/build/{component.styles-BYVYSgCZ.js → component.styles-C4Bz4OTl.js} +2 -2
  69. package/build/{component.styles-BYVYSgCZ.js.map → component.styles-C4Bz4OTl.js.map} +1 -1
  70. package/build/{component.styles-PNgt36ZD.cjs → component.styles-CEDSDKXy.cjs} +2 -2
  71. package/build/{component.styles-PNgt36ZD.cjs.map → component.styles-CEDSDKXy.cjs.map} +1 -1
  72. package/build/{component.styles-DbWj2stq.cjs → component.styles-COwP0J6t.cjs} +2 -2
  73. package/build/{component.styles-DbWj2stq.cjs.map → component.styles-COwP0J6t.cjs.map} +1 -1
  74. package/build/{component.styles-CAN6t4un.cjs → component.styles-CUCjXD3k.cjs} +2 -2
  75. package/build/{component.styles-CAN6t4un.cjs.map → component.styles-CUCjXD3k.cjs.map} +1 -1
  76. package/build/{component.styles-DTnknwt_.js → component.styles-CxPmtiIy.js} +2 -2
  77. package/build/{component.styles-DTnknwt_.js.map → component.styles-CxPmtiIy.js.map} +1 -1
  78. package/build/{component.styles-mcm1LgEr.js → component.styles-Czdj4SAF.js} +3 -3
  79. package/build/{component.styles-mcm1LgEr.js.map → component.styles-Czdj4SAF.js.map} +1 -1
  80. package/build/{component.styles-Bb7_KygZ.cjs → component.styles-DhXp_cmE.cjs} +2 -2
  81. package/build/{component.styles-Bb7_KygZ.cjs.map → component.styles-DhXp_cmE.cjs.map} +1 -1
  82. package/build/{component.styles-DWS6xT-y.js → component.styles-Dz33wmri.js} +2 -2
  83. package/build/{component.styles-DWS6xT-y.js.map → component.styles-Dz33wmri.js.map} +1 -1
  84. package/build/{component.types-BhmQrqBu.js → component.types-B2YOqKzt.js} +4 -4
  85. package/build/{component.types-BhmQrqBu.js.map → component.types-B2YOqKzt.js.map} +1 -1
  86. package/build/{component.types-CfR3RBsV.cjs → component.types-DaiIANRt.cjs} +2 -2
  87. package/build/{component.types-CfR3RBsV.cjs.map → component.types-DaiIANRt.cjs.map} +1 -1
  88. package/build/context-sonner.cjs.js +1 -1
  89. package/build/context-sonner.es.js +1 -1
  90. package/build/{context.constants-DOMoMUoD.js → context.constants-C4xdihsb.js} +2 -2
  91. package/build/{context.constants-DOMoMUoD.js.map → context.constants-C4xdihsb.js.map} +1 -1
  92. package/build/{context.constants-cm50ZUiS.cjs → context.constants-D0P7bVk9.cjs} +2 -2
  93. package/build/{context.constants-cm50ZUiS.cjs.map → context.constants-D0P7bVk9.cjs.map} +1 -1
  94. package/build/index.cjs.js +1 -1
  95. package/build/index.es.js +15 -15
  96. package/build/{use-_V1SKE0-.js → use-CuHzkWqv.js} +3 -3
  97. package/build/{use-_V1SKE0-.js.map → use-CuHzkWqv.js.map} +1 -1
  98. package/build/{use-ClugPshj.cjs → use-DWNgOa9w.cjs} +2 -2
  99. package/build/{use-ClugPshj.cjs.map → use-DWNgOa9w.cjs.map} +1 -1
  100. package/package.json +1 -1
  101. package/build/area-DRsIULcw.cjs +0 -38
  102. package/build/area-DRsIULcw.cjs.map +0 -1
  103. package/build/area-sDVSuS3G.js.map +0 -1
  104. package/build/component-BVnHSTJd.cjs +0 -245
  105. package/build/component-BVnHSTJd.cjs.map +0 -1
  106. package/build/component-GtWqnaqk.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"component.types-CfR3RBsV.cjs","sources":["../src/components/date-picker/component.styles.ts","../src/components/date-picker/component.types.ts","../src/components/date-picker/component.tsx"],"sourcesContent":["import { addInputIsInputEffect } from '@local/components/input';\nimport {\n addDisabled,\n addFont,\n addNiceNumber,\n addOutline,\n addRemoveOutline,\n addRemoveScrollbar,\n addTransition,\n} from '@local/styles/add';\nimport { addError } from '@local/styles/error';\nimport { addSX } from '@local/styles/sx';\nimport { KEY_SIZE_DATA } from '@local/theme/theme';\n\nimport { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\n\nimport { Button, ButtonProps } from '../button';\nimport { DateDropdownDayProps, DateDropdownListProps, DateInputProps, DateStyledListProps, DateWrapperProps } from '.';\n\nexport const DateWrapper = styled.div<DateWrapperProps>`\n width: 100%;\n position: relative;\n height: fit-content;\n ${(props) =>\n props.$isMinWidth &&\n css`\n width: min-content;\n `}\n ${addSX};\n ${addNiceNumber};\n`;\n\nexport const DateDropdownListParent = styled(motion.div)<DateStyledListProps>`\n ${addRemoveScrollbar};\n`;\n\nexport const DateDropdownList = styled.div<DateDropdownListProps>`\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n padding-top: 6px;\n transform: translateZ(0);\n justify-content: flex-start;\n gap: 10px;\n ${addInputIsInputEffect};\n`;\n\nexport const DateDropdownDays = styled.div<{ $rows: number }>`\n display: grid;\n column-gap: normal;\n row-gap: normal;\n gap: 6px;\n grid-template-columns: repeat(7, 28px);\n grid-template-rows: repeat(${(props) => props.$rows}, 28px);\n justify-content: space-between;\n`;\n\nexport const addDateDropdownDaySize = css<DateDropdownDayProps>`\n ${(props) =>\n props.$size &&\n css`\n border-radius: ${KEY_SIZE_DATA[props.$size].radius}px;\n `};\n position: relative;\n overflow: hidden;\n isolation: isolate;\n user-select: none;\n background: ${(props) => props.theme.colors.date[props.$genre].background.rest};\n border-color: ${(props) => props.theme.colors.date[props.$genre].border.rest};\n color: ${(props) => props.theme.colors.date[props.$genre].color.rest};\n border: 1px solid transparent;\n grid-row: ${(props) => props.$row};\n grid-column: ${(props) => props.$column};\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n cursor: pointer;\n &:hover {\n ${(props) =>\n !props.$isDisabled &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.hover};\n border-color: ${props.theme.colors.date[props.$genre].border.hover};\n color: ${props.theme.colors.date[props.$genre].color.hover};\n `}\n }\n ${addTransition};\n\n ${(props) =>\n props.$isWeekend &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.weekend};\n border-color: ${props.theme.colors.date[props.$genre].border.weekend};\n color: ${props.theme.colors.date[props.$genre].color.weekend};\n `}\n ${(props) =>\n props.$isToday &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.today};\n border-color: ${props.theme.colors.date[props.$genre].border.today};\n color: ${props.theme.colors.date[props.$genre].color.today};\n `}\n ${(props) =>\n props.$isChoice &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.choice};\n border-color: ${props.theme.colors.date[props.$genre].border.choice};\n color: ${props.theme.colors.date[props.$genre].color.choice};\n `}\n ${(props) =>\n props.$isDisabled &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.weekend};\n border-color: ${props.theme.colors.date[props.$genre].border.weekend};\n color: ${props.theme.colors.date[props.$genre].color.weekend};\n opacity: 0.5;\n `}\n ${(props) =>\n !props.$isCurrentMonth &&\n css`\n opacity: 0.5;\n `}\n \n ${addFont};\n ${addOutline};\n`;\n\nexport const DateDropdownDay = styled.button<DateDropdownDayProps>`\n ${addDateDropdownDaySize}\n`;\nexport const DateDropdownDayOfWeek = styled.button<DateDropdownDayProps>`\n ${addDateDropdownDaySize}\n opacity: 1;\n background-color: transparent;\n`;\n\n/****************************************** Genre *************************************************/\nconst addDateInputGenre = css<DateInputProps>`\n background-color: ${(props) => (props.$isActive ? props.theme.palette.black10 : 'transparent')};\n ${(props) =>\n props.$isHaveValue\n ? css`\n color: ${props.theme.colors.input[props.$genre].color.rest};\n &:focus-visible {\n color: ${props.theme.colors.input[props.$genre].color.rest};\n }\n `\n : css`\n color: ${props.theme.colors.input[props.$genre].color.placeholder};\n `};\n`;\nconst addDateInputSize = css<DateInputProps>`\n border-radius: 4px;\n padding: 2px;\n min-width: 10px;\n`;\nexport const DateInput = styled.div<DateInputProps>`\n text-align: center;\n resize: none;\n overflow: hidden;\n border: 0px solid;\n background: transparent;\n margin: 0px !important;\n white-space: nowrap;\n ${addFont};\n ${addDateInputSize};\n ${addDateInputGenre};\n ${addRemoveOutline};\n`;\n\n/****************************************** Genre *************************************************/\nconst addDateInputWrapperGenre = css<DateInputProps>`\n ${(props) => css`\n background: ${props.theme.colors.input[props.$genre].background.rest};\n border-color: ${props.theme.colors.input[props.$genre].border.rest};\n color: ${props.theme.colors.input[props.$genre].color.rest};\n outline: 2px solid transparent;\n outline-offset: 1px;\n &:hover {\n background: ${props.theme.colors.input[props.$genre].background.hover};\n border-color: ${props.theme.colors.input[props.$genre].border.hover};\n color: ${props.theme.colors.input[props.$genre].color.hover};\n }\n ${\n props.$isOpen &&\n css`\n background: ${props.theme.colors.input[props.$genre].background.rest};\n border-color: ${props.theme.colors.input[props.$genre].border.rest};\n color: ${props.theme.colors.input[props.$genre].color.rest};\n outline: 2px solid ${(props) => props.theme.states.focus};\n `\n }\n `};\n`;\n\n/****************************************** Size *************************************************/\nexport const addDateInputWrapperSize = css<DateInputProps>`\n ${(props) => css`\n padding: ${props.$isShowPlaceholder ? `0px ${KEY_SIZE_DATA[props.$size].padding}px` : `0px ${KEY_SIZE_DATA[props.$size].padding}px 0px ${KEY_SIZE_DATA[props.$size].padding - 2}px`};\n height: ${KEY_SIZE_DATA[props.$size].height}px;\n min-height: ${KEY_SIZE_DATA[props.$size].height}px;\n max-height: ${KEY_SIZE_DATA[props.$size].height}px;\n border-radius: ${KEY_SIZE_DATA[props.$size].radius}px;\n `}\n`;\n\nexport const DateInputWrapper = styled.div<DateInputProps>`\n resize: none;\n overflow: hidden;\n width: 100%;\n border: 1px solid transparent;\n\n white-space: nowrap;\n\n display: flex;\n align-items: center;\n gap: 0px;\n\n ${addDisabled};\n ${addDateInputWrapperSize};\n ${addDateInputWrapperGenre};\n ${addTransition};\n ${addError};\n`;\n\nexport const addDateInputButtonSize = css<ButtonProps>`\n ${(props) => css`\n right:${KEY_SIZE_DATA[props.size].padding}px;\n `}\n`;\nexport const DateInputButton = styled(Button)`\n position: absolute;\n height: max-content !important;\n ${addDateInputButtonSize};\n`;\n","import { InputStandardProps, StyledInputProps, StyledInputWrapperProps } from '@local/components/input';\nimport { addFontProps, addOutlineProps, addOutlinePropsDollar } from '@local/styles/add';\nimport { addErrorProps, ErrorMessageProps } from '@local/styles/error';\nimport { addSXProps } from '@local/styles/sx';\nimport { IThemeGenreDate, IThemeSize } from '@local/theme';\nimport { AddDollarSign } from '@local/types';\n\nimport { SelectMonthProps } from '../select';\n\nexport type DatePickerMode = DatePickerVariant[];\nexport enum DatePickerVariant {\n DD = 'DD',\n MM = 'MM',\n YYYY = 'YYYY',\n}\n\nexport type CommonDatePickerProps = addErrorProps &\n addSXProps &\n addFontProps &\n addOutlineProps & {\n genre: TDateGenre;\n\n id?: string;\n\n isDisabled?: boolean;\n isBold?: boolean;\n isMinWidth?: boolean;\n\n isInputEffect?: InputStandardProps['isInputEffect'];\n\n isOnClickClose?: boolean;\n\n labelPlaceholder?: string;\n\n locale: {\n months: SelectMonthProps['monthsLocale'];\n weeks: WeekItem[];\n inputs: InputItem;\n };\n\n notValidDate?: Omit<ErrorMessageProps, 'size' | 'isError'>;\n\n mode?: DatePickerMode;\n\n name?: string;\n\n onBlur?: () => void;\n\n onChange: (timestamp: number | null) => void;\n\n onFocus?: () => void;\n\n size: IThemeSize;\n\n dateMax?: number;\n\n dateMin?: number;\n\n dateDefault: number;\n };\n\ntype ControlledValue = {\n value: number | null | undefined;\n\n defaultValue?: never;\n};\n\ntype UncontrolledValue = {\n defaultValue: number | null | undefined;\n\n value?: never;\n};\nexport type DatePickerProps = CommonDatePickerProps & (ControlledValue | UncontrolledValue);\n\nexport type TDateGenre = keyof IThemeGenreDate;\n\nexport interface DateDayProps {\n dayOfWeek: number;\n\n isCurrentMonth: boolean;\n\n isDisabled: boolean;\n\n isToday: boolean;\n\n isWeekend: boolean;\n\n labelNumber: number;\n\n labelString: string;\n\n value: number;\n\n weekOfMonth: number;\n}\n\nexport type DateWrapperProps = AddDollarSign<\n Pick<InputStandardProps, 'genre' | 'isDisabled'> & {\n parentListHeight: number;\n radius: number;\n isMinWidth?: boolean;\n }\n> &\n StyledInputWrapperProps;\n\nexport type DateInputProps = AddDollarSign<\n Pick<DatePickerProps, 'error' | 'genre' | 'size' | 'isBold' | 'isReadOnly' | 'isDisabled' | 'font'> & {\n isOpen?: boolean;\n isActive?: boolean;\n isHaveValue?: boolean;\n isShowPlaceholder?: boolean;\n }\n>;\n\nexport type DateStyledOptionProps = AddDollarSign<{\n isSelectedItem?: boolean;\n isCheckboxProps?: boolean;\n}> &\n StyledInputProps;\n\nexport type DateStyledListProps = AddDollarSign<Pick<InputStandardProps, 'genre' | 'size'>>;\n\nexport type DateDropdownListProps = AddDollarSign<\n Pick<DatePickerProps, 'isInputEffect'> & Pick<DatePickerProps, 'genre' | 'size'>\n>;\n\nexport type DateDropdownDayProps = AddDollarSign<\n Pick<DatePickerProps, 'genre' | 'size' | 'font'> &\n Pick<DateDayProps, 'isToday' | 'isWeekend'> & {\n row: number;\n column: number;\n isChoice?: boolean;\n isCurrentMonth?: boolean;\n isDisabled?: boolean;\n }\n> &\n addOutlinePropsDollar;\n\nexport type MonthItem = {\n localeLong: string;\n\n localeShort: string;\n\n value:\n | 'january'\n | 'february'\n | 'march'\n | 'april'\n | 'may'\n | 'june'\n | 'july'\n | 'august'\n | 'september'\n | 'october'\n | 'november'\n | 'december';\n};\nexport type WeekItem = {\n localeLong: string;\n\n localeShort: string;\n\n value: 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su';\n};\nexport type InputItem = {\n day: string;\n\n month: string;\n\n year: string;\n};\n","import { Button } from '@local/components/button';\nimport { Ripple } from '@local/components/ripple';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport moment, { Moment } from 'moment';\nimport { Fragment, KeyboardEvent, RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Popover, usePopover } from '../popover';\nimport { Typography } from '../typography';\nimport {\n DateDayProps,\n DateDropdownDay,\n DateDropdownDayOfWeek,\n DateDropdownDays,\n DateDropdownList,\n DateInput,\n DateInputButton,\n DateInputWrapper,\n DatePickerMode,\n DatePickerProps,\n DatePickerVariant,\n DateWrapper,\n WeekItem,\n} from '.';\n\nfunction countSevens(number: number) {\n const divisor = 7;\n const count = Math.floor(number / divisor);\n const remainder = number % divisor;\n\n return remainder > 0 ? count + 1 : count;\n}\n\nexport const DatePicker = (props: DatePickerProps) => {\n const { onChange } = props;\n const theme = useTheme();\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n const [dateDefaultMoment, setDateDefaultMoment] = useState<Moment>(moment(props.dateDefault).utc());\n\n const [input, setInput] = useState<Record<DatePickerVariant, number | null>>({\n [DatePickerVariant.DD]: null,\n [DatePickerVariant.MM]: null,\n [DatePickerVariant.YYYY]: null,\n });\n\n const isHasInput = useMemo(() => {\n return (\n input[DatePickerVariant.DD] !== null ||\n input[DatePickerVariant.MM] !== null ||\n input[DatePickerVariant.YYYY] !== null\n );\n }, [input]);\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: null,\n [DatePickerVariant.MM]: null,\n [DatePickerVariant.YYYY]: null,\n });\n }, []);\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: DatePickerMode = useMemo(() => {\n if (!props.mode || props.mode.length === 0) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт\n }\n\n const hasDuplicates = new Set(props.mode).size !== props.mode.length;\n\n if (hasDuplicates) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт при дублировании\n }\n\n return props.mode;\n }, [props.mode]);\n\n const getNextSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n },\n [mode],\n );\n\n const getPrevSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n },\n [mode],\n );\n\n const dataDate = useMemo(() => {\n const result = {\n MM: {\n nextSegment: getNextSegment(DatePickerVariant.MM),\n preSegment: getPrevSegment(DatePickerVariant.MM),\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.MM)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.MM)),\n isLast: mode[mode.length - 1] === DatePickerVariant.MM,\n isFirst: mode[0] === DatePickerVariant.MM,\n type: DatePickerVariant.MM,\n value: input.MM,\n setValue: (value: number | null) => setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.MM]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.MM),\n placeholder: props.locale.inputs.month,\n },\n DD: {\n nextSegment: getNextSegment(DatePickerVariant.DD),\n preSegment: getPrevSegment(DatePickerVariant.DD),\n isLast: mode[mode.length - 1] === DatePickerVariant.DD,\n isFirst: mode[0] === DatePickerVariant.DD,\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.DD)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.DD)),\n type: DatePickerVariant.DD,\n value: input.DD,\n setValue: (value: number | null) => setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.DD]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.DD),\n placeholder: props.locale.inputs.day,\n },\n YYYY: {\n nextSegment: getNextSegment(DatePickerVariant.YYYY),\n preSegment: getPrevSegment(DatePickerVariant.YYYY),\n isLast: mode[mode.length - 1] === DatePickerVariant.YYYY,\n isFirst: mode[0] === DatePickerVariant.YYYY,\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.YYYY)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.YYYY)),\n type: DatePickerVariant.YYYY,\n value: input.YYYY,\n setValue: (value: number | null) =>\n setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.YYYY]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.YYYY),\n placeholder: props.locale.inputs.year,\n },\n };\n const resultSort = mode\n .map((e) => {\n if (e === DatePickerVariant.DD) return result.DD;\n if (e === DatePickerVariant.MM) return result.MM;\n if (e === DatePickerVariant.YYYY) return result.YYYY;\n return null;\n })\n .filter((e) => e !== null);\n return { sort: resultSort, default: result };\n }, [\n props.locale.inputs.day,\n props.locale.inputs.month,\n props.locale.inputs.year,\n getNextSegment,\n getPrevSegment,\n mode,\n input.DD,\n input.MM,\n input.YYYY,\n ]);\n const daysInWeek = useMemo(() => {\n const weekOrder: WeekItem['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n const daysInMonth: DateDayProps[] = useMemo(() => {\n const today = moment.utc();\n const startOfMonth = (valueMoment ?? dateDefaultMoment).clone().startOf('month');\n const endOfMonth = (valueMoment ?? dateDefaultMoment).clone().endOf('month');\n const days = [];\n\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n const daysToAddBefore = startOfMonth.isoWeekday() - 1;\n if (daysToAddBefore > 0) {\n for (let i = daysToAddBefore; i > 0; i--) {\n const day = startOfMonth.clone().subtract(i, 'days');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(dateMin, 'day') || day.isAfter(dateMax, 'day'),\n });\n }\n }\n\n const currentDate = startOfMonth.clone();\n while (currentDate <= endOfMonth) {\n days.push({\n value: currentDate.valueOf(),\n labelString: currentDate.format('dd'),\n labelNumber: currentDate.date(),\n dayOfWeek: currentDate.isoWeekday(),\n isWeekend: currentDate.isoWeekday() === 6 || currentDate.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: currentDate.isSame(today, 'day'),\n isCurrentMonth: true,\n isDisabled: currentDate.isBefore(dateMin, 'day') || currentDate.isAfter(dateMax, 'day'),\n });\n currentDate.add(1, 'day');\n }\n\n const daysToAddAfter = 7 - endOfMonth.isoWeekday();\n if (daysToAddAfter > 0) {\n for (let i = 1; i <= daysToAddAfter; i++) {\n const day = endOfMonth.clone().add(i, 'days').startOf('day');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(dateMin, 'day') || day.isAfter(dateMax, 'day'),\n });\n }\n }\n\n days.sort((a, b) => a.value - b.value);\n return days;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => countSevens(daysInMonth.length) + 1, [daysInMonth]);\n const height = useMemo(\n () => 40 + rows * 28 + (rows - 1) * 6 + KEY_SIZE_DATA[props.size].padding * 2,\n [props.size, rows],\n );\n\n const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\n\n const isHasValue = useMemo(() => {\n return valueMoment !== null;\n }, [valueMoment]);\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(!isInputFocused && !isHasValue && props.labelPlaceholder && !isOpen && !isHasInput && !activeSegment);\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment]);\n\n const onChangeDate = useCallback(\n (timestamp: number) => {\n const momentNewDate = moment(timestamp).utc();\n if (valueMoment?.isSame(momentNewDate, 'day')) return;\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n\n setInput({\n [DatePickerVariant.DD]: momentNewDate.clone().date(),\n [DatePickerVariant.MM]: momentNewDate.clone().month() + 1,\n [DatePickerVariant.YYYY]: momentNewDate.clone().year(),\n });\n },\n [valueMoment, onChange],\n );\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n handleDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNext();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== null) {\n const current = input.DD.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== null) {\n const current = input.MM.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== null) {\n const current = input.YYYY.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrev();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNext();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf());\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf());\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n }, [props.value, props.defaultValue]);\n\n const getValidateInput = useCallback(\n (\n input: Record<DatePickerVariant, number | null>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n ) => {\n const day = input.DD ?? NaN;\n const month = input.MM ?? NaN;\n const year = input.YYYY ?? NaN;\n const isHasInput =\n input[DatePickerVariant.DD] !== null ||\n input[DatePickerVariant.MM] !== null ||\n input[DatePickerVariant.YYYY] !== null;\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n },\n [],\n );\n\n useEffect(() => {\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [getValidateInput, onChangeDate, onChange, input]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [getValidateInput, onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment]);\n return (\n <>\n <DateWrapper\n $size={props.size}\n $genre={props.genre}\n $sx={props.sx}\n $isDisabled={props?.isDisabled}\n $isMinWidth={props?.isMinWidth}\n $radius={sizeRadius}\n $parentListHeight={height}\n tabIndex={-1}\n >\n <DateInputWrapper\n ref={refReference as RefObject<HTMLDivElement | null>}\n $genre={props.genre}\n $size={props.size}\n $isShowPlaceholder={isShowPlaceholder}\n $isDisabled={props?.isDisabled}\n $isReadOnly={props?.isReadOnly}\n tabIndex={-1}\n $error={\n isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error\n }\n $isOpen={isOpen || !!activeSegment}\n onClick={() => {\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }}\n >\n <input\n name={props.name}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={handleKeyDown}\n onChange={(e) => {\n const value = e.target.value;\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n handleKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n handleKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n // if (newChar === '\\n') {\n // close();\n // }\n }}\n onFocus={() => {\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }}\n onBlur={() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }}\n />\n {isShowPlaceholder ? (\n <Typography\n sx={{ default: { size: 16, line: 1, isNoUserSelect: true } }}\n sxStandard={(theme) => ({\n default: {\n color: theme.colors.input[props.genre].color.placeholder,\n },\n })}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <DateInput\n $isHaveValue={!!date.value}\n $isActive={activeSegment === date.type}\n $genre={props.genre}\n $size={props.size}\n $font={{\n size: props.font?.size ?? 16,\n weight: props.font?.weight ?? (props.isBold ? 500 : 400),\n family: props.font?.family ?? theme.font.family,\n height: props.font?.height ?? theme.font.lineHeight,\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value != null\n ? String(date.value).padStart(date.type === DatePickerVariant.YYYY ? 1 : 2, '0')\n : date.placeholder || ''}\n </DateInput>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n <DateInputButton\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isRadius\n isOnlyIcon\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n </DateInputWrapper>\n </DateWrapper>\n <Popover\n sx={(theme) => ({\n default: {\n background: theme.colors.input[props.genre].background.rest,\n border: `solid 1px ${theme.colors.input[props.genre].border.rest}`,\n },\n })}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n isShowAlwaysOutline\n floatingStyles={floatingStyles}\n ref={refFloating}\n >\n <DateDropdownList $isInputEffect={props.isInputEffect} $genre={props.genre} $size={props.size}>\n <Stack\n sx={{\n default: {\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n }}\n >\n <Button\n type='button'\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={props.genre}\n size={'small'}\n onClick={() => !isBlockPrevMonth && onPrevMonth()}\n isHidden={isBlockPrevMonth}\n />\n <Stack sx={{ default: { gap: '8px' } }}>\n <SelectMonth\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n <SelectYear\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n </Stack>\n <Button\n type='button'\n onClick={() => !isBlockNextMonth && onNextMonth()}\n isWidthAsHeight\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <DateDropdownDays $rows={rows}>\n {daysInWeek.map((e, index) => (\n <DateDropdownDayOfWeek\n $font={{\n size: 12,\n weight: 700,\n family: props.font?.family ?? theme.font.family,\n }}\n tabIndex={-1}\n type='button'\n $isToday={false}\n $isWeekend={false}\n $genre={props.genre}\n $size={props.size}\n $row={daysInMonth[0]?.weekOfMonth - 1}\n $column={index + 1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </DateDropdownDayOfWeek>\n ))}\n {daysInMonth.map((day) => (\n <DateDropdownDay\n $font={{\n size: 12,\n weight: 700,\n family: props.font?.family ?? theme.font.family,\n }}\n type='button'\n $isDisabled={day.isDisabled}\n $isDisabledOutline={day.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $genre={props.genre}\n $size={props.size}\n $row={day?.weekOfMonth + 1}\n $column={day.dayOfWeek}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n $isToday={day.isToday}\n $isWeekend={day.isWeekend}\n $isChoice={day.value === valueMoment?.valueOf()}\n $isCurrentMonth={day.isCurrentMonth}\n >\n {!day.isDisabled && <Ripple color={theme.colors.date[props.genre].color.rest} />}\n {day.labelNumber}\n </DateDropdownDay>\n ))}\n </DateDropdownDays>\n </DateDropdownList>\n </Popover>\n {isError || props?.error ? (\n <ErrorMessage\n {...(isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error)}\n size={props?.error?.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: props.font?.family ?? theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\nfunction handleDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, number | null>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: number) => void; onNext: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg]?.toString() ?? ''; // Преобразуем number в string для работы\n\n // Вспомогательная проверка\n const isZero = (s: string) => s === '0';\n const toNum = (s: string) => Number(s);\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31, ноль недопустим как самостоятельное значение\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n return;\n }\n\n // special-case: если было '0' и пользователь ввёл не '0' — НЕ подставляем '0' перед цифрой,\n // сохраняем single-digit и считаем ввод завершённым (переходим).\n if (current.length === 1 && isZero(current)) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed); // сохраняем число, а не строку\n dataDate.default[seg].onNext();\n return;\n }\n\n // обычный путь: добавляем цифру и решаем — перезаписать или дополнить\n const potential = current + digit;\n const potentialParsed = toNum(potential);\n\n // ИСПРАВЛЕНИЕ: если потенциальное значение больше 31, используем только новую цифру и переходим дальше\n if (potentialParsed > 31) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n dataDate.default[seg].onNext(); // Переходим к следующему сегменту\n return;\n }\n\n // Если потенциальное значение равно 0, используем только новую цифру\n const nextValue = potentialParsed === 0 ? digit : potential;\n const parsed = toNum(nextValue);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n if (nextValue.length === 2) dataDate.default[seg].onNext();\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12, ноль недопустим как самостоятельное значение\n if (current.length >= 2) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed);\n return;\n }\n\n if (current.length === 1 && isZero(current)) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed); // сохраняем число, а не строку\n dataDate.default[seg].onNext();\n return;\n }\n\n const potential = current + digit;\n const potentialParsed = toNum(potential);\n const nextValue = potentialParsed === 0 || potentialParsed > 12 ? digit : potential;\n\n const parsed = toNum(nextValue);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed);\n if (nextValue.length === 2 || (nextValue.length === 1 && parsed > 1)) {\n dataDate.default[seg].onNext();\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр. Если уже 4 — начинаем заново (как раньше)\n if (current.length >= 4) {\n if (digit === '0') return;\n dataDate.default[seg].setValue(toNum(digit));\n return;\n }\n\n const nextValue = (current + digit).slice(-4);\n dataDate.default[seg].setValue(toNum(nextValue));\n }\n}\n"],"names":["DateWrapper","styled","div","props","$isMinWidth","css","addSX","addNiceNumber","DateDropdownListParent","motion","addRemoveScrollbar","DateDropdownList","addInputIsInputEffect","DateDropdownDays","$rows","addDateDropdownDaySize","$size","KEY_SIZE_DATA","radius","theme","colors","date","$genre","background","rest","border","color","$row","$column","$isDisabled","hover","addTransition","$isWeekend","weekend","$isToday","today","$isChoice","choice","$isCurrentMonth","addFont","addOutline","DateDropdownDay","button","DateDropdownDayOfWeek","addDateInputGenre","$isActive","palette","black10","$isHaveValue","input","placeholder","addDateInputSize","DateInput","addRemoveOutline","addDateInputWrapperGenre","$isOpen","states","focus","addDateInputWrapperSize","$isShowPlaceholder","padding","height","DateInputWrapper","addDisabled","addError","addDateInputButtonSize","size","DateInputButton","Button","DatePickerVariant","onChange","useTheme","valueMoment","setValueMoment","useState","dateDefaultMoment","setDateDefaultMoment","moment","dateDefault","utc","setInput","DD","MM","YYYY","isHasInput","useMemo","onClearInput","useCallback","activeSegment","setActiveSegment","isError","setIsError","mode","length","Set","getNextSegment","currentSegment","currentIndex","indexOf","getPrevSegment","dataDate","result","nextSegment","preSegment","onNext","onPrev","isLast","isFirst","type","value","setValue","prevValue","setActive","locale","inputs","month","day","year","sort","map","e","filter","default","daysInWeek","key","index","found","weeks","find","w","label","localeShort","toUpperCase","daysInMonth","startOfMonth","clone","startOf","endOfMonth","endOf","days","dateMin","dateMax","daysToAddBefore","isoWeekday","i","subtract","push","valueOf","labelString","format","labelNumber","dayOfWeek","isWeekend","weekOfMonth","Math","ceil","isToday","isSame","isCurrentMonth","isDisabled","isBefore","isAfter","currentDate","add","daysToAddAfter","a","b","rows","number","count","floor","countSevens","sizeRadius","sizePadding","isHasValue","isBlockNextMonth","nextMonth","isBlockPrevMonth","prevMonth","isInputFocused","setIsInputFocused","refPrevValue","useRef","refSelectMonth","refSelectYear","refHiddenInput","onFocusPopover","_a","onFocus","call","onBlurPopover","onBlur","onBlurReference","isOpen","refReference","refFloating","floatingStyles","close","toggle","usePopover","placement","offset","isClickOutside","refsExcludeClickOutside","isReadOnly","isShowPlaceholder","labelPlaceholder","onChangeDate","timestamp","momentNewDate","handleKeyDown","isDigit","test","includes","ctrlKey","metaKey","digit","seg","current","toString","isZero","s","toNum","Number","parsed","potential","potentialParsed","nextValue","slice","handleDigitKey","preventDefault","stopPropagation","blur","newValue","onNextMonth","newDate","onPrevMonth","useEffect","defaultValue","getValidateInput","onSuccess","onFailure","onNan","NaN","isNaN","m","isValid","jsxs","Fragment","children","jsx","genre","$sx","sx","isMinWidth","$radius","$parentListHeight","tabIndex","ref","$isReadOnly","$error","error","notValidDate","onClick","name","id","inputMode","disabled","style","position","top","left","width","opacity","onKeyDown","target","newChar","Typography","line","isNoUserSelect","sxStandard","$font","font","weight","_b","isBold","family","_c","_d","lineHeight","String","padStart","pointerEvents","textAlign","isWidthAsHeight","isFullSize","isRadius","isOnlyIcon","icons","Popover","isShowAlwaysOutline","$isInputEffect","isInputEffect","Stack","justifyContent","alignItems","turn","isHidden","gap","SelectMonth","monthsLocale","months","isOnClickOptionClose","isStayValueAfterSelect","isOnlyColorInSelectListOption","isCenter","isShortLabel","SelectYear","$isDisabledOutline","isDisabledOutline","$isOutlineBoxShadow","isOutlineBoxShadow","isOnClickClose","Ripple","ErrorMessage"],"mappings":"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"}
1
+ {"version":3,"file":"component.types-DaiIANRt.cjs","sources":["../src/components/date-picker/component.styles.ts","../src/components/date-picker/component.types.ts","../src/components/date-picker/component.tsx"],"sourcesContent":["import { addInputIsInputEffect } from '@local/components/input';\nimport {\n addDisabled,\n addFont,\n addNiceNumber,\n addOutline,\n addRemoveOutline,\n addRemoveScrollbar,\n addTransition,\n} from '@local/styles/add';\nimport { addError } from '@local/styles/error';\nimport { addSX } from '@local/styles/sx';\nimport { KEY_SIZE_DATA } from '@local/theme/theme';\n\nimport { motion } from 'framer-motion';\nimport styled, { css } from 'styled-components';\n\nimport { Button, ButtonProps } from '../button';\nimport { DateDropdownDayProps, DateDropdownListProps, DateInputProps, DateStyledListProps, DateWrapperProps } from '.';\n\nexport const DateWrapper = styled.div<DateWrapperProps>`\n width: 100%;\n position: relative;\n height: fit-content;\n ${(props) =>\n props.$isMinWidth &&\n css`\n width: min-content;\n `}\n ${addSX};\n ${addNiceNumber};\n`;\n\nexport const DateDropdownListParent = styled(motion.div)<DateStyledListProps>`\n ${addRemoveScrollbar};\n`;\n\nexport const DateDropdownList = styled.div<DateDropdownListProps>`\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n padding-top: 6px;\n transform: translateZ(0);\n justify-content: flex-start;\n gap: 10px;\n ${addInputIsInputEffect};\n`;\n\nexport const DateDropdownDays = styled.div<{ $rows: number }>`\n display: grid;\n column-gap: normal;\n row-gap: normal;\n gap: 6px;\n grid-template-columns: repeat(7, 28px);\n grid-template-rows: repeat(${(props) => props.$rows}, 28px);\n justify-content: space-between;\n`;\n\nexport const addDateDropdownDaySize = css<DateDropdownDayProps>`\n ${(props) =>\n props.$size &&\n css`\n border-radius: ${KEY_SIZE_DATA[props.$size].radius}px;\n `};\n position: relative;\n overflow: hidden;\n isolation: isolate;\n user-select: none;\n background: ${(props) => props.theme.colors.date[props.$genre].background.rest};\n border-color: ${(props) => props.theme.colors.date[props.$genre].border.rest};\n color: ${(props) => props.theme.colors.date[props.$genre].color.rest};\n border: 1px solid transparent;\n grid-row: ${(props) => props.$row};\n grid-column: ${(props) => props.$column};\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n cursor: pointer;\n &:hover {\n ${(props) =>\n !props.$isDisabled &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.hover};\n border-color: ${props.theme.colors.date[props.$genre].border.hover};\n color: ${props.theme.colors.date[props.$genre].color.hover};\n `}\n }\n ${addTransition};\n\n ${(props) =>\n props.$isWeekend &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.weekend};\n border-color: ${props.theme.colors.date[props.$genre].border.weekend};\n color: ${props.theme.colors.date[props.$genre].color.weekend};\n `}\n ${(props) =>\n props.$isToday &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.today};\n border-color: ${props.theme.colors.date[props.$genre].border.today};\n color: ${props.theme.colors.date[props.$genre].color.today};\n `}\n ${(props) =>\n props.$isChoice &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.choice};\n border-color: ${props.theme.colors.date[props.$genre].border.choice};\n color: ${props.theme.colors.date[props.$genre].color.choice};\n `}\n ${(props) =>\n props.$isDisabled &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.weekend};\n border-color: ${props.theme.colors.date[props.$genre].border.weekend};\n color: ${props.theme.colors.date[props.$genre].color.weekend};\n opacity: 0.5;\n `}\n ${(props) =>\n !props.$isCurrentMonth &&\n css`\n opacity: 0.5;\n `}\n \n ${addFont};\n ${addOutline};\n`;\n\nexport const DateDropdownDay = styled.button<DateDropdownDayProps>`\n ${addDateDropdownDaySize}\n`;\nexport const DateDropdownDayOfWeek = styled.button<DateDropdownDayProps>`\n ${addDateDropdownDaySize}\n opacity: 1;\n background-color: transparent;\n`;\n\n/****************************************** Genre *************************************************/\nconst addDateInputGenre = css<DateInputProps>`\n background-color: ${(props) => (props.$isActive ? props.theme.palette.black10 : 'transparent')};\n ${(props) =>\n props.$isHaveValue\n ? css`\n color: ${props.theme.colors.input[props.$genre].color.rest};\n &:focus-visible {\n color: ${props.theme.colors.input[props.$genre].color.rest};\n }\n `\n : css`\n color: ${props.theme.colors.input[props.$genre].color.placeholder};\n `};\n`;\nconst addDateInputSize = css<DateInputProps>`\n border-radius: 4px;\n padding: 2px;\n min-width: 10px;\n`;\nexport const DateInput = styled.div<DateInputProps>`\n text-align: center;\n resize: none;\n overflow: hidden;\n border: 0px solid;\n background: transparent;\n margin: 0px !important;\n white-space: nowrap;\n ${addFont};\n ${addDateInputSize};\n ${addDateInputGenre};\n ${addRemoveOutline};\n`;\n\n/****************************************** Genre *************************************************/\nconst addDateInputWrapperGenre = css<DateInputProps>`\n ${(props) => css`\n background: ${props.theme.colors.input[props.$genre].background.rest};\n border-color: ${props.theme.colors.input[props.$genre].border.rest};\n color: ${props.theme.colors.input[props.$genre].color.rest};\n outline: 2px solid transparent;\n outline-offset: 1px;\n &:hover {\n background: ${props.theme.colors.input[props.$genre].background.hover};\n border-color: ${props.theme.colors.input[props.$genre].border.hover};\n color: ${props.theme.colors.input[props.$genre].color.hover};\n }\n ${\n props.$isOpen &&\n css`\n background: ${props.theme.colors.input[props.$genre].background.rest};\n border-color: ${props.theme.colors.input[props.$genre].border.rest};\n color: ${props.theme.colors.input[props.$genre].color.rest};\n outline: 2px solid ${(props) => props.theme.states.focus};\n `\n }\n `};\n`;\n\n/****************************************** Size *************************************************/\nexport const addDateInputWrapperSize = css<DateInputProps>`\n ${(props) => css`\n padding: ${props.$isShowPlaceholder ? `0px ${KEY_SIZE_DATA[props.$size].padding}px` : `0px ${KEY_SIZE_DATA[props.$size].padding}px 0px ${KEY_SIZE_DATA[props.$size].padding - 2}px`};\n height: ${KEY_SIZE_DATA[props.$size].height}px;\n min-height: ${KEY_SIZE_DATA[props.$size].height}px;\n max-height: ${KEY_SIZE_DATA[props.$size].height}px;\n border-radius: ${KEY_SIZE_DATA[props.$size].radius}px;\n `}\n`;\n\nexport const DateInputWrapper = styled.div<DateInputProps>`\n resize: none;\n overflow: hidden;\n width: 100%;\n border: 1px solid transparent;\n\n white-space: nowrap;\n\n display: flex;\n align-items: center;\n gap: 0px;\n\n ${addDisabled};\n ${addDateInputWrapperSize};\n ${addDateInputWrapperGenre};\n ${addTransition};\n ${addError};\n`;\n\nexport const addDateInputButtonSize = css<ButtonProps>`\n ${(props) => css`\n right:${KEY_SIZE_DATA[props.size].padding}px;\n `}\n`;\nexport const DateInputButton = styled(Button)`\n position: absolute;\n height: max-content !important;\n ${addDateInputButtonSize};\n`;\n","import { InputStandardProps, StyledInputProps, StyledInputWrapperProps } from '@local/components/input';\nimport { addFontProps, addOutlineProps, addOutlinePropsDollar } from '@local/styles/add';\nimport { addErrorProps, ErrorMessageProps } from '@local/styles/error';\nimport { addSXProps } from '@local/styles/sx';\nimport { IThemeGenreDate, IThemeSize } from '@local/theme';\nimport { AddDollarSign } from '@local/types';\n\nimport { SelectMonthProps } from '../select';\n\nexport type DatePickerMode = DatePickerVariant[];\nexport enum DatePickerVariant {\n DD = 'DD',\n MM = 'MM',\n YYYY = 'YYYY',\n}\n\nexport type CommonDatePickerProps = addErrorProps &\n addSXProps &\n addFontProps &\n addOutlineProps & {\n genre: TDateGenre;\n\n id?: string;\n\n isDisabled?: boolean;\n isBold?: boolean;\n isMinWidth?: boolean;\n\n isInputEffect?: InputStandardProps['isInputEffect'];\n\n isOnClickClose?: boolean;\n\n labelPlaceholder?: string;\n\n locale: {\n months: SelectMonthProps['monthsLocale'];\n weeks: WeekItem[];\n inputs: InputItem;\n };\n\n notValidDate?: Omit<ErrorMessageProps, 'size' | 'isError'>;\n\n mode?: DatePickerMode;\n\n name?: string;\n\n onBlur?: () => void;\n\n onChange: (timestamp: number | null) => void;\n\n onFocus?: () => void;\n\n size: IThemeSize;\n\n dateMax?: number;\n\n dateMin?: number;\n\n dateDefault: number;\n };\n\ntype ControlledValue = {\n value: number | null | undefined;\n\n defaultValue?: never;\n};\n\ntype UncontrolledValue = {\n defaultValue: number | null | undefined;\n\n value?: never;\n};\nexport type DatePickerProps = CommonDatePickerProps & (ControlledValue | UncontrolledValue);\n\nexport type TDateGenre = keyof IThemeGenreDate;\n\nexport interface DateDayProps {\n dayOfWeek: number;\n\n isCurrentMonth: boolean;\n\n isDisabled: boolean;\n\n isToday: boolean;\n\n isWeekend: boolean;\n\n labelNumber: number;\n\n labelString: string;\n\n value: number;\n\n weekOfMonth: number;\n}\n\nexport type DateWrapperProps = AddDollarSign<\n Pick<InputStandardProps, 'genre' | 'isDisabled'> & {\n parentListHeight: number;\n radius: number;\n isMinWidth?: boolean;\n }\n> &\n StyledInputWrapperProps;\n\nexport type DateInputProps = AddDollarSign<\n Pick<DatePickerProps, 'error' | 'genre' | 'size' | 'isBold' | 'isReadOnly' | 'isDisabled' | 'font'> & {\n isOpen?: boolean;\n isActive?: boolean;\n isHaveValue?: boolean;\n isShowPlaceholder?: boolean;\n }\n>;\n\nexport type DateStyledOptionProps = AddDollarSign<{\n isSelectedItem?: boolean;\n isCheckboxProps?: boolean;\n}> &\n StyledInputProps;\n\nexport type DateStyledListProps = AddDollarSign<Pick<InputStandardProps, 'genre' | 'size'>>;\n\nexport type DateDropdownListProps = AddDollarSign<\n Pick<DatePickerProps, 'isInputEffect'> & Pick<DatePickerProps, 'genre' | 'size'>\n>;\n\nexport type DateDropdownDayProps = AddDollarSign<\n Pick<DatePickerProps, 'genre' | 'size' | 'font'> &\n Pick<DateDayProps, 'isToday' | 'isWeekend'> & {\n row: number;\n column: number;\n isChoice?: boolean;\n isCurrentMonth?: boolean;\n isDisabled?: boolean;\n }\n> &\n addOutlinePropsDollar;\n\nexport type MonthItem = {\n localeLong: string;\n\n localeShort: string;\n\n value:\n | 'january'\n | 'february'\n | 'march'\n | 'april'\n | 'may'\n | 'june'\n | 'july'\n | 'august'\n | 'september'\n | 'october'\n | 'november'\n | 'december';\n};\nexport type WeekItem = {\n localeLong: string;\n\n localeShort: string;\n\n value: 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su';\n};\nexport type InputItem = {\n day: string;\n\n month: string;\n\n year: string;\n};\n","import { Button } from '@local/components/button';\nimport { Ripple } from '@local/components/ripple';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport moment, { Moment } from 'moment';\nimport { Fragment, KeyboardEvent, RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Popover, usePopover } from '../popover';\nimport { Typography } from '../typography';\nimport {\n DateDayProps,\n DateDropdownDay,\n DateDropdownDayOfWeek,\n DateDropdownDays,\n DateDropdownList,\n DateInput,\n DateInputButton,\n DateInputWrapper,\n DatePickerMode,\n DatePickerProps,\n DatePickerVariant,\n DateWrapper,\n WeekItem,\n} from '.';\n\nfunction countSevens(number: number) {\n const divisor = 7;\n const count = Math.floor(number / divisor);\n const remainder = number % divisor;\n\n return remainder > 0 ? count + 1 : count;\n}\n\nexport const DatePicker = (props: DatePickerProps) => {\n const { onChange } = props;\n const theme = useTheme();\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n const [dateDefaultMoment, setDateDefaultMoment] = useState<Moment>(moment(props.dateDefault).utc());\n\n const [input, setInput] = useState<Record<DatePickerVariant, number | null>>({\n [DatePickerVariant.DD]: null,\n [DatePickerVariant.MM]: null,\n [DatePickerVariant.YYYY]: null,\n });\n\n const isHasInput = useMemo(() => {\n return (\n input[DatePickerVariant.DD] !== null ||\n input[DatePickerVariant.MM] !== null ||\n input[DatePickerVariant.YYYY] !== null\n );\n }, [input]);\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: null,\n [DatePickerVariant.MM]: null,\n [DatePickerVariant.YYYY]: null,\n });\n }, []);\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: DatePickerMode = useMemo(() => {\n if (!props.mode || props.mode.length === 0) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт\n }\n\n const hasDuplicates = new Set(props.mode).size !== props.mode.length;\n\n if (hasDuplicates) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт при дублировании\n }\n\n return props.mode;\n }, [props.mode]);\n\n const getNextSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n },\n [mode],\n );\n\n const getPrevSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n },\n [mode],\n );\n\n const dataDate = useMemo(() => {\n const result = {\n MM: {\n nextSegment: getNextSegment(DatePickerVariant.MM),\n preSegment: getPrevSegment(DatePickerVariant.MM),\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.MM)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.MM)),\n isLast: mode[mode.length - 1] === DatePickerVariant.MM,\n isFirst: mode[0] === DatePickerVariant.MM,\n type: DatePickerVariant.MM,\n value: input.MM,\n setValue: (value: number | null) => setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.MM]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.MM),\n placeholder: props.locale.inputs.month,\n },\n DD: {\n nextSegment: getNextSegment(DatePickerVariant.DD),\n preSegment: getPrevSegment(DatePickerVariant.DD),\n isLast: mode[mode.length - 1] === DatePickerVariant.DD,\n isFirst: mode[0] === DatePickerVariant.DD,\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.DD)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.DD)),\n type: DatePickerVariant.DD,\n value: input.DD,\n setValue: (value: number | null) => setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.DD]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.DD),\n placeholder: props.locale.inputs.day,\n },\n YYYY: {\n nextSegment: getNextSegment(DatePickerVariant.YYYY),\n preSegment: getPrevSegment(DatePickerVariant.YYYY),\n isLast: mode[mode.length - 1] === DatePickerVariant.YYYY,\n isFirst: mode[0] === DatePickerVariant.YYYY,\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.YYYY)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.YYYY)),\n type: DatePickerVariant.YYYY,\n value: input.YYYY,\n setValue: (value: number | null) =>\n setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.YYYY]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.YYYY),\n placeholder: props.locale.inputs.year,\n },\n };\n const resultSort = mode\n .map((e) => {\n if (e === DatePickerVariant.DD) return result.DD;\n if (e === DatePickerVariant.MM) return result.MM;\n if (e === DatePickerVariant.YYYY) return result.YYYY;\n return null;\n })\n .filter((e) => e !== null);\n return { sort: resultSort, default: result };\n }, [\n props.locale.inputs.day,\n props.locale.inputs.month,\n props.locale.inputs.year,\n getNextSegment,\n getPrevSegment,\n mode,\n input.DD,\n input.MM,\n input.YYYY,\n ]);\n const daysInWeek = useMemo(() => {\n const weekOrder: WeekItem['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n const daysInMonth: DateDayProps[] = useMemo(() => {\n const today = moment.utc();\n const startOfMonth = (valueMoment ?? dateDefaultMoment).clone().startOf('month');\n const endOfMonth = (valueMoment ?? dateDefaultMoment).clone().endOf('month');\n const days = [];\n\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n const daysToAddBefore = startOfMonth.isoWeekday() - 1;\n if (daysToAddBefore > 0) {\n for (let i = daysToAddBefore; i > 0; i--) {\n const day = startOfMonth.clone().subtract(i, 'days');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(dateMin, 'day') || day.isAfter(dateMax, 'day'),\n });\n }\n }\n\n const currentDate = startOfMonth.clone();\n while (currentDate <= endOfMonth) {\n days.push({\n value: currentDate.valueOf(),\n labelString: currentDate.format('dd'),\n labelNumber: currentDate.date(),\n dayOfWeek: currentDate.isoWeekday(),\n isWeekend: currentDate.isoWeekday() === 6 || currentDate.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: currentDate.isSame(today, 'day'),\n isCurrentMonth: true,\n isDisabled: currentDate.isBefore(dateMin, 'day') || currentDate.isAfter(dateMax, 'day'),\n });\n currentDate.add(1, 'day');\n }\n\n const daysToAddAfter = 7 - endOfMonth.isoWeekday();\n if (daysToAddAfter > 0) {\n for (let i = 1; i <= daysToAddAfter; i++) {\n const day = endOfMonth.clone().add(i, 'days').startOf('day');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(dateMin, 'day') || day.isAfter(dateMax, 'day'),\n });\n }\n }\n\n days.sort((a, b) => a.value - b.value);\n return days;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => countSevens(daysInMonth.length) + 1, [daysInMonth]);\n const height = useMemo(\n () => 40 + rows * 28 + (rows - 1) * 6 + KEY_SIZE_DATA[props.size].padding * 2,\n [props.size, rows],\n );\n\n const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\n\n const isHasValue = useMemo(() => {\n return valueMoment !== null;\n }, [valueMoment]);\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(!isInputFocused && !isHasValue && props.labelPlaceholder && !isOpen && !isHasInput && !activeSegment);\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment]);\n\n const onChangeDate = useCallback(\n (timestamp: number) => {\n const momentNewDate = moment(timestamp).utc();\n if (valueMoment?.isSame(momentNewDate, 'day')) return;\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n\n setInput({\n [DatePickerVariant.DD]: momentNewDate.clone().date(),\n [DatePickerVariant.MM]: momentNewDate.clone().month() + 1,\n [DatePickerVariant.YYYY]: momentNewDate.clone().year(),\n });\n },\n [valueMoment, onChange],\n );\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n handleDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNext();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== null) {\n const current = input.DD.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== null) {\n const current = input.MM.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== null) {\n const current = input.YYYY.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrev();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNext();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf());\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf());\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n }, [props.value, props.defaultValue]);\n\n const getValidateInput = useCallback(\n (\n input: Record<DatePickerVariant, number | null>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n ) => {\n const day = input.DD ?? NaN;\n const month = input.MM ?? NaN;\n const year = input.YYYY ?? NaN;\n const isHasInput =\n input[DatePickerVariant.DD] !== null ||\n input[DatePickerVariant.MM] !== null ||\n input[DatePickerVariant.YYYY] !== null;\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n },\n [],\n );\n\n useEffect(() => {\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [getValidateInput, onChangeDate, onChange, input]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [getValidateInput, onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment]);\n return (\n <>\n <DateWrapper\n $size={props.size}\n $genre={props.genre}\n $sx={props.sx}\n $isDisabled={props?.isDisabled}\n $isMinWidth={props?.isMinWidth}\n $radius={sizeRadius}\n $parentListHeight={height}\n tabIndex={-1}\n >\n <DateInputWrapper\n ref={refReference as RefObject<HTMLDivElement | null>}\n $genre={props.genre}\n $size={props.size}\n $isShowPlaceholder={isShowPlaceholder}\n $isDisabled={props?.isDisabled}\n $isReadOnly={props?.isReadOnly}\n tabIndex={-1}\n $error={\n isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error\n }\n $isOpen={isOpen || !!activeSegment}\n onClick={() => {\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }}\n >\n <input\n name={props.name}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={handleKeyDown}\n onChange={(e) => {\n const value = e.target.value;\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n handleKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n handleKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n // if (newChar === '\\n') {\n // close();\n // }\n }}\n onFocus={() => {\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }}\n onBlur={() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }}\n />\n {isShowPlaceholder ? (\n <Typography\n sx={{ default: { size: 16, line: 1, isNoUserSelect: true } }}\n sxStandard={(theme) => ({\n default: {\n color: theme.colors.input[props.genre].color.placeholder,\n },\n })}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <DateInput\n $isHaveValue={!!date.value}\n $isActive={activeSegment === date.type}\n $genre={props.genre}\n $size={props.size}\n $font={{\n size: props.font?.size ?? 16,\n weight: props.font?.weight ?? (props.isBold ? 500 : 400),\n family: props.font?.family ?? theme.font.family,\n height: props.font?.height ?? theme.font.lineHeight,\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value != null\n ? String(date.value).padStart(date.type === DatePickerVariant.YYYY ? 1 : 2, '0')\n : date.placeholder || ''}\n </DateInput>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n <DateInputButton\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isRadius\n isOnlyIcon\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n </DateInputWrapper>\n </DateWrapper>\n <Popover\n sx={(theme) => ({\n default: {\n background: theme.colors.input[props.genre].background.rest,\n border: `solid 1px ${theme.colors.input[props.genre].border.rest}`,\n },\n })}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n isShowAlwaysOutline\n floatingStyles={floatingStyles}\n ref={refFloating}\n >\n <DateDropdownList $isInputEffect={props.isInputEffect} $genre={props.genre} $size={props.size}>\n <Stack\n sx={{\n default: {\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n }}\n >\n <Button\n type='button'\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={props.genre}\n size={'small'}\n onClick={() => !isBlockPrevMonth && onPrevMonth()}\n isHidden={isBlockPrevMonth}\n />\n <Stack sx={{ default: { gap: '8px' } }}>\n <SelectMonth\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n <SelectYear\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n </Stack>\n <Button\n type='button'\n onClick={() => !isBlockNextMonth && onNextMonth()}\n isWidthAsHeight\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <DateDropdownDays $rows={rows}>\n {daysInWeek.map((e, index) => (\n <DateDropdownDayOfWeek\n $font={{\n size: 12,\n weight: 700,\n family: props.font?.family ?? theme.font.family,\n }}\n tabIndex={-1}\n type='button'\n $isToday={false}\n $isWeekend={false}\n $genre={props.genre}\n $size={props.size}\n $row={daysInMonth[0]?.weekOfMonth - 1}\n $column={index + 1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </DateDropdownDayOfWeek>\n ))}\n {daysInMonth.map((day) => (\n <DateDropdownDay\n $font={{\n size: 12,\n weight: 700,\n family: props.font?.family ?? theme.font.family,\n }}\n type='button'\n $isDisabled={day.isDisabled}\n $isDisabledOutline={day.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $genre={props.genre}\n $size={props.size}\n $row={day?.weekOfMonth + 1}\n $column={day.dayOfWeek}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n $isToday={day.isToday}\n $isWeekend={day.isWeekend}\n $isChoice={day.value === valueMoment?.valueOf()}\n $isCurrentMonth={day.isCurrentMonth}\n >\n {!day.isDisabled && <Ripple color={theme.colors.date[props.genre].color.rest} />}\n {day.labelNumber}\n </DateDropdownDay>\n ))}\n </DateDropdownDays>\n </DateDropdownList>\n </Popover>\n {isError || props?.error ? (\n <ErrorMessage\n {...(isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error)}\n size={props?.error?.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: props.font?.family ?? theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\nfunction handleDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, number | null>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: number) => void; onNext: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg]?.toString() ?? ''; // Преобразуем number в string для работы\n\n // Вспомогательная проверка\n const isZero = (s: string) => s === '0';\n const toNum = (s: string) => Number(s);\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31, ноль недопустим как самостоятельное значение\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n return;\n }\n\n // special-case: если было '0' и пользователь ввёл не '0' — НЕ подставляем '0' перед цифрой,\n // сохраняем single-digit и считаем ввод завершённым (переходим).\n if (current.length === 1 && isZero(current)) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed); // сохраняем число, а не строку\n dataDate.default[seg].onNext();\n return;\n }\n\n // обычный путь: добавляем цифру и решаем — перезаписать или дополнить\n const potential = current + digit;\n const potentialParsed = toNum(potential);\n\n // ИСПРАВЛЕНИЕ: если потенциальное значение больше 31, используем только новую цифру и переходим дальше\n if (potentialParsed > 31) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n dataDate.default[seg].onNext(); // Переходим к следующему сегменту\n return;\n }\n\n // Если потенциальное значение равно 0, используем только новую цифру\n const nextValue = potentialParsed === 0 ? digit : potential;\n const parsed = toNum(nextValue);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n if (nextValue.length === 2) dataDate.default[seg].onNext();\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12, ноль недопустим как самостоятельное значение\n if (current.length >= 2) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed);\n return;\n }\n\n if (current.length === 1 && isZero(current)) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed); // сохраняем число, а не строку\n dataDate.default[seg].onNext();\n return;\n }\n\n const potential = current + digit;\n const potentialParsed = toNum(potential);\n const nextValue = potentialParsed === 0 || potentialParsed > 12 ? digit : potential;\n\n const parsed = toNum(nextValue);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed);\n if (nextValue.length === 2 || (nextValue.length === 1 && parsed > 1)) {\n dataDate.default[seg].onNext();\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр. Если уже 4 — начинаем заново (как раньше)\n if (current.length >= 4) {\n if (digit === '0') return;\n dataDate.default[seg].setValue(toNum(digit));\n return;\n }\n\n const nextValue = (current + digit).slice(-4);\n dataDate.default[seg].setValue(toNum(nextValue));\n }\n}\n"],"names":["DateWrapper","styled","div","props","$isMinWidth","css","addSX","addNiceNumber","DateDropdownListParent","motion","addRemoveScrollbar","DateDropdownList","addInputIsInputEffect","DateDropdownDays","$rows","addDateDropdownDaySize","$size","KEY_SIZE_DATA","radius","theme","colors","date","$genre","background","rest","border","color","$row","$column","$isDisabled","hover","addTransition","$isWeekend","weekend","$isToday","today","$isChoice","choice","$isCurrentMonth","addFont","addOutline","DateDropdownDay","button","DateDropdownDayOfWeek","addDateInputGenre","$isActive","palette","black10","$isHaveValue","input","placeholder","addDateInputSize","DateInput","addRemoveOutline","addDateInputWrapperGenre","$isOpen","states","focus","addDateInputWrapperSize","$isShowPlaceholder","padding","height","DateInputWrapper","addDisabled","addError","addDateInputButtonSize","size","DateInputButton","Button","DatePickerVariant","onChange","useTheme","valueMoment","setValueMoment","useState","dateDefaultMoment","setDateDefaultMoment","moment","dateDefault","utc","setInput","DD","MM","YYYY","isHasInput","useMemo","onClearInput","useCallback","activeSegment","setActiveSegment","isError","setIsError","mode","length","Set","getNextSegment","currentSegment","currentIndex","indexOf","getPrevSegment","dataDate","result","nextSegment","preSegment","onNext","onPrev","isLast","isFirst","type","value","setValue","prevValue","setActive","locale","inputs","month","day","year","sort","map","e","filter","default","daysInWeek","key","index","found","weeks","find","w","label","localeShort","toUpperCase","daysInMonth","startOfMonth","clone","startOf","endOfMonth","endOf","days","dateMin","dateMax","daysToAddBefore","isoWeekday","i","subtract","push","valueOf","labelString","format","labelNumber","dayOfWeek","isWeekend","weekOfMonth","Math","ceil","isToday","isSame","isCurrentMonth","isDisabled","isBefore","isAfter","currentDate","add","daysToAddAfter","a","b","rows","number","count","floor","countSevens","sizeRadius","sizePadding","isHasValue","isBlockNextMonth","nextMonth","isBlockPrevMonth","prevMonth","isInputFocused","setIsInputFocused","refPrevValue","useRef","refSelectMonth","refSelectYear","refHiddenInput","onFocusPopover","_a","onFocus","call","onBlurPopover","onBlur","onBlurReference","isOpen","refReference","refFloating","floatingStyles","close","toggle","usePopover","placement","offset","isClickOutside","refsExcludeClickOutside","isReadOnly","isShowPlaceholder","labelPlaceholder","onChangeDate","timestamp","momentNewDate","handleKeyDown","isDigit","test","includes","ctrlKey","metaKey","digit","seg","current","toString","isZero","s","toNum","Number","parsed","potential","potentialParsed","nextValue","slice","handleDigitKey","preventDefault","stopPropagation","blur","newValue","onNextMonth","newDate","onPrevMonth","useEffect","defaultValue","getValidateInput","onSuccess","onFailure","onNan","NaN","isNaN","m","isValid","jsxs","Fragment","children","jsx","genre","$sx","sx","isMinWidth","$radius","$parentListHeight","tabIndex","ref","$isReadOnly","$error","error","notValidDate","onClick","name","id","inputMode","disabled","style","position","top","left","width","opacity","onKeyDown","target","newChar","Typography","line","isNoUserSelect","sxStandard","$font","font","weight","_b","isBold","family","_c","_d","lineHeight","String","padStart","pointerEvents","textAlign","isWidthAsHeight","isFullSize","isRadius","isOnlyIcon","icons","Popover","isShowAlwaysOutline","$isInputEffect","isInputEffect","Stack","justifyContent","alignItems","turn","isHidden","gap","SelectMonth","monthsLocale","months","isOnClickOptionClose","isStayValueAfterSelect","isOnlyColorInSelectListOption","isCenter","isShortLabel","SelectYear","$isDisabledOutline","isDisabledOutline","$isOutlineBoxShadow","isOutlineBoxShadow","isOnClickClose","Ripple","ErrorMessage"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./context.constants-cm50ZUiS.cjs");exports.DEFAULT_PROVIDER_SONNER_BUTTON=e.DEFAULT_PROVIDER_SONNER_BUTTON,exports.DEFAULT_PROVIDER_SONNER_DURATION=e.DEFAULT_PROVIDER_SONNER_DURATION,exports.DEFAULT_PROVIDER_SONNER_GENRE=e.DEFAULT_PROVIDER_SONNER_GENRE,exports.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM=e.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,exports.DEFAULT_PROVIDER_SONNER_SCALE=e.DEFAULT_PROVIDER_SONNER_SCALE,exports.DEFAULT_PROVIDER_SONNER_Y=e.DEFAULT_PROVIDER_SONNER_Y,exports.DEFAULT_PROVIDER_SONNER_Z_INDEX=e.DEFAULT_PROVIDER_SONNER_Z_INDEX,exports.ProviderSonner=e.ProviderSonner,exports.SonnerButtonWrapper=e.SonnerButtonWrapper,exports.SonnerContent=e.SonnerContent,exports.SonnerContentDescription=e.SonnerContentDescription,exports.SonnerContentTitle=e.SonnerContentTitle,exports.SonnerContext=e.SonnerContext,exports.SonnerElementWrapper=e.SonnerElementWrapper,exports.SonnerIcon=e.SonnerIcon,exports.SonnerLayout=e.SonnerLayout,exports.useSonner=e.useSonner;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./context.constants-D0P7bVk9.cjs");exports.DEFAULT_PROVIDER_SONNER_BUTTON=e.DEFAULT_PROVIDER_SONNER_BUTTON,exports.DEFAULT_PROVIDER_SONNER_DURATION=e.DEFAULT_PROVIDER_SONNER_DURATION,exports.DEFAULT_PROVIDER_SONNER_GENRE=e.DEFAULT_PROVIDER_SONNER_GENRE,exports.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM=e.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,exports.DEFAULT_PROVIDER_SONNER_SCALE=e.DEFAULT_PROVIDER_SONNER_SCALE,exports.DEFAULT_PROVIDER_SONNER_Y=e.DEFAULT_PROVIDER_SONNER_Y,exports.DEFAULT_PROVIDER_SONNER_Z_INDEX=e.DEFAULT_PROVIDER_SONNER_Z_INDEX,exports.ProviderSonner=e.ProviderSonner,exports.SonnerButtonWrapper=e.SonnerButtonWrapper,exports.SonnerContent=e.SonnerContent,exports.SonnerContentDescription=e.SonnerContentDescription,exports.SonnerContentTitle=e.SonnerContentTitle,exports.SonnerContext=e.SonnerContext,exports.SonnerElementWrapper=e.SonnerElementWrapper,exports.SonnerIcon=e.SonnerIcon,exports.SonnerLayout=e.SonnerLayout,exports.useSonner=e.useSonner;
2
2
  //# sourceMappingURL=context-sonner.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { m, j, k, l, h, i, D, P, g, c, f, e, S, b, d, a, u } from "./context.constants-DOMoMUoD.js";
1
+ import { m, j, k, l, h, i, D, P, g, c, f, e, S, b, d, a, u } from "./context.constants-C4xdihsb.js";
2
2
  export {
3
3
  m as DEFAULT_PROVIDER_SONNER_BUTTON,
4
4
  j as DEFAULT_PROVIDER_SONNER_DURATION,
@@ -1,6 +1,6 @@
1
1
  import { createContext, memo, useMemo, useState, useCallback, useContext } from "react";
2
2
  import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
3
- import { c as Button } from "./component-CN6att4f.js";
3
+ import { c as Button } from "./component-CeuA5Ry0.js";
4
4
  import { I as Icon } from "./component.styles-DS0ofW1Y.js";
5
5
  import { motion, AnimatePresence } from "framer-motion";
6
6
  import styled, { useTheme, css } from "styled-components";
@@ -389,4 +389,4 @@ export {
389
389
  DEFAULT_PROVIDER_SONNER_BUTTON as m,
390
390
  useSonner as u
391
391
  };
392
- //# sourceMappingURL=context.constants-DOMoMUoD.js.map
392
+ //# sourceMappingURL=context.constants-C4xdihsb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.constants-DOMoMUoD.js","sources":["../src/contexts/context-sonner/context.tsx","../src/contexts/context-sonner/context.hooks.ts","../src/contexts/context-sonner/context.styles.tsx","../src/contexts/context-sonner/context.constants.ts"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Icon } from '@local/components/icon';\n\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { createContext, FC, memo, useCallback, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n DEFAULT_PROVIDER_SONNER_BUTTON,\n DEFAULT_PROVIDER_SONNER_DURATION,\n DEFAULT_PROVIDER_SONNER_GENRE,\n DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,\n DEFAULT_PROVIDER_SONNER_SCALE,\n DEFAULT_PROVIDER_SONNER_Y,\n DEFAULT_PROVIDER_SONNER_Z_INDEX,\n ProviderSonnerProps,\n SonnerButtonWrapper,\n SonnerContent,\n SonnerContentDescription,\n SonnerContentProps,\n SonnerContentStandardProps,\n SonnerContentTitle,\n SonnerContextProps,\n SonnerElementProps,\n SonnerElementWrapper,\n SonnerIcon,\n SonnerLayout,\n} from '.';\n\nexport const SonnerContext = createContext<SonnerContextProps | null>(null);\n\nexport const ProviderSonner: FC<ProviderSonnerProps> = (props) => {\n const memoVisibleToasts: ProviderSonnerProps['visibleToasts'] = useMemo(\n () => props.visibleToasts,\n [props.visibleToasts],\n );\n const memoDefaultDescription: ProviderSonnerProps['default']['description'] = useMemo(\n () => props?.default?.description,\n [props?.default?.description],\n );\n const memoDefaultTitle: ProviderSonnerProps['default']['title'] = useMemo(\n () => props?.default?.title,\n [props?.default?.title],\n );\n const memoDefaultButton: ProviderSonnerProps['default']['button'] = useMemo(\n () => props?.default?.button,\n [props?.default?.button],\n );\n const memoDefaultHidingTime: ProviderSonnerProps['default']['hidingTime'] = useMemo(\n () => props?.default?.hidingTime,\n [props?.default?.hidingTime],\n );\n const memoDefaultHidingMode: ProviderSonnerProps['default']['hidingMode'] = useMemo(\n () => props?.default?.hidingMode ?? 'clickOnButton',\n [props?.default?.hidingMode],\n );\n const memoDefaultGenre = useMemo(\n () => props?.default?.genre ?? DEFAULT_PROVIDER_SONNER_GENRE,\n [props?.default?.genre],\n );\n\n const isTop = useMemo(() => props.position.includes('top'), [props.position]);\n\n const [contentHistory, setContentHistory] = useState<SonnerContentProps[]>([]);\n\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const remove: SonnerContextProps['remove'] = useCallback(\n (id) => {\n setContentHistory((prev) => {\n const itemToRemove = prev.find((item) => item.id === id);\n\n if (!itemToRemove) return prev;\n\n const indexToRemove = itemToRemove.index;\n\n const updatedHistory = prev\n .filter((item) => item.id !== id)\n .map((item) => ({\n ...item,\n index: item.index > indexToRemove ? item.index - 1 : item.index,\n }));\n\n if (updatedHistory.length === 0) handleMouseLeave();\n\n return updatedHistory;\n });\n },\n [handleMouseLeave],\n );\n\n const toast: SonnerContextProps['toast'] = useCallback(\n (content) => {\n const id = content.id ?? uuidv4();\n\n const hidingTime = content.hidingTime ?? memoDefaultHidingTime;\n\n setContentHistory((prev) => {\n const existingIndex = prev.findIndex((item) => item.id === id);\n\n let updatedHistory;\n if (existingIndex !== -1) {\n // Replace existing item\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...content, id, index: prev[existingIndex].index };\n } else {\n // Add new item\n updatedHistory = prev.map((item) => ({\n ...item,\n index: item.index + 1,\n }));\n const newContent = { ...content, id, index: 0 };\n updatedHistory.unshift(newContent);\n }\n\n return updatedHistory;\n });\n\n if (hidingTime !== undefined) {\n setTimeout(() => {\n remove(id);\n }, hidingTime);\n }\n },\n [memoDefaultHidingTime, remove],\n );\n const promise: SonnerContextProps['promise'] = useCallback(\n <T,>(\n promise: Promise<T>,\n expectation: Omit<SonnerContentProps, 'index'>,\n localToast: (success: T | undefined, error: unknown | undefined) => Omit<SonnerContentProps, 'index'>,\n ) => {\n const id = uuidv4();\n toast({ ...expectation, id, isLoading: true });\n\n return promise\n .then((result) => {\n toast({ ...localToast(result, undefined), id });\n })\n .catch((error) => {\n toast({ ...localToast(undefined, error), id });\n });\n },\n [toast],\n );\n const handleOnClick = useCallback(\n (id: SonnerContentStandardProps['id']) => {\n remove(id);\n },\n [remove],\n );\n const theme = useTheme();\n return (\n <SonnerContext.Provider value={{ toast, promise, remove, contentHistory }}>\n <SonnerLayout\n $zIndex={props.zIndex ?? DEFAULT_PROVIDER_SONNER_Z_INDEX}\n $position={props.position}\n $gap={props.gap}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <AnimatePresence>\n {contentHistory.map((content) => {\n const index = content.index;\n const isMoreThanLastViewIndexPlusOne = memoVisibleToasts ? index > memoVisibleToasts : false;\n const isMoreThanLastViewIndex = memoVisibleToasts ? index > memoVisibleToasts - 1 : false;\n const isLastViewIndex = memoVisibleToasts ? index == memoVisibleToasts - 1 : false;\n const localGenre = content.genre ?? memoDefaultGenre;\n const buttonGenre = theme.colors.sonner[localGenre].button.genre;\n const hidingMode = content.hidingMode ?? memoDefaultHidingMode;\n\n const localContent = 'content' in content ? content.content : false;\n const localTitle = 'title' in content ? content.title : false;\n const localDescription = 'description' in content ? content.description : false;\n return (\n <MemoizedSonnerElement\n isMoreThanLastViewIndexPlusOne={isMoreThanLastViewIndexPlusOne}\n isMoreThanLastViewIndex={isMoreThanLastViewIndex}\n isLastViewIndex={isLastViewIndex}\n isTop={isTop}\n key={content.id}\n id={content.id}\n icon={content.icon}\n isLoading={content.isLoading}\n index={index}\n buttonGenre={buttonGenre}\n hidingMode={hidingMode}\n isHovered={isHovered}\n genre={localGenre}\n content={localContent}\n title={localTitle || memoDefaultTitle}\n description={localDescription || memoDefaultDescription}\n button={content.button ?? memoDefaultButton ?? DEFAULT_PROVIDER_SONNER_BUTTON}\n handleOnClick={handleOnClick}\n />\n );\n })}\n </AnimatePresence>\n </SonnerLayout>\n {props.children}\n </SonnerContext.Provider>\n );\n};\n\nconst SonnerElement = (props: SonnerElementProps) => {\n return (\n <motion.div\n key={props.id}\n layout\n initial={{\n opacity: 0,\n scale: 1,\n y: props.isLastViewIndex\n ? !props.isTop\n ? -DEFAULT_PROVIDER_SONNER_Y\n : DEFAULT_PROVIDER_SONNER_Y\n : !props.isTop\n ? DEFAULT_PROVIDER_SONNER_Y\n : -DEFAULT_PROVIDER_SONNER_Y,\n }}\n animate={{\n y: 0,\n opacity: props.isMoreThanLastViewIndex ? 0 : 1,\n pointerEvents: props.isMoreThanLastViewIndex ? 'none' : 'auto',\n display: props.isMoreThanLastViewIndex ? 'none' : 'flex',\n scale: !props.isHovered ? 1 - props.index * DEFAULT_PROVIDER_SONNER_SCALE : 1,\n marginTop: props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n marginBottom: !props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n }}\n style={{\n zIndex: -props.index,\n }}\n whileInView={{ opacity: props.isMoreThanLastViewIndex ? 0 : 1 }}\n exit={{ opacity: 0, y: !props.isTop ? DEFAULT_PROVIDER_SONNER_Y : -DEFAULT_PROVIDER_SONNER_Y }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_SONNER_DURATION }}\n >\n <SonnerElementWrapper\n $genre={props.genre}\n onClick={() => props.hidingMode === 'clickOnSonner' && props.handleOnClick(props.id, 'clickOnSonner')}\n >\n {(props.isLoading || props.icon) && (\n <SonnerIcon>\n {props.isLoading ? (\n <Icon size='medium' type='loading' name='Line' />\n ) : (\n props.icon && <Icon name={props.icon} type='id' size={'medium'} />\n )}\n </SonnerIcon>\n )}\n <SonnerContent>\n {props.content ? (\n props.content\n ) : (\n <>\n {props.title && (\n <SonnerContentTitle\n $genre={props.genre}\n $font={{\n size: 14,\n weight: 700,\n }}\n >\n {props.title}\n </SonnerContentTitle>\n )}\n {props.description && (\n <SonnerContentDescription\n $font={{\n size: 12,\n weight: 400,\n }}\n $genre={props.genre}\n >\n {props.description}\n </SonnerContentDescription>\n )}\n </>\n )}\n </SonnerContent>\n\n {props.button && props.button.content && (\n <SonnerButtonWrapper>\n <Button\n genre={props.buttonGenre}\n size='small'\n onClick={() => props.hidingMode === 'clickOnButton' && props.handleOnClick(props.id, 'clickOnButton')}\n >\n {props.button.content}\n </Button>\n </SonnerButtonWrapper>\n )}\n </SonnerElementWrapper>\n </motion.div>\n );\n};\nconst MemoizedSonnerElement = memo(SonnerElement);\n","import { useContext } from 'react';\n\nimport { SonnerContext, SonnerContextProps } from '.';\n\nexport const useSonner = (): SonnerContextProps => {\n const context = useContext(SonnerContext);\n if (!context) {\n throw new Error('useSonner must be used within an ProviderSonner');\n }\n return context;\n};\n","import { addRemoveScrollbar, addTransition } from '@local/styles/add';\n\nimport styled, { css } from 'styled-components';\n\nimport {\n SonnerContentDescriptionProps,\n SonnerContentTitleProps,\n SonnerElementWrapperProps,\n SonnerLayoutProps,\n} from '.';\n\nexport const SonnerLayout = styled.div<SonnerLayoutProps>`\n position: fixed;\n z-index: ${(props) => props.$zIndex};\n max-height: calc(100dvh - 20px);\n width: 320px;\n display: flex;\n margin: 10px;\n gap: ${(props) => props.$gap}px;\n box-sizing: content-box;\n overflow-y: visible;\n overflow-x: visible;\n ${addRemoveScrollbar}\n ${(props) =>\n props.$position === 'bottom-center'\n ? css`\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-left'\n ? css`\n left: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-right'\n ? css`\n right: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'top-right'\n ? css`\n top: 0;\n right: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-left'\n ? css`\n top: 0;\n left: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-center'\n ? css`\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-end;\n flex-direction: column;\n `\n : css``}\n`;\n\nexport const SonnerElementWrapper = styled.div<SonnerElementWrapperProps>`\n background: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.background};\n color: ${(props) => props.theme.colors.sonner[props.$genre].icon.color};\n border-radius: 12px;\n border-style: solid;\n border-color: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.borderColor};\n border-width: 1px;\n padding: 16px 20px 16px 20px;\n display: flex;\n flex-direction: row;\n gap: 10px;\n align-items: center;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex-shrink: 1;\n min-width: 320px;\n min-height: 64px;\n transform-origin: center center;\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadow};\n overflow: visible;\n &:hover {\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadowHover};\n }\n ${addTransition};\n`;\nexport const SonnerContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2px;\n align-items: flex-start;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex: 1;\n position: relative;\n overflow: hidden;\n`;\nexport const SonnerIcon = styled.div`\n display: contents;\n`;\nexport const SonnerContentTitle = styled.div<SonnerContentTitleProps>`\n color: ${(props) => props.theme.colors.sonner[props.$genre].title.color};\n text-align: left;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nexport const SonnerContentDescription = styled.div<SonnerContentDescriptionProps>`\n color:${(props) => props.theme.colors.sonner[props.$genre].description.color};\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nexport const SonnerButtonWrapper = styled.div``;\n","import { ITheme } from '@local/theme';\n\nimport { ProviderSonnerProps } from '.';\n\nexport const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100;\nexport const DEFAULT_PROVIDER_SONNER_SCALE = 0.04;\nexport const DEFAULT_PROVIDER_SONNER_Y = 100;\nexport const DEFAULT_PROVIDER_SONNER_DURATION = 0.3;\nexport const DEFAULT_PROVIDER_SONNER_GENRE: keyof ITheme['colors']['sonner'] = 'black';\nexport const DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM = 60;\nexport const DEFAULT_PROVIDER_SONNER_BUTTON: ProviderSonnerProps['default']['button'] = {\n content: 'Undo',\n onClick: () => {},\n};\n"],"names":["_a","uuidv4","promise","jsxs","jsx","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"context.constants-C4xdihsb.js","sources":["../src/contexts/context-sonner/context.tsx","../src/contexts/context-sonner/context.hooks.ts","../src/contexts/context-sonner/context.styles.tsx","../src/contexts/context-sonner/context.constants.ts"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Icon } from '@local/components/icon';\n\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { createContext, FC, memo, useCallback, useMemo, useState } from 'react';\nimport { useTheme } from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n DEFAULT_PROVIDER_SONNER_BUTTON,\n DEFAULT_PROVIDER_SONNER_DURATION,\n DEFAULT_PROVIDER_SONNER_GENRE,\n DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,\n DEFAULT_PROVIDER_SONNER_SCALE,\n DEFAULT_PROVIDER_SONNER_Y,\n DEFAULT_PROVIDER_SONNER_Z_INDEX,\n ProviderSonnerProps,\n SonnerButtonWrapper,\n SonnerContent,\n SonnerContentDescription,\n SonnerContentProps,\n SonnerContentStandardProps,\n SonnerContentTitle,\n SonnerContextProps,\n SonnerElementProps,\n SonnerElementWrapper,\n SonnerIcon,\n SonnerLayout,\n} from '.';\n\nexport const SonnerContext = createContext<SonnerContextProps | null>(null);\n\nexport const ProviderSonner: FC<ProviderSonnerProps> = (props) => {\n const memoVisibleToasts: ProviderSonnerProps['visibleToasts'] = useMemo(\n () => props.visibleToasts,\n [props.visibleToasts],\n );\n const memoDefaultDescription: ProviderSonnerProps['default']['description'] = useMemo(\n () => props?.default?.description,\n [props?.default?.description],\n );\n const memoDefaultTitle: ProviderSonnerProps['default']['title'] = useMemo(\n () => props?.default?.title,\n [props?.default?.title],\n );\n const memoDefaultButton: ProviderSonnerProps['default']['button'] = useMemo(\n () => props?.default?.button,\n [props?.default?.button],\n );\n const memoDefaultHidingTime: ProviderSonnerProps['default']['hidingTime'] = useMemo(\n () => props?.default?.hidingTime,\n [props?.default?.hidingTime],\n );\n const memoDefaultHidingMode: ProviderSonnerProps['default']['hidingMode'] = useMemo(\n () => props?.default?.hidingMode ?? 'clickOnButton',\n [props?.default?.hidingMode],\n );\n const memoDefaultGenre = useMemo(\n () => props?.default?.genre ?? DEFAULT_PROVIDER_SONNER_GENRE,\n [props?.default?.genre],\n );\n\n const isTop = useMemo(() => props.position.includes('top'), [props.position]);\n\n const [contentHistory, setContentHistory] = useState<SonnerContentProps[]>([]);\n\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const remove: SonnerContextProps['remove'] = useCallback(\n (id) => {\n setContentHistory((prev) => {\n const itemToRemove = prev.find((item) => item.id === id);\n\n if (!itemToRemove) return prev;\n\n const indexToRemove = itemToRemove.index;\n\n const updatedHistory = prev\n .filter((item) => item.id !== id)\n .map((item) => ({\n ...item,\n index: item.index > indexToRemove ? item.index - 1 : item.index,\n }));\n\n if (updatedHistory.length === 0) handleMouseLeave();\n\n return updatedHistory;\n });\n },\n [handleMouseLeave],\n );\n\n const toast: SonnerContextProps['toast'] = useCallback(\n (content) => {\n const id = content.id ?? uuidv4();\n\n const hidingTime = content.hidingTime ?? memoDefaultHidingTime;\n\n setContentHistory((prev) => {\n const existingIndex = prev.findIndex((item) => item.id === id);\n\n let updatedHistory;\n if (existingIndex !== -1) {\n // Replace existing item\n updatedHistory = [...prev];\n updatedHistory[existingIndex] = { ...content, id, index: prev[existingIndex].index };\n } else {\n // Add new item\n updatedHistory = prev.map((item) => ({\n ...item,\n index: item.index + 1,\n }));\n const newContent = { ...content, id, index: 0 };\n updatedHistory.unshift(newContent);\n }\n\n return updatedHistory;\n });\n\n if (hidingTime !== undefined) {\n setTimeout(() => {\n remove(id);\n }, hidingTime);\n }\n },\n [memoDefaultHidingTime, remove],\n );\n const promise: SonnerContextProps['promise'] = useCallback(\n <T,>(\n promise: Promise<T>,\n expectation: Omit<SonnerContentProps, 'index'>,\n localToast: (success: T | undefined, error: unknown | undefined) => Omit<SonnerContentProps, 'index'>,\n ) => {\n const id = uuidv4();\n toast({ ...expectation, id, isLoading: true });\n\n return promise\n .then((result) => {\n toast({ ...localToast(result, undefined), id });\n })\n .catch((error) => {\n toast({ ...localToast(undefined, error), id });\n });\n },\n [toast],\n );\n const handleOnClick = useCallback(\n (id: SonnerContentStandardProps['id']) => {\n remove(id);\n },\n [remove],\n );\n const theme = useTheme();\n return (\n <SonnerContext.Provider value={{ toast, promise, remove, contentHistory }}>\n <SonnerLayout\n $zIndex={props.zIndex ?? DEFAULT_PROVIDER_SONNER_Z_INDEX}\n $position={props.position}\n $gap={props.gap}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <AnimatePresence>\n {contentHistory.map((content) => {\n const index = content.index;\n const isMoreThanLastViewIndexPlusOne = memoVisibleToasts ? index > memoVisibleToasts : false;\n const isMoreThanLastViewIndex = memoVisibleToasts ? index > memoVisibleToasts - 1 : false;\n const isLastViewIndex = memoVisibleToasts ? index == memoVisibleToasts - 1 : false;\n const localGenre = content.genre ?? memoDefaultGenre;\n const buttonGenre = theme.colors.sonner[localGenre].button.genre;\n const hidingMode = content.hidingMode ?? memoDefaultHidingMode;\n\n const localContent = 'content' in content ? content.content : false;\n const localTitle = 'title' in content ? content.title : false;\n const localDescription = 'description' in content ? content.description : false;\n return (\n <MemoizedSonnerElement\n isMoreThanLastViewIndexPlusOne={isMoreThanLastViewIndexPlusOne}\n isMoreThanLastViewIndex={isMoreThanLastViewIndex}\n isLastViewIndex={isLastViewIndex}\n isTop={isTop}\n key={content.id}\n id={content.id}\n icon={content.icon}\n isLoading={content.isLoading}\n index={index}\n buttonGenre={buttonGenre}\n hidingMode={hidingMode}\n isHovered={isHovered}\n genre={localGenre}\n content={localContent}\n title={localTitle || memoDefaultTitle}\n description={localDescription || memoDefaultDescription}\n button={content.button ?? memoDefaultButton ?? DEFAULT_PROVIDER_SONNER_BUTTON}\n handleOnClick={handleOnClick}\n />\n );\n })}\n </AnimatePresence>\n </SonnerLayout>\n {props.children}\n </SonnerContext.Provider>\n );\n};\n\nconst SonnerElement = (props: SonnerElementProps) => {\n return (\n <motion.div\n key={props.id}\n layout\n initial={{\n opacity: 0,\n scale: 1,\n y: props.isLastViewIndex\n ? !props.isTop\n ? -DEFAULT_PROVIDER_SONNER_Y\n : DEFAULT_PROVIDER_SONNER_Y\n : !props.isTop\n ? DEFAULT_PROVIDER_SONNER_Y\n : -DEFAULT_PROVIDER_SONNER_Y,\n }}\n animate={{\n y: 0,\n opacity: props.isMoreThanLastViewIndex ? 0 : 1,\n pointerEvents: props.isMoreThanLastViewIndex ? 'none' : 'auto',\n display: props.isMoreThanLastViewIndex ? 'none' : 'flex',\n scale: !props.isHovered ? 1 - props.index * DEFAULT_PROVIDER_SONNER_SCALE : 1,\n marginTop: props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n marginBottom: !props.isTop\n ? props.isHovered || props.index === 0\n ? `0px`\n : `-${DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM}px`\n : '0px',\n }}\n style={{\n zIndex: -props.index,\n }}\n whileInView={{ opacity: props.isMoreThanLastViewIndex ? 0 : 1 }}\n exit={{ opacity: 0, y: !props.isTop ? DEFAULT_PROVIDER_SONNER_Y : -DEFAULT_PROVIDER_SONNER_Y }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_SONNER_DURATION }}\n >\n <SonnerElementWrapper\n $genre={props.genre}\n onClick={() => props.hidingMode === 'clickOnSonner' && props.handleOnClick(props.id, 'clickOnSonner')}\n >\n {(props.isLoading || props.icon) && (\n <SonnerIcon>\n {props.isLoading ? (\n <Icon size='medium' type='loading' name='Line' />\n ) : (\n props.icon && <Icon name={props.icon} type='id' size={'medium'} />\n )}\n </SonnerIcon>\n )}\n <SonnerContent>\n {props.content ? (\n props.content\n ) : (\n <>\n {props.title && (\n <SonnerContentTitle\n $genre={props.genre}\n $font={{\n size: 14,\n weight: 700,\n }}\n >\n {props.title}\n </SonnerContentTitle>\n )}\n {props.description && (\n <SonnerContentDescription\n $font={{\n size: 12,\n weight: 400,\n }}\n $genre={props.genre}\n >\n {props.description}\n </SonnerContentDescription>\n )}\n </>\n )}\n </SonnerContent>\n\n {props.button && props.button.content && (\n <SonnerButtonWrapper>\n <Button\n genre={props.buttonGenre}\n size='small'\n onClick={() => props.hidingMode === 'clickOnButton' && props.handleOnClick(props.id, 'clickOnButton')}\n >\n {props.button.content}\n </Button>\n </SonnerButtonWrapper>\n )}\n </SonnerElementWrapper>\n </motion.div>\n );\n};\nconst MemoizedSonnerElement = memo(SonnerElement);\n","import { useContext } from 'react';\n\nimport { SonnerContext, SonnerContextProps } from '.';\n\nexport const useSonner = (): SonnerContextProps => {\n const context = useContext(SonnerContext);\n if (!context) {\n throw new Error('useSonner must be used within an ProviderSonner');\n }\n return context;\n};\n","import { addRemoveScrollbar, addTransition } from '@local/styles/add';\n\nimport styled, { css } from 'styled-components';\n\nimport {\n SonnerContentDescriptionProps,\n SonnerContentTitleProps,\n SonnerElementWrapperProps,\n SonnerLayoutProps,\n} from '.';\n\nexport const SonnerLayout = styled.div<SonnerLayoutProps>`\n position: fixed;\n z-index: ${(props) => props.$zIndex};\n max-height: calc(100dvh - 20px);\n width: 320px;\n display: flex;\n margin: 10px;\n gap: ${(props) => props.$gap}px;\n box-sizing: content-box;\n overflow-y: visible;\n overflow-x: visible;\n ${addRemoveScrollbar}\n ${(props) =>\n props.$position === 'bottom-center'\n ? css`\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-left'\n ? css`\n left: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'bottom-right'\n ? css`\n right: 0;\n bottom: 0;\n justify-content: flex-start;\n flex-direction: column-reverse;\n `\n : props.$position === 'top-right'\n ? css`\n top: 0;\n right: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-left'\n ? css`\n top: 0;\n left: 0;\n justify-content: flex-end;\n flex-direction: column;\n `\n : props.$position === 'top-center'\n ? css`\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n justify-content: flex-end;\n flex-direction: column;\n `\n : css``}\n`;\n\nexport const SonnerElementWrapper = styled.div<SonnerElementWrapperProps>`\n background: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.background};\n color: ${(props) => props.theme.colors.sonner[props.$genre].icon.color};\n border-radius: 12px;\n border-style: solid;\n border-color: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.borderColor};\n border-width: 1px;\n padding: 16px 20px 16px 20px;\n display: flex;\n flex-direction: row;\n gap: 10px;\n align-items: center;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex-shrink: 1;\n min-width: 320px;\n min-height: 64px;\n transform-origin: center center;\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadow};\n overflow: visible;\n &:hover {\n box-shadow: ${(props) => props.theme.colors.sonner[props.$genre].wrapper.boxShadowHover};\n }\n ${addTransition};\n`;\nexport const SonnerContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2px;\n align-items: flex-start;\n justify-content: flex-start;\n align-self: stretch;\n flex-shrink: 0;\n flex: 1;\n position: relative;\n overflow: hidden;\n`;\nexport const SonnerIcon = styled.div`\n display: contents;\n`;\nexport const SonnerContentTitle = styled.div<SonnerContentTitleProps>`\n color: ${(props) => props.theme.colors.sonner[props.$genre].title.color};\n text-align: left;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nexport const SonnerContentDescription = styled.div<SonnerContentDescriptionProps>`\n color:${(props) => props.theme.colors.sonner[props.$genre].description.color};\n text-align: left;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\nexport const SonnerButtonWrapper = styled.div``;\n","import { ITheme } from '@local/theme';\n\nimport { ProviderSonnerProps } from '.';\n\nexport const DEFAULT_PROVIDER_SONNER_Z_INDEX = 100;\nexport const DEFAULT_PROVIDER_SONNER_SCALE = 0.04;\nexport const DEFAULT_PROVIDER_SONNER_Y = 100;\nexport const DEFAULT_PROVIDER_SONNER_DURATION = 0.3;\nexport const DEFAULT_PROVIDER_SONNER_GENRE: keyof ITheme['colors']['sonner'] = 'black';\nexport const DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM = 60;\nexport const DEFAULT_PROVIDER_SONNER_BUTTON: ProviderSonnerProps['default']['button'] = {\n content: 'Undo',\n onClick: () => {},\n};\n"],"names":["_a","uuidv4","promise","jsxs","jsx","Fragment"],"mappings":";;;;;;;;AA8BO,MAAM,gBAAgB,cAAyC,IAAI;AAEnE,MAAM,iBAA0C,CAAC,UAAU;;AAChE,QAAM,oBAA0D;AAAA,IAC9D,MAAM,MAAM;AAAA,IACZ,CAAC,MAAM,aAAa;AAAA,EAAA;AAEtB,QAAM,yBAAwE;AAAA,IAC5E,MAAA;;AAAM,cAAAA,MAAA,+BAAO,YAAP,gBAAAA,IAAgB;AAAA;AAAA,IACtB,EAAC,oCAAO,YAAP,mBAAgB,WAAW;AAAA,EAAA;AAE9B,QAAM,mBAA4D;AAAA,IAChE,MAAA;;AAAM,cAAAA,MAAA,+BAAO,YAAP,gBAAAA,IAAgB;AAAA;AAAA,IACtB,EAAC,oCAAO,YAAP,mBAAgB,KAAK;AAAA,EAAA;AAExB,QAAM,oBAA8D;AAAA,IAClE,MAAA;;AAAM,cAAAA,MAAA,+BAAO,YAAP,gBAAAA,IAAgB;AAAA;AAAA,IACtB,EAAC,oCAAO,YAAP,mBAAgB,MAAM;AAAA,EAAA;AAEzB,QAAM,wBAAsE;AAAA,IAC1E,MAAA;;AAAM,cAAAA,MAAA,+BAAO,YAAP,gBAAAA,IAAgB;AAAA;AAAA,IACtB,EAAC,oCAAO,YAAP,mBAAgB,UAAU;AAAA,EAAA;AAE7B,QAAM,wBAAsE;AAAA,IAC1E;;AAAM,eAAAA,MAAA,+BAAO,YAAP,gBAAAA,IAAgB,eAAc;AAAA;AAAA,IACpC,EAAC,oCAAO,YAAP,mBAAgB,UAAU;AAAA,EAAA;AAE7B,QAAM,mBAAmB;AAAA,IACvB;;AAAM,eAAAA,MAAA,+BAAO,YAAP,gBAAAA,IAAgB,UAAS;AAAA;AAAA,IAC/B,EAAC,oCAAO,YAAP,mBAAgB,KAAK;AAAA,EAAA;AAGxB,QAAM,QAAQ,QAAQ,MAAM,MAAM,SAAS,SAAS,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC;AAE5E,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAA+B,CAAA,CAAE;AAE7E,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,mBAAmB,YAAY,MAAM;AACzC,iBAAa,IAAI;AAAA,EAAA,GAChB,EAAE;AAEL,QAAM,mBAAmB,YAAY,MAAM;AACzC,iBAAa,KAAK;AAAA,EAAA,GACjB,EAAE;AAEL,QAAM,SAAuC;AAAA,IAC3C,CAAC,OAAO;AACN,wBAAkB,CAAC,SAAS;AAC1B,cAAM,eAAe,KAAK,KAAK,CAAC,SAAS,KAAK,OAAO,EAAE;AAEvD,YAAI,CAAC,aAAc,QAAO;AAE1B,cAAM,gBAAgB,aAAa;AAEnC,cAAM,iBAAiB,KACpB,OAAO,CAAC,SAAS,KAAK,OAAO,EAAE,EAC/B,IAAI,CAAC,UAAU;AAAA,UACd,GAAG;AAAA,UACH,OAAO,KAAK,QAAQ,gBAAgB,KAAK,QAAQ,IAAI,KAAK;AAAA,QAAA,EAC1D;AAEJ,YAAI,eAAe,WAAW,EAAG,kBAAA;AAEjC,eAAO;AAAA,MAAA,CACR;AAAA,IAAA;AAAA,IAEH,CAAC,gBAAgB;AAAA,EAAA;AAGnB,QAAM,QAAqC;AAAA,IACzC,CAAC,YAAY;AACX,YAAM,KAAK,QAAQ,MAAMC,GAAA;AAEzB,YAAM,aAAa,QAAQ,cAAc;AAEzC,wBAAkB,CAAC,SAAS;AAC1B,cAAM,gBAAgB,KAAK,UAAU,CAAC,SAAS,KAAK,OAAO,EAAE;AAE7D,YAAI;AACJ,YAAI,kBAAkB,IAAI;AAExB,2BAAiB,CAAC,GAAG,IAAI;AACzB,yBAAe,aAAa,IAAI,EAAE,GAAG,SAAS,IAAI,OAAO,KAAK,aAAa,EAAE,MAAA;AAAA,QAAM,OAC9E;AAEL,2BAAiB,KAAK,IAAI,CAAC,UAAU;AAAA,YACnC,GAAG;AAAA,YACH,OAAO,KAAK,QAAQ;AAAA,UAAA,EACpB;AACF,gBAAM,aAAa,EAAE,GAAG,SAAS,IAAI,OAAO,EAAA;AAC5C,yBAAe,QAAQ,UAAU;AAAA,QAAA;AAGnC,eAAO;AAAA,MAAA,CACR;AAED,UAAI,eAAe,QAAW;AAC5B,mBAAW,MAAM;AACf,iBAAO,EAAE;AAAA,QAAA,GACR,UAAU;AAAA,MAAA;AAAA,IACf;AAAA,IAEF,CAAC,uBAAuB,MAAM;AAAA,EAAA;AAEhC,QAAM,UAAyC;AAAA,IAC7C,CACEC,UACA,aACA,eACG;AACH,YAAM,KAAKD,GAAA;AACX,YAAM,EAAE,GAAG,aAAa,IAAI,WAAW,MAAM;AAE7C,aAAOC,SACJ,KAAK,CAAC,WAAW;AAChB,cAAM,EAAE,GAAG,WAAW,QAAQ,MAAS,GAAG,IAAI;AAAA,MAAA,CAC/C,EACA,MAAM,CAAC,UAAU;AAChB,cAAM,EAAE,GAAG,WAAW,QAAW,KAAK,GAAG,IAAI;AAAA,MAAA,CAC9C;AAAA,IAAA;AAAA,IAEL,CAAC,KAAK;AAAA,EAAA;AAER,QAAM,gBAAgB;AAAA,IACpB,CAAC,OAAyC;AACxC,aAAO,EAAE;AAAA,IAAA;AAAA,IAEX,CAAC,MAAM;AAAA,EAAA;AAET,QAAM,QAAQ,SAAA;AACd,SACEC,uCAAC,cAAc,UAAd,EAAuB,OAAO,EAAE,OAAO,SAAS,QAAQ,eAAA,GACvD,UAAA;AAAA,IAAAC,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAM,UAAU;AAAA,QACzB,WAAW,MAAM;AAAA,QACjB,MAAM,MAAM;AAAA,QACZ,cAAc;AAAA,QACd,cAAc;AAAA,QAEd,UAAAA,kCAAAA,IAAC,iBAAA,EACE,UAAA,eAAe,IAAI,CAAC,YAAY;AAC/B,gBAAM,QAAQ,QAAQ;AACtB,gBAAM,iCAAiC,oBAAoB,QAAQ,oBAAoB;AACvF,gBAAM,0BAA0B,oBAAoB,QAAQ,oBAAoB,IAAI;AACpF,gBAAM,kBAAkB,oBAAoB,SAAS,oBAAoB,IAAI;AAC7E,gBAAM,aAAa,QAAQ,SAAS;AACpC,gBAAM,cAAc,MAAM,OAAO,OAAO,UAAU,EAAE,OAAO;AAC3D,gBAAM,aAAa,QAAQ,cAAc;AAEzC,gBAAM,eAAe,aAAa,UAAU,QAAQ,UAAU;AAC9D,gBAAM,aAAa,WAAW,UAAU,QAAQ,QAAQ;AACxD,gBAAM,mBAAmB,iBAAiB,UAAU,QAAQ,cAAc;AAC1E,iBACEA,kCAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cAEA,IAAI,QAAQ;AAAA,cACZ,MAAM,QAAQ;AAAA,cACd,WAAW,QAAQ;AAAA,cACnB;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,OAAO;AAAA,cACP,SAAS;AAAA,cACT,OAAO,cAAc;AAAA,cACrB,aAAa,oBAAoB;AAAA,cACjC,QAAQ,QAAQ,UAAU,qBAAqB;AAAA,cAC/C;AAAA,YAAA;AAAA,YAbK,QAAQ;AAAA,UAAA;AAAA,QAcf,CAEH,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,IAED,MAAM;AAAA,EAAA,GACT;AAEJ;AAEA,MAAM,gBAAgB,CAAC,UAA8B;AACnD,SACEA,kCAAAA;AAAAA,IAAC,OAAO;AAAA,IAAP;AAAA,MAEC,QAAM;AAAA,MACN,SAAS;AAAA,QACP,SAAS;AAAA,QACT,OAAO;AAAA,QACP,GAAG,MAAM,kBACL,CAAC,MAAM,QACL,CAAC,4BACD,4BACF,CAAC,MAAM,QACL,4BACA,CAAC;AAAA,MAAA;AAAA,MAET,SAAS;AAAA,QACP,GAAG;AAAA,QACH,SAAS,MAAM,0BAA0B,IAAI;AAAA,QAC7C,eAAe,MAAM,0BAA0B,SAAS;AAAA,QACxD,SAAS,MAAM,0BAA0B,SAAS;AAAA,QAClD,OAAO,CAAC,MAAM,YAAY,IAAI,MAAM,QAAQ,gCAAgC;AAAA,QAC5E,WAAW,MAAM,QACb,MAAM,aAAa,MAAM,UAAU,IACjC,QACA,IAAI,qCAAqC,OAC3C;AAAA,QACJ,cAAc,CAAC,MAAM,QACjB,MAAM,aAAa,MAAM,UAAU,IACjC,QACA,IAAI,qCAAqC,OAC3C;AAAA,MAAA;AAAA,MAEN,OAAO;AAAA,QACL,QAAQ,CAAC,MAAM;AAAA,MAAA;AAAA,MAEjB,aAAa,EAAE,SAAS,MAAM,0BAA0B,IAAI,EAAA;AAAA,MAC5D,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,QAAQ,4BAA4B,CAAC,0BAAA;AAAA,MACnE,YAAY,EAAE,MAAM,UAAU,UAAU,iCAAA;AAAA,MAExC,UAAAD,kCAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,QAAQ,MAAM;AAAA,UACd,SAAS,MAAM,MAAM,eAAe,mBAAmB,MAAM,cAAc,MAAM,IAAI,eAAe;AAAA,UAElG,UAAA;AAAA,aAAA,MAAM,aAAa,MAAM,SACzBC,kCAAAA,IAAC,YAAA,EACE,UAAA,MAAM,YACLA,kCAAAA,IAAC,MAAA,EAAK,MAAK,UAAS,MAAK,WAAU,MAAK,OAAA,CAAO,IAE/C,MAAM,QAAQA,kCAAAA,IAAC,MAAA,EAAK,MAAM,MAAM,MAAM,MAAK,MAAK,MAAM,SAAA,CAAU,GAEpE;AAAA,kDAED,eAAA,EACE,UAAA,MAAM,UACL,MAAM,UAEND,kCAAAA,KAAAE,kBAAAA,UAAA,EACG,UAAA;AAAA,cAAA,MAAM,SACLD,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,QAAQ,MAAM;AAAA,kBACd,OAAO;AAAA,oBACL,MAAM;AAAA,oBACN,QAAQ;AAAA,kBAAA;AAAA,kBAGT,UAAA,MAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGV,MAAM,eACLA,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,MAAM;AAAA,oBACN,QAAQ;AAAA,kBAAA;AAAA,kBAEV,QAAQ,MAAM;AAAA,kBAEb,UAAA,MAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,YACT,EAAA,CAEJ,EAAA,CAEJ;AAAA,YAEC,MAAM,UAAU,MAAM,OAAO,iDAC3B,qBAAA,EACC,UAAAA,kCAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO,MAAM;AAAA,gBACb,MAAK;AAAA,gBACL,SAAS,MAAM,MAAM,eAAe,mBAAmB,MAAM,cAAc,MAAM,IAAI,eAAe;AAAA,gBAEnG,gBAAM,OAAO;AAAA,cAAA;AAAA,YAAA,EAChB,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,IA5FK,MAAM;AAAA,EAAA;AA+FjB;AACA,MAAM,wBAAwB,KAAK,aAAa;ACpTzC,MAAM,YAAY,MAA0B;AACjD,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,iDAAiD;AAAA,EAAA;AAEnE,SAAO;AACT;ACCO,MAAM,eAAe,OAAO;AAAA;AAAA,aAEtB,CAAC,UAAU,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,SAK5B,CAAC,UAAU,MAAM,IAAI;AAAA;AAAA;AAAA;AAAA,IAI1B,kBAAkB;AAAA,IAClB,CAAC,UACD,MAAM,cAAc,kBAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAOA,MAAM,cAAc,gBAClB;AAAA;AAAA;AAAA;AAAA;AAAA,cAMA,MAAM,cAAc,iBAClB;AAAA;AAAA;AAAA;AAAA;AAAA,gBAMA,MAAM,cAAc,cAClB;AAAA;AAAA;AAAA;AAAA;AAAA,kBAMA,MAAM,cAAc,aAClB;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMA,MAAM,cAAc,eAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAOA,KAAK;AAAA;AAGhB,MAAM,uBAAuB,OAAO;AAAA,gBAC3B,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,QAAQ,UAAU;AAAA,WAC1E,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,KAAK,KAAK;AAAA;AAAA;AAAA,kBAGtD,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,QAAQ,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAcxE,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,QAAQ,SAAS;AAAA;AAAA;AAAA,kBAGlE,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,QAAQ,cAAc;AAAA;AAAA,IAEvF,aAAa;AAAA;AAEV,MAAM,gBAAgB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAY7B,MAAM,aAAa,OAAO;AAAA;AAAA;AAG1B,MAAM,qBAAqB,OAAO;AAAA,YAC7B,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAMnE,MAAM,2BAA2B,OAAO;AAAA,UACrC,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO,MAAM,MAAM,EAAE,YAAY,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOvE,MAAM,sBAAsB,OAAO;AC3HnC,MAAM,kCAAkC;AACxC,MAAM,gCAAgC;AACtC,MAAM,4BAA4B;AAClC,MAAM,mCAAmC;AACzC,MAAM,gCAAkE;AACxE,MAAM,wCAAwC;AAC9C,MAAM,iCAA2E;AAAA,EACtF,SAAS;AAAA,EACT,SAAS,MAAM;AAAA,EAAA;AACjB;"}
@@ -1,4 +1,4 @@
1
- "use strict";const e=require("react"),n=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./component-DnJo66DS.cjs"),i=require("./component.styles-BKnUDWqO.cjs"),o=require("framer-motion"),r=require("styled-components"),s=require("uuid"),l=require("./style-Df37KnoJ.cjs"),d=e.createContext(null),x=e.memo(e=>n.jsxRuntimeExports.jsx(o.motion.div,{layout:!0,initial:{opacity:0,scale:1,y:e.isLastViewIndex?e.isTop?j:-j:e.isTop?-j:j},animate:{y:0,opacity:e.isMoreThanLastViewIndex?0:1,pointerEvents:e.isMoreThanLastViewIndex?"none":"auto",display:e.isMoreThanLastViewIndex?"none":"flex",scale:e.isHovered?1:1-e.index*g,marginTop:e.isTop?e.isHovered||0===e.index?"0px":`-${R}px`:"0px",marginBottom:e.isTop||e.isHovered||0===e.index?"0px":`-${R}px`},style:{zIndex:-e.index},whileInView:{opacity:e.isMoreThanLastViewIndex?0:1},exit:{opacity:0,y:e.isTop?-j:j},transition:{type:"spring",duration:E},children:n.jsxRuntimeExports.jsxs(a,{$genre:e.genre,onClick:()=>"clickOnSonner"===e.hidingMode&&e.handleOnClick(e.id,"clickOnSonner"),children:[(e.isLoading||e.icon)&&n.jsxRuntimeExports.jsx(p,{children:e.isLoading?n.jsxRuntimeExports.jsx(i.Icon,{size:"medium",type:"loading",name:"Line"}):e.icon&&n.jsxRuntimeExports.jsx(i.Icon,{name:e.icon,type:"id",size:"medium"})}),n.jsxRuntimeExports.jsx(u,{children:e.content?e.content:n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[e.title&&n.jsxRuntimeExports.jsx(m,{$genre:e.genre,$font:{size:14,weight:700},children:e.title}),e.description&&n.jsxRuntimeExports.jsx(f,{$font:{size:12,weight:400},$genre:e.genre,children:e.description})]})}),e.button&&e.button.content&&n.jsxRuntimeExports.jsx(v,{children:n.jsxRuntimeExports.jsx(t.Button,{genre:e.buttonGenre,size:"small",onClick:()=>"clickOnButton"===e.hidingMode&&e.handleOnClick(e.id,"clickOnButton"),children:e.button.content})})]})},e.id)),c=r.div`
1
+ "use strict";const e=require("react"),n=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./component-BLWcOf3A.cjs"),i=require("./component.styles-BKnUDWqO.cjs"),o=require("framer-motion"),r=require("styled-components"),s=require("uuid"),l=require("./style-Df37KnoJ.cjs"),d=e.createContext(null),x=e.memo(e=>n.jsxRuntimeExports.jsx(o.motion.div,{layout:!0,initial:{opacity:0,scale:1,y:e.isLastViewIndex?e.isTop?j:-j:e.isTop?-j:j},animate:{y:0,opacity:e.isMoreThanLastViewIndex?0:1,pointerEvents:e.isMoreThanLastViewIndex?"none":"auto",display:e.isMoreThanLastViewIndex?"none":"flex",scale:e.isHovered?1:1-e.index*g,marginTop:e.isTop?e.isHovered||0===e.index?"0px":`-${R}px`:"0px",marginBottom:e.isTop||e.isHovered||0===e.index?"0px":`-${R}px`},style:{zIndex:-e.index},whileInView:{opacity:e.isMoreThanLastViewIndex?0:1},exit:{opacity:0,y:e.isTop?-j:j},transition:{type:"spring",duration:E},children:n.jsxRuntimeExports.jsxs(a,{$genre:e.genre,onClick:()=>"clickOnSonner"===e.hidingMode&&e.handleOnClick(e.id,"clickOnSonner"),children:[(e.isLoading||e.icon)&&n.jsxRuntimeExports.jsx(p,{children:e.isLoading?n.jsxRuntimeExports.jsx(i.Icon,{size:"medium",type:"loading",name:"Line"}):e.icon&&n.jsxRuntimeExports.jsx(i.Icon,{name:e.icon,type:"id",size:"medium"})}),n.jsxRuntimeExports.jsx(u,{children:e.content?e.content:n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[e.title&&n.jsxRuntimeExports.jsx(m,{$genre:e.genre,$font:{size:14,weight:700},children:e.title}),e.description&&n.jsxRuntimeExports.jsx(f,{$font:{size:12,weight:400},$genre:e.genre,children:e.description})]})}),e.button&&e.button.content&&n.jsxRuntimeExports.jsx(v,{children:n.jsxRuntimeExports.jsx(t.Button,{genre:e.buttonGenre,size:"small",onClick:()=>"clickOnButton"===e.hidingMode&&e.handleOnClick(e.id,"clickOnButton"),children:e.button.content})})]})},e.id)),c=r.div`
2
2
  position: fixed;
3
3
  z-index: ${e=>e.$zIndex};
4
4
  max-height: calc(100dvh - 20px);
@@ -95,4 +95,4 @@
95
95
  align-items: center;
96
96
  justify-content: flex-start;
97
97
  `,v=r.div``,h=100,g=.04,j=100,E=.3,b="black",R=60,$={content:"Undo",onClick:()=>{}};exports.DEFAULT_PROVIDER_SONNER_BUTTON=$,exports.DEFAULT_PROVIDER_SONNER_DURATION=E,exports.DEFAULT_PROVIDER_SONNER_GENRE=b,exports.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM=R,exports.DEFAULT_PROVIDER_SONNER_SCALE=g,exports.DEFAULT_PROVIDER_SONNER_Y=j,exports.DEFAULT_PROVIDER_SONNER_Z_INDEX=h,exports.ProviderSonner=t=>{var i,l,a,u,p,m;const f=e.useMemo(()=>t.visibleToasts,[t.visibleToasts]),v=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.description},[null==(i=null==t?void 0:t.default)?void 0:i.description]),g=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.title},[null==(l=null==t?void 0:t.default)?void 0:l.title]),j=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.button},[null==(a=null==t?void 0:t.default)?void 0:a.button]),E=e.useMemo(()=>{var e;return null==(e=null==t?void 0:t.default)?void 0:e.hidingTime},[null==(u=null==t?void 0:t.default)?void 0:u.hidingTime]),R=e.useMemo(()=>{var e;return(null==(e=null==t?void 0:t.default)?void 0:e.hidingMode)??"clickOnButton"},[null==(p=null==t?void 0:t.default)?void 0:p.hidingMode]),y=e.useMemo(()=>{var e;return(null==(e=null==t?void 0:t.default)?void 0:e.genre)??b},[null==(m=null==t?void 0:t.default)?void 0:m.genre]),T=e.useMemo(()=>t.position.includes("top"),[t.position]),[w,O]=e.useState([]),[I,S]=e.useState(!1),L=e.useCallback(()=>{S(!0)},[]),M=e.useCallback(()=>{S(!1)},[]),k=e.useCallback(e=>{O(n=>{const t=n.find(n=>n.id===e);if(!t)return n;const i=t.index,o=n.filter(n=>n.id!==e).map(e=>({...e,index:e.index>i?e.index-1:e.index}));return 0===o.length&&M(),o})},[M]),_=e.useCallback(e=>{const n=e.id??s.v4(),t=e.hidingTime??E;O(t=>{const i=t.findIndex(e=>e.id===n);let o;if(-1!==i)o=[...t],o[i]={...e,id:n,index:t[i].index};else{o=t.map(e=>({...e,index:e.index+1}));const i={...e,id:n,index:0};o.unshift(i)}return o}),void 0!==t&&setTimeout(()=>{k(n)},t)},[E,k]),C=e.useCallback((e,n,t)=>{const i=s.v4();return _({...n,id:i,isLoading:!0}),e.then(e=>{_({...t(e,void 0),id:i})}).catch(e=>{_({...t(void 0,e),id:i})})},[_]),N=e.useCallback(e=>{k(e)},[k]),D=r.useTheme();return n.jsxRuntimeExports.jsxs(d.Provider,{value:{toast:_,promise:C,remove:k,contentHistory:w},children:[n.jsxRuntimeExports.jsx(c,{$zIndex:t.zIndex??h,$position:t.position,$gap:t.gap,onMouseEnter:L,onMouseLeave:M,children:n.jsxRuntimeExports.jsx(o.AnimatePresence,{children:w.map(e=>{const t=e.index,i=!!f&&t>f,o=!!f&&t>f-1,r=!!f&&t==f-1,s=e.genre??y,l=D.colors.sonner[s].button.genre,d=e.hidingMode??R,c="content"in e&&e.content,a="title"in e&&e.title,u="description"in e&&e.description;return n.jsxRuntimeExports.jsx(x,{isMoreThanLastViewIndexPlusOne:i,isMoreThanLastViewIndex:o,isLastViewIndex:r,isTop:T,id:e.id,icon:e.icon,isLoading:e.isLoading,index:t,buttonGenre:l,hidingMode:d,isHovered:I,genre:s,content:c,title:a||g,description:u||v,button:e.button??j??$,handleOnClick:N},e.id)})})}),t.children]})},exports.SonnerButtonWrapper=v,exports.SonnerContent=u,exports.SonnerContentDescription=f,exports.SonnerContentTitle=m,exports.SonnerContext=d,exports.SonnerElementWrapper=a,exports.SonnerIcon=p,exports.SonnerLayout=c,exports.useSonner=()=>{const n=e.useContext(d);if(!n)throw new Error("useSonner must be used within an ProviderSonner");return n};
98
- //# sourceMappingURL=context.constants-cm50ZUiS.cjs.map
98
+ //# sourceMappingURL=context.constants-D0P7bVk9.cjs.map