import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-GrlyTB2d.js";import{n as r,t as i}from"./createControlledStoryRender-DHsyXc1B.js";import{a,l as o,o as s}from"./Input-DI_ErAU0.js";var c=t({NumberControlled:()=>m,PatternValidation:()=>h,TextControlled:()=>p,WithError:()=>g,__namedExportsOrder:()=>_,default:()=>f}),l,u,d,f,p,m,h,g,_;function v(){return(v=e((()=>{r(),o(),l=n(),u=i((e,t)=>(0,l.jsx)(s,{...e,value:e.value??``,onChange:n=>{e.onChange?.(n),t({value:n})},onClear:e.onClear?()=>{e.onClear?.(),t({value:``})}:void 0,onClearError:()=>{e.onClearError?.(),t({error:void 0})}})),d=i((e,t)=>(0,l.jsx)(a,{...e,onChange:n=>{e.onChange?.(n),t({value:n})},onClear:e.onClear?()=>{e.onClear?.(),t({value:void 0})}:void 0,onClearError:()=>{e.onClearError?.(),t({error:void 0})}})),f={title:`Shared/UI/Input`,component:s,args:{value:``,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Плейсхолдер нативного поля ввода.`,control:`text`},value:{description:`Текущее значение поля.`,control:`text`},onChange:{description:`Вызывается при изменении значения.`,control:!1},onClear:{description:`Callback кнопки очистки справа.`,control:!1},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается при вводе для сброса внешней ошибки.`,control:!1},type:{description:`Семантика текстового значения для нативного ввода.`,control:`select`,options:[`text`,`email`,`password`,`search`,`tel`,`url`]},disabled:{description:`Блокирует редактирование.`,control:`boolean`},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},allowedPattern:{description:`Регулярное выражение для валидации введенной строки.`,control:!1},endAdornment:{description:`Дополнительный элемент справа внутри поля.`,control:!1},endAdornmentClassName:{description:`CSS-класс контейнера дополнительного элемента справа.`,control:`text`},endAdornmentWidth:{description:`Явная ширина области дополнительного элемента справа.`,control:`text`}}},p={render:u,args:{label:`Наименование`,description:`Пример обычного текстового поля.`,placeholder:`Введите значение`,value:``,size:`md`,onClear:()=>{}}},m={render:d,args:{label:`Количество`,description:`Числовой ввод с min/max.`,placeholder:`0`,value:25,min:0,max:100,onChange:()=>{},onClear:()=>{}},argTypes:{value:{description:`Текущее числовое значение поля.`,control:`number`}},parameters:{controls:{exclude:[`type`,`allowedPattern`]}}},h={render:u,args:{label:`Только цифры`,description:"`allowedPattern` подсвечивает невалидный ввод.",placeholder:`12345`,value:``,allowedPattern:/^\d*$/}},g={render:u,args:{label:`Логин`,value:`admin`,error:`Логин уже занят`,onClear:()=>{},onClearError:()=>{}}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
  render: renderInputTextStory,
  args: {
    label: "Наименование",
    description: "Пример обычного текстового поля.",
    placeholder: "Введите значение",
    value: "",
    size: "md",
    onClear: () => {}
  }
}`,...p.parameters?.docs?.source}}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
  render: renderInputNumberStory,
  args: {
    label: "Количество",
    description: "Числовой ввод с min/max.",
    placeholder: "0",
    value: 25,
    min: 0,
    max: 100,
    onChange: () => {},
    onClear: () => {}
  },
  argTypes: {
    value: {
      description: "Текущее числовое значение поля.",
      control: "number"
    }
  },
  parameters: {
    controls: {
      exclude: ["type", "allowedPattern"]
    }
  }
}`,...m.parameters?.docs?.source}}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
  render: renderInputTextStory,
  args: {
    label: "Только цифры",
    description: "\`allowedPattern\` подсвечивает невалидный ввод.",
    placeholder: "12345",
    value: "",
    allowedPattern: /^\\d*$/
  }
}`,...h.parameters?.docs?.source}}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
  render: renderInputTextStory,
  args: {
    label: "Логин",
    value: "admin",
    error: "Логин уже занят",
    onClear: () => {},
    onClearError: () => {}
  }
}`,...g.parameters?.docs?.source}}},_=[`TextControlled`,`NumberControlled`,`PatternValidation`,`WithError`]})))()}export{g as a,p as i,m as n,v as o,h as r,c as t};