import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-CMLjY6eW.js";import{n as a,t as o}from"./InputFiles-DnRctHku.js";var s=e({Controlled:()=>f,LimitReached:()=>m,WithInitialFiles:()=>p,__namedExportsOrder:()=>h,default:()=>d}),c,l,u,d,f,p,m,h,g=n((()=>{c=t(r(),1),a(),l=i(),u=(e,t=`application/pdf`)=>{let n=new File([`demo-file`],e,{type:t,lastModified:17040672e5});return{mode:`data-url`,meta:{name:n.name,mime:n.type,size:n.size,lastModified:n.lastModified},dataUrl:`data:${t};base64,ZGVtby1maWxl`,file:n}},d={title:`Shared/UI/InputFiles`,component:o,args:{value:[],onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля множественной загрузки.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст в поле, пока список файлов пуст.`,control:`text`},value:{description:`Массив результатов чтения выбранных файлов.`,control:!1},onChange:{description:`Вызывается с новым массивом файлов после добавления/удаления.`,control:!1},onReadError:{description:`Вызывается при ошибке чтения отдельного файла.`,control:!1},accept:{description:"HTML `accept` для диалога выбора файлов.",control:`text`},allowedMime:{description:`Список допустимых MIME-типов при валидации.`,control:!1},maxBytes:{description:`Максимальный размер одного файла в байтах.`,control:`number`},readMode:{description:`Режим чтения: data-url или array-buffer.`,control:`inline-radio`,options:[`data-url`,`array-buffer`]},maxFiles:{description:`Лимит количества файлов в списке.`,control:`number`},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается при выборе новых файлов для сброса ошибки.`,control:!1},disabled:{description:`Полностью блокирует выбор файлов.`,control:`boolean`},size:{description:`Размер визуального контрола.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},f={render:e=>{let[t,n]=(0,c.useState)([]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Вложения`,description:`Можно выбрать несколько файлов.`,placeholder:`Выберите файлы`,accept:[`.pdf`,`.png`,`.jpg`],maxFiles:5,value:[]}},p={render:e=>{let[t,n]=(0,c.useState)([u(`contract.pdf`),u(`diagram.png`,`image/png`)]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Предзаполненный список`,description:`Иллюстрация удаления файлов из уже заполненного значения.`}},m={render:e=>{let[t,n]=(0,c.useState)([u(`first.pdf`),u(`second.pdf`)]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Лимит файлов`,description:`После достижения лимита поле выбора блокируется.`,maxFiles:2}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
  render: args => {
    const [value, setValue] = useState<ReadFileAsDataUrlResult[]>([]);
    return <InputFiles {...args} readMode="data-url" value={value} onChange={setValue} />;
  },
  args: {
    label: "Вложения",
    description: "Можно выбрать несколько файлов.",
    placeholder: "Выберите файлы",
    accept: [".pdf", ".png", ".jpg"],
    maxFiles: 5,
    value: []
  }
}`,...f.parameters?.docs?.source}}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
  render: args => {
    const [value, setValue] = useState<ReadFileAsDataUrlResult[]>([createMockReadFileResult("contract.pdf"), createMockReadFileResult("diagram.png", "image/png")]);
    return <InputFiles {...args} readMode="data-url" value={value} onChange={setValue} />;
  },
  args: {
    label: "Предзаполненный список",
    description: "Иллюстрация удаления файлов из уже заполненного значения."
  }
}`,...p.parameters?.docs?.source}}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
  render: args => {
    const [value, setValue] = useState<ReadFileAsDataUrlResult[]>([createMockReadFileResult("first.pdf"), createMockReadFileResult("second.pdf")]);
    return <InputFiles {...args} readMode="data-url" value={value} onChange={setValue} />;
  },
  args: {
    label: "Лимит файлов",
    description: "После достижения лимита поле выбора блокируется.",
    maxFiles: 2
  }
}`,...m.parameters?.docs?.source}}},h=[`Controlled`,`WithInitialFiles`,`LimitReached`]}));g();export{f as Controlled,m as LimitReached,p as WithInitialFiles,h as __namedExportsOrder,d as default,g as n,s as t};