import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-GrlyTB2d.js";import{a as r,i,n as a}from"./utils-DUM89eIj.js";import{n as o,t as s}from"./ui.module-CiLQZm_L.js";import{d as c,l,n as u,r as d,s as f,u as p}from"./Input-DI_ErAU0.js";import{a as m,i as h,o as g,r as _,s as v}from"./file-vPGnhPr-.js";var y,b,x,S;function C(){return(C=e((()=>{y=`Ggxyuj`,b=`fthcmO`,x=`wyY60X`,S={control:y,fileName:b,hiddenInput:x}})))()}function w(e){let{value:t,onClear:n,onReadError:i,accept:s,allowedMime:l,maxBytes:p,label:h,description:y,placeholder:b=`Выберите файл`,disabled:x,size:C,error:w,onClearError:D,className:O}=e;m(l),g(s);let k=(0,T.useRef)(null),{controlId:A,labelId:j,descriptionId:M,errorId:N,describedBy:P}=c({hasLabel:h!=null,hasDescription:!!y,hasError:!!w}),F=(0,T.useCallback)(async t=>{let n=t.target.files?.[0];if(n){t.target.value=``,w&&D&&D();try{if(e.readMode===`array-buffer`){let t=await v(n,{allowedMime:l,maxBytes:p,mode:`array-buffer`});e.onChange(t);return}let t=await v(n,{allowedMime:l,maxBytes:p});e.onChange(t)}catch(e){e instanceof _&&i&&i(e)}}},[e,l,p,i,w,D]),I=(0,T.useCallback)(()=>{k.current?.click()},[]);return(0,E.jsxs)(f,{label:h,description:y,disabled:x,className:O,size:C,error:w,controlId:A,labelId:j,descriptionId:M,errorId:N,children:[(0,E.jsx)(`input`,{ref:k,id:A,type:`file`,accept:(s??l)?.join(`,`),disabled:x,className:S.hiddenInput,onChange:F,tabIndex:-1}),(0,E.jsx)(d,{endAdornment:n?(0,E.jsx)(u,{onClick:n,disabled:x}):void 0,endAdornmentWidth:n?`var(--control-height)`:void 0,children:({controlClassName:e})=>(0,E.jsx)(`div`,{role:`button`,tabIndex:x?-1:0,onClick:I,onKeyDown:e=>a(e,I,{disabled:x}),className:r(o.uiInputControl,S.control,e,!!w&&o.invalid),"data-disabled":x||void 0,"aria-invalid":!!w||void 0,"aria-disabled":x,"aria-labelledby":j,"aria-describedby":P,children:t?(0,E.jsx)(`span`,{className:S.fileName,children:t.meta.name}):(0,E.jsx)(`span`,{className:o.uiPlaceholder,children:b})})})]})}var T,E;function D(){return(D=e((()=>{T=t(),h(),i(),l(),p(),s(),C(),E=n(),w.__docgenInfo={description:'InputFile — компонент выбора одного файла.\n\nВизуально идентичен InputText: поле с label, description, placeholder,\nкнопкой очистки (крестик) и блоком ошибки.\n\nПри клике открывается нативный диалог выбора файла.\nПосле выбора файл читается через readFile, результат передаётся в onChange.\n\nInputFile позволяет выбрать один файл и передаёт наружу типизированный результат чтения.\nЕсли `readMode` не задан или равен `"data-url"`, в `onChange` приходит объект с `dataUrl`.\nЕсли `readMode` равен `"array-buffer"`, в `onChange` приходит объект с `buffer`.',methods:[],displayName:`InputFile`}})))()}export{D as n,w as t};