import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{a as n,i as r,r as i}from"./CalendarView-BmqKDEsD.js";import{n as a}from"./iframe-GrlyTB2d.js";import{n as o,r as s,t as c}from"./DateInput-B7WxAsa1.js";var l=t({PickerLevels:()=>v,Range:()=>h,RuntimeSelectionMode:()=>y,Single:()=>m,Sizes:()=>b,WeekSelection:()=>_,WithLimits:()=>g,__namedExportsOrder:()=>x,default:()=>p});function u(e,t,n){e.onSelectionModeChange?.(n),t({selectionMode:n})}var d,f,p,m,h,g,_,v,y,b,x;function S(){return(S=e((()=>{n(),s(),d=a(),{useArgs:f}=__STORYBOOK_MODULE_PREVIEW_API__,p={title:`Shared/UI/DateInput`,component:o,args:{value:null,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля даты.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Плейсхолдер в текстовом поле даты.`,control:`text`},value:{description:"Текущее значение даты (`Date | null`).",control:!1},onChange:{description:`Вызывается при выборе даты или диапазона.`,control:!1},minDate:{description:`Минимально доступная дата в календаре.`,control:`date`},maxDate:{description:`Максимально доступная дата в календаре.`,control:`date`},datePreset:{description:`Имя пресета форматирования выбранной даты, например date-long, month-long или month-short.`,control:`text`},datePickerLevel:{description:`Минимальный уровень календарной навигации. Не определяет размер выбранного периода.`,control:`select`,options:[`day`,`month`,`year`]},selectionMode:{description:`Размер выбранного периода.`,control:`select`,options:i},weekEndDay:{description:`Последний включённый день недели для режима week.`,control:`select`,options:r},allowSelectionModeChange:{description:`Показывает переключатель режима выбора под календарём.`,control:`boolean`},selectionModeOptions:{description:`Ограничивает режимы в runtime-переключателе.`,control:`check`,options:i},onSelectionModeChange:{description:`Вызывается при runtime-смене режима выбора.`,control:!1},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Сброс внешней ошибки при вводе.`,control:!1},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует ввод и открытие календаря.`,control:`boolean`}}},m={render:function(e){let[,t]=f();return(0,d.jsx)(o,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{label:`Одиночная дата`,placeholder:`дд.мм.гггг`,value:new Date(2026,2,5,0,0,0)}},h={render:function(e){let[,t]=f();return(0,d.jsx)(c,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{label:`Диапазон дат`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:[new Date(2026,2,5,0,0,0),new Date(2026,2,15,23,59,59)]}},g={render:function(e){let[,t]=f();return(0,d.jsx)(o,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{label:`Дата отчёта`,description:`Доступен только март 2026.`,value:new Date(2026,2,10,0,0,0),minDate:new Date(2026,2,1,0,0,0),maxDate:new Date(2026,2,31,23,59,59)}},_={render:function(e){let[,t]=f();return(0,d.jsx)(c,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{label:`Недели`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:[new Date(2026,2,2,0,0,0),new Date(2026,2,13,23,59,59)],selectionMode:`week`,weekEndDay:`friday`}},v={render:function(e){let[,t]=f();return(0,d.jsx)(o,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{label:`Месяц`,placeholder:`месяц год`,value:new Date(2026,2,1,0,0,0),datePreset:`date-long`,selectionMode:`month`}},y={render:function(e){let[,t]=f();return(0,d.jsx)(c,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{label:`Период`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:[new Date(2026,2,5,0,0,0),new Date(2026,2,15,23,59,59)],selectionMode:`day`,allowSelectionModeChange:!0}},b={render:function(e){let[,t]=f();return(0,d.jsx)(c,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{size:`lg`,label:`Диапазон дат`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:[new Date(2026,2,5,0,0,0),new Date(2026,2,15,23,59,59)]}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    const [, updateArgs] = useArgs<SingleDateInputStoryArgs>();
    return <SingleDateInput {...args} value={args.value ?? null} onChange={value => {
      args.onChange(value);
      updateArgs({
        value
      });
    }} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
  },
  args: {
    label: "Одиночная дата",
    placeholder: "дд.мм.гггг",
    value: new Date(2026, 2, 5, 0, 0, 0)
  }
}`,...m.parameters?.docs?.source},description:{story:`Демонстрирует выбор одной даты без timezone-сдвига.`,...m.parameters?.docs?.description}}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    const [, updateArgs] = useArgs<RangeDateInputStoryArgs>();
    return <RangeDateInput {...args} value={args.value ?? null} onChange={value => {
      args.onChange(value);
      updateArgs({
        value
      });
    }} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
  },
  args: {
    label: "Диапазон дат",
    placeholder: "дд.мм.гггг - дд.мм.гггг",
    value: [new Date(2026, 2, 5, 0, 0, 0), new Date(2026, 2, 15, 23, 59, 59)]
  }
}`,...h.parameters?.docs?.source},description:{story:`Демонстрирует выбор диапазона дат без timezone-сдвига.`,...h.parameters?.docs?.description}}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    const [, updateArgs] = useArgs<SingleDateInputStoryArgs>();
    return <SingleDateInput {...args} value={args.value ?? null} onChange={value => {
      args.onChange(value);
      updateArgs({
        value
      });
    }} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
  },
  args: {
    label: "Дата отчёта",
    description: "Доступен только март 2026.",
    value: new Date(2026, 2, 10, 0, 0, 0),
    minDate: new Date(2026, 2, 1, 0, 0, 0),
    maxDate: new Date(2026, 2, 31, 23, 59, 59)
  }
}`,...g.parameters?.docs?.source},description:{story:`Демонстрирует ограничения календаря.`,...g.parameters?.docs?.description}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    const [, updateArgs] = useArgs<RangeDateInputStoryArgs>();
    return <RangeDateInput {...args} value={args.value ?? null} onChange={value => {
      args.onChange(value);
      updateArgs({
        value
      });
    }} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
  },
  args: {
    label: "Недели",
    placeholder: "дд.мм.гггг - дд.мм.гггг",
    value: [new Date(2026, 2, 2, 0, 0, 0), new Date(2026, 2, 13, 23, 59, 59)],
    selectionMode: "week",
    weekEndDay: "friday"
  }
}`,..._.parameters?.docs?.source},description:{story:`Демонстрирует выбор недели строкой календаря.`,..._.parameters?.docs?.description}}},v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    const [, updateArgs] = useArgs<SingleDateInputStoryArgs>();
    return <SingleDateInput {...args} value={args.value ?? null} onChange={value => {
      args.onChange(value);
      updateArgs({
        value
      });
    }} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
  },
  args: {
    label: "Месяц",
    placeholder: "месяц год",
    value: new Date(2026, 2, 1, 0, 0, 0),
    datePreset: "date-long",
    selectionMode: "month"
  }
}`,...v.parameters?.docs?.source},description:{story:`Демонстрирует связь формата отображения с режимом выбора периода.`,...v.parameters?.docs?.description}}},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    const [, updateArgs] = useArgs<RangeDateInputStoryArgs>();
    return <RangeDateInput {...args} value={args.value ?? null} onChange={value => {
      args.onChange(value);
      updateArgs({
        value
      });
    }} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
  },
  args: {
    label: "Период",
    placeholder: "дд.мм.гггг - дд.мм.гггг",
    value: [new Date(2026, 2, 5, 0, 0, 0), new Date(2026, 2, 15, 23, 59, 59)],
    selectionMode: "day",
    allowSelectionModeChange: true
  }
}`,...y.parameters?.docs?.source},description:{story:`Демонстрирует runtime-переключение режима выбора под календарём.`,...y.parameters?.docs?.description}}},b.parameters={...b.parameters,docs:{...b.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    const [, updateArgs] = useArgs<RangeDateInputStoryArgs>();
    return <RangeDateInput {...args} value={args.value ?? null} onChange={value => {
      args.onChange(value);
      updateArgs({
        value
      });
    }} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
  },
  args: {
    size: "lg",
    label: "Диапазон дат",
    placeholder: "дд.мм.гггг - дд.мм.гггг",
    value: [new Date(2026, 2, 5, 0, 0, 0), new Date(2026, 2, 15, 23, 59, 59)]
  }
}`,...b.parameters?.docs?.source},description:{story:`Демонстрирует разные размеры.`,...b.parameters?.docs?.description}}},x=[`Single`,`Range`,`WithLimits`,`WeekSelection`,`PickerLevels`,`RuntimeSelectionMode`,`Sizes`]})))()}export{g as a,b as i,h as n,S as o,m as r,l as t};