@jenesei-software/jenesei-kit-react 1.3.0 → 1.3.2
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.
- package/build/{area-BO9opwkf.cjs → area-AbheP_ot.cjs} +2 -2
- package/build/{area-BO9opwkf.cjs.map → area-AbheP_ot.cjs.map} +1 -1
- package/build/{area-C8w6fMSn.cjs → area-C3wR_pPr.cjs} +2 -2
- package/build/{area-C8w6fMSn.cjs.map → area-C3wR_pPr.cjs.map} +1 -1
- package/build/{area-3gVEQsJq.js → area-CFZW3T1g.js} +2 -2
- package/build/{area-3gVEQsJq.js.map → area-CFZW3T1g.js.map} +1 -1
- package/build/{area-jPT5NusX.js → area-CH6c_n7-.js} +2 -2
- package/build/{area-jPT5NusX.js.map → area-CH6c_n7-.js.map} +1 -1
- package/build/area-preview.cjs.js +1 -1
- package/build/area-preview.es.js +1 -1
- package/build/area-skeleton.cjs.js +1 -1
- package/build/area-skeleton.es.js +1 -1
- package/build/build-info.txt +3 -3
- package/build/{component-Cbmm9vBS.js → component-BFhXrZ3a.js} +3 -3
- package/build/{component-Cbmm9vBS.js.map → component-BFhXrZ3a.js.map} +1 -1
- package/build/{component-CPMrcwD_.cjs → component-BuxekWox.cjs} +2 -2
- package/build/{component-CPMrcwD_.cjs.map → component-BuxekWox.cjs.map} +1 -1
- package/build/{component-Xqvx28O4.js → component-BvLPfi2B.js} +2 -2
- package/build/{component-Xqvx28O4.js.map → component-BvLPfi2B.js.map} +1 -1
- package/build/{component-zZ5X_UdT.js → component-Bwu-fBEh.js} +2 -2
- package/build/{component-zZ5X_UdT.js.map → component-Bwu-fBEh.js.map} +1 -1
- package/build/{component-CKS169EE.cjs → component-CMkU2lIg.cjs} +2 -2
- package/build/{component-CKS169EE.cjs.map → component-CMkU2lIg.cjs.map} +1 -1
- package/build/{component-C8fz1syk.cjs → component-CeWNemV1.cjs} +2 -2
- package/build/{component-C8fz1syk.cjs.map → component-CeWNemV1.cjs.map} +1 -1
- package/build/{component-Cd8Sqijy.js → component-CmotrA_9.js} +4 -4
- package/build/{component-Cd8Sqijy.js.map → component-CmotrA_9.js.map} +1 -1
- package/build/{component-CI1bPd1b.js → component-D8qbXvM4.js} +3 -3
- package/build/{component-CI1bPd1b.js.map → component-D8qbXvM4.js.map} +1 -1
- package/build/{component-DTu8fMn3.cjs → component-DUUxsxY6.cjs} +2 -2
- package/build/{component-DTu8fMn3.cjs.map → component-DUUxsxY6.cjs.map} +1 -1
- package/build/{component-I33SFLkW.cjs → component-DfqhPd0e.cjs} +2 -2
- package/build/{component-I33SFLkW.cjs.map → component-DfqhPd0e.cjs.map} +1 -1
- package/build/component-accordion.cjs.js +1 -1
- package/build/component-accordion.es.js +1 -1
- package/build/component-button-group.cjs.js +1 -1
- package/build/component-button-group.es.js +1 -1
- package/build/component-button.cjs.js +1 -1
- package/build/component-button.es.js +1 -1
- package/build/component-checkbox-group.cjs.js +1 -1
- package/build/component-checkbox-group.es.js +1 -1
- package/build/component-checkbox.cjs.js +1 -1
- package/build/component-checkbox.es.js +1 -1
- package/build/component-date-picker.cjs.js +1 -1
- package/build/component-date-picker.d.ts +8 -4
- package/build/component-date-picker.es.js +1 -1
- package/build/component-icon.cjs.js +1 -1
- package/build/component-icon.es.js +1 -1
- package/build/component-image-button.cjs.js +1 -1
- package/build/component-image-button.es.js +1 -1
- package/build/component-image-select.cjs.js +1 -1
- package/build/component-image-select.es.js +1 -1
- package/build/component-image-slider.cjs.js +1 -1
- package/build/component-image-slider.es.js +1 -1
- package/build/component-image.cjs.js +1 -1
- package/build/component-image.es.js +1 -1
- package/build/component-input-otp.cjs.js +1 -1
- package/build/component-input-otp.es.js +1 -1
- package/build/component-input.cjs.js +1 -1
- package/build/component-input.es.js +2 -2
- package/build/component-map.cjs.js +1 -1
- package/build/component-map.es.js +1 -1
- package/build/component-pagination.cjs.js +1 -1
- package/build/component-pagination.es.js +1 -1
- package/build/component-range.cjs.js +1 -1
- package/build/component-range.es.js +1 -1
- package/build/component-select.cjs.js +1 -1
- package/build/component-select.es.js +1 -1
- package/build/component-textarea.cjs.js +1 -1
- package/build/component-textarea.es.js +1 -1
- package/build/component-toggle.cjs.js +1 -1
- package/build/component-toggle.es.js +1 -1
- package/build/component-tooltip.cjs.js +1 -1
- package/build/component-tooltip.es.js +1 -1
- package/build/component-typography.cjs.js +1 -1
- package/build/component-typography.es.js +1 -1
- package/build/{component.components-CEahleVE.js → component.components-BPIVZi-R.js} +3 -3
- package/build/{component.components-CEahleVE.js.map → component.components-BPIVZi-R.js.map} +1 -1
- package/build/{component.components-BybNKDu3.cjs → component.components-BWWKHxKD.cjs} +2 -2
- package/build/{component.components-BybNKDu3.cjs.map → component.components-BWWKHxKD.cjs.map} +1 -1
- package/build/{component.constants-Dv6opwFG.js → component.constants-CmQuESzl.js} +2 -2
- package/build/{component.constants-Dv6opwFG.js.map → component.constants-CmQuESzl.js.map} +1 -1
- package/build/{component.constants-BTqRt0oT.cjs → component.constants-D8QVKsqc.cjs} +2 -2
- package/build/{component.constants-BTqRt0oT.cjs.map → component.constants-D8QVKsqc.cjs.map} +1 -1
- package/build/{component.constants-Xzo8ve1j.js → component.constants-Dtw4932G.js} +6 -6
- package/build/{component.constants-Xzo8ve1j.js.map → component.constants-Dtw4932G.js.map} +1 -1
- package/build/{component.constants-C6bU6nl_.cjs → component.constants-DyKCJRH3.cjs} +2 -2
- package/build/{component.constants-C6bU6nl_.cjs.map → component.constants-DyKCJRH3.cjs.map} +1 -1
- package/build/{component.styles-O1SAy-GB.cjs → component.styles-B294m7QY.cjs} +2 -2
- package/build/{component.styles-O1SAy-GB.cjs.map → component.styles-B294m7QY.cjs.map} +1 -1
- package/build/{component.styles-D0jefRNH.cjs → component.styles-B5kjhqh4.cjs} +2 -2
- package/build/{component.styles-D0jefRNH.cjs.map → component.styles-B5kjhqh4.cjs.map} +1 -1
- package/build/{component.styles-DtFCv3SL.js → component.styles-BHBTNQ8p.js} +4 -4
- package/build/{component.styles-DtFCv3SL.js.map → component.styles-BHBTNQ8p.js.map} +1 -1
- package/build/{component.styles-CMxkHzEu.cjs → component.styles-BMJamWba.cjs} +2 -2
- package/build/{component.styles-CMxkHzEu.cjs.map → component.styles-BMJamWba.cjs.map} +1 -1
- package/build/{component.styles-DhJeYxo2.js → component.styles-BfzC8j7O.js} +7 -7
- package/build/{component.styles-DhJeYxo2.js.map → component.styles-BfzC8j7O.js.map} +1 -1
- package/build/{component.styles-BI4OuDrG.js → component.styles-BirbSbuD.js} +3 -3
- package/build/{component.styles-BI4OuDrG.js.map → component.styles-BirbSbuD.js.map} +1 -1
- package/build/{component.styles-CVYk0EXw.cjs → component.styles-C-mr1A0b.cjs} +2 -2
- package/build/{component.styles-CVYk0EXw.cjs.map → component.styles-C-mr1A0b.cjs.map} +1 -1
- package/build/{component.styles-EnGR_IyC.js → component.styles-CKArb78Q.js} +5 -5
- package/build/{component.styles-EnGR_IyC.js.map → component.styles-CKArb78Q.js.map} +1 -1
- package/build/{component.styles-DJP7e7be.cjs → component.styles-CKLd9UoP.cjs} +2 -2
- package/build/{component.styles-DJP7e7be.cjs.map → component.styles-CKLd9UoP.cjs.map} +1 -1
- package/build/{component.styles-CUNUEB0K.js → component.styles-CMXsg9Uj.js} +4 -4
- package/build/{component.styles-CUNUEB0K.js.map → component.styles-CMXsg9Uj.js.map} +1 -1
- package/build/{component.styles-Cx7rBBnD.js → component.styles-CQbSHrL_.js} +7 -7
- package/build/{component.styles-Cx7rBBnD.js.map → component.styles-CQbSHrL_.js.map} +1 -1
- package/build/{component.styles-B32Iz_qp.cjs → component.styles-CS_lQRm0.cjs} +2 -2
- package/build/{component.styles-B32Iz_qp.cjs.map → component.styles-CS_lQRm0.cjs.map} +1 -1
- package/build/{component.styles-CBnEu0_t.cjs → component.styles-CbkvPvEl.cjs} +2 -2
- package/build/{component.styles-CBnEu0_t.cjs.map → component.styles-CbkvPvEl.cjs.map} +1 -1
- package/build/{component.styles-CGiPShK6.js → component.styles-ClU_KFe9.js} +4 -4
- package/build/{component.styles-CGiPShK6.js.map → component.styles-ClU_KFe9.js.map} +1 -1
- package/build/{component.styles-D6vdSbHc.cjs → component.styles-DETkOSnM.cjs} +2 -2
- package/build/{component.styles-D6vdSbHc.cjs.map → component.styles-DETkOSnM.cjs.map} +1 -1
- package/build/{component.styles-BLh29xwF.cjs → component.styles-DLU0S0KI.cjs} +2 -2
- package/build/{component.styles-BLh29xwF.cjs.map → component.styles-DLU0S0KI.cjs.map} +1 -1
- package/build/{component.styles-nkvjDCzl.js → component.styles-DYAuT7U2.js} +2 -2
- package/build/{component.styles-nkvjDCzl.js.map → component.styles-DYAuT7U2.js.map} +1 -1
- package/build/{component.styles-CO20q5q1.js → component.styles-DkL2qYQQ.js} +3 -3
- package/build/{component.styles-CO20q5q1.js.map → component.styles-DkL2qYQQ.js.map} +1 -1
- package/build/{component.styles-D6jQq4GK.js → component.styles-DoUBnv1C.js} +3 -3
- package/build/{component.styles-D6jQq4GK.js.map → component.styles-DoUBnv1C.js.map} +1 -1
- package/build/{component.styles-B4RXk9nx.js → component.styles-DyTB01CW.js} +3 -3
- package/build/{component.styles-B4RXk9nx.js.map → component.styles-DyTB01CW.js.map} +1 -1
- package/build/{component.styles-Dg8gHTTE.cjs → component.styles-R92hjRRA.cjs} +2 -2
- package/build/{component.styles-Dg8gHTTE.cjs.map → component.styles-R92hjRRA.cjs.map} +1 -1
- package/build/{component.styles-iM9QpRbs.cjs → component.styles-b_DLfQqU.cjs} +2 -2
- package/build/{component.styles-iM9QpRbs.cjs.map → component.styles-b_DLfQqU.cjs.map} +1 -1
- package/build/{component.styles-D-4B1aHv.cjs → component.styles-l0Dr5zHf.cjs} +2 -2
- package/build/{component.styles-D-4B1aHv.cjs.map → component.styles-l0Dr5zHf.cjs.map} +1 -1
- package/build/{component.styles-8qvjpBKQ.js → component.styles-usmYNSi8.js} +2 -2
- package/build/{component.styles-8qvjpBKQ.js.map → component.styles-usmYNSi8.js.map} +1 -1
- package/build/component.types-OWBOCmrk.cjs +174 -0
- package/build/component.types-OWBOCmrk.cjs.map +1 -0
- package/build/{component.types-BnPgh4LU.js → component.types-_k1S6r4E.js} +23 -11
- package/build/component.types-_k1S6r4E.js.map +1 -0
- package/build/context-app.cjs.js +1 -1
- package/build/context-app.es.js +1 -1
- package/build/context-dialog.cjs.js +1 -1
- package/build/context-dialog.es.js +1 -1
- package/build/context-sonner.cjs.js +1 -1
- package/build/context-sonner.es.js +1 -1
- package/build/{context.constants-C0q77J1f.js → context.constants-4kkNHBzR.js} +5 -5
- package/build/{context.constants-C0q77J1f.js.map → context.constants-4kkNHBzR.js.map} +1 -1
- package/build/{context.constants-COR-ReeN.js → context.constants-B9Yk6CGe.js} +2 -2
- package/build/{context.constants-COR-ReeN.js.map → context.constants-B9Yk6CGe.js.map} +1 -1
- package/build/{context.constants-BJPyze-d.cjs → context.constants-CTfUKury.cjs} +2 -2
- package/build/{context.constants-BJPyze-d.cjs.map → context.constants-CTfUKury.cjs.map} +1 -1
- package/build/{context.constants-B-AObmnC.cjs → context.constants-DKCD80Pp.cjs} +2 -2
- package/build/{context.constants-B-AObmnC.cjs.map → context.constants-DKCD80Pp.cjs.map} +1 -1
- package/build/{context.hooks-Bq70-oJI.js → context.hooks-Cfr2Mp8e.js} +3 -3
- package/build/{context.hooks-Bq70-oJI.js.map → context.hooks-Cfr2Mp8e.js.map} +1 -1
- package/build/{context.hooks-C1M8jdAu.cjs → context.hooks-DGmZRxkb.cjs} +2 -2
- package/build/{context.hooks-C1M8jdAu.cjs.map → context.hooks-DGmZRxkb.cjs.map} +1 -1
- package/build/index.cjs.js +1 -1
- package/build/index.d.ts +9 -4
- package/build/index.es.js +28 -28
- package/build/{style-BX0S5FEa.cjs → style-BVejuajH.cjs} +2 -2
- package/build/{style-BX0S5FEa.cjs.map → style-BVejuajH.cjs.map} +1 -1
- package/build/{style-Bvt_Melk.js → style-BgcnmVAY.js} +2 -2
- package/build/style-BgcnmVAY.js.map +1 -0
- package/build/{style-BUTdwE0W.js → style-CQOBaUTO.js} +2 -2
- package/build/{style-BUTdwE0W.js.map → style-CQOBaUTO.js.map} +1 -1
- package/build/style-add.cjs.js +1 -1
- package/build/style-add.d.ts +1 -0
- package/build/style-add.es.js +1 -1
- package/build/style-error.cjs.js +1 -1
- package/build/style-error.es.js +1 -1
- package/build/{style-f3_KtJIt.cjs → style-mc2ST5fY.cjs} +2 -2
- package/build/style-mc2ST5fY.cjs.map +1 -0
- package/build/{use-C-1ZZdCQ.js → use-BsyZ6-h6.js} +5 -5
- package/build/{use-C-1ZZdCQ.js.map → use-BsyZ6-h6.js.map} +1 -1
- package/build/{use-Cte4Ivsp.cjs → use-D0mgQexh.cjs} +2 -2
- package/build/{use-Cte4Ivsp.cjs.map → use-D0mgQexh.cjs.map} +1 -1
- package/package.json +1 -1
- package/build/component.types-BnPgh4LU.js.map +0 -1
- package/build/component.types-DApgj_Jr.cjs +0 -173
- package/build/component.types-DApgj_Jr.cjs.map +0 -1
- package/build/style-Bvt_Melk.js.map +0 -1
- package/build/style-f3_KtJIt.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.types-_k1S6r4E.js","sources":["../src/components/date-picker/component.tsx","../src/components/date-picker/component.styles.ts","../src/components/date-picker/component.types.ts"],"sourcesContent":["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 [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 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 const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n\n const isHasValue = useMemo(() => {\n return valueMoment !== null;\n }, [valueMoment]);\n\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\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 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 if (activeSegment === DatePickerVariant.DD) {\n const current = input.DD !== null ? input.DD.toString() : '';\n let nextValue: string;\n\n if (current.length >= 2) {\n // если уже два символа — заменяем полностью\n nextValue = digit;\n } else {\n // пробуем добавить цифру\n const potential = current + digit;\n const potentialParsed = Number(potential);\n\n // если при добавлении получится >31 или 0 — считаем, что ввод начинается заново\n if (potentialParsed > 31 || potentialParsed === 0) {\n nextValue = digit;\n } else {\n nextValue = potential;\n }\n }\n\n const parsed = Number(nextValue);\n if (parsed > 31 || parsed === 0) return;\n\n dataDate.default[activeSegment].setValue(parsed);\n if (nextValue.length === 2) {\n dataDate.default[activeSegment].onNext();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n const currentMonthStr = input.MM !== null ? input.MM.toString() : '';\n let nextValue: string;\n\n if (currentMonthStr.length >= 2) {\n nextValue = digit;\n } else {\n const potential = currentMonthStr + digit;\n const potentialParsed = Number(potential);\n\n if (potentialParsed > 12) {\n nextValue = digit;\n } else {\n nextValue = potential;\n }\n }\n\n const parsed = Number(nextValue);\n if (parsed > 12 || parsed === 0) return;\n\n dataDate.default[activeSegment].setValue(parsed);\n\n if (nextValue.length === 2 || (nextValue.length === 1 && parsed > 1)) {\n dataDate.default[activeSegment].onNext();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n const current = input.YYYY !== null ? input.YYYY.toString() : '';\n let nextValue: string;\n\n if (current.length >= 4) {\n if (digit === '0') return;\n nextValue = digit;\n } else {\n nextValue = current + digit;\n }\n\n const parsed = Number(nextValue);\n\n dataDate.default[activeSegment].setValue(parsed);\n }\n\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.DD, input.MM, input.YYYY, dataDate.default],\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 useEffect(() => {\n if (input.DD !== null && input.MM !== null && input.YYYY !== null) {\n const day = input.DD ?? NaN;\n const month = input.MM ?? NaN;\n const year = input.YYYY ?? NaN;\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 onChangeDate(m.valueOf());\n }\n }\n }\n }, [input.DD, input.MM, input.YYYY, onChangeDate]);\n\n useEffect(() => {\n if (input.DD !== null && input.MM !== null && input.YYYY !== null) {\n const day = input.DD ?? NaN;\n const month = input.MM ?? NaN;\n const year = input.YYYY ?? NaN;\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 setIsError(false);\n } else {\n onChange(null);\n setIsError(true);\n }\n }\n } else {\n setIsError(false);\n }\n }, [input.DD, input.MM, input.YYYY, onChange]);\n\n const prevValueRef = useRef('');\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n useEffect(() => {\n if (activeSegment) {\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment]);\n\n const isShowPlaceholder = useMemo(() => {\n return !!(\n !isInputFocused &&\n !isHasValue &&\n props.labelPlaceholder &&\n !isOpen &&\n !input.DD &&\n !input.MM &&\n !input.YYYY\n );\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, input.DD, input.MM, input.YYYY]);\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}\n onClick={() => {\n setActiveSegment(DatePickerVariant.DD);\n }}\n >\n <input\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{ position: 'absolute', left: -9999, opacity: 0 }}\n onKeyDown={handleKeyDown}\n onChange={(e) => {\n const value = e.target.value;\n const prevValue = prevValueRef.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n prevValueRef.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 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 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 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 type='button'\n $isDisabled={day.isDisabled}\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 />\n ) : null}\n </>\n );\n};\n","import { addInputIsInputEffect } from '@local/components/input';\nimport { getFontSizeStyles } from '@local/components/typography';\nimport {\n addDisabled,\n addNiceNumber,\n addOutline,\n addOutlineChildren,\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 ${(params) => getFontSizeStyles(12, 700, params.theme.font.family)};\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 ${(params) => getFontSizeStyles(12, 700, params.theme.font.family)};\n\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\n ${(props) => getFontSizeStyles(16, props.$isBold ? 500 : 400, props.theme.font.family, props.theme.font.lineHeight)};\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 ${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 ${addOutlineChildren};\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 { 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 genre: TDateGenre;\n\n id?: string;\n\n isDisabled?: boolean;\n isBold?: boolean;\n isMinWidth?: boolean;\n isReadOnly?: 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'> & {\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'> &\n Pick<DateDayProps, 'isToday' | 'isWeekend'> & {\n row: number;\n column: number;\n isChoice?: boolean;\n isCurrentMonth?: boolean;\n isDisabled?: boolean;\n }\n>;\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"],"names":["_a","jsxs","Fragment","jsx","theme","props","DatePickerVariant"],"mappings":"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"}
|
package/build/context-app.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./context.hooks-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./context.hooks-DGmZRxkb.cjs");exports.AppContext=e.AppContext,exports.ProviderApp=e.ProviderApp,exports.ProviderAppOutlet=e.ProviderAppOutlet,exports.ProviderAppOutletChildren=e.ProviderAppOutletChildren,exports.ProviderAppOutletFooter=e.ProviderAppOutletFooter,exports.ProviderAppOutletHeader=e.ProviderAppOutletHeader,exports.ProviderAppOutletLeftAside=e.ProviderAppOutletLeftAside,exports.ProviderAppOutletNav=e.ProviderAppOutletNav,exports.ProviderAppOutletNotification=e.ProviderAppOutletNotification,exports.ProviderAppOutletRightAside=e.ProviderAppOutletRightAside,exports.ProviderAppWrapper=e.ProviderAppWrapper,exports.useApp=e.useApp,exports.useBgColor=e.useBgColor,exports.useBgImage=e.useBgImage,exports.useDescription=e.useDescription,exports.useStatusBarColor=e.useStatusBarColor;
|
|
2
2
|
//# sourceMappingURL=context-app.cjs.js.map
|
package/build/context-app.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const D=require("./context.constants-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const D=require("./context.constants-CTfUKury.cjs");exports.DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT=D.DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,exports.DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT=D.DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND=D.DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS=D.DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT=D.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH=D.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING=D.DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING,exports.DialogContent=D.DialogContent,exports.DialogContext=D.DialogContext,exports.DialogElementWrapper=D.DialogElementWrapper,exports.DialogLayout=D.DialogLayout,exports.ProviderDialog=D.ProviderDialog,exports.useDialog=D.useDialog,exports.useDialogs=D.useDialogs;
|
|
2
2
|
//# sourceMappingURL=context-dialog.cjs.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { e, f, k, i, g, h, j, d, D, c, b, P, a, u } from "./context.constants-
|
|
1
|
+
import { e, f, k, i, g, h, j, d, D, c, b, P, a, u } from "./context.constants-B9Yk6CGe.js";
|
|
2
2
|
export {
|
|
3
3
|
e as DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,
|
|
4
4
|
f as DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./context.constants-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./context.constants-DKCD80Pp.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-
|
|
1
|
+
import { m, j, k, l, h, i, D, P, g, c, f, e, S, b, d, a, u } from "./context.constants-4kkNHBzR.js";
|
|
2
2
|
export {
|
|
3
3
|
m as DEFAULT_PROVIDER_SONNER_BUTTON,
|
|
4
4
|
j as DEFAULT_PROVIDER_SONNER_DURATION,
|
|
@@ -3,10 +3,10 @@ import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
|
|
|
3
3
|
import { motion, AnimatePresence } from "framer-motion";
|
|
4
4
|
import styled, { useTheme, css } from "styled-components";
|
|
5
5
|
import { v4 } from "uuid";
|
|
6
|
-
import { c as Button } from "./component-
|
|
7
|
-
import { I as Icon } from "./component.styles-
|
|
8
|
-
import { g as getFontSizeStyles } from "./component-
|
|
9
|
-
import { b as addTransition, a as addRemoveScrollbar } from "./style-
|
|
6
|
+
import { c as Button } from "./component-CmotrA_9.js";
|
|
7
|
+
import { I as Icon } from "./component.styles-DYAuT7U2.js";
|
|
8
|
+
import { g as getFontSizeStyles } from "./component-Bwu-fBEh.js";
|
|
9
|
+
import { b as addTransition, a as addRemoveScrollbar } from "./style-BgcnmVAY.js";
|
|
10
10
|
const SonnerContext = createContext(null);
|
|
11
11
|
const ProviderSonner = (props) => {
|
|
12
12
|
var _a, _b, _c, _d, _e, _f;
|
|
@@ -372,4 +372,4 @@ export {
|
|
|
372
372
|
DEFAULT_PROVIDER_SONNER_BUTTON as m,
|
|
373
373
|
useSonner as u
|
|
374
374
|
};
|
|
375
|
-
//# sourceMappingURL=context.constants-
|
|
375
|
+
//# sourceMappingURL=context.constants-4kkNHBzR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.constants-C0q77J1f.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 { AnimatePresence, motion } from 'framer-motion'\nimport { FC, createContext, memo, useCallback, useMemo, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { Button } from '@local/components/button'\nimport { Icon } from '@local/components/icon'\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 && <SonnerContentTitle $genre={props.genre}>{props.title}</SonnerContentTitle>}\n {props.description && (\n <SonnerContentDescription $genre={props.genre}>{props.description}</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 styled, { css } from 'styled-components'\n\nimport { getFontSizeStyles } from '@local/components/typography'\nimport { addRemoveScrollbar, addTransition } from '@local/styles/add'\n\nimport { SonnerContentDescriptionProps, SonnerContentTitleProps, SonnerElementWrapperProps, SonnerLayoutProps } 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 ${props => getFontSizeStyles(14, 700, props.theme.font.family)}\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 ${props => getFontSizeStyles(12, 400, props.theme.font.family)}\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-4kkNHBzR.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 { AnimatePresence, motion } from 'framer-motion'\nimport { FC, createContext, memo, useCallback, useMemo, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { Button } from '@local/components/button'\nimport { Icon } from '@local/components/icon'\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 && <SonnerContentTitle $genre={props.genre}>{props.title}</SonnerContentTitle>}\n {props.description && (\n <SonnerContentDescription $genre={props.genre}>{props.description}</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 styled, { css } from 'styled-components'\n\nimport { getFontSizeStyles } from '@local/components/typography'\nimport { addRemoveScrollbar, addTransition } from '@local/styles/add'\n\nimport { SonnerContentDescriptionProps, SonnerContentTitleProps, SonnerElementWrapperProps, SonnerLayoutProps } 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 ${props => getFontSizeStyles(14, 700, props.theme.font.family)}\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 ${props => getFontSizeStyles(12, 400, props.theme.font.family)}\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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"}
|
|
@@ -3,7 +3,7 @@ import { v4 } from "uuid";
|
|
|
3
3
|
import { u as useDeepCompareMemoize } from "./use-DT0XgvJT.js";
|
|
4
4
|
import { AnimatePresence, motion } from "framer-motion";
|
|
5
5
|
import styled from "styled-components";
|
|
6
|
-
import { f as addOutline } from "./style-
|
|
6
|
+
import { f as addOutline } from "./style-BgcnmVAY.js";
|
|
7
7
|
import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
|
|
8
8
|
import { O as Outside } from "./area-DRqAofd0.js";
|
|
9
9
|
const DialogContext = createContext(null);
|
|
@@ -225,4 +225,4 @@ export {
|
|
|
225
225
|
DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND as k,
|
|
226
226
|
useDialogs as u
|
|
227
227
|
};
|
|
228
|
-
//# sourceMappingURL=context.constants-
|
|
228
|
+
//# sourceMappingURL=context.constants-B9Yk6CGe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.constants-COR-ReeN.js","sources":["../src/contexts/context-dialog/context.tsx","../src/contexts/context-dialog/context.hooks.ts","../src/contexts/context-dialog/context.styles.tsx","../src/contexts/context-dialog/context.constants.ts"],"sourcesContent":["import { AnimatePresence } from 'framer-motion'\nimport { FC, createContext, memo, useCallback, useMemo, useState } from 'react'\n\nimport { Outside } from '@local/areas/outside'\n\nimport {\n DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,\n DialogContentProps,\n DialogContextProps,\n DialogElementProps,\n DialogElementWrapper,\n DialogLayout,\n ProviderDialogProps\n} from '.'\n\nexport const DialogContext = createContext<DialogContextProps<object> | null>(null)\n\nexport const ProviderDialog: FC<ProviderDialogProps> = props => {\n const [dialogHistory, setDialogHistory] = useState<DialogContentProps<object>[]>([])\n\n const remove: DialogContextProps<object>['remove'] = useCallback(id => {\n setDialogHistory(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 return updatedHistory\n })\n }, [])\n\n const update: DialogContextProps<object>['update'] = useCallback(dialog => {\n setDialogHistory(prev => {\n return prev.map(item => {\n if (item.id === dialog.id) {\n return { ...item, ...dialog }\n }\n return item\n })\n })\n }, [])\n\n const add: DialogContextProps<object>['add'] = useCallback(dialog => {\n const id = dialog.id\n\n setDialogHistory(prev => {\n const existingIndex = prev.findIndex(item => item.id === id)\n\n let updatedHistory\n if (existingIndex !== -1) {\n updatedHistory = [...prev]\n updatedHistory[existingIndex] = { ...dialog, id, index: prev[existingIndex].index }\n } else {\n updatedHistory = prev.map(item => ({\n ...item,\n index: item.index! + 1\n }))\n const newContent = { ...dialog, id, index: 0 }\n updatedHistory.unshift(newContent)\n }\n\n return updatedHistory\n })\n }, [])\n\n const dialogHistoryLength = useMemo(() => dialogHistory.length, [dialogHistory.length])\n const zIndex = useMemo(() => props.zIndex, [props.zIndex])\n\n return (\n <DialogContext.Provider value={{ add, remove, update, dialogHistory }}>\n <AnimatePresence>\n {dialogHistoryLength && (\n <DialogLayout\n $zIndex={zIndex}\n initial={{\n opacity: 0\n }}\n exit={{\n opacity: 0\n }}\n animate={{\n opacity: 1\n }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT }}\n >\n {dialogHistory.map(dialog => {\n const index = dialog.index\n const content = dialog.content\n const id = dialog.id\n const props = dialog.props\n\n return (\n <MemoizedDialogElement\n index={index}\n content={content}\n props={props}\n key={id}\n id={id}\n remove={() => remove(id)}\n />\n )\n })}\n </DialogLayout>\n )}\n </AnimatePresence>\n\n {props.children}\n </DialogContext.Provider>\n )\n}\n\nconst DialogElement = (props: DialogElementProps) => {\n const [isAnimating, setIsAnimating] = useState(true)\n return (\n <Outside onOutsideClick={() => props.remove()}>\n <DialogElementWrapper\n key={props.id}\n initial={{\n opacity: 0,\n scale: 0.8\n }}\n animate={{\n opacity: 1,\n scale: 1\n }}\n onAnimationComplete={() => setIsAnimating(false)}\n transition={{\n type: 'spring',\n duration: DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n delay: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT\n }}\n style={{\n zIndex: -props.index!\n }}\n $propsDialog={props.props?.propsDialog}\n >\n {props.content?.(props.props, props.remove, isAnimating)}\n </DialogElementWrapper>\n </Outside>\n )\n}\nconst MemoizedDialogElement = memo(DialogElement)\n","import { useCallback, useContext, useEffect, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize'\n\nimport { DialogContext, DialogContextItemProps, DialogContextProps, useDialogProps } from '.'\n\nexport const useDialogs = (): DialogContextProps<object> => {\n const context = useContext(DialogContext)\n if (!context) {\n throw new Error('useDialogs must be used within an ProviderDialog')\n }\n return context\n}\n\nexport const useDialog = <T extends object>(props?: useDialogProps<T>): DialogContextItemProps<T> => {\n const { add, remove, update, dialogHistory } = useDialogs()\n const [id, setId] = useState<string | null>(null)\n\n const localAdd: DialogContextItemProps<T>['add'] = useCallback(\n dialog => {\n const find = dialogHistory.find(item => item.id === dialog.id)\n if (!id || !find) {\n const id = dialog.id || uuidv4()\n setId(id)\n add({ ...(dialog as T), props: props, id })\n }\n },\n [add, dialogHistory, id, props]\n )\n const localRemove = useCallback(() => {\n if (id) {\n remove(id)\n setId(null)\n }\n }, [id, remove])\n\n const propsMemo = useDeepCompareMemoize(props)\n\n useEffect(() => {\n if (id) {\n update({ id, props: propsMemo })\n }\n }, [id, propsMemo, update])\n\n return { add: localAdd, remove: localRemove, id }\n}\n","import { motion } from 'framer-motion'\nimport styled from 'styled-components'\n\nimport { addOutline } from '@local/styles/add'\n\nimport {\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING,\n DialogElementWrapperProps,\n DialogLayoutProps\n} from '.'\n\nexport const DialogLayout = styled(motion.div)<DialogLayoutProps>`\n position: fixed;\n flex: 1;\n width: 100%;\n height: 100%;\n background-color: ${props => props.theme.palette.black50};\n z-index: ${props => props.$zIndex};\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n`\n\nexport const DialogElementWrapper = styled(motion.dialog)<DialogElementWrapperProps>`\n ${addOutline};\n max-width: ${props => props.$propsDialog?.maxWidth || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH};\n max-height: ${props => props.$propsDialog?.maxHeight || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT};\n border-radius: ${props => props.$propsDialog?.borderRadius || DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS};\n background: ${props =>\n props.$propsDialog?.background\n ? props.theme.palette[props.$propsDialog.background]\n : props.theme.palette[DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND]};\n padding: ${props => props.$propsDialog?.padding || DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING};\n width: max-content;\n height: max-content;\n border: 0;\n display: flex;\n flex-direction: column;\n gap: 10px;\n align-items: flex-start;\n justify-content: flex-start;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0px 10px 30px 0px rgba(0, 0, 0, 0.2);\n overflow: hidden;\n`\nexport const DialogContent = styled(motion.div)``\n","// export const DEFAULT_PROVIDER_Dialog_SCALE = 0.04\nimport { IThemePaletteKeys } from '@local/theme'\n\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT = 0.3\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT = 0.4\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT: string = 'max-content'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH: string = 'max-content'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS: string = '12px'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING: string = '20px'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND: IThemePaletteKeys = 'whiteStandard'\n"],"names":["jsxs","jsx","props","id","uuidv4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.constants-B9Yk6CGe.js","sources":["../src/contexts/context-dialog/context.tsx","../src/contexts/context-dialog/context.hooks.ts","../src/contexts/context-dialog/context.styles.tsx","../src/contexts/context-dialog/context.constants.ts"],"sourcesContent":["import { AnimatePresence } from 'framer-motion'\nimport { FC, createContext, memo, useCallback, useMemo, useState } from 'react'\n\nimport { Outside } from '@local/areas/outside'\n\nimport {\n DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,\n DialogContentProps,\n DialogContextProps,\n DialogElementProps,\n DialogElementWrapper,\n DialogLayout,\n ProviderDialogProps\n} from '.'\n\nexport const DialogContext = createContext<DialogContextProps<object> | null>(null)\n\nexport const ProviderDialog: FC<ProviderDialogProps> = props => {\n const [dialogHistory, setDialogHistory] = useState<DialogContentProps<object>[]>([])\n\n const remove: DialogContextProps<object>['remove'] = useCallback(id => {\n setDialogHistory(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 return updatedHistory\n })\n }, [])\n\n const update: DialogContextProps<object>['update'] = useCallback(dialog => {\n setDialogHistory(prev => {\n return prev.map(item => {\n if (item.id === dialog.id) {\n return { ...item, ...dialog }\n }\n return item\n })\n })\n }, [])\n\n const add: DialogContextProps<object>['add'] = useCallback(dialog => {\n const id = dialog.id\n\n setDialogHistory(prev => {\n const existingIndex = prev.findIndex(item => item.id === id)\n\n let updatedHistory\n if (existingIndex !== -1) {\n updatedHistory = [...prev]\n updatedHistory[existingIndex] = { ...dialog, id, index: prev[existingIndex].index }\n } else {\n updatedHistory = prev.map(item => ({\n ...item,\n index: item.index! + 1\n }))\n const newContent = { ...dialog, id, index: 0 }\n updatedHistory.unshift(newContent)\n }\n\n return updatedHistory\n })\n }, [])\n\n const dialogHistoryLength = useMemo(() => dialogHistory.length, [dialogHistory.length])\n const zIndex = useMemo(() => props.zIndex, [props.zIndex])\n\n return (\n <DialogContext.Provider value={{ add, remove, update, dialogHistory }}>\n <AnimatePresence>\n {dialogHistoryLength && (\n <DialogLayout\n $zIndex={zIndex}\n initial={{\n opacity: 0\n }}\n exit={{\n opacity: 0\n }}\n animate={{\n opacity: 1\n }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT }}\n >\n {dialogHistory.map(dialog => {\n const index = dialog.index\n const content = dialog.content\n const id = dialog.id\n const props = dialog.props\n\n return (\n <MemoizedDialogElement\n index={index}\n content={content}\n props={props}\n key={id}\n id={id}\n remove={() => remove(id)}\n />\n )\n })}\n </DialogLayout>\n )}\n </AnimatePresence>\n\n {props.children}\n </DialogContext.Provider>\n )\n}\n\nconst DialogElement = (props: DialogElementProps) => {\n const [isAnimating, setIsAnimating] = useState(true)\n return (\n <Outside onOutsideClick={() => props.remove()}>\n <DialogElementWrapper\n key={props.id}\n initial={{\n opacity: 0,\n scale: 0.8\n }}\n animate={{\n opacity: 1,\n scale: 1\n }}\n onAnimationComplete={() => setIsAnimating(false)}\n transition={{\n type: 'spring',\n duration: DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n delay: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT\n }}\n style={{\n zIndex: -props.index!\n }}\n $propsDialog={props.props?.propsDialog}\n >\n {props.content?.(props.props, props.remove, isAnimating)}\n </DialogElementWrapper>\n </Outside>\n )\n}\nconst MemoizedDialogElement = memo(DialogElement)\n","import { useCallback, useContext, useEffect, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize'\n\nimport { DialogContext, DialogContextItemProps, DialogContextProps, useDialogProps } from '.'\n\nexport const useDialogs = (): DialogContextProps<object> => {\n const context = useContext(DialogContext)\n if (!context) {\n throw new Error('useDialogs must be used within an ProviderDialog')\n }\n return context\n}\n\nexport const useDialog = <T extends object>(props?: useDialogProps<T>): DialogContextItemProps<T> => {\n const { add, remove, update, dialogHistory } = useDialogs()\n const [id, setId] = useState<string | null>(null)\n\n const localAdd: DialogContextItemProps<T>['add'] = useCallback(\n dialog => {\n const find = dialogHistory.find(item => item.id === dialog.id)\n if (!id || !find) {\n const id = dialog.id || uuidv4()\n setId(id)\n add({ ...(dialog as T), props: props, id })\n }\n },\n [add, dialogHistory, id, props]\n )\n const localRemove = useCallback(() => {\n if (id) {\n remove(id)\n setId(null)\n }\n }, [id, remove])\n\n const propsMemo = useDeepCompareMemoize(props)\n\n useEffect(() => {\n if (id) {\n update({ id, props: propsMemo })\n }\n }, [id, propsMemo, update])\n\n return { add: localAdd, remove: localRemove, id }\n}\n","import { motion } from 'framer-motion'\nimport styled from 'styled-components'\n\nimport { addOutline } from '@local/styles/add'\n\nimport {\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING,\n DialogElementWrapperProps,\n DialogLayoutProps\n} from '.'\n\nexport const DialogLayout = styled(motion.div)<DialogLayoutProps>`\n position: fixed;\n flex: 1;\n width: 100%;\n height: 100%;\n background-color: ${props => props.theme.palette.black50};\n z-index: ${props => props.$zIndex};\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n`\n\nexport const DialogElementWrapper = styled(motion.dialog)<DialogElementWrapperProps>`\n ${addOutline};\n max-width: ${props => props.$propsDialog?.maxWidth || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH};\n max-height: ${props => props.$propsDialog?.maxHeight || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT};\n border-radius: ${props => props.$propsDialog?.borderRadius || DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS};\n background: ${props =>\n props.$propsDialog?.background\n ? props.theme.palette[props.$propsDialog.background]\n : props.theme.palette[DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND]};\n padding: ${props => props.$propsDialog?.padding || DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING};\n width: max-content;\n height: max-content;\n border: 0;\n display: flex;\n flex-direction: column;\n gap: 10px;\n align-items: flex-start;\n justify-content: flex-start;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0px 10px 30px 0px rgba(0, 0, 0, 0.2);\n overflow: hidden;\n`\nexport const DialogContent = styled(motion.div)``\n","// export const DEFAULT_PROVIDER_Dialog_SCALE = 0.04\nimport { IThemePaletteKeys } from '@local/theme'\n\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT = 0.3\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT = 0.4\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT: string = 'max-content'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH: string = 'max-content'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS: string = '12px'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING: string = '20px'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND: IThemePaletteKeys = 'whiteStandard'\n"],"names":["jsxs","jsx","props","id","uuidv4"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const e=require("react"),t=require("uuid"),i=require("./use-C1l0O0Qo.cjs"),o=require("framer-motion"),r=require("styled-components"),n=require("./style-
|
|
1
|
+
"use strict";const e=require("react"),t=require("uuid"),i=require("./use-C1l0O0Qo.cjs"),o=require("framer-motion"),r=require("styled-components"),n=require("./style-mc2ST5fY.cjs"),s=require("./jsx-runtime-BcGej2Kr.cjs"),a=require("./area-D7906bXA.cjs"),d=e.createContext(null),l=e.memo(t=>{var i,o;const[r,n]=e.useState(!0);return s.jsxRuntimeExports.jsx(a.Outside,{onOutsideClick:()=>t.remove(),children:s.jsxRuntimeExports.jsx(u,{initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},onAnimationComplete:()=>n(!1),transition:{type:"spring",duration:m,delay:D},style:{zIndex:-t.index},$propsDialog:null==(i=t.props)?void 0:i.propsDialog,children:null==(o=t.content)?void 0:o.call(t,t.props,t.remove,r)},t.id)})}),p=()=>{const t=e.useContext(d);if(!t)throw new Error("useDialogs must be used within an ProviderDialog");return t},x=r(o.motion.div)`
|
|
2
2
|
position: fixed;
|
|
3
3
|
flex: 1;
|
|
4
4
|
width: 100%;
|
|
@@ -29,4 +29,4 @@
|
|
|
29
29
|
box-shadow: 0px 10px 30px 0px rgba(0, 0, 0, 0.2);
|
|
30
30
|
overflow: hidden;
|
|
31
31
|
`,c=r(o.motion.div)``,m=.3,D=.4,E="max-content",g="max-content",_="12px",h="20px",v="whiteStandard";exports.DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT=m,exports.DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT=D,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND=v,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS=_,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT=E,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH=g,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING=h,exports.DialogContent=c,exports.DialogContext=d,exports.DialogElementWrapper=u,exports.DialogLayout=x,exports.ProviderDialog=t=>{const[i,r]=e.useState([]),n=e.useCallback(e=>{r(t=>{const i=t.find(t=>t.id===e);if(!i)return t;const o=i.index;return t.filter(t=>t.id!==e).map(e=>({...e,index:e.index>o?e.index-1:e.index}))})},[]),a=e.useCallback(e=>{r(t=>t.map(t=>t.id===e.id?{...t,...e}:t))},[]),p=e.useCallback(e=>{const t=e.id;r(i=>{const o=i.findIndex(e=>e.id===t);let r;if(-1!==o)r=[...i],r[o]={...e,id:t,index:i[o].index};else{r=i.map(e=>({...e,index:e.index+1}));const o={...e,id:t,index:0};r.unshift(o)}return r})},[]),u=e.useMemo(()=>i.length,[i.length]),c=e.useMemo(()=>t.zIndex,[t.zIndex]);return s.jsxRuntimeExports.jsxs(d.Provider,{value:{add:p,remove:n,update:a,dialogHistory:i},children:[s.jsxRuntimeExports.jsx(o.AnimatePresence,{children:u&&s.jsxRuntimeExports.jsx(x,{$zIndex:c,initial:{opacity:0},exit:{opacity:0},animate:{opacity:1},transition:{type:"spring",duration:D},children:i.map(e=>{const t=e.index,i=e.content,o=e.id,r=e.props;return s.jsxRuntimeExports.jsx(l,{index:t,content:i,props:r,id:o,remove:()=>n(o)},o)})})}),t.children]})},exports.useDialog=o=>{const{add:r,remove:n,update:s,dialogHistory:a}=p(),[d,l]=e.useState(null),x=e.useCallback(e=>{const i=a.find(t=>t.id===e.id);if(!d||!i){const i=e.id||t.v4();l(i),r({...e,props:o,id:i})}},[r,a,d,o]),u=e.useCallback(()=>{d&&(n(d),l(null))},[d,n]),c=i.useDeepCompareMemoize(o);return e.useEffect(()=>{d&&s({id:d,props:c})},[d,c,s]),{add:x,remove:u,id:d}},exports.useDialogs=p;
|
|
32
|
-
//# sourceMappingURL=context.constants-
|
|
32
|
+
//# sourceMappingURL=context.constants-CTfUKury.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.constants-BJPyze-d.cjs","sources":["../src/contexts/context-dialog/context.tsx","../src/contexts/context-dialog/context.hooks.ts","../src/contexts/context-dialog/context.styles.tsx","../src/contexts/context-dialog/context.constants.ts"],"sourcesContent":["import { AnimatePresence } from 'framer-motion'\nimport { FC, createContext, memo, useCallback, useMemo, useState } from 'react'\n\nimport { Outside } from '@local/areas/outside'\n\nimport {\n DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,\n DialogContentProps,\n DialogContextProps,\n DialogElementProps,\n DialogElementWrapper,\n DialogLayout,\n ProviderDialogProps\n} from '.'\n\nexport const DialogContext = createContext<DialogContextProps<object> | null>(null)\n\nexport const ProviderDialog: FC<ProviderDialogProps> = props => {\n const [dialogHistory, setDialogHistory] = useState<DialogContentProps<object>[]>([])\n\n const remove: DialogContextProps<object>['remove'] = useCallback(id => {\n setDialogHistory(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 return updatedHistory\n })\n }, [])\n\n const update: DialogContextProps<object>['update'] = useCallback(dialog => {\n setDialogHistory(prev => {\n return prev.map(item => {\n if (item.id === dialog.id) {\n return { ...item, ...dialog }\n }\n return item\n })\n })\n }, [])\n\n const add: DialogContextProps<object>['add'] = useCallback(dialog => {\n const id = dialog.id\n\n setDialogHistory(prev => {\n const existingIndex = prev.findIndex(item => item.id === id)\n\n let updatedHistory\n if (existingIndex !== -1) {\n updatedHistory = [...prev]\n updatedHistory[existingIndex] = { ...dialog, id, index: prev[existingIndex].index }\n } else {\n updatedHistory = prev.map(item => ({\n ...item,\n index: item.index! + 1\n }))\n const newContent = { ...dialog, id, index: 0 }\n updatedHistory.unshift(newContent)\n }\n\n return updatedHistory\n })\n }, [])\n\n const dialogHistoryLength = useMemo(() => dialogHistory.length, [dialogHistory.length])\n const zIndex = useMemo(() => props.zIndex, [props.zIndex])\n\n return (\n <DialogContext.Provider value={{ add, remove, update, dialogHistory }}>\n <AnimatePresence>\n {dialogHistoryLength && (\n <DialogLayout\n $zIndex={zIndex}\n initial={{\n opacity: 0\n }}\n exit={{\n opacity: 0\n }}\n animate={{\n opacity: 1\n }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT }}\n >\n {dialogHistory.map(dialog => {\n const index = dialog.index\n const content = dialog.content\n const id = dialog.id\n const props = dialog.props\n\n return (\n <MemoizedDialogElement\n index={index}\n content={content}\n props={props}\n key={id}\n id={id}\n remove={() => remove(id)}\n />\n )\n })}\n </DialogLayout>\n )}\n </AnimatePresence>\n\n {props.children}\n </DialogContext.Provider>\n )\n}\n\nconst DialogElement = (props: DialogElementProps) => {\n const [isAnimating, setIsAnimating] = useState(true)\n return (\n <Outside onOutsideClick={() => props.remove()}>\n <DialogElementWrapper\n key={props.id}\n initial={{\n opacity: 0,\n scale: 0.8\n }}\n animate={{\n opacity: 1,\n scale: 1\n }}\n onAnimationComplete={() => setIsAnimating(false)}\n transition={{\n type: 'spring',\n duration: DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n delay: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT\n }}\n style={{\n zIndex: -props.index!\n }}\n $propsDialog={props.props?.propsDialog}\n >\n {props.content?.(props.props, props.remove, isAnimating)}\n </DialogElementWrapper>\n </Outside>\n )\n}\nconst MemoizedDialogElement = memo(DialogElement)\n","import { useCallback, useContext, useEffect, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize'\n\nimport { DialogContext, DialogContextItemProps, DialogContextProps, useDialogProps } from '.'\n\nexport const useDialogs = (): DialogContextProps<object> => {\n const context = useContext(DialogContext)\n if (!context) {\n throw new Error('useDialogs must be used within an ProviderDialog')\n }\n return context\n}\n\nexport const useDialog = <T extends object>(props?: useDialogProps<T>): DialogContextItemProps<T> => {\n const { add, remove, update, dialogHistory } = useDialogs()\n const [id, setId] = useState<string | null>(null)\n\n const localAdd: DialogContextItemProps<T>['add'] = useCallback(\n dialog => {\n const find = dialogHistory.find(item => item.id === dialog.id)\n if (!id || !find) {\n const id = dialog.id || uuidv4()\n setId(id)\n add({ ...(dialog as T), props: props, id })\n }\n },\n [add, dialogHistory, id, props]\n )\n const localRemove = useCallback(() => {\n if (id) {\n remove(id)\n setId(null)\n }\n }, [id, remove])\n\n const propsMemo = useDeepCompareMemoize(props)\n\n useEffect(() => {\n if (id) {\n update({ id, props: propsMemo })\n }\n }, [id, propsMemo, update])\n\n return { add: localAdd, remove: localRemove, id }\n}\n","import { motion } from 'framer-motion'\nimport styled from 'styled-components'\n\nimport { addOutline } from '@local/styles/add'\n\nimport {\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING,\n DialogElementWrapperProps,\n DialogLayoutProps\n} from '.'\n\nexport const DialogLayout = styled(motion.div)<DialogLayoutProps>`\n position: fixed;\n flex: 1;\n width: 100%;\n height: 100%;\n background-color: ${props => props.theme.palette.black50};\n z-index: ${props => props.$zIndex};\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n`\n\nexport const DialogElementWrapper = styled(motion.dialog)<DialogElementWrapperProps>`\n ${addOutline};\n max-width: ${props => props.$propsDialog?.maxWidth || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH};\n max-height: ${props => props.$propsDialog?.maxHeight || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT};\n border-radius: ${props => props.$propsDialog?.borderRadius || DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS};\n background: ${props =>\n props.$propsDialog?.background\n ? props.theme.palette[props.$propsDialog.background]\n : props.theme.palette[DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND]};\n padding: ${props => props.$propsDialog?.padding || DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING};\n width: max-content;\n height: max-content;\n border: 0;\n display: flex;\n flex-direction: column;\n gap: 10px;\n align-items: flex-start;\n justify-content: flex-start;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0px 10px 30px 0px rgba(0, 0, 0, 0.2);\n overflow: hidden;\n`\nexport const DialogContent = styled(motion.div)``\n","// export const DEFAULT_PROVIDER_Dialog_SCALE = 0.04\nimport { IThemePaletteKeys } from '@local/theme'\n\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT = 0.3\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT = 0.4\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT: string = 'max-content'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH: string = 'max-content'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS: string = '12px'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING: string = '20px'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND: IThemePaletteKeys = 'whiteStandard'\n"],"names":["DialogContext","createContext","MemoizedDialogElement","memo","props","isAnimating","setIsAnimating","useState","Outside","onOutsideClick","remove","children","jsx","DialogElementWrapper","initial","opacity","scale","animate","onAnimationComplete","transition","type","duration","DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT","delay","DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT","style","zIndex","index","$propsDialog","_a","propsDialog","content","id","useDialogs","context","useContext","Error","DialogLayout","styled","motion","div","theme","palette","black50","$zIndex","dialog","addOutline","maxWidth","DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH","maxHeight","DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT","borderRadius","DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS","background","DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND","padding","DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING","DialogContent","dialogHistory","setDialogHistory","useCallback","prev","itemToRemove","find","item","indexToRemove","filter","map","update","add","existingIndex","findIndex","updatedHistory","newContent","unshift","dialogHistoryLength","useMemo","length","jsxs","Provider","value","AnimatePresence","exit","setId","localAdd","uuidv4","localRemove","propsMemo","useDeepCompareMemoize","useEffect"],"mappings":"6PAgBaA,EAAgBC,EAAAA,cAAiD,MAsIxEC,EAAwBC,EAAAA,KA9BPC,YACrB,MAAOC,EAAaC,GAAkBC,EAAAA,UAAS,GAC/C,+BACGC,EAAAA,QAAA,CAAQC,eAAgB,IAAML,EAAMM,SACnCC,WAAAC,kBAAAA,IAACC,EAAA,CAECC,QAAS,CACPC,QAAS,EACTC,MAAO,IAETC,QAAS,CACPF,QAAS,EACTC,MAAO,GAETE,oBAAqB,IAAMZ,GAAe,GAC1Ca,WAAY,CACVC,KAAM,SACNC,SAAUC,EACVC,MAAOC,GAETC,MAAO,CACLC,QAAStB,EAAMuB,OAEjBC,aAAc,OAAAC,EAAAzB,EAAMA,YAAN,EAAAyB,EAAaC,YAE1BnB,oBAAMoB,yBAAU3B,EAAMA,MAAOA,EAAMM,OAAQL,IApBvCD,EAAM4B,QCtHNC,EAAa,KACxB,MAAMC,EAAUC,EAAAA,WAAWnC,GAC3B,IAAKkC,EACH,MAAM,IAAIE,MAAM,oDAElB,OAAOF,GCGIG,EAAeC,EAAOC,EAAAA,OAAOC,IAAG;;;;;sBAKvBpC,GAASA,EAAMqC,MAAMC,QAAQC;aACtCvC,GAASA,EAAMwC;;;;;EAOf/B,EAAuByB,EAAOC,EAAAA,OAAOM,OAAM;IACpDC;eACW1C,UAAS,OAAA,OAAAyB,EAAAzB,EAAMwB,uBAAcmB,WAAYC;gBACxC5C,UAAS,OAAA,OAAAyB,EAAAzB,EAAMwB,uBAAcqB,YAAaC;mBACvC9C,UAAS,OAAA,OAAAyB,EAAAzB,EAAMwB,uBAAcuB,eAAgBC;gBAChDhD,UACZ,OAAA,OAAAyB,EAAAzB,EAAMwB,mBAAN,EAAAC,EAAoBwB,YAChBjD,EAAMqC,MAAMC,QAAQtC,EAAMwB,aAAayB,YACvCjD,EAAMqC,MAAMC,QAAQY;aACflD,UAAS,OAAA,OAAAyB,EAAAzB,EAAMwB,uBAAc2B,UAAWC;;;;;;;;;;;;;EAcxCC,EAAgBnB,EAAOC,SAAOC,IAAG,GChDjClB,EAA2C,GAC3CE,EAA0C,GAC1C0B,EAAqD,cACrDF,EAAoD,cACpDI,EAAwD,OACxDI,EAAkD,OAClDF,EAAgE,0fHStBlD,IACrD,MAAOsD,EAAeC,GAAoBpD,EAAAA,SAAuC,IAE3EG,EAA+CkD,cAAY5B,IAC/D2B,EAAiBE,IACf,MAAMC,EAAeD,EAAKE,KAAKC,GAAQA,EAAKhC,KAAOA,GAEnD,IAAK8B,EAAc,OAAOD,EAE1B,MAAMI,EAAgBH,EAAanC,MASnC,OAPuBkC,EACpBK,OAAOF,GAAQA,EAAKhC,KAAOA,GAC3BmC,IAAIH,IAAA,IACAA,EACHrC,MAAOqC,EAAKrC,MAASsC,EAAgBD,EAAKrC,MAAS,EAAIqC,EAAKrC,YAKjE,IAEGyC,EAA+CR,cAAYf,IAC/Dc,EAAiBE,GACRA,EAAKM,IAAIH,GACVA,EAAKhC,KAAOa,EAAOb,GACd,IAAKgC,KAASnB,GAEhBmB,KAGV,IAEGK,EAAyCT,cAAYf,IACzD,MAAMb,EAAKa,EAAOb,GAElB2B,EAAiBE,IACf,MAAMS,EAAgBT,EAAKU,UAAUP,GAAQA,EAAKhC,KAAOA,GAEzD,IAAIwC,EACJ,IAAsB,IAAlBF,EACFE,EAAiB,IAAIX,GACrBW,EAAeF,GAAiB,IAAKzB,EAAQb,KAAIL,MAAOkC,EAAKS,GAAe3C,WACvE,CACL6C,EAAiBX,EAAKM,IAAIH,IAAA,IACrBA,EACHrC,MAAOqC,EAAKrC,MAAS,KAEvB,MAAM8C,EAAa,IAAK5B,EAAQb,KAAIL,MAAO,GAC3C6C,EAAeE,QAAQD,EAAU,CAGnC,OAAOD,KAER,IAEGG,EAAsBC,EAAAA,QAAQ,IAAMlB,EAAcmB,OAAQ,CAACnB,EAAcmB,SACzEnD,EAASkD,EAAAA,QAAQ,IAAMxE,EAAMsB,OAAQ,CAACtB,EAAMsB,SAElD,OACEoD,yBAAC9E,EAAc+E,SAAd,CAAuBC,MAAO,CAAEX,MAAK3D,SAAQ0D,SAAQV,iBACpD/C,SAAA,CAAAC,EAAAA,kBAAAA,IAACqE,EAAAA,iBACEtE,SAAAgE,GACC/D,EAAAA,kBAAAA,IAACyB,EAAA,CACCO,QAASlB,EACTZ,QAAS,CACPC,QAAS,GAEXmE,KAAM,CACJnE,QAAS,GAEXE,QAAS,CACPF,QAAS,GAEXI,WAAY,CAAEC,KAAM,SAAUC,SAAUG,GAEvCb,SAAA+C,EAAcS,IAAItB,IACjB,MAAMlB,EAAQkB,EAAOlB,MACfI,EAAUc,EAAOd,QACjBC,EAAKa,EAAOb,GACZ5B,EAAQyC,EAAOzC,MAErB,SACEQ,kBAAAA,IAACV,EAAA,CACCyB,QACAI,UACA3B,MAAOA,EAEP4B,KACAtB,OAAQ,IAAMA,EAAOsB,IAFhBA,SAUhB5B,EAAMO,+BCpG+BP,IAC1C,MAAMiE,IAAEA,EAAA3D,OAAKA,EAAA0D,OAAQA,EAAAV,cAAQA,GAAkBzB,KACxCD,EAAImD,GAAS5E,EAAAA,SAAwB,MAEtC6E,EAA6CxB,EAAAA,YACjDf,IACE,MAAMkB,EAAOL,EAAcK,QAAaC,EAAKhC,KAAOa,EAAOb,IAC3D,IAAKA,IAAO+B,EAAM,CAChB,MAAM/B,EAAKa,EAAOb,IAAMqD,OACxBF,EAAMnD,GACNqC,EAAI,IAAMxB,EAAczC,QAAc4B,GAAAA,GAAI,GAG9C,CAACqC,EAAKX,EAAe1B,EAAI5B,IAErBkF,EAAc1B,EAAAA,YAAY,KAC1B5B,IACFtB,EAAOsB,GACPmD,EAAM,QAEP,CAACnD,EAAItB,IAEF6E,EAAYC,EAAAA,sBAAsBpF,GAQxC,OANAqF,EAAAA,UAAU,KACJzD,GACFoC,EAAO,CAAEpC,KAAI5B,MAAOmF,KAErB,CAACvD,EAAIuD,EAAWnB,IAEZ,CAAEC,IAAKe,EAAU1E,OAAQ4E,EAAatD"}
|
|
1
|
+
{"version":3,"file":"context.constants-CTfUKury.cjs","sources":["../src/contexts/context-dialog/context.tsx","../src/contexts/context-dialog/context.hooks.ts","../src/contexts/context-dialog/context.styles.tsx","../src/contexts/context-dialog/context.constants.ts"],"sourcesContent":["import { AnimatePresence } from 'framer-motion'\nimport { FC, createContext, memo, useCallback, useMemo, useState } from 'react'\n\nimport { Outside } from '@local/areas/outside'\n\nimport {\n DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,\n DialogContentProps,\n DialogContextProps,\n DialogElementProps,\n DialogElementWrapper,\n DialogLayout,\n ProviderDialogProps\n} from '.'\n\nexport const DialogContext = createContext<DialogContextProps<object> | null>(null)\n\nexport const ProviderDialog: FC<ProviderDialogProps> = props => {\n const [dialogHistory, setDialogHistory] = useState<DialogContentProps<object>[]>([])\n\n const remove: DialogContextProps<object>['remove'] = useCallback(id => {\n setDialogHistory(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 return updatedHistory\n })\n }, [])\n\n const update: DialogContextProps<object>['update'] = useCallback(dialog => {\n setDialogHistory(prev => {\n return prev.map(item => {\n if (item.id === dialog.id) {\n return { ...item, ...dialog }\n }\n return item\n })\n })\n }, [])\n\n const add: DialogContextProps<object>['add'] = useCallback(dialog => {\n const id = dialog.id\n\n setDialogHistory(prev => {\n const existingIndex = prev.findIndex(item => item.id === id)\n\n let updatedHistory\n if (existingIndex !== -1) {\n updatedHistory = [...prev]\n updatedHistory[existingIndex] = { ...dialog, id, index: prev[existingIndex].index }\n } else {\n updatedHistory = prev.map(item => ({\n ...item,\n index: item.index! + 1\n }))\n const newContent = { ...dialog, id, index: 0 }\n updatedHistory.unshift(newContent)\n }\n\n return updatedHistory\n })\n }, [])\n\n const dialogHistoryLength = useMemo(() => dialogHistory.length, [dialogHistory.length])\n const zIndex = useMemo(() => props.zIndex, [props.zIndex])\n\n return (\n <DialogContext.Provider value={{ add, remove, update, dialogHistory }}>\n <AnimatePresence>\n {dialogHistoryLength && (\n <DialogLayout\n $zIndex={zIndex}\n initial={{\n opacity: 0\n }}\n exit={{\n opacity: 0\n }}\n animate={{\n opacity: 1\n }}\n transition={{ type: 'spring', duration: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT }}\n >\n {dialogHistory.map(dialog => {\n const index = dialog.index\n const content = dialog.content\n const id = dialog.id\n const props = dialog.props\n\n return (\n <MemoizedDialogElement\n index={index}\n content={content}\n props={props}\n key={id}\n id={id}\n remove={() => remove(id)}\n />\n )\n })}\n </DialogLayout>\n )}\n </AnimatePresence>\n\n {props.children}\n </DialogContext.Provider>\n )\n}\n\nconst DialogElement = (props: DialogElementProps) => {\n const [isAnimating, setIsAnimating] = useState(true)\n return (\n <Outside onOutsideClick={() => props.remove()}>\n <DialogElementWrapper\n key={props.id}\n initial={{\n opacity: 0,\n scale: 0.8\n }}\n animate={{\n opacity: 1,\n scale: 1\n }}\n onAnimationComplete={() => setIsAnimating(false)}\n transition={{\n type: 'spring',\n duration: DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,\n delay: DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT\n }}\n style={{\n zIndex: -props.index!\n }}\n $propsDialog={props.props?.propsDialog}\n >\n {props.content?.(props.props, props.remove, isAnimating)}\n </DialogElementWrapper>\n </Outside>\n )\n}\nconst MemoizedDialogElement = memo(DialogElement)\n","import { useCallback, useContext, useEffect, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { useDeepCompareMemoize } from '@local/hooks/use-deep-compare-memoize'\n\nimport { DialogContext, DialogContextItemProps, DialogContextProps, useDialogProps } from '.'\n\nexport const useDialogs = (): DialogContextProps<object> => {\n const context = useContext(DialogContext)\n if (!context) {\n throw new Error('useDialogs must be used within an ProviderDialog')\n }\n return context\n}\n\nexport const useDialog = <T extends object>(props?: useDialogProps<T>): DialogContextItemProps<T> => {\n const { add, remove, update, dialogHistory } = useDialogs()\n const [id, setId] = useState<string | null>(null)\n\n const localAdd: DialogContextItemProps<T>['add'] = useCallback(\n dialog => {\n const find = dialogHistory.find(item => item.id === dialog.id)\n if (!id || !find) {\n const id = dialog.id || uuidv4()\n setId(id)\n add({ ...(dialog as T), props: props, id })\n }\n },\n [add, dialogHistory, id, props]\n )\n const localRemove = useCallback(() => {\n if (id) {\n remove(id)\n setId(null)\n }\n }, [id, remove])\n\n const propsMemo = useDeepCompareMemoize(props)\n\n useEffect(() => {\n if (id) {\n update({ id, props: propsMemo })\n }\n }, [id, propsMemo, update])\n\n return { add: localAdd, remove: localRemove, id }\n}\n","import { motion } from 'framer-motion'\nimport styled from 'styled-components'\n\nimport { addOutline } from '@local/styles/add'\n\nimport {\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH,\n DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING,\n DialogElementWrapperProps,\n DialogLayoutProps\n} from '.'\n\nexport const DialogLayout = styled(motion.div)<DialogLayoutProps>`\n position: fixed;\n flex: 1;\n width: 100%;\n height: 100%;\n background-color: ${props => props.theme.palette.black50};\n z-index: ${props => props.$zIndex};\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n`\n\nexport const DialogElementWrapper = styled(motion.dialog)<DialogElementWrapperProps>`\n ${addOutline};\n max-width: ${props => props.$propsDialog?.maxWidth || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH};\n max-height: ${props => props.$propsDialog?.maxHeight || DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT};\n border-radius: ${props => props.$propsDialog?.borderRadius || DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS};\n background: ${props =>\n props.$propsDialog?.background\n ? props.theme.palette[props.$propsDialog.background]\n : props.theme.palette[DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND]};\n padding: ${props => props.$propsDialog?.padding || DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING};\n width: max-content;\n height: max-content;\n border: 0;\n display: flex;\n flex-direction: column;\n gap: 10px;\n align-items: flex-start;\n justify-content: flex-start;\n flex-shrink: 0;\n position: relative;\n box-shadow: 0px 10px 30px 0px rgba(0, 0, 0, 0.2);\n overflow: hidden;\n`\nexport const DialogContent = styled(motion.div)``\n","// export const DEFAULT_PROVIDER_Dialog_SCALE = 0.04\nimport { IThemePaletteKeys } from '@local/theme'\n\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT = 0.3\nexport const DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT = 0.4\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT: string = 'max-content'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH: string = 'max-content'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS: string = '12px'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING: string = '20px'\nexport const DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND: IThemePaletteKeys = 'whiteStandard'\n"],"names":["DialogContext","createContext","MemoizedDialogElement","memo","props","isAnimating","setIsAnimating","useState","Outside","onOutsideClick","remove","children","jsx","DialogElementWrapper","initial","opacity","scale","animate","onAnimationComplete","transition","type","duration","DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT","delay","DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT","style","zIndex","index","$propsDialog","_a","propsDialog","content","id","useDialogs","context","useContext","Error","DialogLayout","styled","motion","div","theme","palette","black50","$zIndex","dialog","addOutline","maxWidth","DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH","maxHeight","DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT","borderRadius","DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS","background","DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND","padding","DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING","DialogContent","dialogHistory","setDialogHistory","useCallback","prev","itemToRemove","find","item","indexToRemove","filter","map","update","add","existingIndex","findIndex","updatedHistory","newContent","unshift","dialogHistoryLength","useMemo","length","jsxs","Provider","value","AnimatePresence","exit","setId","localAdd","uuidv4","localRemove","propsMemo","useDeepCompareMemoize","useEffect"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const e=require("react"),n=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("framer-motion"),i=require("styled-components"),o=require("uuid"),r=require("./component-
|
|
1
|
+
"use strict";const e=require("react"),n=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("framer-motion"),i=require("styled-components"),o=require("uuid"),r=require("./component-CMkU2lIg.cjs"),s=require("./component.styles-CbkvPvEl.cjs"),l=require("./component-CeWNemV1.cjs"),d=require("./style-mc2ST5fY.cjs"),c=e.createContext(null),x=e.memo(e=>n.jsxRuntimeExports.jsx(t.motion.div,{layout:!0,initial:{opacity:0,scale:1,y:e.isLastViewIndex?e.isTop?E:-E:e.isTop?-E:E},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*j,marginTop:e.isTop?e.isHovered||0===e.index?"0px":`-${y}px`:"0px",marginBottom:e.isTop||e.isHovered||0===e.index?"0px":`-${y}px`},style:{zIndex:-e.index},whileInView:{opacity:e.isMoreThanLastViewIndex?0:1},exit:{opacity:0,y:e.isTop?-E:E},transition:{type:"spring",duration:b},children:n.jsxRuntimeExports.jsxs(u,{$genre:e.genre,onClick:()=>"clickOnSonner"===e.hidingMode&&e.handleOnClick(e.id,"clickOnSonner"),children:[(e.isLoading||e.icon)&&n.jsxRuntimeExports.jsx(m,{children:e.isLoading?n.jsxRuntimeExports.jsx(s.Icon,{size:"medium",type:"loading",name:"Line"}):e.icon&&n.jsxRuntimeExports.jsx(s.Icon,{name:e.icon,type:"id",size:"medium"})}),n.jsxRuntimeExports.jsx(p,{children:e.content?e.content:n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[e.title&&n.jsxRuntimeExports.jsx(f,{$genre:e.genre,children:e.title}),e.description&&n.jsxRuntimeExports.jsx(v,{$genre:e.genre,children:e.description})]})}),e.button&&e.button.content&&n.jsxRuntimeExports.jsx(h,{children:n.jsxRuntimeExports.jsx(r.Button,{genre:e.buttonGenre,size:"small",onClick:()=>"clickOnButton"===e.hidingMode&&e.handleOnClick(e.id,"clickOnButton"),children:e.button.content})})]})},e.id)),a=i.div`
|
|
2
2
|
position: fixed;
|
|
3
3
|
z-index: ${e=>e.$zIndex};
|
|
4
4
|
max-height: calc(100dvh - 20px);
|
|
@@ -97,4 +97,4 @@
|
|
|
97
97
|
align-items: center;
|
|
98
98
|
justify-content: flex-start;
|
|
99
99
|
`,h=i.div``,g=100,j=.04,E=100,b=.3,R="black",y=60,$={content:"Undo",onClick:()=>{}};exports.DEFAULT_PROVIDER_SONNER_BUTTON=$,exports.DEFAULT_PROVIDER_SONNER_DURATION=b,exports.DEFAULT_PROVIDER_SONNER_GENRE=R,exports.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM=y,exports.DEFAULT_PROVIDER_SONNER_SCALE=j,exports.DEFAULT_PROVIDER_SONNER_Y=E,exports.DEFAULT_PROVIDER_SONNER_Z_INDEX=g,exports.ProviderSonner=r=>{var s,l,d,u,p,m;const f=e.useMemo(()=>r.visibleToasts,[r.visibleToasts]),v=e.useMemo(()=>{var e;return null==(e=null==r?void 0:r.default)?void 0:e.description},[null==(s=null==r?void 0:r.default)?void 0:s.description]),h=e.useMemo(()=>{var e;return null==(e=null==r?void 0:r.default)?void 0:e.title},[null==(l=null==r?void 0:r.default)?void 0:l.title]),j=e.useMemo(()=>{var e;return null==(e=null==r?void 0:r.default)?void 0:e.button},[null==(d=null==r?void 0:r.default)?void 0:d.button]),E=e.useMemo(()=>{var e;return null==(e=null==r?void 0:r.default)?void 0:e.hidingTime},[null==(u=null==r?void 0:r.default)?void 0:u.hidingTime]),b=e.useMemo(()=>{var e;return(null==(e=null==r?void 0:r.default)?void 0:e.hidingMode)??"clickOnButton"},[null==(p=null==r?void 0:r.default)?void 0:p.hidingMode]),y=e.useMemo(()=>{var e;return(null==(e=null==r?void 0:r.default)?void 0:e.genre)??R},[null==(m=null==r?void 0:r.default)?void 0:m.genre]),T=e.useMemo(()=>r.position.includes("top"),[r.position]),[S,w]=e.useState([]),[I,O]=e.useState(!1),L=e.useCallback(()=>{O(!0)},[]),M=e.useCallback(()=>{O(!1)},[]),k=e.useCallback(e=>{w(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??o.v4(),t=e.hidingTime??E;w(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=o.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=i.useTheme();return n.jsxRuntimeExports.jsxs(c.Provider,{value:{toast:_,promise:C,remove:k,contentHistory:S},children:[n.jsxRuntimeExports.jsx(a,{$zIndex:r.zIndex??g,$position:r.position,$gap:r.gap,onMouseEnter:L,onMouseLeave:M,children:n.jsxRuntimeExports.jsx(t.AnimatePresence,{children:S.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??b,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||h,description:u||v,button:e.button??j??$,handleOnClick:N},e.id)})})}),r.children]})},exports.SonnerButtonWrapper=h,exports.SonnerContent=p,exports.SonnerContentDescription=v,exports.SonnerContentTitle=f,exports.SonnerContext=c,exports.SonnerElementWrapper=u,exports.SonnerIcon=m,exports.SonnerLayout=a,exports.useSonner=()=>{const n=e.useContext(c);if(!n)throw new Error("useSonner must be used within an ProviderSonner");return n};
|
|
100
|
-
//# sourceMappingURL=context.constants-
|
|
100
|
+
//# sourceMappingURL=context.constants-DKCD80Pp.cjs.map
|