import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-CMLjY6eW.js";import{E as n,a as r,d as i,f as a,l as o,m as s,n as c,p as l,r as u,u as d}from"./blocks-D3IlvJMm.js";import{t as f}from"./mdx-react-shim-DzMf9EAg.js";import{Default as p,Empty as m,TimeOnly as h,WithLimits as g,WithRightPanel as _,n as v,t as y}from"./SingleDateTimeInput.stories-Du0Bzxa9.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(o,{of:y,parameters:{docs:{toc:!0}}}),`
`,(0,S.jsx)(l,{children:`SingleDateTimeInput`}),`
`,(0,S.jsx)(a,{children:`Строгий сегментный ввод даты-времени и времени с popover picker`}),`
`,(0,S.jsxs)(t.p,{children:[(0,S.jsx)(t.code,{children:`SingleDateTimeInput`}),` объединяет два сценария:`]}),`
`,(0,S.jsxs)(t.ul,{children:[`
`,(0,S.jsxs)(t.li,{children:[`ручной ввод по фиксированной маске `,(0,S.jsx)(t.code,{children:`dd.MM.yyyy HH:mm`}),`;`]}),`
`,(0,S.jsx)(t.li,{children:`выбор даты и времени через popover picker с wheel-прокруткой;`}),`
`,(0,S.jsxs)(t.li,{children:[`выбор только времени по маске `,(0,S.jsx)(t.code,{children:`HH:mm`}),` с технической датой `,(0,S.jsx)(t.code,{children:`1970-01-01`}),`.`]}),`
`]}),`
`,(0,S.jsx)(t.p,{children:`Семантика компонента фиксирована и отличается от существующих компонентов так:`}),`
`,(0,S.jsxs)(t.ul,{children:[`
`,(0,S.jsxs)(t.li,{children:[`до: `,(0,S.jsx)(t.code,{children:`DateInput`}),` работал только с календарной датой и нормализовал значение к границам суток;`]}),`
`,(0,S.jsxs)(t.li,{children:[`до: `,(0,S.jsx)(t.code,{children:`InputDateTime`}),` давал сегментный ввод, но без picker и без опоры на shared date-formatters;`]}),`
`,(0,S.jsxs)(t.li,{children:[`после: `,(0,S.jsx)(t.code,{children:`SingleDateTimeInput`}),` хранит дату-время с точностью до минуты и использует строгий parse/format через общие date-formatters.`]}),`
`]}),`
`,(0,S.jsx)(t.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
`,(0,S.jsx)(d,{}),`
`,(0,S.jsx)(r,{of:p}),`
`,(0,S.jsx)(t.pre,{children:(0,S.jsx)(t.code,{className:`language-tsx`,children:`import { useState } from "react";

import { SingleDateTimeInput } from "@/shared/ui";

export function Example() {
	const [value, setValue] = useState<Date | null>(null);

	return <SingleDateTimeInput label="Дата и время" value={value} onChange={setValue} />;
}
`})}),`
`,(0,S.jsx)(t.h2,{id:`практические-замечания`,children:`Практические замечания`}),`
`,(0,S.jsxs)(t.ul,{children:[`
`,(0,S.jsxs)(t.li,{children:[`Поле вызывает `,(0,S.jsx)(t.code,{children:`onChange`}),` только для полной и валидной даты-времени.`]}),`
`,(0,S.jsx)(t.li,{children:`Неполный или невалидный ручной ввод при потере фокуса откатывается к последнему committed значению.`}),`
`,(0,S.jsxs)(t.li,{children:[`Полностью очищенные сегменты трактуются как `,(0,S.jsx)(t.code,{children:`null`}),`.`]}),`
`,(0,S.jsxs)(t.li,{children:[`Ограничения `,(0,S.jsx)(t.code,{children:`minDate`}),` и `,(0,S.jsx)(t.code,{children:`maxDate`}),` применяются и к календарю, и к времени внутри того же дня.`]}),`
`,(0,S.jsxs)(t.li,{children:[`В режиме `,(0,S.jsx)(t.code,{children:`mode="time"`}),` компонент возвращает `,(0,S.jsx)(t.code,{children:`Date`}),` на технической дате `,(0,S.jsx)(t.code,{children:`1970-01-01`}),`, а `,(0,S.jsx)(t.code,{children:`minDate`}),` и `,(0,S.jsx)(t.code,{children:`maxDate`}),` сравниваются только по `,(0,S.jsx)(t.code,{children:`HH:mm`}),`.`]}),`
`,(0,S.jsx)(t.li,{children:`Wheel-панель блокирует прокрутку страницы во время взаимодействия и доводит выбранное значение в центр.`}),`
`,(0,S.jsxs)(t.li,{children:[`Размещение панели времени управляется через `,(0,S.jsx)(t.code,{children:`timePanelPlacement="bottom" | "right"`}),`.`]}),`
`]}),`
`,(0,S.jsx)(t.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
`,(0,S.jsx)(t.h3,{id:`базовый-сценарий`,children:`Базовый сценарий`}),`
`,(0,S.jsx)(u,{of:p}),`
`,(0,S.jsx)(t.h3,{id:`пустое-значение`,children:`Пустое значение`}),`
`,(0,S.jsx)(u,{of:m}),`
`,(0,S.jsx)(t.h3,{id:`ограниченный-диапазон`,children:`Ограниченный диапазон`}),`
`,(0,S.jsx)(u,{of:g}),`
`,(0,S.jsx)(t.h3,{id:`панель-времени-справа`,children:`Панель времени справа`}),`
`,(0,S.jsx)(u,{of:_}),`
`,(0,S.jsx)(t.h3,{id:`только-время`,children:`Только время`}),`
`,(0,S.jsx)(u,{of:h}),`
`,(0,S.jsx)(t.h2,{id:`api`,children:`API`}),`
`,(0,S.jsx)(c,{of:y}),`
`,(0,S.jsx)(t.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
`,(0,S.jsx)(i,{includePrimary:!1})]})}function x(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,S.jsx)(t,{...e,children:(0,S.jsx)(b,{...e})}):b(e)}var S;e((()=>{S=t(),f(),s(),v()}))();export{x as default};