{
  "version": 3,
  "sources": ["../../src/form-file-upload/index.tsx"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\n\n/**\n * FormFileUpload allows users to select files from their local device.\n *\n * ```jsx\n * import { FormFileUpload } from '@wordpress/components';\n *\n * const MyFormFileUpload = () => (\n *   <FormFileUpload\n *     __next40pxDefaultSize\n *     accept=\"image/*\"\n *     onChange={ ( event ) => console.log( event.currentTarget.files ) }\n *   >\n *     Upload\n *   </FormFileUpload>\n * );\n * ```\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function FormFileUpload({\n  accept,\n  children,\n  multiple = false,\n  onChange,\n  onClick,\n  render,\n  ...props\n}) {\n  const ref = useRef(null);\n  const openFileDialog = () => {\n    ref.current?.click();\n  };\n  if (!render) {\n    maybeWarnDeprecated36pxSize({\n      componentName: 'FormFileUpload',\n      __next40pxDefaultSize: props.__next40pxDefaultSize,\n      // @ts-expect-error - We don't \"officially\" support all Button props but this likely happens.\n      size: props.size\n    });\n  }\n  const ui = render ? render({\n    openFileDialog\n  }) :\n  /*#__PURE__*/\n  // Disable reason: the parent component already takes care of the `__next40pxDefaultSize` prop.\n  // eslint-disable-next-line @wordpress/components-no-missing-40px-size-prop\n  _jsx(Button, {\n    onClick: openFileDialog,\n    ...props,\n    children: children\n  });\n\n  // iOS browsers may not reliably handle 'audio/*' in the accept attribute.\n  // Adding explicit audio MIME types improves compatibility across all devices.\n  const compatAccept = accept?.includes('audio/*') ? `${accept}, audio/mp3, audio/x-m4a, audio/x-m4b, audio/x-m4p, audio/x-wav, audio/webm` : accept;\n  return /*#__PURE__*/_jsxs(\"div\", {\n    className: \"components-form-file-upload\",\n    children: [ui, /*#__PURE__*/_jsx(\"input\", {\n      type: \"file\",\n      ref: ref,\n      multiple: multiple,\n      style: {\n        display: 'none'\n      },\n      accept: compatAccept,\n      onChange: onChange,\n      onClick: onClick,\n      \"data-testid\": \"form-file-upload-input\"\n    })]\n  });\n}\nexport default FormFileUpload;"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAAuB;AAKvB,oBAAmB;AACnB,kCAA4C;AAmB5C,yBAA2C;AACpC,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAG;AACD,QAAM,UAAM,uBAAO,IAAI;AACvB,QAAM,iBAAiB,MAAM;AAC3B,QAAI,SAAS,MAAM;AAAA,EACrB;AACA,MAAI,CAAC,QAAQ;AACX,iEAA4B;AAAA,MAC1B,eAAe;AAAA,MACf,uBAAuB,MAAM;AAAA;AAAA,MAE7B,MAAM,MAAM;AAAA,IACd,CAAC;AAAA,EACH;AACA,QAAM,KAAK,SAAS,OAAO;AAAA,IACzB;AAAA,EACF,CAAC;AAAA;AAAA;AAAA,IAID,uCAAAA,KAAK,cAAAC,SAAQ;AAAA,MACX,SAAS;AAAA,MACT,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AAAA;AAID,QAAM,eAAe,QAAQ,SAAS,SAAS,IAAI,GAAG,MAAM,gFAAgF;AAC5I,SAAoB,uCAAAC,MAAM,OAAO;AAAA,IAC/B,WAAW;AAAA,IACX,UAAU,CAAC,IAAiB,uCAAAF,KAAK,SAAS;AAAA,MACxC,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA,eAAe;AAAA,IACjB,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AACA,IAAO,2BAAQ;",
  "names": ["_jsx", "Button", "_jsxs"]
}
